From cc549e5ce94a07561db3e533d7c26fb0b018d139 Mon Sep 17 00:00:00 2001 From: Matthew Reed Date: Thu, 30 Oct 2025 10:02:29 +1300 Subject: [PATCH 01/17] feat: Add toolbar colors and improve table selection/styling - Add separate toolbar color properties (background, text, button) distinct from header colors - Update all toolbar elements (buttons, selectors, filter, paginator) to use toolbar colors - Add row selection tag setting with proper typing: bool for selection state, number for row index, JSON string for row data - Add hover/focus effects for filter input matching toolbar styling - Reorganize property panel with toolbar section after row settings - Add translations for new toolbar color properties - Various styling improvements and consistency fixes --- client/src/app/_models/hmi.ts | 6 + .../data-table/data-table.component.html | 119 ++++++++--- .../data-table/data-table.component.scss | 192 ++++++++++++++++- .../data-table/data-table.component.ts | 200 ++++++++++++++++-- .../table-property.component.html | 32 +++ .../table-property.component.ts | 8 + client/src/assets/i18n/en.json | 4 + 7 files changed, 500 insertions(+), 61 deletions(-) diff --git a/client/src/app/_models/hmi.ts b/client/src/app/_models/hmi.ts index cb559d3e3..2fe1f4f2e 100644 --- a/client/src/app/_models/hmi.ts +++ b/client/src/app/_models/hmi.ts @@ -396,6 +396,7 @@ export enum GaugeEventActionType { onRunScript = 'shapes.event-onrunscript', onViewToPanel = 'shapes.event-onViewToPanel', onMonitor = 'shapes.event-onmonitor', + onSetTag = 'shapes.event-onsettag', } export enum ViewEventType { @@ -526,6 +527,11 @@ export interface TableOptions { color?: string; background?: string; }; + toolbar?: { + background?: string; + color?: string; + buttonColor?: string; + }; row?: { height: number; fontSize?: number; diff --git a/client/src/app/gauges/controls/html-table/data-table/data-table.component.html b/client/src/app/gauges/controls/html-table/data-table/data-table.component.html index ff93aa64d..babdaa432 100644 --- a/client/src/app/gauges/controls/html-table/data-table/data-table.component.html +++ b/client/src/app/gauges/controls/html-table/data-table/data-table.component.html @@ -1,43 +1,94 @@
-
- -
-
-
- - - {{ ev.value }} - - - - + [style.backgroundColor]="tableOptions.toolbar?.background || tableOptions.header.background"> +
+
+
-
- - - +
+
+
+
+ {{ selectedRangeLabel }} + arrow_drop_down +
+
+
+ Last 1 hour +
+
+ Last 1 day +
+
+ Last 3 days +
+
+
+ + +
+
+
+
+ {{ selectedRangeLabel }} + arrow_drop_down +
+
+
+ Last 1 hour +
+
+ Last 1 day +
+
+ Last 3 days +
+
+
+ + +
+
+
+
+ + +
+
+
+ {{ selectedPageSizeLabel }} + arrow_drop_down +
+
+
+ {{ size }} +
+
+
+ +
- -
+ [style.height]="withToolbar ? 'calc(100% - 42px)' : '100%'" [class.selectable]="isSelectable()" + [ngStyle]="{'--header-bg': tableOptions.header.background, '--header-color': tableOptions.header.color, '--row-bg': tableOptions.row.background, '--toolbar-bg': tableOptions.toolbar?.background || tableOptions.header.background, '--toolbar-color': tableOptions.toolbar?.color || tableOptions.header.color, '--toolbar-button-bg': tableOptions.toolbar?.buttonColor || tableOptions.header.background}"> (null); + settings: any; + property: any; + rxjsPollingTimer: Observable; statusText = AlarmStatusType; priorityText = AlarmPriorityType; @@ -73,6 +77,10 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { events: GaugeEvent[]; eventSelectionType = Utils.getEnumKey(GaugeEventType, GaugeEventType.select); dataFilter: TableFilter | AlarmsFilter | ReportsFilter; + isRangeDropdownOpen = false; + isPageSizeDropdownOpen = false; + selectedPageSize = 25; + pageSizeOptions = [10, 25, 100]; constructor( private dataService: DataConverterService, @@ -83,7 +91,8 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { private languageService: LanguageService, private commandService: CommandService, public dialog: MatDialog, - private translateService: TranslateService) { } + private translateService: TranslateService, + private cdr: ChangeDetectorRef) { } ngOnInit() { this.dataSource.data = this.data; @@ -115,6 +124,17 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { ngAfterViewInit() { this.sort.disabled = this.type === TableType.data; this.bindTableControls(); + if (this.paginator) { + this.selectedPageSize = this.paginator.pageSize; + } + // Reset tags for unselected state on initialization + if (this.events) { + this.events.forEach(event => { + if (event.type === 'select' && event.action === 'onSetTag') { + this.setTagValue(event, null); + } + }); + } } ngOnDestroy() { @@ -126,6 +146,100 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { } } + toggleRangeDropdown() { + this.isRangeDropdownOpen = !this.isRangeDropdownOpen; + this.isPageSizeDropdownOpen = false; + } + + togglePageSizeDropdown() { + this.isPageSizeDropdownOpen = !this.isPageSizeDropdownOpen; + this.isRangeDropdownOpen = false; + } + + selectRange(key: string) { + this.tableOptions.lastRange = TableRangeType[key]; + this.onRangeChanged(key); + this.isRangeDropdownOpen = false; + } + + canGoPrevious(): boolean { + return this.paginator && this.paginator.pageIndex > 0; + } + + canGoNext(): boolean { + return this.paginator && this.paginator.pageIndex < this.paginator.getNumberOfPages() - 1; + } + + previousPage() { + if (this.canGoPrevious()) { + this.paginator.previousPage(); + } + } + + nextPage() { + if (this.canGoNext()) { + this.paginator.nextPage(); + } + } + + selectPageSize(value: number) { + this.selectedPageSize = value; + this.cdr.detectChanges(); + if (this.paginator) { + this.paginator.pageSize = value; + this.paginator.page.emit({ + pageIndex: this.paginator.pageIndex, + pageSize: value, + length: this.paginator.length + }); + } + this.isPageSizeDropdownOpen = false; + } + + get selectedRangeLabel(): string { + if (this.tableOptions.lastRange === TableRangeType.last1h) return 'Last 1 hour'; + if (this.tableOptions.lastRange === TableRangeType.last1d) return 'Last 1 day'; + if (this.tableOptions.lastRange === TableRangeType.last3d) return 'Last 3 days'; + return 'Last 1 hour'; + } + + get selectedPageSizeLabel(): string { + return this.selectedPageSize.toString(); + } + + getSelectStyles(isOpen: boolean = false): { [key: string]: string } { + return { + backgroundColor: this.tableOptions.toolbar?.buttonColor || this.tableOptions.header.background, + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color, + borderRadius: '3px', + padding: '0px 8px', + height: '26px', + display: 'flex', + alignItems: 'center', + boxShadow: '0 2px 4px rgba(0,0,0,0.2)' + }; + } + + getDropdownStyles(): { [key: string]: string } { + return { + backgroundColor: this.tableOptions.toolbar?.background || this.tableOptions.header.background, + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color + }; + } + + getOptionStyle(isSelected: boolean): { [key: string]: string } { + if (isSelected) { + return { + backgroundColor: this.tableOptions.toolbar?.buttonColor || this.tableOptions.header.background, + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color, + fontWeight: 'bold' + }; + } + return { + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color + }; + } + private startPollingAlarms() { this.rxjsPollingTimer = timer(0, 2500); this.rxjsPollingTimer.pipe( @@ -200,7 +314,8 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { setOptions(options: TableOptions): void { this.tableOptions = { ...this.tableOptions, ...options }; this.loadData(); - this.onRangeChanged(this.tableOptions.lastRange || TableRangeType.last1h); + const key = Object.keys(TableRangeType).find(k => TableRangeType[k] === this.tableOptions.lastRange) || 'last1h'; + this.onRangeChanged(key); } addValue(variableId: string, dt: number, variableValue: string) { @@ -347,15 +462,24 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { this.dataSource.data = rows; } - isSelectable(): boolean { - return this.events?.some(event => event.type === this.eventSelectionType); - } + isSelectable(row: any): boolean { + const selectable = this.events && this.events.length > 0 && this.events.some(event => event.type === 'select' && event.action === 'onSetTag'); + return selectable; + } selectRow(row: MatRow) { - if (this.isSelectable()) { - this.selectedRow = row; + if (this.isSelectable(row)) { + if (this.selectedRow === row) { + this.selectedRow = null; + } else { + this.selectedRow = row; + } this.events.forEach(event => { - this.runScript(event, this.selectedRow); + if (event.action === Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onSetTag)) { + this.setTagValue(event, this.selectedRow); + } else { + this.runScript(event, this.selectedRow); + } }); } } @@ -380,6 +504,44 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { } } + private setTagValue(event: GaugeEvent, selected: MatRow) { + if (event.actparam) { + const tagId = event.actparam; + const tag = this.projectService.getTagFromId(tagId); + if (tag) { + let value: any; + const type = tag.type.toLowerCase(); + if (type.includes('bool')) { + value = selected ? true : false; + } else if (type.includes('number') || type.includes('int') || type.includes('word') || type.includes('real')) { + value = selected ? this.dataSource.data.indexOf(selected) + 1 : 0; // 1-based index + } else if (type.includes('string') || type.includes('char')) { + if (selected) { + const rowData = {}; + this.displayedColumns.forEach(col => { + const cell = selected[col]; + if (cell && cell.stringValue !== undefined) { + const columnName = this.columnsStyle[col] && this.columnsStyle[col].label && this.columnsStyle[col].label !== 'undefined' ? this.columnsStyle[col].label : col; + let value: any = cell.stringValue; + // Try to parse as number if it looks like one + if (!isNaN(Number(value)) && value.trim() !== '' && !isNaN(parseFloat(value))) { + value = Number(value); + } + rowData[columnName] = value; + } + }); + value = JSON.stringify(rowData); + } else { + value = ''; + } + } else { + return; + } + this.scriptService.$setTag(tagId, value); + } + } + } + addRowDataToTable(dt: number, tagId: string, value: string) { let row = {}; let timestapColumnId = null; @@ -447,8 +609,9 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { if (tableData.columns) { this.displayedColumns = tableData.columns.map(cln => cln.id); this.columnsStyle = tableData.columns; - tableData.columns.forEach(clnData => { - let column = clnData; + tableData.columns.forEach((clnData, index) => { + let column = clnData as any; + column.label = column.label || 'Column ' + (index + 1); column.fontSize = tableData.header?.fontSize; column.color = column.color || tableData.header?.color; column.background = column.background || tableData.header?.background; @@ -644,7 +807,7 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { show: false }, realtime: false, - lastRange: Utils.getEnumKey(TableRangeType, TableRangeType.last1h), + lastRange: TableRangeType.last1h, gridColor: '#E0E0E0', header: { show: true, @@ -653,16 +816,21 @@ export class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { background: '#F0F0F0', color: '#757575', }, + toolbar: { + background: '#F0F0F0', + color: '#757575', + buttonColor: '#F0F0F0', + }, row: { height: 30, fontSize: 10, background: '#F9F9F9', - color: '#000000', + color: '#757575ff', }, selection: { - background: '#3059AF', - color: '#FFFFFF', + background: '#e0e0e0ff', + color: '#757575ff', fontBold: true, }, columns: [new TableColumn(Utils.getShortGUID('c_'), TableCellType.timestamp, 'Date/Time'), new TableColumn(Utils.getShortGUID('c_'), TableCellType.label, 'Tags')], diff --git a/client/src/app/gauges/controls/html-table/table-property/table-property.component.html b/client/src/app/gauges/controls/html-table/table-property/table-property.component.html index c0a23bd85..baa6b9ea2 100644 --- a/client/src/app/gauges/controls/html-table/table-property/table-property.component.html +++ b/client/src/app/gauges/controls/html-table/table-property/table-property.component.html @@ -100,6 +100,32 @@ (colorPickerChange)="onTableChanged()" />
+
+ {{'table.property-toolbar' | translate}} +
+
+
+ {{'table.property-toolbar-background' | translate}} + +
+
+ {{'table.property-toolbar-color' | translate}} + +
+
+ {{'table.property-toolbar-button-color' | translate}} + +
+
{{'table.property-selection' | translate}}
@@ -271,6 +297,12 @@
+
+ + +
diff --git a/client/src/app/gauges/controls/html-table/table-property/table-property.component.ts b/client/src/app/gauges/controls/html-table/table-property/table-property.component.ts index 011b13411..97f22ac39 100644 --- a/client/src/app/gauges/controls/html-table/table-property/table-property.component.ts +++ b/client/src/app/gauges/controls/html-table/table-property/table-property.component.ts @@ -8,6 +8,7 @@ import { TranslateService } from '@ngx-translate/core'; import { TableType, TableCellType, TableCellAlignType, TableRangeType, GaugeTableProperty, GaugeEvent, GaugeEventType, GaugeEventActionType, TableColumn } from '../../../../_models/hmi'; import { DataTableComponent } from '../data-table/data-table.component'; +import { FlexDeviceTagValueType } from '../../../gauge-property/flex-device-tag/flex-device-tag.component'; import { TableCustomizerComponent, TableCustomizerType } from '../table-customizer/table-customizer.component'; import { Utils } from '../../../../_helpers/utils'; import { SCRIPT_PARAMS_MAP, Script } from '../../../../_models/script'; @@ -44,6 +45,7 @@ export class TablePropertyComponent implements OnInit, OnDestroy { eventType = [Utils.getEnumKey(GaugeEventType, GaugeEventType.select)]; selectActionType = {}; actionRunScript = Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onRunScript); + actionSetTag = Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onSetTag); scripts$: Observable; constructor(private dialog: MatDialog, @@ -52,6 +54,7 @@ export class TablePropertyComponent implements OnInit, OnDestroy { // this.selectActionType[Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onwindow)] = this.translateService.instant(GaugeEventActionType.onwindow); // this.selectActionType[Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.ondialog)] = this.translateService.instant(GaugeEventActionType.ondialog); this.selectActionType[Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onRunScript)] = this.translateService.instant(GaugeEventActionType.onRunScript); + this.selectActionType[Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onSetTag)] = 'Tag'; } ngOnInit() { @@ -218,4 +221,9 @@ export class TablePropertyComponent implements OnInit, OnDestroy { } this.onTableChanged(); } + + onTagSelected(deviceTag: FlexDeviceTagValueType, event: GaugeEvent) { + event.actparam = deviceTag.variableId; + this.onTableChanged(); + } } diff --git a/client/src/assets/i18n/en.json b/client/src/assets/i18n/en.json index 7e3697b0b..b76b6597f 100644 --- a/client/src/assets/i18n/en.json +++ b/client/src/assets/i18n/en.json @@ -455,6 +455,10 @@ "table.property-header-background": "Background", "table.property-header-color": "Color", "table.property-header-fontSize": "Font size", + "table.property-toolbar": "Toolbar", + "table.property-toolbar-background": "Background", + "table.property-toolbar-color": "Text Color", + "table.property-toolbar-button-color": "Button Color", "table.property-row": "Row", "table.property-row-height": "Height", "table.property-row-background": "Background", From 172098af772892d2767e0aef978946364c080c96 Mon Sep 17 00:00:00 2001 From: Matthew Reed Date: Tue, 4 Nov 2025 11:07:07 +1300 Subject: [PATCH 02/17] Checkpoint from VS Code for coding agent session --- DEBUG_DAQ_REFRESH.md | 0 client/dist/3rdpartylicenses.txt | 1337 - ...07d467887f9cfab.ttf => Quicksand-Bold.ttf} | Bin ...154c292aef0b8.woff => Quicksand-Bold.woff} | Bin ...6475ed5c40f.woff2 => Quicksand-Bold.woff2} | Bin ...733fbfb9b1be8.ttf => Quicksand-Medium.ttf} | Bin ...651e8d4315f.woff => Quicksand-Medium.woff} | Bin ...65c586eb2.woff2 => Quicksand-Medium.woff2} | Bin ...564f0e14bf76.ttf => Quicksand-Regular.ttf} | Bin ...eecd267273.woff => Quicksand-Regular.woff} | Bin ...f6aeff59.woff2 => Quicksand-Regular.woff2} | Bin client/dist/assets/i18n/en.json | 96 +- client/dist/assets/i18n/sv.json | 3390 +- ...omoon.86abfb46e057ade8.eot => icomoon.eot} | Bin ...omoon.dfb0a89feb346906.svg => icomoon.svg} | 0 ...omoon.ce427f75e21963af.ttf => icomoon.ttf} | Bin ...oon.c1f8b59bad308d66.woff => icomoon.woff} | Bin client/dist/index.html | 18 +- ...-2x.9859cd1231006a4a.png => layers-2x.png} | Bin ...layers.ef6db8722c2c3f9a.png => layers.png} | Bin .../{logo.0e8e64e69250a450.svg => logo.svg} | 0 client/dist/main.03b59280a6e8b6a8.js | 329 - client/dist/main.js | 73937 +++ ...n.d577052aa271e13f.png => marker-icon.png} | Bin ...0a08.woff => material-icons-outlined.woff} | Bin ...fe.woff2 => material-icons-outlined.woff2} | Bin ...4c591e7.woff => material-icons-round.woff} | Bin ...fbc74.woff2 => material-icons-round.woff2} | Bin ...6c604de.woff => material-icons-sharp.woff} | Bin ...46422.woff2 => material-icons-sharp.woff2} | Bin ...07a7.woff => material-icons-two-tone.woff} | Bin ...3e.woff2 => material-icons-two-tone.woff2} | Bin ...034d2c499d9b6.woff => material-icons.woff} | Bin ...316b3fd6063.woff2 => material-icons.woff2} | Bin client/dist/polyfills.c8e7db9850a3ad8b.js | 1 - client/dist/polyfills.js | 32083 ++ ...fa3f154a77.svg => roboto-bold-webfont.svg} | 0 ...dfdee2ff33.ttf => roboto-bold-webfont.ttf} | Bin ...e35aee95.woff => roboto-bold-webfont.woff} | Bin ...b3bc78.woff2 => roboto-bold-webfont.woff2} | Bin ...56771eeee.svg => roboto-light-webfont.svg} | 0 ...84942d8ce.ttf => roboto-light-webfont.ttf} | Bin ...889dfdf.woff => roboto-light-webfont.woff} | Bin ...7ac83.woff2 => roboto-light-webfont.woff2} | Bin ...29620c02.svg => roboto-medium-webfont.svg} | 0 ...60a388c0.ttf => roboto-medium-webfont.ttf} | Bin ...888055.woff => roboto-medium-webfont.woff} | Bin ...7d2d.woff2 => roboto-medium-webfont.woff2} | Bin ...6424965.svg => roboto-regular-webfont.svg} | 0 ...f5a94d5.ttf => roboto-regular-webfont.ttf} | Bin ...61006.woff => roboto-regular-webfont.woff} | Bin ...96f.woff2 => roboto-regular-webfont.woff2} | Bin ...e22714b1fe.svg => roboto-thin-webfont.svg} | 0 ...9870f676e8.ttf => roboto-thin-webfont.ttf} | Bin ...9dd4eac0.woff => roboto-thin-webfont.woff} | Bin ...e972ef.woff2 => roboto-thin-webfont.woff2} | Bin client/dist/runtime.8ef63094e52a66ba.js | 1 - client/dist/runtime.js | 205 + client/dist/scripts.40b60f02658462e4.js | 1 - client/dist/scripts.js | 8 + client/dist/styles.css | 6364 + client/dist/styles.css.map | 1 + client/dist/styles.d30c1822f4cc23b6.css | 1 - client/dist/vendor.js | 357169 +++++++++++++++ client/src/app/_models/hmi.ts | 6 + client/src/app/_services/hmi.service.ts | 18 + client/src/app/app.module.ts | 2 + .../device-property.component.html | 6 + .../device-property.component.ts | 26 +- .../data-table/data-table.component.ts | 1463 +- .../data-table/data-table.component.ts.backup | 2287 + .../table-customizer-cell-edit.component.css | 22 + .../table-customizer-cell-edit.component.html | 134 +- .../table-customizer-cell-edit.component.ts | 118 +- .../table-customizer.component.ts | 7 +- .../table-property.component.html | 14 +- .../table-property.component.scss | 14 + .../table-property.component.ts | 10 + client/src/app/gauges/gauges.component.ts | 2 +- .../odbc-browser/odbc-browser.component.css | 1343 + .../odbc-browser/odbc-browser.component.html | 868 + .../odbc-browser/odbc-browser.component.ts | 1434 + .../app/odbc-browser/query-builder.service.ts | 458 + client/src/assets/i18n/en.json | 92 +- server/runtime/devices/index.js | 57 + server/runtime/devices/odbc/index.js | 1167 +- server/runtime/events.js | 1 + server/runtime/index.js | 21 + 88 files changed, 480992 insertions(+), 3519 deletions(-) create mode 100644 DEBUG_DAQ_REFRESH.md delete mode 100644 client/dist/3rdpartylicenses.txt rename client/dist/{Quicksand-Bold.f07d467887f9cfab.ttf => Quicksand-Bold.ttf} (100%) rename client/dist/{Quicksand-Bold.071154c292aef0b8.woff => Quicksand-Bold.woff} (100%) rename client/dist/{Quicksand-Bold.6383d6475ed5c40f.woff2 => Quicksand-Bold.woff2} (100%) rename client/dist/{Quicksand-Medium.9d2733fbfb9b1be8.ttf => Quicksand-Medium.ttf} (100%) rename client/dist/{Quicksand-Medium.0982a651e8d4315f.woff => Quicksand-Medium.woff} (100%) rename client/dist/{Quicksand-Medium.b09302365c586eb2.woff2 => Quicksand-Medium.woff2} (100%) rename client/dist/{Quicksand-Regular.8829564f0e14bf76.ttf => Quicksand-Regular.ttf} (100%) rename client/dist/{Quicksand-Regular.16adf9eecd267273.woff => Quicksand-Regular.woff} (100%) rename client/dist/{Quicksand-Regular.78819724f6aeff59.woff2 => Quicksand-Regular.woff2} (100%) rename client/dist/{icomoon.86abfb46e057ade8.eot => icomoon.eot} (100%) rename client/dist/{icomoon.dfb0a89feb346906.svg => icomoon.svg} (100%) rename client/dist/{icomoon.ce427f75e21963af.ttf => icomoon.ttf} (100%) rename client/dist/{icomoon.c1f8b59bad308d66.woff => icomoon.woff} (100%) rename client/dist/{layers-2x.9859cd1231006a4a.png => layers-2x.png} (100%) rename client/dist/{layers.ef6db8722c2c3f9a.png => layers.png} (100%) rename client/dist/{logo.0e8e64e69250a450.svg => logo.svg} (100%) delete mode 100644 client/dist/main.03b59280a6e8b6a8.js create mode 100644 client/dist/main.js rename client/dist/{marker-icon.d577052aa271e13f.png => marker-icon.png} (100%) rename client/dist/{material-icons-outlined.78a93b2079680a08.woff => material-icons-outlined.woff} (100%) rename client/dist/{material-icons-outlined.f86cb7b0aa53f0fe.woff2 => material-icons-outlined.woff2} (100%) rename client/dist/{material-icons-round.92dc7ca2f4c591e7.woff => material-icons-round.woff} (100%) rename client/dist/{material-icons-round.b10ec9db5b7fbc74.woff2 => material-icons-round.woff2} (100%) rename client/dist/{material-icons-sharp.a71cb2bf66c604de.woff => material-icons-sharp.woff} (100%) rename client/dist/{material-icons-sharp.3885863ee4746422.woff2 => material-icons-sharp.woff2} (100%) rename client/dist/{material-icons-two-tone.588d63134de807a7.woff => material-icons-two-tone.woff} (100%) rename client/dist/{material-icons-two-tone.675bd578bd14533e.woff2 => material-icons-two-tone.woff2} (100%) rename client/dist/{material-icons.4ad034d2c499d9b6.woff => material-icons.woff} (100%) rename client/dist/{material-icons.59322316b3fd6063.woff2 => material-icons.woff2} (100%) delete mode 100644 client/dist/polyfills.c8e7db9850a3ad8b.js create mode 100644 client/dist/polyfills.js rename client/dist/{roboto-bold-webfont.568ab1fa3f154a77.svg => roboto-bold-webfont.svg} (100%) rename client/dist/{roboto-bold-webfont.7c22a4dfdee2ff33.ttf => roboto-bold-webfont.ttf} (100%) rename client/dist/{roboto-bold-webfont.29ac6158e35aee95.woff => roboto-bold-webfont.woff} (100%) rename client/dist/{roboto-bold-webfont.6bcfbdc216b3bc78.woff2 => roboto-bold-webfont.woff2} (100%) rename client/dist/{roboto-light-webfont.13492ec56771eeee.svg => roboto-light-webfont.svg} (100%) rename client/dist/{roboto-light-webfont.95295ce84942d8ce.ttf => roboto-light-webfont.ttf} (100%) rename client/dist/{roboto-light-webfont.ae19119a2889dfdf.woff => roboto-light-webfont.woff} (100%) rename client/dist/{roboto-light-webfont.61fa26c99b07ac83.woff2 => roboto-light-webfont.woff2} (100%) rename client/dist/{roboto-medium-webfont.ea02241c29620c02.svg => roboto-medium-webfont.svg} (100%) rename client/dist/{roboto-medium-webfont.a40869e060a388c0.ttf => roboto-medium-webfont.ttf} (100%) rename client/dist/{roboto-medium-webfont.30344f0411888055.woff => roboto-medium-webfont.woff} (100%) rename client/dist/{roboto-medium-webfont.57fb00cab0317d2d.woff2 => roboto-medium-webfont.woff2} (100%) rename client/dist/{roboto-regular-webfont.2ce0ba9a06424965.svg => roboto-regular-webfont.svg} (100%) rename client/dist/{roboto-regular-webfont.2b0501b72f5a94d5.ttf => roboto-regular-webfont.ttf} (100%) rename client/dist/{roboto-regular-webfont.f58066a2d9061006.woff => roboto-regular-webfont.woff} (100%) rename client/dist/{roboto-regular-webfont.ae47f6f1292d196f.woff2 => roboto-regular-webfont.woff2} (100%) rename client/dist/{roboto-thin-webfont.51b221e22714b1fe.svg => roboto-thin-webfont.svg} (100%) rename client/dist/{roboto-thin-webfont.0a64479870f676e8.ttf => roboto-thin-webfont.ttf} (100%) rename client/dist/{roboto-thin-webfont.dac941649dd4eac0.woff => roboto-thin-webfont.woff} (100%) rename client/dist/{roboto-thin-webfont.0f7221f5c7e972ef.woff2 => roboto-thin-webfont.woff2} (100%) delete mode 100644 client/dist/runtime.8ef63094e52a66ba.js create mode 100644 client/dist/runtime.js delete mode 100644 client/dist/scripts.40b60f02658462e4.js create mode 100644 client/dist/scripts.js create mode 100644 client/dist/styles.css create mode 100644 client/dist/styles.css.map delete mode 100644 client/dist/styles.d30c1822f4cc23b6.css create mode 100644 client/dist/vendor.js create mode 100644 client/src/app/gauges/controls/html-table/data-table/data-table.component.ts.backup create mode 100644 client/src/app/odbc-browser/odbc-browser.component.css create mode 100644 client/src/app/odbc-browser/odbc-browser.component.html create mode 100644 client/src/app/odbc-browser/odbc-browser.component.ts create mode 100644 client/src/app/odbc-browser/query-builder.service.ts diff --git a/DEBUG_DAQ_REFRESH.md b/DEBUG_DAQ_REFRESH.md new file mode 100644 index 000000000..e69de29bb diff --git a/client/dist/3rdpartylicenses.txt b/client/dist/3rdpartylicenses.txt deleted file mode 100644 index 297532df9..000000000 --- a/client/dist/3rdpartylicenses.txt +++ /dev/null @@ -1,1337 +0,0 @@ -@angular/animations -MIT - -@angular/cdk -MIT -The MIT License - -Copyright (c) 2023 Google LLC. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -@angular/common -MIT - -@angular/core -MIT - -@angular/forms -MIT - -@angular/material -MIT -The MIT License - -Copyright (c) 2023 Google LLC. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -@angular/material-moment-adapter -MIT -The MIT License - -Copyright (c) 2023 Google LLC. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -@angular/platform-browser -MIT - -@angular/router -MIT - -@babel/runtime -MIT -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -@ctrl/ngx-codemirror -MIT -MIT License - -Copyright (c) Scott Cooper - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -@ngx-translate/core -MIT - -@ngx-translate/http-loader -MIT - -@socket.io/component-emitter - -amator -MIT -The MIT License (MIT) - -Copyright (c) 2016 Andrei Kashcha - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -angular-gridster2 -MIT -MIT License - -Copyright (c) 2023 Tiberiu Zuld - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -angular2-draggable -MIT - -bezier-easing -MIT -Copyright (c) 2014 GaĆ«tan Renaudeau - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - - -chart.js -MIT -The MIT License (MIT) - -Copyright (c) 2014-2022 Chart.js Contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -chart.js-helpers - -chartjs-plugin-datalabels -MIT -The MIT License (MIT) - -Copyright (c) 2017-2021 chartjs-plugin-datalabels contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -codemirror -MIT -MIT License - -Copyright (C) 2017 by Marijn Haverbeke and others - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -delegate -MIT - -downloadjs -MIT -MIT License - -Copyright (c) 2016 dandavis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -engine.io-client - -engine.io-parser - -eventemitter3 -MIT -The MIT License (MIT) - -Copyright (c) 2014 Arnout Kazemier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -fecha -MIT -The MIT License (MIT) - -Copyright (c) 2015 Taylor Hakes - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -file-saver -MIT -The MIT License - -Copyright Ā© 2016 [Eli Grey][1]. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - [1]: http://eligrey.com - - -flv.js -Apache-2.0 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -leaflet -BSD-2-Clause -BSD 2-Clause License - -Copyright (c) 2010-2023, Volodymyr Agafonkin -Copyright (c) 2010-2011, CloudMade -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -lodash-es -MIT -Copyright OpenJS Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. - - -material-icons -Apache-2.0 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - -moment -MIT -Copyright (c) JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - - -ng2-charts -ISC - -ngraph.events -BSD-3-Clause -Copyright (c) 2013-2025 Andrei Kashcha -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - Neither the name of the Andrei Kashcha nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -ngx-color-picker -MIT - -ngx-toastr -MIT -The MIT License (MIT) - -Copyright (c) Scott Cooper - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -panzoom -MIT -The MIT License (MIT) - -Copyright (c) 2016 - 2022 Andrei Kashcha - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -pdfmake -MIT -The MIT License (MIT) - -Copyright (c) 2014-2015 bpampuch - 2016-2025 liborm85 - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -rxjs -Apache-2.0 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - -socket.io-client - -socket.io-parser -MIT -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the 'Software'), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -tslib -0BSD -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - -uplot -MIT -The MIT License (MIT) - -Copyright (c) 2022 Leon Sorokin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -wheel -MIT -The MIT License (MIT) - -Copyright (c) 2014 Andrei Kashcha - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -xgplayer -MIT - -xgplayer-flv.js -MIT - -zone.js -MIT -The MIT License - -Copyright (c) 2010-2023 Google LLC. https://angular.io/license - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/client/dist/Quicksand-Bold.f07d467887f9cfab.ttf b/client/dist/Quicksand-Bold.ttf similarity index 100% rename from client/dist/Quicksand-Bold.f07d467887f9cfab.ttf rename to client/dist/Quicksand-Bold.ttf diff --git a/client/dist/Quicksand-Bold.071154c292aef0b8.woff b/client/dist/Quicksand-Bold.woff similarity index 100% rename from client/dist/Quicksand-Bold.071154c292aef0b8.woff rename to client/dist/Quicksand-Bold.woff diff --git a/client/dist/Quicksand-Bold.6383d6475ed5c40f.woff2 b/client/dist/Quicksand-Bold.woff2 similarity index 100% rename from client/dist/Quicksand-Bold.6383d6475ed5c40f.woff2 rename to client/dist/Quicksand-Bold.woff2 diff --git a/client/dist/Quicksand-Medium.9d2733fbfb9b1be8.ttf b/client/dist/Quicksand-Medium.ttf similarity index 100% rename from client/dist/Quicksand-Medium.9d2733fbfb9b1be8.ttf rename to client/dist/Quicksand-Medium.ttf diff --git a/client/dist/Quicksand-Medium.0982a651e8d4315f.woff b/client/dist/Quicksand-Medium.woff similarity index 100% rename from client/dist/Quicksand-Medium.0982a651e8d4315f.woff rename to client/dist/Quicksand-Medium.woff diff --git a/client/dist/Quicksand-Medium.b09302365c586eb2.woff2 b/client/dist/Quicksand-Medium.woff2 similarity index 100% rename from client/dist/Quicksand-Medium.b09302365c586eb2.woff2 rename to client/dist/Quicksand-Medium.woff2 diff --git a/client/dist/Quicksand-Regular.8829564f0e14bf76.ttf b/client/dist/Quicksand-Regular.ttf similarity index 100% rename from client/dist/Quicksand-Regular.8829564f0e14bf76.ttf rename to client/dist/Quicksand-Regular.ttf diff --git a/client/dist/Quicksand-Regular.16adf9eecd267273.woff b/client/dist/Quicksand-Regular.woff similarity index 100% rename from client/dist/Quicksand-Regular.16adf9eecd267273.woff rename to client/dist/Quicksand-Regular.woff diff --git a/client/dist/Quicksand-Regular.78819724f6aeff59.woff2 b/client/dist/Quicksand-Regular.woff2 similarity index 100% rename from client/dist/Quicksand-Regular.78819724f6aeff59.woff2 rename to client/dist/Quicksand-Regular.woff2 diff --git a/client/dist/assets/i18n/en.json b/client/dist/assets/i18n/en.json index 7e3697b0b..09a946031 100644 --- a/client/dist/assets/i18n/en.json +++ b/client/dist/assets/i18n/en.json @@ -450,11 +450,16 @@ "table.property-name": "Name", "table.property-type": "Type", "table.property-type-with-realtime": "Realtime", + "table.property-refresh-interval": "Refresh Interval", "table.property-header": "Header", "table.property-header-height": "Height", "table.property-header-background": "Background", "table.property-header-color": "Color", "table.property-header-fontSize": "Font size", + "table.property-toolbar": "Toolbar", + "table.property-toolbar-background": "Background", + "table.property-toolbar-color": "Text Color", + "table.property-toolbar-button-color": "Button Color", "table.property-row": "Row", "table.property-row-height": "Height", "table.property-row-background": "Background", @@ -483,6 +488,7 @@ "table.property-column-label": "Label", "table.property-column-variable": "Variable", "table.property-column-device": "Device", + "table.property-column-odbc": "ODBC Query", "table.property-column-timestamp": "Date/Time", "table.property-column-align": "Align", "table.property-column-width": "Width", @@ -506,13 +512,22 @@ "table.cell-row-type": "Row type", "table.cell-ts-format": "Format (DD/MM/YYYY - HH:mm:ss)", "table.cell-value-format": "Format (0.000)", + "table.cell-odbc-query": "ODBC Query", "table.cell-format": "Format", "table.cell-text": "Text", "table.cell-align-left": "Left", "table.cell-align-center": "Center", "table.cell-align-right": "Right", + "table.cell-odbc-ts-column": "ODBC Timestamp Column", + "table.cell-odbc-ts-sources": "Timestamp Sources", + "table.cell-add-ts-source": "Add timestamp source from another table", + "table.cell-remove-ts-source": "Remove this timestamp source", + "table.cell-no-ts-sources": "No timestamp sources added. Click + to add one.", + "table.cell-convert-utc-local": "Convert UTC to Local Time", + "table.cell-odbc-ts-source-name": "Timestamp Source", "table.history-filter": "Filter", + "table.rangetype-none": "None", "table.rangetype-last1h": "Last hour", "table.rangetype-last1d": "Last day", "table.rangetype-last3d": "Last 3 days", @@ -1847,5 +1862,84 @@ "msg.maps-location-name-exist": "The Maps Location name already exist!", "msg.text-name-exist": "Text name already exist!", "msg.texts-text-remove": "Would you like to remove Text '{{value}}'?", - "msg.operation-unauthorized": "Operation Unauthorized!" + "msg.operation-unauthorized": "Operation Unauthorized!", + "odbc.browser-title": "ODBC Browser", + "odbc.select-device": "Select ODBC Device", + "odbc.select-table": "Select Table", + "odbc.select-columns": "Select Columns", + "odbc.select-timestamp-column": "Select Timestamp Column", + "odbc.loading-tables": "Loading tables...", + "odbc.loading-columns": "Loading columns...", + "odbc.loading-data": "Loading data...", + "odbc.generating-query": "Generating query...", + "odbc.executing-query": "Executing query...", + "odbc.creating-table": "Creating table...", + "odbc.generated-query": "Generated Query", + "odbc.browse": "Browse ODBC", + "odbc.browser": "Browser", + "odbc.data-viewer": "Data Viewer", + "odbc.sql-editor": "SQL Editor", + "odbc.create-table": "Create Table", + "odbc.no-columns-found": "No columns found", + "odbc.no-tables-found": "No tables found", + "odbc.no-data": "No data available", + "odbc.no-results": "No results returned from query", + "odbc.select-columns-first": "Please select columns first", + "odbc.select-device-first": "Please select a device to begin", + "odbc.rows-limit": "Show rows:", + "odbc.show-rows": "Number of rows to display", + "odbc.all-rows": "All rows", + "odbc.refresh-data": "Refresh Data", + "odbc.rows-count": "Rows", + "odbc.custom-query": "Custom SQL Query", + "odbc.execute-query": "Execute Query", + "odbc.query-results": "Query Results", + "odbc.clear": "Clear", + "odbc.table-definition": "Table Definition", + "odbc.table-name": "Table Name", + "odbc.columns": "Columns", + "odbc.column-name": "Column Name", + "odbc.data-type": "Data Type", + "odbc.column": "Column", + "odbc.nullable": "Nullable", + "odbc.auto-increment": "Auto Increment", + "odbc.auto-timestamp": "Auto Timestamp", + "odbc.add-column": "Add Column", + "odbc.primary-key": "Primary Key", + "odbc.foreign-key": "Foreign Key Constraints", + "odbc.create": "Create", + "odbc.open-odbc-browser": "Open ODBC Browser", + "odbc.query-builder": "Query Builder", + "odbc.query-type": "Query Type", + "odbc.main-table": "Main Table", + "odbc.select-all": "Select All", + "odbc.select-columns": "Select Columns", + "odbc.select-table": "Select Table", + "odbc.generated-query": "Generated Query", + "odbc.joins": "JOINs", + "odbc.join-type": "Join Type", + "odbc.table": "Table", + "odbc.on-column": "On Column", + "odbc.with-column": "With Column", + "odbc.remove-join": "Remove join", + "odbc.add-join": "Add Join", + "odbc.where-conditions": "WHERE Conditions", + "odbc.operator": "Operator", + "odbc.value": "Value", + "odbc.remove-condition": "Remove condition", + "odbc.add-condition": "Add Condition", + "odbc.group-by": "GROUP BY", + "odbc.order-by": "ORDER BY", + "odbc.direction": "Direction", + "odbc.remove-order": "Remove order", + "odbc.add-order": "Add Order", + "odbc.insert-rows": "Insert Rows", + "odbc.insert-values": "Insert Values", + "odbc.add-row": "Add Row", + "odbc.remove-row": "Remove row", + "odbc.update-values": "Update Values", + "odbc.add-value": "Add Value", + "odbc.remove-value": "Remove value", + "odbc.set-values": "Set Values", + "device.open-odbc-browser": "Open ODBC Browser" } diff --git a/client/dist/assets/i18n/sv.json b/client/dist/assets/i18n/sv.json index d85031c02..fa2d32558 100644 --- a/client/dist/assets/i18n/sv.json +++ b/client/dist/assets/i18n/sv.json @@ -1,1696 +1,1696 @@ -{ - "with param": "exempel {{value}}", - - "app.home": "Hem", - "app.lab": "Labb", - "app.editor": "Redigerare", - - "header.new-project": "Nytt projekt", - "header.save-project": "Spara projekt", - "header.save-project-tooltip": "Spara alla osparade projektƤndringar", - "header.saveas-project": "Spara projekt som...", - "header.rename-project": "Byt namn pĆ„ projekt", - "header.open-project": "Ɩppna projekt", - "header.edit-project": "Redigera projekt", - "header.edit-views": "Vyredigerare", - "header.edit-devices": "AnslutningsinstƤllningar", - "header.edit-charts": "DiagraminstƤllningar", - "header.edit-layout": "LayoutinstƤllningar", - "header.edit-plugins": "Plugins", - "header.edit-users": "AnvƤndarinstƤllningar", - "header.edit-alarms": "LarminstƤllningar", - "header.edit-texts": "TextinstƤllningar", - "header.help": "FUXA HjƤlp", - "header.help-tutorial": "Guide", - "header.help-info": "Om", - "header.change-thema": "Byt tema (beta)", - "header.info-version": "Version ", - "header.theme": "Ljust/mƶrkt Tema", - - "project.name": "Projektnamn", - - "sidenav.title": "FUXA", - - "tutorial.title": "FUXA Handledning", - - "dlg.info-title": "FUXA", - - "dlg.layout-title": "LayoutinstƤllningar", - "dlg.layout-general": "AllmƤnt", - "dlg.layout-lbl-auto-resize": "Automatisk storleksƤndring", - "dlg.layout-lbl-logo": "Logotyp", - "dlg.layout-lbl-icon": "Ikon", - "dlg.layout-lbl-sview": "Startvy", - "dlg.layout-lbl-login-start": "Visa inloggning vid start", - "dlg.layout-lbl-login-overlay-color": "ƖverlƤggsfƤrg", - "dlg.layout-lbl-zoom": "Zoom", - "dlg.layout-navigation-mode": "Visa navigering", - "dlg.layout-connection-message": "Visa anslutningsfel (Toast)", - "dlg.layout-show-dev": "Visa knapp", - "dlg.layout-navigation": "Navigationssidomeny", - "dlg.layout-nav-bkcolor": "BakgrundsfƤrg", - "dlg.layout-nav-fgcolor": "FƤrg", - "dlg.layout-lbl-smode": "SidolƤge", - "dlg.layout-lbl-type": "Typ", - "dlg.layout-header": "NavigationsfƤlt i header", - "dlg.layout-header-bkcolor": "BakgrundsfƤrg", - "dlg.layout-header-fgcolor": "FƤrg", - "dlg.layout-lbl-title": "Titel", - "dlg.layout-lbl-alarms": "LƤge fƶr larm-notis", - "dlg.layout-lbl-datetime": "Datum- och tidsformat (dd/MM/yyyy - hh:mm a)", - "dlg.layout-lbl-infos": "LƤge fƶr info-notis", - "dlg.layout-lbl-font": "Typsnitt", - "dlg.layout-lbl-font-size": "Teckenstorlek", - "dlg.layout-lbl-anchor": "Riktning", - "dlg.layout-lbl-margin-left": "VƤnstermarginal", - "dlg.layout-lbl-margin-right": "Hƶgermarginal", - "dlg.layout-lbl-login-info": "Inloggnings-info", - "dlg.layout-lbl-custom-styles": "Anpassade stilar", - "dlg.layout-lbl-show-language": "Visa sprĆ„k", - - "dlg.menuitem-title": "Menyobjekt", - "dlg.menuitem-image": "[My Image...]", - "dlg.menuitem-icon": "Ikon", - "dlg.menuitem-text": "Text", - "dlg.menuitem-view": "Visa vid klick", - "dlg.menuitem-link": "LƤnk vid klick", - "dlg.menuitem-alarms": "Larm vid klick", - "dlg.menuitem-address": "LƤnkadress", - "dlg.menuitem-icons-filter": "Ikonfilter", - - "dlg.menuitem-submenu": "Undermeny", - "dlg.menuitem-add-submenu": "LƤgg till undermenyobjekt", - "dlg.menuitem-submenu-items": "Undermenyobjekt", - "sidenav.new_item": "Nytt undermenyobjekt", - - "dlg.headeritem-title": "Headerobjekt", - "dlg.headeritem-icon": "Ikon", - "dlg.headeritem-icons-filter": "Ikonfilter", - - "dlg.docproperty-title": "Vyegenskaper", - "dlg.docproperty-name": "Namn", - "dlg.docproperty-width": "Bredd", - "dlg.docproperty-height": "Hƶjd", - "dlg.docproperty-background": "Bakgrund", - "dlg.docproperty-size": "Fƶrdefinierad storlek", - "dlg.docproperty-select": "VƤlj en dimension", - "dlg.docproperty-size-320-240": "320 x 240 pixlar", - "dlg.docproperty-size-460-360": "460 x 360 pixlar", - "dlg.docproperty-size-640-480": "640 x 480 pixlar", - "dlg.docproperty-size-800-600": "800 x 600 pixlar", - "dlg.docproperty-size-1024-768": "1024 x 768 pixlar", - "dlg.docproperty-size-1280-960": "1280 x 960 pixlar", - "dlg.docproperty-size-1600-1200": "1600 x 1200 pixlar", - "dlg.docproperty-size-1920-1080": "1920 x 1080 pixlar", - "dlg.docproperty-margin": "Marginal", - "dlg.docproperty-align": "Justering", - "dlg.docproperty-align-placeholder": "Justering pĆ„ sidan", - "dlg.docproperty-align-topCenter": "Topp", - "dlg.docproperty-align-middleCenter": "Mitten", - "dlg.docproperty-gridtype": "RutnƤtslayout", - "dlg.docproperty-gridtype-placeholder": "Typ av rutnƤtslayout", - "dlg.docproperty-gridtype-fit": "Anpassa", - "dlg.docproperty-gridtype-scrollVertical": "Rullning vertikal", - "dlg.docproperty-gridtype-scrollHorizontal": "Rullning horisontell", - "dlg.docproperty-gridtype-fixed": "Fast", - "dlg.docproperty-gridtype-verticalFixed": "Fast vertikal", - "dlg.docproperty-gridtype-horizontalFixed": "Fast horisontell", - - "dlg.docname-title": "Vy-namn", - "dlg.docname-name": "Namn", - "dlg.docproperty-type": "Vy-typ", - "dlg.item-title": "Namn", - "dlg.item-name": "Namn", - "dlg.item-req-name": "Funktionsnamn (Inga mellanslag eller siffror tillĆ„tna)", - "dlg.item-name-error": "Namnet finns redan!", - "dlg.parameter-title": "Parameter", - - "dlg.tagname-title": "Taggnamn", - "dlg.tagname-name": "Namn", - - "dlg.linkproperty-title": "Skapa hyperlƤnk", - "dlg.linkproperty-url": "HyperlƤnk URL", - - "dlg.login-title": "Logga in...", - "dlg.logout-btn": "Logga ut", - - "dlg.ok": "OK", - "dlg.cancel": "AVBRYT", - "dlg.close": "STƄNG", - "dlg.apply": "TILLƄMPA", - - "dlg.userproperty-title": "AnvƤndare", - "dlg.userproperty-groups": "Behƶrighetsgrupper", - "dlg.userproperty-roles": "Behƶrighetsroller", - "dlg.useraccess-groups": "Behƶrighet (tom = full tillgĆ„ng fƶr alla)", - "dlg.userproperty-language": "SprĆ„k", - "dlg.userproperty-start": "Startvy", - - "dlg.gauge-permission-title": "Behƶrighet", - "dlg.gauge-permission-label": "(tom = full tillgĆ„ng fƶr alla)", - "dlg.gauge-permission-show": "Visa", - "dlg.gauge-permission-enabled": "Aktiverad", - - "date.range-start": "Startdatum", - "date.range-end": "Slutdatum", - - "general.search-up": "SƖK", - "general.close": "StƤng", - "general.search": "Sƶk...", - "general.search-notfound": "Inga alternativ hittades", - "general.username": "AnvƤndarnamn", - "general.fullname": "FullstƤndigt namn", - "general.password": "Lƶsenord", - "general.clientId": "Klient-ID", - "general.authority": "Behƶrighet", - "general.grant-type": "Grant-typ", - "general.usergroups": "LƤsĆ„tkomst,Operatƶr,Ingenjƶr,Supervisor,Manager,F,G,Administratƶr", - "general.enabled": "Aktiverad", - "general.disabled": "Inaktiverad", - "general.align-left": "VƤnster", - "general.align-center": "Mitten", - "general.align-right": "Hƶger", - "general-left": "VƤnster", - "general-top": "Topp", - "general-x": "X", - "general-y": "Y", - "general.monday": "MĆ„ndag", - "general.monday-short": "MĆ„n", - "general.tuesday": "Tisdag", - "general.tuesday-short": "Tis", - "general.wednesday": "Onsdag", - "general.wednesday-short": "Ons", - "general.thursday": "Torsdag", - "general.thursday-short": "Tors", - "general.friday": "Fredag", - "general.friday-short": "Fre", - "general.saturday": "Lƶrdag", - "general.saturday-short": "Lƶr", - "general.sunday": "Sƶndag", - "general.sunday-short": "Sƶn", - "general.save-template": "Spara som mall", - "general.import-template": "Importera frĆ„n mall", - - "tester.title": "Variabel", - "tester.send": "Skicka", - - "item.overlaycolor-none": "Ingen", - "item.overlaycolor-black": "Svart", - "item.overlaycolor-white": "Vit", - - "item.navsmode-none": "None", - "item.navsmode-push": "Push", - "item.navsmode-over": "Over", - "item.navsmode-fix": "Fixed", - - "item.navtype-icons": "Ikoner", - "item.navtype-text": "Text", - "item.navtype-icons-text-block": "Ikoner & Text (block)", - "item.navtype-icons-text-inline": "Ikoner & Text (inline)", - - "item.headertype-button": "Knapp", - "item.headertype-label": "Etikett", - "item.headertype-image": "Bild", - "item.headeranchor-left": "VƤnster", - "item.headeranchor-right": "Hƶger", - "item.headeranchor-center": "Mitten", - - "item.notifymode-hide": "Dƶlj", - "item.notifymode-fix": "Fast", - "item.notifymode-float": "Skjut", - - "item.logininfo-type-nothing": "Ingenting", - "item.logininfo-type-username": "AnvƤndarnamn", - "item.logininfo-type-fullname": "FullstƤndigt namn", - "item.logininfo-type-both": "AnvƤndarnamn & FullstƤndigt namn", - - "item.language-show-mode-nothing": "Dƶlj", - "item.language-show-mode-simple": "Visa", - "item.language-show-mode-key": "Visa med nyckel", - "item.language-show-mode-fullname": "Visa med fullstƤndigt namn", - - "item.zoommode-disabled": "Inaktiverad", - "item.zoommode-enabled": "Manuellt", - "item.zoommode-autoresize": "Automatisk storleksƤndring", - - "item.headerbarmode-hide": "Dƶlj", - "item.headerbarmode-show": "Visa", - - "dlg.layout-input-dialog": "DialoglƤge fƶr inmatningsfƤlt", - "item.inputmode-disabled": "Inaktiverad", - "item.inputmode-enabled": "Dialog", - "item.inputmode-keyboard": "Virtuellt tangentbord", - "item.inputmode-keyboard-full-screen": "Virtuellt tangentbord helskƤrm", - - "chart.config-title": "DiagraminstƤllningar", - "chart.config-charts": "Diagram", - "chart.config-devices": "Enheter", - "chart.config-tags": "Taggar", - "chart.config-lines": "Diagramlinje", - "chart.config-line-name": "Namn", - "chart.config-line-label": "Etikett", - "chart.config-line-yaxis": "Y-axel", - "chart.config-line-color": "FƤrg", - "chart.config-name-title": "Diagram", - "chart.config-name": "Namn", - "chart.config-rename": "Byt namn", - "chart.config-delete": "Ta bort", - "chart.config-addline": "LƤgg till linje", - "chart.config-line-interpolation": "Interpolation", - "chart.config-line-fill": "Fyll", - "chart.config-interpo-linear": "linjƤr", - "chart.config-interpo-stepAfter": "steg efter", - "chart.config-interpo-stepBefore": "steg fƶre", - "chart.config-interpo-spline": "spline", - "chart.config-line-width": "Linjebredd", - "chart.config-line-gap": "Fyll luckor", - "chart.config-line-add-zone": "LƤgg till zon", - "chart.config-line-zone-min": "Min", - "chart.config-line-zone-max": "Max", - "chart.config-line-zone-stroke": "Linje", - "chart.config-line-zone-fill": "Fyll", - - "chart.property-data": "Data", - "chart.property-props": "Egenskap", - "chart.property-layout": "Layout", - "chart.property-name": "Namn", - "chart.property-chart": "Diagram att visa", - "chart.property-newchart": "Nytt diagram...", - "chart.property-chart-type": "VisningslƤge", - "chart.property-realtime-max": "Max minuter", - "chart.viewtype-realtime1": "Realtid", - "chart.viewtype-history": "Historik", - "chart.viewtype-custom": "Anpassad", - "chart.property-general": "AllmƤnt", - "chart.property-font": "Typsnitt", - "chart.property-font.titlesize": "Titelstorlek", - "chart.property-font.axissize": "Axelstorlek", - "chart.property-font.legendsize": "Legendstorlek", - "chart.property-theme": "Tema", - "chart.property-color.background": "Bakgrund", - "chart.property-color.text": "TextfƤrg", - "chart.property-color.grid": "RutnƤtsfƤrg", - "chart.property-color.legend": "LegendfƤrg", - "chart.property-legend.mode": "LegendvisningslƤge", - "chart.property-date-last-range": "Datumintervall", - "chart.property-refresh-interval": "Uppdateringsintervall (min.)", - "chart.property-hide-toolbar": "Dƶlj verktygsfƤlt", - "chart.property-thouch-zoom": "Pekzoom", - "chart.property-load-old-values": "Ladda historik", - "chart.property-date.format": "Datumformat", - "chart.property-time.format": "Tidsformat", - "chart.property-axis": "Axel", - "chart.property-xaxis": "X-axel", - "chart.property-axis-x": "Etikett", - "chart.property-yaxis": "Y-axel", - "chart.property-axis-y1": "Y1 etikett", - "chart.property-axis-y1-min": "Y1 Min", - "chart.property-axis-y1-max": "Y1 Max", - "chart.property-axis-y2": "Y2 etikett", - "chart.property-axis-y2-min": "Y2 Min", - "chart.property-axis-y2-max": "Y2 Max", - "chart.property-axis-y3": "Y3 etikett", - "chart.property-axis-y3-min": "Y3 Min", - "chart.property-axis-y3-max": "Y3 Max", - "chart.property-axis-y4": "Y4 etikett", - "chart.property-axis-y4-min": "Y4 Min", - "chart.property-axis-y4-max": "Y4 Max", - "chart.property-script": "ScriptdatakƤlla", - - "chart.rangetype-last8h": "Senaste 8 timmarna", - "chart.rangetype-last1d": "Senaste dygnet", - "chart.rangetype-last3d": "Senaste 3 dagarna", - "chart.rangetype-last1w": "Senaste veckan", - - "chart.legend-always": "alltid", - "chart.legend-follow": "fƶljer", - "chart.legend-bottom": "botten", - "chart.legend-never": "aldrig", - - "chart.labels-serie": "Serie", - "chart.labels-time": "Tid", - "chart.labels-title": "Titel", - - "graph.config-title": "GrafinstƤllningar", - "graph.config-rename": "Byt namn", - "graph.config-source-tag": "LƤgg till kƤlltagg", - "graph.config-source-name": "Namn", - "graph.config-source-label": "Etikett", - "graph.config-category": "Kategori", - "graph.config-device": "Enhet", - "graph.config-bar-color": "Kant", - "graph.config-bar-fill": "Fyllning", - "graph.property-xtype": "Kategori fƶr X-axel", - "graph.property-sources": "KƤllor (Taggar)", - "graph.bar-xtype-value": "VƤrden", - "graph.bar-xtype-date": "Datum och tid", - "graph.property-fnctype": "Funktionstyp", - "graph.bar-date-fnc-value-integral": "Summa (Integral)", - "graph.bar-date-fnc-hour-integral": "Timvis summa (Integral)", - - "graph.property-data": "Data", - "graph.property-name": "Namn", - "graph.property-general": "AllmƤnt", - "graph.property-title": "Titel", - "graph.property-title-font": "Teckenstorlek", - "graph.property-title-show": "Visa", - "graph.property-title-color": "Titel", - "graph.property-layout": "Layout", - "graph.property-graph": "Graf att visa", - "graph.property-props": "Egenskap", - "graph.property-newgraph": "Ny graf...", - "graph.property-date-last-range": "Datumintervall", - "graph.property-date-group": "Grupp", - "graph.property-offline": "Online", - "graph.property-graph-oriantation": "Orientering", - "graph.property-ori-vartical": "Vertikal", - "graph.property-ori-horizontal": "Horisontell", - "graph.property-decimals": "Decimaler", - "graph.property-yaxis-min": "Min", - "graph.property-yaxis-max": "Max", - "graph.property-stepsize": "Stegstorlek", - "graph.property-yaxis": "VƤrdeaxel", - "graph.property-yaxis-fontsize": "Teckenstorlek", - "graph.property-yaxis-show": "Visa", - "graph.property-yaxis-color": "VƤrde", - "graph.property-xaxis-fontsize": "Teckenstorlek", - "graph.property-xaxis": "Kategori-axel", - "graph.property-xaxis-show": "Visa", - "graph.property-xaxis-color": "Kategori", - "graph.property-theme": "Tema", - "graph.property-theme-type": "Typ", - "graph.property-gridline": "Visa rutnƤt", - "graph.property-grid-color": "RutnƤtsfƤrg", - "graph.property-theme-owner": "Anpassa", - "graph.property-theme-light": "Ljus", - "graph.property-theme-dark": "Mƶrk", - "graph.property-legend": "Legend", - "graph.property-legend-display": "Position", - "graph.property-legend-top": "Topp", - "graph.property-legend-left": "VƤnster", - "graph.property-legend-bottom": "Botten", - "graph.property-legend-right": "Hƶger", - "graph.property-legend-show": "Visa", - "graph.property-legend-fontsize": "Teckensnitt", - "graph.property-legend-align": "Justering", - "graph.property-legend-center": "Mitten", - "graph.property-legend-start": "Start", - "graph.property-legend-end": "Slut", - "graph.property-legend-color": "Legend", - "graph.property-border": "Kantstorlek", - "graph.property-tooltip": "Visa verktygstips", - "graph.property-datalabels": "Datalabel", - "graph.property-datalabels-color": "Datalabel", - "graph.property-datalabels-show": "Visa", - "graph.property-datalabels-fontsize": "Teckenstorlek", - "graph.property-datalabels-align": "Justering", - - "graph.rangetype-last1h": "Senaste timmen", - "graph.rangetype-last1d": "Senaste dygnet", - "graph.rangetype-last3d": "Senaste 3 dagarna", - "graph.rangetype-last1w": "Senaste veckan", - "graph.rangetype-last1m": "Senaste mĆ„naden", - - "graph.grouptype-hours": "Timmar", - "graph.grouptype-days": "Dagar", - - "iframe.property-data": "Data", - "iframe.property-address": "Adress", - "iframe.property-name": "Namn", - - "panel.property-data": "Data", - "panel.property-view-name": "Vy namn", - "panel.property-name": "Namn", - "panel.property-scalemode": "SkalningslƤge", - "panel.property-scalemode-none": "Ingen", - "panel.property-scalemode-contain": "Anpassa", - "panel.property-scalemode-stretch": "StrƤck ut", - - "table.property-title": "InstƤllningar fƶr datatabell", - "table.property-data": "Data", - "table.property-date-last-range": "Datumintervall", - "table.property-name": "Namn", - "table.property-type": "Typ", - "table.property-type-with-realtime": "Realtid", - "table.property-header": "Rubrik", - "table.property-header-height": "Hƶjd", - "table.property-header-background": "Bakgrund", - "table.property-header-color": "FƤrg", - "table.property-header-fontSize": "Teckenstorlek", - "table.property-row": "Rad", - "table.property-row-height": "Hƶjd", - "table.property-row-background": "Bakgrund", - "table.property-row-color": "FƤrg", - "table.property-row-fontSize": "Teckenstorlek", - "table.property-selection": "Val", - "table.property-layout": "Layout", - "table.property-filter": "Filter", - "table.property-paginator": "Paginering", - "table.property-paginator-items-per-page": "Rader per sida", - "table.property-paginator-next-page": "NƤsta sida", - "table.property-paginator-prev-page": "FƶregĆ„ende sida", - "table.property-paginator-of-label": "Av", - "table.property-daterange": "Datumintervall", - "table.property-gridline": "Visa rutnƤt", - "table.property-type-data": "Datatabell", - "table.property-type-history": "Historiktabell", - "table.property-type-alarms": "Larmtabell", - "table.property-type-alarms-history": "Larminformation", - "table.property-type-reports": "Rapporttabell", - "table.property-grid-color": "RutnƤtsfƤrg", - "table.property-cols": "Kolumner", - "table.property-rows": "Rader", - "table.property-column-type": "Kolumntyp", - "table.property-column-name": "Kolumnnamn", - "table.property-column-label": "Etikett", - "table.property-column-variable": "Variabel", - "table.property-column-device": "Enhet", - "table.property-column-timestamp": "Datum/Tid", - "table.property-column-align": "Justering", - "table.property-column-width": "Bredd", - "table.property-row-type": "Radtyp", - "table.property-customize-tooltip": "Tabellanpassare", - "table.customize-title": "Tabellanpassare", - "table.customize-column-edit": "Redigera kolumn", - "table.customize-column-add": "LƤgg till kolumn", - "table.customize-column-remove": "Ta bort kolumn", - "table.customize-row-edit": "Redigera rad", - "table.customize-row-add": "LƤgg till rad", - "table.customize-row-remove": "Ta bort rad", - "table.cell-column-name": "Kolumnnamn", - "table.column-dialog-title": "Kolumn", - "table.row-dialog-title": "Rad", - "table.cell-column-type": "Kolumntyp", - "table.cell-row-type": "Radtyp", - "table.cell-ts-format": "Format (DD/MM/YYYY - HH:mm:ss)", - "table.cell-value-format": "Format (0.000)", - "table.cell-format": "Format", - "table.cell-text": "Text", - "table.cell-align-left": "VƤnster", - "table.cell-align-center": "Mitten", - "table.cell-align-right": "Hƶger", - - "table.history-filter": "Filter", - "table.rangetype-last1h": "Senaste timmen", - "table.rangetype-last1d": "Senaste dagen", - "table.rangetype-last3d": "Senaste 3 dagarna", - - "table.alarms-title": "Tabell Larm", - "table.alarms-history-title": "Tabell Larminformation", - "table.alarm-columns": "Larmkolumner", - "table.alarm-filter": "Larmfilter", - "table.alarm-priority": "Prioritet", - "table.alarm-tags": "Taggar", - - "table.reports-title": "Tabell Rapporter", - "table.report-columns": "Rapportkolumner", - "table.report-view-name": "Namn", - "table.report-view-ontime": "Skapad", - "table.report-view-download": "Ladda ner", - "table.report-view-delete": "Ta bort", - "table.report-filter": "Rapportfilter", - "table.report-filter-name": "Namn", - "table.report-filter-count": "Max.", - - "editor.view-svg": "Arbetsyta/SVG", - "editor.view-cards": "Fler vybehĆ„llare", - "editor.view-maps": "Kartor", - "editor.views": "Vyer", - "editor.resources": "Resurser", - "editor.view-delete": "Ta bort", - "editor.view-rename": "Byt namn", - "editor.view-property": "Egenskap", - "editor.view-clone": "Klona", - "editor.view-export": "Exportera", - "editor.view-add": "LƤgg till vy", - "editor.image-add": "LƤgg till bild", - "editor.view-import": "Importera vy", - "editor.general": "AllmƤnna symboler", - "editor.shape": "Grafiska symboler", - "editor.processeng": "Processautomation", - "editor.animated": "Animation", - "editor.controls": "Interaktiva symboler", - "editor.controls-input": "IndatavƤrde", - "editor.controls-input-settings": "InstƤllningar fƶr indata", - "editor.controls-output": "Utdata", - "editor.controls-output-settings": "InstƤllningar fƶr utdata", - "editor.controls-button": "Knapp", - "editor.controls-button-settings": "KnappinstƤllningar", - "editor.controls-select": "VƤlj vƤrde", - "editor.controls-select-settings": "VƤlj instƤllningar", - "editor.controls-progress": "MƤtare (Bar)", - "editor.controls-progress-settings": "InstƤllningar fƶr StapelmƤtare", - "editor.controls-semaphore": "MƤtare (LED)", - "editor.controls-semaphore-settings": "InstƤllningar fƶr LedmƤtare", - "editor.controls-chart": "Diagram", - "editor.controls-chart-settings": "DiagraminstƤllningar", - "editor.controls-bag": "CirkulƤr mƤtare", - "editor.controls-bag-settings": "InstƤllningar fƶr cirkulƤr mƤtare", - "editor.controls-pipe": "Rƶr", - "editor.controls-pipe-settings": "RƶrinstƤllningar", - "editor.controls-slider": "Reglage", - "editor.controls-slider-settings": "InstƤllningar fƶr reglage", - "editor.controls-shape-settings": "ForminstƤllningar", - "editor.controls-html-switch-settings": "VƤxlare instƤllningar", - "editor.controls-switch": "VƤxlare", - "editor.controls-graphbar": "Stapeldiagram", - "editor.controls-graph-bar-settings": "InstƤllningar fƶr stapeldiagram", - "editor.controls-graphpie": "Cirkeldiagram", - "editor.controls-graph-pie-settings": "InstƤllningar fƶr cirkeldiagram", - "editor.controls-iframe": "Iframe", - "editor.controls-iframe-settings": "Iframe-instƤllningar", - "editor.controls-table": "Tabell", - "editor.header-item-settings": "HeaderobjektinstƤllningar", - "editor.controls-image": "Bild (lƤnk)", - "editor.controls-panel": "Panel", - "editor.controls-panel-settings": "PanelinstƤllningar", - - "editor.layout-settings": "LayoutinstƤllningar", - - "editor.interactivity": "Interaktivitet", - "editor.interactivity-id": "id:", - "editor.interactivity-id-title": "Identifiera elementet", - "editor.interactivity-class": "klass:", - "editor.interactivity-class-title": "Elementklass", - "editor.interactivity-name": "namn", - "editor.edit-bind-of-tags": "Redigera bindning av taggar", - - "editor.cmenu-property": "Egenskap", - "editor.cmenu-cut": "Klipp ut", - "editor.cmenu-copy": "Kopiera", - "editor.cmenu-paste": "Klistra in", - "editor.cmenu-paste-place": "Klistra in pĆ„ plats", - "editor.cmenu-delete": "Ta bort", - "editor.cmenu-group": "Gruppera", - "editor.cmenu-ungroup": "Avgruppera", - "editor.cmenu-bring-front": "Flytta lƤngst fram", - "editor.cmenu-bring-forward": "Flytta framĆ„t", - "editor.cmenu-send-backward": "Flytta bakĆ„t", - "editor.cmenu-send-back": "Flytta lƤngst bak", - "editor.cmenu-layer-duplicate": "Duplicera lager...", - "editor.cmenu-layer-delete": "Ta bort lager", - "editor.cmenu-layer-marge-down": "Sammanfoga nedĆ„t", - "editor.cmenu-layer-marge-all": "Sammanfoga alla", - "editor.cmenu-unlock": "LĆ„s upp", - "editor.cmenu-lock": "LĆ„s", - - "editor.transform": "Transformera", - "editor.transform-x": "x", - "editor.transform-x-title": "Ƅndra X-koordinat", - "editor.transform-y": "y", - "editor.transform-y-title": "Ƅndra Y-koordinat", - "editor.transform-x1": "x1", - "editor.transform-x1-title": "Ƅndra linjens start-x-koordinat", - "editor.transform-y1": "y1", - "editor.transform-y1-title": "Ƅndra linjens start-y-koordinat", - "editor.transform-x2": "x2", - "editor.transform-x2-title": "Ƅndra linjens slut-x-koordinat", - "editor.transform-y2": "y2", - "editor.transform-y2-title": "Ƅndra linjens slut-y-koordinat", - "editor.transform-rect-width-title": "Ƅndra rektangelns bredd", - "editor.transform-width": "bredd", - "editor.transform-rect-height-title": "Ƅndra rektangelns hƶjd", - "editor.transform-height": "hƶjd", - "editor.transform-rect-radius-title": "Ƅndra hƶrnradie fƶr rektangel", - "editor.transform-radiuscorner": "hƶrnradie", - "editor.transform-circlecx": "cx", - "editor.transform-circlecx-title": "Ƅndra cirkelns cx-koordinat", - "editor.transform-circlecy": "cy", - "editor.transform-circlecy-title": "Ƅndra cirkelns cy-koordinat", - "editor.transform-circler": "r", - "editor.transform-circler-title": "Ƅndra cirkelns radie", - "editor.transform-ellipsecx": "cx", - "editor.transform-ellipsecx-title": "Ƅndra ellipsens cx-koordinat", - "editor.transform-ellipsecy": "cy", - "editor.transform-ellipsecy-title": "Ƅndra ellipsens cy-koordinat", - "editor.transform-ellipserx": "rx", - "editor.transform-ellipserx-title": "Ƅndra ellipsens x-radie", - "editor.transform-ellipsery": "ry", - "editor.transform-ellipsery-title": "Ƅndra ellipsens y-radie", - "editor.transform-fontfamily": "typsnitt", - "editor.transform-font-serif": "Serif", - "editor.transform-font-sansserif": "Sans-serif", - "editor.transform-font-cursive": "Kursiv", - "editor.transform-font-fantasy": "Fantasy", - "editor.transform-font-monospace": "Monospace", - "editor.transform-fontsize": "teckenstorlek", - "editor.transform-fontsize-title": "Ƅndra teckenstorlek", - "editor.transform-textalign": "textjustering", - "editor.transform-left": "vƤnster", - "editor.transform-center": "centrera", - "editor.transform-right": "hƶger", - "editor.transform-image-width-title": "Ƅndra bildens bredd", - "editor.transform-image-height-title": "Ƅndra bildens hƶjd", - "editor.transform-url": "url", - "editor.transform-image-url-title": "Ƅndra URL", - "editor.transform-change-image": "Byt bild", - "editor.transform-change-image-title": "OBS: Den hƤr bilden kan inte bƤddas in. Den Ƥr beroende av sƶkvƤgen fƶr att visas", - "editor.transform-angle": "vinkel", - "editor.transform-angle-title": "Ƅndra rotationsvinkel", - "editor.transform-hide": "Dƶlj", - "editor.transform-lock": "LĆ„s", - - "editor.align": "Justera", - "editor.align-left-title": "Justera vƤnster", - "editor.align-center-title": "Centrera", - "editor.align-right-title": "Justera hƶger", - "editor.align-top-title": "Justera topp", - "editor.align-middle-title": "Justera mitten", - "editor.align-bottom-title": "Justera botten", - - "editor.stroke": "Kantlinje", - "editor.stroke-width": "kantlinjebredd", - "editor.stroke-width-title": "Ƅndra kantlinjebredd med 1, shift-klicka fƶr att Ƥndra med 0,1", - "editor.stroke-style": "kantlinjestil", - "editor.stroke-style-title": "Ƅndra kantlinjens streckstil", - "editor.stroke-joinmiter-title": "SkƤrningspunkt Miter", - "editor.stroke-joinround-title": "SkƤrningspunkt Rund", - "editor.stroke-joinbevel-title": "SkƤrningspunkt Fas", - "editor.stroke-capbutt-title": "Linjeavslut Butt", - "editor.stroke-capsquare-title": "Linjeavslut Kvadrat", - "editor.stroke-capround-title": "Linjeavslut Rund", - "editor.stroke-shadow": "Skugga", - "editor.stroke-shadow-title": "Med skugga", - - "editor.marker": "Markƶr", - "editor.marker-start": "start", - "editor.marker-start-title": "VƤlj startmarkƶrtyp", - "editor.marker-middle": "mitten", - "editor.marker-middle-title": "VƤlj mittmarkƶrtyp", - "editor.marker-end": "slut", - "editor.marker-end-title": "VƤlj slutmarkƶrtyp", - - "editor.hyperlink": "HyperlƤnk", - "editor.hyperlink-url": "url", - - "editor.tools-launch-title": "Starta aktuell vy", - "editor.tools-select": "Markeringsverktyg", - "editor.tools-pencil": "Pennverktyg", - "editor.tools-line": "Linjeverktyg", - "editor.tools-rectangle": "Rektangelverktyg", - "editor.tools-circle": "Cirkelverktyg", - "editor.tools-ellipse": "Ellipsverktyg", - "editor.tools-path": "Bana-verktyg", - "editor.tools-text": "Textverktyg", - "editor.tools-image": "Bildverktyg (inbƤddad)", - - "editor.tools-zoom-title": "Zoomverktyg [Ctrl+Upp/Ner]", - "editor.tools-grid-title": "Visa/Dƶlj rutnƤt", - "editor.tools-undo-title": "ƅngra [Z]", - "editor.tools-redo-title": "Gƶr om [Y]", - "editor.tools-clone-title": "Duplicera element [D]", - "editor.tools-delete-title": "Ta bort element [Delete/Backspace]", - "editor.tools-movebottom-title": "Flytta lƤngst bak [Ctrl+Shift+[ ]", - "editor.tools-movetop-title": "Flytta lƤngst fram [Ctrl+Shift+] ]", - "editor.tools-topath-title": "Konvertera till bana", - "editor.tools-clonemulti-title": "Kloningsverktyg [C]", - "editor.tools-deletemulti-title": "Ta bort valda element [Delete/Backspace]", - "editor.tools-group-title": "Gruppera element [G]", - "editor.tools-alignleft-title": "Justera vƤnster", - "editor.tools-aligncenter-title": "Centrera", - "editor.tools-alignright-title": "Justera hƶger", - "editor.tools-aligntop-title": "Justera topp", - "editor.tools-alignmiddle-title": "Justera mitten", - "editor.tools-alignbottom-title": "Justera botten", - "editor.tools-ungroup-title": "Avgruppera element [G]", - "editor.tools-hyperlink-title": "Skapa hyperlƤnk", - "editor.tools-svg-selector": "ObjektlistvƤljare", - - "editor.settings-general": "AllmƤnt", - "editor.settings-events": "HƤndelser", - "editor.settings-actions": "ƅtgƤrder", - - "tags.ids-config-title": "Tags-Ids referens", - - "svg.selector.property-title": "Visa objektlista", - - "tutorial.editor-keyboard-shortcuts": "Kortkommandon i redigeraren", - - "shapes.action-hide": "Dƶlj", - "shapes.action-show": "Visa", - "shapes.action-blink": "Blinka", - "shapes.action-stop": "Stoppa", - "shapes.action-clockwise": "Vrid medurs", - "shapes.action-anticlockwise": "Vrid moturs", - "shapes.action-downup": "Upp och ner", - "shapes.action-rotate": "Rotera", - "shapes.action-move": "Flytta", - "shapes.event-click": "Klick", - "shapes.event-dblclick": "Dubbelklick", - "shapes.event-mouseup": "Musknapp slƤppt", - "shapes.event-mousedown": "Musknapp nedtryckt", - "shapes.event-mouseover": "Mus ƶver", - "shapes.event-mouseout": "Mus lƤmnar", - "shapes.event-enter": "Enter", - "shapes.event-select": "Markera", - "shapes.event-onpage": "Ɩppna Sida", - "shapes.event-onwindow": "Ɩppna Kort", - "shapes.event-ondialog": "Ɩppna Dialog", - "shapes.event-oniframe": "Ɩppna iframe", - "shapes.event-oncard": "Ɩppna Fƶnster", - "shapes.event-onopentab": "Ɩppna Flik", - "shapes.event-onsetvalue": "SƤtt vƤrde", - "shapes.event-ontogglevalue": "VƤxla vƤrde", - "shapes.event-onsetinput": "SƤtt frĆ„n Inmatning", - "shapes.event-onclose": "StƤng", - "shapes.event-onopen": "Ɩppna", - "shapes.event-onrunscript": "Kƶr skript", - "shapes.event-setvalue-set": "sƤtt", - "shapes.event-setvalue-add": "ƶka", - "shapes.event-setvalue-remove": "minska", - "shapes.event-address-link": "LƤnk", - "shapes.event-address-resource": "Resurs", - "shapes.event-onmonitor": "Ɩvervaka", - "shapes.event-onViewToPanel": "SƤtt vy till panel", - "shapes.event-onLoad": "Vid inladdning", - "shapes.event-relativefrom-window": "Fƶnster", - "shapes.event-relativefrom-mouse": "Mus", - - "pipe.property-title": "RƶrinstƤllningar", - "pipe.property-data": "Data", - "pipe.property-style": "Stil", - "pipe.property-props": "Egenskaper", - "pipe.property-border-width": "Kantbredd", - "pipe.property-border-color": "KantfƤrg", - "pipe.property-pipe-width": "Rƶrbredd", - "pipe.property-pipe-color": "RƶrfƤrg", - "pipe.property-content-width": "InnehĆ„llsbredd", - "pipe.property-content-color": "InnehĆ„llsfƤrg", - "pipe.property-content-space": "InnehĆ„llsstreck", - "pipe.action-hide-content": "Dƶlj innehĆ„ll", - "pipe.property-style-animation": "Animationsbild", - "pipe.property-style-animation-image": "VƤlj bild (SVG)", - "pipe.property-style-animation-count": "Antal bilder", - "pipe.property-style-animation-delay": "Animationsfƶrdrƶjning (ms)", - - "slider.property-props": "Egenskaper", - "slider.property-horizontal": "Horisontell", - "slider.property-vertical": "Vertikal", - "slider.property-orientation": "Orientering", - "slider.property-direction": "Riktning", - "slider.property-rtl": "hƶger-till-vƤnster", - "slider.property-ltr": "vƤnster-till-hƶger", - "slider.property-min": "Min", - "slider.property-max": "Max", - "slider.property-step": "Steg", - "slider.property-font": "Teckensnitt", - "slider.property-background": "Bakgrund", - "slider.property-scala": "Skala", - "slider.property-marker-color": "FƤrg", - "slider.property-subdivisions": "Underavdelningar (%)", - "slider.property-subdivisions-height": "Hƶjd", - "slider.property-subdivisions-width": "Bredd", - "slider.property-divisions": "Avdelningar (%)", - "slider.property-divisions-height": "Hƶjd", - "slider.property-divisions-width": "Bredd", - "slider.property-font-size": "Skalans teckenstorlek", - "slider.property-tooltip": "Verktygstips", - "slider.property-tooltip-none": "Ingen", - "slider.property-tooltip-hide": "Dƶlj", - "slider.property-tooltip-show": "Visa", - "slider.property-tooltip-decimals": "Decimaler", - "slider.property-tooltip-background": "Bakgrund", - "slider.property-tooltip-color": "TextfƤrg", - "slider.property-tooltip-font-size": "Teckenstorlek fƶr verktygstips", - "slider.property-slider-color": "FƤrg fƶr koppling", - "slider.property-slider-background": "BasfƤrg", - "slider.property-slider-handle": "PekarfƤrg", - - "html-switch.property-off-value": "Av-vƤrde", - "html-switch.property-on-value": "PĆ„-vƤrde", - "html-switch.property-on-background": "PĆ„-bakgrund", - "html-switch.property-off-background": "Av-bakgrund", - "html-switch.property-off-text": "Av-text", - "html-switch.property-on-text": "PĆ„-text", - "html-switch.property-on-slider-color": "PĆ„-glidfƤrg", - "html-switch.property-off-slider-color": "Av-glidfƤrg", - "html-switch.property-radius": "Hƶrnradie", - "html-switch.property-off-text-color": "Av-textfƤrg", - "html-switch.property-on-text-color": "PĆ„-textfƤrg", - "html-switch.property-font-size": "Teckenstorlek", - "html-switch.property-font": "Teckensnitt", - - "html-input.min": "Min", - "html-input.max": "Max", - "html-input.out-of-range": "VƤrde utanfƶr tillĆ„tet intervall", - "html-input.not-a-number": "VƤrdet Ƥr inte ett nummer", - - "editor.tools-zoomlevel-title": "ZoomnivĆ„", - "editor.tools-zoomlevel-fitcanvas": "Anpassa till arbetsyta", - "editor.tools-zoomlevel-fitsection": "Anpassa till markering", - "editor.tools-zoomlevel-fitcontent": "Anpassa till allt innehĆ„ll", - "editor.tools-fillcolor-title": "Ƅndra fyllnadsfƤrg", - "editor.tools-strokecolor-title": "Ƅndra kantfƤrg", - "editor.tools-palettecolor-title": "Klicka fƶr att Ƥndra fyllnadsfƤrg, shift-klicka fƶr att Ƥndra kantfƤrg", - - "device.list-title": "AnslutningsinstƤllningar", - "device.list-device": "Enhet", - "device.list-filter": "Filter", - "device.list-name": "Namn", - "device.list-address": "Adress", - "device.list-type": "Typ", - "device.list-min": "Min", - "device.list-max": "Max", - "device.list-value": "VƤrde", - "device.list-timestamp": "TidsstƤmpel", - "device.list-description": "Beskrivning", - "device.list-edit": "Redigera Tagg", - "device.list-add": "LƤgg till Tagg", - "device.list-remove": "Ta bort Tagg", - "device.list-remove-all": "Ta bort alla Taggar", - "device.list-options": "Taggalternativ", - "device.list-clipboard": "Kopiera taggobjekt till urklipp", - "device.list-direction": "Riktning", - - "devices.export": "Exportera enheter", - "devices.export-json": "JSON", - "devices.export-csv": "CSV", - "devices.import": "Importera enheter", - "device.manage-templates": "Hantera mallar", - "device.save-tags-to-template": "Spara taggar till mall", - "device.add-tags-from-template": "LƤgg till taggar frĆ„n mall", - "device.tags-template-name-title": "Taggmallens namn", - "devices.import-template": "Importera enheter med mall", - "device.property-client": "Anslutningsegenskaper", - "device.property-server": "FUXA-serveregenskaper", - "device.property-name": "Namn", - "device.property-type": "Typ", - "device.property-polling": "Pollning", - "device.property-enable": "Aktivera", - "device.property-subscribe": "Prenumerera", - "device.property-address": "Adress (IP eller opc.tcp://[server]:[port])", - "device.property-address-opc": "Adress (opc.tcp://[server]:[port])", - "device.property-address-s7": "IP-adress (IP 127.0.0.1)", - "device.property-device-port": "Enhetens IP och port (127.0.0.1:47808)", - "device.property-address-port": "Slavens IP och port (127.0.0.1:502)", - "device.property-security": "SƤkerhet och kryptering", - "device.property-tags": "Redigera enhetstaggar", - "device.property-edit": "Redigera enhetens egenskaper", - "device.property-remove": "Ta bort enhet", - "device.property-add": "LƤgg till enhet", - "device.not-property-security": "Utan sƤkerhet och kryptering", - "device.property-connection-options": "Anslutningsalternativ", - "device.property-port": "Port", - "device.property-slave-id": "Slav-ID", - "device.property-routing": "Routing", - "device.property-tockenized": "Fragmenterad", - "device.property-rack": "Rack", - "device.property-slot": "Slot", - "device.property-serialport": "Serieport", - "device.property-baudrate": "Baudrate", - "device.property-databits": "Databitar", - "device.property-stopbits": "Stoppbitar", - "device.property-parity": "Paritet", - "device.property-delay": "Ramfƶrdrƶjning (ms)", - "device.property-method": "Metod", - "device.property-format": "Format", - "device.property-internal": "Endast frontend", - "device.property-url": "URL (http://[server]:[port])", - "device.property-webapi-result": "Resultat av fƶrfrĆ„gan", - "device.not-webapi-result": "Konfigurera WebAPI-resultat", - "device.property-show": "Visa anslutningsegenskaper", - "device.property-hide": "Dƶlj anslutningsegenskaper", - "device.property-interface-address": "GrƤnssnitt och port", - "device.property-interface-address-ph": "127.0.0.1:47808", - "device.property-broadcast-address": "Broadcast", - "device.property-broadcast-address-ph": "127.0.0.255", - "device.property-adpu-timeout": "ADPU-timeout", - "device.property-adpu-timeout-ph": "6000", - "device.property-certificate-section": "TLS-certifikat", - "device.property-certificate": "Certifikat", - "device.property-certificate-key": "Privat nyckel", - "device.property-certificate-ca": "CA-certifikat", - "device.security-none": "Ingen", - "device.security-sign": "Signera", - "device.security-signandencrypt": "Signera och kryptera", - "device.webapi-property-title": "WebAPI-egenskaper", - "device.webapi-property-gettags": "URL GET Taggar", - "device.webapi-property-posttags": "URL POST Taggar", - "device.webapi-property-loadtags": "Ladda taggar", - "device.property-dsn": "DatakƤllans namn (DSN=Databasnamn)", - "device.property-odbc-result": "Resultat av hittade tabeller", - "device.not-odbc-result": "Resultat frĆ„n databastabeller", - "device.add-device-templates-title": "Anslutningsmallar", - "device.add-tags-templates-title": "Taggmallar", - "device.manage-templates-title": "Ta bort mallar", - "device.template-device": "Mallnamn", - "device.template-tags": "Mallnamn", - "device.property-socket-reuse": "ƅteranvƤnd socket", - - "device.browsetopics-property-title": "Broker-Ƥmnen att prenumerera och publicera", - "device.browsetopics-property-sub": "Prenumerera", - "device.browsetopics-property-pub": "Publicera", - "device.discovery-topics": "BlƤddra Ƥmnen pĆ„ broker", - "device.topic-selected": "ƄmnesvƤg", - "device.topic-raw": "raw", - "device.topic-json": "json", - "device.add-topics": "Publicera mina Ƥmnen pĆ„ broker", - "device.topic-publish-name": "Ƅmnesnamn", - "device.topic-publish-path": "ƄmnesvƤg", - "device.topic-publish": "Publicera", - "device.topic-subscribe": "Prenumerera", - "device.topic-subscription-content": "InnehĆ„ll", - "device.topic-subscription-name": "Namn", - "device.topic-subscription-address": "Adress", - "device.topic-publish-add-item": "LƤgg till attribut till payload", - "device.topic-publish-key": "Nyckel", - "device.topic-publish-type": "Typ", - "device.topic-publish-timestamp": "TidsstƤmpel", - "device.topic-publish-value": "ƄmnesvƤg", - "device.topic-publish-static": "VƤrde", - "device.topic-publish-content": "Payload", - "device.topic-type-tag": "Tagg", - "device.topic-type-timestamp": "TidsstƤmpel", - "device.topic-type-value": "VƤrde (fƶr Ƥmne)", - "device.topic-type-static": "Statisk", - "device.topic-name-exist": "Ƅmnesnamnet '{{value}}' finns redan", - "device.topic-subs-address-exist": "Ƅmnet att prenumerera pĆ„ med adress '{{value}}' finns redan", - "device.topic-pubs-address-exist": "Ƅmnet att publicera med adress '{{value}}' finns redan", - - "device.property-mqtt-address": "Adress (mqtt://[server]:[port])", - "device.tag-property-title": "Taggegenskaper", - "device.browsetag-property-title": "BlƤddra taggar pĆ„ server", - "device.tag-property-device": "Anslutning", - "device.tag-property-name": "Taggnamn", - "device.tag-property-register": "Register", - "device.tag-property-type": "Typ", - "device.tag-property-address": "Adress (ex. db5.dbb3 db4.dbx2.0 MB7)", - "device.tag-property-address-sample": "Adress", - "device.tag-property-min": "Min", - "device.tag-property-max": "Max", - "device.tag-property-divisor": "Divisor", - "device.tag-property-address-offset": "Adressfƶrskjutning (1-65536)", - "device.tag-property-obj-name": "Namn", - "device.tag-property-path": "SƶkvƤg", - "device.tag-property-unit": "Enhet", - "device.tag-property-digits": "Decimaler", - "device.tag-property-initvalue": "StartvƤrde", - "device.tag-property-description": "Beskrivning", - "device.tag-property-direction": "Riktning", - "device.tag-property-edge": "Kant", - "device.tag-property-gpio": "GPIO-nummer", - - - "device.tag-array-id": "Array-ID:", - "device.tag-array-value": "VƤrde:", - "device-tag-dialog-title": "Taggval", - - "device.tag-options-title": "Taggalternativ", - "device.tag-daq-enabled": "Registrering aktiverad", - "device.tag-daq-changed": "Spara om Ƥndrad", - "device.tag-daq-interval": "Spara vƤrdeintervall (sek.)", - "device.tag-daq-restored": "ƅterstƤll", - - "device.tag-format": "Format decimaler (2 = #.##)", - "device.tag-deadband": "Deadband", - "device.tag-scale": "SkalningslƤge / Konvertering", - "device.tag-scale-mode-undefined": "Ingen skalning", - "device.tag-scale-mode-undefined-tooltip": "TaggvƤrde", - "device.tag-scale-mode-linear": "LinjƤr: Ī”S * (VƤrde - RL) / Ī”R + SL", - "device.tag-scale-mode-linear-tooltip": "Ī”S = (Skalad hƶg - Skalad lĆ„g)\nĪ”R = (RĆ„ hƶg - RĆ„ lĆ„g)\nRL = RĆ„ lĆ„g\nSL = Skalad lĆ„g", - "device.tag-scale-mode-script": "Script (LƤs/Skriv)", - "device.tag-raw-low": "RĆ„ lĆ„g", - "device.tag-raw-high": "RĆ„ hƶg", - "device.tag-scaled-low": "Skalad lĆ„g", - "device.tag-scaled-high": "Skalad hƶg", - "device.tag-convert-datetime": "Millisekunder till datum- och tidsformat", - "device.tag-convert-datetime-tooltip": "Exempel: 'YYYY-MM-DD HH:mm:ss' fƶr 2023-09-14 08:45:10", - "device.tag-convert-datetime-format": "Datum- och tidsformat (YYYY-MM-DD HH:mm:ss)", - "device.tag-convert-ticktime": "Millisekunder till tidsformat (Ć„terstĆ„ende eller varaktighet)", - "device.tag-convert-ticktime-tooltip": "Exempel: 'HH:mm:ss' fƶr 56:45:10", - "device.tag-convert-ticktime-format": "Tidsformat (HH:mm:ss)", - "device.tag-scale-read-script": "Script fƶr lƤsskala", - "device.tag-scale-read-script-tooltip": "Script fƶr att transformera vƤrde mottaget frĆ„n klient", - "device.tag-scale-read-script-params": "Ange lƤsscriptets parametrar", - "device.tag-scale-write-script": "Script fƶr skrivskala", - "device.tag-scale-write-script-tooltip": "Script fƶr att transformera vƤrde fƶre skrivning till klient", - "device.tag-scale-write-script-params": "Ange skrivscriptets parametrar", - "device.tag-scale-script-params-tooltip": "JSON-formaterad array av parametrar med vƤrden att skicka till scriptet", - - - "device.connect-ok": "OK", - "device.connect-error": "Fel", - "device.connect-failed": "Misslyckades", - "device.connect-off": "Av", - "device.connect-busy": "Upptagen", - - "devices.mode-map": "Anslutningsdiagram", - "devices.mode-list": "Anslutningslista", - "devices.list-name": "Namn", - "devices.list-address": "Adress", - "devices.list-type": "Typ", - "devices.list-polling": "Pollning", - "devices.list-enabled": "Aktiverad", - "devices.list-status": "Status", - - "users.list-title": "AnvƤndarinstƤllningar", - "users.list-name": "AnvƤndarnamn", - "users.list-fullname": "FullstƤndigt namn", - "users.list-groups": "Grupper", - "users.list-roles": "Roller", - "users.list-start": "Startvy", - - "roles.list-title": "RollinstƤllningar", - "roles.list-index": "Index", - "roles.list-name": "Namn", - "roles.list-description": "Beskrivning", - - "user-role-edit-title": "RollinstƤllning", - "user-role-edit-name": "Namn", - "user-role-edit-index": "Index", - "user-role-edit-description": "Beskrivning", - - "events-history.list-title": "HƤndelsehistorik", - "events-history.filter-daterange": "Datumintervallfilter", - - "gauges.property-props": "Egenskaper", - "gauges.property-events": "HƤndelser", - "gauges.property-title": "Egenskaper", - "gauges.property-name": "Namn", - "gauges.property-text": "Text", - "gauges.property-permission": "Behƶrighet", - "gauges.property-mask": "Bitmask", - "gauges.property-readonly": "Skrivskyddad", - "gauges.property-event-type": "Typ", - "gauges.property-event-action": "ƅtgƤrd", - "gauges.property-event-destination": "Destination", - "gauges.property-event-destination-relative-from": "Relativ frĆ„n", - "gauges.property-event-destination-panel": "Panel", - "gauges.property-event-destination-hide-close": "Dƶlj StƤng", - "gauges.property-event-newtab": "Ny flik", - "gauges.property-event-single-card": "Enkel vy", - "gauges.property-event-value": "VƤrde", - "gauges.property-event-function": "Funktion", - "gauges.property-event-input": "Inmatning (endast input med namn)", - "gauges.property-event-address-type": "Typ", - "gauges.property-event-address": "LƤnk", - "gauges.property-event-resource": "Resurs", - "gauges.property-event-width": "Bredd", - "gauges.property-event-height": "Hƶjd", - "gauges.property-event-scale": "Skala", - "gauges.property-event-script": "Skript", - "gauges.property-event-script-param-name": "Parameter", - "gauges.property-event-script-param-value": "VƤrde", - "gauges.property-event-script-param-input-value": "lƤmna tomt fƶr att skicka inputens vƤrde", - "gauges.property-head-device": "Anslutning", - "gauges.property-head-variable": "Variabel", - "gauges.property-variable-value": "VƤrde", - "gauges.property-head-alarm": "Larm", - "gauges.property-head-color": "FƤrg", - "gauges.property-head-mapvariable": "Kontextvariabel", - "gauges.property-head-tomapvariable": "Definiera kontextvariabel", - "gauges.property-head-todevice": "Anslutningsvariabler", - "gauges.property-head-value": "VƤrde", - "gauges.property-input-min": "Min", - "gauges.property-input-max": "Max", - "gauges.property-input-color": "Fyllning", - "gauges.property-input-stroke": "Kantlinje", - "gauges.property-input-value": "VƤrde", - "gauges.property-input-label": "Etikett", - "gauges.property-input-unit": "Enhet", - "gauges.property-input-type": "Inmatningstyp", - "gauges.property-input-type-number": "Nummer", - "gauges.property-input-type-text": "Text", - "gauges.property-input-type-date": "Datum", - "gauges.property-input-type-time": "Tid", - "gauges.property-input-type-datetime": "Datum och tid", - "gauges.property-input-time-format": "Tidsformat", - "gauges.property-input-time-format-normal": "HH:mm", - "gauges.property-input-time-format-seconds": "HH:mm:ss", - "gauges.property-input-time-format-milliseconds": "HH:mm:ss:fff", - "gauges.property-input-milliseconds": "Konvertering i millisekunder", - "gauges.property-input-convertion": "Konvertering", - "gauges.property-input-convertion-milliseconds": "Millisekunder", - "gauges.property-input-convertion-string": "StrƤng", - - "gauges.property-update-enabled": "Aktivera uppdatering", - "gauges.property-update-esc": "ESC-uppdatering", - "gauges.property-input-esc-action": "ƅtgƤrd vid lƤmning", - "gauges.property-action-esc-update": "Uppdatera (Uppdatering)", - "gauges.property-action-esc-enter": "BekrƤfta (Enter)", - "gauges.property-select-content-on-click": "Markera innehĆ„ll vid klick", - "gauges.property-numeric-enabled": "Endast siffror", - "gauges.property-format-digits": "Format decimaler", - "gauges.property-actions": "ƅtgƤrder", - "gauges.property-action-type": "Typ", - "gauges.property-action-param": "ƅtgƤrds-ID", - "gauges.property-action-minAngle": "Min vinkel", - "gauges.property-action-maxAngle": "Max vinkel", - "gauges.property-action-toX": "Till position X", - "gauges.property-action-toY": "Till position Y", - "gauges.property-action-duration": "Varaktighet", - "gauges.property-events-mapping-from": "Kontextvariabel", - "gauges.property-map-variable": "LƤgg till kontextvariabel fƶr bindning", - "gauges.property-head-remove-mapvariable": "Ta bort bindning", - "gauges.property-tooltip-add-event": "LƤgg till hƤndelse", - "gauges.property-interval-msec": "Intervall (ms)", - "gauges.property-tag-label": "Tagg", - "gauges.property-tag-internal-title": "Ange platshĆ„llare fƶr Destination (eller Tagg pĆ„ intern enhet)", - "gauges.property-input-range": "TillĆ„tet inmatningsintervall", - "gauges.property-language-text": "Text eller @TextID", - - "bag.property-ticks": "Tjocklekar", - "bag.property-divisions": "Indelningar", - "bag.property-subdivisions": "Underindelningar", - "bag.property-divisions-length": "IndelningslƤngd", - "bag.property-subdivisions-length": "UnderindelningslƤngd", - "bag.property-divisions-width": "Indelningsbredd", - "bag.property-subdivisions-width": "Underindelningsbredd", - "bag.property-divisions-color": "IndelningsfƤrg", - "bag.property-subdivisions-color": "UnderindelningsfƤrg", - "bag.property-divisionfont-size": "Indelningsstorlek", - "bag.property-divisionfont-color": "IndelningsfƤrg (text)", - "bag.property-divisions-labels": "Indelningsetiketter (ex. 10;20;...)", - "bag.property-current-value": "Aktuellt vƤrde", - "bag.property-min": "Min", - "bag.property-max": "Max", - "bag.property-bar-width": "Stapeltjocklek", - "bag.property-animation-speed": "Animationshastighet", - "bag.property-angle": "Vinkel", - "bag.property-radius": "Radie", - "bag.property-font": "Teckensnitt", - "bag.property-font-size": "Teckenstorlek", - "bag.property-textfield-position": "TextfƤltsposition", - "bag.property-pointer-length": "PekarlƤngd", - "bag.property-pointer-stroke": "Pekarkontur", - "bag.property-pointer-color": "PekarfƤrg", - "bag.property-color-start": "StartfƤrg", - "bag.property-color-stop": "StoppfƤrg", - "bag.property-background": "Bakgrund", - "bag.property-format-digits": "Decimalformat", - "bag.property-zones": "Zoner", - "bag.property-color": "FƤrg", - "bag.property-fill": "Fyllning", - - "alarms.list-title": "LarminstƤllningar", - "alarms.list-name": "Namn", - "alarms.list-device": "Anslutning / Variabel", - "alarms.list-highhigh": "Mycket hƶg", - "alarms.list-high": "Hƶg", - "alarms.list-low": "LĆ„g", - "alarms.list-info": "Meddelande", - "alarms.list-actions": "ƅtgƤrder", - "alarm.property-title": "Larm", - "alarm.property-name": "Namn", - "alarm.property-permission": "Behƶrighet", - "alarm.property-highhigh": "Mycket hƶg", - "alarm.property-high": "Hƶg", - "alarm.property-low": "LĆ„g", - "alarm.property-info": "Meddelande", - "alarm.property-action": "ƅtgƤrder", - "alarm.property-enabled": "Aktiverad", - "alarm.property-save-event": "HƤndelser", - "alarm.property-min": "Min", - "alarm.property-max": "Max", - "alarm.property-timedelay": "Tid i Min-Max intervall (sekunder)", - "alarm.property-checkdelay": "Kontrollintervall (sekunder)", - "alarm.property-type": "Typ", - "alarm.property-ackmode": "KvitterningslƤge", - "alarm.property-text": "Text", - "alarm.property-group": "Grupp", - "alarm.ack-float": "Flytande", - "alarm.ack-active": "Kvittring tillĆ„ten vid aktivt larm", - "alarm.ack-passive": "Kvittring endast vid passivt larm", - "alarms.view-title": "Larm", - "alarms.history-title": "Larmlogg", - "alarms.view-ontime": "Datum/Tid", - "alarms.view-text": "Text", - "alarms.view-group": "Grupp", - "alarms.view-status": "Status", - "alarms.view-type": "Prioritet", - "alarms.view-offtime": "AV Datum/Tid", - "alarms.view-acktime": "KVIT Datum/Tid", - "alarms.view-userack": "Kvittrare", - "alarms.view-ack": "KVIT", - "alarms.view-ack-all-alarms": "KVIT Alla Larm", - "alarm.status-active": "Aktiv", - "alarm.status-passive": "Passiv", - "alarm.status-active-ack": "Aktiv-KVIT", - "alarms.show-current": "Larm", - "alarms.show-history": "Larmlogg", - "alarm.action-popup": "Visa popup", - "alarm.action-onsetview": "Ɩppna vy", - "alarm.action-onsetvalue": "SƤtt vƤrde", - "alarm.action-onRunScript": "Kƶr skript", - "alarm.action-toastMessage": "Visa meddelande", - "alarm.action-sendMsg": "Skicka meddelande", - "alarm.property-action-type": "ƅtgƤrdstyp", - "alarm.property-action-value": "VƤrde att sƤtta", - "alarm.property-action-destination": "Vy att visa", - "alarm.property-action-toastMessage": "Meddelande att visa", - "alarm.property-action-toastType": "Typ", - - "notifications.list-title": "NotifieringsinstƤllningar", - "notifications.list-name": "Namn", - "notifications.list-receiver": "Mottagare", - "notifications.list-delay": "Fƶrdrƶjning", - "notifications.list-interval": "Intervall", - "notifications.list-type": "Typ", - "notifications.list-enabled": "Aktiverad", - "notifications.list-subscriptions": "Prenumerationer", - "notification.property-title": "Notifiering", - "notification.property-name": "Namn", - "notification.property-receiver": "Mottagare: Adress (Mail) ';' / WebApi (Telegram https://api.telegram.org/bot...${content})", - "notification.property-type": "Typ", - "notification.property-delay": "Fƶrdrƶjning (min.)", - "notification.property-interval": "Intervall (min.)", - "notification.property-enabled": "Aktiverad", - "notification.property-priority": "Prioritet", - "notification.type-alarm": "Larm", - "notification.type-trigger": "Utlƶsare", - - "scripts.list-title": "SkriptinstƤllningar", - "scripts.list-name": "Namn", - "scripts.list-type": "Typ", - "scripts.list-mode": "LƤge", - "scripts.list-params": "Parametrar", - "scripts.list-scheduling": "SchemalƤggning / Intervall", - "scripts.list-permission": "Behƶrighet", - "scripts.list-options": "Skriptalternativ", - - "script.permission-title": "Behƶrighet", - "script.permission-label": "(tomt = full Ć„tkomst fƶr alla)", - "script.permission-enabled": "Aktiverad", - - "script.create-title": "Skapa skript", - - "script.mode": "KƶrlƤge", - "script.mode-title": "KƶrlƤge", - "script.mode-label": "KƶrlƤge", - "script.mode-CLIENT": "Klient (Kƶr i webblƤsaren)", - "script.mode-SERVER": "Server (Kƶr pĆ„ servern)", - - "script.property-title": "Skript", - "script.property-systems": "Systemfunktioner", - "script.property-templates": "Mallar", - "script.property-test": "Test", - "script.property-test-params": "Funktionsparametrar", - "script.property-test-console": "Konsol", - "script.property-test-tag": "SƤtt Tagg", - "script.property-test-run": "Kƶr TEST", - "script.property-editname": "Redigera Skriptnamn", - "script.property-name": "Namn", - "script.property-addfnc-param": "LƤgg till Skriptparameter", - "script.property-async-function": "Asynkron funktion", - "script.param-title": "Skriptparameter", - "script.param-name": "Namn", - "script.param-type": "Typ", - "script.paramtype": "", - "script.paramtype-tagid": "Tagg-ID", - "script.paramtype-value": "VƤrde (nummer/strƤng/objekt)", - "script.paramtype-chart": "Diagramlinjer (array)", - "script.param-name-exist": "Parameternamnet finns redan!", - "script.sys-fnc-settag-text": "$setTag (TaggID, vƤrde)", - "script.sys-fnc-settag-tooltip": "Systemfunktion fƶr att sƤtta Tagg-vƤrde: $setTag (TaggID som strƤng, vƤrde som strƤng eller nummer)", - "script.sys-fnc-gettag-text": "$getTag (TaggID)", - "script.sys-fnc-gettag-tooltip": "Systemfunktion fƶr att hƤmta Tagg-vƤrde: $getTag (TaggID som strƤng) returnerar vƤrde som strƤng eller nummer", - "script.scheduling-title": "Skriptplanering", - "script.scheduling-type": "Typ", - "script.scheduling-interval": "Loop med intervall", - "script.scheduling-start": "Endast vid Start", - "script.scheduling-add-item": "LƤgg till schemalƤggare", - "script.scheduling-scheduling": "SchemalƤggning", - "script.scheduling-weekly": "Veckovis", - "script.scheduling-date": "Datum", - "script.scheduling-time": "Tid", - "script.scheduling-hour": "Timme", - "script.scheduling-minute": "Minut", - "script.interval": "Intervall (sekunder)", - "script.delay": "Fƶrdrƶjning (sekunder)", - "script.sys-fnc-setview-text": "$setView (Vynamn)", - "script.sys-fnc-setview-tooltip": "Systemfunktion fƶr att sƤtta Vy pĆ„ klient: $setView (Vynamn som strƤng)", - "script.sys-fnc-setview-params": "'Vynamn'", - "script.sys-fnc-opencard-text": "$openCard (Vynamn)", - "script.sys-fnc-opencard-tooltip": "Systemfunktion fƶr att ƶppna Kort pĆ„ klient: $openCard (Vynamn som strƤng, Alternativ som dict {left, top})", - "script.sys-fnc-opencard-params": "'Vynamn'", - "script.sys-fnc-enableDevice-text": "$enableDevice (Anslutningsnamn, aktivera True/False)", - "script.sys-fnc-enableDevice-tooltip": "Systemfunktion fƶr att aktivera Enhetsanslutning: $enableDevice (Enhetsnamn som strƤng, aktivera som boolean)", - "script.sys-fnc-enableDevice-params": "'Enhetsnamn', true", - "script.sys-fnc-getDevice-text": "$getDevice (Enhetsnamn, interface True/False)", - "script.sys-fnc-getDevice-tooltip": "Systemfunktion fƶr att hƤmta Enhetsobjekt: $getDevice (Enhetsnamn som strƤng, hƤmta KommunikationsgrƤnssnitt som boolean)", - "script.sys-fnc-getDevice-params": "'Enhetsnamn', true", - "script.sys-fnc-getTagId-text": "$getTagId (Taggnamn, [Enhetsnamn])", - "script.sys-fnc-getTagId-tooltip": "Systemfunktion fƶr att hƤmta Tagg-ID: $getTagId (Taggnamn som strƤng, [valfritt Enhetsnamn som strƤng])", - "script.sys-fnc-getTagId-params": "'Taggnamn', ", - "script.sys-fnc-getTagDaqSettings-text": "$getTagDaqSettings (TaggID)", - "script.sys-fnc-getTagDaqSettings-tooltip": "Systemfunktion fƶr att hƤmta Tagg DAQ-instƤllningar: $getTagDaqSettings (TaggID som strƤng)", - "script.sys-fnc-getTagDaqSettings-params": "'TaggID'", - "script.sys-fnc-setTagDaqSettings-text": "$setTagDaqSettings (TaggID, DaqSettings)", - "script.sys-fnc-setTagDaqSettings-tooltip": "Systemfunktion fƶr att sƤtta Tagg DAQ-instƤllningar: $setTagDaqSettings (TaggID som strƤng, DaqSettings som objekt {restored: boolean, enabled: boolean, changed: boolean, interval: number, lastDaqSaved: number})", - "script.sys-fnc-setTagDaqSettings-params": "'TaggID', 'DaqSettings'", - "script.sys-fnc-invokeObject-text": "$invokeObject (Objektnamn, Funktionsnamn, [Parameter])", - "script.sys-fnc-invokeObject-tooltip": "Systemfunktion fƶr att anropa Objektfunktion: $invokeObject (Objektnamn som strƤng, funktionsnamn som strƤng, [parameter])", - "script.sys-fnc-invokeObject-params": "'Objektnamn', 'funktionsnamn', ", - "script.sys-fnc-runServerScript-text": "$runServerScript (Skript namn, [Parameter])", - "script.sys-fnc-runServerScript-tooltip": "Klientfunktion fƶr att anropa Server-skriptfunktion: $runServerScript (Skript namn som strƤng, [parameter])", - "script.sys-fnc-runServerScript-params": "'Server skriptnamn', ", - "script.sys-fnc-getDeviceProperty-text": "$getDeviceProperty(Enhetsnamn)", - "script.sys-fnc-getDeviceProperty-tooltip": "Systemfunktion fƶr att hƤmta Enhetsegenskap: $getDeviceProperty(Enhetsnamn som strƤng)", - "script.sys-fnc-getDeviceProperty-params": "'Enhetsnamn'", - "script.sys-fnc-setDeviceProperty-text": "$setDeviceProperty(Enhetsnamn, egenskap)", - "script.sys-fnc-setDeviceProperty-tooltip": "Systemfunktion fƶr att sƤtta Enhetsegenskap: $setDeviceProperty(Enhetsnamn som strƤng, egenskap som objekt {address, port, ...})", - "script.sys-fnc-setDeviceProperty-params": "'Enhetsnamn', 'Egenskap'", - "script.sys-fnc-getHistoricalTag-text": "$getHistoricalTags(TaggID-array, frĆ„n msek., till msek.)", - "script.sys-fnc-getHistoricalTag-tooltip": "hƤmta historiska taggar med millisekundintervall: $getHistoricalTags([TaggID] som array, frĆ„n som nummer, till som nummer)", - "script.sys-fnc-getHistoricalTag-params": "'TaggID-array', 'FrĆ„n msek.', 'Till msek.'", - "script.sys-fnc-sendMessage-text": "$sendMessage(adress, Ƥmne, meddelande)", - "script.sys-fnc-sendMessage-tooltip": "Systemfunktion fƶr att skicka Meddelande (Mail): $sendMessage(adress som strƤng, Ƥmne som strƤng, meddelande som strƤng)", - "script.sys-fnc-sendMessage-params": "'adress', 'Ƥmne', 'meddelande'", - "script.sys-fnc-getAlarms-text": "$getAlarms()", - "script.sys-fnc-getAlarms-tooltip": "Systemfunktion fƶr att hƤmta larmlista (): $getAlarms()", - "script.sys-fnc-getAlarms-params": "", - "script.sys-fnc-getAlarmsHistory-text": "$getAlarmsHistory(frĆ„n msek., till msek.)", - "script.sys-fnc-getAlarmsHistory-tooltip": "Systemfunktion fƶr att hƤmta historiska larm (): $getAlarmsHistory(frĆ„n som nummer, till som nummer)", - "script.sys-fnc-getAlarmsHistory-params": "'FrĆ„n msek.', 'Till msek.'", - "script.sys-fnc-ackAlarms-text": "$ackAlarm(Larmnamn, typer)", - "script.sys-fnc-ackAlarms-tooltip": "Systemfunktion fƶr att KVITTERA larm (): $ackAlarm(Larmnamn som strƤng, [typer] 'highhigh|high|low')", - "script.sys-fnc-ackAlarms-params": "'Larmnamn', 'typer'", - - "script.template-chart-data-text": "Anpassad diagramdata", - "script.template-chart-data-tooltip": "Kodmall fƶr anpassad diagramdata att returnera", - "script.template-invoke-chart-update-options-text": "Uppdatera diagraminstƤllningar", - "script.template-invoke-chart-update-options-tooltip": "Kodmall fƶr att uppdatera diagraminstƤllningar (Y-axelns skala). Endast KLIENT-lƤge!", - "script.template-getHistoricalTagsoptions-text": "HƤmta historiska Tagg-vƤrden", - "script.template-getHistoricalTagsoptions-tooltip": "Kodmall fƶr att hƤmta historiska Tagg-vƤrden.", - - "reports.list-title": "RapportinstƤllningar", - "reports.list-name": "Namn", - "reports.list-type": "Typ", - "reports.list-receiver": "Mottagare", - "reports.list-scheduling": "SchemalƤggning / Intervall", - "reports.list-enabled": "Aktiverad", - - "report.property-title": "Rapport", - "report.property-name": "Namn", - "report.property-receiver": "Mottagarnas e-postadresser", - "report.property-scheduling-type": "RapportschemalƤggning", - "report.property-content": "InnehĆ„ll", - "report.property-page": "SidinstƤllningar", - "report.property-page-size": "Sidstorlek", - "report.property-page-orientation": "Sidorientering", - "report.property-page-ori-landscape": "Liggande", - "report.property-page-ori-portrait": "StĆ„ende", - "report.property-margin-left": "VƤnstermarginal", - "report.property-margin-top": "Ɩvermarginal", - "report.property-margin-right": "Hƶgermarginal", - "report.property-margin-bottom": "Undermarginal", - "report.scheduling-none": "Inaktiverad", - "report.scheduling-day": "Varje dag", - "report.scheduling-week": "Varje vecka", - "report.scheduling-month": "Varje mĆ„nad", - "report.content-addtext": "LƤgg till text", - "report.content-addtable": "LƤgg till Tagg-tabell", - "report.content-addalarms": "LƤgg till larmhistorik", - "report.content-addchart": "LƤgg till diagram", - "report.content-type-text": "Text", - "report.content-type-tagstable": "Tagg-tabell", - "report.content-type-alarmshistory": "Larmhistorik", - "report.content-type-chart": "Diagram", - "report.content-fontsizeitem": "Fontstorlek", - "report.content-alignitem": "Textjustering", - "report.content-edit": "Redigera", - "report.content-delete": "Ta bort", - "report.item-text-title": "Rapporttext", - "report.item-text-label": "Text", - "report.tags-table-title": "Rapport - Tagg-tabell", - "report.tags-table-column": "Tabellkolumner Taggar", - "report.tags-table-add": "LƤgg till Tagg", - "report.tags-table-setlabel": "Ange etikett", - "report.table-alignitem": "Justera", - "report.table-delitem": "Ta bort kolumn", - "report.item-daterange": "DataomfĆ„ng", - "report.item-daterange-none": "Ingen", - "report.item-daterange-day": "Senaste dygnet (0-24)", - "report.item-daterange-week": "Senaste veckan (MĆ„ndag-Sƶndag)", - "report.item-daterange-month": "Senaste mĆ„naden", - "report.item-interval": "Intervall (period)", - "report.item-interval-min5": "5 minuter", - "report.item-interval-min10": "10 minuter", - "report.item-interval-min30": "30 minuter", - "report.item-interval-hour": "1 timme", - "report.item-interval-day": "1 dag", - "report.item-function-type": "Funktionstyp", - "report.item-function-min": "Min", - "report.item-function-max": "Max", - "report.item-function-average": "MedelvƤrde", - "report.item-function-sum": "Summa", - "report.item-alarms-title": "Rapport - Larm", - "report.alarms-priority": "Larmprioritet", - "report.alarms-column": "Larmkolumner", - "report.alarms-filter": "Larmfilter", - "report.chart-title": "Rapport - Diagram", - "report.chart-name": "Diagramnamn", - "report.chart-width": "Bredd", - "report.chart-height": "Hƶjd", - - "maps.locations-list-title": "PlatsinstƤllningar", - "maps.locations-list-name": "Namn", - "maps.locations-list-view": "Vy", - "maps.locations-list-description": "Beskrivning", - "maps.location-property-title": "Plats", - "maps.location-property-name": "Namn", - "maps.location-property-description": "Beskrivning", - "maps.location-property-latitude": "Latitud", - "maps.location-property-longitude": "Longitud", - "maps.location-property-card": "Kort", - "maps.location-property-view": "Vy", - "maps.location-property-url": "URL", - "maps.edit-add-location": "LƤgg till plats", - "maps.edit-import-location": "Importera plats", - "maps.edit-edit-location": "Redigera plats", - "maps.edit-remove-location": "Ta bort plats", - "maps.edit-start-location": "Ange som startplats", - "maps.edit-start-location-saved": "Startplats sparad", - "maps.close-popups": "StƤng alla popup-fƶnster", - "maps.location-to-import": "Plats att importera", - "maps.location-to-import-input-title": "VƤlj plats att importera", - - "logs.view-title": "Systemloggar", - "logs.view-files": "Loggfiler", - - "events.view-ontime": "Datum/Tid", - "events.view-type": "Typ", - "events.view-source": "KƤlla", - "events.view-text": "Text", - - "card.config-title": "KortinstƤllningar", - "card.config-content-type": "InnehĆ„llstyp", - "card.config-content-view": "InnehĆ„llsvy", - "card.config-content-iframe": "LƤnkadress", - "card.widget-view": "Vy", - "card.widget-alarms": "Larm", - "card.widget-table": "Tabell", - "card.widget-iframe": "LƤnk", - "card.style-zoom": "Zoom", - - "resources.lib-icons": "Ikoner", - "resources.lib-images": "Bilder", - "resource.list-title": "Resurslista", - "resource.list-name": "Filnamn", - "resource.list-type": "Filtyp", - "resource.list-title-fonts": "Teckensnittslista", - "resources.lib-widgets": "Widgetar", - - "widgets.kiosk-title": "Widget-kiosk", - "widget.remove": "Ta bort widget", - - "texts.list-title": "SprĆ„kinstƤllningar", - "texts.list-filter": "Filter", - "texts.list-filter-group": "Grupp", - "texts.list-id": "ID", - "texts.list-group": "Grupp", - "texts.list-value": "Text (standard)", - "texts.list-add-text": "LƤgg till text", - "texts.list-edit-language": "Redigera sprĆ„k", - "language.settings-title": "SprĆ„kinstƤllningar", - "language.settings-add-tooltip": "LƤgg till sprĆ„k", - "language.settings-id": "Nyckel", - "language.settings-default-id": "Nyckel (standard)", - "language.settings-id-placeholder": "ex: SV", - "language.settings-name": "Namn", - "language.settings-default-name": "Namn (standard)", - "language.settings-name-placeholder": "ex: Svenska", - "text.settings-title": "Text", - "text.settings-id": "Namn (tillĆ„tna bokstƤver och siffror, inga mellanslag)", - "text.settings-group": "Grupp", - "text.settings-value": "Text (standard)", - - "gui.range-number-min": "Min", - "gui.range-number-max": "Max", - "gui.range-number-boolean": "MaskvƤrde", - "gui.range-number-true": "Sant [1-1]", - "gui.range-number-false": "Falskt [0-0]", - "gui.range-number-switcher": "Intervall som tal eller boolean", - - "dlg.bitmask-title": "Bitmask", - - "dlg.plugins-title": "Server-plugins", - "dlg.plugins-info": "Plugins som inte Ƥr installerade kan installeras manuellt pĆ„ servern: 'npm install [paketnamn]@[version]'", - "dlg.plugins-type": "Typ", - "dlg.plugins-name": "Namn", - "dlg.plugins-version": "Version", - "dlg.plugins-current": "Installerad", - "dlg.plugins-description": "Beskrivning", - "dlg.plugins-status-installing": "Installerar...", - "dlg.plugins-status-removing": "Tar bort...", - "dlg.plugins-status-installed": "Installerar...OK!", - "dlg.plugins-status-removed": "Tar bort...OK!", - "dlg.plugins-status-error": "Fel! Fƶrsƶk manuellt!", - - "dlg.setup-title": "Konfiguration", - "dlg.setup-gui": "AnvƤndargrƤnssnitt", - "dlg.setup-diverse": "Ɩvrigt", - "dlg.setup-logic": "Logik", - "dlg.setup-system": "System", - "dlg.setup-views": "Vyer", - "dlg.setup-connections": "Anslutningar", - "dlg.setup-users": "AnvƤndare", - "dlg.setup-user-roles": "Roller", - "dlg.setup-alarms": "Larm", - "dlg.setup-line-charts": "Linjediagram", - "dlg.setup-bar-charts": "Stapeldiagram", - "dlg.setup-maps-locations": "Platser", - "dlg.setup-layout": "Layout", - "dlg.setup-plugins": "Plugins", - "dlg.setup-scripts": "Skript", - "dlg.setup-reports": "Rapporter", - "dlg.setup-settings": "InstƤllningar", - "dlg.setup-logs": "Loggar", - "dlg.setup-notifications": "Notiser", - "dlg.setup-events": "HƤndelser", - "dlg.setup-resources": "Resurser", - "dlg.setup-fonts": "Typsnitt", - "dlg.setup-language": "SprĆ„k", - "dlg.app-settings-title": "InstƤllningar", - "dlg.app-settings-system": "System", - "dlg.app-settings-smtp": "SMTP", - "dlg.app-settings-smtp-host": "VƤrd", - "dlg.app-settings-smtp-port": "Port", - "dlg.app-settings-smtp-mailsender": "AvsƤndare", - "dlg.app-settings-smtp-user": "AnvƤndare/ApiKey", - "dlg.app-settings-smtp-password": "Lƶsenord", - "dlg.app-settings-smtp-testaddress": "E-post fƶr testmeddelande", - "dlg.app-settings-smtp-test": "Testa", - "dlg.app-settings-language": "SprĆ„k", - "dlg.app-language-de": "Tyska", - "dlg.app-language-en": "Engelska", - "dlg.app-language-ru": "Ryska", - "dlg.app-language-ua": "Ukrainska", - "dlg.app-language-zh-cn": "Kinesiska", - "dlg.app-language-pt": "Portugisiska", - "dlg.app-language-tr": "Turkiska", - "dlg.app-language-ko": "Koreanska", - "dlg.app-language-es": "Spanska", - "dlg.app-language-fr": "Franska", - "dlg.app-settings-server-port": "Servern lyssnar pĆ„ port", - "dlg.app-settings-server-log-full": "FullstƤndigt logglƤge", - "dlg.app-settings-alarms": "Larm", - "dlg.app-settings-alarms-clear": "Rensa alla larm och historik", - "dlg.app-settings-auth-token": "Autentisering med Token", - "dlg.app-settings-auth-only-editor": "Endast fƶr redigerare", - "dlg.app-auth-disabled": "Inaktiverad", - "dlg.app-auth-expiration-15m": "Aktiverad med token som lƶper ut efter 15 minuter", - "dlg.app-auth-expiration-1h": "Aktiverad med token som lƶper ut efter 1 timme", - "dlg.app-auth-expiration-3h": "Aktiverad med token som lƶper ut efter 3 timmar", - "dlg.app-auth-expiration-1d": "Aktiverad med token som lƶper ut efter 1 dag", - "dlg.app-auth-tooltip": "Aktiverad: du har ett administratƶrskonto 'admin/123456' (glƶm inte att Ƥndra det). Serveromstart krƤvs!", - "dlg.app-settings-client-broadcast": "SƤnd alla taggvƤrden till klient (frontend)", - - "dlg.app-settings-daqstore": "DAQ-lagring", - "dlg.app-settings-daqstore-type": "Databastyp", - "dlg.app-settings-daqstore-url": "URL", - "dlg.app-settings-daqstore-token": "Token", - "dlg.app-settings-daqstore-bucket": "Bucket", - "dlg.app-settings-daqstore-organization": "Organisation", - "dlg.app-settings-daqstore-retention": "BehĆ„llningstid", - "dlg.app-settings-daqstore-database": "Databasnamn", - "dlg.app-settings-daqstore-username": "AnvƤndarnamn", - "dlg.app-settings-daqstore-password": "Lƶsenord", - - "dlg.app-settings-user-group-label": "Auktoriseringstyp", - "dlg.app-settings-user-group": "Grupper (standard)", - "dlg.app-settings-user-roles": "Roller", - - "store.retention-none": "Avaktiverad", - "store.retention-day1": "1 dag", - "store.retention-days2": "2 dagar", - "store.retention-days3": "3 dagar", - "store.retention-days7": "7 dagar", - "store.retention-days14": "14 dagar", - "store.retention-days30": "30 dagar", - "store.retention-days90": "90 dagar", - "store.retention-year1": "1 Ć„r", - "store.retention-year3": "3 Ć„r", - "store.retention-year5": "5 Ć„r", - - "plugin.group-connection-device": "Anslutningsenhet", - "plugin.group-connection-database": "Anslutningsdatabas", - "plugin.group-chart-report": "Diagrambild fƶr Rapport", - - "action-settings-title": "ƅtgƤrdsinstƤllningar", - "action-settings-readonly-tag": "Tagg", - "action-settings-readonly-values": "VƤrden", - - "msg.alarm-ack-all": "Vill du kvittera alla larm?", - "msg.alarm-remove": "Vill du ta bort larmet?", - "msg.text-remove": "Vill du ta bort texten?", - "msg.alarmproperty-error-exist": "Larmnamnet finns redan!", - "msg.alarmproperty-missing-value": "Vissa vƤrden saknas!", - "msg.textproperty-error-exist": "Text-ID finns redan!", - "msg.textproperty-missing-value": "Vissa vƤrden saknas!", - "msg.device-remove": "Vill du ta bort enheten?", - "msg.device-tag-remove": "Vill du ta bort taggen?", - "msg.device-tag-exist": "Taggnamnet finns redan!", - "msg.notification-property-missing-value": "Vissa vƤrden saknas!", - "msg.report-property-missing-value": "Det finns felaktiga eller saknade vƤrden!", - "msg.file-upload-failed": "Uppladdning misslyckades!", - "msg.file-delete-failed": "Borttagning av fil misslyckades!", - - "msg.home-welcome": "VƤnta... gĆ„ till redigeraren, mappa enheterna, designa din visualisering och bind enhetsvariablerna", - "msg.server-connection-failed": "SERVERANSLUTNING MISSLYCKADES!", - "msg.project-load-error": "Kunde inte lƤsa '{{value}}'", - "msg.project": "Vill du spara Ƥndringar i projektet?", - "msg.tags-remove-all": "Vill du ta bort alla taggar?", - "msg.view-remove": "Vill du ta bort vyn '{{value}}'?", - "msg.chart-remove": "Vill du ta bort diagrammet '{{value}}'?", - "msg.role-remove": "Vill du ta bort rollen '{{value}}'?", - "msg.graph-remove": "Vill du ta bort stapeldiagrammet '{{value}}'?", - "msg.script-remove": "Vill du ta bort skriptet '{{value}}'?", - "msg.report-remove": "Vill du ta bort rapporten", - "msg.device-connection-error": "Anslutningsfel fƶr enheten '{{value}}'!", - "msg.server-connection-error": "Serveranslutning misslyckades!", - "msg.sendmail-success": "E-post skickad!", - "msg.sendmail-error": "Misslyckades att skicka e-post!", - "msg.users-save-error": "Spara anvƤndare misslyckades!", - "msg.user-remove": "Vill du ta bort anvƤndaren", - "msg.project-save-success": "Projektet sparades!", - "msg.project-save-error": "Spara projektet misslyckades!", - "msg.project-format-error": "Felaktigt projektformat!", - "msg.view-format-error": "Felaktigt vyformat!", - "msg.project-save-unauthorized": "Spara projektet misslyckades! Obehƶrig!", - "msg.project-save-ask": "Vill du lƤmna projektet?", - "msg.login-username-required": "Ange ett anvƤndarnamn", - "msg.login-password-required": "Ange ett lƶsenord", - "msg.signin-failed": "Felaktigt anvƤndarnamn eller lƶsenord!", - "msg.signin-unauthorized": "Obehƶrig!", - "msg.get-project-void": "Projektet hittades inte!", - "msg.editor-mode-locked": "Redigeraren Ƥr redan ƶppen!", - "msg.alarms-clear-success": "Alla larm har annullerats!", - "msg.import-devices-error": "Import av enheter misslyckades!", - "msg.report-build-forced": "Rapport skickad fƶr skapande", - "msg.report-build-error": "Skickade rapporten misslyckades!", - "msg.device-tags-request-result": "Laddar {{value}} av {{current}}", - "msg.chart-with-script": "Det definierade skriptet tar emot en lista ƶver diagramlinjer som parameter och returnerar sedan den kompletta listan med data. Kodexempel finns i skript 'Templates'", - "msg.script-name-exist": "Skriptnamnet finns redan!", - "msg.templates-exist-ask-overwrite": "En mall med namnet '{{value}}' finns redan. Vill du skriva ƶver den?", - "msg.templates-save-success": "Mall sparad!", - "msg.view-name-exist": "Vy-namnet finns redan!", - "msg.notification-name-exist": "Notifieringsnamnet finns redan!", - "msg.file-remove": "Vill du ta bort '{{value}}'?", - "msg.notification-remove": "Vill du ta bort notifieringen '{{value}}'?", - "msg.maps-location-remove": "Vill du ta bort kartplatsen '{{value}}'?", - "msg.maps-location-name-exist": "Kartplatsnamnet finns redan!", - "msg.text-name-exist": "Textnamnet finns redan!", - "msg.texts-text-remove": "Vill du ta bort texten '{{value}}'?", - "msg.operation-unauthorized": "Operation obehƶrig!" +{ + "with param": "exempel {{value}}", + + "app.home": "Hem", + "app.lab": "Labb", + "app.editor": "Redigerare", + + "header.new-project": "Nytt projekt", + "header.save-project": "Spara projekt", + "header.save-project-tooltip": "Spara alla osparade projektƤndringar", + "header.saveas-project": "Spara projekt som...", + "header.rename-project": "Byt namn pĆ„ projekt", + "header.open-project": "Ɩppna projekt", + "header.edit-project": "Redigera projekt", + "header.edit-views": "Vyredigerare", + "header.edit-devices": "AnslutningsinstƤllningar", + "header.edit-charts": "DiagraminstƤllningar", + "header.edit-layout": "LayoutinstƤllningar", + "header.edit-plugins": "Plugins", + "header.edit-users": "AnvƤndarinstƤllningar", + "header.edit-alarms": "LarminstƤllningar", + "header.edit-texts": "TextinstƤllningar", + "header.help": "FUXA HjƤlp", + "header.help-tutorial": "Guide", + "header.help-info": "Om", + "header.change-thema": "Byt tema (beta)", + "header.info-version": "Version ", + "header.theme": "Ljust/mƶrkt Tema", + + "project.name": "Projektnamn", + + "sidenav.title": "FUXA", + + "tutorial.title": "FUXA Handledning", + + "dlg.info-title": "FUXA", + + "dlg.layout-title": "LayoutinstƤllningar", + "dlg.layout-general": "AllmƤnt", + "dlg.layout-lbl-auto-resize": "Automatisk storleksƤndring", + "dlg.layout-lbl-logo": "Logotyp", + "dlg.layout-lbl-icon": "Ikon", + "dlg.layout-lbl-sview": "Startvy", + "dlg.layout-lbl-login-start": "Visa inloggning vid start", + "dlg.layout-lbl-login-overlay-color": "ƖverlƤggsfƤrg", + "dlg.layout-lbl-zoom": "Zoom", + "dlg.layout-navigation-mode": "Visa navigering", + "dlg.layout-connection-message": "Visa anslutningsfel (Toast)", + "dlg.layout-show-dev": "Visa knapp", + "dlg.layout-navigation": "Navigationssidomeny", + "dlg.layout-nav-bkcolor": "BakgrundsfƤrg", + "dlg.layout-nav-fgcolor": "FƤrg", + "dlg.layout-lbl-smode": "SidolƤge", + "dlg.layout-lbl-type": "Typ", + "dlg.layout-header": "NavigationsfƤlt i header", + "dlg.layout-header-bkcolor": "BakgrundsfƤrg", + "dlg.layout-header-fgcolor": "FƤrg", + "dlg.layout-lbl-title": "Titel", + "dlg.layout-lbl-alarms": "LƤge fƶr larm-notis", + "dlg.layout-lbl-datetime": "Datum- och tidsformat (dd/MM/yyyy - hh:mm a)", + "dlg.layout-lbl-infos": "LƤge fƶr info-notis", + "dlg.layout-lbl-font": "Typsnitt", + "dlg.layout-lbl-font-size": "Teckenstorlek", + "dlg.layout-lbl-anchor": "Riktning", + "dlg.layout-lbl-margin-left": "VƤnstermarginal", + "dlg.layout-lbl-margin-right": "Hƶgermarginal", + "dlg.layout-lbl-login-info": "Inloggnings-info", + "dlg.layout-lbl-custom-styles": "Anpassade stilar", + "dlg.layout-lbl-show-language": "Visa sprĆ„k", + + "dlg.menuitem-title": "Menyobjekt", + "dlg.menuitem-image": "[My Image...]", + "dlg.menuitem-icon": "Ikon", + "dlg.menuitem-text": "Text", + "dlg.menuitem-view": "Visa vid klick", + "dlg.menuitem-link": "LƤnk vid klick", + "dlg.menuitem-alarms": "Larm vid klick", + "dlg.menuitem-address": "LƤnkadress", + "dlg.menuitem-icons-filter": "Ikonfilter", + + "dlg.menuitem-submenu": "Undermeny", + "dlg.menuitem-add-submenu": "LƤgg till undermenyobjekt", + "dlg.menuitem-submenu-items": "Undermenyobjekt", + "sidenav.new_item": "Nytt undermenyobjekt", + + "dlg.headeritem-title": "Headerobjekt", + "dlg.headeritem-icon": "Ikon", + "dlg.headeritem-icons-filter": "Ikonfilter", + + "dlg.docproperty-title": "Vyegenskaper", + "dlg.docproperty-name": "Namn", + "dlg.docproperty-width": "Bredd", + "dlg.docproperty-height": "Hƶjd", + "dlg.docproperty-background": "Bakgrund", + "dlg.docproperty-size": "Fƶrdefinierad storlek", + "dlg.docproperty-select": "VƤlj en dimension", + "dlg.docproperty-size-320-240": "320 x 240 pixlar", + "dlg.docproperty-size-460-360": "460 x 360 pixlar", + "dlg.docproperty-size-640-480": "640 x 480 pixlar", + "dlg.docproperty-size-800-600": "800 x 600 pixlar", + "dlg.docproperty-size-1024-768": "1024 x 768 pixlar", + "dlg.docproperty-size-1280-960": "1280 x 960 pixlar", + "dlg.docproperty-size-1600-1200": "1600 x 1200 pixlar", + "dlg.docproperty-size-1920-1080": "1920 x 1080 pixlar", + "dlg.docproperty-margin": "Marginal", + "dlg.docproperty-align": "Justering", + "dlg.docproperty-align-placeholder": "Justering pĆ„ sidan", + "dlg.docproperty-align-topCenter": "Topp", + "dlg.docproperty-align-middleCenter": "Mitten", + "dlg.docproperty-gridtype": "RutnƤtslayout", + "dlg.docproperty-gridtype-placeholder": "Typ av rutnƤtslayout", + "dlg.docproperty-gridtype-fit": "Anpassa", + "dlg.docproperty-gridtype-scrollVertical": "Rullning vertikal", + "dlg.docproperty-gridtype-scrollHorizontal": "Rullning horisontell", + "dlg.docproperty-gridtype-fixed": "Fast", + "dlg.docproperty-gridtype-verticalFixed": "Fast vertikal", + "dlg.docproperty-gridtype-horizontalFixed": "Fast horisontell", + + "dlg.docname-title": "Vy-namn", + "dlg.docname-name": "Namn", + "dlg.docproperty-type": "Vy-typ", + "dlg.item-title": "Namn", + "dlg.item-name": "Namn", + "dlg.item-req-name": "Funktionsnamn (Inga mellanslag eller siffror tillĆ„tna)", + "dlg.item-name-error": "Namnet finns redan!", + "dlg.parameter-title": "Parameter", + + "dlg.tagname-title": "Taggnamn", + "dlg.tagname-name": "Namn", + + "dlg.linkproperty-title": "Skapa hyperlƤnk", + "dlg.linkproperty-url": "HyperlƤnk URL", + + "dlg.login-title": "Logga in...", + "dlg.logout-btn": "Logga ut", + + "dlg.ok": "OK", + "dlg.cancel": "AVBRYT", + "dlg.close": "STƄNG", + "dlg.apply": "TILLƄMPA", + + "dlg.userproperty-title": "AnvƤndare", + "dlg.userproperty-groups": "Behƶrighetsgrupper", + "dlg.userproperty-roles": "Behƶrighetsroller", + "dlg.useraccess-groups": "Behƶrighet (tom = full tillgĆ„ng fƶr alla)", + "dlg.userproperty-language": "SprĆ„k", + "dlg.userproperty-start": "Startvy", + + "dlg.gauge-permission-title": "Behƶrighet", + "dlg.gauge-permission-label": "(tom = full tillgĆ„ng fƶr alla)", + "dlg.gauge-permission-show": "Visa", + "dlg.gauge-permission-enabled": "Aktiverad", + + "date.range-start": "Startdatum", + "date.range-end": "Slutdatum", + + "general.search-up": "SƖK", + "general.close": "StƤng", + "general.search": "Sƶk...", + "general.search-notfound": "Inga alternativ hittades", + "general.username": "AnvƤndarnamn", + "general.fullname": "FullstƤndigt namn", + "general.password": "Lƶsenord", + "general.clientId": "Klient-ID", + "general.authority": "Behƶrighet", + "general.grant-type": "Grant-typ", + "general.usergroups": "LƤsĆ„tkomst,Operatƶr,Ingenjƶr,Supervisor,Manager,F,G,Administratƶr", + "general.enabled": "Aktiverad", + "general.disabled": "Inaktiverad", + "general.align-left": "VƤnster", + "general.align-center": "Mitten", + "general.align-right": "Hƶger", + "general-left": "VƤnster", + "general-top": "Topp", + "general-x": "X", + "general-y": "Y", + "general.monday": "MĆ„ndag", + "general.monday-short": "MĆ„n", + "general.tuesday": "Tisdag", + "general.tuesday-short": "Tis", + "general.wednesday": "Onsdag", + "general.wednesday-short": "Ons", + "general.thursday": "Torsdag", + "general.thursday-short": "Tors", + "general.friday": "Fredag", + "general.friday-short": "Fre", + "general.saturday": "Lƶrdag", + "general.saturday-short": "Lƶr", + "general.sunday": "Sƶndag", + "general.sunday-short": "Sƶn", + "general.save-template": "Spara som mall", + "general.import-template": "Importera frĆ„n mall", + + "tester.title": "Variabel", + "tester.send": "Skicka", + + "item.overlaycolor-none": "Ingen", + "item.overlaycolor-black": "Svart", + "item.overlaycolor-white": "Vit", + + "item.navsmode-none": "None", + "item.navsmode-push": "Push", + "item.navsmode-over": "Over", + "item.navsmode-fix": "Fixed", + + "item.navtype-icons": "Ikoner", + "item.navtype-text": "Text", + "item.navtype-icons-text-block": "Ikoner & Text (block)", + "item.navtype-icons-text-inline": "Ikoner & Text (inline)", + + "item.headertype-button": "Knapp", + "item.headertype-label": "Etikett", + "item.headertype-image": "Bild", + "item.headeranchor-left": "VƤnster", + "item.headeranchor-right": "Hƶger", + "item.headeranchor-center": "Mitten", + + "item.notifymode-hide": "Dƶlj", + "item.notifymode-fix": "Fast", + "item.notifymode-float": "Skjut", + + "item.logininfo-type-nothing": "Ingenting", + "item.logininfo-type-username": "AnvƤndarnamn", + "item.logininfo-type-fullname": "FullstƤndigt namn", + "item.logininfo-type-both": "AnvƤndarnamn & FullstƤndigt namn", + + "item.language-show-mode-nothing": "Dƶlj", + "item.language-show-mode-simple": "Visa", + "item.language-show-mode-key": "Visa med nyckel", + "item.language-show-mode-fullname": "Visa med fullstƤndigt namn", + + "item.zoommode-disabled": "Inaktiverad", + "item.zoommode-enabled": "Manuellt", + "item.zoommode-autoresize": "Automatisk storleksƤndring", + + "item.headerbarmode-hide": "Dƶlj", + "item.headerbarmode-show": "Visa", + + "dlg.layout-input-dialog": "DialoglƤge fƶr inmatningsfƤlt", + "item.inputmode-disabled": "Inaktiverad", + "item.inputmode-enabled": "Dialog", + "item.inputmode-keyboard": "Virtuellt tangentbord", + "item.inputmode-keyboard-full-screen": "Virtuellt tangentbord helskƤrm", + + "chart.config-title": "DiagraminstƤllningar", + "chart.config-charts": "Diagram", + "chart.config-devices": "Enheter", + "chart.config-tags": "Taggar", + "chart.config-lines": "Diagramlinje", + "chart.config-line-name": "Namn", + "chart.config-line-label": "Etikett", + "chart.config-line-yaxis": "Y-axel", + "chart.config-line-color": "FƤrg", + "chart.config-name-title": "Diagram", + "chart.config-name": "Namn", + "chart.config-rename": "Byt namn", + "chart.config-delete": "Ta bort", + "chart.config-addline": "LƤgg till linje", + "chart.config-line-interpolation": "Interpolation", + "chart.config-line-fill": "Fyll", + "chart.config-interpo-linear": "linjƤr", + "chart.config-interpo-stepAfter": "steg efter", + "chart.config-interpo-stepBefore": "steg fƶre", + "chart.config-interpo-spline": "spline", + "chart.config-line-width": "Linjebredd", + "chart.config-line-gap": "Fyll luckor", + "chart.config-line-add-zone": "LƤgg till zon", + "chart.config-line-zone-min": "Min", + "chart.config-line-zone-max": "Max", + "chart.config-line-zone-stroke": "Linje", + "chart.config-line-zone-fill": "Fyll", + + "chart.property-data": "Data", + "chart.property-props": "Egenskap", + "chart.property-layout": "Layout", + "chart.property-name": "Namn", + "chart.property-chart": "Diagram att visa", + "chart.property-newchart": "Nytt diagram...", + "chart.property-chart-type": "VisningslƤge", + "chart.property-realtime-max": "Max minuter", + "chart.viewtype-realtime1": "Realtid", + "chart.viewtype-history": "Historik", + "chart.viewtype-custom": "Anpassad", + "chart.property-general": "AllmƤnt", + "chart.property-font": "Typsnitt", + "chart.property-font.titlesize": "Titelstorlek", + "chart.property-font.axissize": "Axelstorlek", + "chart.property-font.legendsize": "Legendstorlek", + "chart.property-theme": "Tema", + "chart.property-color.background": "Bakgrund", + "chart.property-color.text": "TextfƤrg", + "chart.property-color.grid": "RutnƤtsfƤrg", + "chart.property-color.legend": "LegendfƤrg", + "chart.property-legend.mode": "LegendvisningslƤge", + "chart.property-date-last-range": "Datumintervall", + "chart.property-refresh-interval": "Uppdateringsintervall (min.)", + "chart.property-hide-toolbar": "Dƶlj verktygsfƤlt", + "chart.property-thouch-zoom": "Pekzoom", + "chart.property-load-old-values": "Ladda historik", + "chart.property-date.format": "Datumformat", + "chart.property-time.format": "Tidsformat", + "chart.property-axis": "Axel", + "chart.property-xaxis": "X-axel", + "chart.property-axis-x": "Etikett", + "chart.property-yaxis": "Y-axel", + "chart.property-axis-y1": "Y1 etikett", + "chart.property-axis-y1-min": "Y1 Min", + "chart.property-axis-y1-max": "Y1 Max", + "chart.property-axis-y2": "Y2 etikett", + "chart.property-axis-y2-min": "Y2 Min", + "chart.property-axis-y2-max": "Y2 Max", + "chart.property-axis-y3": "Y3 etikett", + "chart.property-axis-y3-min": "Y3 Min", + "chart.property-axis-y3-max": "Y3 Max", + "chart.property-axis-y4": "Y4 etikett", + "chart.property-axis-y4-min": "Y4 Min", + "chart.property-axis-y4-max": "Y4 Max", + "chart.property-script": "ScriptdatakƤlla", + + "chart.rangetype-last8h": "Senaste 8 timmarna", + "chart.rangetype-last1d": "Senaste dygnet", + "chart.rangetype-last3d": "Senaste 3 dagarna", + "chart.rangetype-last1w": "Senaste veckan", + + "chart.legend-always": "alltid", + "chart.legend-follow": "fƶljer", + "chart.legend-bottom": "botten", + "chart.legend-never": "aldrig", + + "chart.labels-serie": "Serie", + "chart.labels-time": "Tid", + "chart.labels-title": "Titel", + + "graph.config-title": "GrafinstƤllningar", + "graph.config-rename": "Byt namn", + "graph.config-source-tag": "LƤgg till kƤlltagg", + "graph.config-source-name": "Namn", + "graph.config-source-label": "Etikett", + "graph.config-category": "Kategori", + "graph.config-device": "Enhet", + "graph.config-bar-color": "Kant", + "graph.config-bar-fill": "Fyllning", + "graph.property-xtype": "Kategori fƶr X-axel", + "graph.property-sources": "KƤllor (Taggar)", + "graph.bar-xtype-value": "VƤrden", + "graph.bar-xtype-date": "Datum och tid", + "graph.property-fnctype": "Funktionstyp", + "graph.bar-date-fnc-value-integral": "Summa (Integral)", + "graph.bar-date-fnc-hour-integral": "Timvis summa (Integral)", + + "graph.property-data": "Data", + "graph.property-name": "Namn", + "graph.property-general": "AllmƤnt", + "graph.property-title": "Titel", + "graph.property-title-font": "Teckenstorlek", + "graph.property-title-show": "Visa", + "graph.property-title-color": "Titel", + "graph.property-layout": "Layout", + "graph.property-graph": "Graf att visa", + "graph.property-props": "Egenskap", + "graph.property-newgraph": "Ny graf...", + "graph.property-date-last-range": "Datumintervall", + "graph.property-date-group": "Grupp", + "graph.property-offline": "Online", + "graph.property-graph-oriantation": "Orientering", + "graph.property-ori-vartical": "Vertikal", + "graph.property-ori-horizontal": "Horisontell", + "graph.property-decimals": "Decimaler", + "graph.property-yaxis-min": "Min", + "graph.property-yaxis-max": "Max", + "graph.property-stepsize": "Stegstorlek", + "graph.property-yaxis": "VƤrdeaxel", + "graph.property-yaxis-fontsize": "Teckenstorlek", + "graph.property-yaxis-show": "Visa", + "graph.property-yaxis-color": "VƤrde", + "graph.property-xaxis-fontsize": "Teckenstorlek", + "graph.property-xaxis": "Kategori-axel", + "graph.property-xaxis-show": "Visa", + "graph.property-xaxis-color": "Kategori", + "graph.property-theme": "Tema", + "graph.property-theme-type": "Typ", + "graph.property-gridline": "Visa rutnƤt", + "graph.property-grid-color": "RutnƤtsfƤrg", + "graph.property-theme-owner": "Anpassa", + "graph.property-theme-light": "Ljus", + "graph.property-theme-dark": "Mƶrk", + "graph.property-legend": "Legend", + "graph.property-legend-display": "Position", + "graph.property-legend-top": "Topp", + "graph.property-legend-left": "VƤnster", + "graph.property-legend-bottom": "Botten", + "graph.property-legend-right": "Hƶger", + "graph.property-legend-show": "Visa", + "graph.property-legend-fontsize": "Teckensnitt", + "graph.property-legend-align": "Justering", + "graph.property-legend-center": "Mitten", + "graph.property-legend-start": "Start", + "graph.property-legend-end": "Slut", + "graph.property-legend-color": "Legend", + "graph.property-border": "Kantstorlek", + "graph.property-tooltip": "Visa verktygstips", + "graph.property-datalabels": "Datalabel", + "graph.property-datalabels-color": "Datalabel", + "graph.property-datalabels-show": "Visa", + "graph.property-datalabels-fontsize": "Teckenstorlek", + "graph.property-datalabels-align": "Justering", + + "graph.rangetype-last1h": "Senaste timmen", + "graph.rangetype-last1d": "Senaste dygnet", + "graph.rangetype-last3d": "Senaste 3 dagarna", + "graph.rangetype-last1w": "Senaste veckan", + "graph.rangetype-last1m": "Senaste mĆ„naden", + + "graph.grouptype-hours": "Timmar", + "graph.grouptype-days": "Dagar", + + "iframe.property-data": "Data", + "iframe.property-address": "Adress", + "iframe.property-name": "Namn", + + "panel.property-data": "Data", + "panel.property-view-name": "Vy namn", + "panel.property-name": "Namn", + "panel.property-scalemode": "SkalningslƤge", + "panel.property-scalemode-none": "Ingen", + "panel.property-scalemode-contain": "Anpassa", + "panel.property-scalemode-stretch": "StrƤck ut", + + "table.property-title": "InstƤllningar fƶr datatabell", + "table.property-data": "Data", + "table.property-date-last-range": "Datumintervall", + "table.property-name": "Namn", + "table.property-type": "Typ", + "table.property-type-with-realtime": "Realtid", + "table.property-header": "Rubrik", + "table.property-header-height": "Hƶjd", + "table.property-header-background": "Bakgrund", + "table.property-header-color": "FƤrg", + "table.property-header-fontSize": "Teckenstorlek", + "table.property-row": "Rad", + "table.property-row-height": "Hƶjd", + "table.property-row-background": "Bakgrund", + "table.property-row-color": "FƤrg", + "table.property-row-fontSize": "Teckenstorlek", + "table.property-selection": "Val", + "table.property-layout": "Layout", + "table.property-filter": "Filter", + "table.property-paginator": "Paginering", + "table.property-paginator-items-per-page": "Rader per sida", + "table.property-paginator-next-page": "NƤsta sida", + "table.property-paginator-prev-page": "FƶregĆ„ende sida", + "table.property-paginator-of-label": "Av", + "table.property-daterange": "Datumintervall", + "table.property-gridline": "Visa rutnƤt", + "table.property-type-data": "Datatabell", + "table.property-type-history": "Historiktabell", + "table.property-type-alarms": "Larmtabell", + "table.property-type-alarms-history": "Larminformation", + "table.property-type-reports": "Rapporttabell", + "table.property-grid-color": "RutnƤtsfƤrg", + "table.property-cols": "Kolumner", + "table.property-rows": "Rader", + "table.property-column-type": "Kolumntyp", + "table.property-column-name": "Kolumnnamn", + "table.property-column-label": "Etikett", + "table.property-column-variable": "Variabel", + "table.property-column-device": "Enhet", + "table.property-column-timestamp": "Datum/Tid", + "table.property-column-align": "Justering", + "table.property-column-width": "Bredd", + "table.property-row-type": "Radtyp", + "table.property-customize-tooltip": "Tabellanpassare", + "table.customize-title": "Tabellanpassare", + "table.customize-column-edit": "Redigera kolumn", + "table.customize-column-add": "LƤgg till kolumn", + "table.customize-column-remove": "Ta bort kolumn", + "table.customize-row-edit": "Redigera rad", + "table.customize-row-add": "LƤgg till rad", + "table.customize-row-remove": "Ta bort rad", + "table.cell-column-name": "Kolumnnamn", + "table.column-dialog-title": "Kolumn", + "table.row-dialog-title": "Rad", + "table.cell-column-type": "Kolumntyp", + "table.cell-row-type": "Radtyp", + "table.cell-ts-format": "Format (DD/MM/YYYY - HH:mm:ss)", + "table.cell-value-format": "Format (0.000)", + "table.cell-format": "Format", + "table.cell-text": "Text", + "table.cell-align-left": "VƤnster", + "table.cell-align-center": "Mitten", + "table.cell-align-right": "Hƶger", + + "table.history-filter": "Filter", + "table.rangetype-last1h": "Senaste timmen", + "table.rangetype-last1d": "Senaste dagen", + "table.rangetype-last3d": "Senaste 3 dagarna", + + "table.alarms-title": "Tabell Larm", + "table.alarms-history-title": "Tabell Larminformation", + "table.alarm-columns": "Larmkolumner", + "table.alarm-filter": "Larmfilter", + "table.alarm-priority": "Prioritet", + "table.alarm-tags": "Taggar", + + "table.reports-title": "Tabell Rapporter", + "table.report-columns": "Rapportkolumner", + "table.report-view-name": "Namn", + "table.report-view-ontime": "Skapad", + "table.report-view-download": "Ladda ner", + "table.report-view-delete": "Ta bort", + "table.report-filter": "Rapportfilter", + "table.report-filter-name": "Namn", + "table.report-filter-count": "Max.", + + "editor.view-svg": "Arbetsyta/SVG", + "editor.view-cards": "Fler vybehĆ„llare", + "editor.view-maps": "Kartor", + "editor.views": "Vyer", + "editor.resources": "Resurser", + "editor.view-delete": "Ta bort", + "editor.view-rename": "Byt namn", + "editor.view-property": "Egenskap", + "editor.view-clone": "Klona", + "editor.view-export": "Exportera", + "editor.view-add": "LƤgg till vy", + "editor.image-add": "LƤgg till bild", + "editor.view-import": "Importera vy", + "editor.general": "AllmƤnna symboler", + "editor.shape": "Grafiska symboler", + "editor.processeng": "Processautomation", + "editor.animated": "Animation", + "editor.controls": "Interaktiva symboler", + "editor.controls-input": "IndatavƤrde", + "editor.controls-input-settings": "InstƤllningar fƶr indata", + "editor.controls-output": "Utdata", + "editor.controls-output-settings": "InstƤllningar fƶr utdata", + "editor.controls-button": "Knapp", + "editor.controls-button-settings": "KnappinstƤllningar", + "editor.controls-select": "VƤlj vƤrde", + "editor.controls-select-settings": "VƤlj instƤllningar", + "editor.controls-progress": "MƤtare (Bar)", + "editor.controls-progress-settings": "InstƤllningar fƶr StapelmƤtare", + "editor.controls-semaphore": "MƤtare (LED)", + "editor.controls-semaphore-settings": "InstƤllningar fƶr LedmƤtare", + "editor.controls-chart": "Diagram", + "editor.controls-chart-settings": "DiagraminstƤllningar", + "editor.controls-bag": "CirkulƤr mƤtare", + "editor.controls-bag-settings": "InstƤllningar fƶr cirkulƤr mƤtare", + "editor.controls-pipe": "Rƶr", + "editor.controls-pipe-settings": "RƶrinstƤllningar", + "editor.controls-slider": "Reglage", + "editor.controls-slider-settings": "InstƤllningar fƶr reglage", + "editor.controls-shape-settings": "ForminstƤllningar", + "editor.controls-html-switch-settings": "VƤxlare instƤllningar", + "editor.controls-switch": "VƤxlare", + "editor.controls-graphbar": "Stapeldiagram", + "editor.controls-graph-bar-settings": "InstƤllningar fƶr stapeldiagram", + "editor.controls-graphpie": "Cirkeldiagram", + "editor.controls-graph-pie-settings": "InstƤllningar fƶr cirkeldiagram", + "editor.controls-iframe": "Iframe", + "editor.controls-iframe-settings": "Iframe-instƤllningar", + "editor.controls-table": "Tabell", + "editor.header-item-settings": "HeaderobjektinstƤllningar", + "editor.controls-image": "Bild (lƤnk)", + "editor.controls-panel": "Panel", + "editor.controls-panel-settings": "PanelinstƤllningar", + + "editor.layout-settings": "LayoutinstƤllningar", + + "editor.interactivity": "Interaktivitet", + "editor.interactivity-id": "id:", + "editor.interactivity-id-title": "Identifiera elementet", + "editor.interactivity-class": "klass:", + "editor.interactivity-class-title": "Elementklass", + "editor.interactivity-name": "namn", + "editor.edit-bind-of-tags": "Redigera bindning av taggar", + + "editor.cmenu-property": "Egenskap", + "editor.cmenu-cut": "Klipp ut", + "editor.cmenu-copy": "Kopiera", + "editor.cmenu-paste": "Klistra in", + "editor.cmenu-paste-place": "Klistra in pĆ„ plats", + "editor.cmenu-delete": "Ta bort", + "editor.cmenu-group": "Gruppera", + "editor.cmenu-ungroup": "Avgruppera", + "editor.cmenu-bring-front": "Flytta lƤngst fram", + "editor.cmenu-bring-forward": "Flytta framĆ„t", + "editor.cmenu-send-backward": "Flytta bakĆ„t", + "editor.cmenu-send-back": "Flytta lƤngst bak", + "editor.cmenu-layer-duplicate": "Duplicera lager...", + "editor.cmenu-layer-delete": "Ta bort lager", + "editor.cmenu-layer-marge-down": "Sammanfoga nedĆ„t", + "editor.cmenu-layer-marge-all": "Sammanfoga alla", + "editor.cmenu-unlock": "LĆ„s upp", + "editor.cmenu-lock": "LĆ„s", + + "editor.transform": "Transformera", + "editor.transform-x": "x", + "editor.transform-x-title": "Ƅndra X-koordinat", + "editor.transform-y": "y", + "editor.transform-y-title": "Ƅndra Y-koordinat", + "editor.transform-x1": "x1", + "editor.transform-x1-title": "Ƅndra linjens start-x-koordinat", + "editor.transform-y1": "y1", + "editor.transform-y1-title": "Ƅndra linjens start-y-koordinat", + "editor.transform-x2": "x2", + "editor.transform-x2-title": "Ƅndra linjens slut-x-koordinat", + "editor.transform-y2": "y2", + "editor.transform-y2-title": "Ƅndra linjens slut-y-koordinat", + "editor.transform-rect-width-title": "Ƅndra rektangelns bredd", + "editor.transform-width": "bredd", + "editor.transform-rect-height-title": "Ƅndra rektangelns hƶjd", + "editor.transform-height": "hƶjd", + "editor.transform-rect-radius-title": "Ƅndra hƶrnradie fƶr rektangel", + "editor.transform-radiuscorner": "hƶrnradie", + "editor.transform-circlecx": "cx", + "editor.transform-circlecx-title": "Ƅndra cirkelns cx-koordinat", + "editor.transform-circlecy": "cy", + "editor.transform-circlecy-title": "Ƅndra cirkelns cy-koordinat", + "editor.transform-circler": "r", + "editor.transform-circler-title": "Ƅndra cirkelns radie", + "editor.transform-ellipsecx": "cx", + "editor.transform-ellipsecx-title": "Ƅndra ellipsens cx-koordinat", + "editor.transform-ellipsecy": "cy", + "editor.transform-ellipsecy-title": "Ƅndra ellipsens cy-koordinat", + "editor.transform-ellipserx": "rx", + "editor.transform-ellipserx-title": "Ƅndra ellipsens x-radie", + "editor.transform-ellipsery": "ry", + "editor.transform-ellipsery-title": "Ƅndra ellipsens y-radie", + "editor.transform-fontfamily": "typsnitt", + "editor.transform-font-serif": "Serif", + "editor.transform-font-sansserif": "Sans-serif", + "editor.transform-font-cursive": "Kursiv", + "editor.transform-font-fantasy": "Fantasy", + "editor.transform-font-monospace": "Monospace", + "editor.transform-fontsize": "teckenstorlek", + "editor.transform-fontsize-title": "Ƅndra teckenstorlek", + "editor.transform-textalign": "textjustering", + "editor.transform-left": "vƤnster", + "editor.transform-center": "centrera", + "editor.transform-right": "hƶger", + "editor.transform-image-width-title": "Ƅndra bildens bredd", + "editor.transform-image-height-title": "Ƅndra bildens hƶjd", + "editor.transform-url": "url", + "editor.transform-image-url-title": "Ƅndra URL", + "editor.transform-change-image": "Byt bild", + "editor.transform-change-image-title": "OBS: Den hƤr bilden kan inte bƤddas in. Den Ƥr beroende av sƶkvƤgen fƶr att visas", + "editor.transform-angle": "vinkel", + "editor.transform-angle-title": "Ƅndra rotationsvinkel", + "editor.transform-hide": "Dƶlj", + "editor.transform-lock": "LĆ„s", + + "editor.align": "Justera", + "editor.align-left-title": "Justera vƤnster", + "editor.align-center-title": "Centrera", + "editor.align-right-title": "Justera hƶger", + "editor.align-top-title": "Justera topp", + "editor.align-middle-title": "Justera mitten", + "editor.align-bottom-title": "Justera botten", + + "editor.stroke": "Kantlinje", + "editor.stroke-width": "kantlinjebredd", + "editor.stroke-width-title": "Ƅndra kantlinjebredd med 1, shift-klicka fƶr att Ƥndra med 0,1", + "editor.stroke-style": "kantlinjestil", + "editor.stroke-style-title": "Ƅndra kantlinjens streckstil", + "editor.stroke-joinmiter-title": "SkƤrningspunkt Miter", + "editor.stroke-joinround-title": "SkƤrningspunkt Rund", + "editor.stroke-joinbevel-title": "SkƤrningspunkt Fas", + "editor.stroke-capbutt-title": "Linjeavslut Butt", + "editor.stroke-capsquare-title": "Linjeavslut Kvadrat", + "editor.stroke-capround-title": "Linjeavslut Rund", + "editor.stroke-shadow": "Skugga", + "editor.stroke-shadow-title": "Med skugga", + + "editor.marker": "Markƶr", + "editor.marker-start": "start", + "editor.marker-start-title": "VƤlj startmarkƶrtyp", + "editor.marker-middle": "mitten", + "editor.marker-middle-title": "VƤlj mittmarkƶrtyp", + "editor.marker-end": "slut", + "editor.marker-end-title": "VƤlj slutmarkƶrtyp", + + "editor.hyperlink": "HyperlƤnk", + "editor.hyperlink-url": "url", + + "editor.tools-launch-title": "Starta aktuell vy", + "editor.tools-select": "Markeringsverktyg", + "editor.tools-pencil": "Pennverktyg", + "editor.tools-line": "Linjeverktyg", + "editor.tools-rectangle": "Rektangelverktyg", + "editor.tools-circle": "Cirkelverktyg", + "editor.tools-ellipse": "Ellipsverktyg", + "editor.tools-path": "Bana-verktyg", + "editor.tools-text": "Textverktyg", + "editor.tools-image": "Bildverktyg (inbƤddad)", + + "editor.tools-zoom-title": "Zoomverktyg [Ctrl+Upp/Ner]", + "editor.tools-grid-title": "Visa/Dƶlj rutnƤt", + "editor.tools-undo-title": "ƅngra [Z]", + "editor.tools-redo-title": "Gƶr om [Y]", + "editor.tools-clone-title": "Duplicera element [D]", + "editor.tools-delete-title": "Ta bort element [Delete/Backspace]", + "editor.tools-movebottom-title": "Flytta lƤngst bak [Ctrl+Shift+[ ]", + "editor.tools-movetop-title": "Flytta lƤngst fram [Ctrl+Shift+] ]", + "editor.tools-topath-title": "Konvertera till bana", + "editor.tools-clonemulti-title": "Kloningsverktyg [C]", + "editor.tools-deletemulti-title": "Ta bort valda element [Delete/Backspace]", + "editor.tools-group-title": "Gruppera element [G]", + "editor.tools-alignleft-title": "Justera vƤnster", + "editor.tools-aligncenter-title": "Centrera", + "editor.tools-alignright-title": "Justera hƶger", + "editor.tools-aligntop-title": "Justera topp", + "editor.tools-alignmiddle-title": "Justera mitten", + "editor.tools-alignbottom-title": "Justera botten", + "editor.tools-ungroup-title": "Avgruppera element [G]", + "editor.tools-hyperlink-title": "Skapa hyperlƤnk", + "editor.tools-svg-selector": "ObjektlistvƤljare", + + "editor.settings-general": "AllmƤnt", + "editor.settings-events": "HƤndelser", + "editor.settings-actions": "ƅtgƤrder", + + "tags.ids-config-title": "Tags-Ids referens", + + "svg.selector.property-title": "Visa objektlista", + + "tutorial.editor-keyboard-shortcuts": "Kortkommandon i redigeraren", + + "shapes.action-hide": "Dƶlj", + "shapes.action-show": "Visa", + "shapes.action-blink": "Blinka", + "shapes.action-stop": "Stoppa", + "shapes.action-clockwise": "Vrid medurs", + "shapes.action-anticlockwise": "Vrid moturs", + "shapes.action-downup": "Upp och ner", + "shapes.action-rotate": "Rotera", + "shapes.action-move": "Flytta", + "shapes.event-click": "Klick", + "shapes.event-dblclick": "Dubbelklick", + "shapes.event-mouseup": "Musknapp slƤppt", + "shapes.event-mousedown": "Musknapp nedtryckt", + "shapes.event-mouseover": "Mus ƶver", + "shapes.event-mouseout": "Mus lƤmnar", + "shapes.event-enter": "Enter", + "shapes.event-select": "Markera", + "shapes.event-onpage": "Ɩppna Sida", + "shapes.event-onwindow": "Ɩppna Kort", + "shapes.event-ondialog": "Ɩppna Dialog", + "shapes.event-oniframe": "Ɩppna iframe", + "shapes.event-oncard": "Ɩppna Fƶnster", + "shapes.event-onopentab": "Ɩppna Flik", + "shapes.event-onsetvalue": "SƤtt vƤrde", + "shapes.event-ontogglevalue": "VƤxla vƤrde", + "shapes.event-onsetinput": "SƤtt frĆ„n Inmatning", + "shapes.event-onclose": "StƤng", + "shapes.event-onopen": "Ɩppna", + "shapes.event-onrunscript": "Kƶr skript", + "shapes.event-setvalue-set": "sƤtt", + "shapes.event-setvalue-add": "ƶka", + "shapes.event-setvalue-remove": "minska", + "shapes.event-address-link": "LƤnk", + "shapes.event-address-resource": "Resurs", + "shapes.event-onmonitor": "Ɩvervaka", + "shapes.event-onViewToPanel": "SƤtt vy till panel", + "shapes.event-onLoad": "Vid inladdning", + "shapes.event-relativefrom-window": "Fƶnster", + "shapes.event-relativefrom-mouse": "Mus", + + "pipe.property-title": "RƶrinstƤllningar", + "pipe.property-data": "Data", + "pipe.property-style": "Stil", + "pipe.property-props": "Egenskaper", + "pipe.property-border-width": "Kantbredd", + "pipe.property-border-color": "KantfƤrg", + "pipe.property-pipe-width": "Rƶrbredd", + "pipe.property-pipe-color": "RƶrfƤrg", + "pipe.property-content-width": "InnehĆ„llsbredd", + "pipe.property-content-color": "InnehĆ„llsfƤrg", + "pipe.property-content-space": "InnehĆ„llsstreck", + "pipe.action-hide-content": "Dƶlj innehĆ„ll", + "pipe.property-style-animation": "Animationsbild", + "pipe.property-style-animation-image": "VƤlj bild (SVG)", + "pipe.property-style-animation-count": "Antal bilder", + "pipe.property-style-animation-delay": "Animationsfƶrdrƶjning (ms)", + + "slider.property-props": "Egenskaper", + "slider.property-horizontal": "Horisontell", + "slider.property-vertical": "Vertikal", + "slider.property-orientation": "Orientering", + "slider.property-direction": "Riktning", + "slider.property-rtl": "hƶger-till-vƤnster", + "slider.property-ltr": "vƤnster-till-hƶger", + "slider.property-min": "Min", + "slider.property-max": "Max", + "slider.property-step": "Steg", + "slider.property-font": "Teckensnitt", + "slider.property-background": "Bakgrund", + "slider.property-scala": "Skala", + "slider.property-marker-color": "FƤrg", + "slider.property-subdivisions": "Underavdelningar (%)", + "slider.property-subdivisions-height": "Hƶjd", + "slider.property-subdivisions-width": "Bredd", + "slider.property-divisions": "Avdelningar (%)", + "slider.property-divisions-height": "Hƶjd", + "slider.property-divisions-width": "Bredd", + "slider.property-font-size": "Skalans teckenstorlek", + "slider.property-tooltip": "Verktygstips", + "slider.property-tooltip-none": "Ingen", + "slider.property-tooltip-hide": "Dƶlj", + "slider.property-tooltip-show": "Visa", + "slider.property-tooltip-decimals": "Decimaler", + "slider.property-tooltip-background": "Bakgrund", + "slider.property-tooltip-color": "TextfƤrg", + "slider.property-tooltip-font-size": "Teckenstorlek fƶr verktygstips", + "slider.property-slider-color": "FƤrg fƶr koppling", + "slider.property-slider-background": "BasfƤrg", + "slider.property-slider-handle": "PekarfƤrg", + + "html-switch.property-off-value": "Av-vƤrde", + "html-switch.property-on-value": "PĆ„-vƤrde", + "html-switch.property-on-background": "PĆ„-bakgrund", + "html-switch.property-off-background": "Av-bakgrund", + "html-switch.property-off-text": "Av-text", + "html-switch.property-on-text": "PĆ„-text", + "html-switch.property-on-slider-color": "PĆ„-glidfƤrg", + "html-switch.property-off-slider-color": "Av-glidfƤrg", + "html-switch.property-radius": "Hƶrnradie", + "html-switch.property-off-text-color": "Av-textfƤrg", + "html-switch.property-on-text-color": "PĆ„-textfƤrg", + "html-switch.property-font-size": "Teckenstorlek", + "html-switch.property-font": "Teckensnitt", + + "html-input.min": "Min", + "html-input.max": "Max", + "html-input.out-of-range": "VƤrde utanfƶr tillĆ„tet intervall", + "html-input.not-a-number": "VƤrdet Ƥr inte ett nummer", + + "editor.tools-zoomlevel-title": "ZoomnivĆ„", + "editor.tools-zoomlevel-fitcanvas": "Anpassa till arbetsyta", + "editor.tools-zoomlevel-fitsection": "Anpassa till markering", + "editor.tools-zoomlevel-fitcontent": "Anpassa till allt innehĆ„ll", + "editor.tools-fillcolor-title": "Ƅndra fyllnadsfƤrg", + "editor.tools-strokecolor-title": "Ƅndra kantfƤrg", + "editor.tools-palettecolor-title": "Klicka fƶr att Ƥndra fyllnadsfƤrg, shift-klicka fƶr att Ƥndra kantfƤrg", + + "device.list-title": "AnslutningsinstƤllningar", + "device.list-device": "Enhet", + "device.list-filter": "Filter", + "device.list-name": "Namn", + "device.list-address": "Adress", + "device.list-type": "Typ", + "device.list-min": "Min", + "device.list-max": "Max", + "device.list-value": "VƤrde", + "device.list-timestamp": "TidsstƤmpel", + "device.list-description": "Beskrivning", + "device.list-edit": "Redigera Tagg", + "device.list-add": "LƤgg till Tagg", + "device.list-remove": "Ta bort Tagg", + "device.list-remove-all": "Ta bort alla Taggar", + "device.list-options": "Taggalternativ", + "device.list-clipboard": "Kopiera taggobjekt till urklipp", + "device.list-direction": "Riktning", + + "devices.export": "Exportera enheter", + "devices.export-json": "JSON", + "devices.export-csv": "CSV", + "devices.import": "Importera enheter", + "device.manage-templates": "Hantera mallar", + "device.save-tags-to-template": "Spara taggar till mall", + "device.add-tags-from-template": "LƤgg till taggar frĆ„n mall", + "device.tags-template-name-title": "Taggmallens namn", + "devices.import-template": "Importera enheter med mall", + "device.property-client": "Anslutningsegenskaper", + "device.property-server": "FUXA-serveregenskaper", + "device.property-name": "Namn", + "device.property-type": "Typ", + "device.property-polling": "Pollning", + "device.property-enable": "Aktivera", + "device.property-subscribe": "Prenumerera", + "device.property-address": "Adress (IP eller opc.tcp://[server]:[port])", + "device.property-address-opc": "Adress (opc.tcp://[server]:[port])", + "device.property-address-s7": "IP-adress (IP 127.0.0.1)", + "device.property-device-port": "Enhetens IP och port (127.0.0.1:47808)", + "device.property-address-port": "Slavens IP och port (127.0.0.1:502)", + "device.property-security": "SƤkerhet och kryptering", + "device.property-tags": "Redigera enhetstaggar", + "device.property-edit": "Redigera enhetens egenskaper", + "device.property-remove": "Ta bort enhet", + "device.property-add": "LƤgg till enhet", + "device.not-property-security": "Utan sƤkerhet och kryptering", + "device.property-connection-options": "Anslutningsalternativ", + "device.property-port": "Port", + "device.property-slave-id": "Slav-ID", + "device.property-routing": "Routing", + "device.property-tockenized": "Fragmenterad", + "device.property-rack": "Rack", + "device.property-slot": "Slot", + "device.property-serialport": "Serieport", + "device.property-baudrate": "Baudrate", + "device.property-databits": "Databitar", + "device.property-stopbits": "Stoppbitar", + "device.property-parity": "Paritet", + "device.property-delay": "Ramfƶrdrƶjning (ms)", + "device.property-method": "Metod", + "device.property-format": "Format", + "device.property-internal": "Endast frontend", + "device.property-url": "URL (http://[server]:[port])", + "device.property-webapi-result": "Resultat av fƶrfrĆ„gan", + "device.not-webapi-result": "Konfigurera WebAPI-resultat", + "device.property-show": "Visa anslutningsegenskaper", + "device.property-hide": "Dƶlj anslutningsegenskaper", + "device.property-interface-address": "GrƤnssnitt och port", + "device.property-interface-address-ph": "127.0.0.1:47808", + "device.property-broadcast-address": "Broadcast", + "device.property-broadcast-address-ph": "127.0.0.255", + "device.property-adpu-timeout": "ADPU-timeout", + "device.property-adpu-timeout-ph": "6000", + "device.property-certificate-section": "TLS-certifikat", + "device.property-certificate": "Certifikat", + "device.property-certificate-key": "Privat nyckel", + "device.property-certificate-ca": "CA-certifikat", + "device.security-none": "Ingen", + "device.security-sign": "Signera", + "device.security-signandencrypt": "Signera och kryptera", + "device.webapi-property-title": "WebAPI-egenskaper", + "device.webapi-property-gettags": "URL GET Taggar", + "device.webapi-property-posttags": "URL POST Taggar", + "device.webapi-property-loadtags": "Ladda taggar", + "device.property-dsn": "DatakƤllans namn (DSN=Databasnamn)", + "device.property-odbc-result": "Resultat av hittade tabeller", + "device.not-odbc-result": "Resultat frĆ„n databastabeller", + "device.add-device-templates-title": "Anslutningsmallar", + "device.add-tags-templates-title": "Taggmallar", + "device.manage-templates-title": "Ta bort mallar", + "device.template-device": "Mallnamn", + "device.template-tags": "Mallnamn", + "device.property-socket-reuse": "ƅteranvƤnd socket", + + "device.browsetopics-property-title": "Broker-Ƥmnen att prenumerera och publicera", + "device.browsetopics-property-sub": "Prenumerera", + "device.browsetopics-property-pub": "Publicera", + "device.discovery-topics": "BlƤddra Ƥmnen pĆ„ broker", + "device.topic-selected": "ƄmnesvƤg", + "device.topic-raw": "raw", + "device.topic-json": "json", + "device.add-topics": "Publicera mina Ƥmnen pĆ„ broker", + "device.topic-publish-name": "Ƅmnesnamn", + "device.topic-publish-path": "ƄmnesvƤg", + "device.topic-publish": "Publicera", + "device.topic-subscribe": "Prenumerera", + "device.topic-subscription-content": "InnehĆ„ll", + "device.topic-subscription-name": "Namn", + "device.topic-subscription-address": "Adress", + "device.topic-publish-add-item": "LƤgg till attribut till payload", + "device.topic-publish-key": "Nyckel", + "device.topic-publish-type": "Typ", + "device.topic-publish-timestamp": "TidsstƤmpel", + "device.topic-publish-value": "ƄmnesvƤg", + "device.topic-publish-static": "VƤrde", + "device.topic-publish-content": "Payload", + "device.topic-type-tag": "Tagg", + "device.topic-type-timestamp": "TidsstƤmpel", + "device.topic-type-value": "VƤrde (fƶr Ƥmne)", + "device.topic-type-static": "Statisk", + "device.topic-name-exist": "Ƅmnesnamnet '{{value}}' finns redan", + "device.topic-subs-address-exist": "Ƅmnet att prenumerera pĆ„ med adress '{{value}}' finns redan", + "device.topic-pubs-address-exist": "Ƅmnet att publicera med adress '{{value}}' finns redan", + + "device.property-mqtt-address": "Adress (mqtt://[server]:[port])", + "device.tag-property-title": "Taggegenskaper", + "device.browsetag-property-title": "BlƤddra taggar pĆ„ server", + "device.tag-property-device": "Anslutning", + "device.tag-property-name": "Taggnamn", + "device.tag-property-register": "Register", + "device.tag-property-type": "Typ", + "device.tag-property-address": "Adress (ex. db5.dbb3 db4.dbx2.0 MB7)", + "device.tag-property-address-sample": "Adress", + "device.tag-property-min": "Min", + "device.tag-property-max": "Max", + "device.tag-property-divisor": "Divisor", + "device.tag-property-address-offset": "Adressfƶrskjutning (1-65536)", + "device.tag-property-obj-name": "Namn", + "device.tag-property-path": "SƶkvƤg", + "device.tag-property-unit": "Enhet", + "device.tag-property-digits": "Decimaler", + "device.tag-property-initvalue": "StartvƤrde", + "device.tag-property-description": "Beskrivning", + "device.tag-property-direction": "Riktning", + "device.tag-property-edge": "Kant", + "device.tag-property-gpio": "GPIO-nummer", + + + "device.tag-array-id": "Array-ID:", + "device.tag-array-value": "VƤrde:", + "device-tag-dialog-title": "Taggval", + + "device.tag-options-title": "Taggalternativ", + "device.tag-daq-enabled": "Registrering aktiverad", + "device.tag-daq-changed": "Spara om Ƥndrad", + "device.tag-daq-interval": "Spara vƤrdeintervall (sek.)", + "device.tag-daq-restored": "ƅterstƤll", + + "device.tag-format": "Format decimaler (2 = #.##)", + "device.tag-deadband": "Deadband", + "device.tag-scale": "SkalningslƤge / Konvertering", + "device.tag-scale-mode-undefined": "Ingen skalning", + "device.tag-scale-mode-undefined-tooltip": "TaggvƤrde", + "device.tag-scale-mode-linear": "LinjƤr: Ī”S * (VƤrde - RL) / Ī”R + SL", + "device.tag-scale-mode-linear-tooltip": "Ī”S = (Skalad hƶg - Skalad lĆ„g)\nĪ”R = (RĆ„ hƶg - RĆ„ lĆ„g)\nRL = RĆ„ lĆ„g\nSL = Skalad lĆ„g", + "device.tag-scale-mode-script": "Script (LƤs/Skriv)", + "device.tag-raw-low": "RĆ„ lĆ„g", + "device.tag-raw-high": "RĆ„ hƶg", + "device.tag-scaled-low": "Skalad lĆ„g", + "device.tag-scaled-high": "Skalad hƶg", + "device.tag-convert-datetime": "Millisekunder till datum- och tidsformat", + "device.tag-convert-datetime-tooltip": "Exempel: 'YYYY-MM-DD HH:mm:ss' fƶr 2023-09-14 08:45:10", + "device.tag-convert-datetime-format": "Datum- och tidsformat (YYYY-MM-DD HH:mm:ss)", + "device.tag-convert-ticktime": "Millisekunder till tidsformat (Ć„terstĆ„ende eller varaktighet)", + "device.tag-convert-ticktime-tooltip": "Exempel: 'HH:mm:ss' fƶr 56:45:10", + "device.tag-convert-ticktime-format": "Tidsformat (HH:mm:ss)", + "device.tag-scale-read-script": "Script fƶr lƤsskala", + "device.tag-scale-read-script-tooltip": "Script fƶr att transformera vƤrde mottaget frĆ„n klient", + "device.tag-scale-read-script-params": "Ange lƤsscriptets parametrar", + "device.tag-scale-write-script": "Script fƶr skrivskala", + "device.tag-scale-write-script-tooltip": "Script fƶr att transformera vƤrde fƶre skrivning till klient", + "device.tag-scale-write-script-params": "Ange skrivscriptets parametrar", + "device.tag-scale-script-params-tooltip": "JSON-formaterad array av parametrar med vƤrden att skicka till scriptet", + + + "device.connect-ok": "OK", + "device.connect-error": "Fel", + "device.connect-failed": "Misslyckades", + "device.connect-off": "Av", + "device.connect-busy": "Upptagen", + + "devices.mode-map": "Anslutningsdiagram", + "devices.mode-list": "Anslutningslista", + "devices.list-name": "Namn", + "devices.list-address": "Adress", + "devices.list-type": "Typ", + "devices.list-polling": "Pollning", + "devices.list-enabled": "Aktiverad", + "devices.list-status": "Status", + + "users.list-title": "AnvƤndarinstƤllningar", + "users.list-name": "AnvƤndarnamn", + "users.list-fullname": "FullstƤndigt namn", + "users.list-groups": "Grupper", + "users.list-roles": "Roller", + "users.list-start": "Startvy", + + "roles.list-title": "RollinstƤllningar", + "roles.list-index": "Index", + "roles.list-name": "Namn", + "roles.list-description": "Beskrivning", + + "user-role-edit-title": "RollinstƤllning", + "user-role-edit-name": "Namn", + "user-role-edit-index": "Index", + "user-role-edit-description": "Beskrivning", + + "events-history.list-title": "HƤndelsehistorik", + "events-history.filter-daterange": "Datumintervallfilter", + + "gauges.property-props": "Egenskaper", + "gauges.property-events": "HƤndelser", + "gauges.property-title": "Egenskaper", + "gauges.property-name": "Namn", + "gauges.property-text": "Text", + "gauges.property-permission": "Behƶrighet", + "gauges.property-mask": "Bitmask", + "gauges.property-readonly": "Skrivskyddad", + "gauges.property-event-type": "Typ", + "gauges.property-event-action": "ƅtgƤrd", + "gauges.property-event-destination": "Destination", + "gauges.property-event-destination-relative-from": "Relativ frĆ„n", + "gauges.property-event-destination-panel": "Panel", + "gauges.property-event-destination-hide-close": "Dƶlj StƤng", + "gauges.property-event-newtab": "Ny flik", + "gauges.property-event-single-card": "Enkel vy", + "gauges.property-event-value": "VƤrde", + "gauges.property-event-function": "Funktion", + "gauges.property-event-input": "Inmatning (endast input med namn)", + "gauges.property-event-address-type": "Typ", + "gauges.property-event-address": "LƤnk", + "gauges.property-event-resource": "Resurs", + "gauges.property-event-width": "Bredd", + "gauges.property-event-height": "Hƶjd", + "gauges.property-event-scale": "Skala", + "gauges.property-event-script": "Skript", + "gauges.property-event-script-param-name": "Parameter", + "gauges.property-event-script-param-value": "VƤrde", + "gauges.property-event-script-param-input-value": "lƤmna tomt fƶr att skicka inputens vƤrde", + "gauges.property-head-device": "Anslutning", + "gauges.property-head-variable": "Variabel", + "gauges.property-variable-value": "VƤrde", + "gauges.property-head-alarm": "Larm", + "gauges.property-head-color": "FƤrg", + "gauges.property-head-mapvariable": "Kontextvariabel", + "gauges.property-head-tomapvariable": "Definiera kontextvariabel", + "gauges.property-head-todevice": "Anslutningsvariabler", + "gauges.property-head-value": "VƤrde", + "gauges.property-input-min": "Min", + "gauges.property-input-max": "Max", + "gauges.property-input-color": "Fyllning", + "gauges.property-input-stroke": "Kantlinje", + "gauges.property-input-value": "VƤrde", + "gauges.property-input-label": "Etikett", + "gauges.property-input-unit": "Enhet", + "gauges.property-input-type": "Inmatningstyp", + "gauges.property-input-type-number": "Nummer", + "gauges.property-input-type-text": "Text", + "gauges.property-input-type-date": "Datum", + "gauges.property-input-type-time": "Tid", + "gauges.property-input-type-datetime": "Datum och tid", + "gauges.property-input-time-format": "Tidsformat", + "gauges.property-input-time-format-normal": "HH:mm", + "gauges.property-input-time-format-seconds": "HH:mm:ss", + "gauges.property-input-time-format-milliseconds": "HH:mm:ss:fff", + "gauges.property-input-milliseconds": "Konvertering i millisekunder", + "gauges.property-input-convertion": "Konvertering", + "gauges.property-input-convertion-milliseconds": "Millisekunder", + "gauges.property-input-convertion-string": "StrƤng", + + "gauges.property-update-enabled": "Aktivera uppdatering", + "gauges.property-update-esc": "ESC-uppdatering", + "gauges.property-input-esc-action": "ƅtgƤrd vid lƤmning", + "gauges.property-action-esc-update": "Uppdatera (Uppdatering)", + "gauges.property-action-esc-enter": "BekrƤfta (Enter)", + "gauges.property-select-content-on-click": "Markera innehĆ„ll vid klick", + "gauges.property-numeric-enabled": "Endast siffror", + "gauges.property-format-digits": "Format decimaler", + "gauges.property-actions": "ƅtgƤrder", + "gauges.property-action-type": "Typ", + "gauges.property-action-param": "ƅtgƤrds-ID", + "gauges.property-action-minAngle": "Min vinkel", + "gauges.property-action-maxAngle": "Max vinkel", + "gauges.property-action-toX": "Till position X", + "gauges.property-action-toY": "Till position Y", + "gauges.property-action-duration": "Varaktighet", + "gauges.property-events-mapping-from": "Kontextvariabel", + "gauges.property-map-variable": "LƤgg till kontextvariabel fƶr bindning", + "gauges.property-head-remove-mapvariable": "Ta bort bindning", + "gauges.property-tooltip-add-event": "LƤgg till hƤndelse", + "gauges.property-interval-msec": "Intervall (ms)", + "gauges.property-tag-label": "Tagg", + "gauges.property-tag-internal-title": "Ange platshĆ„llare fƶr Destination (eller Tagg pĆ„ intern enhet)", + "gauges.property-input-range": "TillĆ„tet inmatningsintervall", + "gauges.property-language-text": "Text eller @TextID", + + "bag.property-ticks": "Tjocklekar", + "bag.property-divisions": "Indelningar", + "bag.property-subdivisions": "Underindelningar", + "bag.property-divisions-length": "IndelningslƤngd", + "bag.property-subdivisions-length": "UnderindelningslƤngd", + "bag.property-divisions-width": "Indelningsbredd", + "bag.property-subdivisions-width": "Underindelningsbredd", + "bag.property-divisions-color": "IndelningsfƤrg", + "bag.property-subdivisions-color": "UnderindelningsfƤrg", + "bag.property-divisionfont-size": "Indelningsstorlek", + "bag.property-divisionfont-color": "IndelningsfƤrg (text)", + "bag.property-divisions-labels": "Indelningsetiketter (ex. 10;20;...)", + "bag.property-current-value": "Aktuellt vƤrde", + "bag.property-min": "Min", + "bag.property-max": "Max", + "bag.property-bar-width": "Stapeltjocklek", + "bag.property-animation-speed": "Animationshastighet", + "bag.property-angle": "Vinkel", + "bag.property-radius": "Radie", + "bag.property-font": "Teckensnitt", + "bag.property-font-size": "Teckenstorlek", + "bag.property-textfield-position": "TextfƤltsposition", + "bag.property-pointer-length": "PekarlƤngd", + "bag.property-pointer-stroke": "Pekarkontur", + "bag.property-pointer-color": "PekarfƤrg", + "bag.property-color-start": "StartfƤrg", + "bag.property-color-stop": "StoppfƤrg", + "bag.property-background": "Bakgrund", + "bag.property-format-digits": "Decimalformat", + "bag.property-zones": "Zoner", + "bag.property-color": "FƤrg", + "bag.property-fill": "Fyllning", + + "alarms.list-title": "LarminstƤllningar", + "alarms.list-name": "Namn", + "alarms.list-device": "Anslutning / Variabel", + "alarms.list-highhigh": "Mycket hƶg", + "alarms.list-high": "Hƶg", + "alarms.list-low": "LĆ„g", + "alarms.list-info": "Meddelande", + "alarms.list-actions": "ƅtgƤrder", + "alarm.property-title": "Larm", + "alarm.property-name": "Namn", + "alarm.property-permission": "Behƶrighet", + "alarm.property-highhigh": "Mycket hƶg", + "alarm.property-high": "Hƶg", + "alarm.property-low": "LĆ„g", + "alarm.property-info": "Meddelande", + "alarm.property-action": "ƅtgƤrder", + "alarm.property-enabled": "Aktiverad", + "alarm.property-save-event": "HƤndelser", + "alarm.property-min": "Min", + "alarm.property-max": "Max", + "alarm.property-timedelay": "Tid i Min-Max intervall (sekunder)", + "alarm.property-checkdelay": "Kontrollintervall (sekunder)", + "alarm.property-type": "Typ", + "alarm.property-ackmode": "KvitterningslƤge", + "alarm.property-text": "Text", + "alarm.property-group": "Grupp", + "alarm.ack-float": "Flytande", + "alarm.ack-active": "Kvittring tillĆ„ten vid aktivt larm", + "alarm.ack-passive": "Kvittring endast vid passivt larm", + "alarms.view-title": "Larm", + "alarms.history-title": "Larmlogg", + "alarms.view-ontime": "Datum/Tid", + "alarms.view-text": "Text", + "alarms.view-group": "Grupp", + "alarms.view-status": "Status", + "alarms.view-type": "Prioritet", + "alarms.view-offtime": "AV Datum/Tid", + "alarms.view-acktime": "KVIT Datum/Tid", + "alarms.view-userack": "Kvittrare", + "alarms.view-ack": "KVIT", + "alarms.view-ack-all-alarms": "KVIT Alla Larm", + "alarm.status-active": "Aktiv", + "alarm.status-passive": "Passiv", + "alarm.status-active-ack": "Aktiv-KVIT", + "alarms.show-current": "Larm", + "alarms.show-history": "Larmlogg", + "alarm.action-popup": "Visa popup", + "alarm.action-onsetview": "Ɩppna vy", + "alarm.action-onsetvalue": "SƤtt vƤrde", + "alarm.action-onRunScript": "Kƶr skript", + "alarm.action-toastMessage": "Visa meddelande", + "alarm.action-sendMsg": "Skicka meddelande", + "alarm.property-action-type": "ƅtgƤrdstyp", + "alarm.property-action-value": "VƤrde att sƤtta", + "alarm.property-action-destination": "Vy att visa", + "alarm.property-action-toastMessage": "Meddelande att visa", + "alarm.property-action-toastType": "Typ", + + "notifications.list-title": "NotifieringsinstƤllningar", + "notifications.list-name": "Namn", + "notifications.list-receiver": "Mottagare", + "notifications.list-delay": "Fƶrdrƶjning", + "notifications.list-interval": "Intervall", + "notifications.list-type": "Typ", + "notifications.list-enabled": "Aktiverad", + "notifications.list-subscriptions": "Prenumerationer", + "notification.property-title": "Notifiering", + "notification.property-name": "Namn", + "notification.property-receiver": "Mottagare: Adress (Mail) ';' / WebApi (Telegram https://api.telegram.org/bot...${content})", + "notification.property-type": "Typ", + "notification.property-delay": "Fƶrdrƶjning (min.)", + "notification.property-interval": "Intervall (min.)", + "notification.property-enabled": "Aktiverad", + "notification.property-priority": "Prioritet", + "notification.type-alarm": "Larm", + "notification.type-trigger": "Utlƶsare", + + "scripts.list-title": "SkriptinstƤllningar", + "scripts.list-name": "Namn", + "scripts.list-type": "Typ", + "scripts.list-mode": "LƤge", + "scripts.list-params": "Parametrar", + "scripts.list-scheduling": "SchemalƤggning / Intervall", + "scripts.list-permission": "Behƶrighet", + "scripts.list-options": "Skriptalternativ", + + "script.permission-title": "Behƶrighet", + "script.permission-label": "(tomt = full Ć„tkomst fƶr alla)", + "script.permission-enabled": "Aktiverad", + + "script.create-title": "Skapa skript", + + "script.mode": "KƶrlƤge", + "script.mode-title": "KƶrlƤge", + "script.mode-label": "KƶrlƤge", + "script.mode-CLIENT": "Klient (Kƶr i webblƤsaren)", + "script.mode-SERVER": "Server (Kƶr pĆ„ servern)", + + "script.property-title": "Skript", + "script.property-systems": "Systemfunktioner", + "script.property-templates": "Mallar", + "script.property-test": "Test", + "script.property-test-params": "Funktionsparametrar", + "script.property-test-console": "Konsol", + "script.property-test-tag": "SƤtt Tagg", + "script.property-test-run": "Kƶr TEST", + "script.property-editname": "Redigera Skriptnamn", + "script.property-name": "Namn", + "script.property-addfnc-param": "LƤgg till Skriptparameter", + "script.property-async-function": "Asynkron funktion", + "script.param-title": "Skriptparameter", + "script.param-name": "Namn", + "script.param-type": "Typ", + "script.paramtype": "", + "script.paramtype-tagid": "Tagg-ID", + "script.paramtype-value": "VƤrde (nummer/strƤng/objekt)", + "script.paramtype-chart": "Diagramlinjer (array)", + "script.param-name-exist": "Parameternamnet finns redan!", + "script.sys-fnc-settag-text": "$setTag (TaggID, vƤrde)", + "script.sys-fnc-settag-tooltip": "Systemfunktion fƶr att sƤtta Tagg-vƤrde: $setTag (TaggID som strƤng, vƤrde som strƤng eller nummer)", + "script.sys-fnc-gettag-text": "$getTag (TaggID)", + "script.sys-fnc-gettag-tooltip": "Systemfunktion fƶr att hƤmta Tagg-vƤrde: $getTag (TaggID som strƤng) returnerar vƤrde som strƤng eller nummer", + "script.scheduling-title": "Skriptplanering", + "script.scheduling-type": "Typ", + "script.scheduling-interval": "Loop med intervall", + "script.scheduling-start": "Endast vid Start", + "script.scheduling-add-item": "LƤgg till schemalƤggare", + "script.scheduling-scheduling": "SchemalƤggning", + "script.scheduling-weekly": "Veckovis", + "script.scheduling-date": "Datum", + "script.scheduling-time": "Tid", + "script.scheduling-hour": "Timme", + "script.scheduling-minute": "Minut", + "script.interval": "Intervall (sekunder)", + "script.delay": "Fƶrdrƶjning (sekunder)", + "script.sys-fnc-setview-text": "$setView (Vynamn)", + "script.sys-fnc-setview-tooltip": "Systemfunktion fƶr att sƤtta Vy pĆ„ klient: $setView (Vynamn som strƤng)", + "script.sys-fnc-setview-params": "'Vynamn'", + "script.sys-fnc-opencard-text": "$openCard (Vynamn)", + "script.sys-fnc-opencard-tooltip": "Systemfunktion fƶr att ƶppna Kort pĆ„ klient: $openCard (Vynamn som strƤng, Alternativ som dict {left, top})", + "script.sys-fnc-opencard-params": "'Vynamn'", + "script.sys-fnc-enableDevice-text": "$enableDevice (Anslutningsnamn, aktivera True/False)", + "script.sys-fnc-enableDevice-tooltip": "Systemfunktion fƶr att aktivera Enhetsanslutning: $enableDevice (Enhetsnamn som strƤng, aktivera som boolean)", + "script.sys-fnc-enableDevice-params": "'Enhetsnamn', true", + "script.sys-fnc-getDevice-text": "$getDevice (Enhetsnamn, interface True/False)", + "script.sys-fnc-getDevice-tooltip": "Systemfunktion fƶr att hƤmta Enhetsobjekt: $getDevice (Enhetsnamn som strƤng, hƤmta KommunikationsgrƤnssnitt som boolean)", + "script.sys-fnc-getDevice-params": "'Enhetsnamn', true", + "script.sys-fnc-getTagId-text": "$getTagId (Taggnamn, [Enhetsnamn])", + "script.sys-fnc-getTagId-tooltip": "Systemfunktion fƶr att hƤmta Tagg-ID: $getTagId (Taggnamn som strƤng, [valfritt Enhetsnamn som strƤng])", + "script.sys-fnc-getTagId-params": "'Taggnamn', ", + "script.sys-fnc-getTagDaqSettings-text": "$getTagDaqSettings (TaggID)", + "script.sys-fnc-getTagDaqSettings-tooltip": "Systemfunktion fƶr att hƤmta Tagg DAQ-instƤllningar: $getTagDaqSettings (TaggID som strƤng)", + "script.sys-fnc-getTagDaqSettings-params": "'TaggID'", + "script.sys-fnc-setTagDaqSettings-text": "$setTagDaqSettings (TaggID, DaqSettings)", + "script.sys-fnc-setTagDaqSettings-tooltip": "Systemfunktion fƶr att sƤtta Tagg DAQ-instƤllningar: $setTagDaqSettings (TaggID som strƤng, DaqSettings som objekt {restored: boolean, enabled: boolean, changed: boolean, interval: number, lastDaqSaved: number})", + "script.sys-fnc-setTagDaqSettings-params": "'TaggID', 'DaqSettings'", + "script.sys-fnc-invokeObject-text": "$invokeObject (Objektnamn, Funktionsnamn, [Parameter])", + "script.sys-fnc-invokeObject-tooltip": "Systemfunktion fƶr att anropa Objektfunktion: $invokeObject (Objektnamn som strƤng, funktionsnamn som strƤng, [parameter])", + "script.sys-fnc-invokeObject-params": "'Objektnamn', 'funktionsnamn', ", + "script.sys-fnc-runServerScript-text": "$runServerScript (Skript namn, [Parameter])", + "script.sys-fnc-runServerScript-tooltip": "Klientfunktion fƶr att anropa Server-skriptfunktion: $runServerScript (Skript namn som strƤng, [parameter])", + "script.sys-fnc-runServerScript-params": "'Server skriptnamn', ", + "script.sys-fnc-getDeviceProperty-text": "$getDeviceProperty(Enhetsnamn)", + "script.sys-fnc-getDeviceProperty-tooltip": "Systemfunktion fƶr att hƤmta Enhetsegenskap: $getDeviceProperty(Enhetsnamn som strƤng)", + "script.sys-fnc-getDeviceProperty-params": "'Enhetsnamn'", + "script.sys-fnc-setDeviceProperty-text": "$setDeviceProperty(Enhetsnamn, egenskap)", + "script.sys-fnc-setDeviceProperty-tooltip": "Systemfunktion fƶr att sƤtta Enhetsegenskap: $setDeviceProperty(Enhetsnamn som strƤng, egenskap som objekt {address, port, ...})", + "script.sys-fnc-setDeviceProperty-params": "'Enhetsnamn', 'Egenskap'", + "script.sys-fnc-getHistoricalTag-text": "$getHistoricalTags(TaggID-array, frĆ„n msek., till msek.)", + "script.sys-fnc-getHistoricalTag-tooltip": "hƤmta historiska taggar med millisekundintervall: $getHistoricalTags([TaggID] som array, frĆ„n som nummer, till som nummer)", + "script.sys-fnc-getHistoricalTag-params": "'TaggID-array', 'FrĆ„n msek.', 'Till msek.'", + "script.sys-fnc-sendMessage-text": "$sendMessage(adress, Ƥmne, meddelande)", + "script.sys-fnc-sendMessage-tooltip": "Systemfunktion fƶr att skicka Meddelande (Mail): $sendMessage(adress som strƤng, Ƥmne som strƤng, meddelande som strƤng)", + "script.sys-fnc-sendMessage-params": "'adress', 'Ƥmne', 'meddelande'", + "script.sys-fnc-getAlarms-text": "$getAlarms()", + "script.sys-fnc-getAlarms-tooltip": "Systemfunktion fƶr att hƤmta larmlista (): $getAlarms()", + "script.sys-fnc-getAlarms-params": "", + "script.sys-fnc-getAlarmsHistory-text": "$getAlarmsHistory(frĆ„n msek., till msek.)", + "script.sys-fnc-getAlarmsHistory-tooltip": "Systemfunktion fƶr att hƤmta historiska larm (): $getAlarmsHistory(frĆ„n som nummer, till som nummer)", + "script.sys-fnc-getAlarmsHistory-params": "'FrĆ„n msek.', 'Till msek.'", + "script.sys-fnc-ackAlarms-text": "$ackAlarm(Larmnamn, typer)", + "script.sys-fnc-ackAlarms-tooltip": "Systemfunktion fƶr att KVITTERA larm (): $ackAlarm(Larmnamn som strƤng, [typer] 'highhigh|high|low')", + "script.sys-fnc-ackAlarms-params": "'Larmnamn', 'typer'", + + "script.template-chart-data-text": "Anpassad diagramdata", + "script.template-chart-data-tooltip": "Kodmall fƶr anpassad diagramdata att returnera", + "script.template-invoke-chart-update-options-text": "Uppdatera diagraminstƤllningar", + "script.template-invoke-chart-update-options-tooltip": "Kodmall fƶr att uppdatera diagraminstƤllningar (Y-axelns skala). Endast KLIENT-lƤge!", + "script.template-getHistoricalTagsoptions-text": "HƤmta historiska Tagg-vƤrden", + "script.template-getHistoricalTagsoptions-tooltip": "Kodmall fƶr att hƤmta historiska Tagg-vƤrden.", + + "reports.list-title": "RapportinstƤllningar", + "reports.list-name": "Namn", + "reports.list-type": "Typ", + "reports.list-receiver": "Mottagare", + "reports.list-scheduling": "SchemalƤggning / Intervall", + "reports.list-enabled": "Aktiverad", + + "report.property-title": "Rapport", + "report.property-name": "Namn", + "report.property-receiver": "Mottagarnas e-postadresser", + "report.property-scheduling-type": "RapportschemalƤggning", + "report.property-content": "InnehĆ„ll", + "report.property-page": "SidinstƤllningar", + "report.property-page-size": "Sidstorlek", + "report.property-page-orientation": "Sidorientering", + "report.property-page-ori-landscape": "Liggande", + "report.property-page-ori-portrait": "StĆ„ende", + "report.property-margin-left": "VƤnstermarginal", + "report.property-margin-top": "Ɩvermarginal", + "report.property-margin-right": "Hƶgermarginal", + "report.property-margin-bottom": "Undermarginal", + "report.scheduling-none": "Inaktiverad", + "report.scheduling-day": "Varje dag", + "report.scheduling-week": "Varje vecka", + "report.scheduling-month": "Varje mĆ„nad", + "report.content-addtext": "LƤgg till text", + "report.content-addtable": "LƤgg till Tagg-tabell", + "report.content-addalarms": "LƤgg till larmhistorik", + "report.content-addchart": "LƤgg till diagram", + "report.content-type-text": "Text", + "report.content-type-tagstable": "Tagg-tabell", + "report.content-type-alarmshistory": "Larmhistorik", + "report.content-type-chart": "Diagram", + "report.content-fontsizeitem": "Fontstorlek", + "report.content-alignitem": "Textjustering", + "report.content-edit": "Redigera", + "report.content-delete": "Ta bort", + "report.item-text-title": "Rapporttext", + "report.item-text-label": "Text", + "report.tags-table-title": "Rapport - Tagg-tabell", + "report.tags-table-column": "Tabellkolumner Taggar", + "report.tags-table-add": "LƤgg till Tagg", + "report.tags-table-setlabel": "Ange etikett", + "report.table-alignitem": "Justera", + "report.table-delitem": "Ta bort kolumn", + "report.item-daterange": "DataomfĆ„ng", + "report.item-daterange-none": "Ingen", + "report.item-daterange-day": "Senaste dygnet (0-24)", + "report.item-daterange-week": "Senaste veckan (MĆ„ndag-Sƶndag)", + "report.item-daterange-month": "Senaste mĆ„naden", + "report.item-interval": "Intervall (period)", + "report.item-interval-min5": "5 minuter", + "report.item-interval-min10": "10 minuter", + "report.item-interval-min30": "30 minuter", + "report.item-interval-hour": "1 timme", + "report.item-interval-day": "1 dag", + "report.item-function-type": "Funktionstyp", + "report.item-function-min": "Min", + "report.item-function-max": "Max", + "report.item-function-average": "MedelvƤrde", + "report.item-function-sum": "Summa", + "report.item-alarms-title": "Rapport - Larm", + "report.alarms-priority": "Larmprioritet", + "report.alarms-column": "Larmkolumner", + "report.alarms-filter": "Larmfilter", + "report.chart-title": "Rapport - Diagram", + "report.chart-name": "Diagramnamn", + "report.chart-width": "Bredd", + "report.chart-height": "Hƶjd", + + "maps.locations-list-title": "PlatsinstƤllningar", + "maps.locations-list-name": "Namn", + "maps.locations-list-view": "Vy", + "maps.locations-list-description": "Beskrivning", + "maps.location-property-title": "Plats", + "maps.location-property-name": "Namn", + "maps.location-property-description": "Beskrivning", + "maps.location-property-latitude": "Latitud", + "maps.location-property-longitude": "Longitud", + "maps.location-property-card": "Kort", + "maps.location-property-view": "Vy", + "maps.location-property-url": "URL", + "maps.edit-add-location": "LƤgg till plats", + "maps.edit-import-location": "Importera plats", + "maps.edit-edit-location": "Redigera plats", + "maps.edit-remove-location": "Ta bort plats", + "maps.edit-start-location": "Ange som startplats", + "maps.edit-start-location-saved": "Startplats sparad", + "maps.close-popups": "StƤng alla popup-fƶnster", + "maps.location-to-import": "Plats att importera", + "maps.location-to-import-input-title": "VƤlj plats att importera", + + "logs.view-title": "Systemloggar", + "logs.view-files": "Loggfiler", + + "events.view-ontime": "Datum/Tid", + "events.view-type": "Typ", + "events.view-source": "KƤlla", + "events.view-text": "Text", + + "card.config-title": "KortinstƤllningar", + "card.config-content-type": "InnehĆ„llstyp", + "card.config-content-view": "InnehĆ„llsvy", + "card.config-content-iframe": "LƤnkadress", + "card.widget-view": "Vy", + "card.widget-alarms": "Larm", + "card.widget-table": "Tabell", + "card.widget-iframe": "LƤnk", + "card.style-zoom": "Zoom", + + "resources.lib-icons": "Ikoner", + "resources.lib-images": "Bilder", + "resource.list-title": "Resurslista", + "resource.list-name": "Filnamn", + "resource.list-type": "Filtyp", + "resource.list-title-fonts": "Teckensnittslista", + "resources.lib-widgets": "Widgetar", + + "widgets.kiosk-title": "Widget-kiosk", + "widget.remove": "Ta bort widget", + + "texts.list-title": "SprĆ„kinstƤllningar", + "texts.list-filter": "Filter", + "texts.list-filter-group": "Grupp", + "texts.list-id": "ID", + "texts.list-group": "Grupp", + "texts.list-value": "Text (standard)", + "texts.list-add-text": "LƤgg till text", + "texts.list-edit-language": "Redigera sprĆ„k", + "language.settings-title": "SprĆ„kinstƤllningar", + "language.settings-add-tooltip": "LƤgg till sprĆ„k", + "language.settings-id": "Nyckel", + "language.settings-default-id": "Nyckel (standard)", + "language.settings-id-placeholder": "ex: SV", + "language.settings-name": "Namn", + "language.settings-default-name": "Namn (standard)", + "language.settings-name-placeholder": "ex: Svenska", + "text.settings-title": "Text", + "text.settings-id": "Namn (tillĆ„tna bokstƤver och siffror, inga mellanslag)", + "text.settings-group": "Grupp", + "text.settings-value": "Text (standard)", + + "gui.range-number-min": "Min", + "gui.range-number-max": "Max", + "gui.range-number-boolean": "MaskvƤrde", + "gui.range-number-true": "Sant [1-1]", + "gui.range-number-false": "Falskt [0-0]", + "gui.range-number-switcher": "Intervall som tal eller boolean", + + "dlg.bitmask-title": "Bitmask", + + "dlg.plugins-title": "Server-plugins", + "dlg.plugins-info": "Plugins som inte Ƥr installerade kan installeras manuellt pĆ„ servern: 'npm install [paketnamn]@[version]'", + "dlg.plugins-type": "Typ", + "dlg.plugins-name": "Namn", + "dlg.plugins-version": "Version", + "dlg.plugins-current": "Installerad", + "dlg.plugins-description": "Beskrivning", + "dlg.plugins-status-installing": "Installerar...", + "dlg.plugins-status-removing": "Tar bort...", + "dlg.plugins-status-installed": "Installerar...OK!", + "dlg.plugins-status-removed": "Tar bort...OK!", + "dlg.plugins-status-error": "Fel! Fƶrsƶk manuellt!", + + "dlg.setup-title": "Konfiguration", + "dlg.setup-gui": "AnvƤndargrƤnssnitt", + "dlg.setup-diverse": "Ɩvrigt", + "dlg.setup-logic": "Logik", + "dlg.setup-system": "System", + "dlg.setup-views": "Vyer", + "dlg.setup-connections": "Anslutningar", + "dlg.setup-users": "AnvƤndare", + "dlg.setup-user-roles": "Roller", + "dlg.setup-alarms": "Larm", + "dlg.setup-line-charts": "Linjediagram", + "dlg.setup-bar-charts": "Stapeldiagram", + "dlg.setup-maps-locations": "Platser", + "dlg.setup-layout": "Layout", + "dlg.setup-plugins": "Plugins", + "dlg.setup-scripts": "Skript", + "dlg.setup-reports": "Rapporter", + "dlg.setup-settings": "InstƤllningar", + "dlg.setup-logs": "Loggar", + "dlg.setup-notifications": "Notiser", + "dlg.setup-events": "HƤndelser", + "dlg.setup-resources": "Resurser", + "dlg.setup-fonts": "Typsnitt", + "dlg.setup-language": "SprĆ„k", + "dlg.app-settings-title": "InstƤllningar", + "dlg.app-settings-system": "System", + "dlg.app-settings-smtp": "SMTP", + "dlg.app-settings-smtp-host": "VƤrd", + "dlg.app-settings-smtp-port": "Port", + "dlg.app-settings-smtp-mailsender": "AvsƤndare", + "dlg.app-settings-smtp-user": "AnvƤndare/ApiKey", + "dlg.app-settings-smtp-password": "Lƶsenord", + "dlg.app-settings-smtp-testaddress": "E-post fƶr testmeddelande", + "dlg.app-settings-smtp-test": "Testa", + "dlg.app-settings-language": "SprĆ„k", + "dlg.app-language-de": "Tyska", + "dlg.app-language-en": "Engelska", + "dlg.app-language-ru": "Ryska", + "dlg.app-language-ua": "Ukrainska", + "dlg.app-language-zh-cn": "Kinesiska", + "dlg.app-language-pt": "Portugisiska", + "dlg.app-language-tr": "Turkiska", + "dlg.app-language-ko": "Koreanska", + "dlg.app-language-es": "Spanska", + "dlg.app-language-fr": "Franska", + "dlg.app-settings-server-port": "Servern lyssnar pĆ„ port", + "dlg.app-settings-server-log-full": "FullstƤndigt logglƤge", + "dlg.app-settings-alarms": "Larm", + "dlg.app-settings-alarms-clear": "Rensa alla larm och historik", + "dlg.app-settings-auth-token": "Autentisering med Token", + "dlg.app-settings-auth-only-editor": "Endast fƶr redigerare", + "dlg.app-auth-disabled": "Inaktiverad", + "dlg.app-auth-expiration-15m": "Aktiverad med token som lƶper ut efter 15 minuter", + "dlg.app-auth-expiration-1h": "Aktiverad med token som lƶper ut efter 1 timme", + "dlg.app-auth-expiration-3h": "Aktiverad med token som lƶper ut efter 3 timmar", + "dlg.app-auth-expiration-1d": "Aktiverad med token som lƶper ut efter 1 dag", + "dlg.app-auth-tooltip": "Aktiverad: du har ett administratƶrskonto 'admin/123456' (glƶm inte att Ƥndra det). Serveromstart krƤvs!", + "dlg.app-settings-client-broadcast": "SƤnd alla taggvƤrden till klient (frontend)", + + "dlg.app-settings-daqstore": "DAQ-lagring", + "dlg.app-settings-daqstore-type": "Databastyp", + "dlg.app-settings-daqstore-url": "URL", + "dlg.app-settings-daqstore-token": "Token", + "dlg.app-settings-daqstore-bucket": "Bucket", + "dlg.app-settings-daqstore-organization": "Organisation", + "dlg.app-settings-daqstore-retention": "BehĆ„llningstid", + "dlg.app-settings-daqstore-database": "Databasnamn", + "dlg.app-settings-daqstore-username": "AnvƤndarnamn", + "dlg.app-settings-daqstore-password": "Lƶsenord", + + "dlg.app-settings-user-group-label": "Auktoriseringstyp", + "dlg.app-settings-user-group": "Grupper (standard)", + "dlg.app-settings-user-roles": "Roller", + + "store.retention-none": "Avaktiverad", + "store.retention-day1": "1 dag", + "store.retention-days2": "2 dagar", + "store.retention-days3": "3 dagar", + "store.retention-days7": "7 dagar", + "store.retention-days14": "14 dagar", + "store.retention-days30": "30 dagar", + "store.retention-days90": "90 dagar", + "store.retention-year1": "1 Ć„r", + "store.retention-year3": "3 Ć„r", + "store.retention-year5": "5 Ć„r", + + "plugin.group-connection-device": "Anslutningsenhet", + "plugin.group-connection-database": "Anslutningsdatabas", + "plugin.group-chart-report": "Diagrambild fƶr Rapport", + + "action-settings-title": "ƅtgƤrdsinstƤllningar", + "action-settings-readonly-tag": "Tagg", + "action-settings-readonly-values": "VƤrden", + + "msg.alarm-ack-all": "Vill du kvittera alla larm?", + "msg.alarm-remove": "Vill du ta bort larmet?", + "msg.text-remove": "Vill du ta bort texten?", + "msg.alarmproperty-error-exist": "Larmnamnet finns redan!", + "msg.alarmproperty-missing-value": "Vissa vƤrden saknas!", + "msg.textproperty-error-exist": "Text-ID finns redan!", + "msg.textproperty-missing-value": "Vissa vƤrden saknas!", + "msg.device-remove": "Vill du ta bort enheten?", + "msg.device-tag-remove": "Vill du ta bort taggen?", + "msg.device-tag-exist": "Taggnamnet finns redan!", + "msg.notification-property-missing-value": "Vissa vƤrden saknas!", + "msg.report-property-missing-value": "Det finns felaktiga eller saknade vƤrden!", + "msg.file-upload-failed": "Uppladdning misslyckades!", + "msg.file-delete-failed": "Borttagning av fil misslyckades!", + + "msg.home-welcome": "VƤnta... gĆ„ till redigeraren, mappa enheterna, designa din visualisering och bind enhetsvariablerna", + "msg.server-connection-failed": "SERVERANSLUTNING MISSLYCKADES!", + "msg.project-load-error": "Kunde inte lƤsa '{{value}}'", + "msg.project": "Vill du spara Ƥndringar i projektet?", + "msg.tags-remove-all": "Vill du ta bort alla taggar?", + "msg.view-remove": "Vill du ta bort vyn '{{value}}'?", + "msg.chart-remove": "Vill du ta bort diagrammet '{{value}}'?", + "msg.role-remove": "Vill du ta bort rollen '{{value}}'?", + "msg.graph-remove": "Vill du ta bort stapeldiagrammet '{{value}}'?", + "msg.script-remove": "Vill du ta bort skriptet '{{value}}'?", + "msg.report-remove": "Vill du ta bort rapporten", + "msg.device-connection-error": "Anslutningsfel fƶr enheten '{{value}}'!", + "msg.server-connection-error": "Serveranslutning misslyckades!", + "msg.sendmail-success": "E-post skickad!", + "msg.sendmail-error": "Misslyckades att skicka e-post!", + "msg.users-save-error": "Spara anvƤndare misslyckades!", + "msg.user-remove": "Vill du ta bort anvƤndaren", + "msg.project-save-success": "Projektet sparades!", + "msg.project-save-error": "Spara projektet misslyckades!", + "msg.project-format-error": "Felaktigt projektformat!", + "msg.view-format-error": "Felaktigt vyformat!", + "msg.project-save-unauthorized": "Spara projektet misslyckades! Obehƶrig!", + "msg.project-save-ask": "Vill du lƤmna projektet?", + "msg.login-username-required": "Ange ett anvƤndarnamn", + "msg.login-password-required": "Ange ett lƶsenord", + "msg.signin-failed": "Felaktigt anvƤndarnamn eller lƶsenord!", + "msg.signin-unauthorized": "Obehƶrig!", + "msg.get-project-void": "Projektet hittades inte!", + "msg.editor-mode-locked": "Redigeraren Ƥr redan ƶppen!", + "msg.alarms-clear-success": "Alla larm har annullerats!", + "msg.import-devices-error": "Import av enheter misslyckades!", + "msg.report-build-forced": "Rapport skickad fƶr skapande", + "msg.report-build-error": "Skickade rapporten misslyckades!", + "msg.device-tags-request-result": "Laddar {{value}} av {{current}}", + "msg.chart-with-script": "Det definierade skriptet tar emot en lista ƶver diagramlinjer som parameter och returnerar sedan den kompletta listan med data. Kodexempel finns i skript 'Templates'", + "msg.script-name-exist": "Skriptnamnet finns redan!", + "msg.templates-exist-ask-overwrite": "En mall med namnet '{{value}}' finns redan. Vill du skriva ƶver den?", + "msg.templates-save-success": "Mall sparad!", + "msg.view-name-exist": "Vy-namnet finns redan!", + "msg.notification-name-exist": "Notifieringsnamnet finns redan!", + "msg.file-remove": "Vill du ta bort '{{value}}'?", + "msg.notification-remove": "Vill du ta bort notifieringen '{{value}}'?", + "msg.maps-location-remove": "Vill du ta bort kartplatsen '{{value}}'?", + "msg.maps-location-name-exist": "Kartplatsnamnet finns redan!", + "msg.text-name-exist": "Textnamnet finns redan!", + "msg.texts-text-remove": "Vill du ta bort texten '{{value}}'?", + "msg.operation-unauthorized": "Operation obehƶrig!" } \ No newline at end of file diff --git a/client/dist/icomoon.86abfb46e057ade8.eot b/client/dist/icomoon.eot similarity index 100% rename from client/dist/icomoon.86abfb46e057ade8.eot rename to client/dist/icomoon.eot diff --git a/client/dist/icomoon.dfb0a89feb346906.svg b/client/dist/icomoon.svg similarity index 100% rename from client/dist/icomoon.dfb0a89feb346906.svg rename to client/dist/icomoon.svg diff --git a/client/dist/icomoon.ce427f75e21963af.ttf b/client/dist/icomoon.ttf similarity index 100% rename from client/dist/icomoon.ce427f75e21963af.ttf rename to client/dist/icomoon.ttf diff --git a/client/dist/icomoon.c1f8b59bad308d66.woff b/client/dist/icomoon.woff similarity index 100% rename from client/dist/icomoon.c1f8b59bad308d66.woff rename to client/dist/icomoon.woff diff --git a/client/dist/index.html b/client/dist/index.html index 12204d90a..a6f137452 100644 --- a/client/dist/index.html +++ b/client/dist/index.html @@ -1,19 +1,19 @@ - + - + FUXA - + - - - - + + + + @@ -33,7 +33,7 @@ - + @@ -48,6 +48,6 @@ - + \ No newline at end of file diff --git a/client/dist/layers-2x.9859cd1231006a4a.png b/client/dist/layers-2x.png similarity index 100% rename from client/dist/layers-2x.9859cd1231006a4a.png rename to client/dist/layers-2x.png diff --git a/client/dist/layers.ef6db8722c2c3f9a.png b/client/dist/layers.png similarity index 100% rename from client/dist/layers.ef6db8722c2c3f9a.png rename to client/dist/layers.png diff --git a/client/dist/logo.0e8e64e69250a450.svg b/client/dist/logo.svg similarity index 100% rename from client/dist/logo.0e8e64e69250a450.svg rename to client/dist/logo.svg diff --git a/client/dist/main.03b59280a6e8b6a8.js b/client/dist/main.03b59280a6e8b6a8.js deleted file mode 100644 index 8b8a77578..000000000 --- a/client/dist/main.03b59280a6e8b6a8.js +++ /dev/null @@ -1,329 +0,0 @@ -(self.webpackChunkFUXA=self.webpackChunkFUXA||[]).push([[179],{5266:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{C:()=>T});var V=ce(553),K=ce(5879);let T=(()=>{class e{static url=null;static getURL(){if(!this.url)if(V.N.apiEndpoint)this.url=V.N.apiEndpoint;else{location;let h=location.origin.split("/")[2];const f=location.origin.split(":")[0],_=h.split(":")[0];_.length>1&&V.N.apiPort&&(h=_+":"+V.N.apiPort),this.url=f+"://"+h}return this.url}static getRemoteURL(v){return location.origin.split(":")[0]+"://"+v+":"+V.N.apiPort+"/api"}static resolveUrl=v=>{if(!v)return"";try{return new URL(v,window.location.origin).toString()}catch{return v.startsWith("/")?v:"/"+v}};static \u0275fac=function(h){return new(h||e)};static \u0275prov=K.Yz7({token:e,factory:e.\u0275fac})}return e})()},1019:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{T9:()=>T,cQ:()=>K});var V=ce(5879);class K{static _seed=Date.now();static minDate=new Date(1970,0,1);static maxDate=new Date(2100,11,31);static defaultColor=["#FFFFFF","#000000","#EEECE1","#1F497D","#4F81BD","#C0504D","#9BBB59","#8064A2","#4BACC6","#F79646","#C00000","#FF0000","#FFC000","#FFD04A","#FFFF00","#92D050","#0AC97D","#00B050","#00B0F0","#4484EF","#3358C0","#002060","#7030A0","#D8D8D8","#BFBFBF","#A5A5A5","#7F7F7F","#595959","#3F3F3F","#262626"];static lineColor=["#4484ef","#ef0909","#00b050","#ffd04a","#7030a0","#a5a5a5","#c0504d","#000000"];static svgTagToType=["rect","line","path","circle","ellipse","text"];static walkTree(v,h){if(v&&1==v.nodeType){h(v);for(var f=v.childNodes.length;f--;)this.walkTree(v.childNodes.item(f),h)}}static searchTreeStartWith(v,h){if(v.id.startsWith(h))return v;if(null!=v.children){var f,_=null;for(f=0;null==_&&fObject(v)[f])}static getGUID(v=""){var f,_,h="";for(f=0;f<16;f++)_=16*Math.random()|0,8==f&&(h+="-"),h+=(12==f?4:16==f?3&_|8:_).toString(16);return v+h}static getShortGUID(v="",h="-"){var _,b,f="";for(_=0;_<12;_++)b=16*Math.random()|0,8==_&&(f+=h),f+=(4==_?4:6==_?3&b|8:b).toString(12);return v+f}static getNextName(v,h){let f=1,_=v+f;for(;h.indexOf(_)>=0;)f++,_=v+f;return _}static isObject(v){return"object"==typeof v&&null!==v}static getType(v){return typeof v}static getTextHeight(v){var f=document.createElement("canvas").getContext("2d");return f.font=v,f.measureText("M").width}static getDomTextHeight(v,h){let f=document.createElement("span");document.body.appendChild(f),f.style.font=h,f.style.fontSize=v+"px",f.style.height="auto",f.style.width="auto",f.style.position="absolute",f.style.whiteSpace="no-wrap",f.innerHTML="M";let _=Math.ceil(f.clientHeight);return document.body.removeChild(f),_}static getEnumKey(v,h){return Object.keys(v).find(f=>v[f]===h)}static isJson(v){try{let h=JSON.parse(v);if(h&&Object.keys(h).length)return!0}catch{}return!1}static isNumeric(v){return!isNaN(parseFloat(v))&&isFinite(v)}static Boolify(v){return-1===[!0,!1,"true","false",1,0].indexOf(v)?null:1==v||"true"==v||1==v}static toNumber(v){const h=K.Boolify(v);return K.isNullOrUndefined(h)?v:Number(h)}static toFloatOrNumber(v){let h=parseFloat(v);return h=K.isNullOrUndefined(h)?Number(v):parseFloat(h.toFixed(5)),h}static formatValue(v,h){try{if(K.isNumeric(v))return numeral(v).format(h)}catch(f){console.error(f)}return v}static arrayToObject=(v,h)=>{v.reduce((f,_)=>(f[_[h]]=_,f),{})};static rand(v,h){return v=v||0,h=h||0,this._seed=(9301*this._seed+49297)%233280,Math.round(v+this._seed/233280*(h-v))}static randNumbers(v,h,f){let _=[];for(let b=0;b{var re=J+"";for(j=j||2;re.length12?I-12:0==I?12:I;h=(h=(h=(h=h.replace(/(^|[^\\])HH+/g,"$1"+D(I))).replace(/(^|[^\\])H/g,"$1"+I)).replace(/(^|[^\\])hh+/g,"$1"+D(d))).replace(/(^|[^\\])h/g,"$1"+d);var S=f?v.getUTCMinutes():v.getMinutes();h=(h=h.replace(/(^|[^\\])mm+/g,"$1"+D(S))).replace(/(^|[^\\])m/g,"$1"+S);var R=f?v.getUTCSeconds():v.getSeconds();h=(h=h.replace(/(^|[^\\])ss+/g,"$1"+D(R))).replace(/(^|[^\\])s/g,"$1"+R);var z=f?v.getUTCMilliseconds():v.getMilliseconds();h=h.replace(/(^|[^\\])fff+/g,"$1"+D(z,3)),z=Math.round(z/10),h=h.replace(/(^|[^\\])ff/g,"$1"+D(z)),z=Math.round(z/10);var q=I<12?"AM":"PM";h=(h=(h=h.replace(/(^|[^\\])f/g,"$1"+z)).replace(/(^|[^\\])TT+/g,"$1"+q)).replace(/(^|[^\\])T/g,"$1"+q.charAt(0));var Z=q.toLowerCase();h=(h=h.replace(/(^|[^\\])tt+/g,"$1"+Z)).replace(/(^|[^\\])t/g,"$1"+Z.charAt(0));var H=-v.getTimezoneOffset(),G=f||!H?"Z":H>0?"+":"-";if(!f){var te=(H=Math.abs(H))%60;G+=D(Math.floor(H/60))+":"+D(te)}h=h.replace(/(^|[^\\])K/g,"$1"+G);var P=(f?v.getUTCDay():v.getDay())+1;return(h=(h=(h=(h=h.replace(new RegExp(y[0],"g"),y[P])).replace(new RegExp(M[0],"g"),M[P])).replace(new RegExp(_[0],"g"),_[k])).replace(new RegExp(b[0],"g"),b[k])).replace(/\\(.)/g,"$1")}static findBitPosition(v){let h=[];for(let f=0;f<32;f++)v&1<(h.forEach(f=>Object.keys(f).forEach(_=>{v[_]=f[_]})),v);static clone=v=>JSON.parse(JSON.stringify(v));static convertArrayToObject=(v,h)=>v.reduce((f,_)=>({...f,[_]:h}),{});static resizeView=v=>{document.querySelectorAll(v).forEach(h=>{let f=h.parentNode;h.style.transform="scale("+Math.min(f.offsetWidth/h.offsetWidth,f.offsetHeight/h.offsetHeight)+")",h.style.transformOrigin="top left"})};static resizeViewExt=(v,h,f)=>{const _=document.getElementById(h);if(!_)return void console.error(`resizeViewExt -> Parent element with ID '${h}' not found.`);const b=_.getBoundingClientRect(),y=f??"none";_.querySelectorAll(v).forEach(M=>{const D=b?.width/M.offsetWidth,x=b?.height/M.offsetHeight;"contain"===y?M.style.transform="scale("+Math.min(D,x)+")":"stretch"===y?M.style.transform="scale("+D+", "+x+")":"none"===y&&(M.style.transform="scale(1)"),M.style.transformOrigin="top left"})};static resizeViewRev=(v,h,f)=>{function _(M,D,x){const k=D?.width/M.clientWidth,Q=D?.height/M.clientHeight;"contain"===x?(M.style.transform="scale("+Math.min(k,Q)+")",M.parentElement.style.margin="unset"):"stretch"===x?(M.style.transform="scale("+k+", "+Q+")",M.parentElement.style.margin="unset"):"none"===x&&(M.style.transform="scale(1)"),M.style.top="unset",M.style.left="unset",M.style.transformOrigin="top left"}const b="string"==typeof h?document.getElementById(h):h;if(!b)return void console.error(`resizeViewExt -> Parent element with ID '${h}' not found.`);const y=b.getBoundingClientRect();"string"==typeof v?b.querySelectorAll(v).forEach(M=>{_(M,y,f??"none")}):v&&_(v,y,f??"none")};static mergeDeep(...v){const h={};return v.forEach(f=>{f&&Object.keys(f).forEach(_=>{f[_]&&"object"==typeof f[_]&&!Array.isArray(f[_])?h[_]=K.mergeDeep(h[_],f[_]):Array.isArray(f[_])?(Array.isArray(h[_])||(h[_]=[]),h[_]=h[_].concat(f[_])):h[_]=f[_]})}),h}static mergeArray(v,h){const f=new Map;if(v)for(const _ of v)if(_)for(const b of _){const y=b[h];y?f.set(y,{...f.get(y),...b}):console.warn(`L'oggetto ${JSON.stringify(b)} non ha la chiave ${h}`)}return Array.from(f.values())}static mergeUniqueBy(v,h,f){if(!(v&&0!==v.length||h&&0!==h.length))return null;const _=v?[...v]:[],b=new Set(_.map(M=>M[f]));let y=!1;return h&&h.forEach(M=>{b.has(M[f])||(_.push(M),b.add(M[f]),y=!0)}),y?_:v??null}static copyToClipboard(v){const h=document.createElement("textarea");h.value=v,h.style.position="fixed",h.style.opacity="0",document.body.appendChild(h),h.select(),document.execCommand("copy"),document.body.removeChild(h)}static millisecondsToTime(v){const h=Math.floor(v/36e5);v%=36e5;const f=Math.floor(v/6e4);return v%=6e4,{hours:h,minutes:f,seconds:Math.floor(v/1e3),milliseconds:v%=1e3}}static timeToString(v,h){function f(b,y){return b.toString().padStart(y,"0")}let _=`${f(v.hours,2)}:${f(v.minutes,2)}`;return h&&(_+=`:${f(v.seconds,2)}`,h>=1e3&&(_+=`.${f(v.milliseconds,3)}`)),_}static millisecondsToTimeString(v,h){return K.timeToString(K.millisecondsToTime(v),h)}static millisecondsToDateString(v,h){const f=new Date(v),_=f.getFullYear(),b=(f.getMonth()+1).toString().padStart(2,"0"),y=f.getDate().toString().padStart(2,"0"),M=f.getHours().toString().padStart(2,"0"),D=f.getMinutes().toString().padStart(2,"0"),x=f.getSeconds().toString().padStart(2,"0"),k=f.getMilliseconds().toString().padStart(3,"0");let Q=`${_}-${b}-${y}`;return h>0&&(Q+=`T${M}:${D}`,h>1&&(Q+=`:${x}`,h>100&&(Q+=`.${k}`))),Q}static getTimeDifferenceInSeconds(v){const f=Date.now()-v;return Math.floor(f/1e3)}static isValidUrl(v){try{return new URL(v),!0}catch{return!!(v.startsWith("/")||!v.includes("://")&&v.length>0)}}static \u0275fac=function(h){return new(h||K)};static \u0275prov=V.Yz7({token:K,factory:K.\u0275fac})}let T=(()=>{class l{transform(h){let f=[];for(var _=Object.keys(h),b=Object.values(h),y=0;y<_.length;y++)f.push({key:_[y],value:b[y]});return f}static \u0275fac=function(f){return new(f||l)};static \u0275pipe=V.Yjl({name:"enumToArray",type:l,pure:!0})}return l})()},7579:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{R:()=>V});class V{scriptSystemFunctions=[]}},5625:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{$2:()=>J,$u:()=>G,AS:()=>e,Bj:()=>K,Bl:()=>P,Jo:()=>T,Lk:()=>I,M$:()=>R,MC:()=>te,Nq:()=>re,PC:()=>v,Qn:()=>D,Qv:()=>q,Qy:()=>M,TO:()=>d,TP:()=>b,Ug:()=>S,Vp:()=>l,Yi:()=>y,ef:()=>W,fm:()=>he,jP:()=>h,lE:()=>Q,ls:()=>k,mT:()=>f,nP:()=>z,p2:()=>x,pP:()=>H,rq:()=>Z});var V=ce(1019);const K={id:"0",name:"FUXA"},T={id:"@",name:"Placeholder",tags:[{id:"@",name:"@",device:"@"}]};let e=(()=>class oe{id;name;enabled;property;type;polling;tags;constructor(me){this.id=me}static descriptor={id:"Device id, GUID",name:"Device name",enabled:"Enabled",type:"Device Type: FuxaServer | SiemensS7 | OPCUA | BACnet | ModbusRTU | ModbusTCP | WebAPI | MQTTclient | internal | EthernetIP | ADSclient | Gpio | WebCam | MELSEC",polling:"Polling interval in millisec., check changed value after ask value, by OPCUA there is a monitor",property:"Connection property depending of type",tags:"Tags list of Tag"};static isWebApiProperty(me){return me.type===y.WebAPI&&me.property.getTags}})(),l=(()=>class oe{id;name;label;value;type;memaddress;address;divisor;access;options;format;daq;init;scale;scaleReadFunction;scaleReadParams;scaleWriteFunction;scaleWriteParams;sysType;description;deadband;direction;edge;constructor(me){this.id=me,this.daq=new v(!1,!1,60,!1)}static descriptor={id:"Tag id, GUID",name:"Tag name, is like the id",label:"Tag label, used by BACnet and WebAPI",type:"Tag type, Bool, Byte, etc. depending of device type",memaddress:"Address of Tag, combine with address by Modbus, some property for WebAPI",address:"Tag address, for OPCUA like the id",divisor:"Value divisor, used by Modbus",options:"Options is a string JSON object, used for WebAPI and MQTT, pubs: items to publish | subs: items to subscribe",init:"Init value",daq:{enabled:"Daq enabled storage",interval:"min storage interval (without change value)"},format:"Number of digits to appear after the decimal point",direction:"A string specifying whether the GPIO should be configured as an input or output. The valid values are: 'in', 'out', 'high', and 'low'. If 'out' is specified the GPIO will be configured as an output and the value of the GPIO will be set to 0. 'high' and 'low' are variants of 'out' that configure the GPIO as an output with an initial level of 1 or 0 respectively.",edge:"An optional string specifying the interrupt generating edge or edges for an input GPIO. The valid values are: 'none', 'rising', 'falling' or 'both'. The default value is 'none' indicating that the GPIO will not generate interrupts. Whether or not interrupts are supported by an input GPIO is GPIO specific. If interrupts are not supported by a GPIO the edge argument should not be specified. The edge argument is ignored for output GPIOs."}})();class v{enabled;interval;changed;restored=!1;constructor(Ce,me,ze,_e){this.enabled=Ce,this.changed=me,this.interval=ze,this.restored=_e}}var h=function(oe){return oe.absolute="absolute",oe}(h||{});let f=(()=>class oe{address;port;slot;rack;slaveid;baudrate;databits;stopbits;parity;options;method;format;connectionOption;delay=10;socketReuse;ascii;octalIO;static descriptor={address:"Device address (IP)"}})();class b{mode;username;password;clientId;grant_type;certificateFileName;privateKeyFileName;caCertificateFileName}var y=function(oe){return oe.FuxaServer="FuxaServer",oe.SiemensS7="SiemensS7",oe.OPCUA="OPCUA",oe.BACnet="BACnet",oe.ModbusRTU="ModbusRTU",oe.ModbusTCP="ModbusTCP",oe.WebAPI="WebAPI",oe.MQTTclient="MQTTclient",oe.internal="internal",oe.EthernetIP="EthernetIP",oe.ODBC="ODBC",oe.ADSclient="ADSclient",oe.GPIO="GPIO",oe.WebCam="WebCam",oe.MELSEC="MELSEC",oe}(y||{}),M=function(oe){return oe.Bool="Bool",oe.Byte="Byte",oe.Int="Int",oe.Word="Word",oe.DInt="DInt",oe.DWord="DWord",oe.Real="Real",oe}(M||{}),D=function(oe){return oe.Bool="Bool",oe.Int16="Int16",oe.UInt16="UInt16",oe.Int32="Int32",oe.UInt32="UInt32",oe.Float32="Float32",oe.Float64="Float64",oe.Int64="Int64",oe.Int16LE="Int16LE",oe.UInt16LE="UInt16LE",oe.Int32LE="Int32LE",oe.UInt32LE="UInt32LE",oe.Float32LE="Float32LE",oe.Float64LE="Float64LE",oe.Float64MLE="Float64MLE",oe.Int64LE="Int64LE",oe.Float32MLE="Float32MLE",oe.Int32MLE="Int32MLE",oe.UInt32MLE="UInt32MLE",oe}(D||{}),x=function(oe){return oe.Boolean="Boolean",oe.SByte="SByte",oe.Byte="Byte",oe.Int16="Int16",oe.UInt16="UInt16",oe.Int32="Int32",oe.UInt32="UInt32",oe.Int64="Int64",oe.UInt64="UInt64",oe.Float="Float",oe.Double="Double",oe.String="String",oe.DateTime="DateTime",oe.Guid="Guid",oe.ByteString="ByteString",oe}(x||{}),k=function(oe){return oe.Number="number",oe.Boolean="boolean",oe.String="string",oe}(k||{}),Q=function(oe){return oe.BOOL="BOOL",oe.BYTE="BYTE",oe.WORD="WORD",oe.INT="INT",oe.UINT="UINT",oe.DINT="DINT",oe.UDINT="UDINT",oe.REAL="REAL",oe.STRING="STRING",oe}(Q||{}),I=function(oe){return oe.SerialPort="SerialPort",oe.RTUBufferedPort="RTUBufferedPort",oe.AsciiPort="AsciiPort",oe.TcpPort="TcpPort",oe.UdpPort="UdpPort",oe.TcpRTUBufferedPort="TcpRTUBufferedPort",oe.TelnetPort="TelnetPort",oe}(I||{}),d=function(oe){return oe.Reuse="Reuse",oe.ReuseSerial="ReuseSerial",oe}(d||{}),S=function(oe){return oe.in="in",oe.out="out",oe.high=" - high",oe.low=" - low",oe}(S||{}),R=function(oe){return oe.none="none",oe.rising="rising",oe.falling="falling",oe.both="both",oe}(R||{}),z=function(oe){return oe[oe.INVALID=0]="INVALID",oe.NONE="1",oe.SIGN="2",oe.SIGNANDENCRYPT="3",oe}(z||{}),q=function(oe){return oe.None="None",oe.Basic128="Basic128",oe.Basic128Rsa15="Basic128Rsa15",oe.Basic192="Basic192",oe.Basic192Rsa15="Basic192Rsa15",oe.Basic256="Basic256",oe.Basic256Rsa15="Basic256Rsa15",oe.Basic256Sha256="Basic256Sha256",oe.Aes256_Sha256_RsaPss="Aes256_Sha256_RsaPss",oe.Aes128_Sha256_RsaOaep="Aes128_Sha256_RsaOaep",oe}(q||{}),Z=function(oe){return oe.ANALOG_INPUT="Analog Input",oe.ANALOG_OUTPUT="Analog Output",oe.ANALOG_VALUE="Analog Value",oe.BINARY_INPUT="Binary Input",oe.BINARY_OUTPUT="Binary Output",oe.BINARY_VALUE="Binary Value",oe.CALENDAR="",oe.COMMAND="",oe.DEVICE="",oe}(Z||{});const H="d_",G="t_";let W=(()=>{class oe{static getDeviceTagText(me,ze){for(let _e=0;_e_e.address===ze)}static columnDelimiter=",";static lineDelimiter="\n";static lineComment="#";static lineDevice="D@";static lineTag="T@";static lineSectionHeader="@";static columnMaske="~";static devicesToCsv(me){let ze="",_e=`!! CSV separator property convertion to "~"${oe.lineDelimiter}`,Ae=`${oe.lineSectionHeader}header${oe.columnDelimiter}`,ve="";const ye=Object.keys(e.descriptor).filter(mt=>"tags"!==mt),Oe=Object.keys(f.descriptor);ye.forEach(mt=>{"property"!==mt&&(_e+=`${oe.lineComment}${mt}${oe.columnDelimiter}: ${e.descriptor[mt]}${oe.lineDelimiter}`,Ae+=`${mt}${oe.columnDelimiter}`)}),Oe.forEach(mt=>{_e+=`${oe.lineComment}property.${mt}${oe.columnDelimiter}: ${f.descriptor[mt]}${oe.lineDelimiter}`,Ae+=`property.${mt}${oe.columnDelimiter}`});for(let mt=0;mt"daq"!==mt&&"options"!==mt);ae+=`${oe.lineComment}deviceId${oe.columnDelimiter}:Reference to device${oe.lineDelimiter}`,Ee+=`${oe.lineSectionHeader}header${oe.columnDelimiter}deviceId${oe.columnDelimiter}`,Ve.forEach(mt=>{ae+=`${oe.lineComment}${mt}${oe.columnDelimiter}: ${l.descriptor[mt]}${oe.lineDelimiter}`,Ee+=`${mt}${oe.columnDelimiter}`}),ae+=`${oe.lineComment}options${oe.columnDelimiter}: ${l.descriptor.options}${oe.lineDelimiter}`,Ee+=`options${oe.columnDelimiter}`,ae+=`${oe.lineComment}daq.enabled${oe.columnDelimiter}: ${l.descriptor.daq.enabled}${oe.lineDelimiter}`,Ee+=`daq.enabled${oe.columnDelimiter}`,ae+=`${oe.lineComment}daq.interval${oe.columnDelimiter}: ${l.descriptor.daq.interval}${oe.lineDelimiter}`,Ee+=`daq.interval${oe.columnDelimiter}`;for(let mt=0;mt!ye.startsWith(oe.lineComment)&&!ye.startsWith(oe.lineSectionHeader)).forEach(ye=>{if(ye.startsWith(oe.lineDevice)){let Oe=oe.line2Device(ye,ze);Ae[Oe.id]=Oe}else if(ye.startsWith(oe.lineTag)){let Oe=oe.line2Tag(ye,_e);if(!Ae[Oe.deviceId])throw new Error(`Device don't exist: ${ye}`);if(Ae[Oe.deviceId].tags[Oe.tag.id])throw new Error(`Tag already exist: ${ye}`);Ae[Oe.deviceId].tags[Oe.tag.id]=Oe.tag}}),Object.values(Ae)}catch(ze){console.error(ze)}return null}static device2Line(me,ze,_e){let Ae=`${oe.lineDevice}${oe.columnDelimiter}`;return ze.forEach(ve=>{if("property"!==ve){let ye=me[ve]?me[ve].toString():"";Ae+=`${ye.replace(new RegExp(oe.columnDelimiter,"g"),oe.columnMaske)}${oe.columnDelimiter}`}}),me.property&&_e.forEach(ve=>{Ae+=`${me.property[ve]||""}${oe.columnDelimiter}`}),Ae}static line2Device(me,ze){const _e=me.split(oe.columnDelimiter);if(_e.length{Ae+=`${(me[ye]||"").toString().replace(new RegExp(oe.columnDelimiter,"g"),oe.columnMaske)}${oe.columnDelimiter}`});let ve=me.options?JSON.stringify(me.options):"";return Ae+=`${ve.replace(new RegExp(oe.columnDelimiter,"g"),oe.columnMaske)}${oe.columnDelimiter}`,Ae+=`${me.daq?me.daq.enabled:""}${oe.columnDelimiter}`,Ae+=`${me.daq?me.daq.interval:""}${oe.columnDelimiter}`,Ae}static line2Tag(me,ze){const _e=me.split(oe.columnDelimiter);if(_e.lengthAe.name===_e.firstContent):null}static getPlaceholderContent(me){const ze=me.indexOf("@");if(-1===ze)return{firstContent:null,secondContent:null};const _e=me.indexOf("@",ze+1);return-1===_e?{firstContent:me.substring(ze+1).trim(),secondContent:null}:{firstContent:me.substring(ze+1,_e).trim(),secondContent:me.substring(_e+1).trim()}}}return oe})();var te=function(oe){return oe.tags="tags",oe.devices="devices",oe.list="devices-list",oe.map="devices-map",oe}(te||{}),P=function(oe){return oe.ok="device.connect-ok",oe.error="device.connect-error",oe.failed="device.connect-failed",oe.off="device.connect-off",oe.busy="device.connect-busy",oe}(P||{}),J=function(oe){return oe.number="number",oe.boolean="boolean",oe.string="string",oe}(J||{}),re=function(oe){return oe.undefined="device.tag-scale-mode-undefined",oe.linear="device.tag-scale-mode-linear",oe.convertDateTime="device.tag-convert-datetime",oe.convertTickTime="device.tag-convert-ticktime",oe}(re||{}),he=function(oe){return oe[oe.deviceConnectionStatus=1]="deviceConnectionStatus",oe}(he||{})},4126:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{$q:()=>Ae,AQ:()=>H,B0:()=>ve,BO:()=>Gt,Bi:()=>R,Bx:()=>d,C6:()=>k,CG:()=>G,Dw:()=>oi,F$:()=>te,G7:()=>e,Hs:()=>W,Hy:()=>z,I2:()=>v,I9:()=>Ce,Io:()=>Q,KG:()=>J,KQ:()=>_e,NI:()=>I,Nd:()=>Ve,Rw:()=>x,SC:()=>He,T2:()=>Oe,Uk:()=>et,Un:()=>ai,W9:()=>gt,XG:()=>oe,Zs:()=>ze,_w:()=>Ke,aL:()=>_,bW:()=>l,dm:()=>be,eC:()=>Rt,eS:()=>j,ew:()=>re,f2:()=>ye,fH:()=>y,iS:()=>h,io:()=>ae,jS:()=>It,ju:()=>Xe,kH:()=>qe,lf:()=>ke,ng:()=>Z,nh:()=>f,nr:()=>S,pj:()=>St,r8:()=>Fe,rC:()=>je,s7:()=>D,sB:()=>vt,sY:()=>me,tI:()=>Ee,tM:()=>T,tZ:()=>b,v7:()=>mt,xA:()=>he,zN:()=>M});var V=ce(5024),K=ce(5625);class T{layout=new v;views=[]}class e{id="";name="";profile=new I;items={};variables={};svgcontent="";type;property;constructor(mi,Zi,Qi){this.id=mi,this.name=Qi,this.type=Zi}}var l=function(zt){return zt.svg="svg",zt.cards="cards",zt.maps="maps",zt}(l||{});class v{autoresize=!1;start="";navigation=new h;header=new M;showdev=!0;zoom;inputdialog="false";hidenavigation=!1;theme="";loginonstart=!1;loginoverlaycolor=f.none;show_connection_error=!0;customStyles=""}class h{mode;type;bkcolor="#F4F5F7";fgcolor="#1D1D1D";items;logo=!1;constructor(){this.mode=Object.keys(_).find(mi=>_[mi]===_.over),this.type=Object.keys(b).find(mi=>b[mi]===b.block)}}var f=function(zt){return zt.none="none",zt.black="black",zt.white="white",zt}(f||{}),_=function(zt){return zt.void="item.navsmode-none",zt.push="item.navsmode-push",zt.over="item.navsmode-over",zt.fix="item.navsmode-fix",zt}(_||{}),b=function(zt){return zt.icon="item.navtype-icons",zt.text="item.navtype-text",zt.block="item.navtype-icons-text-block",zt.inline="item.navtype-icons-text-inline",zt}(b||{});class y{id;text;link;view;icon;image;permission;permissionRoles;children}class M{title;alarms;infos;bkcolor="#ffffff";fgcolor="#000000";fontFamily;fontSize=13;items;itemsAnchor="left";loginInfo;dateTimeDisplay;language}var D=function(zt){return zt.hide="item.notifymode-hide",zt.fix="item.notifymode-fix",zt.float="item.notifymode-float",zt}(D||{}),x=function(zt){return zt.disabled="item.zoommode-disabled",zt.enabled="item.zoommode-enabled",zt.autoresize="item.zoommode-autoresize",zt}(x||{}),k=function(zt){return zt.false="item.inputmode-disabled",zt.true="item.inputmode-enabled",zt.keyboard="item.inputmode-keyboard",zt.keyboardFullScreen="item.inputmode-keyboard-full-screen",zt}(k||{}),Q=function(zt){return zt.true="item.headerbarmode-hide",zt.false="item.headerbarmode-show",zt}(Q||{});class I{width=1024;height=768;bkcolor="#ffffffff";margin=10;align=d.topCenter;gridType=V.tQ.Fixed;viewRenderDelay=0}var d=function(zt){return zt.topCenter="topCenter",zt.middleCenter="middleCenter",zt}(d||{});class S{id;type;name="";property=null;label="";hide=!1;lock=!1;constructor(mi,Zi){this.id=mi,this.type=Zi}}class R{events=[];startLocation;startZoom}class z{variableId;variableValue;bitmask;permission;permissionRoles;ranges;events=[];actions=[];options;readonly;text}var Z=function(zt){return zt.number="number",zt.text="text",zt.date="date",zt.time="time",zt.datetime="datetime",zt.textarea="textarea",zt.password="password",zt}(Z||{}),H=function(zt){return zt.normal="normal",zt.seconds="seconds",zt.milliseconds="milliseconds",zt}(H||{}),G=function(zt){return zt.milliseconds="milliseconds",zt.string="string",zt}(G||{}),W=function(zt){return zt.update="update",zt.enter="enter",zt}(W||{});class te{type;action;actparam;actoptions={}}var J=function(zt){return zt.hide="shapes.action-hide",zt.show="shapes.action-show",zt.blink="shapes.action-blink",zt.stop="shapes.action-stop",zt.clockwise="shapes.action-clockwise",zt.anticlockwise="shapes.action-anticlockwise",zt.downup="shapes.action-downup",zt.rotate="shapes.action-rotate",zt.move="shapes.action-move",zt.monitor="shapes.action-monitor",zt.refreshImage="shapes.action-refreshImage",zt.start="shapes.action-start",zt.pause="shapes.action-pause",zt.reset="shapes.action-reset",zt}(J||{});class j{variableId;bitmask;range;type;options={}}class re{strokeA=null;strokeB=null;fillA=null;fillB=null;interval=1e3}class he{minAngle=0;maxAngle=90;delay=0}class oe{toX=0;toY=0;duration=100}class Ce{fill;stroke}class me{variablesValue={};onlyChange=!1;takeValue=!1;actionRef}class ze{type;timer=null;animr=null;spool;constructor(mi){this.type=mi}}var _e=function(zt){return zt.click="shapes.event-click",zt.dblclick="shapes.event-dblclick",zt.mousedown="shapes.event-mousedown",zt.mouseup="shapes.event-mouseup",zt.mouseover="shapes.event-mouseover",zt.mouseout="shapes.event-mouseout",zt.enter="shapes.event-enter",zt.select="shapes.event-select",zt.onLoad="shapes.event-onLoad",zt}(_e||{}),Ae=function(zt){return zt.onpage="shapes.event-onpage",zt.onwindow="shapes.event-onwindow",zt.onOpenTab="shapes.event-onopentab",zt.ondialog="shapes.event-ondialog",zt.oniframe="shapes.event-oniframe",zt.oncard="shapes.event-oncard",zt.onSetValue="shapes.event-onsetvalue",zt.onToggleValue="shapes.event-ontogglevalue",zt.onSetInput="shapes.event-onsetinput",zt.onclose="shapes.event-onclose",zt.onRunScript="shapes.event-onrunscript",zt.onViewToPanel="shapes.event-onViewToPanel",zt.onMonitor="shapes.event-onmonitor",zt}(Ae||{}),ve=function(zt){return zt.onopen="shapes.event-onopen",zt.onclose="shapes.event-onclose",zt}(ve||{}),ye=function(zt){return zt.onRunScript="shapes.event-onrunscript",zt}(ye||{}),Oe=function(zt){return zt.window="window",zt.mouse="mouse",zt}(Oe||{}),ae=function(zt){return zt.set="shapes.event-setvalue-set",zt.add="shapes.event-setvalue-add",zt.remove="shapes.event-setvalue-remove",zt}(ae||{});class Ee{min;max;text;textId;color;type;style;stroke}var Fe=function(zt){return zt.none="none",zt.contain="contain",zt.stretch="stretch",zt}(Fe||{}),Ve=function(zt){return zt.data="data",zt.history="history",zt.alarms="alarms",zt.alarmsHistory="alarmsHistory",zt.reports="reports",zt}(Ve||{}),mt=function(zt){return zt.label="label",zt.variable="variable",zt.timestamp="timestamp",zt.device="device",zt}(mt||{});class St{id;label;variableId;valueFormat;bitmask;type;constructor(mi,Zi,Qi){this.id=mi,this.type=Zi||mt.label,this.label=Qi}}class oi extends St{align=be.left;width=100;exname;constructor(mi,Zi,Qi){super(mi,Zi,Qi)}}class He{cells;constructor(mi){this.cells=mi}}var be=function(zt){return zt.left="left",zt.center="center",zt.right="right",zt}(be||{}),je=function(zt){return zt.last1h="table.rangetype-last1h",zt.last1d="table.rangetype-last1d",zt.last3d="table.rangetype-last3d",zt}(je||{});class Ke{id;name;source;value;error;timestamp;device;constructor(mi,Zi,Qi){this.id=mi,this.name=Zi,this.device=Qi,Qi?.type===K.Yi.internal&&(this.value="0")}}class et{type="";id;ele=null}class Xe{id="";dom;value=null;dbg="";type;ga;variableId}class It{gid;from;to;event;sids;chunked}class vt{page;tag}var qe=function(zt){return zt.YYYY_MM_DD="1998/03/25",zt.MM_DD_YYYY="03/25/1998",zt.DD_MM_YYYY="25/03/1998",zt.MM_DD_YY="03/25/98",zt.DD_MM_YY="25/03/98",zt}(qe||{}),ke=function(zt){return zt.hh_mm_ss="16:58:10",zt.hh_mm_ss_AA="04:58:10 PM",zt}(ke||{}),gt=function(zt){return zt.view="view",zt.alarms="alarms",zt.iframe="iframe",zt.table="table",zt}(gt||{}),ai=function(zt){return zt.address="[link]",zt.alarms="[alarms]",zt}(ai||{});const Rt="rodevice";class Gt extends z{constructor(){super(),this.options={address:""}}}},8906:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{lI:()=>V,uM:()=>e});class V{default;options=[]}const e="@"},7033:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Hy:()=>v,fH:()=>h});var V=ce(5625),K=ce(4126),T=ce(8906),e=ce(1019),l=ce(7579);class v{version="1.01";name;server=new V.AS(e.cQ.getGUID(V.pP));hmi=new K.tM;devices={};charts=[];graphs=[];alarms=[];notifications=[];scripts=[];reports=[];texts=[];languages=new T.lI;plugin=[];mapsLocations=[];clientAccess=new l.R}var h=function(_){return _.SetDevice="set-device",_.DelDevice="del-device",_.SetView="set-view",_.DelView="del-view",_.HmiLayout="layout",_.Charts="charts",_.Graphs="graphs",_.Languages="languages",_.ClientAccess="client-access",_.SetText="set-text",_.DelText="del-text",_.SetAlarm="set-alarm",_.DelAlarm="del-alarm",_.SetNotification="set-notification",_.DelNotification="del-notification",_.SetScript="set-script",_.DelScript="del-script",_.SetReport="set-report",_.DelReport="del-report",_.SetMapsLocation="set-maps-location",_.DelMapsLocation="del-maps-location",_}(h||{})},846:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{EN:()=>y,HO:()=>l,St:()=>M,Xf:()=>V,ZW:()=>e,ez:()=>h,lo:()=>T,mH:()=>b,ug:()=>v,ui:()=>_,vC:()=>K});class V{id;name;code;sync=!1;parameters=[];scheduling;permission;permissionRoles;mode=y.SERVER;constructor(x){this.id=x}}class K extends V{test=!0;outputId;constructor(x,k){super(x),this.name=k}}class T{name;type;value;constructor(x,k){this.name=x,this.type=k}}var e=function(D){return D.tagid="tagid",D.value="value",D.chart="chart",D}(e||{});const l="s_",v="params";var h=function(D){return D.interval="interval",D.start="start",D.scheduling="scheduling",D}(h||{});class _{functions=[];constructor(x){this.functions=this.allFunctions.filter(k=>!k.mode||!x||k.mode===x)}allFunctions=[{name:"$setTag",mode:null,text:"script.sys-fnc-settag-text",tooltip:"script.sys-fnc-settag-tooltip",params:[!0,!1]},{name:"$getTag",mode:null,text:"script.sys-fnc-gettag-text",tooltip:"script.sys-fnc-gettag-tooltip",params:[!0]},{name:"$getTagId",mode:null,text:"script.sys-fnc-getTagId-text",tooltip:"script.sys-fnc-getTagId-tooltip",params:[!1],paramsText:"script.sys-fnc-getTagId-params"},{name:"$getTagDaqSettings",mode:null,text:"script.sys-fnc-getTagDaqSettings-text",tooltip:"script.sys-fnc-getTagDaqSettings-tooltip",params:[!0],paramsText:"script.sys-fnc-getTagDaqSettings-params"},{name:"$setTagDaqSettings",mode:null,text:"script.sys-fnc-setTagDaqSettings-text",tooltip:"script.sys-fnc-setTagDaqSettings-tooltip",params:[!0,!1],paramsText:"script.sys-fnc-setTagDaqSettings-params"},{name:"$setView",mode:null,text:"script.sys-fnc-setview-text",tooltip:"script.sys-fnc-setview-tooltip",params:[!1],paramsText:"script.sys-fnc-setview-params"},{name:"$openCard",mode:null,text:"script.sys-fnc-opencard-text",tooltip:"script.sys-fnc-opencard-tooltip",params:[!1],paramsText:"script.sys-fnc-opencard-params"},{name:"$enableDevice",mode:null,text:"script.sys-fnc-enableDevice-text",tooltip:"script.sys-fnc-enableDevice-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-enableDevice-params"},{name:"$getDeviceProperty",mode:null,text:"script.sys-fnc-getDeviceProperty-text",tooltip:"script.sys-fnc-getDeviceProperty-tooltip",params:[!1],paramsText:"script.sys-fnc-getDeviceProperty-params"},{name:"$setDeviceProperty",mode:null,text:"script.sys-fnc-setDeviceProperty-text",tooltip:"script.sys-fnc-setDeviceProperty-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-setDeviceProperty-params"},{name:"$getDevice",mode:y.SERVER,text:"script.sys-fnc-getDevice-text",tooltip:"script.sys-fnc-getDevice-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-getDevice-params"},{name:"$setAdapterToDevice",mode:y.CLIENT,text:"script.sys-fnc-setAdapterToDevice-text",tooltip:"script.sys-fnc-setAdapterToDevice-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-setAdapterToDevice-params"},{name:"$resolveAdapterTagId",mode:y.CLIENT,text:"script.sys-fnc-resolveAdapterTagId-text",tooltip:"script.sys-fnc-resolveAdapterTagId-tooltip",params:[!0],paramsText:"script.sys-fnc-resolveAdapterTagId-params"},{name:"$invokeObject",mode:y.CLIENT,text:"script.sys-fnc-invokeObject-text",tooltip:"script.sys-fnc-invokeObject-tooltip",params:[!1,!1,!1],paramsText:"script.sys-fnc-invokeObject-params"},{name:"$runServerScript",mode:y.CLIENT,text:"script.sys-fnc-runServerScript-text",tooltip:"script.sys-fnc-runServerScript-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-runServerScript-params"},{name:"$getHistoricalTags",mode:null,text:"script.sys-fnc-getHistoricalTag-text",tooltip:"script.sys-fnc-getHistoricalTag-tooltip",params:["array",!1,!1],paramsText:"script.sys-fnc-getHistoricalTag-params",paramFilter:M.history},{name:"$sendMessage",mode:null,text:"script.sys-fnc-sendMessage-text",tooltip:"script.sys-fnc-sendMessage-tooltip",params:[!1,!1,!1],paramsText:"script.sys-fnc-sendMessage-params"},{name:"$getAlarms",mode:null,text:"script.sys-fnc-getAlarms-text",tooltip:"script.sys-fnc-getAlarms-tooltip",params:[],paramsText:"script.sys-fnc-getAlarms-params"},{name:"$getAlarmsHistory",mode:null,text:"script.sys-fnc-getAlarmsHistory-text",tooltip:"script.sys-fnc-getAlarmsHistory-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-getAlarmsHistory-params"},{name:"$ackAlarm",mode:null,text:"script.sys-fnc-ackAlarms-text",tooltip:"script.sys-fnc-ackAlarms-tooltip",params:[!1,!1],paramsText:"script.sys-fnc-ackAlarms-params"}]}class b{functions=[];constructor(x){this.functions=this.allFunctions.filter(k=>!k.mode||!x||k.mode===x)}allFunctions=[{name:"chart-data",mode:null,text:"script.template-chart-data-text",tooltip:"script.template-chart-data-tooltip",code:"// Add script parameter 'paramLines' as Chart lines (array)\nif (paramLines && Array.isArray(paramLines)) {\n const count = 10;\n paramLines.forEach(line => {\n var y = [];\n var x = [];\n for (var i = 0; i < count; i++) {\n const randomNumber = Math.floor(Math.random() * 21);\n y.push(randomNumber);\n x.push(i);\n }\n line['y'] = y;\n line['x'] = x;\n });\n return paramLines;\n} else {\n return 'Missing chart lines';\n}"},{name:"chart-data-touch",mode:null,text:"script.template-chart-data-touch-text",tooltip:"script.template-chart-data-touch-tooltip",code:"// Add script parameters 'paramLines' as Chart lines (array), 'xVal' as X axis touch point, 'yVal' as Y axis touch point\nif (paramLines && Array.isArray(paramLines)) {\n const count = 10;\n paramLines.forEach(line => {\n var y = [];\n var x = [];\n for (var i = 0; i < count; i++) {\n const randomNumber = Math.floor(Math.random() * 21);\n y.push(randomNumber);\n x.push(i);\n }\n \tif (typeof xVal === 'number' && typeof yVal === 'number') {\n \t\tx.push(Math.round(xVal));\n \t\ty.push(Math.round(yVal));\n \t}\n line['y'] = y;\n line['x'] = x;\n });\n return paramLines;\n} else {\n return 'Missing chart lines';\n}"},{name:"invoke-chart-update-options",mode:y.CLIENT,text:"script.template-invoke-chart-update-options-text",tooltip:"script.template-invoke-chart-update-options-tooltip",code:"let opt = $invokeObject('chart_1', 'getOptions');\nif (opt) {\n opt.scaleY1min = 100;\n opt.scaleY1max = 200;\n}\n$invokeObject('chart_1', 'updateOptions', opt);"},{name:"getHistoricalTags",mode:null,text:"script.template-getHistoricalTagsoptions-text",tooltip:"script.template-getHistoricalTagsoptions-tooltip",code:"const to = Date.now();\nvar from = Date.now() - (1000 * 3600); // 1 hour\nvar data = await $getHistoricalTags(['t_a95d5816-9f1e4a67' /* opcua - Byte */], from, to);\nconsole.log(JSON.stringify(data));"}]}var y=function(D){return D.CLIENT="CLIENT",D.SERVER="SERVER",D}(y||{}),M=function(D){return D.history="history",D}(M||{})},9234:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Nc:()=>K,Or:()=>f,Tu:()=>l,_k:()=>v,de:()=>V,oZ:()=>_,r8:()=>T});class V{language="en";uiPort=1881;secureEnabled=!1;tokenExpiresIn="1h";secureOnlyEditor=!1;broadcastAll=!1;smtp=new K;daqstore=new T;alarms=new e;logFull=!1;userRole=!1}class K{host="";port=587;mailsender="";username="";password="";constructor(M=null){M&&(this.host=M.host,this.port=M.port,this.mailsender=M.mailsender,this.username=M.username,this.password=M.password)}}class T{type=v.SQlite;varsion;url;organization;credentials;bucket;database;retention=f.year1;constructor(M=null){M&&(this.type=M.type,this.url=M.url,this.organization=M.organization,this.credentials=M.credentials,this.bucket=M.bucket,this.database=M.database,this.retention=M.retention||f.year1)}isEquals(M){return!(this.type!==M.type||this.bucket!==M.bucket||this.url!==M.url||this.organization!==M.organization||this.database!==M.database||!this.credentials||!l.isEquals(this.credentials,M.credentials)||this.retention!==M.retention)}}class e{retention=_.year1}class l{token;username;password;static isEquals(M,D){return M.token===D.token&&M.username===D.username&&M.password===D.password}}var v=function(y){return y.SQlite="SQlite",y.influxDB="influxDB",y.influxDB18="influxDB 1.8",y.TDengine="TDengine",y}(v||{}),f=function(y){return y.none="none",y.day1="day1",y.days2="days2",y.days3="days3",y.days7="days7",y.days14="days14",y.days30="days30",y.days90="days90",y.year1="year1",y.year3="year3",y.year5="year5",y}(f||{}),_=function(y){return y.none="none",y.days7="days7",y.days30="days30",y.days90="days90",y.year1="year1",y.year3="year3",y.year5="year5",y}(_||{})},252:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{n5:()=>V,uU:()=>K,wt:()=>T});class V{username;fullname;password;groups;info}class K{id;name;index;description}let T=(()=>class e{static ADMINMASK=[-1,255];static EXTENSION=8;static Groups=[{id:1,label:"Viewer"},{id:2,label:"Operator"},{id:4,label:"Engineer"},{id:8,label:"Supervisor"},{id:16,label:"Manager"},{id:32,label:"F"},{id:64,label:"G"},{id:128,label:"Administrator"}];static GroupsToValue(v,h){let f=0;if(v)for(let b=0;b>_&this.Groups[b].id&&f.push(this.Groups[b]);return f}static GroupToLabel(v){let h=[];for(let f=0;f{"use strict";ce.d(Pt,{z:()=>e});var V=ce(5879),K=ce(553),T=ce(2044);let e=(()=>{class l{settingsService;onShowModeChanged=new V.vpe;onShowLoading=new V.vpe;static APP_DEMO="demo";static APP_CLIENT="client";showMode;constructor(h){this.settingsService=h}setShowMode(h){return"editor"===h&&this.settingsService.isEditModeLocked()?(this.settingsService.notifyEditorLocked(),this.showMode):(this.showMode=h,this.onShowModeChanged.emit(this.showMode),this.showMode)}lockEditMode(){this.settingsService.lockEditMode()}unlockEditMode(){this.settingsService.unlockEditMode()}showLoading(h){this.onShowLoading.emit(h)}get isDemoApp(){return K.N.type===l.APP_DEMO}get isClientApp(){return K.N.type===l.APP_CLIENT}static \u0275fac=function(f){return new(f||l)(V.LFG(T.g))};static \u0275prov=V.Yz7({token:l,factory:l.\u0275fac})}return l})()},8333:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{e:()=>b});var V=ce(9862),K=ce(5619),T=ce(5592),e=ce(252),l=ce(553),v=ce(5266),h=ce(2044),f=ce(1019),_=ce(5879);let b=(()=>{class M{http;settings;currentUser;endPointConfig=v.C.getURL();currentUser$=new K.X(null);constructor(x,k){this.http=x,this.settings=k;let Q=JSON.parse(localStorage.getItem("currentUser"));Q&&(this.currentUser=Q),this.currentUser$.next(this.currentUser)}signIn(x,k){return new T.y(Q=>{if(l.N.serverEnabled)return new V.WM({"Content-Type":"application/json"}),this.http.post(this.endPointConfig+"/api/signin",{username:x,password:k}).subscribe(d=>{d&&(this.currentUser=d.data,this.currentUser.info&&(this.currentUser.infoRoles=JSON.parse(this.currentUser.info)?.roles),this.saveUserToken(this.currentUser),this.currentUser$.next(this.currentUser)),Q.next(null)},d=>{console.error(d),Q.error(d)});Q.next(null)})}signOut(){this.removeUser()&&window.location.reload()}getUser(){return this.currentUser}getUserProfile(){return this.currentUser}getUserToken(){return this.currentUser?.token}isAdmin(){return!(!this.currentUser||-1===e.wt.ADMINMASK.indexOf(this.currentUser.groups))}setNewToken(x){this.currentUser.token=x,this.saveUserToken(this.currentUser)}saveUserToken(x){localStorage.setItem("currentUser",JSON.stringify(x))}removeUser(){const x=!!this.currentUser;return this.currentUser=null,localStorage.removeItem("currentUser"),this.currentUser$.next(this.currentUser),x}checkPermission(x,k=!1){var Q=this.currentUser?.groups;const I=this.settings.getSettings();if(!Q&&!x)return{show:k||!I.secureEnabled,enabled:k||!I.secureEnabled};if(-1===Q||255===Q||f.cQ.isNullOrUndefined(x))return{show:!0,enabled:!0};const d=I.userRole?x.permissionRoles:x.permission;if(I.userRole){if(Q&&!d)return{show:k,enabled:k}}else if(Q&&!x&&!d)return{show:!0,enabled:!1};var S={show:!1,enabled:!1};if(I.userRole){var R=this.currentUser?.infoRoles;if(R){let q={show:!0,enabled:!0};if(d.show&&d.show.length&&(S.show=R.some(Z=>d.show.includes(Z)),q.show=!1),d.enabled&&d.enabled.length&&(S.enabled=R.some(Z=>d.enabled.includes(Z)),q.enabled=!1),q.show&&q.enabled)return q}else S.show=!(d&&d.show&&d.show.length),S.enabled=!(d&&d.enabled&&d.enabled.length)}else if(Q){var z=d>>8;S.show=!z||0!=(z&Q),S.enabled=!(z=255&d)||0!=(z&Q)}else S.show=!d,S.enabled=!d;return S}static \u0275fac=function(k){return new(k||M)(_.LFG(V.eN),_.LFG(h.g))};static \u0275prov=_.Yz7({token:M,factory:M.\u0275fac})}return M})()},4276:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Bb:()=>Jt,uH:()=>Vt});var V={};ce.r(V),ce.d(V,{Decoder:()=>Pn,Encoder:()=>or,PacketType:()=>Ji,protocol:()=>ln});var K=ce(5879);const T=Object.create(null);T.open="0",T.close="1",T.ping="2",T.pong="3",T.message="4",T.upgrade="5",T.noop="6";const e=Object.create(null);Object.keys(T).forEach(Le=>{e[T[Le]]=Le});const l={type:"error",data:"parser error"},v="function"==typeof Blob||typeof Blob<"u"&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),h="function"==typeof ArrayBuffer,f=Le=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(Le):Le&&Le.buffer instanceof ArrayBuffer,_=({type:Le,data:Pe},ue,Me)=>v&&Pe instanceof Blob?ue?Me(Pe):b(Pe,Me):h&&(Pe instanceof ArrayBuffer||f(Pe))?ue?Me(Pe):b(new Blob([Pe]),Me):Me(T[Le]+(Pe||"")),b=(Le,Pe)=>{const ue=new FileReader;return ue.onload=function(){const Me=ue.result.split(",")[1];Pe("b"+(Me||""))},ue.readAsDataURL(Le)};function y(Le){return Le instanceof Uint8Array?Le:Le instanceof ArrayBuffer?new Uint8Array(Le):new Uint8Array(Le.buffer,Le.byteOffset,Le.byteLength)}let M;const k=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let Le=0;Le<64;Le++)k["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(Le)]=Le;const d="function"==typeof ArrayBuffer,S=(Le,Pe)=>{if("string"!=typeof Le)return{type:"message",data:z(Le,Pe)};const ue=Le.charAt(0);return"b"===ue?{type:"message",data:R(Le.substring(1),Pe)}:e[ue]?Le.length>1?{type:e[ue],data:Le.substring(1)}:{type:e[ue]}:l},R=(Le,Pe)=>{if(d){const ue=(Le=>{let Me,xt,li,$t,Ei,Pe=.75*Le.length,ue=Le.length,lt=0;"="===Le[Le.length-1]&&(Pe--,"="===Le[Le.length-2]&&Pe--);const gi=new ArrayBuffer(Pe),Gi=new Uint8Array(gi);for(Me=0;Me>4,Gi[lt++]=(15&li)<<4|$t>>2,Gi[lt++]=(3&$t)<<6|63&Ei;return gi})(Le);return z(ue,Pe)}return{base64:!0,data:Le}},z=(Le,Pe)=>"blob"===Pe?Le instanceof Blob?Le:new Blob([Le]):Le instanceof ArrayBuffer?Le:Le.buffer,q=String.fromCharCode(30);let W;function te(Le){return Le.reduce((Pe,ue)=>Pe+ue.length,0)}function P(Le,Pe){if(Le[0].length===Pe)return Le.shift();const ue=new Uint8Array(Pe);let Me=0;for(let lt=0;ltPromise.resolve().then(Pe):(Pe,ue)=>ue(Pe,0),Ce=typeof self<"u"?self:typeof window<"u"?window:Function("return this")();function _e(Le,...Pe){return Pe.reduce((ue,Me)=>(Le.hasOwnProperty(Me)&&(ue[Me]=Le[Me]),ue),{})}const Ae=Ce.setTimeout,ve=Ce.clearTimeout;function ye(Le,Pe){Pe.useNativeTimers?(Le.setTimeoutFn=Ae.bind(Ce),Le.clearTimeoutFn=ve.bind(Ce)):(Le.setTimeoutFn=Ce.setTimeout.bind(Ce),Le.clearTimeoutFn=Ce.clearTimeout.bind(Ce))}function ae(Le){return"string"==typeof Le?function Ee(Le){let Pe=0,ue=0;for(let Me=0,lt=Le.length;Me=57344?ue+=3:(Me++,ue+=4);return ue}(Le):Math.ceil(1.33*(Le.byteLength||Le.size))}function Fe(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}class St extends Error{constructor(Pe,ue,Me){super(Pe),this.description=ue,this.context=Me,this.type="TransportError"}}class oi extends re{constructor(Pe){super(),this.writable=!1,ye(this,Pe),this.opts=Pe,this.query=Pe.query,this.socket=Pe.socket,this.supportsBinary=!Pe.forceBase64}onError(Pe,ue,Me){return super.emitReserved("error",new St(Pe,ue,Me)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return("opening"===this.readyState||"open"===this.readyState)&&(this.doClose(),this.onClose()),this}send(Pe){"open"===this.readyState&&this.write(Pe)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(Pe){const ue=S(Pe,this.socket.binaryType);this.onPacket(ue)}onPacket(Pe){super.emitReserved("packet",Pe)}onClose(Pe){this.readyState="closed",super.emitReserved("close",Pe)}pause(Pe){}createUri(Pe,ue={}){return Pe+"://"+this._hostname()+this._port()+this.opts.path+this._query(ue)}_hostname(){const Pe=this.opts.hostname;return-1===Pe.indexOf(":")?Pe:"["+Pe+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(Pe){const ue=function Ve(Le){let Pe="";for(let ue in Le)Le.hasOwnProperty(ue)&&(Pe.length&&(Pe+="&"),Pe+=encodeURIComponent(ue)+"="+encodeURIComponent(Le[ue]));return Pe}(Pe);return ue.length?"?"+ue:""}}class He extends oi{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(Pe){this.readyState="pausing";const ue=()=>{this.readyState="paused",Pe()};if(this._polling||!this.writable){let Me=0;this._polling&&(Me++,this.once("pollComplete",function(){--Me||ue()})),this.writable||(Me++,this.once("drain",function(){--Me||ue()}))}else ue()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(Pe){((Le,Pe)=>{const ue=Le.split(q),Me=[];for(let lt=0;lt{if("opening"===this.readyState&&"open"===Me.type&&this.onOpen(),"close"===Me.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(Me)}),"closed"!==this.readyState&&(this._polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this._poll())}doClose(){const Pe=()=>{this.write([{type:"close"}])};"open"===this.readyState?Pe():this.once("open",Pe)}write(Pe){this.writable=!1,((Le,Pe)=>{const ue=Le.length,Me=new Array(ue);let lt=0;Le.forEach((xt,li)=>{_(xt,!1,$t=>{Me[li]=$t,++lt===ue&&Pe(Me.join(q))})})})(Pe,ue=>{this.doWrite(ue,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const Pe=this.opts.secure?"https":"http",ue=this.query||{};return!1!==this.opts.timestampRequests&&(ue[this.opts.timestampParam]=Fe()),!this.supportsBinary&&!ue.sid&&(ue.b64=1),this.createUri(Pe,ue)}}let be=!1;try{be=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const je=be;function Ke(){}class _t extends He{constructor(Pe){if(super(Pe),typeof location<"u"){const ue="https:"===location.protocol;let Me=location.port;Me||(Me=ue?"443":"80"),this.xd=typeof location<"u"&&Pe.hostname!==location.hostname||Me!==Pe.port}}doWrite(Pe,ue){const Me=this.request({method:"POST",data:Pe});Me.on("success",ue),Me.on("error",(lt,xt)=>{this.onError("xhr post error",lt,xt)})}doPoll(){const Pe=this.request();Pe.on("data",this.onData.bind(this)),Pe.on("error",(ue,Me)=>{this.onError("xhr poll error",ue,Me)}),this.pollXhr=Pe}}let Nt=(()=>{class Le extends re{constructor(ue,Me,lt){super(),this.createRequest=ue,ye(this,lt),this._opts=lt,this._method=lt.method||"GET",this._uri=Me,this._data=void 0!==lt.data?lt.data:null,this._create()}_create(){var ue;const Me=_e(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");Me.xdomain=!!this._opts.xd;const lt=this._xhr=this.createRequest(Me);try{lt.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){lt.setDisableHeaderCheck&<.setDisableHeaderCheck(!0);for(let xt in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(xt)&<.setRequestHeader(xt,this._opts.extraHeaders[xt])}}catch{}if("POST"===this._method)try{lt.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{lt.setRequestHeader("Accept","*/*")}catch{}null===(ue=this._opts.cookieJar)||void 0===ue||ue.addCookies(lt),"withCredentials"in lt&&(lt.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(lt.timeout=this._opts.requestTimeout),lt.onreadystatechange=()=>{var xt;3===lt.readyState&&(null===(xt=this._opts.cookieJar)||void 0===xt||xt.parseCookies(lt.getResponseHeader("set-cookie"))),4===lt.readyState&&(200===lt.status||1223===lt.status?this._onLoad():this.setTimeoutFn(()=>{this._onError("number"==typeof lt.status?lt.status:0)},0))},lt.send(this._data)}catch(xt){return void this.setTimeoutFn(()=>{this._onError(xt)},0)}typeof document<"u"&&(this._index=Le.requestsCount++,Le.requests[this._index]=this)}_onError(ue){this.emitReserved("error",ue,this._xhr),this._cleanup(!0)}_cleanup(ue){if(!(typeof this._xhr>"u"||null===this._xhr)){if(this._xhr.onreadystatechange=Ke,ue)try{this._xhr.abort()}catch{}typeof document<"u"&&delete Le.requests[this._index],this._xhr=null}}_onLoad(){const ue=this._xhr.responseText;null!==ue&&(this.emitReserved("data",ue),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}return Le.requestsCount=0,Le.requests={},Le})();function ut(){for(let Le in Nt.requests)Nt.requests.hasOwnProperty(Le)&&Nt.requests[Le].abort()}typeof document<"u"&&("function"==typeof attachEvent?attachEvent("onunload",ut):"function"==typeof addEventListener&&addEventListener("onpagehide"in Ce?"pagehide":"unload",ut,!1));const et=function(){const Le=It({xdomain:!1});return Le&&null!==Le.responseType}();function It(Le){const Pe=Le.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!Pe||je))return new XMLHttpRequest}catch{}if(!Pe)try{return new(Ce[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch{}}const Dt=typeof navigator<"u"&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();class vt extends oi{get name(){return"websocket"}doOpen(){const Pe=this.uri(),ue=this.opts.protocols,Me=Dt?{}:_e(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(Me.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(Pe,ue,Me)}catch(lt){return this.emitReserved("error",lt)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=Pe=>this.onClose({description:"websocket connection closed",context:Pe}),this.ws.onmessage=Pe=>this.onData(Pe.data),this.ws.onerror=Pe=>this.onError("websocket error",Pe)}write(Pe){this.writable=!1;for(let ue=0;ue{try{this.doWrite(Me,xt)}catch{}lt&&oe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const Pe=this.opts.secure?"wss":"ws",ue=this.query||{};return this.opts.timestampRequests&&(ue[this.opts.timestampParam]=Fe()),this.supportsBinary||(ue.b64=1),this.createUri(Pe,ue)}}const Qt=Ce.WebSocket||Ce.MozWebSocket,it={websocket:class qe extends vt{createSocket(Pe,ue,Me){return Dt?new Qt(Pe,ue,Me):ue?new Qt(Pe,ue):new Qt(Pe)}doWrite(Pe,ue){this.ws.send(ue)}},webtransport:class ke extends oi{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(Pe){return this.emitReserved("error",Pe)}this._transport.closed.then(()=>{this.onClose()}).catch(Pe=>{this.onError("webtransport error",Pe)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(Pe=>{const ue=function J(Le,Pe){W||(W=new TextDecoder);const ue=[];let Me=0,lt=-1,xt=!1;return new TransformStream({transform(li,$t){for(ue.push(li);;){if(0===Me){if(te(ue)<1)break;const Ei=P(ue,1);xt=128==(128&Ei[0]),lt=127&Ei[0],Me=lt<126?3:126===lt?1:2}else if(1===Me){if(te(ue)<2)break;const Ei=P(ue,2);lt=new DataView(Ei.buffer,Ei.byteOffset,Ei.length).getUint16(0),Me=3}else if(2===Me){if(te(ue)<8)break;const Ei=P(ue,8),gi=new DataView(Ei.buffer,Ei.byteOffset,Ei.length),Gi=gi.getUint32(0);if(Gi>Math.pow(2,21)-1){$t.enqueue(l);break}lt=Gi*Math.pow(2,32)+gi.getUint32(4),Me=3}else{if(te(ue)Le){$t.enqueue(l);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),Me=Pe.readable.pipeThrough(ue).getReader(),lt=function G(){return new TransformStream({transform(Le,Pe){!function D(Le,Pe){v&&Le.data instanceof Blob?Le.data.arrayBuffer().then(y).then(Pe):h&&(Le.data instanceof ArrayBuffer||f(Le.data))?Pe(y(Le.data)):_(Le,!1,ue=>{M||(M=new TextEncoder),Pe(M.encode(ue))})}(Le,ue=>{const Me=ue.length;let lt;if(Me<126)lt=new Uint8Array(1),new DataView(lt.buffer).setUint8(0,Me);else if(Me<65536){lt=new Uint8Array(3);const xt=new DataView(lt.buffer);xt.setUint8(0,126),xt.setUint16(1,Me)}else{lt=new Uint8Array(9);const xt=new DataView(lt.buffer);xt.setUint8(0,127),xt.setBigUint64(1,BigInt(Me))}Le.data&&"string"!=typeof Le.data&&(lt[0]|=128),Pe.enqueue(lt),Pe.enqueue(ue)})}})}();lt.readable.pipeTo(Pe.writable),this._writer=lt.writable.getWriter();const xt=()=>{Me.read().then(({done:$t,value:Ei})=>{$t||(this.onPacket(Ei),xt())}).catch($t=>{})};xt();const li={type:"open"};this.query.sid&&(li.data=`{"sid":"${this.query.sid}"}`),this._writer.write(li).then(()=>this.onOpen())})})}write(Pe){this.writable=!1;for(let ue=0;ue{lt&&oe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var Pe;null===(Pe=this._transport)||void 0===Pe||Pe.close()}},polling:class Xe extends _t{constructor(Pe){super(Pe),this.supportsBinary=et&&!(Pe&&Pe.forceBase64)}request(Pe={}){return Object.assign(Pe,{xd:this.xd},this.opts),new Nt(It,this.uri(),Pe)}}},gt=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,ai=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Rt(Le){if(Le.length>8e3)throw"URI too long";const Pe=Le,ue=Le.indexOf("["),Me=Le.indexOf("]");-1!=ue&&-1!=Me&&(Le=Le.substring(0,ue)+Le.substring(ue,Me).replace(/:/g,";")+Le.substring(Me,Le.length));let lt=gt.exec(Le||""),xt={},li=14;for(;li--;)xt[ai[li]]=lt[li]||"";return-1!=ue&&-1!=Me&&(xt.source=Pe,xt.host=xt.host.substring(1,xt.host.length-1).replace(/;/g,":"),xt.authority=xt.authority.replace("[","").replace("]","").replace(/;/g,":"),xt.ipv6uri=!0),xt.pathNames=function Gt(Le,Pe){const Me=Pe.replace(/\/{2,9}/g,"/").split("/");return("/"==Pe.slice(0,1)||0===Pe.length)&&Me.splice(0,1),"/"==Pe.slice(-1)&&Me.splice(Me.length-1,1),Me}(0,xt.path),xt.queryKey=function zt(Le,Pe){const ue={};return Pe.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(Me,lt,xt){lt&&(ue[lt]=xt)}),ue}(0,xt.query),xt}const mi="function"==typeof addEventListener&&"function"==typeof removeEventListener,Zi=[];mi&&addEventListener("offline",()=>{Zi.forEach(Le=>Le())},!1);let Qi=(()=>{class Le extends re{constructor(ue,Me){if(super(),this.binaryType="arraybuffer",this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,ue&&"object"==typeof ue&&(Me=ue,ue=null),ue){const lt=Rt(ue);Me.hostname=lt.host,Me.secure="https"===lt.protocol||"wss"===lt.protocol,Me.port=lt.port,lt.query&&(Me.query=lt.query)}else Me.host&&(Me.hostname=Rt(Me.host).host);ye(this,Me),this.secure=null!=Me.secure?Me.secure:typeof location<"u"&&"https:"===location.protocol,Me.hostname&&!Me.port&&(Me.port=this.secure?"443":"80"),this.hostname=Me.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=Me.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},Me.transports.forEach(lt=>{const xt=lt.prototype.name;this.transports.push(xt),this._transportsByName[xt]=lt}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},Me),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function mt(Le){let Pe={},ue=Le.split("&");for(let Me=0,lt=ue.length;Me{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Zi.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(ue){const Me=Object.assign({},this.opts.query);Me.EIO=4,Me.transport=ue,this.id&&(Me.sid=this.id);const lt=Object.assign({},this.opts,{query:Me,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[ue]);return new this._transportsByName[ue](lt)}_open(){if(0===this.transports.length)return void this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);const ue=this.opts.rememberUpgrade&&Le.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket")?"websocket":this.transports[0];this.readyState="opening";const Me=this.createTransport(ue);Me.open(),this.setTransport(Me)}setTransport(ue){this.transport&&this.transport.removeAllListeners(),this.transport=ue,ue.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",Me=>this._onClose("transport close",Me))}onOpen(){this.readyState="open",Le.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush()}_onPacket(ue){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",ue),this.emitReserved("heartbeat"),ue.type){case"open":this.onHandshake(JSON.parse(ue.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const Me=new Error("server error");Me.code=ue.data,this._onError(Me);break;case"message":this.emitReserved("data",ue.data),this.emitReserved("message",ue.data)}}onHandshake(ue){this.emitReserved("handshake",ue),this.id=ue.sid,this.transport.query.sid=ue.sid,this._pingInterval=ue.pingInterval,this._pingTimeout=ue.pingTimeout,this._maxPayload=ue.maxPayload,this.onOpen(),"closed"!==this.readyState&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const ue=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+ue,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},ue),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const ue=this._getWritablePackets();this.transport.send(ue),this._prevBufferLen=ue.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let Me=1;for(let lt=0;lt0&&Me>this._maxPayload)return this.writeBuffer.slice(0,lt);Me+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const ue=Date.now()>this._pingTimeoutTime;return ue&&(this._pingTimeoutTime=0,oe(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),ue}write(ue,Me,lt){return this._sendPacket("message",ue,Me,lt),this}send(ue,Me,lt){return this._sendPacket("message",ue,Me,lt),this}_sendPacket(ue,Me,lt,xt){if("function"==typeof Me&&(xt=Me,Me=void 0),"function"==typeof lt&&(xt=lt,lt=null),"closing"===this.readyState||"closed"===this.readyState)return;(lt=lt||{}).compress=!1!==lt.compress;const li={type:ue,data:Me,options:lt};this.emitReserved("packetCreate",li),this.writeBuffer.push(li),xt&&this.once("flush",xt),this.flush()}close(){const ue=()=>{this._onClose("forced close"),this.transport.close()},Me=()=>{this.off("upgrade",Me),this.off("upgradeError",Me),ue()},lt=()=>{this.once("upgrade",Me),this.once("upgradeError",Me)};return("opening"===this.readyState||"open"===this.readyState)&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?lt():ue()}):this.upgrading?lt():ue()),this}_onError(ue){if(Le.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&"opening"===this.readyState)return this.transports.shift(),this._open();this.emitReserved("error",ue),this._onClose("transport error",ue)}_onClose(ue,Me){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),mi&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const lt=Zi.indexOf(this._offlineEventListener);-1!==lt&&Zi.splice(lt,1)}this.readyState="closed",this.id=null,this.emitReserved("close",ue,Me),this.writeBuffer=[],this._prevBufferLen=0}}}return Le.protocol=4,Le})();class Ht extends Qi{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),"open"===this.readyState&&this.opts.upgrade)for(let Pe=0;Pe{Me||(ue.send([{type:"ping",data:"probe"}]),ue.once("packet",hn=>{if(!Me)if("pong"===hn.type&&"probe"===hn.data){if(this.upgrading=!0,this.emitReserved("upgrading",ue),!ue)return;Qi.priorWebsocketSuccess="websocket"===ue.name,this.transport.pause(()=>{Me||"closed"!==this.readyState&&(Gi(),this.setTransport(ue),ue.send([{type:"upgrade"}]),this.emitReserved("upgrade",ue),ue=null,this.upgrading=!1,this.flush())})}else{const Ci=new Error("probe error");Ci.transport=ue.name,this.emitReserved("upgradeError",Ci)}}))};function xt(){Me||(Me=!0,Gi(),ue.close(),ue=null)}const li=hn=>{const Ci=new Error("probe error: "+hn);Ci.transport=ue.name,xt(),this.emitReserved("upgradeError",Ci)};function $t(){li("transport closed")}function Ei(){li("socket closed")}function gi(hn){ue&&hn.name!==ue.name&&xt()}const Gi=()=>{ue.removeListener("open",lt),ue.removeListener("error",li),ue.removeListener("close",$t),this.off("close",Ei),this.off("upgrading",gi)};ue.once("open",lt),ue.once("error",li),ue.once("close",$t),this.once("close",Ei),this.once("upgrading",gi),-1!==this._upgrades.indexOf("webtransport")&&"webtransport"!==Pe?this.setTimeoutFn(()=>{Me||ue.open()},200):ue.open()}onHandshake(Pe){this._upgrades=this._filterUpgrades(Pe.upgrades),super.onHandshake(Pe)}_filterUpgrades(Pe){const ue=[];for(let Me=0;Meit[lt]).filter(lt=>!!lt)),super(Pe,Me)}}const Zt="function"==typeof ArrayBuffer,rt=Le=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(Le):Le.buffer instanceof ArrayBuffer,Kt=Object.prototype.toString,on="function"==typeof Blob||typeof Blob<"u"&&"[object BlobConstructor]"===Kt.call(Blob),Ge="function"==typeof File||typeof File<"u"&&"[object FileConstructor]"===Kt.call(File);function _i(Le){return Zt&&(Le instanceof ArrayBuffer||rt(Le))||on&&Le instanceof Blob||Ge&&Le instanceof File}function qt(Le,Pe){if(!Le||"object"!=typeof Le)return!1;if(Array.isArray(Le)){for(let ue=0,Me=Le.length;ue=0&&Le.num{delete this.acks[Pe];for(let $t=0;$t{this.io.clearTimeoutFn(xt),ue.apply(this,$t)};li.withError=!0,this.acks[Pe]=li}emitWithAck(Pe,...ue){return new Promise((Me,lt)=>{const xt=(li,$t)=>li?lt(li):Me($t);xt.withError=!0,ue.push(xt),this.emit(Pe,...ue)})}_addToQueue(Pe){let ue;"function"==typeof Pe[Pe.length-1]&&(ue=Pe.pop());const Me={id:this._queueSeq++,tryCount:0,pending:!1,args:Pe,flags:Object.assign({fromQueue:!0},this.flags)};Pe.push((lt,...xt)=>Me!==this._queue[0]?void 0:(null!==lt?Me.tryCount>this._opts.retries&&(this._queue.shift(),ue&&ue(lt)):(this._queue.shift(),ue&&ue(null,...xt)),Me.pending=!1,this._drainQueue())),this._queue.push(Me),this._drainQueue()}_drainQueue(Pe=!1){if(!this.connected||0===this._queue.length)return;const ue=this._queue[0];ue.pending&&!Pe||(ue.pending=!0,ue.tryCount++,this.flags=ue.flags,this.emit.apply(this,ue.args))}packet(Pe){Pe.nsp=this.nsp,this.io._packet(Pe)}onopen(){"function"==typeof this.auth?this.auth(Pe=>{this._sendConnectPacket(Pe)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(Pe){this.packet({type:Ji.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},Pe):Pe})}onerror(Pe){this.connected||this.emitReserved("connect_error",Pe)}onclose(Pe,ue){this.connected=!1,delete this.id,this.emitReserved("disconnect",Pe,ue),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(Pe=>{if(!this.sendBuffer.some(Me=>String(Me.id)===Pe)){const Me=this.acks[Pe];delete this.acks[Pe],Me.withError&&Me.call(this,new Error("socket has been disconnected"))}})}onpacket(Pe){if(Pe.nsp===this.nsp)switch(Pe.type){case Ji.CONNECT:Pe.data&&Pe.data.sid?this.onconnect(Pe.data.sid,Pe.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Ji.EVENT:case Ji.BINARY_EVENT:this.onevent(Pe);break;case Ji.ACK:case Ji.BINARY_ACK:this.onack(Pe);break;case Ji.DISCONNECT:this.ondisconnect();break;case Ji.CONNECT_ERROR:this.destroy();const Me=new Error(Pe.data.message);Me.data=Pe.data.data,this.emitReserved("connect_error",Me)}}onevent(Pe){const ue=Pe.data||[];null!=Pe.id&&ue.push(this.ack(Pe.id)),this.connected?this.emitEvent(ue):this.receiveBuffer.push(Object.freeze(ue))}emitEvent(Pe){if(this._anyListeners&&this._anyListeners.length){const ue=this._anyListeners.slice();for(const Me of ue)Me.apply(this,Pe)}super.emit.apply(this,Pe),this._pid&&Pe.length&&"string"==typeof Pe[Pe.length-1]&&(this._lastOffset=Pe[Pe.length-1])}ack(Pe){const ue=this;let Me=!1;return function(...lt){Me||(Me=!0,ue.packet({type:Ji.ACK,id:Pe,data:lt}))}}onack(Pe){const ue=this.acks[Pe.id];"function"==typeof ue&&(delete this.acks[Pe.id],ue.withError&&Pe.data.unshift(null),ue.apply(this,Pe.data))}onconnect(Pe,ue){this.id=Pe,this.recovered=ue&&this._pid===ue,this._pid=ue,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(Pe=>this.emitEvent(Pe)),this.receiveBuffer=[],this.sendBuffer.forEach(Pe=>{this.notifyOutgoingListeners(Pe),this.packet(Pe)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(Pe=>Pe()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Ji.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(Pe){return this.flags.compress=Pe,this}get volatile(){return this.flags.volatile=!0,this}timeout(Pe){return this.flags.timeout=Pe,this}onAny(Pe){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(Pe),this}prependAny(Pe){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(Pe),this}offAny(Pe){if(!this._anyListeners)return this;if(Pe){const ue=this._anyListeners;for(let Me=0;Me0&&Le.jitter<=1?Le.jitter:0,this.attempts=0}sn.prototype.duration=function(){var Le=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var Pe=Math.random(),ue=Math.floor(Pe*this.jitter*Le);Le=1&Math.floor(10*Pe)?Le+ue:Le-ue}return 0|Math.min(Le,this.max)},sn.prototype.reset=function(){this.attempts=0},sn.prototype.setMin=function(Le){this.ms=Le},sn.prototype.setMax=function(Le){this.max=Le},sn.prototype.setJitter=function(Le){this.jitter=Le};class ji extends re{constructor(Pe,ue){var Me;super(),this.nsps={},this.subs=[],Pe&&"object"==typeof Pe&&(ue=Pe,Pe=void 0),(ue=ue||{}).path=ue.path||"/socket.io",this.opts=ue,ye(this,ue),this.reconnection(!1!==ue.reconnection),this.reconnectionAttempts(ue.reconnectionAttempts||1/0),this.reconnectionDelay(ue.reconnectionDelay||1e3),this.reconnectionDelayMax(ue.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(Me=ue.randomizationFactor)&&void 0!==Me?Me:.5),this.backoff=new sn({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==ue.timeout?2e4:ue.timeout),this._readyState="closed",this.uri=Pe;const lt=ue.parser||V;this.encoder=new lt.Encoder,this.decoder=new lt.Decoder,this._autoConnect=!1!==ue.autoConnect,this._autoConnect&&this.open()}reconnection(Pe){return arguments.length?(this._reconnection=!!Pe,Pe||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(Pe){return void 0===Pe?this._reconnectionAttempts:(this._reconnectionAttempts=Pe,this)}reconnectionDelay(Pe){var ue;return void 0===Pe?this._reconnectionDelay:(this._reconnectionDelay=Pe,null===(ue=this.backoff)||void 0===ue||ue.setMin(Pe),this)}randomizationFactor(Pe){var ue;return void 0===Pe?this._randomizationFactor:(this._randomizationFactor=Pe,null===(ue=this.backoff)||void 0===ue||ue.setJitter(Pe),this)}reconnectionDelayMax(Pe){var ue;return void 0===Pe?this._reconnectionDelayMax:(this._reconnectionDelayMax=Pe,null===(ue=this.backoff)||void 0===ue||ue.setMax(Pe),this)}timeout(Pe){return arguments.length?(this._timeout=Pe,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(Pe){if(~this._readyState.indexOf("open"))return this;this.engine=new dt(this.uri,this.opts);const ue=this.engine,Me=this;this._readyState="opening",this.skipReconnect=!1;const lt=ui(ue,"open",function(){Me.onopen(),Pe&&Pe()}),xt=$t=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",$t),Pe?Pe($t):this.maybeReconnectOnOpen()},li=ui(ue,"error",xt);if(!1!==this._timeout){const Ei=this.setTimeoutFn(()=>{lt(),xt(new Error("timeout")),ue.close()},this._timeout);this.opts.autoUnref&&Ei.unref(),this.subs.push(()=>{this.clearTimeoutFn(Ei)})}return this.subs.push(lt),this.subs.push(li),this}connect(Pe){return this.open(Pe)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const Pe=this.engine;this.subs.push(ui(Pe,"ping",this.onping.bind(this)),ui(Pe,"data",this.ondata.bind(this)),ui(Pe,"error",this.onerror.bind(this)),ui(Pe,"close",this.onclose.bind(this)),ui(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(Pe){try{this.decoder.add(Pe)}catch(ue){this.onclose("parse error",ue)}}ondecoded(Pe){oe(()=>{this.emitReserved("packet",Pe)},this.setTimeoutFn)}onerror(Pe){this.emitReserved("error",Pe)}socket(Pe,ue){let Me=this.nsps[Pe];return Me?this._autoConnect&&!Me.active&&Me.connect():(Me=new xi(this,Pe,ue),this.nsps[Pe]=Me),Me}_destroy(Pe){const ue=Object.keys(this.nsps);for(const Me of ue)if(this.nsps[Me].active)return;this._close()}_packet(Pe){const ue=this.encoder.encode(Pe);for(let Me=0;MePe()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(Pe,ue){var Me;this.cleanup(),null===(Me=this.engine)||void 0===Me||Me.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",Pe,ue),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const Pe=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const ue=this.backoff.duration();this._reconnecting=!0;const Me=this.setTimeoutFn(()=>{Pe.skipReconnect||(this.emitReserved("reconnect_attempt",Pe.backoff.attempts),!Pe.skipReconnect&&Pe.open(lt=>{lt?(Pe._reconnecting=!1,Pe.reconnect(),this.emitReserved("reconnect_error",lt)):Pe.onreconnect()}))},ue);this.opts.autoUnref&&Me.unref(),this.subs.push(()=>{this.clearTimeoutFn(Me)})}}onreconnect(){const Pe=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",Pe)}}const Qn={};function wn(Le,Pe){"object"==typeof Le&&(Pe=Le,Le=void 0);const ue=function ct(Le,Pe="",ue){let Me=Le;ue=ue||typeof location<"u"&&location,null==Le&&(Le=ue.protocol+"//"+ue.host),"string"==typeof Le&&("/"===Le.charAt(0)&&(Le="/"===Le.charAt(1)?ue.protocol+Le:ue.host+Le),/^(https?|wss?):\/\//.test(Le)||(Le=typeof ue<"u"?ue.protocol+"//"+Le:"https://"+Le),Me=Rt(Le)),Me.port||(/^(http|ws)$/.test(Me.protocol)?Me.port="80":/^(http|ws)s$/.test(Me.protocol)&&(Me.port="443")),Me.path=Me.path||"/";const xt=-1!==Me.host.indexOf(":")?"["+Me.host+"]":Me.host;return Me.id=Me.protocol+"://"+xt+":"+Me.port+Pe,Me.href=Me.protocol+"://"+xt+(ue&&ue.port===Me.port?"":":"+Me.port),Me}(Le,(Pe=Pe||{}).path||"/socket.io"),Me=ue.source,lt=ue.id;let Ei;return Pe.forceNew||Pe["force new connection"]||!1===Pe.multiplex||Qn[lt]&&ue.path in Qn[lt].nsps?Ei=new ji(Me,Pe):(Qn[lt]||(Qn[lt]=new ji(Me,Pe)),Ei=Qn[lt]),ue.query&&!Pe.query&&(Pe.query=ue.queryKey),Ei.socket(ue.path,Pe)}Object.assign(wn,{Manager:ji,Socket:xi,io:wn,connect:wn});var gr=ce(553),xn=ce(5625),Hr=ce(4126),Xo=ce(1294),qr=ce(5266),Fn=ce(1019),Wn=ce(5619),ro=ce(8333),Or=ce(9409),ar=ce(1365),wo=ce(8763);let Jt=(()=>{class Le{projectService;translateService;authService;deviceAdapaterService;toastr;onVariableChanged=new K.vpe;onDeviceChanged=new K.vpe;onDeviceBrowse=new K.vpe;onDeviceNodeAttribute=new K.vpe;onDaqResult=new K.vpe;onDeviceProperty=new K.vpe;onHostInterfaces=new K.vpe;onAlarmsStatus=new K.vpe;onDeviceWebApiRequest=new K.vpe;onDeviceTagsRequest=new K.vpe;onScriptConsole=new K.vpe;onGoTo=new K.vpe;onOpen=new K.vpe;onSchedulerUpdated=new K.vpe;onSchedulerEventActive=new K.vpe;onSchedulerRemainingTime=new K.vpe;onGaugeEvent=new K.vpe;onServerConnection$=new Wn.X(!1);static separator="^~^";hmi;viewSignalGaugeMap=new ci;variables={};alarms={highhigh:0,high:0,low:0,info:0};socket;endPointConfig=qr.C.getURL();bridge=null;addFunctionType=Fn.cQ.getEnumKey(Hr.io,Hr.io.add);removeFunctionType=Fn.cQ.getEnumKey(Hr.io,Hr.io.remove);homeTagsSubscription=[];viewsTagsSubscription=[];getGaugeMapped;constructor(ue,Me,lt,xt,li){this.projectService=ue,this.translateService=Me,this.authService=lt,this.deviceAdapaterService=xt,this.toastr=li,this.initSocket(),this.projectService.onLoadHmi.subscribe(()=>{this.hmi=this.projectService.getHmi()}),this.authService.currentUser$.subscribe($t=>{this.initSocket($t?.token)})}setSignalValue(ue){this.onVariableChanged.emit(ue)}putSignalValue(ue,Me,lt=null){if(ue=this.deviceAdapaterService.resolveAdapterTagsId([ue])[0],this.variables[ue]||(this.variables[ue]=new Hr._w(ue,null,null)),this.variables[ue].value=this.getValueInFunction(this.variables[ue].value,Me,lt),this.socket){let xt=this.projectService.getDeviceFromTagId(ue);xt&&(this.variables[ue].source=xt.id),xt?.type===xn.Yi.internal?(this.variables[ue].timestamp=(new Date).getTime(),this.setSignalValue(this.variables[ue]),xt.tags[ue].value=Me):this.socket.emit(Ai.DEVICE_VALUES,{cmd:"set",var:this.variables[ue],fnc:[lt,Me]})}else this.bridge?this.bridge.setDeviceValue(this.variables[ue],{fnc:[lt,Me]}):gr.N.serverEnabled||this.setSignalValue(this.variables[ue])}getAllSignals(){return this.variables}initSignalValues(ue){for(const[Me,lt]of Object.entries(ue))Fn.cQ.isNullOrUndefined(this.variables[Me])||(this.variables[Me].value=this.variables[lt]?.value||null)}getValueInFunction(ue,Me,lt){try{if(!lt)return Me;if(ue||(ue=0),lt===this.addFunctionType)return parseFloat(ue)+parseFloat(Me);if(lt===this.removeFunctionType)return parseFloat(ue)-parseFloat(Me)}catch(xt){console.error(xt)}return Me}initClient(ue){return!!ue&&(this.bridge=ue,!!this.bridge&&(this.bridge.onDeviceValues=Me=>this.onDeviceValues(Me),this.askDeviceValues(),!0))}onDeviceValues(ue){for(let Me=0;Me{this.onServerConnection$.next(!0),this.tagsSubscribe()}),this.socket.on("disconnect",Me=>{this.onServerConnection$.next(!1),console.log("socket disconnected: ",Me)}),this.socket.io.on("reconnect_attempt",()=>{console.log("socket.io try to reconnect...")}),this.socket.on(Ai.DEVICE_STATUS,Me=>{if(this.onDeviceChanged.emit(Me),"connect-error"===Me.status&&this.hmi?.layout?.show_connection_error){let lt=Me.id,xt=this.projectService.getDeviceFromId(Me.id);xt&&(lt=xt.name);let li="";this.translateService.get("msg.device-connection-error",{value:lt}).subscribe($t=>{li=$t}),this.toastr.error(li,"",{timeOut:3e3,closeButton:!0})}}),this.socket.on(Ai.DEVICE_PROPERTY,Me=>{this.onDeviceProperty.emit(Me)}),this.socket.on(Ai.DEVICE_VALUES,Me=>{const lt=(xt,li,$t)=>{Fn.cQ.isNullOrUndefined(this.variables[xt])&&(this.variables[xt]=new Hr._w(xt,null,null)),this.variables[xt].value=li,this.variables[xt].timestamp=$t,this.setSignalValue(this.variables[xt])};for(let xt=0;xt{lt(Gi,$t,Ei)})}}),this.socket.on(Ai.DEVICE_BROWSE,Me=>{this.onDeviceBrowse.emit(Me)}),this.socket.on(Ai.SCHEDULER_UPDATED,Me=>{this.onSchedulerUpdated.emit(Me)}),this.socket.on(Ai.SCHEDULER_ACTIVE,Me=>{this.onSchedulerEventActive.emit(Me)}),this.socket.on(Ai.SCHEDULER_REMAINING,Me=>{this.onSchedulerRemainingTime.emit(Me)}),this.socket.on(Ai.DEVICE_NODE_ATTRIBUTE,Me=>{this.onDeviceNodeAttribute.emit(Me)}),this.socket.on(Ai.DAQ_RESULT,Me=>{this.onDaqResult.emit(Me)}),this.socket.on(Ai.ALARMS_STATUS,Me=>{this.onAlarmsStatus.emit(Me)}),this.socket.on(Ai.HOST_INTERFACES,Me=>{this.onHostInterfaces.emit(Me)}),this.socket.on(Ai.DEVICE_WEBAPI_REQUEST,Me=>{this.onDeviceWebApiRequest.emit(Me)}),this.socket.on(Ai.DEVICE_TAGS_REQUEST,Me=>{this.onDeviceTagsRequest.emit(Me)}),this.socket.on(Ai.SCRIPT_CONSOLE,Me=>{this.onScriptConsole.emit(Me)}),this.socket.on(Ai.SCRIPT_COMMAND,Me=>{this.onScriptCommand(Me)}),this.socket.on(Ai.ALIVE,Me=>{this.onServerConnection$.next(!0)}),this.askDeviceValues(),this.askAlarmsStatus())}askDeviceStatus(){this.socket&&this.socket.emit(Ai.DEVICE_STATUS,"get")}askDeviceProperty(ue,Me){this.socket&&this.socket.emit(Ai.DEVICE_PROPERTY,{endpoint:ue,type:Me})}askWebApiProperty(ue){this.socket&&this.socket.emit(Ai.DEVICE_WEBAPI_REQUEST,{property:ue})}askDeviceTags(ue){this.socket&&this.socket.emit(Ai.DEVICE_TAGS_REQUEST,{deviceId:ue})}askHostInterface(){this.socket&&this.socket.emit(Ai.HOST_INTERFACES,"get")}askDeviceValues(){this.socket?this.socket.emit(Ai.DEVICE_VALUES,{cmd:"get"}):this.bridge&&this.bridge.getDeviceValues(null)}askAlarmsStatus(){this.socket&&this.socket.emit(Ai.ALARMS_STATUS,"get")}emitMappedSignalsGauge(ue){let Me=this.viewSignalGaugeMap.getSignalIds(ue);for(let lt=0;lt{let li=this.viewSignalGaugeMap.signalsGauges(ue,xt);li&&(lt[xt]=li.map($t=>$t.id))}),this.viewSignalGaugeMap.remove(ue),lt}getMappedSignalsGauges(ue,Me){return Object.values(this.viewSignalGaugeMap.signalsGauges(ue,Me))}getMappedVariables(ue){let Me=[];return this.viewSignalGaugeMap.getAllSignalIds().forEach(lt=>{if(this.variables[lt]){let xt=this.variables[lt];if(ue){xt=Object.assign({},this.variables[lt]);let li=this.projectService.getDeviceFromTagId(xt.id);li&&(xt.source=li.name,li.tags[xt.id]&&(xt.name=this.getTagLabel(li.tags[xt.id])))}Me.push(xt)}}),Me}getMappedVariable(ue,Me){if(!this.variables[ue])return null;if(this.variables[ue]){let lt=this.variables[ue];if(Me){lt=Object.assign({},this.variables[ue]);let xt=this.projectService.getDeviceFromTagId(lt.id);xt&&(lt.source=xt.name,xt.tags[lt.id]&&(lt.name=this.getTagLabel(xt.tags[lt.id])))}return lt}}getTagLabel(ue){return ue.label?ue.label:ue.name}getChart(ue){return this.projectService.getChart(ue)}getChartSignal(ue){let Me=this.projectService.getChart(ue);if(Me){let lt=[];return Me.lines.forEach(xt=>{lt.push(xt.id)}),lt}}getGraph(ue){return this.projectService.getGraph(ue)}getGraphSignal(ue){let Me=this.projectService.getGraph(ue);if(Me){let lt=[];return Me.sources.forEach(xt=>{lt.push(xt.id)}),lt}}getAlarmsValues(ue){return this.projectService.getAlarmsValues(ue)}getAlarmsHistory(ue){return this.projectService.getAlarmsHistory(ue)}setAlarmAck(ue){return this.projectService.setAlarmAck(ue)}getDaqValues(ue){return this.projectService.getDaqValues(ue)}askSchedulerData(ue){return this.projectService.getSchedulerData(ue)}setSchedulerData(ue,Me){return this.projectService.setSchedulerData(ue,Me)}deleteSchedulerData(ue){return this.projectService.deleteSchedulerData(ue)}static toVariableId(ue,Me){return ue+Le.separator+Me}onScriptCommand(ue){if(ue.params&&ue.params.length)switch(ue.command){case Vt.SETVIEW:this.onGoTo.emit({viewName:ue.params[0],force:ue.params[1]});break;case Vt.OPENCARD:this.onOpen.emit({viewName:ue.params[0],options:ue.params[1]})}}static \u0275fac=function(Me){return new(Me||Le)(K.LFG(Xo.Y4),K.LFG(ar.sK),K.LFG(ro.e),K.LFG(Or.J),K.LFG(wo._W))};static \u0275prov=K.Yz7({token:Le,factory:Le.\u0275fac})}return Le})();class ci{views={};add(Pe,ue,Me){return this.views[Pe]||(this.views[Pe]={}),this.views[Pe][ue]||(this.views[Pe][ue]=[]),this.views[Pe][ue].push(Me),!0}remove(Pe){delete this.views[Pe]}signalsGauges(Pe,ue){return this.views[Pe][ue]}getSignalIds(Pe){let ue=[];return this.views[Pe]&&(ue=Object.keys(this.views[Pe])),ue}getAllSignalIds(){let Pe=[];return Object.values(this.views).forEach(ue=>{Object.keys(ue).forEach(Me=>{-1===Pe.indexOf(Me)&&Pe.push(Me)})}),Pe}}var Ai=function(Le){return Le.DEVICE_STATUS="device-status",Le.DEVICE_PROPERTY="device-property",Le.DEVICE_VALUES="device-values",Le.DEVICE_BROWSE="device-browse",Le.DEVICE_NODE_ATTRIBUTE="device-node-attribute",Le.DEVICE_WEBAPI_REQUEST="device-webapi-request",Le.DEVICE_TAGS_REQUEST="device-tags-request",Le.DEVICE_TAGS_SUBSCRIBE="device-tags-subscribe",Le.DEVICE_TAGS_UNSUBSCRIBE="device-tags-unsubscribe",Le.DEVICE_ENABLE="device-enable",Le.DAQ_QUERY="daq-query",Le.DAQ_RESULT="daq-result",Le.DAQ_ERROR="daq-error",Le.ALARMS_STATUS="alarms-status",Le.HOST_INTERFACES="host-interfaces",Le.SCRIPT_CONSOLE="script-console",Le.SCRIPT_COMMAND="script-command",Le.ALIVE="heartbeat",Le.SCHEDULER_UPDATED="scheduler:updated",Le.SCHEDULER_ACTIVE="scheduler:event-active",Le.SCHEDULER_REMAINING="scheduler:remaining-time",Le}(Ai||{});const Vt={SETVIEW:"SETVIEW",OPENCARD:"OPENCARD"}},1294:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Y4:()=>Z,JV:()=>G});var V=ce(5861),K=ce(5879),T=ce(8645),e=ce(6973),l=ce(305);function v(W,te){const P="object"==typeof te;return new Promise((J,j)=>{const re=new l.Hp({next:he=>{J(he),re.unsubscribe()},error:j,complete:()=>{P?J(te.defaultValue):j(new e.K)}});W.subscribe(re)})}var h=ce(5592),f=ce(553),_=ce(7033),b=ce(4126),y=ce(8906),M=ce(5625),D=ce(9032),x=ce(8331),k=ce(7714),Q=ce(9982),I=ce(1019),d=ce(217),S=ce(7579),R=ce(7126),z=ce(1365),q=ce(8763);let Z=(()=>{class W{resewbApiService;resDemoService;resClientService;appService;translateService;toastr;onSaveCurrent=new K.vpe;onLoadHmi=new K.vpe;onLoadClientAccess=new T.x;projectData=new _.Hy;AppId="";serverSettings;storage;projectOld="";ready=!1;static MainViewName="MainView";constructor(P,J,j,re,he,oe){this.resewbApiService=P,this.resDemoService=J,this.resClientService=j,this.appService=re,this.translateService=he,this.toastr=oe,this.storage=P,!f.N.serverEnabled||re.isDemoApp?this.storage=J:re.isClientApp&&(this.storage=j),this.storage.getAppId=()=>this.getAppId(),this.storage.onRefreshProject=()=>this.onRefreshProject(),this.storage.checkServer().subscribe(Ce=>{(!f.N.serverEnabled||Ce)&&(this.serverSettings=Ce,this.load())},Ce=>{console.error("project.service err: "+Ce),this.load(),this.notifyServerError()})}getAppId(){return this.AppId}init(P){this.storage.init(P),this.reload()}onRefreshProject(){return this.storage.getStorageProject().subscribe(P=>{if(P)this.projectData=P,this.projectOld=JSON.parse(JSON.stringify(this.projectData)),this.ready=!0,this.notifyToLoadHmi();else{let J="";this.translateService.get("msg.get-project-void").subscribe(j=>{J=j}),console.warn(J)}},P=>{console.error("FUXA onRefreshProject error",P)}),!0}load(){this.storage.getStorageProject().subscribe(P=>{!P&&this.appService.isDemoApp?(console.log("create demo"),this.setNewProject()):this.appService.isClientApp?(!P&&this.storage.isReady?this.setNewProject():this.projectData=P,this.ready=!0,this.notifyToLoadHmi()):(this.projectData=P,this.projectOld=JSON.parse(JSON.stringify(this.projectData)),this.ready=!0,this.notifyToLoadHmi())},P=>{console.error("FUXA load error",P)})}save(P=!1){const J=new T.x;return this.storage.setServerProject(this.projectData).subscribe(j=>{this.load(),P||this.notifySuccessMessage("msg.project-save-success"),J.next(!0)},j=>{console.error(j);var re="";this.translateService.get("msg.project-save-error").subscribe(he=>{re=he}),this.toastr.error(re,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0}),J.next(!1)}),J}saveAs(){let P="fuxa-project.json";this.getProjectName()&&(P=`${this.getProjectName()}.json`);let J=JSON.stringify(this.convertToSave(this.getProject())),j=new Blob([J],{type:"text/plain;charset=utf-8"});d.saveAs(j,P)}exportDevices(P){let J="",re=`${this.projectData.name||"fuxa"}-devices.${P}`;const he=Object.values(this.convertToSave(this.getDevices()));"csv"===P?J=M.ef.devicesToCsv(he):(this.getProjectName()&&(re=`${this.getProjectName()}-devices.json`),J=JSON.stringify(he,null,2));let oe=new Blob([J],{type:"text/plain;charset=utf-8"});d.saveAs(oe,re)}importDevices(P){P?P.forEach(J=>{J.id&&J.name&&this.setDevice(J,null,null)}):this.notifyError("msg.import-devices-error")}reload(){this.load()}convertToSave(P){let J=JSON.parse(JSON.stringify(P));if(this.appService.isClientApp){let j=D.k.sanitizeProject(P);J=JSON.parse(JSON.stringify(j))}for(let j in J.devices)for(let re in J.devices[j].tags)delete J.devices[j].tags[re].value;return J}getProjectName(){return this.projectData?this.projectData.name:null}setProjectName(P){this.projectData.name=P,this.save()}setDevice(P,J,j){this.projectData.devices&&(this.projectData.devices[P.id]=P,this.storage.setDeviceSecurity(P.id,j).subscribe(()=>{this.storage.setServerProjectData(_.fH.SetDevice,P,this.projectData).subscribe(re=>{J&&J.id!==P.id&&this.removeDevice(J)},re=>{console.error(re),this.notifySaveError(re)})},re=>{console.error(re),this.notifySaveError(re)}))}setDeviceTags(P){this.projectData.devices[P.id]=P,this.storage.setServerProjectData(_.fH.SetDevice,P,this.projectData).subscribe(J=>{},J=>{console.error(J),this.notifySaveError(J)})}removeDevice(P){delete this.projectData.devices[P.id],this.storage.setServerProjectData(_.fH.DelDevice,P,this.projectData).subscribe(J=>{},J=>{console.error(J),this.notifySaveError(J)}),this.storage.setDeviceSecurity(P.id,"").subscribe(()=>{},J=>{console.error(J),this.notifySaveError(J)})}getDeviceSecurity(P){return this.storage.getDeviceSecurity(P)}setView(P,J=!1){const j=this.projectData.hmi.views.find(re=>re.id===P.id);j?Object.assign(j,P):this.projectData.hmi.views.some(re=>re.name===P.name)||this.projectData.hmi.views.push(P),this.storage.setServerProjectData(_.fH.SetView,P,this.projectData).subscribe(re=>{J&&this.notifySuccessMessage("msg.project-save-success")},re=>{console.error(re),this.notifySaveError(re)})}setViewAsync(P){var J=this;return(0,V.Z)(function*(j,re=!1){const he=J.projectData.hmi.views.find(oe=>oe.id===j.id);he?Object.assign(he,j):J.projectData.hmi.views.some(oe=>oe.name===j.name)||J.projectData.hmi.views.push(j),yield v(J.storage.setServerProjectData(_.fH.SetView,j,J.projectData)),re&&J.notifySuccessMessage("msg.project-save-success")}).apply(this,arguments)}getViews(){return this.projectData?this.projectData.hmi.views:[]}getViewId(P){let J=this.getViews();for(var j=0;j{},J=>{console.error(J),this.notifySaveError(J)})}getHmi(){return this.ready&&this.projectData?this.projectData.hmi:null}setLayout(P){this.projectData.hmi.layout=P,this.saveLayout()}setLayoutTheme(P){this.projectData.hmi.layout.theme=P,this.saveLayout()}getLayoutTheme(){return this.projectData.hmi.layout?this.projectData.hmi.layout.theme:null}saveLayout(){this.storage.setServerProjectData(_.fH.HmiLayout,this.projectData.hmi.layout,this.projectData).subscribe(P=>{},P=>{console.error(P),this.notifySaveError(P)})}getCharts(){return this.projectData?this.projectData.charts?this.projectData.charts:[]:null}getChart(P){for(let J=0;J{},J=>{console.error(J),this.notifySaveError(J)})}getGraphs(){return this.projectData?this.projectData.graphs?this.projectData.graphs:[]:null}getGraph(P){if(this.projectData.graphs)for(let J=0;J{},J=>{console.error(J),this.notifySaveError(J)})}getAlarms(){return this.projectData?this.projectData.alarms?this.projectData.alarms:[]:null}setAlarm(P,J){return new h.y(j=>{this.projectData.alarms||(this.projectData.alarms=[]);let re=this.projectData.alarms.find(he=>he.name===P.name);re?(re.property=P.property,re.highhigh=P.highhigh,re.high=P.high,re.low=P.low,re.info=P.info,re.actions=P.actions,re.value=P.value):this.projectData.alarms.push(P),this.storage.setServerProjectData(_.fH.SetAlarm,P,this.projectData).subscribe(he=>{J&&J.name&&J.name!==P.name?this.removeAlarm(J).subscribe(oe=>{j.next(null)}):j.next(null)},he=>{console.error(he),this.notifySaveError(he),j.error(he)})})}removeAlarm(P){return new h.y(J=>{if(this.projectData.alarms)for(let j=0;j{J.next(null)},j=>{console.error(j),this.notifySaveError(j),J.error(j)})})}getAlarmsValues(P){return this.storage.getAlarmsValues(P)}getAlarmsHistory(P){return this.storage.getAlarmsHistory(P)}setAlarmAck(P){return this.storage.setAlarmAck(P)}getNotifications(){return this.projectData?this.projectData.notifications?this.projectData.notifications:[]:null}setNotification(P,J){return new h.y(j=>{this.projectData.notifications||(this.projectData.notifications=[]);let re=this.projectData.notifications.find(he=>he.id===P.id);re?(re.name=P.name,re.delay=P.delay,re.interval=P.interval,re.options=P.options,re.receiver=P.receiver,re.enabled=P.enabled,re.subscriptions=P.subscriptions,re.text=P.text,re.type=P.type):this.projectData.notifications.push(P),this.storage.setServerProjectData(_.fH.SetNotification,P,this.projectData).subscribe(he=>{J?.id&&J.id!==P.id?this.removeNotification(J).subscribe(oe=>{j.next(null)}):j.next(null)},he=>{console.error(he),this.notifySaveError(he),j.error(he)})})}removeNotification(P){return new h.y(J=>{if(this.projectData.notifications)for(let j=0;j{J.next(null)},j=>{console.error(j),this.notifySaveError(j),J.error(j)})})}getMapsLocations(P){return this.projectData?.mapsLocations?P?this.projectData.mapsLocations.filter(J=>P.includes(J.id)):this.projectData.mapsLocations:[]}setMapsLocation(P,J){return new h.y(j=>{this.projectData.mapsLocations||(this.projectData.mapsLocations=[]);let re=this.projectData.mapsLocations.find(he=>he.id===P.id);re?Object.assign(re,P):this.projectData.mapsLocations.push(P),this.storage.setServerProjectData(_.fH.SetMapsLocation,P,this.projectData).subscribe(he=>{J?.id&&P.id!==J.id?this.removeMapsLocation(J).subscribe(oe=>{j.next(null)}):j.next(null)},he=>{console.error(he),this.notifySaveError(he),j.error(he)})})}removeMapsLocation(P){return new h.y(J=>{for(let j=0;j{J.next(null)},j=>{console.error(j),this.notifySaveError(j),J.error(j)})})}getScripts(){return this.projectData?this.projectData.scripts?this.projectData.scripts:[]:null}setScript(P,J){return new h.y(j=>{this.projectData.scripts||(this.projectData.scripts=[]);let re=this.projectData.scripts.find(he=>he.id===P.id);re?(re.name=P.name,re.code=P.code,re.parameters=P.parameters,re.mode=P.mode,re.sync=P.sync):this.projectData.scripts.push(P),this.storage.setServerProjectData(_.fH.SetScript,P,this.projectData).subscribe(he=>{J&&J.id&&J.id!==P.id?this.removeScript(J).subscribe(oe=>{j.next(null)}):j.next(null)},he=>{console.error(he),this.notifySaveError(he),j.error(he)})})}removeScript(P){return new h.y(J=>{if(this.projectData.scripts)for(let j=0;j{J.next(null)},j=>{console.error(j),this.notifySaveError(j),J.error(j)})})}getReports(){return this.projectData?this.projectData.reports?this.projectData.reports:[]:null}setReport(P,J){return new h.y(j=>{this.projectData.reports||(this.projectData.reports=[]);let re=this.projectData.reports.find(he=>he.id===P.id);re?I.cQ.assign(re,P):this.projectData.reports.push(P),this.storage.setServerProjectData(_.fH.SetReport,P,this.projectData).subscribe(he=>{J&&J.id&&J.id!==P.id?this.removeReport(J).subscribe(oe=>{j.next(null)}):j.next(null)},he=>{console.error(he),this.notifySaveError(he),j.error(he)})})}removeReport(P){return new h.y(J=>{if(this.projectData.reports)for(let j=0;j{J.next(null)},j=>{console.error(j),this.notifySaveError(j),J.error(j)})})}getTexts(){return this.projectData?this.projectData.texts?this.projectData.texts:[]:null}setText(P){this.projectData.texts||(this.projectData.texts=[]);let J=this.projectData.texts.find(j=>j.id===P.id);J?I.cQ.assign(J,P):(P.id??=I.cQ.getShortGUID("w_"),this.projectData.texts.push(P)),this.storage.setServerProjectData(_.fH.SetText,P,this.projectData).subscribe(j=>{},j=>{console.error(j),this.notifySaveError(j)})}removeText(P){if(this.projectData.texts)for(let J=0;J{},J=>{console.error(J),this.notifySaveError(J)})}getLanguages(){return this.projectData?this.projectData.languages?this.projectData.languages:new y.lI:null}setLanguages(P){this.projectData.languages=P,this.storage.setServerProjectData(_.fH.Languages,P,this.projectData).subscribe(J=>{},J=>{console.error(J),this.notifySaveError(J)})}getClientAccess(){return this.projectData?this.projectData.clientAccess?this.projectData.clientAccess:new S.R:null}setClientAccess(P){this.projectData.clientAccess=P,this.storage.setServerProjectData(_.fH.ClientAccess,P,this.projectData).subscribe(J=>{this.onLoadClientAccess.next()},J=>{console.error(J),this.notifySaveError(J)})}notifyToLoadHmi(){this.onLoadHmi.emit(!0)}notifySaveError(P){console.error("FUXA notifySaveError error",P);let J=this.translateService.instant("msg.project-save-error");401===P.status?J=this.translateService.instant("msg.project-save-unauthorized"):413===P.status&&(J=P.error?.message||P.message||P.statusText),J&&this.toastr.error(J,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}notifyServerError(){console.error("FUXA notifyServerError error");let P=null;this.translateService.get("msg.server-connection-error").subscribe(J=>{P=J}),P&&this.toastr.error(P,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}notifyError(P){const J=this.translateService.instant(P);P&&(console.error(`FUXA Error: ${J}`),this.toastr.error(J,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0}))}uploadFile(P){return this.storage.uploadFile(P)}getDaqValues(P){return this.storage.getDaqValues(P)}getSchedulerData(P){return this.storage.getSchedulerData(P)}setSchedulerData(P,J){return this.storage.setSchedulerData(P,J)}deleteSchedulerData(P){return this.storage.deleteSchedulerData(P)}getTagsValues(P,J){var j=this;return(0,V.Z)(function*(){return yield v(j.storage.getTagsValues(P,J))})()}runSysFunctionSync(P,J){var j=this;return(0,V.Z)(function*(){return yield v(j.storage.runSysFunction(P,J))})()}setProject(P,J=!1){this.verifyProject(P)&&(this.projectData=P,this.appService.isClientApp&&(this.projectData=D.k.defileProject(P)),this.save(J))}verifyProject(P){let J=!0;return(I.cQ.isNullOrUndefined(P.version)||I.cQ.isNullOrUndefined(P.hmi)||I.cQ.isNullOrUndefined(P.devices))&&(J=!1),J||this.notifyError("msg.project-format-error"),J}verifyView(P){let J=!0;return(I.cQ.isNullOrUndefined(P.svgcontent)||I.cQ.isNullOrUndefined(P.id)||I.cQ.isNullOrUndefined(P.profile)||I.cQ.isNullOrUndefined(P.type)||I.cQ.isNullOrUndefined(P.items))&&(J=!1),J||this.notifyError("msg.view-format-error"),J}cleanView(P){if(!P.svgcontent)return!1;const J=new Set,j=/id=(?:"|')([^"']+)(?:"|')/g;let re;for(;null!==(re=j.exec(P.svgcontent));)J.add(re[1]);let he=!1;for(const oe of Object.keys(P.items))J.has(oe)||(console.warn("GUI item deleted: ",oe),delete P.items[oe],he=!0);return he}setNewProject(){this.projectData=new _.Hy;let P=new M.AS(I.cQ.getGUID(M.pP));P.name=M.Bj.name,P.id=M.Bj.id,P.type=M.Yi.FuxaServer,P.enabled=!0,P.property=new M.mT,this.appService.isClientApp?delete this.projectData.server:this.projectData.server=P;let J=this.getNewView(W.MainViewName);this.projectData.hmi.views.push(J),this.save(!0)}getNewView(P,J){let j=new b.G7(I.cQ.getShortGUID("v_"),J||b.bW.svg);return j.name=P,j.profile.bkcolor="#ffffffff",J===b.bW.cards&&(j.profile.bkcolor="rgba(67, 67, 67, 1)"),j}getProject(){return this.projectData}checkServer(){return this.storage.checkServer()}getServer(){return this.projectData?this.projectData.server:null}getServerDevices(){return Object.values(this.getDevices()).filter(P=>P.type!==M.Yi.internal)}getDevices(){let P={};if(this.projectData&&(P=this.projectData.devices,this.projectData.server&&!P[this.projectData.server?.id])){let J=JSON.parse(JSON.stringify(this.projectData.server));J.enabled=!0,J.tags={},P[J.id]=J}return P}getDeviceList(){return Object.values(this.getDevices())}getDeviceFromId(P){let J;return Object.keys(this.projectData.devices).forEach(j=>{this.projectData.devices[j].id===P&&(J=this.projectData.devices[j])}),J}getDeviceFromTagId(P){let J=Object.values(this.projectData.devices);for(let j=0;joe.name===P);if(he)return he.id}return null}checkSystemTags(){let P=Object.values(this.projectData.devices).filter(j=>j.id!==M.Bj.id),J=this.projectData.devices[M.Bj.id];if(J){let j=!1;P.forEach(re=>{if(!Object.values(J.tags).find(he=>he.sysType===M.fm.deviceConnectionStatus&&he.memaddress===re.id)){let he=new M.Vp(I.cQ.getGUID(M.$u));he.name=re.name+" Connection Status",he.label=re.name+" Connection Status",he.type=M.$2.number,he.memaddress=re.id,he.sysType=M.fm.deviceConnectionStatus,he.init=he.value="",J.tags[he.id]=he,j=!0}}),j&&this.setDeviceTags(J)}return this.getDevices()}saveProject(P=G.Save){this.onSaveCurrent.emit(P)}isSecurityEnabled(){return!(!f.N.serverEnabled||this.serverSettings&&!this.serverSettings.secureEnabled)}_deepEquals(P,J){if(JSON.stringify(P)===JSON.stringify(J))return!0;try{for(const j in P)if(P.hasOwnProperty(j)){if(!J.hasOwnProperty(j))return!1;if("svgcontent"===j){const re=new DOMParser,he=re.parseFromString(P[j],"text/xml"),oe=re.parseFromString(J[j],"text/xml");let Ce=this._xml2json(he),me=this._xml2json(oe);return this._deepEquals(Ce,me)}if(P[j]!==J[j]&&!this._deepEquals(P[j],J[j]))return!1}for(const j in J)if(J.hasOwnProperty(j)&&!P.hasOwnProperty(j))return!1}catch(j){return console.error(j),!1}return!0}_xml2json(P){var J={};if(1==P.nodeType){if(P.attributes.length>0){J["@attributes"]={};for(var j=0;j"u")J[Ce]=this._xml2json(oe);else{if(typeof J[Ce].push>"u"){var me=J[Ce];J[Ce]=[],J[Ce].push(me)}J[Ce].push(this._xml2json(oe))}}return J}notifySuccessMessage(P){var J="";this.translateService.get(P).subscribe(j=>{J=j}),this.toastr.success(J)}static \u0275fac=function(J){return new(J||W)(K.LFG(k.a),K.LFG(R.v),K.LFG(x.V),K.LFG(Q.z),K.LFG(z.sK),K.LFG(q._W))};static \u0275prov=K.Yz7({token:W,factory:W.\u0275fac})}return W})();var G=function(W){return W[W.Current=0]="Current",W[W.Save=1]="Save",W[W.SaveAs=2]="SaveAs",W}(G||{})},8331:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{V:()=>v});var V=ce(5592),K=ce(7033),T=ce(9032),e=ce(5879),l=ce(9862);let v=(()=>{class h{http;endPointConfig="";bridge=null;id=null;get isReady(){return!!this.bridge}onRefreshProject;constructor(_){this.http=_}init(_){return this.id=this.getAppId(),!!this.bindBridge(_)}bindBridge(_){return!!_&&(this.bridge=_,!!this.bridge&&(this.bridge.onRefreshProject=this.onRefreshProject,!0))}getDemoProject(){return this.http.get("./assets/project.demo.fuxap",{})}getStorageProject(){return new V.y(_=>{if(this.bridge){let b=this.bridge.loadProject(),y=T.k.defileProject(b);_.next(y)}else{let b=localStorage.getItem(this.getAppId());_.next(b?JSON.parse(b):null)}})}setServerProject(_){return new V.y(b=>{if(_)if(this.bridge){let y=T.k.sanitizeProject(_);this.bridge.saveProject(y,!0)?b.next(null):b.error()}else this.saveInLocalStorage(_),b.next(null);else b.next(null)})}setServerProjectData(_,b,y){return new V.y(M=>{if(y)if(this.bridge){let D=T.k.sanitizeProject(y);this.bridge.saveProject(D,!1)?M.next(null):M.error()}else this.saveInLocalStorage(y),M.next(null);else M.next(null)})}uploadFile(_,b){return new V.y(y=>{y.error("Not supported!")})}isDataCmdForDevice(_){return _===K.fH.DelDevice||_===K.fH.SetDevice}saveInLocalStorage(_){this.getAppId()&&localStorage.setItem(this.getAppId(),JSON.stringify(_))}getDeviceSecurity(_){return new V.y(b=>{b.error("Not supported!")})}setDeviceSecurity(_,b){return new V.y(y=>{y.next("Not supported!")})}getAlarmsValues(_){return new V.y(b=>{b.error("Not supported!")})}getAlarmsHistory(_){return new V.y(b=>{b.error("Not supported!")})}setAlarmAck(_){return new V.y(b=>{b.error("Not supported!")})}checkServer(){return new V.y(_=>{_.next(null)})}getAppId(){return T.k.prjresource}getDaqValues(_){return new V.y(b=>{b.error("Not supported!")})}getSchedulerData(_){return new V.y(b=>{b.error("Not supported!")})}setSchedulerData(_,b){return new V.y(y=>{y.error("Not supported in client mode!")})}deleteSchedulerData(_){return new V.y(b=>{b.error("Not supported in client mode!")})}getTagsValues(_,b){return new V.y(y=>{y.error("Not supported!")})}runSysFunction(_,b){return new V.y(y=>{y.error("Not supported!")})}heartbeat(_){return new V.y(b=>{b.error("Not supported!")})}downloadFile(_,b){return new V.y(y=>{y.error("Not supported!")})}getReportsDir(_){return new V.y(b=>{b.error("Not supported!")})}getReportsQuery(_){return new V.y(b=>{b.error("Not supported!")})}getRoles(){return new V.y(_=>{_.error("Not supported!")})}setRoles(_){return new V.y(b=>{b.error("Not supported!")})}removeRoles(_){return new V.y(b=>{b.error("Not supported!")})}buildReport(_){return new V.y(b=>{b.error("Not supported!")})}removeReportFile(_){return new V.y(b=>{b.error("Not supported!")})}static \u0275fac=function(b){return new(b||h)(e.LFG(l.eN))};static \u0275prov=e.Yz7({token:h,factory:h.\u0275fac})}return h})()},7126:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{v:()=>v});var V=ce(5592),K=ce(2096),T=ce(9032),e=ce(5879),l=ce(9862);let v=(()=>{class h{http;endPointConfig="";onRefreshProject;constructor(_){this.http=_}init(){return!0}getDemoProject(){return this.http.get("./assets/project.demo.fuxap",{})}getStorageProject(){return new V.y(_=>{let b=localStorage.getItem(this.getAppId());b?_.next(JSON.parse(b)):this.getDemoProject().subscribe(y=>{_.next(y)},y=>{_.error(y)})})}setServerProject(_){return new V.y(b=>{localStorage.setItem(this.getAppId(),JSON.stringify(_)),b.next(null)})}setServerProjectData(_,b){return new V.y(y=>{y.next("Not supported!")})}uploadFile(_,b){return new V.y(y=>{y.error("Not supported!")})}getDeviceSecurity(_){return new V.y(b=>{b.error("Not supported!")})}setDeviceSecurity(_,b){return new V.y(y=>{y.next("Not supported!")})}getAlarmsValues(_){return new V.y(b=>{b.error("Not supported!")})}getAlarmsHistory(_){return new V.y(b=>{b.error("Not supported!")})}setAlarmAck(_){return new V.y(b=>{b.error("Not supported!")})}checkServer(){return new V.y(_=>{_.next(null)})}getAppId(){return T.k.prjresource}getDaqValues(_){return new V.y(b=>{b.error("Not supported!")})}getSchedulerData(_){return new V.y(b=>{b.error("Not supported!")})}setSchedulerData(_,b){return(0,K.of)(b)}deleteSchedulerData(_){return(0,K.of)({success:!0})}getTagsValues(_,b){return new V.y(y=>{y.error("Not supported!")})}runSysFunction(_,b){return new V.y(y=>{y.error("Not supported!")})}heartbeat(_){return new V.y(b=>{b.error("Not supported!")})}downloadFile(_,b){return new V.y(y=>{y.error("Not supported!")})}getReportsDir(_){return new V.y(b=>{b.error("Not supported!")})}getReportsQuery(_){return new V.y(b=>{b.error("Not supported!")})}getRoles(){return new V.y(_=>{_.error("Not supported!")})}setRoles(_){return new V.y(b=>{b.error("Not supported!")})}removeRoles(_){return new V.y(b=>{b.error("Not supported!")})}buildReport(_){return new V.y(b=>{b.error("Not supported!")})}removeReportFile(_){return new V.y(b=>{b.error("Not supported!")})}static \u0275fac=function(b){return new(b||h)(e.LFG(l.eN))};static \u0275prov=e.Yz7({token:h,factory:h.\u0275fac})}return h})()},9032:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{k:()=>K});var V=ce(5879);let K=(()=>{class T{static prjresource="prj-data";static defileProject(l){if(!l)return l;let v=JSON.parse(JSON.stringify(l)),h={};for(let f=0;f{"use strict";ce.d(Pt,{a:()=>y});var V=ce(9862),K=ce(4664),T=ce(2096),e=ce(7398),l=ce(5592),v=ce(5266),h=ce(9032),f=ce(5879),_=ce(1365),b=ce(8763);let y=(()=>{class M{http;translateService;toastr;endPointConfig=v.C.getURL();onRefreshProject;constructor(x,k,Q){this.http=x,this.translateService=k,this.toastr=Q}init(){return!0}getDemoProject(){return this.http.get("./assets/project.demo.fuxap",{})}getStorageProject(){return this.http.get(this.endPointConfig+"/api/project",{})}setServerProject(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/project",x,{headers:k})}setServerProjectData(x,k){let Q=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/projectData",{cmd:x,data:k},{headers:Q})}uploadFile(x,k){let Q=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/upload",{resource:x,destination:k},{headers:Q})}getDeviceSecurity(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.get(this.endPointConfig+"/api/device",{headers:k,params:{query:"security",name:x}})}setDeviceSecurity(x,k){let Q=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/device",{headers:Q,params:{query:"security",name:x,value:k}})}getAlarmsValues(x){let k=new V.WM({"Content-Type":"application/json"}),Q=x?{filter:JSON.stringify(x)}:null;return this.http.get(this.endPointConfig+"/api/alarms",{headers:k,params:Q})}getAlarmsHistory(x){const Q={headers:new V.WM({"Content-Type":"application/json"}),params:{start:x.start.getTime(),end:x.end.getTime()},observe:"response"};return this.http.get(this.endPointConfig+"/api/alarmsHistory",Q).pipe((0,K.w)(I=>(0,T.of)(null==I.body?[]:I.body)),(0,e.U)(I=>I))}setAlarmAck(x){return new l.y(k=>{let Q=new V.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/alarmack",{headers:Q,params:x}).subscribe(I=>{k.next(null)},I=>{k.error(I)})})}checkServer(){return this.http.get(this.endPointConfig+"/api/settings")}getAppId(){return h.k.prjresource}getDaqValues(x){let k=new V.WM({"Content-Type":"application/json"}),Q={query:JSON.stringify(x)};return this.http.get(this.endPointConfig+"/api/daq",{headers:k,params:Q})}getSchedulerData(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.get(this.endPointConfig+"/api/scheduler",{headers:k,params:{id:x}})}setSchedulerData(x,k){let Q=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/scheduler",{id:x,data:k},{headers:Q})}deleteSchedulerData(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.delete(this.endPointConfig+"/api/scheduler",{headers:k,params:{id:x}})}getTagsValues(x,k){let Q=new V.WM({"Content-Type":"application/json"}),I={ids:JSON.stringify(x),sourceScriptName:k};return this.http.get(this.endPointConfig+"/api/getTagValue",{headers:Q,params:I})}runSysFunction(x,k){let Q=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/runSysFunction",{headers:Q,params:{functionName:x,parameters:k}})}heartbeat(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/heartbeat",{headers:k,params:x})}downloadFile(x,k){let Q=new V.WM({"Content-Type":"application/pdf"});return this.http.get(this.endPointConfig+"/api/download",{headers:Q,params:{cmd:k,name:x},responseType:"blob"})}getRoles(){let x=new V.WM({"Content-Type":"application/json"});return this.http.get(this.endPointConfig+"/api/roles",{headers:x})}setRoles(x){return new l.y(k=>{let Q=new V.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/roles",{headers:Q,params:x}).subscribe(I=>{k.next(null)},I=>{k.error(I)})})}removeRoles(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.delete(this.endPointConfig+"/api/roles",{headers:k,params:{roles:JSON.stringify(x)}})}getReportsDir(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.get(this.endPointConfig+"/api/reportsdir",{headers:k,params:{id:x.id,name:x.name}})}getReportsQuery(x){let k=new V.WM({"Content-Type":"application/json"}),Q={query:JSON.stringify(x)};return this.http.get(this.endPointConfig+"/api/reportsQuery",{headers:k,params:Q})}buildReport(x){return new l.y(k=>{let Q=new V.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/reportBuild",{headers:Q,params:x}).subscribe(d=>{k.next(null);var S="";this.translateService.get("msg.report-build-forced").subscribe(R=>{S=R}),this.toastr.success(S)},d=>{console.error(d),k.error(d),this.notifyError(d)})})}removeReportFile(x){let k=new V.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/reportRemoveFile",{headers:k,params:{fileName:x}})}notifyError(x){var k="";this.translateService.get("msg.report-build-error").subscribe(Q=>{k=Q}),this.toastr.error(k,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}static \u0275fac=function(k){return new(k||M)(f.LFG(V.eN),f.LFG(_.sK),f.LFG(b._W))};static \u0275prov=f.Yz7({token:M,factory:M.\u0275fac})}return M})()},7758:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Y:()=>ScriptService});var C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(5861),_angular_common_http__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(9862),rxjs__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(5592),rxjs__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(708),_helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5266),_environments_environment__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(553),_models_script__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(846),_project_service__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(1294),_hmi_service__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(4276),_helpers_utils__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(1019),_models_device__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(5625),_auth_service__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(8333),_device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(9409),_angular_core__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(5879),_toast_notifier_service__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(243);let ScriptService=(()=>{class ScriptService{http;projectService;hmiService;authService;deviceAdapaterService;toastNotifier;endPointConfig=_helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.C.getURL();constructor(ni,Pt,ce,V,K,T){this.http=ni,this.projectService=Pt,this.hmiService=ce,this.authService=V,this.deviceAdapaterService=K,this.toastNotifier=T,this.projectService.onLoadClientAccess.subscribe(()=>{this.loadScriptApi()}),this.projectService.onLoadHmi.subscribe(()=>{this.loadScriptApi()})}loadScriptApi(){const ni=this.projectService.getClientAccess(),Pt=new _models_script__WEBPACK_IMPORTED_MODULE_2__.ui(_models_script__WEBPACK_IMPORTED_MODULE_2__.EN.CLIENT),ce={};for(const V of Pt.functions)if(ni.scriptSystemFunctions.includes(V.name)){const K=V.name.replace("$","");"function"==typeof this[V.name]?ce[K]=this[V.name].bind(this):console.warn(`Function ${V.name} not found in ScriptService`)}window.fuxaScriptAPI=ce}runScript(script,toLogEvent=!0){var _this=this;return new rxjs__WEBPACK_IMPORTED_MODULE_9__.y(observer=>{const permission=this.authService.checkPermission(script,!0);if(!1===permission?.enabled)return this.toastNotifier.notifyError("msg.operation-unauthorized","",!1,!1),observer.next(null),void observer.complete();if(script.mode&&script.mode!==_models_script__WEBPACK_IMPORTED_MODULE_2__.EN.SERVER){let parameterToAdd="";script.parameters?.forEach(ni=>{_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.cQ.isNumeric(ni.value)?parameterToAdd+=`let ${ni.name} = ${ni.value};`:_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.cQ.isObject(ni.value)?parameterToAdd+=`let ${ni.name} = ${JSON.stringify(ni.value)};`:parameterToAdd+=ni.type!==_models_script__WEBPACK_IMPORTED_MODULE_2__.ZW.value||ni.value?`let ${ni.name} = '${ni.value}';`:`let ${ni.name} = ${ni.value};`,parameterToAdd+="\n"}),(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){try{const code=`${parameterToAdd}${script.code}`,asyncText=script.sync?"function":"async function",callText=`${asyncText} ${script.name}() {\n${_this.addSysFunctions(code)} \n }\n${script.name}.call(this);\n`,result=yield eval(callText);observer.next(result)}catch(ni){console.error(ni),observer.error(ni)}finally{observer.complete()}})()}else if(_environments_environment__WEBPACK_IMPORTED_MODULE_1__.N.serverEnabled){let ni=new _angular_common_http__WEBPACK_IMPORTED_MODULE_10__.WM({"Content-Type":"application/json"}),Pt={script,toLogEvent};this.http.post(this.endPointConfig+"/api/runscript",{headers:ni,params:Pt}).subscribe(ce=>{observer.next(ce),observer.complete()},ce=>{console.error(ce),observer.error(ce)})}else observer.next(null),observer.complete()})}evalScript(script){script.parameters?.length>0&&console.warn("TODO: Script with mode CLIENT not work with parameters.");try{const asyncText=script.sync?"":"async",asyncScript=`(${asyncText} () => { ${this.addSysFunctions(script.code)} \n})();`;eval(asyncScript)}catch(ni){console.error(ni)}}addSysFunctions(ni){let Pt=ni.replace(/\$getTag\(/g,"await this.$getTag(");return Pt=Pt.replace(/\$setTag\(/g,"this.$setTag("),Pt=Pt.replace(/\$getTagId\(/g,"this.$getTagId("),Pt=Pt.replace(/\$getTagDaqSettings\(/g,"await this.$getTagDaqSettings("),Pt=Pt.replace(/\$setTagDaqSettings\(/g,"await this.$setTagDaqSettings("),Pt=Pt.replace(/\$setView\(/g,"this.$setView("),Pt=Pt.replace(/\$openCard\(/g,"this.$openCard("),Pt=Pt.replace(/\$enableDevice\(/g,"this.$enableDevice("),Pt=Pt.replace(/\$getDeviceProperty\(/g,"await this.$getDeviceProperty("),Pt=Pt.replace(/\$setDeviceProperty\(/g,"await this.$setDeviceProperty("),Pt=Pt.replace(/\$setAdapterToDevice\(/g,"this.$setAdapterToDevice("),Pt=Pt.replace(/\$resolveAdapterTagId\(/g,"this.$resolveAdapterTagId("),Pt=Pt.replace(/\$invokeObject\(/g,"this.$invokeObject("),Pt=Pt.replace(/\$runServerScript\(/g,"this.$runServerScript("),Pt=Pt.replace(/\$getHistoricalTags\(/g,"this.$getHistoricalTags("),Pt=Pt.replace(/\$sendMessage\(/g,"this.$sendMessage("),Pt=Pt.replace(/\$getAlarms\(/g,"await this.$getAlarms("),Pt=Pt.replace(/\$getAlarmsHistory\(/g,"await this.$getAlarmsHistory("),Pt=Pt.replace(/\$ackAlarm\(/g,"await this.$ackAlarm("),Pt}$getTag(ni){var Pt=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){let ce=Pt.projectService.getTagFromId(ni,!0);if(ce?.deviceType===_models_device__WEBPACK_IMPORTED_MODULE_6__.Yi.internal)return ce.value;const V=Pt.extractUserFunctionBeforeScriptService();return(yield Pt.projectService.getTagsValues([ni],V))[0]?.value})()}$setTag(ni,Pt){this.hmiService.putSignalValue(ni,Pt)}$getTagId(ni,Pt){return this.projectService.getTagIdFromName(ni,Pt)}$getTagDaqSettings(ni){var Pt=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield Pt.projectService.runSysFunctionSync("$getTagDaqSettings",[ni])})()}$setTagDaqSettings(ni,Pt){var ce=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield ce.projectService.runSysFunctionSync("$setTagDaqSettings",[ni,Pt])})()}$setView(ni,Pt){this.hmiService.onScriptCommand({command:_hmi_service__WEBPACK_IMPORTED_MODULE_4__.uH.SETVIEW,params:[ni,Pt]})}$openCard(ni,Pt){this.hmiService.onScriptCommand({command:_hmi_service__WEBPACK_IMPORTED_MODULE_4__.uH.OPENCARD,params:[ni,Pt]})}$enableDevice(ni,Pt){this.hmiService.deviceEnable(ni,Pt)}$getDeviceProperty(ni){var Pt=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield Pt.projectService.runSysFunctionSync("$getDeviceProperty",[ni])})()}$setDeviceProperty(ni,Pt){var ce=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield ce.projectService.runSysFunctionSync("$setDeviceProperty",[ni,Pt])})()}$setAdapterToDevice(ni,Pt){var ce=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield ce.deviceAdapaterService.setTargetDevice(ni,Pt,ce.hmiService.initSignalValues.bind(ce.hmiService))})()}$resolveAdapterTagId(ni){let Pt=this.deviceAdapaterService.resolveAdapterTagsId([ni]);return Pt?.length&&Pt[0]!==ni?Pt[0]:ni}$invokeObject(ni,Pt,...ce){const V=this.hmiService.getGaugeMapped(ni);return V[Pt]?V[Pt](...ce):null}$runServerScript(ni,...Pt){var ce=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){let V=_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.cQ.clone(ce.projectService.getScripts().find(K=>K.name==ni));return V.parameters=Pt,yield(0,rxjs__WEBPACK_IMPORTED_MODULE_12__.n)(ce.runScript(V,!1))})()}$getHistoricalTags(ni,Pt,ce){var V=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){const K={sids:ni,from:Pt,to:ce};return yield(0,rxjs__WEBPACK_IMPORTED_MODULE_12__.n)(V.hmiService.getDaqValues(K))})()}$sendMessage(ni,Pt,ce){var V=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield V.projectService.runSysFunctionSync("$sendMessage",[ni,Pt,ce])})()}$getAlarms(){var ni=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield ni.projectService.runSysFunctionSync("$getAlarms",null)})()}$getAlarmsHistory(ni,Pt){var ce=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield ce.projectService.runSysFunctionSync("$getAlarmsHistory",[ni,Pt])})()}$ackAlarm(ni,Pt){var ce=this;return(0,C_work_FUXA_fuxa_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_11__.Z)(function*(){return yield ce.projectService.runSysFunctionSync("$ackAlarm",[ni,Pt])})()}extractUserFunctionBeforeScriptService(){const Pt=(new Error).stack?.match(/at\s[^\n]+/g);if(!Pt)return null;for(const ce of Pt){const V=ce.match(/ScriptService\.([\w$]+) \(eval at/);if(V)return V[1]}return null}static \u0275fac=function ni(Pt){return new(Pt||ScriptService)(_angular_core__WEBPACK_IMPORTED_MODULE_13__.LFG(_angular_common_http__WEBPACK_IMPORTED_MODULE_10__.eN),_angular_core__WEBPACK_IMPORTED_MODULE_13__.LFG(_project_service__WEBPACK_IMPORTED_MODULE_3__.Y4),_angular_core__WEBPACK_IMPORTED_MODULE_13__.LFG(_hmi_service__WEBPACK_IMPORTED_MODULE_4__.Bb),_angular_core__WEBPACK_IMPORTED_MODULE_13__.LFG(_auth_service__WEBPACK_IMPORTED_MODULE_7__.e),_angular_core__WEBPACK_IMPORTED_MODULE_13__.LFG(_device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_8__.J),_angular_core__WEBPACK_IMPORTED_MODULE_13__.LFG(_toast_notifier_service__WEBPACK_IMPORTED_MODULE_14__.o))};static \u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_13__.Yz7({token:ScriptService,factory:ScriptService.\u0275fac,providedIn:"root"})}return ScriptService})()},2044:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{g:()=>f});var V=ce(9862),K=ce(553),T=ce(5266),e=ce(9234),l=ce(5879),v=ce(1365),h=ce(8763);let f=(()=>{class _{http;fuxaLanguage;translateService;toastr;appSettings=new e.de;endPointConfig=T.C.getURL();editModeLocked=!1;constructor(y,M,D,x){this.http=y,this.fuxaLanguage=M,this.translateService=D,this.toastr=x}init(){this.fuxaLanguage.setDefaultLang("en"),this.fuxaLanguage.use("en"),K.N.serverEnabled&&this.http.get(this.endPointConfig+"/api/settings").subscribe(y=>{this.setSettings(y)},y=>{console.error("settings.service err: "+y)})}getSettings(){return this.appSettings}setSettings(y){var M=!1;return y.language&&y.language!==this.appSettings.language&&(this.fuxaLanguage.use(y.language),this.appSettings.language=y.language,M=!0),y.uiPort&&y.uiPort!==this.appSettings.uiPort&&(this.appSettings.uiPort=y.uiPort,M=!0),(y.secureEnabled!==this.appSettings.secureEnabled||y.tokenExpiresIn!==this.appSettings.tokenExpiresIn||y.secureOnlyEditor!==this.appSettings.secureOnlyEditor)&&(this.appSettings.secureEnabled=y.secureEnabled,this.appSettings.tokenExpiresIn=y.tokenExpiresIn,this.appSettings.secureOnlyEditor=y.secureOnlyEditor,M=!0),y.broadcastAll!==this.appSettings.broadcastAll&&(this.appSettings.broadcastAll=y.broadcastAll,M=!0),y.smtp&&!(y.smtp.host===this.appSettings.smtp.host&&y.smtp.port===this.appSettings.smtp.port&&y.smtp.mailsender===this.appSettings.smtp.mailsender&&y.smtp.username===this.appSettings.smtp.username&&y.smtp.password===this.appSettings.smtp.password)&&(this.appSettings.smtp=new e.Nc(y.smtp),M=!0),y.daqstore&&!this.appSettings.daqstore.isEquals(y.daqstore)&&(this.appSettings.daqstore=new e.r8(y.daqstore),M=!0),y.logFull!==this.appSettings.logFull&&(this.appSettings.logFull=y.logFull,M=!0),y.alarms&&y.alarms.retention!==this.appSettings.alarms?.retention&&(this.appSettings.alarms.retention=y.alarms.retention??this.appSettings.alarms?.retention,M=!0),y.userRole!==this.appSettings.userRole&&(this.appSettings.userRole=y.userRole,M=!0),M}saveSettings(){if(K.N.serverEnabled){let y=new V.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/settings",this.appSettings,{headers:y}).subscribe(M=>{},M=>{this.notifySaveError(M)})}}clearAlarms(y){if(K.N.serverEnabled){let M=new V.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/alarmsClear",{headers:M,params:y}).subscribe(D=>{var x="";this.translateService.get("msg.alarms-clear-success").subscribe(k=>{x=k}),this.toastr.success(x)},D=>{console.error(D),this.notifySaveError(D)})}}notifySaveError(y){let M="";this.translateService.get("msg.settings-save-error").subscribe(D=>{M=D}),401===y.status&&this.translateService.get("msg.settings-save-unauthorized").subscribe(D=>{M=D}),this.toastr.error(M,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}lockEditMode(){this.editModeLocked=!0}unlockEditMode(){this.editModeLocked=!1}isEditModeLocked(){return this.editModeLocked}notifyEditorLocked(){var y="";this.translateService.get("msg.editor-mode-locked").subscribe(M=>{y=M}),this.toastr.warning(y,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!1})}static \u0275fac=function(M){return new(M||_)(l.LFG(V.eN),l.LFG(v.sK),l.LFG(v.sK),l.LFG(h._W))};static \u0275prov=l.Yz7({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})()},243:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{o:()=>e});var V=ce(5879),K=ce(1365),T=ce(8763);let e=(()=>{class l{translateService;toastr;constructor(h,f){this.translateService=h,this.toastr=f}notifyError(h,f="",_=!0,b=!0){this.translateService.get(h).subscribe(y=>{this.toastr.error(`${y} ${f}`,"",{timeOut:3e3,closeButton:_,disableTimeOut:b})})}static \u0275fac=function(f){return new(f||l)(V.LFG(K.sK),V.LFG(T._W))};static \u0275prov=V.Yz7({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})()},9409:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{J:()=>v});var V=ce(1294),K=ce(5625);class T extends K.AS{constructor(f){super(f.id),this.tags=f.tags,this.name=f.name}}var e=ce(1019),l=ce(5879);let v=(()=>{class h{projectService;adapterMapping={};mappingIdsAdapterToDevice={};mappingIdsDeviceToAdapter={};constructor(_){this.projectService=_,this.projectService.onLoadHmi.subscribe(()=>{this.loadDevices()})}loadDevices(){this.adapterMapping={},this.mappingIdsAdapterToDevice={},this.projectService.getDeviceList().filter(b=>b.type===K.Yi.internal).forEach(b=>{this.adapterMapping[b.name]=new T(b);const y=Object.keys(b.tags);for(const M of y)this.mappingIdsAdapterToDevice[M]=null})}setTargetDevice(_,b,y){const M=this.projectService.getDeviceList().find(Q=>Q.name===b),D=this.adapterMapping[_];if(!D)return void console.error(`Adapter not found: ${_}`);const x=Object.keys(D.tags),k=this.clearMappedDevice(x);if(this.removeMappedAdapterIdsFromDevice(k),M){const Q=this.setMatchIdsAdapterDevice(M,Object.values(D.tags));this.mapAdapterIdsWithDevice(Q),y?.(Q)}else b&&console.error(`Device not found: ${b}`)}resolveAdapterTagsId(_){const b=[..._];for(let y=0;y<_.length;y++)this.mappingIdsAdapterToDevice[_[y]]&&(b[y]=this.mappingIdsAdapterToDevice[_[y]]);return b}resolveDeviceTagIdForAdapter(_){return this.mappingIdsDeviceToAdapter[_]}mapAdapterIdsWithDevice(_){for(const[b,y]of Object.entries(_))(this.mappingIdsDeviceToAdapter[y]??=[]).push(b)}removeMappedAdapterIdsFromDevice(_){for(const[b,y]of Object.entries(_)){const M=this.mappingIdsDeviceToAdapter[y];M&&(this.mappingIdsDeviceToAdapter[y]=M.filter(D=>D!==b))}}clearMappedDevice(_){let b={};for(const y of _){const M=this.mappingIdsAdapterToDevice[y];e.cQ.isNullOrUndefined(M)||(b[y]=M,this.mappingIdsAdapterToDevice[y]=null)}return b}setMatchIdsAdapterDevice(_,b){let y={};const M=Object.values(_.tags);return Object.values(b)?.forEach(D=>{const x=M.find(k=>k.name===D.name);x&&(y[D.id]=x?.id,this.mappingIdsAdapterToDevice[D.id]=x?.id)}),y}static \u0275fac=function(b){return new(b||h)(l.LFG(V.Y4))};static \u0275prov=l.Yz7({token:h,factory:h.\u0275fac,providedIn:"root"})}return h})()},553:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{N:()=>V});const V={version:ce(4147).i8,production:!0,apiEndpoint:null,apiPort:null,serverEnabled:!0,type:null}},7474:(ni,Pt,ce)=>{"use strict";var V={};ce.r(V),ce.d(V,{enGB:()=>DX,enUS:()=>BS,faIR:()=>SX});var K={};ce.r(K),ce.d(K,{ABORT:()=>PBe,AFTER_DEFINITION_CHANGE:()=>u3,AUTOPLAY_PREVENTED:()=>l3,AUTOPLAY_STARTED:()=>j0,BEFORE_DEFINITION_CHANGE:()=>OBe,BUFFER_CHANGE:()=>FBe,CANPLAY:()=>zg,CANPLAY_THROUGH:()=>IBe,COMPLETE:()=>CD,CSS_FULLSCREEN_CHANGE:()=>xD,DEFINITION_CHANGE:()=>d3,DESTROY:()=>c3,DOWNLOAD_SPEED_CHANGE:()=>A3,DURATION_CHANGE:()=>_m,EMPTIED:()=>ey,ENDED:()=>J0,ERROR:()=>Qb,FPS_STUCK:()=>e5,FULLSCREEN_CHANGE:()=>Hg,LOADED_DATA:()=>Lp,LOADED_METADATA:()=>kBe,LOAD_START:()=>o3,MINI_STATE_CHANGE:()=>BD,PAUSE:()=>$v,PIP_CHANGE:()=>h3,PLAY:()=>xu,PLAYER_BLUR:()=>GN,PLAYER_FOCUS:()=>a3,PLAYING:()=>r3,PLAYNEXT:()=>ED,PROGRESS:()=>HN,RATE_CHANGE:()=>zN,READY:()=>s3,REPLAY:()=>bD,RESET:()=>DD,RETRY:()=>RBe,ROTATE:()=>JN,SCREEN_SHOT:()=>jN,SEEKED:()=>Ug,SEEKING:()=>wD,SEI_PARSED:()=>LBe,SHORTCUT:()=>VN,SOURCE_ERROR:()=>KN,SOURCE_SUCCESS:()=>qN,STALLED:()=>QBe,STATS_EVENTS:()=>$N,SUSPEND:()=>SBe,SWITCH_SUBTITLE:()=>YBe,TIME_UPDATE:()=>sh,URL_CHANGE:()=>Pb,URL_NULL:()=>ZN,USER_ACTION:()=>MD,VIDEO_EVENTS:()=>XN,VIDEO_RESIZE:()=>vm,VOLUME_CHANGE:()=>UN,WAITING:()=>Sb,XGLOG:()=>WN});var T=ce(6593),e=ce(5879),l=ce(6814),v=ce(7715),h=ce(9315),f=ce(7398);let _=(()=>{class r{constructor(t,i){this._renderer=t,this._elementRef=i,this.onChange=n=>{},this.onTouched=()=>{}}setProperty(t,i){this._renderer.setProperty(this._elementRef.nativeElement,t,i)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Qsj),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r})}}return r})(),b=(()=>{class r extends _{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,features:[e.qOj]})}}return r})();const y=new e.OlP("NgValueAccessor"),M={provide:y,useExisting:(0,e.Gpc)(()=>D),multi:!0};let D=(()=>{class r extends b{writeValue(t){this.setProperty("checked",t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,n){1&i&&e.NdJ("change",function(s){return n.onChange(s.target.checked)})("blur",function(){return n.onTouched()})},features:[e._Bn([M]),e.qOj]})}}return r})();const x={provide:y,useExisting:(0,e.Gpc)(()=>I),multi:!0},Q=new e.OlP("CompositionEventMode");let I=(()=>{class r extends _{constructor(t,i,n){super(t,i),this._compositionMode=n,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function k(){const r=(0,l.q)()?(0,l.q)().getUserAgent():"";return/android (\d+)/.test(r.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Qsj),e.Y36(e.SBq),e.Y36(Q,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){1&i&&e.NdJ("input",function(s){return n._handleInput(s.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(s){return n._compositionEnd(s.target.value)})},features:[e._Bn([x]),e.qOj]})}}return r})();function d(r){return null==r||("string"==typeof r||Array.isArray(r))&&0===r.length}function S(r){return null!=r&&"number"==typeof r.length}const R=new e.OlP("NgValidators"),z=new e.OlP("NgAsyncValidators"),q=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class Z{static min(a){return H(a)}static max(a){return G(a)}static required(a){return function W(r){return d(r.value)?{required:!0}:null}(a)}static requiredTrue(a){return function te(r){return!0===r.value?null:{required:!0}}(a)}static email(a){return function P(r){return d(r.value)||q.test(r.value)?null:{email:!0}}(a)}static minLength(a){return function J(r){return a=>d(a.value)||!S(a.value)?null:a.value.length{if(d(a.value)||d(r))return null;const t=parseFloat(a.value);return!isNaN(t)&&t{if(d(a.value)||d(r))return null;const t=parseFloat(a.value);return!isNaN(t)&&t>r?{max:{max:r,actual:a.value}}:null}}function j(r){return a=>S(a.value)&&a.value.length>r?{maxlength:{requiredLength:r,actualLength:a.value.length}}:null}function re(r){if(!r)return he;let a,t;return"string"==typeof r?(t="","^"!==r.charAt(0)&&(t+="^"),t+=r,"$"!==r.charAt(r.length-1)&&(t+="$"),a=new RegExp(t)):(t=r.toString(),a=r),i=>{if(d(i.value))return null;const n=i.value;return a.test(n)?null:{pattern:{requiredPattern:t,actualValue:n}}}}function he(r){return null}function oe(r){return null!=r}function Ce(r){return(0,e.QGY)(r)?(0,v.D)(r):r}function me(r){let a={};return r.forEach(t=>{a=null!=t?{...a,...t}:a}),0===Object.keys(a).length?null:a}function ze(r,a){return a.map(t=>t(r))}function Ae(r){return r.map(a=>function _e(r){return!r.validate}(a)?a:t=>a.validate(t))}function ve(r){if(!r)return null;const a=r.filter(oe);return 0==a.length?null:function(t){return me(ze(t,a))}}function ye(r){return null!=r?ve(Ae(r)):null}function Oe(r){if(!r)return null;const a=r.filter(oe);return 0==a.length?null:function(t){const i=ze(t,a).map(Ce);return(0,h.D)(i).pipe((0,f.U)(me))}}function ae(r){return null!=r?Oe(Ae(r)):null}function Ee(r,a){return null===r?[a]:Array.isArray(r)?[...r,a]:[r,a]}function Fe(r){return r._rawValidators}function Ve(r){return r._rawAsyncValidators}function mt(r){return r?Array.isArray(r)?r:[r]:[]}function St(r,a){return Array.isArray(r)?r.includes(a):r===a}function oi(r,a){const t=mt(a);return mt(r).forEach(n=>{St(t,n)||t.push(n)}),t}function He(r,a){return mt(a).filter(t=>!St(r,t))}class be{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(a){this._rawValidators=a||[],this._composedValidatorFn=ye(this._rawValidators)}_setAsyncValidators(a){this._rawAsyncValidators=a||[],this._composedAsyncValidatorFn=ae(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(a){this._onDestroyCallbacks.push(a)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(a=>a()),this._onDestroyCallbacks=[]}reset(a=void 0){this.control&&this.control.reset(a)}hasError(a,t){return!!this.control&&this.control.hasError(a,t)}getError(a,t){return this.control?this.control.getError(a,t):null}}class je extends be{get formDirective(){return null}get path(){return null}}class Ke extends be{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class _t{constructor(a){this._cd=a}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let et=(()=>{class r extends _t{constructor(t){super(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Ke,2))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){2&i&&e.ekj("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},features:[e.qOj]})}}return r})(),Xe=(()=>{class r extends _t{constructor(t){super(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(je,10))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){2&i&&e.ekj("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},features:[e.qOj]})}}return r})();const ge="VALID",Se="INVALID",ct="PENDING",Zt="DISABLED";function rt(r){return(_i(r)?r.validators:r)||null}function on(r,a){return(_i(a)?a.asyncValidators:r)||null}function _i(r){return null!=r&&!Array.isArray(r)&&"object"==typeof r}function qt(r,a,t){const i=r.controls;if(!(a?Object.keys(i):i).length)throw new e.vHH(1e3,"");if(!i[t])throw new e.vHH(1001,"")}function tt(r,a,t){r._forEachChild((i,n)=>{if(void 0===t[n])throw new e.vHH(1002,"")})}class Bt{constructor(a,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(a),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(a){this._rawValidators=this._composedValidatorFn=a}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(a){this._rawAsyncValidators=this._composedAsyncValidatorFn=a}get parent(){return this._parent}get valid(){return this.status===ge}get invalid(){return this.status===Se}get pending(){return this.status==ct}get disabled(){return this.status===Zt}get enabled(){return this.status!==Zt}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(a){this._assignValidators(a)}setAsyncValidators(a){this._assignAsyncValidators(a)}addValidators(a){this.setValidators(oi(a,this._rawValidators))}addAsyncValidators(a){this.setAsyncValidators(oi(a,this._rawAsyncValidators))}removeValidators(a){this.setValidators(He(a,this._rawValidators))}removeAsyncValidators(a){this.setAsyncValidators(He(a,this._rawAsyncValidators))}hasValidator(a){return St(this._rawValidators,a)}hasAsyncValidator(a){return St(this._rawAsyncValidators,a)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(a={}){this.touched=!0,this._parent&&!a.onlySelf&&this._parent.markAsTouched(a)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(a=>a.markAllAsTouched())}markAsUntouched(a={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!a.onlySelf&&this._parent._updateTouched(a)}markAsDirty(a={}){this.pristine=!1,this._parent&&!a.onlySelf&&this._parent.markAsDirty(a)}markAsPristine(a={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!a.onlySelf&&this._parent._updatePristine(a)}markAsPending(a={}){this.status=ct,!1!==a.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!a.onlySelf&&this._parent.markAsPending(a)}disable(a={}){const t=this._parentMarkedDirty(a.onlySelf);this.status=Zt,this.errors=null,this._forEachChild(i=>{i.disable({...a,onlySelf:!0})}),this._updateValue(),!1!==a.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...a,skipPristineCheck:t}),this._onDisabledChange.forEach(i=>i(!0))}enable(a={}){const t=this._parentMarkedDirty(a.onlySelf);this.status=ge,this._forEachChild(i=>{i.enable({...a,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:a.emitEvent}),this._updateAncestors({...a,skipPristineCheck:t}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(a){this._parent&&!a.onlySelf&&(this._parent.updateValueAndValidity(a),a.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(a){this._parent=a}getRawValue(){return this.value}updateValueAndValidity(a={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===ge||this.status===ct)&&this._runAsyncValidator(a.emitEvent)),!1!==a.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!a.onlySelf&&this._parent.updateValueAndValidity(a)}_updateTreeValidity(a={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(a)),this.updateValueAndValidity({onlySelf:!0,emitEvent:a.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zt:ge}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(a){if(this.asyncValidator){this.status=ct,this._hasOwnPendingAsyncValidator=!0;const t=Ce(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:a})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(a,t={}){this.errors=a,this._updateControlsErrors(!1!==t.emitEvent)}get(a){let t=a;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((i,n)=>i&&i._find(n),this)}getError(a,t){const i=t?this.get(t):this;return i&&i.errors?i.errors[a]:null}hasError(a,t){return!!this.getError(a,t)}get root(){let a=this;for(;a._parent;)a=a._parent;return a}_updateControlsErrors(a){this.status=this._calculateStatus(),a&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(a)}_initObservables(){this.valueChanges=new e.vpe,this.statusChanges=new e.vpe}_calculateStatus(){return this._allControlsDisabled()?Zt:this.errors?Se:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(ct)?ct:this._anyControlsHaveStatus(Se)?Se:ge}_anyControlsHaveStatus(a){return this._anyControls(t=>t.status===a)}_anyControlsDirty(){return this._anyControls(a=>a.dirty)}_anyControlsTouched(){return this._anyControls(a=>a.touched)}_updatePristine(a={}){this.pristine=!this._anyControlsDirty(),this._parent&&!a.onlySelf&&this._parent._updatePristine(a)}_updateTouched(a={}){this.touched=this._anyControlsTouched(),this._parent&&!a.onlySelf&&this._parent._updateTouched(a)}_registerOnCollectionChange(a){this._onCollectionChange=a}_setUpdateStrategy(a){_i(a)&&null!=a.updateOn&&(this._updateOn=a.updateOn)}_parentMarkedDirty(a){return!a&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(a){return null}_assignValidators(a){this._rawValidators=Array.isArray(a)?a.slice():a,this._composedValidatorFn=function Kt(r){return Array.isArray(r)?ye(r):r||null}(this._rawValidators)}_assignAsyncValidators(a){this._rawAsyncValidators=Array.isArray(a)?a.slice():a,this._composedAsyncValidatorFn=function Ge(r){return Array.isArray(r)?ae(r):r||null}(this._rawAsyncValidators)}}class Ut extends Bt{constructor(a,t,i){super(rt(t),on(i,t)),this.controls=a,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(a,t){return this.controls[a]?this.controls[a]:(this.controls[a]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(a,t,i={}){this.registerControl(a,t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(a,t={}){this.controls[a]&&this.controls[a]._registerOnCollectionChange(()=>{}),delete this.controls[a],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(a,t,i={}){this.controls[a]&&this.controls[a]._registerOnCollectionChange(()=>{}),delete this.controls[a],t&&this.registerControl(a,t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(a){return this.controls.hasOwnProperty(a)&&this.controls[a].enabled}setValue(a,t={}){tt(this,0,a),Object.keys(a).forEach(i=>{qt(this,!0,i),this.controls[i].setValue(a[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(a,t={}){null!=a&&(Object.keys(a).forEach(i=>{const n=this.controls[i];n&&n.patchValue(a[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(a={},t={}){this._forEachChild((i,n)=>{i.reset(a?a[n]:null,{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(a,t,i)=>(a[i]=t.getRawValue(),a))}_syncPendingControls(){let a=this._reduceChildren(!1,(t,i)=>!!i._syncPendingControls()||t);return a&&this.updateValueAndValidity({onlySelf:!0}),a}_forEachChild(a){Object.keys(this.controls).forEach(t=>{const i=this.controls[t];i&&a(i,t)})}_setUpControls(){this._forEachChild(a=>{a.setParent(this),a._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(a){for(const[t,i]of Object.entries(this.controls))if(this.contains(t)&&a(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(t,i,n)=>((i.enabled||this.disabled)&&(t[n]=i.value),t))}_reduceChildren(a,t){let i=a;return this._forEachChild((n,o)=>{i=t(i,n,o)}),i}_allControlsDisabled(){for(const a of Object.keys(this.controls))if(this.controls[a].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(a){return this.controls.hasOwnProperty(a)?this.controls[a]:null}}class ln extends Ut{}const or=new e.OlP("CallSetDisabledState",{providedIn:"root",factory:()=>fn}),fn="always";function Pn(r,a){return[...a.path,r]}function mn(r,a,t=fn){sn(r,a),a.valueAccessor.writeValue(r.value),(r.disabled||"always"===t)&&a.valueAccessor.setDisabledState?.(r.disabled),function Qn(r,a){a.valueAccessor.registerOnChange(t=>{r._pendingValue=t,r._pendingChange=!0,r._pendingDirty=!0,"change"===r.updateOn&&gr(r,a)})}(r,a),function xn(r,a){const t=(i,n)=>{a.valueAccessor.writeValue(i),n&&a.viewToModelUpdate(i)};r.registerOnChange(t),a._registerOnDestroy(()=>{r._unregisterOnChange(t)})}(r,a),function wn(r,a){a.valueAccessor.registerOnTouched(()=>{r._pendingTouched=!0,"blur"===r.updateOn&&r._pendingChange&&gr(r,a),"submit"!==r.updateOn&&r.markAsTouched()})}(r,a),function xi(r,a){if(a.valueAccessor.setDisabledState){const t=i=>{a.valueAccessor.setDisabledState(i)};r.registerOnDisabledChange(t),a._registerOnDestroy(()=>{r._unregisterOnDisabledChange(t)})}}(r,a)}function ui(r,a,t=!0){const i=()=>{};a.valueAccessor&&(a.valueAccessor.registerOnChange(i),a.valueAccessor.registerOnTouched(i)),ji(r,a),r&&(a._invokeOnDestroyCallbacks(),r._registerOnCollectionChange(()=>{}))}function di(r,a){r.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(a)})}function sn(r,a){const t=Fe(r);null!==a.validator?r.setValidators(Ee(t,a.validator)):"function"==typeof t&&r.setValidators([t]);const i=Ve(r);null!==a.asyncValidator?r.setAsyncValidators(Ee(i,a.asyncValidator)):"function"==typeof i&&r.setAsyncValidators([i]);const n=()=>r.updateValueAndValidity();di(a._rawValidators,n),di(a._rawAsyncValidators,n)}function ji(r,a){let t=!1;if(null!==r){if(null!==a.validator){const n=Fe(r);if(Array.isArray(n)&&n.length>0){const o=n.filter(s=>s!==a.validator);o.length!==n.length&&(t=!0,r.setValidators(o))}}if(null!==a.asyncValidator){const n=Ve(r);if(Array.isArray(n)&&n.length>0){const o=n.filter(s=>s!==a.asyncValidator);o.length!==n.length&&(t=!0,r.setAsyncValidators(o))}}}const i=()=>{};return di(a._rawValidators,i),di(a._rawAsyncValidators,i),t}function gr(r,a){r._pendingDirty&&r.markAsDirty(),r.setValue(r._pendingValue,{emitModelToViewChange:!1}),a.viewToModelUpdate(r._pendingValue),r._pendingChange=!1}function Hr(r,a){sn(r,a)}function ar(r,a){if(!r.hasOwnProperty("model"))return!1;const t=r.model;return!!t.isFirstChange()||!Object.is(a,t.currentValue)}function Jt(r,a){r._syncPendingControls(),a.forEach(t=>{const i=t.control;"submit"===i.updateOn&&i._pendingChange&&(t.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function ci(r,a){if(!a)return null;let t,i,n;return Array.isArray(a),a.forEach(o=>{o.constructor===I?t=o:function wo(r){return Object.getPrototypeOf(r.constructor)===b}(o)?i=o:n=o}),n||i||t||null}const Le={provide:je,useExisting:(0,e.Gpc)(()=>ue)},Pe=(()=>Promise.resolve())();let ue=(()=>{class r extends je{constructor(t,i,n){super(),this.callSetDisabledState=n,this.submitted=!1,this._directives=new Set,this.ngSubmit=new e.vpe,this.form=new Ut({},ye(t),ae(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){Pe.then(()=>{const i=this._findContainer(t.path);t.control=i.registerControl(t.name,t.control),mn(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){Pe.then(()=>{const i=this._findContainer(t.path);i&&i.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){Pe.then(()=>{const i=this._findContainer(t.path),n=new Ut({});Hr(n,t),i.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){Pe.then(()=>{const i=this._findContainer(t.path);i&&i.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,i){Pe.then(()=>{this.form.get(t.path).setValue(i)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,Jt(this.form,this._directives),this.ngSubmit.emit(t),"dialog"===t?.target?.method}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(R,10),e.Y36(z,10),e.Y36(or,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){1&i&&e.NdJ("submit",function(s){return n.onSubmit(s)})("reset",function(){return n.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[e._Bn([Le]),e.qOj]})}}return r})();function Me(r,a){const t=r.indexOf(a);t>-1&&r.splice(t,1)}function lt(r){return"object"==typeof r&&null!==r&&2===Object.keys(r).length&&"value"in r&&"disabled"in r}const xt=class extends Bt{constructor(a=null,t,i){super(rt(t),on(i,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(a),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),_i(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=lt(a)?a.value:a)}setValue(a,t={}){this.value=this._pendingValue=a,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(a,t={}){this.setValue(a,t)}reset(a=this.defaultValue,t={}){this._applyFormState(a),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(a){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(a){this._onChange.push(a)}_unregisterOnChange(a){Me(this._onChange,a)}registerOnDisabledChange(a){this._onDisabledChange.push(a)}_unregisterOnDisabledChange(a){Me(this._onDisabledChange,a)}_forEachChild(a){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(a){lt(a)?(this.value=this._pendingValue=a.value,a.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=a}},li=xt;let Ei=(()=>{class r extends je{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Pn(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,features:[e.qOj]})}}return r})();const Cn={provide:Ke,useExisting:(0,e.Gpc)(()=>$i)},Oi=(()=>Promise.resolve())();let $i=(()=>{class r extends Ke{constructor(t,i,n,o,s,c){super(),this._changeDetectorRef=s,this.callSetDisabledState=c,this.control=new xt,this._registered=!1,this.name="",this.update=new e.vpe,this._parent=t,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=ci(0,o)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const i=t.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),ar(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){mn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){Oi.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const i=t.isDisabled.currentValue,n=0!==i&&(0,e.VuI)(i);Oi.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?Pn(t,this._parent):[t]}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(je,9),e.Y36(R,10),e.Y36(z,10),e.Y36(y,10),e.Y36(e.sBO,8),e.Y36(or,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[e._Bn([Cn]),e.qOj,e.TTD]})}}return r})(),In=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}}return r})();const jn={provide:y,useExisting:(0,e.Gpc)(()=>qn),multi:!0};let qn=(()=>{class r extends b{writeValue(t){this.setProperty("value",t??"")}registerOnChange(t){this.onChange=i=>{t(""==i?null:parseFloat(i))}}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,n){1&i&&e.NdJ("input",function(s){return n.onChange(s.target.value)})("blur",function(){return n.onTouched()})},features:[e._Bn([jn]),e.qOj]})}}return r})(),br=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();const Dr=new e.OlP("NgModelWithFormControlWarning"),To={provide:Ke,useExisting:(0,e.Gpc)(()=>ca)};let ca=(()=>{class r extends Ke{set isDisabled(t){}static{this._ngModelWarningSentOnce=!1}constructor(t,i,n,o,s){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=s,this.update=new e.vpe,this._ngModelWarningSent=!1,this._setValidators(t),this._setAsyncValidators(i),this.valueAccessor=ci(0,n)}ngOnChanges(t){if(this._isControlChanged(t)){const i=t.form.previousValue;i&&ui(i,this,!1),mn(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}ar(t,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&ui(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_isControlChanged(t){return t.hasOwnProperty("form")}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(R,10),e.Y36(z,10),e.Y36(y,10),e.Y36(Dr,8),e.Y36(or,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formControl",""]],inputs:{form:["formControl","form"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[e._Bn([To]),e.qOj,e.TTD]})}}return r})();const Ta={provide:je,useExisting:(0,e.Gpc)(()=>Sr)};let Sr=(()=>{class r extends je{constructor(t,i,n){super(),this.callSetDisabledState=n,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new e.vpe,this._setValidators(t),this._setAsyncValidators(i)}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(ji(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const i=this.form.get(t.path);return mn(i,t,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),i}getControl(t){return this.form.get(t.path)}removeControl(t){ui(t.control||null,t,!1),function Ai(r,a){const t=r.indexOf(a);t>-1&&r.splice(t,1)}(this.directives,t)}addFormGroup(t){this._setUpFormContainer(t)}removeFormGroup(t){this._cleanUpFormContainer(t)}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){this._setUpFormContainer(t)}removeFormArray(t){this._cleanUpFormContainer(t)}getFormArray(t){return this.form.get(t.path)}updateModel(t,i){this.form.get(t.path).setValue(i)}onSubmit(t){return this.submitted=!0,Jt(this.form,this.directives),this.ngSubmit.emit(t),"dialog"===t?.target?.method}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this.submitted=!1}_updateDomValue(){this.directives.forEach(t=>{const i=t.control,n=this.form.get(t.path);i!==n&&(ui(i||null,t),(r=>r instanceof xt)(n)&&(mn(n,t,this.callSetDisabledState),t.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(t){const i=this.form.get(t.path);Hr(i,t),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(t){if(this.form){const i=this.form.get(t.path);i&&function Xo(r,a){return ji(r,a)}(i,t)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){sn(this.form,this),this._oldForm&&ji(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(R,10),e.Y36(z,10),e.Y36(or,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formGroup",""]],hostBindings:function(i,n){1&i&&e.NdJ("submit",function(s){return n.onSubmit(s)})("reset",function(){return n.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[e._Bn([Ta]),e.qOj,e.TTD]})}}return r})();const qa={provide:je,useExisting:(0,e.Gpc)(()=>Aa)};let Aa=(()=>{class r extends Ei{constructor(t,i,n){super(),this.name=null,this._parent=t,this._setValidators(i),this._setAsyncValidators(n)}_checkParentType(){mr(this._parent)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(je,13),e.Y36(R,10),e.Y36(z,10))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[e._Bn([qa]),e.qOj]})}}return r})();const lo={provide:je,useExisting:(0,e.Gpc)(()=>kn)};let kn=(()=>{class r extends je{constructor(t,i,n){super(),this.name=null,this._parent=t,this._setValidators(i),this._setAsyncValidators(n)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Pn(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){mr(this._parent)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(je,13),e.Y36(R,10),e.Y36(z,10))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[e._Bn([lo]),e.qOj]})}}return r})();function mr(r){return!(r instanceof Aa||r instanceof Sr||r instanceof kn)}const zo={provide:Ke,useExisting:(0,e.Gpc)(()=>Ot)};let Ot=(()=>{class r extends Ke{set isDisabled(t){}static{this._ngModelWarningSentOnce=!1}constructor(t,i,n,o,s){super(),this._ngModelWarningConfig=s,this._added=!1,this.name=null,this.update=new e.vpe,this._ngModelWarningSent=!1,this._parent=t,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=ci(0,o)}ngOnChanges(t){this._added||this._setUpControl(),ar(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}get path(){return Pn(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(je,13),e.Y36(R,10),e.Y36(z,10),e.Y36(y,10),e.Y36(Dr,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[e._Bn([zo]),e.qOj,e.TTD]})}}return r})();const Qe={provide:y,useExisting:(0,e.Gpc)(()=>Ye),multi:!0};function Ie(r,a){return null==r?`${a}`:(a&&"object"==typeof a&&(a="Object"),`${r}: ${a}`.slice(0,50))}let Ye=(()=>{class r extends b{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const n=Ie(this._getOptionId(t),t);this.setProperty("value",n)}registerOnChange(t){this.onChange=i=>{this.value=this._getOptionValue(i),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),t))return i;return null}_getOptionValue(t){const i=function Ne(r){return r.split(":")[0]}(t);return this._optionMap.has(i)?this._optionMap.get(i):t}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,n){1&i&&e.NdJ("change",function(s){return n.onChange(s.target.value)})("blur",function(){return n.onTouched()})},inputs:{compareWith:"compareWith"},features:[e._Bn([Qe]),e.qOj]})}}return r})(),ht=(()=>{class r{constructor(t,i,n){this._element=t,this._renderer=i,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Ie(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.Qsj),e.Y36(Ye,9))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}}return r})();const kt={provide:y,useExisting:(0,e.Gpc)(()=>an),multi:!0};function hi(r,a){return null==r?`${a}`:("string"==typeof a&&(a=`'${a}'`),a&&"object"==typeof a&&(a="Object"),`${r}: ${a}`.slice(0,50))}let an=(()=>{class r extends b{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let i;if(this.value=t,Array.isArray(t)){const n=t.map(o=>this._getOptionId(o));i=(o,s)=>{o._setSelected(n.indexOf(s.toString())>-1)}}else i=(n,o)=>{n._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(t){this.onChange=i=>{const n=[],o=i.selectedOptions;if(void 0!==o){const s=o;for(let c=0;c{class r{constructor(t,i,n){this._element=t,this._renderer=i,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(hi(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(hi(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.Qsj),e.Y36(an,9))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}}return r})();function Un(r){return"number"==typeof r?r:parseFloat(r)}let Jn=(()=>{class r{constructor(){this._validator=he}ngOnChanges(t){if(this.inputName in t){const i=this.normalizeInput(t[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):he,this._onChange&&this._onChange()}}validate(t){return this._validator(t)}registerOnValidatorChange(t){this._onChange=t}enabled(t){return null!=t}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,features:[e.TTD]})}}return r})();const hr={provide:R,useExisting:(0,e.Gpc)(()=>Er),multi:!0};let Er=(()=>{class r extends Jn{constructor(){super(...arguments),this.inputName="max",this.normalizeInput=t=>Un(t),this.createValidator=t=>G(t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("max",n._enabled?n.max:null)},inputs:{max:"max"},features:[e._Bn([hr]),e.qOj]})}}return r})();const vr={provide:R,useExisting:(0,e.Gpc)(()=>$n),multi:!0};let $n=(()=>{class r extends Jn{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=t=>Un(t),this.createValidator=t=>H(t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("min",n._enabled?n.min:null)},inputs:{min:"min"},features:[e._Bn([vr]),e.qOj]})}}return r})();const da={provide:R,useExisting:(0,e.Gpc)(()=>Xa),multi:!0};let Xa=(()=>{class r extends Jn{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=t=>function bn(r){return"number"==typeof r?r:parseInt(r,10)}(t),this.createValidator=t=>j(t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("maxlength",n._enabled?n.maxlength:null)},inputs:{maxlength:"maxlength"},features:[e._Bn([da]),e.qOj]})}}return r})();const Po={provide:R,useExisting:(0,e.Gpc)(()=>tl),multi:!0};let tl=(()=>{class r extends Jn{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=t=>t,this.createValidator=t=>re(t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("pattern",n._enabled?n.pattern:null)},inputs:{pattern:"pattern"},features:[e._Bn([Po]),e.qOj]})}}return r})(),yl=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[br]})}}return r})();class Ls extends Bt{constructor(a,t,i){super(rt(t),on(i,t)),this.controls=a,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(a){return this.controls[this._adjustIndex(a)]}push(a,t={}){this.controls.push(a),this._registerControl(a),this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}insert(a,t,i={}){this.controls.splice(a,0,t),this._registerControl(t),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(a,t={}){let i=this._adjustIndex(a);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:t.emitEvent})}setControl(a,t,i={}){let n=this._adjustIndex(a);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),t&&(this.controls.splice(n,0,t),this._registerControl(t)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(a,t={}){tt(this,0,a),a.forEach((i,n)=>{qt(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(a,t={}){null!=a&&(a.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(a=[],t={}){this._forEachChild((i,n)=>{i.reset(a[n],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this.controls.map(a=>a.getRawValue())}clear(a={}){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:a.emitEvent}))}_adjustIndex(a){return a<0?a+this.length:a}_syncPendingControls(){let a=this.controls.reduce((t,i)=>!!i._syncPendingControls()||t,!1);return a&&this.updateValueAndValidity({onlySelf:!0}),a}_forEachChild(a){this.controls.forEach((t,i)=>{a(t,i)})}_updateValue(){this.value=this.controls.filter(a=>a.enabled||this.disabled).map(a=>a.value)}_anyControls(a){return this.controls.some(t=>t.enabled&&a(t))}_setUpControls(){this._forEachChild(a=>this._registerControl(a))}_allControlsDisabled(){for(const a of this.controls)if(a.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(a){a.setParent(this),a._registerOnCollectionChange(this._onCollectionChange)}_find(a){return this.at(a)??null}}function Gl(r){return!!r&&(void 0!==r.asyncValidators||void 0!==r.validators||void 0!==r.updateOn)}let $a=(()=>{class r{constructor(){this.useNonNullable=!1}get nonNullable(){const t=new r;return t.useNonNullable=!0,t}group(t,i=null){const n=this._reduceControls(t);let o={};return Gl(i)?o=i:null!==i&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new Ut(n,o)}record(t,i=null){const n=this._reduceControls(t);return new ln(n,i)}control(t,i,n){let o={};return this.useNonNullable?(Gl(i)?o=i:(o.validators=i,o.asyncValidators=n),new xt(t,{...o,nonNullable:!0})):new xt(t,i,n)}array(t,i,n){const o=t.map(s=>this._createControl(s));return new Ls(o,i,n)}_reduceControls(t){const i={};return Object.keys(t).forEach(n=>{i[n]=this._createControl(t[n])}),i}_createControl(t){return t instanceof xt||t instanceof Bt?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),co=(()=>{class r extends $a{group(t,i=null){return super.group(t,i)}control(t,i,n){return super.control(t,i,n)}array(t,i,n){return super.array(t,i,n)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),js=(()=>{class r{static withConfig(t){return{ngModule:r,providers:[{provide:or,useValue:t.callSetDisabledState??fn}]}}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[yl]})}}return r})(),QA=(()=>{class r{static withConfig(t){return{ngModule:r,providers:[{provide:Dr,useValue:t.warnOnNgModelWithFormControl??"always"},{provide:or,useValue:t.callSetDisabledState??fn}]}}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[yl]})}}return r})();var Ia=ce(9862);let Ha;try{Ha=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ha=!1}let ul,ta=(()=>{class r{constructor(t){this._platformId=t,this.isBrowser=this._platformId?(0,l.NF)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!Ha)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(e.Lbi))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const Sl=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Dc(){if(ul)return ul;if("object"!=typeof document||!document)return ul=new Set(Sl),ul;let r=document.createElement("input");return ul=new Set(Sl.filter(a=>(r.setAttribute("type",a),r.type===a))),ul}let il,wl,bs,ad;function Rs(r){return function Sa(){if(null==il&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>il=!0}))}finally{il=il||!1}return il}()?r:!!r.capture}function od(){if(null==bs){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return bs=!1,bs;if("scrollBehavior"in document.documentElement.style)bs=!0;else{const r=Element.prototype.scrollTo;bs=!!r&&!/\{\s*\[native code\]\s*\}/.test(r.toString())}}return bs}function Tc(){if("object"!=typeof document||!document)return 0;if(null==wl){const r=document.createElement("div"),a=r.style;r.dir="rtl",a.width="1px",a.overflow="auto",a.visibility="hidden",a.pointerEvents="none",a.position="absolute";const t=document.createElement("div"),i=t.style;i.width="2px",i.height="1px",r.appendChild(t),document.body.appendChild(r),wl=0,0===r.scrollLeft&&(r.scrollLeft=1,wl=0===r.scrollLeft?1:2),r.remove()}return wl}function nl(r){if(function _s(){if(null==ad){const r=typeof document<"u"?document.head:null;ad=!(!r||!r.createShadowRoot&&!r.attachShadow)}return ad}()){const a=r.getRootNode?r.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&a instanceof ShadowRoot)return a}return null}function Pl(){let r=typeof document<"u"&&document?document.activeElement:null;for(;r&&r.shadowRoot;){const a=r.shadowRoot.activeElement;if(a===r)break;r=a}return r}function rl(r){return r.composedPath?r.composedPath()[0]:r.target}function ia(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}var An=ce(8645),Jr=ce(7394),ba=ce(5619),lr=ce(2096);function xa(r,...a){return a.length?a.some(t=>r[t]):r.altKey||r.shiftKey||r.ctrlKey||r.metaKey}var hA=ce(4674),sl=ce(9360),pl=ce(8251),$c=ce(2737);function Zr(r,a,t){const i=(0,hA.m)(r)||a||t?{next:r,error:a,complete:t}:r;return i?(0,sl.e)((n,o)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let c=!0;n.subscribe((0,pl.x)(o,g=>{var B;null===(B=i.next)||void 0===B||B.call(i,g),o.next(g)},()=>{var g;c=!1,null===(g=i.complete)||void 0===g||g.call(i),o.complete()},g=>{var B;c=!1,null===(B=i.error)||void 0===B||B.call(i,g),o.error(g)},()=>{var g,B;c&&(null===(g=i.unsubscribe)||void 0===g||g.call(i)),null===(B=i.finalize)||void 0===B||B.call(i)}))}):$c.y}var OA=ce(3620),Wr=ce(2181),yo=ce(8180);function Bl(r){return(0,Wr.h)((a,t)=>r<=t)}var eA=ce(3997),On=ce(9773);function Sn(r){return null!=r&&"false"!=`${r}`}function Ya(r,a=0){return mc(r)?Number(r):a}function mc(r){return!isNaN(parseFloat(r))&&!isNaN(Number(r))}function hd(r){return Array.isArray(r)?r:[r]}function Na(r){return null==r?"":"string"==typeof r?r:`${r}px`}function El(r){return r instanceof e.SBq?r.nativeElement:r}function pd(r,a=/\s+/){const t=[];if(null!=r){const i=Array.isArray(r)?r:`${r}`.split(a);for(const n of i){const o=`${n}`.trim();o&&t.push(o)}}return t}var Za=ce(5592);let ku=(()=>{class r{create(t){return typeof MutationObserver>"u"?null:new MutationObserver(t)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),Qu=(()=>{class r{constructor(t){this._mutationObserverFactory=t,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((t,i)=>this._cleanupObserver(i))}observe(t){const i=El(t);return new Za.y(n=>{const s=this._observeElement(i).subscribe(n);return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(t){if(this._observedElements.has(t))this._observedElements.get(t).count++;else{const i=new An.x,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(t,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(t,{observer:n,stream:i,count:1})}return this._observedElements.get(t).stream}_unobserveElement(t){this._observedElements.has(t)&&(this._observedElements.get(t).count--,this._observedElements.get(t).count||this._cleanupObserver(t))}_cleanupObserver(t){if(this._observedElements.has(t)){const{observer:i,stream:n}=this._observedElements.get(t);i&&i.disconnect(),n.complete(),this._observedElements.delete(t)}}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ku))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),Ba=(()=>{class r{get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(t){this._debounce=Ya(t),this._subscribe()}constructor(t,i,n){this._contentObserver=t,this._elementRef=i,this._ngZone=n,this.event=new e.vpe,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const t=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?t.pipe((0,OA.b)(this.debounce)):t).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Qu),e.Y36(e.SBq),e.Y36(e.R0b))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}}return r})(),VA=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[ku]})}}return r})();var Hp=ce(7453),Kh=ce(7400),gd=ce(9940),pA=ce(2714),Su=ce(7103);function Vl(...r){const a=(0,gd.yG)(r),t=(0,gd.jO)(r),{args:i,keys:n}=(0,Hp.D)(r);if(0===i.length)return(0,v.D)([],a);const o=new Za.y(function Pu(r,a,t=$c.y){return i=>{rc(a,()=>{const{length:n}=r,o=new Array(n);let s=n,c=n;for(let g=0;g{const B=(0,v.D)(r[g],a);let O=!1;B.subscribe((0,pl.x)(i,ne=>{o[g]=ne,O||(O=!0,c--),c||i.next(t(o.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,a,n?s=>(0,pA.n)(n,s):$c.y));return t?o.pipe((0,Kh.Z)(t)):o}function rc(r,a,t){r?(0,Su.f)(t,r,a):a()}var oc=ce(5211);function na(...r){const a=(0,gd.yG)(r);return(0,sl.e)((t,i)=>{(a?(0,oc.z)(r,t,a):(0,oc.z)(r,t)).subscribe(i)})}const gh=new Set;let Ks,Gp=(()=>{class r{constructor(t,i){this._platform=t,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):tA}matchMedia(t){return(this._platform.WEBKIT||this._platform.BLINK)&&function ac(r,a){if(!gh.has(r))try{Ks||(Ks=document.createElement("style"),a&&(Ks.nonce=a),Ks.setAttribute("type","text/css"),document.head.appendChild(Ks)),Ks.sheet&&(Ks.sheet.insertRule(`@media ${r} {body{ }}`,0),gh.add(r))}catch(t){console.error(t)}}(t,this._nonce),this._matchMedia(t)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ta),e.LFG(e.Ojb,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function tA(r){return{matches:"all"===r||""===r,media:r,addListener:()=>{},removeListener:()=>{}}}let gA=(()=>{class r{constructor(t,i){this._mediaMatcher=t,this._zone=i,this._queries=new Map,this._destroySubject=new An.x}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return Oo(hd(t)).some(n=>this._registerQuery(n).mql.matches)}observe(t){let o=Vl(Oo(hd(t)).map(s=>this._registerQuery(s).observable));return o=(0,oc.z)(o.pipe((0,yo.q)(1)),o.pipe(Bl(1),(0,OA.b)(0))),o.pipe((0,f.U)(s=>{const c={matches:!1,breakpoints:{}};return s.forEach(({matches:g,query:B})=>{c.matches=c.matches||g,c.breakpoints[B]=g}),c}))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const i=this._mediaMatcher.matchMedia(t),o={observable:new Za.y(s=>{const c=g=>this._zone.run(()=>s.next(g));return i.addListener(c),()=>{i.removeListener(c)}}).pipe(na(i),(0,f.U)(({matches:s})=>({query:t,matches:s})),(0,On.R)(this._destroySubject)),mql:i};return this._queries.set(t,o),o}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Gp),e.LFG(e.R0b))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function Oo(r){return r.map(a=>a.split(",")).reduce((a,t)=>a.concat(t)).map(a=>a.trim())}function ot(r,a,t){const i=ri(r,a);i.some(n=>n.trim()==t.trim())||(i.push(t.trim()),r.setAttribute(a,i.join(" ")))}function Et(r,a,t){const n=ri(r,a).filter(o=>o!=t.trim());n.length?r.setAttribute(a,n.join(" ")):r.removeAttribute(a)}function ri(r,a){return(r.getAttribute(a)||"").match(/\S+/g)||[]}const pn="cdk-describedby-message",sr="cdk-describedby-host";let kr=0,Fo=(()=>{class r{constructor(t,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+kr++,this._document=t,this._id=(0,e.f3M)(e.AFp)+"-"+kr++}describe(t,i,n){if(!this._canBeDescribed(t,i))return;const o=gl(i,n);"string"!=typeof i?(Fc(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(t,o)||this._addMessageReference(t,o)}removeDescription(t,i,n){if(!i||!this._isElementNode(t))return;const o=gl(i,n);if(this._isElementDescribedByMessage(t,o)&&this._removeMessageReference(t,o),"string"==typeof i){const s=this._messageRegistry.get(o);s&&0===s.referenceCount&&this._deleteMessageElement(o)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const t=this._document.querySelectorAll(`[${sr}="${this._id}"]`);for(let i=0;i0!=n.indexOf(pn));t.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(t,i){const n=this._messageRegistry.get(i);ot(t,"aria-describedby",n.messageElement.id),t.setAttribute(sr,this._id),n.referenceCount++}_removeMessageReference(t,i){const n=this._messageRegistry.get(i);n.referenceCount--,Et(t,"aria-describedby",n.messageElement.id),t.removeAttribute(sr)}_isElementDescribedByMessage(t,i){const n=ri(t,"aria-describedby"),o=this._messageRegistry.get(i),s=o&&o.messageElement.id;return!!s&&-1!=n.indexOf(s)}_canBeDescribed(t,i){if(!this._isElementNode(t))return!1;if(i&&"object"==typeof i)return!0;const n=null==i?"":`${i}`.trim(),o=t.getAttribute("aria-label");return!(!n||o&&o.trim()===n)}_isElementNode(t){return t.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(l.K0),e.LFG(ta))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function gl(r,a){return"string"==typeof r?`${a||""}/${r}`:r}function Fc(r,a){r.id||(r.id=`${pn}-${a}-${kr++}`)}class _c{constructor(a){this._items=a,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new An.x,this._typeaheadSubscription=Jr.w0.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=t=>t.disabled,this._pressedLetters=[],this.tabOut=new An.x,this.change=new An.x,a instanceof e.n_E&&(this._itemChangesSubscription=a.changes.subscribe(t=>{if(this._activeItem){const n=t.toArray().indexOf(this._activeItem);n>-1&&n!==this._activeItemIndex&&(this._activeItemIndex=n)}}))}skipPredicate(a){return this._skipPredicateFn=a,this}withWrap(a=!0){return this._wrap=a,this}withVerticalOrientation(a=!0){return this._vertical=a,this}withHorizontalOrientation(a){return this._horizontal=a,this}withAllowedModifierKeys(a){return this._allowedModifierKeys=a,this}withTypeAhead(a=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Zr(t=>this._pressedLetters.push(t)),(0,OA.b)(a),(0,Wr.h)(()=>this._pressedLetters.length>0),(0,f.U)(()=>this._pressedLetters.join(""))).subscribe(t=>{const i=this._getItemsArray();for(let n=1;n!a[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(t){case 9:return void this.tabOut.next();case 40:if(this._vertical&&n){this.setNextItemActive();break}return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&n){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&n){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&n){const o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&n){const o=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(o=65&&t<=90||t>=48&&t<=57)&&this._letterKeyStream.next(String.fromCharCode(t))))}this._pressedLetters=[],a.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(a){const t=this._getItemsArray(),i="number"==typeof a?a:t.indexOf(a);this._activeItem=t[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(a){this._wrap?this._setActiveInWrapMode(a):this._setActiveInDefaultMode(a)}_setActiveInWrapMode(a){const t=this._getItemsArray();for(let i=1;i<=t.length;i++){const n=(this._activeItemIndex+a*i+t.length)%t.length;if(!this._skipPredicateFn(t[n]))return void this.setActiveItem(n)}}_setActiveInDefaultMode(a){this._setActiveItemByIndex(this._activeItemIndex+a,a)}_setActiveItemByIndex(a,t){const i=this._getItemsArray();if(i[a]){for(;this._skipPredicateFn(i[a]);)if(!i[a+=t])return;this.setActiveItem(a)}}_getItemsArray(){return this._items instanceof e.n_E?this._items.toArray():this._items}}class Jg extends _c{setActiveItem(a){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(a),this.activeItem&&this.activeItem.setActiveStyles()}}class fl extends _c{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(a){return this._origin=a,this}setActiveItem(a){super.setActiveItem(a),this.activeItem&&this.activeItem.focus(this._origin)}}let du=(()=>{class r{constructor(t){this._platform=t}isDisabled(t){return t.hasAttribute("disabled")}isVisible(t){return function bm(r){return!!(r.offsetWidth||r.offsetHeight||"function"==typeof r.getClientRects&&r.getClientRects().length)}(t)&&"visible"===getComputedStyle(t).visibility}isTabbable(t){if(!this._platform.isBrowser)return!1;const i=function Zp(r){try{return r.frameElement}catch{return null}}(function Nd(r){return r.ownerDocument&&r.ownerDocument.defaultView||window}(t));if(i&&(-1===$r(i)||!this.isVisible(i)))return!1;let n=t.nodeName.toLowerCase(),o=$r(t);return t.hasAttribute("contenteditable")?-1!==o:!("iframe"===n||"object"===n||this._platform.WEBKIT&&this._platform.IOS&&!function iA(r){let a=r.nodeName.toLowerCase(),t="input"===a&&r.type;return"text"===t||"password"===t||"select"===a||"textarea"===a}(t))&&("audio"===n?!!t.hasAttribute("controls")&&-1!==o:"video"===n?-1!==o&&(null!==o||this._platform.FIREFOX||t.hasAttribute("controls")):t.tabIndex>=0)}isFocusable(t,i){return function fh(r){return!function qh(r){return function hu(r){return"input"==r.nodeName.toLowerCase()}(r)&&"hidden"==r.type}(r)&&(function jg(r){let a=r.nodeName.toLowerCase();return"input"===a||"select"===a||"button"===a||"textarea"===a}(r)||function uu(r){return function fd(r){return"a"==r.nodeName.toLowerCase()}(r)&&r.hasAttribute("href")}(r)||r.hasAttribute("contenteditable")||Go(r))}(t)&&!this.isDisabled(t)&&(i?.ignoreVisibility||this.isVisible(t))}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ta))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function Go(r){if(!r.hasAttribute("tabindex")||void 0===r.tabIndex)return!1;let a=r.getAttribute("tabindex");return!(!a||isNaN(parseInt(a,10)))}function $r(r){if(!Go(r))return null;const a=parseInt(r.getAttribute("tabindex")||"",10);return isNaN(a)?-1:a}class mh{get enabled(){return this._enabled}set enabled(a){this._enabled=a,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(a,this._startAnchor),this._toggleAnchorTabIndex(a,this._endAnchor))}constructor(a,t,i,n,o=!1){this._element=a,this._checker=t,this._ngZone=i,this._document=n,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,o||this.attachAnchors()}destroy(){const a=this._startAnchor,t=this._endAnchor;a&&(a.removeEventListener("focus",this.startAnchorListener),a.remove()),t&&(t.removeEventListener("focus",this.endAnchorListener),t.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(a){return new Promise(t=>{this._executeOnStable(()=>t(this.focusInitialElement(a)))})}focusFirstTabbableElementWhenReady(a){return new Promise(t=>{this._executeOnStable(()=>t(this.focusFirstTabbableElement(a)))})}focusLastTabbableElementWhenReady(a){return new Promise(t=>{this._executeOnStable(()=>t(this.focusLastTabbableElement(a)))})}_getRegionBoundary(a){const t=this._element.querySelectorAll(`[cdk-focus-region-${a}], [cdkFocusRegion${a}], [cdk-focus-${a}]`);return"start"==a?t.length?t[0]:this._getFirstTabbableElement(this._element):t.length?t[t.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(a){const t=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(t){if(!this._checker.isFocusable(t)){const i=this._getFirstTabbableElement(t);return i?.focus(a),!!i}return t.focus(a),!0}return this.focusFirstTabbableElement(a)}focusFirstTabbableElement(a){const t=this._getRegionBoundary("start");return t&&t.focus(a),!!t}focusLastTabbableElement(a){const t=this._getRegionBoundary("end");return t&&t.focus(a),!!t}hasAttached(){return this._hasAttached}_getFirstTabbableElement(a){if(this._checker.isFocusable(a)&&this._checker.isTabbable(a))return a;const t=a.children;for(let i=0;i=0;i--){const n=t[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(t[i]):null;if(n)return n}return null}_createAnchor(){const a=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,a),a.classList.add("cdk-visually-hidden"),a.classList.add("cdk-focus-trap-anchor"),a.setAttribute("aria-hidden","true"),a}_toggleAnchorTabIndex(a,t){a?t.setAttribute("tabindex","0"):t.removeAttribute("tabindex")}toggleAnchors(a){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(a,this._startAnchor),this._toggleAnchorTabIndex(a,this._endAnchor))}_executeOnStable(a){this._ngZone.isStable?a():this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(a)}}let fA=(()=>{class r{constructor(t,i,n){this._checker=t,this._ngZone=i,this._document=n}create(t,i=!1){return new mh(t,this._checker,this._ngZone,this._document,i)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(du),e.LFG(e.R0b),e.LFG(l.K0))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),X0=(()=>{class r{get enabled(){return this.focusTrap.enabled}set enabled(t){this.focusTrap.enabled=Sn(t)}get autoCapture(){return this._autoCapture}set autoCapture(t){this._autoCapture=Sn(t)}constructor(t,i,n){this._elementRef=t,this._focusTrapFactory=i,this._previouslyFocusedElement=null,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}ngOnDestroy(){this.focusTrap.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap.hasAttached()||this.focusTrap.attachAnchors()}ngOnChanges(t){const i=t.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=Pl(),this.focusTrap.focusInitialElementWhenReady()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(fA),e.Y36(l.K0))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:["cdkTrapFocus","enabled"],autoCapture:["cdkTrapFocusAutoCapture","autoCapture"]},exportAs:["cdkTrapFocus"],features:[e.TTD]})}}return r})();function md(r){return 0===r.buttons||0===r.detail}function us(r){const a=r.touches&&r.touches[0]||r.changedTouches&&r.changedTouches[0];return!(!a||-1!==a.identifier||null!=a.radiusX&&1!==a.radiusX||null!=a.radiusY&&1!==a.radiusY)}const _d=new e.OlP("cdk-input-modality-detector-options"),sc={ignoreKeys:[18,17,224,91,16]},vs=Rs({passive:!0,capture:!0});let WA=(()=>{class r{get mostRecentModality(){return this._modality.value}constructor(t,i,n,o){this._platform=t,this._mostRecentTarget=null,this._modality=new ba.X(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(c=>c===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=rl(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(md(s)?"keyboard":"mouse"),this._mostRecentTarget=rl(s))},this._onTouchstart=s=>{us(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=rl(s))},this._options={...sc,...o},this.modalityDetected=this._modality.pipe(Bl(1)),this.modalityChanged=this.modalityDetected.pipe((0,eA.x)()),t.isBrowser&&i.runOutsideAngular(()=>{n.addEventListener("keydown",this._onKeydown,vs),n.addEventListener("mousedown",this._onMousedown,vs),n.addEventListener("touchstart",this._onTouchstart,vs)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,vs),document.removeEventListener("mousedown",this._onMousedown,vs),document.removeEventListener("touchstart",this._onTouchstart,vs))}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ta),e.LFG(e.R0b),e.LFG(l.K0),e.LFG(_d,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const Jp=new e.OlP("liveAnnouncerElement",{providedIn:"root",factory:function $h(){return null}}),vd=new e.OlP("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let ep=0,xm=(()=>{class r{constructor(t,i,n,o){this._ngZone=i,this._defaultOptions=o,this._document=n,this._liveElement=t||this._createLiveElement()}announce(t,...i){const n=this._defaultOptions;let o,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[o,s]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),null==s&&n&&(s=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(c=>this._currentResolve=c)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=t,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const t="cdk-live-announcer-element",i=this._document.getElementsByClassName(t),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class r{constructor(t,i,n,o,s){this._ngZone=t,this._platform=i,this._inputModalityDetector=n,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new An.x,this._rootNodeFocusAndBlurListener=c=>{for(let B=rl(c);B;B=B.parentElement)"focus"===c.type?this._onFocus(c,B):this._onBlur(c,B)},this._document=o,this._detectionMode=s?.detectionMode||0}monitor(t,i=!1){const n=El(t);if(!this._platform.isBrowser||1!==n.nodeType)return(0,lr.of)();const o=nl(n)||this._getDocument(),s=this._elementInfo.get(n);if(s)return i&&(s.checkChildren=!0),s.subject;const c={checkChildren:i,subject:new An.x,rootNode:o};return this._elementInfo.set(n,c),this._registerGlobalListeners(c),c.subject}stopMonitoring(t){const i=El(t),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(t,i,n){const o=El(t);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([c,g])=>this._originChanged(c,i,g)):(this._setOrigin(i),"function"==typeof o.focus&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((t,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(t){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(t)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:t&&this._isLastInteractionFromInputLabel(t)?"mouse":"program"}_shouldBeAttributedToTouch(t){return 1===this._detectionMode||!!t?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(t,i){t.classList.toggle("cdk-focused",!!i),t.classList.toggle("cdk-touch-focused","touch"===i),t.classList.toggle("cdk-keyboard-focused","keyboard"===i),t.classList.toggle("cdk-mouse-focused","mouse"===i),t.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(t,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=t,this._originFromTouchInteraction="touch"===t&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(t,i){const n=this._elementInfo.get(i),o=rl(t);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(t,i){const n=this._elementInfo.get(i);!n||n.checkChildren&&t.relatedTarget instanceof Node&&i.contains(t.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(t,i){t.subject.observers.length&&this._ngZone.run(()=>t.subject.next(i))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const i=t.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,Xr),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Xr)}),this._rootNodeFocusListenerCount.set(i,n+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe((0,On.R)(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(t){const i=t.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Xr),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Xr),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(t,i,n){this._setClasses(t,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(t){const i=[];return this._elementInfo.forEach((n,o)=>{(o===t||n.checkChildren&&o.contains(t))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(t){const{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if("mouse"!==n||!i||i===t||"INPUT"!==t.nodeName&&"TEXTAREA"!==t.nodeName||t.disabled)return!1;const o=t.labels;if(o)for(let s=0;s{class r{constructor(t,i){this._elementRef=t,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new e.vpe}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const t=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(t,1===t.nodeType&&t.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Es))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}}return r})();const jp="cdk-high-contrast-black-on-white",_h="cdk-high-contrast-white-on-black",Vp="cdk-high-contrast-active";let Wp=(()=>{class r{constructor(t,i){this._platform=t,this._document=i,this._breakpointSubscription=(0,e.f3M)(gA).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(t):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(t.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(Vp,jp,_h),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?t.add(Vp,jp):2===i&&t.add(Vp,_h)}}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ta),e.LFG(l.K0))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),vh=(()=>{class r{constructor(t){t._applyBodyHighContrastModeCssClasses()}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Wp))}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[VA]})}}return r})();const Wg=new e.OlP("cdk-dir-doc",{providedIn:"root",factory:function Ou(){return(0,e.f3M)(l.K0)}}),Lu=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function Hd(r){const a=r?.toLowerCase()||"";return"auto"===a&&typeof navigator<"u"&&navigator?.language?Lu.test(navigator.language)?"rtl":"ltr":"rtl"===a?"rtl":"ltr"}let Ja=(()=>{class r{constructor(t){this.value="ltr",this.change=new e.vpe,t&&(this.value=Hd((t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Wg,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),Kg=(()=>{class r{constructor(){this._dir="ltr",this._isInitialized=!1,this.change=new e.vpe}get dir(){return this._dir}set dir(t){const i=this._dir;this._dir=Hd(t),this._rawDir=t,i!==this._dir&&this._isInitialized&&this.change.emit(this._dir)}get value(){return this.dir}ngAfterContentInit(){this._isInitialized=!0}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","dir",""]],hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("dir",n._rawDir)},inputs:{dir:"dir"},outputs:{change:"dirChange"},exportAs:["dir"],features:[e._Bn([{provide:Ja,useExisting:r}])]})}}return r})(),yd=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();const Ru=["text"];let wd=(()=>{class r{static{this.STANDARD_CURVE="cubic-bezier(0.4,0.0,0.2,1)"}static{this.DECELERATION_CURVE="cubic-bezier(0.0,0.0,0.2,1)"}static{this.ACCELERATION_CURVE="cubic-bezier(0.4,0.0,1,1)"}static{this.SHARP_CURVE="cubic-bezier(0.4,0.0,0.6,1)"}}return r})(),pu=(()=>{class r{static{this.COMPLEX="375ms"}static{this.ENTERING="225ms"}static{this.EXITING="195ms"}}return r})();const Ch=new e.OlP("mat-sanity-checks",{providedIn:"root",factory:function Bm(){return!0}});let Fr=(()=>{class r{constructor(t,i,n){this._sanityChecks=i,this._document=n,this._hasDoneGlobalChecks=!1,t._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(t){return!ia()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[t])}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Wp),e.LFG(Ch,8),e.LFG(l.K0))}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[yd,yd]})}}return r})();function Lc(r){return class extends r{get disabled(){return this._disabled}set disabled(a){this._disabled=Sn(a)}constructor(...a){super(...a),this._disabled=!1}}}function Wl(r,a){return class extends r{get color(){return this._color}set color(t){const i=t||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...t){super(...t),this.defaultColor=a,this.color=a}}}function ll(r){return class extends r{get disableRipple(){return this._disableRipple}set disableRipple(a){this._disableRipple=Sn(a)}constructor(...a){super(...a),this._disableRipple=!1}}}function Kl(r,a=0){return class extends r{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){this._tabIndex=null!=t?Ya(t):this.defaultTabIndex}constructor(...t){super(...t),this._tabIndex=a,this.defaultTabIndex=a}}}function Gd(r){return class extends r{updateErrorState(){const a=this.errorState,o=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);o!==a&&(this.errorState=o,this.stateChanges.next())}constructor(...a){super(...a),this.errorState=!1}}}function Xp(r){return class extends r{constructor(...a){super(...a),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new Za.y(t=>{this._isInitialized?this._notifySubscriber(t):this._pendingSubscribers.push(t)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(a){a.next(),a.complete()}}}const _A=new e.OlP("MAT_DATE_LOCALE",{providedIn:"root",factory:function Em(){return(0,e.f3M)(e.soG)}});class ys{constructor(){this._localeChanges=new An.x,this.localeChanges=this._localeChanges}getValidDateOrNull(a){return this.isDateInstance(a)&&this.isValid(a)?a:null}deserialize(a){return null==a||this.isDateInstance(a)&&this.isValid(a)?a:this.invalid()}setLocale(a){this.locale=a,this._localeChanges.next()}compareDate(a,t){return this.getYear(a)-this.getYear(t)||this.getMonth(a)-this.getMonth(t)||this.getDate(a)-this.getDate(t)}sameDate(a,t){if(a&&t){let i=this.isValid(a),n=this.isValid(t);return i&&n?!this.compareDate(a,t):i==n}return a==t}clampDate(a,t,i){return t&&this.compareDate(a,t)<0?t:i&&this.compareDate(a,i)>0?i:a}}const vA=new e.OlP("mat-date-formats");let Rc=(()=>{class r{isErrorState(t,i){return!!(t&&t.invalid&&(t.touched||i&&i.submitted))}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),Mm=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-line",""],["","matLine",""]],hostAttrs:[1,"mat-line"]})}}return r})();function Yu(r,a,t="mat"){r.changes.pipe(na(r)).subscribe(({length:i})=>{Cd(a,`${t}-2-line`,!1),Cd(a,`${t}-3-line`,!1),Cd(a,`${t}-multi-line`,!1),2===i||3===i?Cd(a,`${t}-${i}-line`,!0):i>3&&Cd(a,`${t}-multi-line`,!0)})}function Cd(r,a,t){r.nativeElement.classList.toggle(a,t)}let ja=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,Fr]})}}return r})();class tf{constructor(a,t,i,n=!1){this._renderer=a,this.element=t,this.config=i,this._animationForciblyDisabledThroughCss=n,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const tg=Rs({passive:!0,capture:!0});class nf{constructor(){this._events=new Map,this._delegateEventHandler=a=>{const t=rl(a);t&&this._events.get(a.type)?.forEach((i,n)=>{(n===t||n.contains(t))&&i.forEach(o=>o.handleEvent(a))})}}addHandler(a,t,i,n){const o=this._events.get(t);if(o){const s=o.get(i);s?s.add(n):o.set(i,new Set([n]))}else this._events.set(t,new Map([[i,new Set([n])]])),a.runOutsideAngular(()=>{document.addEventListener(t,this._delegateEventHandler,tg)})}removeHandler(a,t,i){const n=this._events.get(a);if(!n)return;const o=n.get(t);o&&(o.delete(i),0===o.size&&n.delete(t),0===n.size&&(this._events.delete(a),document.removeEventListener(a,this._delegateEventHandler,tg)))}}const KA={enterDuration:225,exitDuration:150},C=Rs({passive:!0,capture:!0}),N=["mousedown","touchstart"],Y=["mouseup","mouseleave","touchend","touchcancel"];class X{static{this._eventManager=new nf}constructor(a,t,i,n){this._target=a,this._ngZone=t,this._platform=n,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,n.isBrowser&&(this._containerElement=El(i))}fadeInRipple(a,t,i={}){const n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...KA,...i.animation};i.centered&&(a=n.left+n.width/2,t=n.top+n.height/2);const s=i.radius||function fe(r,a,t){const i=Math.max(Math.abs(r-t.left),Math.abs(r-t.right)),n=Math.max(Math.abs(a-t.top),Math.abs(a-t.bottom));return Math.sqrt(i*i+n*n)}(a,t,n),c=a-n.left,g=t-n.top,B=o.enterDuration,O=document.createElement("div");O.classList.add("mat-ripple-element"),O.style.left=c-s+"px",O.style.top=g-s+"px",O.style.height=2*s+"px",O.style.width=2*s+"px",null!=i.color&&(O.style.backgroundColor=i.color),O.style.transitionDuration=`${B}ms`,this._containerElement.appendChild(O);const ne=window.getComputedStyle(O),$e=ne.transitionDuration,nt="none"===ne.transitionProperty||"0s"===$e||"0s, 0s"===$e||0===n.width&&0===n.height,Ft=new tf(this,O,i,nt);O.style.transform="scale3d(1, 1, 1)",Ft.state=0,i.persistent||(this._mostRecentTransientRipple=Ft);let ei=null;return!nt&&(B||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const pi=()=>this._finishRippleTransition(Ft),Di=()=>this._destroyRipple(Ft);O.addEventListener("transitionend",pi),O.addEventListener("transitioncancel",Di),ei={onTransitionEnd:pi,onTransitionCancel:Di}}),this._activeRipples.set(Ft,ei),(nt||!B)&&this._finishRippleTransition(Ft),Ft}fadeOutRipple(a){if(2===a.state||3===a.state)return;const t=a.element,i={...KA,...a.config.animation};t.style.transitionDuration=`${i.exitDuration}ms`,t.style.opacity="0",a.state=2,(a._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(a)}fadeOutAll(){this._getActiveRipples().forEach(a=>a.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(a=>{a.config.persistent||a.fadeOut()})}setupTriggerEvents(a){const t=El(a);!this._platform.isBrowser||!t||t===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=t,N.forEach(i=>{X._eventManager.addHandler(this._ngZone,i,t,this)}))}handleEvent(a){"mousedown"===a.type?this._onMousedown(a):"touchstart"===a.type?this._onTouchStart(a):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{Y.forEach(t=>{this._triggerElement.addEventListener(t,this,C)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(a){0===a.state?this._startFadeOutTransition(a):2===a.state&&this._destroyRipple(a)}_startFadeOutTransition(a){const t=a===this._mostRecentTransientRipple,{persistent:i}=a.config;a.state=1,!i&&(!t||!this._isPointerDown)&&a.fadeOut()}_destroyRipple(a){const t=this._activeRipples.get(a)??null;this._activeRipples.delete(a),this._activeRipples.size||(this._containerRect=null),a===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),a.state=3,null!==t&&(a.element.removeEventListener("transitionend",t.onTransitionEnd),a.element.removeEventListener("transitioncancel",t.onTransitionCancel)),a.element.remove()}_onMousedown(a){const t=md(a),i=this._lastTouchStartEvent&&Date.now(){!a.config.persistent&&(1===a.state||a.config.terminateOnPointerUp&&0===a.state)&&a.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const a=this._triggerElement;a&&(N.forEach(t=>X._eventManager.removeHandler(t,a,this)),this._pointerUpEventsRegistered&&Y.forEach(t=>a.removeEventListener(t,this,C)))}}const We=new e.OlP("mat-ripple-global-options");let At=(()=>{class r{get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}constructor(t,i,n,o,s){this._elementRef=t,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new X(this,i,t,n)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,i=0,n){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,i,{...this.rippleConfig,...n}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...t})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(ta),e.Y36(We,8),e.Y36(e.QbO,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mat-ripple-unbounded",n.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]})}}return r})(),bt=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,Fr]})}}return r})(),Yt=(()=>{class r{constructor(t){this._animationMode=t,this.state="unchecked",this.disabled=!1,this.appearance="full"}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){2&i&&e.ekj("mat-pseudo-checkbox-indeterminate","indeterminate"===n.state)("mat-pseudo-checkbox-checked","checked"===n.state)("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal","minimal"===n.appearance)("mat-pseudo-checkbox-full","full"===n.appearance)("_mat-animation-noopable","NoopAnimations"===n._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}}return r})(),fi=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr]})}}return r})();const bi=new e.OlP("MAT_OPTION_PARENT_COMPONENT"),Hi=Lc(class{});let Pi=0,dn=(()=>{class r extends Hi{constructor(t){super(),this._labelId="mat-optgroup-label-"+Pi++,this._inert=t?.inertGroups??!1}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(bi,8))}}static{this.\u0275dir=e.lG2({type:r,inputs:{label:"label"},features:[e.qOj]})}}return r})();const Tn=new e.OlP("MatOptgroup");let er=0;class Ar{constructor(a,t=!1){this.source=a,this.isUserInput=t}}let Xn=(()=>{class r{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(t){this._disabled=Sn(t)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(t,i,n,o){this._element=t,this._changeDetectorRef=i,this._parent=n,this.group=o,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+er++,this.onSelectionChange=new e.vpe,this._stateChanges=new An.x}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(t=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),t&&this._emitSelectionChangeEvent())}deselect(t=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),t&&this._emitSelectionChangeEvent())}focus(t,i){const n=this._getHostElement();"function"==typeof n.focus&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(t){(13===t.keyCode||32===t.keyCode)&&!xa(t)&&(this._selectViaInteraction(),t.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const t=this.viewValue;t!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=t)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(t=!1){this.onSelectionChange.emit(new Ar(this,t))}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,viewQuery:function(i,n){if(1&i&&e.Gf(Ru,7),2&i){let o;e.iGM(o=e.CRH())&&(n._text=o.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}})}}return r})();function Lr(r,a,t){if(t.length){let i=a.toArray(),n=t.toArray(),o=0;for(let s=0;st+i?Math.max(0,r-i+a):t}const fa={capture:!0},cl=["focus","click","mouseenter","touchstart"],ps="mat-ripple-loader-uninitialized",ql="mat-ripple-loader-class-name",lc="mat-ripple-loader-centered",gs="mat-ripple-loader-disabled";let Xl=(()=>{class r{constructor(){this._document=(0,e.f3M)(l.K0,{optional:!0}),this._animationMode=(0,e.f3M)(e.QbO,{optional:!0}),this._globalRippleOptions=(0,e.f3M)(We,{optional:!0}),this._platform=(0,e.f3M)(ta),this._ngZone=(0,e.f3M)(e.R0b),this._hosts=new Map,this._onInteraction=t=>{if(!(t.target instanceof HTMLElement))return;const n=t.target.closest(`[${ps}]`);n&&this._createRipple(n)},this._ngZone.runOutsideAngular(()=>{for(const t of cl)this._document?.addEventListener(t,this._onInteraction,fa)})}ngOnDestroy(){const t=this._hosts.keys();for(const i of t)this.destroyRipple(i);for(const i of cl)this._document?.removeEventListener(i,this._onInteraction,fa)}configureRipple(t,i){t.setAttribute(ps,""),(i.className||!t.hasAttribute(ql))&&t.setAttribute(ql,i.className||""),i.centered&&t.setAttribute(lc,""),i.disabled&&t.setAttribute(gs,"")}getRipple(t){return this._hosts.get(t)||this._createRipple(t)}setDisabled(t,i){const n=this._hosts.get(t);n?n.disabled=i:i?t.setAttribute(gs,""):t.removeAttribute(gs)}_createRipple(t){if(!this._document)return;const i=this._hosts.get(t);if(i)return i;t.querySelector(".mat-ripple")?.remove();const n=this._document.createElement("span");n.classList.add("mat-ripple",t.getAttribute(ql)),t.append(n);const o=new At(new e.SBq(n),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=t,o.centered=t.hasAttribute(lc),o.disabled=t.hasAttribute(gs),this.attachRipple(t,o),o}attachRipple(t,i){t.removeAttribute(ps),this._hosts.set(t,i)}destroyRipple(t){const i=this._hosts.get(t);i&&(i.ngOnDestroy(),this._hosts.delete(t))}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const cs=["*",[["mat-option"],["ng-container"]]],qs=["*","mat-option, ng-container"];function Ns(r,a){if(1&r&&e._UZ(0,"mat-pseudo-checkbox",5),2&r){const t=e.oxw();e.Q6J("state",t.selected?"checked":"unchecked")("disabled",t.disabled)}}function Us(r,a){if(1&r&&(e.TgZ(0,"span",6),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij("(",t.group.label,")")}}const Dl=["*"];let Nu=(()=>{class r extends dn{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-optgroup"],hostVars:5,hostBindings:function(i,n){2&i&&(e.uIk("role",n._inert?null:"group")("aria-disabled",n._inert?null:n.disabled.toString())("aria-labelledby",n._inert?null:n._labelId),e.ekj("mat-optgroup-disabled",n.disabled))},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[e._Bn([{provide:Tn,useExisting:r}]),e.qOj],ngContentSelectors:qs,decls:4,vars:2,consts:[["role","presentation",1,"mat-optgroup-label",3,"id"]],template:function(i,n){1&i&&(e.F$t(cs),e.TgZ(0,"span",0),e._uU(1),e.Hsn(2),e.qZA(),e.Hsn(3,1)),2&i&&(e.Q6J("id",n._labelId),e.xp6(1),e.hij("",n.label," "))},styles:[".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}"],encapsulation:2,changeDetection:0})}}return r})(),Nr=(()=>{class r extends Xn{constructor(t,i,n,o){super(t,i,n,o)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(bi,8),e.Y36(Tn,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-option","mat-focus-indicator"],hostVars:12,hostBindings:function(i,n){1&i&&e.NdJ("click",function(){return n._selectViaInteraction()})("keydown",function(s){return n._handleKeydown(s)}),2&i&&(e.Ikx("id",n.id),e.uIk("tabindex",n._getTabIndex())("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),e.ekj("mat-selected",n.selected)("mat-option-multiple",n.multiple)("mat-active",n.active)("mat-option-disabled",n.disabled))},exportAs:["matOption"],features:[e.qOj],ngContentSelectors:Dl,decls:6,vars:4,consts:[["class","mat-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mat-option-text"],["text",""],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(i,n){1&i&&(e.F$t(),e.YNc(0,Ns,1,2,"mat-pseudo-checkbox",0),e.TgZ(1,"span",1,2),e.Hsn(3),e.qZA(),e.YNc(4,Us,2,1,"span",3),e._UZ(5,"div",4)),2&i&&(e.Q6J("ngIf",n.multiple),e.xp6(4),e.Q6J("ngIf",n.group&&n.group._inert),e.xp6(1),e.Q6J("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[At,l.O5,Yt],styles:['.mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.mat-option.mat-active::before{content:""}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.cdk-high-contrast-active .mat-option.mat-selected:not(.mat-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-option.mat-selected:not(.mat-option-multiple)::after{right:auto;left:16px}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}'],encapsulation:2,changeDetection:0})}}return r})(),zs=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[bt,l.ez,Fr,fi]})}}return r})();var Yc=ce(4829),ma=ce(1631),bd=ce(4266);const yA=["addListener","removeListener"],at=["addEventListener","removeEventListener"],Te=["on","off"];function Je(r,a,t,i){if((0,hA.m)(t)&&(i=t,t=void 0),i)return Je(r,a,t).pipe((0,Kh.Z)(i));const[n,o]=function st(r){return(0,hA.m)(r.addEventListener)&&(0,hA.m)(r.removeEventListener)}(r)?at.map(s=>c=>r[s](a,c,t)):function pe(r){return(0,hA.m)(r.addListener)&&(0,hA.m)(r.removeListener)}(r)?yA.map(se(r,a)):function De(r){return(0,hA.m)(r.on)&&(0,hA.m)(r.off)}(r)?Te.map(se(r,a)):[];if(!n&&(0,bd.z)(r))return(0,ma.z)(s=>Je(s,a,t))((0,Yc.Xf)(r));if(!n)throw new TypeError("Invalid event target");return new Za.y(s=>{const c=(...g)=>s.next(1o(c)})}function se(r,a){return t=>i=>r[t](a,i)}var wt=ce(3225);const yt={schedule(r){let a=requestAnimationFrame,t=cancelAnimationFrame;const{delegate:i}=yt;i&&(a=i.requestAnimationFrame,t=i.cancelAnimationFrame);const n=a(o=>{t=void 0,r(o)});return new Jr.w0(()=>t?.(n))},requestAnimationFrame(...r){const{delegate:a}=yt;return(a?.requestAnimationFrame||requestAnimationFrame)(...r)},cancelAnimationFrame(...r){const{delegate:a}=yt;return(a?.cancelAnimationFrame||cancelAnimationFrame)(...r)},delegate:void 0};var si=ce(2631);new class Bi extends si.v{flush(a){let t;this._active=!0,a?t=a.id:(t=this._scheduled,this._scheduled=void 0);const{actions:i}=this;let n;a=a||i.shift();do{if(n=a.execute(a.state,a.delay))break}while((a=i[0])&&a.id===t&&i.shift());if(this._active=!1,n){for(;(a=i[0])&&a.id===t&&i.shift();)a.unsubscribe();throw n}}}(class ft extends wt.o{constructor(a,t){super(a,t),this.scheduler=a,this.work=t}requestAsyncId(a,t,i=0){return null!==i&&i>0?super.requestAsyncId(a,t,i):(a.actions.push(this),a._scheduled||(a._scheduled=yt.requestAnimationFrame(()=>a.flush(void 0))))}recycleAsyncId(a,t,i=0){var n;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(a,t,i);const{actions:o}=a;null!=t&&t===a._scheduled&&(null===(n=o[o.length-1])||void 0===n?void 0:n.id)!==t&&(yt.cancelAnimationFrame(t),a._scheduled=void 0)}});let un,qi=1;const Dn={};function dr(r){return r in Dn&&(delete Dn[r],!0)}const eo={setImmediate(r){const a=qi++;return Dn[a]=!0,un||(un=Promise.resolve()),un.then(()=>dr(a)&&r()),a},clearImmediate(r){dr(r)}},{setImmediate:mo,clearImmediate:Qo}=eo,Eo={setImmediate(...r){const{delegate:a}=Eo;return(a?.setImmediate||mo)(...r)},clearImmediate(r){const{delegate:a}=Eo;return(a?.clearImmediate||Qo)(r)},delegate:void 0},Ds=new class os extends si.v{flush(a){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let n;a=a||i.shift();do{if(n=a.execute(a.state,a.delay))break}while((a=i[0])&&a.id===t&&i.shift());if(this._active=!1,n){for(;(a=i[0])&&a.id===t&&i.shift();)a.unsubscribe();throw n}}}(class Ko extends wt.o{constructor(a,t){super(a,t),this.scheduler=a,this.work=t}requestAsyncId(a,t,i=0){return null!==i&&i>0?super.requestAsyncId(a,t,i):(a.actions.push(this),a._scheduled||(a._scheduled=Eo.setImmediate(a.flush.bind(a,void 0))))}recycleAsyncId(a,t,i=0){var n;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(a,t,i);const{actions:o}=a;null!=t&&(null===(n=o[o.length-1])||void 0===n?void 0:n.id)!==t&&(Eo.clearImmediate(t),a._scheduled===t&&(a._scheduled=void 0))}});var bo=ce(6321),Mo=ce(4825);function Ua(r,a=bo.z){return function Hs(r){return(0,sl.e)((a,t)=>{let i=!1,n=null,o=null,s=!1;const c=()=>{if(o?.unsubscribe(),o=null,i){i=!1;const B=n;n=null,t.next(B)}s&&t.complete()},g=()=>{o=null,s&&t.complete()};a.subscribe((0,pl.x)(t,B=>{i=!0,n=B,o||(0,Yc.Xf)(r(B)).subscribe(o=(0,pl.x)(t,c,g))},()=>{s=!0,(!i||!o||o.closed)&&t.complete()}))})}(()=>(0,Mo.H)(r,a))}let Tl=(()=>{class r{constructor(t,i,n){this._ngZone=t,this._platform=i,this._scrolled=new An.x,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=n}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){const i=this.scrollContainers.get(t);i&&(i.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new Za.y(i=>{this._globalSubscription||this._addGlobalListener();const n=t>0?this._scrolled.pipe(Ua(t)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):(0,lr.of)()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((t,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(t,i){const n=this.getAncestorScrollContainers(t);return this.scrolled(i).pipe((0,Wr.h)(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(t){const i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,t)&&i.push(o)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,i){let n=El(i),o=t.getElementRef().nativeElement;do{if(n==o)return!0}while(n=n.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Je(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(e.R0b),e.LFG(ta),e.LFG(l.K0,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),$l=(()=>{class r{constructor(t,i,n,o){this.elementRef=t,this.scrollDispatcher=i,this.ngZone=n,this.dir=o,this._destroyed=new An.x,this._elementScrolled=new Za.y(s=>this.ngZone.runOutsideAngular(()=>Je(this.elementRef.nativeElement,"scroll").pipe((0,On.R)(this._destroyed)).subscribe(s)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(t){const i=this.elementRef.nativeElement,n=this.dir&&"rtl"==this.dir.value;null==t.left&&(t.left=n?t.end:t.start),null==t.right&&(t.right=n?t.start:t.end),null!=t.bottom&&(t.top=i.scrollHeight-i.clientHeight-t.bottom),n&&0!=Tc()?(null!=t.left&&(t.right=i.scrollWidth-i.clientWidth-t.left),2==Tc()?t.left=t.right:1==Tc()&&(t.left=t.right?-t.right:t.right)):null!=t.right&&(t.left=i.scrollWidth-i.clientWidth-t.right),this._applyScrollToOptions(t)}_applyScrollToOptions(t){const i=this.elementRef.nativeElement;od()?i.scrollTo(t):(null!=t.top&&(i.scrollTop=t.top),null!=t.left&&(i.scrollLeft=t.left))}measureScrollOffset(t){const i="left",n="right",o=this.elementRef.nativeElement;if("top"==t)return o.scrollTop;if("bottom"==t)return o.scrollHeight-o.clientHeight-o.scrollTop;const s=this.dir&&"rtl"==this.dir.value;return"start"==t?t=s?n:i:"end"==t&&(t=s?i:n),s&&2==Tc()?t==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:s&&1==Tc()?t==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:t==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Tl),e.Y36(e.R0b),e.Y36(Ja,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}}return r})(),Is=(()=>{class r{constructor(t,i,n){this._platform=t,this._change=new An.x,this._changeListener=o=>{this._change.next(o)},this._document=n,i.runOutsideAngular(()=>{if(t.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+n,right:t.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,i=this._getWindow(),n=t.documentElement,o=n.getBoundingClientRect();return{top:-o.top||t.body.scrollTop||i.scrollY||n.scrollTop||0,left:-o.left||t.body.scrollLeft||i.scrollX||n.scrollLeft||0}}change(t=20){return t>0?this._change.pipe(Ua(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ta),e.LFG(e.R0b),e.LFG(l.K0,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),LA=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})(),Nc=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[yd,LA,yd,LA]})}}return r})();class ip{attach(a){return this._attachedHost=a,a.attach(this)}detach(){let a=this._attachedHost;null!=a&&(this._attachedHost=null,a.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(a){this._attachedHost=a}}class Zd extends ip{constructor(a,t,i,n,o){super(),this.component=a,this.viewContainerRef=t,this.injector=i,this.componentFactoryResolver=n,this.projectableNodes=o}}class qA extends ip{constructor(a,t,i,n){super(),this.templateRef=a,this.viewContainerRef=t,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(a,t=this.context){return this.context=t,super.attach(a)}detach(){return this.context=void 0,super.detach()}}class rg extends ip{constructor(a){super(),this.element=a instanceof e.SBq?a.nativeElement:a}}class bh{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(a){return a instanceof Zd?(this._attachedPortal=a,this.attachComponentPortal(a)):a instanceof qA?(this._attachedPortal=a,this.attachTemplatePortal(a)):this.attachDomPortal&&a instanceof rg?(this._attachedPortal=a,this.attachDomPortal(a)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(a){this._disposeFn=a}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Jd extends bh{constructor(a,t,i,n,o){super(),this.outletElement=a,this._componentFactoryResolver=t,this._appRef=i,this._defaultInjector=n,this.attachDomPortal=s=>{const c=s.element,g=this._document.createComment("dom-portal");c.parentNode.insertBefore(g,c),this.outletElement.appendChild(c),this._attachedPortal=s,super.setDisposeFn(()=>{g.parentNode&&g.parentNode.replaceChild(c,g)})},this._document=o}attachComponentPortal(a){const i=(a.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(a.component);let n;return a.viewContainerRef?(n=a.viewContainerRef.createComponent(i,a.viewContainerRef.length,a.injector||a.viewContainerRef.injector,a.projectableNodes||void 0),this.setDisposeFn(()=>n.destroy())):(n=i.create(a.injector||this._defaultInjector||e.zs3.NULL),this._appRef.attachView(n.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(n.hostView),n.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(n)),this._attachedPortal=a,n}attachTemplatePortal(a){let t=a.viewContainerRef,i=t.createEmbeddedView(a.templateRef,a.context,{injector:a.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=t.indexOf(i);-1!==n&&t.remove(n)}),this._attachedPortal=a,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(a){return a.hostView.rootNodes[0]}}let yc=(()=>{class r extends bh{constructor(t,i,n){super(),this._componentFactoryResolver=t,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new e.vpe,this.attachDomPortal=o=>{const s=o.element,c=this._document.createComment("dom-portal");o.setAttachedHost(this),s.parentNode.insertBefore(c,s),this._getRootNode().appendChild(s),this._attachedPortal=o,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(s,c)})},this._document=n}get portal(){return this._attachedPortal}set portal(t){this.hasAttached()&&!t&&!this._isInitialized||(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(t){t.setAttachedHost(this);const i=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,o=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component),s=i.createComponent(o,i.length,t.injector||i.injector,t.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=t,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(t){t.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e._Vd),e.Y36(e.s_b),e.Y36(l.K0))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[e.qOj]})}}return r})(),xd=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();var Wa=ce(3019);const cf=od();class zD{constructor(a,t){this._viewportRuler=a,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=t}attach(){}enable(){if(this._canBeEnabled()){const a=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=a.style.left||"",this._previousHTMLStyles.top=a.style.top||"",a.style.left=Na(-this._previousScrollPosition.left),a.style.top=Na(-this._previousScrollPosition.top),a.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const a=this._document.documentElement,i=a.style,n=this._document.body.style,o=i.scrollBehavior||"",s=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,a.classList.remove("cdk-global-scrollblock"),cf&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),cf&&(i.scrollBehavior=o,n.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,i=this._viewportRuler.getViewportSize();return t.scrollHeight>i.height||t.scrollWidth>i.width}}class a_{constructor(a,t,i,n){this._scrollDispatcher=a,this._ngZone=t,this._viewportRuler=i,this._config=n,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(a){this._overlayRef=a}enable(){if(this._scrollSubscription)return;const a=this._scrollDispatcher.scrolled(0).pipe((0,Wr.h)(t=>!t||!this._overlayRef.overlayElement.contains(t.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=a.subscribe(()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=a.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class Hu{enable(){}disable(){}attach(){}}function og(r,a){return a.some(t=>r.bottomt.bottom||r.rightt.right)}function gy(r,a){return a.some(t=>r.topt.bottom||r.leftt.right)}class Nb{constructor(a,t,i,n){this._scrollDispatcher=a,this._viewportRuler=t,this._ngZone=i,this._config=n,this._scrollSubscription=null}attach(a){this._overlayRef=a}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();og(t,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Ub=(()=>{class r{constructor(t,i,n,o){this._scrollDispatcher=t,this._viewportRuler=i,this._ngZone=n,this.noop=()=>new Hu,this.close=s=>new a_(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new zD(this._viewportRuler,this._document),this.reposition=s=>new Nb(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Tl),e.LFG(Is),e.LFG(e.R0b),e.LFG(l.K0))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();class Dm{constructor(a){if(this.scrollStrategy=new Hu,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,a){const t=Object.keys(a);for(const i of t)void 0!==a[i]&&(this[i]=a[i])}}}class fy{constructor(a,t){this.connectionPair=a,this.scrollableViewProperties=t}}let HD=(()=>{class r{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const i=this._attachedOverlays.indexOf(t);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(l.K0))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),Hb=(()=>{class r extends HD{constructor(t,i){super(t),this._ngZone=i,this._keydownListener=n=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const c=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>c.next(n)):c.next(n);break}}}add(t){super.add(t),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(l.K0),e.LFG(e.R0b,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),GD=(()=>{class r extends HD{constructor(t,i,n){super(t),this._platform=i,this._ngZone=n,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=rl(o)},this._clickListener=o=>{const s=rl(o),c="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const g=this._attachedOverlays.slice();for(let B=g.length-1;B>-1;B--){const O=g[B];if(O._outsidePointerEvents.observers.length<1||!O.hasAttached())continue;if(O.overlayElement.contains(s)||O.overlayElement.contains(c))break;const ne=O._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>ne.next(o)):ne.next(o)}}}add(t){if(super.add(t),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const t=this._document.body;t.removeEventListener("pointerdown",this._pointerDownListener,!0),t.removeEventListener("click",this._clickListener,!0),t.removeEventListener("auxclick",this._clickListener,!0),t.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(t.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(t){t.addEventListener("pointerdown",this._pointerDownListener,!0),t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(l.K0),e.LFG(ta),e.LFG(e.R0b,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),s_=(()=>{class r{constructor(t,i){this._platform=i,this._document=t}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||ia()){const n=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let o=0;othis._backdropClick.next(ne),this._backdropTransitionendHandler=ne=>{this._disposeBackdrop(ne.target)},this._keydownEvents=new An.x,this._outsidePointerEvents=new An.x,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(a){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const t=this._portalOutlet.attach(a);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof t?.onDestroy&&t.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),t}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const a=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),a}dispose(){const a=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,a&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(a){a!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=a,this.hasAttached()&&(a.attach(this),this.updatePosition()))}updateSize(a){this._config={...this._config,...a},this._updateElementSize()}setDirection(a){this._config={...this._config,direction:a},this._updateElementDirection()}addPanelClass(a){this._pane&&this._toggleClasses(this._pane,a,!0)}removePanelClass(a){this._pane&&this._toggleClasses(this._pane,a,!1)}getDirection(){const a=this._config.direction;return a?"string"==typeof a?a:a.value:"ltr"}updateScrollStrategy(a){a!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=a,this.hasAttached()&&(a.attach(this),a.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const a=this._pane.style;a.width=Na(this._config.width),a.height=Na(this._config.height),a.minWidth=Na(this._config.minWidth),a.minHeight=Na(this._config.minHeight),a.maxWidth=Na(this._config.maxWidth),a.maxHeight=Na(this._config.maxHeight)}_togglePointerEvents(a){this._pane.style.pointerEvents=a?"":"none"}_attachBackdrop(){const a="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(a)})}):this._backdropElement.classList.add(a)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const a=this._backdropElement;if(a){if(this._animationsDisabled)return void this._disposeBackdrop(a);a.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{a.addEventListener("transitionend",this._backdropTransitionendHandler)}),a.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(a)},500))}}_toggleClasses(a,t,i){const n=hd(t||[]).filter(o=>!!o);n.length&&(i?a.classList.add(...n):a.classList.remove(...n))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const a=this._ngZone.onStable.pipe((0,On.R)((0,Wa.T)(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),a.unsubscribe())})})}_disposeScrollStrategy(){const a=this._scrollStrategy;a&&(a.disable(),a.detach&&a.detach())}_disposeBackdrop(a){a&&(a.removeEventListener("click",this._backdropClickHandler),a.removeEventListener("transitionend",this._backdropTransitionendHandler),a.remove(),this._backdropElement===a&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const Gb="cdk-overlay-connected-position-bounding-box",Zb=/([A-Za-z%]+)$/;class Im{get positions(){return this._preferredPositions}constructor(a,t,i,n,o){this._viewportRuler=t,this._document=i,this._platform=n,this._overlayContainer=o,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new An.x,this._resizeSubscription=Jr.w0.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(a)}attach(a){this._validatePositions(),a.hostElement.classList.add(Gb),this._overlayRef=a,this._boundingBox=a.hostElement,this._pane=a.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const a=this._originRect,t=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[];let s;for(let c of this._preferredPositions){let g=this._getOriginPoint(a,n,c),B=this._getOverlayPoint(g,t,c),O=this._getOverlayFit(B,t,i,c);if(O.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(c,g);this._canFitWithFlexibleDimensions(O,B,i)?o.push({position:c,origin:g,overlayRect:t,boundingBoxRect:this._calculateBoundingBoxRect(g,c)}):(!s||s.overlayFit.visibleAreag&&(g=O,c=B)}return this._isPushed=!1,void this._applyPosition(c.position,c.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&np(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(Gb),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const a=this._lastPosition;if(a){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._getOriginPoint(this._originRect,this._containerRect,a);this._applyPosition(a,t)}else this.apply()}withScrollableContainers(a){return this._scrollables=a,this}withPositions(a){return this._preferredPositions=a,-1===a.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(a){return this._viewportMargin=a,this}withFlexibleDimensions(a=!0){return this._hasFlexibleDimensions=a,this}withGrowAfterOpen(a=!0){return this._growAfterOpen=a,this}withPush(a=!0){return this._canPush=a,this}withLockedPosition(a=!0){return this._positionLocked=a,this}setOrigin(a){return this._origin=a,this}withDefaultOffsetX(a){return this._offsetX=a,this}withDefaultOffsetY(a){return this._offsetY=a,this}withTransformOriginOn(a){return this._transformOriginSelector=a,this}_getOriginPoint(a,t,i){let n,o;if("center"==i.originX)n=a.left+a.width/2;else{const s=this._isRtl()?a.right:a.left,c=this._isRtl()?a.left:a.right;n="start"==i.originX?s:c}return t.left<0&&(n-=t.left),o="center"==i.originY?a.top+a.height/2:"top"==i.originY?a.top:a.bottom,t.top<0&&(o-=t.top),{x:n,y:o}}_getOverlayPoint(a,t,i){let n,o;return n="center"==i.overlayX?-t.width/2:"start"===i.overlayX?this._isRtl()?-t.width:0:this._isRtl()?0:-t.width,o="center"==i.overlayY?-t.height/2:"top"==i.overlayY?0:-t.height,{x:a.x+n,y:a.y+o}}_getOverlayFit(a,t,i,n){const o=Jb(t);let{x:s,y:c}=a,g=this._getOffset(n,"x"),B=this._getOffset(n,"y");g&&(s+=g),B&&(c+=B);let we=0-c,$e=c+o.height-i.height,nt=this._subtractOverflows(o.width,0-s,s+o.width-i.width),Ft=this._subtractOverflows(o.height,we,$e),ei=nt*Ft;return{visibleArea:ei,isCompletelyWithinViewport:o.width*o.height===ei,fitsInViewportVertically:Ft===o.height,fitsInViewportHorizontally:nt==o.width}}_canFitWithFlexibleDimensions(a,t,i){if(this._hasFlexibleDimensions){const n=i.bottom-t.y,o=i.right-t.x,s=l_(this._overlayRef.getConfig().minHeight),c=l_(this._overlayRef.getConfig().minWidth);return(a.fitsInViewportVertically||null!=s&&s<=n)&&(a.fitsInViewportHorizontally||null!=c&&c<=o)}return!1}_pushOverlayOnScreen(a,t,i){if(this._previousPushAmount&&this._positionLocked)return{x:a.x+this._previousPushAmount.x,y:a.y+this._previousPushAmount.y};const n=Jb(t),o=this._viewportRect,s=Math.max(a.x+n.width-o.width,0),c=Math.max(a.y+n.height-o.height,0),g=Math.max(o.top-i.top-a.y,0),B=Math.max(o.left-i.left-a.x,0);let O=0,ne=0;return O=n.width<=o.width?B||-s:a.xnt&&!this._isInitialRender&&!this._growAfterOpen&&(s=a.y-nt/2)}if("end"===t.overlayX&&!n||"start"===t.overlayX&&n)we=i.width-a.x+this._viewportMargin,O=a.x-this._viewportMargin;else if("start"===t.overlayX&&!n||"end"===t.overlayX&&n)ne=a.x,O=i.right-a.x;else{const $e=Math.min(i.right-a.x+i.left,a.x),nt=this._lastBoundingBoxSize.width;O=2*$e,ne=a.x-$e,O>nt&&!this._isInitialRender&&!this._growAfterOpen&&(ne=a.x-nt/2)}return{top:s,left:ne,bottom:c,right:we,width:O,height:o}}_setBoundingBoxStyles(a,t){const i=this._calculateBoundingBoxRect(a,t);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;n.height=Na(i.height),n.top=Na(i.top),n.bottom=Na(i.bottom),n.width=Na(i.width),n.left=Na(i.left),n.right=Na(i.right),n.alignItems="center"===t.overlayX?"center":"end"===t.overlayX?"flex-end":"flex-start",n.justifyContent="center"===t.overlayY?"center":"bottom"===t.overlayY?"flex-end":"flex-start",o&&(n.maxHeight=Na(o)),s&&(n.maxWidth=Na(s))}this._lastBoundingBoxSize=i,np(this._boundingBox.style,n)}_resetBoundingBoxStyles(){np(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){np(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(a,t){const i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(n){const O=this._viewportRuler.getViewportScrollPosition();np(i,this._getExactOverlayY(t,a,O)),np(i,this._getExactOverlayX(t,a,O))}else i.position="static";let c="",g=this._getOffset(t,"x"),B=this._getOffset(t,"y");g&&(c+=`translateX(${g}px) `),B&&(c+=`translateY(${B}px)`),i.transform=c.trim(),s.maxHeight&&(n?i.maxHeight=Na(s.maxHeight):o&&(i.maxHeight="")),s.maxWidth&&(n?i.maxWidth=Na(s.maxWidth):o&&(i.maxWidth="")),np(this._pane.style,i)}_getExactOverlayY(a,t,i){let n={top:"",bottom:""},o=this._getOverlayPoint(t,this._overlayRect,a);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),"bottom"===a.overlayY?n.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":n.top=Na(o.y),n}_getExactOverlayX(a,t,i){let s,n={left:"",right:""},o=this._getOverlayPoint(t,this._overlayRect,a);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),s=this._isRtl()?"end"===a.overlayX?"left":"right":"end"===a.overlayX?"right":"left","right"===s?n.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":n.left=Na(o.x),n}_getScrollVisibility(){const a=this._getOriginRect(),t=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:gy(a,i),isOriginOutsideView:og(a,i),isOverlayClipped:gy(t,i),isOverlayOutsideView:og(t,i)}}_subtractOverflows(a,...t){return t.reduce((i,n)=>i-Math.max(n,0),a)}_getNarrowedViewportRect(){const a=this._document.documentElement.clientWidth,t=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+a-this._viewportMargin,bottom:i.top+t-this._viewportMargin,width:a-2*this._viewportMargin,height:t-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(a,t){return"x"===t?null==a.offsetX?this._offsetX:a.offsetX:null==a.offsetY?this._offsetY:a.offsetY}_validatePositions(){}_addPanelClasses(a){this._pane&&hd(a).forEach(t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(a=>{this._pane.classList.remove(a)}),this._appliedPanelClasses=[])}_getOriginRect(){const a=this._origin;if(a instanceof e.SBq)return a.nativeElement.getBoundingClientRect();if(a instanceof Element)return a.getBoundingClientRect();const t=a.width||0,i=a.height||0;return{top:a.y,bottom:a.y+i,left:a.x,right:a.x+t,height:i,width:t}}}function np(r,a){for(let t in a)a.hasOwnProperty(t)&&(r[t]=a[t]);return r}function l_(r){if("number"!=typeof r&&null!=r){const[a,t]=r.split(Zb);return t&&"px"!==t?null:parseFloat(a)}return r||null}function Jb(r){return{top:Math.floor(r.top),right:Math.floor(r.right),bottom:Math.floor(r.bottom),left:Math.floor(r.left),width:Math.floor(r.width),height:Math.floor(r.height)}}const jb="cdk-global-overlay-wrapper";class my{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(a){const t=a.getConfig();this._overlayRef=a,this._width&&!t.width&&a.updateSize({width:this._width}),this._height&&!t.height&&a.updateSize({height:this._height}),a.hostElement.classList.add(jb),this._isDisposed=!1}top(a=""){return this._bottomOffset="",this._topOffset=a,this._alignItems="flex-start",this}left(a=""){return this._xOffset=a,this._xPosition="left",this}bottom(a=""){return this._topOffset="",this._bottomOffset=a,this._alignItems="flex-end",this}right(a=""){return this._xOffset=a,this._xPosition="right",this}start(a=""){return this._xOffset=a,this._xPosition="start",this}end(a=""){return this._xOffset=a,this._xPosition="end",this}width(a=""){return this._overlayRef?this._overlayRef.updateSize({width:a}):this._width=a,this}height(a=""){return this._overlayRef?this._overlayRef.updateSize({height:a}):this._height=a,this}centerHorizontally(a=""){return this.left(a),this._xPosition="center",this}centerVertically(a=""){return this.top(a),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const a=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:s,maxHeight:c}=i,g=!("100%"!==n&&"100vw"!==n||s&&"100%"!==s&&"100vw"!==s),B=!("100%"!==o&&"100vh"!==o||c&&"100%"!==c&&"100vh"!==c),O=this._xPosition,ne=this._xOffset,we="rtl"===this._overlayRef.getConfig().direction;let $e="",nt="",Ft="";g?Ft="flex-start":"center"===O?(Ft="center",we?nt=ne:$e=ne):we?"left"===O||"end"===O?(Ft="flex-end",$e=ne):("right"===O||"start"===O)&&(Ft="flex-start",nt=ne):"left"===O||"start"===O?(Ft="flex-start",$e=ne):("right"===O||"end"===O)&&(Ft="flex-end",nt=ne),a.position=this._cssPosition,a.marginLeft=g?"0":$e,a.marginTop=B?"0":this._topOffset,a.marginBottom=this._bottomOffset,a.marginRight=g?"0":nt,t.justifyContent=Ft,t.alignItems=B?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const a=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,i=t.style;t.classList.remove(jb),i.justifyContent=i.alignItems=a.marginTop=a.marginBottom=a.marginLeft=a.marginRight=a.position="",this._overlayRef=null,this._isDisposed=!0}}let _y=(()=>{class r{constructor(t,i,n,o){this._viewportRuler=t,this._document=i,this._platform=n,this._overlayContainer=o}global(){return new my}flexibleConnectedTo(t){return new Im(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Is),e.LFG(l.K0),e.LFG(ta),e.LFG(s_))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),JD=0,Uc=(()=>{class r{constructor(t,i,n,o,s,c,g,B,O,ne,we,$e){this.scrollStrategies=t,this._overlayContainer=i,this._componentFactoryResolver=n,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=c,this._ngZone=g,this._document=B,this._directionality=O,this._location=ne,this._outsideClickDispatcher=we,this._animationsModuleType=$e}create(t){const i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),s=new Dm(t);return s.direction=s.direction||this._directionality.value,new Tm(o,i,n,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(t){const i=this._document.createElement("div");return i.id="cdk-overlay-"+JD++,i.classList.add("cdk-overlay-pane"),t.appendChild(i),i}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(e.z2F)),new Jd(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Ub),e.LFG(s_),e.LFG(e._Vd),e.LFG(_y),e.LFG(Hb),e.LFG(e.zs3),e.LFG(e.R0b),e.LFG(l.K0),e.LFG(Ja),e.LFG(l.Ye),e.LFG(GD),e.LFG(e.QbO,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const jD=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Vb=new e.OlP("cdk-connected-overlay-scroll-strategy");let vy=(()=>{class r{constructor(t){this.elementRef=t}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return r})(),VD=(()=>{class r{get offsetX(){return this._offsetX}set offsetX(t){this._offsetX=t,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(t){this._offsetY=t,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=Sn(t)}get lockPosition(){return this._lockPosition}set lockPosition(t){this._lockPosition=Sn(t)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(t){this._flexibleDimensions=Sn(t)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(t){this._growAfterOpen=Sn(t)}get push(){return this._push}set push(t){this._push=Sn(t)}constructor(t,i,n,o,s){this._overlay=t,this._dir=s,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=Jr.w0.EMPTY,this._attachSubscription=Jr.w0.EMPTY,this._detachSubscription=Jr.w0.EMPTY,this._positionSubscription=Jr.w0.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new e.vpe,this.positionChange=new e.vpe,this.attach=new e.vpe,this.detach=new e.vpe,this.overlayKeydown=new e.vpe,this.overlayOutsideClick=new e.vpe,this._templatePortal=new qA(i,n),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(t){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),t.origin&&this.open&&this._position.apply()),t.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=jD);const t=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=t.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=t.detachments().subscribe(()=>this.detach.emit()),t.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!xa(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const t=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Dm({direction:this._dir,positionStrategy:t,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(t){const i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return t.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const t=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(t),t}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof vy?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(t=>{this.backdropClick.emit(t)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Uu(r,a=!1){return(0,sl.e)((t,i)=>{let n=0;t.subscribe((0,pl.x)(i,o=>{const s=r(o,n++);(s||a)&&i.next(o),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(t=>{this.positionChange.emit(t),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Uc),e.Y36(e.Rgc),e.Y36(e.s_b),e.Y36(Vb),e.Y36(Ja,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[e.TTD]})}}return r})();const km={provide:Vb,deps:[Uc],useFactory:function Q3(r){return()=>r.scrollStrategies.reposition()}};let Bd=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[Uc,km],imports:[yd,xd,Nc,Nc]})}}return r})();var vi=ce(6825),rp=ce(4911);const t1=new e.OlP("MatError"),r1=new e.OlP("MatPrefix"),rT=new e.OlP("MatSuffix"),By={transitionMessages:(0,vi.X$)("transitionMessages",[(0,vi.SB)("enter",(0,vi.oB)({opacity:1,transform:"translateY(0%)"})),(0,vi.eR)("void => enter",[(0,vi.oB)({opacity:0,transform:"translateY(-5px)"}),(0,vi.jt)("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let jd=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r})}}return r})();const Gu=new e.OlP("MatFormField");var Xs=ce(4664),oT=ce(2420);function df(r){return(0,f.U)(()=>r)}function My(r,a){return a?t=>(0,oc.z)(a.pipe((0,yo.q)(1),function aT(){return(0,sl.e)((r,a)=>{r.subscribe((0,pl.x)(a,oT.Z))})}()),t.pipe(My(r))):(0,ma.z)((t,i)=>(0,Yc.Xf)(r(t,i)).pipe((0,yo.q)(1),df(t)))}function sg(r,a=bo.z){const t=(0,Mo.H)(r,a);return My(()=>t)}const sT=["panel"];let Ty=0;class lT{constructor(a,t){this.source=a,this.option=t}}const u1=ll(class{}),d_=new e.OlP("mat-autocomplete-default-options",{providedIn:"root",factory:function u_(){return{autoActiveFirstOption:!1,autoSelectActiveOption:!1,hideSingleSelectionIndicator:!1,requireSelection:!1}}});let cT=(()=>{class r extends u1{get isOpen(){return this._isOpen&&this.showPanel}_setColor(t){this._color=t,this._setThemeClasses(this._classList)}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(t){this._autoActiveFirstOption=Sn(t)}get autoSelectActiveOption(){return this._autoSelectActiveOption}set autoSelectActiveOption(t){this._autoSelectActiveOption=Sn(t)}get requireSelection(){return this._requireSelection}set requireSelection(t){this._requireSelection=Sn(t)}set classList(t){this._classList=t&&t.length?pd(t).reduce((i,n)=>(i[n]=!0,i),{}):{},this._setVisibilityClasses(this._classList),this._setThemeClasses(this._classList),this._elementRef.nativeElement.className=""}constructor(t,i,n,o){super(),this._changeDetectorRef=t,this._elementRef=i,this._defaults=n,this._activeOptionChanges=Jr.w0.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new e.vpe,this.opened=new e.vpe,this.closed=new e.vpe,this.optionActivated=new e.vpe,this._classList={},this.id="mat-autocomplete-"+Ty++,this.inertGroups=o?.SAFARI||!1,this._autoActiveFirstOption=!!n.autoActiveFirstOption,this._autoSelectActiveOption=!!n.autoSelectActiveOption,this._requireSelection=!!n.requireSelection}ngAfterContentInit(){this._keyManager=new Jg(this.options).withWrap().skipPredicate(this._skipPredicate),this._activeOptionChanges=this._keyManager.change.subscribe(t=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[t]||null})}),this._setVisibility()}ngOnDestroy(){this._keyManager?.destroy(),this._activeOptionChanges.unsubscribe()}_setScrollTop(t){this.panel&&(this.panel.nativeElement.scrollTop=t)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(t){const i=new lT(this,t);this.optionSelected.emit(i)}_getPanelAriaLabelledby(t){return this.ariaLabel?null:this.ariaLabelledby?(t?t+" ":"")+this.ariaLabelledby:t}_setVisibilityClasses(t){t[this._visibleClass]=this.showPanel,t[this._hiddenClass]=!this.showPanel}_setThemeClasses(t){t["mat-primary"]="primary"===this._color,t["mat-warn"]="warn"===this._color,t["mat-accent"]="accent"===this._color}_skipPredicate(t){return t.disabled}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(e.SBq),e.Y36(d_),e.Y36(ta))}}static{this.\u0275dir=e.lG2({type:r,viewQuery:function(i,n){if(1&i&&(e.Gf(e.Rgc,7),e.Gf(sT,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.template=o.first),e.iGM(o=e.CRH())&&(n.panel=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",autoSelectActiveOption:"autoSelectActiveOption",requireSelection:"requireSelection",panelWidth:"panelWidth",classList:["class","classList"]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[e.qOj]})}}return r})();const uf=new e.OlP("mat-autocomplete-scroll-strategy"),hf={provide:uf,deps:[Uc],useFactory:function uT(r){return()=>r.scrollStrategies.reposition()}};let pf=(()=>{class r{get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(t){this._autocompleteDisabled=Sn(t)}constructor(t,i,n,o,s,c,g,B,O,ne,we){this._element=t,this._overlay=i,this._viewContainerRef=n,this._zone=o,this._changeDetectorRef=s,this._dir=g,this._formField=B,this._document=O,this._viewportRuler=ne,this._defaults=we,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=Jr.w0.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new An.x,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=(0,rp.P)(()=>{const $e=this.autocomplete?this.autocomplete.options:null;return $e?$e.changes.pipe(na($e),(0,Xs.w)(()=>(0,Wa.T)(...$e.map(nt=>nt.onSelectionChange)))):this._zone.onStable.pipe((0,yo.q)(1),(0,Xs.w)(()=>this.optionSelections))}),this._handlePanelKeydown=$e=>{(27===$e.keyCode&&!xa($e)||38===$e.keyCode&&xa($e,"altKey"))&&(this._pendingAutoselectedOption&&(this._updateNativeInputValue(this._valueBeforeAutoSelection??""),this._pendingAutoselectedOption=null),this._closeKeyEventStream.next(),this._resetActiveItem(),$e.stopPropagation(),$e.preventDefault())},this._trackedModal=null,this._scrollStrategy=c}ngAfterViewInit(){const t=this._getWindow();typeof t<"u"&&this._zone.runOutsideAngular(()=>t.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(t){t.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const t=this._getWindow();typeof t<"u"&&t.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete(),this._clearFromModal()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel(),this._trackedModal&&ot(this._trackedModal,"aria-owns",this.autocomplete.id)}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this._zone.run(()=>{this.autocomplete.closed.emit()}),this.autocomplete._isOpen=this._overlayAttached=!1,this._pendingAutoselectedOption=null,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._updatePanelState(),this._componentDestroyed||this._changeDetectorRef.detectChanges(),this._trackedModal)&&Et(this._trackedModal,"aria-owns",this.autocomplete.id)}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return(0,Wa.T)(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe((0,Wr.h)(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe((0,Wr.h)(()=>this._overlayAttached)):(0,lr.of)()).pipe((0,f.U)(t=>t instanceof Ar?t:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return(0,Wa.T)(Je(this._document,"click"),Je(this._document,"auxclick"),Je(this._document,"touchend")).pipe((0,Wr.h)(t=>{const i=rl(t),n=this._formField?this._formField._elementRef.nativeElement:null,o=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&i!==this._element.nativeElement&&this._document.activeElement!==this._element.nativeElement&&(!n||!n.contains(i))&&(!o||!o.contains(i))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(i)}))}writeValue(t){Promise.resolve(null).then(()=>this._assignOptionValue(t))}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this._element.nativeElement.disabled=t}_handleKeydown(t){const i=t.keyCode,n=xa(t);if(27===i&&!n&&t.preventDefault(),this.activeOption&&13===i&&this.panelOpen&&!n)this.activeOption._selectViaInteraction(),this._resetActiveItem(),t.preventDefault();else if(this.autocomplete){const o=this.autocomplete._keyManager.activeItem,s=38===i||40===i;9===i||s&&!n&&this.panelOpen?this.autocomplete._keyManager.onKeydown(t):s&&this._canOpen()&&this.openPanel(),(s||this.autocomplete._keyManager.activeItem!==o)&&(this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0),this.autocomplete.autoSelectActiveOption&&this.activeOption&&(this._pendingAutoselectedOption||(this._valueBeforeAutoSelection=this._element.nativeElement.value),this._pendingAutoselectedOption=this.activeOption,this._assignOptionValue(this.activeOption.value)))}}_handleInput(t){let i=t.target,n=i.value;"number"===i.type&&(n=""==n?null:parseFloat(n)),this._previousValue!==n&&(this._previousValue=n,this._pendingAutoselectedOption=null,(!this.autocomplete||!this.autocomplete.requireSelection)&&this._onChange(n),n||this._clearPreviousSelectedOption(null,!1),this._canOpen()&&this._document.activeElement===t.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_handleClick(){this._canOpen()&&!this.panelOpen&&this.openPanel()}_floatLabel(t=!1){this._formField&&"auto"===this._formField.floatLabel&&(t?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField&&(this._formField.floatLabel="auto"),this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){const t=this._zone.onStable.pipe((0,yo.q)(1)),i=this.autocomplete.options.changes.pipe(Zr(()=>this._positionStrategy.reapplyLastPosition()),sg(0));return(0,Wa.T)(t,i).pipe((0,Xs.w)(()=>(this._zone.run(()=>{const n=this.panelOpen;this._resetActiveItem(),this._updatePanelState(),this._changeDetectorRef.detectChanges(),this.panelOpen&&this._overlayRef.updatePosition(),n!==this.panelOpen&&(this.panelOpen?(this._captureValueOnAttach(),this._emitOpened()):this.autocomplete.closed.emit())}),this.panelClosingActions)),(0,yo.q)(1)).subscribe(n=>this._setValueAndClose(n))}_emitOpened(){this.autocomplete.opened.emit()}_captureValueOnAttach(){this._valueOnAttach=this._element.nativeElement.value}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_assignOptionValue(t){const i=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(t):t;this._updateNativeInputValue(i??"")}_updateNativeInputValue(t){this._formField?this._formField._control.value=t:this._element.nativeElement.value=t,this._previousValue=t}_setValueAndClose(t){const i=this.autocomplete,n=t?t.source:this._pendingAutoselectedOption;n?(this._clearPreviousSelectedOption(n),this._assignOptionValue(n.value),this._onChange(n.value),i._emitSelectEvent(n),this._element.nativeElement.focus()):i.requireSelection&&this._element.nativeElement.value!==this._valueOnAttach&&(this._clearPreviousSelectedOption(null),this._assignOptionValue(null),i._animationDone?i._animationDone.pipe((0,yo.q)(1)).subscribe(()=>this._onChange(null)):this._onChange(null)),this.closePanel()}_clearPreviousSelectedOption(t,i){this.autocomplete?.options?.forEach(n=>{n!==t&&n.selected&&n.deselect(i)})}_attachOverlay(){let t=this._overlayRef;t?(this._positionStrategy.setOrigin(this._getConnectedElement()),t.updateSize({width:this._getPanelWidth()})):(this._portal=new qA(this.autocomplete.template,this._viewContainerRef,{id:this._formField?.getLabelId()}),t=this._overlay.create(this._getOverlayConfig()),this._overlayRef=t,this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&t&&t.updateSize({width:this._getPanelWidth()})})),t&&!t.hasAttached()&&(t.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const i=this.panelOpen;this.autocomplete._isOpen=this._overlayAttached=!0,this.autocomplete._setColor(this._formField?.color),this._updatePanelState(),this._applyModalPanelOwnership(),this._captureValueOnAttach(),this.panelOpen&&i!==this.panelOpen&&this._emitOpened()}_updatePanelState(){if(this.autocomplete._setVisibility(),this.panelOpen){const t=this._overlayRef;this._keydownSubscription||(this._keydownSubscription=t.keydownEvents().subscribe(this._handlePanelKeydown)),this._outsideClickSubscription||(this._outsideClickSubscription=t.outsidePointerEvents().subscribe())}else this._keydownSubscription?.unsubscribe(),this._outsideClickSubscription?.unsubscribe(),this._keydownSubscription=this._outsideClickSubscription=null}_getOverlayConfig(){return new Dm({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir??void 0,panelClass:this._defaults?.overlayPanelClass})}_getOverlayPosition(){const t=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(t),this._positionStrategy=t,t}_setStrategyPositions(t){const i=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],n=this._aboveClass,o=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:n},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:n}];let s;s="above"===this.position?o:"below"===this.position?i:[...i,...o],t.withPositions(s)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const t=this.autocomplete;if(t.autoActiveFirstOption){let i=-1;for(let n=0;n .cdk-overlay-container [aria-modal="true"]');if(!t)return;const i=this.autocomplete.id;this._trackedModal&&Et(this._trackedModal,"aria-owns",i),ot(t,"aria-owns",i),this._trackedModal=t}_clearFromModal(){this._trackedModal&&(Et(this._trackedModal,"aria-owns",this.autocomplete.id),this._trackedModal=null)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Uc),e.Y36(e.s_b),e.Y36(e.R0b),e.Y36(e.sBO),e.Y36(uf),e.Y36(Ja,8),e.Y36(Gu,9),e.Y36(l.K0,8),e.Y36(Is),e.Y36(d_,8))}}static{this.\u0275dir=e.lG2({type:r,inputs:{autocomplete:["matAutocomplete","autocomplete"],position:["matAutocompletePosition","position"],connectedTo:["matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:["autocomplete","autocompleteAttribute"],autocompleteDisabled:["matAutocompleteDisabled","autocompleteDisabled"]},features:[e.TTD]})}}return r})();function gT(r,a){if(1&r&&(e.TgZ(0,"div",0,1),e.Hsn(2),e.qZA()),2&r){const t=a.id,i=e.oxw();e.Q6J("id",i.id)("ngClass",i._classList),e.uIk("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(t))}}const fT=["*"];let h_=(()=>{class r extends cT{constructor(){super(...arguments),this._visibleClass="mat-autocomplete-visible",this._hiddenClass="mat-autocomplete-hidden",this._animationDone=null}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-autocomplete"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,Tn,5),e.Suo(o,Nr,5)),2&i){let s;e.iGM(s=e.CRH())&&(n.optionGroups=s),e.iGM(s=e.CRH())&&(n.options=s)}},hostAttrs:["ngSkipHydration","",1,"mat-autocomplete"],inputs:{disableRipple:"disableRipple"},exportAs:["matAutocomplete"],features:[e._Bn([{provide:bi,useExisting:r}]),e.qOj],ngContentSelectors:fT,decls:1,vars:0,consts:[["role","listbox",1,"mat-autocomplete-panel",3,"id","ngClass"],["panel",""]],template:function(i,n){1&i&&(e.F$t(),e.YNc(0,gT,3,4,"ng-template"))},dependencies:[l.mk],styles:[".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}"],encapsulation:2,changeDetection:0})}}return r})();const h1={provide:y,useExisting:(0,e.Gpc)(()=>Fm),multi:!0};let Fm=(()=>{class r extends pf{constructor(){super(...arguments),this._aboveClass="mat-autocomplete-panel-above"}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-autocomplete-trigger"],hostVars:7,hostBindings:function(i,n){1&i&&e.NdJ("focusin",function(){return n._handleFocus()})("blur",function(){return n._onTouched()})("input",function(s){return n._handleInput(s)})("keydown",function(s){return n._handleKeydown(s)})("click",function(){return n._handleClick()}),2&i&&e.uIk("autocomplete",n.autocompleteAttribute)("role",n.autocompleteDisabled?null:"combobox")("aria-autocomplete",n.autocompleteDisabled?null:"list")("aria-activedescendant",n.panelOpen&&n.activeOption?n.activeOption.id:null)("aria-expanded",n.autocompleteDisabled?null:n.panelOpen.toString())("aria-owns",n.autocompleteDisabled||!n.panelOpen||null==n.autocomplete?null:n.autocomplete.id)("aria-haspopup",n.autocompleteDisabled?null:"listbox")},exportAs:["matAutocompleteTrigger"],features:[e._Bn([h1]),e.qOj]})}}return r})(),mT=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[hf],imports:[Bd,zs,Fr,l.ez,LA,zs,Fr]})}}return r})();const Iy=["mat-button",""],g1=["*"],f1=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],vT=Wl(Lc(ll(class{constructor(r){this._elementRef=r}})));let Yn=(()=>{class r extends vT{constructor(t,i,n){super(t),this._focusMonitor=i,this._animationMode=n,this.isRoundButton=this._hasHostAttributes("mat-fab","mat-mini-fab"),this.isIconButton=this._hasHostAttributes("mat-icon-button");for(const o of f1)this._hasHostAttributes(o)&&this._getHostElement().classList.add(o);t.nativeElement.classList.add("mat-button-base"),this.isRoundButton&&(this.color="accent")}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(t,i){t?this._focusMonitor.focusVia(this._getHostElement(),t,i):this._getHostElement().focus(i)}_getHostElement(){return this._elementRef.nativeElement}_isRippleDisabled(){return this.disableRipple||this.disabled}_hasHostAttributes(...t){return t.some(i=>this._getHostElement().hasAttribute(i))}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Es),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-icon-button",""],["button","mat-fab",""],["button","mat-mini-fab",""],["button","mat-stroked-button",""],["button","mat-flat-button",""]],viewQuery:function(i,n){if(1&i&&e.Gf(At,5),2&i){let o;e.iGM(o=e.CRH())&&(n.ripple=o.first)}},hostAttrs:[1,"mat-focus-indicator"],hostVars:5,hostBindings:function(i,n){2&i&&(e.uIk("disabled",n.disabled||null),e.ekj("_mat-animation-noopable","NoopAnimations"===n._animationMode)("mat-button-disabled",n.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[e.qOj],attrs:Iy,ngContentSelectors:g1,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"span",0),e.Hsn(1),e.qZA(),e._UZ(2,"span",1)(3,"span",2)),2&i&&(e.xp6(2),e.ekj("mat-button-ripple-round",n.isRoundButton||n.isIconButton),e.Q6J("matRippleDisabled",n._isRippleDisabled())("matRippleCentered",n.isIconButton)("matRippleTrigger",n._getHostElement()))},dependencies:[At],styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}}return r})(),gf=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[bt,Fr,Fr]})}}return r})();function m1(){return(0,sl.e)((r,a)=>{let t=null;r._refCount++;const i=(0,pl.x)(a,void 0,void 0,void 0,()=>{if(!r||r._refCount<=0||0<--r._refCount)return void(t=null);const n=r._connection,o=t;t=null,n&&(!o||n===o)&&n.unsubscribe(),a.unsubscribe()});r.subscribe(i),i.closed||(t=r.connect())})}class p_ extends Za.y{constructor(a,t){super(),this.source=a,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,(0,sl.A)(a)&&(this.lift=a.lift)}_subscribe(a){return this.getSubject().subscribe(a)}getSubject(){const a=this._subject;return(!a||a.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:a}=this;this._subject=this._connection=null,a?.unsubscribe()}connect(){let a=this._connection;if(!a){a=this._connection=new Jr.w0;const t=this.getSubject();a.add(this.source.subscribe((0,pl.x)(t,void 0,()=>{this._teardown(),t.complete()},i=>{this._teardown(),t.error(i)},()=>this._teardown()))),a.closed&&(this._connection=null,a=Jr.w0.EMPTY)}return a}refCount(){return m1()(this)}}class _1{}function Ed(r){return r&&"function"==typeof r.connect&&!(r instanceof p_)}class v1{applyChanges(a,t,i,n,o){a.forEachOperation((s,c,g)=>{let B,O;if(null==s.previousIndex){const ne=i(s,c,g);B=t.createEmbeddedView(ne.templateRef,ne.context,ne.index),O=1}else null==g?(t.remove(c),O=3):(B=t.get(c),t.move(B,g),O=2);o&&o({context:B?.context,operation:O,record:s})})}detach(){}}class xA{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(a=!1,t,i=!0,n){this._multiple=a,this._emitChanges=i,this.compareWith=n,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new An.x,t&&t.length&&(a?t.forEach(o=>this._markSelected(o)):this._markSelected(t[0]),this._selectedToEmit.length=0)}select(...a){this._verifyValueAssignment(a),a.forEach(i=>this._markSelected(i));const t=this._hasQueuedChanges();return this._emitChangeEvent(),t}deselect(...a){this._verifyValueAssignment(a),a.forEach(i=>this._unmarkSelected(i));const t=this._hasQueuedChanges();return this._emitChangeEvent(),t}setSelection(...a){this._verifyValueAssignment(a);const t=this.selected,i=new Set(a);a.forEach(o=>this._markSelected(o)),t.filter(o=>!i.has(o)).forEach(o=>this._unmarkSelected(o));const n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(a){return this.isSelected(a)?this.deselect(a):this.select(a)}clear(a=!0){this._unmarkAll();const t=this._hasQueuedChanges();return a&&this._emitChangeEvent(),t}isSelected(a){return this._selection.has(this._getConcreteValue(a))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(a){this._multiple&&this.selected&&this._selected.sort(a)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(a){a=this._getConcreteValue(a),this.isSelected(a)||(this._multiple||this._unmarkAll(),this.isSelected(a)||this._selection.add(a),this._emitChanges&&this._selectedToEmit.push(a))}_unmarkSelected(a){a=this._getConcreteValue(a),this.isSelected(a)&&(this._selection.delete(a),this._emitChanges&&this._deselectedToEmit.push(a))}_unmarkAll(){this.isEmpty()||this._selection.forEach(a=>this._unmarkSelected(a))}_verifyValueAssignment(a){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(a){if(this.compareWith){for(let t of this._selection)if(this.compareWith(a,t))return t;return a}return a}}let g_=(()=>{class r{constructor(){this._listeners=[]}notify(t,i){for(let n of this._listeners)n(t,i)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(i=>t!==i)}}ngOnDestroy(){this._listeners=[]}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const ff=new e.OlP("_ViewRepeater"),wT=["button"],ky=["*"],gu=new e.OlP("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS"),Qy=new e.OlP("MatButtonToggleGroup"),CT={provide:y,useExisting:(0,e.Gpc)(()=>Sy),multi:!0};let bT=0;class wc{constructor(a,t){this.source=a,this.value=t}}let Sy=(()=>{class r{get name(){return this._name}set name(t){this._name=t,this._markButtonsForCheck()}get vertical(){return this._vertical}set vertical(t){this._vertical=Sn(t)}get value(){const t=this._selectionModel?this._selectionModel.selected:[];return this.multiple?t.map(i=>i.value):t[0]?t[0].value:void 0}set value(t){this._setSelectionByValue(t),this.valueChange.emit(this.value)}get selected(){const t=this._selectionModel?this._selectionModel.selected:[];return this.multiple?t:t[0]||null}get multiple(){return this._multiple}set multiple(t){this._multiple=Sn(t),this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this._markButtonsForCheck()}constructor(t,i){this._changeDetector=t,this._vertical=!1,this._multiple=!1,this._disabled=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+bT++,this.valueChange=new e.vpe,this.change=new e.vpe,this.appearance=i&&i.appearance?i.appearance:"standard"}ngOnInit(){this._selectionModel=new xA(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(t=>t.checked))}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_emitChangeEvent(t){const i=new wc(t,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(t,i,n=!1,o=!1){!this.multiple&&this.selected&&!t.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(t):this._selectionModel.deselect(t):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(t,n)):this._updateModelValue(t,n)}_isSelected(t){return this._selectionModel&&this._selectionModel.isSelected(t)}_isPrechecked(t){return!(typeof this._rawValue>"u")&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>null!=t.value&&i===t.value):t.value===this._rawValue)}_setSelectionByValue(t){this._rawValue=t,this._buttonToggles&&(this.multiple&&t?(Array.isArray(t),this._clearSelection(),t.forEach(i=>this._selectValue(i))):(this._clearSelection(),this._selectValue(t)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(t=>t.checked=!1)}_selectValue(t){const i=this._buttonToggles.find(n=>null!=n.value&&n.value===t);i&&(i.checked=!0,this._selectionModel.select(i))}_updateModelValue(t,i){i&&this._emitChangeEvent(t),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(t=>t._markForCheck())}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(gu,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,Fy,5),2&i){let s;e.iGM(s=e.CRH())&&(n._buttonToggles=s)}},hostAttrs:["role","group",1,"mat-button-toggle-group"],hostVars:5,hostBindings:function(i,n){2&i&&(e.uIk("aria-disabled",n.disabled),e.ekj("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard","standard"===n.appearance))},inputs:{appearance:"appearance",name:"name",vertical:"vertical",value:"value",multiple:"multiple",disabled:"disabled"},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[e._Bn([CT,{provide:Qy,useExisting:r}])]})}}return r})();const Py=ll(class{});let Fy=(()=>{class r extends Py{get buttonId(){return`${this.id}-button`}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(t){this._appearance=t}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(t){const i=Sn(t);i!==this._checked&&(this._checked=i,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(t){this._disabled=Sn(t)}constructor(t,i,n,o,s,c){super(),this._changeDetectorRef=i,this._elementRef=n,this._focusMonitor=o,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new e.vpe;const g=Number(s);this.tabIndex=g||0===g?g:null,this.buttonToggleGroup=t,this.appearance=c&&c.appearance?c.appearance:"standard"}ngOnInit(){const t=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+bT++,t&&(t._isPrechecked(this)?this.checked=!0:t._isSelected(this)!==this._checked&&t._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const t=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),t&&t._isSelected(this)&&t._syncButtonToggle(this,!1,!1,!0)}focus(t){this._buttonElement.nativeElement.focus(t)}_onButtonClick(){const t=!!this._isSingleSelector()||!this._checked;t!==this._checked&&(this._checked=t,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.change.emit(new wc(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this._isSingleSelector()?this.buttonToggleGroup.name:this.name||null}_isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Qy,8),e.Y36(e.sBO),e.Y36(e.SBq),e.Y36(Es),e.$8M("tabindex"),e.Y36(gu,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(1&i&&e.Gf(wT,5),2&i){let o;e.iGM(o=e.CRH())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:12,hostBindings:function(i,n){1&i&&e.NdJ("focus",function(){return n.focus()}),2&i&&(e.uIk("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),e.ekj("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-appearance-standard","standard"===n.appearance))},inputs:{disableRipple:"disableRipple",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",appearance:"appearance",checked:"checked",disabled:"disabled"},outputs:{change:"change"},exportAs:["matButtonToggle"],features:[e.qOj],ngContentSelectors:ky,decls:6,vars:9,consts:[["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"id","disabled","click"],["button",""],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){if(1&i&&(e.F$t(),e.TgZ(0,"button",0,1),e.NdJ("click",function(){return n._onButtonClick()}),e.TgZ(2,"span",2),e.Hsn(3),e.qZA()(),e._UZ(4,"span",3)(5,"span",4)),2&i){const o=e.MAs(1);e.Q6J("id",n.buttonId)("disabled",n.disabled||null),e.uIk("tabindex",n.disabled?-1:n.tabIndex)("aria-pressed",n.checked)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),e.xp6(5),e.Q6J("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[At],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12;border-radius:var(--mat-standard-button-toggle-shape);border:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-text-font)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard{--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12;color:var(--mat-standard-button-toggle-text-color);background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-text-font)}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color);background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color)}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity)}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity)}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}"],encapsulation:2,changeDetection:0})}}return r})(),w1=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,bt,Fr]})}}return r})(),Ly=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,Fr]})}}return r})();const x1=["input"],ST=["label"],B1=new e.OlP("mat-checkbox-default-options",{providedIn:"root",factory:E1});function E1(){return{color:"accent",clickAction:"check-indeterminate"}}let FT=0;const OT=E1(),tF=Kl(Wl(ll(Lc(class{constructor(r){this._elementRef=r}}))));let Ry=(()=>{class r extends tF{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(t){this._required=Sn(t)}constructor(t,i,n,o,s,c,g){super(i),this._changeDetectorRef=n,this._ngZone=o,this._animationMode=c,this._options=g,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new e.vpe,this.indeterminateChange=new e.vpe,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||OT,this.color=this.defaultColor=this._options.color||OT.color,this.tabIndex=parseInt(s)||0,this.id=this._uniqueId=`${t}${++FT}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(t){const i=Sn(t);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){const i=Sn(t);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(t){const i=t!=this._indeterminate;this._indeterminate=Sn(t),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(t){this.checked=!!t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_transitionCheckState(t){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(i!==t&&n&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,t),this._currentCheckState=t,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);const o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const t=this._options?.clickAction;this.disabled||"noop"===t?!this.disabled&&"noop"===t&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==t&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(t){t.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(t,i){if("NoopAnimations"===this._animationMode)return"";switch(t){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(t){const i=this._inputElement;i&&(i.nativeElement.indeterminate=t)}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,viewQuery:function(i,n){if(1&i&&(e.Gf(x1,5),e.Gf(ST,5),e.Gf(At,5)),2&i){let o;e.iGM(o=e.CRH())&&(n._inputElement=o.first),e.iGM(o=e.CRH())&&(n._labelElement=o.first),e.iGM(o=e.CRH())&&(n.ripple=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[e.qOj]})}}return r})(),Yy=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();const RT=function(r){return{enterDuration:r}},T1=["*"];class I1{}const Zo={provide:y,useExisting:(0,e.Gpc)(()=>Bh),multi:!0};let Bh=(()=>{class r extends Ry{constructor(t,i,n,o,s,c,g){super("mat-checkbox-",t,i,o,s,c,g),this._focusMonitor=n,this._animationClasses={uncheckedToChecked:"mat-checkbox-anim-unchecked-checked",uncheckedToIndeterminate:"mat-checkbox-anim-unchecked-indeterminate",checkedToUnchecked:"mat-checkbox-anim-checked-unchecked",checkedToIndeterminate:"mat-checkbox-anim-checked-indeterminate",indeterminateToChecked:"mat-checkbox-anim-indeterminate-checked",indeterminateToUnchecked:"mat-checkbox-anim-indeterminate-unchecked"}}_createChangeEvent(t){const i=new I1;return i.source=this,i.checked=t,i}_getAnimationTargetElement(){return this._elementRef.nativeElement}ngAfterViewInit(){super.ngAfterViewInit(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{t||this._onBlur()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}_onInputClick(t){t.stopPropagation(),super._handleInputClick()}focus(t,i){t?this._focusMonitor.focusVia(this._inputElement,t,i):this._inputElement.nativeElement.focus(i)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(Es),e.Y36(e.R0b),e.$8M("tabindex"),e.Y36(e.QbO,8),e.Y36(B1,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-checkbox"],hostVars:14,hostBindings:function(i,n){2&i&&(e.Ikx("id",n.id),e.uIk("tabindex",null)("aria-label",null)("aria-labelledby",null),e.ekj("mat-checkbox-indeterminate",n.indeterminate)("mat-checkbox-checked",n.checked)("mat-checkbox-disabled",n.disabled)("mat-checkbox-label-before","before"==n.labelPosition)("_mat-animation-noopable","NoopAnimations"===n._animationMode))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[e._Bn([Zo]),e.qOj],ngContentSelectors:T1,decls:17,vars:20,consts:[[1,"mat-checkbox-layout"],["label",""],[1,"mat-checkbox-inner-container"],["type","checkbox",1,"mat-checkbox-input","cdk-visually-hidden",3,"id","required","checked","disabled","tabIndex","change","click"],["input",""],["matRipple","",1,"mat-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleRadius","matRippleCentered","matRippleAnimation"],[1,"mat-ripple-element","mat-checkbox-persistent-ripple"],[1,"mat-checkbox-frame"],[1,"mat-checkbox-background"],["version","1.1","focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mat-checkbox-checkmark"],["fill","none","stroke","white","d","M4.1,12.7 9,17.6 20.3,6.3",1,"mat-checkbox-checkmark-path"],[1,"mat-checkbox-mixedmark"],[1,"mat-checkbox-label",3,"cdkObserveContent"],["checkboxLabel",""],[2,"display","none"]],template:function(i,n){if(1&i&&(e.F$t(),e.TgZ(0,"label",0,1)(2,"span",2)(3,"input",3,4),e.NdJ("change",function(s){return n._onInteractionEvent(s)})("click",function(s){return n._onInputClick(s)}),e.qZA(),e.TgZ(5,"span",5),e._UZ(6,"span",6),e.qZA(),e._UZ(7,"span",7),e.TgZ(8,"span",8),e.O4$(),e.TgZ(9,"svg",9),e._UZ(10,"path",10),e.qZA(),e.kcU(),e._UZ(11,"span",11),e.qZA()(),e.TgZ(12,"span",12,13),e.NdJ("cdkObserveContent",function(){return n._onLabelTextChange()}),e.TgZ(14,"span",14),e._uU(15,"\xa0"),e.qZA(),e.Hsn(16),e.qZA()()),2&i){const o=e.MAs(1),s=e.MAs(13);e.uIk("for",n.inputId),e.xp6(2),e.ekj("mat-checkbox-inner-container-no-side-margin",!s.textContent||!s.textContent.trim()),e.xp6(1),e.Q6J("id",n.inputId)("required",n.required)("checked",n.checked)("disabled",n.disabled)("tabIndex",n.tabIndex),e.uIk("value",n.value)("name",n.name)("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby),e.xp6(2),e.Q6J("matRippleTrigger",o)("matRippleDisabled",n._isRippleDisabled())("matRippleRadius",20)("matRippleCentered",!0)("matRippleAnimation",e.VKq(18,RT,"NoopAnimations"===n._animationMode?0:150))}},dependencies:[At,Ba],styles:['@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}.mat-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-checkbox-layout{-webkit-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:rgba(0,0,0,0);transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:rgba(0,0,0,0)}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}.mat-checkbox-input:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return r})(),Ny=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[bt,Fr,VA,Yy,Fr,Yy]})}}return r})();const Gy=new e.OlP("mat-chips-default-options");let P1=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[Rc,{provide:Gy,useValue:{separatorKeyCodes:[13]}}],imports:[Fr]})}}return r})();const HT=["mat-button",""],F1=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],O1=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],lF=["mat-icon-button",""],Jy=["*"],JT=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],L1=Wl(Lc(ll(class{constructor(r){this._elementRef=r}})));let R1=(()=>{class r extends L1{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(t){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,t)}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=Sn(t),this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this._updateRippleDisabled()}constructor(t,i,n,o){super(t),this._platform=i,this._ngZone=n,this._animationMode=o,this._focusMonitor=(0,e.f3M)(Es),this._rippleLoader=(0,e.f3M)(Xl),this._isFab=!1,this._disableRipple=!1,this._disabled=!1,this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-button-ripple"});const s=t.nativeElement.classList;for(const c of JT)this._hasHostAttributes(c.selector)&&c.mdcClasses.forEach(g=>{s.add(g)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(t="program",i){t?this._focusMonitor.focusVia(this._elementRef.nativeElement,t,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...t){return t.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,features:[e.qOj]})}}return r})(),N1=(()=>{class r extends R1{constructor(t,i,n,o){super(t,i,n,o)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(ta),e.Y36(e.R0b),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(i,n){2&i&&(e.uIk("disabled",n.disabled||null),e.ekj("_mat-animation-noopable","NoopAnimations"===n._animationMode)("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[e.qOj],attrs:HT,ngContentSelectors:O1,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){1&i&&(e.F$t(F1),e._UZ(0,"span",0),e.Hsn(1),e.TgZ(2,"span",1),e.Hsn(3,1),e.qZA(),e.Hsn(4,2),e._UZ(5,"span",2)(6,"span",3)),2&i&&e.ekj("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return r})(),z1=(()=>{class r extends R1{constructor(t,i,n,o){super(t,i,n,o),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(ta),e.Y36(e.R0b),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(i,n){2&i&&(e.uIk("disabled",n.disabled||null),e.ekj("_mat-animation-noopable","NoopAnimations"===n._animationMode)("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[e.qOj],attrs:lF,ngContentSelectors:Jy,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){1&i&&(e.F$t(),e._UZ(0,"span",0),e.Hsn(1),e._UZ(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return r})(),Vy=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,bt,Fr]})}}return r})();var Zu=ce(6232);const Wy=Rs({passive:!0});let H1=(()=>{class r{constructor(t,i){this._platform=t,this._ngZone=i,this._monitoredElements=new Map}monitor(t){if(!this._platform.isBrowser)return Zu.E;const i=El(t),n=this._monitoredElements.get(i);if(n)return n.subject;const o=new An.x,s="cdk-text-field-autofilled",c=g=>{"cdk-text-field-autofill-start"!==g.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===g.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>o.next({target:g.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>o.next({target:g.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",c,Wy),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",c,Wy)}}),o}stopMonitoring(t){const i=El(t),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((t,i)=>this.stopMonitoring(i))}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ta),e.LFG(e.R0b))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),__=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();const G1=new e.OlP("MAT_INPUT_VALUE_ACCESSOR"),$T=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let Ky=0;const eI=Gd(class{constructor(r,a,t,i){this._defaultErrorStateMatcher=r,this._parentForm=a,this._parentFormGroup=t,this.ngControl=i,this.stateChanges=new An.x}});let Z1=(()=>{class r extends eI{get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(t){this._id=t||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(Z.required)??!1}set required(t){this._required=Sn(t)}get type(){return this._type}set type(t){this._type=t||"text",this._validateType(),!this._isTextarea&&Dc().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(t){t!==this.value&&(this._inputValueAccessor.value=t,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(t){this._readonly=Sn(t)}constructor(t,i,n,o,s,c,g,B,O,ne){super(c,o,s,n),this._elementRef=t,this._platform=i,this._autofillMonitor=B,this._formField=ne,this._uid="mat-input-"+Ky++,this.focused=!1,this.stateChanges=new An.x,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(nt=>Dc().has(nt)),this._iOSKeyupListener=nt=>{const Ft=nt.target;!Ft.value&&0===Ft.selectionStart&&0===Ft.selectionEnd&&(Ft.setSelectionRange(1,1),Ft.setSelectionRange(0,0))};const we=this._elementRef.nativeElement,$e=we.nodeName.toLowerCase();this._inputValueAccessor=g||we,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&O.runOutsideAngular(()=>{t.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===$e,this._isTextarea="textarea"===$e,this._isInFormField=!!ne,this._isNativeSelect&&(this.controlType=we.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(t=>{this.autofilled=t.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(t){this._elementRef.nativeElement.focus(t)}_focusChanged(t){t!==this.focused&&(this.focused=t,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const t=this._elementRef.nativeElement.value;this._previousNativeValue!==t&&(this._previousNativeValue=t,this.stateChanges.next())}_dirtyCheckPlaceholder(){const t=this._getPlaceholder();if(t!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=t,t?i.setAttribute("placeholder",t):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){$T.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let t=this._elementRef.nativeElement.validity;return t&&t.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const t=this._elementRef.nativeElement,i=t.options[0];return this.focused||t.multiple||!this.empty||!!(t.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(t){t.length?this._elementRef.nativeElement.setAttribute("aria-describedby",t.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const t=this._elementRef.nativeElement;return this._isNativeSelect&&(t.multiple||t.size>1)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(ta),e.Y36(Ke,10),e.Y36(ue,8),e.Y36(Sr,8),e.Y36(Rc),e.Y36(G1,10),e.Y36(H1),e.Y36(e.R0b),e.Y36(Gu,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,n){1&i&&e.NdJ("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),2&i&&(e.Ikx("id",n.id)("disabled",n.disabled)("required",n.required),e.uIk("name",n.name||null)("readonly",n.readonly&&!n._isNativeSelect||null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),e.ekj("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[e._Bn([{provide:jd,useExisting:r}]),e.qOj,e.TTD]})}}return r})();const v_=["mat-calendar-body",""];function zm(r,a){if(1&r&&(e.TgZ(0,"tr",3)(1,"td",4),e._uU(2),e.qZA()()),2&r){const t=e.oxw();e.xp6(1),e.Udp("padding-top",t._cellPadding)("padding-bottom",t._cellPadding),e.uIk("colspan",t.numCols),e.xp6(1),e.hij(" ",t.label," ")}}function J1(r,a){if(1&r&&(e.TgZ(0,"td",4),e._uU(1),e.qZA()),2&r){const t=e.oxw(2);e.Udp("padding-top",t._cellPadding)("padding-bottom",t._cellPadding),e.uIk("colspan",t._firstRowOffset),e.xp6(1),e.hij(" ",t._firstRowOffset>=t.labelMinRequiredCells?t.label:""," ")}}function y_(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",8)(1,"button",9),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return e.KtG(c._cellClicked(s,n))})("focus",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return e.KtG(c._emitActiveDateChange(s,n))}),e.TgZ(2,"span",10),e._uU(3),e.qZA(),e._UZ(4,"span",11),e.qZA()()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw().index,o=e.oxw();e.Udp("width",o._cellWidth)("padding-top",o._cellPadding)("padding-bottom",o._cellPadding),e.uIk("data-mat-row",n)("data-mat-col",i),e.xp6(1),e.ekj("mat-calendar-body-disabled",!t.enabled)("mat-calendar-body-active",o._isActiveCell(n,i))("mat-calendar-body-range-start",o._isRangeStart(t.compareValue))("mat-calendar-body-range-end",o._isRangeEnd(t.compareValue))("mat-calendar-body-in-range",o._isInRange(t.compareValue))("mat-calendar-body-comparison-bridge-start",o._isComparisonBridgeStart(t.compareValue,n,i))("mat-calendar-body-comparison-bridge-end",o._isComparisonBridgeEnd(t.compareValue,n,i))("mat-calendar-body-comparison-start",o._isComparisonStart(t.compareValue))("mat-calendar-body-comparison-end",o._isComparisonEnd(t.compareValue))("mat-calendar-body-in-comparison-range",o._isInComparisonRange(t.compareValue))("mat-calendar-body-preview-start",o._isPreviewStart(t.compareValue))("mat-calendar-body-preview-end",o._isPreviewEnd(t.compareValue))("mat-calendar-body-in-preview",o._isInPreview(t.compareValue)),e.Q6J("ngClass",t.cssClasses)("tabindex",o._isActiveCell(n,i)?0:-1),e.uIk("aria-label",t.ariaLabel)("aria-disabled",!t.enabled||null)("aria-pressed",o._isSelected(t.compareValue))("aria-current",o.todayValue===t.compareValue?"date":null)("aria-describedby",o._getDescribedby(t.compareValue)),e.xp6(1),e.ekj("mat-calendar-body-selected",o._isSelected(t.compareValue))("mat-calendar-body-comparison-identical",o._isComparisonIdentical(t.compareValue))("mat-calendar-body-today",o.todayValue===t.compareValue),e.xp6(1),e.hij(" ",t.displayValue," ")}}function mF(r,a){if(1&r&&(e.TgZ(0,"tr",5),e.YNc(1,J1,2,6,"td",6),e.YNc(2,y_,5,48,"td",7),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw();e.xp6(1),e.Q6J("ngIf",0===i&&n._firstRowOffset),e.xp6(1),e.Q6J("ngForOf",t)}}function tI(r,a){if(1&r&&(e.TgZ(0,"th",5)(1,"span",6),e._uU(2),e.qZA(),e.TgZ(3,"span",7),e._uU(4),e.qZA()()),2&r){const t=a.$implicit;e.xp6(2),e.Oqu(t.long),e.xp6(2),e.Oqu(t.narrow)}}const qy=["*"];function j1(r,a){}function iI(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-month-view",5),e.NdJ("activeDateChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.activeDate=n)})("_userSelection",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._dateSelected(n))})("dragStarted",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._dragStarted(n))})("dragEnded",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._dragEnded(n))}),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("activeDate",t.activeDate)("selected",t.selected)("dateFilter",t.dateFilter)("maxDate",t.maxDate)("minDate",t.minDate)("dateClass",t.dateClass)("comparisonStart",t.comparisonStart)("comparisonEnd",t.comparisonEnd)("startDateAccessibleName",t.startDateAccessibleName)("endDateAccessibleName",t.endDateAccessibleName)("activeDrag",t._activeDrag)}}function nI(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-year-view",6),e.NdJ("activeDateChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.activeDate=n)})("monthSelected",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._monthSelectedInYearView(n))})("selectedChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._goToDateInView(n,"month"))}),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("activeDate",t.activeDate)("selected",t.selected)("dateFilter",t.dateFilter)("maxDate",t.maxDate)("minDate",t.minDate)("dateClass",t.dateClass)}}function V1(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-multi-year-view",7),e.NdJ("activeDateChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.activeDate=n)})("yearSelected",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._yearSelectedInMultiYearView(n))})("selectedChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._goToDateInView(n,"year"))}),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("activeDate",t.activeDate)("selected",t.selected)("dateFilter",t.dateFilter)("maxDate",t.maxDate)("minDate",t.minDate)("dateClass",t.dateClass)}}function W1(r,a){}const aI=[[["input","matStartDate",""]],[["input","matEndDate",""]]],sI=["input[matStartDate]","input[matEndDate]"];function Hm(r,a){1&r&&(e.TgZ(0,"div",0),e.Hsn(1),e.qZA())}let C_=(()=>{class r{constructor(){this.changes=new An.x,this.calendarLabel="Calendar",this.openCalendarLabel="Open calendar",this.closeCalendarLabel="Close calendar",this.prevMonthLabel="Previous month",this.nextMonthLabel="Next month",this.prevYearLabel="Previous year",this.nextYearLabel="Next year",this.prevMultiYearLabel="Previous 24 years",this.nextMultiYearLabel="Next 24 years",this.switchToMonthViewLabel="Choose date",this.switchToMultiYearViewLabel="Choose month and year",this.startDateLabel="Start date",this.endDateLabel="End date"}formatYearRange(t,i){return`${t} \u2013 ${i}`}formatYearRangeLabel(t,i){return`${t} to ${i}`}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();class Xy{constructor(a,t,i,n,o={},s=a,c){this.value=a,this.displayValue=t,this.ariaLabel=i,this.enabled=n,this.cssClasses=o,this.compareValue=s,this.rawValue=c}}let lI=1;const K1=Rs({passive:!1,capture:!0}),sp=Rs({passive:!0,capture:!0}),b_=Rs({passive:!0});let _f=(()=>{class r{ngAfterViewChecked(){this._focusActiveCellAfterViewChecked&&(this._focusActiveCell(),this._focusActiveCellAfterViewChecked=!1)}constructor(t,i){this._elementRef=t,this._ngZone=i,this._platform=(0,e.f3M)(ta),this._focusActiveCellAfterViewChecked=!1,this.numCols=7,this.activeCell=0,this.isRange=!1,this.cellAspectRatio=1,this.previewStart=null,this.previewEnd=null,this.selectedValueChange=new e.vpe,this.previewChange=new e.vpe,this.activeDateChange=new e.vpe,this.dragStarted=new e.vpe,this.dragEnded=new e.vpe,this._didDragSinceMouseDown=!1,this._enterHandler=n=>{if(this._skipNextFocus&&"focus"===n.type)this._skipNextFocus=!1;else if(n.target&&this.isRange){const o=this._getCellFromElement(n.target);o&&this._ngZone.run(()=>this.previewChange.emit({value:o.enabled?o:null,event:n}))}},this._touchmoveHandler=n=>{if(!this.isRange)return;const o=q1(n),s=o?this._getCellFromElement(o):null;o!==n.target&&(this._didDragSinceMouseDown=!0),Gm(n.target)&&n.preventDefault(),this._ngZone.run(()=>this.previewChange.emit({value:s?.enabled?s:null,event:n}))},this._leaveHandler=n=>{null!==this.previewEnd&&this.isRange&&("blur"!==n.type&&(this._didDragSinceMouseDown=!0),n.target&&this._getCellFromElement(n.target)&&(!n.relatedTarget||!this._getCellFromElement(n.relatedTarget))&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:n})))},this._mousedownHandler=n=>{if(!this.isRange)return;this._didDragSinceMouseDown=!1;const o=n.target&&this._getCellFromElement(n.target);!o||!this._isInRange(o.rawValue)||this._ngZone.run(()=>{this.dragStarted.emit({value:o.rawValue,event:n})})},this._mouseupHandler=n=>{if(!this.isRange)return;const o=Gm(n.target);o?o.closest(".mat-calendar-body")===this._elementRef.nativeElement&&this._ngZone.run(()=>{const s=this._getCellFromElement(o);this.dragEnded.emit({value:s?.rawValue??null,event:n})}):this._ngZone.run(()=>{this.dragEnded.emit({value:null,event:n})})},this._touchendHandler=n=>{const o=q1(n);o&&this._mouseupHandler({target:o})},this._id="mat-calendar-body-"+lI++,this._startDateLabelId=`${this._id}-start-date`,this._endDateLabelId=`${this._id}-end-date`,i.runOutsideAngular(()=>{const n=t.nativeElement;n.addEventListener("touchmove",this._touchmoveHandler,K1),n.addEventListener("mouseenter",this._enterHandler,sp),n.addEventListener("focus",this._enterHandler,sp),n.addEventListener("mouseleave",this._leaveHandler,sp),n.addEventListener("blur",this._leaveHandler,sp),n.addEventListener("mousedown",this._mousedownHandler,b_),n.addEventListener("touchstart",this._mousedownHandler,b_),this._platform.isBrowser&&(window.addEventListener("mouseup",this._mouseupHandler),window.addEventListener("touchend",this._touchendHandler))})}_cellClicked(t,i){this._didDragSinceMouseDown||t.enabled&&this.selectedValueChange.emit({value:t.value,event:i})}_emitActiveDateChange(t,i){t.enabled&&this.activeDateChange.emit({value:t.value,event:i})}_isSelected(t){return this.startValue===t||this.endValue===t}ngOnChanges(t){const i=t.numCols,{rows:n,numCols:o}=this;(t.rows||i)&&(this._firstRowOffset=n&&n.length&&n[0].length?o-n[0].length:0),(t.cellAspectRatio||i||!this._cellPadding)&&(this._cellPadding=50*this.cellAspectRatio/o+"%"),(i||!this._cellWidth)&&(this._cellWidth=100/o+"%")}ngOnDestroy(){const t=this._elementRef.nativeElement;t.removeEventListener("touchmove",this._touchmoveHandler,K1),t.removeEventListener("mouseenter",this._enterHandler,sp),t.removeEventListener("focus",this._enterHandler,sp),t.removeEventListener("mouseleave",this._leaveHandler,sp),t.removeEventListener("blur",this._leaveHandler,sp),t.removeEventListener("mousedown",this._mousedownHandler,b_),t.removeEventListener("touchstart",this._mousedownHandler,b_),this._platform.isBrowser&&(window.removeEventListener("mouseup",this._mouseupHandler),window.removeEventListener("touchend",this._touchendHandler))}_isActiveCell(t,i){let n=t*this.numCols+i;return t&&(n-=this._firstRowOffset),n==this.activeCell}_focusActiveCell(t=!0){this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(()=>{setTimeout(()=>{const i=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");i&&(t||(this._skipNextFocus=!0),i.focus())})})})}_scheduleFocusActiveCellAfterViewChecked(){this._focusActiveCellAfterViewChecked=!0}_isRangeStart(t){return $y(t,this.startValue,this.endValue)}_isRangeEnd(t){return vf(t,this.startValue,this.endValue)}_isInRange(t){return ew(t,this.startValue,this.endValue,this.isRange)}_isComparisonStart(t){return $y(t,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(t,i,n){if(!this._isComparisonStart(t)||this._isRangeStart(t)||!this._isInRange(t))return!1;let o=this.rows[i][n-1];if(!o){const s=this.rows[i-1];o=s&&s[s.length-1]}return o&&!this._isRangeEnd(o.compareValue)}_isComparisonBridgeEnd(t,i,n){if(!this._isComparisonEnd(t)||this._isRangeEnd(t)||!this._isInRange(t))return!1;let o=this.rows[i][n+1];if(!o){const s=this.rows[i+1];o=s&&s[0]}return o&&!this._isRangeStart(o.compareValue)}_isComparisonEnd(t){return vf(t,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(t){return ew(t,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(t){return this.comparisonStart===this.comparisonEnd&&t===this.comparisonStart}_isPreviewStart(t){return $y(t,this.previewStart,this.previewEnd)}_isPreviewEnd(t){return vf(t,this.previewStart,this.previewEnd)}_isInPreview(t){return ew(t,this.previewStart,this.previewEnd,this.isRange)}_getDescribedby(t){return this.isRange?this.startValue===t&&this.endValue===t?`${this._startDateLabelId} ${this._endDateLabelId}`:this.startValue===t?this._startDateLabelId:this.endValue===t?this._endDateLabelId:null:null}_getCellFromElement(t){const i=Gm(t);if(i){const n=i.getAttribute("data-mat-row"),o=i.getAttribute("data-mat-col");if(n&&o)return this.rows[parseInt(n)][parseInt(o)]}return null}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.R0b))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["","mat-calendar-body",""]],hostAttrs:[1,"mat-calendar-body"],inputs:{label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",previewStart:"previewStart",previewEnd:"previewEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange",activeDateChange:"activeDateChange",dragStarted:"dragStarted",dragEnded:"dragEnded"},exportAs:["matCalendarBody"],features:[e.TTD],attrs:v_,decls:6,vars:6,consts:[["aria-hidden","true",4,"ngIf"],["role","row",4,"ngFor","ngForOf"],[1,"mat-calendar-body-hidden-label",3,"id"],["aria-hidden","true"],[1,"mat-calendar-body-label"],["role","row"],["class","mat-calendar-body-label",3,"paddingTop","paddingBottom",4,"ngIf"],["role","gridcell","class","mat-calendar-body-cell-container",3,"width","paddingTop","paddingBottom",4,"ngFor","ngForOf"],["role","gridcell",1,"mat-calendar-body-cell-container"],["type","button",1,"mat-calendar-body-cell",3,"ngClass","tabindex","click","focus"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],["aria-hidden","true",1,"mat-calendar-body-cell-preview"]],template:function(i,n){1&i&&(e.YNc(0,zm,3,6,"tr",0),e.YNc(1,mF,3,2,"tr",1),e.TgZ(2,"label",2),e._uU(3),e.qZA(),e.TgZ(4,"label",2),e._uU(5),e.qZA()),2&i&&(e.Q6J("ngIf",n._firstRowOffset.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--mat-datepicker-calendar-date-disabled-state-text-color)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-disabled-state-outline-color)}.cdk-high-contrast-active .mat-calendar-body-disabled{opacity:.5}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px;color:var(--mat-datepicker-calendar-date-text-color);border-color:var(--mat-datepicker-calendar-date-outline-color)}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}.cdk-high-contrast-active .mat-calendar-body-cell-content{border:none}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-focus-state-background-color)}@media(hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-hover-state-background-color)}}.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color);color:var(--mat-datepicker-calendar-date-selected-state-text-color)}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-disabled-state-background-color)}.mat-calendar-body-selected.mat-calendar-body-today{box-shadow:inset 0 0 0 1px var(--mat-datepicker-calendar-date-today-selected-state-outline-color)}.mat-calendar-body-in-range::before{background:var(--mat-datepicker-calendar-date-in-range-state-background-color)}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color)}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color)}.mat-calendar-body-comparison-bridge-start::before,[dir=rtl] .mat-calendar-body-comparison-bridge-end::before{background:linear-gradient(to right, var(--mat-datepicker-calendar-date-in-range-state-background-color) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color) 50%)}.mat-calendar-body-comparison-bridge-end::before,[dir=rtl] .mat-calendar-body-comparison-bridge-start::before{background:linear-gradient(to left, var(--mat-datepicker-calendar-date-in-range-state-background-color) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after{background:var(--mat-datepicker-calendar-date-in-overlap-range-state-background-color)}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:var(--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color)}.cdk-high-contrast-active .mat-datepicker-popup:not(:empty),.cdk-high-contrast-active .mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.cdk-high-contrast-active .mat-calendar-body-today{outline:dotted 1px}.cdk-high-contrast-active .mat-calendar-body-cell::before,.cdk-high-contrast-active .mat-calendar-body-cell::after,.cdk-high-contrast-active .mat-calendar-body-selected{background:none}.cdk-high-contrast-active .mat-calendar-body-in-range::before,.cdk-high-contrast-active .mat-calendar-body-comparison-bridge-start::before,.cdk-high-contrast-active .mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.cdk-high-contrast-active .mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.cdk-high-contrast-active .mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.cdk-high-contrast-active .mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.cdk-high-contrast-active .mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.cdk-high-contrast-active .mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}[dir=rtl] .mat-calendar-body-label{text-align:right}'],encapsulation:2,changeDetection:0})}}return r})();function x_(r){return"TD"===r?.nodeName}function Gm(r){let a;return x_(r)?a=r:x_(r.parentNode)?a=r.parentNode:x_(r.parentNode?.parentNode)&&(a=r.parentNode.parentNode),null!=a?.getAttribute("data-mat-row")?a:null}function $y(r,a,t){return null!==t&&a!==t&&r=a&&r===t}function ew(r,a,t,i){return i&&null!==a&&null!==t&&a!==t&&r>=a&&r<=t}function q1(r){const a=r.changedTouches[0];return document.elementFromPoint(a.clientX,a.clientY)}class nA{constructor(a,t){this.start=a,this.end=t}}let lp=(()=>{class r{constructor(t,i){this.selection=t,this._adapter=i,this._selectionChanged=new An.x,this.selectionChanged=this._selectionChanged,this.selection=t}updateSelection(t,i){const n=this.selection;this.selection=t,this._selectionChanged.next({selection:t,source:i,oldValue:n})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(t){return this._adapter.isDateInstance(t)&&this._adapter.isValid(t)}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})(),cI=(()=>{class r extends lp{constructor(t){super(null,t)}add(t){super.updateSelection(t,this)}isValid(){return null!=this.selection&&this._isValidDateInstance(this.selection)}isComplete(){return null!=this.selection}clone(){const t=new r(this._adapter);return t.updateSelection(this.selection,this),t}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ys))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})(),AI=(()=>{class r extends lp{constructor(t){super(new nA(null,null),t)}add(t){let{start:i,end:n}=this.selection;null==i?i=t:null==n?n=t:(i=t,n=null),super.updateSelection(new nA(i,n),this)}isValid(){const{start:t,end:i}=this.selection;return null==t&&null==i||(null!=t&&null!=i?this._isValidDateInstance(t)&&this._isValidDateInstance(i)&&this._adapter.compareDate(t,i)<=0:(null==t||this._isValidDateInstance(t))&&(null==i||this._isValidDateInstance(i)))}isComplete(){return null!=this.selection.start&&null!=this.selection.end}clone(){const t=new r(this._adapter);return t.updateSelection(this.selection,this),t}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ys))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();const X1={provide:lp,deps:[[new e.FiY,new e.tp0,lp],ys],useFactory:function dI(r,a){return r||new cI(a)}},uI={provide:lp,deps:[[new e.FiY,new e.tp0,lp],ys],useFactory:function $1(r,a){return r||new AI(a)}},tw=new e.OlP("MAT_DATE_RANGE_SELECTION_STRATEGY");let ex=(()=>{class r{constructor(t){this._dateAdapter=t}selectionFinished(t,i){let{start:n,end:o}=i;return null==n?n=t:null==o&&t&&this._dateAdapter.compareDate(t,n)>=0?o=t:(n=t,o=null),new nA(n,o)}createPreview(t,i){let n=null,o=null;return i.start&&!i.end&&t&&(n=i.start,o=t),new nA(n,o)}createDrag(t,i,n){let o=i.start,s=i.end;if(!o||!s)return null;const c=this._dateAdapter,g=0!==c.compareDate(o,s),B=c.getYear(n)-c.getYear(t),O=c.getMonth(n)-c.getMonth(t),ne=c.getDate(n)-c.getDate(t);return g&&c.sameDate(t,i.start)?(o=n,c.compareDate(n,s)>0&&(s=c.addCalendarYears(s,B),s=c.addCalendarMonths(s,O),s=c.addCalendarDays(s,ne))):g&&c.sameDate(t,i.end)?(s=n,c.compareDate(n,o)<0&&(o=c.addCalendarYears(o,B),o=c.addCalendarMonths(o,O),o=c.addCalendarDays(o,ne))):(o=c.addCalendarYears(o,B),o=c.addCalendarMonths(o,O),o=c.addCalendarDays(o,ne),s=c.addCalendarYears(s,B),s=c.addCalendarMonths(s,O),s=c.addCalendarDays(s,ne)),new nA(o,s)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(ys))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();const yF={provide:tw,deps:[[new e.FiY,new e.tp0,tw],ys],useFactory:function tx(r,a){return r||new ex(a)}};let ix=(()=>{class r{get activeDate(){return this._activeDate}set activeDate(t){const i=this._activeDate,n=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(n,this.minDate,this.maxDate),this._hasSameMonthAndYear(i,this._activeDate)||this._init()}get selected(){return this._selected}set selected(t){this._selected=t instanceof nA?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t)),this._setRanges(this._selected)}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}constructor(t,i,n,o,s){this._changeDetectorRef=t,this._dateFormats=i,this._dateAdapter=n,this._dir=o,this._rangeStrategy=s,this._rerenderSubscription=Jr.w0.EMPTY,this.activeDrag=null,this.selectedChange=new e.vpe,this._userSelection=new e.vpe,this.dragStarted=new e.vpe,this.dragEnded=new e.vpe,this.activeDateChange=new e.vpe,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(na(null)).subscribe(()=>this._init())}ngOnChanges(t){const i=t.comparisonStart||t.comparisonEnd;i&&!i.firstChange&&this._setRanges(this.selected),t.activeDrag&&!this.activeDrag&&this._clearPreview()}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(t){const i=t.value,n=this._getDateFromDayOfMonth(i);let o,s;this._selected instanceof nA?(o=this._getDateInCurrentMonth(this._selected.start),s=this._getDateInCurrentMonth(this._selected.end)):o=s=this._getDateInCurrentMonth(this._selected),(o!==i||s!==i)&&this.selectedChange.emit(n),this._userSelection.emit({value:n,event:t.event}),this._clearPreview(),this._changeDetectorRef.markForCheck()}_updateActiveDate(t){const n=this._activeDate;this.activeDate=this._getDateFromDayOfMonth(t.value),this._dateAdapter.compareDate(n,this.activeDate)&&this.activeDateChange.emit(this._activeDate)}_handleCalendarBodyKeydown(t){const i=this._activeDate,n=this._isRtl();switch(t.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,n?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,n?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case 40:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case 36:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case 33:this.activeDate=t.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 34:this.activeDate=t.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 13:case 32:return this._selectionKeyPressed=!0,void(this._canSelect(this._activeDate)&&t.preventDefault());case 27:return void(null!=this._previewEnd&&!xa(t)&&(this._clearPreview(),this.activeDrag?this.dragEnded.emit({value:null,event:t}):(this.selectedChange.emit(null),this._userSelection.emit({value:null,event:t})),t.preventDefault(),t.stopPropagation()));default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),t.preventDefault()}_handleCalendarBodyKeyup(t){(32===t.keyCode||13===t.keyCode)&&(this._selectionKeyPressed&&this._canSelect(this._activeDate)&&this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:t}),this._selectionKeyPressed=!1)}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let t=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(7+this._dateAdapter.getDayOfWeek(t)-this._dateAdapter.getFirstDayOfWeek())%7,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(t){this._matCalendarBody._focusActiveCell(t)}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_previewChanged({event:t,value:i}){if(this._rangeStrategy){const n=i?i.rawValue:null,o=this._rangeStrategy.createPreview(n,this.selected,t);if(this._previewStart=this._getCellCompareValue(o.start),this._previewEnd=this._getCellCompareValue(o.end),this.activeDrag&&n){const s=this._rangeStrategy.createDrag?.(this.activeDrag.value,this.selected,n,t);s&&(this._previewStart=this._getCellCompareValue(s.start),this._previewEnd=this._getCellCompareValue(s.end))}this._changeDetectorRef.detectChanges()}}_dragEnded(t){if(this.activeDrag)if(t.value){const i=this._rangeStrategy?.createDrag?.(this.activeDrag.value,this.selected,t.value,t.event);this.dragEnded.emit({value:i??null,event:t.event})}else this.dragEnded.emit({value:null,event:t.event})}_getDateFromDayOfMonth(t){return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),t)}_initWeekdays(){const t=this._dateAdapter.getFirstDayOfWeek(),i=this._dateAdapter.getDayOfWeekNames("narrow");let o=this._dateAdapter.getDayOfWeekNames("long").map((s,c)=>({long:s,narrow:i[c]}));this._weekdays=o.slice(t).concat(o.slice(0,t))}_createWeekCells(){const t=this._dateAdapter.getNumDaysInMonth(this.activeDate),i=this._dateAdapter.getDateNames();this._weeks=[[]];for(let n=0,o=this._firstWeekOffset;n=0)&&(!this.maxDate||this._dateAdapter.compareDate(t,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(t))}_getDateInCurrentMonth(t){return t&&this._hasSameMonthAndYear(t,this.activeDate)?this._dateAdapter.getDate(t):null}_hasSameMonthAndYear(t,i){return!(!t||!i||this._dateAdapter.getMonth(t)!=this._dateAdapter.getMonth(i)||this._dateAdapter.getYear(t)!=this._dateAdapter.getYear(i))}_getCellCompareValue(t){if(t){const i=this._dateAdapter.getYear(t),n=this._dateAdapter.getMonth(t),o=this._dateAdapter.getDate(t);return new Date(i,n,o).getTime()}return null}_isRtl(){return this._dir&&"rtl"===this._dir.value}_setRanges(t){t instanceof nA?(this._rangeStart=this._getCellCompareValue(t.start),this._rangeEnd=this._getCellCompareValue(t.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(t),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}_canSelect(t){return!this.dateFilter||this.dateFilter(t)}_clearPreview(){this._previewStart=this._previewEnd=null}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(vA,8),e.Y36(ys,8),e.Y36(Ja,8),e.Y36(tw,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-month-view"]],viewQuery:function(i,n){if(1&i&&e.Gf(_f,5),2&i){let o;e.iGM(o=e.CRH())&&(n._matCalendarBody=o.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName",activeDrag:"activeDrag"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",dragStarted:"dragStarted",dragEnded:"dragEnded",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[e.TTD],decls:7,vars:15,consts:[["role","grid",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col",4,"ngFor","ngForOf"],["aria-hidden","true","colspan","7",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","startDateAccessibleName","endDateAccessibleName","selectedValueChange","activeDateChange","previewChange","dragStarted","dragEnded","keyup","keydown"],["scope","col"],[1,"cdk-visually-hidden"],["aria-hidden","true"]],template:function(i,n){1&i&&(e.TgZ(0,"table",0)(1,"thead",1)(2,"tr"),e.YNc(3,tI,5,2,"th",2),e.qZA(),e.TgZ(4,"tr"),e._UZ(5,"th",3),e.qZA()(),e.TgZ(6,"tbody",4),e.NdJ("selectedValueChange",function(s){return n._dateSelected(s)})("activeDateChange",function(s){return n._updateActiveDate(s)})("previewChange",function(s){return n._previewChanged(s)})("dragStarted",function(s){return n.dragStarted.emit(s)})("dragEnded",function(s){return n._dragEnded(s)})("keyup",function(s){return n._handleCalendarBodyKeyup(s)})("keydown",function(s){return n._handleCalendarBodyKeydown(s)}),e.qZA()()),2&i&&(e.xp6(3),e.Q6J("ngForOf",n._weekdays),e.xp6(3),e.Q6J("label",n._monthLabel)("rows",n._weeks)("todayValue",n._todayDate)("startValue",n._rangeStart)("endValue",n._rangeEnd)("comparisonStart",n._comparisonRangeStart)("comparisonEnd",n._comparisonRangeEnd)("previewStart",n._previewStart)("previewEnd",n._previewEnd)("isRange",n._isRange)("labelMinRequiredCells",3)("activeCell",n._dateAdapter.getDate(n.activeDate)-1)("startDateAccessibleName",n.startDateAccessibleName)("endDateAccessibleName",n.endDateAccessibleName))},dependencies:[l.sg,_f],encapsulation:2,changeDetection:0})}}return r})();const Md=24;let nx=(()=>{class r{get activeDate(){return this._activeDate}set activeDate(t){let i=this._activeDate;const n=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(n,this.minDate,this.maxDate),fu(this._dateAdapter,i,this._activeDate,this.minDate,this.maxDate)||this._init()}get selected(){return this._selected}set selected(t){this._selected=t instanceof nA?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t)),this._setSelectedYear(t)}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}constructor(t,i,n){this._changeDetectorRef=t,this._dateAdapter=i,this._dir=n,this._rerenderSubscription=Jr.w0.EMPTY,this.selectedChange=new e.vpe,this.yearSelected=new e.vpe,this.activeDateChange=new e.vpe,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(na(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());const i=this._dateAdapter.getYear(this._activeDate)-Mh(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let n=0,o=[];nthis._createCellForYear(s))),o=[]);this._changeDetectorRef.markForCheck()}_yearSelected(t){const i=t.value,n=this._dateAdapter.createDate(i,0,1),o=this._getDateFromYear(i);this.yearSelected.emit(n),this.selectedChange.emit(o)}_updateActiveDate(t){const n=this._activeDate;this.activeDate=this._getDateFromYear(t.value),this._dateAdapter.compareDate(n,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(t){const i=this._activeDate,n=this._isRtl();switch(t.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,n?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,n?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-4);break;case 40:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,4);break;case 36:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-Mh(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,Md-Mh(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?10*-Md:-Md);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?10*Md:Md);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked(),t.preventDefault()}_handleCalendarBodyKeyup(t){(32===t.keyCode||13===t.keyCode)&&(this._selectionKeyPressed&&this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:t}),this._selectionKeyPressed=!1)}_getActiveCell(){return Mh(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getDateFromYear(t){const i=this._dateAdapter.getMonth(this.activeDate),n=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(t,i,1));return this._dateAdapter.createDate(t,i,Math.min(this._dateAdapter.getDate(this.activeDate),n))}_createCellForYear(t){const i=this._dateAdapter.createDate(t,0,1),n=this._dateAdapter.getYearName(i),o=this.dateClass?this.dateClass(i,"multi-year"):void 0;return new Xy(t,n,n,this._shouldEnableYear(t),o)}_shouldEnableYear(t){if(null==t||this.maxDate&&t>this._dateAdapter.getYear(this.maxDate)||this.minDate&&t{class r{get activeDate(){return this._activeDate}set activeDate(t){let i=this._activeDate;const n=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(n,this.minDate,this.maxDate),this._dateAdapter.getYear(i)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}get selected(){return this._selected}set selected(t){this._selected=t instanceof nA?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t)),this._setSelectedMonth(t)}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}constructor(t,i,n,o){this._changeDetectorRef=t,this._dateFormats=i,this._dateAdapter=n,this._dir=o,this._rerenderSubscription=Jr.w0.EMPTY,this.selectedChange=new e.vpe,this.monthSelected=new e.vpe,this.activeDateChange=new e.vpe,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(na(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(t){const i=t.value,n=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),i,1);this.monthSelected.emit(n);const o=this._getDateFromMonth(i);this.selectedChange.emit(o)}_updateActiveDate(t){const n=this._activeDate;this.activeDate=this._getDateFromMonth(t.value),this._dateAdapter.compareDate(n,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(t){const i=this._activeDate,n=this._isRtl();switch(t.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,n?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,n?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case 40:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case 36:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?-10:-1);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?10:1);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),t.preventDefault()}_handleCalendarBodyKeyup(t){(32===t.keyCode||13===t.keyCode)&&(this._selectionKeyPressed&&this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:t}),this._selectionKeyPressed=!1)}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let t=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(i=>i.map(n=>this._createCellForMonth(n,t[n]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getMonthInCurrentYear(t){return t&&this._dateAdapter.getYear(t)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(t):null}_getDateFromMonth(t){const i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),t,1),n=this._dateAdapter.getNumDaysInMonth(i);return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),t,Math.min(this._dateAdapter.getDate(this.activeDate),n))}_createCellForMonth(t,i){const n=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),t,1),o=this._dateAdapter.format(n,this._dateFormats.display.monthYearA11yLabel),s=this.dateClass?this.dateClass(n,"year"):void 0;return new Xy(t,i.toLocaleUpperCase(),o,this._shouldEnableMonth(t),s)}_shouldEnableMonth(t){const i=this._dateAdapter.getYear(this.activeDate);if(null==t||this._isYearAndMonthAfterMaxDate(i,t)||this._isYearAndMonthBeforeMinDate(i,t))return!1;if(!this.dateFilter)return!0;for(let o=this._dateAdapter.createDate(i,t,1);this._dateAdapter.getMonth(o)==t;o=this._dateAdapter.addCalendarDays(o,1))if(this.dateFilter(o))return!0;return!1}_isYearAndMonthAfterMaxDate(t,i){if(this.maxDate){const n=this._dateAdapter.getYear(this.maxDate),o=this._dateAdapter.getMonth(this.maxDate);return t>n||t===n&&i>o}return!1}_isYearAndMonthBeforeMinDate(t,i){if(this.minDate){const n=this._dateAdapter.getYear(this.minDate),o=this._dateAdapter.getMonth(this.minDate);return t{class r{constructor(t,i,n,o,s){this._intl=t,this.calendar=i,this._dateAdapter=n,this._dateFormats=o,this._id="mat-calendar-header-"+Wd++,this._periodButtonLabelId=`${this._id}-period-label`,this.calendar.stateChanges.subscribe(()=>s.markForCheck())}get periodButtonText(){return"month"==this.calendar.currentView?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():"year"==this.calendar.currentView?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRange(...this._formatMinAndMaxYearLabels())}get periodButtonDescription(){return"month"==this.calendar.currentView?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():"year"==this.calendar.currentView?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRangeLabel(...this._formatMinAndMaxYearLabels())}get periodButtonLabel(){return"month"==this.calendar.currentView?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView="month"==this.calendar.currentView?"multi-year":"month"}previousClicked(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?-1:-Md)}nextClicked(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?1:Md)}previousEnabled(){return!this.calendar.minDate||!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate)}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(t,i){return"month"==this.calendar.currentView?this._dateAdapter.getYear(t)==this._dateAdapter.getYear(i)&&this._dateAdapter.getMonth(t)==this._dateAdapter.getMonth(i):"year"==this.calendar.currentView?this._dateAdapter.getYear(t)==this._dateAdapter.getYear(i):fu(this._dateAdapter,t,i,this.calendar.minDate,this.calendar.maxDate)}_formatMinAndMaxYearLabels(){const i=this._dateAdapter.getYear(this.calendar.activeDate)-Mh(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),n=i+Md-1;return[this._dateAdapter.getYearName(this._dateAdapter.createDate(i,0,1)),this._dateAdapter.getYearName(this._dateAdapter.createDate(n,0,1))]}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(C_),e.Y36((0,e.Gpc)(()=>cp)),e.Y36(ys,8),e.Y36(vA,8),e.Y36(e.sBO))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:qy,decls:13,vars:11,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["mat-button","","type","button","aria-live","polite",1,"mat-calendar-period-button",3,"click"],["aria-hidden","true"],["viewBox","0 0 10 5","focusable","false","aria-hidden","true",1,"mat-calendar-arrow"],["points","0,0 5,5 10,0"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"disabled","click"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"disabled","click"],[1,"mat-calendar-hidden-label",3,"id"]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"div",0)(1,"div",1)(2,"button",2),e.NdJ("click",function(){return n.currentPeriodClicked()}),e.TgZ(3,"span",3),e._uU(4),e.qZA(),e.O4$(),e.TgZ(5,"svg",4),e._UZ(6,"polygon",5),e.qZA()(),e.kcU(),e._UZ(7,"div",6),e.Hsn(8),e.TgZ(9,"button",7),e.NdJ("click",function(){return n.previousClicked()}),e.qZA(),e.TgZ(10,"button",8),e.NdJ("click",function(){return n.nextClicked()}),e.qZA()()(),e.TgZ(11,"label",9),e._uU(12),e.qZA()),2&i&&(e.xp6(2),e.uIk("aria-label",n.periodButtonLabel)("aria-describedby",n._periodButtonLabelId),e.xp6(2),e.Oqu(n.periodButtonText),e.xp6(1),e.ekj("mat-calendar-invert","month"!==n.calendar.currentView),e.xp6(4),e.Q6J("disabled",!n.previousEnabled()),e.uIk("aria-label",n.prevButtonLabel),e.xp6(1),e.Q6J("disabled",!n.nextEnabled()),e.uIk("aria-label",n.nextButtonLabel),e.xp6(1),e.Q6J("id",n._periodButtonLabelId),e.xp6(1),e.Oqu(n.periodButtonDescription))},dependencies:[N1,z1],encapsulation:2,changeDetection:0})}}return r})(),cp=(()=>{class r{get startAt(){return this._startAt}set startAt(t){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get selected(){return this._selected}set selected(t){this._selected=t instanceof nA?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get activeDate(){return this._clampedActiveDate}set activeDate(t){this._clampedActiveDate=this._dateAdapter.clampDate(t,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}get currentView(){return this._currentView}set currentView(t){const i=this._currentView!==t?t:null;this._currentView=t,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),i&&this.viewChanged.emit(i)}constructor(t,i,n,o){this._dateAdapter=i,this._dateFormats=n,this._changeDetectorRef=o,this._moveFocusOnNextTick=!1,this.startView="month",this.selectedChange=new e.vpe,this.yearSelected=new e.vpe,this.monthSelected=new e.vpe,this.viewChanged=new e.vpe(!0),this._userSelection=new e.vpe,this._userDragDrop=new e.vpe,this._activeDrag=null,this.stateChanges=new An.x,this._intlChanges=t.changes.subscribe(()=>{o.markForCheck(),this.stateChanges.next()})}ngAfterContentInit(){this._calendarHeaderPortal=new Zd(this.headerComponent||iw),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(t){const i=t.minDate&&!this._dateAdapter.sameDate(t.minDate.previousValue,t.minDate.currentValue)?t.minDate:void 0,n=t.maxDate&&!this._dateAdapter.sameDate(t.maxDate.previousValue,t.maxDate.currentValue)?t.maxDate:void 0,o=i||n||t.dateFilter;if(o&&!o.firstChange){const s=this._getCurrentViewComponent();s&&(this._changeDetectorRef.detectChanges(),s._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){this._getCurrentViewComponent()._init()}_dateSelected(t){const i=t.value;(this.selected instanceof nA||i&&!this._dateAdapter.sameDate(i,this.selected))&&this.selectedChange.emit(i),this._userSelection.emit(t)}_yearSelectedInMultiYearView(t){this.yearSelected.emit(t)}_monthSelectedInYearView(t){this.monthSelected.emit(t)}_goToDateInView(t,i){this.activeDate=t,this.currentView=i}_dragStarted(t){this._activeDrag=t}_dragEnded(t){this._activeDrag&&(t.value&&this._userDragDrop.emit(t),this._activeDrag=null)}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(C_),e.Y36(ys,8),e.Y36(vA,8),e.Y36(e.sBO))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-calendar"]],viewQuery:function(i,n){if(1&i&&(e.Gf(ix,5),e.Gf(Jm,5),e.Gf(nx,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.monthView=o.first),e.iGM(o=e.CRH())&&(n.yearView=o.first),e.iGM(o=e.CRH())&&(n.multiYearView=o.first)}},hostAttrs:[1,"mat-calendar"],inputs:{headerComponent:"headerComponent",startAt:"startAt",startView:"startView",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection",_userDragDrop:"_userDragDrop"},exportAs:["matCalendar"],features:[e._Bn([X1]),e.TTD],decls:5,vars:5,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content",3,"ngSwitch"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag","activeDateChange","_userSelection","dragStarted","dragEnded",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","monthSelected","selectedChange",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","yearSelected","selectedChange",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag","activeDateChange","_userSelection","dragStarted","dragEnded"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","monthSelected","selectedChange"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","yearSelected","selectedChange"]],template:function(i,n){1&i&&(e.YNc(0,j1,0,0,"ng-template",0),e.TgZ(1,"div",1),e.YNc(2,iI,1,11,"mat-month-view",2),e.YNc(3,nI,1,6,"mat-year-view",3),e.YNc(4,V1,1,6,"mat-multi-year-view",4),e.qZA()),2&i&&(e.Q6J("cdkPortalOutlet",n._calendarHeaderPortal),e.xp6(1),e.Q6J("ngSwitch",n.currentView),e.xp6(1),e.Q6J("ngSwitchCase","month"),e.xp6(1),e.Q6J("ngSwitchCase","year"),e.xp6(1),e.Q6J("ngSwitchCase","multi-year"))},dependencies:[l.RF,l.n9,zd,yc,ix,Jm,nx],styles:['.mat-calendar{display:block;font-family:var(--mat-datepicker-calendar-text-font);font-size:var(--mat-datepicker-calendar-text-size)}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;align-items:center;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0;margin:0 8px;font-size:var(--mat-datepicker-calendar-period-button-text-size);font-weight:var(--mat-datepicker-calendar-period-button-text-weight)}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle;fill:var(--mat-datepicker-calendar-period-button-icon-color)}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}.cdk-high-contrast-active .mat-calendar-arrow{fill:CanvasText}.mat-calendar-previous-button,.mat-calendar-next-button{position:relative}.mat-datepicker-content .mat-calendar-previous-button,.mat-datepicker-content .mat-calendar-next-button{color:var(--mat-datepicker-calendar-navigation-button-icon-color)}.mat-calendar-previous-button::after,.mat-calendar-next-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:"";margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.mat-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0;color:var(--mat-datepicker-calendar-header-text-color);font-size:var(--mat-datepicker-calendar-header-text-size);font-weight:var(--mat-datepicker-calendar-header-text-weight)}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px;background:var(--mat-datepicker-calendar-header-divider-color)}.mat-calendar-body-cell-content::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.mat-calendar-body-cell:focus .mat-focus-indicator::before{content:""}.mat-calendar-hidden-label{display:none}'],encapsulation:2,changeDetection:0})}}return r})();const Ag={transformPanel:(0,vi.X$)("transformPanel",[(0,vi.eR)("void => enter-dropdown",(0,vi.jt)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,vi.F4)([(0,vi.oB)({opacity:0,transform:"scale(1, 0.8)"}),(0,vi.oB)({opacity:1,transform:"scale(1, 1)"})]))),(0,vi.eR)("void => enter-dialog",(0,vi.jt)("150ms cubic-bezier(0, 0, 0.2, 1)",(0,vi.F4)([(0,vi.oB)({opacity:0,transform:"scale(0.7)"}),(0,vi.oB)({transform:"none",opacity:1})]))),(0,vi.eR)("* => void",(0,vi.jt)("100ms linear",(0,vi.oB)({opacity:0})))]),fadeInCalendar:(0,vi.X$)("fadeInCalendar",[(0,vi.SB)("void",(0,vi.oB)({opacity:0})),(0,vi.SB)("enter",(0,vi.oB)({opacity:1})),(0,vi.eR)("void => *",(0,vi.jt)("120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"))])};let wf=0;const dg=new e.OlP("mat-datepicker-scroll-strategy"),bf={provide:dg,deps:[Uc],useFactory:function Cf(r){return()=>r.scrollStrategies.reposition()}},xf=Wl(class{constructor(r){this._elementRef=r}});let Bf=(()=>{class r extends xf{constructor(t,i,n,o,s,c){super(t),this._changeDetectorRef=i,this._globalModel=n,this._dateAdapter=o,this._rangeSelectionStrategy=s,this._subscriptions=new Jr.w0,this._animationDone=new An.x,this._isAnimating=!1,this._actionsPortal=null,this._closeButtonText=c.closeCalendarLabel}ngOnInit(){this._animationState=this.datepicker.touchUi?"enter-dialog":"enter-dropdown"}ngAfterViewInit(){this._subscriptions.add(this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})),this._calendar.focusActiveCell()}ngOnDestroy(){this._subscriptions.unsubscribe(),this._animationDone.complete()}_handleUserSelection(t){const i=this._model.selection,n=t.value,o=i instanceof nA;if(o&&this._rangeSelectionStrategy){const s=this._rangeSelectionStrategy.selectionFinished(n,i,t.event);this._model.updateSelection(s,this)}else n&&(o||!this._dateAdapter.sameDate(n,i))&&this._model.add(n);(!this._model||this._model.isComplete())&&!this._actionsPortal&&this.datepicker.close()}_handleUserDragDrop(t){this._model.updateSelection(t.value,this)}_startExitAnimation(){this._animationState="void",this._changeDetectorRef.markForCheck()}_handleAnimationEvent(t){this._isAnimating="start"===t.phaseName,this._isAnimating||this._animationDone.next()}_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}_assignActions(t,i){this._model=t?this._globalModel.clone():this._globalModel,this._actionsPortal=t,i&&this._changeDetectorRef.detectChanges()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(lp),e.Y36(ys),e.Y36(tw,8),e.Y36(C_))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-datepicker-content"]],viewQuery:function(i,n){if(1&i&&e.Gf(cp,5),2&i){let o;e.iGM(o=e.CRH())&&(n._calendar=o.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:3,hostBindings:function(i,n){1&i&&e.WFA("@transformPanel.start",function(s){return n._handleAnimationEvent(s)})("@transformPanel.done",function(s){return n._handleAnimationEvent(s)}),2&i&&(e.d8E("@transformPanel",n._animationState),e.ekj("mat-datepicker-content-touch",n.datepicker.touchUi))},inputs:{color:"color"},exportAs:["matDatepickerContent"],features:[e.qOj],decls:5,vars:26,consts:[["cdkTrapFocus","","role","dialog",1,"mat-datepicker-content-container"],[3,"id","ngClass","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","yearSelected","monthSelected","viewChanged","_userSelection","_userDragDrop"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"color","focus","blur","click"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"mat-calendar",1),e.NdJ("yearSelected",function(s){return n.datepicker._selectYear(s)})("monthSelected",function(s){return n.datepicker._selectMonth(s)})("viewChanged",function(s){return n.datepicker._viewChanged(s)})("_userSelection",function(s){return n._handleUserSelection(s)})("_userDragDrop",function(s){return n._handleUserDragDrop(s)}),e.qZA(),e.YNc(2,W1,0,0,"ng-template",2),e.TgZ(3,"button",3),e.NdJ("focus",function(){return n._closeButtonFocused=!0})("blur",function(){return n._closeButtonFocused=!1})("click",function(){return n.datepicker.close()}),e._uU(4),e.qZA()()),2&i){let o;e.ekj("mat-datepicker-content-container-with-custom-header",n.datepicker.calendarHeaderComponent)("mat-datepicker-content-container-with-actions",n._actionsPortal),e.uIk("aria-modal",!0)("aria-labelledby",null!==(o=n._dialogLabelId)&&void 0!==o?o:void 0),e.xp6(1),e.Q6J("id",n.datepicker.id)("ngClass",n.datepicker.panelClass)("startAt",n.datepicker.startAt)("startView",n.datepicker.startView)("minDate",n.datepicker._getMinDate())("maxDate",n.datepicker._getMaxDate())("dateFilter",n.datepicker._getDateFilter())("headerComponent",n.datepicker.calendarHeaderComponent)("selected",n._getSelected())("dateClass",n.datepicker.dateClass)("comparisonStart",n.comparisonStart)("comparisonEnd",n.comparisonEnd)("@fadeInCalendar","enter")("startDateAccessibleName",n.startDateAccessibleName)("endDateAccessibleName",n.endDateAccessibleName),e.xp6(1),e.Q6J("cdkPortalOutlet",n._actionsPortal),e.xp6(1),e.ekj("cdk-visually-hidden",!n._closeButtonFocused),e.Q6J("color",n.color||"primary"),e.xp6(1),e.Oqu(n._closeButtonText)}},dependencies:[l.mk,N1,X0,yc,cp],styles:[".mat-datepicker-content{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);display:block;border-radius:4px;background-color:var(--mat-datepicker-calendar-container-background-color);color:var(--mat-datepicker-calendar-container-text-color)}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-content-container-with-custom-header .mat-calendar{height:auto}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.ng-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{box-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);display:block;max-height:80vh;position:relative;overflow:visible}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}}"],encapsulation:2,data:{animation:[Ag.transformPanel,Ag.fadeInCalendar]},changeDetection:0})}}return r})(),Ju=(()=>{class r{get startAt(){return this._startAt||(this.datepickerInput?this.datepickerInput.getStartValue():null)}set startAt(t){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get color(){return this._color||(this.datepickerInput?this.datepickerInput.getThemePalette():void 0)}set color(t){this._color=t}get touchUi(){return this._touchUi}set touchUi(t){this._touchUi=Sn(t)}get disabled(){return void 0===this._disabled&&this.datepickerInput?this.datepickerInput.disabled:!!this._disabled}set disabled(t){const i=Sn(t);i!==this._disabled&&(this._disabled=i,this.stateChanges.next(void 0))}get restoreFocus(){return this._restoreFocus}set restoreFocus(t){this._restoreFocus=Sn(t)}get panelClass(){return this._panelClass}set panelClass(t){this._panelClass=pd(t)}get opened(){return this._opened}set opened(t){Sn(t)?this.open():this.close()}_getMinDate(){return this.datepickerInput&&this.datepickerInput.min}_getMaxDate(){return this.datepickerInput&&this.datepickerInput.max}_getDateFilter(){return this.datepickerInput&&this.datepickerInput.dateFilter}constructor(t,i,n,o,s,c,g){this._overlay=t,this._ngZone=i,this._viewContainerRef=n,this._dateAdapter=s,this._dir=c,this._model=g,this._inputStateChanges=Jr.w0.EMPTY,this._document=(0,e.f3M)(l.K0),this.startView="month",this._touchUi=!1,this.xPosition="start",this.yPosition="below",this._restoreFocus=!0,this.yearSelected=new e.vpe,this.monthSelected=new e.vpe,this.viewChanged=new e.vpe(!0),this.openedStream=new e.vpe,this.closedStream=new e.vpe,this._opened=!1,this.id="mat-datepicker-"+wf++,this._focusedElementBeforeOpen=null,this._backdropHarnessClass=`${this.id}-backdrop`,this.stateChanges=new An.x,this._scrollStrategy=o}ngOnChanges(t){const i=t.xPosition||t.yPosition;if(i&&!i.firstChange&&this._overlayRef){const n=this._overlayRef.getConfig().positionStrategy;n instanceof Im&&(this._setConnectedPositions(n),this.opened&&this._overlayRef.updatePosition())}this.stateChanges.next(void 0)}ngOnDestroy(){this._destroyOverlay(),this.close(),this._inputStateChanges.unsubscribe(),this.stateChanges.complete()}select(t){this._model.add(t)}_selectYear(t){this.yearSelected.emit(t)}_selectMonth(t){this.monthSelected.emit(t)}_viewChanged(t){this.viewChanged.emit(t)}registerInput(t){return this._inputStateChanges.unsubscribe(),this.datepickerInput=t,this._inputStateChanges=t.stateChanges.subscribe(()=>this.stateChanges.next(void 0)),this._model}registerActions(t){this._actionsPortal=t,this._componentRef?.instance._assignActions(t,!0)}removeActions(t){t===this._actionsPortal&&(this._actionsPortal=null,this._componentRef?.instance._assignActions(null,!0))}open(){this._opened||this.disabled||this._componentRef?.instance._isAnimating||(this._focusedElementBeforeOpen=Pl(),this._openOverlay(),this._opened=!0,this.openedStream.emit())}close(){if(!this._opened||this._componentRef?.instance._isAnimating)return;const t=this._restoreFocus&&this._focusedElementBeforeOpen&&"function"==typeof this._focusedElementBeforeOpen.focus,i=()=>{this._opened&&(this._opened=!1,this.closedStream.emit())};if(this._componentRef){const{instance:n,location:o}=this._componentRef;n._startExitAnimation(),n._animationDone.pipe((0,yo.q)(1)).subscribe(()=>{const s=this._document.activeElement;t&&(!s||s===this._document.activeElement||o.nativeElement.contains(s))&&this._focusedElementBeforeOpen.focus(),this._focusedElementBeforeOpen=null,this._destroyOverlay()})}t?setTimeout(i):i()}_applyPendingSelection(){this._componentRef?.instance?._applyPendingSelection()}_forwardContentValues(t){t.datepicker=this,t.color=this.color,t._dialogLabelId=this.datepickerInput.getOverlayLabelId(),t._assignActions(this._actionsPortal,!1)}_openOverlay(){this._destroyOverlay();const t=this.touchUi,i=new Zd(Bf,this._viewContainerRef),n=this._overlayRef=this._overlay.create(new Dm({positionStrategy:t?this._getDialogStrategy():this._getDropdownStrategy(),hasBackdrop:!0,backdropClass:[t?"cdk-overlay-dark-backdrop":"mat-overlay-transparent-backdrop",this._backdropHarnessClass],direction:this._dir,scrollStrategy:t?this._overlay.scrollStrategies.block():this._scrollStrategy(),panelClass:"mat-datepicker-"+(t?"dialog":"popup")}));this._getCloseStream(n).subscribe(o=>{o&&o.preventDefault(),this.close()}),n.keydownEvents().subscribe(o=>{const s=o.keyCode;(38===s||40===s||37===s||39===s||33===s||34===s)&&o.preventDefault()}),this._componentRef=n.attach(i),this._forwardContentValues(this._componentRef.instance),t||this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(()=>n.updatePosition())}_destroyOverlay(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=this._componentRef=null)}_getDialogStrategy(){return this._overlay.position().global().centerHorizontally().centerVertically()}_getDropdownStrategy(){const t=this._overlay.position().flexibleConnectedTo(this.datepickerInput.getConnectedOverlayOrigin()).withTransformOriginOn(".mat-datepicker-content").withFlexibleDimensions(!1).withViewportMargin(8).withLockedPosition();return this._setConnectedPositions(t)}_setConnectedPositions(t){const i="end"===this.xPosition?"end":"start",n="start"===i?"end":"start",o="above"===this.yPosition?"bottom":"top",s="top"===o?"bottom":"top";return t.withPositions([{originX:i,originY:s,overlayX:i,overlayY:o},{originX:i,originY:o,overlayX:i,overlayY:s},{originX:n,originY:s,overlayX:n,overlayY:o},{originX:n,originY:o,overlayX:n,overlayY:s}])}_getCloseStream(t){const i=["ctrlKey","shiftKey","metaKey"];return(0,Wa.T)(t.backdropClick(),t.detachments(),t.keydownEvents().pipe((0,Wr.h)(n=>27===n.keyCode&&!xa(n)||this.datepickerInput&&xa(n,"altKey")&&38===n.keyCode&&i.every(o=>!xa(n,o)))))}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Uc),e.Y36(e.R0b),e.Y36(e.s_b),e.Y36(dg),e.Y36(ys,8),e.Y36(Ja,8),e.Y36(lp))}}static{this.\u0275dir=e.lG2({type:r,inputs:{calendarHeaderComponent:"calendarHeaderComponent",startAt:"startAt",startView:"startView",color:"color",touchUi:"touchUi",disabled:"disabled",xPosition:"xPosition",yPosition:"yPosition",restoreFocus:"restoreFocus",dateClass:"dateClass",panelClass:"panelClass",opened:"opened"},outputs:{yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",openedStream:"opened",closedStream:"closed"},features:[e.TTD]})}}return r})();class jm{constructor(a,t){this.target=a,this.targetElement=t,this.value=this.target.value}}let nw=(()=>{class r{get value(){return this._model?this._getValueFromModel(this._model.selection):this._pendingValue}set value(t){this._assignValueProgrammatically(t)}get disabled(){return!!this._disabled||this._parentDisabled()}set disabled(t){const i=Sn(t),n=this._elementRef.nativeElement;this._disabled!==i&&(this._disabled=i,this.stateChanges.next(void 0)),i&&this._isInitialized&&n.blur&&n.blur()}_getValidators(){return[this._parseValidator,this._minValidator,this._maxValidator,this._filterValidator]}_registerModel(t){this._model=t,this._valueChangesSubscription.unsubscribe(),this._pendingValue&&this._assignValue(this._pendingValue),this._valueChangesSubscription=this._model.selectionChanged.subscribe(i=>{if(this._shouldHandleChangeEvent(i)){const n=this._getValueFromModel(i.selection);this._lastValueValid=this._isValidValue(n),this._cvaOnChange(n),this._onTouched(),this._formatValue(n),this.dateInput.emit(new jm(this,this._elementRef.nativeElement)),this.dateChange.emit(new jm(this,this._elementRef.nativeElement))}})}constructor(t,i,n){this._elementRef=t,this._dateAdapter=i,this._dateFormats=n,this.dateChange=new e.vpe,this.dateInput=new e.vpe,this.stateChanges=new An.x,this._onTouched=()=>{},this._validatorOnChange=()=>{},this._cvaOnChange=()=>{},this._valueChangesSubscription=Jr.w0.EMPTY,this._localeSubscription=Jr.w0.EMPTY,this._parseValidator=()=>this._lastValueValid?null:{matDatepickerParse:{text:this._elementRef.nativeElement.value}},this._filterValidator=o=>{const s=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(o.value));return!s||this._matchesFilter(s)?null:{matDatepickerFilter:!0}},this._minValidator=o=>{const s=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(o.value)),c=this._getMinDate();return!c||!s||this._dateAdapter.compareDate(c,s)<=0?null:{matDatepickerMin:{min:c,actual:s}}},this._maxValidator=o=>{const s=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(o.value)),c=this._getMaxDate();return!c||!s||this._dateAdapter.compareDate(c,s)>=0?null:{matDatepickerMax:{max:c,actual:s}}},this._lastValueValid=!1,this._localeSubscription=i.localeChanges.subscribe(()=>{this._assignValueProgrammatically(this.value)})}ngAfterViewInit(){this._isInitialized=!0}ngOnChanges(t){rw(t,this._dateAdapter)&&this.stateChanges.next(void 0)}ngOnDestroy(){this._valueChangesSubscription.unsubscribe(),this._localeSubscription.unsubscribe(),this.stateChanges.complete()}registerOnValidatorChange(t){this._validatorOnChange=t}validate(t){return this._validator?this._validator(t):null}writeValue(t){this._assignValueProgrammatically(t)}registerOnChange(t){this._cvaOnChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_onKeydown(t){xa(t,"altKey")&&40===t.keyCode&&["ctrlKey","shiftKey","metaKey"].every(o=>!xa(t,o))&&!this._elementRef.nativeElement.readOnly&&(this._openPopup(),t.preventDefault())}_onInput(t){const i=this._lastValueValid;let n=this._dateAdapter.parse(t,this._dateFormats.parse.dateInput);this._lastValueValid=this._isValidValue(n),n=this._dateAdapter.getValidDateOrNull(n);const o=!this._dateAdapter.sameDate(n,this.value);!n||o?this._cvaOnChange(n):(t&&!this.value&&this._cvaOnChange(n),i!==this._lastValueValid&&this._validatorOnChange()),o&&(this._assignValue(n),this.dateInput.emit(new jm(this,this._elementRef.nativeElement)))}_onChange(){this.dateChange.emit(new jm(this,this._elementRef.nativeElement))}_onBlur(){this.value&&this._formatValue(this.value),this._onTouched()}_formatValue(t){this._elementRef.nativeElement.value=null!=t?this._dateAdapter.format(t,this._dateFormats.display.dateInput):""}_assignValue(t){this._model?(this._assignValueToModel(t),this._pendingValue=null):this._pendingValue=t}_isValidValue(t){return!t||this._dateAdapter.isValid(t)}_parentDisabled(){return!1}_assignValueProgrammatically(t){t=this._dateAdapter.deserialize(t),this._lastValueValid=this._isValidValue(t),t=this._dateAdapter.getValidDateOrNull(t),this._assignValue(t),this._formatValue(t)}_matchesFilter(t){const i=this._getDateFilter();return!i||i(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(ys,8),e.Y36(vA,8))}}static{this.\u0275dir=e.lG2({type:r,inputs:{value:"value",disabled:"disabled"},outputs:{dateChange:"dateChange",dateInput:"dateInput"},features:[e.TTD]})}}return r})();function rw(r,a){const t=Object.keys(r);for(let i of t){const{previousValue:n,currentValue:o}=r[i];if(!a.isDateInstance(n)||!a.isDateInstance(o))return!0;if(!a.sameDate(n,o))return!0}return!1}function aw(r){return sw(r,!0)}function ax(r){return r.nodeType===Node.ELEMENT_NODE}function sw(r,a){if(ax(r)&&a){const i=(r.getAttribute?.("aria-labelledby")?.split(/\s+/g)||[]).reduce((n,o)=>{const s=document.getElementById(o);return s&&n.push(s),n},[]);if(i.length)return i.map(n=>sw(n,!1)).join(" ")}if(ax(r)){const t=r.getAttribute("aria-label")?.trim();if(t)return t}if(function wF(r){return"INPUT"===r.nodeName}(r)||function CF(r){return"TEXTAREA"===r.nodeName}(r)){if(r.labels?.length)return Array.from(r.labels).map(n=>sw(n,!1)).join(" ");const t=r.getAttribute("placeholder")?.trim();if(t)return t;const i=r.getAttribute("title")?.trim();if(i)return i}return(r.textContent||"").replace(/\s+/g," ").trim()}const B_=new e.OlP("MAT_DATE_RANGE_INPUT_PARENT"),sx=Gd((()=>{class r extends nw{constructor(t,i,n,o,s,c,g,B){super(i,g,B),this._rangeInput=t,this._elementRef=i,this._defaultErrorStateMatcher=n,this._injector=o,this._parentForm=s,this._parentFormGroup=c,this._dir=(0,e.f3M)(Ja,{optional:!0})}ngOnInit(){const t=this._injector.get(Ke,null,{optional:!0,self:!0});t&&(this.ngControl=t)}ngDoCheck(){this.ngControl&&this.updateErrorState()}isEmpty(){return 0===this._elementRef.nativeElement.value.length}_getPlaceholder(){return this._elementRef.nativeElement.placeholder}focus(){this._elementRef.nativeElement.focus()}getMirrorValue(){const t=this._elementRef.nativeElement,i=t.value;return i.length>0?i:t.placeholder}_onInput(t){super._onInput(t),this._rangeInput._handleChildValueChange()}_openPopup(){this._rangeInput._openDatepicker()}_getMinDate(){return this._rangeInput.min}_getMaxDate(){return this._rangeInput.max}_getDateFilter(){return this._rangeInput.dateFilter}_parentDisabled(){return this._rangeInput._groupDisabled}_shouldHandleChangeEvent({source:t}){return t!==this._rangeInput._startInput&&t!==this._rangeInput._endInput}_assignValueProgrammatically(t){super._assignValueProgrammatically(t),(this===this._rangeInput._startInput?this._rangeInput._endInput:this._rangeInput._startInput)?._validatorOnChange()}_getAccessibleName(){return aw(this._elementRef.nativeElement)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(B_),e.Y36(e.SBq),e.Y36(Rc),e.Y36(e.zs3),e.Y36(ue,8),e.Y36(Sr,8),e.Y36(ys,8),e.Y36(vA,8))}}static{this.\u0275dir=e.lG2({type:r,features:[e.qOj]})}}return r})());let fI=(()=>{class r extends sx{constructor(t,i,n,o,s,c,g,B){super(t,i,n,o,s,c,g,B),this._startValidator=O=>{const ne=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(O.value)),we=this._model?this._model.selection.end:null;return!ne||!we||this._dateAdapter.compareDate(ne,we)<=0?null:{matStartDateInvalid:{end:we,actual:ne}}},this._validator=Z.compose([...super._getValidators(),this._startValidator])}_getValueFromModel(t){return t.start}_shouldHandleChangeEvent(t){return!(!super._shouldHandleChangeEvent(t)||(t.oldValue?.start?t.selection.start&&!this._dateAdapter.compareDate(t.oldValue.start,t.selection.start):!t.selection.start))}_assignValueToModel(t){if(this._model){const i=new nA(t,this._model.selection.end);this._model.updateSelection(i,this)}}_formatValue(t){super._formatValue(t),this._rangeInput._handleChildValueChange()}_onKeydown(t){const i=this._rangeInput._endInput,n=this._elementRef.nativeElement,o="rtl"!==this._dir?.value;(39===t.keyCode&&o||37===t.keyCode&&!o)&&n.selectionStart===n.value.length&&n.selectionEnd===n.value.length?(t.preventDefault(),i._elementRef.nativeElement.setSelectionRange(0,0),i.focus()):super._onKeydown(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(B_),e.Y36(e.SBq),e.Y36(Rc),e.Y36(e.zs3),e.Y36(ue,8),e.Y36(Sr,8),e.Y36(ys,8),e.Y36(vA,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","matStartDate",""]],hostAttrs:["type","text",1,"mat-start-date","mat-date-range-input-inner"],hostVars:5,hostBindings:function(i,n){1&i&&e.NdJ("input",function(s){return n._onInput(s.target.value)})("change",function(){return n._onChange()})("keydown",function(s){return n._onKeydown(s)})("blur",function(){return n._onBlur()}),2&i&&(e.Ikx("disabled",n.disabled),e.uIk("aria-haspopup",n._rangeInput.rangePicker?"dialog":null)("aria-owns",(null==n._rangeInput.rangePicker?null:n._rangeInput.rangePicker.opened)&&n._rangeInput.rangePicker.id||null)("min",n._getMinDate()?n._dateAdapter.toIso8601(n._getMinDate()):null)("max",n._getMaxDate()?n._dateAdapter.toIso8601(n._getMaxDate()):null))},inputs:{errorStateMatcher:"errorStateMatcher"},outputs:{dateChange:"dateChange",dateInput:"dateInput"},features:[e._Bn([{provide:y,useExisting:r,multi:!0},{provide:R,useExisting:r,multi:!0}]),e.qOj]})}}return r})(),lx=(()=>{class r extends sx{constructor(t,i,n,o,s,c,g,B){super(t,i,n,o,s,c,g,B),this._endValidator=O=>{const ne=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(O.value)),we=this._model?this._model.selection.start:null;return!ne||!we||this._dateAdapter.compareDate(ne,we)>=0?null:{matEndDateInvalid:{start:we,actual:ne}}},this._validator=Z.compose([...super._getValidators(),this._endValidator])}_getValueFromModel(t){return t.end}_shouldHandleChangeEvent(t){return!(!super._shouldHandleChangeEvent(t)||(t.oldValue?.end?t.selection.end&&!this._dateAdapter.compareDate(t.oldValue.end,t.selection.end):!t.selection.end))}_assignValueToModel(t){if(this._model){const i=new nA(this._model.selection.start,t);this._model.updateSelection(i,this)}}_onKeydown(t){const i=this._rangeInput._startInput,n=this._elementRef.nativeElement,o="rtl"!==this._dir?.value;if(8!==t.keyCode||n.value)if((37===t.keyCode&&o||39===t.keyCode&&!o)&&0===n.selectionStart&&0===n.selectionEnd){t.preventDefault();const s=i._elementRef.nativeElement.value.length;i._elementRef.nativeElement.setSelectionRange(s,s),i.focus()}else super._onKeydown(t);else i.focus()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(B_),e.Y36(e.SBq),e.Y36(Rc),e.Y36(e.zs3),e.Y36(ue,8),e.Y36(Sr,8),e.Y36(ys,8),e.Y36(vA,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","matEndDate",""]],hostAttrs:["type","text",1,"mat-end-date","mat-date-range-input-inner"],hostVars:5,hostBindings:function(i,n){1&i&&e.NdJ("input",function(s){return n._onInput(s.target.value)})("change",function(){return n._onChange()})("keydown",function(s){return n._onKeydown(s)})("blur",function(){return n._onBlur()}),2&i&&(e.Ikx("disabled",n.disabled),e.uIk("aria-haspopup",n._rangeInput.rangePicker?"dialog":null)("aria-owns",(null==n._rangeInput.rangePicker?null:n._rangeInput.rangePicker.opened)&&n._rangeInput.rangePicker.id||null)("min",n._getMinDate()?n._dateAdapter.toIso8601(n._getMinDate()):null)("max",n._getMaxDate()?n._dateAdapter.toIso8601(n._getMaxDate()):null))},inputs:{errorStateMatcher:"errorStateMatcher"},outputs:{dateChange:"dateChange",dateInput:"dateInput"},features:[e._Bn([{provide:y,useExisting:r,multi:!0},{provide:R,useExisting:r,multi:!0}]),e.qOj]})}}return r})(),mI=0,_I=(()=>{class r{get value(){return this._model?this._model.selection:null}get shouldLabelFloat(){return this.focused||!this.empty}get placeholder(){const t=this._startInput?._getPlaceholder()||"",i=this._endInput?._getPlaceholder()||"";return t||i?`${t} ${this.separator} ${i}`:""}get rangePicker(){return this._rangePicker}set rangePicker(t){t&&(this._model=t.registerInput(this),this._rangePicker=t,this._closedSubscription.unsubscribe(),this._closedSubscription=t.closedStream.subscribe(()=>{this._startInput?._onTouched(),this._endInput?._onTouched()}),this._registerModel(this._model))}get required(){return this._required??(this._isTargetRequired(this)||this._isTargetRequired(this._startInput)||this._isTargetRequired(this._endInput))??!1}set required(t){this._required=Sn(t)}get dateFilter(){return this._dateFilter}set dateFilter(t){const i=this._startInput,n=this._endInput,o=i&&i._matchesFilter(i.value),s=n&&n._matchesFilter(i.value);this._dateFilter=t,i&&i._matchesFilter(i.value)!==o&&i._validatorOnChange(),n&&n._matchesFilter(n.value)!==s&&n._validatorOnChange()}get min(){return this._min}set min(t){const i=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t));this._dateAdapter.sameDate(i,this._min)||(this._min=i,this._revalidate())}get max(){return this._max}set max(t){const i=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t));this._dateAdapter.sameDate(i,this._max)||(this._max=i,this._revalidate())}get disabled(){return this._startInput&&this._endInput?this._startInput.disabled&&this._endInput.disabled:this._groupDisabled}set disabled(t){const i=Sn(t);i!==this._groupDisabled&&(this._groupDisabled=i,this.stateChanges.next(void 0))}get errorState(){return!(!this._startInput||!this._endInput)&&(this._startInput.errorState||this._endInput.errorState)}get empty(){const t=!!this._startInput&&this._startInput.isEmpty(),i=!!this._endInput&&this._endInput.isEmpty();return t&&i}constructor(t,i,n,o,s){this._changeDetectorRef=t,this._elementRef=i,this._dateAdapter=o,this._formField=s,this._closedSubscription=Jr.w0.EMPTY,this.id="mat-date-range-input-"+mI++,this.focused=!1,this.controlType="mat-date-range-input",this._groupDisabled=!1,this._ariaDescribedBy=null,this.separator="\u2013",this.comparisonStart=null,this.comparisonEnd=null,this.stateChanges=new An.x,s?._elementRef.nativeElement.classList.contains("mat-mdc-form-field")&&i.nativeElement.classList.add("mat-mdc-input-element","mat-mdc-form-field-input-control","mdc-text-field__input"),this.ngControl=n}setDescribedByIds(t){this._ariaDescribedBy=t.length?t.join(" "):null}onContainerClick(){!this.focused&&!this.disabled&&(this._model&&this._model.selection.start?this._endInput.focus():this._startInput.focus())}ngAfterContentInit(){this._model&&this._registerModel(this._model),(0,Wa.T)(this._startInput.stateChanges,this._endInput.stateChanges).subscribe(()=>{this.stateChanges.next(void 0)})}ngOnChanges(t){rw(t,this._dateAdapter)&&this.stateChanges.next(void 0)}ngOnDestroy(){this._closedSubscription.unsubscribe(),this.stateChanges.complete()}getStartValue(){return this.value?this.value.start:null}getThemePalette(){return this._formField?this._formField.color:void 0}getConnectedOverlayOrigin(){return this._formField?this._formField.getConnectedOverlayOrigin():this._elementRef}getOverlayLabelId(){return this._formField?this._formField.getLabelId():null}_getInputMirrorValue(t){const i="start"===t?this._startInput:this._endInput;return i?i.getMirrorValue():""}_shouldHidePlaceholders(){return!!this._startInput&&!this._startInput.isEmpty()}_handleChildValueChange(){this.stateChanges.next(void 0),this._changeDetectorRef.markForCheck()}_openDatepicker(){this._rangePicker&&this._rangePicker.open()}_shouldHideSeparator(){return(!this._formField||this._formField.getLabelId()&&!this._formField._shouldLabelFloat())&&this.empty}_getAriaLabelledby(){const t=this._formField;return t&&t._hasFloatingLabel()?t._labelId:null}_getStartDateAccessibleName(){return this._startInput._getAccessibleName()}_getEndDateAccessibleName(){return this._endInput._getAccessibleName()}_updateFocus(t){this.focused=null!==t,this.stateChanges.next()}_revalidate(){this._startInput&&this._startInput._validatorOnChange(),this._endInput&&this._endInput._validatorOnChange()}_registerModel(t){this._startInput&&this._startInput._registerModel(t),this._endInput&&this._endInput._registerModel(t)}_isTargetRequired(t){return t?.ngControl?.control?.hasValidator(Z.required)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(e.SBq),e.Y36(je,10),e.Y36(ys,8),e.Y36(Gu,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-date-range-input"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,fI,5),e.Suo(o,lx,5)),2&i){let s;e.iGM(s=e.CRH())&&(n._startInput=s.first),e.iGM(s=e.CRH())&&(n._endInput=s.first)}},hostAttrs:["role","group",1,"mat-date-range-input"],hostVars:8,hostBindings:function(i,n){2&i&&(e.uIk("id",n.id)("aria-labelledby",n._getAriaLabelledby())("aria-describedby",n._ariaDescribedBy)("data-mat-calendar",n.rangePicker?n.rangePicker.id:null),e.ekj("mat-date-range-input-hide-placeholders",n._shouldHidePlaceholders())("mat-date-range-input-required",n.required))},inputs:{rangePicker:"rangePicker",required:"required",dateFilter:"dateFilter",min:"min",max:"max",disabled:"disabled",separator:"separator",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd"},exportAs:["matDateRangeInput"],features:[e._Bn([{provide:jd,useExisting:r},{provide:B_,useExisting:r}]),e.TTD],ngContentSelectors:sI,decls:11,vars:5,consts:[["cdkMonitorSubtreeFocus","",1,"mat-date-range-input-container",3,"cdkFocusChange"],[1,"mat-date-range-input-wrapper"],["aria-hidden","true",1,"mat-date-range-input-mirror"],[1,"mat-date-range-input-separator"],[1,"mat-date-range-input-wrapper","mat-date-range-input-end-wrapper"]],template:function(i,n){1&i&&(e.F$t(aI),e.TgZ(0,"div",0),e.NdJ("cdkFocusChange",function(s){return n._updateFocus(s)}),e.TgZ(1,"div",1),e.Hsn(2),e.TgZ(3,"span",2),e._uU(4),e.qZA()(),e.TgZ(5,"span",3),e._uU(6),e.qZA(),e.TgZ(7,"div",4),e.Hsn(8,1),e.TgZ(9,"span",2),e._uU(10),e.qZA()()()),2&i&&(e.xp6(4),e.Oqu(n._getInputMirrorValue("start")),e.xp6(1),e.ekj("mat-date-range-input-separator-hidden",n._shouldHideSeparator()),e.xp6(1),e.Oqu(n.separator),e.xp6(4),e.Oqu(n._getInputMirrorValue("end")))},dependencies:[zd],styles:[".mat-date-range-input{display:block;width:100%}.mat-date-range-input-container{display:flex;align-items:center}.mat-date-range-input-separator{transition:opacity 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);margin:0 4px;color:var(--mat-datepicker-range-input-separator-color)}.mat-form-field-disabled .mat-date-range-input-separator{color:var(--mat-datepicker-range-input-disabled-state-separator-color)}._mat-animation-noopable .mat-date-range-input-separator{transition:none}.mat-date-range-input-separator-hidden{-webkit-user-select:none;user-select:none;opacity:0;transition:none}.mat-date-range-input-wrapper{position:relative;overflow:hidden;max-width:calc(50% - 4px)}.mat-date-range-input-end-wrapper{flex-grow:1}.mat-date-range-input-inner{position:absolute;top:0;left:0;font:inherit;background:rgba(0,0,0,0);color:currentColor;border:none;outline:none;padding:0;margin:0;vertical-align:bottom;text-align:inherit;-webkit-appearance:none;width:100%;height:100%}.mat-date-range-input-inner:-moz-ui-invalid{box-shadow:none}.mat-date-range-input-inner::placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-moz-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-webkit-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner:-ms-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner[disabled]{color:var(--mat-datepicker-range-input-disabled-state-text-color)}.mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{opacity:0}._mat-animation-noopable .mat-date-range-input-inner::placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-moz-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-webkit-input-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner:-ms-input-placeholder{transition:none}.mat-date-range-input-mirror{-webkit-user-select:none;user-select:none;visibility:hidden;white-space:nowrap;display:inline-block;min-width:2px}.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix{width:200px}"],encapsulation:2,changeDetection:0})}}return r})(),lw=(()=>{class r extends Ju{_forwardContentValues(t){super._forwardContentValues(t);const i=this.datepickerInput;i&&(t.comparisonStart=i.comparisonStart,t.comparisonEnd=i.comparisonEnd,t.startDateAccessibleName=i._getStartDateAccessibleName(),t.endDateAccessibleName=i._getEndDateAccessibleName())}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-date-range-picker"]],exportAs:["matDateRangePicker"],features:[e._Bn([uI,yF,{provide:Ju,useExisting:r}]),e.qOj],decls:0,vars:0,template:function(i,n){},encapsulation:2,changeDetection:0})}}return r})(),Vm=(()=>{class r{constructor(t){this._datepicker=t}_applySelection(){this._datepicker._applyPendingSelection(),this._datepicker.close()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Ju))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matDatepickerApply",""],["","matDateRangePickerApply",""]],hostBindings:function(i,n){1&i&&e.NdJ("click",function(){return n._applySelection()})}})}}return r})(),cw=(()=>{class r{constructor(t){this._datepicker=t}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Ju))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matDatepickerCancel",""],["","matDateRangePickerCancel",""]],hostBindings:function(i,n){1&i&&e.NdJ("click",function(){return n._datepicker.close()})}})}}return r})(),E_=(()=>{class r{constructor(t,i){this._datepicker=t,this._viewContainerRef=i}ngAfterViewInit(){this._portal=new qA(this._template,this._viewContainerRef),this._datepicker.registerActions(this._portal)}ngOnDestroy(){this._datepicker.removeActions(this._portal),this._portal&&this._portal.isAttached&&this._portal?.detach()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Ju),e.Y36(e.s_b))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-datepicker-actions"],["mat-date-range-picker-actions"]],viewQuery:function(i,n){if(1&i&&e.Gf(e.Rgc,5),2&i){let o;e.iGM(o=e.CRH())&&(n._template=o.first)}},ngContentSelectors:qy,decls:1,vars:0,consts:[[1,"mat-datepicker-actions"]],template:function(i,n){1&i&&(e.F$t(),e.YNc(0,Hm,2,0,"ng-template"))},styles:[".mat-datepicker-actions{display:flex;justify-content:flex-end;align-items:center;padding:0 8px 8px 8px}.mat-datepicker-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}}return r})(),Aw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[C_,bf],imports:[l.ez,Vy,Bd,vh,xd,Fr,LA]})}}return r})();function Wm(r,a){}class Km{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let Ef=(()=>{class r extends bh{constructor(t,i,n,o,s,c,g,B){super(),this._elementRef=t,this._focusTrapFactory=i,this._config=o,this._interactivityChecker=s,this._ngZone=c,this._overlayRef=g,this._focusMonitor=B,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this.attachDomPortal=O=>{this._portalOutlet.hasAttached();const ne=this._portalOutlet.attachDomPortal(O);return this._contentAttached(),ne},this._document=n,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(t){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(t);return this._contentAttached(),i}attachTemplatePortal(t){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(t);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(t,i){this._interactivityChecker.isFocusable(t)||(t.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const n=()=>{t.removeEventListener("blur",n),t.removeEventListener("mousedown",n),t.removeAttribute("tabindex")};t.addEventListener("blur",n),t.addEventListener("mousedown",n)})),t.focus(i)}_focusByCssSelector(t,i){let n=this._elementRef.nativeElement.querySelector(t);n&&this._forceFocus(n,i)}_trapFocus(){const t=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||t.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const t=this._config.restoreFocus;let i=null;if("string"==typeof t?i=this._document.querySelector(t):"boolean"==typeof t?i=t?this._elementFocusedBeforeDialogWasOpened:null:t&&(i=t),this._config.restoreFocus&&i&&"function"==typeof i.focus){const n=Pl(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const t=this._elementRef.nativeElement,i=Pl();return t===i||t.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Pl())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(fA),e.Y36(l.K0,8),e.Y36(Km),e.Y36(du),e.Y36(e.R0b),e.Y36(Tm),e.Y36(Es))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(1&i&&e.Gf(yc,7),2&i){let o;e.iGM(o=e.CRH())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){2&i&&e.uIk("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[e.qOj],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){1&i&&e.YNc(0,Wm,0,0,"ng-template",0)},dependencies:[yc],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return r})();class dw{constructor(a,t){this.overlayRef=a,this.config=t,this.closed=new An.x,this.disableClose=t.disableClose,this.backdropClick=a.backdropClick(),this.keydownEvents=a.keydownEvents(),this.outsidePointerEvents=a.outsidePointerEvents(),this.id=t.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!xa(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=a.detachments().subscribe(()=>{!1!==t.closeOnOverlayDetachments&&this.close()})}close(a,t){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=t?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(a),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(a="",t=""){return this.overlayRef.updateSize({width:a,height:t}),this}addPanelClass(a){return this.overlayRef.addPanelClass(a),this}removePanelClass(a){return this.overlayRef.removePanelClass(a),this}}const cx=new e.OlP("DialogScrollStrategy"),vI=new e.OlP("DialogData"),yI=new e.OlP("DefaultDialogConfig"),M_={provide:cx,deps:[Uc],useFactory:function uw(r){return()=>r.scrollStrategies.block()}};let D_=0,wI=(()=>{class r{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(t,i,n,o,s,c){this._overlay=t,this._injector=i,this._defaultOptions=n,this._parentDialog=o,this._overlayContainer=s,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new An.x,this._afterOpenedAtThisLevel=new An.x,this._ariaHiddenElements=new Map,this.afterAllClosed=(0,rp.P)(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(na(void 0))),this._scrollStrategy=c}open(t,i){(i={...this._defaultOptions||new Km,...i}).id=i.id||"cdk-dialog-"+D_++,i.id&&this.getDialogById(i.id);const o=this._getOverlayConfig(i),s=this._overlay.create(o),c=new dw(s,i),g=this._attachContainer(s,c,i);return c.containerInstance=g,this._attachDialogContent(t,c,g,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(c),c.closed.subscribe(()=>this._removeOpenDialog(c,!0)),this.afterOpened.next(c),c}closeAll(){hw(this.openDialogs,t=>t.close())}getDialogById(t){return this.openDialogs.find(i=>i.id===t)}ngOnDestroy(){hw(this._openDialogsAtThisLevel,t=>{!1===t.config.closeOnDestroy&&this._removeOpenDialog(t,!1)}),hw(this._openDialogsAtThisLevel,t=>t.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(t){const i=new Dm({positionStrategy:t.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:t.scrollStrategy||this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight,width:t.width,height:t.height,disposeOnNavigation:t.closeOnNavigation});return t.backdropClass&&(i.backdropClass=t.backdropClass),i}_attachContainer(t,i,n){const o=n.injector||n.viewContainerRef?.injector,s=[{provide:Km,useValue:n},{provide:dw,useValue:i},{provide:Tm,useValue:t}];let c;n.container?"function"==typeof n.container?c=n.container:(c=n.container.type,s.push(...n.container.providers(n))):c=Ef;const g=new Zd(c,n.viewContainerRef,e.zs3.create({parent:o||this._injector,providers:s}),n.componentFactoryResolver);return t.attach(g).instance}_attachDialogContent(t,i,n,o){if(t instanceof e.Rgc){const s=this._createInjector(o,i,n,void 0);let c={$implicit:o.data,dialogRef:i};o.templateContext&&(c={...c,..."function"==typeof o.templateContext?o.templateContext():o.templateContext}),n.attachTemplatePortal(new qA(t,null,c,s))}else{const s=this._createInjector(o,i,n,this._injector),c=n.attachComponentPortal(new Zd(t,o.viewContainerRef,s,o.componentFactoryResolver));i.componentRef=c,i.componentInstance=c.instance}}_createInjector(t,i,n,o){const s=t.injector||t.viewContainerRef?.injector,c=[{provide:vI,useValue:t.data},{provide:dw,useValue:i}];return t.providers&&("function"==typeof t.providers?c.push(...t.providers(i,t,n)):c.push(...t.providers)),t.direction&&(!s||!s.get(Ja,null,{optional:!0}))&&c.push({provide:Ja,useValue:{value:t.direction,change:(0,lr.of)()}}),e.zs3.create({parent:s||o,providers:c})}_removeOpenDialog(t,i){const n=this.openDialogs.indexOf(t);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,s)=>{o?s.setAttribute("aria-hidden",o):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const t=this._overlayContainer.getContainerElement();if(t.parentElement){const i=t.parentElement.children;for(let n=i.length-1;n>-1;n--){const o=i[n];o!==t&&"SCRIPT"!==o.nodeName&&"STYLE"!==o.nodeName&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Uc),e.LFG(e.zs3),e.LFG(yI,8),e.LFG(r,12),e.LFG(s_),e.LFG(cx))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();function hw(r,a){let t=r.length;for(;t--;)a(r[t])}let CI=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[wI,M_],imports:[Bd,xd,vh,xd]})}}return r})();class T_{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}let dx=(()=>{class r extends Ef{constructor(t,i,n,o,s,c,g,B){super(t,i,n,o,s,c,g,B),this._animationStateChanged=new e.vpe}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(t){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:t})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(fA),e.Y36(l.K0,8),e.Y36(T_),e.Y36(du),e.Y36(e.R0b),e.Y36(Tm),e.Y36(Es))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["ng-component"]],features:[e.qOj],decls:0,vars:0,template:function(i,n){},encapsulation:2})}}return r})();class ux{constructor(a,t,i){this._ref=a,this._containerInstance=i,this._afterOpened=new An.x,this._beforeClosed=new An.x,this._state=0,this.disableClose=t.disableClose,this.id=a.id,i._animationStateChanged.pipe((0,Wr.h)(n=>"opened"===n.state),(0,yo.q)(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe((0,Wr.h)(n=>"closed"===n.state),(0,yo.q)(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),a.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),(0,Wa.T)(this.backdropClick(),this.keydownEvents().pipe((0,Wr.h)(n=>27===n.keyCode&&!this.disableClose&&!xa(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),I_(this,"keydown"===n.type?"keyboard":"mouse"))})}close(a){this._result=a,this._containerInstance._animationStateChanged.pipe((0,Wr.h)(t=>"closing"===t.state),(0,yo.q)(1)).subscribe(t=>{this._beforeClosed.next(a),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),t.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(a){let t=this._ref.config.positionStrategy;return a&&(a.left||a.right)?a.left?t.left(a.left):t.right(a.right):t.centerHorizontally(),a&&(a.top||a.bottom)?a.top?t.top(a.top):t.bottom(a.bottom):t.centerVertically(),this._ref.updatePosition(),this}updateSize(a="",t=""){return this._ref.updateSize(a,t),this}addPanelClass(a){return this._ref.addPanelClass(a),this}removePanelClass(a){return this._ref.removePanelClass(a),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function I_(r,a,t){return r._closeInteractionType=a,r.close(t)}let MI=0,DI=(()=>{class r{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(t,i,n,o,s,c,g,B,O,ne){this._overlay=t,this._defaultOptions=n,this._parentDialog=o,this._dialogRefConstructor=g,this._dialogContainerType=B,this._dialogDataToken=O,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new An.x,this._afterOpenedAtThisLevel=new An.x,this._idPrefix="mat-dialog-",this.dialogConfigClass=T_,this.afterAllClosed=(0,rp.P)(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(na(void 0))),this._scrollStrategy=c,this._dialog=i.get(wI)}open(t,i){let n;(i={...this._defaultOptions||new T_,...i}).id=i.id||`${this._idPrefix}${MI++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const o=this._dialog.open(t,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:Km,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(s,c,g)=>(n=new this._dialogRefConstructor(s,i,g),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:g},{provide:this._dialogDataToken,useValue:c.data},{provide:this._dialogRefConstructor,useValue:n}])});return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{const s=this.openDialogs.indexOf(n);s>-1&&(this.openDialogs.splice(s,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(t){return this.openDialogs.find(i=>i.id===t)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(t){let i=t.length;for(;i--;)t[i].close()}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();const Mf={params:{enterAnimationDuration:"150ms",exitAnimationDuration:"75ms"}},fx={dialogContainer:(0,vi.X$)("dialogContainer",[(0,vi.SB)("void, exit",(0,vi.oB)({opacity:0,transform:"scale(0.7)"})),(0,vi.SB)("enter",(0,vi.oB)({transform:"none"})),(0,vi.eR)("* => enter",(0,vi.ru)([(0,vi.jt)("{{enterAnimationDuration}} cubic-bezier(0, 0, 0.2, 1)",(0,vi.oB)({transform:"none",opacity:1})),(0,vi.IO)("@*",(0,vi.pV)(),{optional:!0})]),Mf),(0,vi.eR)("* => void, * => exit",(0,vi.ru)([(0,vi.jt)("{{exitAnimationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)",(0,vi.oB)({opacity:0})),(0,vi.IO)("@*",(0,vi.pV)(),{optional:!0})]),Mf)])};function fw(r,a){}const S__params_enterAnimationDuration="150ms",S__params_exitAnimationDuration="75ms";class mx extends T_{constructor(){super(...arguments),this.enterAnimationDuration=Mf.params.enterAnimationDuration,this.exitAnimationDuration=Mf.params.exitAnimationDuration}}let mw=(()=>{class r extends dx{_onAnimationDone({toState:t,totalTime:i}){"enter"===t?this._openAnimationDone(i):"exit"===t&&this._animationStateChanged.next({state:"closed",totalTime:i})}_onAnimationStart({toState:t,totalTime:i}){"enter"===t?this._animationStateChanged.next({state:"opening",totalTime:i}):("exit"===t||"void"===t)&&this._animationStateChanged.next({state:"closing",totalTime:i})}_startExitAnimation(){this._state="exit",this._changeDetectorRef.markForCheck()}constructor(t,i,n,o,s,c,g,B,O){super(t,i,n,o,s,c,g,O),this._changeDetectorRef=B,this._state="enter"}_getAnimationState(){return{value:this._state,params:{enterAnimationDuration:this._config.enterAnimationDuration||S__params_enterAnimationDuration,exitAnimationDuration:this._config.exitAnimationDuration||S__params_exitAnimationDuration}}}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(fA),e.Y36(l.K0,8),e.Y36(mx),e.Y36(du),e.Y36(e.R0b),e.Y36(Tm),e.Y36(e.sBO),e.Y36(Es))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-dialog-container"],hostVars:7,hostBindings:function(i,n){1&i&&e.WFA("@dialogContainer.start",function(s){return n._onAnimationStart(s)})("@dialogContainer.done",function(s){return n._onAnimationDone(s)}),2&i&&(e.Ikx("id",n._config.id),e.uIk("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),e.d8E("@dialogContainer",n._getAnimationState()))},features:[e.qOj],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){1&i&&e.YNc(0,fw,0,0,"ng-template",0)},dependencies:[yc],styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions.mat-dialog-actions-align-center,.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions.mat-dialog-actions-align-end,.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,data:{animation:[fx.dialogContainer]}})}}return r})();class _r extends ux{}const Yr=new e.OlP("MatDialogData"),_x=new e.OlP("mat-dialog-default-options"),vx=new e.OlP("mat-dialog-scroll-strategy"),wx={provide:vx,deps:[Uc],useFactory:function yx(r){return()=>r.scrollStrategies.block()}};let xo=(()=>{class r extends DI{constructor(t,i,n,o,s,c,g,B){super(t,i,o,c,g,s,_r,mw,Yr,B),this.dialogConfigClass=mx}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Uc),e.LFG(e.zs3),e.LFG(l.Ye,8),e.LFG(_x,8),e.LFG(vx),e.LFG(r,12),e.LFG(s_),e.LFG(e.QbO,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})(),P_=0,Cc=(()=>{class r{constructor(t,i,n){this.dialogRef=t,this._elementRef=i,this._dialog=n,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=_w(this._elementRef,this._dialog.openDialogs))}ngOnChanges(t){const i=t._matDialogClose||t._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(t){I_(this.dialogRef,0===t.screenX&&0===t.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(_r,8),e.Y36(e.SBq),e.Y36(xo))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){1&i&&e.NdJ("click",function(s){return n._onButtonClick(s)}),2&i&&e.uIk("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[e.TTD]})}}return r})(),Qr=(()=>{class r{constructor(t,i,n){this._dialogRef=t,this._elementRef=i,this._dialog=n,this.id="mat-dialog-title-"+P_++}ngOnInit(){this._dialogRef||(this._dialogRef=_w(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._dialogRef._containerInstance?._ariaLabelledByQueue?.push(this.id)})}ngOnDestroy(){const t=this._dialogRef?._containerInstance?._ariaLabelledByQueue;t&&Promise.resolve().then(()=>{const i=t.indexOf(this.id);i>-1&&t.splice(i,1)})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(_r,8),e.Y36(e.SBq),e.Y36(xo))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-dialog-title"],hostVars:1,hostBindings:function(i,n){2&i&&e.Ikx("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]})}}return r})(),Kr=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-dialog-content"]})}}return r})(),Ir=(()=>{class r{constructor(){this.align="start"}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-dialog-actions"],hostVars:4,hostBindings:function(i,n){2&i&&e.ekj("mat-dialog-actions-align-center","center"===n.align)("mat-dialog-actions-align-end","end"===n.align)},inputs:{align:"align"}})}}return r})();function _w(r,a){let t=r.nativeElement.parentElement;for(;t&&!t.classList.contains("mat-dialog-container");)t=t.parentElement;return t?a.find(i=>i.id===t.id):null}let vw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[xo,wx],imports:[CI,Bd,xd,Fr,Fr]})}}return r})(),Cx=0;const F_=new e.OlP("CdkAccordion");let O_=(()=>{class r{constructor(){this._stateChanges=new An.x,this._openCloseAllActions=new An.x,this.id="cdk-accordion-"+Cx++,this._multi=!1}get multi(){return this._multi}set multi(t){this._multi=Sn(t)}openAll(){this._multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(t){this._stateChanges.next(t)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:"multi"},exportAs:["cdkAccordion"],features:[e._Bn([{provide:F_,useExisting:r}]),e.TTD]})}}return r})(),Ap=0,kI=(()=>{class r{get expanded(){return this._expanded}set expanded(t){t=Sn(t),this._expanded!==t&&(this._expanded=t,this.expandedChange.emit(t),t?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t)}constructor(t,i,n){this.accordion=t,this._changeDetectorRef=i,this._expansionDispatcher=n,this._openCloseAllSubscription=Jr.w0.EMPTY,this.closed=new e.vpe,this.opened=new e.vpe,this.destroyed=new e.vpe,this.expandedChange=new e.vpe,this.id="cdk-accordion-child-"+Ap++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=n.listen((o,s)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===s&&this.id!==o&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(t=>{this.disabled||(this.expanded=t)})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(F_,12),e.Y36(e.sBO),e.Y36(g_))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[e._Bn([{provide:F_,useValue:void 0}])]})}}return r})(),QI=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();const yw=["body"];function ug(r,a){}const ww=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],SI=["mat-expansion-panel-header","*","mat-action-row"];function Cw(r,a){if(1&r&&e._UZ(0,"span",2),2&r){const t=e.oxw();e.Q6J("@indicatorRotate",t._getExpandedState())}}const SF=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],PF=["mat-panel-title","mat-panel-description","*"],bw=new e.OlP("MAT_ACCORDION"),bx="225ms cubic-bezier(0.4,0.0,0.2,1)",xw={indicatorRotate:(0,vi.X$)("indicatorRotate",[(0,vi.SB)("collapsed, void",(0,vi.oB)({transform:"rotate(0deg)"})),(0,vi.SB)("expanded",(0,vi.oB)({transform:"rotate(180deg)"})),(0,vi.eR)("expanded <=> collapsed, void => collapsed",(0,vi.jt)(bx))]),bodyExpansion:(0,vi.X$)("bodyExpansion",[(0,vi.SB)("collapsed, void",(0,vi.oB)({height:"0px",visibility:"hidden"})),(0,vi.SB)("expanded",(0,vi.oB)({height:"*",visibility:""})),(0,vi.eR)("expanded <=> collapsed, void => collapsed",(0,vi.jt)(bx))])},xx=new e.OlP("MAT_EXPANSION_PANEL");let tc=(()=>{class r{constructor(t,i){this._template=t,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc),e.Y36(xx,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["ng-template","matExpansionPanelContent",""]]})}}return r})(),Bx=0;const Ex=new e.OlP("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let hg=(()=>{class r extends kI{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(t){this._hideToggle=Sn(t)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(t){this._togglePosition=t}constructor(t,i,n,o,s,c,g){super(t,i,n),this._viewContainerRef=o,this._animationMode=c,this._hideToggle=!1,this.afterExpand=new e.vpe,this.afterCollapse=new e.vpe,this._inputChanges=new An.x,this._headerId="mat-expansion-panel-header-"+Bx++,this._bodyAnimationDone=new An.x,this.accordion=t,this._document=s,this._bodyAnimationDone.pipe((0,eA.x)((B,O)=>B.fromState===O.fromState&&B.toState===O.toState)).subscribe(B=>{"void"!==B.fromState&&("expanded"===B.toState?this.afterExpand.emit():"collapsed"===B.toState&&this.afterCollapse.emit())}),g&&(this.hideToggle=g.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(na(null),(0,Wr.h)(()=>this.expanded&&!this._portal),(0,yo.q)(1)).subscribe(()=>{this._portal=new qA(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(t){this._inputChanges.next(t)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const t=this._document.activeElement,i=this._body.nativeElement;return t===i||i.contains(t)}return!1}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(bw,12),e.Y36(e.sBO),e.Y36(g_),e.Y36(e.s_b),e.Y36(l.K0),e.Y36(e.QbO,8),e.Y36(Ex,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,tc,5),2&i){let s;e.iGM(s=e.CRH())&&(n._lazyContent=s.first)}},viewQuery:function(i,n){if(1&i&&e.Gf(yw,5),2&i){let o;e.iGM(o=e.CRH())&&(n._body=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,n){2&i&&e.ekj("mat-expanded",n.expanded)("_mat-animation-noopable","NoopAnimations"===n._animationMode)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[e._Bn([{provide:bw,useValue:void 0},{provide:xx,useExisting:r}]),e.qOj,e.TTD],ngContentSelectors:SI,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){1&i&&(e.F$t(ww),e.Hsn(0),e.TgZ(1,"div",0,1),e.NdJ("@bodyExpansion.done",function(s){return n._bodyAnimationDone.next(s)}),e.TgZ(3,"div",2),e.Hsn(4,1),e.YNc(5,ug,0,0,"ng-template",3),e.qZA(),e.Hsn(6,2),e.qZA()),2&i&&(e.xp6(1),e.Q6J("@bodyExpansion",n._getExpandedState())("id",n.id),e.uIk("aria-labelledby",n._headerId),e.xp6(4),e.Q6J("cdkPortalOutlet",n._portal))},dependencies:[yc],styles:['.mat-expansion-panel{--mat-expansion-container-shape:4px;box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[xw.bodyExpansion]},changeDetection:0})}}return r})();class FI{}const Mx=Kl(FI);let dp=(()=>{class r extends Mx{constructor(t,i,n,o,s,c,g){super(),this.panel=t,this._element=i,this._focusMonitor=n,this._changeDetectorRef=o,this._animationMode=c,this._parentChangeSubscription=Jr.w0.EMPTY;const B=t.accordion?t.accordion._stateChanges.pipe((0,Wr.h)(O=>!(!O.hideToggle&&!O.togglePosition))):Zu.E;this.tabIndex=parseInt(g||"")||0,this._parentChangeSubscription=(0,Wa.T)(t.opened,t.closed,B,t._inputChanges.pipe((0,Wr.h)(O=>!!(O.hideToggle||O.disabled||O.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),t.closed.pipe((0,Wr.h)(()=>t._containsFocus())).subscribe(()=>n.focusVia(i,"program")),s&&(this.expandedHeight=s.expandedHeight,this.collapsedHeight=s.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const t=this._isExpanded();return t&&this.expandedHeight?this.expandedHeight:!t&&this.collapsedHeight?this.collapsedHeight:null}_keydown(t){switch(t.keyCode){case 32:case 13:xa(t)||(t.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(t))}}focus(t,i){t?this._focusMonitor.focusVia(this._element,t,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(t=>{t&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(hg,1),e.Y36(e.SBq),e.Y36(Es),e.Y36(e.sBO),e.Y36(Ex,8),e.Y36(e.QbO,8),e.$8M("tabindex"))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,n){1&i&&e.NdJ("click",function(){return n._toggle()})("keydown",function(s){return n._keydown(s)}),2&i&&(e.uIk("id",n.panel._headerId)("tabindex",n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),e.Udp("height",n._getHeaderHeight()),e.ekj("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after","after"===n._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===n._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===n._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[e.qOj],ngContentSelectors:PF,decls:5,vars:3,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(i,n){1&i&&(e.F$t(SF),e.TgZ(0,"span",0),e.Hsn(1),e.Hsn(2,1),e.Hsn(3,2),e.qZA(),e.YNc(4,Cw,1,1,"span",1)),2&i&&(e.ekj("mat-content-hide-toggle",!n._showToggle()),e.xp6(4),e.Q6J("ngIf",n._showToggle()))},dependencies:[l.O5],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[xw.indicatorRotate]},changeDetection:0})}}return r})(),Dh=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-panel-description"]],hostAttrs:[1,"mat-expansion-panel-header-description"]})}}return r})(),Df=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}}return r})(),qm=(()=>{class r extends O_{constructor(){super(...arguments),this._ownHeaders=new e.n_E,this._hideToggle=!1,this.displayMode="default",this.togglePosition="after"}get hideToggle(){return this._hideToggle}set hideToggle(t){this._hideToggle=Sn(t)}ngAfterContentInit(){this._headers.changes.pipe(na(this._headers)).subscribe(t=>{this._ownHeaders.reset(t.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new fl(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(t){this._keyManager.onKeydown(t)}_handleHeaderFocus(t){this._keyManager.updateActiveItem(t)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-accordion"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,dp,5),2&i){let s;e.iGM(s=e.CRH())&&(n._headers=s)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mat-accordion-multi",n.multi)},inputs:{multi:"multi",hideToggle:"hideToggle",displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[e._Bn([{provide:bw,useExisting:r}]),e.qOj]})}}return r})(),Bw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[l.ez,Fr,QI,xd]})}}return r})(),kx=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[ja,Fr,ja,Fr]})}}return r})();function pg(r,a){const t=(0,hA.m)(r)?r:()=>r,i=n=>n.error(t());return new Za.y(a?n=>a.schedule(i,0,n):i)}function Kd(r){return(0,sl.e)((a,t)=>{let o,i=null,n=!1;i=a.subscribe((0,pl.x)(t,void 0,void 0,s=>{o=(0,Yc.Xf)(r(s,Kd(r)(a))),i?(i.unsubscribe(),i=null,o.subscribe(t)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(t))})}var gg=ce(4716),NI=ce(3020);const Qx=["*"];let Xm;function $m(r){return function Sx(){if(void 0===Xm&&(Xm=null,typeof window<"u")){const r=window;void 0!==r.trustedTypes&&(Xm=r.trustedTypes.createPolicy("angular#components",{createHTML:a=>a}))}return Xm}()?.createHTML(r)||r}function Px(r){return Error(`Unable to find icon with the name "${r}"`)}function e0(r){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${r}".`)}function L_(r){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${r}".`)}class up{constructor(a,t,i){this.url=a,this.svgText=t,this.options=i}}let If=(()=>{class r{constructor(t,i,n,o){this._httpClient=t,this._sanitizer=i,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=n}addSvgIcon(t,i,n){return this.addSvgIconInNamespace("",t,i,n)}addSvgIconLiteral(t,i,n){return this.addSvgIconLiteralInNamespace("",t,i,n)}addSvgIconInNamespace(t,i,n,o){return this._addSvgIconConfig(t,i,new up(n,null,o))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,i,n,o){const s=this._sanitizer.sanitize(e.q3G.HTML,n);if(!s)throw L_(n);const c=$m(s);return this._addSvgIconConfig(t,i,new up("",c,o))}addSvgIconSet(t,i){return this.addSvgIconSetInNamespace("",t,i)}addSvgIconSetLiteral(t,i){return this.addSvgIconSetLiteralInNamespace("",t,i)}addSvgIconSetInNamespace(t,i,n){return this._addSvgIconSetConfig(t,new up(i,null,n))}addSvgIconSetLiteralInNamespace(t,i,n){const o=this._sanitizer.sanitize(e.q3G.HTML,i);if(!o)throw L_(i);const s=$m(o);return this._addSvgIconSetConfig(t,new up("",s,n))}registerFontClassAlias(t,i=t){return this._fontCssClassesByAlias.set(t,i),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(...t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const i=this._sanitizer.sanitize(e.q3G.RESOURCE_URL,t);if(!i)throw e0(t);const n=this._cachedIconsByUrl.get(i);return n?(0,lr.of)(t0(n)):this._loadSvgIconFromConfig(new up(t,null)).pipe(Zr(o=>this._cachedIconsByUrl.set(i,o)),(0,f.U)(o=>t0(o)))}getNamedSvgIcon(t,i=""){const n=Mw(i,t);let o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,t),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);const s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(t,s):pg(Px(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?(0,lr.of)(t0(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe((0,f.U)(i=>t0(i)))}_getSvgFromIconSetConfigs(t,i){const n=this._extractIconWithNameFromAnySet(t,i);if(n)return(0,lr.of)(n);const o=i.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(Kd(c=>{const B=`Loading icon set URL: ${this._sanitizer.sanitize(e.q3G.RESOURCE_URL,s.url)} failed: ${c.message}`;return this._errorHandler.handleError(new Error(B)),(0,lr.of)(null)})));return(0,h.D)(o).pipe((0,f.U)(()=>{const s=this._extractIconWithNameFromAnySet(t,i);if(!s)throw Px(t);return s}))}_extractIconWithNameFromAnySet(t,i){for(let n=i.length-1;n>=0;n--){const o=i[n];if(o.svgText&&o.svgText.toString().indexOf(t)>-1){const s=this._svgElementFromConfig(o),c=this._extractSvgIconFromSet(s,t,o.options);if(c)return c}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(Zr(i=>t.svgText=i),(0,f.U)(()=>this._svgElementFromConfig(t)))}_loadSvgIconSetFromConfig(t){return t.svgText?(0,lr.of)(null):this._fetchIcon(t).pipe(Zr(i=>t.svgText=i))}_extractSvgIconFromSet(t,i,n){const o=t.querySelector(`[id="${i}"]`);if(!o)return null;const s=o.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,n);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),n);const c=this._svgElementFromString($m(""));return c.appendChild(s),this._setSvgAttributes(c,n)}_svgElementFromString(t){const i=this._document.createElement("DIV");i.innerHTML=t;const n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(t){const i=this._svgElementFromString($m("")),n=t.attributes;for(let o=0;o$m(B)),(0,gg.x)(()=>this._inProgressUrlFetches.delete(s)),(0,NI.B)());return this._inProgressUrlFetches.set(s,g),g}_addSvgIconConfig(t,i,n){return this._svgIconConfigs.set(Mw(t,i),n),this}_addSvgIconSetConfig(t,i){const n=this._iconSetConfigs.get(t);return n?n.push(i):this._iconSetConfigs.set(t,[i]),this}_svgElementFromConfig(t){if(!t.svgElement){const i=this._svgElementFromString(t.svgText);this._setSvgAttributes(i,t.options),t.svgElement=i}return t.svgElement}_getIconConfigFromResolvers(t,i){for(let n=0;na?a.pathname+a.search:""}}}),Rx=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],ZI=Rx.map(r=>`[${r}]`).join(", "),JI=/^url\(['"]?#(.*?)['"]?\)$/;let Zn=(()=>{class r extends Lx{get inline(){return this._inline}set inline(t){this._inline=Sn(t)}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const i=this._cleanupFontValue(t);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const i=this._cleanupFontValue(t);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(t,i,n,o,s,c){super(t),this._iconRegistry=i,this._location=o,this._errorHandler=s,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=Jr.w0.EMPTY,c&&(c.color&&(this.color=this.defaultColor=c.color),c.fontSet&&(this.fontSet=c.fontSet)),n||t.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(t){if(!t)return["",""];const i=t.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let i=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const n=t.childNodes[i];(1!==n.nodeType||"svg"===n.nodeName.toLowerCase())&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>t.classList.remove(n)),i.forEach(n=>t.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(s=>{o.setAttribute(s.name,`url('${t}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(t){const i=t.querySelectorAll(ZI),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{const c=i[o],g=c.getAttribute(s),B=g?g.match(JI):null;if(B){let O=n.get(c);O||(O=[],n.set(c,O)),O.push({name:s,value:B[1]})}})}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[i,n]=this._splitIconName(t);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe((0,yo.q)(1)).subscribe(o=>this._setSvgElement(o),o=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${n}! ${o.message}`))})}}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(If),e.$8M("aria-hidden"),e.Y36(HI),e.Y36(e.qLn),e.Y36(zI,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(i,n){2&i&&(e.uIk("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),e.ekj("mat-icon-inline",n.inline)("mat-icon-no-color","primary"!==n.color&&"accent"!==n.color&&"warn"!==n.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[e.qOj],ngContentSelectors:Qx,decls:1,vars:0,template:function(i,n){1&i&&(e.F$t(),e.Hsn(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}}return r})(),n0=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,Fr]})}}return r})();const jI=["connectionContainer"],VI=["inputContainer"],WI=["label"];function KI(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",14),e._UZ(2,"div",15)(3,"div",16)(4,"div",17),e.qZA(),e.TgZ(5,"div",18),e._UZ(6,"div",15)(7,"div",16)(8,"div",17),e.qZA(),e.BQk())}function qI(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",19),e.NdJ("cdkObserveContent",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.updateOutlineGap())}),e.Hsn(1,1),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("cdkObserveContentDisabled","outline"!=t.appearance)}}function XI(r,a){if(1&r&&(e.ynx(0),e.Hsn(1,2),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.BQk()),2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(t._control.placeholder)}}function $I(r,a){1&r&&e.Hsn(0,3,["*ngSwitchCase","true"])}function e2(r,a){1&r&&(e.TgZ(0,"span",23),e._uU(1," *"),e.qZA())}function t2(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"label",20,21),e.NdJ("cdkObserveContent",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.updateOutlineGap())}),e.YNc(2,XI,4,1,"ng-container",12),e.YNc(3,$I,1,0,"ng-content",12),e.YNc(4,e2,2,0,"span",22),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-empty",t._control.empty&&!t._shouldAlwaysFloat())("mat-form-field-empty",t._control.empty&&!t._shouldAlwaysFloat())("mat-accent","accent"==t.color)("mat-warn","warn"==t.color),e.Q6J("cdkObserveContentDisabled","outline"!=t.appearance)("id",t._labelId)("ngSwitch",t._hasLabel()),e.uIk("for",t._control.id)("aria-owns",t._control.id),e.xp6(2),e.Q6J("ngSwitchCase",!1),e.xp6(1),e.Q6J("ngSwitchCase",!0),e.xp6(1),e.Q6J("ngIf",!t.hideRequiredMarker&&t._control.required&&!t._control.disabled)}}function Yx(r,a){1&r&&(e.TgZ(0,"div",24),e.Hsn(1,4),e.qZA())}function Nx(r,a){if(1&r&&(e.TgZ(0,"div",25),e._UZ(1,"span",26),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.ekj("mat-accent","accent"==t.color)("mat-warn","warn"==t.color)}}function Ux(r,a){if(1&r&&(e.TgZ(0,"div"),e.Hsn(1,5),e.qZA()),2&r){const t=e.oxw();e.Q6J("@transitionMessages",t._subscriptAnimationState)}}function zx(r,a){if(1&r&&(e.TgZ(0,"div",30),e._uU(1),e.qZA()),2&r){const t=e.oxw(2);e.Q6J("id",t._hintLabelId),e.xp6(1),e.Oqu(t.hintLabel)}}function Hx(r,a){if(1&r&&(e.TgZ(0,"div",27),e.YNc(1,zx,2,2,"div",28),e.Hsn(2,6),e._UZ(3,"div",29),e.Hsn(4,7),e.qZA()),2&r){const t=e.oxw();e.Q6J("@transitionMessages",t._subscriptAnimationState),e.xp6(1),e.Q6J("ngIf",t.hintLabel)}}const Gx=["*",[["","matPrefix",""]],[["mat-placeholder"]],[["mat-label"]],[["","matSuffix",""]],[["mat-error"]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],Zx=["*","[matPrefix]","mat-placeholder","mat-label","[matSuffix]","mat-error","mat-hint:not([align='end'])","mat-hint[align='end']"];let Jx=0,jx=(()=>{class r{constructor(t,i){this.id="mat-error-"+Jx++,t||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||r)(e.$8M("aria-live"),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-error"]],hostAttrs:["aria-atomic","true",1,"mat-error"],hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("id",n.id)},inputs:{id:"id"},features:[e._Bn([{provide:t1,useExisting:r}])]})}}return r})();const Dw=new e.OlP("MatHint");let Wx=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-label"]]})}}return r})(),n2=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-placeholder"]]})}}return r})(),fg=0;const GF=Wl(class{constructor(r){this._elementRef=r}},"primary"),Kx=new e.OlP("MAT_FORM_FIELD_DEFAULT_OPTIONS");let qx=(()=>{class r extends GF{get appearance(){return this._appearance}set appearance(t){const i=this._appearance;this._appearance=t||this._defaults?.appearance||"legacy","outline"===this._appearance&&i!==t&&(this._outlineGapCalculationNeededOnStable=!0)}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(t){this._hideRequiredMarker=Sn(t)}_shouldAlwaysFloat(){return"always"===this.floatLabel&&!this._showAlwaysAnimate}_canLabelFloat(){return"never"!==this.floatLabel}get hintLabel(){return this._hintLabel}set hintLabel(t){this._hintLabel=t,this._processHints()}get floatLabel(){return"legacy"!==this.appearance&&"never"===this._floatLabel?"auto":this._floatLabel}set floatLabel(t){t!==this._floatLabel&&(this._floatLabel=t||this._getDefaultFloatLabelState(),this._changeDetectorRef.markForCheck())}get _control(){return this._explicitFormFieldControl||this._controlNonStatic||this._controlStatic}set _control(t){this._explicitFormFieldControl=t}constructor(t,i,n,o,s,c,g){super(t),this._changeDetectorRef=i,this._dir=n,this._defaults=o,this._platform=s,this._ngZone=c,this._outlineGapCalculationNeededImmediately=!1,this._outlineGapCalculationNeededOnStable=!1,this._destroyed=new An.x,this._hideRequiredMarker=!1,this._showAlwaysAnimate=!1,this._subscriptAnimationState="",this._hintLabel="",this._hintLabelId="mat-hint-"+fg++,this._labelId="mat-form-field-label-"+fg++,this.floatLabel=this._getDefaultFloatLabelState(),this._animationsEnabled="NoopAnimations"!==g,this.appearance=o?.appearance||"legacy",o&&(this._hideRequiredMarker=!!o.hideRequiredMarker,o.color&&(this.color=this.defaultColor=o.color))}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._connectionContainerRef||this._elementRef}ngAfterContentInit(){this._validateControlChild();const t=this._control;t.controlType&&this._elementRef.nativeElement.classList.add(`mat-form-field-type-${t.controlType}`),t.stateChanges.pipe(na(null)).subscribe(()=>{this._validatePlaceholders(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),t.ngControl&&t.ngControl.valueChanges&&t.ngControl.valueChanges.pipe((0,On.R)(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._outlineGapCalculationNeededOnStable&&this.updateOutlineGap()})}),(0,Wa.T)(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._outlineGapCalculationNeededOnStable=!0,this._changeDetectorRef.markForCheck()}),this._hintChildren.changes.pipe(na(null)).subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.pipe(na(null)).subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._dir&&this._dir.change.pipe((0,On.R)(this._destroyed)).subscribe(()=>{"function"==typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this.updateOutlineGap())}):this.updateOutlineGap()})}ngAfterContentChecked(){this._validateControlChild(),this._outlineGapCalculationNeededImmediately&&this.updateOutlineGap()}ngAfterViewInit(){this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_shouldForward(t){const i=this._control?this._control.ngControl:null;return i&&i[t]}_hasPlaceholder(){return!!(this._control&&this._control.placeholder||this._placeholderChild)}_hasLabel(){return!(!this._labelChildNonStatic&&!this._labelChildStatic)}_shouldLabelFloat(){return this._canLabelFloat()&&(this._control&&this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_hideControlPlaceholder(){return"legacy"===this.appearance&&!this._hasLabel()||this._hasLabel()&&!this._shouldLabelFloat()}_hasFloatingLabel(){return this._hasLabel()||"legacy"===this.appearance&&this._hasPlaceholder()}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_animateAndLockLabel(){this._hasFloatingLabel()&&this._canLabelFloat()&&(this._animationsEnabled&&this._label&&(this._showAlwaysAnimate=!0,Je(this._label.nativeElement,"transitionend").pipe((0,yo.q)(1)).subscribe(()=>{this._showAlwaysAnimate=!1})),this.floatLabel="always",this._changeDetectorRef.markForCheck())}_validatePlaceholders(){}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_getDefaultFloatLabelState(){return this._defaults&&this._defaults.floatLabel||"auto"}_syncDescribedByIds(){if(this._control){let t=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&t.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(o=>"start"===o.align):null,n=this._hintChildren?this._hintChildren.find(o=>"end"===o.align):null;i?t.push(i.id):this._hintLabel&&t.push(this._hintLabelId),n&&t.push(n.id)}else this._errorChildren&&t.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(t)}}_validateControlChild(){}updateOutlineGap(){const t=this._label?this._label.nativeElement:null,i=this._connectionContainerRef.nativeElement,n=".mat-form-field-outline-start",o=".mat-form-field-outline-gap";if("outline"!==this.appearance||!this._platform.isBrowser)return;if(!t||!t.children.length||!t.textContent.trim()){const O=i.querySelectorAll(`${n}, ${o}`);for(let ne=0;ne0?.75*nt+10:0}for(let O=0;O{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matSuffix",""]],features:[e._Bn([{provide:rT,useExisting:r}])]})}}return r})(),Tw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[l.ez,Fr,VA,Fr]})}}return r})(),qd=(()=>{class r extends Z1{constructor(){super(...arguments),this._legacyFormField=(0,e.f3M)(Gu,{optional:!0})}_getPlaceholder(){const t=this._legacyFormField;return t&&"legacy"===t.appearance&&!t._hasLabel?.()?null:this.placeholder}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-input-element","mat-form-field-autofill-control"],hostVars:15,hostBindings:function(i,n){2&i&&(e.uIk("data-placeholder",n.placeholder),e.ekj("mat-input-server",n._isServer)("mat-mdc-input-element",!1)("mat-mdc-form-field-textarea-control",!1)("mat-mdc-form-field-input-control",!1)("mdc-text-field__input",!1)("mat-mdc-native-select-inline",!1)("mat-native-select-inline",n._isInlineSelect()))},exportAs:["matInput"],features:[e._Bn([{provide:jd,useExisting:r}]),e.qOj]})}}return r})(),Y_=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[Rc],imports:[__,Tw,Fr,__,Tw]})}}return r})();const lB=new e.OlP("MatList"),cB=new e.OlP("MatNavList");let a0=(()=>{class r{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(t){this._vertical=Sn(t)}get inset(){return this._inset}set inset(t){this._inset=Sn(t)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){2&i&&(e.uIk("aria-orientation",n.vertical?"vertical":"horizontal"),e.ekj("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}}return r})(),v2=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,Fr]})}}return r})();const dB=["*"],uB='.mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}',VF=[[["","mat-list-avatar",""],["","mat-list-icon",""],["","matListAvatar",""],["","matListIcon",""]],[["","mat-line",""],["","matLine",""]],"*"],y2=["[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]","[mat-line], [matLine]","*"],hB=["text"];function w2(r,a){if(1&r&&e._UZ(0,"mat-pseudo-checkbox",5),2&r){const t=e.oxw();e.Q6J("state",t.selected?"checked":"unchecked")("disabled",t.disabled)}}const C2=["*",[["","mat-list-avatar",""],["","mat-list-icon",""],["","matListAvatar",""],["","matListIcon",""]]],s0=["*","[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]"],b2=Lc(ll(class{})),pB=ll(class{});let mg=(()=>{class r extends b2{constructor(t){super(),this._elementRef=t,this._stateChanges=new An.x,"action-list"===this._getListType()&&(t.nativeElement.classList.add("mat-action-list"),t.nativeElement.setAttribute("role","group"))}_getListType(){const t=this._elementRef.nativeElement.nodeName.toLowerCase();return"mat-list"===t?"list":"mat-action-list"===t?"action-list":null}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-list"],["mat-action-list"]],hostAttrs:[1,"mat-list","mat-list-base"],inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matList"],features:[e._Bn([{provide:lB,useExisting:r}]),e.qOj,e.TTD],ngContentSelectors:dB,decls:1,vars:0,template:function(i,n){1&i&&(e.F$t(),e.Hsn(0))},styles:[uB],encapsulation:2,changeDetection:0})}}return r})(),gB=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-list-avatar",""],["","matListAvatar",""]],hostAttrs:[1,"mat-list-avatar"]})}}return r})(),Pw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-list-icon",""],["","matListIcon",""]],hostAttrs:[1,"mat-list-icon"]})}}return r})(),hp=(()=>{class r extends pB{constructor(t,i,n,o){super(),this._element=t,this._isInteractiveList=!1,this._destroyed=new An.x,this._disabled=!1,this._isInteractiveList=!!(n||o&&"action-list"===o._getListType()),this._list=n||o;const s=this._getHostElement();"button"===s.nodeName.toLowerCase()&&!s.hasAttribute("type")&&s.setAttribute("type","button"),this._list&&this._list._stateChanges.pipe((0,On.R)(this._destroyed)).subscribe(()=>{i.markForCheck()})}get disabled(){return this._disabled||!(!this._list||!this._list.disabled)}set disabled(t){this._disabled=Sn(t)}ngAfterContentInit(){Yu(this._lines,this._element)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_isRippleDisabled(){return!this._isInteractiveList||this.disableRipple||!(!this._list||!this._list.disableRipple)}_getHostElement(){return this._element.nativeElement}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(cB,8),e.Y36(lB,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,gB,5),e.Suo(o,Pw,5),e.Suo(o,Mm,5)),2&i){let s;e.iGM(s=e.CRH())&&(n._avatar=s.first),e.iGM(s=e.CRH())&&(n._icon=s.first),e.iGM(s=e.CRH())&&(n._lines=s)}},hostAttrs:[1,"mat-list-item","mat-focus-indicator"],hostVars:4,hostBindings:function(i,n){2&i&&e.ekj("mat-list-item-disabled",n.disabled)("mat-list-item-with-avatar",n._avatar||n._icon)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matListItem"],features:[e.qOj],ngContentSelectors:y2,decls:6,vars:2,consts:[[1,"mat-list-item-content"],["mat-ripple","",1,"mat-list-item-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-list-text"]],template:function(i,n){1&i&&(e.F$t(VF),e.TgZ(0,"span",0),e._UZ(1,"span",1),e.Hsn(2),e.TgZ(3,"span",2),e.Hsn(4,1),e.qZA(),e.Hsn(5,2),e.qZA()),2&i&&(e.xp6(1),e.Q6J("matRippleTrigger",n._getHostElement())("matRippleDisabled",n._isRippleDisabled()))},dependencies:[At],encapsulation:2,changeDetection:0})}}return r})();const x2=ll(class{}),fB=ll(class{}),mB={provide:y,useExisting:(0,e.Gpc)(()=>Sf),multi:!0};class B2{constructor(a,t){this.source=a,this.options=t}}let Z_=(()=>{class r extends fB{get color(){return this._color||this.selectionList.color}set color(t){this._color=t}get value(){return this._value}set value(t){this.selected&&!this.selectionList.compareWith(t,this.value)&&this._inputsInitialized&&(this.selected=!1),this._value=t}get disabled(){return this._disabled||this.selectionList&&this.selectionList.disabled}set disabled(t){const i=Sn(t);i!==this._disabled&&(this._disabled=i,this._changeDetector.markForCheck())}get selected(){return this.selectionList.selectedOptions.isSelected(this)}set selected(t){const i=Sn(t);i!==this._selected&&(this._setSelected(i),(i||this.selectionList.multiple)&&this.selectionList._reportValueChange())}constructor(t,i,n){super(),this._element=t,this._changeDetector=i,this.selectionList=n,this._selected=!1,this._disabled=!1,this._hasFocus=!1,this.selectedChange=new e.vpe,this.checkboxPosition="after",this._inputsInitialized=!1}ngOnInit(){const t=this.selectionList;t._value&&t._value.some(n=>t.compareWith(this._value,n))&&this._setSelected(!0);const i=this._selected;Promise.resolve().then(()=>{(this._selected||i)&&(this.selected=!0,this._changeDetector.markForCheck())}),this._inputsInitialized=!0}ngAfterContentInit(){Yu(this._lines,this._element)}ngOnDestroy(){this.selected&&Promise.resolve().then(()=>{this.selected=!1});const t=this._hasFocus,i=this.selectionList._removeOptionFromList(this);t&&i&&i.focus()}toggle(){this.selected=!this.selected}focus(){this._element.nativeElement.focus()}getLabel(){return this._text&&this._text.nativeElement.textContent||""}_isRippleDisabled(){return this.disabled||this.disableRipple||this.selectionList.disableRipple}_handleClick(){!this.disabled&&(this.selectionList.multiple||!this.selected)&&(this.toggle(),this.selectionList._emitChangeEvent([this]))}_handleFocus(){this.selectionList._setFocusedOption(this),this._hasFocus=!0}_handleBlur(){this.selectionList._onTouched(),this._hasFocus=!1}_getHostElement(){return this._element.nativeElement}_setSelected(t){return t!==this._selected&&(this._selected=t,t?this.selectionList.selectedOptions.select(this):this.selectionList.selectedOptions.deselect(this),this.selectedChange.emit(t),this._changeDetector.markForCheck(),!0)}_markForCheck(){this._changeDetector.markForCheck()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36((0,e.Gpc)(()=>Sf)))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-list-option"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,gB,5),e.Suo(o,Pw,5),e.Suo(o,Mm,5)),2&i){let s;e.iGM(s=e.CRH())&&(n._avatar=s.first),e.iGM(s=e.CRH())&&(n._icon=s.first),e.iGM(s=e.CRH())&&(n._lines=s)}},viewQuery:function(i,n){if(1&i&&e.Gf(hB,5),2&i){let o;e.iGM(o=e.CRH())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-list-item","mat-list-option","mat-focus-indicator"],hostVars:15,hostBindings:function(i,n){1&i&&e.NdJ("focus",function(){return n._handleFocus()})("blur",function(){return n._handleBlur()})("click",function(){return n._handleClick()}),2&i&&(e.uIk("aria-selected",n.selected)("aria-disabled",n.disabled)("tabindex",-1),e.ekj("mat-list-item-disabled",n.disabled)("mat-list-item-with-avatar",n._avatar||n._icon)("mat-primary","primary"===n.color)("mat-accent","primary"!==n.color&&"warn"!==n.color)("mat-warn","warn"===n.color)("mat-list-single-selected-option",n.selected&&!n.selectionList.multiple))},inputs:{disableRipple:"disableRipple",checkboxPosition:"checkboxPosition",color:"color",value:"value",disabled:"disabled",selected:"selected"},outputs:{selectedChange:"selectedChange"},exportAs:["matListOption"],features:[e.qOj],ngContentSelectors:s0,decls:7,vars:5,consts:[[1,"mat-list-item-content"],["mat-ripple","",1,"mat-list-item-ripple",3,"matRippleTrigger","matRippleDisabled"],[3,"state","disabled",4,"ngIf"],[1,"mat-list-text"],["text",""],[3,"state","disabled"]],template:function(i,n){1&i&&(e.F$t(C2),e.TgZ(0,"div",0),e._UZ(1,"div",1),e.YNc(2,w2,1,2,"mat-pseudo-checkbox",2),e.TgZ(3,"div",3,4),e.Hsn(5),e.qZA(),e.Hsn(6,1),e.qZA()),2&i&&(e.ekj("mat-list-item-content-reverse","after"==n.checkboxPosition),e.xp6(1),e.Q6J("matRippleTrigger",n._getHostElement())("matRippleDisabled",n._isRippleDisabled()),e.xp6(1),e.Q6J("ngIf",n.selectionList.multiple))},dependencies:[At,Yt,l.O5],encapsulation:2,changeDetection:0})}}return r})(),Sf=(()=>{class r extends x2{get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this._markOptionsForCheck()}get multiple(){return this._multiple}set multiple(t){const i=Sn(t);i!==this._multiple&&(this._multiple=i,this.selectedOptions=new xA(this._multiple,this.selectedOptions.selected))}constructor(t,i,n){super(),this._element=t,this._changeDetector=i,this._focusMonitor=n,this._multiple=!0,this._contentInitialized=!1,this.selectionChange=new e.vpe,this.color="accent",this.compareWith=(o,s)=>o===s,this._disabled=!1,this.selectedOptions=new xA(this._multiple),this._tabIndex=-1,this._onChange=o=>{},this._destroyed=new An.x,this._onTouched=()=>{}}ngAfterContentInit(){this._contentInitialized=!0,this._keyManager=new fl(this.options).withWrap().withTypeAhead().withHomeAndEnd().skipPredicate(()=>!1).withAllowedModifierKeys(["shiftKey"]),this._value&&this._setOptionsFromValues(this._value),this._keyManager.tabOut.subscribe(()=>this._allowFocusEscape()),this.options.changes.pipe(na(null),(0,On.R)(this._destroyed)).subscribe(()=>{this._updateTabIndex()}),this.selectedOptions.changed.pipe((0,On.R)(this._destroyed)).subscribe(t=>{if(t.added)for(let i of t.added)i.selected=!0;if(t.removed)for(let i of t.removed)i.selected=!1}),this._focusMonitor.monitor(this._element).pipe((0,On.R)(this._destroyed)).subscribe(t=>{if("keyboard"===t||"program"===t){let i=0;for(let n=0;n-1&&this._keyManager.activeItemIndex===i&&(i>0?this._keyManager.updateActiveItem(i-1):0===i&&this.options.length>1&&this._keyManager.updateActiveItem(Math.min(i+1,this.options.length-1))),this._keyManager.activeItem}_keydown(t){const i=t.keyCode,n=this._keyManager,o=n.activeItemIndex,s=xa(t);switch(i){case 32:case 13:!s&&!n.isTyping()&&(this._toggleFocusedOption(),t.preventDefault());break;default:if(65===i&&this.multiple&&xa(t,"ctrlKey")&&!n.isTyping()){const c=this.options.some(g=>!g.disabled&&!g.selected);this._setAllOptionsSelected(c,!0,!0),t.preventDefault()}else n.onKeydown(t)}this.multiple&&(38===i||40===i)&&t.shiftKey&&n.activeItemIndex!==o&&this._toggleFocusedOption()}_reportValueChange(){if(this.options&&!this._isDestroyed){const t=this._getSelectedOptionValues();this._onChange(t),this._value=t}}_emitChangeEvent(t){this.selectionChange.emit(new B2(this,t))}writeValue(t){this._value=t,this.options&&this._setOptionsFromValues(t||[])}setDisabledState(t){this.disabled=t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}_setOptionsFromValues(t){this.options.forEach(i=>i._setSelected(!1)),t.forEach(i=>{const n=this.options.find(o=>!o.selected&&this.compareWith(o.value,i));n&&n._setSelected(!0)})}_getSelectedOptionValues(){return this.options.filter(t=>t.selected).map(t=>t.value)}_toggleFocusedOption(){let t=this._keyManager.activeItemIndex;if(null!=t&&this._isValidIndex(t)){let i=this.options.toArray()[t];i&&!i.disabled&&(this._multiple||!i.selected)&&(i.toggle(),this._emitChangeEvent([i]))}}_setAllOptionsSelected(t,i,n){const o=[];return this.options.forEach(s=>{(!i||!s.disabled)&&s._setSelected(t)&&o.push(s)}),o.length&&(this._reportValueChange(),n&&this._emitChangeEvent(o)),o}_isValidIndex(t){return t>=0&&tt._markForCheck())}_allowFocusEscape(){this._tabIndex=-1,setTimeout(()=>{this._tabIndex=0,this._changeDetector.markForCheck()})}_updateTabIndex(){this._tabIndex=0===this.options.length?-1:0}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(Es))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-selection-list"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,Z_,5),2&i){let s;e.iGM(s=e.CRH())&&(n.options=s)}},hostAttrs:["role","listbox",1,"mat-selection-list","mat-list-base"],hostVars:3,hostBindings:function(i,n){1&i&&e.NdJ("keydown",function(s){return n._keydown(s)}),2&i&&e.uIk("aria-multiselectable",n.multiple)("aria-disabled",n.disabled.toString())("tabindex",n._tabIndex)},inputs:{disableRipple:"disableRipple",color:"color",compareWith:"compareWith",disabled:"disabled",multiple:"multiple"},outputs:{selectionChange:"selectionChange"},exportAs:["matSelectionList"],features:[e._Bn([mB]),e.qOj,e.TTD],ngContentSelectors:dB,decls:1,vars:0,template:function(i,n){1&i&&(e.F$t(),e.Hsn(0))},styles:[uB],encapsulation:2,changeDetection:0})}}return r})(),J_=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[ja,bt,Fr,fi,l.ez,ja,Fr,fi,v2]})}}return r})();const E2=["mat-menu-item",""];function _B(r,a){1&r&&(e.O4$(),e.TgZ(0,"svg",3),e._UZ(1,"polygon",4),e.qZA())}const M2=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],D2=["mat-icon, [matMenuItemIcon]","*"],Fw=new e.OlP("MAT_MENU_PANEL"),T2=ll(Lc(class{}));let l0=(()=>{class r extends T2{constructor(t,i,n,o,s){super(),this._elementRef=t,this._document=i,this._focusMonitor=n,this._parentMenu=o,this._changeDetectorRef=s,this.role="menuitem",this._hovered=new An.x,this._focused=new An.x,this._highlighted=!1,this._triggersSubmenu=!1,o?.addItem?.(this)}focus(t,i){this._focusMonitor&&t?this._focusMonitor.focusVia(this._getHostElement(),t,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(t){this.disabled&&(t.preventDefault(),t.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const t=this._elementRef.nativeElement.cloneNode(!0),i=t.querySelectorAll("mat-icon, .material-icons");for(let n=0;n enter",(0,vi.jt)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,vi.oB)({opacity:1,transform:"scale(1)"}))),(0,vi.eR)("* => void",(0,vi.jt)("100ms 25ms linear",(0,vi.oB)({opacity:0})))]),fadeInItems:(0,vi.X$)("fadeInItems",[(0,vi.SB)("showing",(0,vi.oB)({opacity:1})),(0,vi.eR)("void => *",[(0,vi.oB)({opacity:0}),(0,vi.jt)("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let P2=0;const V_=new e.OlP("mat-menu-default-options",{providedIn:"root",factory:function Ow(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let Pf=(()=>{class r{get xPosition(){return this._xPosition}set xPosition(t){this._xPosition=t,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(t){this._yPosition=t,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(t){this._overlapTrigger=Sn(t)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=Sn(t)}set panelClass(t){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(n=>{this._classList[n]=!1}),this._previousPanelClass=t,t&&t.length&&(t.split(" ").forEach(n=>{this._classList[n]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(t){this.panelClass=t}constructor(t,i,n,o){this._elementRef=t,this._ngZone=i,this._changeDetectorRef=o,this._directDescendantItems=new e.n_E,this._classList={},this._panelAnimationState="void",this._animationDone=new An.x,this.closed=new e.vpe,this.close=this.closed,this.panelId="mat-menu-panel-"+P2++,this.overlayPanelClass=n.overlayPanelClass||"",this._xPosition=n.xPosition,this._yPosition=n.yPosition,this.backdropClass=n.backdropClass,this._overlapTrigger=n.overlapTrigger,this._hasBackdrop=n.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new fl(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(na(this._directDescendantItems),(0,Xs.w)(t=>(0,Wa.T)(...t.map(i=>i._focused)))).subscribe(t=>this._keyManager.updateActiveItem(t)),this._directDescendantItems.changes.subscribe(t=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const n=t.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(na(this._directDescendantItems),(0,Xs.w)(i=>(0,Wa.T)(...i.map(n=>n._hovered))))}addItem(t){}removeItem(t){}_handleKeydown(t){const i=t.keyCode,n=this._keyManager;switch(i){case 27:xa(t)||(t.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&n.setFocusOrigin("keyboard"),void n.onKeydown(t)}t.stopPropagation()}focusFirstItem(t="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const n=this._keyManager;n.setFocusOrigin(t).setFirstItemActive(),!n.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(t){const i=Math.min(this._baseElevation+t,24),n=`${this._elevationPrefix}${i}`,o=Object.keys(this._classList).find(s=>s.startsWith(this._elevationPrefix));(!o||o===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[n]=!0,this._previousElevation=n)}setPositionClasses(t=this.xPosition,i=this.yPosition){const n=this._classList;n["mat-menu-before"]="before"===t,n["mat-menu-after"]="after"===t,n["mat-menu-above"]="above"===i,n["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(t){this._animationDone.next(t),this._isAnimating=!1}_onAnimationStart(t){this._isAnimating=!0,"enter"===t.toState&&0===this._keyManager.activeItemIndex&&(t.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(na(this._allItems)).subscribe(t=>{this._directDescendantItems.reset(t.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(V_),e.Y36(e.sBO))}}static{this.\u0275dir=e.lG2({type:r,contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,Q2,5),e.Suo(o,l0,5),e.Suo(o,l0,4)),2&i){let s;e.iGM(s=e.CRH())&&(n.lazyContent=s.first),e.iGM(s=e.CRH())&&(n._allItems=s),e.iGM(s=e.CRH())&&(n.items=s)}},viewQuery:function(i,n){if(1&i&&e.Gf(e.Rgc,5),2&i){let o;e.iGM(o=e.CRH())&&(n.templateRef=o.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}})}}return r})();const yB=new e.OlP("mat-menu-scroll-strategy"),Lw={provide:yB,deps:[Uc],useFactory:function F2(r){return()=>r.scrollStrategies.reposition()}},wB=Rs({passive:!0});let _g=(()=>{class r{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(t){this.menu=t}get menu(){return this._menu}set menu(t){t!==this._menu&&(this._menu=t,this._menuCloseSubscription.unsubscribe(),t&&(this._menuCloseSubscription=t.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(t,i,n,o,s,c,g,B,O){this._overlay=t,this._element=i,this._viewContainerRef=n,this._menuItemInstance=c,this._dir=g,this._focusMonitor=B,this._ngZone=O,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=Jr.w0.EMPTY,this._hoverSubscription=Jr.w0.EMPTY,this._menuCloseSubscription=Jr.w0.EMPTY,this._changeDetectorRef=(0,e.f3M)(e.sBO),this._handleTouchStart=ne=>{us(ne)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new e.vpe,this.onMenuOpen=this.menuOpened,this.menuClosed=new e.vpe,this.onMenuClose=this.menuClosed,this._scrollStrategy=o,this._parentMaterialMenu=s instanceof Pf?s:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,wB)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,wB),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const t=this.menu;if(this._menuOpen||!t)return;const i=this._createOverlay(t),n=i.getConfig(),o=n.positionStrategy;this._setPosition(t,o),n.hasBackdrop=null==t.hasBackdrop?!this.triggersSubmenu():t.hasBackdrop,i.attach(this._getPortal(t)),t.lazyContent&&t.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(t),t instanceof Pf&&(t._startAnimation(),t._directDescendantItems.changes.pipe((0,On.R)(t.close)).subscribe(()=>{o.withLockedPosition(!1).reapplyLastPosition(),o.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(t,i){this._focusMonitor&&t?this._focusMonitor.focusVia(this._element,t,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(t){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===t||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof Pf?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe((0,Wr.h)(n=>"void"===n.toState),(0,yo.q)(1),(0,On.R)(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(t){t.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,this._setMenuElevation(t),t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(t){if(t.setElevation){let i=0,n=t.parentMenu;for(;n;)i++,n=n.parentMenu;t.setElevation(i)}}_setIsMenuOpen(t){t!==this._menuOpen&&(this._menuOpen=t,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(t),this._changeDetectorRef.markForCheck())}_createOverlay(t){if(!this._overlayRef){const i=this._getOverlayConfig(t);this._subscribeToPositions(t,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(t){return new Dm({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:t.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:t.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(t,i){t.setPositionClasses&&i.positionChanges.subscribe(n=>{const o="start"===n.connectionPair.overlayX?"after":"before",s="top"===n.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>t.setPositionClasses(o,s)):t.setPositionClasses(o,s)})}_setPosition(t,i){let[n,o]="before"===t.xPosition?["end","start"]:["start","end"],[s,c]="above"===t.yPosition?["bottom","top"]:["top","bottom"],[g,B]=[s,c],[O,ne]=[n,o],we=0;if(this.triggersSubmenu()){if(ne=n="before"===t.xPosition?"start":"end",o=O="end"===n?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const $e=this._parentMaterialMenu.items.first;this._parentInnerPadding=$e?$e._getHostElement().offsetTop:0}we="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else t.overlapTrigger||(g="top"===s?"bottom":"top",B="top"===c?"bottom":"top");i.withPositions([{originX:n,originY:g,overlayX:O,overlayY:s,offsetY:we},{originX:o,originY:g,overlayX:ne,overlayY:s,offsetY:we},{originX:n,originY:B,overlayX:O,overlayY:c,offsetY:-we},{originX:o,originY:B,overlayX:ne,overlayY:c,offsetY:-we}])}_menuClosingActions(){const t=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:(0,lr.of)(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe((0,Wr.h)(s=>s!==this._menuItemInstance),(0,Wr.h)(()=>this._menuOpen)):(0,lr.of)();return(0,Wa.T)(t,n,o,i)}_handleMousedown(t){md(t)||(this._openedBy=0===t.button?"mouse":void 0,this.triggersSubmenu()&&t.preventDefault())}_handleKeydown(t){const i=t.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(t){this.triggersSubmenu()?(t.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe((0,Wr.h)(t=>t===this._menuItemInstance&&!t.disabled),sg(0,Ds)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof Pf&&this.menu._isAnimating?this.menu._animationDone.pipe((0,yo.q)(1),sg(0,Ds),(0,On.R)(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(t){return(!this._portal||this._portal.templateRef!==t.templateRef)&&(this._portal=new qA(t.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Uc),e.Y36(e.SBq),e.Y36(e.s_b),e.Y36(yB),e.Y36(Fw,8),e.Y36(l0,10),e.Y36(Ja,8),e.Y36(Es),e.Y36(e.R0b))}}static{this.\u0275dir=e.lG2({type:r,hostVars:3,hostBindings:function(i,n){1&i&&e.NdJ("click",function(s){return n._handleClick(s)})("mousedown",function(s){return n._handleMousedown(s)})("keydown",function(s){return n._handleKeydown(s)}),2&i&&e.uIk("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}})}}return r})();function o4(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",0),e.NdJ("keydown",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._handleKeydown(n))})("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.closed.emit("click"))})("@transformMenu.start",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._onAnimationStart(n))})("@transformMenu.done",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._onAnimationDone(n))}),e.TgZ(1,"div",1),e.Hsn(2),e.qZA()()}if(2&r){const t=e.oxw();e.Q6J("id",t.panelId)("ngClass",t._classList)("@transformMenu",t._panelAnimationState),e.uIk("aria-label",t.ariaLabel||null)("aria-labelledby",t.ariaLabelledby||null)("aria-describedby",t.ariaDescribedby||null)}}const W_=["*"],Rw=["mat-menu-item",""];function R2(r,a){1&r&&(e.O4$(),e.TgZ(0,"svg",2),e._UZ(1,"polygon",3),e.qZA())}let zc=(()=>{class r extends Pf{constructor(t,i,n,o){super(t,i,n,o),this._elevationPrefix="mat-elevation-z",this._baseElevation=4}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(V_),e.Y36(e.sBO))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration",""],hostVars:4,hostBindings:function(i,n){2&i&&e.uIk("aria-label",null)("aria-labelledby",null)("aria-describedby",null)("mat-id-collision",null)},exportAs:["matMenu"],features:[e._Bn([{provide:Fw,useExisting:r}]),e.qOj],ngContentSelectors:W_,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-menu-panel",3,"id","ngClass","keydown","click"],[1,"mat-menu-content"]],template:function(i,n){1&i&&(e.F$t(),e.YNc(0,o4,3,6,"ng-template"))},dependencies:[l.mk],styles:['mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px;position:relative}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[j_.transformMenu,j_.fadeInItems]},changeDetection:0})}}return r})(),Hc=(()=>{class r extends l0{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["","mat-menu-item",""]],hostAttrs:[1,"mat-focus-indicator"],hostVars:20,hostBindings:function(i,n){2&i&&(e.uIk("role",n.role)("tabindex",n._getTabIndex())("aria-disabled",n.disabled.toString())("disabled",n.disabled||null),e.ekj("mat-menu-item",!0)("mat-menu-item-highlighted",n._highlighted)("mat-menu-item-submenu-trigger",n._triggersSubmenu)("mat-mdc-menu-item",!1)("mat-mdc-focus-indicator",!1)("mdc-list-item",!1)("mat-mdc-menu-item-highlighted",!1)("mat-mdc-menu-item-submenu-trigger",!1))},inputs:{disabled:"disabled",disableRipple:"disableRipple"},exportAs:["matMenuItem"],features:[e._Bn([{provide:l0,useExisting:r}]),e.qOj],attrs:Rw,ngContentSelectors:W_,decls:3,vars:3,consts:[["matRipple","",1,"mat-menu-ripple",3,"matRippleDisabled","matRippleTrigger"],["class","mat-menu-submenu-icon","viewBox","0 0 5 10","focusable","false","aria-hidden","true",4,"ngIf"],["viewBox","0 0 5 10","focusable","false","aria-hidden","true",1,"mat-menu-submenu-icon"],["points","0,0 5,5 0,10"]],template:function(i,n){1&i&&(e.F$t(),e.Hsn(0),e._UZ(1,"div",0),e.YNc(2,R2,2,0,"svg",1)),2&i&&(e.xp6(1),e.Q6J("matRippleDisabled",n.disableRipple||n.disabled)("matRippleTrigger",n._getHostElement()),e.xp6(1),e.Q6J("ngIf",n._triggersSubmenu))},dependencies:[l.O5,At],encapsulation:2,changeDetection:0})}}return r})(),cc=(()=>{class r extends _g{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-menu-trigger"],exportAs:["matMenuTrigger"],features:[e.qOj]})}}return r})(),K_=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[Lw],imports:[l.ez,Fr,bt,Bd,LA,Fr]})}}return r})(),Ff=(()=>{class r{constructor(){this.changes=new An.x,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(t,i,n)=>{if(0==n||0==i)return`0 of ${n}`;const o=t*i;return`${o+1} \u2013 ${o<(n=Math.max(n,0))?Math.min(o+i,n):o+i} of ${n}`}}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const BB={provide:Ff,deps:[[new e.FiY,new e.tp0,Ff]],useFactory:function U2(r){return r||new Ff}},H2=Lc(Xp(class{}));let A4=(()=>{class r extends H2{get pageIndex(){return this._pageIndex}set pageIndex(t){this._pageIndex=Math.max(Ya(t),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(t){this._length=Ya(t),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(t){this._pageSize=Math.max(Ya(t),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(t){this._pageSizeOptions=(t||[]).map(i=>Ya(i)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(t){this._hidePageSize=Sn(t)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(t){this._showFirstLastButtons=Sn(t)}constructor(t,i,n){if(super(),this._intl=t,this._changeDetectorRef=i,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.selectConfig={},this.page=new e.vpe,this._intlChanges=t.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),n){const{pageSize:o,pageSizeOptions:s,hidePageSize:c,showFirstLastButtons:g}=n;null!=o&&(this._pageSize=o),null!=s&&(this._pageSizeOptions=s),null!=c&&(this._hidePageSize=c),null!=g&&(this._showFirstLastButtons=g)}}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const t=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(t)}previousPage(){if(!this.hasPreviousPage())return;const t=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(t)}firstPage(){if(!this.hasPreviousPage())return;const t=this.pageIndex;this.pageIndex=0,this._emitPageEvent(t)}lastPage(){if(!this.hasNextPage())return;const t=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(t)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const t=this.getNumberOfPages()-1;return this.pageIndext-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(t){this.page.emit({previousPageIndex:t,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,inputs:{color:"color",pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",selectConfig:"selectConfig"},outputs:{page:"page"},features:[e.qOj]})}}return r})();const EB=["trigger"],MB=["panel"];let Yw=0;const Nw=new e.OlP("mat-select-scroll-strategy"),q2=new e.OlP("MAT_SELECT_CONFIG"),f4={provide:Nw,deps:[Uc],useFactory:function TB(r){return()=>r.scrollStrategies.reposition()}},X2=new e.OlP("MatSelectTrigger"),IB=ll(Kl(Lc(Gd(class{constructor(r,a,t,i,n){this._elementRef=r,this._defaultErrorStateMatcher=a,this._parentForm=t,this._parentFormGroup=i,this.ngControl=n,this.stateChanges=new An.x}}))));let ek=(()=>{class r extends IB{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(Z.required)??!1}set required(t){this._required=Sn(t),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(t){this._multiple=Sn(t)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(t){this._disableOptionCentering=Sn(t)}get compareWith(){return this._compareWith}set compareWith(t){this._compareWith=t,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(t){this._assignValue(t)&&this._onChange(t)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(t){this._typeaheadDebounceInterval=Ya(t)}get id(){return this._id}set id(t){this._id=t||this._uid,this.stateChanges.next()}constructor(t,i,n,o,s,c,g,B,O,ne,we,$e,nt,Ft){super(s,o,g,B,ne),this._viewportRuler=t,this._changeDetectorRef=i,this._ngZone=n,this._dir=c,this._parentFormField=O,this._liveAnnouncer=nt,this._defaultOptions=Ft,this._panelOpen=!1,this._compareWith=(ei,pi)=>ei===pi,this._uid="mat-select-"+Yw++,this._triggerAriaLabelledBy=null,this._destroy=new An.x,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+Yw++,this._panelDoneAnimatingStream=new An.x,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=(0,rp.P)(()=>{const ei=this.options;return ei?ei.changes.pipe(na(ei),(0,Xs.w)(()=>(0,Wa.T)(...ei.map(pi=>pi.onSelectionChange)))):this._ngZone.onStable.pipe((0,yo.q)(1),(0,Xs.w)(()=>this.optionSelectionChanges))}),this.openedChange=new e.vpe,this._openedStream=this.openedChange.pipe((0,Wr.h)(ei=>ei),(0,f.U)(()=>{})),this._closedStream=this.openedChange.pipe((0,Wr.h)(ei=>!ei),(0,f.U)(()=>{})),this.selectionChange=new e.vpe,this.valueChange=new e.vpe,this._trackedModal=null,this.ngControl&&(this.ngControl.valueAccessor=this),null!=Ft?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=Ft.typeaheadDebounceInterval),this._scrollStrategyFactory=$e,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(we)||0,this.id=this.id}ngOnInit(){this._selectionModel=new xA(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe((0,eA.x)(),(0,On.R)(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe((0,On.R)(this._destroy)).subscribe(t=>{t.added.forEach(i=>i.select()),t.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(na(null),(0,On.R)(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const t=this._getTriggerAriaLabelledby(),i=this.ngControl;if(t!==this._triggerAriaLabelledBy){const n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=t,t?n.setAttribute("aria-labelledby",t):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(t){(t.disabled||t.userAriaDescribedBy)&&this.stateChanges.next(),t.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}_applyModalPanelOwnership(){const t=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!t)return;const i=`${this.id}-panel`;this._trackedModal&&Et(this._trackedModal,"aria-owns",i),ot(t,"aria-owns",i),this._trackedModal=t}_clearFromModal(){this._trackedModal&&(Et(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(t){this._assignValue(t)}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const t=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&t.reverse(),t.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(t){this.disabled||(this.panelOpen?this._handleOpenKeydown(t):this._handleClosedKeydown(t))}_handleClosedKeydown(t){const i=t.keyCode,n=40===i||38===i||37===i||39===i,o=13===i||32===i,s=this._keyManager;if(!s.isTyping()&&o&&!xa(t)||(this.multiple||t.altKey)&&n)t.preventDefault(),this.open();else if(!this.multiple){const c=this.selected;s.onKeydown(t);const g=this.selected;g&&c!==g&&this._liveAnnouncer.announce(g.viewValue,1e4)}}_handleOpenKeydown(t){const i=this._keyManager,n=t.keyCode,o=40===n||38===n,s=i.isTyping();if(o&&t.altKey)t.preventDefault(),this.close();else if(s||13!==n&&32!==n||!i.activeItem||xa(t))if(!s&&this._multiple&&65===n&&t.ctrlKey){t.preventDefault();const c=this.options.some(g=>!g.disabled&&!g.selected);this.options.forEach(g=>{g.disabled||(c?g.select():g.deselect())})}else{const c=i.activeItemIndex;i.onKeydown(t),this._multiple&&o&&t.shiftKey&&i.activeItem&&i.activeItemIndex!==c&&i.activeItem._selectViaInteraction()}else t.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe((0,yo.q)(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(t){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&t)Array.isArray(t),t.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(t);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(t){const i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return null!=n.value&&this._compareWith(n.value,t)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(t){return!!(t!==this._value||this._multiple&&Array.isArray(t))&&(this.options&&this._setSelectionByValue(t),this._value=t,!0)}_skipPredicate(t){return t.disabled}_initKeyManager(){this._keyManager=new Jg(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const t=(0,Wa.T)(this.options.changes,this._destroy);this.optionSelectionChanges.pipe((0,On.R)(t)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),(0,Wa.T)(...this.options.map(i=>i._stateChanges)).pipe((0,On.R)(t)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(t,i){const n=this._selectionModel.isSelected(t);null!=t.value||this._multiple?(n!==t.selected&&(t.selected?this._selectionModel.select(t):this._selectionModel.deselect(t)),i&&this._keyManager.setActiveItem(t),this.multiple&&(this._sortValues(),i&&this.focus())):(t.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(t.value)),n!==this._selectionModel.isSelected(t)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const t=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,t):t.indexOf(i)-t.indexOf(n)),this.stateChanges.next()}}_propagateChanges(t){let i=null;i=this.multiple?this.selected.map(n=>n.value):this.selected?this.selected.value:t,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let t=-1;for(let i=0;i0}focus(t){this._elementRef.nativeElement.focus(t)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const t=this._parentFormField?.getLabelId();return this.ariaLabelledby?(t?t+" ":"")+this.ariaLabelledby:t}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const t=this._parentFormField?.getLabelId();let i=(t?t+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(t){this.openedChange.emit(t)}setDescribedByIds(t){t.length?this._elementRef.nativeElement.setAttribute("aria-describedby",t.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Is),e.Y36(e.sBO),e.Y36(e.R0b),e.Y36(Rc),e.Y36(e.SBq),e.Y36(Ja,8),e.Y36(ue,8),e.Y36(Sr,8),e.Y36(Gu,8),e.Y36(Ke,10),e.$8M("tabindex"),e.Y36(Nw),e.Y36(xm),e.Y36(q2,8))}}static{this.\u0275dir=e.lG2({type:r,viewQuery:function(i,n){if(1&i&&(e.Gf(EB,5),e.Gf(MB,5),e.Gf(VD,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.trigger=o.first),e.iGM(o=e.CRH())&&(n.panel=o.first),e.iGM(o=e.CRH())&&(n._overlayDir=o.first)}},inputs:{userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[e.qOj,e.TTD]})}}return r})();function tk(r,a){if(1&r&&(e.TgZ(0,"span",8),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Oqu(t.placeholder)}}function $_(r,a){if(1&r&&(e.TgZ(0,"span",12),e._uU(1),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.Oqu(t.triggerValue)}}function ik(r,a){1&r&&e.Hsn(0,0,["*ngSwitchCase","true"])}function v4(r,a){if(1&r&&(e.TgZ(0,"span",9),e.YNc(1,$_,2,1,"span",10),e.YNc(2,ik,1,0,"ng-content",11),e.qZA()),2&r){const t=e.oxw();e.Q6J("ngSwitch",!!t.customTrigger),e.xp6(2),e.Q6J("ngSwitchCase",!0)}}function nk(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",13)(1,"div",14,15),e.NdJ("@transformPanel.done",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._handleKeydown(n))}),e.Hsn(3,1),e.qZA()()}if(2&r){const t=e.oxw();e.Q6J("@transformPanelWrap",void 0),e.xp6(1),e.Gre("mat-select-panel ",t._getPanelTheme(),""),e.Udp("transform-origin",t._transformOrigin)("font-size",t._triggerFontSize,"px"),e.Q6J("ngClass",t.panelClass)("@transformPanel",t.multiple?"showing-multiple":"showing"),e.uIk("id",t.id+"-panel")("aria-multiselectable",t.multiple)("aria-label",t.ariaLabel||null)("aria-labelledby",t._getPanelAriaLabelledby())}}const y4=[[["mat-select-trigger"]],"*"],c0=["mat-select-trigger","*"],kB={transformPanelWrap:(0,vi.X$)("transformPanelWrap",[(0,vi.eR)("* => void",(0,vi.IO)("@transformPanel",[(0,vi.pV)()],{optional:!0}))]),transformPanel:(0,vi.X$)("transformPanel",[(0,vi.SB)("void",(0,vi.oB)({transform:"scaleY(0.8)",minWidth:"100%",opacity:0})),(0,vi.SB)("showing",(0,vi.oB)({opacity:1,minWidth:"calc(100% + 32px)",transform:"scaleY(1)"})),(0,vi.SB)("showing-multiple",(0,vi.oB)({opacity:1,minWidth:"calc(100% + 64px)",transform:"scaleY(1)"})),(0,vi.eR)("void => *",(0,vi.jt)("120ms cubic-bezier(0, 0, 0.2, 1)")),(0,vi.eR)("* => void",(0,vi.jt)("100ms 25ms linear",(0,vi.oB)({opacity:0})))])};class tv{constructor(a,t){this.source=a,this.value=t}}let PB=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-select-trigger"]],features:[e._Bn([{provide:X2,useExisting:r}])]})}}return r})(),fo=(()=>{class r extends ek{constructor(){super(...arguments),this._scrollTop=0,this._triggerFontSize=0,this._transformOrigin="top",this._offsetY=0,this._positions=[{originX:"start",originY:"top",overlayX:"start",overlayY:"top"},{originX:"start",originY:"bottom",overlayX:"start",overlayY:"bottom"}]}_calculateOverlayScroll(t,i,n){const o=this._getItemHeight();return Math.min(Math.max(0,o*t-i+o/2),n)}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe((0,On.R)(this._destroy)).subscribe(()=>{this.panelOpen&&(this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._changeDetectorRef.markForCheck())})}open(){super._canOpen()&&(super.open(),this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._triggerFontSize=parseInt(getComputedStyle(this.trigger.nativeElement).fontSize||"0"),this._calculateOverlayPosition(),this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(()=>{this._triggerFontSize&&this._overlayDir.overlayRef&&this._overlayDir.overlayRef.overlayElement&&(this._overlayDir.overlayRef.overlayElement.style.fontSize=`${this._triggerFontSize}px`)}))}_scrollOptionIntoView(t){const i=Lr(t,this.options,this.optionGroups),n=this._getItemHeight();this.panel.nativeElement.scrollTop=0===t&&1===i?0:Rr((t+i)*n,n,this.panel.nativeElement.scrollTop,256)}_positioningSettled(){this._calculateOverlayOffsetX(),this.panel.nativeElement.scrollTop=this._scrollTop}_panelDoneAnimating(t){this.panelOpen?this._scrollTop=0:(this._overlayDir.offsetX=0,this._changeDetectorRef.markForCheck()),super._panelDoneAnimating(t)}_getChangeEvent(t){return new tv(this,t)}_getOverlayMinWidth(){return this._triggerRect?.width}_calculateOverlayOffsetX(){const t=this._overlayDir.overlayRef.overlayElement.getBoundingClientRect(),i=this._viewportRuler.getViewportSize(),n=this._isRtl(),o=this.multiple?56:32;let s;if(this.multiple)s=40;else if(this.disableOptionCentering)s=16;else{let B=this._selectionModel.selected[0]||this.options.first;s=B&&B.group?32:16}n||(s*=-1);const c=0-(t.left+s-(n?o:0)),g=t.right+s-i.width+(n?0:o);c>0?s+=c+8:g>0&&(s-=g+8),this._overlayDir.offsetX=Math.round(s),this._overlayDir.overlayRef.updatePosition()}_calculateOverlayOffsetY(t,i,n){const o=this._getItemHeight(),s=(o-this._triggerRect.height)/2,c=Math.floor(256/o);let g;return this.disableOptionCentering?0:(g=0===this._scrollTop?t*o:this._scrollTop===n?(t-(this._getItemCount()-c))*o+(o-(this._getItemCount()*o-256)%o):i-o/2,Math.round(-1*g-s))}_checkOverlayWithinViewport(t){const i=this._getItemHeight(),n=this._viewportRuler.getViewportSize(),o=this._triggerRect.top-8,s=n.height-this._triggerRect.bottom-8,c=Math.abs(this._offsetY),B=Math.min(this._getItemCount()*i,256)-c-this._triggerRect.height;B>s?this._adjustPanelUp(B,s):c>o?this._adjustPanelDown(c,o,t):this._transformOrigin=this._getOriginBasedOnOption()}_adjustPanelUp(t,i){const n=Math.round(t-i);this._scrollTop-=n,this._offsetY-=n,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop<=0&&(this._scrollTop=0,this._offsetY=0,this._transformOrigin="50% bottom 0px")}_adjustPanelDown(t,i,n){const o=Math.round(t-i);if(this._scrollTop+=o,this._offsetY+=o,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop>=n)return this._scrollTop=n,this._offsetY=0,void(this._transformOrigin="50% top 0px")}_calculateOverlayPosition(){const t=this._getItemHeight(),i=this._getItemCount(),n=Math.min(i*t,256),s=i*t-n;let c;c=this.empty?0:Math.max(this.options.toArray().indexOf(this._selectionModel.selected[0]),0),c+=Lr(c,this.options,this.optionGroups);const g=n/2;this._scrollTop=this._calculateOverlayScroll(c,g,s),this._offsetY=this._calculateOverlayOffsetY(c,g,s),this._checkOverlayWithinViewport(s)}_getOriginBasedOnOption(){const t=this._getItemHeight(),i=(t-this._triggerRect.height)/2;return`50% ${Math.abs(this._offsetY)-i+t/2}px 0px`}_getItemHeight(){return 3*this._triggerFontSize}_getItemCount(){return this.options.length+this.optionGroups.length}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,X2,5),e.Suo(o,Nr,5),e.Suo(o,Tn,5)),2&i){let s;e.iGM(s=e.CRH())&&(n.customTrigger=s.first),e.iGM(s=e.CRH())&&(n.options=s),e.iGM(s=e.CRH())&&(n.optionGroups=s)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","true","ngSkipHydration","",1,"mat-select"],hostVars:19,hostBindings:function(i,n){1&i&&e.NdJ("keydown",function(s){return n._handleKeydown(s)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),2&i&&(e.uIk("id",n.id)("tabindex",n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),e.ekj("mat-select-disabled",n.disabled)("mat-select-invalid",n.errorState)("mat-select-required",n.required)("mat-select-empty",n.empty)("mat-select-multiple",n.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[e._Bn([{provide:jd,useExisting:r},{provide:bi,useExisting:r}]),e.qOj],ngContentSelectors:c0,decls:9,vars:12,consts:[["cdk-overlay-origin","",1,"mat-select-trigger",3,"click"],["origin","cdkOverlayOrigin","trigger",""],[1,"mat-select-value",3,"ngSwitch"],["class","mat-select-placeholder mat-select-min-line",4,"ngSwitchCase"],["class","mat-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-select-arrow-wrapper"],[1,"mat-select-arrow"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayMinWidth","cdkConnectedOverlayOffsetY","backdropClick","attach","detach"],[1,"mat-select-placeholder","mat-select-min-line"],[1,"mat-select-value-text",3,"ngSwitch"],["class","mat-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-select-min-line"],[1,"mat-select-panel-wrap"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(i,n){if(1&i&&(e.F$t(y4),e.TgZ(0,"div",0,1),e.NdJ("click",function(){return n.toggle()}),e.TgZ(3,"div",2),e.YNc(4,tk,2,1,"span",3),e.YNc(5,v4,3,2,"span",4),e.qZA(),e.TgZ(6,"div",5),e._UZ(7,"div",6),e.qZA()(),e.YNc(8,nk,4,14,"ng-template",7),e.NdJ("backdropClick",function(){return n.close()})("attach",function(){return n._onAttached()})("detach",function(){return n.close()})),2&i){const o=e.MAs(1);e.uIk("aria-owns",n.panelOpen?n.id+"-panel":null),e.xp6(3),e.Q6J("ngSwitch",n.empty),e.uIk("id",n._valueId),e.xp6(1),e.Q6J("ngSwitchCase",!0),e.xp6(1),e.Q6J("ngSwitchCase",!1),e.xp6(3),e.Q6J("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayMinWidth",n._getOverlayMinWidth())("cdkConnectedOverlayOffsetY",n._offsetY)}},dependencies:[l.mk,l.RF,l.n9,l.ED,VD,vy],styles:['.mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{height:16px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[kB.transformPanelWrap,kB.transformPanel]},changeDetection:0})}}return r})(),iv=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[f4],imports:[l.ez,Bd,zs,Fr,LA,Tw,zs,Fr]})}}return r})();const u0=new e.OlP("mat-tooltip-scroll-strategy"),sk={provide:u0,deps:[Uc],useFactory:function ak(r){return()=>r.scrollStrategies.reposition({scrollThrottle:20})}},Uw=new e.OlP("mat-tooltip-default-options",{providedIn:"root",factory:function FB(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),zw="tooltip-panel",LB=Rs({passive:!0});let Hw=(()=>{class r{get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=Sn(t),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=Ya(t)}get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=Ya(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(t){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=t?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(t,i,n,o,s,c,g,B,O,ne,we,$e){this._overlay=t,this._elementRef=i,this._scrollDispatcher=n,this._viewContainerRef=o,this._ngZone=s,this._platform=c,this._ariaDescriber=g,this._focusMonitor=B,this._dir=ne,this._defaultOptions=we,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new An.x,this._scrollStrategy=O,this._document=$e,we&&(this._showDelay=we.showDelay,this._hideDelay=we.hideDelay,we.position&&(this.position=we.position),we.positionAtOrigin&&(this.positionAtOrigin=we.positionAtOrigin),we.touchGestures&&(this.touchGestures=we.touchGestures)),ne.change.pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe((0,On.R)(this._destroyed)).subscribe(t=>{t?"keyboard"===t&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const t=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{t.removeEventListener(i,n,LB)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const n=this._createOverlay(i);this._detach(),this._portal=this._portal||new Zd(this._tooltipComponent,this._viewContainerRef);const o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe((0,On.R)(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(t)}hide(t=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(t):(i._cancelPendingAnimations(),this._detach()))}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){const o=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&o._origin instanceof e.SBq)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),n=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&t||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return n.positionChanges.pipe((0,On.R)(this._destroyed)).subscribe(o=>{this._updateCurrentPositionClass(o.connectionPair),this._tooltipInstance&&o.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:n,panelClass:`${this._cssClassPrefix}-${zw}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe((0,On.R)(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe((0,On.R)(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe((0,On.R)(this._destroyed)).subscribe(o=>{this._isTooltipVisible()&&27===o.keyCode&&!xa(o)&&(o.preventDefault(),o.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){const i=t.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset({...n.main,...o.main}),this._addOffset({...n.fallback,...o.fallback})])}_addOffset(t){return t}_getOrigin(){const t=!this._dir||"ltr"==this._dir.value,i=this.position;let n;"above"==i||"below"==i?n={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&t||"right"==i&&!t?n={originX:"start",originY:"center"}:("after"==i||"right"==i&&t||"left"==i&&!t)&&(n={originX:"end",originY:"center"});const{x:o,y:s}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:s}}}_getOverlayPosition(){const t=!this._dir||"ltr"==this._dir.value,i=this.position;let n;"above"==i?n={overlayX:"center",overlayY:"bottom"}:"below"==i?n={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&t||"right"==i&&!t?n={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&t||"left"==i&&!t)&&(n={overlayX:"start",overlayY:"center"});const{x:o,y:s}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe((0,yo.q)(1),(0,On.R)(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:i}}_updateCurrentPositionClass(t){const{overlayY:i,originX:n,originY:o}=t;let s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===n?"left":"right":"start"===n?"left":"right":"bottom"===i&&"top"===o?"above":"below",s!==this._currentPosition){const c=this._overlayRef;if(c){const g=`${this._cssClassPrefix}-${zw}-`;c.removePanelClass(g+this._currentPosition),c.addPanelClass(g+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",t=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==t.x&&void 0!==t.y&&(i=t),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",t=>{const i=t.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,n),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",i=>{const n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};t.push(["touchend",i],["touchcancel",i])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,LB)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(t.clientX,t.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const t=this.touchGestures;if("off"!==t){const i=this._elementRef.nativeElement,n=i.style;("on"===t||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),("on"===t||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,inputs:{position:["matTooltipPosition","position"],positionAtOrigin:["matTooltipPositionAtOrigin","positionAtOrigin"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}})}}return r})(),Gw=(()=>{class r{constructor(t,i){this._changeDetectorRef=t,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new An.x,this._animationsDisabled="NoopAnimations"===i}show(t){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},t)}hide(t){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},t)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(t){t?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(t){const i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(t?o:n),i.classList.add(t?n:o),this._isVisible=t,t&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}t&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t))}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(e.QbO,8))}}static{this.\u0275dir=e.lG2({type:r})}}return r})();const Ak=["tooltip"];let Cs=(()=>{class r extends Hw{constructor(t,i,n,o,s,c,g,B,O,ne,we,$e){super(t,i,n,o,s,c,g,B,O,ne,we,$e),this._tooltipComponent=UB}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Uc),e.Y36(e.SBq),e.Y36(Tl),e.Y36(e.s_b),e.Y36(e.R0b),e.Y36(ta),e.Y36(Fo),e.Y36(Es),e.Y36(u0),e.Y36(Ja,8),e.Y36(Uw,8),e.Y36(l.K0))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mat-tooltip-disabled",n.disabled)},exportAs:["matTooltip"],features:[e.qOj]})}}return r})(),UB=(()=>{class r extends Gw{constructor(t,i,n){super(t,n),this._showAnimation="mat-tooltip-show",this._hideAnimation="mat-tooltip-hide",this._isHandset=i.observe("(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)")}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(gA),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(1&i&&e.Gf(Ak,7),2&i){let o;e.iGM(o=e.CRH())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:3,hostBindings:function(i,n){1&i&&e.NdJ("mouseleave",function(s){return n._handleMouseLeave(s)}),2&i&&(e.uIk("mat-id-collision",null),e.Udp("zoom",n.isVisible()?1:null))},features:[e.qOj],decls:4,vars:6,consts:[[1,"mat-tooltip",3,"ngClass","animationend"],["tooltip",""]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0,1),e.NdJ("animationend",function(s){return n._handleAnimationEnd(s)}),e.ALo(2,"async"),e._uU(3),e.qZA()),2&i){let o;e.ekj("mat-tooltip-handset",null==(o=e.lcZ(2,4,n._isHandset))?null:o.matches),e.Q6J("ngClass",n.tooltipClass),e.xp6(3),e.Oqu(n.message)}},dependencies:[l.mk,l.Ov],styles:[".mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;transform:scale(0)}.mat-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}.mat-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-tooltip-show{0%{opacity:0;transform:scale(0)}50%{opacity:.5;transform:scale(0.99)}100%{opacity:1;transform:scale(1)}}@keyframes mat-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}.mat-tooltip-show{animation:mat-tooltip-show 200ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-tooltip-hide{animation:mat-tooltip-hide 100ms cubic-bezier(0, 0, 0.2, 1) forwards}"],encapsulation:2,changeDetection:0})}}return r})(),Lf=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[sk],imports:[vh,l.ez,Bd,Fr,Fr,LA]})}}return r})();function zB(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function HB(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-form-field",16)(1,"mat-select",17),e.NdJ("selectionChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o._changePageSize(n.value))}),e.YNc(2,zB,2,2,"mat-option",18),e.qZA()()}if(2&r){const t=e.oxw(2);e.Q6J("appearance",t._formFieldAppearance)("color",t.color),e.xp6(1),e.Q6J("value",t.pageSize)("disabled",t.disabled)("panelClass",t.selectConfig.panelClass||"")("disableOptionCentering",t.selectConfig.disableOptionCentering)("aria-label",t._intl.itemsPerPageLabel),e.xp6(1),e.Q6J("ngForOf",t._displayedPageSizeOptions)}}function GB(r,a){if(1&r&&(e.TgZ(0,"div",20),e._uU(1),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.Oqu(t.pageSize)}}function uk(r,a){if(1&r&&(e.TgZ(0,"div",12)(1,"div",13),e._uU(2),e.qZA(),e.YNc(3,HB,3,8,"mat-form-field",14),e.YNc(4,GB,2,1,"div",15),e.qZA()),2&r){const t=e.oxw();e.xp6(2),e.hij(" ",t._intl.itemsPerPageLabel," "),e.xp6(1),e.Q6J("ngIf",t._displayedPageSizeOptions.length>1),e.xp6(1),e.Q6J("ngIf",t._displayedPageSizeOptions.length<=1)}}function ZB(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",21),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.firstPage())}),e.O4$(),e.TgZ(1,"svg",7),e._UZ(2,"path",22),e.qZA()()}if(2&r){const t=e.oxw();e.Q6J("matTooltip",t._intl.firstPageLabel)("matTooltipDisabled",t._previousButtonsDisabled())("matTooltipPosition","above")("disabled",t._previousButtonsDisabled()),e.uIk("aria-label",t._intl.firstPageLabel)}}function JB(r,a){if(1&r){const t=e.EpF();e.O4$(),e.kcU(),e.TgZ(0,"button",23),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.lastPage())}),e.O4$(),e.TgZ(1,"svg",7),e._UZ(2,"path",24),e.qZA()()}if(2&r){const t=e.oxw();e.Q6J("matTooltip",t._intl.lastPageLabel)("matTooltipDisabled",t._nextButtonsDisabled())("matTooltipPosition","above")("disabled",t._nextButtonsDisabled()),e.uIk("aria-label",t._intl.lastPageLabel)}}const hk=new e.OlP("MAT_LEGACY_PAGINATOR_DEFAULT_OPTIONS");let Td=(()=>{class r extends A4{constructor(t,i,n){super(t,i,n),n&&null!=n.formFieldAppearance&&(this._formFieldAppearance=n.formFieldAppearance)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Ff),e.Y36(e.sBO),e.Y36(hk,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[e.qOj],decls:14,vars:14,consts:[[1,"mat-paginator-outer-container"],[1,"mat-paginator-container"],["class","mat-paginator-page-size",4,"ngIf"],[1,"mat-paginator-range-actions"],[1,"mat-paginator-range-label"],["mat-icon-button","","type","button","class","mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-paginator-page-size"],[1,"mat-paginator-page-size-label"],["class","mat-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-paginator-page-size-value",4,"ngIf"],[1,"mat-paginator-page-size-select",3,"appearance","color"],[3,"value","disabled","panelClass","disableOptionCentering","aria-label","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e.YNc(2,uk,5,3,"div",2),e.TgZ(3,"div",3)(4,"div",4),e._uU(5),e.qZA(),e.YNc(6,ZB,3,5,"button",5),e.TgZ(7,"button",6),e.NdJ("click",function(){return n.previousPage()}),e.O4$(),e.TgZ(8,"svg",7),e._UZ(9,"path",8),e.qZA()(),e.kcU(),e.TgZ(10,"button",9),e.NdJ("click",function(){return n.nextPage()}),e.O4$(),e.TgZ(11,"svg",7),e._UZ(12,"path",10),e.qZA()(),e.YNc(13,JB,3,5,"button",11),e.qZA()()()),2&i&&(e.xp6(2),e.Q6J("ngIf",!n.hidePageSize),e.xp6(3),e.hij(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),e.xp6(1),e.Q6J("ngIf",n.showFirstLastButtons),e.xp6(1),e.Q6J("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("matTooltipPosition","above")("disabled",n._previousButtonsDisabled()),e.uIk("aria-label",n._intl.previousPageLabel),e.xp6(3),e.Q6J("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("matTooltipPosition","above")("disabled",n._nextButtonsDisabled()),e.uIk("aria-label",n._intl.nextPageLabel),e.xp6(3),e.Q6J("ngIf",n.showFirstLastButtons))},dependencies:[l.sg,l.O5,Yn,qx,fo,Nr,Cs],styles:[".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{display:inline-block;width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-paginator-icon{fill:CanvasText}"],encapsulation:2,changeDetection:0})}}return r})(),Zw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[BB],imports:[l.ez,gf,iv,Lf,Fr]})}}return r})();var Ni=ce(1365);let Rf=(()=>{class r extends Ff{translateService;ofLabel="of";unsubscribe=new An.x;constructor(t){super(),this.translateService=t,this.translateService.onLangChange.pipe((0,On.R)(this.unsubscribe)).subscribe(()=>{this.getAndInitTranslations()}),this.getAndInitTranslations()}getAndInitTranslations(){this.translateService.get(["table.property-paginator-items-per-page","table.property-paginator-next-page","table.property-paginator-prev-page","table.property-paginator-of-label"]).pipe((0,On.R)(this.unsubscribe)).subscribe(t=>{this.itemsPerPageLabel=t["table.property-paginator-items-per-page"],this.nextPageLabel=t["table.property-paginator-next-page"],this.previousPageLabel=t["Ptable.property-paginator-prev-page"],this.ofLabel=t["table.property-paginator-of-label"],this.changes.next(null)})}getRangeLabel=(t,i,n)=>{if(0===n||0===i)return`0 ${this.ofLabel} ${n}`;const o=t*i;return`${o+1} - ${o<(n=Math.max(n,0))?Math.min(o+i,n):o+i} ${this.ofLabel} ${n}`};ngOnDestroy(){this.unsubscribe.next(null),this.unsubscribe.complete()}static \u0275fac=function(i){return new(i||r)(e.LFG(Ni.sK))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();const pk=new e.OlP("MAT_PROGRESS_BAR_DEFAULT_OPTIONS"),gk=new e.OlP("mat-progress-bar-location",{providedIn:"root",factory:function E4(){const r=(0,e.f3M)(l.K0),a=r?r.location:null;return{getPathname:()=>a?a.pathname+a.search:""}}}),M4=["primaryValueBar"],D4=Wl(class{constructor(r){this._elementRef=r}},"primary");let h0=0,Jw=(()=>{class r extends D4{constructor(t,i,n,o,s,c){super(t),this._ngZone=i,this._animationMode=n,this._changeDetectorRef=c,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new e.vpe,this._animationEndSubscription=Jr.w0.EMPTY,this.mode="determinate",this.progressbarId="mat-progress-bar-"+h0++;const g=o?o.getPathname().split("#")[0]:"";this._rectangleFillValue=`url('${g}#${this.progressbarId}')`,this._isNoopAnimation="NoopAnimations"===n,s&&(s.color&&(this.color=this.defaultColor=s.color),this.mode=s.mode||this.mode)}get value(){return this._value}set value(t){this._value=nv(Ya(t)||0),this._changeDetectorRef?.markForCheck()}get bufferValue(){return this._bufferValue}set bufferValue(t){this._bufferValue=nv(t||0),this._changeDetectorRef?.markForCheck()}_primaryTransform(){return{transform:`scale3d(${this.value/100}, 1, 1)`}}_bufferTransform(){return"buffer"===this.mode?{transform:`scale3d(${this.bufferValue/100}, 1, 1)`}:null}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{const t=this._primaryValueBar.nativeElement;this._animationEndSubscription=Je(t,"transitionend").pipe((0,Wr.h)(i=>i.target===t)).subscribe(()=>{0!==this.animationEnd.observers.length&&("determinate"===this.mode||"buffer"===this.mode)&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))})})}ngOnDestroy(){this._animationEndSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(e.QbO,8),e.Y36(gk,8),e.Y36(pk,8),e.Y36(e.sBO))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-progress-bar"]],viewQuery:function(i,n){if(1&i&&e.Gf(M4,5),2&i){let o;e.iGM(o=e.CRH())&&(n._primaryValueBar=o.first)}},hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-progress-bar"],hostVars:4,hostBindings:function(i,n){2&i&&(e.uIk("aria-valuenow","indeterminate"===n.mode||"query"===n.mode?null:n.value)("mode",n.mode),e.ekj("_mat-animation-noopable",n._isNoopAnimation))},inputs:{color:"color",value:"value",bufferValue:"bufferValue",mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[e.qOj],decls:10,vars:4,consts:[["aria-hidden","true"],["width","100%","height","4","focusable","false",1,"mat-progress-bar-background","mat-progress-bar-element"],["x","4","y","0","width","8","height","4","patternUnits","userSpaceOnUse",3,"id"],["cx","2","cy","2","r","2"],["width","100%","height","100%"],[1,"mat-progress-bar-buffer","mat-progress-bar-element",3,"ngStyle"],[1,"mat-progress-bar-primary","mat-progress-bar-fill","mat-progress-bar-element",3,"ngStyle"],["primaryValueBar",""],[1,"mat-progress-bar-secondary","mat-progress-bar-fill","mat-progress-bar-element"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.O4$(),e.TgZ(1,"svg",1)(2,"defs")(3,"pattern",2),e._UZ(4,"circle",3),e.qZA()(),e._UZ(5,"rect",4),e.qZA(),e.kcU(),e._UZ(6,"div",5)(7,"div",6,7)(9,"div",8),e.qZA()),2&i&&(e.xp6(3),e.Q6J("id",n.progressbarId),e.xp6(2),e.uIk("fill",n._rectangleFillValue),e.xp6(1),e.Q6J("ngStyle",n._bufferTransform()),e.xp6(1),e.Q6J("ngStyle",n._primaryTransform()))},dependencies:[l.PC],styles:['.mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}.mat-progress-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:"";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}'],encapsulation:2,changeDetection:0})}}return r})();function nv(r,a=0,t=100){return Math.max(a,Math.min(t,r))}let VB=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[l.ez,Fr,Fr]})}}return r})();const _k=new e.OlP("mat-progress-spinner-default-options",{providedIn:"root",factory:function jw(){return{diameter:WB}}}),WB=100;function qB(r,a){if(1&r&&(e.O4$(),e._UZ(0,"circle",4)),2&r){const t=e.oxw(),i=e.MAs(1);e.Udp("animation-name","mat-progress-spinner-stroke-rotate-"+t._spinnerAnimationLabel)("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%")("transform-origin",t._getCircleTransformOrigin(i)),e.uIk("r",t._getCircleRadius())}}function vk(r,a){if(1&r&&(e.O4$(),e._UZ(0,"circle",4)),2&r){const t=e.oxw(),i=e.MAs(1);e.Udp("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%")("transform-origin",t._getCircleTransformOrigin(i)),e.uIk("r",t._getCircleRadius())}}const yk=Wl(class{constructor(r){this._elementRef=r}},"primary");class BA extends yk{static{this._diameters=new WeakMap}get diameter(){return this._diameter}set diameter(a){this._diameter=Ya(a),this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),this._styleRoot&&this._attachStyleNode()}get strokeWidth(){return this._strokeWidth||this.diameter/10}set strokeWidth(a){this._strokeWidth=Ya(a)}get value(){return"determinate"===this.mode?this._value:0}set value(a){this._value=Math.max(0,Math.min(100,Ya(a)))}constructor(a,t,i,n,o,s,c,g,B){super(a),this._document=i,this._nonce=B,this._diameter=100,this._value=0,this._resizeSubscription=Jr.w0.EMPTY,this.mode="determinate";const O=BA._diameters;this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),O.has(i.head)||O.set(i.head,new Set([100])),this._noopAnimations="NoopAnimations"===n&&!!o&&!o._forceAnimations,"mat-spinner"===a.nativeElement.nodeName.toLowerCase()&&(this.mode="indeterminate"),o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth)),t.isBrowser&&t.SAFARI&&c&&s&&g&&(this._resizeSubscription=c.change(150).subscribe(()=>{"indeterminate"===this.mode&&g.run(()=>s.markForCheck())}))}ngOnInit(){const a=this._elementRef.nativeElement;this._styleRoot=nl(a)||this._document.head,this._attachStyleNode(),a.classList.add("mat-progress-spinner-indeterminate-animation")}ngOnDestroy(){this._resizeSubscription.unsubscribe()}_getCircleRadius(){return(this.diameter-10)/2}_getViewBox(){const a=2*this._getCircleRadius()+this.strokeWidth;return`0 0 ${a} ${a}`}_getStrokeCircumference(){return 2*Math.PI*this._getCircleRadius()}_getStrokeDashOffset(){return"determinate"===this.mode?this._getStrokeCircumference()*(100-this._value)/100:null}_getCircleStrokeWidth(){return this.strokeWidth/this.diameter*100}_getCircleTransformOrigin(a){const t=50*(a.currentScale??1);return`${t}% ${t}%`}_attachStyleNode(){const a=this._styleRoot,t=this._diameter,i=BA._diameters;let n=i.get(a);if(!n||!n.has(t)){const o=this._document.createElement("style");this._nonce&&(o.nonce=this._nonce),o.setAttribute("mat-spinner-animation",this._spinnerAnimationLabel),o.textContent=this._getAnimationText(),a.appendChild(o),n||(n=new Set,i.set(a,n)),n.add(t)}}_getAnimationText(){const a=this._getStrokeCircumference();return"\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n".replace(/START_VALUE/g,""+.95*a).replace(/END_VALUE/g,""+.2*a).replace(/DIAMETER/g,`${this._spinnerAnimationLabel}`)}_getSpinnerAnimationLabel(){return this.diameter.toString().replace(".","_")}static{this.\u0275fac=function(t){return new(t||BA)(e.Y36(e.SBq),e.Y36(ta),e.Y36(l.K0,8),e.Y36(e.QbO,8),e.Y36(_k),e.Y36(e.sBO),e.Y36(Is),e.Y36(e.R0b),e.Y36(e.Ojb,8))}}static{this.\u0275cmp=e.Xpm({type:BA,selectors:[["mat-progress-spinner"],["mat-spinner"]],hostAttrs:["role","progressbar","tabindex","-1",1,"mat-progress-spinner","mat-spinner"],hostVars:10,hostBindings:function(t,i){2&t&&(e.uIk("aria-valuemin","determinate"===i.mode?0:null)("aria-valuemax","determinate"===i.mode?100:null)("aria-valuenow","determinate"===i.mode?i.value:null)("mode",i.mode),e.Udp("width",i.diameter,"px")("height",i.diameter,"px"),e.ekj("_mat-animation-noopable",i._noopAnimations))},inputs:{color:"color",diameter:"diameter",strokeWidth:"strokeWidth",mode:"mode",value:"value"},exportAs:["matProgressSpinner"],features:[e.qOj],decls:4,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["svg",""],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width","transform-origin",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width","transform-origin",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(t,i){1&t&&(e.O4$(),e.TgZ(0,"svg",0,1),e.YNc(2,qB,1,11,"circle",2),e.YNc(3,vk,1,9,"circle",3),e.qZA()),2&t&&(e.Udp("width",i.diameter,"px")("height",i.diameter,"px"),e.Q6J("ngSwitch","indeterminate"===i.mode),e.uIk("viewBox",i._getViewBox()),e.xp6(2),e.Q6J("ngSwitchCase",!0),e.xp6(1),e.Q6J("ngSwitchCase",!1))},dependencies:[l.RF,l.n9],styles:[".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:rgba(0,0,0,0);transition:stroke-dashoffset 225ms linear}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}.mat-progress-spinner[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}.mat-progress-spinner._mat-animation-noopable svg,.mat-progress-spinner._mat-animation-noopable circle{animation:none;transition:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}"],encapsulation:2,changeDetection:0})}}let wk=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,l.ez,Fr]})}}return r})();const S4=["input"];let $B=0;class eE{constructor(a,t){this.source=a,this.value=t}}const p0=new e.OlP("MatRadioGroup"),iE=new e.OlP("mat-radio-default-options",{providedIn:"root",factory:function nE(){return{color:"accent"}}});let Kw=(()=>{class r{get name(){return this._name}set name(t){this._name=t,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(t){this._labelPosition="before"===t?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(t){this._selected=t,this.value=t?t.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(t){this._disabled=Sn(t),this._markRadiosForCheck()}get required(){return this._required}set required(t){this._required=Sn(t),this._markRadiosForCheck()}constructor(t){this._changeDetector=t,this._value=null,this._name="mat-radio-group-"+$B++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new e.vpe}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(t=>t===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(t=>{t.name=this.name,t._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new eE(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(t=>t._markForCheck())}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetector.markForCheck()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO))}}static{this.\u0275dir=e.lG2({type:r,inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required"},outputs:{change:"change"}})}}return r})();class bk{constructor(a){this._elementRef=a}}const xk=ll(Kl(bk));let qw=(()=>{class r extends xk{get checked(){return this._checked}set checked(t){const i=Sn(t);this._checked!==i&&(this._checked=i,i&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!i&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),i&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===t),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(t){this._labelPosition=t}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(t){this._setDisabled(Sn(t))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(t){this._required=Sn(t)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(t){this._color=t}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,n,o,s,c,g,B){super(i),this._changeDetector=n,this._focusMonitor=o,this._radioDispatcher=s,this._providerOverride=g,this._uniqueId="mat-radio-"+ ++$B,this.id=this._uniqueId,this.change=new e.vpe,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=t,this._noopAnimations="NoopAnimations"===c,B&&(this.tabIndex=Ya(B,0))}focus(t,i){i?this._focusMonitor.focusVia(this._inputElement,i,t):this._inputElement.nativeElement.focus(t)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((t,i)=>{t!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{!t&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new eE(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(t){t.stopPropagation()}_onInputInteraction(t){if(t.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(t){this._onInputInteraction(t),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(t){this._disabled!==t&&(this._disabled=t,this._changeDetector.markForCheck())}_updateTabIndex(){const t=this.radioGroup;let i;if(i=t&&t.selected&&!this.disabled?t.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const n=this._inputElement?.nativeElement;n&&(n.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,viewQuery:function(i,n){if(1&i&&e.Gf(S4,5),2&i){let o;e.iGM(o=e.CRH())&&(n._inputElement=o.first)}},inputs:{id:"id",name:"name",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"},features:[e.qOj]})}}return r})();const oE=function(r){return{enterDuration:r}},aE=["*"],Mk={provide:y,useExisting:(0,e.Gpc)(()=>sE),multi:!0};let sE=(()=>{class r extends Kw{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-radio-group"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,Dk,5),2&i){let s;e.iGM(s=e.CRH())&&(n._radios=s)}},hostAttrs:["role","radiogroup",1,"mat-radio-group"],exportAs:["matRadioGroup"],features:[e._Bn([Mk,{provide:p0,useExisting:r}]),e.qOj]})}}return r})(),Dk=(()=>{class r extends qw{constructor(t,i,n,o,s,c,g,B){super(t,i,n,o,s,c,g,B)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(p0,8),e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(Es),e.Y36(g_),e.Y36(e.QbO,8),e.Y36(iE,8),e.$8M("tabindex"))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-radio-button"],hostVars:17,hostBindings:function(i,n){1&i&&e.NdJ("focus",function(){return n._inputElement.nativeElement.focus()}),2&i&&(e.uIk("tabindex",null)("id",n.id)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),e.ekj("mat-radio-checked",n.checked)("mat-radio-disabled",n.disabled)("_mat-animation-noopable",n._noopAnimations)("mat-primary","primary"===n.color)("mat-accent","accent"===n.color)("mat-warn","warn"===n.color))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[e.qOj],ngContentSelectors:aE,decls:13,vars:19,consts:[[1,"mat-radio-label"],["label",""],[1,"mat-radio-container"],[1,"mat-radio-outer-circle"],[1,"mat-radio-inner-circle"],["type","radio",1,"mat-radio-input",3,"id","checked","disabled","required","change","click"],["input",""],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mat-radio-label-content"],[2,"display","none"]],template:function(i,n){if(1&i&&(e.F$t(),e.TgZ(0,"label",0,1)(2,"span",2),e._UZ(3,"span",3)(4,"span",4),e.TgZ(5,"input",5,6),e.NdJ("change",function(s){return n._onInputInteraction(s)})("click",function(s){return n._onInputClick(s)}),e.qZA(),e.TgZ(7,"span",7),e._UZ(8,"span",8),e.qZA()(),e.TgZ(9,"span",9)(10,"span",10),e._uU(11,"\xa0"),e.qZA(),e.Hsn(12),e.qZA()()),2&i){const o=e.MAs(1);e.uIk("for",n.inputId),e.xp6(5),e.Q6J("id",n.inputId)("checked",n.checked)("disabled",n.disabled)("required",n.required),e.uIk("name",n.name)("value",n.value)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby),e.xp6(2),e.Q6J("matRippleTrigger",o)("matRippleDisabled",n._isRippleDisabled())("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",e.VKq(17,oE,n._noopAnimations?0:150)),e.xp6(2),e.ekj("mat-radio-label-before","before"==n.labelPosition)}},dependencies:[At],styles:['.mat-radio-button{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-radio-label{-webkit-user-select:none;user-select:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%}.mat-radio-container{box-sizing:border-box;display:inline-block;position:relative;width:20px;height:20px;flex-shrink:0}.mat-radio-outer-circle{box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:border-color ease 280ms;width:20px;border-width:2px;border-style:solid;border-radius:50%}._mat-animation-noopable .mat-radio-outer-circle{transition:none}.mat-radio-inner-circle{border-radius:50%;box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;opacity:0;transition:transform ease 280ms,background-color ease 280ms,opacity linear 1ms 280ms;width:20px;transform:scale(0.001);-webkit-print-color-adjust:exact;color-adjust:exact}.mat-radio-checked .mat-radio-inner-circle{transform:scale(0.5);opacity:1;transition:transform ease 280ms,background-color ease 280ms}.cdk-high-contrast-active .mat-radio-checked .mat-radio-inner-circle{border:solid 10px}._mat-animation-noopable .mat-radio-inner-circle{transition:none}.mat-radio-label-content{-webkit-user-select:auto;user-select:auto;display:inline-block;order:0;line-height:inherit;padding-left:8px;padding-right:0}[dir=rtl] .mat-radio-label-content{padding-right:8px;padding-left:0}.mat-radio-label-content.mat-radio-label-before{order:-1;padding-left:0;padding-right:8px}[dir=rtl] .mat-radio-label-content.mat-radio-label-before{padding-right:0;padding-left:8px}.mat-radio-disabled,.mat-radio-disabled .mat-radio-label{cursor:default}.mat-radio-button .mat-radio-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-radio-button .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple){opacity:.16}.mat-radio-persistent-ripple{width:100%;height:100%;transform:none;top:0;left:0}.mat-radio-container:hover .mat-radio-persistent-ripple{opacity:.04}.mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-persistent-ripple,.mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-persistent-ripple{opacity:.12}.mat-radio-persistent-ripple,.mat-radio-disabled .mat-radio-container:hover .mat-radio-persistent-ripple{opacity:0}@media(hover: none){.mat-radio-container:hover .mat-radio-persistent-ripple{display:none}}.mat-radio-input{opacity:0;position:absolute;top:0;left:0;margin:0;width:100%;height:100%;cursor:inherit;z-index:-1}.mat-radio-input:focus~.mat-focus-indicator::before{content:""}.cdk-high-contrast-active .mat-radio-disabled{opacity:.5}'],encapsulation:2,changeDetection:0})}}return r})(),Xw=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[bt,Fr,Fr]})}}return r})();const $w=["*"],P4=["content"];function F4(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",2),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n._onBackdropClicked())}),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-drawer-shown",t._isShowingBackdrop())}}function O4(r,a){1&r&&(e.TgZ(0,"mat-drawer-content"),e.Hsn(1,2),e.qZA())}const L4=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],R4=["mat-drawer","mat-drawer-content","*"];function Y4(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",2),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n._onBackdropClicked())}),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-drawer-shown",t._isShowingBackdrop())}}function N4(r,a){1&r&&(e.TgZ(0,"mat-sidenav-content"),e.Hsn(1,2),e.qZA())}const U4=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],lE=["mat-sidenav","mat-sidenav-content","*"],tC={transformDrawer:(0,vi.X$)("transform",[(0,vi.SB)("open, open-instant",(0,vi.oB)({transform:"none",visibility:"visible"})),(0,vi.SB)("void",(0,vi.oB)({"box-shadow":"none",visibility:"hidden"})),(0,vi.eR)("void => open-instant",(0,vi.jt)("0ms")),(0,vi.eR)("void <=> open, open-instant => void",(0,vi.jt)("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},rv=new e.OlP("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function H4(){return!1}}),iC=new e.OlP("MAT_DRAWER_CONTAINER");let ov=(()=>{class r extends $l{constructor(t,i,n,o,s){super(n,o,s),this._changeDetectorRef=t,this._container=i}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36((0,e.Gpc)(()=>g0)),e.Y36(e.SBq),e.Y36(Tl),e.Y36(e.R0b))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-drawer-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content"],hostVars:4,hostBindings:function(i,n){2&i&&e.Udp("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px")},features:[e._Bn([{provide:$l,useExisting:r}]),e.qOj],ngContentSelectors:$w,decls:1,vars:0,template:function(i,n){1&i&&(e.F$t(),e.Hsn(0))},encapsulation:2,changeDetection:0})}}return r})(),av=(()=>{class r{get position(){return this._position}set position(t){(t="end"===t?"end":"start")!==this._position&&(this._isAttached&&this._updatePositionInParent(t),this._position=t,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(t){this._mode=t,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(t){this._disableClose=Sn(t)}get autoFocus(){return this._autoFocus??("side"===this.mode?"dialog":"first-tabbable")}set autoFocus(t){("true"===t||"false"===t||null==t)&&(t=Sn(t)),this._autoFocus=t}get opened(){return this._opened}set opened(t){this.toggle(Sn(t))}constructor(t,i,n,o,s,c,g,B){this._elementRef=t,this._focusTrapFactory=i,this._focusMonitor=n,this._platform=o,this._ngZone=s,this._interactivityChecker=c,this._doc=g,this._container=B,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new An.x,this._animationEnd=new An.x,this._animationState="void",this.openedChange=new e.vpe(!0),this._openedStream=this.openedChange.pipe((0,Wr.h)(O=>O),(0,f.U)(()=>{})),this.openedStart=this._animationStarted.pipe((0,Wr.h)(O=>O.fromState!==O.toState&&0===O.toState.indexOf("open")),df(void 0)),this._closedStream=this.openedChange.pipe((0,Wr.h)(O=>!O),(0,f.U)(()=>{})),this.closedStart=this._animationStarted.pipe((0,Wr.h)(O=>O.fromState!==O.toState&&"void"===O.toState),df(void 0)),this._destroyed=new An.x,this.onPositionChanged=new e.vpe,this._modeChanged=new An.x,this.openedChange.subscribe(O=>{O?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{Je(this._elementRef.nativeElement,"keydown").pipe((0,Wr.h)(O=>27===O.keyCode&&!this.disableClose&&!xa(O)),(0,On.R)(this._destroyed)).subscribe(O=>this._ngZone.run(()=>{this.close(),O.stopPropagation(),O.preventDefault()}))}),this._animationEnd.pipe((0,eA.x)((O,ne)=>O.fromState===ne.fromState&&O.toState===ne.toState)).subscribe(O=>{const{fromState:ne,toState:we}=O;(0===we.indexOf("open")&&"void"===ne||"void"===we&&0===ne.indexOf("open"))&&this.openedChange.emit(this._opened)})}_forceFocus(t,i){this._interactivityChecker.isFocusable(t)||(t.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const n=()=>{t.removeEventListener("blur",n),t.removeEventListener("mousedown",n),t.removeAttribute("tabindex")};t.addEventListener("blur",n),t.addEventListener("mousedown",n)})),t.focus(i)}_focusByCssSelector(t,i){let n=this._elementRef.nativeElement.querySelector(t);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;const t=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{!i&&"function"==typeof this._elementRef.nativeElement.focus&&t.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}_restoreFocus(t){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,t):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){const t=this._doc.activeElement;return!!t&&this._elementRef.nativeElement.contains(t)}ngAfterViewInit(){this._isAttached=!0,this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState(),"end"===this._position&&this._updatePositionInParent("end")}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(t){return this.toggle(!0,t)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(t=!this.opened,i){t&&i&&(this._openedVia=i);const n=this._setOpen(t,!t&&this._isFocusWithinDrawer(),this._openedVia||"program");return t||(this._openedVia=null),n}_setOpen(t,i,n){return this._opened=t,t?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",i&&this._restoreFocus(n)),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe((0,yo.q)(1)).subscribe(s=>o(s?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop)}_updatePositionInParent(t){const i=this._elementRef.nativeElement,n=i.parentNode;"end"===t?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(fA),e.Y36(Es),e.Y36(ta),e.Y36(e.R0b),e.Y36(du),e.Y36(l.K0,8),e.Y36(iC,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(1&i&&e.Gf(P4,5),2&i){let o;e.iGM(o=e.CRH())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer"],hostVars:12,hostBindings:function(i,n){1&i&&e.WFA("@transform.start",function(s){return n._animationStarted.next(s)})("@transform.done",function(s){return n._animationEnd.next(s)}),2&i&&(e.uIk("align",null),e.d8E("@transform",n._animationState),e.ekj("mat-drawer-end","end"===n.position)("mat-drawer-over","over"===n.mode)("mat-drawer-push","push"===n.mode)("mat-drawer-side","side"===n.mode)("mat-drawer-opened",n.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:$w,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"div",0,1),e.Hsn(2),e.qZA())},dependencies:[$l],encapsulation:2,data:{animation:[tC.transformDrawer]},changeDetection:0})}}return r})(),g0=(()=>{class r{get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(t){this._autosize=Sn(t)}get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(t){this._backdropOverride=null==t?null:Sn(t)}get scrollable(){return this._userContent||this._content}constructor(t,i,n,o,s,c=!1,g){this._dir=t,this._element=i,this._ngZone=n,this._changeDetectorRef=o,this._animationMode=g,this._drawers=new e.n_E,this.backdropClick=new e.vpe,this._destroyed=new An.x,this._doCheckSubject=new An.x,this._contentMargins={left:null,right:null},this._contentMarginChanges=new An.x,t&&t.change.pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),s.change().pipe((0,On.R)(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=c}ngAfterContentInit(){this._allDrawers.changes.pipe(na(this._allDrawers),(0,On.R)(this._destroyed)).subscribe(t=>{this._drawers.reset(t.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(na(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(t=>{this._watchDrawerToggle(t),this._watchDrawerPosition(t),this._watchDrawerMode(t)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe((0,OA.b)(10),(0,On.R)(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(t=>t.open())}close(){this._drawers.forEach(t=>t.close())}updateContentMargins(){let t=0,i=0;if(this._left&&this._left.opened)if("side"==this._left.mode)t+=this._left._getWidth();else if("push"==this._left.mode){const n=this._left._getWidth();t+=n,i-=n}if(this._right&&this._right.opened)if("side"==this._right.mode)i+=this._right._getWidth();else if("push"==this._right.mode){const n=this._right._getWidth();i+=n,t-=n}t=t||null,i=i||null,(t!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:t,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(t){t._animationStarted.pipe((0,Wr.h)(i=>i.fromState!==i.toState),(0,On.R)(this._drawers.changes)).subscribe(i=>{"open-instant"!==i.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==t.mode&&t.openedChange.pipe((0,On.R)(this._drawers.changes)).subscribe(()=>this._setContainerClass(t.opened))}_watchDrawerPosition(t){t&&t.onPositionChanged.pipe((0,On.R)(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe((0,yo.q)(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(t){t&&t._modeChanged.pipe((0,On.R)((0,Wa.T)(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(t){const i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";t?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(t=>{"end"==t.position?this._end=t:this._start=t}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(t=>t&&!t.disableClose&&this._drawerHasBackdrop(t)).forEach(t=>t._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(t){return null!=t&&t.opened}_drawerHasBackdrop(t){return null==this._backdropOverride?!!t&&"side"!==t.mode:this._backdropOverride}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Ja,8),e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(e.sBO),e.Y36(Is),e.Y36(rv),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,ov,5),e.Suo(o,av,5)),2&i){let s;e.iGM(s=e.CRH())&&(n._content=s.first),e.iGM(s=e.CRH())&&(n._allDrawers=s)}},viewQuery:function(i,n){if(1&i&&e.Gf(ov,5),2&i){let o;e.iGM(o=e.CRH())&&(n._userContent=o.first)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[e._Bn([{provide:iC,useExisting:r}])],ngContentSelectors:R4,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){1&i&&(e.F$t(L4),e.YNc(0,F4,1,2,"div",0),e.Hsn(1),e.Hsn(2,1),e.YNc(3,O4,2,0,"mat-drawer-content",1)),2&i&&(e.Q6J("ngIf",n.hasBackdrop),e.xp6(3),e.Q6J("ngIf",!n._content))},dependencies:[l.O5,ov],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}}return r})(),nC=(()=>{class r extends ov{constructor(t,i,n,o,s){super(t,i,n,o,s)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36((0,e.Gpc)(()=>AE)),e.Y36(e.SBq),e.Y36(Tl),e.Y36(e.R0b))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-sidenav-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(i,n){2&i&&e.Udp("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px")},features:[e._Bn([{provide:$l,useExisting:r}]),e.qOj],ngContentSelectors:$w,decls:1,vars:0,template:function(i,n){1&i&&(e.F$t(),e.Hsn(0))},encapsulation:2,changeDetection:0})}}return r})(),cE=(()=>{class r extends av{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(t){this._fixedInViewport=Sn(t)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(t){this._fixedTopGap=Ya(t)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(t){this._fixedBottomGap=Ya(t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(i,n){2&i&&(e.uIk("align",null),e.Udp("top",n.fixedInViewport?n.fixedTopGap:null,"px")("bottom",n.fixedInViewport?n.fixedBottomGap:null,"px"),e.ekj("mat-drawer-end","end"===n.position)("mat-drawer-over","over"===n.mode)("mat-drawer-push","push"===n.mode)("mat-drawer-side","side"===n.mode)("mat-drawer-opened",n.opened)("mat-sidenav-fixed",n.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[e.qOj],ngContentSelectors:$w,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"div",0,1),e.Hsn(2),e.qZA())},dependencies:[$l],encapsulation:2,data:{animation:[tC.transformDrawer]},changeDetection:0})}}return r})(),AE=(()=>{class r extends g0{constructor(){super(...arguments),this._allDrawers=void 0,this._content=void 0}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-sidenav-container"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,nC,5),e.Suo(o,cE,5)),2&i){let s;e.iGM(s=e.CRH())&&(n._content=s.first),e.iGM(s=e.CRH())&&(n._allDrawers=s)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mat-drawer-container-explicit-backdrop",n._backdropOverride)},exportAs:["matSidenavContainer"],features:[e._Bn([{provide:iC,useExisting:r}]),e.qOj],ngContentSelectors:lE,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){1&i&&(e.F$t(U4),e.YNc(0,Y4,1,2,"div",0),e.Hsn(1),e.Hsn(2,1),e.YNc(3,N4,2,0,"mat-sidenav-content",1)),2&i&&(e.Q6J("ngIf",n.hasBackdrop),e.xp6(3),e.Q6J("ngIf",!n._content))},dependencies:[l.O5,nC],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}}return r})(),Tk=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[l.ez,Fr,LA,LA,Fr]})}}return r})();const Ik=["sliderWrapper"],EA=Rs({passive:!1}),Pk={provide:y,useExisting:(0,e.Gpc)(()=>f0),multi:!0};class Fk{}const Ok=Kl(Wl(Lc(class{constructor(r){this._elementRef=r}}),"accent"));let f0=(()=>{class r extends Ok{get invert(){return this._invert}set invert(t){this._invert=Sn(t)}get max(){return this._max}set max(t){this._max=Ya(t,this._max),this._percent=this._calculatePercentage(this._value),this._changeDetectorRef.markForCheck()}get min(){return this._min}set min(t){this._min=Ya(t,this._min),this._percent=this._calculatePercentage(this._value),this._changeDetectorRef.markForCheck()}get step(){return this._step}set step(t){this._step=Ya(t,this._step),this._step%1!=0&&(this._roundToDecimal=this._step.toString().split(".").pop().length),this._changeDetectorRef.markForCheck()}get thumbLabel(){return this._thumbLabel}set thumbLabel(t){this._thumbLabel=Sn(t)}get tickInterval(){return this._tickInterval}set tickInterval(t){this._tickInterval="auto"===t?"auto":"number"==typeof t||"string"==typeof t?Ya(t,this._tickInterval):0}get value(){return null===this._value&&(this.value=this._min),this._value}set value(t){if(t!==this._value){let i=Ya(t,0);this._roundToDecimal&&i!==this.min&&i!==this.max&&(i=parseFloat(i.toFixed(this._roundToDecimal))),this._value=i,this._percent=this._calculatePercentage(this._value),this._changeDetectorRef.markForCheck()}}get vertical(){return this._vertical}set vertical(t){this._vertical=Sn(t)}get displayValue(){return this.displayWith?this.displayWith(this.value):this._roundToDecimal&&this.value&&this.value%1!=0?this.value.toFixed(this._roundToDecimal):this.value||0}focus(t){this._focusHostElement(t)}blur(){this._blurHostElement()}get percent(){return this._clamp(this._percent)}_shouldInvertAxis(){return this.vertical?!this.invert:this.invert}_isMinValue(){return 0===this.percent}_getThumbGap(){return this.disabled?7:this._isMinValue()&&!this.thumbLabel?this._isActive?10:7:0}_getTrackBackgroundStyles(){const i=this.vertical?`1, ${1-this.percent}, 1`:1-this.percent+", 1, 1";return{transform:`translate${this.vertical?"Y":"X"}(${this._shouldInvertMouseCoords()?"-":""}${this._getThumbGap()}px) scale3d(${i})`}}_getTrackFillStyles(){const t=this.percent,n=this.vertical?`1, ${t}, 1`:`${t}, 1, 1`;return{transform:`translate${this.vertical?"Y":"X"}(${this._shouldInvertMouseCoords()?"":"-"}${this._getThumbGap()}px) scale3d(${n})`,display:0===t?"none":""}}_getTicksContainerStyles(){return{transform:`translate${this.vertical?"Y":"X"}(${this.vertical||"rtl"!=this._getDirection()?"-":""}${this._tickIntervalPercent/2*100}%)`}}_getTicksStyles(){let t=100*this._tickIntervalPercent,c={backgroundSize:this.vertical?`2px ${t}%`:`${t}% 2px`,transform:`translateZ(0) translate${this.vertical?"Y":"X"}(${this.vertical||"rtl"!=this._getDirection()?"":"-"}${t/2}%)${this.vertical||"rtl"!=this._getDirection()?"":" rotate(180deg)"}`};if(this._isMinValue()&&this._getThumbGap()){const g=this._shouldInvertAxis();let B;B=this.vertical?g?"Bottom":"Top":g?"Right":"Left",c[`padding${B}`]=`${this._getThumbGap()}px`}return c}_getThumbContainerStyles(){const t=this._shouldInvertAxis();return{transform:`translate${this.vertical?"Y":"X"}(-${100*(("rtl"!=this._getDirection()||this.vertical?t:!t)?this.percent:1-this.percent)}%)`}}_shouldInvertMouseCoords(){const t=this._shouldInvertAxis();return"rtl"!=this._getDirection()||this.vertical?t:!t}_getDirection(){return this._dir&&"rtl"==this._dir.value?"rtl":"ltr"}constructor(t,i,n,o,s,c,g,B){super(t),this._focusMonitor=i,this._changeDetectorRef=n,this._dir=o,this._ngZone=c,this._animationMode=B,this._invert=!1,this._max=100,this._min=0,this._step=1,this._thumbLabel=!1,this._tickInterval=0,this._value=null,this._vertical=!1,this.change=new e.vpe,this.input=new e.vpe,this.valueChange=new e.vpe,this.onTouched=()=>{},this._percent=0,this._isSliding=null,this._isActive=!1,this._tickIntervalPercent=0,this._sliderDimensions=null,this._controlValueAccessorChangeFn=()=>{},this._dirChangeSubscription=Jr.w0.EMPTY,this._pointerDown=O=>{this.disabled||this._isSliding||!m0(O)&&0!==O.button||this._ngZone.run(()=>{this._touchId=m0(O)?function Lk(r,a){for(let t=0;t{if("pointer"===this._isSliding){const ne=uE(O,this._touchId);if(ne){O.cancelable&&O.preventDefault();const we=this.value;this._lastPointerEvent=O,this._updateValueFromPosition(ne),we!=this.value&&this._emitInputEvent()}}},this._pointerUp=O=>{"pointer"===this._isSliding&&(!m0(O)||"number"!=typeof this._touchId||rC(O.changedTouches,this._touchId))&&(O.cancelable&&O.preventDefault(),this._removeGlobalEvents(),this._isSliding=null,this._touchId=void 0,this._valueOnSlideStart!=this.value&&!this.disabled&&this._emitChangeEvent(),this._valueOnSlideStart=this._lastPointerEvent=null)},this._windowBlur=()=>{this._lastPointerEvent&&this._pointerUp(this._lastPointerEvent)},this._document=g,this.tabIndex=parseInt(s)||0,c.runOutsideAngular(()=>{const O=t.nativeElement;O.addEventListener("mousedown",this._pointerDown,EA),O.addEventListener("touchstart",this._pointerDown,EA)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{this._isActive=!!t&&"keyboard"!==t,this._changeDetectorRef.detectChanges()}),this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>{this._changeDetectorRef.markForCheck()}))}ngOnDestroy(){const t=this._elementRef.nativeElement;t.removeEventListener("mousedown",this._pointerDown,EA),t.removeEventListener("touchstart",this._pointerDown,EA),this._lastPointerEvent=null,this._removeGlobalEvents(),this._focusMonitor.stopMonitoring(this._elementRef),this._dirChangeSubscription.unsubscribe()}_onMouseenter(){this.disabled||(this._sliderDimensions=this._getSliderDimensions(),this._updateTickIntervalPercent())}_onFocus(){this._sliderDimensions=this._getSliderDimensions(),this._updateTickIntervalPercent()}_onBlur(){this.onTouched()}_onKeydown(t){if(this.disabled||xa(t)||this._isSliding&&"keyboard"!==this._isSliding)return;const i=this.value;switch(t.keyCode){case 33:this._increment(10);break;case 34:this._increment(-10);break;case 35:this.value=this.max;break;case 36:this.value=this.min;break;case 37:this._increment("rtl"==this._getDirection()?1:-1);break;case 38:this._increment(1);break;case 39:this._increment("rtl"==this._getDirection()?-1:1);break;case 40:this._increment(-1);break;default:return}i!=this.value&&(this._emitInputEvent(),this._emitChangeEvent()),this._isSliding="keyboard",t.preventDefault()}_onKeyup(){"keyboard"===this._isSliding&&(this._isSliding=null)}_getWindow(){return this._document.defaultView||window}_bindGlobalEvents(t){const i=this._document,n=m0(t),s=n?"touchend":"mouseup";i.addEventListener(n?"touchmove":"mousemove",this._pointerMove,EA),i.addEventListener(s,this._pointerUp,EA),n&&i.addEventListener("touchcancel",this._pointerUp,EA);const c=this._getWindow();typeof c<"u"&&c&&c.addEventListener("blur",this._windowBlur)}_removeGlobalEvents(){const t=this._document;t.removeEventListener("mousemove",this._pointerMove,EA),t.removeEventListener("mouseup",this._pointerUp,EA),t.removeEventListener("touchmove",this._pointerMove,EA),t.removeEventListener("touchend",this._pointerUp,EA),t.removeEventListener("touchcancel",this._pointerUp,EA);const i=this._getWindow();typeof i<"u"&&i&&i.removeEventListener("blur",this._windowBlur)}_increment(t){const i=this._clamp(this.value||0,this.min,this.max);this.value=this._clamp(i+this.step*t,this.min,this.max)}_updateValueFromPosition(t){if(!this._sliderDimensions)return;let s=this._clamp(((this.vertical?t.y:t.x)-(this.vertical?this._sliderDimensions.top:this._sliderDimensions.left))/(this.vertical?this._sliderDimensions.height:this._sliderDimensions.width));if(this._shouldInvertMouseCoords()&&(s=1-s),0===s)this.value=this.min;else if(1===s)this.value=this.max;else{const c=this._calculateValue(s),g=Math.round((c-this.min)/this.step)*this.step+this.min;this.value=this._clamp(g,this.min,this.max)}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.value),this.valueChange.emit(this.value),this.change.emit(this._createChangeEvent())}_emitInputEvent(){this.input.emit(this._createChangeEvent())}_updateTickIntervalPercent(){if(!this.tickInterval||!this._sliderDimensions)return;let t;if("auto"==this.tickInterval){let i=this.vertical?this._sliderDimensions.height:this._sliderDimensions.width;t=Math.ceil(30/(i*this.step/(this.max-this.min)))*this.step/i}else t=this.tickInterval*this.step/(this.max-this.min);this._tickIntervalPercent=dE(t)?t:0}_createChangeEvent(t=this.value){let i=new Fk;return i.source=this,i.value=t,i}_calculatePercentage(t){const i=((t||0)-this.min)/(this.max-this.min);return dE(i)?i:0}_calculateValue(t){return this.min+t*(this.max-this.min)}_clamp(t,i=0,n=1){return Math.max(i,Math.min(t,n))}_getSliderDimensions(){return this._sliderWrapper?this._sliderWrapper.nativeElement.getBoundingClientRect():null}_focusHostElement(t){this._elementRef.nativeElement.focus(t)}_blurHostElement(){this._elementRef.nativeElement.blur()}writeValue(t){this.value=t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Es),e.Y36(e.sBO),e.Y36(Ja,8),e.$8M("tabindex"),e.Y36(e.R0b),e.Y36(l.K0),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-slider"]],viewQuery:function(i,n){if(1&i&&e.Gf(Ik,5),2&i){let o;e.iGM(o=e.CRH())&&(n._sliderWrapper=o.first)}},hostAttrs:["role","slider",1,"mat-slider","mat-focus-indicator"],hostVars:29,hostBindings:function(i,n){1&i&&e.NdJ("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()})("keydown",function(s){return n._onKeydown(s)})("keyup",function(){return n._onKeyup()})("mouseenter",function(){return n._onMouseenter()})("selectstart",function(s){return s.preventDefault()}),2&i&&(e.Ikx("tabIndex",n.tabIndex),e.uIk("aria-disabled",n.disabled)("aria-valuemax",n.max)("aria-valuemin",n.min)("aria-valuenow",n.value)("aria-valuetext",null==n.valueText?n.displayValue:n.valueText)("aria-orientation",n.vertical?"vertical":"horizontal"),e.ekj("mat-slider-disabled",n.disabled)("mat-slider-has-ticks",n.tickInterval)("mat-slider-horizontal",!n.vertical)("mat-slider-axis-inverted",n._shouldInvertAxis())("mat-slider-invert-mouse-coords",n._shouldInvertMouseCoords())("mat-slider-sliding",n._isSliding)("mat-slider-thumb-label-showing",n.thumbLabel)("mat-slider-vertical",n.vertical)("mat-slider-min-value",n._isMinValue())("mat-slider-hide-last-tick",n.disabled||n._isMinValue()&&n._getThumbGap()&&n._shouldInvertAxis())("_mat-animation-noopable","NoopAnimations"===n._animationMode))},inputs:{disabled:"disabled",color:"color",tabIndex:"tabIndex",invert:"invert",max:"max",min:"min",step:"step",thumbLabel:"thumbLabel",tickInterval:"tickInterval",value:"value",displayWith:"displayWith",valueText:"valueText",vertical:"vertical"},outputs:{change:"change",input:"input",valueChange:"valueChange"},exportAs:["matSlider"],features:[e._Bn([Pk]),e.qOj],decls:13,vars:6,consts:[[1,"mat-slider-wrapper"],["sliderWrapper",""],[1,"mat-slider-track-wrapper"],[1,"mat-slider-track-background",3,"ngStyle"],[1,"mat-slider-track-fill",3,"ngStyle"],[1,"mat-slider-ticks-container",3,"ngStyle"],[1,"mat-slider-ticks",3,"ngStyle"],[1,"mat-slider-thumb-container",3,"ngStyle"],[1,"mat-slider-focus-ring"],[1,"mat-slider-thumb"],[1,"mat-slider-thumb-label"],[1,"mat-slider-thumb-label-text"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1)(2,"div",2),e._UZ(3,"div",3)(4,"div",4),e.qZA(),e.TgZ(5,"div",5),e._UZ(6,"div",6),e.qZA(),e.TgZ(7,"div",7),e._UZ(8,"div",8)(9,"div",9),e.TgZ(10,"div",10)(11,"span",11),e._uU(12),e.qZA()()()()),2&i&&(e.xp6(3),e.Q6J("ngStyle",n._getTrackBackgroundStyles()),e.xp6(1),e.Q6J("ngStyle",n._getTrackFillStyles()),e.xp6(1),e.Q6J("ngStyle",n._getTicksContainerStyles()),e.xp6(1),e.Q6J("ngStyle",n._getTicksStyles()),e.xp6(1),e.Q6J("ngStyle",n._getThumbContainerStyles()),e.xp6(5),e.Oqu(n.displayValue))},dependencies:[l.PC],styles:['.mat-slider{display:inline-block;position:relative;box-sizing:border-box;padding:8px;outline:none;vertical-align:middle}.mat-slider:not(.mat-slider-disabled):active,.mat-slider.mat-slider-sliding:not(.mat-slider-disabled){cursor:grabbing}.mat-slider-wrapper{-webkit-print-color-adjust:exact;color-adjust:exact;position:absolute}.mat-slider-track-wrapper{position:absolute;top:0;left:0;overflow:hidden}.mat-slider-track-fill{position:absolute;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-track-background{position:absolute;transform-origin:100% 100%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-ticks-container{position:absolute;left:0;top:0;overflow:hidden}.mat-slider-ticks{-webkit-background-clip:content-box;background-clip:content-box;background-repeat:repeat;box-sizing:border-box;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-container{position:absolute;z-index:1;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-focus-ring{position:absolute;width:30px;height:30px;border-radius:50%;transform:scale(0);opacity:0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider.cdk-keyboard-focused .mat-slider-focus-ring,.mat-slider.cdk-program-focused .mat-slider-focus-ring{transform:scale(1);opacity:1}.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb-label,.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb{cursor:grab}.mat-slider-thumb{position:absolute;right:-10px;bottom:-10px;box-sizing:border-box;width:20px;height:20px;border:3px solid rgba(0,0,0,0);border-radius:50%;transform:scale(0.7);transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-label{display:none;align-items:center;justify-content:center;position:absolute;width:28px;height:28px;border-radius:50%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-radius 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.cdk-high-contrast-active .mat-slider-thumb-label{outline:solid 1px}.mat-slider-thumb-label-text{z-index:1;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-sliding .mat-slider-track-fill,.mat-slider-sliding .mat-slider-track-background,.mat-slider-sliding .mat-slider-thumb-container{transition-duration:0ms}.mat-slider-has-ticks .mat-slider-wrapper::after{content:"";position:absolute;border-width:0;border-style:solid;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after,.mat-slider-has-ticks:hover:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after{opacity:1}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-disabled) .mat-slider-ticks,.mat-slider-has-ticks:hover:not(.mat-slider-disabled) .mat-slider-ticks{opacity:1}.mat-slider-thumb-label-showing .mat-slider-focus-ring{display:none}.mat-slider-thumb-label-showing .mat-slider-thumb-label{display:flex}.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:100% 100%}.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:0 0}.mat-slider:not(.mat-slider-disabled).cdk-focused.mat-slider-thumb-label-showing .mat-slider-thumb{transform:scale(0)}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label{border-radius:50% 50% 0}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label-text{opacity:1}.mat-slider:not(.mat-slider-disabled).cdk-mouse-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-touch-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-program-focused .mat-slider-thumb{border-width:2px;transform:scale(1)}.mat-slider-disabled .mat-slider-focus-ring{transform:scale(0);opacity:0}.mat-slider-disabled .mat-slider-thumb{border-width:4px;transform:scale(0.5)}.mat-slider-disabled .mat-slider-thumb-label{display:none}.mat-slider-horizontal{height:48px;min-width:128px}.mat-slider-horizontal .mat-slider-wrapper{height:2px;top:23px;left:8px;right:8px}.mat-slider-horizontal .mat-slider-wrapper::after{height:2px;border-left-width:2px;right:0;top:0}.mat-slider-horizontal .mat-slider-track-wrapper{height:2px;width:100%}.mat-slider-horizontal .mat-slider-track-fill{height:2px;width:100%;transform:scaleX(0)}.mat-slider-horizontal .mat-slider-track-background{height:2px;width:100%;transform:scaleX(1)}.mat-slider-horizontal .mat-slider-ticks-container{height:2px;width:100%}.cdk-high-contrast-active .mat-slider-horizontal .mat-slider-ticks-container{height:0;outline:solid 2px;top:1px}.mat-slider-horizontal .mat-slider-ticks{height:2px;width:100%}.mat-slider-horizontal .mat-slider-thumb-container{width:100%;height:0;top:50%}.mat-slider-horizontal .mat-slider-focus-ring{top:-15px;right:-15px}.mat-slider-horizontal .mat-slider-thumb-label{right:-14px;top:-40px;transform:translateY(26px) scale(0.01) rotate(45deg)}.mat-slider-horizontal .mat-slider-thumb-label-text{transform:rotate(-45deg)}.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(45deg)}.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label,.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label-text{transform:none}.mat-slider-vertical{width:48px;min-height:128px}.mat-slider-vertical .mat-slider-wrapper{width:2px;top:8px;bottom:8px;left:23px}.mat-slider-vertical .mat-slider-wrapper::after{width:2px;border-top-width:2px;bottom:0;left:0}.mat-slider-vertical .mat-slider-track-wrapper{height:100%;width:2px}.mat-slider-vertical .mat-slider-track-fill{height:100%;width:2px;transform:scaleY(0)}.mat-slider-vertical .mat-slider-track-background{height:100%;width:2px;transform:scaleY(1)}.mat-slider-vertical .mat-slider-ticks-container{width:2px;height:100%}.cdk-high-contrast-active .mat-slider-vertical .mat-slider-ticks-container{width:0;outline:solid 2px;left:1px}.mat-slider-vertical .mat-slider-focus-ring{bottom:-15px;left:-15px}.mat-slider-vertical .mat-slider-ticks{width:2px;height:100%}.mat-slider-vertical .mat-slider-thumb-container{height:100%;width:0;left:50%}.mat-slider-vertical .mat-slider-thumb{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-slider-vertical .mat-slider-thumb-label{bottom:-14px;left:-40px;transform:translateX(26px) scale(0.01) rotate(-45deg)}.mat-slider-vertical .mat-slider-thumb-label-text{transform:rotate(45deg)}.mat-slider-vertical.cdk-focused .mat-slider-thumb-label{transform:rotate(-45deg)}[dir=rtl] .mat-slider-wrapper::after{left:0;right:auto}[dir=rtl] .mat-slider-horizontal .mat-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .mat-slider-horizontal .mat-slider-track-background{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:100% 100%}.mat-slider._mat-animation-noopable .mat-slider-track-fill,.mat-slider._mat-animation-noopable .mat-slider-track-background,.mat-slider._mat-animation-noopable .mat-slider-ticks,.mat-slider._mat-animation-noopable .mat-slider-thumb-container,.mat-slider._mat-animation-noopable .mat-slider-focus-ring,.mat-slider._mat-animation-noopable .mat-slider-thumb,.mat-slider._mat-animation-noopable .mat-slider-thumb-label,.mat-slider._mat-animation-noopable .mat-slider-thumb-label-text,.mat-slider._mat-animation-noopable .mat-slider-has-ticks .mat-slider-wrapper::after{transition:none}'],encapsulation:2,changeDetection:0})}}return r})();function dE(r){return!isNaN(r)&&isFinite(r)}function m0(r){return"t"===r.type[0]}function uE(r,a){let t;return t=m0(r)?"number"==typeof a?rC(r.touches,a)||rC(r.changedTouches,a):r.touches[0]||r.changedTouches[0]:r,t?{x:t.clientX,y:t.clientY}:void 0}function rC(r,a){for(let t=0;t{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[l.ez,Fr,Fr]})}}return r})(),aC=0;const Hk=Kl(Wl(ll(Lc(class{constructor(r){this._elementRef=r}}))));let pE=(()=>{class r extends Hk{get required(){return this._required}set required(t){this._required=Sn(t)}get checked(){return this._checked}set checked(t){this._checked=Sn(t),this._changeDetectorRef.markForCheck()}get hideIcon(){return this._hideIcon}set hideIcon(t){this._hideIcon=Sn(t)}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,n,o,s,c,g){super(t),this._focusMonitor=i,this._changeDetectorRef=n,this.defaults=s,this._onChange=B=>{},this._onTouched=()=>{},this._required=!1,this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this._hideIcon=!1,this.change=new e.vpe,this.toggleChange=new e.vpe,this.tabIndex=parseInt(o)||0,this.color=this.defaultColor=s.color||"accent",this._noopAnimations="NoopAnimations"===c,this.id=this._uniqueId=`${g}${++aC}`,this._hideIcon=s.hideIcon??!1}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{"keyboard"===t||"program"===t?(this._focused=!0,this._changeDetectorRef.markForCheck()):t||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(t){this.checked=!!t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275dir=e.lG2({type:r,inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],required:"required",checked:"checked",hideIcon:"hideIcon"},outputs:{change:"change",toggleChange:"toggleChange"},features:[e.qOj]})}}return r})(),RA=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();const mE=["input"],Zk=function(r){return{enterDuration:r}},_E=["*"],Jk=new e.OlP("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1})}),sC={provide:y,useExisting:(0,e.Gpc)(()=>bc),multi:!0};class pp{constructor(a,t){this.source=a,this.checked=t}}let bc=(()=>{class r extends pE{constructor(t,i,n,o,s,c){super(t,i,n,o,s,c,"mat-slide-toggle-")}_createChangeEvent(t){return new pp(this,t)}_onChangeEvent(t){t.stopPropagation(),this.toggleChange.emit(),this.defaults.disableToggleValue?this._inputElement.nativeElement.checked=this.checked:(this.checked=this._inputElement.nativeElement.checked,this._emitChangeEvent())}_onInputClick(t){t.stopPropagation()}focus(t,i){i?this._focusMonitor.focusVia(this._inputElement,i,t):this._inputElement.nativeElement.focus(t)}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Es),e.Y36(e.sBO),e.$8M("tabindex"),e.Y36(Jk),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(1&i&&e.Gf(mE,5),2&i){let o;e.iGM(o=e.CRH())&&(n._inputElement=o.first)}},hostAttrs:[1,"mat-slide-toggle"],hostVars:13,hostBindings:function(i,n){2&i&&(e.Ikx("id",n.id),e.uIk("tabindex",null)("aria-label",null)("aria-labelledby",null)("name",null),e.ekj("mat-checked",n.checked)("mat-disabled",n.disabled)("mat-slide-toggle-label-before","before"==n.labelPosition)("_mat-animation-noopable",n._noopAnimations))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matSlideToggle"],features:[e._Bn([sC]),e.qOj],ngContentSelectors:_E,decls:14,vars:20,consts:[[1,"mat-slide-toggle-label"],["label",""],[1,"mat-slide-toggle-bar"],["type","checkbox","role","switch",1,"mat-slide-toggle-input","cdk-visually-hidden",3,"id","required","tabIndex","checked","disabled","change","click"],["input",""],[1,"mat-slide-toggle-thumb-container"],[1,"mat-slide-toggle-thumb"],["mat-ripple","",1,"mat-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-slide-toggle-persistent-ripple"],[1,"mat-slide-toggle-content",3,"cdkObserveContent"],["labelContent",""],[2,"display","none"]],template:function(i,n){if(1&i&&(e.F$t(),e.TgZ(0,"label",0,1)(2,"span",2)(3,"input",3,4),e.NdJ("change",function(s){return n._onChangeEvent(s)})("click",function(s){return n._onInputClick(s)}),e.qZA(),e.TgZ(5,"span",5),e._UZ(6,"span",6),e.TgZ(7,"span",7),e._UZ(8,"span",8),e.qZA()()(),e.TgZ(9,"span",9,10),e.NdJ("cdkObserveContent",function(){return n._onLabelTextChange()}),e.TgZ(11,"span",11),e._uU(12,"\xa0"),e.qZA(),e.Hsn(13),e.qZA()()),2&i){const o=e.MAs(1),s=e.MAs(10);e.uIk("for",n.inputId),e.xp6(2),e.ekj("mat-slide-toggle-bar-no-side-margin",!s.textContent||!s.textContent.trim()),e.xp6(1),e.Q6J("id",n.inputId)("required",n.required)("tabIndex",n.tabIndex)("checked",n.checked)("disabled",n.disabled),e.uIk("name",n.name)("aria-checked",n.checked)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby),e.xp6(4),e.Q6J("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",e.VKq(18,Zk,n._noopAnimations?0:150))}},dependencies:[At,Ba],styles:['.mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{-webkit-user-select:none;user-select:none;display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%;display:block}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.mat-slide-toggle-input:focus~.mat-slide-toggle-thumb-container .mat-focus-indicator::before{content:""}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}'],encapsulation:2,changeDetection:0})}}return r})(),lv=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[RA,bt,Fr,VA,RA,Fr]})}}return r})(),yE=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Bd,xd,l.ez,gf,Fr,Fr]})}}return r})();const Vk=["mat-sort-header",""];function Wk(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",3),e.NdJ("@arrowPosition.start",function(){e.CHM(t);const n=e.oxw();return e.KtG(n._disableViewStateAnimation=!0)})("@arrowPosition.done",function(){e.CHM(t);const n=e.oxw();return e.KtG(n._disableViewStateAnimation=!1)}),e._UZ(1,"div",4),e.TgZ(2,"div",5),e._UZ(3,"div",6)(4,"div",7)(5,"div",8),e.qZA()()}if(2&r){const t=e.oxw();e.Q6J("@arrowOpacity",t._getArrowViewState())("@arrowPosition",t._getArrowViewState())("@allowChildren",t._getArrowDirectionState()),e.xp6(2),e.Q6J("@indicator",t._getArrowDirectionState()),e.xp6(1),e.Q6J("@leftPointer",t._getArrowDirectionState()),e.xp6(1),e.Q6J("@rightPointer",t._getArrowDirectionState())}}const wE=["*"],Xk=new e.OlP("MAT_SORT_DEFAULT_OPTIONS"),lC=Xp(Lc(class{}));let As=(()=>{class r extends lC{get direction(){return this._direction}set direction(t){this._direction=t}get disableClear(){return this._disableClear}set disableClear(t){this._disableClear=Sn(t)}constructor(t){super(),this._defaultOptions=t,this.sortables=new Map,this._stateChanges=new An.x,this.start="asc",this._direction="",this.sortChange=new e.vpe}register(t){this.sortables.set(t.id,t)}deregister(t){this.sortables.delete(t.id)}sort(t){this.active!=t.id?(this.active=t.id,this.direction=t.start?t.start:this.start):this.direction=this.getNextSortDirection(t),this.sortChange.emit({active:this.active,direction:this.direction})}getNextSortDirection(t){if(!t)return"";let n=function CE(r,a){let t=["asc","desc"];return"desc"==r&&t.reverse(),a||t.push(""),t}(t.start||this.start,t?.disableClear??this.disableClear??!!this._defaultOptions?.disableClear),o=n.indexOf(this.direction)+1;return o>=n.length&&(o=0),n[o]}ngOnInit(){this._markInitialized()}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Xk,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matSort",""]],hostAttrs:[1,"mat-sort"],inputs:{disabled:["matSortDisabled","disabled"],active:["matSortActive","active"],start:["matSortStart","start"],direction:["matSortDirection","direction"],disableClear:["matSortDisableClear","disableClear"]},outputs:{sortChange:"matSortChange"},exportAs:["matSort"],features:[e.qOj,e.TTD]})}}return r})();const gp=pu.ENTERING+" "+wd.STANDARD_CURVE,vg={indicator:(0,vi.X$)("indicator",[(0,vi.SB)("active-asc, asc",(0,vi.oB)({transform:"translateY(0px)"})),(0,vi.SB)("active-desc, desc",(0,vi.oB)({transform:"translateY(10px)"})),(0,vi.eR)("active-asc <=> active-desc",(0,vi.jt)(gp))]),leftPointer:(0,vi.X$)("leftPointer",[(0,vi.SB)("active-asc, asc",(0,vi.oB)({transform:"rotate(-45deg)"})),(0,vi.SB)("active-desc, desc",(0,vi.oB)({transform:"rotate(45deg)"})),(0,vi.eR)("active-asc <=> active-desc",(0,vi.jt)(gp))]),rightPointer:(0,vi.X$)("rightPointer",[(0,vi.SB)("active-asc, asc",(0,vi.oB)({transform:"rotate(45deg)"})),(0,vi.SB)("active-desc, desc",(0,vi.oB)({transform:"rotate(-45deg)"})),(0,vi.eR)("active-asc <=> active-desc",(0,vi.jt)(gp))]),arrowOpacity:(0,vi.X$)("arrowOpacity",[(0,vi.SB)("desc-to-active, asc-to-active, active",(0,vi.oB)({opacity:1})),(0,vi.SB)("desc-to-hint, asc-to-hint, hint",(0,vi.oB)({opacity:.54})),(0,vi.SB)("hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void",(0,vi.oB)({opacity:0})),(0,vi.eR)("* => asc, * => desc, * => active, * => hint, * => void",(0,vi.jt)("0ms")),(0,vi.eR)("* <=> *",(0,vi.jt)(gp))]),arrowPosition:(0,vi.X$)("arrowPosition",[(0,vi.eR)("* => desc-to-hint, * => desc-to-active",(0,vi.jt)(gp,(0,vi.F4)([(0,vi.oB)({transform:"translateY(-25%)"}),(0,vi.oB)({transform:"translateY(0)"})]))),(0,vi.eR)("* => hint-to-desc, * => active-to-desc",(0,vi.jt)(gp,(0,vi.F4)([(0,vi.oB)({transform:"translateY(0)"}),(0,vi.oB)({transform:"translateY(25%)"})]))),(0,vi.eR)("* => asc-to-hint, * => asc-to-active",(0,vi.jt)(gp,(0,vi.F4)([(0,vi.oB)({transform:"translateY(25%)"}),(0,vi.oB)({transform:"translateY(0)"})]))),(0,vi.eR)("* => hint-to-asc, * => active-to-asc",(0,vi.jt)(gp,(0,vi.F4)([(0,vi.oB)({transform:"translateY(0)"}),(0,vi.oB)({transform:"translateY(-25%)"})]))),(0,vi.SB)("desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active",(0,vi.oB)({transform:"translateY(0)"})),(0,vi.SB)("hint-to-desc, active-to-desc, desc",(0,vi.oB)({transform:"translateY(-25%)"})),(0,vi.SB)("hint-to-asc, active-to-asc, asc",(0,vi.oB)({transform:"translateY(25%)"}))]),allowChildren:(0,vi.X$)("allowChildren",[(0,vi.eR)("* <=> *",[(0,vi.IO)("@*",(0,vi.pV)(),{optional:!0})])])};let _0=(()=>{class r{constructor(){this.changes=new An.x}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const cv={provide:_0,deps:[[new e.FiY,new e.tp0,_0]],useFactory:function Nf(r){return r||new _0}},bE=Lc(class{});let YA=(()=>{class r extends bE{get sortActionDescription(){return this._sortActionDescription}set sortActionDescription(t){this._updateSortActionDescription(t)}get disableClear(){return this._disableClear}set disableClear(t){this._disableClear=Sn(t)}constructor(t,i,n,o,s,c,g,B){super(),this._intl=t,this._changeDetectorRef=i,this._sort=n,this._columnDef=o,this._focusMonitor=s,this._elementRef=c,this._ariaDescriber=g,this._showIndicatorHint=!1,this._viewState={},this._arrowDirection="",this._disableViewStateAnimation=!1,this.arrowPosition="after",this._sortActionDescription="Sort",B?.arrowPosition&&(this.arrowPosition=B?.arrowPosition),this._handleStateChanges()}ngOnInit(){!this.id&&this._columnDef&&(this.id=this._columnDef.name),this._updateArrowDirection(),this._setAnimationTransitionState({toState:this._isSorted()?"active":this._arrowDirection}),this._sort.register(this),this._sortButton=this._elementRef.nativeElement.querySelector(".mat-sort-header-container"),this._updateSortActionDescription(this._sortActionDescription)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{const i=!!t;i!==this._showIndicatorHint&&(this._setIndicatorHintVisible(i),this._changeDetectorRef.markForCheck())})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._sort.deregister(this),this._rerenderSubscription.unsubscribe()}_setIndicatorHintVisible(t){this._isDisabled()&&t||(this._showIndicatorHint=t,this._isSorted()||(this._updateArrowDirection(),this._setAnimationTransitionState(this._showIndicatorHint?{fromState:this._arrowDirection,toState:"hint"}:{fromState:"hint",toState:this._arrowDirection})))}_setAnimationTransitionState(t){this._viewState=t||{},this._disableViewStateAnimation&&(this._viewState={toState:t.toState})}_toggleOnInteraction(){this._sort.sort(this),("hint"===this._viewState.toState||"active"===this._viewState.toState)&&(this._disableViewStateAnimation=!0)}_handleClick(){this._isDisabled()||this._sort.sort(this)}_handleKeydown(t){!this._isDisabled()&&(32===t.keyCode||13===t.keyCode)&&(t.preventDefault(),this._toggleOnInteraction())}_isSorted(){return this._sort.active==this.id&&("asc"===this._sort.direction||"desc"===this._sort.direction)}_getArrowDirectionState(){return`${this._isSorted()?"active-":""}${this._arrowDirection}`}_getArrowViewState(){const t=this._viewState.fromState;return(t?`${t}-to-`:"")+this._viewState.toState}_updateArrowDirection(){this._arrowDirection=this._isSorted()?this._sort.direction:this.start||this._sort.start}_isDisabled(){return this._sort.disabled||this.disabled}_getAriaSortAttribute(){return this._isSorted()?"asc"==this._sort.direction?"ascending":"descending":"none"}_renderArrow(){return!this._isDisabled()||this._isSorted()}_updateSortActionDescription(t){this._sortButton&&(this._ariaDescriber?.removeDescription(this._sortButton,this._sortActionDescription),this._ariaDescriber?.describe(this._sortButton,t)),this._sortActionDescription=t}_handleStateChanges(){this._rerenderSubscription=(0,Wa.T)(this._sort.sortChange,this._sort._stateChanges,this._intl.changes).subscribe(()=>{this._isSorted()&&(this._updateArrowDirection(),("hint"===this._viewState.toState||"active"===this._viewState.toState)&&(this._disableViewStateAnimation=!0),this._setAnimationTransitionState({fromState:this._arrowDirection,toState:"active"}),this._showIndicatorHint=!1),!this._isSorted()&&this._viewState&&"active"===this._viewState.toState&&(this._disableViewStateAnimation=!1,this._setAnimationTransitionState({fromState:"active",toState:this._arrowDirection})),this._changeDetectorRef.markForCheck()})}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(_0),e.Y36(e.sBO),e.Y36(As,8),e.Y36("MAT_SORT_HEADER_COLUMN_DEF",8),e.Y36(Es),e.Y36(e.SBq),e.Y36(Fo,8),e.Y36(Xk,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["","mat-sort-header",""]],hostAttrs:[1,"mat-sort-header"],hostVars:3,hostBindings:function(i,n){1&i&&e.NdJ("click",function(){return n._handleClick()})("keydown",function(s){return n._handleKeydown(s)})("mouseenter",function(){return n._setIndicatorHintVisible(!0)})("mouseleave",function(){return n._setIndicatorHintVisible(!1)}),2&i&&(e.uIk("aria-sort",n._getAriaSortAttribute()),e.ekj("mat-sort-header-disabled",n._isDisabled()))},inputs:{disabled:"disabled",id:["mat-sort-header","id"],arrowPosition:"arrowPosition",start:"start",sortActionDescription:"sortActionDescription",disableClear:"disableClear"},exportAs:["matSortHeader"],features:[e.qOj],attrs:Vk,ngContentSelectors:wE,decls:4,vars:7,consts:[[1,"mat-sort-header-container","mat-focus-indicator"],[1,"mat-sort-header-content"],["class","mat-sort-header-arrow",4,"ngIf"],[1,"mat-sort-header-arrow"],[1,"mat-sort-header-stem"],[1,"mat-sort-header-indicator"],[1,"mat-sort-header-pointer-left"],[1,"mat-sort-header-pointer-right"],[1,"mat-sort-header-pointer-middle"]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"div",0)(1,"div",1),e.Hsn(2),e.qZA(),e.YNc(3,Wk,6,6,"div",2),e.qZA()),2&i&&(e.ekj("mat-sort-header-sorted",n._isSorted())("mat-sort-header-position-before","before"===n.arrowPosition),e.uIk("tabindex",n._isDisabled()?null:0)("role",n._isDisabled()?null:"button"),e.xp6(3),e.Q6J("ngIf",n._renderArrow()))},dependencies:[l.O5],styles:[".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-container::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-sort-header-content{text-align:center;display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}"],encapsulation:2,data:{animation:[vg.indicator,vg.leftPointer,vg.rightPointer,vg.arrowOpacity,vg.arrowPosition,vg.allowChildren]},changeDetection:0})}}return r})(),xE=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[cv],imports:[l.ez,Fr]})}}return r})();var BE=ce(2664);const V4=[[["caption"]],[["colgroup"],["col"]]],EE=["caption","colgroup, col"];function cC(r){return class extends r{get sticky(){return this._sticky}set sticky(a){const t=this._sticky;this._sticky=Sn(a),this._hasStickyChanged=t!==this._sticky}hasStickyChanged(){const a=this._hasStickyChanged;return this._hasStickyChanged=!1,a}resetStickyChanged(){this._hasStickyChanged=!1}constructor(...a){super(...a),this._sticky=!1,this._hasStickyChanged=!1}}}const Uf=new e.OlP("CDK_TABLE");let Qh=(()=>{class r{constructor(t){this.template=t}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkCellDef",""]]})}}return r})(),fp=(()=>{class r{constructor(t){this.template=t}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkHeaderCellDef",""]]})}}return r})(),zf=(()=>{class r{constructor(t){this.template=t}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkFooterCellDef",""]]})}}return r})();class eQ{}const q4=cC(eQ);let Wu=(()=>{class r extends q4{get name(){return this._name}set name(t){this._setNameInput(t)}get stickyEnd(){return this._stickyEnd}set stickyEnd(t){const i=this._stickyEnd;this._stickyEnd=Sn(t),this._hasStickyChanged=i!==this._stickyEnd}constructor(t){super(),this._table=t,this._stickyEnd=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(t){t&&(this._name=t,this.cssClassFriendlyName=t.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Uf,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,Qh,5),e.Suo(o,fp,5),e.Suo(o,zf,5)),2&i){let s;e.iGM(s=e.CRH())&&(n.cell=s.first),e.iGM(s=e.CRH())&&(n.headerCell=s.first),e.iGM(s=e.CRH())&&(n.footerCell=s.first)}},inputs:{sticky:"sticky",name:["cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[e._Bn([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:r}]),e.qOj]})}}return r})();class ME{constructor(a,t){t.nativeElement.classList.add(...a._columnCssClassName)}}let AC=(()=>{class r extends ME{constructor(t,i){super(t,i)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Wu),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[e.qOj]})}}return r})(),Av=(()=>{class r extends ME{constructor(t,i){if(super(t,i),1===t._table?._elementRef.nativeElement.nodeType){const n=t._table._elementRef.nativeElement.getAttribute("role");i.nativeElement.setAttribute("role","grid"===n||"treegrid"===n?"gridcell":"cell")}}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(Wu),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[e.qOj]})}}return r})();class v0{constructor(){this.tasks=[],this.endTasks=[]}}const dv=new e.OlP("_COALESCED_STYLE_SCHEDULER");let dC=(()=>{class r{constructor(t){this._ngZone=t,this._currentSchedule=null,this._destroyed=new An.x}schedule(t){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(t)}scheduleEnd(t){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(t)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new v0,this._getScheduleObservable().pipe((0,On.R)(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const t=this._currentSchedule;this._currentSchedule=new v0;for(const i of t.tasks)i();for(const i of t.endTasks)i()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?(0,v.D)(Promise.resolve(void 0)):this._ngZone.onStable.pipe((0,yo.q)(1))}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(e.R0b))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})(),Sh=(()=>{class r{constructor(t,i){this.template=t,this._differs=i}ngOnChanges(t){if(!this._columnsDiffer){const i=t.columns&&t.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(t){return this instanceof Ph?t.headerCell.template:this instanceof Fh?t.footerCell.template:t.cell.template}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc),e.Y36(e.ZZ4))}}static{this.\u0275dir=e.lG2({type:r,features:[e.TTD]})}}return r})();class TE extends Sh{}const uC=cC(TE);let Ph=(()=>{class r extends uC{constructor(t,i,n){super(t,i),this._table=n}ngOnChanges(t){super.ngOnChanges(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc),e.Y36(e.ZZ4),e.Y36(Uf,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:["cdkHeaderRowDef","columns"],sticky:["cdkHeaderRowDefSticky","sticky"]},features:[e.qOj,e.TTD]})}}return r})();class iQ extends Sh{}const hC=cC(iQ);let Fh=(()=>{class r extends hC{constructor(t,i,n){super(t,i),this._table=n}ngOnChanges(t){super.ngOnChanges(t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc),e.Y36(e.ZZ4),e.Y36(Uf,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:["cdkFooterRowDef","columns"],sticky:["cdkFooterRowDefSticky","sticky"]},features:[e.qOj,e.TTD]})}}return r})(),Oh=(()=>{class r extends Sh{constructor(t,i,n){super(t,i),this._table=n}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc),e.Y36(e.ZZ4),e.Y36(Uf,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkRowDef",""]],inputs:{columns:["cdkRowDefColumns","columns"],when:["cdkRowDefWhen","when"]},features:[e.qOj]})}}return r})(),_u=(()=>{class r{static{this.mostRecentCellOutlet=null}constructor(t){this._viewContainer=t,r.mostRecentCellOutlet=this}ngOnDestroy(){r.mostRecentCellOutlet===this&&(r.mostRecentCellOutlet=null)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.s_b))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","cdkCellOutlet",""]]})}}return r})(),uv=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){1&i&&e.GkF(0,0)},dependencies:[_u],encapsulation:2})}}return r})(),Hf=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){1&i&&e.GkF(0,0)},dependencies:[_u],encapsulation:2})}}return r})(),Gf=(()=>{class r{constructor(t){this.templateRef=t,this._contentClassName="cdk-no-data-row"}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.Rgc))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["ng-template","cdkNoDataRow",""]]})}}return r})();const IE=["top","bottom","left","right"];class nQ{constructor(a,t,i,n,o=!0,s=!0,c){this._isNativeHtmlTable=a,this._stickCellCss=t,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=s,this._positionListener=c,this._cachedCellWidths=[],this._borderCellCss={top:`${t}-border-elem-top`,bottom:`${t}-border-elem-bottom`,left:`${t}-border-elem-left`,right:`${t}-border-elem-right`}}clearStickyPositioning(a,t){const i=[];for(const n of a)if(n.nodeType===n.ELEMENT_NODE){i.push(n);for(let o=0;o{for(const n of i)this._removeStickyStyle(n,t)})}updateStickyColumns(a,t,i,n=!0){if(!a.length||!this._isBrowser||!t.some(we=>we)&&!i.some(we=>we))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const o=a[0],s=o.children.length,c=this._getCellWidths(o,n),g=this._getStickyStartColumnPositions(c,t),B=this._getStickyEndColumnPositions(c,i),O=t.lastIndexOf(!0),ne=i.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const we="rtl"===this.direction,$e=we?"right":"left",nt=we?"left":"right";for(const Ft of a)for(let ei=0;eit[ei]?Ft:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===ne?[]:c.slice(ne).map((Ft,ei)=>i[ei+ne]?Ft:null).reverse()}))})}stickRows(a,t,i){if(!this._isBrowser)return;const n="bottom"===i?a.slice().reverse():a,o="bottom"===i?t.slice().reverse():t,s=[],c=[],g=[];for(let O=0,ne=0;O{for(let O=0;O{t.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1)})}_removeStickyStyle(a,t){for(const n of t)a.style[n]="",a.classList.remove(this._borderCellCss[n]);IE.some(n=>-1===t.indexOf(n)&&a.style[n])?a.style.zIndex=this._getCalculatedZIndex(a):(a.style.zIndex="",this._needsPositionStickyOnElement&&(a.style.position=""),a.classList.remove(this._stickCellCss))}_addStickyStyle(a,t,i,n){a.classList.add(this._stickCellCss),n&&a.classList.add(this._borderCellCss[t]),a.style[t]=`${i}px`,a.style.zIndex=this._getCalculatedZIndex(a),this._needsPositionStickyOnElement&&(a.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(a){const t={top:100,bottom:10,left:1,right:1};let i=0;for(const n of IE)a.style[n]&&(i+=t[n]);return i?`${i}`:""}_getCellWidths(a,t=!0){if(!t&&this._cachedCellWidths.length)return this._cachedCellWidths;const i=[],n=a.children;for(let o=0;o0;o--)t[o]&&(i[o]=n,n+=a[o]);return i}}const pC=new e.OlP("CDK_SPL");let yg=(()=>{class r{constructor(t,i){this.viewContainer=t,this.elementRef=i}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.s_b),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","rowOutlet",""]]})}}return r})(),y0=(()=>{class r{constructor(t,i){this.viewContainer=t,this.elementRef=i}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.s_b),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","headerRowOutlet",""]]})}}return r})(),w0=(()=>{class r{constructor(t,i){this.viewContainer=t,this.elementRef=i}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.s_b),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","footerRowOutlet",""]]})}}return r})(),pv=(()=>{class r{constructor(t,i){this.viewContainer=t,this.elementRef=i}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.s_b),e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","noDataRowOutlet",""]]})}}return r})(),Zf=(()=>{class r{get trackBy(){return this._trackByFn}set trackBy(t){this._trackByFn=t}get dataSource(){return this._dataSource}set dataSource(t){this._dataSource!==t&&this._switchDataSource(t)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(t){this._multiTemplateDataRows=Sn(t),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(t){this._fixedLayout=Sn(t),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}constructor(t,i,n,o,s,c,g,B,O,ne,we,$e){this._differs=t,this._changeDetectorRef=i,this._elementRef=n,this._dir=s,this._platform=g,this._viewRepeater=B,this._coalescedStyleScheduler=O,this._viewportRuler=ne,this._stickyPositioningListener=we,this._ngZone=$e,this._onDestroy=new An.x,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new e.vpe,this.viewChange=new ba.X({start:0,end:Number.MAX_VALUE}),o||this._elementRef.nativeElement.setAttribute("role","table"),this._document=c,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((t,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe((0,On.R)(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){[this._rowOutlet.viewContainer,this._headerRowOutlet.viewContainer,this._footerRowOutlet.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(t=>{t.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),Ed(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const t=this._dataDiffer.diff(this._renderRows);if(!t)return this._updateNoDataRow(),void this.contentChanged.next();const i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(t,i,(n,o,s)=>this._getEmbeddedViewArgs(n.item,s),n=>n.item.data,n=>{1===n.operation&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),t.forEachIdentityChange(n=>{i.get(n.currentIndex).context.$implicit=n.item.data}),this._updateNoDataRow(),this._ngZone&&e.R0b.isInAngularZone()?this._ngZone.onStable.pipe((0,yo.q)(1),(0,On.R)(this._onDestroy)).subscribe(()=>{this.updateStickyColumnStyles()}):this.updateStickyColumnStyles(),this.contentChanged.next()}addColumnDef(t){this._customColumnDefs.add(t)}removeColumnDef(t){this._customColumnDefs.delete(t)}addRowDef(t){this._customRowDefs.add(t)}removeRowDef(t){this._customRowDefs.delete(t)}addHeaderRowDef(t){this._customHeaderRowDefs.add(t),this._headerRowDefChanged=!0}removeHeaderRowDef(t){this._customHeaderRowDefs.delete(t),this._headerRowDefChanged=!0}addFooterRowDef(t){this._customFooterRowDefs.add(t),this._footerRowDefChanged=!0}removeFooterRowDef(t){this._customFooterRowDefs.delete(t),this._footerRowDefChanged=!0}setNoDataRow(t){this._customNoDataRow=t}updateStickyHeaderRowStyles(){const t=this._getRenderedRows(this._headerRowOutlet),n=this._elementRef.nativeElement.querySelector("thead");n&&(n.style.display=t.length?"":"none");const o=this._headerRowDefs.map(s=>s.sticky);this._stickyStyler.clearStickyPositioning(t,["top"]),this._stickyStyler.stickRows(t,o,"top"),this._headerRowDefs.forEach(s=>s.resetStickyChanged())}updateStickyFooterRowStyles(){const t=this._getRenderedRows(this._footerRowOutlet),n=this._elementRef.nativeElement.querySelector("tfoot");n&&(n.style.display=t.length?"":"none");const o=this._footerRowDefs.map(s=>s.sticky);this._stickyStyler.clearStickyPositioning(t,["bottom"]),this._stickyStyler.stickRows(t,o,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,o),this._footerRowDefs.forEach(s=>s.resetStickyChanged())}updateStickyColumnStyles(){const t=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...t,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),t.forEach((o,s)=>{this._addStickyColumnStyles([o],this._headerRowDefs[s])}),this._rowDefs.forEach(o=>{const s=[];for(let c=0;c{this._addStickyColumnStyles([o],this._footerRowDefs[s])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_getAllRenderRows(){const t=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{const c=n&&n.has(s)?n.get(s):[];if(c.length){const g=c.shift();return g.dataIndex=i,g}return{data:t,rowDef:s,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),gv(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=gv(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=gv(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=gv(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const t=this._rowDefs.filter(i=>!i.when);this._defaultRowDef=t[0]}_renderUpdatedColumns(){const t=(s,c)=>s||!!c.getColumnsDiff(),i=this._rowDefs.reduce(t,!1);i&&this._forceRenderDataRows();const n=this._headerRowDefs.reduce(t,!1);n&&this._forceRenderHeaderRows();const o=this._footerRowDefs.reduce(t,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(t){this._data=[],Ed(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),t||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=t}_observeRenderChanges(){if(!this.dataSource)return;let t;Ed(this.dataSource)?t=this.dataSource.connect(this):(0,BE.b)(this.dataSource)?t=this.dataSource:Array.isArray(this.dataSource)&&(t=(0,lr.of)(this.dataSource)),this._renderChangeSubscription=t.pipe((0,On.R)(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((t,i)=>this._renderRow(this._headerRowOutlet,t,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((t,i)=>this._renderRow(this._footerRowOutlet,t,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(t,i){const n=Array.from(i.columns||[]).map(c=>this._columnDefsByName.get(c)),o=n.map(c=>c.sticky),s=n.map(c=>c.stickyEnd);this._stickyStyler.updateStickyColumns(t,o,s,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(t){const i=[];for(let n=0;n!o.when||o.when(i,t));else{let o=this._rowDefs.find(s=>s.when&&s.when(i,t))||this._defaultRowDef;o&&n.push(o)}return n}_getEmbeddedViewArgs(t,i){return{templateRef:t.rowDef.template,context:{$implicit:t.data},index:i}}_renderRow(t,i,n,o={}){const s=t.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),s}_renderCellTemplateForItem(t,i){for(let n of this._getCellTemplates(t))_u.mostRecentCellOutlet&&_u.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const t=this._rowOutlet.viewContainer;for(let i=0,n=t.length;i{const n=this._columnDefsByName.get(i);return t.extractCellTemplate(n)}):[]}_applyNativeTableSections(){const t=this._document.createDocumentFragment(),i=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const n of i){const o=this._document.createElement(n.tag);o.setAttribute("role","rowgroup");for(const s of n.outlets)o.appendChild(s.elementRef.nativeElement);t.appendChild(o)}this._elementRef.nativeElement.appendChild(t)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const t=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(t,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(t,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(t,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new nQ(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:(0,lr.of)()).pipe((0,On.R)(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(t){return t.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){const t=this._customNoDataRow||this._noDataRow;if(!t)return;const i=0===this._rowOutlet.viewContainer.length;if(i===this._isShowingNoDataRow)return;const n=this._noDataRowOutlet.viewContainer;if(i){const o=n.createEmbeddedView(t.templateRef),s=o.rootNodes[0];1===o.rootNodes.length&&s?.nodeType===this._document.ELEMENT_NODE&&(s.setAttribute("role","row"),s.classList.add(t._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.ZZ4),e.Y36(e.sBO),e.Y36(e.SBq),e.$8M("role"),e.Y36(Ja,8),e.Y36(l.K0),e.Y36(ta),e.Y36(ff),e.Y36(dv),e.Y36(Is),e.Y36(pC,12),e.Y36(e.R0b,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,Gf,5),e.Suo(o,Wu,5),e.Suo(o,Oh,5),e.Suo(o,Ph,5),e.Suo(o,Fh,5)),2&i){let s;e.iGM(s=e.CRH())&&(n._noDataRow=s.first),e.iGM(s=e.CRH())&&(n._contentColumnDefs=s),e.iGM(s=e.CRH())&&(n._contentRowDefs=s),e.iGM(s=e.CRH())&&(n._contentHeaderRowDefs=s),e.iGM(s=e.CRH())&&(n._contentFooterRowDefs=s)}},viewQuery:function(i,n){if(1&i&&(e.Gf(yg,7),e.Gf(y0,7),e.Gf(w0,7),e.Gf(pv,7)),2&i){let o;e.iGM(o=e.CRH())&&(n._rowOutlet=o.first),e.iGM(o=e.CRH())&&(n._headerRowOutlet=o.first),e.iGM(o=e.CRH())&&(n._footerRowOutlet=o.first),e.iGM(o=e.CRH())&&(n._noDataRowOutlet=o.first)}},hostAttrs:["ngSkipHydration","",1,"cdk-table"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[e._Bn([{provide:Uf,useExisting:r},{provide:ff,useClass:v1},{provide:dv,useClass:dC},{provide:pC,useValue:null}])],ngContentSelectors:EE,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){1&i&&(e.F$t(V4),e.Hsn(0),e.Hsn(1,1),e.GkF(2,0)(3,1)(4,2)(5,3))},dependencies:[yg,y0,w0,pv],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}}return r})();function gv(r,a){return r.concat(Array.from(a))}let fv=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Nc]})}}return r})();const cQ=[[["caption"]],[["colgroup"],["col"]]],SE=["caption","colgroup, col"];let mv=(()=>{class r extends Zf{constructor(){super(...arguments),this.stickyCssClass="mat-mdc-table-sticky",this.needsPositionStickyOnElement=!1}ngOnInit(){super.ngOnInit(),this._isNativeHtmlTable&&this._elementRef.nativeElement.querySelector("tbody").classList.add("mdc-data-table__content")}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:["ngSkipHydration","",1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[e._Bn([{provide:Zf,useExisting:r},{provide:Uf,useExisting:r},{provide:dv,useClass:dC},{provide:ff,useClass:v1},{provide:pC,useValue:null}]),e.qOj],ngContentSelectors:SE,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){1&i&&(e.F$t(cQ),e.Hsn(0),e.Hsn(1,1),e.GkF(2,0)(3,1)(4,2)(5,3))},dependencies:[yg,y0,w0,pv],styles:[".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}}return r})();class pQ extends _1{get data(){return this._data.value}set data(a){a=Array.isArray(a)?a:[],this._data.next(a),this._renderChangesSubscription||this._filterData(a)}get filter(){return this._filter.value}set filter(a){this._filter.next(a),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(a){this._sort=a,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(a){this._paginator=a,this._updateChangeSubscription()}constructor(a=[]){super(),this._renderData=new ba.X([]),this._filter=new ba.X(""),this._internalPageChanges=new An.x,this._renderChangesSubscription=null,this.sortingDataAccessor=(t,i)=>{const n=t[i];if(mc(n)){const o=Number(n);return o<9007199254740991?o:n}return n},this.sortData=(t,i)=>{const n=i.active,o=i.direction;return n&&""!=o?t.sort((s,c)=>{let g=this.sortingDataAccessor(s,n),B=this.sortingDataAccessor(c,n);const O=typeof g,ne=typeof B;O!==ne&&("number"===O&&(g+=""),"number"===ne&&(B+=""));let we=0;return null!=g&&null!=B?g>B?we=1:g{const n=Object.keys(t).reduce((s,c)=>s+t[c]+"\u25ec","").toLowerCase(),o=i.trim().toLowerCase();return-1!=n.indexOf(o)},this._data=new ba.X(a),this._updateChangeSubscription()}_updateChangeSubscription(){const a=this._sort?(0,Wa.T)(this._sort.sortChange,this._sort.initialized):(0,lr.of)(null),t=this._paginator?(0,Wa.T)(this._paginator.page,this._internalPageChanges,this._paginator.initialized):(0,lr.of)(null),n=Vl([this._data,this._filter]).pipe((0,f.U)(([c])=>this._filterData(c))),o=Vl([n,a]).pipe((0,f.U)(([c])=>this._orderData(c))),s=Vl([o,t]).pipe((0,f.U)(([c])=>this._pageData(c)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=s.subscribe(c=>this._renderData.next(c))}_filterData(a){return this.filteredData=null==this.filter||""===this.filter?a:a.filter(t=>this.filterPredicate(t,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(a){return this.sort?this.sortData(a.slice(),this.sort):a}_pageData(a){if(!this.paginator)return a;const t=this.paginator.pageIndex*this.paginator.pageSize;return a.slice(t,t+this.paginator.pageSize)}_updatePaginator(a){Promise.resolve().then(()=>{const t=this.paginator;if(t&&(t.length=a,t.pageIndex>0)){const i=Math.ceil(t.length/t.pageSize)-1||0,n=Math.min(t.pageIndex,i);n!==t.pageIndex&&(t.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}}class c6 extends pQ{}const gQ=[[["caption"]],[["colgroup"],["col"]]],A6=["caption","colgroup, col"];let Qs=(()=>{class r extends Zf{constructor(){super(...arguments),this.stickyCssClass="mat-table-sticky",this.needsPositionStickyOnElement=!1}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:["ngSkipHydration","",1,"mat-table"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("mat-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[e._Bn([{provide:ff,useClass:v1},{provide:Zf,useExisting:r},{provide:Uf,useExisting:r},{provide:dv,useClass:dC},{provide:pC,useValue:null}]),e.qOj],ngContentSelectors:A6,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){1&i&&(e.F$t(gQ),e.Hsn(0),e.Hsn(1,1),e.GkF(2,0)(3,1)(4,2)(5,3))},dependencies:[yg,y0,w0,pv],styles:["mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}}return r})(),oA=(()=>{class r extends Qh{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matCellDef",""]],features:[e._Bn([{provide:Qh,useExisting:r}]),e.qOj]})}}return r})(),MA=(()=>{class r extends fp{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matHeaderCellDef",""]],features:[e._Bn([{provide:fp,useExisting:r}]),e.qOj]})}}return r})(),u=(()=>{class r extends Wu{get name(){return this._name}set name(t){this._setNameInput(t)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:["matColumnDef","name"]},features:[e._Bn([{provide:Wu,useExisting:r},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:r}]),e.qOj]})}}return r})(),m=(()=>{class r extends AC{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-header-cell"],features:[e.qOj]})}}return r})(),F=(()=>{class r extends Av{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:["role","gridcell",1,"mat-cell"],features:[e.qOj]})}}return r})(),ee=(()=>{class r extends Ph{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matHeaderRowDef",""]],inputs:{columns:["matHeaderRowDef","columns"],sticky:["matHeaderRowDefSticky","sticky"]},features:[e._Bn([{provide:Ph,useExisting:r}]),e.qOj]})}}return r})(),Be=(()=>{class r extends Oh{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matRowDef",""]],inputs:{columns:["matRowDefColumns","columns"],when:["matRowDefWhen","when"]},features:[e._Bn([{provide:Oh,useExisting:r}]),e.qOj]})}}return r})(),Ze=(()=>{class r extends uv{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-header-row"],exportAs:["matHeaderRow"],features:[e._Bn([{provide:uv,useExisting:r}]),e.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){1&i&&e.GkF(0,0)},dependencies:[_u],encapsulation:2})}}return r})(),Wt=(()=>{class r extends Hf{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-row"],exportAs:["matRow"],features:[e._Bn([{provide:Hf,useExisting:r}]),e.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){1&i&&e.GkF(0,0)},dependencies:[_u],encapsulation:2})}}return r})(),Mn=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[fv,Fr,Fr]})}}return r})();class Nn extends pQ{}function yr(r,a){}const io=function(r){return{animationDuration:r}},Gn=function(r,a){return{value:r,params:a}},f6={translateTab:(0,vi.X$)("translateTab",[(0,vi.SB)("center, void, left-origin-center, right-origin-center",(0,vi.oB)({transform:"none"})),(0,vi.SB)("left",(0,vi.oB)({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),(0,vi.SB)("right",(0,vi.oB)({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),(0,vi.eR)("* => left, * => right, left => center, right => center",(0,vi.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),(0,vi.eR)("void => left-origin-center",[(0,vi.oB)({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),(0,vi.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),(0,vi.eR)("void => right-origin-center",[(0,vi.oB)({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),(0,vi.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let m6=(()=>{class r extends yc{constructor(t,i,n,o){super(t,i,o),this._host=n,this._centeringSub=Jr.w0.EMPTY,this._leavingSub=Jr.w0.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(na(this._host._isCenterPosition(this._host._position))).subscribe(t=>{t&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e._Vd),e.Y36(e.s_b),e.Y36((0,e.Gpc)(()=>wU)),e.Y36(l.K0))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matTabBodyHost",""]],features:[e.qOj]})}}return r})(),_6=(()=>{class r{set position(t){this._positionIndex=t,this._computePositionAnimationState()}constructor(t,i,n){this._elementRef=t,this._dir=i,this._dirChangeSubscription=Jr.w0.EMPTY,this._translateTabComplete=new An.x,this._onCentering=new e.vpe,this._beforeCentering=new e.vpe,this._afterLeavingCenter=new e.vpe,this._onCentered=new e.vpe(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(o=>{this._computePositionAnimationState(o),n.markForCheck()})),this._translateTabComplete.pipe((0,eA.x)((o,s)=>o.fromState===s.fromState&&o.toState===s.toState)).subscribe(o=>{this._isCenterPosition(o.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(o.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(t){const i=this._isCenterPosition(t.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(t){return"center"==t||"left-origin-center"==t||"right-origin-center"==t}_computePositionAnimationState(t=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==t?"left":"right":this._positionIndex>0?"ltr"==t?"right":"left":"center"}_computePositionFromOrigin(t){const i=this._getLayoutDirection();return"ltr"==i&&t<=0||"rtl"==i&&t>0?"left-origin-center":"right-origin-center"}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Ja,8),e.Y36(e.sBO))}}static{this.\u0275dir=e.lG2({type:r,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}})}}return r})(),wU=(()=>{class r extends _6{constructor(t,i,n){super(t,i,n)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Ja,8),e.Y36(e.sBO))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(1&i&&e.Gf(yc,5),2&i){let o;e.iGM(o=e.CRH())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[e.qOj],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e.NdJ("@translateTab.start",function(s){return n._onTranslateTabStarted(s)})("@translateTab.done",function(s){return n._translateTabComplete.next(s)}),e.YNc(2,yr,0,0,"ng-template",2),e.qZA()),2&i&&e.Q6J("@translateTab",e.WLB(3,Gn,n._position,e.VKq(1,io,n.animationDuration)))},dependencies:[m6],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[f6.translateTab]}})}}return r})();const CU=new e.OlP("MatTabContent"),bU=new e.OlP("MatTabLabel"),xU=new e.OlP("MAT_TAB"),EU=new e.OlP("MatInkBarPositioner",{providedIn:"root",factory:function BU(){return a=>({left:a?(a.offsetLeft||0)+"px":"0",width:a?(a.offsetWidth||0)+"px":"0"})}}),MU=Lc(class{});let DU=(()=>{class r extends MU{constructor(t){super(),this.elementRef=t}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))}}static{this.\u0275dir=e.lG2({type:r,features:[e.qOj]})}}return r})();const TU=Lc(class{}),y6=new e.OlP("MAT_TAB_GROUP");let IU=(()=>{class r extends TU{get content(){return this._contentPortal}constructor(t,i){super(),this._viewContainerRef=t,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new An.x,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(t){(t.hasOwnProperty("textLabel")||t.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new qA(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(t){t&&t._closestTab===this&&(this._templateLabel=t)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.s_b),e.Y36(y6,8))}}static{this.\u0275dir=e.lG2({type:r,viewQuery:function(i,n){if(1&i&&e.Gf(e.Rgc,7),2&i){let o;e.iGM(o=e.CRH())&&(n._implicitContent=o.first)}},inputs:{textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[e.qOj,e.TTD]})}}return r})();const w6=Rs({passive:!0});let SU=(()=>{class r{get disablePagination(){return this._disablePagination}set disablePagination(t){this._disablePagination=Sn(t)}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){t=Ya(t),this._selectedIndex!=t&&(this._selectedIndexChanged=!0,this._selectedIndex=t,this._keyManager&&this._keyManager.updateActiveItem(t))}constructor(t,i,n,o,s,c,g){this._elementRef=t,this._changeDetectorRef=i,this._viewportRuler=n,this._dir=o,this._ngZone=s,this._platform=c,this._animationMode=g,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new An.x,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new An.x,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new e.vpe,this.indexFocused=new e.vpe,s.runOutsideAngular(()=>{Je(t.nativeElement,"mouseleave").pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){Je(this._previousPaginator.nativeElement,"touchstart",w6).pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),Je(this._nextPaginator.nativeElement,"touchstart",w6).pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const t=this._dir?this._dir.change:(0,lr.of)("ltr"),i=this._viewportRuler.change(150),n=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new fl(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(n),(0,Wa.T)(t,i,this._items.changes,this._itemsResized()).pipe((0,On.R)(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),n()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(o=>{this.indexFocused.emit(o),this._setTabFocus(o)})}_itemsResized(){return"function"!=typeof ResizeObserver?Zu.E:this._items.changes.pipe(na(this._items),(0,Xs.w)(t=>new Za.y(i=>this._ngZone.runOutsideAngular(()=>{const n=new ResizeObserver(o=>i.next(o));return t.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),Bl(1),(0,Wr.h)(t=>t.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(t){if(!xa(t))switch(t.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(t))}break;default:this._keyManager.onKeydown(t)}}_onContentChanges(){const t=this._elementRef.nativeElement.textContent;t!==this._currentTextContent&&(this._currentTextContent=t||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(t){!this._isValidIndex(t)||this.focusIndex===t||!this._keyManager||this._keyManager.setActiveItem(t)}_isValidIndex(t){return!this._items||!!this._items.toArray()[t]}_setTabFocus(t){if(this._showPaginationControls&&this._scrollToLabel(t),this._items&&this._items.length){this._items.toArray()[t].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const t=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-t:t;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(t){this._scrollTo(t)}_scrollHeader(t){return this._scrollTo(this._scrollDistance+("before"==t?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(t){this._stopInterval(),this._scrollHeader(t)}_scrollToLabel(t){if(this.disablePagination)return;const i=this._items?this._items.toArray()[t]:null;if(!i)return;const n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:s}=i.elementRef.nativeElement;let c,g;"ltr"==this._getLayoutDirection()?(c=o,g=c+s):(g=this._tabListInner.nativeElement.offsetWidth-o,c=g-s);const B=this.scrollDistance,O=this.scrollDistance+n;cO&&(this.scrollDistance+=Math.min(g-O,c-B))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const t=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;t||(this.scrollDistance=0),t!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=t}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const t=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=t?t.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(t,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),(0,Mo.H)(650,100).pipe((0,On.R)((0,Wa.T)(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:n,distance:o}=this._scrollHeader(t);(0===o||o>=n)&&this._stopInterval()}))}_scrollTo(t){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,t)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(Is),e.Y36(Ja,8),e.Y36(e.R0b),e.Y36(ta),e.Y36(e.QbO,8))}}static{this.\u0275dir=e.lG2({type:r,inputs:{disablePagination:"disablePagination"}})}}return r})(),PU=(()=>{class r extends SU{get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=Sn(t)}constructor(t,i,n,o,s,c,g){super(t,i,n,o,s,c,g),this._disableRipple=!1}_itemSelected(t){t.preventDefault()}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(Is),e.Y36(Ja,8),e.Y36(e.R0b),e.Y36(ta),e.Y36(e.QbO,8))}}static{this.\u0275dir=e.lG2({type:r,inputs:{disableRipple:"disableRipple"},features:[e.qOj]})}}return r})();const C6=new e.OlP("MAT_TABS_CONFIG");let FU=0;const OU=Wl(ll(class{constructor(r){this._elementRef=r}}),"primary");let LU=(()=>{class r extends OU{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(t){this._dynamicHeight=Sn(t)}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){this._indexToSelect=Ya(t,null)}get animationDuration(){return this._animationDuration}set animationDuration(t){this._animationDuration=/^\d+$/.test(t+"")?t+"ms":t}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(t){this._contentTabIndex=Ya(t,null)}get disablePagination(){return this._disablePagination}set disablePagination(t){this._disablePagination=Sn(t)}get preserveContent(){return this._preserveContent}set preserveContent(t){this._preserveContent=Sn(t)}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),t&&i.add("mat-tabs-with-background",`mat-background-${t}`),this._backgroundColor=t}constructor(t,i,n,o){super(t),this._changeDetectorRef=i,this._animationMode=o,this._tabs=new e.n_E,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=Jr.w0.EMPTY,this._tabLabelSubscription=Jr.w0.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new e.vpe,this.focusChange=new e.vpe,this.animationDone=new e.vpe,this.selectedTabChange=new e.vpe(!0),this._groupId=FU++,this.animationDuration=n&&n.animationDuration?n.animationDuration:"500ms",this.disablePagination=!(!n||null==n.disablePagination)&&n.disablePagination,this.dynamicHeight=!(!n||null==n.dynamicHeight)&&n.dynamicHeight,this.contentTabIndex=n?.contentTabIndex??null,this.preserveContent=!!n?.preserveContent}ngAfterContentChecked(){const t=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=t){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(t));const n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===t),i||(this.selectedIndexChange.emit(t),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-t,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=t-this._selectedIndex)}),this._selectedIndex!==t&&(this._selectedIndex=t,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const t=this._clampTabIndex(this._indexToSelect);if(t===this._selectedIndex){const i=this._tabs.toArray();let n;for(let o=0;o{i[t].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(t))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(na(this._allTabs)).subscribe(t=>{this._tabs.reset(t.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(t){const i=this._tabHeader;i&&(i.focusIndex=t)}_focusChanged(t){this._lastFocusedTabIndex=t,this.focusChange.emit(this._createChangeEvent(t))}_createChangeEvent(t){const i=new RU;return i.index=t,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[t]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=(0,Wa.T)(...this._tabs.map(t=>t._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(t){return Math.min(this._tabs.length-1,Math.max(t||0,0))}_getTabLabelId(t){return`mat-tab-label-${this._groupId}-${t}`}_getTabContentId(t){return`mat-tab-content-${this._groupId}-${t}`}_setTabBodyWrapperHeight(t){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=t+"px")}_removeTabBodyWrapperHeight(){const t=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=t.clientHeight,t.style.height="",this.animationDone.emit()}_handleClick(t,i,n){i.focusIndex=n,t.disabled||(this.selectedIndex=n)}_getTabIndex(t){return t===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(t,i){t&&"mouse"!==t&&"touch"!==t&&(this._tabHeader.focusIndex=i)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(C6,8),e.Y36(e.QbO,8))}}static{this.\u0275dir=e.lG2({type:r,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[e.qOj]})}}return r})();class RU{}function YU(r,a){1&r&&e.Hsn(0)}const b6=["*"];function NU(r,a){}const UU=function(r){return{animationDuration:r}},zU=function(r,a){return{value:r,params:a}},HU=["tabListContainer"],GU=["tabList"],ZU=["tabListInner"],JU=["nextPaginator"],jU=["previousPaginator"],VU=["tabBodyWrapper"],WU=["tabHeader"];function KU(r,a){}function qU(r,a){if(1&r&&e.YNc(0,KU,0,0,"ng-template",10),2&r){const t=e.oxw().$implicit;e.Q6J("cdkPortalOutlet",t.templateLabel)}}function XU(r,a){if(1&r&&e._uU(0),2&r){const t=e.oxw().$implicit;e.Oqu(t.textLabel)}}function $U(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",6),e.NdJ("click",function(){const n=e.CHM(t),o=n.$implicit,s=n.index,c=e.oxw(),g=e.MAs(1);return e.KtG(c._handleClick(o,g,s))})("cdkFocusChange",function(n){const s=e.CHM(t).index,c=e.oxw();return e.KtG(c._tabFocusChanged(n,s))}),e.TgZ(1,"div",7),e.YNc(2,qU,1,1,"ng-template",8),e.YNc(3,XU,1,1,"ng-template",null,9,e.W1O),e.qZA()()}if(2&r){const t=a.$implicit,i=a.index,n=e.MAs(4),o=e.oxw();e.ekj("mat-tab-label-active",o.selectedIndex===i),e.Q6J("id",o._getTabLabelId(i))("ngClass",t.labelClass)("disabled",t.disabled)("matRippleDisabled",t.disabled||o.disableRipple),e.uIk("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null),e.xp6(2),e.Q6J("ngIf",t.templateLabel)("ngIfElse",n)}}function ez(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab-body",11),e.NdJ("_onCentered",function(){e.CHM(t);const n=e.oxw();return e.KtG(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o._setTabBodyWrapperHeight(n))}),e.qZA()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw();e.ekj("mat-tab-body-active",n.selectedIndex===i),e.Q6J("id",n._getTabContentId(i))("ngClass",t.bodyClass)("content",t.content)("position",t.position)("origin",t.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),e.uIk("tabindex",null!=n.contentTabIndex&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))}}let x6=(()=>{class r{constructor(t,i,n,o){this._elementRef=t,this._ngZone=i,this._inkBarPositioner=n,this._animationMode=o}alignToElement(t){this.show(),this._ngZone.run(()=>{this._ngZone.onStable.pipe((0,yo.q)(1)).subscribe(()=>{const i=this._inkBarPositioner(t),n=this._elementRef.nativeElement;n.style.left=i.left,n.style.width=i.width})})}show(){this._elementRef.nativeElement.style.visibility="visible"}hide(){this._elementRef.nativeElement.style.visibility="hidden"}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(EU),e.Y36(e.QbO,8))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["mat-ink-bar"]],hostAttrs:[1,"mat-ink-bar"],hostVars:2,hostBindings:function(i,n){2&i&&e.ekj("_mat-animation-noopable","NoopAnimations"===n._animationMode)}})}}return r})(),DA=(()=>{class r extends IU{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(t){this._setTemplateLabelInput(t)}static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(1&i&&(e.Suo(o,bU,5),e.Suo(o,CU,7,e.Rgc)),2&i){let s;e.iGM(s=e.CRH())&&(n.templateLabel=s.first),e.iGM(s=e.CRH())&&(n._explicitContent=s.first)}},hostVars:1,hostBindings:function(i,n){2&i&&e.uIk("mat-id-collision",null)},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[e._Bn([{provide:xU,useExisting:r}]),e.qOj],ngContentSelectors:b6,decls:1,vars:0,template:function(i,n){1&i&&(e.F$t(),e.YNc(0,YU,1,0,"ng-template"))},encapsulation:2})}}return r})(),tz=(()=>{class r extends m6{constructor(t,i,n,o){super(t,i,n,o)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e._Vd),e.Y36(e.s_b),e.Y36((0,e.Gpc)(()=>B6)),e.Y36(l.K0))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matTabBodyHost",""]],features:[e.qOj]})}}return r})(),B6=(()=>{class r extends _6{constructor(t,i,n){super(t,i,n)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(Ja,8),e.Y36(e.sBO))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(1&i&&e.Gf(yc,5),2&i){let o;e.iGM(o=e.CRH())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-tab-body"],features:[e.qOj],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e.NdJ("@translateTab.start",function(s){return n._onTranslateTabStarted(s)})("@translateTab.done",function(s){return n._translateTabComplete.next(s)}),e.YNc(2,NU,0,0,"ng-template",2),e.qZA()),2&i&&e.Q6J("@translateTab",e.WLB(3,zU,n._position,e.VKq(1,UU,n.animationDuration)))},dependencies:[tz],styles:['.mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[f6.translateTab]}})}}return r})(),E6=(()=>{class r extends DU{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275dir=e.lG2({type:r,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){2&i&&(e.uIk("aria-disabled",!!n.disabled),e.ekj("mat-tab-disabled",n.disabled))},inputs:{disabled:"disabled"},features:[e.qOj]})}}return r})(),iz=(()=>{class r extends PU{constructor(t,i,n,o,s,c,g){super(t,i,n,o,s,c,g)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(Is),e.Y36(Ja,8),e.Y36(e.R0b),e.Y36(ta),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,E6,4),2&i){let s;e.iGM(s=e.CRH())&&(n._items=s)}},viewQuery:function(i,n){if(1&i&&(e.Gf(x6,7),e.Gf(HU,7),e.Gf(GU,7),e.Gf(ZU,7),e.Gf(JU,5),e.Gf(jU,5)),2&i){let o;e.iGM(o=e.CRH())&&(n._inkBar=o.first),e.iGM(o=e.CRH())&&(n._tabListContainer=o.first),e.iGM(o=e.CRH())&&(n._tabList=o.first),e.iGM(o=e.CRH())&&(n._tabListInner=o.first),e.iGM(o=e.CRH())&&(n._nextPaginator=o.first),e.iGM(o=e.CRH())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-tab-header"],hostVars:4,hostBindings:function(i,n){2&i&&e.ekj("mat-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-tab-header-rtl","rtl"==n._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[e.qOj],ngContentSelectors:b6,decls:14,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"button",0,1),e.NdJ("click",function(){return n._handlePaginatorClick("before")})("mousedown",function(s){return n._handlePaginatorPress("before",s)})("touchend",function(){return n._stopInterval()}),e._UZ(2,"div",2),e.qZA(),e.TgZ(3,"div",3,4),e.NdJ("keydown",function(s){return n._handleKeydown(s)}),e.TgZ(5,"div",5,6),e.NdJ("cdkObserveContent",function(){return n._onContentChanges()}),e.TgZ(7,"div",7,8),e.Hsn(9),e.qZA(),e._UZ(10,"mat-ink-bar"),e.qZA()(),e.TgZ(11,"button",9,10),e.NdJ("mousedown",function(s){return n._handlePaginatorPress("after",s)})("click",function(){return n._handlePaginatorClick("after")})("touchend",function(){return n._stopInterval()}),e._UZ(13,"div",2),e.qZA()),2&i&&(e.ekj("mat-tab-header-pagination-disabled",n._disableScrollBefore),e.Q6J("matRippleDisabled",n._disableScrollBefore||n.disableRipple)("disabled",n._disableScrollBefore||null),e.xp6(5),e.ekj("_mat-animation-noopable","NoopAnimations"===n._animationMode),e.xp6(6),e.ekj("mat-tab-header-pagination-disabled",n._disableScrollAfter),e.Q6J("matRippleDisabled",n._disableScrollAfter||n.disableRipple)("disabled",n._disableScrollAfter||null))},dependencies:[At,Ba,x6],styles:[".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}.mat-tab-label::before{margin:5px}@media(max-width: 599px){.mat-tab-label{min-width:72px}}"],encapsulation:2})}}return r})(),NA=(()=>{class r extends LU{constructor(t,i,n,o){super(t,i,n,o)}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(C6,8),e.Y36(e.QbO,8))}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,DA,5),2&i){let s;e.iGM(s=e.CRH())&&(n._allTabs=s)}},viewQuery:function(i,n){if(1&i&&(e.Gf(VU,5),e.Gf(WU,5)),2&i){let o;e.iGM(o=e.CRH())&&(n._tabBodyWrapper=o.first),e.iGM(o=e.CRH())&&(n._tabHeader=o.first)}},hostAttrs:["ngSkipHydration","",1,"mat-tab-group"],hostVars:4,hostBindings:function(i,n){2&i&&e.ekj("mat-tab-group-dynamic-height",n.dynamicHeight)("mat-tab-group-inverted-header","below"===n.headerPosition)},inputs:{color:"color",disableRipple:"disableRipple"},exportAs:["matTabGroup"],features:[e._Bn([{provide:y6,useExisting:r}]),e.qOj],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mat-tab-label mat-focus-indicator","role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",3,"id","mat-tab-label-active","ngClass","disabled","matRippleDisabled","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",1,"mat-tab-label","mat-focus-indicator",3,"id","ngClass","disabled","matRippleDisabled","click","cdkFocusChange"],[1,"mat-tab-label-content"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(i,n){1&i&&(e.TgZ(0,"mat-tab-header",0,1),e.NdJ("indexFocused",function(s){return n._focusChanged(s)})("selectFocusedIndex",function(s){return n.selectedIndex=s}),e.YNc(2,$U,5,15,"div",2),e.qZA(),e.TgZ(3,"div",3,4),e.YNc(5,ez,1,11,"mat-tab-body",5),e.qZA()),2&i&&(e.Q6J("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination),e.xp6(2),e.Q6J("ngForOf",n._tabs),e.xp6(1),e.ekj("_mat-animation-noopable","NoopAnimations"===n._animationMode),e.xp6(2),e.Q6J("ngForOf",n._tabs))},dependencies:[l.mk,l.sg,l.O5,yc,At,zd,E6,B6,iz],styles:[".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}"],encapsulation:2})}}return r})(),M6=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[l.ez,Fr,xd,bt,VA,vh,Fr]})}}return r})(),D6=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[Fr,Fr]})}}return r})(),nz=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({imports:[yd]})}}return r})(),mQ=(()=>{class r{constructor(){this.changes=new An.x,this.optionalLabel="Optional",this.completedLabel="Completed",this.editableLabel="Editable"}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const pz={provide:mQ,deps:[[new e.FiY,new e.tp0,mQ]],useFactory:function hz(r){return r||new mQ}};let Q6=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[pz,Rc],imports:[Fr,l.ez,xd,nz,n0,bt,Fr]})}}return r})();var vC=ce(6676);const x0=vC||ce.t(vC,2),S6=new e.OlP("MAT_MOMENT_DATE_ADAPTER_OPTIONS",{providedIn:"root",factory:function _z(){return{useUtc:!1}}});function vz(r,a){const t=Array(r);for(let i=0;i{class r extends ys{constructor(t,i){super(),this._options=i,this.setLocale(t||x0.locale())}setLocale(t){super.setLocale(t);let i=x0.localeData(t);this._localeData={firstDayOfWeek:i.firstDayOfWeek(),longMonths:i.months(),shortMonths:i.monthsShort(),dates:vz(31,n=>this.createDate(2017,0,n+1).format("D")),longDaysOfWeek:i.weekdays(),shortDaysOfWeek:i.weekdaysShort(),narrowDaysOfWeek:i.weekdaysMin()}}getYear(t){return this.clone(t).year()}getMonth(t){return this.clone(t).month()}getDate(t){return this.clone(t).date()}getDayOfWeek(t){return this.clone(t).day()}getMonthNames(t){return"long"==t?this._localeData.longMonths:this._localeData.shortMonths}getDateNames(){return this._localeData.dates}getDayOfWeekNames(t){return"long"==t?this._localeData.longDaysOfWeek:"short"==t?this._localeData.shortDaysOfWeek:this._localeData.narrowDaysOfWeek}getYearName(t){return this.clone(t).format("YYYY")}getFirstDayOfWeek(){return this._localeData.firstDayOfWeek}getNumDaysInMonth(t){return this.clone(t).daysInMonth()}clone(t){return t.clone().locale(this.locale)}createDate(t,i,n){const o=this._createMoment({year:t,month:i,date:n}).locale(this.locale);return o.isValid(),o}today(){return this._createMoment().locale(this.locale)}parse(t,i){return t&&"string"==typeof t?this._createMoment(t,i,this.locale):t?this._createMoment(t).locale(this.locale):null}format(t,i){return t=this.clone(t),this.isValid(t),t.format(i)}addCalendarYears(t,i){return this.clone(t).add({years:i})}addCalendarMonths(t,i){return this.clone(t).add({months:i})}addCalendarDays(t,i){return this.clone(t).add({days:i})}toIso8601(t){return this.clone(t).format()}deserialize(t){let i;if(t instanceof Date)i=this._createMoment(t).locale(this.locale);else if(this.isDateInstance(t))return this.clone(t);if("string"==typeof t){if(!t)return null;i=this._createMoment(t,x0.ISO_8601).locale(this.locale)}return i&&this.isValid(i)?this._createMoment(i).locale(this.locale):super.deserialize(t)}isDateInstance(t){return x0.isMoment(t)}isValid(t){return this.clone(t).isValid()}invalid(){return x0.invalid()}_createMoment(t,i,n){const{strict:o,useUtc:s}=this._options||{};return s?x0.utc(t,i,n,o):x0(t,i,n,o)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(_A,8),e.LFG(S6,8))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();const wz={parse:{dateInput:"l"},display:{dateInput:"l",monthYearLabel:"MMM YYYY",dateA11yLabel:"LL",monthYearA11yLabel:"MMMM YYYY"}};let Cz=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[{provide:ys,useClass:yz,deps:[_A,S6]}]})}}return r})(),P6=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:[{provide:vA,useValue:wz}],imports:[Cz]})}}return r})(),bz=(()=>{class r{static \u0275fac=function(i){return new(i||r)};static \u0275mod=e.oAB({type:r});static \u0275inj=e.cJS({providers:[{provide:Ff,useClass:Rf}],imports:[fv,mT,gf,w1,Ly,Ny,P1,Q6,Aw,P6,vw,Bw,kx,n0,Y_,J_,zs,K_,Zw,VB,wk,Xw,iv,Tk,hE,lv,yE,xE,Mn,M6,D6,Lf,fv,mT,gf,w1,Ly,Ny,P1,Q6,Aw,P6,vw,Bw,kx,n0,Y_,zs,J_,K_,Zw,VB,wk,Xw,iv,Tk,hE,lv,yE,xE,Mn,M6,D6,Lf]})}return r})();function F6(r){return new e.vHH(3e3,!1)}function Jf(r){switch(r.length){case 0:return new vi.ZN;case 1:return r[0];default:return new vi.ZE(r)}}function O6(r,a,t=new Map,i=new Map){const n=[],o=[];let s=-1,c=null;if(a.forEach(g=>{const B=g.get("offset"),O=B==s,ne=O&&c||new Map;g.forEach((we,$e)=>{let nt=$e,Ft=we;if("offset"!==$e)switch(nt=r.normalizePropertyName(nt,n),Ft){case vi.k1:Ft=t.get($e);break;case vi.l3:Ft=i.get($e);break;default:Ft=r.normalizeStyleValue($e,nt,Ft,n)}ne.set(nt,Ft)}),O||o.push(ne),c=ne,s=B}),n.length)throw function Jz(r){return new e.vHH(3502,!1)}();return o}function _Q(r,a,t,i){switch(a){case"start":r.onStart(()=>i(t&&vQ(t,"start",r)));break;case"done":r.onDone(()=>i(t&&vQ(t,"done",r)));break;case"destroy":r.onDestroy(()=>i(t&&vQ(t,"destroy",r)))}}function vQ(r,a,t){const o=yQ(r.element,r.triggerName,r.fromState,r.toState,a||r.phaseName,t.totalTime??r.totalTime,!!t.disabled),s=r._data;return null!=s&&(o._data=s),o}function yQ(r,a,t,i,n="",o=0,s){return{element:r,triggerName:a,fromState:t,toState:i,phaseName:n,totalTime:o,disabled:!!s}}function vu(r,a,t){let i=r.get(a);return i||r.set(a,i=t),i}function L6(r){const a=r.indexOf(":");return[r.substring(1,a),r.slice(a+1)]}const rH=(()=>typeof document>"u"?null:document.documentElement)();function wQ(r){const a=r.parentNode||r.host||null;return a===rH?null:a}let B0=null,R6=!1;function Y6(r,a){for(;a;){if(a===r)return!0;a=wQ(a)}return!1}function N6(r,a,t){if(t)return Array.from(r.querySelectorAll(a));const i=r.querySelector(a);return i?[i]:[]}let U6=(()=>{class r{validateStyleProperty(t){return function aH(r){B0||(B0=function sH(){return typeof document<"u"?document.body:null}()||{},R6=!!B0.style&&"WebkitAppearance"in B0.style);let a=!0;return B0.style&&!function oH(r){return"ebkit"==r.substring(1,6)}(r)&&(a=r in B0.style,!a&&R6&&(a="Webkit"+r.charAt(0).toUpperCase()+r.slice(1)in B0.style)),a}(t)}matchesElement(t,i){return!1}containsElement(t,i){return Y6(t,i)}getParentElement(t){return wQ(t)}query(t,i,n){return N6(t,i,n)}computeStyle(t,i,n){return n||""}animate(t,i,n,o,s,c=[],g){return new vi.ZN(n,o)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})(),CQ=(()=>{class r{static{this.NOOP=new U6}}return r})();const lH=1e3,bQ="ng-enter",LE="ng-leave",RE="ng-trigger",YE=".ng-trigger",H6="ng-animating",xQ=".ng-animating";function wg(r){if("number"==typeof r)return r;const a=r.match(/^(-?[\.\d]+)(m?s)/);return!a||a.length<2?0:BQ(parseFloat(a[1]),a[2])}function BQ(r,a){return"s"===a?r*lH:r}function NE(r,a,t){return r.hasOwnProperty("duration")?r:function AH(r,a,t){let n,o=0,s="";if("string"==typeof r){const c=r.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===c)return a.push(F6()),{duration:0,delay:0,easing:""};n=BQ(parseFloat(c[1]),c[2]);const g=c[3];null!=g&&(o=BQ(parseFloat(g),c[4]));const B=c[5];B&&(s=B)}else n=r;if(!t){let c=!1,g=a.length;n<0&&(a.push(function xz(){return new e.vHH(3100,!1)}()),c=!0),o<0&&(a.push(function Bz(){return new e.vHH(3101,!1)}()),c=!0),c&&a.splice(g,0,F6())}return{duration:n,delay:o,easing:s}}(r,a,t)}function yC(r,a={}){return Object.keys(r).forEach(t=>{a[t]=r[t]}),a}function G6(r){const a=new Map;return Object.keys(r).forEach(t=>{a.set(t,r[t])}),a}function jf(r,a=new Map,t){if(t)for(let[i,n]of t)a.set(i,n);for(let[i,n]of r)a.set(i,n);return a}function _p(r,a,t){a.forEach((i,n)=>{const o=MQ(n);t&&!t.has(n)&&t.set(n,r.style[o]),r.style[o]=i})}function E0(r,a){a.forEach((t,i)=>{const n=MQ(i);r.style[n]=""})}function wC(r){return Array.isArray(r)?1==r.length?r[0]:(0,vi.vP)(r):r}const EQ=new RegExp("{{\\s*(.+?)\\s*}}","g");function J6(r){let a=[];if("string"==typeof r){let t;for(;t=EQ.exec(r);)a.push(t[1]);EQ.lastIndex=0}return a}function CC(r,a,t){const i=r.toString(),n=i.replace(EQ,(o,s)=>{let c=a[s];return null==c&&(t.push(function Mz(r){return new e.vHH(3003,!1)}()),c=""),c.toString()});return n==i?r:n}function UE(r){const a=[];let t=r.next();for(;!t.done;)a.push(t.value),t=r.next();return a}const hH=/-+([a-z0-9])/g;function MQ(r){return r.replace(hH,(...a)=>a[1].toUpperCase())}function yu(r,a,t){switch(a.type){case 7:return r.visitTrigger(a,t);case 0:return r.visitState(a,t);case 1:return r.visitTransition(a,t);case 2:return r.visitSequence(a,t);case 3:return r.visitGroup(a,t);case 4:return r.visitAnimate(a,t);case 5:return r.visitKeyframes(a,t);case 6:return r.visitStyle(a,t);case 8:return r.visitReference(a,t);case 9:return r.visitAnimateChild(a,t);case 10:return r.visitAnimateRef(a,t);case 11:return r.visitQuery(a,t);case 12:return r.visitStagger(a,t);default:throw function Dz(r){return new e.vHH(3004,!1)}()}}function j6(r,a){return window.getComputedStyle(r)[a]}const zE="*";function fH(r,a){const t=[];return"string"==typeof r?r.split(/\s*,\s*/).forEach(i=>function mH(r,a,t){if(":"==r[0]){const g=function _H(r,a){switch(r){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,i)=>parseFloat(i)>parseFloat(t);case":decrement":return(t,i)=>parseFloat(i) *"}}(r,t);if("function"==typeof g)return void a.push(g);r=g}const i=r.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return t.push(function Uz(r){return new e.vHH(3015,!1)}()),a;const n=i[1],o=i[2],s=i[3];a.push(V6(n,s));"<"==o[0]&&!(n==zE&&s==zE)&&a.push(V6(s,n))}(i,t,a)):t.push(r),t}const HE=new Set(["true","1"]),GE=new Set(["false","0"]);function V6(r,a){const t=HE.has(r)||GE.has(r),i=HE.has(a)||GE.has(a);return(n,o)=>{let s=r==zE||r==n,c=a==zE||a==o;return!s&&t&&"boolean"==typeof n&&(s=n?HE.has(r):GE.has(r)),!c&&i&&"boolean"==typeof o&&(c=o?HE.has(a):GE.has(a)),s&&c}}const vH=new RegExp("s*:selfs*,?","g");function DQ(r,a,t,i){return new yH(r).build(a,t,i)}class yH{constructor(a){this._driver=a}build(a,t,i){const n=new bH(t);return this._resetContextStyleTimingState(n),yu(this,wC(a),n)}_resetContextStyleTimingState(a){a.currentQuerySelector="",a.collectedStyles=new Map,a.collectedStyles.set("",new Map),a.currentTime=0}visitTrigger(a,t){let i=t.queryCount=0,n=t.depCount=0;const o=[],s=[];return"@"==a.name.charAt(0)&&t.errors.push(function Iz(){return new e.vHH(3006,!1)}()),a.definitions.forEach(c=>{if(this._resetContextStyleTimingState(t),0==c.type){const g=c,B=g.name;B.toString().split(/\s*,\s*/).forEach(O=>{g.name=O,o.push(this.visitState(g,t))}),g.name=B}else if(1==c.type){const g=this.visitTransition(c,t);i+=g.queryCount,n+=g.depCount,s.push(g)}else t.errors.push(function kz(){return new e.vHH(3007,!1)}())}),{type:7,name:a.name,states:o,transitions:s,queryCount:i,depCount:n,options:null}}visitState(a,t){const i=this.visitStyle(a.styles,t),n=a.options&&a.options.params||null;if(i.containsDynamicStyles){const o=new Set,s=n||{};i.styles.forEach(c=>{c instanceof Map&&c.forEach(g=>{J6(g).forEach(B=>{s.hasOwnProperty(B)||o.add(B)})})}),o.size&&(UE(o.values()),t.errors.push(function Qz(r,a){return new e.vHH(3008,!1)}()))}return{type:0,name:a.name,style:i,options:n?{params:n}:null}}visitTransition(a,t){t.queryCount=0,t.depCount=0;const i=yu(this,wC(a.animation),t);return{type:1,matchers:fH(a.expr,t.errors),animation:i,queryCount:t.queryCount,depCount:t.depCount,options:M0(a.options)}}visitSequence(a,t){return{type:2,steps:a.steps.map(i=>yu(this,i,t)),options:M0(a.options)}}visitGroup(a,t){const i=t.currentTime;let n=0;const o=a.steps.map(s=>{t.currentTime=i;const c=yu(this,s,t);return n=Math.max(n,t.currentTime),c});return t.currentTime=n,{type:3,steps:o,options:M0(a.options)}}visitAnimate(a,t){const i=function BH(r,a){if(r.hasOwnProperty("duration"))return r;if("number"==typeof r)return TQ(NE(r,a).duration,0,"");const t=r;if(t.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=TQ(0,0,"");return o.dynamic=!0,o.strValue=t,o}const n=NE(t,a);return TQ(n.duration,n.delay,n.easing)}(a.timings,t.errors);t.currentAnimateTimings=i;let n,o=a.styles?a.styles:(0,vi.oB)({});if(5==o.type)n=this.visitKeyframes(o,t);else{let s=a.styles,c=!1;if(!s){c=!0;const B={};i.easing&&(B.easing=i.easing),s=(0,vi.oB)(B)}t.currentTime+=i.duration+i.delay;const g=this.visitStyle(s,t);g.isEmptyStep=c,n=g}return t.currentAnimateTimings=null,{type:4,timings:i,style:n,options:null}}visitStyle(a,t){const i=this._makeStyleAst(a,t);return this._validateStyleAst(i,t),i}_makeStyleAst(a,t){const i=[],n=Array.isArray(a.styles)?a.styles:[a.styles];for(let c of n)"string"==typeof c?c===vi.l3?i.push(c):t.errors.push(new e.vHH(3002,!1)):i.push(G6(c));let o=!1,s=null;return i.forEach(c=>{if(c instanceof Map&&(c.has("easing")&&(s=c.get("easing"),c.delete("easing")),!o))for(let g of c.values())if(g.toString().indexOf("{{")>=0){o=!0;break}}),{type:6,styles:i,easing:s,offset:a.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(a,t){const i=t.currentAnimateTimings;let n=t.currentTime,o=t.currentTime;i&&o>0&&(o-=i.duration+i.delay),a.styles.forEach(s=>{"string"!=typeof s&&s.forEach((c,g)=>{const B=t.collectedStyles.get(t.currentQuerySelector),O=B.get(g);let ne=!0;O&&(o!=n&&o>=O.startTime&&n<=O.endTime&&(t.errors.push(function Pz(r,a,t,i,n){return new e.vHH(3010,!1)}()),ne=!1),o=O.startTime),ne&&B.set(g,{startTime:o,endTime:n}),t.options&&function uH(r,a,t){const i=a.params||{},n=J6(r);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||t.push(function Ez(r){return new e.vHH(3001,!1)}())})}(c,t.options,t.errors)})})}visitKeyframes(a,t){const i={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(function Fz(){return new e.vHH(3011,!1)}()),i;let o=0;const s=[];let c=!1,g=!1,B=0;const O=a.steps.map(pi=>{const Di=this._makeStyleAst(pi,t);let Ri=null!=Di.offset?Di.offset:function xH(r){if("string"==typeof r)return null;let a=null;if(Array.isArray(r))r.forEach(t=>{if(t instanceof Map&&t.has("offset")){const i=t;a=parseFloat(i.get("offset")),i.delete("offset")}});else if(r instanceof Map&&r.has("offset")){const t=r;a=parseFloat(t.get("offset")),t.delete("offset")}return a}(Di.styles),Wi=0;return null!=Ri&&(o++,Wi=Di.offset=Ri),g=g||Wi<0||Wi>1,c=c||Wi0&&o{const Ri=we>0?Di==$e?1:we*Di:s[Di],Wi=Ri*ei;t.currentTime=nt+Ft.delay+Wi,Ft.duration=Wi,this._validateStyleAst(pi,t),pi.offset=Ri,i.styles.push(pi)}),i}visitReference(a,t){return{type:8,animation:yu(this,wC(a.animation),t),options:M0(a.options)}}visitAnimateChild(a,t){return t.depCount++,{type:9,options:M0(a.options)}}visitAnimateRef(a,t){return{type:10,animation:this.visitReference(a.animation,t),options:M0(a.options)}}visitQuery(a,t){const i=t.currentQuerySelector,n=a.options||{};t.queryCount++,t.currentQuery=a;const[o,s]=function wH(r){const a=!!r.split(/\s*,\s*/).find(t=>":self"==t);return a&&(r=r.replace(vH,"")),r=r.replace(/@\*/g,YE).replace(/@\w+/g,t=>YE+"-"+t.slice(1)).replace(/:animating/g,xQ),[r,a]}(a.selector);t.currentQuerySelector=i.length?i+" "+o:o,vu(t.collectedStyles,t.currentQuerySelector,new Map);const c=yu(this,wC(a.animation),t);return t.currentQuery=null,t.currentQuerySelector=i,{type:11,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:s,animation:c,originalSelector:a.selector,options:M0(a.options)}}visitStagger(a,t){t.currentQuery||t.errors.push(function Yz(){return new e.vHH(3013,!1)}());const i="full"===a.timings?{duration:0,delay:0,easing:"full"}:NE(a.timings,t.errors,!0);return{type:12,animation:yu(this,wC(a.animation),t),timings:i,options:null}}}class bH{constructor(a){this.errors=a,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function M0(r){return r?(r=yC(r)).params&&(r.params=function CH(r){return r?yC(r):null}(r.params)):r={},r}function TQ(r,a,t){return{duration:r,delay:a,easing:t}}function IQ(r,a,t,i,n,o,s=null,c=!1){return{type:1,element:r,keyframes:a,preStyleProps:t,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:s,subTimeline:c}}class ZE{constructor(){this._map=new Map}get(a){return this._map.get(a)||[]}append(a,t){let i=this._map.get(a);i||this._map.set(a,i=[]),i.push(...t)}has(a){return this._map.has(a)}clear(){this._map.clear()}}const DH=new RegExp(":enter","g"),IH=new RegExp(":leave","g");function kQ(r,a,t,i,n,o=new Map,s=new Map,c,g,B=[]){return(new kH).buildKeyframes(r,a,t,i,n,o,s,c,g,B)}class kH{buildKeyframes(a,t,i,n,o,s,c,g,B,O=[]){B=B||new ZE;const ne=new QQ(a,t,B,n,o,O,[]);ne.options=g;const we=g.delay?wg(g.delay):0;ne.currentTimeline.delayNextStep(we),ne.currentTimeline.setStyles([s],null,ne.errors,g),yu(this,i,ne);const $e=ne.timelines.filter(nt=>nt.containsAnimation());if($e.length&&c.size){let nt;for(let Ft=$e.length-1;Ft>=0;Ft--){const ei=$e[Ft];if(ei.element===t){nt=ei;break}}nt&&!nt.allowOnlyTimelineStyles()&&nt.setStyles([c],null,ne.errors,g)}return $e.length?$e.map(nt=>nt.buildKeyframes()):[IQ(t,[],[],[],0,we,"",!1)]}visitTrigger(a,t){}visitState(a,t){}visitTransition(a,t){}visitAnimateChild(a,t){const i=t.subInstructions.get(t.element);if(i){const n=t.createSubContext(a.options),o=t.currentTimeline.currentTime,s=this._visitSubInstructions(i,n,n.options);o!=s&&t.transformIntoNewTimeline(s)}t.previousNode=a}visitAnimateRef(a,t){const i=t.createSubContext(a.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([a.options,a.animation.options],t,i),this.visitReference(a.animation,i),t.transformIntoNewTimeline(i.currentTimeline.currentTime),t.previousNode=a}_applyAnimationRefDelays(a,t,i){for(const n of a){const o=n?.delay;if(o){const s="number"==typeof o?o:wg(CC(o,n?.params??{},t.errors));i.delayNextStep(s)}}}_visitSubInstructions(a,t,i){let o=t.currentTimeline.currentTime;const s=null!=i.duration?wg(i.duration):null,c=null!=i.delay?wg(i.delay):null;return 0!==s&&a.forEach(g=>{const B=t.appendInstructionToTimeline(g,s,c);o=Math.max(o,B.duration+B.delay)}),o}visitReference(a,t){t.updateOptions(a.options,!0),yu(this,a.animation,t),t.previousNode=a}visitSequence(a,t){const i=t.subContextCount;let n=t;const o=a.options;if(o&&(o.params||o.delay)&&(n=t.createSubContext(o),n.transformIntoNewTimeline(),null!=o.delay)){6==n.previousNode.type&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=JE);const s=wg(o.delay);n.delayNextStep(s)}a.steps.length&&(a.steps.forEach(s=>yu(this,s,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),t.previousNode=a}visitGroup(a,t){const i=[];let n=t.currentTimeline.currentTime;const o=a.options&&a.options.delay?wg(a.options.delay):0;a.steps.forEach(s=>{const c=t.createSubContext(a.options);o&&c.delayNextStep(o),yu(this,s,c),n=Math.max(n,c.currentTimeline.currentTime),i.push(c.currentTimeline)}),i.forEach(s=>t.currentTimeline.mergeTimelineCollectedStyles(s)),t.transformIntoNewTimeline(n),t.previousNode=a}_visitTiming(a,t){if(a.dynamic){const i=a.strValue;return NE(t.params?CC(i,t.params,t.errors):i,t.errors)}return{duration:a.duration,delay:a.delay,easing:a.easing}}visitAnimate(a,t){const i=t.currentAnimateTimings=this._visitTiming(a.timings,t),n=t.currentTimeline;i.delay&&(t.incrementTime(i.delay),n.snapshotCurrentStyles());const o=a.style;5==o.type?this.visitKeyframes(o,t):(t.incrementTime(i.duration),this.visitStyle(o,t),n.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=a}visitStyle(a,t){const i=t.currentTimeline,n=t.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();const o=n&&n.easing||a.easing;a.isEmptyStep?i.applyEmptyStep(o):i.setStyles(a.styles,o,t.errors,t.options),t.previousNode=a}visitKeyframes(a,t){const i=t.currentAnimateTimings,n=t.currentTimeline.duration,o=i.duration,c=t.createSubContext().currentTimeline;c.easing=i.easing,a.styles.forEach(g=>{c.forwardTime((g.offset||0)*o),c.setStyles(g.styles,g.easing,t.errors,t.options),c.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(c),t.transformIntoNewTimeline(n+o),t.previousNode=a}visitQuery(a,t){const i=t.currentTimeline.currentTime,n=a.options||{},o=n.delay?wg(n.delay):0;o&&(6===t.previousNode.type||0==i&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=JE);let s=i;const c=t.invokeQuery(a.selector,a.originalSelector,a.limit,a.includeSelf,!!n.optional,t.errors);t.currentQueryTotal=c.length;let g=null;c.forEach((B,O)=>{t.currentQueryIndex=O;const ne=t.createSubContext(a.options,B);o&&ne.delayNextStep(o),B===t.element&&(g=ne.currentTimeline),yu(this,a.animation,ne),ne.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,ne.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(s),g&&(t.currentTimeline.mergeTimelineCollectedStyles(g),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=a}visitStagger(a,t){const i=t.parentContext,n=t.currentTimeline,o=a.timings,s=Math.abs(o.duration),c=s*(t.currentQueryTotal-1);let g=s*t.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":g=c-g;break;case"full":g=i.currentStaggerTime}const O=t.currentTimeline;g&&O.delayNextStep(g);const ne=O.currentTime;yu(this,a.animation,t),t.previousNode=a,i.currentStaggerTime=n.currentTime-ne+(n.startTime-i.currentTimeline.startTime)}}const JE={};class QQ{constructor(a,t,i,n,o,s,c,g){this._driver=a,this.element=t,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=s,this.timelines=c,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=JE,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=g||new jE(this._driver,t,0),c.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(a,t){if(!a)return;const i=a;let n=this.options;null!=i.duration&&(n.duration=wg(i.duration)),null!=i.delay&&(n.delay=wg(i.delay));const o=i.params;if(o){let s=n.params;s||(s=this.options.params={}),Object.keys(o).forEach(c=>{(!t||!s.hasOwnProperty(c))&&(s[c]=CC(o[c],s,this.errors))})}}_copyOptions(){const a={};if(this.options){const t=this.options.params;if(t){const i=a.params={};Object.keys(t).forEach(n=>{i[n]=t[n]})}}return a}createSubContext(a=null,t,i){const n=t||this.element,o=new QQ(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(a),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(a){return this.previousNode=JE,this.currentTimeline=this.currentTimeline.fork(this.element,a),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(a,t,i){const n={duration:t??a.duration,delay:this.currentTimeline.currentTime+(i??0)+a.delay,easing:""},o=new QH(this._driver,a.element,a.keyframes,a.preStyleProps,a.postStyleProps,n,a.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(a){this.currentTimeline.forwardTime(this.currentTimeline.duration+a)}delayNextStep(a){a>0&&this.currentTimeline.delayNextStep(a)}invokeQuery(a,t,i,n,o,s){let c=[];if(n&&c.push(this.element),a.length>0){a=(a=a.replace(DH,"."+this._enterClassName)).replace(IH,"."+this._leaveClassName);let B=this._driver.query(this.element,a,1!=i);0!==i&&(B=i<0?B.slice(B.length+i,B.length):B.slice(0,i)),c.push(...B)}return!o&&0==c.length&&s.push(function Nz(r){return new e.vHH(3014,!1)}()),c}}class jE{constructor(a,t,i,n){this._driver=a,this.element=t,this.startTime=i,this._elementTimelineStylesLookup=n,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(a){const t=1===this._keyframes.size&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+a),t&&this.snapshotCurrentStyles()):this.startTime+=a}fork(a,t){return this.applyStylesToKeyframe(),new jE(this._driver,a,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(a){this.applyStylesToKeyframe(),this.duration=a,this._loadKeyframe()}_updateStyle(a,t){this._localTimelineStyles.set(a,t),this._globalTimelineStyles.set(a,t),this._styleSummary.set(a,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(a){a&&this._previousKeyframe.set("easing",a);for(let[t,i]of this._globalTimelineStyles)this._backFill.set(t,i||vi.l3),this._currentKeyframe.set(t,vi.l3);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(a,t,i,n){t&&this._previousKeyframe.set("easing",t);const o=n&&n.params||{},s=function SH(r,a){const t=new Map;let i;return r.forEach(n=>{if("*"===n){i=i||a.keys();for(let o of i)t.set(o,vi.l3)}else jf(n,t)}),t}(a,this._globalTimelineStyles);for(let[c,g]of s){const B=CC(g,o,i);this._pendingStyles.set(c,B),this._localTimelineStyles.has(c)||this._backFill.set(c,this._globalTimelineStyles.get(c)??vi.l3),this._updateStyle(c,B)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((a,t)=>{this._currentKeyframe.set(t,a)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((a,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,a)}))}snapshotCurrentStyles(){for(let[a,t]of this._localTimelineStyles)this._pendingStyles.set(a,t),this._updateStyle(a,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const a=[];for(let t in this._currentKeyframe)a.push(t);return a}mergeTimelineCollectedStyles(a){a._styleSummary.forEach((t,i)=>{const n=this._styleSummary.get(i);(!n||t.time>n.time)&&this._updateStyle(i,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();const a=new Set,t=new Set,i=1===this._keyframes.size&&0===this.duration;let n=[];this._keyframes.forEach((c,g)=>{const B=jf(c,new Map,this._backFill);B.forEach((O,ne)=>{O===vi.k1?a.add(ne):O===vi.l3&&t.add(ne)}),i||B.set("offset",g/this.duration),n.push(B)});const o=a.size?UE(a.values()):[],s=t.size?UE(t.values()):[];if(i){const c=n[0],g=new Map(c);c.set("offset",0),g.set("offset",1),n=[c,g]}return IQ(this.element,n,o,s,this.duration,this.startTime,this.easing,!1)}}class QH extends jE{constructor(a,t,i,n,o,s,c=!1){super(a,t,s.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=c,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let a=this.keyframes,{delay:t,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&t){const o=[],s=i+t,c=t/s,g=jf(a[0]);g.set("offset",0),o.push(g);const B=jf(a[0]);B.set("offset",q6(c)),o.push(B);const O=a.length-1;for(let ne=1;ne<=O;ne++){let we=jf(a[ne]);const $e=we.get("offset");we.set("offset",q6((t+$e*i)/s)),o.push(we)}i=s,t=0,n="",a=o}return IQ(this.element,a,this.preStyleProps,this.postStyleProps,i,t,n,!0)}}function q6(r,a=3){const t=Math.pow(10,a-1);return Math.round(r*t)/t}class SQ{}const PH=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class FH extends SQ{normalizePropertyName(a,t){return MQ(a)}normalizeStyleValue(a,t,i,n){let o="";const s=i.toString().trim();if(PH.has(t)&&0!==i&&"0"!==i)if("number"==typeof i)o="px";else{const c=i.match(/^[+-]?[\d\.]+([a-z]*)$/);c&&0==c[1].length&&n.push(function Tz(r,a){return new e.vHH(3005,!1)}())}return s+o}}function X6(r,a,t,i,n,o,s,c,g,B,O,ne,we){return{type:0,element:r,triggerName:a,isRemovalTransition:n,fromState:t,fromStyles:o,toState:i,toStyles:s,timelines:c,queriedElements:g,preStyleProps:B,postStyleProps:O,totalTime:ne,errors:we}}const PQ={};class $6{constructor(a,t,i){this._triggerName=a,this.ast=t,this._stateStyles=i}match(a,t,i,n){return function OH(r,a,t,i,n){return r.some(o=>o(a,t,i,n))}(this.ast.matchers,a,t,i,n)}buildStyles(a,t,i){let n=this._stateStyles.get("*");return void 0!==a&&(n=this._stateStyles.get(a?.toString())||n),n?n.buildStyles(t,i):new Map}build(a,t,i,n,o,s,c,g,B,O){const ne=[],we=this.ast.options&&this.ast.options.params||PQ,nt=this.buildStyles(i,c&&c.params||PQ,ne),Ft=g&&g.params||PQ,ei=this.buildStyles(n,Ft,ne),pi=new Set,Di=new Map,Ri=new Map,Wi="void"===n,Ki={params:LH(Ft,we),delay:this.ast.options?.delay},vn=O?[]:kQ(a,t,this.ast.animation,o,s,nt,ei,Ki,B,ne);let gn=0;if(vn.forEach(tr=>{gn=Math.max(tr.duration+tr.delay,gn)}),ne.length)return X6(t,this._triggerName,i,n,Wi,nt,ei,[],[],Di,Ri,gn,ne);vn.forEach(tr=>{const pr=tr.element,go=vu(Di,pr,new Set);tr.preStyleProps.forEach(la=>go.add(la));const no=vu(Ri,pr,new Set);tr.postStyleProps.forEach(la=>no.add(la)),pr!==t&&pi.add(pr)});const Vn=UE(pi.values());return X6(t,this._triggerName,i,n,Wi,nt,ei,vn,Vn,Di,Ri,gn)}}function LH(r,a){const t=yC(a);for(const i in r)r.hasOwnProperty(i)&&null!=r[i]&&(t[i]=r[i]);return t}class RH{constructor(a,t,i){this.styles=a,this.defaultParams=t,this.normalizer=i}buildStyles(a,t){const i=new Map,n=yC(this.defaultParams);return Object.keys(a).forEach(o=>{const s=a[o];null!==s&&(n[o]=s)}),this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,c)=>{s&&(s=CC(s,n,t));const g=this.normalizer.normalizePropertyName(c,t);s=this.normalizer.normalizeStyleValue(c,g,s,t),i.set(c,s)})}),i}}class NH{constructor(a,t,i){this.name=a,this.ast=t,this._normalizer=i,this.transitionFactories=[],this.states=new Map,t.states.forEach(n=>{this.states.set(n.name,new RH(n.style,n.options&&n.options.params||{},i))}),eO(this.states,"true","1"),eO(this.states,"false","0"),t.transitions.forEach(n=>{this.transitionFactories.push(new $6(a,n,this.states))}),this.fallbackTransition=function UH(r,a,t){return new $6(r,{type:1,animation:{type:2,steps:[],options:null},matchers:[(s,c)=>!0],options:null,queryCount:0,depCount:0},a)}(a,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(a,t,i,n){return this.transitionFactories.find(s=>s.match(a,t,i,n))||null}matchStyles(a,t,i){return this.fallbackTransition.buildStyles(a,t,i)}}function eO(r,a,t){r.has(a)?r.has(t)||r.set(t,r.get(a)):r.has(t)&&r.set(a,r.get(t))}const zH=new ZE;class HH{constructor(a,t,i){this.bodyNode=a,this._driver=t,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(a,t){const i=[],o=DQ(this._driver,t,i,[]);if(i.length)throw function jz(r){return new e.vHH(3503,!1)}();this._animations.set(a,o)}_buildPlayer(a,t,i){const n=a.element,o=O6(this._normalizer,a.keyframes,t,i);return this._driver.animate(n,o,a.duration,a.delay,a.easing,[],!0)}create(a,t,i={}){const n=[],o=this._animations.get(a);let s;const c=new Map;if(o?(s=kQ(this._driver,t,o,bQ,LE,new Map,new Map,i,zH,n),s.forEach(O=>{const ne=vu(c,O.element,new Map);O.postStyleProps.forEach(we=>ne.set(we,null))})):(n.push(function Vz(){return new e.vHH(3300,!1)}()),s=[]),n.length)throw function Wz(r){return new e.vHH(3504,!1)}();c.forEach((O,ne)=>{O.forEach((we,$e)=>{O.set($e,this._driver.computeStyle(ne,$e,vi.l3))})});const B=Jf(s.map(O=>{const ne=c.get(O.element);return this._buildPlayer(O,new Map,ne)}));return this._playersById.set(a,B),B.onDestroy(()=>this.destroy(a)),this.players.push(B),B}destroy(a){const t=this._getPlayer(a);t.destroy(),this._playersById.delete(a);const i=this.players.indexOf(t);i>=0&&this.players.splice(i,1)}_getPlayer(a){const t=this._playersById.get(a);if(!t)throw function Kz(r){return new e.vHH(3301,!1)}();return t}listen(a,t,i,n){const o=yQ(t,"","","");return _Q(this._getPlayer(a),i,o,n),()=>{}}command(a,t,i,n){if("register"==i)return void this.register(a,n[0]);if("create"==i)return void this.create(a,t,n[0]||{});const o=this._getPlayer(a);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(a)}}}const tO="ng-animate-queued",FQ="ng-animate-disabled",VH=[],iO={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},WH={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Lh="__ng_removed";class OQ{get params(){return this.options.params}constructor(a,t=""){this.namespaceId=t;const i=a&&a.hasOwnProperty("value");if(this.value=function $H(r){return r??null}(i?a.value:a),i){const o=yC(a);delete o.value,this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(a){const t=a.params;if(t){const i=this.options.params;Object.keys(t).forEach(n=>{null==i[n]&&(i[n]=t[n])})}}}const bC="void",LQ=new OQ(bC);class KH{constructor(a,t,i){this.id=a,this.hostElement=t,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+a,Ku(t,this._hostClassName)}listen(a,t,i,n){if(!this._triggers.has(t))throw function qz(r,a){return new e.vHH(3302,!1)}();if(null==i||0==i.length)throw function Xz(r){return new e.vHH(3303,!1)}();if(!function eG(r){return"start"==r||"done"==r}(i))throw function $z(r,a){return new e.vHH(3400,!1)}();const o=vu(this._elementListeners,a,[]),s={name:t,phase:i,callback:n};o.push(s);const c=vu(this._engine.statesByElement,a,new Map);return c.has(t)||(Ku(a,RE),Ku(a,RE+"-"+t),c.set(t,LQ)),()=>{this._engine.afterFlush(()=>{const g=o.indexOf(s);g>=0&&o.splice(g,1),this._triggers.has(t)||c.delete(t)})}}register(a,t){return!this._triggers.has(a)&&(this._triggers.set(a,t),!0)}_getTrigger(a){const t=this._triggers.get(a);if(!t)throw function eH(r){return new e.vHH(3401,!1)}();return t}trigger(a,t,i,n=!0){const o=this._getTrigger(t),s=new RQ(this.id,t,a);let c=this._engine.statesByElement.get(a);c||(Ku(a,RE),Ku(a,RE+"-"+t),this._engine.statesByElement.set(a,c=new Map));let g=c.get(t);const B=new OQ(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&g&&B.absorbOptions(g.options),c.set(t,B),g||(g=LQ),B.value!==bC&&g.value===B.value){if(!function nG(r,a){const t=Object.keys(r),i=Object.keys(a);if(t.length!=i.length)return!1;for(let n=0;n{E0(a,ei),_p(a,pi)})}return}const we=vu(this._engine.playersByElement,a,[]);we.forEach(Ft=>{Ft.namespaceId==this.id&&Ft.triggerName==t&&Ft.queued&&Ft.destroy()});let $e=o.matchTransition(g.value,B.value,a,B.params),nt=!1;if(!$e){if(!n)return;$e=o.fallbackTransition,nt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:a,triggerName:t,transition:$e,fromState:g,toState:B,player:s,isFallbackTransition:nt}),nt||(Ku(a,tO),s.onStart(()=>{_v(a,tO)})),s.onDone(()=>{let Ft=this.players.indexOf(s);Ft>=0&&this.players.splice(Ft,1);const ei=this._engine.playersByElement.get(a);if(ei){let pi=ei.indexOf(s);pi>=0&&ei.splice(pi,1)}}),this.players.push(s),we.push(s),s}deregister(a){this._triggers.delete(a),this._engine.statesByElement.forEach(t=>t.delete(a)),this._elementListeners.forEach((t,i)=>{this._elementListeners.set(i,t.filter(n=>n.name!=a))})}clearElementCache(a){this._engine.statesByElement.delete(a),this._elementListeners.delete(a);const t=this._engine.playersByElement.get(a);t&&(t.forEach(i=>i.destroy()),this._engine.playersByElement.delete(a))}_signalRemovalForInnerTriggers(a,t){const i=this._engine.driver.query(a,YE,!0);i.forEach(n=>{if(n[Lh])return;const o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(s=>s.triggerLeaveAnimation(n,t,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(a,t,i,n){const o=this._engine.statesByElement.get(a),s=new Map;if(o){const c=[];if(o.forEach((g,B)=>{if(s.set(B,g.value),this._triggers.has(B)){const O=this.trigger(a,B,bC,n);O&&c.push(O)}}),c.length)return this._engine.markElementAsRemoved(this.id,a,!0,t,s),i&&Jf(c).onDone(()=>this._engine.processLeaveNode(a)),!0}return!1}prepareLeaveAnimationListeners(a){const t=this._elementListeners.get(a),i=this._engine.statesByElement.get(a);if(t&&i){const n=new Set;t.forEach(o=>{const s=o.name;if(n.has(s))return;n.add(s);const g=this._triggers.get(s).fallbackTransition,B=i.get(s)||LQ,O=new OQ(bC),ne=new RQ(this.id,s,a);this._engine.totalQueuedPlayers++,this._queue.push({element:a,triggerName:s,transition:g,fromState:B,toState:O,player:ne,isFallbackTransition:!0})})}}removeNode(a,t){const i=this._engine;if(a.childElementCount&&this._signalRemovalForInnerTriggers(a,t),this.triggerLeaveAnimation(a,t,!0))return;let n=!1;if(i.totalAnimations){const o=i.players.length?i.playersByQueriedElement.get(a):[];if(o&&o.length)n=!0;else{let s=a;for(;s=s.parentNode;)if(i.statesByElement.get(s)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(a),n)i.markElementAsRemoved(this.id,a,!1,t);else{const o=a[Lh];(!o||o===iO)&&(i.afterFlush(()=>this.clearElementCache(a)),i.destroyInnerAnimations(a),i._onRemovalComplete(a,t))}}insertNode(a,t){Ku(a,this._hostClassName)}drainQueuedTransitions(a){const t=[];return this._queue.forEach(i=>{const n=i.player;if(n.destroyed)return;const o=i.element,s=this._elementListeners.get(o);s&&s.forEach(c=>{if(c.name==i.triggerName){const g=yQ(o,i.triggerName,i.fromState.value,i.toState.value);g._data=a,_Q(i.player,c.phase,g,c.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):t.push(i)}),this._queue=[],t.sort((i,n)=>{const o=i.transition.ast.depCount,s=n.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(a){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,a)}}class qH{_onRemovalComplete(a,t){this.onRemovalComplete(a,t)}constructor(a,t,i){this.bodyNode=a,this.driver=t,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(n,o)=>{}}get queuedPlayers(){const a=[];return this._namespaceList.forEach(t=>{t.players.forEach(i=>{i.queued&&a.push(i)})}),a}createNamespace(a,t){const i=new KH(a,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(i,t):(this.newHostElements.set(t,i),this.collectEnterElement(t)),this._namespaceLookup[a]=i}_balanceNamespaceList(a,t){const i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,c=this.driver.getParentElement(t);for(;c;){const g=n.get(c);if(g){const B=i.indexOf(g);i.splice(B+1,0,a),s=!0;break}c=this.driver.getParentElement(c)}s||i.unshift(a)}else i.push(a);return n.set(t,a),a}register(a,t){let i=this._namespaceLookup[a];return i||(i=this.createNamespace(a,t)),i}registerTrigger(a,t,i){let n=this._namespaceLookup[a];n&&n.register(t,i)&&this.totalAnimations++}destroy(a,t){a&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(a);this.namespacesByHostElement.delete(i.hostElement);const n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(t),delete this._namespaceLookup[a]}))}_fetchNamespace(a){return this._namespaceLookup[a]}fetchNamespacesByElement(a){const t=new Set,i=this.statesByElement.get(a);if(i)for(let n of i.values())if(n.namespaceId){const o=this._fetchNamespace(n.namespaceId);o&&t.add(o)}return t}trigger(a,t,i,n){if(VE(t)){const o=this._fetchNamespace(a);if(o)return o.trigger(t,i,n),!0}return!1}insertNode(a,t,i,n){if(!VE(t))return;const o=t[Lh];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(t);s>=0&&this.collectedLeaveElements.splice(s,1)}if(a){const s=this._fetchNamespace(a);s&&s.insertNode(t,i)}n&&this.collectEnterElement(t)}collectEnterElement(a){this.collectedEnterElements.push(a)}markElementAsDisabled(a,t){t?this.disabledNodes.has(a)||(this.disabledNodes.add(a),Ku(a,FQ)):this.disabledNodes.has(a)&&(this.disabledNodes.delete(a),_v(a,FQ))}removeNode(a,t,i){if(VE(t)){const n=a?this._fetchNamespace(a):null;n?n.removeNode(t,i):this.markElementAsRemoved(a,t,!1,i);const o=this.namespacesByHostElement.get(t);o&&o.id!==a&&o.removeNode(t,i)}else this._onRemovalComplete(t,i)}markElementAsRemoved(a,t,i,n,o){this.collectedLeaveElements.push(t),t[Lh]={namespaceId:a,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(a,t,i,n,o){return VE(t)?this._fetchNamespace(a).listen(t,i,n,o):()=>{}}_buildInstruction(a,t,i,n,o){return a.transition.build(this.driver,a.element,a.fromState.value,a.toState.value,i,n,a.fromState.options,a.toState.options,t,o)}destroyInnerAnimations(a){let t=this.driver.query(a,YE,!0);t.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(a,xQ,!0),t.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(a){const t=this.playersByElement.get(a);t&&t.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(a){const t=this.playersByQueriedElement.get(a);t&&t.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(a=>{if(this.players.length)return Jf(this.players).onDone(()=>a());a()})}processLeaveNode(a){const t=a[Lh];if(t&&t.setForRemoval){if(a[Lh]=iO,t.namespaceId){this.destroyInnerAnimations(a);const i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(a)}this._onRemovalComplete(a,t.setForRemoval)}a.classList?.contains(FQ)&&this.markElementAsDisabled(a,!1),this.driver.query(a,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(a=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],t.length?Jf(t).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(a){throw function tH(r){return new e.vHH(3402,!1)}()}_flushAnimations(a,t){const i=new ZE,n=[],o=new Map,s=[],c=new Map,g=new Map,B=new Map,O=new Set;this.disabledNodes.forEach(ur=>{O.add(ur);const Cr=this.driver.query(ur,".ng-animate-queued",!0);for(let oo=0;oo{const oo=bQ+Ft++;nt.set(Cr,oo),ur.forEach(Da=>Ku(Da,oo))});const ei=[],pi=new Set,Di=new Set;for(let ur=0;urpi.add(Da)):Di.add(Cr))}const Ri=new Map,Wi=oO(we,Array.from(pi));Wi.forEach((ur,Cr)=>{const oo=LE+Ft++;Ri.set(Cr,oo),ur.forEach(Da=>Ku(Da,oo))}),a.push(()=>{$e.forEach((ur,Cr)=>{const oo=nt.get(Cr);ur.forEach(Da=>_v(Da,oo))}),Wi.forEach((ur,Cr)=>{const oo=Ri.get(Cr);ur.forEach(Da=>_v(Da,oo))}),ei.forEach(ur=>{this.processLeaveNode(ur)})});const Ki=[],vn=[];for(let ur=this._namespaceList.length-1;ur>=0;ur--)this._namespaceList[ur].drainQueuedTransitions(t).forEach(oo=>{const Da=oo.player,Al=oo.element;if(Ki.push(Da),this.collectedEnterElements.length){const nd=Al[Lh];if(nd&&nd.setForMove){if(nd.previousTriggersValues&&nd.previousTriggersValues.has(oo.triggerName)){const q0=nd.previousTriggersValues.get(oo.triggerName),lh=this.statesByElement.get(oo.element);if(lh&&lh.has(oo.triggerName)){const UD=lh.get(oo.triggerName);UD.value=q0,lh.set(oo.triggerName,UD)}}return void Da.destroy()}}const GA=!ne||!this.driver.containsElement(ne,Al),pc=Ri.get(Al),id=nt.get(Al),dl=this._buildInstruction(oo,i,id,pc,GA);if(dl.errors&&dl.errors.length)return void vn.push(dl);if(GA)return Da.onStart(()=>E0(Al,dl.fromStyles)),Da.onDestroy(()=>_p(Al,dl.toStyles)),void n.push(Da);if(oo.isFallbackTransition)return Da.onStart(()=>E0(Al,dl.fromStyles)),Da.onDestroy(()=>_p(Al,dl.toStyles)),void n.push(Da);const cy=[];dl.timelines.forEach(nd=>{nd.stretchStartingKeyframe=!0,this.disabledNodes.has(nd.element)||cy.push(nd)}),dl.timelines=cy,i.append(Al,dl.timelines),s.push({instruction:dl,player:Da,element:Al}),dl.queriedElements.forEach(nd=>vu(c,nd,[]).push(Da)),dl.preStyleProps.forEach((nd,q0)=>{if(nd.size){let lh=g.get(q0);lh||g.set(q0,lh=new Set),nd.forEach((UD,I3)=>lh.add(I3))}}),dl.postStyleProps.forEach((nd,q0)=>{let lh=B.get(q0);lh||B.set(q0,lh=new Set),nd.forEach((UD,I3)=>lh.add(I3))})});if(vn.length){const ur=[];vn.forEach(Cr=>{ur.push(function iH(r,a){return new e.vHH(3505,!1)}())}),Ki.forEach(Cr=>Cr.destroy()),this.reportError(ur)}const gn=new Map,Vn=new Map;s.forEach(ur=>{const Cr=ur.element;i.has(Cr)&&(Vn.set(Cr,Cr),this._beforeAnimationBuild(ur.player.namespaceId,ur.instruction,gn))}),n.forEach(ur=>{const Cr=ur.element;this._getPreviousPlayers(Cr,!1,ur.namespaceId,ur.triggerName,null).forEach(Da=>{vu(gn,Cr,[]).push(Da),Da.destroy()})});const tr=ei.filter(ur=>sO(ur,g,B)),pr=new Map;rO(pr,this.driver,Di,B,vi.l3).forEach(ur=>{sO(ur,g,B)&&tr.push(ur)});const no=new Map;$e.forEach((ur,Cr)=>{rO(no,this.driver,new Set(ur),g,vi.k1)}),tr.forEach(ur=>{const Cr=pr.get(ur),oo=no.get(ur);pr.set(ur,new Map([...Cr?.entries()??[],...oo?.entries()??[]]))});const la=[],Os=[],So={};s.forEach(ur=>{const{element:Cr,player:oo,instruction:Da}=ur;if(i.has(Cr)){if(O.has(Cr))return oo.onDestroy(()=>_p(Cr,Da.toStyles)),oo.disabled=!0,oo.overrideTotalTime(Da.totalTime),void n.push(oo);let Al=So;if(Vn.size>1){let pc=Cr;const id=[];for(;pc=pc.parentNode;){const dl=Vn.get(pc);if(dl){Al=dl;break}id.push(pc)}id.forEach(dl=>Vn.set(dl,Al))}const GA=this._buildAnimation(oo.namespaceId,Da,gn,o,no,pr);if(oo.setRealPlayer(GA),Al===So)la.push(oo);else{const pc=this.playersByElement.get(Al);pc&&pc.length&&(oo.parentPlayer=Jf(pc)),n.push(oo)}}else E0(Cr,Da.fromStyles),oo.onDestroy(()=>_p(Cr,Da.toStyles)),Os.push(oo),O.has(Cr)&&n.push(oo)}),Os.forEach(ur=>{const Cr=o.get(ur.element);if(Cr&&Cr.length){const oo=Jf(Cr);ur.setRealPlayer(oo)}}),n.forEach(ur=>{ur.parentPlayer?ur.syncPlayerEvents(ur.parentPlayer):ur.destroy()});for(let ur=0;ur!GA.destroyed);Al.length?tG(this,Cr,Al):this.processLeaveNode(Cr)}return ei.length=0,la.forEach(ur=>{this.players.push(ur),ur.onDone(()=>{ur.destroy();const Cr=this.players.indexOf(ur);this.players.splice(Cr,1)}),ur.play()}),la}afterFlush(a){this._flushFns.push(a)}afterFlushAnimationsDone(a){this._whenQuietFns.push(a)}_getPreviousPlayers(a,t,i,n,o){let s=[];if(t){const c=this.playersByQueriedElement.get(a);c&&(s=c)}else{const c=this.playersByElement.get(a);if(c){const g=!o||o==bC;c.forEach(B=>{B.queued||!g&&B.triggerName!=n||s.push(B)})}}return(i||n)&&(s=s.filter(c=>!(i&&i!=c.namespaceId||n&&n!=c.triggerName))),s}_beforeAnimationBuild(a,t,i){const o=t.element,s=t.isRemovalTransition?void 0:a,c=t.isRemovalTransition?void 0:t.triggerName;for(const g of t.timelines){const B=g.element,O=B!==o,ne=vu(i,B,[]);this._getPreviousPlayers(B,O,s,c,t.toState).forEach($e=>{const nt=$e.getRealPlayer();nt.beforeDestroy&&nt.beforeDestroy(),$e.destroy(),ne.push($e)})}E0(o,t.fromStyles)}_buildAnimation(a,t,i,n,o,s){const c=t.triggerName,g=t.element,B=[],O=new Set,ne=new Set,we=t.timelines.map(nt=>{const Ft=nt.element;O.add(Ft);const ei=Ft[Lh];if(ei&&ei.removedBeforeQueried)return new vi.ZN(nt.duration,nt.delay);const pi=Ft!==g,Di=function iG(r){const a=[];return aO(r,a),a}((i.get(Ft)||VH).map(gn=>gn.getRealPlayer())).filter(gn=>!!gn.element&&gn.element===Ft),Ri=o.get(Ft),Wi=s.get(Ft),Ki=O6(this._normalizer,nt.keyframes,Ri,Wi),vn=this._buildPlayer(nt,Ki,Di);if(nt.subTimeline&&n&&ne.add(Ft),pi){const gn=new RQ(a,c,Ft);gn.setRealPlayer(vn),B.push(gn)}return vn});B.forEach(nt=>{vu(this.playersByQueriedElement,nt.element,[]).push(nt),nt.onDone(()=>function XH(r,a,t){let i=r.get(a);if(i){if(i.length){const n=i.indexOf(t);i.splice(n,1)}0==i.length&&r.delete(a)}return i}(this.playersByQueriedElement,nt.element,nt))}),O.forEach(nt=>Ku(nt,H6));const $e=Jf(we);return $e.onDestroy(()=>{O.forEach(nt=>_v(nt,H6)),_p(g,t.toStyles)}),ne.forEach(nt=>{vu(n,nt,[]).push($e)}),$e}_buildPlayer(a,t,i){return t.length>0?this.driver.animate(a.element,t,a.duration,a.delay,a.easing,i):new vi.ZN(a.duration,a.delay)}}class RQ{constructor(a,t,i){this.namespaceId=a,this.triggerName=t,this.element=i,this._player=new vi.ZN,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(a){this._containsRealPlayer||(this._player=a,this._queuedCallbacks.forEach((t,i)=>{t.forEach(n=>_Q(a,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(a.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(a){this.totalTime=a}syncPlayerEvents(a){const t=this._player;t.triggerCallback&&a.onStart(()=>t.triggerCallback("start")),a.onDone(()=>this.finish()),a.onDestroy(()=>this.destroy())}_queueEvent(a,t){vu(this._queuedCallbacks,a,[]).push(t)}onDone(a){this.queued&&this._queueEvent("done",a),this._player.onDone(a)}onStart(a){this.queued&&this._queueEvent("start",a),this._player.onStart(a)}onDestroy(a){this.queued&&this._queueEvent("destroy",a),this._player.onDestroy(a)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(a){this.queued||this._player.setPosition(a)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(a){const t=this._player;t.triggerCallback&&t.triggerCallback(a)}}function VE(r){return r&&1===r.nodeType}function nO(r,a){const t=r.style.display;return r.style.display=a??"none",t}function rO(r,a,t,i,n){const o=[];t.forEach(g=>o.push(nO(g)));const s=[];i.forEach((g,B)=>{const O=new Map;g.forEach(ne=>{const we=a.computeStyle(B,ne,n);O.set(ne,we),(!we||0==we.length)&&(B[Lh]=WH,s.push(B))}),r.set(B,O)});let c=0;return t.forEach(g=>nO(g,o[c++])),s}function oO(r,a){const t=new Map;if(r.forEach(c=>t.set(c,[])),0==a.length)return t;const n=new Set(a),o=new Map;function s(c){if(!c)return 1;let g=o.get(c);if(g)return g;const B=c.parentNode;return g=t.has(B)?B:n.has(B)?1:s(B),o.set(c,g),g}return a.forEach(c=>{const g=s(c);1!==g&&t.get(g).push(c)}),t}function Ku(r,a){r.classList?.add(a)}function _v(r,a){r.classList?.remove(a)}function tG(r,a,t){Jf(t).onDone(()=>r.processLeaveNode(a))}function aO(r,a){for(let t=0;tn.add(o)):a.set(r,i),t.delete(r),!0}class WE{constructor(a,t,i){this.bodyNode=a,this._driver=t,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(n,o)=>{},this._transitionEngine=new qH(a,t,i),this._timelineEngine=new HH(a,t,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(a,t,i,n,o){const s=a+"-"+n;let c=this._triggerCache[s];if(!c){const g=[],O=DQ(this._driver,o,g,[]);if(g.length)throw function Zz(r,a){return new e.vHH(3404,!1)}();c=function YH(r,a,t){return new NH(r,a,t)}(n,O,this._normalizer),this._triggerCache[s]=c}this._transitionEngine.registerTrigger(t,n,c)}register(a,t){this._transitionEngine.register(a,t)}destroy(a,t){this._transitionEngine.destroy(a,t)}onInsert(a,t,i,n){this._transitionEngine.insertNode(a,t,i,n)}onRemove(a,t,i){this._transitionEngine.removeNode(a,t,i)}disableAnimations(a,t){this._transitionEngine.markElementAsDisabled(a,t)}process(a,t,i,n){if("@"==i.charAt(0)){const[o,s]=L6(i);this._timelineEngine.command(o,t,s,n)}else this._transitionEngine.trigger(a,t,i,n)}listen(a,t,i,n,o){if("@"==i.charAt(0)){const[s,c]=L6(i);return this._timelineEngine.listen(s,t,c,o)}return this._transitionEngine.listen(a,t,i,n,o)}flush(a=-1){this._transitionEngine.flush(a)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(a){this._transitionEngine.afterFlushAnimationsDone(a)}}let oG=(()=>{class r{static{this.initialStylesByElement=new WeakMap}constructor(t,i,n){this._element=t,this._startStyles=i,this._endStyles=n,this._state=0;let o=r.initialStylesByElement.get(t);o||r.initialStylesByElement.set(t,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&_p(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_p(this._element,this._initialStyles),this._endStyles&&(_p(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(r.initialStylesByElement.delete(this._element),this._startStyles&&(E0(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(E0(this._element,this._endStyles),this._endStyles=null),_p(this._element,this._initialStyles),this._state=3)}}return r})();function YQ(r){let a=null;return r.forEach((t,i)=>{(function aG(r){return"display"===r||"position"===r})(i)&&(a=a||new Map,a.set(i,t))}),a}class lO{constructor(a,t,i,n){this.element=a,this.keyframes=t,this.options=i,this._specialStyles=n,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const a=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,a,this.options),this._finalKeyframe=a.length?a[a.length-1]:new Map;const t=()=>this._onFinish();this.domPlayer.addEventListener("finish",t),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",t)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(a){const t=[];return a.forEach(i=>{t.push(Object.fromEntries(i))}),t}_triggerWebAnimation(a,t,i){return a.animate(this._convertKeyframesToObject(t),i)}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(a=>a()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}setPosition(a){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=a*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const a=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{"offset"!==n&&a.set(n,this._finished?i:j6(this.element,n))}),this.currentSnapshot=a}triggerCallback(a){const t="start"===a?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class sG{validateStyleProperty(a){return!0}validateAnimatableStyleProperty(a){return!0}matchesElement(a,t){return!1}containsElement(a,t){return Y6(a,t)}getParentElement(a){return wQ(a)}query(a,t,i){return N6(a,t,i)}computeStyle(a,t,i){return window.getComputedStyle(a)[t]}animate(a,t,i,n,o,s=[]){const g={duration:i,delay:n,fill:0==n?"both":"forwards"};o&&(g.easing=o);const B=new Map,O=s.filter($e=>$e instanceof lO);(function pH(r,a){return 0===r||0===a})(i,n)&&O.forEach($e=>{$e.currentSnapshot.forEach((nt,Ft)=>B.set(Ft,nt))});let ne=function dH(r){return r.length?r[0]instanceof Map?r:r.map(a=>G6(a)):[]}(t).map($e=>jf($e));ne=function gH(r,a,t){if(t.size&&a.length){let i=a[0],n=[];if(t.forEach((o,s)=>{i.has(s)||n.push(s),i.set(s,o)}),n.length)for(let o=1;os.set(c,j6(r,c)))}}return a}(a,ne,B);const we=function rG(r,a){let t=null,i=null;return Array.isArray(a)&&a.length?(t=YQ(a[0]),a.length>1&&(i=YQ(a[a.length-1]))):a instanceof Map&&(t=YQ(a)),t||i?new oG(r,t,i):null}(a,ne);return new lO(a,ne,g,we)}}let lG=(()=>{class r extends vi._j{constructor(t,i){super(),this._nextAnimationId=0,this._renderer=t.createRenderer(i.body,{id:"0",encapsulation:e.ifc.None,styles:[],data:{animation:[]}})}build(t){const i=this._nextAnimationId.toString();this._nextAnimationId++;const n=Array.isArray(t)?(0,vi.vP)(t):t;return cO(this._renderer,null,i,"register",[n]),new cG(i,this._renderer)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(e.FYo),e.LFG(l.K0))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();class cG extends vi.LC{constructor(a,t){super(),this._id=a,this._renderer=t}create(a,t){return new AG(this._id,a,t||{},this._renderer)}}class AG{constructor(a,t,i,n){this.id=a,this.element=t,this._renderer=n,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(a,t){return this._renderer.listen(this.element,`@@${this.id}:${a}`,t)}_command(a,...t){return cO(this._renderer,this.element,this.id,a,t)}onDone(a){this._listen("done",a)}onStart(a){this._listen("start",a)}onDestroy(a){this._listen("destroy",a)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(a){this._command("setPosition",a)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function cO(r,a,t,i,n){return r.setProperty(a,`@@${t}:${i}`,n)}const AO="@.disabled";let dG=(()=>{class r{constructor(t,i,n){this.delegate=t,this.engine=i,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(o,s)=>{const c=s?.parentNode(o);c&&s.removeChild(c,o)}}createRenderer(t,i){const o=this.delegate.createRenderer(t,i);if(!(t&&i&&i.data&&i.data.animation)){let O=this._rendererCache.get(o);return O||(O=new dO("",o,this.engine,()=>this._rendererCache.delete(o)),this._rendererCache.set(o,O)),O}const s=i.id,c=i.id+"-"+this._currentId;this._currentId++,this.engine.register(c,t);const g=O=>{Array.isArray(O)?O.forEach(g):this.engine.registerTrigger(s,c,t,O.name,O)};return i.data.animation.forEach(g),new uG(this,c,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,i,n){t>=0&&ti(n)):(0==this._animationCallbacksBuffer.length&&queueMicrotask(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(o=>{const[s,c]=o;s(c)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,n]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(e.FYo),e.LFG(WE),e.LFG(e.R0b))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();class dO{constructor(a,t,i,n){this.namespaceId=a,this.delegate=t,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(a){this.delegate.destroyNode?.(a)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(a,t){return this.delegate.createElement(a,t)}createComment(a){return this.delegate.createComment(a)}createText(a){return this.delegate.createText(a)}appendChild(a,t){this.delegate.appendChild(a,t),this.engine.onInsert(this.namespaceId,t,a,!1)}insertBefore(a,t,i,n=!0){this.delegate.insertBefore(a,t,i),this.engine.onInsert(this.namespaceId,t,a,n)}removeChild(a,t,i){this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(a,t){return this.delegate.selectRootElement(a,t)}parentNode(a){return this.delegate.parentNode(a)}nextSibling(a){return this.delegate.nextSibling(a)}setAttribute(a,t,i,n){this.delegate.setAttribute(a,t,i,n)}removeAttribute(a,t,i){this.delegate.removeAttribute(a,t,i)}addClass(a,t){this.delegate.addClass(a,t)}removeClass(a,t){this.delegate.removeClass(a,t)}setStyle(a,t,i,n){this.delegate.setStyle(a,t,i,n)}removeStyle(a,t,i){this.delegate.removeStyle(a,t,i)}setProperty(a,t,i){"@"==t.charAt(0)&&t==AO?this.disableAnimations(a,!!i):this.delegate.setProperty(a,t,i)}setValue(a,t){this.delegate.setValue(a,t)}listen(a,t,i){return this.delegate.listen(a,t,i)}disableAnimations(a,t){this.engine.disableAnimations(a,t)}}class uG extends dO{constructor(a,t,i,n,o){super(t,i,n,o),this.factory=a,this.namespaceId=t}setProperty(a,t,i){"@"==t.charAt(0)?"."==t.charAt(1)&&t==AO?this.disableAnimations(a,i=void 0===i||!!i):this.engine.process(this.namespaceId,a,t.slice(1),i):this.delegate.setProperty(a,t,i)}listen(a,t,i){if("@"==t.charAt(0)){const n=function hG(r){switch(r){case"body":return document.body;case"document":return document;case"window":return window;default:return r}}(a);let o=t.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function pG(r){const a=r.indexOf(".");return[r.substring(0,a),r.slice(a+1)]}(o)),this.engine.listen(this.namespaceId,n,o,s,c=>{this.factory.scheduleListenerCallback(c._data||-1,i,c)})}return this.delegate.listen(a,t,i)}}let gG=(()=>{class r extends WE{constructor(t,i,n,o){super(t.body,i,n)}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(l.K0),e.LFG(CQ),e.LFG(SQ),e.LFG(e.z2F))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();const uO=[{provide:vi._j,useClass:lG},{provide:SQ,useFactory:function fG(){return new FH}},{provide:WE,useClass:gG},{provide:e.FYo,useFactory:function mG(r,a,t){return new dG(r,a,t)},deps:[T.se,WE,e.R0b]}],NQ=[{provide:CQ,useFactory:()=>new sG},{provide:e.QbO,useValue:"BrowserAnimations"},...uO],hO=[{provide:CQ,useClass:U6},{provide:e.QbO,useValue:"NoopAnimations"},...uO];let _G=(()=>{class r{static withConfig(t){return{ngModule:r,providers:t.disableAnimations?hO:NQ}}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({providers:NQ,imports:[T.b2]})}}return r})();const vG=["dialogPopup"],yG=["hueSlider"],wG=["alphaSlider"];function CG(r,a){if(1&r&&e._UZ(0,"div"),2&r){const t=e.oxw();e.Gre("arrow arrow-",t.cpUsePosition,""),e.Udp("top",t.arrowTop,"px")}}function bG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",28),e.NdJ("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onColorChange(n))})("dragStart",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onDragStart("saturation-lightness"))})("dragEnd",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onDragEnd("saturation-lightness"))}),e._UZ(1,"div",14),e.qZA()}if(2&r){const t=e.oxw();e.Udp("background-color",t.hueSliderColor),e.Q6J("rgX",1)("rgY",1),e.xp6(1),e.Udp("top",null==t.slider?null:t.slider.v,"px")("left",null==t.slider?null:t.slider.s,"px")}}function xG(r,a){1&r&&(e.O4$(),e.TgZ(0,"svg",29),e._UZ(1,"path",30)(2,"path",31),e.qZA())}function BG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",32),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAddPresetColor(n,o.selectedColor))}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw();e.Tol(t.cpAddColorButtonClass),e.Q6J("disabled",t.cpPresetColors&&t.cpPresetColors.length>=t.cpMaxPresetColorsLength),e.xp6(1),e.hij(" ",t.cpAddColorButtonText," ")}}function EG(r,a){1&r&&e._UZ(0,"div",33)}function MG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAlphaInput(n))}),e.qZA()}if(2&r){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.cmykText?null:t.cmykText.a)}}function DG(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function TG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",34)(1,"div",35)(2,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onCyanInput(n))}),e.qZA(),e.TgZ(3,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onMagentaInput(n))}),e.qZA(),e.TgZ(4,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onYellowInput(n))}),e.qZA(),e.TgZ(5,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onBlackInput(n))}),e.qZA(),e.YNc(6,MG,1,2,"input",37),e.qZA(),e.TgZ(7,"div",35)(8,"div"),e._uU(9,"C"),e.qZA(),e.TgZ(10,"div"),e._uU(11,"M"),e.qZA(),e.TgZ(12,"div"),e._uU(13,"Y"),e.qZA(),e.TgZ(14,"div"),e._uU(15,"K"),e.qZA(),e.YNc(16,DG,2,0,"div",38),e.qZA()()}if(2&r){const t=e.oxw();e.Udp("display",3!==t.format?"none":"block"),e.xp6(2),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.c),e.xp6(1),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.m),e.xp6(1),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.y),e.xp6(1),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.k),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel),e.xp6(10),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function IG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAlphaInput(n))}),e.qZA()}if(2&r){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function kG(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function QG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",40)(1,"div",35)(2,"input",41),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onHueInput(n))}),e.qZA(),e.TgZ(3,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onSaturationInput(n))}),e.qZA(),e.TgZ(4,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onLightnessInput(n))}),e.qZA(),e.YNc(5,IG,1,2,"input",37),e.qZA(),e.TgZ(6,"div",35)(7,"div"),e._uU(8,"H"),e.qZA(),e.TgZ(9,"div"),e._uU(10,"S"),e.qZA(),e.TgZ(11,"div"),e._uU(12,"L"),e.qZA(),e.YNc(13,kG,2,0,"div",38),e.qZA()()}if(2&r){const t=e.oxw();e.Udp("display",2!==t.format?"none":"block"),e.xp6(2),e.Q6J("rg",360)("value",null==t.hslaText?null:t.hslaText.h),e.xp6(1),e.Q6J("rg",100)("value",null==t.hslaText?null:t.hslaText.s),e.xp6(1),e.Q6J("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel),e.xp6(8),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function SG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAlphaInput(n))}),e.qZA()}if(2&r){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.rgbaText?null:t.rgbaText.a)}}function PG(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function FG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",42)(1,"div",35)(2,"input",43),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onRedInput(n))}),e.qZA(),e.TgZ(3,"input",43),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onGreenInput(n))}),e.qZA(),e.TgZ(4,"input",43),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onBlueInput(n))}),e.qZA(),e.YNc(5,SG,1,2,"input",37),e.qZA(),e.TgZ(6,"div",35)(7,"div"),e._uU(8,"R"),e.qZA(),e.TgZ(9,"div"),e._uU(10,"G"),e.qZA(),e.TgZ(11,"div"),e._uU(12,"B"),e.qZA(),e.YNc(13,PG,2,0,"div",38),e.qZA()()}if(2&r){const t=e.oxw();e.Udp("display",1!==t.format?"none":"block"),e.xp6(2),e.Q6J("rg",255)("value",null==t.rgbaText?null:t.rgbaText.r),e.xp6(1),e.Q6J("rg",255)("value",null==t.rgbaText?null:t.rgbaText.g),e.xp6(1),e.Q6J("rg",255)("value",null==t.rgbaText?null:t.rgbaText.b),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel),e.xp6(8),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function OG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAlphaInput(n))}),e.qZA()}if(2&r){const t=e.oxw(2);e.Q6J("rg",1)("value",t.hexAlpha)}}function LG(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function RG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",44)(1,"div",35)(2,"input",45),e.NdJ("blur",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onHexInput(null))})("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onHexInput(n))}),e.qZA(),e.YNc(3,OG,1,2,"input",37),e.qZA(),e.TgZ(4,"div",35)(5,"div"),e._uU(6,"Hex"),e.qZA(),e.YNc(7,LG,2,0,"div",38),e.qZA()()}if(2&r){const t=e.oxw();e.Udp("display",0!==t.format?"none":"block"),e.ekj("hex-alpha","forced"===t.cpAlphaChannel),e.xp6(2),e.Q6J("value",t.hexText),e.xp6(1),e.Q6J("ngIf","forced"===t.cpAlphaChannel),e.xp6(4),e.Q6J("ngIf","forced"===t.cpAlphaChannel)}}function YG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAlphaInput(n))}),e.qZA()}if(2&r){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function NG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",46)(1,"div",35)(2,"input",36),e.NdJ("keyup.enter",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onAcceptColor(n))})("newValue",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onValueInput(n))}),e.qZA(),e.YNc(3,YG,1,2,"input",37),e.qZA(),e.TgZ(4,"div",35)(5,"div"),e._uU(6,"V"),e.qZA(),e.TgZ(7,"div"),e._uU(8,"A"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(2),e.Q6J("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function UG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",47)(1,"span",48),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onFormatToggle(-1))}),e.qZA(),e.TgZ(2,"span",48),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onFormatToggle(1))}),e.qZA()()}}function zG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"span",55),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(3);return e.KtG(s.onRemovePresetColor(n,o))}),e.qZA()}if(2&r){const t=e.oxw(4);e.Tol(t.cpRemoveColorButtonClass)}}function HG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",53),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.setColorFromString(o))}),e.YNc(1,zG,1,3,"span",54),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(3);e.Udp("background-color",t),e.xp6(1),e.Q6J("ngIf",i.cpAddColorButton)}}function GG(r,a){if(1&r&&(e.TgZ(0,"div"),e.YNc(1,HG,2,3,"div",52),e.qZA()),2&r){const t=e.oxw(2);e.Tol(t.cpPresetColorsClass),e.xp6(1),e.Q6J("ngForOf",t.cpPresetColors)}}function ZG(r,a){if(1&r&&(e.TgZ(0,"div"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2);e.Tol(t.cpPresetEmptyMessageClass),e.xp6(1),e.Oqu(t.cpPresetEmptyMessage)}}function JG(r,a){if(1&r&&(e.TgZ(0,"div",49),e._UZ(1,"hr"),e.TgZ(2,"div",50),e._uU(3),e.qZA(),e.YNc(4,GG,2,4,"div",51),e.YNc(5,ZG,2,4,"div",51),e.qZA()),2&r){const t=e.oxw();e.xp6(3),e.Oqu(t.cpPresetLabel),e.xp6(1),e.Q6J("ngIf",null==t.cpPresetColors?null:t.cpPresetColors.length),e.xp6(1),e.Q6J("ngIf",!(null!=t.cpPresetColors&&t.cpPresetColors.length)&&t.cpAddColorButton)}}function jG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",58),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onCancelColor(n))}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw(2);e.Tol(t.cpCancelButtonClass),e.xp6(1),e.Oqu(t.cpCancelButtonText)}}function VG(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",58),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onAcceptColor(n))}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw(2);e.Tol(t.cpOKButtonClass),e.xp6(1),e.Oqu(t.cpOKButtonText)}}function WG(r,a){if(1&r&&(e.TgZ(0,"div",56),e.YNc(1,jG,2,4,"button",57),e.YNc(2,VG,2,4,"button",57),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.cpCancelButton),e.xp6(1),e.Q6J("ngIf",t.cpOKButton)}}function KG(r,a){1&r&&e.GkF(0)}function qG(r,a){if(1&r&&(e.TgZ(0,"div",59),e.YNc(1,KG,1,0,"ng-container",60),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngTemplateOutlet",t.cpExtraTemplate)}}var kd=function(r){return r[r.HEX=0]="HEX",r[r.RGBA=1]="RGBA",r[r.HSLA=2]="HSLA",r[r.CMYK=3]="CMYK",r}(kd||{});class Cg{constructor(a,t,i,n){this.r=a,this.g=t,this.b=i,this.a=n}}class qE{constructor(a,t,i,n){this.h=a,this.s=t,this.v=i,this.a=n}}class D0{constructor(a,t,i,n){this.h=a,this.s=t,this.l=i,this.a=n}}class xC{constructor(a,t,i,n,o=1){this.c=a,this.m=t,this.y=i,this.k=n,this.a=o}}let eZ=(()=>{class r{constructor(){this.newValue=new e.vpe}inputChange(t){const i=t.target.value;if(void 0===this.rg)this.newValue.emit(i);else{const n=parseFloat(i);this.newValue.emit({v:n,rg:this.rg})}}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275dir=e.lG2({type:r,selectors:[["","text",""]],hostBindings:function(t,i){1&t&&e.NdJ("input",function(o){return i.inputChange(o)})},inputs:{rg:"rg",text:"text"},outputs:{newValue:"newValue"}}),r})(),tZ=(()=>{class r{constructor(t){this.elRef=t,this.dragEnd=new e.vpe,this.dragStart=new e.vpe,this.newValue=new e.vpe,this.listenerMove=i=>this.move(i),this.listenerStop=()=>this.stop()}mouseDown(t){this.start(t)}touchStart(t){this.start(t)}move(t){t.preventDefault(),this.setCursor(t)}start(t){this.setCursor(t),t.stopPropagation(),document.addEventListener("mouseup",this.listenerStop),document.addEventListener("touchend",this.listenerStop),document.addEventListener("mousemove",this.listenerMove),document.addEventListener("touchmove",this.listenerMove),this.dragStart.emit()}stop(){document.removeEventListener("mouseup",this.listenerStop),document.removeEventListener("touchend",this.listenerStop),document.removeEventListener("mousemove",this.listenerMove),document.removeEventListener("touchmove",this.listenerMove),this.dragEnd.emit()}getX(t){const i=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageX?t.pageX:t.touches[0].pageX)-i.left-window.pageXOffset}getY(t){const i=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageY?t.pageY:t.touches[0].pageY)-i.top-window.pageYOffset}setCursor(t){const i=this.elRef.nativeElement.offsetWidth,n=this.elRef.nativeElement.offsetHeight,o=Math.max(0,Math.min(this.getX(t),i)),s=Math.max(0,Math.min(this.getY(t),n));void 0!==this.rgX&&void 0!==this.rgY?this.newValue.emit({s:o/i,v:1-s/n,rgX:this.rgX,rgY:this.rgY}):void 0===this.rgX&&void 0!==this.rgY?this.newValue.emit({v:s/n,rgY:this.rgY}):void 0!==this.rgX&&void 0===this.rgY&&this.newValue.emit({v:o/i,rgX:this.rgX})}}return r.\u0275fac=function(t){return new(t||r)(e.Y36(e.SBq))},r.\u0275dir=e.lG2({type:r,selectors:[["","slider",""]],hostBindings:function(t,i){1&t&&e.NdJ("mousedown",function(o){return i.mouseDown(o)})("touchstart",function(o){return i.touchStart(o)})},inputs:{rgX:"rgX",rgY:"rgY",slider:"slider"},outputs:{dragEnd:"dragEnd",dragStart:"dragStart",newValue:"newValue"}}),r})();class pO{constructor(a,t,i,n){this.h=a,this.s=t,this.v=i,this.a=n}}class gO{constructor(a,t,i,n){this.h=a,this.s=t,this.v=i,this.a=n}}let UQ=(()=>{class r{constructor(){this.active=null}setActive(t){this.active&&this.active!==t&&"inline"!==this.active.cpDialogDisplay&&this.active.closeDialog(),this.active=t}hsva2hsla(t){const i=t.h,n=t.s,o=t.v,s=t.a;if(0===o)return new D0(i,0,0,s);if(0===n&&1===o)return new D0(i,1,1,s);{const c=o*(2-n)/2;return new D0(i,o*n/(1-Math.abs(2*c-1)),c,s)}}hsla2hsva(t){const i=Math.min(t.h,1),n=Math.min(t.s,1),o=Math.min(t.l,1),s=Math.min(t.a,1);if(0===o)return new qE(i,0,0,s);{const c=o+n*(1-Math.abs(2*o-1))/2;return new qE(i,2*(c-o)/c,c,s)}}hsvaToRgba(t){let i,n,o;const s=t.h,c=t.s,g=t.v,B=t.a,O=Math.floor(6*s),ne=6*s-O,we=g*(1-c),$e=g*(1-ne*c),nt=g*(1-(1-ne)*c);switch(O%6){case 0:i=g,n=nt,o=we;break;case 1:i=$e,n=g,o=we;break;case 2:i=we,n=g,o=nt;break;case 3:i=we,n=$e,o=g;break;case 4:i=nt,n=we,o=g;break;case 5:i=g,n=we,o=$e;break;default:i=0,n=0,o=0}return new Cg(i,n,o,B)}cmykToRgb(t){return new Cg((1-t.c)*(1-t.k),(1-t.m)*(1-t.k),(1-t.y)*(1-t.k),t.a)}rgbaToCmyk(t){const i=1-Math.max(t.r,t.g,t.b);return 1===i?new xC(0,0,0,1,t.a):new xC((1-t.r-i)/(1-i),(1-t.g-i)/(1-i),(1-t.b-i)/(1-i),i,t.a)}rgbaToHsva(t){let i,n;const o=Math.min(t.r,1),s=Math.min(t.g,1),c=Math.min(t.b,1),g=Math.min(t.a,1),B=Math.max(o,s,c),O=Math.min(o,s,c),ne=B,we=B-O;if(n=0===B?0:we/B,B===O)i=0;else{switch(B){case o:i=(s-c)/we+(s{class r{constructor(t,i,n,o,s,c){this.ngZone=t,this.elRef=i,this.cdRef=n,this.document=o,this.platformId=s,this.service=c,this.isIE10=!1,this.dialogArrowSize=10,this.dialogArrowOffset=15,this.dialogInputFields=[kd.HEX,kd.RGBA,kd.HSLA,kd.CMYK],this.useRootViewContainer=!1,this.eyeDropperSupported=(0,l.NF)(this.platformId)&&"EyeDropper"in this.document.defaultView}handleEsc(t){this.show&&"popup"===this.cpDialogDisplay&&this.onCancelColor(t)}handleEnter(t){this.show&&"popup"===this.cpDialogDisplay&&this.onAcceptColor(t)}ngOnInit(){this.slider=new pO(0,0,0,0),this.sliderDimMax=new gO(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.format=this.cpCmykEnabled?kd.CMYK:"rgba"===this.cpOutputFormat?kd.RGBA:"hsla"===this.cpOutputFormat?kd.HSLA:kd.HEX,this.listenerMouseDown=n=>{this.onMouseDown(n)},this.listenerResize=()=>{this.onResize()},this.openDialog(this.initialColor,!1)}ngOnDestroy(){this.closeDialog()}ngAfterViewInit(){230===this.cpWidth&&"inline"!==this.cpDialogDisplay||(this.sliderDimMax=new gO(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.updateColorPicker(!1),this.cdRef.detectChanges())}openDialog(t,i=!0){this.service.setActive(this),this.width||(this.cpWidth=this.directiveElementRef.nativeElement.offsetWidth),this.height||(this.height=320),this.setInitialColor(t),this.setColorFromString(t,i),this.openColorPicker()}closeDialog(){this.closeColorPicker()}setupDialog(t,i,n,o,s,c,g,B,O,ne,we,$e,nt,Ft,ei,pi,Di,Ri,Wi,Ki,vn,gn,Vn,tr,pr,go,no,la,Os,So,ur,Cr,oo,Da,Al,GA,pc,id){this.setInitialColor(n),this.setColorMode(B),this.isIE10=10===function $G(){let r="";typeof navigator<"u"&&(r=navigator.userAgent.toLowerCase());const a=r.indexOf("msie ");return a>0&&parseInt(r.substring(a+5,r.indexOf(".",a)),10)}(),this.directiveInstance=t,this.directiveElementRef=i,this.cpDisableInput=$e,this.cpCmykEnabled=O,this.cpAlphaChannel=ne,this.cpOutputFormat=we,this.cpDialogDisplay=c,this.cpIgnoredElements=nt,this.cpSaveClickOutside=Ft,this.cpCloseClickOutside=ei,this.useRootViewContainer=pi,this.width=this.cpWidth=parseInt(o,10),this.height=this.cpHeight=parseInt(s,10),this.cpPosition=Di,this.cpPositionOffset=parseInt(Ri,10),this.cpOKButton=go,this.cpOKButtonText=la,this.cpOKButtonClass=no,this.cpCancelButton=Os,this.cpCancelButtonText=ur,this.cpCancelButtonClass=So,this.cpEyeDropper=GA,this.fallbackColor=g||"#fff",this.setPresetConfig(Ki,vn),this.cpPresetColorsClass=gn,this.cpMaxPresetColorsLength=Vn,this.cpPresetEmptyMessage=tr,this.cpPresetEmptyMessageClass=pr,this.cpAddColorButton=Cr,this.cpAddColorButtonText=Da,this.cpAddColorButtonClass=oo,this.cpRemoveColorButtonClass=Al,this.cpTriggerElement=pc,this.cpExtraTemplate=id,Wi||(this.dialogArrowOffset=0),"inline"===c&&(this.dialogArrowSize=0,this.dialogArrowOffset=0),"hex"===we&&"always"!==ne&&"forced"!==ne&&(this.cpAlphaChannel="disabled")}setColorMode(t){switch(t.toString().toUpperCase()){case"1":case"C":case"COLOR":default:this.cpColorMode=1;break;case"2":case"G":case"GRAYSCALE":this.cpColorMode=2;break;case"3":case"P":case"PRESETS":this.cpColorMode=3}}setInitialColor(t){this.initialColor=t}setPresetConfig(t,i){this.cpPresetLabel=t,this.cpPresetColors=i}setColorFromString(t,i=!0,n=!0){let o;"always"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel?(o=this.service.stringToHsva(t,!0),!o&&!this.hsva&&(o=this.service.stringToHsva(t,!1))):o=this.service.stringToHsva(t,!1),!o&&!this.hsva&&(o=this.service.stringToHsva(this.fallbackColor,!1)),o&&(this.hsva=o,this.sliderH=this.hsva.h,"hex"===this.cpOutputFormat&&"disabled"===this.cpAlphaChannel&&(this.hsva.a=1),this.updateColorPicker(i,n))}onResize(){"fixed"===this.position?this.setDialogPosition():"inline"!==this.cpDialogDisplay&&this.closeColorPicker()}onDragEnd(t){this.directiveInstance.sliderDragEnd({slider:t,color:this.outputColor})}onDragStart(t){this.directiveInstance.sliderDragStart({slider:t,color:this.outputColor})}onMouseDown(t){this.show&&!this.isIE10&&"popup"===this.cpDialogDisplay&&t.target!==this.directiveElementRef.nativeElement&&!this.isDescendant(this.elRef.nativeElement,t.target)&&!this.isDescendant(this.directiveElementRef.nativeElement,t.target)&&0===this.cpIgnoredElements.filter(i=>i===t.target).length&&this.ngZone.run(()=>{this.cpSaveClickOutside?this.directiveInstance.colorSelected(this.outputColor):(this.hsva=null,this.setColorFromString(this.initialColor,!1),this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor),this.directiveInstance.colorCanceled()),this.cpCloseClickOutside&&this.closeColorPicker()})}onAcceptColor(t){t.stopPropagation(),this.outputColor&&this.directiveInstance.colorSelected(this.outputColor),"popup"===this.cpDialogDisplay&&this.closeColorPicker()}onCancelColor(t){this.hsva=null,t.stopPropagation(),this.directiveInstance.colorCanceled(),this.setColorFromString(this.initialColor,!0),"popup"===this.cpDialogDisplay&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor,!0),this.closeColorPicker())}onEyeDropper(){this.eyeDropperSupported&&(new window.EyeDropper).open().then(i=>{this.setColorFromString(i.sRGBHex,!0)})}onFormatToggle(t){const i=this.dialogInputFields.length-(this.cpCmykEnabled?0:1),n=((this.dialogInputFields.indexOf(this.format)+t)%i+i)%i;this.format=this.dialogInputFields[n]}onColorChange(t){this.hsva.s=t.s/t.rgX,this.hsva.v=t.v/t.rgY,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"lightness",value:this.hsva.v,color:this.outputColor}),this.directiveInstance.sliderChanged({slider:"saturation",value:this.hsva.s,color:this.outputColor})}onHueChange(t){this.hsva.h=t.v/t.rgX,this.sliderH=this.hsva.h,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"hue",value:this.hsva.h,color:this.outputColor})}onValueChange(t){this.hsva.v=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"value",value:this.hsva.v,color:this.outputColor})}onAlphaChange(t){this.hsva.a=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"alpha",value:this.hsva.a,color:this.outputColor})}onHexInput(t){if(null===t)this.updateColorPicker();else{t&&"#"!==t[0]&&(t="#"+t);let i=/^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;"always"===this.cpAlphaChannel&&(i=/^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi);const n=i.test(t);n&&(t.length<5&&(t="#"+t.substring(1).split("").map(o=>o+o).join("")),"forced"===this.cpAlphaChannel&&(t+=Math.round(255*this.hsva.a).toString(16)),this.setColorFromString(t,!0,!1)),this.directiveInstance.inputChanged({input:"hex",valid:n,value:t,color:this.outputColor})}}onRedInput(t){const i=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(i.r=t.v/t.rg,this.hsva=this.service.rgbaToHsva(i),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"red",valid:n,value:i.r,color:this.outputColor})}onBlueInput(t){const i=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(i.b=t.v/t.rg,this.hsva=this.service.rgbaToHsva(i),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"blue",valid:n,value:i.b,color:this.outputColor})}onGreenInput(t){const i=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(i.g=t.v/t.rg,this.hsva=this.service.rgbaToHsva(i),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"green",valid:n,value:i.g,color:this.outputColor})}onHueInput(t){const i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(this.hsva.h=t.v/t.rg,this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"hue",valid:i,value:this.hsva.h,color:this.outputColor})}onValueInput(t){const i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(this.hsva.v=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"value",valid:i,value:this.hsva.v,color:this.outputColor})}onAlphaInput(t){const i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(this.hsva.a=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"alpha",valid:i,value:this.hsva.a,color:this.outputColor})}onLightnessInput(t){const i=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(i.l=t.v/t.rg,this.hsva=this.service.hsla2hsva(i),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"lightness",valid:n,value:i.l,color:this.outputColor})}onSaturationInput(t){const i=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(i.s=t.v/t.rg,this.hsva=this.service.hsla2hsva(i),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"saturation",valid:n,value:i.s,color:this.outputColor})}onCyanInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.c=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"cyan",valid:!0,value:this.cmyk.c,color:this.outputColor})}onMagentaInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.m=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"magenta",valid:!0,value:this.cmyk.m,color:this.outputColor})}onYellowInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.y=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"yellow",valid:!0,value:this.cmyk.y,color:this.outputColor})}onBlackInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.k=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"black",valid:!0,value:this.cmyk.k,color:this.outputColor})}onAddPresetColor(t,i){t.stopPropagation(),this.cpPresetColors.filter(n=>n===i).length||(this.cpPresetColors=this.cpPresetColors.concat(i),this.directiveInstance.presetColorsChanged(this.cpPresetColors))}onRemovePresetColor(t,i){t.stopPropagation(),this.cpPresetColors=this.cpPresetColors.filter(n=>n!==i),this.directiveInstance.presetColorsChanged(this.cpPresetColors)}openColorPicker(){this.show||(this.show=!0,this.hidden=!0,setTimeout(()=>{this.hidden=!1,this.setDialogPosition(),this.cdRef.detectChanges()},0),this.directiveInstance.stateChanged(!0),this.isIE10||this.ngZone.runOutsideAngular(()=>{fO?document.addEventListener("touchstart",this.listenerMouseDown):document.addEventListener("mousedown",this.listenerMouseDown)}),window.addEventListener("resize",this.listenerResize))}closeColorPicker(){this.show&&(this.show=!1,this.directiveInstance.stateChanged(!1),this.isIE10||(fO?document.removeEventListener("touchstart",this.listenerMouseDown):document.removeEventListener("mousedown",this.listenerMouseDown)),window.removeEventListener("resize",this.listenerResize),this.cdRef.destroyed||this.cdRef.detectChanges())}updateColorPicker(t=!0,i=!0,n=!1){if(this.sliderDimMax){let o,s,c;2===this.cpColorMode&&(this.hsva.s=0);const g=this.outputColor;if(s=this.service.hsva2hsla(this.hsva),this.cpCmykEnabled?(n?(c=this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk)),this.hsva=this.service.rgbaToHsva(c)):(c=this.service.hsvaToRgba(this.hsva),this.cmyk=this.service.denormalizeCMYK(this.service.rgbaToCmyk(c))),c=this.service.denormalizeRGBA(c),this.sliderH=this.hsva.h):c=this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva)),o=this.service.denormalizeRGBA(this.service.hsvaToRgba(new qE(this.sliderH||this.hsva.h,1,1,1))),i&&(this.hslaText=new D0(Math.round(360*s.h),Math.round(100*s.s),Math.round(100*s.l),Math.round(100*s.a)/100),this.rgbaText=new Cg(c.r,c.g,c.b,Math.round(100*c.a)/100),this.cpCmykEnabled&&(this.cmykText=new xC(this.cmyk.c,this.cmyk.m,this.cmyk.y,this.cmyk.k,Math.round(100*this.cmyk.a)/100)),this.hexText=this.service.rgbaToHex(c,"always"===this.cpAlphaChannel),this.hexAlpha=this.rgbaText.a),"auto"===this.cpOutputFormat&&this.format!==kd.RGBA&&this.format!==kd.CMYK&&this.format!==kd.HSLA&&this.hsva.a<1&&(this.format=this.hsva.a<1?kd.RGBA:kd.HEX),this.hueSliderColor="rgb("+o.r+","+o.g+","+o.b+")",this.alphaSliderColor="rgb("+c.r+","+c.g+","+c.b+")",this.outputColor=this.service.outputFormat(this.hsva,this.cpOutputFormat,this.cpAlphaChannel),this.selectedColor=this.service.outputFormat(this.hsva,"rgba",null),this.format!==kd.CMYK)this.cmykColor="";else if("always"===this.cpAlphaChannel||"enabled"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel){const B=Math.round(100*this.cmyk.a)/100;this.cmykColor=`cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${B})`}else this.cmykColor=`cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;this.slider=new pO((this.sliderH||this.hsva.h)*this.sliderDimMax.h-8,this.hsva.s*this.sliderDimMax.s-8,(1-this.hsva.v)*this.sliderDimMax.v-8,this.hsva.a*this.sliderDimMax.a-8),t&&g!==this.outputColor&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.outputColor))}}setDialogPosition(){if("inline"===this.cpDialogDisplay)this.position="relative";else{let n,t="static",i="",o=null,s=null,c=this.directiveElementRef.nativeElement.parentNode;const g=this.dialogElement.nativeElement.offsetHeight;for(;null!==c&&"HTML"!==c.tagName;){if(n=window.getComputedStyle(c),t=n.getPropertyValue("position"),i=n.getPropertyValue("transform"),"static"!==t&&null===o&&(o=c),i&&"none"!==i&&null===s&&(s=c),"fixed"===t){o=s;break}c=c.parentNode}const B=this.createDialogBox(this.directiveElementRef.nativeElement,"fixed"!==t);if(this.useRootViewContainer||"fixed"===t&&(!o||o instanceof HTMLUnknownElement))this.top=B.top,this.left=B.left;else{null===o&&(o=c);const ne=this.createDialogBox(o,"fixed"!==t);this.top=B.top-ne.top,this.left=B.left-ne.left}"fixed"===t&&(this.position="fixed");let O=this.cpPosition;"auto"===this.cpPosition&&(O=function XG(r,a){let t="right",i="bottom";const{height:n,width:o}=r,{top:s,left:c}=a,g=s+a.height,B=c+a.width,O=s-n<0,ne=g+n>(window.innerHeight||document.documentElement.clientHeight),we=c-o<0,$e=B+o>(window.innerWidth||document.documentElement.clientWidth);return ne&&(i="top"),O&&(i="bottom"),we&&(t="right"),$e&&(t="left"),O&&ne&&we&&$e?["left","right","top","bottom"].reduce((ei,pi)=>r[ei]>r[pi]?ei:pi):we&&$e?O?"bottom":ne||s>g?"top":"bottom":O&&ne?we?"right":$e||c>B?"left":"right":`${i}-${t}`}(this.dialogElement.nativeElement.getBoundingClientRect(),this.cpTriggerElement.nativeElement.getBoundingClientRect())),"top"===O?(this.arrowTop=g-1,this.top-=g+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*B.width-this.dialogArrowOffset):"bottom"===O?(this.top+=B.height+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*B.width-this.dialogArrowOffset):"top-left"===O||"left-top"===O?(this.top-=g-B.height+B.height*this.cpPositionOffset/100,this.left-=this.cpWidth+this.dialogArrowSize-2-this.dialogArrowOffset):"top-right"===O||"right-top"===O?(this.top-=g-B.height+B.height*this.cpPositionOffset/100,this.left+=B.width+this.dialogArrowSize-2-this.dialogArrowOffset):"left"===O||"bottom-left"===O||"left-bottom"===O?(this.top+=B.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left-=this.cpWidth+this.dialogArrowSize-2):(this.top+=B.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left+=B.width+this.dialogArrowSize-2),this.cpUsePosition=O}}isDescendant(t,i){let n=i.parentNode;for(;null!==n;){if(n===t)return!0;n=n.parentNode}return!1}createDialogBox(t,i){const{top:n,left:o}=t.getBoundingClientRect();return{top:n+(i?window.pageYOffset:0),left:o+(i?window.pageXOffset:0),width:t.offsetWidth,height:t.offsetHeight}}}return r.\u0275fac=function(t){return new(t||r)(e.Y36(e.R0b),e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(l.K0),e.Y36(e.Lbi),e.Y36(UQ))},r.\u0275cmp=e.Xpm({type:r,selectors:[["color-picker"]],viewQuery:function(t,i){if(1&t&&(e.Gf(vG,7),e.Gf(yG,7),e.Gf(wG,7)),2&t){let n;e.iGM(n=e.CRH())&&(i.dialogElement=n.first),e.iGM(n=e.CRH())&&(i.hueSlider=n.first),e.iGM(n=e.CRH())&&(i.alphaSlider=n.first)}},hostBindings:function(t,i){1&t&&e.NdJ("keyup.esc",function(o){return i.handleEsc(o)},!1,e.evT)("keyup.enter",function(o){return i.handleEnter(o)},!1,e.evT)},decls:30,vars:51,consts:[[1,"color-picker",3,"click"],["dialogPopup",""],[3,"class","top",4,"ngIf"],["class","saturation-lightness",3,"slider","rgX","rgY","background-color","newValue","dragStart","dragEnd",4,"ngIf"],[1,"hue-alpha","box"],[1,"left"],[1,"selected-color-background"],[1,"selected-color",3,"click"],["class","eyedropper-icon","xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",4,"ngIf"],["type","button",3,"class","disabled","click",4,"ngIf"],[1,"right"],["style","height: 16px;",4,"ngIf"],[1,"hue",3,"slider","rgX","newValue","dragStart","dragEnd"],["hueSlider",""],[1,"cursor"],[1,"value",3,"slider","rgX","newValue","dragStart","dragEnd"],["valueSlider",""],[1,"alpha",3,"slider","rgX","newValue","dragStart","dragEnd"],["alphaSlider",""],["class","cmyk-text",3,"display",4,"ngIf"],["class","hsla-text",3,"display",4,"ngIf"],["class","rgba-text",3,"display",4,"ngIf"],["class","hex-text",3,"hex-alpha","display",4,"ngIf"],["class","value-text",4,"ngIf"],["class","type-policy",4,"ngIf"],["class","preset-area",4,"ngIf"],["class","button-area",4,"ngIf"],["class","extra-template",4,"ngIf"],[1,"saturation-lightness",3,"slider","rgX","rgY","newValue","dragStart","dragEnd"],["xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",1,"eyedropper-icon"],["d","M0 0h24v24H0V0z","fill","none"],["d","M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"],["type","button",3,"disabled","click"],[2,"height","16px"],[1,"cmyk-text"],[1,"box"],["type","number","pattern","[0-9]*","min","0","max","100",3,"text","rg","value","keyup.enter","newValue"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue",4,"ngIf"],[4,"ngIf"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue"],[1,"hsla-text"],["type","number","pattern","[0-9]*","min","0","max","360",3,"text","rg","value","keyup.enter","newValue"],[1,"rgba-text"],["type","number","pattern","[0-9]*","min","0","max","255",3,"text","rg","value","keyup.enter","newValue"],[1,"hex-text"],[3,"text","value","blur","keyup.enter","newValue"],[1,"value-text"],[1,"type-policy"],[1,"type-policy-arrow",3,"click"],[1,"preset-area"],[1,"preset-label"],[3,"class",4,"ngIf"],["class","preset-color",3,"backgroundColor","click",4,"ngFor","ngForOf"],[1,"preset-color",3,"click"],[3,"class","click",4,"ngIf"],[3,"click"],[1,"button-area"],["type","button",3,"class","click",4,"ngIf"],["type","button",3,"click"],[1,"extra-template"],[4,"ngTemplateOutlet"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0,1),e.NdJ("click",function(o){return o.stopPropagation()}),e.YNc(2,CG,1,5,"div",2),e.YNc(3,bG,2,8,"div",3),e.TgZ(4,"div",4)(5,"div",5),e._UZ(6,"div",6),e.TgZ(7,"div",7),e.NdJ("click",function(){return i.eyeDropperSupported&&i.cpEyeDropper&&i.onEyeDropper()}),e.YNc(8,xG,3,0,"svg",8),e.qZA(),e.YNc(9,BG,2,5,"button",9),e.qZA(),e.TgZ(10,"div",10),e.YNc(11,EG,1,0,"div",11),e.TgZ(12,"div",12,13),e.NdJ("newValue",function(o){return i.onHueChange(o)})("dragStart",function(){return i.onDragStart("hue")})("dragEnd",function(){return i.onDragEnd("hue")}),e._UZ(14,"div",14),e.qZA(),e.TgZ(15,"div",15,16),e.NdJ("newValue",function(o){return i.onValueChange(o)})("dragStart",function(){return i.onDragStart("value")})("dragEnd",function(){return i.onDragEnd("value")}),e._UZ(17,"div",14),e.qZA(),e.TgZ(18,"div",17,18),e.NdJ("newValue",function(o){return i.onAlphaChange(o)})("dragStart",function(){return i.onDragStart("alpha")})("dragEnd",function(){return i.onDragEnd("alpha")}),e._UZ(20,"div",14),e.qZA()()(),e.YNc(21,TG,17,12,"div",19),e.YNc(22,QG,14,10,"div",20),e.YNc(23,FG,14,10,"div",21),e.YNc(24,RG,8,7,"div",22),e.YNc(25,NG,9,3,"div",23),e.YNc(26,UG,3,0,"div",24),e.YNc(27,JG,6,3,"div",25),e.YNc(28,WG,3,2,"div",26),e.YNc(29,qG,2,1,"div",27),e.qZA()),2&t&&(e.Udp("display",i.show?"block":"none")("visibility",i.hidden?"hidden":"visible")("top",i.top,"px")("left",i.left,"px")("position",i.position)("height",i.cpHeight,"px")("width",i.cpWidth,"px"),e.ekj("open",i.show),e.xp6(2),e.Q6J("ngIf","popup"===i.cpDialogDisplay),e.xp6(1),e.Q6J("ngIf",1===(i.cpColorMode||1)),e.xp6(4),e.Udp("background-color",i.selectedColor)("cursor",i.eyeDropperSupported&&i.cpEyeDropper?"pointer":null),e.xp6(1),e.Q6J("ngIf",i.eyeDropperSupported&&i.cpEyeDropper),e.xp6(1),e.Q6J("ngIf",i.cpAddColorButton),e.xp6(2),e.Q6J("ngIf","disabled"===i.cpAlphaChannel),e.xp6(1),e.Udp("display",1===(i.cpColorMode||1)?"block":"none"),e.Q6J("rgX",1),e.xp6(2),e.Udp("left",null==i.slider?null:i.slider.h,"px"),e.xp6(1),e.Udp("display",2===(i.cpColorMode||1)?"block":"none"),e.Q6J("rgX",1),e.xp6(2),e.Udp("right",null==i.slider?null:i.slider.v,"px"),e.xp6(1),e.Udp("display","disabled"===i.cpAlphaChannel?"none":"block")("background-color",i.alphaSliderColor),e.Q6J("rgX",1),e.xp6(2),e.Udp("left",null==i.slider?null:i.slider.a,"px"),e.xp6(1),e.Q6J("ngIf",!i.cpDisableInput&&1===(i.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!i.cpDisableInput&&1===(i.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!i.cpDisableInput&&1===(i.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!i.cpDisableInput&&1===(i.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!i.cpDisableInput&&2===(i.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!i.cpDisableInput&&1===(i.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",(null==i.cpPresetColors?null:i.cpPresetColors.length)||i.cpAddColorButton),e.xp6(1),e.Q6J("ngIf",i.cpOKButton||i.cpCancelButton),e.xp6(1),e.Q6J("ngIf",i.cpExtraTemplate))},dependencies:[l.sg,l.O5,l.tP,eZ,tZ],styles:['.color-picker{position:absolute;z-index:1000;width:230px;height:auto;border:#777 solid 1px;cursor:default;-webkit-user-select:none;user-select:none;background-color:#fff}.color-picker *{box-sizing:border-box;margin:0;font-size:11px}.color-picker input{width:0;height:26px;min-width:0;font-size:13px;text-align:center;color:#000}.color-picker input:invalid,.color-picker input:-moz-ui-invalid,.color-picker input:-moz-submit-invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.color-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.color-picker .arrow.arrow-top{left:8px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-bottom{top:-20px;left:8px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.color-picker .arrow.arrow-top-left,.color-picker .arrow.arrow-left-top{right:-21px;bottom:8px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-top-right,.color-picker .arrow.arrow-right-top{bottom:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom,.color-picker .arrow.arrow-bottom-left{top:8px;right:-21px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom,.color-picker .arrow.arrow-bottom-right{top:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .cursor{position:relative;width:16px;height:16px;border:#222 solid 2px;border-radius:50%;cursor:default}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{position:relative;padding:16px 8px}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{overflow:hidden;width:100%;padding:4px;font-size:11px;white-space:nowrap;text-align:left;text-overflow:ellipsis;color:#555}.color-picker .preset-area .preset-color{position:relative;display:inline-block;width:18px;height:18px;margin:4px 6px 8px;border:#a9a9a9 solid 1px;border-radius:25%;cursor:pointer}.color-picker .preset-area .preset-empty-message{min-height:18px;margin-top:4px;margin-bottom:8px;font-style:italic;text-align:center}.color-picker .hex-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{float:left;flex:1 1 auto;text-align:center;color:#555;clear:left}.color-picker .hex-text .box input{flex:1 1 auto;padding:1px;border:#a9a9a9 solid 1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{flex:1 1 auto;margin-right:8px;text-align:center;color:#555}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{float:left;flex:1;padding:1px;margin:0 8px 0 0;border:#a9a9a9 solid 1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{direction:ltr;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC)}.color-picker .value{direction:rtl;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=)}.color-picker .alpha{direction:ltr;width:100%;height:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==)}.color-picker .type-policy{position:absolute;top:218px;right:12px;width:16px;height:24px;background-size:8px 16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:center}.color-picker .type-policy .type-policy-arrow{display:block;width:100%;height:50%}.color-picker .selected-color{position:absolute;top:16px;left:8px;width:40px;height:40px;border:1px solid #a9a9a9;border-radius:50%}.color-picker .selected-color-background{width:40px;height:40px;border-radius:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC)}.color-picker .saturation-lightness{direction:ltr;width:100%;height:130px;border:none;cursor:pointer;touch-action:manipulation;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOYAAACCCAYAAABSD7T3AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwksPWR6lgAAIABJREFUeNrtnVuT47gRrAHN+P//Or/61Y5wONZ7mZ1u3XAeLMjJZGZVgdKsfc5xR3S0RIIUW+CHzCpc2McYo7XGv3ex7UiZd57rjyzzv+v+33X/R/+3r/f7vR386Y+TvKNcf/wdhTLPcv9qU2wZd74uth0t1821jkIZLPcsI/6nWa4XvutquU0Z85mnx80S/ZzgpnLnOtHNt7/ofx1TKXcSNzN/7qbMQ3ju7rNQmMYYd/4s2j9aa+P+gGaMcZrb1M/tdrvf7/d2v99P9/t93O/3cbvdxu12G9frdVwul3E+n8c///nP+2+//Xb66aefxl//+tfx5z//2YK5Al2rgvf4UsbpdGrB52bAvArXpuzjmiqAVSGz5eDmGYXzhbAZmCrnmzddpUU+8Y1dAOYeXCtDUwVwV7YCGH6uAmyMcZ9l5vkUaBPGMUZ7/J5w/792/fvv9Xq93263dr/fTxPECeME8nK5jM/Pz/HTTz/dv337dvrll1/GP/7xj/G3v/1t/OUvfwkVswongjdOp9PzH3U3D3zmWGnZVXn4jCqs7wC2BKP4/8tAzkZsoWx6XrqeHZymvp4ABCBJhTQwKfDT8gzrZCIqi5AhiACjBfEB2rP8/X63MM7f6/V6v9/v7Xa7bYC83W7jcrlsVHIq5ffv30+//fbb+OWXX8ZPP/00/v73v4+ff/75JSvbeu+bL2WMMaFbAlpBNM85QX+ct6qoSqkPAwuQlBVKqGNFSUOAA3Bmu7gC5hNOd15nSwvAOUW7C4giUCV8Sgn5L9hNFIqTsp0GxI0ysioyjAjkY/tGJVEpz+fz+OWXX+7fv38//f777+Pbt2/j119/HT///PP49ddfx8fHRwrmTjV779EXu2px2xhjwtdJZQcAWQIPLPISsMJaSwiD8gzIKrwSyATE5j5nAbR5c1dBUwBlsEWW0h6LqiYsqFPAQxCyRZ3wOSARxmlXMX5k64pQfvv27f75+dk+Pj5OHx8f4/v37+Pbt2/jt99+G9++fRsfHx/jcrmUFLO31gYDWblxRIs/TqfT7ousxJsAxXA2Gc7TA9XdgfdoHbFsj76X2+1WArgI1ageGwA3qupqoHsmcbI6Fu93quggFa9d7LeDtgKfAFHBJ+NEByIkcJ5KervdTmhhGcgJJSZ5vn//fj+fz+18Pp8+Pz/H5+fnmGD+/vvv4/v37+Pj42N8fn6O2+1Ws7JjjP6wraMI5E4RZ8x2vV5TSwkquotV7/d7Tz6HFWsD/qNcdw0CQ3q/321c686TwDVIdbuy73zNldhSHb8I2klZznm+InBS4U6n0302aBFsLhHDAKJVJVglfI9jhvu53W53sLANYNxAiDA6MCeUHx8f9+v12i6XS7tcLqcZW57P5yeY8/fz83Ocz+fnsSmYUyknWEG85WBst9stzSLyMdfr9Qi08iY15UZ0LlDGLhR3o5zK2j7OPUTD0E+nU3tk7Xb/16NFbhloAMuY1zjLUOO3BKeIDe+Z8s3/J4gFo4TM5jPmuRg28foUKKVSwo16TgA5npywcWLHgYl/Pz8/73/605/ab7/91m63W7tcLie0sZj4mao5gTyfz88E0f1+j8EcYzwTPEG2cqjyfHNF0M8fuqEiaOVnRzZZQNh5fwQyHg/HDGfJo89Q1zb/quu5XC6773I2XKfTqd/v9+d3wuqWva/YTdUdEV3fhIv/Viyps6YE3x3r43K5bJQS66zaxVGFsvd+//j4aF+/fm3fv39vt9utff36tf3+++/tdrudvn37ZuNLBaaCMgUzC+rZRiFowxUuJI8YMqcCp9Opq5vagaYU6lGJA1XQqejchw6Cj0Gw5nYBrGw01A2O206n04BGouNNyTfp/FwElhUey6nXrIKw7QQWddxuN2ldL5fL839gSPF8ahu/JvBO48CPSuqMf8Vp9/P53L58+dLu93s7n8/tfr8/39/v9/b5+TkhPJ3P56mQ436/j+/fv+/iSgbzer0+AZx/5+88bv6OMda6S5z6kd21fYC9dxv7cIJJ2d9AOS30fPMzyHiTM8B4DF6XUlYHp4KQW3W+1t77MNB1vGHxWq7Xa7vf78+y5/N5A+H1et29xuP5dbYtyaRu4AksbPq6936fjRzXRxBbPr/b+b18+fKljTHaBBBfn8/n0/1+H1++fBnn8zm0sB8fH5u4cr5GuBhMVk0EEn9RsctgVhM+ixlJtMA23R8B6yysAstBOgFXIKKCMIgToMqNEu2fYMH7ztc732dQKkCj1ytAZtY0Kx8pIr8GGJ+AT3V+2Hirhl++fBmXy2Wz73w+b17P8p+fn8/tUwGVleVkTyUb68DkfayWY4zxNRihU4EpLJPZVrK+u7J4/mgfKqeLW9X2REWlItL1diynbDDb3+jXgYjQqn0rrxWc+NkILP7F7xIbMvx7vV53x40xnlbWJF12ZSag/N0pW6t+ZzmOMzHjajKwDfond78zYTdfq18up97zr2q8v3IioBprRtBl0EZ9og5WBRGOdOHjIjXF7UotFbgOWnXzIJyzYvjG5IYgsmMOxHkz8OsMSrVNWeq5T8DaOcbEv1Od5rbs9aO7YvMet63EkF++fMExq+MRl4/L5bLZN/+ez+fnZ6KazuMqXSQVO5spJXflHAIzes/xJseckRJiDMog9d6VfRrqXMr6KpVV27jRwJacGovOAM1zMdQMnwK1AubK63kdCChvI1C7g0z9nf/D+Xze2Vj8H7Gx4P9duQlsYCrqyN8XqG3Hm/10Oj3jw/n+crlstuM+jPmmxT2dTuPz83Pzt2pn1XsEHX/bnPaVqVmh0xwOt0o6XLLAHePUU203wHfcrspCwmV3TryB5s0Mseeg97x/BwzCjBlbB+pRAPla0BVQuT6V6QHdBlj3d0KG147b+DqxQeUymDO43W4dQar+TIjwmAd0z8/h65vf0/yLv3Pb5XLpru/ydDo9s7ET0I+Pj6dKK9VUEIeKWQWPAOrJ8LKd4vE+t91Y3e7UFlWatg2VwJnb+HPmtvm/sfK59/OaWF3x/eP1UPHvA5DDYDpYXfb0drv1V2DkBkxtw/tEWVVlXWdC9pFYs5/jfh9dS/16vW7s6lTG+TfqsxSJHxkXXq/Xdr1eu4LsfD6P3vsT3N77DkL+zPm5jSdKL4zR3AxQd6rHkLkYlSowsrq7znzu6wSwdsMJOXmA5fBcjxtgMGBYHlr5zokhtsMCTgXLQOW4XC6dEyEMprL8mAQzXRgduix2yZzorxkYsDn3hB1VeMLGsXsVtgl2pW8S3svk0vw7R4hNaHvv4cACl5HFzwIH0Kc6zu4XjDPR/jpAVxWzO1Xk2DDb3vTcxeGU1iWZHkmIDWziWKvirCJ4Dravs6IJ/GG6cTqWdXDy+fArQDVVkLqkVjAoZIITdmmIqXwqa95N3+MGYoZQdRVNO53Y1xRkhO16vY7eu507Ca9lJnbGpxOemQhSw/AQsmmp5zU9BiU8G6wvX76M6/U6Pj4+do0Bz4CpgiknTUeDqwlKBmg3u4OVjrZ1A+rAcgaejWq6eJCvCYFDONSwOgHX4EQRw8lxbzDOdEK6gZ3Hk1b+8g2o1JFtKXyv/fEdTXuWjWXdAZiBp6ADeDrCFiim7B6ZFneeI7Gvm/PMkUDX67W7xI8b0D7/v8dA9qfN5oaCf74WZjH0mf1cmfY1Y0JUFmVrTWu8uzkNcLtEj7u5FXBTkfC6GOA5q8YMxO8KVvF6sAVGdcrUbsKODcQKkLMOMdmlxum642YrPm26AlhZW1YB1R+rrGswE8TaYAWeUMxdf+WjwSvZ2Ef3ytOyfn5+PpVPAaqOn43MtNBqvmjjxbjM4lZjZY4gqNMI5ktaW/sYKNwS+9lFQzGihmMCKPa7+Z0V6Eb0GRmobtpX8JljWu5FMLN5ja6hG9kwQgZqf5+1NH5UxzkFReCdWhJ8XdlGUkxO7HRlYRm4mVO43W7ter12TPJEw/rmEN3L5SKHIWZg9mz+pUoKOYq5bJTJdX2gme1UcxMZQFaEQIlHct32M+Y1BzGkGuzfiyAN9z+ugplZ1symCrDCYYkGxDTpI9RzBy0rHyeDUC1nWaeUaD9n4xkNyYMBDZtzZ3B++fJlY21XFDOcARJlabOyiS3uCpLI9jrZjCDkaVvcCCjwognKShWdzXZWlZMvVTgD8LpqlCLrqgbcB+qYwrgKYpT0ccCqbKyCValkEabn/FynogCrPKfqf51xJ7sGB2ZXcZmxoSOztjx300DZi7a0/2AIR0UlBag9SuDw6KcAzlaB7vHZvWpjK90dyrq6bKyDUZQbR0B05biLQkHIcSUmgIK+SwuqgHCnoio2RQU1yj+BnBy9pphVKLGyC7ZzFK1pxWK+E8IhVCWLN/uLtnUU4ayoYLoaANz8FdtaSvY4pV0BEW2ls61czqllBKpTyKgMAhrZ1cdc1RROtPmvWNkdcKZ7ZKxaWjiPLJMpp7OZKxA+rqG/oJLjxf0pnJlqLoDZo3gyU0mKGys2taKecj/d1C+rJSplBqlTyAqgR+D8KjKlmRL2gtUcAdCtsL+ijCNT1oqqqkH2OHEbG5sDFnUg5Aa+yLou2VU1ptj1S2ZQqv1ORZN9IWzRfgaRBxKoBE8UWyqlJFtrIc0AxNjSjed99CTY/XDfSzCz5M0IZoVEsWnPFNTsl8ooVC1TzbGgqFZNDSgVwKK+1sGDMKqxZCWGVMDysiEr1jVSQJUYwj5iHOlThdHt44SQg9CN+nl8D90NMIgAdgr46JqRiR9I8vRdFvbr17m/yxUMKjNLMiVUADwu2CWGhhi+F55TWM9M9cogzms1dnM4uOF/LAEYWdcqnM7yFmyq3IfwmOROd7Y1iFWtOjoY8To41mTV5IysgFFuRzsbWFGbNIIJCDv1dOo4lZG7jWBwRFtVTKuWyeCByJKOan8oZ3ep9XddNl0tDuaywLz9cXPYeDAA0SpkBO9sbVcTOVWldPv4uyzEkzxHtjvonHoSkFEWNoo1d8DhcQputd2ppNon4BzoAiJ1hBFQg0dVtdbGHHDQWushmNEQukLM2QO1G2Y8bgTXqFhcBJj7EjPgcPts8US8qPpPB/dXznOh5Z438tzH5ec6QgrOKrRRfKmysBmUDB+PhYabMlVPER+GCSITTzr7am2tArH3bgcEzPJm+cr5jJ4NnHNFDVrFXcI5Le9k5Jnw+bedbV+FfRzZIHaOOaOsLY0/7UGs58DjrGwKMIMFIGzOEW1/jGsdAtCN6hEAI4hBe9YXeRROBSVPAVPAqvIM5bx5hVKWAMP6zBRy3iescridVdFBinBxXDnG2GRY2XbCvp1lhvGtO9Bxu5h908XQu42lnSArMFdizMim8uwRCxPGnnOS8lwpnbOiDqTAjsrRN/PcoAScCbaACqVM40ylnjjTBs+bwWlAG23/UKbdkiwKWIQPGzWaczpoSlxPEj822cNWkpS7FyzsDrqpfgpG3jahw2vgbaSQAxuLWZYt7JzyNe8JoZpNAcvDFOdw0wqYT9AK1rZz/DdbSlLPp0ryIxgQJlK9AZlEq7IOXpohg9PIhrCng88JsOxiV4ZWAYfg4sikx/8ky2Z9l862uqwrfscIH8+ugTmVGyiddeVYUgEMn4GZzg14EwIsh9sx2cKKiWXReuOE5gzGOQgdlRKVVdlevqb279Xq0Qnsts2VDaBO0coezsruWtHApu6sKG4IBhN0aGU2kLrMKGRTN3HmbCDwKV14zvkMEDG4QfZVspVlaNU2mhc5TEZ3N1h/zqTheuLpW05ZWTGVjb3dbnNmxKZBnN8JqidaVLKAOyARNLS+MB54Z2+VaqoMLKroVBlngefnTPAcoHNWCSvlfA8CI0HEmBNBnBlXyMrzU7A7WVm94PPqQ2gmqKx+WDGsnvilmcSOBJqOK1nYyAIzuAyesq3UdSK3KfWcYKD95HmfYOU3qser2CtYEUA+FpfqdNvgPBZUBhDrGONRVlQsh8rLcaUCykHG0OOUwTlLBrsh5soEMGezi1E4HRVt1icp5wZEFXdibCkG8Y8vX75sbO4E0iom9z+hjSiOfy3DhpXItpVhE+UGQdvoWjtChmrGHf4YAzKgBNnGtuJxFCeGdhUAfQLLK8kBYAP6gvFJZajMG3Xkycy8KuC0q4Eyymwtwdxdv2M0mIBtK0LKnf640j00Auq4gUkdWGlhs22qJc6dZCsL19oxnlTJG4SYVRIGpD8TPFBuM6OElbS1pldid4mGAyN6ZIupbC5bXJN9fdpbThSxLUaI8IG1XIYBxW3Tjs6KQosKcxfxcQmdnwRGM10GnFcCy2XYunLMyAkdgk4mePiczsLygthcBut6goOqS7YVFXADLjaosB6s6ofcZWAZSIRYqSUkizYwttYab3vUOQ9w2HRxIIg8WwRVeE68xi4UtL3zRphxplzwuZrcqYCq1I3jPI5dnJIygEohMbPqVJSzrwzxBJTs5zN+ReUSgxikPQVF3JVBeNQxbHENrEMNvEdFZVV9lH9+ORGEsNZQpyTNc4C3AG7XF4ngzq+DrO2zbuaaOXgdaFcdkEotoSFBVX2qJ0C8OWZeG4KGlpghA0XfTOPCqV2qqwQ26QWfF2PMLhI2w1lVAa2aPsYd0za25MQRwgcZN6uQDCi+ZxiD4XEM2kZxOT41FnZnaRlcpZouzlRqqdbQVWopQoSB58RV50lBNrHi/AwXS5LrwDVlpY3Fc3ByiYGc52Trist6kOXdwInAQtJpp5QchyaquYOV7Su+fxVMaV3dc0RE2S6mUY0gLt2pMcYqrKIQ9w2l1gpQUMtQYcmmbt5DTNxdhnUCjQqtbK9SUSzvrC0mmhhE1e2FS2+oxypy/ZASutkmtjx3vcBC24PX65nbqkBCRhfjS9kIYPnee8cMagVOhI/3T1fAmdtAWZsCswTJCkQVNa0qWKSKPOpHAUhD9DrbVcyoYkwqhvh17vYAayXLQyKGYdxlUDFp494rBXRjYgO17DDYetNIUj/ezp6S0lnlpEwsWmJMkOwsKXeZKEAjIHn0EQJISaRBcO6UMINz7p/bEjjnw4ft+xmDvksxX4G2rIris7qaeKwAFMP2Oi7n4criuZwtpSUwpfLxSnORSrIqusc5ZFaXysqRWjiZ2DyAWEIL35tVSoQElFACjOeGGSE7AHEQgdo/LSvCOgGBvkxsmDbvlS3Fp5vhaB2TAGqRKrKKMrhLVpaGzEVjZ0OQxDhaCTA+QyRR1d15aQzrJntL3RibsipjG6jlgL4yqbS0sNYg1e84vhbBVrElK64CUcWYXDfKxhpIuxiVJZUxsbMy/uRBKTNRQ4kQ3LdRYLS0rJjRPlTPqY6gdJsEDc+aQXAn+HgsNUCbRuF0Oj0zwnA7bWDkbhO5Ens00qeQhS1laBMl5M/cAaxsLF8rKyql+Tf7ELLEGu/ixiimdCvo0TjfpjKwaggen4eh5v7LokLKbLuyvHhcZG8dhGrEDx7Hg93ZppJF7qBqO3iVveXEDQNInzeoe8Yq6ePaZBZ2JviM3W2UAGotekRCAGq4EkF1X3DOnR11yRsBL1tRa0PVcZiNFXZ2c34FskvomInQQ6lzpJoZbJxk43NwKJFBquJSsrByHydxKOnTxQASBmS3j+JMnsHSla3Ec6K9VWoJVn9zfjwOM7hqYAAqJQwE2a3nA48J2QGegRkpZNivSY+ys3EkKd4oJIwsvIHl3cWgLt5k4NH6OmtLWdpurOkwEMupYc7eMtDRhOcI2ui5JhVIzXzLyto/GAPuZoyo8wkoduVgJglCt7OhGbgID4Mq4si+63zUS1FuFFXFlqyaj2emHlLMcBqYu0FMuR28BbB7lOxRMSiCQXFhCKuwkhZ+pYDiGSgbsKKV8MiSRsuHSIWM9rklRiIlZZuqXjsQK8ooYJMgq3JKWVkhHbhsVxFUzthOWPkYijcbx54IKsSdT+uLr3crGKyoYgFiGR9iBk4kfloUX+JIlQRQqabmpgnhqtpQpb6RVQ1WH5DnrS4hEoGZqaerQ2dhFbz8XePxShmDbo70eISjoorO2vK8SJXI4SUmEU4zWKDzUDtWTYw7xXlbSTEj4FRg7zKnKoGRALv0Gs9Tgc1BpCywGZRQAtqVz2xrBcAMzEpfZwFSa2G5W0QBFjSMapWAEFa3HcGN7CxDzECyIkJ97qwrqWNTWVo876PPsjPkj2wvgroM5lLZKMETKVql/CvnWVFiFa/SzJUQwkoZsr67Y6vlSRV3/2tmNTOY3vnaxYwMuoPKqdzR1w7IqHymlPxaAThfU7Ko2ZXYj4AYJHL+kNdKwRQYESTRa5fsUZ/rVC1TMTyWVyYoqNtuzaHsMyv2tvoarxdfqwYgU1axFo/cnql1FGsqK+uAROV8BX4GU8WcZTATi2q7Qcyi0O0V+GhWBMNRUkn8H1SsWVE5By3Gi0ECqUeJoBfAtDa4amkdXG37AGP5Ggeb84p7UazpoKRzdFzeQ8HkoHGxprKy/Hpm5t12p47J6xTYDEz7uINEXSuxYXvFskYAc+ySxH9sf5ftKzU6IbwVBcUGg5e5FMCEXSErZR0wGayV19woM9guPjTqJdVTqR4uE4nJnLldWVkECCZLd2VLF+xtamex7IpiriSDUpvrpn9lrwGMCHyppMH+ps6LILsuFGUj1XEOXiqbqSHPUKnClpWV68kqtURVNDY4TNaocykoYeTU5ngGEQa/S1DnnE4AeXMcKjHPAmFVjCBENaeyLVNHfr3px8xUstJ94hIpfH4HKE/eDaArK6lSyVVFbdt1gxTIVk3pppVlFXi4pEhVBTObquohU85MLXn1iahvUkHJjSCMc01tLFveVVBx0DodM6jftCu7DOtIzYxrc0qp1JGP2ayYFz2Gb6HvMrO8cnGtV6Gjm3uImSfD2GpWK6uowbZGMxFKQCo1pOMtcMXFpRst+hXGoAomF3sSTBGgTglbBKWwsQ3tZqaYSp0Z1CimRDWFcCJUPYJ00BI5FkKYNoifuQxmN88SWVXWLMaUqqqgC0BmQJR6sk3u9NCf6jYLXxAfqsYEgVLAhRY2AtgtflZNFmFyhxdrLkAdWlk4D88M2ixHyepIdhMHrG/iR1ZGtq0MGpbDbRPYOXeSY1M6Ny4ZstvGSktK+XbFPATj2D371saPEsAMXhXrsZ0km/XStkhhMyBfsa6uXFZe2VCe+YMr1+GKgwrQyNYq1VRrB+EizAow6NsdNKcyVEkYeM73ys6q4kAHp6BiFklTkIrVC5oYV7uzwOGCz4UJ0Stq2lWMJy4wtb+RetL6tZFicnJmBw5UjCvXXMZVJX2MQkbf+XN5EWd78Vz8/JEsMZTBiKNzsm1inLRUQ74H4NidaqI68j5sAFgxcRveC7ieLJXfQYxjZZ2CsiWFewZXJmBIlZ1tdtrX4hSuateKso/RZOtOKW2nmq1oTzeK6dRWAWu2NRVb4hq0SXm1GvtugHrbr5IXqmSktg5CuDE2MSlPwsY5kNE2Wp3AqiZbWVLAxiBF+2iBZbuNj6MB6rsMLC7FyasaYDyo7KkoPyEtw3pEMXfPvxAJi2jAQQgjrz0rLIZSWZlIoNhwd5xK4AR9mYNjWAaLrnuImJeBVN9zBORObVvbr+mTTfFSEJLSRnHo7hEJoIi8MFqjxmvgmF5URZz4zLFgZZ8Ctu2X7ggVccKm9gVxIsOHqxXgNMKnFWZYnf1dBnOhayXq17QwFlWW09eNKyVJFmXqaONGA5aCegMbJ3UUkGY1ic3nKWgjq8qfVYGQG1gRt6rs62a6HiqqUOqdesK5NmX4nGofJoiE1d0dF9lVVkvT1/kEEaaCoYOwFpcVcoLM+7669PxC9rWqktH0sWUYld0VCpuBZ/stVRcGgy9WX2+U1Qthi9SzAqSxzZsy+OiFzBYnySGV6Gku44rD8BCOZBV3BvD5+AKRHNwMEsB6EzHnJpkTAeiUlEGkcECeB6GDZTp5YEJTlvdrknxYjTllMkfNtXwDjM7uVjK5JXUUn43rrqpK2jytaxHW0M5G8DC8rtHMYs7KSgduVQMGTYFqFvVS6rkD3sDJ46afdYFwoq11AOKCBLhvwoUgc8IGANycR6knZrdJPdsuxnyjfd3FovTlRMdEdtOl5CMV5EHsXQBis7TOwvIDZaGj2Vnpbh7cpK63VwYEMLwqbjzyl699sawFFkF1yqjUU31HfC6sW1ZFVFuXVXVgz9keEaw0ys1lWfm+azQAQSWA+hKYVfsZjPncAcUB9oIayy/UZXRNckDGji77GsWbvBo6tPrWPqOyVkBUq+INeqpzNdYs/u0ifh5qmpqIW+33JVSUcwY70KL4U9lYdU6ljtSls7lmfi9g3YzeQfVkaGFaV3ODCnaD2N8wsEDFklE3RzM3ZghdYkWHsszq70FIecnKkVkt8ezMzRq9bkGuKojRLBVSod3Y1yPqKgYW7JRQTPVyy5xIYLjOgxgT52RKJUY1dOrIiRd4futQx/A5AcSmEjz0vFWrkLzvbWAu9HOWbGgxFk1VNTpnBKk6TgwisI/HcxYXP1uAWO72ULFlBTq+aSu2VTUs6hrxM2CF+hEor1VIA9ZmFUaab1lSSgZsVs4sxzHlVLoJHr9H4DhONTkI1XC0/wiY2NoWAG5RlnHFnq6oLccpQddMuJ/O17JVA5OHLi0BqCztq7Y1++ucCd98qLI8MIHBV/cKjxQTme3hFBS3MyCqnDsuym2o80HjvFFTtrURmNaGJsmVahImjTsUXKtQZTAVs7Mvv8/+fzUrZAXcLJ6M4koe6XP0b6SmWWNDzyUpQ8bl+LtWx4tuqZ36cRYV3yuVxPNwvIiqiQCSmu7srgTzR6nkyhpCarXwFy1vGd5iP2cY06lFr5Njhhg1Y6+NB28ftbK83s8rf7kLJbKwDFPbLg25a0AdZJEiqr5phixKMDlRUtcssq1hriLqGoH+zeNgVm9OemjsETV8JdF0NHnkIFxWY1OB4Yrp7rtWJ7NgAAAPXklEQVQ3oNs5nplyVf8u2FoLu1JrHveaZWQjqAkshtFa2gzsSG3Zpkbvg3HafF9slPPlldjFlK80Gysm8Mr4MPhneNWENPGjAIpmilTPATdTRTXlCBYHYAQuPwA36xIpWtGN4q3Y2MhiGsUpuSSnlEJRD8PorC7CFYVw+F51qThgabxsTxWzCGY0ZSsb3lfqAy0OPNjNy8xiQQKsHYFQ2HBZVvVbBuq3m1oWKajqaonsM6uZUr6CjXWNZ0l5E3h3jURma6kP3MJIiy1Lm+kahQq41N2iZja5sjtlLYNZHZrH6qUGm4vMbDp6Rw2CFmvuyFkrBcCyMtFqBaECmsHoK9BZ2LA/lJcRqSaDqnaWbrZdGaz3DLgIvBln4woGztbyJGqslwxkhhHrTjTYFXCtOoKS8uLdofVdAbOylGU6nlYpXWZts4nXBq6WxJitMNokHUJnbnJplQm+aGpY2a5GMV2QD1hRubBPFKdumf5OHkLHz0F9luE5kjBjRa0nFE5CUGqHw32MmjZ6xkgINVnSnZ1VZStK2qKlRaLlQgK7uTq7JFXJwM+3SOEKyhZNI+tJ0I5qMYy9k2qJD7dVWdqKXa0CKNR0Ccjg+B2IYu2fcBZJZkMFgM11r0X92wilghFGgzVnexlqB7xL9mS29SiYUVY2nXOZjNBRsyDsQPRWW5hrZ4XcdC4HVWRbjgJr4sFofK5SzjQ7rhI1UebdPdEbj6sqIvTZQZ5va08rABsAW0UxeWytAk7A2KJ9ZpxzCioB24XFtYAeXYxr6anSqhLgppEqWbGwLunTgrV+IjWlL29ljaAl4EQMGsErp4apeZiquwRXLXAqOCeru32mmydc6oWTSWpFAGdzeTB8RTHVMEtlM90CbbQCYhPjq3egYr1FGdYIQjiuDGZ5zZ/AzobKGOyLxti6c4Rwtv2anyWlLICnlLhxJRXt6A5ebDBWFNONbxWZ2d02mnu4S9YECpeppV1zSWRBWxHYzVIv1CXSouwqqX3jBBBDZdYQbpTQW4ZQlS8r5kH4suSRmg2++3JN10x1PaAmEkmtYlEdeGpJEM6kOuCqCR22oSujj5IV2HdT0zj5prLKTjXFAPjdQlyq7xIBxAQP5yMczG4VxAKw0n6ilZ2QBce2pLulkuxxqnoIzFfgqyqjil9S1VNwBrFmeyeops8yOjZUybZdfS8CuaTIJumzs5tODaNtLpFDQ/PcJGweLhmeL1nB0KqiUDScsiUVD89Di3HtrKtSULw3RLiygZD+7sF8JTObgYsrGvDNUFRGl1iy0Ll1YkUc2aJYMog920I8qW6YDCg1Mqk0JHJFKXkbgbRreI+qpYNOZHrVcDUba7pjsphSJNtK6upgRNAVoOS0mugBeN4bIZgHhuPZ/s1ENaX6KsVr+YNrh1Nb7ipR0PE5zbNRegCbrHRUw6Yf07dLBJl1f8KB9as2V1nNqAsl62LBBhehwalerkHmB1JFIEZKSEusdl5JQj1nJlHXSCF342gJ9CYGrXelknJIXqVP8sD+qtplCR3XH2qfKq0ygMp+KnVkKxNlZ8m2YkIlVMiCnXUwl7qznBKSvQz3m3Pt6oQbXO5b5FixCh/fHxUQW/AEcK6zCNqKQnL9sywqmKuwvqSYzT/aPVNNpVyhvRW21aqciCsjdWvBwILUvh5VyCzbWoC1pJjJ680CWsl+udKB6T5RwG1mlohnlpbg47iz5U9ha0FGtmRLFYBtO99y97Ap0z+ZDTAog6kSLZsMHg/IFkkgp6CpvU2U0cYVSdnmkjwBdOmXbxTWNWzuIbipMioVxEckZEoahSOiy2M3K0jcC1LhVDwaqG0ZvkcWqCnrG4GIxykrqlbWdw6LQyBaZR8HmLRIhQWsHswD42ZXVLNkf9l+FlW0HVQ2lwFsC/Z1FdzlQR0KaPfo+Fdfu+/dwVRICu1CGR7AEIiAhc+AZUF0kOBaPxmUqg4i64vQnU4nFDYJ9Nz+1fVXveH9qmr+kPILx8oKcRV/BFbxbE0JMT0kSD4w6L/lNY8ocsqagVdU3A3MjxhxcGuqzsPH4irpaow1q6OyrVjvp9Npc59E91LldboYVzJWdimWfAW2SNEKcDaX2FmBLLA/uKxlmhh613Is1URQApbKfttwxL02q6Onx5pQxSbPojAg+v5hAnN6LHVRDXIsvKtRjiS0qJUyZTAXVbAK82ElFJWaQdVoqUC1Unt7BVaTQudM6SuqexjQJN4+0icaxv/utbKv83ETbT8H8gjcOKxOJmbUa6OOVXht3dFY6rHv9XoNzFLceEA1o8+pKm0LAHPHZ2rYKjFq0hfZFixsqHJgD3eD5n+U0kb1mFjXkn2lvMSSOsNE/CdIAKF0Sytq6urOHUN5gwg4GZosgbmggM5ucra2qrS2Ig1cbiBBcxYzgzUDNLCvL8GbZXNp6ORy3LmS+Kk83zRIAK6A1ioKa2I9NapIuiUFdfC9766PFZUtqUr6KbWk+zZU1a/ZrIXEztrjTOfz7hwKziCeXIaraHtbZIMz+2pGgazCmw4qWAFvEdhodYp0Xq0pV7G1YWYWbO4qhGq42+Z8BYtrLWvluNPpZAeaFFS1vubPgbgxsqcpnAaszBovKaFoDQ8BGtjfUOl4NAG2nmQV04feJgumvX2fsrQEWZghL0JnVdYkn3DOZIeRN86RqPWCmsvGVqEMRnwxQAxwS8EMYo3IzmY2+BCcLp4MKiuyuhImamlbZFcNoNl7tp+RHd18ZjQIRKyXdFRhN98/hyKqwXWNo7O1wiaXoHN108REZZWEq6grnIfjzeg8jdRf1XEL4kkXa5bBjKxoKaljBjeHlVxQ4GaycpW4lDOAKtnTxHAtOfzOtZwHAM7sqVXkV6yu6kap1nHkXKqWF/4XHqjenNKqBjpR3l1ch3Ejg1+EsgdQhsdG0B4FM9sWAVWpuAyiwTPleZxt9VyZVS2qXfReWqTAilpr9ApoWTjxymit7NwV4JTriZyOA9B0k7HFfULourmKYHVnRQvqGL5HMHdqFcR2qWpmcK6eTwx2dipWrviDilr+fKWq3OWRWdHKwA4eu8wjchbeRzFilqjjZN3ufCpfkJ0/scVpnYk6L0PI77lxdWCZ87WiWm7B/AGquQSnujGKsB8CJmiJq8q1pKIVWyqOiTK66r18BN8r74/AE71fdC3yPS2MxdOpnE1tlVxD9JmVOoggN+r4PjAXVFPa3Eg5jVJGFVUGNolH20GVrUB7BOySWq6WqYQdWR92pcFMYMwckbSgCKCqD67DiiWu1g8MQC9ByfcFqW1L+jL714qNCuznoSxt0da2gtWN1G8F0BK0NN0nuimelUF9dIdAfjO44UT3CjQLoUeLHJFTO3gmpRuIIOvwBQCbqNeo3qtZ9iF6xVK13GRlo4zqimq+CGdTiR1uRY8oqgE02hZBa79kZXPMquxRHKla2saZWN4mRqZUj0vLCKhkjKnqOQHNuSZVJoKvAqS1wpEquvWDC1B2ypwrCPsRMEPVTODMLJMDv6qeKXwi2JYV5Sq4qKyvgGsHCLiuj2jR59V8gMqSJ2FJZRXEHVRHj3sFPrct6OpqlW1GpatQdt0GvwfM6n63InsGVFhJGaBqgqqIV6IsXllZgySPq4R3bnt3wi5cv+cN2yqQLW1T95KYVsWWtKk4cB9W53WQQflQYR6Wl4HaJZjvVE0D5yvq+RKgZCs5qdBEP5sD94cAvQLlSgNaSMAtHx88BuNQ41zdFsX30zKbcs0MLD/ihkpQzl0wiTqKLTfbKmCmyYICnK0IbaieC4CG9iSyLQ7cIMGQwau6TKoq60Apl3WN40LZpca1CKKK9VQyyIEn8w0F8F6CL2h8o3ixGwC7s7EWzCOqmcApYxYD4jsAzVS0sl2t98pA7vrKophCVSonbYpgH6mvSn24pTBV4sdtV3BtMq5k82y+IADvUJ0uAlkCVTxIaPm+UNu/qkV4F1TzHXCGrXIAqItBKypqK99VtAOVs64O4ObX7pHLVCpYHcRmwvLR7TvYAKBBN58LGVzDuFz+hQbWgncQyCZAk+VbsPSouf93261iZgmfCpwRbAvqmSqriU2PwhjaoOyYqtIegVXViTsmyta6bGySpY3gyRrpIyAeaWDDxtpsXwKyalMDKNP7YBXMqEskUsi2uC8FNAPxAKTVfT1o6VzM0E0jF+1rWcUuHvdyg7vgoFplX8HpvHpMCOMRUPHzZkInsqlFKNX/EIO52E0SxSzOwob2VmRLW5D1XIU0rbgM1AzWgyC7fe8G7xUAK/taEBat7luqtyP7EmsaJQOj5F+mrnZfCuYCfBUAWwShyd6pMY/vAHG1UqOYpbI/gy5T0CMKm+UO3gFuC85dgfDVeguPDfITrIBLsLrcgdh3CFgFZjaKJ4Iv3F8ANEqvuxR1tVKOgLoCa1jxboBAkj6v7j/icFbA7f4rfRnQDLRViG13i0vqBQrYVqBbADZT0ZpiHoSzvQpopKIFS3sE1HfBWlHXd0H7LnArqvougMtljHBgZnh3Eoz/BKjLML4Z2Aq0+hEJr9jaVUBbvNzCIUiroC7AWmmFw4o5AK3MtB5VypZMSFgs05JyGVwlwBqsEGAAa2ZU1CjUexXGsE4rKriilBvFzOKKo3AuAroE6QFQU3u8YpNXwS5k+1TZt5UrwouN4KiUEw+k3ZWDp1RXHNRqXb21Ts39945yZSg3VnZFNQ9CF3XeZyr5DgBXKiwCMa2MxeTDYXgP1Fsf9QNKZc0k81RJk3r6EQ3rCmBVyLL75EjZ1pIVDHoFtiOAHoB0BdTVylqBsKKKS+AeBXJVLY+CXASuGvO/Auq7GuEjDfGKg1oKa1z/dmmi9I9SUGNhl0AtfulHAawoYrnSkmNXAVuGEhrEVXvUF+A5Ct2PqNOjDetyna4CmeUolmeXLN4Aq7C5Sj10Q7yjgl+t6CNxSRHmI5X+CpwreYB3Qfdqna4q21KdBuc4GoZsn49ZOOiVinwHqK9WzjvgeweEh2AU5+vtxZ9Cd9Wqkh49V18E5oj6vVyn0RStAyGIO5edXRKd5B0VGVXq2yr3xYp+5Ut+C4QJ4P1N339pQMjRejj4vb/Dcr6rQc3O/0rjmtZpeYCBiCHfCemRbNhbK/pNUPc3wfKy5f2D7OlL3/uPhve/oU4T0F8f+VNM2vyoiv0jK+KHQfdHq+0bncz4oz73/+Y6LbKw1o/5B7eOf1Rl/0du9B9tn/9bvrf/j+v0h6ttn2tp/r/4819y4/zv5391uvzzfwDifz6phT1MPgAAAABJRU5ErkJggg==)}.color-picker .cp-add-color-button-class{position:absolute;display:inline;padding:0;margin:3px -3px;border:0;cursor:pointer;background:transparent}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{cursor:not-allowed;color:#999}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{position:absolute;top:-5px;right:-5px;display:block;width:10px;height:10px;border-radius:50%;cursor:pointer;text-align:center;background:#fff;box-shadow:1px 1px 5px #333}.color-picker .cp-remove-color-button-class:before{content:"x";position:relative;bottom:3.5px;display:inline-block;font-size:10px}.color-picker .eyedropper-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);fill:#fff;mix-blend-mode:exclusion}\n'],encapsulation:2}),r})(),$A=(()=>{class r{constructor(t,i,n,o,s,c){this.injector=t,this.cfr=i,this.appRef=n,this.vcRef=o,this.elRef=s,this._service=c,this.dialogCreated=!1,this.ignoreChanges=!1,this.viewAttachedToAppRef=!1,this.cpWidth="230px",this.cpHeight="auto",this.cpToggle=!1,this.cpDisabled=!1,this.cpIgnoredElements=[],this.cpFallbackColor="",this.cpColorMode="color",this.cpCmykEnabled=!1,this.cpOutputFormat="auto",this.cpAlphaChannel="enabled",this.cpDisableInput=!1,this.cpDialogDisplay="popup",this.cpSaveClickOutside=!0,this.cpCloseClickOutside=!0,this.cpUseRootViewContainer=!1,this.cpPosition="auto",this.cpPositionOffset="0%",this.cpPositionRelativeToArrow=!1,this.cpOKButton=!1,this.cpOKButtonText="OK",this.cpOKButtonClass="cp-ok-button-class",this.cpCancelButton=!1,this.cpCancelButtonText="Cancel",this.cpCancelButtonClass="cp-cancel-button-class",this.cpEyeDropper=!1,this.cpPresetLabel="Preset colors",this.cpPresetColorsClass="cp-preset-colors-class",this.cpMaxPresetColorsLength=6,this.cpPresetEmptyMessage="No colors added",this.cpPresetEmptyMessageClass="preset-empty-message",this.cpAddColorButton=!1,this.cpAddColorButtonText="Add color",this.cpAddColorButtonClass="cp-add-color-button-class",this.cpRemoveColorButtonClass="cp-remove-color-button-class",this.cpInputChange=new e.vpe(!0),this.cpToggleChange=new e.vpe(!0),this.cpSliderChange=new e.vpe(!0),this.cpSliderDragEnd=new e.vpe(!0),this.cpSliderDragStart=new e.vpe(!0),this.colorPickerOpen=new e.vpe(!0),this.colorPickerClose=new e.vpe(!0),this.colorPickerCancel=new e.vpe(!0),this.colorPickerSelect=new e.vpe(!0),this.colorPickerChange=new e.vpe(!1),this.cpCmykColorChange=new e.vpe(!0),this.cpPresetColorsChange=new e.vpe(!0)}handleClick(){this.inputFocus()}handleFocus(){this.inputFocus()}handleInput(t){this.inputChange(t)}ngOnDestroy(){null!=this.cmpRef&&(this.viewAttachedToAppRef&&this.appRef.detachView(this.cmpRef.hostView),this.cmpRef.destroy(),this.cmpRef=null,this.dialog=null)}ngOnChanges(t){t.cpToggle&&!this.cpDisabled&&(t.cpToggle.currentValue?this.openDialog():t.cpToggle.currentValue||this.closeDialog()),t.colorPicker&&(this.dialog&&!this.ignoreChanges&&("inline"===this.cpDialogDisplay&&this.dialog.setInitialColor(t.colorPicker.currentValue),this.dialog.setColorFromString(t.colorPicker.currentValue,!1),this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay&&this.cmpRef.changeDetectorRef.detectChanges()),this.ignoreChanges=!1),(t.cpPresetLabel||t.cpPresetColors)&&this.dialog&&this.dialog.setPresetConfig(this.cpPresetLabel,this.cpPresetColors)}openDialog(){if(this.dialogCreated)this.dialog&&this.dialog.openDialog(this.colorPicker);else{let t=this.vcRef;if(this.dialogCreated=!0,this.viewAttachedToAppRef=!1,this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay){const o=this.injector.get(this.appRef.componentTypes[0],e.zs3.NULL);o!==e.zs3.NULL?t=o.vcRef||o.viewContainerRef||this.vcRef:this.viewAttachedToAppRef=!0}const i=this.cfr.resolveComponentFactory(iZ);if(this.viewAttachedToAppRef)this.cmpRef=i.create(this.injector),this.appRef.attachView(this.cmpRef.hostView),document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);else{const n=e.zs3.create({providers:[],parent:t.injector});this.cmpRef=t.createComponent(i,0,n,[])}this.cmpRef.instance.setupDialog(this,this.elRef,this.colorPicker,this.cpWidth,this.cpHeight,this.cpDialogDisplay,this.cpFallbackColor,this.cpColorMode,this.cpCmykEnabled,this.cpAlphaChannel,this.cpOutputFormat,this.cpDisableInput,this.cpIgnoredElements,this.cpSaveClickOutside,this.cpCloseClickOutside,this.cpUseRootViewContainer,this.cpPosition,this.cpPositionOffset,this.cpPositionRelativeToArrow,this.cpPresetLabel,this.cpPresetColors,this.cpPresetColorsClass,this.cpMaxPresetColorsLength,this.cpPresetEmptyMessage,this.cpPresetEmptyMessageClass,this.cpOKButton,this.cpOKButtonClass,this.cpOKButtonText,this.cpCancelButton,this.cpCancelButtonClass,this.cpCancelButtonText,this.cpAddColorButton,this.cpAddColorButtonClass,this.cpAddColorButtonText,this.cpRemoveColorButtonClass,this.cpEyeDropper,this.elRef,this.cpExtraTemplate),this.dialog=this.cmpRef.instance,this.vcRef!==t&&this.cmpRef.changeDetectorRef.detectChanges()}}closeDialog(){this.dialog&&"popup"===this.cpDialogDisplay&&this.dialog.closeDialog()}cmykChanged(t){this.cpCmykColorChange.emit(t)}stateChanged(t){this.cpToggleChange.emit(t),t?this.colorPickerOpen.emit(this.colorPicker):this.colorPickerClose.emit(this.colorPicker)}colorChanged(t,i=!0){this.ignoreChanges=i,this.colorPickerChange.emit(t)}colorSelected(t){this.colorPickerSelect.emit(t)}colorCanceled(){this.colorPickerCancel.emit()}inputFocus(){const t=this.elRef.nativeElement,i=this.cpIgnoredElements.filter(n=>n===t);!this.cpDisabled&&!i.length&&(typeof document<"u"&&t===document.activeElement?this.openDialog():this.dialog&&this.dialog.show?this.closeDialog():this.openDialog())}inputChange(t){this.dialog?this.dialog.setColorFromString(t.target.value,!0):(this.colorPicker=t.target.value,this.colorPickerChange.emit(this.colorPicker))}inputChanged(t){this.cpInputChange.emit(t)}sliderChanged(t){this.cpSliderChange.emit(t)}sliderDragEnd(t){this.cpSliderDragEnd.emit(t)}sliderDragStart(t){this.cpSliderDragStart.emit(t)}presetColorsChanged(t){this.cpPresetColorsChange.emit(t)}}return r.\u0275fac=function(t){return new(t||r)(e.Y36(e.zs3),e.Y36(e._Vd),e.Y36(e.z2F),e.Y36(e.s_b),e.Y36(e.SBq),e.Y36(UQ))},r.\u0275dir=e.lG2({type:r,selectors:[["","colorPicker",""]],hostBindings:function(t,i){1&t&&e.NdJ("click",function(){return i.handleClick()})("focus",function(){return i.handleFocus()})("input",function(o){return i.handleInput(o)})},inputs:{colorPicker:"colorPicker",cpWidth:"cpWidth",cpHeight:"cpHeight",cpToggle:"cpToggle",cpDisabled:"cpDisabled",cpIgnoredElements:"cpIgnoredElements",cpFallbackColor:"cpFallbackColor",cpColorMode:"cpColorMode",cpCmykEnabled:"cpCmykEnabled",cpOutputFormat:"cpOutputFormat",cpAlphaChannel:"cpAlphaChannel",cpDisableInput:"cpDisableInput",cpDialogDisplay:"cpDialogDisplay",cpSaveClickOutside:"cpSaveClickOutside",cpCloseClickOutside:"cpCloseClickOutside",cpUseRootViewContainer:"cpUseRootViewContainer",cpPosition:"cpPosition",cpPositionOffset:"cpPositionOffset",cpPositionRelativeToArrow:"cpPositionRelativeToArrow",cpOKButton:"cpOKButton",cpOKButtonText:"cpOKButtonText",cpOKButtonClass:"cpOKButtonClass",cpCancelButton:"cpCancelButton",cpCancelButtonText:"cpCancelButtonText",cpCancelButtonClass:"cpCancelButtonClass",cpEyeDropper:"cpEyeDropper",cpPresetLabel:"cpPresetLabel",cpPresetColors:"cpPresetColors",cpPresetColorsClass:"cpPresetColorsClass",cpMaxPresetColorsLength:"cpMaxPresetColorsLength",cpPresetEmptyMessage:"cpPresetEmptyMessage",cpPresetEmptyMessageClass:"cpPresetEmptyMessageClass",cpAddColorButton:"cpAddColorButton",cpAddColorButtonText:"cpAddColorButtonText",cpAddColorButtonClass:"cpAddColorButtonClass",cpRemoveColorButtonClass:"cpRemoveColorButtonClass",cpExtraTemplate:"cpExtraTemplate"},outputs:{cpInputChange:"cpInputChange",cpToggleChange:"cpToggleChange",cpSliderChange:"cpSliderChange",cpSliderDragEnd:"cpSliderDragEnd",cpSliderDragStart:"cpSliderDragStart",colorPickerOpen:"colorPickerOpen",colorPickerClose:"colorPickerClose",colorPickerCancel:"colorPickerCancel",colorPickerSelect:"colorPickerSelect",colorPickerChange:"colorPickerChange",cpCmykColorChange:"cpCmykColorChange",cpPresetColorsChange:"cpPresetColorsChange"},exportAs:["ngxColorPicker"],features:[e.TTD]}),r})(),rZ=(()=>{class r{}return r.\u0275fac=function(t){return new(t||r)},r.\u0275mod=e.oAB({type:r}),r.\u0275inj=e.cJS({providers:[UQ],imports:[l.ez]}),r})();var Vf=ce(8763);class oZ{constructor(a,t="/assets/i18n/",i=".json"){this.http=a,this.prefix=t,this.suffix=i}getTranslation(a){return this.http.get(`${this.prefix}${a}${this.suffix}`)}}class xc{constructor(a,t){this.x=a,this.y=t}static fromEvent(a,t=null){if(this.isMouseEvent(a))return new xc(a.clientX,a.clientY);if(null===t||1===a.changedTouches.length)return new xc(a.changedTouches[0].clientX,a.changedTouches[0].clientY);for(let i=0;i{class r{set zIndex(t){this.renderer.setStyle(this.el.nativeElement,"z-index",t),this._zIndex=t}set ngDraggable(t){if(null!=t&&""!==t){this.allowDrag=!!t;let i=this.getDragEl();this.allowDrag?this.renderer.addClass(i,"ng-draggable"):(this.putBack(),this.renderer.removeClass(i,"ng-draggable"))}}constructor(t,i){this.el=t,this.renderer=i,this.allowDrag=!0,this.moving=!1,this.orignal=null,this.oldTrans=new xc(0,0),this.tempTrans=new xc(0,0),this.currTrans=new xc(0,0),this.oldZIndex="",this._zIndex="",this.needTransform=!1,this.draggingSub=null,this._helperBlock=null,this.started=new e.vpe,this.stopped=new e.vpe,this.edge=new e.vpe,this.outOfBounds={top:!1,right:!1,bottom:!1,left:!1},this.gridSize=1,this.inBounds=!1,this.trackPosition=!0,this.scale=1,this.preventDefaultEvent=!1,this.position={x:0,y:0},this.lockAxis=null,this.movingOffset=new e.vpe,this.endOffset=new e.vpe,this._helperBlock=new mO(t.nativeElement,i)}ngOnInit(){if(this.allowDrag){let t=this.getDragEl();this.renderer.addClass(t,"ng-draggable")}this.resetPosition()}ngOnDestroy(){this.bounds=null,this.handle=null,this.orignal=null,this.oldTrans=null,this.tempTrans=null,this.currTrans=null,this._helperBlock.dispose(),this._helperBlock=null,this.draggingSub&&this.draggingSub.unsubscribe()}ngOnChanges(t){if(t.position&&!t.position.isFirstChange()){let i=t.position.currentValue;this.moving?this.needTransform=!0:(xc.isIPosition(i)?this.oldTrans.set(i):this.oldTrans.reset(),this.transform())}}ngAfterViewInit(){this.inBounds&&(this.boundsCheck(),this.oldTrans.add(this.tempTrans),this.tempTrans.reset())}getDragEl(){return this.handle?this.handle:this.el.nativeElement}resetPosition(){xc.isIPosition(this.position)?this.oldTrans.set(this.position):this.oldTrans.reset(),this.tempTrans.reset(),this.transform()}moveTo(t){if(this.orignal){if(t.subtract(this.orignal),this.tempTrans.set(t),this.tempTrans.divide(this.scale),this.transform(),this.bounds){let i=this.boundsCheck();i&&this.edge.emit(i)}this.movingOffset.emit(this.currTrans.value)}}transform(){let t=this.tempTrans.x+this.oldTrans.x,i=this.tempTrans.y+this.oldTrans.y;"x"===this.lockAxis?(t=this.oldTrans.x,this.tempTrans.x=0):"y"===this.lockAxis&&(i=this.oldTrans.y,this.tempTrans.y=0),this.gridSize>1&&(t=Math.round(t/this.gridSize)*this.gridSize,i=Math.round(i/this.gridSize)*this.gridSize);let n=`translate(${Math.round(t)}px, ${Math.round(i)}px)`;this.renderer.setStyle(this.el.nativeElement,"transform",n),this.renderer.setStyle(this.el.nativeElement,"-webkit-transform",n),this.renderer.setStyle(this.el.nativeElement,"-ms-transform",n),this.renderer.setStyle(this.el.nativeElement,"-moz-transform",n),this.renderer.setStyle(this.el.nativeElement,"-o-transform",n),this.currTrans.x=t,this.currTrans.y=i}pickUp(){if(this.oldZIndex=this.el.nativeElement.style.zIndex?this.el.nativeElement.style.zIndex:"",window&&(this.oldZIndex=window.getComputedStyle(this.el.nativeElement,null).getPropertyValue("z-index")),this.zIndexMoving&&this.renderer.setStyle(this.el.nativeElement,"z-index",this.zIndexMoving),!this.moving){this.started.emit(this.el.nativeElement),this.moving=!0;const t=this.getDragEl();this.renderer.addClass(t,"ng-dragging"),this.subscribeEvents()}}subscribeEvents(){this.draggingSub=Je(document,"mousemove",{passive:!1}).subscribe(i=>this.onMouseMove(i)),this.draggingSub.add(Je(document,"touchmove",{passive:!1}).subscribe(i=>this.onMouseMove(i))),this.draggingSub.add(Je(document,"mouseup",{passive:!1}).subscribe(()=>this.putBack())),/msie\s|trident\//i.test(window.navigator.userAgent)||this.draggingSub.add(Je(document,"mouseleave",{passive:!1}).subscribe(()=>this.putBack())),this.draggingSub.add(Je(document,"touchend",{passive:!1}).subscribe(()=>this.putBack())),this.draggingSub.add(Je(document,"touchcancel",{passive:!1}).subscribe(()=>this.putBack()))}unsubscribeEvents(){this.draggingSub.unsubscribe(),this.draggingSub=null}boundsCheck(){if(this.bounds){let t=this.bounds.getBoundingClientRect(),i=this.el.nativeElement.getBoundingClientRect(),n={top:!!this.outOfBounds.top||t.topi.right,bottom:!!this.outOfBounds.bottom||t.bottom>i.bottom,left:!!this.outOfBounds.left||t.left{o(g,this)},c.addEventListener("mousedown",this._onResize,{passive:!1}),c.addEventListener("touchstart",this._onResize,{passive:!1}),this._handle=c}dispose(){this._handle.removeEventListener("mousedown",this._onResize),this._handle.removeEventListener("touchstart",this._onResize),this.parent&&!this.existHandle&&this.parent.removeChild(this._handle),this._handle=null,this._onResize=null}get el(){return this._handle}}class Wf{constructor(a,t){this.width=a,this.height=t}static getCurrent(a){let t=new Wf(0,0);if(window){const i=window.getComputedStyle(a);return i&&(t.width=parseInt(i.getPropertyValue("width"),10),t.height=parseInt(i.getPropertyValue("height"),10)),t}return console.error("Not Supported!"),null}static copy(a){return new Wf(0,0).set(a)}set(a){return this.width=a.width,this.height=a.height,this}}let sZ=(()=>{class r{set ngResizable(t){null!=t&&""!==t&&(this._resizable=!!t,this.updateResizable())}constructor(t,i){this.el=t,this.renderer=i,this._resizable=!0,this._handles={},this._handleType=[],this._handleResizing=null,this._direction=null,this._directionChanged=null,this._aspectRatio=0,this._containment=null,this._origMousePos=null,this._origSize=null,this._origPos=null,this._currSize=null,this._currPos=null,this._initSize=null,this._initPos=null,this._gridSize=null,this._bounding=null,this._helperBlock=null,this.draggingSub=null,this._adjusted=!1,this.rzHandles="e,s,se",this.rzHandleDoms={},this.rzAspectRatio=!1,this.rzContainment=null,this.rzGrid=null,this.rzMinWidth=null,this.rzMinHeight=null,this.rzMaxWidth=null,this.rzMaxHeight=null,this.rzScale=1,this.preventDefaultEvent=!0,this.rzStart=new e.vpe,this.rzResizing=new e.vpe,this.rzStop=new e.vpe,this._helperBlock=new mO(t.nativeElement,i)}ngOnChanges(t){t.rzHandles&&!t.rzHandles.isFirstChange()&&this.updateResizable(),t.rzAspectRatio&&!t.rzAspectRatio.isFirstChange()&&this.updateAspectRatio(),t.rzContainment&&!t.rzContainment.isFirstChange()&&this.updateContainment()}ngOnInit(){this.updateResizable()}ngOnDestroy(){this.removeHandles(),this._containment=null,this._helperBlock.dispose(),this._helperBlock=null}ngAfterViewInit(){const t=this.el.nativeElement;this._initSize=Wf.getCurrent(t),this._initPos=xc.getCurrent(t),this._currSize=Wf.copy(this._initSize),this._currPos=xc.copy(this._initPos),this.updateAspectRatio(),this.updateContainment()}resetSize(){this._currSize=Wf.copy(this._initSize),this._currPos=xc.copy(this._initPos),this.doResize()}getStatus(){return this._currPos&&this._currSize?{size:{width:this._currSize.width,height:this._currSize.height},position:{top:this._currPos.y,left:this._currPos.x}}:null}updateResizable(){const t=this.el.nativeElement;this.renderer.removeClass(t,"ng-resizable"),this.removeHandles(),this._resizable&&(this.renderer.addClass(t,"ng-resizable"),this.createHandles())}updateAspectRatio(){if("boolean"==typeof this.rzAspectRatio)this._aspectRatio=this.rzAspectRatio&&this._currSize.height?this._currSize.width/this._currSize.height:0;else{let t=Number(this.rzAspectRatio);this._aspectRatio=isNaN(t)?0:t}}updateContainment(){this._containment=this.rzContainment?"string"==typeof this.rzContainment?"parent"===this.rzContainment?this.el.nativeElement.parentElement:document.querySelector(this.rzContainment):this.rzContainment:null}createHandles(){if(!this.rzHandles)return;let t;if("string"==typeof this.rzHandles){t="all"===this.rzHandles?["n","e","s","w","ne","se","nw","sw"]:this.rzHandles.replace(/ /g,"").toLowerCase().split(",");for(let i of t){let n=this.createHandleByType(i,`ng-resizable-${i}`);n&&(this._handleType.push(i),this._handles[i]=n)}}else{t=Object.keys(this.rzHandles);for(let i of t){let n=this.createHandleByType(i,this.rzHandles[i]);n&&(this._handleType.push(i),this._handles[i]=n)}}}createHandleByType(t,i){const n=this.el.nativeElement,o=this.rzHandleDoms[t]?this.rzHandleDoms[t].nativeElement:null;return t.match(/^(se|sw|ne|nw|n|e|s|w)$/)?new aZ(n,this.renderer,t,i,this.onMouseDown.bind(this),o):(console.error("Invalid handle type:",t),null)}removeHandles(){for(let t of this._handleType)this._handles[t].dispose();this._handleType=[],this._handles={}}onMouseDown(t,i){t instanceof MouseEvent&&2===t.button||(this.preventDefaultEvent&&(t.stopPropagation(),t.preventDefault()),this._handleResizing||(this._origMousePos=xc.fromEvent(t),this.startResize(i),this.subscribeEvents()))}subscribeEvents(){this.draggingSub=Je(document,"mousemove",{passive:!1}).subscribe(i=>this.onMouseMove(i)),this.draggingSub.add(Je(document,"touchmove",{passive:!1}).subscribe(i=>this.onMouseMove(i))),this.draggingSub.add(Je(document,"mouseup",{passive:!1}).subscribe(()=>this.onMouseLeave())),/msie\s|trident\//i.test(window.navigator.userAgent)||this.draggingSub.add(Je(document,"mouseleave",{passive:!1}).subscribe(()=>this.onMouseLeave())),this.draggingSub.add(Je(document,"touchend",{passive:!1}).subscribe(()=>this.onMouseLeave())),this.draggingSub.add(Je(document,"touchcancel",{passive:!1}).subscribe(()=>this.onMouseLeave()))}unsubscribeEvents(){this.draggingSub.unsubscribe(),this.draggingSub=null}onMouseLeave(){this._handleResizing&&(this.stopResize(),this._origMousePos=null,this.unsubscribeEvents())}onMouseMove(t){this._handleResizing&&this._resizable&&this._origMousePos&&this._origPos&&this._origSize&&(this.resizeTo(xc.fromEvent(t)),this.onResizing())}startResize(t){const i=this.el.nativeElement;this._origSize=Wf.getCurrent(i),this._origPos=xc.getCurrent(i),this._currSize=Wf.copy(this._origSize),this._currPos=xc.copy(this._origPos),this._containment&&this.getBounding(),this.getGridSize(),this._helperBlock.add(),this._handleResizing=t,this.updateDirection(),this.rzStart.emit(this.getResizingEvent())}stopResize(){this._helperBlock.remove(),this.rzStop.emit(this.getResizingEvent()),this._handleResizing=null,this._direction=null,this._origSize=null,this._origPos=null,this._containment&&this.resetBounding()}onResizing(){this.rzResizing.emit(this.getResizingEvent())}getResizingEvent(){return{host:this.el.nativeElement,handle:this._handleResizing?this._handleResizing.el:null,size:{width:this._currSize.width,height:this._currSize.height},position:{top:this._currPos.y,left:this._currPos.x},direction:{...this._directionChanged}}}updateDirection(){this._direction={n:!!this._handleResizing.type.match(/n/),s:!!this._handleResizing.type.match(/s/),w:!!this._handleResizing.type.match(/w/),e:!!this._handleResizing.type.match(/e/)},this._directionChanged={...this._direction},this.rzAspectRatio&&(this._directionChanged.n&&!this._directionChanged.e&&(this._directionChanged.w=!0),this._directionChanged.s&&!this._directionChanged.w&&(this._directionChanged.e=!0),this._directionChanged.e&&!this._directionChanged.n&&(this._directionChanged.s=!0),this._directionChanged.w&&!this._directionChanged.n&&(this._directionChanged.s=!0))}resizeTo(t){t.subtract(this._origMousePos).divide(this.rzScale);const i=Math.round(t.x/this._gridSize.x)*this._gridSize.x,n=Math.round(t.y/this._gridSize.y)*this._gridSize.y;this._direction.n?(this._currPos.y=this._origPos.y+n,this._currSize.height=this._origSize.height-n):this._direction.s&&(this._currSize.height=this._origSize.height+n),this._direction.e?this._currSize.width=this._origSize.width+i:this._direction.w&&(this._currSize.width=this._origSize.width-i,this._currPos.x=this._origPos.x+i),this.checkBounds(),this.checkSize(),this.adjustByRatio(),this.doResize()}doResize(){const t=this.el.nativeElement;(!this._direction||this._direction.n||this._direction.s||this._aspectRatio)&&this.renderer.setStyle(t,"height",this._currSize.height+"px"),(!this._direction||this._direction.w||this._direction.e||this._aspectRatio)&&this.renderer.setStyle(t,"width",this._currSize.width+"px"),this.renderer.setStyle(t,"left",this._currPos.x+"px"),this.renderer.setStyle(t,"top",this._currPos.y+"px")}adjustByRatio(){if(this._aspectRatio&&!this._adjusted)if(this._direction.e||this._direction.w){const t=Math.floor(this._currSize.width/this._aspectRatio);this._direction.n&&(this._currPos.y+=this._currSize.height-t),this._currSize.height=t}else{const t=Math.floor(this._aspectRatio*this._currSize.height);this._direction.n&&(this._currPos.x+=this._currSize.width-t),this._currSize.width=t}}checkBounds(){if(this._containment){const t=this._bounding.width-this._bounding.pr-this._bounding.deltaL-this._bounding.translateX-this._currPos.x,i=this._bounding.height-this._bounding.pb-this._bounding.deltaT-this._bounding.translateY-this._currPos.y;if(this._direction.n&&this._currPos.y+this._bounding.translateY<0&&(this._currPos.y=-this._bounding.translateY,this._currSize.height=this._origSize.height+this._origPos.y+this._bounding.translateY),this._direction.w&&this._currPos.x+this._bounding.translateX<0&&(this._currPos.x=-this._bounding.translateX,this._currSize.width=this._origSize.width+this._origPos.x+this._bounding.translateX),this._currSize.width>t&&(this._currSize.width=t),this._currSize.height>i&&(this._currSize.height=i),this._aspectRatio){if(this._adjusted=!1,(this._direction.w||this._direction.e)&&this._currSize.width/this._aspectRatio>=i){const n=Math.floor(i*this._aspectRatio);this._direction.w&&(this._currPos.x+=this._currSize.width-n),this._currSize.width=n,this._currSize.height=i,this._adjusted=!0}if((this._direction.n||this._direction.s)&&this._currSize.height*this._aspectRatio>=t){const n=Math.floor(t/this._aspectRatio);this._direction.n&&(this._currPos.y+=this._currSize.height-n),this._currSize.width=t,this._currSize.height=n,this._adjusted=!0}}}}checkSize(){const t=this.rzMinHeight?this.rzMinHeight:1,i=this.rzMinWidth?this.rzMinWidth:1;this._currSize.heightthis.rzMaxHeight&&(this._currSize.height=this.rzMaxHeight,this._direction.n&&(this._currPos.y=this._origPos.y+(this._origSize.height-this.rzMaxHeight))),this.rzMaxWidth&&this._currSize.width>this.rzMaxWidth&&(this._currSize.width=this.rzMaxWidth,this._direction.w&&(this._currPos.x=this._origPos.x+(this._origSize.width-this.rzMaxWidth)))}getBounding(){const t=this._containment,i=window.getComputedStyle(t);if(i){let n=i.getPropertyValue("position"),s=window.getComputedStyle(this.el.nativeElement).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");this._bounding={},this._bounding.width=t.clientWidth,this._bounding.height=t.clientHeight,this._bounding.pr=parseInt(i.getPropertyValue("padding-right"),10),this._bounding.pb=parseInt(i.getPropertyValue("padding-bottom"),10),this._bounding.deltaL=this.el.nativeElement.offsetLeft-this._currPos.x,this._bounding.deltaT=this.el.nativeElement.offsetTop-this._currPos.y,s.length>=6?(this._bounding.translateX=parseInt(s[4],10),this._bounding.translateY=parseInt(s[5],10)):(this._bounding.translateX=0,this._bounding.translateY=0),this._bounding.position=i.getPropertyValue("position"),"static"===n&&this.renderer.setStyle(t,"position","relative")}}resetBounding(){this._bounding&&"static"===this._bounding.position&&this.renderer.setStyle(this._containment,"position","relative"),this._bounding=null}getGridSize(){this._gridSize={x:1,y:1},this.rzGrid&&("number"==typeof this.rzGrid?this._gridSize={x:this.rzGrid,y:this.rzGrid}:Array.isArray(this.rzGrid)&&(this._gridSize={x:this.rzGrid[0],y:this.rzGrid[1]}))}static{this.\u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.Qsj))}}static{this.\u0275dir=e.lG2({type:r,selectors:[["","ngResizable",""]],inputs:{ngResizable:"ngResizable",rzHandles:"rzHandles",rzHandleDoms:"rzHandleDoms",rzAspectRatio:"rzAspectRatio",rzContainment:"rzContainment",rzGrid:"rzGrid",rzMinWidth:"rzMinWidth",rzMinHeight:"rzMinHeight",rzMaxWidth:"rzMaxWidth",rzMaxHeight:"rzMaxHeight",rzScale:"rzScale",preventDefaultEvent:"preventDefaultEvent"},outputs:{rzStart:"rzStart",rzResizing:"rzResizing",rzStop:"rzStop"},exportAs:["ngResizable"],features:[e.TTD]})}}return r})(),lZ=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();var _O=ce(5861);const cZ=["ref"];function vO(r){return r&&r.replace(/\r\n|\r/g,"\n")}let XE=(()=>{class r{constructor(t,i){this._differs=t,this._ngZone=i,this.className="",this.name="codemirror",this.autoFocus=!1,this.preserveScrollPosition=!1,this.cursorActivity=new e.vpe,this.focusChange=new e.vpe,this.scroll=new e.vpe,this.drop=new e.vpe,this.value="",this.disabled=!1,this.isFocused=!1,this.onChange=n=>{},this.onTouched=()=>{}}set options(t){this._options=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}get codeMirrorGlobal(){return this._codeMirror||(this._codeMirror=typeof CodeMirror<"u"?CodeMirror:Promise.resolve().then(ce.t.bind(ce,656,19))),this._codeMirror}ngAfterViewInit(){var t=this;this._ngZone.runOutsideAngular((0,_O.Z)(function*(){const i=yield t.codeMirrorGlobal;t.codeMirror=(i?.default?i.default:i).fromTextArea(t.ref.nativeElement,t._options),t.codeMirror.on("cursorActivity",o=>t._ngZone.run(()=>t.cursorActive(o))),t.codeMirror.on("scroll",t.scrollChanged.bind(t)),t.codeMirror.on("blur",()=>t._ngZone.run(()=>t.focusChanged(!1))),t.codeMirror.on("focus",()=>t._ngZone.run(()=>t.focusChanged(!0))),t.codeMirror.on("change",(o,s)=>t._ngZone.run(()=>t.codemirrorValueChanged(o,s))),t.codeMirror.on("drop",(o,s)=>{t._ngZone.run(()=>t.dropFiles(o,s))}),t.codeMirror.setValue(t.value)}))}ngDoCheck(){if(!this._differ)return;const t=this._differ.diff(this._options);t&&(t.forEachChangedItem(i=>this.setOptionIfChanged(i.key,i.currentValue)),t.forEachAddedItem(i=>this.setOptionIfChanged(i.key,i.currentValue)),t.forEachRemovedItem(i=>this.setOptionIfChanged(i.key,i.currentValue)))}ngOnDestroy(){this.codeMirror&&this.codeMirror.toTextArea()}codemirrorValueChanged(t,i){const n=t.getValue();this.value!==n&&(this.value=n,this.onChange(this.value))}setOptionIfChanged(t,i){this.codeMirror&&this.codeMirror.setOption(t,i)}focusChanged(t){this.onTouched(),this.isFocused=t,this.focusChange.emit(t)}scrollChanged(t){this.scroll.emit(t.getScrollInfo())}cursorActive(t){this.cursorActivity.emit(t)}dropFiles(t,i){this.drop.emit([t,i])}writeValue(t){if(null==t)return;if(!this.codeMirror)return void(this.value=t);const i=this.codeMirror.getValue();if(t!==i&&vO(i)!==vO(t))if(this.value=t,this.preserveScrollPosition){const n=this.codeMirror.getScrollInfo();this.codeMirror.setValue(this.value),this.codeMirror.scrollTo(n.left,n.top)}else this.codeMirror.setValue(this.value)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this.setOptionIfChanged("readOnly",this.disabled)}}return r.\u0275fac=function(t){return new(t||r)(e.Y36(e.aQg),e.Y36(e.R0b))},r.\u0275cmp=e.Xpm({type:r,selectors:[["ngx-codemirror"]],viewQuery:function(t,i){if(1&t&&e.Gf(cZ,5),2&t){let n;e.iGM(n=e.CRH())&&(i.ref=n.first)}},inputs:{className:"className",name:"name",autoFocus:"autoFocus",options:"options",preserveScrollPosition:"preserveScrollPosition"},outputs:{cursorActivity:"cursorActivity",focusChange:"focusChange",scroll:"scroll",drop:"drop"},features:[e._Bn([{provide:y,useExisting:(0,e.Gpc)(()=>r),multi:!0}])],decls:3,vars:7,consts:[["autocomplete","off",3,"name","autofocus"],["ref",""]],template:function(t,i){1&t&&(e.TgZ(0,"textarea",0,1),e._uU(2," "),e.qZA()),2&t&&(e.Gre("ngx-codemirror ",i.className,""),e.ekj("ngx-codemirror--focused",i.isFocused),e.Q6J("name",i.name)("autofocus",i.autoFocus))},encapsulation:2,changeDetection:0}),r})(),AZ=(()=>{class r{}return r.\u0275fac=function(t){return new(t||r)},r.\u0275mod=e.oAB({type:r}),r.\u0275inj=e.cJS({}),r})();const HQ=vC,GQ=new e.OlP("daterangepicker.config"),yO={direction:"ltr",separator:" - ",weekLabel:"W",applyLabel:"Apply",cancelLabel:"Cancel",customRangeLabel:"Custom range",daysOfWeek:HQ.weekdaysMin(),monthNames:HQ.monthsShort(),firstDay:HQ.localeData().firstDayOfWeek()};let ZQ=(()=>{class r{_config;constructor(t){this._config=t}get config(){return this._config?{...yO,...this._config}:yO}static \u0275fac=function(i){return new(i||r)(e.LFG(GQ))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})(),dZ=(()=>{class r{constructor(){}static forRoot(t={}){return{ngModule:r,providers:[{provide:GQ,useValue:t},{provide:ZQ,useClass:ZQ,deps:[GQ]}]}}static \u0275fac=function(i){return new(i||r)};static \u0275mod=e.oAB({type:r});static \u0275inj=e.cJS({imports:[l.ez,js,QA]})}return r})();const uZ=["pickerContainer"],hZ=function(r){return{active:r}};function pZ(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"li")(1,"button",7),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.clickRange(n,s))}),e._uU(2),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.Q6J("disabled",i.disableRange(t))("ngClass",e.VKq(3,hZ,t===i.chosenRange)),e.xp6(1),e.Oqu(t)}}function gZ(r,a){1&r&&e._UZ(0,"th")}function fZ(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"th",18),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.clickPrev(n.sideEnum.left))}),e.qZA(),e.BQk()}}function mZ(r,a){1&r&&(e.ynx(0),e._UZ(1,"th"),e.BQk())}function _Z(r,a){if(1&r&&(e.TgZ(0,"option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(4);e.Q6J("disabled",i.calendarVariables.left.dropdowns.inMinYear&&ti.calendarVariables.left.maxDate.month())("value",t)("selected",i.calendarVariables.left.dropdowns.currentMonth===t),e.xp6(1),e.hij(" ",i.locale.monthNames[t]," ")}}function vZ(r,a){if(1&r&&(e.TgZ(0,"option",25),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(4);e.Q6J("selected",t===i.calendarVariables.left.dropdowns.currentYear),e.xp6(1),e.hij(" ",t," ")}}function yZ(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",19),e._uU(2),e.TgZ(3,"select",20),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.monthChanged(n,o.sideEnum.left))}),e.YNc(4,_Z,2,4,"option",21),e.qZA()(),e.TgZ(5,"div",19),e._uU(6),e.TgZ(7,"select",22),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.yearChanged(n,o.sideEnum.left))}),e.YNc(8,vZ,2,2,"option",23),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(3);e.xp6(2),e.hij(" ",t.locale.monthNames[null==t.calendarVariables||null==t.calendarVariables.left?null:t.calendarVariables.left.calendar[1][1].month()]," "),e.xp6(2),e.Q6J("ngForOf",t.calendarVariables.left.dropdowns.monthArrays),e.xp6(2),e.hij(" ",null==t.calendarVariables||null==t.calendarVariables.left?null:t.calendarVariables.left.calendar[1][1].format(" YYYY")," "),e.xp6(2),e.Q6J("ngForOf",t.calendarVariables.left.dropdowns.yearArrays)}}function wZ(r,a){if(1&r&&(e.ynx(0),e._uU(1),e.BQk()),2&r){const t=e.oxw(3);e.xp6(1),e.AsE(" ",t.locale.monthNames[null==t.calendarVariables||null==t.calendarVariables.left?null:t.calendarVariables.left.calendar[1][1].month()]," ",null==t.calendarVariables||null==t.calendarVariables.left?null:t.calendarVariables.left.calendar[1][1].format(" YYYY")," ")}}function CZ(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"th",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.clickNext(n.sideEnum.left))}),e.qZA(),e.BQk()}}function bZ(r,a){1&r&&(e.ynx(0),e._UZ(1,"th"),e.BQk())}function xZ(r,a){if(1&r&&(e.TgZ(0,"th",27)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw(3);e.xp6(2),e.Oqu(t.locale.weekLabel)}}function BZ(r,a){if(1&r&&(e.TgZ(0,"th")(1,"span"),e._uU(2),e.qZA()()),2&r){const t=a.$implicit;e.xp6(2),e.Oqu(t)}}function EZ(r,a){if(1&r&&(e.TgZ(0,"td",27)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(2),e.Oqu(i.calendarVariables.left.calendar[t][0].week())}}function MZ(r,a){if(1&r&&(e.TgZ(0,"td",27)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(2),e.Oqu(i.calendarVariables.left.calendar[t][0].isoWeek())}}function DZ(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",29),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw().$implicit,g=e.oxw(3);return e.KtG(g.clickDate(n,g.sideEnum.left,c,s))}),e.TgZ(1,"span"),e._uU(2),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw().$implicit,n=e.oxw(3);e.Tol(n.calendarVariables.left.classes[i][t]),e.xp6(2),e.Oqu(n.calendarVariables.left.calendar[i][t].date())}}function TZ(r,a){if(1&r&&(e.TgZ(0,"tr"),e.YNc(1,EZ,3,1,"td",15),e.YNc(2,MZ,3,1,"td",15),e.YNc(3,DZ,3,3,"td",28),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.Tol(i.calendarVariables.left.classes[t].classList),e.xp6(1),e.Q6J("ngIf",i.showWeekNumbers),e.xp6(1),e.Q6J("ngIf",i.showISOWeekNumbers),e.xp6(1),e.Q6J("ngForOf",i.calendarVariables.left.calCols)}}function IZ(r,a){if(1&r&&(e.TgZ(0,"table",12)(1,"thead")(2,"tr"),e.YNc(3,gZ,1,0,"th",13),e.YNc(4,fZ,2,0,"ng-container",13),e.YNc(5,mZ,2,0,"ng-container",13),e.TgZ(6,"th",14),e.YNc(7,yZ,9,4,"ng-container",13),e.YNc(8,wZ,2,2,"ng-container",13),e.qZA(),e.YNc(9,CZ,2,0,"ng-container",13),e.YNc(10,bZ,2,0,"ng-container",13),e.qZA(),e.TgZ(11,"tr"),e.YNc(12,xZ,3,1,"th",15),e.YNc(13,BZ,3,1,"th",3),e.qZA()(),e.TgZ(14,"tbody",16),e.YNc(15,TZ,4,5,"tr",17),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(3),e.Q6J("ngIf",t.showWeekNumbers||t.showISOWeekNumbers),e.xp6(1),e.Q6J("ngIf",!t.calendarVariables.left.minDate||t.calendarVariables.left.minDate.isBefore(t.calendarVariables.left.calendar.firstDay)&&(!t.linkedCalendars||!0)),e.xp6(1),e.Q6J("ngIf",!(!t.calendarVariables.left.minDate||t.calendarVariables.left.minDate.isBefore(t.calendarVariables.left.calendar.firstDay))),e.xp6(2),e.Q6J("ngIf",t.showDropdowns&&t.calendarVariables.left.dropdowns),e.xp6(1),e.Q6J("ngIf",!t.showDropdowns||!t.calendarVariables.left.dropdowns),e.xp6(1),e.Q6J("ngIf",(!t.calendarVariables.left.maxDate||t.calendarVariables.left.maxDate.isAfter(t.calendarVariables.left.calendar.lastDay))&&(!t.linkedCalendars||t.singleDatePicker)),e.xp6(1),e.Q6J("ngIf",!((!t.calendarVariables.left.maxDate||t.calendarVariables.left.maxDate.isAfter(t.calendarVariables.left.calendar.lastDay))&&(!t.linkedCalendars||t.singleDatePicker))),e.xp6(2),e.Q6J("ngIf",t.showWeekNumbers||t.showISOWeekNumbers),e.xp6(1),e.Q6J("ngForOf",t.locale.daysOfWeek),e.xp6(2),e.Q6J("ngForOf",t.calendarVariables.left.calRows)}}function kZ(r,a){if(1&r&&(e.TgZ(0,"option",39),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.Q6J("value",t)("disabled",i.timepickerVariables.left.disabledHours.indexOf(t)>-1),e.xp6(1),e.Oqu(t)}}function QZ(r,a){if(1&r&&(e.TgZ(0,"option",39),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(3);e.Q6J("value",t)("disabled",n.timepickerVariables.left.disabledMinutes.indexOf(t)>-1),e.xp6(1),e.Oqu(n.timepickerVariables.left.minutesLabel[i])}}function SZ(r,a){if(1&r&&(e.TgZ(0,"option",39),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(4);e.Q6J("value",t)("disabled",n.timepickerVariables.left.disabledSeconds.indexOf(t)>-1),e.xp6(1),e.Oqu(n.timepickerVariables.left.secondsLabel[i])}}function PZ(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"select",40),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timepickerVariables.left.selectedSecond=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timeChanged(n,o.sideEnum.left))}),e.YNc(1,SZ,2,3,"option",33),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",!t.endDate)("ngModel",t.timepickerVariables.left.selectedSecond),e.xp6(1),e.Q6J("ngForOf",t.timepickerVariables.left.seconds)}}function FZ(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"select",41),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timepickerVariables.left.ampmModel=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timeChanged(n,o.sideEnum.left))}),e.TgZ(1,"option",42),e._uU(2,"AM"),e.qZA(),e.TgZ(3,"option",43),e._uU(4,"PM"),e.qZA()()}if(2&r){const t=e.oxw(3);e.Q6J("ngModel",t.timepickerVariables.left.ampmModel),e.xp6(1),e.Q6J("disabled",t.timepickerVariables.left.amDisabled),e.xp6(2),e.Q6J("disabled",t.timepickerVariables.left.pmDisabled)}}function OZ(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"div",31)(2,"select",32),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timepickerVariables.left.selectedHour=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timeChanged(n,o.sideEnum.left))}),e.YNc(3,kZ,2,3,"option",33),e.qZA()(),e.TgZ(4,"div",31)(5,"select",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timepickerVariables.left.selectedMinute=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timeChanged(n,o.sideEnum.left))}),e.YNc(6,QZ,2,3,"option",33),e.qZA(),e._UZ(7,"span",35)(8,"span",36),e.qZA(),e.TgZ(9,"div",31),e.YNc(10,PZ,2,3,"select",37),e._UZ(11,"span",35)(12,"span",36),e.qZA(),e.TgZ(13,"div",31),e.YNc(14,FZ,5,3,"select",38),e._UZ(15,"span",35)(16,"span",36),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Q6J("disabled",!t.endDate)("ngModel",t.timepickerVariables.left.selectedHour),e.xp6(1),e.Q6J("ngForOf",t.timepickerVariables.left.hours),e.xp6(2),e.Q6J("disabled",!t.endDate)("ngModel",t.timepickerVariables.left.selectedMinute),e.xp6(1),e.Q6J("ngForOf",t.timepickerVariables.left.minutes),e.xp6(4),e.Q6J("ngIf",t.timePickerSeconds),e.xp6(4),e.Q6J("ngIf",!t.timePicker24Hour)}}const LZ=function(r,a){return{right:r,left:a}};function RZ(r,a){if(1&r&&(e.TgZ(0,"div",8)(1,"div",9),e.YNc(2,IZ,16,10,"table",10),e.qZA(),e.YNc(3,OZ,17,8,"div",11),e.qZA()),2&r){const t=e.oxw();e.Q6J("ngClass",e.WLB(3,LZ,t.singleDatePicker,!t.singleDatePicker)),e.xp6(2),e.Q6J("ngIf",t.calendarVariables),e.xp6(1),e.Q6J("ngIf",t.timePicker)}}function YZ(r,a){1&r&&e._UZ(0,"th")}function NZ(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"th",18),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.clickPrev(n.sideEnum.right))}),e.qZA(),e.BQk()}}function UZ(r,a){1&r&&(e.ynx(0),e._UZ(1,"th"),e.BQk())}function zZ(r,a){if(1&r&&(e.TgZ(0,"option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(4);e.Q6J("disabled",i.calendarVariables.right.dropdowns.inMinYear&&ti.calendarVariables.right.maxDate.month())("value",t)("selected",i.calendarVariables.right.dropdowns.currentMonth===t),e.xp6(1),e.hij(" ",i.locale.monthNames[t]," ")}}function HZ(r,a){if(1&r&&(e.TgZ(0,"option",25),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(4);e.Q6J("selected",t===i.calendarVariables.right.dropdowns.currentYear),e.xp6(1),e.hij(" ",t," ")}}function GZ(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",19),e._uU(2),e.TgZ(3,"select",20),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.monthChanged(n,o.sideEnum.right))}),e.YNc(4,zZ,2,4,"option",21),e.qZA()(),e.TgZ(5,"div",19),e._uU(6),e.TgZ(7,"select",22),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.yearChanged(n,o.sideEnum.right))}),e.YNc(8,HZ,2,2,"option",23),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(3);e.xp6(2),e.hij(" ",t.locale.monthNames[null==t.calendarVariables||null==t.calendarVariables.right?null:t.calendarVariables.right.calendar[1][1].month()]," "),e.xp6(2),e.Q6J("ngForOf",t.calendarVariables.right.dropdowns.monthArrays),e.xp6(2),e.hij(" ",null==t.calendarVariables||null==t.calendarVariables.right?null:t.calendarVariables.right.calendar[1][1].format(" YYYY")," "),e.xp6(2),e.Q6J("ngForOf",t.calendarVariables.right.dropdowns.yearArrays)}}function ZZ(r,a){if(1&r&&(e.ynx(0),e._uU(1),e.BQk()),2&r){const t=e.oxw(3);e.xp6(1),e.AsE(" ",t.locale.monthNames[null==t.calendarVariables||null==t.calendarVariables.right?null:t.calendarVariables.right.calendar[1][1].month()]," ",null==t.calendarVariables||null==t.calendarVariables.right?null:t.calendarVariables.right.calendar[1][1].format(" YYYY")," ")}}function JZ(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"th",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.clickNext(n.sideEnum.right))}),e.qZA(),e.BQk()}}function jZ(r,a){1&r&&(e.ynx(0),e._UZ(1,"th"),e.BQk())}function VZ(r,a){if(1&r&&(e.TgZ(0,"th",27)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw(3);e.xp6(2),e.Oqu(t.locale.weekLabel)}}function WZ(r,a){if(1&r&&(e.TgZ(0,"th")(1,"span"),e._uU(2),e.qZA()()),2&r){const t=a.$implicit;e.xp6(2),e.Oqu(t)}}function KZ(r,a){if(1&r&&(e.TgZ(0,"td",27)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(2),e.Oqu(i.calendarVariables.right.calendar[t][0].week())}}function qZ(r,a){if(1&r&&(e.TgZ(0,"td",27)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(2),e.Oqu(i.calendarVariables.right.calendar[t][0].isoWeek())}}function XZ(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",29),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw().$implicit,g=e.oxw(3);return e.KtG(g.clickDate(n,g.sideEnum.right,c,s))}),e.TgZ(1,"span"),e._uU(2),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw().$implicit,n=e.oxw(3);e.Tol(n.calendarVariables.right.classes[i][t]),e.xp6(2),e.Oqu(n.calendarVariables.right.calendar[i][t].date())}}function $Z(r,a){if(1&r&&(e.TgZ(0,"tr"),e.YNc(1,KZ,3,1,"td",15),e.YNc(2,qZ,3,1,"td",15),e.YNc(3,XZ,3,3,"td",28),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.Tol(i.calendarVariables.right.classes[t].classList),e.xp6(1),e.Q6J("ngIf",i.showWeekNumbers),e.xp6(1),e.Q6J("ngIf",i.showISOWeekNumbers),e.xp6(1),e.Q6J("ngForOf",i.calendarVariables.right.calCols)}}function e7(r,a){if(1&r&&(e.TgZ(0,"table",12)(1,"thead")(2,"tr"),e.YNc(3,YZ,1,0,"th",13),e.YNc(4,NZ,2,0,"ng-container",13),e.YNc(5,UZ,2,0,"ng-container",13),e.TgZ(6,"th",45),e.YNc(7,GZ,9,4,"ng-container",13),e.YNc(8,ZZ,2,2,"ng-container",13),e.qZA(),e.YNc(9,JZ,2,0,"ng-container",13),e.YNc(10,jZ,2,0,"ng-container",13),e.qZA(),e.TgZ(11,"tr"),e.YNc(12,VZ,3,1,"th",15),e.YNc(13,WZ,3,1,"th",3),e.qZA()(),e.TgZ(14,"tbody"),e.YNc(15,$Z,4,5,"tr",17),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(3),e.Q6J("ngIf",t.showWeekNumbers||t.showISOWeekNumbers),e.xp6(1),e.Q6J("ngIf",(!t.calendarVariables.right.minDate||t.calendarVariables.right.minDate.isBefore(t.calendarVariables.right.calendar.firstDay))&&!t.linkedCalendars),e.xp6(1),e.Q6J("ngIf",!((!t.calendarVariables.right.minDate||t.calendarVariables.right.minDate.isBefore(t.calendarVariables.right.calendar.firstDay))&&!t.linkedCalendars)),e.xp6(2),e.Q6J("ngIf",t.showDropdowns&&t.calendarVariables.right.dropdowns),e.xp6(1),e.Q6J("ngIf",!t.showDropdowns||!t.calendarVariables.right.dropdowns),e.xp6(1),e.Q6J("ngIf",!t.calendarVariables.right.maxDate||t.calendarVariables.right.maxDate.isAfter(t.calendarVariables.right.calendar.lastDay)&&(!t.linkedCalendars||t.singleDatePicker||!0)),e.xp6(1),e.Q6J("ngIf",!(!t.calendarVariables.right.maxDate||t.calendarVariables.right.maxDate.isAfter(t.calendarVariables.right.calendar.lastDay))),e.xp6(2),e.Q6J("ngIf",t.showWeekNumbers||t.showISOWeekNumbers),e.xp6(1),e.Q6J("ngForOf",t.locale.daysOfWeek),e.xp6(2),e.Q6J("ngForOf",t.calendarVariables.right.calRows)}}function t7(r,a){if(1&r&&(e.TgZ(0,"option",39),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.Q6J("value",t)("disabled",i.timepickerVariables.right.disabledHours.indexOf(t)>-1),e.xp6(1),e.Oqu(t)}}function n7(r,a){if(1&r&&(e.TgZ(0,"option",39),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(3);e.Q6J("value",t)("disabled",n.timepickerVariables.right.disabledMinutes.indexOf(t)>-1),e.xp6(1),e.Oqu(n.timepickerVariables.right.minutesLabel[i])}}function r7(r,a){if(1&r&&(e.TgZ(0,"option",39),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(4);e.Q6J("value",t)("disabled",n.timepickerVariables.right.disabledSeconds.indexOf(t)>-1),e.xp6(1),e.Oqu(n.timepickerVariables.right.secondsLabel[i])}}function o7(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"select",40),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timepickerVariables.right.selectedSecond=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timeChanged(n,o.sideEnum.right))}),e.YNc(1,r7,2,3,"option",33),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",!t.endDate)("ngModel",t.timepickerVariables.right.selectedSecond),e.xp6(1),e.Q6J("ngForOf",t.timepickerVariables.right.seconds)}}function a7(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"select",41),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timepickerVariables.right.ampmModel=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.timeChanged(n,o.sideEnum.right))}),e.TgZ(1,"option",42),e._uU(2,"AM"),e.qZA(),e.TgZ(3,"option",43),e._uU(4,"PM"),e.qZA()()}if(2&r){const t=e.oxw(3);e.Q6J("ngModel",t.timepickerVariables.right.ampmModel),e.xp6(1),e.Q6J("disabled",t.timepickerVariables.right.amDisabled),e.xp6(2),e.Q6J("disabled",t.timepickerVariables.right.pmDisabled)}}function s7(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"div",31)(2,"select",46),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timepickerVariables.right.selectedHour=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timeChanged(n,o.sideEnum.right))}),e.YNc(3,t7,2,3,"option",33),e.qZA(),e._UZ(4,"span",35)(5,"span",36),e.qZA(),e.TgZ(6,"div",31)(7,"select",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timepickerVariables.right.selectedMinute=n)})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.timeChanged(n,o.sideEnum.right))}),e.YNc(8,n7,2,3,"option",33),e.qZA(),e._UZ(9,"span",35)(10,"span",36),e.qZA(),e.TgZ(11,"div",31),e.YNc(12,o7,2,3,"select",37),e._UZ(13,"span",35)(14,"span",36),e.qZA(),e.TgZ(15,"div",31),e.YNc(16,a7,5,3,"select",38),e._UZ(17,"span",35)(18,"span",36),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Q6J("disabled",!t.endDate)("ngModel",t.timepickerVariables.right.selectedHour),e.xp6(1),e.Q6J("ngForOf",t.timepickerVariables.right.hours),e.xp6(4),e.Q6J("disabled",!t.endDate)("ngModel",t.timepickerVariables.right.selectedMinute),e.xp6(1),e.Q6J("ngForOf",t.timepickerVariables.right.minutes),e.xp6(4),e.Q6J("ngIf",t.timePickerSeconds),e.xp6(4),e.Q6J("ngIf",!t.timePicker24Hour)}}function l7(r,a){if(1&r&&(e.TgZ(0,"div",44)(1,"div",9),e.YNc(2,e7,16,10,"table",10),e.qZA(),e.YNc(3,s7,19,8,"div",11),e.qZA()),2&r){const t=e.oxw();e.xp6(2),e.Q6J("ngIf",t.calendarVariables),e.xp6(1),e.Q6J("ngIf",t.timePicker)}}function c7(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",52),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.clear())}),e.O4$(),e.TgZ(1,"svg",53),e._UZ(2,"path",54),e.qZA()()}}function A7(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",55),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.clickCancel(n))}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Oqu(t.locale.cancelLabel)}}function d7(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",47)(1,"div",48),e.YNc(2,c7,3,0,"button",49),e.YNc(3,A7,2,1,"button",50),e.TgZ(4,"button",51),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.clickApply(n))}),e._uU(5),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(2),e.Q6J("ngIf",t.showClearButton),e.xp6(1),e.Q6J("ngIf",t.showCancel),e.xp6(1),e.Q6J("disabled",t.applyBtn.disabled),e.xp6(1),e.Oqu(t.locale.applyLabel)}}const u7=function(r,a,t,i,n,o,s){return{ltr:r,rtl:a,shown:t,hidden:i,inline:n,double:o,"show-ranges":s}},Ac=vC;var Ul=function(r){return r.left="left",r.right="right",r}(Ul||{});let h7=(()=>{class r{el;_ref;_localeService;_old={start:null,end:null};chosenLabel;calendarVariables={left:{},right:{}};timepickerVariables={left:{},right:{}};daterangepicker={start:new li,end:new li};applyBtn={disabled:!1};startDate=Ac().startOf("day");endDate=Ac().endOf("day");dateLimit=null;sideEnum=Ul;minDate=null;maxDate=null;autoApply=!1;singleDatePicker=!1;showDropdowns=!1;showWeekNumbers=!1;showISOWeekNumbers=!1;linkedCalendars=!1;autoUpdateInput=!0;alwaysShowCalendars=!1;maxSpan=!1;timePicker=!1;timePicker24Hour=!1;timePickerIncrement=1;timePickerSeconds=!1;showClearButton=!1;firstMonthDayClass=null;lastMonthDayClass=null;emptyWeekRowClass=null;firstDayOfNextMonthClass=null;lastDayOfPreviousMonthClass=null;_locale={};set locale(t){this._locale={...this._localeService.config,...t}}get locale(){return this._locale}_ranges={};set ranges(t){this._ranges=t,this.renderRanges()}get ranges(){return this._ranges}showCustomRangeLabel;showCancel=!1;keepCalendarOpeningWithRange=!1;showRangeLabelOnInput=!1;chosenRange;rangesArray=[];isShown=!1;inline=!0;leftCalendar={};rightCalendar={};showCalInRanges=!1;options={};drops;opens;choosedDate;rangeClicked;datesUpdated;pickerContainer;constructor(t,i,n){this.el=t,this._ref=i,this._localeService=n,this.choosedDate=new e.vpe,this.rangeClicked=new e.vpe,this.datesUpdated=new e.vpe}ngOnInit(){this._buildLocale();const t=[...this.locale.daysOfWeek];if(0!=this.locale.firstDay)for(var i=this.locale.firstDay;i>0;)t.push(t.shift()),i--;this.locale.daysOfWeek=t,this.inline&&(this._old.start=this.startDate.clone(),this._old.end=this.endDate.clone()),this.updateMonthsInView(),this.renderCalendar(Ul.left),this.renderCalendar(Ul.right),this.renderRanges()}renderRanges(){let t,i;if(this.rangesArray=[],"object"==typeof this.ranges){for(const c in this.ranges){t="string"==typeof this.ranges[c][0]?Ac(this.ranges[c][0],this.locale.format):Ac(this.ranges[c][0]),i="string"==typeof this.ranges[c][1]?Ac(this.ranges[c][1],this.locale.format):Ac(this.ranges[c][1]),this.minDate&&t.isBefore(this.minDate)&&(t=this.minDate.clone());var n=this.maxDate;if(this.maxSpan&&n&&t.clone().add(this.maxSpan).isAfter(n)&&(n=t.clone().add(this.maxSpan)),n&&i.isAfter(n)&&(i=n.clone()),!(this.minDate&&i.isBefore(this.minDate,this.timePicker?"minute":"day")||n&&t.isAfter(n,this.timePicker?"minute":"day"))){var o=document.createElement("textarea");o.innerHTML=c,this.ranges[o.value]=[t,i]}}for(const c in this.ranges)this.rangesArray.push(c);this.showCustomRangeLabel&&this.rangesArray.push(this.locale.customRangeLabel),this.showCalInRanges=!this.rangesArray.length||this.alwaysShowCalendars,this.timePicker||(this.startDate=this.startDate.startOf("day"),this.endDate=this.endDate.endOf("day")),this.timePicker&&this.autoApply&&(this.autoApply=!1)}}renderTimePicker(t){if(t==Ul.right&&!this.endDate)return;let i,n,o=this.maxDate;t===Ul.left?(i=this.startDate.clone(),n=this.minDate):t===Ul.right&&(i=this.endDate.clone(),n=this.startDate);const s=this.timePicker24Hour?0:1,c=this.timePicker24Hour?23:12;this.timepickerVariables[t]={hours:[],minutes:[],minutesLabel:[],seconds:[],secondsLabel:[],disabledHours:[],disabledMinutes:[],disabledSeconds:[],selectedHour:0,selectedMinute:0,selectedSecond:0};for(let nt=s;nt<=c;nt++){let Ft=nt;this.timePicker24Hour||(Ft=i.hour()>=12?12==nt?12:nt+12:12==nt?0:nt);let ei=i.clone().hour(Ft),pi=!1;n&&ei.minute(59).isBefore(n)&&(pi=!0),o&&ei.minute(0).isAfter(o)&&(pi=!0),this.timepickerVariables[t].hours.push(nt),Ft!=i.hour()||pi?pi&&this.timepickerVariables[t].disabledHours.push(nt):this.timepickerVariables[t].selectedHour=nt}for(var g=0;g<60;g+=this.timePickerIncrement){var B=g<10?"0"+g:g,O=i.clone().minute(g),ne=!1;n&&O.second(59).isBefore(n)&&(ne=!0),o&&O.second(0).isAfter(o)&&(ne=!0),this.timepickerVariables[t].minutes.push(g),this.timepickerVariables[t].minutesLabel.push(B),i.minute()!=g||ne?ne&&this.timepickerVariables[t].disabledMinutes.push(g):this.timepickerVariables[t].selectedMinute=g}if(this.timePickerSeconds)for(g=0;g<60;g++)B=g<10?"0"+g:g,O=i.clone().second(g),ne=!1,n&&O.isBefore(n)&&(ne=!0),o&&O.isAfter(o)&&(ne=!0),this.timepickerVariables[t].seconds.push(g),this.timepickerVariables[t].secondsLabel.push(B),i.second()!=g||ne?ne&&this.timepickerVariables[t].disabledSeconds.push(g):this.timepickerVariables[t].selectedSecond=g;this.timePicker24Hour||(n&&i.clone().hour(12).minute(0).second(0).isBefore(n)&&(this.timepickerVariables[t].amDisabled=!0),o&&i.clone().hour(0).minute(0).second(0).isAfter(o)&&(this.timepickerVariables[t].pmDisabled=!0),this.timepickerVariables[t].ampmModel=i.hour()>=12?"PM":"AM"),this.timepickerVariables[t].selected=i}renderCalendar(t){let i=t===Ul.left?this.leftCalendar:this.rightCalendar;const n=i.month.month(),o=i.month.year(),s=i.month.hour(),c=i.month.minute(),g=i.month.second(),B=Ac([o,n]).daysInMonth(),O=Ac([o,n,1]),ne=Ac([o,n,B]),we=Ac(O).subtract(1,"month").month(),$e=Ac(O).subtract(1,"month").year(),nt=Ac([$e,we]).daysInMonth(),Ft=O.day();let ei=[];ei.firstDay=O,ei.lastDay=ne;for(let vn=0;vn<6;vn++)ei[vn]=[];let pi=nt-Ft+this.locale.firstDay+1;pi>nt&&(pi-=7),Ft===this.locale.firstDay&&(pi=nt-6);let Di=Ac([$e,we,pi,12,c,g]);for(let vn=0,gn=0,Vn=0;vn<42;vn++,gn++,Di=Ac(Di).add(24,"hour"))vn>0&&gn%7==0&&(gn=0,Vn++),ei[Vn][gn]=Di.clone().hour(s).minute(c).second(g),Di.hour(12),this.minDate&&ei[Vn][gn].format("YYYY-MM-DD")===this.minDate.format("YYYY-MM-DD")&&ei[Vn][gn].isBefore(this.minDate)&&"left"===t&&(ei[Vn][gn]=this.minDate.clone()),this.maxDate&&ei[Vn][gn].format("YYYY-MM-DD")===this.maxDate.format("YYYY-MM-DD")&&ei[Vn][gn].isAfter(this.maxDate)&&"right"===t&&(ei[Vn][gn]=this.maxDate.clone());t===Ul.left?this.leftCalendar.calendar=ei:this.rightCalendar.calendar=ei;const Ri="left"===t?this.minDate:this.startDate;let Wi=this.maxDate;if(null===this.endDate&&this.dateLimit){const vn=this.startDate.clone().add(this.dateLimit,"day").endOf("day");(!Wi||vn.isBefore(Wi))&&(Wi=vn)}if(this.calendarVariables[t]={month:n,year:o,hour:s,minute:c,second:g,daysInMonth:B,firstDay:O,lastDay:ne,lastMonth:we,lastYear:$e,daysInLastMonth:nt,dayOfWeek:Ft,calRows:Array.from(Array(6).keys()),calCols:Array.from(Array(7).keys()),classes:{},minDate:Ri,maxDate:Wi,calendar:ei},this.showDropdowns){const vn=ei[1][1].month(),gn=ei[1][1].year(),Vn=Wi&&Wi.year()||gn+5,tr=Ri&&Ri.year()||gn-50,pr=gn===tr,go=gn===Vn,no=[];for(var Ki=tr;Ki<=Vn;Ki++)no.push(Ki);this.calendarVariables[t].dropdowns={currentMonth:vn,currentYear:gn,maxYear:Vn,minYear:tr,inMinYear:pr,inMaxYear:go,monthArrays:Array.from(Array(12).keys()),yearArrays:no}}this._buildCells(ei,t)}setStartDate(t){"string"==typeof t&&(this.startDate=Ac(t,this.locale.format)),"object"==typeof t&&(this.startDate=Ac(t)),this.timePicker||(this.startDate=this.startDate.startOf("day")),this.timePicker&&this.timePickerIncrement&&this.startDate.minute(Math.round(this.startDate.minute()/this.timePickerIncrement)*this.timePickerIncrement),this.minDate&&this.startDate.isBefore(this.minDate)&&(this.startDate=this.minDate.clone(),this.timePicker&&this.timePickerIncrement&&this.startDate.minute(Math.round(this.startDate.minute()/this.timePickerIncrement)*this.timePickerIncrement)),this.maxDate&&this.startDate.isAfter(this.maxDate)&&(this.startDate=this.maxDate.clone(),this.timePicker&&this.timePickerIncrement&&this.startDate.minute(Math.floor(this.startDate.minute()/this.timePickerIncrement)*this.timePickerIncrement)),this.isShown||this.updateElement(),this.updateMonthsInView()}setEndDate(t){"string"==typeof t&&(this.endDate=Ac(t,this.locale.format)),"object"==typeof t&&(this.endDate=Ac(t)),this.timePicker||(this.endDate=this.endDate.add(1,"d").startOf("day").subtract(1,"second")),this.timePicker&&this.timePickerIncrement&&this.endDate.minute(Math.round(this.endDate.minute()/this.timePickerIncrement)*this.timePickerIncrement),this.endDate.isBefore(this.startDate)&&(this.endDate=this.startDate.clone()),this.maxDate&&this.endDate.isAfter(this.maxDate)&&(this.endDate=this.maxDate.clone()),this.dateLimit&&this.startDate.clone().add(this.dateLimit,"day").isBefore(this.endDate)&&(this.endDate=this.startDate.clone().add(this.dateLimit,"day")),this.updateMonthsInView()}isInvalidDate(t){return!1}isCustomDate(t){return!1}updateView(){this.timePicker&&(this.renderTimePicker(Ul.left),this.renderTimePicker(Ul.right)),this.updateMonthsInView(),this.updateCalendars()}updateMonthsInView(){if(this.endDate){if(!this.singleDatePicker&&this.leftCalendar.month&&this.rightCalendar.month&&(this.startDate&&this.leftCalendar&&this.startDate.format("YYYY-MM")===this.leftCalendar.month.format("YYYY-MM")||this.startDate&&this.rightCalendar&&this.startDate.format("YYYY-MM")===this.rightCalendar.month.format("YYYY-MM"))&&(this.endDate.format("YYYY-MM")===this.leftCalendar.month.format("YYYY-MM")||this.endDate.format("YYYY-MM")===this.rightCalendar.month.format("YYYY-MM")))return;this.startDate&&(this.leftCalendar.month=this.startDate.clone().date(2),this.rightCalendar.month=this.linkedCalendars||this.endDate.month()===this.startDate.month()&&this.endDate.year()===this.startDate.year()?this.startDate.clone().date(2).add(1,"month"):this.endDate.clone().date(2))}else this.leftCalendar.month.format("YYYY-MM")!==this.startDate.format("YYYY-MM")&&this.rightCalendar.month.format("YYYY-MM")!==this.startDate.format("YYYY-MM")&&(this.leftCalendar.month=this.startDate.clone().date(2),this.rightCalendar.month=this.startDate.clone().date(2).add(1,"month"));this.maxDate&&this.linkedCalendars&&!this.singleDatePicker&&this.rightCalendar.month>this.maxDate&&(this.rightCalendar.month=this.maxDate.clone().date(2),this.leftCalendar.month=this.maxDate.clone().date(2).subtract(1,"month"))}updateCalendars(){this.renderCalendar(Ul.left),this.renderCalendar(Ul.right),null!==this.endDate&&this.calculateChosenLabel()}updateElement(){!this.singleDatePicker&&this.autoUpdateInput?this.startDate&&this.endDate&&(this.chosenLabel=this.rangesArray.length&&!0===this.showRangeLabelOnInput&&this.chosenRange&&this.locale.customRangeLabel!==this.chosenRange?this.chosenRange:this.startDate.format(this.locale.format)+this.locale.separator+this.endDate.format(this.locale.format)):this.autoUpdateInput&&(this.chosenLabel=this.startDate.format(this.locale.format))}remove(){this.isShown=!1}calculateChosenLabel(){(!this.locale||!this.locale.separator)&&this._buildLocale();let t=!0,i=0;if(this.rangesArray.length>0){for(const o in this.ranges){if(this.timePicker){var n=this.timePickerSeconds?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD HH:mm";if(this.startDate.format(n)==this.ranges[o][0].format(n)&&this.endDate.format(n)==this.ranges[o][1].format(n)){t=!1,this.chosenRange=this.rangesArray[i];break}}else if(this.startDate.format("YYYY-MM-DD")==this.ranges[o][0].format("YYYY-MM-DD")&&this.endDate.format("YYYY-MM-DD")==this.ranges[o][1].format("YYYY-MM-DD")){t=!1,this.chosenRange=this.rangesArray[i];break}i++}t&&(this.chosenRange=this.showCustomRangeLabel?this.locale.customRangeLabel:null,this.showCalInRanges=!0)}this.updateElement()}clickApply(t){if(!this.singleDatePicker&&this.startDate&&!this.endDate&&(this.endDate=this.startDate.clone(),this.calculateChosenLabel()),this.isInvalidDate&&this.startDate&&this.endDate){let i=this.startDate.clone();for(;i.isBefore(this.endDate);){if(this.isInvalidDate(i)){this.endDate=i.subtract(1,"days"),this.calculateChosenLabel();break}i.add(1,"days")}}this.chosenLabel&&this.choosedDate.emit({chosenLabel:this.chosenLabel,startDate:this.startDate,endDate:this.endDate}),this.datesUpdated.emit({startDate:this.startDate,endDate:this.endDate}),this.hide()}clickCancel(t){this.startDate=this._old.start,this.endDate=this._old.end,this.inline&&this.updateView(),this.hide()}monthChanged(t,i){const n=this.calendarVariables[i].dropdowns.currentYear,o=parseInt(t.target.value,10);this.monthOrYearChanged(o,n,i)}yearChanged(t,i){const n=this.calendarVariables[i].dropdowns.currentMonth,o=parseInt(t.target.value,10);this.monthOrYearChanged(n,o,i)}timeChanged(t,i){var n=parseInt(this.timepickerVariables[i].selectedHour,10),o=parseInt(this.timepickerVariables[i].selectedMinute,10),s=this.timePickerSeconds?parseInt(this.timepickerVariables[i].selectedSecond,10):0;if(!this.timePicker24Hour){var c=this.timepickerVariables[i].ampmModel;"PM"===c&&n<12&&(n+=12),"AM"===c&&12===n&&(n=0)}if(i===Ul.left){var g=this.startDate.clone();g.hour(n),g.minute(o),g.second(s),this.setStartDate(g),this.singleDatePicker?this.endDate=this.startDate.clone():this.endDate&&this.endDate.format("YYYY-MM-DD")==g.format("YYYY-MM-DD")&&this.endDate.isBefore(g)&&this.setEndDate(g.clone())}else if(this.endDate){var B=this.endDate.clone();B.hour(n),B.minute(o),B.second(s),this.setEndDate(B)}this.updateCalendars(),this.renderTimePicker(Ul.left),this.renderTimePicker(Ul.right)}monthOrYearChanged(t,i,n){const o=n===Ul.left;o||(ithis.maxDate.year()||i===this.maxDate.year()&&t>this.maxDate.month())&&(t=this.maxDate.month(),i=this.maxDate.year()),this.calendarVariables[n].dropdowns.currentYear=i,this.calendarVariables[n].dropdowns.currentMonth=t,o?(this.leftCalendar.month.month(t).year(i),this.linkedCalendars&&(this.rightCalendar.month=this.leftCalendar.month.clone().add(1,"month"))):(this.rightCalendar.month.month(t).year(i),this.linkedCalendars&&(this.leftCalendar.month=this.rightCalendar.month.clone().subtract(1,"month"))),this.updateCalendars()}clickPrev(t){t===Ul.left?(this.leftCalendar.month.subtract(1,"month"),this.linkedCalendars&&this.rightCalendar.month.subtract(1,"month")):this.rightCalendar.month.subtract(1,"month"),this.updateCalendars()}clickNext(t){t===Ul.left?this.leftCalendar.month.add(1,"month"):(this.rightCalendar.month.add(1,"month"),this.linkedCalendars&&this.leftCalendar.month.add(1,"month")),this.updateCalendars()}clickDate(t,i,n,o){if("TD"===t.target.tagName){if(!t.target.classList.contains("available"))return}else if("SPAN"===t.target.tagName&&!t.target.parentElement.classList.contains("available"))return;this.rangesArray.length&&(this.chosenRange=this.locale.customRangeLabel);let s=i===Ul.left?this.leftCalendar.calendar[n][o]:this.rightCalendar.calendar[n][o];this.endDate||s.isBefore(this.startDate,"day")?(this.timePicker&&(s=this._getDateWithTime(s,Ul.left)),this.endDate=null,this.setStartDate(s.clone())):!this.endDate&&s.isBefore(this.startDate)?this.setEndDate(this.startDate.clone()):(this.timePicker&&(s=this._getDateWithTime(s,Ul.right)),this.setEndDate(s.clone()),this.autoApply&&(this.calculateChosenLabel(),this.clickApply())),this.singleDatePicker&&(this.setEndDate(this.startDate),this.updateElement(),this.autoApply&&this.clickApply()),this.updateView(),t.stopPropagation()}clickRange(t,i){if(this.chosenRange=i,i==this.locale.customRangeLabel)this.isShown=!0,this.showCalInRanges=!0;else{var n=this.ranges[i];this.startDate=n[0].clone(),this.endDate=n[1].clone(),this.showRangeLabelOnInput&&i!==this.locale.customRangeLabel?this.chosenLabel=i:this.calculateChosenLabel(),this.showCalInRanges=!this.rangesArray.length||this.alwaysShowCalendars,this.timePicker||(this.startDate.startOf("day"),this.endDate.endOf("day")),this.alwaysShowCalendars||(this.isShown=!1),this.rangeClicked.emit({label:i,dates:n}),this.keepCalendarOpeningWithRange?(this.leftCalendar.month.month(n[0].month()),this.leftCalendar.month.year(n[0].year()),this.rightCalendar.month.month(n[1].month()),this.rightCalendar.month.year(n[1].year()),this.updateCalendars(),this.timePicker&&(this.renderTimePicker(Ul.left),this.renderTimePicker(Ul.right))):this.clickApply()}}show(t){this.isShown||(this._old.start=this.startDate.clone(),this._old.end=this.endDate.clone(),this.isShown=!0,this.updateView())}hide(t){this.isShown&&(this.endDate||(this._old.start&&(this.startDate=this._old.start.clone()),this._old.end&&(this.endDate=this._old.end.clone())),!this.startDate.isSame(this._old.start)||this.endDate.isSame(this._old.end),this.updateElement(),this.isShown=!1,this._ref.detectChanges())}handleInternalClick(t){t.stopPropagation()}updateLocale(t){for(const i in t)t.hasOwnProperty(i)&&(this.locale[i]=t[i])}clear(){this.startDate=Ac().startOf("day"),this.endDate=Ac().endOf("day"),this.choosedDate.emit({chosenLabel:"",startDate:null,endDate:null}),this.datesUpdated.emit({startDate:null,endDate:null}),this.hide()}disableRange(t){if(t===this.locale.customRangeLabel)return!1;const i=this.ranges[t],n=i.every(s=>!!this.minDate&&s.isBefore(this.minDate)),o=i.every(s=>!!this.maxDate&&s.isAfter(this.maxDate));return n||o}_getDateWithTime(t,i){let n=parseInt(this.timepickerVariables[i].selectedHour,10);if(!this.timePicker24Hour){var o=this.timepickerVariables[i].ampmModel;"PM"===o&&n<12&&(n+=12),"AM"===o&&12===n&&(n=0)}var s=parseInt(this.timepickerVariables[i].selectedMinute,10),c=this.timePickerSeconds?parseInt(this.timepickerVariables[i].selectedSecond,10):0;return t.clone().hour(n).minute(s).second(c)}_buildLocale(){this.locale={...this._localeService.config,...this.locale},this.locale.format||(this.locale.format=this.timePicker?Ac.localeData().longDateFormat("lll"):Ac.localeData().longDateFormat("L"))}_buildCells(t,i){for(let n=0;n<6;n++){this.calendarVariables[i].classes[n]={};const o=[];this.emptyWeekRowClass&&!this.hasCurrentMonthDays(this.calendarVariables[i].month,t[n])&&o.push(this.emptyWeekRowClass);for(let s=0;s<7;s++){const c=[];t[n][s].isSame(new Date,"day")&&c.push("today"),t[n][s].isoWeekday()>5&&c.push("weekend"),t[n][s].month()!==t[1][1].month()&&(c.push("off"),this.lastDayOfPreviousMonthClass&&(t[n][s].month()t[1][1].month()||0===t[n][s].month())&&1===t[n][s].date()&&c.push(this.firstDayOfNextMonthClass)),this.firstMonthDayClass&&t[n][s].month()===t[1][1].month()&&t[n][s].date()===t.firstDay.date()&&c.push(this.firstMonthDayClass),this.lastMonthDayClass&&t[n][s].month()===t[1][1].month()&&t[n][s].date()===t.lastDay.date()&&c.push(this.lastMonthDayClass),this.minDate&&t[n][s].isBefore(this.minDate,"day")&&c.push("off","disabled"),this.calendarVariables[i].maxDate&&t[n][s].isAfter(this.calendarVariables[i].maxDate,"day")&&c.push("off","disabled"),this.isInvalidDate(t[n][s])&&c.push("off","disabled"),this.startDate&&t[n][s].format("YYYY-MM-DD")===this.startDate.format("YYYY-MM-DD")&&c.push("active","start-date"),null!=this.endDate&&t[n][s].format("YYYY-MM-DD")===this.endDate.format("YYYY-MM-DD")&&c.push("active","end-date"),null!=this.endDate&&t[n][s]>this.startDate&&t[n][s]r),multi:!0}])],decls:8,vars:15,consts:[[1,"md-drppicker",3,"ngClass"],["pickerContainer",""],[1,"ranges"],[4,"ngFor","ngForOf"],["class","calendar",3,"ngClass",4,"ngIf"],["class","calendar right",4,"ngIf"],["class","buttons",4,"ngIf"],["type","button",3,"disabled","ngClass","click"],[1,"calendar",3,"ngClass"],[1,"calendar-table"],["class","table-condensed",4,"ngIf"],["class","calendar-time",4,"ngIf"],[1,"table-condensed"],[4,"ngIf"],["colspan","5",1,"month","drp-animate"],["class","week",4,"ngIf"],[1,"drp-animate"],[3,"class",4,"ngFor","ngForOf"],[1,"prev","available",3,"click"],[1,"dropdowns"],[1,"monthselect",3,"change"],[3,"disabled","value","selected",4,"ngFor","ngForOf"],[1,"yearselect",3,"change"],[3,"selected",4,"ngFor","ngForOf"],[3,"disabled","value","selected"],[3,"selected"],[1,"next","available",3,"click"],[1,"week"],[3,"class","click",4,"ngFor","ngForOf"],[3,"click"],[1,"calendar-time"],[1,"select"],[1,"hourselect","select-item",3,"disabled","ngModel","ngModelChange"],[3,"value","disabled",4,"ngFor","ngForOf"],[1,"select-item","minuteselect",3,"disabled","ngModel","ngModelChange"],[1,"select-highlight"],[1,"select-bar"],["class","select-item secondselect",3,"disabled","ngModel","ngModelChange",4,"ngIf"],["class","select-item ampmselect",3,"ngModel","ngModelChange",4,"ngIf"],[3,"value","disabled"],[1,"select-item","secondselect",3,"disabled","ngModel","ngModelChange"],[1,"select-item","ampmselect",3,"ngModel","ngModelChange"],["value","AM",3,"disabled"],["value","PM",3,"disabled"],[1,"calendar","right"],["colspan","5",1,"month"],[1,"select-item","hourselect",3,"disabled","ngModel","ngModelChange"],[1,"buttons"],[1,"buttons_input"],["class","btn btn-default clear","type","button","title","clear the date",3,"click",4,"ngIf"],["class","btn btn-default","type","button",3,"click",4,"ngIf"],["type","button",1,"btn",3,"disabled","click"],["type","button","title","clear the date",1,"btn","btn-default","clear",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","30","height","30","viewBox","0 -5 24 24"],["d","M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"],["type","button",1,"btn","btn-default",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1)(2,"div",2)(3,"ul"),e.YNc(4,pZ,3,5,"li",3),e.qZA()(),e.YNc(5,RZ,4,6,"div",4),e.YNc(6,l7,4,2,"div",5),e.YNc(7,d7,6,4,"div",6),e.qZA()),2&i&&(e.Tol("drops-"+n.drops+"-"+n.opens),e.Q6J("ngClass",e.Hh0(7,u7,"ltr"===n.locale.direction,"rtl"===n.locale.direction,n.isShown||n.inline,!n.isShown&&!n.inline,n.inline,!n.singleDatePicker&&n.showCalInRanges,n.rangesArray.length)),e.xp6(4),e.Q6J("ngForOf",n.rangesArray),e.xp6(1),e.Q6J("ngIf",n.showCalInRanges),e.xp6(1),e.Q6J("ngIf",n.showCalInRanges&&!n.singleDatePicker),e.xp6(1),e.Q6J("ngIf",!n.autoApply&&(!n.rangesArray.length||n.showCalInRanges&&!n.singleDatePicker)))},dependencies:[l.mk,l.sg,l.O5,ht,Ui,Ye,et,$i],styles:['.md-drppicker{position:absolute;font-family:Roboto,sans-serif;color:inherit;border-radius:4px;width:278px;padding:4px;margin-top:-10px;overflow:hidden;z-index:1000;font-size:14px;background-color:#fff;box-shadow:0 2px 4px #00000029,0 2px 8px #0000001f}.md-drppicker.double{width:auto}.md-drppicker.inline{position:relative;display:inline-block}.md-drppicker:before,.md-drppicker:after{position:absolute;display:inline-block;border-bottom-color:#0003;content:""}.md-drppicker.openscenter:before{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.md-drppicker.openscenter:after{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.md-drppicker.single .ranges,.md-drppicker.single .calendar{float:none}.md-drppicker.shown{transform:scale(1);transition:all .1s ease-in-out;transform-origin:0 0;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.md-drppicker.shown.drops-up-left{transform-origin:100% 100%}.md-drppicker.shown.drops-up-right{transform-origin:0 100%}.md-drppicker.shown.drops-down-left{transform-origin:100% 0}.md-drppicker.shown.drops-down-right{transform-origin:0 0}.md-drppicker.shown.drops-down-center{transform-origin:calc(NaN * 1%)}.md-drppicker.shown.drops-up-center{transform-origin:50%}.md-drppicker.shown .calendar{display:block}.md-drppicker.hidden{transition:all .1s ease;transform:scale(0);transform-origin:0 0;cursor:default;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.md-drppicker.hidden.drops-up-left{transform-origin:100% 100%}.md-drppicker.hidden.drops-up-right{transform-origin:0 100%}.md-drppicker.hidden.drops-down-left{transform-origin:100% 0}.md-drppicker.hidden.drops-down-right{transform-origin:0 0}.md-drppicker.hidden.drops-down-center{transform-origin:calc(NaN * 1%)}.md-drppicker.hidden.drops-up-center{transform-origin:50%}.md-drppicker.hidden .calendar{display:none}.md-drppicker .calendar{max-width:270px;margin:4px}.md-drppicker .calendar.single .calendar-table{border:none}.md-drppicker .calendar th,.md-drppicker .calendar td{padding:0;white-space:nowrap;text-align:center;min-width:32px}.md-drppicker .calendar th span,.md-drppicker .calendar td span{pointer-events:none}.md-drppicker .calendar-table{border:1px solid #fff;padding:4px;border-radius:4px;background-color:#fff}.md-drppicker table{width:100%;margin:0}.md-drppicker th{color:#988c8c}.md-drppicker td,.md-drppicker th{text-align:center;width:20px;height:20px;border-radius:4px;border:1px solid transparent;white-space:nowrap;cursor:pointer;height:2em;width:2em}.md-drppicker td.available.prev,.md-drppicker th.available.prev{display:block;background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K);background-repeat:no-repeat;background-size:.5em;background-position:center;opacity:.8;transition:background-color .2s ease;border-radius:2em}.md-drppicker td.available.prev:hover,.md-drppicker th.available.prev:hover{margin:0}.md-drppicker td.available.next,.md-drppicker th.available.next{transform:rotate(180deg);display:block;background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K);background-repeat:no-repeat;background-size:.5em;background-position:center;opacity:.8;transition:background-color .2s ease;border-radius:2em}.md-drppicker td.available.next:hover,.md-drppicker th.available.next:hover{margin:0;transform:rotate(180deg)}.md-drppicker td.available:hover,.md-drppicker th.available:hover{background-color:#eee;border-color:transparent;color:inherit;background-repeat:no-repeat;background-size:.5em;background-position:center;margin:.25em 0;opacity:.8;border-radius:2em;transform:scale(1);transition:all .45s cubic-bezier(.23,1,.32,1) 0ms}.md-drppicker td.week,.md-drppicker th.week{font-size:80%;color:#ccc}.md-drppicker td{margin:.25em 0;opacity:.8;transition:background-color .2s ease;border-radius:2em;transform:scale(1);transition:all .45s cubic-bezier(.23,1,.32,1) 0ms}.md-drppicker td.off,.md-drppicker td.off.in-range,.md-drppicker td.off.start-date,.md-drppicker td.off.end-date{background-color:#fff;border-color:transparent;color:#999}.md-drppicker td.in-range{background-color:#dde2e4;border-color:transparent;color:#000;border-radius:0}.md-drppicker td.start-date{border-radius:2em 0 0 2em}.md-drppicker td.end-date{border-radius:0 2em 2em 0}.md-drppicker td.start-date.end-date{border-radius:4px}.md-drppicker td.active{transition:background .3s ease-out;background:rgba(0,0,0,.1)}.md-drppicker td.active,.md-drppicker td.active:hover{background-color:#3f51b5;border-color:transparent;color:#fff}.md-drppicker th.month{width:auto}.md-drppicker td.disabled,.md-drppicker option.disabled{color:#999;cursor:not-allowed;text-decoration:line-through}.md-drppicker .dropdowns{background-repeat:no-repeat;background-size:10px;background-position-y:center;background-position-x:right;width:50px;background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDI1NSAyNTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI1NSAyNTU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0iYXJyb3ctZHJvcC1kb3duIj4KCQk8cG9seWdvbiBwb2ludHM9IjAsNjMuNzUgMTI3LjUsMTkxLjI1IDI1NSw2My43NSAgICIgZmlsbD0iIzk4OGM4YyIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=)}.md-drppicker .dropdowns select{display:inline-block;background-color:#ffffffe6;width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.md-drppicker .dropdowns select.monthselect,.md-drppicker .dropdowns select.yearselect{font-size:12px;padding:1px;height:auto;margin:0;cursor:default}.md-drppicker .dropdowns select.hourselect,.md-drppicker .dropdowns select.minuteselect,.md-drppicker .dropdowns select.secondselect,.md-drppicker .dropdowns select.ampmselect{width:50px;margin:0 auto;background:#eee;border:1px solid #eee;padding:2px;outline:0;font-size:12px}.md-drppicker .dropdowns select.monthselect,.md-drppicker .dropdowns select.yearselect{cursor:pointer;opacity:0;position:absolute;top:0;left:0;margin:0;padding:0}.md-drppicker th.month>div{position:relative;display:inline-block}.md-drppicker .calendar-time{text-align:center;margin:4px auto 0;line-height:30px;position:relative}.md-drppicker .calendar-time .select{display:inline}.md-drppicker .calendar-time .select .select-item{display:inline-block;width:auto;position:relative;font-family:inherit;background-color:transparent;padding:10px 10px 10px 0;font-size:18px;border-radius:0;border:none;border-bottom:1px solid rgba(0,0,0,.12)}.md-drppicker .calendar-time .select .select-item:after{position:absolute;top:18px;right:10px;width:0;height:0;padding:0;content:"";border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(0,0,0,.12);pointer-events:none}.md-drppicker .calendar-time .select .select-item:focus{outline:none}.md-drppicker .calendar-time .select .select-item .select-label{color:#00000042;font-size:16px;font-weight:400;position:absolute;pointer-events:none;left:0;top:10px;transition:.2s ease all}.md-drppicker .calendar-time select.disabled{color:#ccc;cursor:not-allowed}.md-drppicker .label-input{border:1px solid #ccc;border-radius:4px;color:#555;height:30px;line-height:30px;display:block;vertical-align:middle;margin:0 auto 5px;padding:0 0 0 28px;width:100%}.md-drppicker .label-input.active{border:1px solid #08c;border-radius:4px}.md-drppicker .md-drppicker_input{position:relative;padding:0 30px 0 0}.md-drppicker .md-drppicker_input i,.md-drppicker .md-drppicker_input svg{position:absolute;left:8px;top:8px}.md-drppicker.rtl .label-input{padding-right:28px;padding-left:6px}.md-drppicker.rtl .md-drppicker_input i,.md-drppicker.rtl .md-drppicker_input svg{left:auto;right:8px}.md-drppicker .show-ranges .drp-calendar.left{border-left:1px solid #ddd}.md-drppicker .ranges{float:none;text-align:left;margin:0}.md-drppicker .ranges ul{list-style:none;margin:0 auto;padding:0;width:100%}.md-drppicker .ranges ul li{font-size:12px}.md-drppicker .ranges ul li button{padding:8px 12px;width:100%;background:none;border:none;text-align:left;cursor:pointer}.md-drppicker .ranges ul li button.active{background-color:#3f51b5;color:#fff}.md-drppicker .ranges ul li button[disabled]{opacity:.3}.md-drppicker .ranges ul li button:active{background:transparent}.md-drppicker .ranges ul li:hover{background-color:#eee}.md-drppicker .show-calendar .ranges{margin-top:8px}.md-drppicker [hidden]{display:none}.md-drppicker .buttons{text-align:right;margin:0 5px 5px 0}.md-drppicker .btn{position:relative;overflow:hidden;border-width:0;outline:none;padding:0 6px;cursor:pointer;border-radius:2px;box-shadow:0 1px 4px #0009;background-color:#3f51b5;color:#ecf0f1;transition:background-color .4s;height:auto;text-transform:uppercase;line-height:36px;border:none}.md-drppicker .btn:hover,.md-drppicker .btn:focus{background-color:#3f51b5}.md-drppicker .btn>*{position:relative}.md-drppicker .btn span{display:block;padding:12px 24px}.md-drppicker .btn:before{content:"";position:absolute;top:50%;left:50%;display:block;width:0;padding-top:0;border-radius:100%;background-color:#ecf0f14d;transform:translate(-50%,-50%)}.md-drppicker .btn:active:before{width:120%;padding-top:120%;transition:width .2s ease-out,padding-top .2s ease-out}.md-drppicker .btn:disabled{opacity:.5}.md-drppicker .btn.btn-default{color:#000;background-color:#dcdcdc}.md-drppicker .clear{box-shadow:none;background-color:#fff!important}.md-drppicker .clear svg{color:#eb3232;fill:currentColor}@media (min-width: 564px){.md-drppicker{width:auto}.md-drppicker.single .calendar.left{clear:none}.md-drppicker.ltr{direction:ltr;text-align:left}.md-drppicker.ltr .calendar.left{clear:left}.md-drppicker.ltr .calendar.left .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.md-drppicker.ltr .calendar.right{margin-left:0}.md-drppicker.ltr .calendar.right .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.md-drppicker.ltr .left .md-drppicker_input,.md-drppicker.ltr .right .md-drppicker_input{padding-right:35px}.md-drppicker.ltr .calendar.left .calendar-table{padding-right:12px}.md-drppicker.ltr .ranges,.md-drppicker.ltr .calendar{float:left}.md-drppicker.rtl{direction:rtl;text-align:right}.md-drppicker.rtl .calendar.left{clear:right;margin-left:0}.md-drppicker.rtl .calendar.left .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.md-drppicker.rtl .calendar.right{margin-right:0}.md-drppicker.rtl .calendar.right .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.md-drppicker.rtl .left .md-drppicker_input,.md-drppicker.rtl .calendar.left .calendar-table{padding-left:12px}.md-drppicker.rtl .ranges,.md-drppicker.rtl .calendar{text-align:right;float:right}.drp-animate{transform:translate(0);transition:transform .2s ease,opacity .2s ease}.drp-animate.drp-picker-site-this{transition-timing-function:linear}.drp-animate.drp-animate-right{transform:translate(10%);opacity:0}.drp-animate.drp-animate-left{transform:translate(-10%);opacity:0}}@media (min-width: 730px){.md-drppicker .ranges{width:auto}.md-drppicker.ltr .ranges{float:left}.md-drppicker.rtl .ranges{float:right}.md-drppicker .calendar.left{clear:none!important}}\n'],encapsulation:2})}return r})();function vv(r=0,a=bo.z){return r<0&&(r=0),(0,Mo.H)(r,r,a)}var vp=ce(553),wr=ce(1294),Rh=ce(2044),Gc=ce(252),bg=ce(9982),JQ=ce(8331),jQ=ce(7714),VQ=ce(7126);let yv=(()=>{class r{reseWebApiService;resDemoService;resClientService;appService;rcgi;constructor(t,i,n,o){this.reseWebApiService=t,this.resDemoService=i,this.resClientService=n,this.appService=o,this.rcgi=t,!vp.N.serverEnabled||o.isDemoApp?this.rcgi=i:o.isClientApp&&(this.rcgi=n)}uploadFile(t,i){return this.rcgi.uploadFile(t,i)}static \u0275fac=function(i){return new(i||r)(e.LFG(jQ.a),e.LFG(VQ.v),e.LFG(JQ.V),e.LFG(bg.z))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var xg=ce(8333),$E=ce(6973),p7=ce(8407);function eM(r){return(0,sl.e)((a,t)=>{let i=!1;a.subscribe((0,pl.x)(t,n=>{i=!0,t.next(n)},()=>{i||t.next(r),t.complete()}))})}function wO(r=g7){return(0,sl.e)((a,t)=>{let i=!1;a.subscribe((0,pl.x)(t,n=>{i=!0,t.next(n)},()=>i?t.complete():t.error(r())))})}function g7(){return new $E.K}function T0(r,a){const t=arguments.length>=2;return i=>i.pipe(r?(0,Wr.h)((n,o)=>r(n,o,i)):$c.y,(0,yo.q)(1),t?eM(a):wO(()=>new $E.K))}var Kf=ce(6328);function WQ(r){return r<=0?()=>Zu.E:(0,sl.e)((a,t)=>{let i=[];a.subscribe((0,pl.x)(t,n=>{i.push(n),r{for(const n of i)t.next(n);t.complete()},void 0,()=>{i=null}))})}var tM=ce(7537);const oa="primary",BC=Symbol("RouteTitle");class v7{constructor(a){this.params=a||{}}has(a){return Object.prototype.hasOwnProperty.call(this.params,a)}get(a){if(this.has(a)){const t=this.params[a];return Array.isArray(t)?t[0]:t}return null}getAll(a){if(this.has(a)){const t=this.params[a];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function wv(r){return new v7(r)}function y7(r,a,t){const i=t.path.split("/");if(i.length>r.length||"full"===t.pathMatch&&(a.hasChildren()||i.lengthi[o]===n)}return r===a}function bO(r){return r.length>0?r[r.length-1]:null}function qf(r){return(0,BE.b)(r)?r:(0,e.QGY)(r)?(0,v.D)(Promise.resolve(r)):(0,lr.of)(r)}const C7={exact:function EO(r,a,t){if(!I0(r.segments,a.segments)||!iM(r.segments,a.segments,t)||r.numberOfChildren!==a.numberOfChildren)return!1;for(const i in a.children)if(!r.children[i]||!EO(r.children[i],a.children[i],t))return!1;return!0},subset:MO},xO={exact:function b7(r,a){return yp(r,a)},subset:function x7(r,a){return Object.keys(a).length<=Object.keys(r).length&&Object.keys(a).every(t=>CO(r[t],a[t]))},ignored:()=>!0};function BO(r,a,t){return C7[t.paths](r.root,a.root,t.matrixParams)&&xO[t.queryParams](r.queryParams,a.queryParams)&&!("exact"===t.fragment&&r.fragment!==a.fragment)}function MO(r,a,t){return DO(r,a,a.segments,t)}function DO(r,a,t,i){if(r.segments.length>t.length){const n=r.segments.slice(0,t.length);return!(!I0(n,t)||a.hasChildren()||!iM(n,t,i))}if(r.segments.length===t.length){if(!I0(r.segments,t)||!iM(r.segments,t,i))return!1;for(const n in a.children)if(!r.children[n]||!MO(r.children[n],a.children[n],i))return!1;return!0}{const n=t.slice(0,r.segments.length),o=t.slice(r.segments.length);return!!(I0(r.segments,n)&&iM(r.segments,n,i)&&r.children[oa])&&DO(r.children[oa],a,o,i)}}function iM(r,a,t){return a.every((i,n)=>xO[t](r[n].parameters,i.parameters))}class Cv{constructor(a=new Zs([],{}),t={},i=null){this.root=a,this.queryParams=t,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=wv(this.queryParams)),this._queryParamMap}toString(){return M7.serialize(this)}}class Zs{constructor(a,t){this.segments=a,this.children=t,this.parent=null,Object.values(t).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return nM(this)}}class EC{constructor(a,t){this.path=a,this.parameters=t}get parameterMap(){return this._parameterMap||(this._parameterMap=wv(this.parameters)),this._parameterMap}toString(){return kO(this)}}function I0(r,a){return r.length===a.length&&r.every((t,i)=>t.path===a[i].path)}let MC=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:function(){return new KQ},providedIn:"root"})}}return r})();class KQ{parse(a){const t=new R7(a);return new Cv(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(a){const t=`/${DC(a.root,!0)}`,i=function I7(r){const a=Object.keys(r).map(t=>{const i=r[t];return Array.isArray(i)?i.map(n=>`${rM(t)}=${rM(n)}`).join("&"):`${rM(t)}=${rM(i)}`}).filter(t=>!!t);return a.length?`?${a.join("&")}`:""}(a.queryParams);return`${t}${i}${"string"==typeof a.fragment?`#${function D7(r){return encodeURI(r)}(a.fragment)}`:""}`}}const M7=new KQ;function nM(r){return r.segments.map(a=>kO(a)).join("/")}function DC(r,a){if(!r.hasChildren())return nM(r);if(a){const t=r.children[oa]?DC(r.children[oa],!1):"",i=[];return Object.entries(r.children).forEach(([n,o])=>{n!==oa&&i.push(`${n}:${DC(o,!1)}`)}),i.length>0?`${t}(${i.join("//")})`:t}{const t=function E7(r,a){let t=[];return Object.entries(r.children).forEach(([i,n])=>{i===oa&&(t=t.concat(a(n,i)))}),Object.entries(r.children).forEach(([i,n])=>{i!==oa&&(t=t.concat(a(n,i)))}),t}(r,(i,n)=>n===oa?[DC(r.children[oa],!1)]:[`${n}:${DC(i,!1)}`]);return 1===Object.keys(r.children).length&&null!=r.children[oa]?`${nM(r)}/${t[0]}`:`${nM(r)}/(${t.join("//")})`}}function TO(r){return encodeURIComponent(r).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function rM(r){return TO(r).replace(/%3B/gi,";")}function qQ(r){return TO(r).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function oM(r){return decodeURIComponent(r)}function IO(r){return oM(r.replace(/\+/g,"%20"))}function kO(r){return`${qQ(r.path)}${function T7(r){return Object.keys(r).map(a=>`;${qQ(a)}=${qQ(r[a])}`).join("")}(r.parameters)}`}const k7=/^[^\/()?;#]+/;function XQ(r){const a=r.match(k7);return a?a[0]:""}const Q7=/^[^\/()?;=#]+/,P7=/^[^=?&#]+/,O7=/^[^&#]+/;class R7{constructor(a){this.url=a,this.remaining=a}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Zs([],{}):new Zs([],this.parseChildren())}parseQueryParams(){const a={};if(this.consumeOptional("?"))do{this.parseQueryParam(a)}while(this.consumeOptional("&"));return a}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const a=[];for(this.peekStartsWith("(")||a.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),a.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(a.length>0||Object.keys(t).length>0)&&(i[oa]=new Zs(a,t)),i}parseSegment(){const a=XQ(this.remaining);if(""===a&&this.peekStartsWith(";"))throw new e.vHH(4009,!1);return this.capture(a),new EC(oM(a),this.parseMatrixParams())}parseMatrixParams(){const a={};for(;this.consumeOptional(";");)this.parseParam(a);return a}parseParam(a){const t=function S7(r){const a=r.match(Q7);return a?a[0]:""}(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){const n=XQ(this.remaining);n&&(i=n,this.capture(i))}a[oM(t)]=oM(i)}parseQueryParam(a){const t=function F7(r){const a=r.match(P7);return a?a[0]:""}(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){const s=function L7(r){const a=r.match(O7);return a?a[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const n=IO(t),o=IO(i);if(a.hasOwnProperty(n)){let s=a[n];Array.isArray(s)||(s=[s],a[n]=s),s.push(o)}else a[n]=o}parseParens(a){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=XQ(this.remaining),n=this.remaining[i.length];if("/"!==n&&")"!==n&&";"!==n)throw new e.vHH(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):a&&(o=oa);const s=this.parseChildren();t[o]=1===Object.keys(s).length?s[oa]:new Zs([],s),this.consumeOptional("//")}return t}peekStartsWith(a){return this.remaining.startsWith(a)}consumeOptional(a){return!!this.peekStartsWith(a)&&(this.remaining=this.remaining.substring(a.length),!0)}capture(a){if(!this.consumeOptional(a))throw new e.vHH(4011,!1)}}function QO(r){return r.segments.length>0?new Zs([],{[oa]:r}):r}function SO(r){const a={};for(const i of Object.keys(r.children)){const o=SO(r.children[i]);if(i===oa&&0===o.segments.length&&o.hasChildren())for(const[s,c]of Object.entries(o.children))a[s]=c;else(o.segments.length>0||o.hasChildren())&&(a[i]=o)}return function Y7(r){if(1===r.numberOfChildren&&r.children[oa]){const a=r.children[oa];return new Zs(r.segments.concat(a.segments),a.children)}return r}(new Zs(r.segments,a))}function k0(r){return r instanceof Cv}function PO(r){let a;const n=QO(function t(o){const s={};for(const g of o.children){const B=t(g);s[g.outlet]=B}const c=new Zs(o.url,s);return o===r&&(a=c),c}(r.root));return a??n}function FO(r,a,t,i){let n=r;for(;n.parent;)n=n.parent;if(0===a.length)return $Q(n,n,n,t,i);const o=function U7(r){if("string"==typeof r[0]&&1===r.length&&"/"===r[0])return new LO(!0,0,r);let a=0,t=!1;const i=r.reduce((n,o,s)=>{if("object"==typeof o&&null!=o){if(o.outlets){const c={};return Object.entries(o.outlets).forEach(([g,B])=>{c[g]="string"==typeof B?B.split("/"):B}),[...n,{outlets:c}]}if(o.segmentPath)return[...n,o.segmentPath]}return"string"!=typeof o?[...n,o]:0===s?(o.split("/").forEach((c,g)=>{0==g&&"."===c||(0==g&&""===c?t=!0:".."===c?a++:""!=c&&n.push(c))}),n):[...n,o]},[]);return new LO(t,a,i)}(a);if(o.toRoot())return $Q(n,n,new Zs([],{}),t,i);const s=function z7(r,a,t){if(r.isAbsolute)return new sM(a,!0,0);if(!t)return new sM(a,!1,NaN);if(null===t.parent)return new sM(t,!0,0);const i=aM(r.commands[0])?0:1;return function H7(r,a,t){let i=r,n=a,o=t;for(;o>n;){if(o-=n,i=i.parent,!i)throw new e.vHH(4005,!1);n=i.segments.length}return new sM(i,!1,n-o)}(t,t.segments.length-1+i,r.numberOfDoubleDots)}(o,n,r),c=s.processChildren?IC(s.segmentGroup,s.index,o.commands):RO(s.segmentGroup,s.index,o.commands);return $Q(n,s.segmentGroup,c,t,i)}function aM(r){return"object"==typeof r&&null!=r&&!r.outlets&&!r.segmentPath}function TC(r){return"object"==typeof r&&null!=r&&r.outlets}function $Q(r,a,t,i,n){let s,o={};i&&Object.entries(i).forEach(([g,B])=>{o[g]=Array.isArray(B)?B.map(O=>`${O}`):`${B}`}),s=r===a?t:OO(r,a,t);const c=QO(SO(s));return new Cv(c,o,n)}function OO(r,a,t){const i={};return Object.entries(r.children).forEach(([n,o])=>{i[n]=o===a?t:OO(o,a,t)}),new Zs(r.segments,i)}class LO{constructor(a,t,i){if(this.isAbsolute=a,this.numberOfDoubleDots=t,this.commands=i,a&&i.length>0&&aM(i[0]))throw new e.vHH(4003,!1);const n=i.find(TC);if(n&&n!==bO(i))throw new e.vHH(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class sM{constructor(a,t,i){this.segmentGroup=a,this.processChildren=t,this.index=i}}function RO(r,a,t){if(r||(r=new Zs([],{})),0===r.segments.length&&r.hasChildren())return IC(r,a,t);const i=function Z7(r,a,t){let i=0,n=a;const o={match:!1,pathIndex:0,commandIndex:0};for(;n=t.length)return o;const s=r.segments[n],c=t[i];if(TC(c))break;const g=`${c}`,B=i0&&void 0===g)break;if(g&&B&&"object"==typeof B&&void 0===B.outlets){if(!NO(g,B,s))return o;i+=2}else{if(!NO(g,{},s))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}(r,a,t),n=t.slice(i.commandIndex);if(i.match&&i.pathIndexo!==oa)&&r.children[oa]&&1===r.numberOfChildren&&0===r.children[oa].segments.length){const o=IC(r.children[oa],a,t);return new Zs(r.segments,o.children)}return Object.entries(i).forEach(([o,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(n[o]=RO(r.children[o],a,s))}),Object.entries(r.children).forEach(([o,s])=>{void 0===i[o]&&(n[o]=s)}),new Zs(r.segments,n)}}function eS(r,a,t){const i=r.segments.slice(0,a);let n=0;for(;n{"string"==typeof i&&(i=[i]),null!==i&&(a[t]=eS(new Zs([],{}),0,i))}),a}function YO(r){const a={};return Object.entries(r).forEach(([t,i])=>a[t]=`${i}`),a}function NO(r,a,t){return r==t.path&&yp(a,t.parameters)}const kC="imperative";class wp{constructor(a,t){this.id=a,this.url=t}}class lM extends wp{constructor(a,t,i="imperative",n=null){super(a,t),this.type=0,this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Bg extends wp{constructor(a,t,i){super(a,t),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class QC extends wp{constructor(a,t,i,n){super(a,t),this.reason=i,this.code=n,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class bv extends wp{constructor(a,t,i,n){super(a,t),this.reason=i,this.code=n,this.type=16}}class cM extends wp{constructor(a,t,i,n){super(a,t),this.error=i,this.target=n,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class UO extends wp{constructor(a,t,i,n){super(a,t),this.urlAfterRedirects=i,this.state=n,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class j7 extends wp{constructor(a,t,i,n){super(a,t),this.urlAfterRedirects=i,this.state=n,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class V7 extends wp{constructor(a,t,i,n,o){super(a,t),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class W7 extends wp{constructor(a,t,i,n){super(a,t),this.urlAfterRedirects=i,this.state=n,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class K7 extends wp{constructor(a,t,i,n){super(a,t),this.urlAfterRedirects=i,this.state=n,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class q7{constructor(a){this.route=a,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class X7{constructor(a){this.route=a,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class $7{constructor(a){this.snapshot=a,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class eJ{constructor(a){this.snapshot=a,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class tJ{constructor(a){this.snapshot=a,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class iJ{constructor(a){this.snapshot=a,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class zO{constructor(a,t,i){this.routerEvent=a,this.position=t,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class tS{}class iS{constructor(a){this.url=a}}class nJ{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new SC,this.attachRef=null}}let SC=(()=>{class r{constructor(){this.contexts=new Map}onChildOutletCreated(t,i){const n=this.getOrCreateContext(t);n.outlet=i,this.contexts.set(t,n)}onChildOutletDestroyed(t){const i=this.getContext(t);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let i=this.getContext(t);return i||(i=new nJ,this.contexts.set(t,i)),i}getContext(t){return this.contexts.get(t)||null}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();class HO{constructor(a){this._root=a}get root(){return this._root.value}parent(a){const t=this.pathFromRoot(a);return t.length>1?t[t.length-2]:null}children(a){const t=nS(a,this._root);return t?t.children.map(i=>i.value):[]}firstChild(a){const t=nS(a,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(a){const t=rS(a,this._root);return t.length<2?[]:t[t.length-2].children.map(n=>n.value).filter(n=>n!==a)}pathFromRoot(a){return rS(a,this._root).map(t=>t.value)}}function nS(r,a){if(r===a.value)return a;for(const t of a.children){const i=nS(r,t);if(i)return i}return null}function rS(r,a){if(r===a.value)return[a];for(const t of a.children){const i=rS(r,t);if(i.length)return i.unshift(a),i}return[]}class Eg{constructor(a,t){this.value=a,this.children=t}toString(){return`TreeNode(${this.value})`}}function xv(r){const a={};return r&&r.children.forEach(t=>a[t.value.outlet]=t),a}class GO extends HO{constructor(a,t){super(a),this.snapshot=t,oS(this,a)}toString(){return this.snapshot.toString()}}function ZO(r,a){const t=function rJ(r,a){const s=new AM([],{},{},"",{},oa,a,null,{});return new jO("",new Eg(s,[]))}(0,a),i=new ba.X([new EC("",{})]),n=new ba.X({}),o=new ba.X({}),s=new ba.X({}),c=new ba.X(""),g=new Cp(i,n,s,c,o,oa,a,t.root);return g.snapshot=t.root,new GO(new Eg(g,[]),t)}class Cp{constructor(a,t,i,n,o,s,c,g){this.urlSubject=a,this.paramsSubject=t,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=s,this.component=c,this._futureSnapshot=g,this.title=this.dataSubject?.pipe((0,f.U)(B=>B[BC]))??(0,lr.of)(void 0),this.url=a,this.params=t,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,f.U)(a=>wv(a)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,f.U)(a=>wv(a)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function JO(r,a="emptyOnly"){const t=r.pathFromRoot;let i=0;if("always"!==a)for(i=t.length-1;i>=1;){const n=t[i],o=t[i-1];if(n.routeConfig&&""===n.routeConfig.path)i--;else{if(o.component)break;i--}}return function oJ(r){return r.reduce((a,t)=>({params:{...a.params,...t.params},data:{...a.data,...t.data},resolve:{...t.data,...a.resolve,...t.routeConfig?.data,...t._resolvedData}}),{params:{},data:{},resolve:{}})}(t.slice(i))}class AM{get title(){return this.data?.[BC]}constructor(a,t,i,n,o,s,c,g,B){this.url=a,this.params=t,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=s,this.component=c,this.routeConfig=g,this._resolve=B}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=wv(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=wv(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class jO extends HO{constructor(a,t){super(t),this.url=a,oS(this,t)}toString(){return VO(this._root)}}function oS(r,a){a.value._routerState=r,a.children.forEach(t=>oS(r,t))}function VO(r){const a=r.children.length>0?` { ${r.children.map(VO).join(", ")} } `:"";return`${r.value}${a}`}function aS(r){if(r.snapshot){const a=r.snapshot,t=r._futureSnapshot;r.snapshot=t,yp(a.queryParams,t.queryParams)||r.queryParamsSubject.next(t.queryParams),a.fragment!==t.fragment&&r.fragmentSubject.next(t.fragment),yp(a.params,t.params)||r.paramsSubject.next(t.params),function w7(r,a){if(r.length!==a.length)return!1;for(let t=0;typ(t.parameters,a[i].parameters))}(r.url,a.url);return t&&!(!r.parent!=!a.parent)&&(!r.parent||sS(r.parent,a.parent))}let lS=(()=>{class r{constructor(){this.activated=null,this._activatedRoute=null,this.name=oa,this.activateEvents=new e.vpe,this.deactivateEvents=new e.vpe,this.attachEvents=new e.vpe,this.detachEvents=new e.vpe,this.parentContexts=(0,e.f3M)(SC),this.location=(0,e.f3M)(e.s_b),this.changeDetector=(0,e.f3M)(e.sBO),this.environmentInjector=(0,e.f3M)(e.lqb),this.inputBinder=(0,e.f3M)(dM,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(t){if(t.name){const{firstChange:i,previousValue:n}=t.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new e.vHH(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new e.vHH(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new e.vHH(4012,!1);this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,i){this.activated=t,this._activatedRoute=i,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,i){if(this.isActivated)throw new e.vHH(4013,!1);this._activatedRoute=t;const n=this.location,s=t.snapshot.component,c=this.parentContexts.getOrCreateContext(this.name).children,g=new aJ(t,c,n.injector);this.activated=n.createComponent(s,{index:n.length,injector:g,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275dir=e.lG2({type:r,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[e.TTD]})}}return r})();class aJ{constructor(a,t,i){this.route=a,this.childContexts=t,this.parent=i}get(a,t){return a===Cp?this.route:a===SC?this.childContexts:this.parent.get(a,t)}}const dM=new e.OlP("");let WO=(()=>{class r{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(t){this.unsubscribeFromRouteData(t),this.subscribeToRouteData(t)}unsubscribeFromRouteData(t){this.outletDataSubscriptions.get(t)?.unsubscribe(),this.outletDataSubscriptions.delete(t)}subscribeToRouteData(t){const{activatedRoute:i}=t,n=Vl([i.queryParams,i.params,i.data]).pipe((0,Xs.w)(([o,s,c],g)=>(c={...o,...s,...c},0===g?(0,lr.of)(c):Promise.resolve(c)))).subscribe(o=>{if(!t.isActivated||!t.activatedComponentRef||t.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(t);const s=(0,e.qFp)(i.component);if(s)for(const{templateName:c}of s.inputs)t.activatedComponentRef.setInput(c,o[c]);else this.unsubscribeFromRouteData(t)});this.outletDataSubscriptions.set(t,n)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();function PC(r,a,t){if(t&&r.shouldReuseRoute(a.value,t.value.snapshot)){const i=t.value;i._futureSnapshot=a.value;const n=function lJ(r,a,t){return a.children.map(i=>{for(const n of t.children)if(r.shouldReuseRoute(i.value,n.value.snapshot))return PC(r,i,n);return PC(r,i)})}(r,a,t);return new Eg(i,n)}{if(r.shouldAttach(a.value)){const o=r.retrieve(a.value);if(null!==o){const s=o.route;return s.value._futureSnapshot=a.value,s.children=a.children.map(c=>PC(r,c)),s}}const i=function cJ(r){return new Cp(new ba.X(r.url),new ba.X(r.params),new ba.X(r.queryParams),new ba.X(r.fragment),new ba.X(r.data),r.outlet,r.component,r)}(a.value),n=a.children.map(o=>PC(r,o));return new Eg(i,n)}}const cS="ngNavigationCancelingError";function KO(r,a){const{redirectTo:t,navigationBehaviorOptions:i}=k0(a)?{redirectTo:a,navigationBehaviorOptions:void 0}:a,n=qO(!1,0,a);return n.url=t,n.navigationBehaviorOptions=i,n}function qO(r,a,t){const i=new Error("NavigationCancelingError: "+(r||""));return i[cS]=!0,i.cancellationCode=a,t&&(i.url=t),i}function XO(r){return r&&r[cS]}let $O=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275cmp=e.Xpm({type:r,selectors:[["ng-component"]],standalone:!0,features:[e.jDz],decls:1,vars:0,template:function(i,n){1&i&&e._UZ(0,"router-outlet")},dependencies:[lS],encapsulation:2})}}return r})();function AS(r){const a=r.children&&r.children.map(AS),t=a?{...r,children:a}:{...r};return!t.component&&!t.loadComponent&&(a||t.loadChildren)&&t.outlet&&t.outlet!==oa&&(t.component=$O),t}function Yh(r){return r.outlet||oa}function FC(r){if(!r)return null;if(r.routeConfig?._injector)return r.routeConfig._injector;for(let a=r.parent;a;a=a.parent){const t=a.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}class mJ{constructor(a,t,i,n,o){this.routeReuseStrategy=a,this.futureState=t,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(a){const t=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,i,a),aS(this.futureState.root),this.activateChildRoutes(t,i,a)}deactivateChildRoutes(a,t,i){const n=xv(t);a.children.forEach(o=>{const s=o.value.outlet;this.deactivateRoutes(o,n[s],i),delete n[s]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(a,t,i){const n=a.value,o=t?t.value:null;if(n===o)if(n.component){const s=i.getContext(n.outlet);s&&this.deactivateChildRoutes(a,t,s.children)}else this.deactivateChildRoutes(a,t,i);else o&&this.deactivateRouteAndItsChildren(t,i)}deactivateRouteAndItsChildren(a,t){a.value.component&&this.routeReuseStrategy.shouldDetach(a.value.snapshot)?this.detachAndStoreRouteSubtree(a,t):this.deactivateRouteAndOutlet(a,t)}detachAndStoreRouteSubtree(a,t){const i=t.getContext(a.value.outlet),n=i&&a.value.component?i.children:t,o=xv(a);for(const s of Object.keys(o))this.deactivateRouteAndItsChildren(o[s],n);if(i&&i.outlet){const s=i.outlet.detach(),c=i.children.onOutletDeactivated();this.routeReuseStrategy.store(a.value.snapshot,{componentRef:s,route:a,contexts:c})}}deactivateRouteAndOutlet(a,t){const i=t.getContext(a.value.outlet),n=i&&a.value.component?i.children:t,o=xv(a);for(const s of Object.keys(o))this.deactivateRouteAndItsChildren(o[s],n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(a,t,i){const n=xv(t);a.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new iJ(o.value.snapshot))}),a.children.length&&this.forwardEvent(new eJ(a.value.snapshot))}activateRoutes(a,t,i){const n=a.value,o=t?t.value:null;if(aS(n),n===o)if(n.component){const s=i.getOrCreateContext(n.outlet);this.activateChildRoutes(a,t,s.children)}else this.activateChildRoutes(a,t,i);else if(n.component){const s=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){const c=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),s.children.onOutletReAttached(c.contexts),s.attachRef=c.componentRef,s.route=c.route.value,s.outlet&&s.outlet.attach(c.componentRef,c.route.value),aS(c.route.value),this.activateChildRoutes(a,null,s.children)}else{const c=FC(n.snapshot);s.attachRef=null,s.route=n,s.injector=c,s.outlet&&s.outlet.activateWith(n,s.injector),this.activateChildRoutes(a,null,s.children)}}else this.activateChildRoutes(a,null,i)}}class eL{constructor(a){this.path=a,this.route=this.path[this.path.length-1]}}class uM{constructor(a,t){this.component=a,this.route=t}}function _J(r,a,t){const i=r._root;return OC(i,a?a._root:null,t,[i.value])}function Bv(r,a){const t=Symbol(),i=a.get(r,t);return i===t?"function"!=typeof r||(0,e.Z0I)(r)?a.get(r):r:i}function OC(r,a,t,i,n={canDeactivateChecks:[],canActivateChecks:[]}){const o=xv(a);return r.children.forEach(s=>{(function yJ(r,a,t,i,n={canDeactivateChecks:[],canActivateChecks:[]}){const o=r.value,s=a?a.value:null,c=t?t.getContext(r.value.outlet):null;if(s&&o.routeConfig===s.routeConfig){const g=function wJ(r,a,t){if("function"==typeof t)return t(r,a);switch(t){case"pathParamsChange":return!I0(r.url,a.url);case"pathParamsOrQueryParamsChange":return!I0(r.url,a.url)||!yp(r.queryParams,a.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!sS(r,a)||!yp(r.queryParams,a.queryParams);default:return!sS(r,a)}}(s,o,o.routeConfig.runGuardsAndResolvers);g?n.canActivateChecks.push(new eL(i)):(o.data=s.data,o._resolvedData=s._resolvedData),OC(r,a,o.component?c?c.children:null:t,i,n),g&&c&&c.outlet&&c.outlet.isActivated&&n.canDeactivateChecks.push(new uM(c.outlet.component,s))}else s&&LC(a,c,n),n.canActivateChecks.push(new eL(i)),OC(r,null,o.component?c?c.children:null:t,i,n)})(s,o[s.value.outlet],t,i.concat([s.value]),n),delete o[s.value.outlet]}),Object.entries(o).forEach(([s,c])=>LC(c,t.getContext(s),n)),n}function LC(r,a,t){const i=xv(r),n=r.value;Object.entries(i).forEach(([o,s])=>{LC(s,n.component?a?a.children.getContext(o):null:a,t)}),t.canDeactivateChecks.push(new uM(n.component&&a&&a.outlet&&a.outlet.isActivated?a.outlet.component:null,n))}function RC(r){return"function"==typeof r}function tL(r){return r instanceof $E.K||"EmptyError"===r?.name}const hM=Symbol("INITIAL_VALUE");function Ev(){return(0,Xs.w)(r=>Vl(r.map(a=>a.pipe((0,yo.q)(1),na(hM)))).pipe((0,f.U)(a=>{for(const t of a)if(!0!==t){if(t===hM)return hM;if(!1===t||t instanceof Cv)return t}return!0}),(0,Wr.h)(a=>a!==hM),(0,yo.q)(1)))}function iL(r){return(0,p7.z)(Zr(a=>{if(k0(a))throw KO(0,a)}),(0,f.U)(a=>!0===a))}class pM{constructor(a){this.segmentGroup=a||null}}class nL{constructor(a){this.urlTree=a}}function Mv(r){return pg(new pM(r))}function rL(r){return pg(new nL(r))}class UJ{constructor(a,t){this.urlSerializer=a,this.urlTree=t}noMatchError(a){return new e.vHH(4002,!1)}lineralizeSegments(a,t){let i=[],n=t.root;for(;;){if(i=i.concat(n.segments),0===n.numberOfChildren)return(0,lr.of)(i);if(n.numberOfChildren>1||!n.children[oa])return pg(new e.vHH(4e3,!1));n=n.children[oa]}}applyRedirectCommands(a,t,i){return this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),a,i)}applyRedirectCreateUrlTree(a,t,i,n){const o=this.createSegmentGroup(a,t.root,i,n);return new Cv(o,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(a,t){const i={};return Object.entries(a).forEach(([n,o])=>{if("string"==typeof o&&o.startsWith(":")){const c=o.substring(1);i[n]=t[c]}else i[n]=o}),i}createSegmentGroup(a,t,i,n){const o=this.createSegments(a,t.segments,i,n);let s={};return Object.entries(t.children).forEach(([c,g])=>{s[c]=this.createSegmentGroup(a,g,i,n)}),new Zs(o,s)}createSegments(a,t,i,n){return t.map(o=>o.path.startsWith(":")?this.findPosParam(a,o,n):this.findOrReturn(o,i))}findPosParam(a,t,i){const n=i[t.path.substring(1)];if(!n)throw new e.vHH(4001,!1);return n}findOrReturn(a,t){let i=0;for(const n of t){if(n.path===a.path)return t.splice(i),n;i++}return a}}const dS={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function zJ(r,a,t,i,n){const o=uS(r,a,t);return o.matched?(i=function dJ(r,a){return r.providers&&!r._injector&&(r._injector=(0,e.MMx)(r.providers,a,`Route: ${r.path}`)),r._injector??a}(a,i),function RJ(r,a,t,i){const n=a.canMatch;if(!n||0===n.length)return(0,lr.of)(!0);const o=n.map(s=>{const c=Bv(s,r);return qf(function MJ(r){return r&&RC(r.canMatch)}(c)?c.canMatch(a,t):r.runInContext(()=>c(a,t)))});return(0,lr.of)(o).pipe(Ev(),iL())}(i,a,t).pipe((0,f.U)(s=>!0===s?o:{...dS}))):(0,lr.of)(o)}function uS(r,a,t){if(""===a.path)return"full"===a.pathMatch&&(r.hasChildren()||t.length>0)?{...dS}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const n=(a.matcher||y7)(t,r,a);if(!n)return{...dS};const o={};Object.entries(n.posParams??{}).forEach(([c,g])=>{o[c]=g.path});const s=n.consumed.length>0?{...o,...n.consumed[n.consumed.length-1].parameters}:o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:t.slice(n.consumed.length),parameters:s,positionalParamSegments:n.posParams??{}}}function oL(r,a,t,i){return t.length>0&&function ZJ(r,a,t){return t.some(i=>gM(r,a,i)&&Yh(i)!==oa)}(r,t,i)?{segmentGroup:new Zs(a,GJ(i,new Zs(t,r.children))),slicedSegments:[]}:0===t.length&&function JJ(r,a,t){return t.some(i=>gM(r,a,i))}(r,t,i)?{segmentGroup:new Zs(r.segments,HJ(r,0,t,i,r.children)),slicedSegments:t}:{segmentGroup:new Zs(r.segments,r.children),slicedSegments:t}}function HJ(r,a,t,i,n){const o={};for(const s of i)if(gM(r,t,s)&&!n[Yh(s)]){const c=new Zs([],{});o[Yh(s)]=c}return{...n,...o}}function GJ(r,a){const t={};t[oa]=a;for(const i of r)if(""===i.path&&Yh(i)!==oa){const n=new Zs([],{});t[Yh(i)]=n}return t}function gM(r,a,t){return(!(r.hasChildren()||a.length>0)||"full"!==t.pathMatch)&&""===t.path}class KJ{constructor(a,t,i,n,o,s,c){this.injector=a,this.configLoader=t,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=s,this.urlSerializer=c,this.allowRedirects=!0,this.applyRedirects=new UJ(this.urlSerializer,this.urlTree)}noMatchError(a){return new e.vHH(4002,!1)}recognize(){const a=oL(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,a,oa).pipe(Kd(t=>{if(t instanceof nL)return this.allowRedirects=!1,this.urlTree=t.urlTree,this.match(t.urlTree);throw t instanceof pM?this.noMatchError(t):t}),(0,f.U)(t=>{const i=new AM([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},oa,this.rootComponentType,null,{}),n=new Eg(i,t),o=new jO("",n),s=function N7(r,a,t=null,i=null){return FO(PO(r),a,t,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(o._root),{state:o,tree:s}}))}match(a){return this.processSegmentGroup(this.injector,this.config,a.root,oa).pipe(Kd(i=>{throw i instanceof pM?this.noMatchError(i):i}))}inheritParamsAndData(a){const t=a.value,i=JO(t,this.paramsInheritanceStrategy);t.params=Object.freeze(i.params),t.data=Object.freeze(i.data),a.children.forEach(n=>this.inheritParamsAndData(n))}processSegmentGroup(a,t,i,n){return 0===i.segments.length&&i.hasChildren()?this.processChildren(a,t,i):this.processSegment(a,t,i,i.segments,n,!0)}processChildren(a,t,i){const n=[];for(const o of Object.keys(i.children))"primary"===o?n.unshift(o):n.push(o);return(0,v.D)(n).pipe((0,Kf.b)(o=>{const s=i.children[o],c=function gJ(r,a){const t=r.filter(i=>Yh(i)===a);return t.push(...r.filter(i=>Yh(i)!==a)),t}(t,o);return this.processSegmentGroup(a,c,s,o)}),function m7(r,a){return(0,sl.e)(function f7(r,a,t,i,n){return(o,s)=>{let c=t,g=a,B=0;o.subscribe((0,pl.x)(s,O=>{const ne=B++;g=c?r(g,O,ne):(c=!0,O),i&&s.next(g)},n&&(()=>{c&&s.next(g),s.complete()})))}}(r,a,arguments.length>=2,!0))}((o,s)=>(o.push(...s),o)),eM(null),function _7(r,a){const t=arguments.length>=2;return i=>i.pipe(r?(0,Wr.h)((n,o)=>r(n,o,i)):$c.y,WQ(1),t?eM(a):wO(()=>new $E.K))}(),(0,ma.z)(o=>{if(null===o)return Mv(i);const s=aL(o);return function qJ(r){r.sort((a,t)=>a.value.outlet===oa?-1:t.value.outlet===oa?1:a.value.outlet.localeCompare(t.value.outlet))}(s),(0,lr.of)(s)}))}processSegment(a,t,i,n,o,s){return(0,v.D)(t).pipe((0,Kf.b)(c=>this.processSegmentAgainstRoute(c._injector??a,t,c,i,n,o,s).pipe(Kd(g=>{if(g instanceof pM)return(0,lr.of)(null);throw g}))),T0(c=>!!c),Kd(c=>{if(tL(c))return function VJ(r,a,t){return 0===a.length&&!r.children[t]}(i,n,o)?(0,lr.of)([]):Mv(i);throw c}))}processSegmentAgainstRoute(a,t,i,n,o,s,c){return function jJ(r,a,t,i){return!!(Yh(r)===i||i!==oa&&gM(a,t,r))&&("**"===r.path||uS(a,r,t).matched)}(i,n,o,s)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(a,n,i,o,s,c):c&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(a,n,t,i,o,s):Mv(n):Mv(n)}expandSegmentAgainstRouteUsingRedirect(a,t,i,n,o,s){return"**"===n.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(a,i,n,s):this.expandRegularSegmentAgainstRouteUsingRedirect(a,t,i,n,o,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(a,t,i,n){const o=this.applyRedirects.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?rL(o):this.applyRedirects.lineralizeSegments(i,o).pipe((0,ma.z)(s=>{const c=new Zs(s,{});return this.processSegment(a,t,c,s,n,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(a,t,i,n,o,s){const{matched:c,consumedSegments:g,remainingSegments:B,positionalParamSegments:O}=uS(t,n,o);if(!c)return Mv(t);const ne=this.applyRedirects.applyRedirectCommands(g,n.redirectTo,O);return n.redirectTo.startsWith("/")?rL(ne):this.applyRedirects.lineralizeSegments(n,ne).pipe((0,ma.z)(we=>this.processSegment(a,i,t,we.concat(B),s,!1)))}matchSegmentAgainstRoute(a,t,i,n,o,s){let c;if("**"===i.path){const g=n.length>0?bO(n).parameters:{},B=new AM(n,g,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,sL(i),Yh(i),i.component??i._loadedComponent??null,i,lL(i));c=(0,lr.of)({snapshot:B,consumedSegments:[],remainingSegments:[]}),t.children={}}else c=zJ(t,i,n,a).pipe((0,f.U)(({matched:g,consumedSegments:B,remainingSegments:O,parameters:ne})=>g?{snapshot:new AM(B,ne,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,sL(i),Yh(i),i.component??i._loadedComponent??null,i,lL(i)),consumedSegments:B,remainingSegments:O}:null));return c.pipe((0,Xs.w)(g=>null===g?Mv(t):this.getChildConfig(a=i._injector??a,i,n).pipe((0,Xs.w)(({routes:B})=>{const O=i._loadedInjector??a,{snapshot:ne,consumedSegments:we,remainingSegments:$e}=g,{segmentGroup:nt,slicedSegments:Ft}=oL(t,we,$e,B);if(0===Ft.length&&nt.hasChildren())return this.processChildren(O,B,nt).pipe((0,f.U)(pi=>null===pi?null:[new Eg(ne,pi)]));if(0===B.length&&0===Ft.length)return(0,lr.of)([new Eg(ne,[])]);const ei=Yh(i)===o;return this.processSegment(O,B,nt,Ft,ei?oa:o,!0).pipe((0,f.U)(pi=>[new Eg(ne,pi)]))}))))}getChildConfig(a,t,i){return t.children?(0,lr.of)({routes:t.children,injector:a}):t.loadChildren?void 0!==t._loadedRoutes?(0,lr.of)({routes:t._loadedRoutes,injector:t._loadedInjector}):function LJ(r,a,t,i){const n=a.canLoad;if(void 0===n||0===n.length)return(0,lr.of)(!0);const o=n.map(s=>{const c=Bv(s,r);return qf(function bJ(r){return r&&RC(r.canLoad)}(c)?c.canLoad(a,t):r.runInContext(()=>c(a,t)))});return(0,lr.of)(o).pipe(Ev(),iL())}(a,t,i).pipe((0,ma.z)(n=>n?this.configLoader.loadChildren(a,t).pipe(Zr(o=>{t._loadedRoutes=o.routes,t._loadedInjector=o.injector})):function NJ(r){return pg(qO(!1,3))}())):(0,lr.of)({routes:[],injector:a})}}function XJ(r){const a=r.value.routeConfig;return a&&""===a.path}function aL(r){const a=[],t=new Set;for(const i of r){if(!XJ(i)){a.push(i);continue}const n=a.find(o=>i.value.routeConfig===o.value.routeConfig);void 0!==n?(n.children.push(...i.children),t.add(n)):a.push(i)}for(const i of t){const n=aL(i.children);a.push(new Eg(i.value,n))}return a.filter(i=>!t.has(i))}function sL(r){return r.data||{}}function lL(r){return r.resolve||{}}function cL(r){return"string"==typeof r.title||null===r.title}function hS(r){return(0,Xs.w)(a=>{const t=r(a);return t?(0,v.D)(t).pipe((0,f.U)(()=>a)):(0,lr.of)(a)})}const Dv=new e.OlP("ROUTES");let pS=(()=>{class r{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,e.f3M)(e.Sil)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return(0,lr.of)(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const i=qf(t.loadComponent()).pipe((0,f.U)(AL),Zr(o=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=o}),(0,gg.x)(()=>{this.componentLoaders.delete(t)})),n=new p_(i,()=>new An.x).pipe(m1());return this.componentLoaders.set(t,n),n}loadChildren(t,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return(0,lr.of)({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const o=function oj(r,a,t,i){return qf(r.loadChildren()).pipe((0,f.U)(AL),(0,ma.z)(n=>n instanceof e.YKP||Array.isArray(n)?(0,lr.of)(n):(0,v.D)(a.compileModuleAsync(n))),(0,f.U)(n=>{i&&i(r);let o,s,c=!1;return Array.isArray(n)?(s=n,!0):(o=n.create(t).injector,s=o.get(Dv,[],{optional:!0,self:!0}).flat()),{routes:s.map(AS),injector:o}}))}(i,this.compiler,t,this.onLoadEndListener).pipe((0,gg.x)(()=>{this.childrenLoaders.delete(i)})),s=new p_(o,()=>new An.x).pipe(m1());return this.childrenLoaders.set(i,s),s}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function AL(r){return function aj(r){return r&&"object"==typeof r&&"default"in r}(r)?r.default:r}let fM=(()=>{class r{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new An.x,this.transitionAbortSubject=new An.x,this.configLoader=(0,e.f3M)(pS),this.environmentInjector=(0,e.f3M)(e.lqb),this.urlSerializer=(0,e.f3M)(MC),this.rootContexts=(0,e.f3M)(SC),this.inputBindingEnabled=null!==(0,e.f3M)(dM,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,lr.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=n=>this.events.next(new X7(n)),this.configLoader.onLoadStartListener=n=>this.events.next(new q7(n))}complete(){this.transitions?.complete()}handleNavigationRequest(t){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...t,id:i})}setupNavigations(t,i,n){return this.transitions=new ba.X({id:0,currentUrlTree:i,currentRawUrl:i,currentBrowserUrl:i,extractedUrl:t.urlHandlingStrategy.extract(i),urlAfterRedirects:t.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:kC,restoredState:null,currentSnapshot:n.snapshot,targetSnapshot:null,currentRouterState:n,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,Wr.h)(o=>0!==o.id),(0,f.U)(o=>({...o,extractedUrl:t.urlHandlingStrategy.extract(o.rawUrl)})),(0,Xs.w)(o=>{this.currentTransition=o;let s=!1,c=!1;return(0,lr.of)(o).pipe(Zr(g=>{this.currentNavigation={id:g.id,initialUrl:g.rawUrl,extractedUrl:g.extractedUrl,trigger:g.source,extras:g.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),(0,Xs.w)(g=>{const B=g.currentBrowserUrl.toString(),O=!t.navigated||g.extractedUrl.toString()!==B||B!==g.currentUrlTree.toString();if(!O&&"reload"!==(g.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const we="";return this.events.next(new bv(g.id,this.urlSerializer.serialize(g.rawUrl),we,0)),g.resolve(null),Zu.E}if(t.urlHandlingStrategy.shouldProcessUrl(g.rawUrl))return(0,lr.of)(g).pipe((0,Xs.w)(we=>{const $e=this.transitions?.getValue();return this.events.next(new lM(we.id,this.urlSerializer.serialize(we.extractedUrl),we.source,we.restoredState)),$e!==this.transitions?.getValue()?Zu.E:Promise.resolve(we)}),function $J(r,a,t,i,n,o){return(0,ma.z)(s=>function WJ(r,a,t,i,n,o,s="emptyOnly"){return new KJ(r,a,t,i,n,s,o).recognize()}(r,a,t,i,s.extractedUrl,n,o).pipe((0,f.U)(({state:c,tree:g})=>({...s,targetSnapshot:c,urlAfterRedirects:g}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,t.paramsInheritanceStrategy),Zr(we=>{o.targetSnapshot=we.targetSnapshot,o.urlAfterRedirects=we.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:we.urlAfterRedirects};const $e=new UO(we.id,this.urlSerializer.serialize(we.extractedUrl),this.urlSerializer.serialize(we.urlAfterRedirects),we.targetSnapshot);this.events.next($e)}));if(O&&t.urlHandlingStrategy.shouldProcessUrl(g.currentRawUrl)){const{id:we,extractedUrl:$e,source:nt,restoredState:Ft,extras:ei}=g,pi=new lM(we,this.urlSerializer.serialize($e),nt,Ft);this.events.next(pi);const Di=ZO(0,this.rootComponentType).snapshot;return this.currentTransition=o={...g,targetSnapshot:Di,urlAfterRedirects:$e,extras:{...ei,skipLocationChange:!1,replaceUrl:!1}},(0,lr.of)(o)}{const we="";return this.events.next(new bv(g.id,this.urlSerializer.serialize(g.extractedUrl),we,1)),g.resolve(null),Zu.E}}),Zr(g=>{const B=new j7(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot);this.events.next(B)}),(0,f.U)(g=>(this.currentTransition=o={...g,guards:_J(g.targetSnapshot,g.currentSnapshot,this.rootContexts)},o)),function TJ(r,a){return(0,ma.z)(t=>{const{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:s}}=t;return 0===s.length&&0===o.length?(0,lr.of)({...t,guardsResult:!0}):function IJ(r,a,t,i){return(0,v.D)(r).pipe((0,ma.z)(n=>function OJ(r,a,t,i,n){const o=a&&a.routeConfig?a.routeConfig.canDeactivate:null;if(!o||0===o.length)return(0,lr.of)(!0);const s=o.map(c=>{const g=FC(a)??n,B=Bv(c,g);return qf(function EJ(r){return r&&RC(r.canDeactivate)}(B)?B.canDeactivate(r,a,t,i):g.runInContext(()=>B(r,a,t,i))).pipe(T0())});return(0,lr.of)(s).pipe(Ev())}(n.component,n.route,t,a,i)),T0(n=>!0!==n,!0))}(s,i,n,r).pipe((0,ma.z)(c=>c&&function CJ(r){return"boolean"==typeof r}(c)?function kJ(r,a,t,i){return(0,v.D)(a).pipe((0,Kf.b)(n=>(0,oc.z)(function SJ(r,a){return null!==r&&a&&a(new $7(r)),(0,lr.of)(!0)}(n.route.parent,i),function QJ(r,a){return null!==r&&a&&a(new tJ(r)),(0,lr.of)(!0)}(n.route,i),function FJ(r,a,t){const i=a[a.length-1],o=a.slice(0,a.length-1).reverse().map(s=>function vJ(r){const a=r.routeConfig?r.routeConfig.canActivateChild:null;return a&&0!==a.length?{node:r,guards:a}:null}(s)).filter(s=>null!==s).map(s=>(0,rp.P)(()=>{const c=s.guards.map(g=>{const B=FC(s.node)??t,O=Bv(g,B);return qf(function BJ(r){return r&&RC(r.canActivateChild)}(O)?O.canActivateChild(i,r):B.runInContext(()=>O(i,r))).pipe(T0())});return(0,lr.of)(c).pipe(Ev())}));return(0,lr.of)(o).pipe(Ev())}(r,n.path,t),function PJ(r,a,t){const i=a.routeConfig?a.routeConfig.canActivate:null;if(!i||0===i.length)return(0,lr.of)(!0);const n=i.map(o=>(0,rp.P)(()=>{const s=FC(a)??t,c=Bv(o,s);return qf(function xJ(r){return r&&RC(r.canActivate)}(c)?c.canActivate(a,r):s.runInContext(()=>c(a,r))).pipe(T0())}));return(0,lr.of)(n).pipe(Ev())}(r,n.route,t))),T0(n=>!0!==n,!0))}(i,o,r,a):(0,lr.of)(c)),(0,f.U)(c=>({...t,guardsResult:c})))})}(this.environmentInjector,g=>this.events.next(g)),Zr(g=>{if(o.guardsResult=g.guardsResult,k0(g.guardsResult))throw KO(0,g.guardsResult);const B=new V7(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot,!!g.guardsResult);this.events.next(B)}),(0,Wr.h)(g=>!!g.guardsResult||(this.cancelNavigationTransition(g,"",3),!1)),hS(g=>{if(g.guards.canActivateChecks.length)return(0,lr.of)(g).pipe(Zr(B=>{const O=new W7(B.id,this.urlSerializer.serialize(B.extractedUrl),this.urlSerializer.serialize(B.urlAfterRedirects),B.targetSnapshot);this.events.next(O)}),(0,Xs.w)(B=>{let O=!1;return(0,lr.of)(B).pipe(function ej(r,a){return(0,ma.z)(t=>{const{targetSnapshot:i,guards:{canActivateChecks:n}}=t;if(!n.length)return(0,lr.of)(t);let o=0;return(0,v.D)(n).pipe((0,Kf.b)(s=>function tj(r,a,t,i){const n=r.routeConfig,o=r._resolve;return void 0!==n?.title&&!cL(n)&&(o[BC]=n.title),function ij(r,a,t,i){const n=function nj(r){return[...Object.keys(r),...Object.getOwnPropertySymbols(r)]}(r);if(0===n.length)return(0,lr.of)({});const o={};return(0,v.D)(n).pipe((0,ma.z)(s=>function rj(r,a,t,i){const n=FC(a)??i,o=Bv(r,n);return qf(o.resolve?o.resolve(a,t):n.runInContext(()=>o(a,t)))}(r[s],a,t,i).pipe(T0(),Zr(c=>{o[s]=c}))),WQ(1),df(o),Kd(s=>tL(s)?Zu.E:pg(s)))}(o,r,a,i).pipe((0,f.U)(s=>(r._resolvedData=s,r.data=JO(r,t).resolve,n&&cL(n)&&(r.data[BC]=n.title),null)))}(s.route,i,r,a)),Zr(()=>o++),WQ(1),(0,ma.z)(s=>o===n.length?(0,lr.of)(t):Zu.E))})}(t.paramsInheritanceStrategy,this.environmentInjector),Zr({next:()=>O=!0,complete:()=>{O||this.cancelNavigationTransition(B,"",2)}}))}),Zr(B=>{const O=new K7(B.id,this.urlSerializer.serialize(B.extractedUrl),this.urlSerializer.serialize(B.urlAfterRedirects),B.targetSnapshot);this.events.next(O)}))}),hS(g=>{const B=O=>{const ne=[];O.routeConfig?.loadComponent&&!O.routeConfig._loadedComponent&&ne.push(this.configLoader.loadComponent(O.routeConfig).pipe(Zr(we=>{O.component=we}),(0,f.U)(()=>{})));for(const we of O.children)ne.push(...B(we));return ne};return Vl(B(g.targetSnapshot.root)).pipe(eM(),(0,yo.q)(1))}),hS(()=>this.afterPreactivation()),(0,f.U)(g=>{const B=function sJ(r,a,t){const i=PC(r,a._root,t?t._root:void 0);return new GO(i,a)}(t.routeReuseStrategy,g.targetSnapshot,g.currentRouterState);return this.currentTransition=o={...g,targetRouterState:B},o}),Zr(()=>{this.events.next(new tS)}),((r,a,t,i)=>(0,f.U)(n=>(new mJ(a,n.targetRouterState,n.currentRouterState,t,i).activate(r),n)))(this.rootContexts,t.routeReuseStrategy,g=>this.events.next(g),this.inputBindingEnabled),(0,yo.q)(1),Zr({next:g=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Bg(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects))),t.titleStrategy?.updateTitle(g.targetRouterState.snapshot),g.resolve(!0)},complete:()=>{s=!0}}),(0,On.R)(this.transitionAbortSubject.pipe(Zr(g=>{throw g}))),(0,gg.x)(()=>{s||c||this.cancelNavigationTransition(o,"",1),this.currentNavigation?.id===o.id&&(this.currentNavigation=null)}),Kd(g=>{if(c=!0,XO(g))this.events.next(new QC(o.id,this.urlSerializer.serialize(o.extractedUrl),g.message,g.cancellationCode)),function AJ(r){return XO(r)&&k0(r.url)}(g)?this.events.next(new iS(g.url)):o.resolve(!1);else{this.events.next(new cM(o.id,this.urlSerializer.serialize(o.extractedUrl),g,o.targetSnapshot??void 0));try{o.resolve(t.errorHandler(g))}catch(B){o.reject(B)}}return Zu.E}))}))}cancelNavigationTransition(t,i,n){const o=new QC(t.id,this.urlSerializer.serialize(t.extractedUrl),i,n);this.events.next(o),t.resolve(!1)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function dL(r){return r!==kC}let uL=(()=>{class r{buildTitle(t){let i,n=t.root;for(;void 0!==n;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===oa);return i}getResolvedTitleForRoute(t){return t.data[BC]}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:function(){return(0,e.f3M)(sj)},providedIn:"root"})}}return r})(),sj=(()=>{class r extends uL{constructor(t){super(),this.title=t}updateTitle(t){const i=this.buildTitle(t);void 0!==i&&this.title.setTitle(i)}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(T.Dx))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})(),lj=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:function(){return(0,e.f3M)(Aj)},providedIn:"root"})}}return r})();class cj{shouldDetach(a){return!1}store(a,t){}shouldAttach(a){return!1}retrieve(a){return null}shouldReuseRoute(a,t){return a.routeConfig===t.routeConfig}}let Aj=(()=>{class r extends cj{static{this.\u0275fac=function(){let t;return function(n){return(t||(t=e.n5z(r)))(n||r)}}()}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const mM=new e.OlP("",{providedIn:"root",factory:()=>({})});let dj=(()=>{class r{static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:function(){return(0,e.f3M)(uj)},providedIn:"root"})}}return r})(),uj=(()=>{class r{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,i){return t}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();var YC=function(r){return r[r.COMPLETE=0]="COMPLETE",r[r.FAILED=1]="FAILED",r[r.REDIRECTING=2]="REDIRECTING",r}(YC||{});function hL(r,a){r.events.pipe((0,Wr.h)(t=>t instanceof Bg||t instanceof QC||t instanceof cM||t instanceof bv),(0,f.U)(t=>t instanceof Bg||t instanceof bv?YC.COMPLETE:t instanceof QC&&(0===t.code||1===t.code)?YC.REDIRECTING:YC.FAILED),(0,Wr.h)(t=>t!==YC.REDIRECTING),(0,yo.q)(1)).subscribe(()=>{a()})}function hj(r){throw r}function pj(r,a,t){return a.parse("/")}const gj={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},fj={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Zc=(()=>{class r{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.location.getState()?.\u0275routerPageId??this.currentPageId}get events(){return this._events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=(0,e.f3M)(e.c2e),this.isNgZoneEnabled=!1,this._events=new An.x,this.options=(0,e.f3M)(mM,{optional:!0})||{},this.pendingTasks=(0,e.f3M)(e.HDt),this.errorHandler=this.options.errorHandler||hj,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||pj,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=(0,e.f3M)(dj),this.routeReuseStrategy=(0,e.f3M)(lj),this.titleStrategy=(0,e.f3M)(uL),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=(0,e.f3M)(Dv,{optional:!0})?.flat()??[],this.navigationTransitions=(0,e.f3M)(fM),this.urlSerializer=(0,e.f3M)(MC),this.location=(0,e.f3M)(l.Ye),this.componentInputBindingEnabled=!!(0,e.f3M)(dM,{optional:!0}),this.eventsSubscription=new Jr.w0,this.isNgZoneEnabled=(0,e.f3M)(e.R0b)instanceof e.R0b&&e.R0b.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new Cv,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=ZO(0,null),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe(t=>{this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId},t=>{this.console.warn(`Unhandled Navigation Error: ${t}`)}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const t=this.navigationTransitions.events.subscribe(i=>{try{const{currentTransition:n}=this.navigationTransitions;if(null===n)return void(pL(i)&&this._events.next(i));if(i instanceof lM)dL(n.source)&&(this.browserUrlTree=n.extractedUrl);else if(i instanceof bv)this.rawUrlTree=n.rawUrl;else if(i instanceof UO){if("eager"===this.urlUpdateStrategy){if(!n.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(n.urlAfterRedirects,n.rawUrl);this.setBrowserUrl(o,n)}this.browserUrlTree=n.urlAfterRedirects}}else if(i instanceof tS)this.currentUrlTree=n.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(n.urlAfterRedirects,n.rawUrl),this.routerState=n.targetRouterState,"deferred"===this.urlUpdateStrategy&&(n.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,n),this.browserUrlTree=n.urlAfterRedirects);else if(i instanceof QC)0!==i.code&&1!==i.code&&(this.navigated=!0),(3===i.code||2===i.code)&&this.restoreHistory(n);else if(i instanceof iS){const o=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),s={skipLocationChange:n.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||dL(n.source)};this.scheduleNavigation(o,kC,null,s,{resolve:n.resolve,reject:n.reject,promise:n.promise})}i instanceof cM&&this.restoreHistory(n,!0),i instanceof Bg&&(this.navigated=!0),pL(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const t=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),kC,t)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{const i="popstate"===t.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{this.navigateToSyncWithBrowser(t.url,i,t.state)},0)}))}navigateToSyncWithBrowser(t,i,n){const o={replaceUrl:!0},s=n?.navigationId?n:null;if(n){const g={...n};delete g.navigationId,delete g.\u0275routerPageId,0!==Object.keys(g).length&&(o.state=g)}const c=this.parseUrl(t);this.scheduleNavigation(c,i,s,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(AS),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,i={}){const{relativeTo:n,queryParams:o,fragment:s,queryParamsHandling:c,preserveFragment:g}=i,B=g?this.currentUrlTree.fragment:s;let ne,O=null;switch(c){case"merge":O={...this.currentUrlTree.queryParams,...o};break;case"preserve":O=this.currentUrlTree.queryParams;break;default:O=o||null}null!==O&&(O=this.removeEmptyProps(O));try{ne=PO(n?n.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),ne=this.currentUrlTree.root}return FO(ne,t,O,B??null)}navigateByUrl(t,i={skipLocationChange:!1}){const n=k0(t)?t:this.parseUrl(t),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,kC,null,i)}navigate(t,i={skipLocationChange:!1}){return function mj(r){for(let a=0;a{const o=t[n];return null!=o&&(i[n]=o),i},{})}scheduleNavigation(t,i,n,o,s){if(this.disposed)return Promise.resolve(!1);let c,g,B;s?(c=s.resolve,g=s.reject,B=s.promise):B=new Promise((ne,we)=>{c=ne,g=we});const O=this.pendingTasks.add();return hL(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(O))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,currentBrowserUrl:this.browserUrlTree,rawUrl:t,extras:o,resolve:c,reject:g,promise:B,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),B.catch(ne=>Promise.reject(ne))}setBrowserUrl(t,i){const n=this.urlSerializer.serialize(t);if(this.location.isCurrentPathEqualTo(n)||i.extras.replaceUrl){const s={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(n,"",s)}else{const o={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(n,"",o)}}restoreHistory(t,i=!1){if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-this.browserPageId;0!==o?this.location.historyGo(o):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===o&&(this.resetState(t),this.browserUrlTree=t.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=t.currentRouterState,this.currentUrlTree=t.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,i){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:i}:{navigationId:t}}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();function pL(r){return!(r instanceof tS||r instanceof iS)}class gL{}let yj=(()=>{class r{constructor(t,i,n,o,s){this.router=t,this.injector=n,this.preloadingStrategy=o,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe((0,Wr.h)(t=>t instanceof Bg),(0,Kf.b)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,i){const n=[];for(const o of i){o.providers&&!o._injector&&(o._injector=(0,e.MMx)(o.providers,t,`Route: ${o.path}`));const s=o._injector??t,c=o._loadedInjector??s;(o.loadChildren&&!o._loadedRoutes&&void 0===o.canLoad||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(s,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(c,o.children??o._loadedRoutes))}return(0,v.D)(n).pipe((0,tM.J)())}preloadConfig(t,i){return this.preloadingStrategy.preload(i,()=>{let n;n=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(t,i):(0,lr.of)(null);const o=n.pipe((0,ma.z)(s=>null===s?(0,lr.of)(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,this.processRoutes(s.injector??t,s.routes))));if(i.loadComponent&&!i._loadedComponent){const s=this.loader.loadComponent(i);return(0,v.D)([o,s]).pipe((0,tM.J)())}return o})}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(Zc),e.LFG(e.Sil),e.LFG(e.lqb),e.LFG(gL),e.LFG(pS))}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}}return r})();const fS=new e.OlP("");let fL=(()=>{class r{constructor(t,i,n,o,s={}){this.urlSerializer=t,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration=s.scrollPositionRestoration||"disabled",s.anchorScrolling=s.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof lM?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof Bg?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof bv&&0===t.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof zO&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new zO(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static{this.\u0275fac=function(i){e.$Z()}}static{this.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}}return r})();function Mg(r,a){return{\u0275kind:r,\u0275providers:a}}function _L(){const r=(0,e.f3M)(e.zs3);return a=>{const t=r.get(e.z2F);if(a!==t.components[0])return;const i=r.get(Zc),n=r.get(vL);1===r.get(mS)&&i.initialNavigation(),r.get(yL,null,e.XFs.Optional)?.setUpPreloading(),r.get(fS,null,e.XFs.Optional)?.init(),i.resetRootComponentType(t.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}const vL=new e.OlP("",{factory:()=>new An.x}),mS=new e.OlP("",{providedIn:"root",factory:()=>1}),yL=new e.OlP("");function xj(r){return Mg(0,[{provide:yL,useExisting:yj},{provide:gL,useExisting:r}])}const wL=new e.OlP("ROUTER_FORROOT_GUARD"),Ej=[l.Ye,{provide:MC,useClass:KQ},Zc,SC,{provide:Cp,useFactory:function mL(r){return r.routerState.root},deps:[Zc]},pS,[]];function Mj(){return new e.PXZ("Router",Zc)}let Dj=(()=>{class r{constructor(t){}static forRoot(t,i){return{ngModule:r,providers:[Ej,[],{provide:Dv,multi:!0,useValue:t},{provide:wL,useFactory:Qj,deps:[[Zc,new e.FiY,new e.tp0]]},{provide:mM,useValue:i||{}},i?.useHash?{provide:l.S$,useClass:l.Do}:{provide:l.S$,useClass:l.b0},{provide:fS,useFactory:()=>{const r=(0,e.f3M)(l.EM),a=(0,e.f3M)(e.R0b),t=(0,e.f3M)(mM),i=(0,e.f3M)(fM),n=(0,e.f3M)(MC);return t.scrollOffset&&r.setOffset(t.scrollOffset),new fL(n,i,r,a,t)}},i?.preloadingStrategy?xj(i.preloadingStrategy).\u0275providers:[],{provide:e.PXZ,multi:!0,useFactory:Mj},i?.initialNavigation?Sj(i):[],i?.bindToComponentInputs?Mg(8,[WO,{provide:dM,useExisting:WO}]).\u0275providers:[],[{provide:CL,useFactory:_L},{provide:e.tb,multi:!0,useExisting:CL}]]}}static forChild(t){return{ngModule:r,providers:[{provide:Dv,multi:!0,useValue:t}]}}static{this.\u0275fac=function(i){return new(i||r)(e.LFG(wL,8))}}static{this.\u0275mod=e.oAB({type:r})}static{this.\u0275inj=e.cJS({})}}return r})();function Qj(r){return"guarded"}function Sj(r){return["disabled"===r.initialNavigation?Mg(3,[{provide:e.ip1,multi:!0,useFactory:()=>{const a=(0,e.f3M)(Zc);return()=>{a.setUpLocationChangeListener()}}},{provide:mS,useValue:2}]).\u0275providers:[],"enabledBlocking"===r.initialNavigation?Mg(2,[{provide:mS,useValue:0},{provide:e.ip1,multi:!0,deps:[e.zs3],useFactory:a=>{const t=a.get(l.V_,Promise.resolve());return()=>t.then(()=>new Promise(i=>{const n=a.get(Zc),o=a.get(vL);hL(n,()=>{i(!0)}),a.get(fM).afterPreactivation=()=>(i(!0),o.closed?(0,lr.of)(void 0):o),n.initialNavigation()}))}}]).\u0275providers:[]]}const CL=new e.OlP("");let bL=(()=>{class r{authService;router;rcgiService;heartbeatInterval=3e5;server;heartbeatSubscription;activity=!1;constructor(t,i,n){this.authService=t,this.router=i,this.rcgiService=n,this.server=n.rcgi}startHeartbeatPolling(){this.server&&(this.stopHeartbeatPolling(),this.heartbeatSubscription=vv(this.heartbeatInterval).subscribe(()=>{this.server.heartbeat(this.activity).subscribe(t=>{"tokenRefresh"===t?.message&&t?.token?this.authService.setNewToken(t.token):"guest"===t?.message&&t?.token&&this.authService.signOut()},t=>{t instanceof Ia.UA&&(401===t.status||403===t.status)&&this.router.navigateByUrl("/")})}))}stopHeartbeatPolling(){this.heartbeatSubscription&&this.heartbeatSubscription.unsubscribe()}setActivity(t){this.activity=t}static \u0275fac=function(i){return new(i||r)(e.LFG(xg.e),e.LFG(Zc),e.LFG(yv))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var ii=ce(1019),Yi=ce(5625);function Fj(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",5),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onNoClick())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"dlg.cancel")))}let qu=(()=>{class r{dialogRef;data;msgToConfirm="";constructor(t,i){this.dialogRef=t,this.data=i,this.msgToConfirm=this.data.msg}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(!0)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-confirm-dialog"]],decls:8,vars:6,consts:[[2,"width","100%","position","relative","padding-bottom","40px"],[2,"margin-top","20px","margin-bottom","20px"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click",4,"ngIf"],["mat-raised-button","","color","primary",3,"mat-dialog-close","click"],["mat-raised-button","",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.qZA(),e.TgZ(3,"div",2),e.YNc(4,Fj,3,3,"button",3),e.TgZ(5,"button",4),e.NdJ("click",function(){return n.onOkClick()}),e._uU(6),e.ALo(7,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.hij(" ",n.msgToConfirm," "),e.xp6(2),e.Q6J("ngIf",!n.data.hideCancel),e.xp6(1),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(7,4,"dlg.ok")))},dependencies:[l.O5,Yn,Cc,Ir,Ni.X$]})}return r})(),zr=(()=>{class r{matDialogRef;container;mouseStart;mouseDelta;offset;constructor(t,i){this.matDialogRef=t,this.container=i}ngAfterViewInit(){this.offset=this._getOffset()}onMouseDown(t){this.offset=this._getOffset(),this.mouseStart={x:t.pageX,y:t.pageY};const i=Je(document,"mouseup");Je(document,"mousemove").pipe((0,On.R)(i)).subscribe(o=>this.onMouseMove(o))}onMouseMove(t){this.mouseDelta={x:t.pageX-this.mouseStart.x,y:t.pageY-this.mouseStart.y},this._updatePosition(this.offset.y+this.mouseDelta.y,this.offset.x+this.mouseDelta.x)}onMouseup(){this.mouseDelta&&(this.offset.x+=this.mouseDelta.x,this.offset.y+=this.mouseDelta.y)}_updatePosition(t,i){this.matDialogRef.updatePosition({top:t+"px",left:i+"px"})}_getOffset(){const t=this.container._elementRef.nativeElement.getBoundingClientRect();return{x:t.left+pageXOffset,y:t.top+pageYOffset}}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(mw))};static \u0275dir=e.lG2({type:r,selectors:[["","mat-dialog-draggable",""]],hostBindings:function(i,n){1&i&&e.NdJ("mousedown",function(s){return n.onMouseDown(s)})}})}return r})();function Oj(r,a){if(1&r&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Oqu(t.error)}}let Tv=(()=>{class r{dialogRef;data;error="";constructor(t,i){this.dialogRef=t,this.data=i}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.data)}isValid(t){return!(this.data.validator&&!this.data.validator(t)||this.data.exist&&this.data.exist.length&&this.data.exist.find(i=>i===t))}onCheckValue(t){this.error=this.data.exist&&this.data.exist.length&&t.target.value&&this.data.exist.find(i=>i===t.target.value)?this.data.error:""}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-edit-name"]],decls:20,vars:14,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field",2,"display","block","margin-bottom","10px","margin-top","10px"],["type","text",2,"width","300px",3,"ngModel","ngModelChange","input"],[2,"display","block","color","red","height","22px"],[4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","mat-dialog-close"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.qZA(),e.TgZ(3,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(4,"clear"),e.qZA(),e.TgZ(5,"div",2)(6,"div",3)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",4),e.NdJ("ngModelChange",function(s){return n.data.name=s})("input",function(s){return n.onCheckValue(s)}),e.qZA()(),e.TgZ(11,"div",5),e.YNc(12,Oj,2,1,"span",6),e.qZA()(),e.TgZ(13,"div",7)(14,"button",8),e.NdJ("click",function(){return n.onNoClick()}),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"button",9),e._uU(18),e.ALo(19,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(n.data.title),e.xp6(6),e.Oqu(e.lcZ(9,8,n.data.label||"dlg.item-name")),e.xp6(2),e.Q6J("ngModel",n.data.name),e.xp6(2),e.Q6J("ngIf",n.error),e.xp6(3),e.Oqu(e.lcZ(16,10,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",!n.isValid(n.data.name))("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(19,12,"dlg.ok")))},dependencies:[l.O5,I,et,$i,Yn,Cc,Qr,Kr,Ir,Zn,zr,Ni.X$]})}return r})();function Lj(r,a){if(1&r&&(e.TgZ(0,"span",16),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function Rj(r,a){if(1&r&&(e.TgZ(0,"mat-option",17),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let Yj=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.Qy;existingNames=[];error;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagType:[this.data.tag.type,Z.required],tagAddress:[this.data.tag.address,Z.required],tagDescription:[this.data.tag.description]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-s7"]],outputs:{result:"result"},decls:42,vars:30,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["formControlName","tagType"],[3,"value",4,"ngFor","ngForOf"],["formControlName","tagAddress","type","text"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,Lj,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",9),e.YNc(23,Rj,2,2,"mat-option",10),e.ALo(24,"enumToArray"),e.qZA()(),e.TgZ(25,"div",6)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e._UZ(29,"input",11),e.qZA(),e.TgZ(30,"div",6)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e._UZ(34,"input",12),e.qZA()(),e.TgZ(35,"div",13)(36,"button",14),e.NdJ("click",function(){return n.onNoClick()}),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"button",15),e.NdJ("click",function(){return n.onOkClick()}),e._uU(40),e.ALo(41,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,12,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,16,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,18,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(24,20,n.tagType)),e.xp6(4),e.Oqu(e.lcZ(28,22,"device.tag-property-address")),e.xp6(5),e.Oqu(e.lcZ(33,24,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(38,26,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(41,28,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})(),fs=(()=>{class r{el;specialKeys=["Backspace","Delete","Tab","End","Home","ArrowLeft","ArrowRight"];constructor(t){this.el=t}onKeyDown(t){-1===this.specialKeys.indexOf(t.key)||t.stopPropagation()}static \u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))};static \u0275dir=e.lG2({type:r,selectors:[["","numberOnly",""]],hostBindings:function(i,n){1&i&&e.NdJ("keydown",function(s){return n.onKeyDown(s)})}})}return r})(),Nj=(()=>{class r{el;regex=new RegExp(/^-?[0-9]+(\.[0-9]*){0,1}$/g);specialKeys=["Backspace","Delete","Tab","End","Home","ArrowLeft","ArrowRight"];constructor(t){this.el=t}onKeyDown(t){if(-1!==this.specialKeys.indexOf(t.key))return void t.stopPropagation();let i=this.el.nativeElement.value,n="";"-"===t.key?(t.preventDefault(),i.startsWith("-")||(n=t.key+i,this.el.nativeElement.value=n)):n=i.concat(t.key),n&&!String(n).match(this.regex)&&t.preventDefault(),t.stopPropagation()}static \u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))};static \u0275dir=e.lG2({type:r,selectors:[["","numberOrNullOnly",""]],hostBindings:function(i,n){1&i&&e.NdJ("keydown",function(s){return n.onKeyDown(s)})}})}return r})();function Uj(r,a){if(1&r&&(e.TgZ(0,"span",19),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function zj(r,a){if(1&r&&(e.TgZ(0,"mat-option",20),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let Hj=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.$2;existingNames=[];error;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagType:[this.data.tag.type,Z.required],tagInit:[this.data.tag.init],tagDescription:[this.data.tag.description]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-server"]],outputs:{result:"result"},decls:43,vars:30,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],[1,"item-combi"],[1,"my-form-field","item-inline","mt10"],["formControlName","tagType"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","item-inline","mt10","ftr","mr5"],["numberOnly","","formControlName","tagInit","type","text"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,Uj,2,1,"span",8),e.qZA(),e.TgZ(18,"div",9)(19,"div",10)(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"mat-select",11),e.YNc(24,zj,2,2,"mat-option",12),e.ALo(25,"enumToArray"),e.qZA()(),e.TgZ(26,"div",13)(27,"span"),e._uU(28),e.ALo(29,"translate"),e.qZA(),e._UZ(30,"input",14),e.qZA()(),e.TgZ(31,"div",6)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e._UZ(35,"input",15),e.qZA()(),e.TgZ(36,"div",16)(37,"button",17),e.NdJ("click",function(){return n.onNoClick()}),e._uU(38),e.ALo(39,"translate"),e.qZA(),e.TgZ(40,"button",18),e.NdJ("click",function(){return n.onOkClick()}),e._uU(41),e.ALo(42,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,12,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,16,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(4),e.Oqu(e.lcZ(22,18,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(25,20,n.tagType)),e.xp6(4),e.Oqu(e.lcZ(29,22,"device.tag-property-initvalue")),e.xp6(5),e.Oqu(e.lcZ(34,24,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(39,26,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(42,28,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%]{width:calc(50% - 10px);display:inline-block}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:100%}"]})}return r})();function Gj(r,a){if(1&r&&(e.TgZ(0,"span",18),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function Zj(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.hij(" ",t.key," ")}}function Jj(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let jj=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.Qn;memAddress={"Coil Status (Read/Write 000001-065536)":"000000","Digital Inputs (Read 100001-165536)":"100000","Input Registers (Read 300001-365536)":"300000","Holding Registers (Read/Write 400001-465535)":"400000"};existingNames=[];error;destroy$=new An.x;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagType:[this.data.tag.type,Z.required],tagAddress:[this.data.tag.address,[Z.required,Z.min(0)]],tagMemoryAddress:[this.data.tag.memaddress,Z.required],tagDescription:[this.data.tag.description],tagDivisor:[this.data.tag.divisor]}),this.formGroup.controls.tagMemoryAddress.valueChanges.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.formGroup.controls.tagType.enable(),t?("000000"===t||"100000"===t)&&(this.formGroup.patchValue({tagType:Yi.Qn.Bool}),this.formGroup.controls.tagType.disable()):this.formGroup.controls.tagType.disable()}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-modbus"]],outputs:{result:"result"},decls:54,vars:39,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["formControlName","tagMemoryAddress"],[3,"value",4,"ngFor","ngForOf"],["formControlName","tagType"],["numberOnly","","formControlName","tagAddress","type","number","min","0"],["numberOnly","","formControlName","tagDivisor","type","number"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,Gj,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",9),e.YNc(23,Zj,2,2,"mat-option",10),e.ALo(24,"enumToArray"),e.qZA()(),e.TgZ(25,"div",6)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"mat-select",11),e.YNc(30,Jj,2,2,"mat-option",10),e.ALo(31,"enumToArray"),e.qZA()(),e.TgZ(32,"div",6)(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA(),e._UZ(36,"input",12),e.qZA(),e.TgZ(37,"div",6)(38,"span"),e._uU(39),e.ALo(40,"translate"),e.qZA(),e._UZ(41,"input",13),e.qZA(),e.TgZ(42,"div",6)(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA(),e._UZ(46,"input",14),e.qZA()(),e.TgZ(47,"div",15)(48,"button",16),e.NdJ("click",function(){return n.onNoClick()}),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"button",17),e.NdJ("click",function(){return n.onOkClick()}),e._uU(52),e.ALo(53,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,15,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,17,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,19,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,21,"device.tag-property-register")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(24,23,n.memAddress)),e.xp6(4),e.Oqu(e.lcZ(28,25,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(31,27,n.tagType)),e.xp6(4),e.Oqu(e.lcZ(35,29,"device.tag-property-address-offset")),e.xp6(5),e.Oqu(e.lcZ(40,31,"device.tag-property-divisor")),e.xp6(5),e.Oqu(e.lcZ(45,33,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(50,35,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(53,37,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,qn,et,Xe,$n,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})();function Vj(r,a){if(1&r&&(e.TgZ(0,"span",19),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function Wj(r,a){if(1&r&&(e.TgZ(0,"mat-option",20),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let Kj=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.$2;existingNames=[];error;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagType:[this.data.tag.type],tagInit:[this.data.tag.init],tagDescription:[this.data.tag.description]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-internal"]],outputs:{result:"result"},decls:43,vars:30,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],[1,"item-combi"],[1,"my-form-field","item-inline","mt10"],["formControlName","tagType"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","item-inline","mt10","ftr","mr5"],["numberOnly","","formControlName","tagInit","type","text"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,Vj,2,1,"span",8),e.qZA(),e.TgZ(18,"div",9)(19,"div",10)(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"mat-select",11),e.YNc(24,Wj,2,2,"mat-option",12),e.ALo(25,"enumToArray"),e.qZA()(),e.TgZ(26,"div",13)(27,"span"),e._uU(28),e.ALo(29,"translate"),e.qZA(),e._UZ(30,"input",14),e.qZA()(),e.TgZ(31,"div",6)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e._UZ(35,"input",15),e.qZA()(),e.TgZ(36,"div",16)(37,"button",17),e.NdJ("click",function(){return n.onNoClick()}),e._uU(38),e.ALo(39,"translate"),e.qZA(),e.TgZ(40,"button",18),e.NdJ("click",function(){return n.onOkClick()}),e._uU(41),e.ALo(42,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,12,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,16,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(4),e.Oqu(e.lcZ(22,18,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(25,20,n.tagType)),e.xp6(4),e.Oqu(e.lcZ(29,22,"device.tag-property-initvalue")),e.xp6(5),e.Oqu(e.lcZ(34,24,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(39,26,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(42,28,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%]{width:calc(50% - 10px);display:inline-block}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:100%}"]})}return r})();var aA=ce(4276);let qj=(()=>{class r{vcr;tpl;iterableDiffers;lazyForContainer;itemHeight;itemTagName;set lazyForOf(t){this.list=t,t&&(this.differ=this.iterableDiffers.find(t).create(),this.initialized&&this.update())}templateElem;beforeListElem;afterListElem;list=[];initialized=!1;firstUpdate=!0;differ;lastChangeTriggeredByScroll=!1;constructor(t,i,n){this.vcr=t,this.tpl=i,this.iterableDiffers=n}ngOnInit(){this.templateElem=this.vcr.element.nativeElement,this.lazyForContainer=this.templateElem.parentElement,this.lazyForContainer.addEventListener("scroll",()=>{this.lastChangeTriggeredByScroll=!0}),this.initialized=!0}ngDoCheck(){this.differ&&Array.isArray(this.list)&&(this.lastChangeTriggeredByScroll?(this.update(),this.lastChangeTriggeredByScroll=!1):null!==this.differ.diff(this.list)&&this.update())}update(){if(0===this.list.length)return this.vcr.clear(),void(this.firstUpdate||(this.beforeListElem.style.height="0",this.afterListElem.style.height="0"));this.firstUpdate&&this.onFirstUpdate();const t=this.lazyForContainer.clientHeight,i=this.lazyForContainer.scrollTop,n=this.beforeListElem.getBoundingClientRect().top-this.beforeListElem.scrollTop-(this.lazyForContainer.getBoundingClientRect().top-this.lazyForContainer.scrollTop);this.vcr.clear();let o=Math.floor((i-n)/this.itemHeight);o=this.limitToRange(o,0,this.list.length);let s=Math.ceil((i-n+t)/this.itemHeight);s=this.limitToRange(s,-1,this.list.length-1);for(let c=o;c<=s;c++)this.vcr.createEmbeddedView(this.tpl,{$implicit:this.list[c],index:c});this.beforeListElem.style.height=o*this.itemHeight+"px",this.afterListElem.style.height=(this.list.length-s-1)*this.itemHeight+"px"}onFirstUpdate(){let t;(void 0===this.itemHeight||void 0===this.itemTagName)&&(this.vcr.createEmbeddedView(this.tpl,{$implicit:this.list[0],index:0}),t=this.templateElem.nextSibling||this.templateElem.previousSibling,void 0===this.itemHeight&&(this.itemHeight=t?.clientHeight),void 0===this.itemTagName&&(this.itemTagName=t?.tagName)),this.beforeListElem=document.createElement(this.itemTagName),this.templateElem.parentElement.insertBefore(this.beforeListElem,this.templateElem),this.afterListElem=document.createElement(this.itemTagName),this.templateElem.parentElement.insertBefore(this.afterListElem,this.templateElem.nextSibling),"li"===this.itemTagName.toLowerCase()&&(this.beforeListElem.style.listStyleType="none",this.afterListElem.style.listStyleType="none"),this.firstUpdate=!1}limitToRange(t,i,n){return Math.max(Math.min(t,n),i)}static \u0275fac=function(i){return new(i||r)(e.Y36(e.s_b),e.Y36(e.Rgc),e.Y36(e.ZZ4))};static \u0275dir=e.lG2({type:r,selectors:[["","lazyFor",""]],inputs:{lazyForOf:"lazyForOf"}})}return r})();const Xj=["treetable"];function $j(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"expand_more"),e.qZA())}function e9(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"chevron_right"),e.qZA())}const t9=function(r){return{display:r}};function i9(r,a){if(1&r&&(e.TgZ(0,"div",15),e._UZ(1,"mat-spinner",16),e.qZA()),2&r){const t=e.oxw(3).$implicit;e.Q6J("ngStyle",e.VKq(1,t9,t.expanded?"inline-block":"none"))}}function n9(r,a){1&r&&(e.TgZ(0,"button",17)(1,"mat-icon"),e._uU(2,"label"),e.qZA()())}function r9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",18),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.checked=n)})("change",function(n){e.CHM(t);const o=e.oxw(3).$implicit,s=e.oxw();return e.KtG(s.changeStatus(o,n))}),e.qZA()}if(2&r){const t=e.oxw(3).$implicit;e.Q6J("ngModel",t.checked)("disabled",!t.enabled)}}function o9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",7)(2,"button",8),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2).$implicit,o=e.oxw();return e.KtG(o.onExpandToggle(n))}),e.YNc(3,$j,2,0,"mat-icon",9),e.YNc(4,e9,2,0,"mat-icon",9),e.qZA(),e.YNc(5,i9,2,3,"div",10),e.YNc(6,n9,3,0,"button",11),e._uU(7),e.qZA(),e.TgZ(8,"div",12),e._uU(9),e.qZA(),e.TgZ(10,"div",13),e.YNc(11,r9,1,2,"mat-checkbox",14),e.qZA()()}if(2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(1),e.Udp("left",15*t.childPos,"px")("width",500-15*t.childPos,"px"),e.xp6(1),e.Q6J("disabled",!t.childs),e.xp6(1),e.Q6J("ngIf",t.expanded),e.xp6(1),e.Q6J("ngIf",!t.expanded),e.xp6(1),e.Q6J("ngIf",!t.childs.length),e.xp6(1),e.Q6J("ngIf",t.class===i.nodeType.Variable),e.xp6(1),e.hij(" ",t.text," "),e.xp6(1),e.Udp("left",15*t.childPos,"px"),e.xp6(1),e.hij(" ",t.property," "),e.xp6(2),e.Q6J("ngIf",t.class===i.nodeType.Variable||t.class===i.nodeType.Object&&t.expanded)}}function a9(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"expand_more"),e.qZA())}function s9(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"chevron_right"),e.qZA())}function l9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",22),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3).$implicit,o=e.oxw();return e.KtG(o.onExpandToggle(n))}),e.YNc(1,a9,2,0,"mat-icon",9),e.YNc(2,s9,2,0,"mat-icon",9),e.qZA()}if(2&r){const t=e.oxw(3).$implicit;e.xp6(1),e.Q6J("ngIf",t.expanded),e.xp6(1),e.Q6J("ngIf",!t.expanded)}}function c9(r,a){1&r&&(e.TgZ(0,"button",23)(1,"mat-icon"),e._uU(2,"label"),e.qZA()())}function A9(r,a){if(1&r&&(e.TgZ(0,"mat-option",27),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function d9(r,a){if(1&r&&(e.TgZ(0,"mat-option",27),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function u9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"span",24),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",25),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.todefine.id=n)}),e.YNc(5,A9,2,2,"mat-option",26),e.qZA(),e.TgZ(6,"span",24),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"mat-select",25),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.todefine.value=n)}),e.YNc(10,d9,2,2,"mat-option",26),e.qZA()()}if(2&r){const t=e.oxw(3).$implicit;e.xp6(2),e.Oqu(e.lcZ(3,6,"device.tag-array-id")),e.xp6(2),e.Q6J("value",t.todefine.id),e.xp6(1),e.Q6J("ngForOf",t.todefine.options),e.xp6(2),e.Oqu(e.lcZ(8,8,"device.tag-array-value")),e.xp6(2),e.Q6J("value",t.todefine.value),e.xp6(1),e.Q6J("ngForOf",t.todefine.options)}}function h9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",18),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.checked=n)})("change",function(n){e.CHM(t);const o=e.oxw(3).$implicit,s=e.oxw();return e.KtG(s.changeStatus(o,n))}),e.qZA()}if(2&r){const t=e.oxw(3).$implicit;e.Q6J("ngModel",t.checked)("disabled",!t.enabled)}}function p9(r,a){if(1&r&&(e.TgZ(0,"div")(1,"div",7),e.YNc(2,l9,3,2,"button",19),e.YNc(3,c9,3,0,"button",20),e._uU(4),e.YNc(5,u9,11,10,"div",9),e.qZA(),e.TgZ(6,"div",21),e._uU(7),e.qZA(),e.TgZ(8,"div",13),e._uU(9," \xa0 "),e.YNc(10,h9,1,2,"mat-checkbox",14),e.qZA()()),2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(1),e.Udp("left",15*t.childPos,"px")("width",600-15*t.childPos,"px"),e.xp6(1),e.Q6J("ngIf",t.expandable),e.xp6(1),e.Q6J("ngIf",t.class===i.nodeType.Variable||t.class===i.nodeType.Item),e.xp6(1),e.hij(" ",t.text," "),e.xp6(1),e.Q6J("ngIf",t.class===i.nodeType.Array),e.xp6(1),e.Udp("left",15*t.childPos,"px"),e.xp6(1),e.hij(" ",t.property," "),e.xp6(3),e.Q6J("ngIf",t.text&&t.class===i.nodeType.Variable)}}function g9(r,a){if(1&r&&(e.TgZ(0,"div",5),e.YNc(1,o9,12,14,"div",6),e.YNc(2,p9,11,12,"div",6),e.qZA()),2&r){const t=e.oxw(2);e.Q6J("ngSwitch",t.treeType),e.xp6(1),e.Q6J("ngSwitchCase",t.TypeOfTree.Standard),e.xp6(1),e.Q6J("ngSwitchCase",t.TypeOfTree.ToDefine)}}function f9(r,a){if(1&r&&(e.TgZ(0,"div",3),e.YNc(1,g9,3,3,"div",4),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.Q6J("ngIf",t.visible)}}let Iv=(()=>{class r{config;expand=new e.vpe;treetable;TypeOfTree=Qv;treeType=Qv.Standard;nodeType=TA;nodes={};list=[];containerProperty={width:"100%",height:"100%"};constructor(){}ngOnInit(){this.config&&(this.config.width&&(this.containerProperty.width=this.config.width),this.config.height&&(this.containerProperty.height=this.config.height),this.config.type===Qv.ToDefine&&(this.treeType=Qv.ToDefine))}onExpandToggle(t){const i=this.treetable.nativeElement.scrollTop;t.expanded=!t.expanded,t.expanded?(t.childs.length||this.expand.emit(t),this.hideNode(t,!0)):this.hideNode(t,!1),this.list=this.nodeToItems(this.treeType!==Qv.ToDefine),setTimeout(()=>{this.treetable.nativeElement.scrollTop=i},1)}hideNode(t,i){Object.values(t.childs).forEach(n=>{n.visible=i,this.hideNode(n,i&&n.expanded)})}addNode(t,i,n,o){i&&(t.setParent(this.nodes[i.id]),t.parent&&(t.parent.waiting=!1),t.enabled=n,n||(t.checked=!0)),o&&(t.enabled=n,n||(t.checked=!0)),Object.keys(this.nodes).indexOf(t.id)<0&&(this.nodes[t.id]=t)}update(t=!0){this.list=this.nodeToItems(t)}setNodeProperty(t,i){this.nodes[t.id]&&(this.nodes[t.id].property=i,this.nodes[t.id].type=t.type)}nodeToItems(t=!0){if(this.nodes&&Object.values(this.nodes).length){let i=[];return Object.values(this.nodes).forEach(n=>{n.visible&&i.push(n)}),t?i.sort((n,o)=>n.path>o.path?1:-1):i}return[]}changeStatus(t,i){t.childs&&t.childs.length>0&&t.childs.forEach(n=>{n.enabled&&n.class===this.nodeType.Variable&&(n.checked=t.checked)})}expandable(t){return t===TA.Object}getDefinedKey(t){return""}getToDefineOptions(t){return Object.keys(t.options)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["ngx-treetable"]],viewQuery:function(i,n){if(1&i&&e.Gf(Xj,7),2&i){let o;e.iGM(o=e.CRH())&&(n.treetable=o.first)}},inputs:{config:"config"},outputs:{expand:"expand"},decls:3,vars:5,consts:[[1,"container"],["treetable",""],["class","item",4,"lazyFor","lazyForOf"],[1,"item"],[3,"ngSwitch",4,"ngIf"],[3,"ngSwitch"],[4,"ngSwitchCase"],[1,"item-text"],["mat-icon-button","",3,"disabled","click"],[4,"ngIf"],["class","item-waiting","style","width:40px",3,"ngStyle",4,"ngIf"],["mat-icon-button","","enabled","false",4,"ngIf"],[1,"item-property"],[1,"item-check"],[3,"ngModel","disabled","ngModelChange","change",4,"ngIf"],[1,"item-waiting",2,"width","40px",3,"ngStyle"],["diameter","20"],["mat-icon-button","","enabled","false"],[3,"ngModel","disabled","ngModelChange","change"],["mat-icon-button","",3,"click",4,"ngIf"],["mat-icon-button","",4,"ngIf"],[1,"item-info"],["mat-icon-button","",3,"click"],["mat-icon-button",""],[2,"margin-left","15px","margin-right","5px"],[2,"width","120px",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e.YNc(2,f9,2,1,"div",2),e.qZA()),2&i&&(e.Udp("height",n.containerProperty.height)("width",n.containerProperty.width),e.xp6(2),e.Q6J("lazyForOf",n.list))},dependencies:[l.sg,l.O5,l.PC,l.RF,l.n9,et,$i,Nr,Yn,Bh,Zn,BA,fo,qj,Ni.X$],styles:[".container[_ngcontent-%COMP%]{overflow:auto}.item[_ngcontent-%COMP%]{width:100%;height:40px}.item[_ngcontent-%COMP%]:hover{background-color:#0000001a}.item-text[_ngcontent-%COMP%]{width:500px;position:relative;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-text[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block;overflow-wrap:break-word;text-overflow:ellipsis;white-space:nowrap}.item-property[_ngcontent-%COMP%]{position:relative;width:400px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:40px}.item-info[_ngcontent-%COMP%]{position:relative;width:200px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:40px}.item-check[_ngcontent-%COMP%]{float:right;margin-right:20px;line-height:32px}.item-waiting[_ngcontent-%COMP%]{display:inline-block;height:40;vertical-align:middle;overflow:hidden}"]})}return r})(),kv=(()=>{class r{static SEPARATOR=">";id="";path="";text="";class;childPos=0;expandable=!0;expanded=!1;visible=!0;parent=null;property="";type="";checked=!1;childs=[];waiting=!0;enabled=!0;todefine=null;constructor(t,i){this.id=t,this.text=i,this.path=this.text}setParent(t){t&&(this.parent=t,this.path=t.path+r.SEPARATOR+this.text,this.childPos=t.childPos+1,this.parent.childs.push(this))}setToDefine(){this.todefine={options:[""],id:"",value:""}}addToDefine(t){this.todefine&&-1===this.todefine.options.indexOf(t)&&this.todefine.options.push(t)}static strToType(t){return TA[t]?TA[t]:t}}return r})();var TA=function(r){return r[r.Unspecified=0]="Unspecified",r[r.Object=1]="Object",r[r.Variable=2]="Variable",r[r.Methode=4]="Methode",r[r.ObjectType=8]="ObjectType",r[r.VariableType=16]="VariableType",r[r.ReferenceType=32]="ReferenceType",r[r.DataType=64]="DataType",r[r.View=128]="View",r[r.Array=256]="Array",r[r.Item=512]="Item",r[r.Reference=1024]="Reference",r}(TA||{}),Qv=function(r){return r.Standard="standard",r.ToDefine="todefine",r}(Qv||{});function m9(r,a){1&r&&(e.ynx(0),e._uU(1),e.ALo(2,"translate"),e.BQk()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.tag-property-title")," "))}function _9(r,a){1&r&&(e._uU(0),e.ALo(1,"translate")),2&r&&e.hij(" ",e.lcZ(1,1,"device.browsetag-property-title")," ")}function v9(r,a){if(1&r&&(e.TgZ(0,"mat-option",17),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function y9(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"div",9)(2,"div",10)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._UZ(6,"input",11),e.qZA(),e.TgZ(7,"div",12)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",13),e.qZA(),e.TgZ(12,"div",12)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",14),e.YNc(17,v9,2,2,"mat-option",15),e.ALo(18,"enumToArray"),e.qZA()(),e.TgZ(19,"div",12)(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA(),e._UZ(23,"input",16),e.qZA()(),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("formGroup",t.formGroup),e.xp6(3),e.Oqu(e.lcZ(5,6,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(10,8,"device.tag-property-name")),e.xp6(5),e.Oqu(e.lcZ(15,10,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(18,12,t.tagType)),e.xp6(4),e.Oqu(e.lcZ(22,14,"device.tag-property-description"))}}function w9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",18)(1,"ngx-treetable",19,20),e.NdJ("expand",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.queryNext(n))}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(1),e.Q6J("config",t.config)}}let xL=(()=>{class r{fb;hmiService;dialogRef;data;formGroup;result=new e.vpe;destroy$=new An.x;treetable;tagType=Yi.p2;config={height:"640px",width:"1000px"};constructor(t,i,n,o){this.fb=t,this.hmiService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.data.tag?this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,Z.required],tagType:[this.data.tag.type],tagDescription:[this.data.tag.description]}):(this.hmiService.onDeviceBrowse.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.data.device.id===t.device&&(t.error?this.addError(t.node,t.error):this.addNodes(t.node,t.result))}),this.hmiService.onDeviceNodeAttribute.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.data.device.id===t.device&&(t.error||t.node&&(t.node.attribute[14]&&(t.node.type=t.node.attribute[14]),this.treetable.setNodeProperty(t.node,this.attributeToString(t.node.attribute))))}),this.queryNext(null))}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}queryNext(t){let i=t?{id:t.id}:null;t&&(i.parent=t.parent?t.parent.id:null),this.hmiService.askDeviceBrowse(this.data.device.id,i)}addNodes(t,i){if(i){let n=Object.values(this.data.device.tags);i.forEach(o=>{let s=new kv(o.id,o.name);s.class=o.class,s.property=this.getProperty(o);let c=!0;s.class===TA.Variable&&n.find(B=>B.address===o.id)&&(c=!1),this.treetable.addNode(s,t,c,!1),s.class===TA.Variable&&this.hmiService.askNodeAttributes(this.data.device.id,o)}),this.treetable.update()}}attributeToString(t){let i="";return t&&Object.values(t).forEach(n=>{i.length&&(i+=", "),i+=n}),i}getProperty(t){return"Object"===t.class?"":"Variable"===t.class?"Variable":"Method"===t.class?"Method":""}addError(t,i){}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.tag?this.result.emit(this.formGroup.getRawValue()):(this.data.nodes=[],Object.keys(this.treetable.nodes).forEach(t=>{let i=this.treetable.nodes[t];i.checked&&i.enabled&&(i.type||!i.childs||0==i.childs.length)&&this.data.nodes.push(this.treetable.nodes[t])}),this.result.emit(this.data))}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(aA.Bb),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-opcua"]],viewQuery:function(i,n){if(1&i&&e.Gf(Iv,5),2&i){let o;e.iGM(o=e.CRH())&&(n.treetable=o.first)}},outputs:{result:"result"},decls:18,vars:10,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[4,"ngIf","ngIfElse"],["mode",""],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",2,"display","contents"],["addTag",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[1,"container",3,"formGroup"],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text","readonly",""],["formControlName","tagType"],[3,"value",4,"ngFor","ngForOf"],["formControlName","tagDescription","type","text"],[3,"value"],[2,"overflow","auto"],[3,"config","expand"],["treetable",""]],template:function(i,n){if(1&i&&(e.TgZ(0,"div")(1,"h1",0),e.YNc(2,m9,3,3,"ng-container",1),e.YNc(3,_9,2,3,"ng-template",null,2,e.W1O),e.qZA(),e.TgZ(5,"mat-icon",3),e.NdJ("click",function(){return n.onNoClick()}),e._uU(6,"clear"),e.qZA(),e.TgZ(7,"div",4),e.YNc(8,y9,24,16,"ng-container",1),e.YNc(9,w9,3,1,"ng-template",null,5,e.W1O),e.qZA(),e.TgZ(11,"div",6)(12,"button",7),e.NdJ("click",function(){return n.onNoClick()}),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"button",8),e.NdJ("click",function(){return n.onOkClick()}),e._uU(16),e.ALo(17,"translate"),e.qZA()()()),2&i){const o=e.MAs(4),s=e.MAs(10);e.xp6(2),e.Q6J("ngIf",n.data.tag)("ngIfElse",o),e.xp6(6),e.Q6J("ngIf",n.data.tag)("ngIfElse",s),e.xp6(5),e.Oqu(e.lcZ(14,6,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(17,8,"dlg.ok"))}},dependencies:[l.sg,l.O5,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,Iv,Ni.X$,ii.T9],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})(),C9=(()=>{class r{hmiService;dialogRef;data;result=new e.vpe;destroy$=new An.x;treetable;config={height:"640px",width:"1000px"};constructor(t,i,n){this.hmiService=t,this.dialogRef=i,this.data=n}ngOnInit(){this.hmiService.onDeviceBrowse.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.data.device.id===t.device&&(t.error?this.addError(t.node,t.error):this.addNodes(t.node,t.result))}),this.hmiService.onDeviceNodeAttribute.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.data.device.id===t.device&&(t.error||t.node&&(t.node.attribute[14]&&(t.node.type=t.node.attribute[14]),this.treetable.setNodeProperty(t.node,this.attributeToString(t.node.attribute))))}),this.queryNext(null)}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}queryNext(t){let i=t?{id:t.id}:null;t&&(i.parent=t.parent?t.parent.id:null),this.hmiService.askDeviceBrowse(this.data.device.id,i)}addNodes(t,i){if(i){let n=Object.values(this.data.device.tags);i.forEach(o=>{let s=new kv(o.id,o.name);s.class=o.class,s.property=this.getProperty(o),s.class=kv.strToType(o.class),s.type=o.type;var c=Object.values(Yi.rq)[o.type];c&&(s.property=c);let g=!0;s.class===TA.Variable&&n.find(O=>O.address===o.id)&&(g=!1),this.treetable.addNode(s,t,g,!1)}),this.treetable.update()}}attributeToString(t){let i="";return t&&Object.values(t).forEach(n=>{i.length&&(i+=", "),i+=n}),i}getProperty(t){return"Object"===t.class?"":"Variable"===t.class?"Variable":"Method"===t.class?"Method":""}addError(t,i){}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.nodes=[],Object.keys(this.treetable.nodes).forEach(t=>{let i=this.treetable.nodes[t];i.checked&&i.enabled&&(i.type||!i.childs||0==i.childs.length)&&this.data.nodes.push(this.treetable.nodes[t])}),this.result.emit(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-bacnet"]],viewQuery:function(i,n){if(1&i&&e.Gf(Iv,5),2&i){let o;e.iGM(o=e.CRH())&&(n.treetable=o.first)}},outputs:{result:"result"},decls:17,vars:10,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",2,"display","contents"],[2,"overflow","auto"],[3,"config","expand"],["treetable",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"ngx-treetable",4,5),e.NdJ("expand",function(s){return n.queryNext(s)}),e.qZA()()(),e.TgZ(10,"div",6)(11,"button",7),e.NdJ("click",function(){return n.onNoClick()}),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"button",8),e.NdJ("click",function(){return n.onOkClick()}),e._uU(15),e.ALo(16,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,4,"device.browsetag-property-title")),e.xp6(6),e.Q6J("config",n.config),e.xp6(4),e.Oqu(e.lcZ(13,6,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(16,8,"dlg.ok")))},dependencies:[Yn,Qr,Kr,Ir,Zn,zr,Iv,Ni.X$],styles:["[_nghost-%COMP%]{display:block}"]})}return r})(),b9=(()=>{class r{hmiService;dialogRef;data;result=new e.vpe;destroy$=new An.x;treetable;config={height:"640px",width:"1000px",type:"todefine"};constructor(t,i,n){this.hmiService=t,this.dialogRef=i,this.data=n}ngOnInit(){this.hmiService.onDeviceWebApiRequest.pipe((0,On.R)(this.destroy$)).subscribe(t=>{t.result&&(this.addTreeNodes(t.result),this.treetable.update(!1))}),this.hmiService.askWebApiProperty(this.data.device.property)}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}queryNext(t){let i=t?{id:t.id}:null;t&&(i.parent=t.parent?t.parent.id:null),this.hmiService.askDeviceBrowse(this.data.device.id,i)}addTreeNodes(t,i="",n=null){let o=i;n&&n.id&&(o=n.id+":"+o);let c=new kv(o,i);if(c.parent=n,Array.isArray(t)){c.class=TA.Array,c.setToDefine(),c.expanded=!0,this.treetable.addNode(c,n,!0);let B=0;for(var g in t)this.addTreeNodes(t[g],"["+B+++"]",c)}else if(t&&"object"==typeof t)for(var g in c.expanded=!0,c.class=TA.Object,this.treetable.addNode(c,n,!0),t)this.addTreeNodes(t[g],g,c),n&&n.addToDefine(g);else{c.expandable=!1,c.class=TA.Variable,c.childs=[],c.property=t;let B=!0;const O=Object.values(this.data.device.tags).find(ne=>ne.address===o);c.parent&&c.parent.parent&&c.parent.parent.class===TA.Array?(c.class=TA.Item,!c.parent.parent.todefine.id&&this.data.device.tags[o]&&this.data.device.tags[o].options&&(c.parent.parent.todefine.id=this.data.device.tags[o].options.selid,c.parent.parent.todefine.value=this.data.device.tags[o].options.selval)):O&&(B=!1),this.treetable.addNode(c,n,B)}}getSelectedTreeNodes(t,i){let n=[];for(let o in t){let s=t[o];if(s.class===TA.Array&&s.todefine&&s.todefine.id&&s.todefine.value){let c=this.getSelectedTreeNodes(s.childs,s.todefine);for(let g in c)n.push(c[g])}else if(s.class===TA.Object&&i&&i.id&&i.value){let c=null,g=null;for(let B in s.childs){let O=s.childs[B];O.text===i.id?c=O:O.text===i.value&&(g=O)}if(c&&g){let B=new kv(c.id,c.property);B.class=TA.Reference,B.property=g.id,B.todefine={selid:c.text,selval:g.text},B.type=ii.cQ.getType(g.property),B.checked=!0,B.enabled=s.enabled,Object.values(this.data.device.tags).find(ne=>ne.address===B.id&&ne.memaddress===B.property)&&(B.enabled=!1),n.push(B)}}else if(s.class===TA.Variable&&s.checked){let c=new kv(s.id,s.text);c.type=ii.cQ.getType(s.property),c.checked=s.checked,c.enabled=s.enabled,n.push(c)}}return n}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.nodes=[],this.getSelectedTreeNodes(Object.values(this.treetable.nodes),null).forEach(i=>{i.checked&&i.enabled&&this.data.nodes.push(i)}),this.result.emit(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-webapi"]],viewQuery:function(i,n){if(1&i&&e.Gf(Iv,5),2&i){let o;e.iGM(o=e.CRH())&&(n.treetable=o.first)}},outputs:{result:"result"},decls:17,vars:10,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",2,"display","contents"],[2,"overflow","auto"],[3,"config","expand"],["treetable",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"ngx-treetable",4,5),e.NdJ("expand",function(s){return n.queryNext(s)}),e.qZA()()(),e.TgZ(10,"div",6)(11,"button",7),e.NdJ("click",function(){return n.onNoClick()}),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"button",8),e.NdJ("click",function(){return n.onOkClick()}),e._uU(15),e.ALo(16,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,4,"device.browsetag-property-title")),e.xp6(6),e.Q6J("config",n.config),e.xp6(4),e.Oqu(e.lcZ(13,6,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(16,8,"dlg.ok")))},dependencies:[Yn,Qr,Kr,Ir,Zn,zr,Iv,Ni.X$],styles:["[_nghost-%COMP%]{display:block}"]})}return r})();function x9(r,a){if(1&r&&(e.TgZ(0,"span",14),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}let B9=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;existingNames=[];error;destroy$=new An.x;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagAddress:[this.data.tag.address,[Z.required]],tagDescription:[this.data.tag.description]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-ethernetip"]],outputs:{result:"result"},decls:35,vars:24,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["numberOnly","","formControlName","tagAddress","type","text"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,x9,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"input",9),e.qZA(),e.TgZ(23,"div",6)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e._UZ(27,"input",10),e.qZA()(),e.TgZ(28,"div",11)(29,"button",12),e.NdJ("click",function(){return n.onNoClick()}),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"button",13),e.NdJ("click",function(){return n.onOkClick()}),e._uU(33),e.ALo(34,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,10,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,12,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,14,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,16,"device.tag-property-address-sample")),e.xp6(5),e.Oqu(e.lcZ(26,18,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(31,20,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(34,22,"dlg.ok")))},dependencies:[l.O5,In,I,et,Xe,Sr,Ot,Yn,Qr,Kr,Ir,Zn,zr,fs,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})();function E9(r,a){if(1&r&&(e.TgZ(0,"span",16),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function M9(r,a){if(1&r&&(e.TgZ(0,"mat-option",17),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let D9=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.ls;existingNames=[];error;destroy$=new An.x;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagType:[this.data.tag.type,Z.required],tagAddress:[this.data.tag.address,Z.required],tagDescription:[this.data.tag.description]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}validateName(){return t=>(this.error=null,-1!==this.existingNames.indexOf(t.value)?{name:this.translateService.instant("msg.device-tag-exist")}:null)}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-adsclient"]],outputs:{result:"result"},decls:42,vars:30,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["formControlName","tagType"],[3,"value",4,"ngFor","ngForOf"],["formControlName","tagAddress","type","text"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,E9,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",9),e.YNc(23,M9,2,2,"mat-option",10),e.ALo(24,"enumToArray"),e.qZA()(),e.TgZ(25,"div",6)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e._UZ(29,"input",11),e.qZA(),e.TgZ(30,"div",6)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e._UZ(34,"input",12),e.qZA()(),e.TgZ(35,"div",13)(36,"button",14),e.NdJ("click",function(){return n.onNoClick()}),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"button",15),e.NdJ("click",function(){return n.onOkClick()}),e._uU(40),e.ALo(41,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,12,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,16,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,18,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(24,20,n.tagType)),e.xp6(4),e.Oqu(e.lcZ(28,22,"device.tag-property-address-offset")),e.xp6(5),e.Oqu(e.lcZ(33,24,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(38,26,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(41,28,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})(),T9=(()=>{class r{static tryToParse(t,i=null){if(null==t)return i;if("object"==typeof t)return t;if("string"==typeof t)try{const n=JSON.parse(t);if("object"==typeof n&&null!==n)return n}catch(n){console.warn("tryToParse(): invalid JSON string",n)}return i}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();const I9=["grptabs"],k9=["tabsub"],Q9=["tabpub"];function S9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",13),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onDiscoveryTopics(n.topicSource))}),e.TgZ(1,"mat-icon"),e._uU(2,"search"),e.qZA()()}if(2&r){const t=e.oxw();e.Q6J("disabled",t.isSubscriptionEdit())}}function P9(r,a){1&r&&(e.TgZ(0,"div",51),e._UZ(1,"mat-spinner",52),e.qZA())}function F9(r,a){if(1&r&&(e.TgZ(0,"div",53),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.discoveryError," ")}}const O9=function(r){return{"topic-active":r}};function L9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",55),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.selectTopic(o))}),e.TgZ(2,"div",56),e._uU(3),e.qZA(),e.TgZ(4,"div",57),e._uU(5),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.Q6J("ngClass",e.VKq(3,O9,i.isTopicSelected(t))),e.xp6(2),e.hij(" ",t.key," "),e.xp6(2),e.hij(" ",t.value.content," ")}}function R9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",58)(2,"div",59)(3,"input",60),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)}),e.qZA()(),e.TgZ(4,"div",59)(5,"input",61),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.key=n)}),e.qZA()(),e.TgZ(6,"div",57),e._uU(7),e.qZA(),e.TgZ(8,"div",62)(9,"mat-checkbox",63),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.checked=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.isSubscriptionValid())}),e.qZA()()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(3),e.Q6J("ngModel",t.name),e.xp6(2),e.Q6J("ngModel",t.key)("disabled","raw"===i.topicSelectedSubType),e.xp6(2),e.hij(" ",t.value," "),e.xp6(2),e.Q6J("ngModel",t.checked)("disabled",i.editSubscription)}}function Y9(r,a){if(1&r&&(e.TgZ(0,"mat-option",75),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function N9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"flex-variable",76),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onSetPublishItemTag(o,n))}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("variableId",t.value)("withStaticValue",!1)}}function U9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",77)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",78),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,3,"device.topic-publish-timestamp")),e.xp6(2),e.Q6J("ngModel",t.value)("disabled",!0)}}function z9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",77)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",78),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,3,"device.topic-publish-value")),e.xp6(2),e.Q6J("ngModel",t.value)("disabled",!0)}}function H9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",77)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",79),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)})("keyup",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.stringifyPublishItem())}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"device.topic-publish-static")),e.xp6(2),e.Q6J("ngModel",t.value)}}function G9(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64)(1,"div",65)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",66),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.key=n)})("keyup",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.stringifyPublishItem())}),e.qZA()(),e.TgZ(6,"div",67)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",68),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)})("selectionChange",function(){const o=e.CHM(t).$implicit,s=e.oxw();return s.stringifyPublishItem(),e.KtG(s.onItemTypeChanged(o))}),e.YNc(11,Y9,2,2,"mat-option",69),e.ALo(12,"enumToArray"),e.qZA()(),e.TgZ(13,"div",70),e.YNc(14,N9,2,3,"div",71),e.YNc(15,U9,5,5,"div",72),e.YNc(16,z9,5,5,"div",72),e.YNc(17,H9,5,4,"div",72),e.qZA(),e.TgZ(18,"div",73)(19,"button",74),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemovePublishItem(o))}),e.TgZ(20,"mat-icon"),e._uU(21,"clear"),e.qZA()()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,11,"device.topic-publish-key")),e.xp6(2),e.Q6J("ngModel",t.key)("disabled","raw"===i.topicSelectedPubType),e.xp6(3),e.Oqu(e.lcZ(9,13,"device.topic-publish-type")),e.xp6(2),e.Q6J("value",t.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(12,15,i.itemType)),e.xp6(2),e.Q6J("ngSwitch",t.type),e.xp6(1),e.Q6J("ngSwitchCase",i.itemTag),e.xp6(1),e.Q6J("ngSwitchCase",i.itemTimestamp),e.xp6(1),e.Q6J("ngSwitchCase",i.itemValue),e.xp6(1),e.Q6J("ngSwitchCase",i.itemStatic)}}let BL=(()=>{class r{hmiService;translateService;dialogRef;data;grptabs;tabsub;tabpub;subscriptionBrowse;editMode=!1;topicSource="#";topicsList={};topicContent=[];topicSelectedSubType="raw";discoveryError="";discoveryWait=!1;discoveryTimer=null;selectedTopic={name:"",key:"",value:null,subs:null};topicToAdd={};invokeSubscribe=null;invokePublish=null;topicSelectedPubType="raw";publishTopicName;publishTopicPath;pubPayload=new Z9;pubPayloadResult="";itemType=Xu;itemTag=ii.cQ.getEnumKey(Xu,Xu.tag);itemTimestamp=ii.cQ.getEnumKey(Xu,Xu.timestamp);itemValue=ii.cQ.getEnumKey(Xu,Xu.value);itemStatic=ii.cQ.getEnumKey(Xu,Xu.static);editSubscription=!1;allChecked=!1;constructor(t,i,n,o){this.hmiService=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){if(this.subscriptionBrowse=this.hmiService.onDeviceBrowse.subscribe(i=>{if("error"===i.result)this.discoveryError=i.result;else if(i.topic)if(this.topicsList[i.topic])this.topicsList[i.topic].value=i.msg;else{let n=!1,o=!0;this.data.device.tags[i.topic]&&(n=!0,o=!1),this.topicsList[i.topic]={name:i.topic,content:i.msg,checked:n,enabled:o}}}),Object.keys(this.itemType).forEach(i=>{this.translateService.get(this.itemType[i]).subscribe(n=>{this.itemType[i]=n})}),this.data.topic){let i=this.data.topic;if(i.options)if(i.options.subs){this.editSubscription=!0,this.grptabs.selectedIndex=0,this.tabpub.disabled=!0,this.topicSelectedSubType=i.type,this.editMode=!0;var t={key:i.address,name:i.name,value:{name:i.address},subs:i.options.subs};if("json"===i.type){const n=Object.values(this.data.device.tags).filter(s=>s.address===i.address),o={};i.options.subs.forEach(s=>{o[s]=n.find(c=>c.memaddress===s)}),t.value.content=o}else t.name=i.name,t.value.content=i.value;this.selectTopic(t)}else this.grptabs.selectedIndex=1,this.tabsub.disabled=!0,this.publishTopicPath=i.address,this.publishTopicName=i.name,this.topicSelectedPubType=i.type,i.options.pubs&&(this.pubPayload.items=i.options.pubs)}this.loadSelectedSubTopic(),this.stringifyPublishItem()}ngOnDestroy(){try{this.subscriptionBrowse&&this.subscriptionBrowse.unsubscribe()}catch{}this.discoveryTimer&&clearInterval(this.discoveryTimer),this.discoveryTimer=null}onNoClick(){this.dialogRef.close()}onDiscoveryTopics(t){this.discoveryError="",this.discoveryWait=!0,this.discoveryTimer=setTimeout(()=>{this.discoveryWait=!1},1e4),this.hmiService.askDeviceBrowse(this.data.device.id,t)}onClearDiscovery(){this.topicsList={},this.discoveryError="",this.discoveryWait=!1;try{this.discoveryTimer&&clearInterval(this.discoveryTimer)}catch{}}selectTopic(t){this.selectedTopic=JSON.parse(JSON.stringify(t)),this.loadSelectedSubTopic()}loadSelectedSubTopic(){if(this.topicContent=[],this.selectedTopic.value)if("json"===this.topicSelectedSubType){let t=T9.tryToParse(this.selectedTopic.value?.content,{});Object.keys(t).forEach(i=>{let n=!this.selectedTopic.subs;this.selectedTopic.subs&&-1!==this.selectedTopic.subs.indexOf(i)&&(n=!0);const o={key:i,value:"",checked:n,type:this.topicSelectedSubType,name:""};t[i]&&(this.editSubscription?(o.name=t[i]?.name||"",o.tag=t[i]):o.value=t[i]),this.topicContent.push(o)})}else(!ii.cQ.isNullOrUndefined(this.selectedTopic.value?.content)||this.editSubscription)&&(this.topicContent=[{name:this.selectedTopic.name,key:this.selectedTopic.key,value:this.selectedTopic.value?.content,checked:!0,type:this.topicSelectedSubType}])}onSubTopicValChange(t){this.loadSelectedSubTopic()}isTopicSelected(t){return this.selectedTopic===t.key}isSubscriptionEdit(){return this.editMode}isSubscriptionValid(){if(this.topicContent&&this.topicContent.length){let t=!1;for(let i=0;i=c.length-1&&(g[c[B]]=s),g=g[c[B]]}else i&&(s=";"+s);i+=s}else i=`$(${this.publishTopicPath})`,t={"":i};this.pubPayloadResult="json"===this.topicSelectedPubType?JSON.stringify(t,void 0,2):i}isPublishValid(){return!(!this.publishTopicPath||!this.publishTopicPath.length)}toggleAllChecked(){this.topicContent&&this.topicContent.forEach(t=>{this.editSubscription||(t.checked=this.allChecked)}),this.isSubscriptionValid()}updateAllChecked(){this.allChecked=this.topicContent?.every(t=>t.checked)??!1}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-topic-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(I9,7),e.Gf(k9,7),e.Gf(Q9,7)),2&i){let o;e.iGM(o=e.CRH())&&(n.grptabs=o.first),e.iGM(o=e.CRH())&&(n.tabsub=o.first),e.iGM(o=e.CRH())&&(n.tabpub=o.first)}},decls:104,vars:85,consts:[[2,"width","100%","position","relative"],[2,"width","840px"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move","padding-top","15px"],[2,"float","right","cursor","pointer","color","gray","position","relative","top","10px","right","0px",3,"click"],[2,"width","100%","height","100%"],["grptabs",""],[3,"label"],["tabsub",""],[2,"display","block","margin-bottom","5px","margin-top","10px"],[1,"my-form-field",2,"display","inline-block","margin-right","10px"],["type","text",2,"width","400px",3,"ngModel","disabled","ngModelChange"],["mat-icon-button","","style","display:inline-block;",3,"disabled","click",4,"ngIf"],["style","display:inline-block; margin-left: 10px;width: 30px; vertical-align: middle;",4,"ngIf"],["mat-icon-button","",2,"display","inline-block",3,"disabled","click"],["style","display: block; color: red;",4,"ngIf"],[1,"browser-result"],["class","browser-item",4,"ngFor","ngForOf"],[1,"select-tool"],[1,"my-form-field","select-item"],["type","text",1,"my-form-readonly-input",3,"ngModel","ngModelChange","keyup"],[1,"my-form-field","add-payload"],["mat-icon-button","",3,"disabled","click"],[1,"toggle-group",3,"ngModel","disabled","ngModelChange","change"],["value","raw"],["value","json"],["mat-raised-button","","color","primary",2,"margin-left","20px",3,"disabled","click"],[1,"my-form-field",2,"margin-top","10px","width","100%","overflow-x","hidden"],[1,"topic-subscription-header"],[2,"display","inline-block","width","230px"],[2,"display","inline-block"],[2,"float","right"],[3,"ngModel","disabled","ngModelChange","change"],[1,"topic-subscription-result"],[4,"ngFor","ngForOf"],["tabpub",""],[2,"display","block","margin-top","10px"],[1,"my-form-field",2,"display","block","margin-right","10px","margin-bottom","10px"],["type","text",2,"width","400px",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"display","inline-block","margin-right","10px","margin-bottom","10px"],["type","text",2,"width","400px",3,"ngModel","ngModelChange","keyup"],[1,"toggle-group",3,"ngModel","ngModelChange","change"],["value","raw",3,"disabled"],["value","json",3,"disabled"],[1,"my-form-field",2,"display","block"],["mat-icon-button","",3,"click"],[2,"height","200px","border","1px solid var(--formBorder)","padding","5px 5px 3px 8px","overflow","auto","margin-bottom","10px"],["class","item",4,"ngFor","ngForOf"],[1,"my-form-field",2,"display","inline-block","width","826px"],[1,"topic-publish-result",3,"innerHTML"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],[2,"display","inline-block","margin-left","10px","width","30px","vertical-align","middle"],["diameter","20"],[2,"display","block","color","red"],[1,"browser-item"],[1,"topic",3,"ngClass","click"],[1,"topic-text"],[1,"topic-value"],[1,"topic"],[1,"topic-name"],["type","text",3,"ngModel","ngModelChange"],["type","text",3,"ngModel","disabled","ngModelChange"],[1,"topic-check"],["value","true",3,"ngModel","disabled","ngModelChange","change"],[1,"item"],[1,"my-form-field",2,"margin-right","10px"],["type","text",2,"width","140px",3,"ngModel","disabled","ngModelChange","keyup"],[1,"my-form-field",2,"width","120px","margin-right","16px"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[2,"display","inline-block",3,"ngSwitch"],[4,"ngSwitchCase"],["class","my-form-field","style","margin-bottom: 5px;",4,"ngSwitchCase"],[2,"float","right","padding-top","5px"],["mat-icon-button","",1,"remove",3,"click"],[3,"value"],[2,"display","block",3,"data","variableId","withStaticValue","onchange"],[1,"my-form-field",2,"margin-bottom","5px"],["type","text",2,"width","478px",3,"ngModel","disabled","ngModelChange"],["type","text",2,"width","478px",3,"ngModel","ngModelChange","keyup"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1)(2,"h1",2),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-icon",3),e.NdJ("click",function(){return n.onNoClick()}),e._uU(6,"clear"),e.qZA(),e.TgZ(7,"mat-tab-group",4,5)(9,"mat-tab",6,7),e.ALo(11,"translate"),e.TgZ(12,"div",8)(13,"div",9)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",10),e.NdJ("ngModelChange",function(s){return n.topicSource=s}),e.qZA()(),e.YNc(18,S9,3,1,"button",11),e.YNc(19,P9,2,0,"div",12),e.TgZ(20,"button",13),e.NdJ("click",function(){return n.onClearDiscovery()}),e.TgZ(21,"mat-icon"),e._uU(22,"delete_outline"),e.qZA()(),e.YNc(23,F9,2,1,"div",14),e.qZA(),e.TgZ(24,"div",15),e.YNc(25,L9,6,5,"div",16),e.ALo(26,"keyvalue"),e.qZA(),e.TgZ(27,"div",17)(28,"div",18)(29,"span"),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"input",19),e.NdJ("ngModelChange",function(s){return n.selectedTopic.key=s})("keyup",function(){return n.onSelectedChanged()}),e.qZA()(),e.TgZ(33,"div",20)(34,"button",21),e.NdJ("click",function(){return n.onAddSubscribeAttribute()}),e.TgZ(35,"mat-icon"),e._uU(36,"add_circle_outline"),e.qZA()(),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"mat-button-toggle-group",22),e.NdJ("ngModelChange",function(s){return n.topicSelectedSubType=s})("change",function(s){return n.onSubTopicValChange(s.value)}),e.TgZ(40,"mat-button-toggle",23),e._uU(41),e.ALo(42,"translate"),e.qZA(),e.TgZ(43,"mat-button-toggle",24),e._uU(44),e.ALo(45,"translate"),e.qZA()(),e.TgZ(46,"button",25),e.NdJ("click",function(){return n.onAddToSubscribe()}),e._uU(47),e.ALo(48,"translate"),e.qZA()(),e.TgZ(49,"div",26)(50,"div",27)(51,"span",28),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"span",29),e._uU(55),e.ALo(56,"translate"),e.qZA(),e.TgZ(57,"span",30)(58,"mat-checkbox",31),e.NdJ("ngModelChange",function(s){return n.allChecked=s})("change",function(){return n.toggleAllChecked()}),e._uU(59),e.ALo(60,"translate"),e.qZA()()(),e.TgZ(61,"div",32),e.YNc(62,R9,10,6,"div",33),e.qZA()()(),e.TgZ(63,"mat-tab",6,34),e.ALo(65,"translate"),e.TgZ(66,"div",35)(67,"div",36)(68,"span"),e._uU(69),e.ALo(70,"translate"),e.qZA(),e.TgZ(71,"input",37),e.NdJ("ngModelChange",function(s){return n.publishTopicName=s}),e.qZA()(),e.TgZ(72,"div",38)(73,"span"),e._uU(74),e.ALo(75,"translate"),e.qZA(),e.TgZ(76,"input",39),e.NdJ("ngModelChange",function(s){return n.publishTopicPath=s})("keyup",function(){return n.stringifyPublishItem()}),e.qZA()(),e.TgZ(77,"mat-button-toggle-group",40),e.NdJ("ngModelChange",function(s){return n.topicSelectedPubType=s})("change",function(s){return n.onPubTopicValChange(s.value)}),e.TgZ(78,"mat-button-toggle",41),e._uU(79),e.ALo(80,"translate"),e.qZA(),e.TgZ(81,"mat-button-toggle",42),e._uU(82),e.ALo(83,"translate"),e.qZA()(),e.TgZ(84,"button",25),e.NdJ("click",function(){return n.onAddToPuplish()}),e._uU(85),e.ALo(86,"translate"),e.qZA(),e.TgZ(87,"div",43)(88,"button",44),e.NdJ("click",function(){return n.onAddPublishItem()}),e.TgZ(89,"mat-icon"),e._uU(90,"add_circle_outline"),e.qZA(),e._uU(91),e.ALo(92,"translate"),e.qZA(),e.TgZ(93,"div",45),e.YNc(94,G9,22,17,"div",46),e.qZA(),e.TgZ(95,"div",47)(96,"span"),e._uU(97),e.ALo(98,"translate"),e.qZA(),e._UZ(99,"div",48),e.qZA()()()()()(),e.TgZ(100,"div",49)(101,"button",50),e.NdJ("click",function(){return n.onNoClick()}),e._uU(102),e.ALo(103,"translate"),e.qZA()()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,43,"device.browsetopics-property-title")," "),e.xp6(6),e.s9C("label",e.lcZ(11,45,"device.browsetopics-property-sub")),e.xp6(6),e.Oqu(e.lcZ(16,47,"device.discovery-topics")),e.xp6(2),e.Q6J("ngModel",n.topicSource)("disabled",n.isSubscriptionEdit()),e.xp6(1),e.Q6J("ngIf",!n.discoveryWait),e.xp6(1),e.Q6J("ngIf",n.discoveryWait),e.xp6(1),e.Q6J("disabled",n.isSubscriptionEdit()),e.xp6(3),e.Q6J("ngIf",n.discoveryError),e.xp6(2),e.Q6J("ngForOf",e.lcZ(26,49,n.topicsList)),e.xp6(5),e.Oqu(e.lcZ(31,51,"device.topic-selected")),e.xp6(2),e.Q6J("ngModel",n.selectedTopic.key),e.xp6(2),e.Q6J("disabled",!n.selectedTopic.key||n.editSubscription),e.xp6(3),e.hij(" ",e.lcZ(38,53,"device.topic-publish-add-item")," "),e.xp6(2),e.Q6J("ngModel",n.topicSelectedSubType)("disabled",n.editSubscription),e.xp6(2),e.Oqu(e.lcZ(42,55,"device.topic-raw")),e.xp6(3),e.Oqu(e.lcZ(45,57,"device.topic-json")),e.xp6(2),e.Q6J("disabled",!n.selectedTopic.key||!(null!=n.topicContent&&n.topicContent.length)),e.xp6(1),e.hij(" ",e.lcZ(48,59,"device.topic-subscribe")," "),e.xp6(5),e.Oqu(e.lcZ(53,61,"device.topic-subscription-name")),e.xp6(3),e.Oqu(e.lcZ(56,63,"device.topic-subscription-address")),e.xp6(3),e.Q6J("ngModel",n.allChecked)("disabled",n.editSubscription),e.xp6(1),e.hij(" ",e.lcZ(60,65,"device.topic-select-all")," "),e.xp6(3),e.Q6J("ngForOf",n.topicContent),e.xp6(1),e.s9C("label",e.lcZ(65,67,"device.browsetopics-property-pub")),e.xp6(6),e.Oqu(e.lcZ(70,69,"device.topic-publish-name")),e.xp6(2),e.Q6J("ngModel",n.publishTopicName),e.xp6(3),e.Oqu(e.lcZ(75,71,"device.topic-publish-path")),e.xp6(2),e.Q6J("ngModel",n.publishTopicPath),e.xp6(1),e.Q6J("ngModel",n.topicSelectedPubType),e.xp6(1),e.Q6J("disabled",!n.isPublishTypeToEnable("raw")),e.xp6(1),e.Oqu(e.lcZ(80,73,"device.topic-raw")),e.xp6(2),e.Q6J("disabled",!n.isPublishTypeToEnable("json")),e.xp6(1),e.Oqu(e.lcZ(83,75,"device.topic-json")),e.xp6(2),e.Q6J("disabled",!n.isPublishValid()),e.xp6(1),e.Oqu(e.lcZ(86,77,"device.topic-publish")),e.xp6(6),e.hij(" ",e.lcZ(92,79,"device.topic-publish-add-item")," "),e.xp6(3),e.Q6J("ngForOf",n.pubPayload.items),e.xp6(3),e.Oqu(e.lcZ(98,81,"device.topic-publish-content")),e.xp6(2),e.Q6J("innerHTML",n.pubPayloadResult,e.oJD),e.xp6(3),e.Oqu(e.lcZ(103,83,"dlg.close")))},styles:["[_nghost-%COMP%] .topic[_ngcontent-%COMP%]{font-size:12px;width:100%;height:24px;cursor:pointer;margin-bottom:1px}[_nghost-%COMP%] .topic-active[_ngcontent-%COMP%]{width:100%;height:26px;background-color:violet}[_nghost-%COMP%] .browser-result[_ngcontent-%COMP%]{height:240px;border:1px solid var(--formBorder);padding:5px 5px 3px 8px;overflow:auto}[_nghost-%COMP%] .browser-result[_ngcontent-%COMP%] .browser-item[_ngcontent-%COMP%]:hover{background-color:#0000001a}[_nghost-%COMP%] .select-tool[_ngcontent-%COMP%]{margin-top:10px;display:block}[_nghost-%COMP%] .select-tool[_ngcontent-%COMP%] .select-item[_ngcontent-%COMP%]{display:inline-block;margin-right:10px}[_nghost-%COMP%] .select-tool[_ngcontent-%COMP%] .select-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:300px}[_nghost-%COMP%] .select-tool[_ngcontent-%COMP%] .add-payload[_ngcontent-%COMP%]{margin-right:20px}[_nghost-%COMP%] .topic-text[_ngcontent-%COMP%]{width:250px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:24px}[_nghost-%COMP%] .topic-name[_ngcontent-%COMP%]{display:inline-block;width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-family:monospace}[_nghost-%COMP%] .topic-name[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-family:monospace;background-color:var(--formExtInputBackground);padding:4px 2px 4px 3px!important}[_nghost-%COMP%] .topic-name[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{padding:3px 1px 3px 2px!important;border:1px solid var(--formInputBorderFocus);background-color:var(--formInputBackgroundFocus)}[_nghost-%COMP%] .topic-value[_ngcontent-%COMP%]{font-size:12px;color:gray;width:280px;display:inline-block;overflow-wrap:break-word;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;line-height:24px}[_nghost-%COMP%] .topic-check[_ngcontent-%COMP%]{float:right;margin-right:12px}[_nghost-%COMP%] .topic-publish-result[_ngcontent-%COMP%]{height:160px;width:100%;background-color:var(--formInputBackground);padding:5px 5px 3px 8px;overflow:auto;white-space:pre;font-family:monospace;font-size:12px}[_nghost-%COMP%] .topic-subscription-header[_ngcontent-%COMP%]{display:inline-block;font-size:12px;width:100%}[_nghost-%COMP%] .topic-subscription-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:sub}[_nghost-%COMP%] .topic-subscription-result[_ngcontent-%COMP%]{height:160px;background-color:var(--formInputBackground);padding:5px 5px 3px 8px;overflow-y:auto;overflow-x:hidden;white-space:pre;font-family:monospace;font-size:12px}[_nghost-%COMP%] .separator-line[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);height:1px;width:100%}[_nghost-%COMP%] .toggle-group[_ngcontent-%COMP%]{height:29px;align-items:center}"]})}return r})();var Xu=function(r){return r.tag="device.topic-type-tag",r.timestamp="device.topic-type-timestamp",r.value="device.topic-type-value",r.static="device.topic-type-static",r}(Xu||{});class Z9{items=[]}class J9{type=ii.cQ.getEnumKey(Xu,Xu.tag);key="";value="";name}function j9(r,a){if(1&r&&(e.TgZ(0,"span",19),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function V9(r,a){if(1&r&&(e.TgZ(0,"mat-option",20),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function W9(r,a){if(1&r&&(e.TgZ(0,"mat-option",20),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function K9(r,a){if(1&r&&(e.TgZ(0,"div",21)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",22),e.YNc(5,W9,2,2,"mat-option",13),e.ALo(6,"enumToArray"),e.qZA()()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"device.tag-property-edge")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(6,4,t.edgeType))}}let q9=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;directionType=Yi.Ug;edgeType=Yi.M$;existingNames=[];error;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagAddress:[this.data.tag.address,[Z.required]],tagDescription:[this.data.tag.description],tagDirection:[this.data.tag.direction,Z.required],tagEdge:[this.data.tag.edge]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}GpioDirectionType=Yi.Ug;static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-gpio"]],outputs:{result:"result"},decls:44,vars:31,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["formControlName","tagAddress","type","text"],[1,"item-combi"],[1,"my-form-field","item-inline","mt10"],["formControlName","tagDirection"],[3,"value",4,"ngFor","ngForOf"],["class","my-form-field item-inline mt10 ftr mr5",4,"ngIf"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"],[1,"my-form-field","item-inline","mt10","ftr","mr5"],["formControlName","tagEdge"]],template:function(i,n){if(1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,j9,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"input",9),e.qZA(),e.TgZ(23,"div",10)(24,"div",11)(25,"span"),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"mat-select",12),e.YNc(29,V9,2,2,"mat-option",13),e.ALo(30,"enumToArray"),e.qZA()(),e.YNc(31,K9,7,6,"div",14),e.qZA(),e.TgZ(32,"div",6)(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA(),e._UZ(36,"input",15),e.qZA()(),e.TgZ(37,"div",16)(38,"button",17),e.NdJ("click",function(){return n.onNoClick()}),e._uU(39),e.ALo(40,"translate"),e.qZA(),e.TgZ(41,"button",18),e.NdJ("click",function(){return n.onOkClick()}),e._uU(42),e.ALo(43,"translate"),e.qZA()()()),2&i){let o;e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,13,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,15,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,17,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,19,"device.tag-property-gpio")),e.xp6(6),e.Oqu(e.lcZ(27,21,"device.tag-property-direction")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(30,23,n.directionType)),e.xp6(2),e.Q6J("ngIf",(null==(o=n.formGroup.get("tagDirection"))?null:o.value)===n.GpioDirectionType.in),e.xp6(3),e.Oqu(e.lcZ(35,25,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(40,27,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(43,29,"dlg.ok"))}},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%]{width:calc(50% - 10px);display:inline-block}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:100%}"]})}return r})();function X9(r,a){if(1&r&&(e.TgZ(0,"span",24),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function $9(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function eV(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let tV=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.$2;outputType=vS;callbackReturnType=_S;existingNames=[];error;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagAddress:[this.data.tag.address],tagType:[this.data.tag.type],tagInit:[this.data.tag.init],tagDescription:[this.data.tag.description],tagOptions:this.fb.group({width:this.data.tag.options?.width||1280,height:this.data.tag.options?.height||720,frames:this.data.tag.options?.frames||60,quality:this.data.tag.options?.quality||100,output:this.data.tag.options?.output||vS.jpeg,callbackReturn:this.data.tag.options?.callbackReturn||_S.location})}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}validateName(){return t=>(this.error=null,-1!==this.existingNames.indexOf(t.value)?{name:this.translateService.instant("msg.device-tag-exist")}:null)}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-internal"]],outputs:{result:"result"},decls:72,vars:48,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["formControlName","tagAddress","type","text"],["formGroupName","tagOptions",1,"item-combi"],[1,"my-form-field","item-inline","mt10"],["numberOnly","","formControlName","width","type","number"],[1,"my-form-field","item-inline","mt10","ftr","mr5"],["numberOnly","","formControlName","height","type","number"],["numberOnly","","formControlName","quality","type","number"],["numberOnly","","formControlName","frames","type","number"],["formControlName","output"],[3,"value",4,"ngFor","ngForOf"],["formControlName","callbackReturn"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,X9,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"input",9),e.qZA(),e.TgZ(23,"div",10)(24,"div",11)(25,"span"),e._uU(26),e.ALo(27,"translate"),e.qZA(),e._UZ(28,"input",12),e.qZA(),e.TgZ(29,"div",13)(30,"span"),e._uU(31),e.ALo(32,"translate"),e.qZA(),e._UZ(33,"input",14),e.qZA()(),e.TgZ(34,"div",10)(35,"div",11)(36,"span"),e._uU(37),e.ALo(38,"translate"),e.qZA(),e._UZ(39,"input",15),e.qZA(),e.TgZ(40,"div",13)(41,"span"),e._uU(42),e.ALo(43,"translate"),e.qZA(),e._UZ(44,"input",16),e.qZA()(),e.TgZ(45,"div",10)(46,"div",11)(47,"span"),e._uU(48),e.ALo(49,"translate"),e.qZA(),e.TgZ(50,"mat-select",17),e.YNc(51,$9,2,2,"mat-option",18),e.ALo(52,"enumToArray"),e.qZA()(),e.TgZ(53,"div",13)(54,"span"),e._uU(55),e.ALo(56,"translate"),e.qZA(),e.TgZ(57,"mat-select",19),e.YNc(58,eV,2,2,"mat-option",18),e.ALo(59,"enumToArray"),e.qZA()()(),e.TgZ(60,"div",6)(61,"span"),e._uU(62),e.ALo(63,"translate"),e.qZA(),e._UZ(64,"input",20),e.qZA()(),e.TgZ(65,"div",21)(66,"button",22),e.NdJ("click",function(){return n.onNoClick()}),e._uU(67),e.ALo(68,"translate"),e.qZA(),e.TgZ(69,"button",23),e.NdJ("click",function(){return n.onOkClick()}),e._uU(70),e.ALo(71,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,18,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,20,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,22,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,24,"device.tag-property-webcam-device-address")),e.xp6(6),e.Oqu(e.lcZ(27,26,"device.tag-property-webcam-options.width")),e.xp6(5),e.Oqu(e.lcZ(32,28,"device.tag-property-webcam-options.height")),e.xp6(6),e.Oqu(e.lcZ(38,30,"device.tag-property-webcam-options.quality")),e.xp6(5),e.Oqu(e.lcZ(43,32,"device.tag-property-webcam-options.frames")),e.xp6(6),e.Oqu(e.lcZ(49,34,"device.tag-property-webcam-options.outputType")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(52,36,n.outputType)),e.xp6(4),e.Oqu(e.lcZ(56,38,"device.tag-property-webcam-options.callbackReturn")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(59,40,n.callbackReturnType)),e.xp6(4),e.Oqu(e.lcZ(63,42,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(68,44,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(71,46,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,qn,et,Xe,Sr,Ot,Aa,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%]{width:calc(50% - 10px);display:inline-block}[_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-combi[_ngcontent-%COMP%] .item-inline[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:100%}"]})}return r})();var _S=function(r){return r.location="location",r.base64="base64",r}(_S||{}),vS=function(r){return r.jpeg="jpeg",r.png="png",r}(vS||{});function iV(r,a){if(1&r&&(e.TgZ(0,"span",16),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",null==t.formGroup.controls.tagName.errors?null:t.formGroup.controls.tagName.errors.name," ")}}function nV(r,a){if(1&r&&(e.TgZ(0,"mat-option",17),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let rV=(()=>{class r{fb;translateService;dialogRef;data;result=new e.vpe;formGroup;tagType=Yi.lE;existingNames=[];error;destroy$=new An.x;constructor(t,i,n,o){this.fb=t,this.translateService=i,this.dialogRef=n,this.data=o}ngOnInit(){this.formGroup=this.fb.group({deviceName:[this.data.device.name,Z.required],tagName:[this.data.tag.name,[Z.required,this.validateName()]],tagType:[this.data.tag.type,Z.required],tagAddress:[this.data.tag.address,[Z.required]],tagDescription:[this.data.tag.description]}),this.formGroup.updateValueAndValidity(),Object.keys(this.data.device.tags).forEach(t=>{let i=this.data.device.tags[t];i.id?i.id!==this.data.tag.id&&this.existingNames.push(i.name):i.name!==this.data.tag.name&&this.existingNames.push(i.name)})}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}validateName(){return t=>{this.error=null;const i=t?.value;return-1!==this.existingNames.indexOf(i)?{name:this.translateService.instant("msg.device-tag-exist")}:i?.includes("@")?{name:this.translateService.instant("msg.device-tag-invalid-char")}:null}}onNoClick(){this.result.emit()}onOkClick(){this.result.emit(this.formGroup.getRawValue())}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-property-edit-melsec"]],outputs:{result:"result"},decls:42,vars:30,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","deviceName","type","text","readonly",""],[1,"my-form-field","item-block","mt10"],["formControlName","tagName","type","text"],["class","form-input-error",4,"ngIf"],["formControlName","tagType"],[3,"value",4,"ngFor","ngForOf"],["numberOnly","","formControlName","tagAddress","type","text"],["formControlName","tagDescription","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"form-input-error"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.YNc(17,iV,2,1,"span",8),e.qZA(),e.TgZ(18,"div",6)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",9),e.YNc(23,nV,2,2,"mat-option",10),e.ALo(24,"enumToArray"),e.qZA()(),e.TgZ(25,"div",6)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e._UZ(29,"input",11),e.qZA(),e.TgZ(30,"div",6)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e._UZ(34,"input",12),e.qZA()(),e.TgZ(35,"div",13)(36,"button",14),e.NdJ("click",function(){return n.onNoClick()}),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"button",15),e.NdJ("click",function(){return n.onOkClick()}),e._uU(40),e.ALo(41,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,12,"device.tag-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"device.tag-property-device")),e.xp6(5),e.Oqu(e.lcZ(15,16,"device.tag-property-name")),e.xp6(3),e.Q6J("ngIf",null==n.formGroup.controls.tagName.errors?null:n.formGroup.controls.tagName.errors.name),e.xp6(3),e.Oqu(e.lcZ(21,18,"device.tag-property-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(24,20,n.tagType)),e.xp6(4),e.Oqu(e.lcZ(28,22,"device.tag-property-address-sample")),e.xp6(5),e.Oqu(e.lcZ(33,24,"device.tag-property-description")),e.xp6(5),e.Oqu(e.lcZ(38,26,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(41,28,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:400px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})(),EL=(()=>{class r{dialog;translateService;toastService;projectService;constructor(t,i,n,o){this.dialog=t,this.translateService=i,this.toastService=n,this.projectService=o}editTagPropertyS7(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(Yj,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.type=g.tagType,i.address=g.tagAddress,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyServer(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(Hj,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.type=g.tagType,i.init=g.tagInit,i.value=g.tagInit,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyModbus(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(jj,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.type=g.tagType,i.address=g.tagAddress,i.memaddress=g.tagMemoryAddress,i.divisor=g.tagDivisor,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyInternal(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(Kj,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.type=g.tagType,i.init=g.tagInit,i.value=g.tagInit,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyEthernetIp(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(B9,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.address=g.tagAddress,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}addTagsOpcUa(t,i){let n=this.dialog.open(xL,{disableClose:!0,position:{top:"60px"},data:{device:t}});return n.componentInstance.result.pipe((0,f.U)(o=>(o?.nodes.forEach(s=>{let c=new Yi.Vp(ii.cQ.getGUID(Yi.$u));c.name=s.text,c.label=s.text,c.type=s.type,c.address=s.id,this.checkToAdd(c,o.device),i&&(i[c.id]=c)}),this.projectService.setDeviceTags(t),n.close(),o)))}editTagPropertyOpcUa(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(xL,{disableClose:!0,position:{top:"60px"},data:{device:t,tag:s}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.type=g.tagType,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyBacnet(t,i){let n=this.dialog.open(C9,{disableClose:!0,position:{top:"60px"},data:{device:t}});return n.componentInstance.result.pipe((0,f.U)(o=>(o?.nodes.forEach(s=>{let c=new Yi.Vp(ii.cQ.getGUID(Yi.$u));c.name=s.text,c.label=s.text,c.type=s.type,c.address=s.id,c.label=s.text,c.memaddress=s.parent?.id,this.checkToAdd(c,o.device),i&&(i[c.id]=c)}),this.projectService.setDeviceTags(t),n.close(),o)))}editTagPropertyWebapi(t,i){let n=this.dialog.open(b9,{disableClose:!0,position:{top:"60px"},data:{device:t}});return n.componentInstance.result.pipe((0,f.U)(o=>(o?.nodes.forEach(s=>{let c=new Yi.Vp(ii.cQ.getGUID(Yi.$u));c.name=s.text,c.label=s.text,c.type=s.type,c.label=s.text,s.class===TA.Reference&&(c.memaddress=s.property,c.options=s.todefine,c.type=s.type),c.address=s.id,this.checkToAdd(c,o.device),i&&(i[c.id]=c)}),this.projectService.setDeviceTags(t),n.close(),o)))}editTagPropertyMqtt(t,i,n,o){let s=this.dialog.open(BL,{disableClose:!0,panelClass:"dialog-property",data:{device:t,topic:i,devices:this.projectService.getServerDevices()},position:{top:"60px"}});s.componentInstance.invokeSubscribe=(c,g,B=!0)=>this.addTopicSubscription(t,c,g,n,B,o),s.componentInstance.invokePublish=(c,g)=>this.addTopicToPublish(t,c,g,n,o),s.afterClosed().subscribe()}editTagPropertyADSclient(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(D9,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.address=g.tagAddress,i.type=g.tagType,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyGpio(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(q9,{disableClose:!0,position:{top:"60px"},data:{device:t,tag:s}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.type=g.tagType,i.init=g.tagInit,i.value=g.tagInit,i.description=g.tagDescription,i.address=g.tagAddress,i.direction=g.tagDirection,i.edge=g.tagEdge,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyWebcam(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(tV,{disableClose:!0,position:{top:"60px"},data:{device:t,tag:s}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.type=Yi.$2.string,i.init=g.tagInit,i.value=g.tagInit,i.description=g.tagDescription,i.address=g.tagAddress,i.options=g.tagOptions,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}editTagPropertyMelsec(t,i,n){let o=i.id,s=ii.cQ.clone(i),c=this.dialog.open(rV,{disableClose:!0,data:{device:t,tag:s},position:{top:"60px"}});return c.componentInstance.result.pipe((0,f.U)(g=>(g&&(i.name=g.tagName,i.address=g.tagAddress,i.type=g.tagType,i.description=g.tagDescription,n?this.checkToAdd(i,t):i.id!==o&&(delete t.tags[o],this.checkToAdd(i,t)),this.projectService.setDeviceTags(t)),c.close(),g)))}checkToAdd(t,i,n=!1){let o=!1;Object.keys(i.tags).forEach(s=>{i.tags[s].id?i.tags[s].id===t.id&&(o=!0):i.tags[s].name===t.name&&(o=!0)}),o||(i.tags[t.id]=t)}formatAddress(t,i){let n=t;return i&&(n+="["+i+"]"),n}addTopicSubscription(t,i,n,o,s,c){if(n){let g=Object.values(t.tags).filter(B=>{if(!i||B.id!==i.id)return B.name}).map(B=>B.name);n.forEach(B=>{if(-1!==g.indexOf(B.name)){const O=this.translateService.instant("device.topic-name-exist",{value:B.name});this.notifyError(O)}else{let O=null;if(i||Object.keys(t.tags).forEach(ne=>{t.tags[ne].address===B.address&&t.tags[ne].memaddress===B.memaddress&&t.tags[ne].id!=B.id&&t.tags[ne].options.subs&&(O=this.formatAddress(B.address,B.memaddress))}),O){const ne=this.translateService.instant("device.topic-subs-address-exist",{value:O});this.notifyError(ne)}else t.tags[B.id]=B,o[B.id]=B}})}s&&(this.projectService.setDeviceTags(t),c&&c())}addTopicToPublish(t,i,n,o,s){if(n)if(-1!==Object.values(t.tags).filter(g=>{if(!i||g.id!==i.id)return g.name}).map(g=>g.name).indexOf(n.name)){const g=this.translateService.instant("device.topic-name-exist",{value:n.name});this.notifyError(g)}else{let g=null;if(Object.keys(t.tags).forEach(B=>{t.tags[B].address===n.address&&t.tags[B].id!=n.id&&(g=n.address)}),g){const B=this.translateService.instant("device.topic-pubs-address-exist",{value:g});this.notifyError(B)}else t.tags[n.id]=n,o[n.id]=n;this.projectService.setDeviceTags(t),s&&s()}}notifyError(t){this.toastService.error(t,"",{timeOut:3e3,closeButton:!0})}static \u0275fac=function(i){return new(i||r)(e.LFG(xo),e.LFG(Ni.sK),e.LFG(Vf._W),e.LFG(wr.Y4))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();function oV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",22)(1,"button",23),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onClearSelection())}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function aV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",24)(1,"mat-checkbox",25),e.NdJ("click",function(n){return n.stopPropagation()})("change",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onToogle(o))})("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.checked=n)}),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(1),e.Q6J("ngModel",t.checked)}}function sV(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",26)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",27),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"device.list-name")),e.xp6(2),e.Q6J("formControl",t.nameFilter)}}function lV(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function cV(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",26)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",28),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"device.list-address")),e.xp6(2),e.Q6J("formControl",t.addressFilter)}}function AV(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.address," ")}}function dV(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",26)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",27),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"device.list-device")),e.xp6(2),e.Q6J("formControl",t.deviceFilter)}}function uV(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.device," ")}}function hV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",35),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(2);return e.KtG(o.onAddDeviceTag(n))}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw().$implicit;e.xp6(1),e.Oqu(t.name)}}function pV(r,a){if(1&r&&(e.ynx(0),e.YNc(1,hV,2,1,"button",34),e.BQk()),2&r){const t=a.$implicit,i=e.oxw(2);e.xp6(1),e.Q6J("ngIf",i.isDeviceTagEditable(t.type))}}function gV(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",29)(1,"button",30)(2,"mat-icon"),e._uU(3,"add_circle_outline"),e.qZA()(),e.TgZ(4,"mat-menu",31,32),e.YNc(6,pV,2,1,"ng-container",33),e.qZA()()),2&r){const t=e.MAs(5),i=e.oxw();e.xp6(1),e.Q6J("matMenuTriggerFor",t),e.xp6(3),e.Q6J("overlapTrigger",!1),e.xp6(2),e.Q6J("ngForOf",i.devices)}}function fV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",29)(1,"button",36),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSelect(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"check"),e.qZA()()()}}function mV(r,a){1&r&&e._UZ(0,"mat-header-row",37)}function _V(r,a){1&r&&e._UZ(0,"mat-row")}const vV=function(){return[10,25,100]};let Xf=(()=>{class r{dialogRef;projectService;tagPropertyService;data;table;sort;paginator;destroy$=new An.x;dataSource=new Nn([]);nameFilter=new li;addressFilter=new li;deviceFilter=new li;tags=[];devices=[];filteredValues={name:"",address:"",device:""};defColumns=["toogle","name","address","device","select"];deviceTagNotEditable=[Yi.Yi.MQTTclient,Yi.Yi.ODBC];constructor(t,i,n,o){this.dialogRef=t,this.projectService=i,this.tagPropertyService=n,this.data=o,this.loadDevicesTags()}ngOnInit(){this.nameFilter.valueChanges.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.filteredValues.name=t,this.dataSource.filter=JSON.stringify(this.filteredValues)}),this.addressFilter.valueChanges.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.filteredValues.address=t,this.dataSource.filter=JSON.stringify(this.filteredValues)}),this.deviceFilter.valueChanges.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.filteredValues.device=t,this.dataSource.filter=JSON.stringify(this.filteredValues)}),this.dataSource.filterPredicate=this.customFilterPredicate()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}customFilterPredicate(){return(i,n)=>{let o=JSON.parse(n);return-1!==i.name.toString().trim().toLowerCase().indexOf(o.name.toLowerCase())&&(o.address&&i.address&&-1!==i.address?.toString().trim().toLowerCase().indexOf(o.address.toLowerCase())||!o.address)&&-1!==i.device.toString().trim().toLowerCase().indexOf(o.device.toLowerCase())}}ngAfterViewInit(){this.dataSource.paginator=this.paginator,this.dataSource.sort=this.sort}onToogle(t){t.checked&&!this.data.multiSelection&&this.dataSource.data.forEach(i=>{i.id!==t.id&&(i.checked=!1)})}onClearSelection(){this.dataSource.data.forEach(t=>{t.checked=!1})}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.variableId=null,this.data.variablesId=[],this.dataSource.data.forEach(t=>{t.checked&&(this.data.variableId=t.id,this.data.variablesId.push(t.id))}),this.dialogRef.close(this.data)}onSelect(t,i){this.data.deviceName=i,this.data.variableId=t.id,this.dialogRef.close(this.data)}onAddDeviceTag(t){let i=new Yi.Vp(ii.cQ.getGUID(Yi.$u));t.type===Yi.Yi.OPCUA?this.tagPropertyService.addTagsOpcUa(t).subscribe(n=>{this.loadDevicesTags()}):t.type===Yi.Yi.BACnet?this.tagPropertyService.editTagPropertyBacnet(t).subscribe(n=>{this.loadDevicesTags()}):t.type===Yi.Yi.WebAPI?this.tagPropertyService.editTagPropertyWebapi(t).subscribe(n=>{this.loadDevicesTags()}):t.type===Yi.Yi.SiemensS7?this.tagPropertyService.editTagPropertyS7(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.FuxaServer?this.tagPropertyService.editTagPropertyServer(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.ModbusRTU||t.type===Yi.Yi.ModbusTCP?this.tagPropertyService.editTagPropertyModbus(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.internal?this.tagPropertyService.editTagPropertyInternal(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.EthernetIP?this.tagPropertyService.editTagPropertyEthernetIp(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.ADSclient?this.tagPropertyService.editTagPropertyADSclient(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.GPIO?this.tagPropertyService.editTagPropertyGpio(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.WebCam?this.tagPropertyService.editTagPropertyWebcam(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)}):t.type===Yi.Yi.MELSEC&&this.tagPropertyService.editTagPropertyMelsec(t,i,!0).subscribe(n=>{this.loadDevicesTags(i,t.name)})}isDeviceTagEditable(t){return!this.deviceTagNotEditable.includes(t)}loadDevicesTags(t,i){this.tags=[],this.devices=Object.values(this.projectService.getDevices()),this.devices&&this.devices.forEach(n=>{this.data.deviceFilter&&-1!==this.data.deviceFilter.indexOf(n.type)||n.tags&&(this.data.isHistorical?Object.values(n.tags).filter(o=>o.daq.enabled).forEach(o=>{this.tags.push({id:o.id,name:o.name,address:o.address,device:n.name,checked:o.id===this.data.variableId,error:null})}):Object.values(n.tags).forEach(o=>{this.tags.push({id:o.id,name:o.name,address:o.address,device:n.name,checked:o.id===this.data.variableId,error:null})}))}),this.dataSource.data=this.tags,this.dataSource.paginator=this.paginator,this.dataSource.sort=this.sort,t&&i&&this.onSelect({id:t.id},i)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(wr.Y4),e.Y36(EL),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-device-tag-selection"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5),e.Gf(Td,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first),e.iGM(o=e.CRH())&&(n.paginator=o.first)}},decls:33,vars:15,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["matSort","",1,"dialog-mdsd-table",2,"height","620px",3,"dataSource"],["table",""],["matColumnDef","toogle"],["style","padding-left: 5px;padding-right: 10px;",4,"matHeaderCellDef"],["style","padding-left: 15px;",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","","class","my-header-filter",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","address"],["matColumnDef","device"],["matColumnDef","select"],["style","padding-right: 0px;",4,"matHeaderCellDef"],["style","padding-right: 0px;",4,"matCellDef"],["style","min-height: 30px;",4,"matHeaderRowDef"],[4,"matRowDef","matRowDefColumns"],[2,"float","left",3,"pageSizeOptions","pageSize"],["mat-dialog-actions","",1,"dialog-action",2,"padding-top","30px"],["mat-raised-button","","cdkFocusInitial","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[2,"padding-left","5px","padding-right","10px"],["mat-icon-button","",1,"remove",3,"click"],[2,"padding-left","15px"],[3,"ngModel","click","change","ngModelChange"],["mat-sort-header","",1,"my-header-filter"],["type","text",1,"my-header-filter-input",2,"width","200px",3,"formControl","click"],["type","text",1,"my-header-filter-input",2,"width","360px",3,"formControl","click"],[2,"padding-right","0px"],["mat-icon-button","",1,"remove",3,"matMenuTriggerFor"],[3,"overlapTrigger"],["devicesMenu",""],[4,"ngFor","ngForOf"],["mat-menu-item","",3,"click",4,"ngIf"],["mat-menu-item","",3,"click"],["mat-icon-button","",3,"click"],[2,"min-height","30px"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"mat-table",3,4),e.ynx(8,5),e.YNc(9,oV,4,0,"mat-header-cell",6),e.YNc(10,aV,2,1,"mat-cell",7),e.BQk(),e.ynx(11,8),e.YNc(12,sV,5,4,"mat-header-cell",9),e.YNc(13,lV,2,1,"mat-cell",10),e.BQk(),e.ynx(14,11),e.YNc(15,cV,5,4,"mat-header-cell",9),e.YNc(16,AV,2,1,"mat-cell",10),e.BQk(),e.ynx(17,12),e.YNc(18,dV,5,4,"mat-header-cell",9),e.YNc(19,uV,2,1,"mat-cell",10),e.BQk(),e.ynx(20,13),e.YNc(21,gV,7,3,"mat-header-cell",14),e.YNc(22,fV,4,0,"mat-cell",15),e.BQk(),e.YNc(23,mV,1,0,"mat-header-row",16),e.YNc(24,_V,1,0,"mat-row",17),e.qZA(),e._UZ(25,"mat-paginator",18),e.TgZ(26,"div",19)(27,"button",20),e.NdJ("click",function(){return n.onNoClick()}),e._uU(28),e.ALo(29,"translate"),e.qZA(),e.TgZ(30,"button",21),e.NdJ("click",function(){return n.onOkClick()}),e._uU(31),e.ALo(32,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,8,"device-tag-dialog-title")),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(17),e.Q6J("matHeaderRowDef",n.defColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.defColumns),e.xp6(1),e.Q6J("pageSizeOptions",e.DdM(14,vV))("pageSize",25),e.xp6(3),e.Oqu(e.lcZ(29,10,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(32,12,"dlg.ok")))},dependencies:[l.sg,l.O5,I,et,$i,ca,Yn,Bh,Qr,Ir,Zn,zc,Hc,cc,Td,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{min-width:930px}[_nghost-%COMP%] .mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}[_nghost-%COMP%] .mat-row[_ngcontent-%COMP%]{min-height:34px;height:34px;border-bottom-color:#0000000f}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%] .mat-checkbox-inner-container{height:16px;width:16px;margin-left:2px}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}[_nghost-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:11px}[_nghost-%COMP%] .mat-column-toogle[_ngcontent-%COMP%]{overflow:visible;flex:0 0 40px}[_nghost-%COMP%] .mat-column-name[_ngcontent-%COMP%]{flex:0 0 220px}[_nghost-%COMP%] .mat-column-address[_ngcontent-%COMP%]{flex:0 0 380px}[_nghost-%COMP%] .mat-column-device[_ngcontent-%COMP%]{flex:0 0 220px}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{flex:0 0 40px}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-content{display:unset;text-align:left}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:5px}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-14px;right:20px}[_nghost-%COMP%] .my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px;border:1px solid var(--formInputBackground);background-color:var(--formInputBackground);color:var(--formInputColor)}[_nghost-%COMP%] .my-header-filter-input[_ngcontent-%COMP%]:focus{padding:3px 1px 3px 2px;border:1px solid var(--formInputBorderFocus);background-color:var(--formInputBackgroundFocus)}"]})}return r})();function yV(r,a){if(1&r&&(e.TgZ(0,"mat-option",27),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function wV(r,a){if(1&r&&(e.TgZ(0,"mat-option",27),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.hij(" ",t.text," ")}}const ML=function(){return{standalone:!0}};function CV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",28)(1,"div",29)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",30),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.min=n)}),e.qZA()(),e.TgZ(6,"div",31)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",30),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.max=n)}),e.qZA()(),e.TgZ(11,"div",20)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",32),e.NdJ("colorPickerChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.stroke=n)}),e.qZA()(),e.TgZ(16,"div",31)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",32),e.NdJ("colorPickerChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.fill=n)}),e.qZA()(),e.TgZ(21,"div",33)(22,"button",34),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemoveZone(o))}),e.TgZ(23,"mat-icon"),e._uU(24,"clear"),e.qZA()()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,34,"chart.config-line-zone-min")),e.xp6(2),e.Q6J("ngModel",t.min)("ngModelOptions",e.DdM(42,ML)),e.xp6(3),e.Oqu(e.lcZ(9,36,"chart.config-line-zone-max")),e.xp6(2),e.Q6J("ngModel",t.max)("ngModelOptions",e.DdM(43,ML)),e.xp6(3),e.Oqu(e.lcZ(14,38,"chart.config-line-zone-stroke")),e.xp6(2),e.Udp("background",t.stroke),e.Q6J("cpDialogDisplay","popup")("colorPicker",t.stroke)("cpAlphaChannel","always")("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(3),e.Oqu(e.lcZ(19,40,"chart.config-line-zone-fill")),e.xp6(2),e.Udp("background",t.fill),e.Q6J("cpDialogDisplay","popup")("colorPicker",t.fill)("cpAlphaChannel","always")("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top")}}let bV=(()=>{class r{fb;dialogRef;data;defaultColor=ii.cQ.defaultColor;chartAxesType=[1,2,3,4];formGroup;constructor(t,i,n){this.fb=t,this.dialogRef=i,this.data=n}ngOnInit(){this.formGroup=this.fb.group({name:[{value:this.data.name,disabled:!0},Z.required],label:[this.data.label,Z.required],yaxis:[this.data.yaxis],lineInterpolation:[this.data.lineInterpolation],lineWidth:[this.data.lineWidth],spanGaps:[this.data.spanGaps]})}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close({...this.data,...this.formGroup.getRawValue()})}onAddZone(){this.data.zones||(this.data.zones=[]),this.data.zones.push({min:0,max:0,stroke:"#FF2525",fill:"#BFCDDB"})}onRemoveZone(t){this.data.zones.splice(t,1)}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-chart-line-property"]],decls:67,vars:64,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block-input"],["formControlName","name","type","text"],[1,"my-form-field","block-input","mt10"],["formControlName","label","type","text"],[1,"block","mt10"],[1,"my-form-field",2,"width","140px"],["formControlName","yaxis"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","ml20",2,"width","140px"],["formControlName","lineInterpolation"],["numberOnly","","formControlName","lineWidth","type","number","min","1",2,"width","140px"],[1,"my-form-field","inbk","ml20","tac"],["color","primary","formControlName","spanGaps"],[1,"my-form-field","slider-field","color-field"],[1,"input-color",2,"padding","8px 0 0 0","width","88px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","slider-field","color-field",2,"padding-left","10px"],[1,"my-form-field","ml20"],["mat-icon-button","",3,"click"],[1,"my-form-field","block-zones","mt10"],["class","mt5",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[3,"value"],[1,"mt5"],[1,"my-form-field"],["numberOnly","","type","number",2,"width","60px",3,"ngModel","ngModelOptions","ngModelChange"],[1,"my-form-field","ml5"],[1,"input-color",2,"width","58px",3,"cpDialogDisplay","colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","ml5",2,"line-height","40px"],["mat-icon-button","",1,"remove",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.qZA(),e.TgZ(17,"div",8)(18,"div",9)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",10),e.YNc(23,yV,2,2,"mat-option",11),e.qZA()(),e.TgZ(24,"div",12)(25,"span"),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"mat-select",13),e.YNc(29,wV,2,2,"mat-option",11),e.qZA()()(),e.TgZ(30,"div",8)(31,"div",9)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e._UZ(35,"input",14),e.qZA(),e.TgZ(36,"div",15)(37,"span"),e._uU(38),e.ALo(39,"translate"),e.qZA(),e._UZ(40,"mat-slide-toggle",16),e.qZA()(),e.TgZ(41,"div",8)(42,"div",17)(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA(),e.TgZ(46,"input",18),e.NdJ("colorPickerChange",function(s){return n.data.color=s}),e.qZA()(),e.TgZ(47,"div",19)(48,"span"),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"input",18),e.NdJ("colorPickerChange",function(s){return n.data.fill=s}),e.qZA()(),e.TgZ(52,"div",20)(53,"button",21),e.NdJ("click",function(){return n.onAddZone()}),e._uU(54),e.ALo(55,"translate"),e.TgZ(56,"mat-icon"),e._uU(57,"add_circle_outline"),e.qZA()()()(),e.TgZ(58,"div",22),e.YNc(59,CV,25,44,"div",23),e.qZA()(),e.TgZ(60,"div",24)(61,"button",25),e.NdJ("click",function(){return n.onNoClick()}),e._uU(62),e.ALo(63,"translate"),e.qZA(),e.TgZ(64,"button",26),e.NdJ("click",function(){return n.onOkClick()}),e._uU(65),e.ALo(66,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,40,"chart.config-lines")),e.xp6(7),e.Oqu(e.lcZ(10,42,"chart.config-line-name")),e.xp6(5),e.Oqu(e.lcZ(15,44,"chart.config-line-label")),e.xp6(6),e.Oqu(e.lcZ(21,46,"chart.config-line-yaxis")),e.xp6(3),e.Q6J("ngForOf",n.chartAxesType),e.xp6(3),e.Oqu(e.lcZ(27,48,"chart.config-line-interpolation")),e.xp6(3),e.Q6J("ngForOf",n.data.lineInterpolationType),e.xp6(4),e.Oqu(e.lcZ(34,50,"chart.config-line-width")),e.xp6(5),e.Oqu(e.lcZ(39,52,"chart.config-line-gap")),e.xp6(6),e.Oqu(e.lcZ(45,54,"chart.config-line-color")),e.xp6(2),e.Udp("background",n.data.color),e.Q6J("colorPicker",n.data.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","right"),e.xp6(3),e.Oqu(e.lcZ(50,56,"chart.config-line-fill")),e.xp6(2),e.Udp("background",n.data.fill),e.Q6J("colorPicker",n.data.fill)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","right"),e.xp6(3),e.hij(" ",e.lcZ(55,58,"chart.config-line-add-zone")," "),e.xp6(5),e.Q6J("ngForOf",n.data.zones),e.xp6(3),e.Oqu(e.lcZ(63,60,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(66,62,"dlg.ok")))},dependencies:[l.sg,In,I,qn,et,Xe,$n,$i,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,bc,$A,zr,fs,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:340px}[_nghost-%COMP%] .block-input[_ngcontent-%COMP%]{display:block;width:100%}[_nghost-%COMP%] .block-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .block-zones[_ngcontent-%COMP%]{display:block;max-height:220px;overflow-y:auto}"]})}return r})(),DL=(()=>{class r{dialogRef;fb;data;formGroup;constructor(t,i,n){this.dialogRef=t,this.fb=i,this.data=n}ngOnInit(){this.formGroup=this.fb.group({name:["",Z.required]})}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.formGroup.value.name)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-edit-placeholder"]],decls:21,vars:14,consts:[[3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field"],["formControlName","name","type","text"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-icon"),e._uU(12,"alternate_email"),e.qZA(),e._UZ(13,"input",5),e.qZA()(),e.TgZ(14,"div",6)(15,"button",7),e.NdJ("click",function(){return n.onNoClick()}),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"button",8),e.NdJ("click",function(){return n.onOkClick()}),e._uU(19),e.ALo(20,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,6,"device.edit-placeholder-titel")),e.xp6(7),e.Oqu(e.lcZ(10,8,"dlg.item-name")),e.xp6(7),e.Oqu(e.lcZ(17,10,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(20,12,"dlg.ok")))},dependencies:[In,I,et,Xe,Sr,Ot,Yn,Qr,Kr,Ir,Zn,zr,Ni.X$],styles:["[_nghost-%COMP%] .my-form-field[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:22px;vertical-align:middle}[_nghost-%COMP%] .my-form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:300px}"]})}return r})();function xV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",22),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSelectChart(o))}),e.TgZ(1,"mat-icon",23),e.NdJ("click",function(){const n=e.CHM(t),o=n.$implicit,s=n.index,c=e.oxw();return c.onSelectChart(o),e.KtG(c.onRemoveChart(s))}),e._uU(2,"cancel"),e.qZA(),e.TgZ(3,"span"),e._uU(4),e.qZA(),e.TgZ(5,"mat-icon",24),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSelectChart(o))}),e._uU(6,"more_vert"),e.qZA(),e.TgZ(7,"mat-menu",25,26)(9,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onAddChartLine(o))}),e.TgZ(10,"mat-icon",28),e._uU(11,"link"),e.qZA(),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onAddChartLinePlaceholder(o))}),e.TgZ(15,"mat-icon",28),e._uU(16,"link"),e.qZA(),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditChart(o))}),e._uU(20),e.ALo(21,"translate"),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.MAs(8),n=e.oxw();e.Q6J("ngClass",n.isChartSelected(t)),e.xp6(4),e.hij(" ",t.name," "),e.xp6(1),e.Q6J("matMenuTriggerFor",i),e.xp6(2),e.Q6J("overlapTrigger",!1),e.xp6(5),e.hij(" ",e.lcZ(13,7,"chart.config-addline")," "),e.xp6(5),e.hij(" ",e.lcZ(18,9,"chart.config-addlinePlaceholder")," "),e.xp6(3),e.Oqu(e.lcZ(21,11,"chart.config-rename"))}}function BV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-list-item",29),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.editChartLine(o))}),e.TgZ(1,"mat-icon",30),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.removeChartLine(s))}),e._uU(2,"delete"),e.qZA(),e.TgZ(3,"div",31)(4,"span"),e._uU(5),e.qZA()(),e.TgZ(6,"div",32)(7,"span"),e._uU(8),e.qZA()(),e.TgZ(9,"div",33)(10,"span"),e._uU(11),e.qZA()(),e.TgZ(12,"div",34)(13,"span"),e._uU(14),e.qZA()(),e.TgZ(15,"div",35)(16,"span"),e._uU(17),e.qZA()(),e.TgZ(18,"div",16),e._uU(19," \xa0 "),e.qZA(),e.TgZ(20,"div",16),e._uU(21," \xa0 "),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(5),e.Oqu(i.getDeviceTagName(t)),e.xp6(3),e.Oqu(t.label),e.xp6(3),e.Oqu(t.device),e.xp6(3),e.Oqu(t.yaxis),e.xp6(3),e.Oqu(i.getLineInterpolationName(t)),e.xp6(1),e.Udp("background-color",t.color),e.xp6(2),e.Udp("background-color",t.fill)}}let TL=(()=>{class r{dialog;dialogRef;translateService;projectService;selTags;selectedChart={id:null,name:null,lines:[]};selectedDevice={id:null,name:null,tags:[]};data={charts:[],devices:[]};defaultColor=ii.cQ.defaultColor;lineColor=ii.cQ.lineColor;lineInterpolationType=[{text:"chart.config-interpo-linear",value:0},{text:"chart.config-interpo-stepAfter",value:1},{text:"chart.config-interpo-stepBefore",value:2},{text:"chart.config-interpo-spline",value:3},{text:"chart.config-interpo-none",value:4}];constructor(t,i,n,o){this.dialog=t,this.dialogRef=i,this.translateService=n,this.projectService=o,this.loadData()}ngOnInit(){for(let t=0;t{let n=Object.assign({},i);n.tags=i.tags,this.data.devices.push(n)})}onNoClick(){this.dialogRef.close()}onOkClick(){this.projectService.setCharts(this.data.charts),this.dialogRef.close({charts:this.data.charts,selected:this.selectedChart})}onRemoveChart(t){let i="";this.translateService.get("msg.chart-remove",{value:this.data.charts[t].name}).subscribe(o=>{i=o}),this.dialog.open(qu,{data:{msg:i},position:{top:"60px"}}).afterClosed().subscribe(o=>{o&&(this.data.charts.splice(t,1),this.selectedChart={id:null,name:null,lines:[]})})}onSelectChart(t){this.selectedChart=t}isChartSelected(t){if(t===this.selectedChart)return"mychips-selected"}onEditChart(t){let i="dlg.item-title",n="dlg.item-name",o="dlg.item-name-error",s=this.data.charts.map(g=>{if(!t||t.name!==g.name)return g.name});this.translateService.get(i).subscribe(g=>{i=g}),this.translateService.get(n).subscribe(g=>{n=g}),this.translateService.get(o).subscribe(g=>{o=g}),this.dialog.open(Tv,{position:{top:"60px"},data:{name:t?t.name:"",title:i,label:n,exist:s,error:o}}).afterClosed().subscribe(g=>{if(g&&g.name&&g.name.length>0)if(t)t.name=g.name;else{let B={id:ii.cQ.getShortGUID(),name:g.name,lines:[]};this.data.charts.push(B),this.onSelectChart(B)}})}onAddChartLine(t){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:null,multiSelection:!0}}).afterClosed().subscribe(n=>{if(n){let o=[];n.variablesId?o=n.variablesId:n.variableId&&o.push(n.variableId),o.forEach(s=>{let c=Yi.ef.getDeviceFromTagId(this.data.devices,s),g=Yi.ef.getTagFromTagId([c],s);if(g&&!t.lines.find(O=>O.id===g.id)){const O={id:g.id,name:this.getTagLabel(g),device:c.name,color:this.getNextColor(),label:this.getTagLabel(g),yaxis:1,spanGaps:!0};t.lines.push(O)}})}})}onAddChartLinePlaceholder(t){this.dialog.open(DL,{disableClose:!0,position:{top:"60px"}}).afterClosed().subscribe(n=>{if(n){const o=n,s={id:n="@"+n,name:n,device:"@",color:this.getNextColor(),label:o,yaxis:1,spanGaps:!0};t.lines.push(s)}})}editChartLine(t){this.dialog.open(bV,{position:{top:"60px"},data:{id:t.id,device:t.device,name:t.name,label:t.label,color:t.color,yaxis:t.yaxis,lineInterpolation:t.lineInterpolation,fill:t.fill,lineInterpolationType:this.lineInterpolationType,zones:t.zones,lineWidth:t.lineWidth,spanGaps:t.spanGaps}}).afterClosed().subscribe(n=>{n&&(t.label=n.label,t.color=n.color,t.yaxis=n.yaxis,t.lineInterpolation=n.lineInterpolation,t.fill=n.fill,t.zones=n.zones,t.lineWidth=n.lineWidth,t.spanGaps=n.spanGaps??!1)})}removeChartLine(t){for(let i=0;in.name===t.device);if(i&&i.length>0){let n=Object.values(i[0].tags);for(let o=0;on.value===t.lineInterpolation);return i?i.text:""}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(_r),e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-chart-config"]],viewQuery:function(i,n){if(1&i&&e.Gf(Sf,5),2&i){let o;e.iGM(o=e.CRH())&&(n.selTags=o.first)}},decls:47,vars:32,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],[2,"display","inline-block","width","100%","position","relative"],[1,"toolbox-toadd"],["mat-icon-button","",3,"click"],[1,"panelTop"],["class","mychips",3,"ngClass","click",4,"ngFor","ngForOf"],[1,"panelBottom"],[1,"list"],[1,"list-item","list-header"],[1,"list-item-remove"],[1,"list-item-name"],[1,"list-item-label"],[1,"list-item-device"],[1,"list-item-yaxis"],[1,"list-item-interpolation"],[1,"list-item-color"],[1,"list-panel"],["class","list-item list-item-hover",3,"click",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[1,"mychips",3,"ngClass","click"],[3,"click"],[3,"matMenuTriggerFor","click"],[3,"overlapTrigger"],["optionsgMenu",""],["mat-menu-item","",2,"font-size","14px",3,"click"],[2,"margin-right","unset"],[1,"list-item","list-item-hover",3,"click"],[1,"list-item-remove",2,"color","gray","font-size","20px",3,"click"],[1,"list-item-text","list-item-name"],[1,"list-item-text","list-item-label"],[1,"list-item-text","list-item-device"],[1,"list-item-text","list-item-yaxis"],[1,"list-item-text","list-item-interpolation"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"button",4),e.NdJ("click",function(){return n.onEditChart(null)}),e.TgZ(9,"mat-icon"),e._uU(10,"add_circle_outline"),e.qZA()()(),e.TgZ(11,"div",5),e.YNc(12,xV,22,13,"div",6),e.qZA(),e.TgZ(13,"div",7)(14,"mat-list",8)(15,"mat-list-item",9),e._UZ(16,"span",10),e.TgZ(17,"span",11),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"span",12),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"span",13),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"span",14),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"span",15),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"span",16),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"span",16),e._uU(36),e.ALo(37,"translate"),e.qZA()(),e.TgZ(38,"div",17),e.YNc(39,BV,22,9,"mat-list-item",18),e.qZA()()()(),e.TgZ(40,"div",19)(41,"button",20),e.NdJ("click",function(){return n.onNoClick()}),e._uU(42),e.ALo(43,"translate"),e.qZA(),e.TgZ(44,"button",21),e.NdJ("click",function(){return n.onOkClick()}),e._uU(45),e.ALo(46,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,12,"chart.config-title")),e.xp6(10),e.Q6J("ngForOf",n.data.charts),e.xp6(6),e.Oqu(e.lcZ(19,14,"chart.config-line-name")),e.xp6(3),e.Oqu(e.lcZ(22,16,"chart.config-line-label")),e.xp6(3),e.Oqu(e.lcZ(25,18,"chart.config-devices")),e.xp6(3),e.Oqu(e.lcZ(28,20,"chart.config-line-yaxis")),e.xp6(3),e.Oqu(e.lcZ(31,22,"chart.config-line-interpolation")),e.xp6(3),e.Oqu(e.lcZ(34,24,"chart.config-line-color")),e.xp6(3),e.Oqu(e.lcZ(37,26,"chart.config-line-fill")),e.xp6(3),e.Q6J("ngForOf",n.selectedChart.lines),e.xp6(3),e.Oqu(e.lcZ(43,28,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(46,30,"dlg.ok")))},dependencies:[l.mk,l.sg,Yn,Qr,Ir,Zn,mg,hp,zc,Hc,cc,zr,Ni.X$],styles:[".panelTop[_ngcontent-%COMP%]{display:block;width:100%;height:180px;border:1px solid var(--formBorder);position:relative;overflow:auto}.mychips[_ngcontent-%COMP%]{display:inline-block;font-size:14px;height:32px;line-height:30px;border-radius:20px;background-color:var(--chipsBackground);cursor:pointer;margin:2px}.mychips[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:5px;opacity:.5;font-size:20px;text-align:center}.mychips[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:3px;padding-right:3px;vertical-align:top}.mychips[_ngcontent-%COMP%]:hover{opacity:.9}.mychips-selected[_ngcontent-%COMP%]{background-color:var(--chipSelectedBackground);color:var(--chipSelectedColor)}.toolbox-toadd[_ngcontent-%COMP%]{position:absolute;right:50px;top:-40px}.panelTop[_ngcontent-%COMP%] .chart-list[_ngcontent-%COMP%], .device-list[_ngcontent-%COMP%], .tag-list[_ngcontent-%COMP%]{height:480px}.panelBottom[_ngcontent-%COMP%]{display:block;width:100%;height:300px;margin-top:10px}.list[_ngcontent-%COMP%]{width:100%!important;height:100%!important;font-size:16px!important;padding-top:0!important}.list[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{padding-left:10px}.list[_ngcontent-%COMP%] mat-list-option[_ngcontent-%COMP%]{padding-left:10px}.chart-list[_ngcontent-%COMP%]{overflow-y:auto}.list-item[_ngcontent-%COMP%]{display:block;font-size:14px;height:26px!important;cursor:pointer;overflow:hidden;padding-left:10px}.list-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.list-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden}.list-item-text[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-item-hover[_ngcontent-%COMP%]:hover, .list-item-selected[_ngcontent-%COMP%]{background-color:#0000001a}.list-item-sel[_ngcontent-%COMP%]{padding-left:5px!important}.list-header[_ngcontent-%COMP%]{background-color:#000c;color:#fff;line-height:26px;cursor:unset}.list-item-remove[_ngcontent-%COMP%]{width:20px;max-width:20px}.list-item-name[_ngcontent-%COMP%]{width:25%;max-width:25%}.list-item-label[_ngcontent-%COMP%]{width:30%;max-width:30%}.list-item-device[_ngcontent-%COMP%]{width:25%;max-width:25%}.list-item-yaxis[_ngcontent-%COMP%], .list-item-interpolation[_ngcontent-%COMP%]{width:10%;max-width:10%}.list-item-color[_ngcontent-%COMP%]{width:5%;max-width:5%}.list-panel[_ngcontent-%COMP%]{height:calc(100% - 26px);overflow-x:hidden}.device-list[_ngcontent-%COMP%], .tag-list[_ngcontent-%COMP%]{margin-right:2px;overflow-y:auto}.color-line[_ngcontent-%COMP%]{width:30px;border:unset;border:1px solid rgba(0,0,0,.1);border-radius:2px;opacity:1;background-color:#f1f3f4}"]})}return r})();class yS{id;name;type;property;sources=[];constructor(a,t,i){this.type=a,this.id=t,this.name=i,this.type===Nh.bar&&(this.property=new IL)}}var $f=function(r){return r.last1h="last1h",r.last1d="last1d",r.last3d="last3d",r.last1w="last1w",r.last1m="last1m",r}($f||{}),NC=function(r){return r.hours="hours",r.days="days",r}(NC||{});class IL{xtype;function;constructor(a){this.xtype=a||Object.keys(Qd).find(t=>Qd[t]===Qd.value)}}class kL{type}class EV extends kL{constructor(a){super(),this.type=a||Object.keys(Dg).find(t=>Dg[t]===Dg.sumHourIntegral)}}var Nh=function(r){return r[r.bar=0]="bar",r[r.pie=1]="pie",r}(Nh||{}),Qd=function(r){return r.value="graph.bar-xtype-value",r.date="graph.bar-xtype-date",r}(Qd||{}),Dg=function(r){return r.sumHourIntegral="graph.bar-date-fnc-hour-integral",r.sumValueIntegral="graph.bar-date-fnc-value-integral",r}(Dg||{});let MV=(()=>{class r{dialogRef;data;defaultColor=ii.cQ.defaultColor;chartAxesType=[1,2,3,4];constructor(t,i){this.dialogRef=t,this.data=i}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-graph-source-edit"]],decls:36,vars:49,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field",2,"display","block","margin-bottom","10px"],["type","text",2,"width","300px",3,"ngModel","disabled","ngModelChange"],["type","text",2,"width","300px",3,"ngModel","ngModelChange"],[2,"display","block"],[1,"my-form-field","slider-field","color-field"],[1,"input-color",2,"padding","8px 0 0 0","width","88px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","slider-field","color-field",2,"padding-left","10px"],[1,"my-form-field",2,"display","block","height","10px"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",4),e.NdJ("ngModelChange",function(s){return n.data.name=s}),e.qZA()(),e.TgZ(12,"div",3)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"input",5),e.NdJ("ngModelChange",function(s){return n.data.label=s}),e.qZA()(),e.TgZ(17,"div",6)(18,"div",7)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"input",8),e.NdJ("colorPickerChange",function(s){return n.data.color=s}),e.qZA()(),e.TgZ(23,"div",9)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"input",8),e.NdJ("colorPickerChange",function(s){return n.data.fill=s}),e.qZA()()(),e._UZ(28,"div",10),e.qZA(),e.TgZ(29,"div",11)(30,"button",12),e.NdJ("click",function(){return n.onNoClick()}),e._uU(31),e.ALo(32,"translate"),e.qZA(),e.TgZ(33,"button",13),e._uU(34),e.ALo(35,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,35,"hart.config-lines")),e.xp6(7),e.Oqu(e.lcZ(10,37,"chart.config-line-name")),e.xp6(2),e.Q6J("ngModel",n.data.name)("disabled",!0),e.xp6(3),e.Oqu(e.lcZ(15,39,"chart.config-line-label")),e.xp6(2),e.Q6J("ngModel",n.data.label),e.xp6(4),e.Oqu(e.lcZ(21,41,"chart.config-line-color")),e.xp6(2),e.Udp("background",n.data.color),e.Q6J("colorPicker",n.data.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","right"),e.xp6(3),e.Oqu(e.lcZ(26,43,"chart.config-line-fill")),e.xp6(2),e.Udp("background",n.data.fill),e.Q6J("colorPicker",n.data.fill)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","right"),e.xp6(4),e.Oqu(e.lcZ(32,45,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(35,47,"dlg.ok")))},dependencies:[I,et,$i,Yn,Cc,Qr,Kr,Ir,Zn,$A,zr,Ni.X$]})}return r})();function DV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",18),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSelectGraph(o))}),e.TgZ(1,"mat-icon",19),e.NdJ("click",function(){const n=e.CHM(t),o=n.$implicit,s=n.index,c=e.oxw();return c.onSelectGraph(o),e.KtG(c.onRemoveGraph(s))}),e._uU(2,"cancel"),e.qZA(),e.TgZ(3,"span"),e._uU(4),e.qZA(),e.TgZ(5,"mat-icon",20),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSelectGraph(o))}),e._uU(6,"more_vert"),e.qZA(),e.TgZ(7,"mat-menu",21,22)(9,"button",23),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onAddGraphSource(o))}),e.TgZ(10,"mat-icon",24),e._uU(11,"link"),e.qZA(),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"button",23),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onAddGraphSourcePlaceholder(o))}),e.TgZ(15,"mat-icon",24),e._uU(16,"link"),e.qZA(),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"button",23),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditGraph(o))}),e._uU(20),e.ALo(21,"translate"),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.MAs(8),n=e.oxw();e.Q6J("ngClass",n.isGraphSelected(t)),e.xp6(4),e.hij(" ",t.name," "),e.xp6(1),e.Q6J("matMenuTriggerFor",i),e.xp6(2),e.Q6J("overlapTrigger",!1),e.xp6(5),e.hij(" ",e.lcZ(13,7,"graph.config-source-tag")," "),e.xp6(5),e.hij(" ",e.lcZ(18,9,"chart.config-addlinePlaceholder")," "),e.xp6(3),e.Oqu(e.lcZ(21,11,"graph.config-rename"))}}function TV(r,a){if(1&r&&(e.TgZ(0,"mat-option",28),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function IV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",25)(1,"mat-select",26),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.selectedGraph.property.xtype=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onGraphXTypeChanged(n.value))}),e.ALo(2,"translate"),e.YNc(3,TV,2,2,"mat-option",27),e.ALo(4,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(1),e.s9C("placeholder",e.lcZ(2,3,"graph.property-xtype")),e.Q6J("value",t.selectedGraph.property.xtype),e.xp6(2),e.Q6J("ngForOf",e.lcZ(4,5,t.barXType))}}function kV(r,a){if(1&r&&(e.TgZ(0,"mat-option",28),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function QV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",25)(1,"mat-select",26),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.dateFunction.type=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onGraphDateFunctionTypeChanged(n.value))}),e.ALo(2,"translate"),e.YNc(3,kV,2,2,"mat-option",27),e.ALo(4,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(1),e.s9C("placeholder",e.lcZ(2,3,"graph.property-fnctype")),e.Q6J("value",t.dateFunction.type),e.xp6(2),e.Q6J("ngForOf",e.lcZ(4,5,t.barDateFunctionType))}}function SV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-list-item",29),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.editGraphSource(o))}),e.TgZ(1,"mat-icon",30),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.removeGraphSource(s))}),e._uU(2,"delete"),e.qZA(),e.TgZ(3,"div",31)(4,"span"),e._uU(5),e.qZA()(),e.TgZ(6,"div",32)(7,"span"),e._uU(8),e.qZA()(),e.TgZ(9,"div",33)(10,"span"),e._uU(11),e.qZA()(),e.TgZ(12,"div",34),e._uU(13," \xa0 "),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(5),e.Oqu(i.getDeviceTagName(t)),e.xp6(3),e.Oqu(t.label),e.xp6(3),e.Oqu(t.device),e.xp6(1),e.Udp("border-color",t.color)("background-color",t.fill)}}let QL=(()=>{class r{dialog;translateService;dialogRef;params;projectService;selectedGraph=new yS(Nh.bar);data={graphs:[],devices:[]};lineColor=ii.cQ.lineColor;barXType=Qd;xTypeValue=ii.cQ.getEnumKey(Qd,Qd.value);xTypeDate=ii.cQ.getEnumKey(Qd,Qd.date);barDateFunctionType=Dg;dateFunction=new kL;constructor(t,i,n,o,s){this.dialog=t,this.translateService=i,this.dialogRef=n,this.params=o,this.projectService=s,this.loadData()}ngOnInit(){Object.keys(this.barXType).forEach(t=>{this.translateService.get(this.barXType[t]).subscribe(i=>{this.barXType[t]=i})}),Object.keys(this.barDateFunctionType).forEach(t=>{this.translateService.get(this.barDateFunctionType[t]).subscribe(i=>{this.barDateFunctionType[t]=i})})}loadData(){this.data.graphs=JSON.parse(JSON.stringify(this.projectService.getGraphs())),this.data.devices=[];let t=this.projectService.getDevices();Object.values(t).forEach(i=>{let n=Object.assign({},i);n.tags=i.tags,this.data.devices.push(n)})}onNoClick(){this.dialogRef.close()}onOkClick(){this.projectService.setGraphs(this.data.graphs),this.dialogRef.close({graphs:this.data.graphs,selected:this.selectedGraph})}onAddNewCategory(){}isSelection(){return!(!this.selectedGraph||!this.selectedGraph.id)}onEditGraph(t){let i="dlg.item-title",n="dlg.item-name",o="dlg.item-name-error",s=this.data.graphs.map(g=>{if(!t||t.name!==g.name)return g.name});this.translateService.get(i).subscribe(g=>{i=g}),this.translateService.get(n).subscribe(g=>{n=g}),this.translateService.get(o).subscribe(g=>{o=g}),this.dialog.open(Tv,{position:{top:"60px"},data:{name:t?t.name:"",title:i,label:n,exist:s,error:o}}).afterClosed().subscribe(g=>{if(g&&g.name&&g.name.length>0)if(t)t.name=g.name;else{let B=new yS(Nh.bar,ii.cQ.getShortGUID(),g.name);this.data.graphs.push(B),this.onSelectGraph(B)}})}onAddGraphSource(t){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:null,multiSelection:!1}}).afterClosed().subscribe(n=>{if(n){let o=[];n.variablesId?o=n.variablesId:n.variableId&&o.push(n.variableId),o.forEach(s=>{let c=Yi.ef.getDeviceFromTagId(this.data.devices,s),g=Yi.ef.getTagFromTagId([c],s);if(g&&!t.sources.find(O=>O.id===g.id)){let O=this.getNextColor();const ne={id:g.id,name:this.getTagLabel(g),device:c.name,label:this.getTagLabel(g),color:O,fill:O};t.sources.push(ne)}})}})}onAddGraphSourcePlaceholder(t){this.dialog.open(DL,{disableClose:!0,position:{top:"60px"}}).afterClosed().subscribe(n=>{if(n){const o=n;n="@"+n;let s=this.getNextColor();t.sources.push({id:n,name:n,device:"@",label:o,color:s,fill:s})}})}onRemoveGraph(t){let i="";this.translateService.get("msg.graph-remove",{value:this.data.graphs[t].name}).subscribe(o=>{i=o}),this.dialog.open(qu,{data:{msg:i},position:{top:"60px"}}).afterClosed().subscribe(o=>{o&&(this.data.graphs.splice(t,1),this.selectedGraph=new yS(Nh.bar))})}editGraphSource(t){this.dialog.open(MV,{position:{top:"60px"},data:{id:t.id,device:t.device,name:t.name,label:t.label,color:t.color,fill:t.fill}}).afterClosed().subscribe(n=>{n&&(t.label=n.label,t.color=n.color,t.fill=n.fill)})}removeGraphSource(t){for(let i=0;in.name===t.device);if(i&&i.length>0){let n=Object.values(i[0].tags);for(let o=0;o span[_ngcontent-%COMP%]{padding-left:10px}.list[_ngcontent-%COMP%] mat-list-option[_ngcontent-%COMP%]{padding-left:10px}.list-item[_ngcontent-%COMP%]{display:block;font-size:12px;height:28px!important;line-height:26px;cursor:pointer;overflow:hidden;padding-left:10px}.list-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.list-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden}.list-item-text[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-item-hover[_ngcontent-%COMP%]:hover{background-color:#0000001a}.list-header[_ngcontent-%COMP%]{background-color:#000c;color:#fff;line-height:26px;cursor:unset}.list-item-remove[_ngcontent-%COMP%]{width:20px;max-width:20px;color:gray}.list-item-name[_ngcontent-%COMP%], .list-item-label[_ngcontent-%COMP%], .list-item-device[_ngcontent-%COMP%]{width:30%;max-width:30%}.list-item-color[_ngcontent-%COMP%]{width:5%;max-width:5%;height:14px;border-style:solid;border-width:3px}.list-panel[_ngcontent-%COMP%]{height:calc(100% - 26px);overflow-x:hidden}.device-list[_ngcontent-%COMP%], .tag-list[_ngcontent-%COMP%]{margin-right:2px;overflow-y:auto}.color-line[_ngcontent-%COMP%]{width:30px;border:unset;border:1px solid rgba(0,0,0,.1);border-radius:2px;opacity:1;background-color:#f1f3f4}.showEditor[_ngcontent-%COMP%]{display:block}.hideEditor[_ngcontent-%COMP%]{display:none}.section-panel[_ngcontent-%COMP%]{height:100%;font-size:12px}.section-category[_ngcontent-%COMP%]{width:25%;display:inline-block}.section-header[_ngcontent-%COMP%]{width:100%;background-color:var(--chipsBackground);color:#fff;height:26px;line-height:26px}.section-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:5px}.section-item[_ngcontent-%COMP%]{width:100%;margin-bottom:3px}.section-item[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%]{width:calc(100% - 7px)}.section-list[_ngcontent-%COMP%]{border:1px solid var(--formBorder);height:calc(100% - 30px);padding:2px;overflow-x:hidden;overflow-y:auto}.section-sources[_ngcontent-%COMP%]{width:74%;float:right}"]})}return r})();var Tt=ce(4126);let Tg=(()=>{class r{static fonts=["Sans-serif","Roboto-Thin","Roboto-Light","Roboto-Regular","Roboto-Medium","Roboto-Bold","Quicksand-Regular","Quicksand-Medium","Quicksand-Bold"];static MaterialIconsRegular="\n10k e951\n10mp e952\n11mp e953\n123 eb8d\n12mp e954\n13mp e955\n14mp e956\n15mp e957\n16mp e958\n17mp e959\n18_up_rating f8fd\n18mp e95a\n19mp e95b\n1k e95c\n1k_plus e95d\n1x_mobiledata efcd\n20mp e95e\n21mp e95f\n22mp e960\n23mp e961\n24mp e962\n2k e963\n2k_plus e964\n2mp e965\n30fps efce\n30fps_select efcf\n360 e577\n3d_rotation e84d\n3g_mobiledata efd0\n3k e966\n3k_plus e967\n3mp e968\n3p efd1\n4g_mobiledata efd2\n4g_plus_mobiledata efd3\n4k e072\n4k_plus e969\n4mp e96a\n5g ef38\n5k e96b\n5k_plus e96c\n5mp e96d\n60fps efd4\n60fps_select efd5\n6_ft_apart f21e\n6k e96e\n6k_plus e96f\n6mp e970\n7k e971\n7k_plus e972\n7mp e973\n8k e974\n8k_plus e975\n8mp e976\n9k e977\n9k_plus e978\n9mp e979\nabc eb94\nac_unit eb3b\naccess_alarm e190\naccess_alarms e191\naccess_time e192\naccess_time_filled efd6\naccessibility e84e\naccessibility_new e92c\naccessible e914\naccessible_forward e934\naccount_balance e84f\naccount_balance_wallet e850\naccount_box e851\naccount_circle e853\naccount_tree e97a\nad_units ef39\nadb e60e\nadd e145\nadd_a_photo e439\nadd_alarm e193\nadd_alert e003\nadd_box e146\nadd_business e729\nadd_call e0e8\nadd_card eb86\nadd_chart e97b\nadd_circle e147\nadd_circle_outline e148\nadd_comment e266\nadd_home f8eb\nadd_home_work f8ed\nadd_ic_call e97c\nadd_link e178\nadd_location e567\nadd_location_alt ef3a\nadd_moderator e97d\nadd_photo_alternate e43e\nadd_reaction e1d3\nadd_road ef3b\nadd_shopping_cart e854\nadd_task f23a\nadd_to_drive e65c\nadd_to_home_screen e1fe\nadd_to_photos e39d\nadd_to_queue e05c\naddchart ef3c\nadf_scanner eada\nadjust e39e\nadmin_panel_settings ef3d\nadobe ea96\nads_click e762\nagriculture ea79\nair efd8\nairline_seat_flat e630\nairline_seat_flat_angled e631\nairline_seat_individual_suite e632\nairline_seat_legroom_extra e633\nairline_seat_legroom_normal e634\nairline_seat_legroom_reduced e635\nairline_seat_recline_extra e636\nairline_seat_recline_normal e637\nairline_stops e7d0\nairlines e7ca\nairplane_ticket efd9\nairplanemode_active e195\nairplanemode_inactive e194\nairplanemode_off e194\nairplanemode_on e195\nairplay e055\nairport_shuttle eb3c\nalarm e855\nalarm_add e856\nalarm_off e857\nalarm_on e858\nalbum e019\nalign_horizontal_center e00f\nalign_horizontal_left e00d\nalign_horizontal_right e010\nalign_vertical_bottom e015\nalign_vertical_center e011\nalign_vertical_top e00c\nall_inbox e97f\nall_inclusive eb3d\nall_out e90b\nalt_route f184\nalternate_email e0e6\namp_stories ea13\nanalytics ef3e\nanchor f1cd\nandroid e859\nanimation e71c\nannouncement e85a\naod efda\napartment ea40\napi f1b7\napp_blocking ef3f\napp_registration ef40\napp_settings_alt ef41\napp_shortcut eae4\napple ea80\napproval e982\napps e5c3\napps_outage e7cc\narchitecture ea3b\narchive e149\narea_chart e770\narrow_back e5c4\narrow_back_ios e5e0\narrow_back_ios_new e2ea\narrow_circle_down f181\narrow_circle_left eaa7\narrow_circle_right eaaa\narrow_circle_up f182\narrow_downward e5db\narrow_drop_down e5c5\narrow_drop_down_circle e5c6\narrow_drop_up e5c7\narrow_forward e5c8\narrow_forward_ios e5e1\narrow_left e5de\narrow_outward f8ce\narrow_right e5df\narrow_right_alt e941\narrow_upward e5d8\nart_track e060\narticle ef42\naspect_ratio e85b\nassessment e85c\nassignment e85d\nassignment_add f848\nassignment_ind e85e\nassignment_late e85f\nassignment_return e860\nassignment_returned e861\nassignment_turned_in e862\nassist_walker f8d5\nassistant e39f\nassistant_direction e988\nassistant_navigation e989\nassistant_photo e3a0\nassured_workload eb6f\natm e573\nattach_email ea5e\nattach_file e226\nattach_money e227\nattachment e2bc\nattractions ea52\nattribution efdb\naudio_file eb82\naudiotrack e3a1\nauto_awesome e65f\nauto_awesome_mosaic e660\nauto_awesome_motion e661\nauto_delete ea4c\nauto_fix_high e663\nauto_fix_normal e664\nauto_fix_off e665\nauto_graph e4fb\nauto_mode ec20\nauto_stories e666\nautofps_select efdc\nautorenew e863\nav_timer e01b\nbaby_changing_station f19b\nback_hand e764\nbackpack f19c\nbackspace e14a\nbackup e864\nbackup_table ef43\nbadge ea67\nbakery_dining ea53\nbalance eaf6\nbalcony e58f\nballot e172\nbar_chart e26b\nbarcode_reader f85c\nbatch_prediction f0f5\nbathroom efdd\nbathtub ea41\nbattery_0_bar ebdc\nbattery_1_bar ebd9\nbattery_2_bar ebe0\nbattery_3_bar ebdd\nbattery_4_bar ebe2\nbattery_5_bar ebd4\nbattery_6_bar ebd2\nbattery_alert e19c\nbattery_charging_full e1a3\nbattery_full e1a4\nbattery_saver efde\nbattery_std e1a5\nbattery_unknown e1a6\nbeach_access eb3e\nbed efdf\nbedroom_baby efe0\nbedroom_child efe1\nbedroom_parent efe2\nbedtime ef44\nbedtime_off eb76\nbeenhere e52d\nbento f1f4\nbike_scooter ef45\nbiotech ea3a\nblender efe3\nblind f8d6\nblinds e286\nblinds_closed ec1f\nblock e14b\nblock_flipped ef46\nbloodtype efe4\nbluetooth e1a7\nbluetooth_audio e60f\nbluetooth_connected e1a8\nbluetooth_disabled e1a9\nbluetooth_drive efe5\nbluetooth_searching e1aa\nblur_circular e3a2\nblur_linear e3a3\nblur_off e3a4\nblur_on e3a5\nbolt ea0b\nbook e865\nbook_online f217\nbookmark e866\nbookmark_add e598\nbookmark_added e599\nbookmark_border e867\nbookmark_outline e867\nbookmark_remove e59a\nbookmarks e98b\nborder_all e228\nborder_bottom e229\nborder_clear e22a\nborder_color e22b\nborder_horizontal e22c\nborder_inner e22d\nborder_left e22e\nborder_outer e22f\nborder_right e230\nborder_style e231\nborder_top e232\nborder_vertical e233\nboy eb67\nbranding_watermark e06b\nbreakfast_dining ea54\nbrightness_1 e3a6\nbrightness_2 e3a7\nbrightness_3 e3a8\nbrightness_4 e3a9\nbrightness_5 e3aa\nbrightness_6 e3ab\nbrightness_7 e3ac\nbrightness_auto e1ab\nbrightness_high e1ac\nbrightness_low e1ad\nbrightness_medium e1ae\nbroadcast_on_home f8f8\nbroadcast_on_personal f8f9\nbroken_image e3ad\nbrowse_gallery ebd1\nbrowser_not_supported ef47\nbrowser_updated e7cf\nbrunch_dining ea73\nbrush e3ae\nbubble_chart e6dd\nbug_report e868\nbuild e869\nbuild_circle ef48\nbungalow e591\nburst_mode e43c\nbus_alert e98f\nbusiness e0af\nbusiness_center eb3f\ncabin e589\ncable efe6\ncached e86a\ncake e7e9\ncalculate ea5f\ncalendar_month ebcc\ncalendar_today e935\ncalendar_view_day e936\ncalendar_view_month efe7\ncalendar_view_week efe8\ncall e0b0\ncall_end e0b1\ncall_made e0b2\ncall_merge e0b3\ncall_missed e0b4\ncall_missed_outgoing e0e4\ncall_received e0b5\ncall_split e0b6\ncall_to_action e06c\ncamera e3af\ncamera_alt e3b0\ncamera_enhance e8fc\ncamera_front e3b1\ncamera_indoor efe9\ncamera_outdoor efea\ncamera_rear e3b2\ncamera_roll e3b3\ncameraswitch efeb\ncampaign ef49\ncancel e5c9\ncancel_presentation e0e9\ncancel_schedule_send ea39\ncandlestick_chart ead4\ncar_crash ebf2\ncar_rental ea55\ncar_repair ea56\ncard_giftcard e8f6\ncard_membership e8f7\ncard_travel e8f8\ncarpenter f1f8\ncases e992\ncasino eb40\ncast e307\ncast_connected e308\ncast_for_education efec\ncastle eab1\ncatching_pokemon e508\ncategory e574\ncelebration ea65\ncell_tower ebba\ncell_wifi e0ec\ncenter_focus_strong e3b4\ncenter_focus_weak e3b5\nchair efed\nchair_alt efee\nchalet e585\nchange_circle e2e7\nchange_history e86b\ncharging_station f19d\nchat e0b7\nchat_bubble e0ca\nchat_bubble_outline e0cb\ncheck e5ca\ncheck_box e834\ncheck_box_outline_blank e835\ncheck_circle e86c\ncheck_circle_outline e92d\nchecklist e6b1\nchecklist_rtl e6b3\ncheckroom f19e\nchevron_left e5cb\nchevron_right e5cc\nchild_care eb41\nchild_friendly eb42\nchrome_reader_mode e86d\nchurch eaae\ncircle ef4a\ncircle_notifications e994\nclass e86e\nclean_hands f21f\ncleaning_services f0ff\nclear e14c\nclear_all e0b8\nclose e5cd\nclose_fullscreen f1cf\nclosed_caption e01c\nclosed_caption_disabled f1dc\nclosed_caption_off e996\ncloud e2bd\ncloud_circle e2be\ncloud_done e2bf\ncloud_download e2c0\ncloud_off e2c1\ncloud_queue e2c2\ncloud_sync eb5a\ncloud_upload e2c3\ncloudy_snowing e810\nco2 e7b0\nco_present eaf0\ncode e86f\ncode_off e4f3\ncoffee efef\ncoffee_maker eff0\ncollections e3b6\ncollections_bookmark e431\ncolor_lens e3b7\ncolorize e3b8\ncomment e0b9\ncomment_bank ea4e\ncomments_disabled e7a2\ncommit eaf5\ncommute e940\ncompare e3b9\ncompare_arrows e915\ncompass_calibration e57c\ncompost e761\ncompress e94d\ncomputer e30a\nconfirmation_num e638\nconfirmation_number e638\nconnect_without_contact f223\nconnected_tv e998\nconnecting_airports e7c9\nconstruction ea3c\ncontact_emergency f8d1\ncontact_mail e0d0\ncontact_page f22e\ncontact_phone e0cf\ncontact_support e94c\ncontactless ea71\ncontacts e0ba\ncontent_copy e14d\ncontent_cut e14e\ncontent_paste e14f\ncontent_paste_go ea8e\ncontent_paste_off e4f8\ncontent_paste_search ea9b\ncontrast eb37\ncontrol_camera e074\ncontrol_point e3ba\ncontrol_point_duplicate e3bb\nconveyor_belt f867\ncookie eaac\ncopy_all e2ec\ncopyright e90c\ncoronavirus f221\ncorporate_fare f1d0\ncottage e587\ncountertops f1f7\ncreate e150\ncreate_new_folder e2cc\ncredit_card e870\ncredit_card_off e4f4\ncredit_score eff1\ncrib e588\ncrisis_alert ebe9\ncrop e3be\ncrop_16_9 e3bc\ncrop_3_2 e3bd\ncrop_5_4 e3bf\ncrop_7_5 e3c0\ncrop_din e3c1\ncrop_free e3c2\ncrop_landscape e3c3\ncrop_original e3c4\ncrop_portrait e3c5\ncrop_rotate e437\ncrop_square e3c6\ncruelty_free e799\ncss eb93\ncurrency_bitcoin ebc5\ncurrency_exchange eb70\ncurrency_franc eafa\ncurrency_lira eaef\ncurrency_pound eaf1\ncurrency_ruble eaec\ncurrency_rupee eaf7\ncurrency_yen eafb\ncurrency_yuan eaf9\ncurtains ec1e\ncurtains_closed ec1d\ncyclone ebd5\ndangerous e99a\ndark_mode e51c\ndashboard e871\ndashboard_customize e99b\ndata_array ead1\ndata_exploration e76f\ndata_object ead3\ndata_saver_off eff2\ndata_saver_on eff3\ndata_thresholding eb9f\ndata_usage e1af\ndataset f8ee\ndataset_linked f8ef\ndate_range e916\ndeblur eb77\ndeck ea42\ndehaze e3c7\ndelete e872\ndelete_forever e92b\ndelete_outline e92e\ndelete_sweep e16c\ndelivery_dining ea72\ndensity_large eba9\ndensity_medium eb9e\ndensity_small eba8\ndeparture_board e576\ndescription e873\ndeselect ebb6\ndesign_services f10a\ndesk f8f4\ndesktop_access_disabled e99d\ndesktop_mac e30b\ndesktop_windows e30c\ndetails e3c8\ndeveloper_board e30d\ndeveloper_board_off e4ff\ndeveloper_mode e1b0\ndevice_hub e335\ndevice_thermostat e1ff\ndevice_unknown e339\ndevices e1b1\ndevices_fold ebde\ndevices_other e337\ndew_point f879\ndialer_sip e0bb\ndialpad e0bc\ndiamond ead5\ndifference eb7d\ndining eff4\ndinner_dining ea57\ndirections e52e\ndirections_bike e52f\ndirections_boat e532\ndirections_boat_filled eff5\ndirections_bus e530\ndirections_bus_filled eff6\ndirections_car e531\ndirections_car_filled eff7\ndirections_ferry e532\ndirections_off f10f\ndirections_railway e534\ndirections_railway_filled eff8\ndirections_run e566\ndirections_subway e533\ndirections_subway_filled eff9\ndirections_train e534\ndirections_transit e535\ndirections_transit_filled effa\ndirections_walk e536\ndirty_lens ef4b\ndisabled_by_default f230\ndisabled_visible e76e\ndisc_full e610\ndiscord ea6c\ndiscount ebc9\ndisplay_settings eb97\ndiversity_1 f8d7\ndiversity_2 f8d8\ndiversity_3 f8d9\ndnd_forwardslash e611\ndns e875\ndo_disturb f08c\ndo_disturb_alt f08d\ndo_disturb_off f08e\ndo_disturb_on f08f\ndo_not_disturb e612\ndo_not_disturb_alt e611\ndo_not_disturb_off e643\ndo_not_disturb_on e644\ndo_not_disturb_on_total_silence effb\ndo_not_step f19f\ndo_not_touch f1b0\ndock e30e\ndocument_scanner e5fa\ndomain e7ee\ndomain_add eb62\ndomain_disabled e0ef\ndomain_verification ef4c\ndone e876\ndone_all e877\ndone_outline e92f\ndonut_large e917\ndonut_small e918\ndoor_back effc\ndoor_front effd\ndoor_sliding effe\ndoorbell efff\ndouble_arrow ea50\ndownhill_skiing e509\ndownload f090\ndownload_done f091\ndownload_for_offline f000\ndownloading f001\ndrafts e151\ndrag_handle e25d\ndrag_indicator e945\ndraw e746\ndrive_eta e613\ndrive_file_move e675\ndrive_file_move_outline e9a1\ndrive_file_move_rtl e76d\ndrive_file_rename_outline e9a2\ndrive_folder_upload e9a3\ndry f1b3\ndry_cleaning ea58\nduo e9a5\ndvr e1b2\ndynamic_feed ea14\ndynamic_form f1bf\ne_mobiledata f002\nearbuds f003\nearbuds_battery f004\neast f1df\neco ea35\nedgesensor_high f005\nedgesensor_low f006\nedit e3c9\nedit_attributes e578\nedit_calendar e742\nedit_document f88c\nedit_location e568\nedit_location_alt e1c5\nedit_note e745\nedit_notifications e525\nedit_off e950\nedit_road ef4d\nedit_square f88d\negg eacc\negg_alt eac8\neject e8fb\nelderly f21a\nelderly_woman eb69\nelectric_bike eb1b\nelectric_bolt ec1c\nelectric_car eb1c\nelectric_meter ec1b\nelectric_moped eb1d\nelectric_rickshaw eb1e\nelectric_scooter eb1f\nelectrical_services f102\nelevator f1a0\nemail e0be\nemergency e1eb\nemergency_recording ebf4\nemergency_share ebf6\nemoji_emotions ea22\nemoji_events ea23\nemoji_flags ea1a\nemoji_food_beverage ea1b\nemoji_nature ea1c\nemoji_objects ea24\nemoji_people ea1d\nemoji_symbols ea1e\nemoji_transportation ea1f\nenergy_savings_leaf ec1a\nengineering ea3d\nenhance_photo_translate e8fc\nenhanced_encryption e63f\nequalizer e01d\nerror e000\nerror_outline e001\nescalator f1a1\nescalator_warning f1ac\neuro ea15\neuro_symbol e926\nev_station e56d\nevent e878\nevent_available e614\nevent_busy e615\nevent_note e616\nevent_repeat eb7b\nevent_seat e903\nexit_to_app e879\nexpand e94f\nexpand_circle_down e7cd\nexpand_less e5ce\nexpand_more e5cf\nexplicit e01e\nexplore e87a\nexplore_off e9a8\nexposure e3ca\nexposure_minus_1 e3cb\nexposure_minus_2 e3cc\nexposure_neg_1 e3cb\nexposure_neg_2 e3cc\nexposure_plus_1 e3cd\nexposure_plus_2 e3ce\nexposure_zero e3cf\nextension e87b\nextension_off e4f5\nface e87c\nface_2 f8da\nface_3 f8db\nface_4 f8dc\nface_5 f8dd\nface_6 f8de\nface_retouching_natural ef4e\nface_retouching_off f007\nfacebook f234\nfact_check f0c5\nfactory ebbc\nfamily_restroom f1a2\nfast_forward e01f\nfast_rewind e020\nfastfood e57a\nfavorite e87d\nfavorite_border e87e\nfavorite_outline e87e\nfax ead8\nfeatured_play_list e06d\nfeatured_video e06e\nfeed f009\nfeedback e87f\nfemale e590\nfence f1f6\nfestival ea68\nfiber_dvr e05d\nfiber_manual_record e061\nfiber_new e05e\nfiber_pin e06a\nfiber_smart_record e062\nfile_copy e173\nfile_download e2c4\nfile_download_done e9aa\nfile_download_off e4fe\nfile_open eaf3\nfile_present ea0e\nfile_upload e2c6\nfile_upload_off f886\nfilter e3d3\nfilter_1 e3d0\nfilter_2 e3d1\nfilter_3 e3d2\nfilter_4 e3d4\nfilter_5 e3d5\nfilter_6 e3d6\nfilter_7 e3d7\nfilter_8 e3d8\nfilter_9 e3d9\nfilter_9_plus e3da\nfilter_alt ef4f\nfilter_alt_off eb32\nfilter_b_and_w e3db\nfilter_center_focus e3dc\nfilter_drama e3dd\nfilter_frames e3de\nfilter_hdr e3df\nfilter_list e152\nfilter_list_alt e94e\nfilter_list_off eb57\nfilter_none e3e0\nfilter_tilt_shift e3e2\nfilter_vintage e3e3\nfind_in_page e880\nfind_replace e881\nfingerprint e90d\nfire_extinguisher f1d8\nfire_hydrant f1a3\nfire_hydrant_alt f8f1\nfire_truck f8f2\nfireplace ea43\nfirst_page e5dc\nfit_screen ea10\nfitbit e82b\nfitness_center eb43\nflag e153\nflag_circle eaf8\nflaky ef50\nflare e3e4\nflash_auto e3e5\nflash_off e3e6\nflash_on e3e7\nflashlight_off f00a\nflashlight_on f00b\nflatware f00c\nflight e539\nflight_class e7cb\nflight_land e904\nflight_takeoff e905\nflip e3e8\nflip_camera_android ea37\nflip_camera_ios ea38\nflip_to_back e882\nflip_to_front e883\nflood ebe6\nflourescent ec31\nflourescent f00d\nfluorescent ec31\nflutter_dash e00b\nfmd_bad f00e\nfmd_good f00f\nfoggy e818\nfolder e2c7\nfolder_copy ebbd\nfolder_delete eb34\nfolder_off eb83\nfolder_open e2c8\nfolder_shared e2c9\nfolder_special e617\nfolder_zip eb2c\nfollow_the_signs f222\nfont_download e167\nfont_download_off e4f9\nfood_bank f1f2\nforest ea99\nfork_left eba0\nfork_right ebac\nforklift f868\nformat_align_center e234\nformat_align_justify e235\nformat_align_left e236\nformat_align_right e237\nformat_bold e238\nformat_clear e239\nformat_color_fill e23a\nformat_color_reset e23b\nformat_color_text e23c\nformat_indent_decrease e23d\nformat_indent_increase e23e\nformat_italic e23f\nformat_line_spacing e240\nformat_list_bulleted e241\nformat_list_bulleted_add f849\nformat_list_numbered e242\nformat_list_numbered_rtl e267\nformat_overline eb65\nformat_paint e243\nformat_quote e244\nformat_shapes e25e\nformat_size e245\nformat_strikethrough e246\nformat_textdirection_l_to_r e247\nformat_textdirection_r_to_l e248\nformat_underline e249\nformat_underlined e249\nfort eaad\nforum e0bf\nforward e154\nforward_10 e056\nforward_30 e057\nforward_5 e058\nforward_to_inbox f187\nfoundation f200\nfree_breakfast eb44\nfree_cancellation e748\nfront_hand e769\nfront_loader f869\nfullscreen e5d0\nfullscreen_exit e5d1\nfunctions e24a\ng_mobiledata f010\ng_translate e927\ngamepad e30f\ngames e021\ngarage f011\ngas_meter ec19\ngavel e90e\ngenerating_tokens e749\ngesture e155\nget_app e884\ngif e908\ngif_box e7a3\ngirl eb68\ngite e58b\ngoat 10fffd\ngolf_course eb45\ngpp_bad f012\ngpp_good f013\ngpp_maybe f014\ngps_fixed e1b3\ngps_not_fixed e1b4\ngps_off e1b5\ngrade e885\ngradient e3e9\ngrading ea4f\ngrain e3ea\ngraphic_eq e1b8\ngrass f205\ngrid_3x3 f015\ngrid_4x4 f016\ngrid_goldenratio f017\ngrid_off e3eb\ngrid_on e3ec\ngrid_view e9b0\ngroup e7ef\ngroup_add e7f0\ngroup_off e747\ngroup_remove e7ad\ngroup_work e886\ngroups f233\ngroups_2 f8df\ngroups_3 f8e0\nh_mobiledata f018\nh_plus_mobiledata f019\nhail e9b1\nhandshake ebcb\nhandyman f10b\nhardware ea59\nhd e052\nhdr_auto f01a\nhdr_auto_select f01b\nhdr_enhanced_select ef51\nhdr_off e3ed\nhdr_off_select f01c\nhdr_on e3ee\nhdr_on_select f01d\nhdr_plus f01e\nhdr_strong e3f1\nhdr_weak e3f2\nheadphones f01f\nheadphones_battery f020\nheadset e310\nheadset_mic e311\nheadset_off e33a\nhealing e3f3\nhealth_and_safety e1d5\nhearing e023\nhearing_disabled f104\nheart_broken eac2\nheat_pump ec18\nheight ea16\nhelp e887\nhelp_center f1c0\nhelp_outline e8fd\nhevc f021\nhexagon eb39\nhide_image f022\nhide_source f023\nhigh_quality e024\nhighlight e25f\nhighlight_alt ef52\nhighlight_off e888\nhighlight_remove e888\nhiking e50a\nhistory e889\nhistory_edu ea3e\nhistory_toggle_off f17d\nhive eaa6\nhls eb8a\nhls_off eb8c\nholiday_village e58a\nhome e88a\nhome_filled e9b2\nhome_max f024\nhome_mini f025\nhome_repair_service f100\nhome_work ea09\nhorizontal_distribute e014\nhorizontal_rule f108\nhorizontal_split e947\nhot_tub eb46\nhotel e53a\nhotel_class e743\nhourglass_bottom ea5c\nhourglass_disabled ef53\nhourglass_empty e88b\nhourglass_full e88c\nhourglass_top ea5b\nhouse ea44\nhouse_siding f202\nhouseboat e584\nhow_to_reg e174\nhow_to_vote e175\nhtml eb7e\nhttp e902\nhttps e88d\nhub e9f4\nhvac f10e\nice_skating e50b\nicecream ea69\nimage e3f4\nimage_aspect_ratio e3f5\nimage_not_supported f116\nimage_search e43f\nimagesearch_roller e9b4\nimport_contacts e0e0\nimport_export e0c3\nimportant_devices e912\ninbox e156\nincomplete_circle e79b\nindeterminate_check_box e909\ninfo e88e\ninfo_outline e88f\ninput e890\ninsert_chart e24b\ninsert_chart_outlined e26a\ninsert_comment e24c\ninsert_drive_file e24d\ninsert_emoticon e24e\ninsert_invitation e24f\ninsert_link e250\ninsert_page_break eaca\ninsert_photo e251\ninsights f092\ninstall_desktop eb71\ninstall_mobile eb72\nintegration_instructions ef54\ninterests e7c8\ninterpreter_mode e83b\ninventory e179\ninventory_2 e1a1\ninvert_colors e891\ninvert_colors_off e0c4\ninvert_colors_on e891\nios_share e6b8\niron e583\niso e3f6\njavascript eb7c\njoin_full eaeb\njoin_inner eaf4\njoin_left eaf2\njoin_right eaea\nkayaking e50c\nkebab_dining e842\nkey e73c\nkey_off eb84\nkeyboard e312\nkeyboard_alt f028\nkeyboard_arrow_down e313\nkeyboard_arrow_left e314\nkeyboard_arrow_right e315\nkeyboard_arrow_up e316\nkeyboard_backspace e317\nkeyboard_capslock e318\nkeyboard_command eae0\nkeyboard_command_key eae7\nkeyboard_control e5d3\nkeyboard_control_key eae6\nkeyboard_double_arrow_down ead0\nkeyboard_double_arrow_left eac3\nkeyboard_double_arrow_right eac9\nkeyboard_double_arrow_up eacf\nkeyboard_hide e31a\nkeyboard_option eadf\nkeyboard_option_key eae8\nkeyboard_return e31b\nkeyboard_tab e31c\nkeyboard_voice e31d\nking_bed ea45\nkitchen eb47\nkitesurfing e50d\nlabel e892\nlabel_important e937\nlabel_important_outline e948\nlabel_off e9b6\nlabel_outline e893\nlan eb2f\nlandscape e3f7\nlandslide ebd7\nlanguage e894\nlaptop e31e\nlaptop_chromebook e31f\nlaptop_mac e320\nlaptop_windows e321\nlast_page e5dd\nlaunch e895\nlayers e53b\nlayers_clear e53c\nleaderboard f20c\nleak_add e3f8\nleak_remove e3f9\nleave_bags_at_home f21b\nlegend_toggle f11b\nlens e3fa\nlens_blur f029\nlibrary_add e02e\nlibrary_add_check e9b7\nlibrary_books e02f\nlibrary_music e030\nlight f02a\nlight_mode e518\nlightbulb e0f0\nlightbulb_circle ebfe\nlightbulb_outline e90f\nline_axis ea9a\nline_style e919\nline_weight e91a\nlinear_scale e260\nlink e157\nlink_off e16f\nlinked_camera e438\nliquor ea60\nlist e896\nlist_alt e0ee\nlive_help e0c6\nlive_tv e639\nliving f02b\nlocal_activity e53f\nlocal_airport e53d\nlocal_atm e53e\nlocal_attraction e53f\nlocal_bar e540\nlocal_cafe e541\nlocal_car_wash e542\nlocal_convenience_store e543\nlocal_dining e556\nlocal_drink e544\nlocal_fire_department ef55\nlocal_florist e545\nlocal_gas_station e546\nlocal_grocery_store e547\nlocal_hospital e548\nlocal_hotel e549\nlocal_laundry_service e54a\nlocal_library e54b\nlocal_mall e54c\nlocal_movies e54d\nlocal_offer e54e\nlocal_parking e54f\nlocal_pharmacy e550\nlocal_phone e551\nlocal_pizza e552\nlocal_play e553\nlocal_police ef56\nlocal_post_office e554\nlocal_print_shop e555\nlocal_printshop e555\nlocal_restaurant e556\nlocal_see e557\nlocal_shipping e558\nlocal_taxi e559\nlocation_city e7f1\nlocation_disabled e1b6\nlocation_history e55a\nlocation_off e0c7\nlocation_on e0c8\nlocation_pin f1db\nlocation_searching e1b7\nlock e897\nlock_clock ef57\nlock_open e898\nlock_outline e899\nlock_person f8f3\nlock_reset eade\nlogin ea77\nlogo_dev ead6\nlogout e9ba\nlooks e3fc\nlooks_3 e3fb\nlooks_4 e3fd\nlooks_5 e3fe\nlooks_6 e3ff\nlooks_one e400\nlooks_two e401\nloop e028\nloupe e402\nlow_priority e16d\nloyalty e89a\nlte_mobiledata f02c\nlte_plus_mobiledata f02d\nluggage f235\nlunch_dining ea61\nlyrics ec0b\nmacro_off f8d2\nmail e158\nmail_lock ec0a\nmail_outline e0e1\nmale e58e\nman e4eb\nman_2 f8e1\nman_3 f8e2\nman_4 f8e3\nmanage_accounts f02e\nmanage_history ebe7\nmanage_search f02f\nmap e55b\nmaps_home_work f030\nmaps_ugc ef58\nmargin e9bb\nmark_as_unread e9bc\nmark_chat_read f18b\nmark_chat_unread f189\nmark_email_read f18c\nmark_email_unread f18a\nmark_unread_chat_alt eb9d\nmarkunread e159\nmarkunread_mailbox e89b\nmasks f218\nmaximize e930\nmedia_bluetooth_off f031\nmedia_bluetooth_on f032\nmediation efa7\nmedical_information ebed\nmedical_services f109\nmedication f033\nmedication_liquid ea87\nmeeting_room eb4f\nmemory e322\nmenu e5d2\nmenu_book ea19\nmenu_open e9bd\nmerge eb98\nmerge_type e252\nmessage e0c9\nmessenger e0ca\nmessenger_outline e0cb\nmic e029\nmic_external_off ef59\nmic_external_on ef5a\nmic_none e02a\nmic_off e02b\nmicrowave f204\nmilitary_tech ea3f\nminimize e931\nminor_crash ebf1\nmiscellaneous_services f10c\nmissed_video_call e073\nmms e618\nmobile_friendly e200\nmobile_off e201\nmobile_screen_share e0e7\nmobiledata_off f034\nmode f097\nmode_comment e253\nmode_edit e254\nmode_edit_outline f035\nmode_fan_off ec17\nmode_night f036\nmode_of_travel e7ce\nmode_standby f037\nmodel_training f0cf\nmonetization_on e263\nmoney e57d\nmoney_off e25c\nmoney_off_csred f038\nmonitor ef5b\nmonitor_heart eaa2\nmonitor_weight f039\nmonochrome_photos e403\nmood e7f2\nmood_bad e7f3\nmoped eb28\nmore e619\nmore_horiz e5d3\nmore_time ea5d\nmore_vert e5d4\nmosque eab2\nmotion_photos_auto f03a\nmotion_photos_off e9c0\nmotion_photos_on e9c1\nmotion_photos_pause f227\nmotion_photos_paused e9c2\nmotorcycle e91b\nmouse e323\nmove_down eb61\nmove_to_inbox e168\nmove_up eb64\nmovie e02c\nmovie_creation e404\nmovie_edit f840\nmovie_filter e43a\nmoving e501\nmp e9c3\nmultiline_chart e6df\nmultiple_stop f1b9\nmultitrack_audio e1b8\nmuseum ea36\nmusic_note e405\nmusic_off e440\nmusic_video e063\nmy_library_add e02e\nmy_library_books e02f\nmy_library_music e030\nmy_location e55c\nnat ef5c\nnature e406\nnature_people e407\nnavigate_before e408\nnavigate_next e409\nnavigation e55d\nnear_me e569\nnear_me_disabled f1ef\nnearby_error f03b\nnearby_off f03c\nnest_cam_wired_stand ec16\nnetwork_cell e1b9\nnetwork_check e640\nnetwork_locked e61a\nnetwork_ping ebca\nnetwork_wifi e1ba\nnetwork_wifi_1_bar ebe4\nnetwork_wifi_2_bar ebd6\nnetwork_wifi_3_bar ebe1\nnew_label e609\nnew_releases e031\nnewspaper eb81\nnext_plan ef5d\nnext_week e16a\nnfc e1bb\nnight_shelter f1f1\nnightlife ea62\nnightlight f03d\nnightlight_round ef5e\nnights_stay ea46\nno_accounts f03e\nno_adult_content f8fe\nno_backpack f237\nno_cell f1a4\nno_crash ebf0\nno_drinks f1a5\nno_encryption e641\nno_encryption_gmailerrorred f03f\nno_flash f1a6\nno_food f1a7\nno_luggage f23b\nno_meals f1d6\nno_meals_ouline f229\nno_meeting_room eb4e\nno_photography f1a8\nno_sim e0cc\nno_stroller f1af\nno_transfer f1d5\nnoise_aware ebec\nnoise_control_off ebf3\nnordic_walking e50e\nnorth f1e0\nnorth_east f1e1\nnorth_west f1e2\nnot_accessible f0fe\nnot_interested e033\nnot_listed_location e575\nnot_started f0d1\nnote e06f\nnote_add e89c\nnote_alt f040\nnotes e26c\nnotification_add e399\nnotification_important e004\nnotifications e7f4\nnotifications_active e7f7\nnotifications_none e7f5\nnotifications_off e7f6\nnotifications_on e7f7\nnotifications_paused e7f8\nnow_wallpaper e1bc\nnow_widgets e1bd\nnumbers eac7\noffline_bolt e932\noffline_pin e90a\noffline_share e9c5\noil_barrel ec15\non_device_training ebfd\nondemand_video e63a\nonline_prediction f0eb\nopacity e91c\nopen_in_browser e89d\nopen_in_full f1ce\nopen_in_new e89e\nopen_in_new_off e4f6\nopen_with e89f\nother_houses e58c\noutbond f228\noutbound e1ca\noutbox ef5f\noutdoor_grill ea47\noutgoing_mail f0d2\noutlet f1d4\noutlined_flag e16e\noutput ebbe\npadding e9c8\npages e7f9\npageview e8a0\npaid f041\npalette e40a\npallet f86a\npan_tool e925\npan_tool_alt ebb9\npanorama e40b\npanorama_fish_eye e40c\npanorama_fisheye e40c\npanorama_horizontal e40d\npanorama_horizontal_select ef60\npanorama_photosphere e9c9\npanorama_photosphere_select e9ca\npanorama_vertical e40e\npanorama_vertical_select ef61\npanorama_wide_angle e40f\npanorama_wide_angle_select ef62\nparagliding e50f\npark ea63\nparty_mode e7fa\npassword f042\npattern f043\npause e034\npause_circle e1a2\npause_circle_filled e035\npause_circle_outline e036\npause_presentation e0ea\npayment e8a1\npayments ef63\npaypal ea8d\npedal_bike eb29\npending ef64\npending_actions f1bb\npentagon eb50\npeople e7fb\npeople_alt ea21\npeople_outline e7fc\npercent eb58\nperm_camera_mic e8a2\nperm_contact_cal e8a3\nperm_contact_calendar e8a3\nperm_data_setting e8a4\nperm_device_info e8a5\nperm_device_information e8a5\nperm_identity e8a6\nperm_media e8a7\nperm_phone_msg e8a8\nperm_scan_wifi e8a9\nperson e7fd\nperson_2 f8e4\nperson_3 f8e5\nperson_4 f8e6\nperson_add e7fe\nperson_add_alt ea4d\nperson_add_alt_1 ef65\nperson_add_disabled e9cb\nperson_off e510\nperson_outline e7ff\nperson_pin e55a\nperson_pin_circle e56a\nperson_remove ef66\nperson_remove_alt_1 ef67\nperson_search f106\npersonal_injury e6da\npersonal_video e63b\npest_control f0fa\npest_control_rodent f0fd\npets e91d\nphishing ead7\nphone e0cd\nphone_android e324\nphone_bluetooth_speaker e61b\nphone_callback e649\nphone_disabled e9cc\nphone_enabled e9cd\nphone_forwarded e61c\nphone_in_talk e61d\nphone_iphone e325\nphone_locked e61e\nphone_missed e61f\nphone_paused e620\nphonelink e326\nphonelink_erase e0db\nphonelink_lock e0dc\nphonelink_off e327\nphonelink_ring e0dd\nphonelink_setup e0de\nphoto e410\nphoto_album e411\nphoto_camera e412\nphoto_camera_back ef68\nphoto_camera_front ef69\nphoto_filter e43b\nphoto_library e413\nphoto_size_select_actual e432\nphoto_size_select_large e433\nphoto_size_select_small e434\nphp eb8f\npiano e521\npiano_off e520\npicture_as_pdf e415\npicture_in_picture e8aa\npicture_in_picture_alt e911\npie_chart e6c4\npie_chart_outline f044\npie_chart_outlined e6c5\npin f045\npin_drop e55e\npin_end e767\npin_invoke e763\npinch eb38\npivot_table_chart e9ce\npix eaa3\nplace e55f\nplagiarism ea5a\nplay_arrow e037\nplay_circle e1c4\nplay_circle_fill e038\nplay_circle_filled e038\nplay_circle_outline e039\nplay_disabled ef6a\nplay_for_work e906\nplay_lesson f047\nplaylist_add e03b\nplaylist_add_check e065\nplaylist_add_check_circle e7e6\nplaylist_add_circle e7e5\nplaylist_play e05f\nplaylist_remove eb80\nplumbing f107\nplus_one e800\npodcasts f048\npoint_of_sale f17e\npolicy ea17\npoll e801\npolyline ebbb\npolymer e8ab\npool eb48\nportable_wifi_off e0ce\nportrait e416\npost_add ea20\npower e63c\npower_input e336\npower_off e646\npower_settings_new e8ac\nprecision_manufacturing f049\npregnant_woman e91e\npresent_to_all e0df\npreview f1c5\nprice_change f04a\nprice_check f04b\nprint e8ad\nprint_disabled e9cf\npriority_high e645\nprivacy_tip f0dc\nprivate_connectivity e744\nproduction_quantity_limits e1d1\npropane ec14\npropane_tank ec13\npsychology ea4a\npsychology_alt f8ea\npublic e80b\npublic_off f1ca\npublish e255\npublished_with_changes f232\npunch_clock eaa8\npush_pin f10d\nqr_code ef6b\nqr_code_2 e00a\nqr_code_scanner f206\nquery_builder e8ae\nquery_stats e4fc\nquestion_answer e8af\nquestion_mark eb8b\nqueue e03c\nqueue_music e03d\nqueue_play_next e066\nquick_contacts_dialer e0cf\nquick_contacts_mail e0d0\nquickreply ef6c\nquiz f04c\nquora ea98\nr_mobiledata f04d\nradar f04e\nradio e03e\nradio_button_checked e837\nradio_button_off e836\nradio_button_on e837\nradio_button_unchecked e836\nrailway_alert e9d1\nramen_dining ea64\nramp_left eb9c\nramp_right eb96\nrate_review e560\nraw_off f04f\nraw_on f050\nread_more ef6d\nreal_estate_agent e73a\nrebase_edit f846\nreceipt e8b0\nreceipt_long ef6e\nrecent_actors e03f\nrecommend e9d2\nrecord_voice_over e91f\nrectangle eb54\nrecycling e760\nreddit eaa0\nredeem e8b1\nredo e15a\nreduce_capacity f21c\nrefresh e5d5\nremember_me f051\nremove e15b\nremove_circle e15c\nremove_circle_outline e15d\nremove_done e9d3\nremove_from_queue e067\nremove_moderator e9d4\nremove_red_eye e417\nremove_road ebfc\nremove_shopping_cart e928\nreorder e8fe\nrepartition f8e8\nrepeat e040\nrepeat_on e9d6\nrepeat_one e041\nrepeat_one_on e9d7\nreplay e042\nreplay_10 e059\nreplay_30 e05a\nreplay_5 e05b\nreplay_circle_filled e9d8\nreply e15e\nreply_all e15f\nreport e160\nreport_gmailerrorred f052\nreport_off e170\nreport_problem e8b2\nrequest_page f22c\nrequest_quote f1b6\nreset_tv e9d9\nrestart_alt f053\nrestaurant e56c\nrestaurant_menu e561\nrestore e8b3\nrestore_from_trash e938\nrestore_page e929\nreviews f054\nrice_bowl f1f5\nring_volume e0d1\nrocket eba5\nrocket_launch eb9b\nroller_shades ec12\nroller_shades_closed ec11\nroller_skating ebcd\nroofing f201\nroom e8b4\nroom_preferences f1b8\nroom_service eb49\nrotate_90_degrees_ccw e418\nrotate_90_degrees_cw eaab\nrotate_left e419\nrotate_right e41a\nroundabout_left eb99\nroundabout_right eba3\nrounded_corner e920\nroute eacd\nrouter e328\nrowing e921\nrss_feed e0e5\nrsvp f055\nrtt e9ad\nrule f1c2\nrule_folder f1c9\nrun_circle ef6f\nrunning_with_errors e51d\nrv_hookup e642\nsafety_check ebef\nsafety_divider e1cc\nsailing e502\nsanitizer f21d\nsatellite e562\nsatellite_alt eb3a\nsave e161\nsave_alt e171\nsave_as eb60\nsaved_search ea11\nsavings e2eb\nscale eb5f\nscanner e329\nscatter_plot e268\nschedule e8b5\nschedule_send ea0a\nschema e4fd\nschool e80c\nscience ea4b\nscore e269\nscoreboard ebd0\nscreen_lock_landscape e1be\nscreen_lock_portrait e1bf\nscreen_lock_rotation e1c0\nscreen_rotation e1c1\nscreen_rotation_alt ebee\nscreen_search_desktop ef70\nscreen_share e0e2\nscreenshot f056\nscreenshot_monitor ec08\nscuba_diving ebce\nsd e9dd\nsd_card e623\nsd_card_alert f057\nsd_storage e1c2\nsearch e8b6\nsearch_off ea76\nsecurity e32a\nsecurity_update f058\nsecurity_update_good f059\nsecurity_update_warning f05a\nsegment e94b\nselect_all e162\nself_improvement ea78\nsell f05b\nsend e163\nsend_and_archive ea0c\nsend_time_extension eadb\nsend_to_mobile f05c\nsensor_door f1b5\nsensor_occupied ec10\nsensor_window f1b4\nsensors e51e\nsensors_off e51f\nsentiment_dissatisfied e811\nsentiment_neutral e812\nsentiment_satisfied e813\nsentiment_satisfied_alt e0ed\nsentiment_very_dissatisfied e814\nsentiment_very_satisfied e815\nset_meal f1ea\nsettings e8b8\nsettings_accessibility f05d\nsettings_applications e8b9\nsettings_backup_restore e8ba\nsettings_bluetooth e8bb\nsettings_brightness e8bd\nsettings_cell e8bc\nsettings_display e8bd\nsettings_ethernet e8be\nsettings_input_antenna e8bf\nsettings_input_component e8c0\nsettings_input_composite e8c1\nsettings_input_hdmi e8c2\nsettings_input_svideo e8c3\nsettings_overscan e8c4\nsettings_phone e8c5\nsettings_power e8c6\nsettings_remote e8c7\nsettings_suggest f05e\nsettings_system_daydream e1c3\nsettings_voice e8c8\nsevere_cold ebd3\nshape_line f8d3\nshare e80d\nshare_arrival_time e524\nshare_location f05f\nshelves f86e\nshield e9e0\nshield_moon eaa9\nshop e8c9\nshop_2 e19e\nshop_two e8ca\nshopify ea9d\nshopping_bag f1cc\nshopping_basket e8cb\nshopping_cart e8cc\nshopping_cart_checkout eb88\nshort_text e261\nshortcut f060\nshow_chart e6e1\nshower f061\nshuffle e043\nshuffle_on e9e1\nshutter_speed e43d\nsick f220\nsign_language ebe5\nsignal_cellular_0_bar f0a8\nsignal_cellular_4_bar e1c8\nsignal_cellular_alt e202\nsignal_cellular_alt_1_bar ebdf\nsignal_cellular_alt_2_bar ebe3\nsignal_cellular_connected_no_internet_0_bar f0ac\nsignal_cellular_connected_no_internet_4_bar e1cd\nsignal_cellular_no_sim e1ce\nsignal_cellular_nodata f062\nsignal_cellular_null e1cf\nsignal_cellular_off e1d0\nsignal_wifi_0_bar f0b0\nsignal_wifi_4_bar e1d8\nsignal_wifi_4_bar_lock e1d9\nsignal_wifi_bad f063\nsignal_wifi_connected_no_internet_4 f064\nsignal_wifi_off e1da\nsignal_wifi_statusbar_4_bar f065\nsignal_wifi_statusbar_connected_no_internet_4 f066\nsignal_wifi_statusbar_null f067\nsignpost eb91\nsim_card e32b\nsim_card_alert e624\nsim_card_download f068\nsingle_bed ea48\nsip f069\nskateboarding e511\nskip_next e044\nskip_previous e045\nsledding e512\nslideshow e41b\nslow_motion_video e068\nsmart_button f1c1\nsmart_display f06a\nsmart_screen f06b\nsmart_toy f06c\nsmartphone e32c\nsmoke_free eb4a\nsmoking_rooms eb4b\nsms e625\nsms_failed e626\nsnapchat ea6e\nsnippet_folder f1c7\nsnooze e046\nsnowboarding e513\nsnowing e80f\nsnowmobile e503\nsnowshoeing e514\nsoap f1b2\nsocial_distance e1cb\nsolar_power ec0f\nsort e164\nsort_by_alpha e053\nsos ebf7\nsoup_kitchen e7d3\nsource f1c4\nsouth f1e3\nsouth_america e7e4\nsouth_east f1e4\nsouth_west f1e5\nspa eb4c\nspace_bar e256\nspace_dashboard e66b\nspatial_audio ebeb\nspatial_audio_off ebe8\nspatial_tracking ebea\nspeaker e32d\nspeaker_group e32e\nspeaker_notes e8cd\nspeaker_notes_off e92a\nspeaker_phone e0d2\nspeed e9e4\nspellcheck e8ce\nsplitscreen f06d\nspoke e9a7\nsports ea30\nsports_bar f1f3\nsports_baseball ea51\nsports_basketball ea26\nsports_cricket ea27\nsports_esports ea28\nsports_football ea29\nsports_golf ea2a\nsports_gymnastics ebc4\nsports_handball ea33\nsports_hockey ea2b\nsports_kabaddi ea34\nsports_martial_arts eae9\nsports_mma ea2c\nsports_motorsports ea2d\nsports_rugby ea2e\nsports_score f06e\nsports_soccer ea2f\nsports_tennis ea32\nsports_volleyball ea31\nsquare eb36\nsquare_foot ea49\nssid_chart eb66\nstacked_bar_chart e9e6\nstacked_line_chart f22b\nstadium eb90\nstairs f1a9\nstar e838\nstar_border e83a\nstar_border_purple500 f099\nstar_half e839\nstar_outline f06f\nstar_purple500 f09a\nstar_rate f0ec\nstars e8d0\nstart e089\nstay_current_landscape e0d3\nstay_current_portrait e0d4\nstay_primary_landscape e0d5\nstay_primary_portrait e0d6\nsticky_note_2 f1fc\nstop e047\nstop_circle ef71\nstop_screen_share e0e3\nstorage e1db\nstore e8d1\nstore_mall_directory e563\nstorefront ea12\nstorm f070\nstraight eb95\nstraighten e41c\nstream e9e9\nstreetview e56e\nstrikethrough_s e257\nstroller f1ae\nstyle e41d\nsubdirectory_arrow_left e5d9\nsubdirectory_arrow_right e5da\nsubject e8d2\nsubscript f111\nsubscriptions e064\nsubtitles e048\nsubtitles_off ef72\nsubway e56f\nsummarize f071\nsunny e81a\nsunny_snowing e819\nsuperscript f112\nsupervised_user_circle e939\nsupervisor_account e8d3\nsupport ef73\nsupport_agent f0e2\nsurfing e515\nsurround_sound e049\nswap_calls e0d7\nswap_horiz e8d4\nswap_horizontal_circle e933\nswap_vert e8d5\nswap_vert_circle e8d6\nswap_vertical_circle e8d6\nswipe e9ec\nswipe_down eb53\nswipe_down_alt eb30\nswipe_left eb59\nswipe_left_alt eb33\nswipe_right eb52\nswipe_right_alt eb56\nswipe_up eb2e\nswipe_up_alt eb35\nswipe_vertical eb51\nswitch_access_shortcut e7e1\nswitch_access_shortcut_add e7e2\nswitch_account e9ed\nswitch_camera e41e\nswitch_left f1d1\nswitch_right f1d2\nswitch_video e41f\nsynagogue eab0\nsync e627\nsync_alt ea18\nsync_disabled e628\nsync_lock eaee\nsync_problem e629\nsystem_security_update f072\nsystem_security_update_good f073\nsystem_security_update_warning f074\nsystem_update e62a\nsystem_update_alt e8d7\nsystem_update_tv e8d7\ntab e8d8\ntab_unselected e8d9\ntable_bar ead2\ntable_chart e265\ntable_restaurant eac6\ntable_rows f101\ntable_view f1be\ntablet e32f\ntablet_android e330\ntablet_mac e331\ntag e9ef\ntag_faces e420\ntakeout_dining ea74\ntap_and_play e62b\ntapas f1e9\ntask f075\ntask_alt e2e6\ntaxi_alert ef74\ntelegram ea6b\ntemple_buddhist eab3\ntemple_hindu eaaf\nterminal eb8e\nterrain e564\ntext_decrease eadd\ntext_fields e262\ntext_format e165\ntext_increase eae2\ntext_rotate_up e93a\ntext_rotate_vertical e93b\ntext_rotation_angledown e93c\ntext_rotation_angleup e93d\ntext_rotation_down e93e\ntext_rotation_none e93f\ntext_snippet f1c6\ntextsms e0d8\ntexture e421\ntheater_comedy ea66\ntheaters e8da\nthermostat f076\nthermostat_auto f077\nthumb_down e8db\nthumb_down_alt e816\nthumb_down_off_alt e9f2\nthumb_up e8dc\nthumb_up_alt e817\nthumb_up_off_alt e9f3\nthumbs_up_down e8dd\nthunderstorm ebdb\ntiktok ea7e\ntime_to_leave e62c\ntimelapse e422\ntimeline e922\ntimer e425\ntimer_10 e423\ntimer_10_select f07a\ntimer_3 e424\ntimer_3_select f07b\ntimer_off e426\ntips_and_updates e79a\ntire_repair ebc8\ntitle e264\ntoc e8de\ntoday e8df\ntoggle_off e9f5\ntoggle_on e9f6\ntoken ea25\ntoll e8e0\ntonality e427\ntopic f1c8\ntornado e199\ntouch_app e913\ntour ef75\ntoys e332\ntrack_changes e8e1\ntraffic e565\ntrain e570\ntram e571\ntranscribe f8ec\ntransfer_within_a_station e572\ntransform e428\ntransgender e58d\ntransit_enterexit e579\ntranslate e8e2\ntravel_explore e2db\ntrending_down e8e3\ntrending_flat e8e4\ntrending_neutral e8e4\ntrending_up e8e5\ntrip_origin e57b\ntrolley f86b\ntroubleshoot e1d2\ntry f07c\ntsunami ebd8\ntty f1aa\ntune e429\ntungsten f07d\nturn_left eba6\nturn_right ebab\nturn_sharp_left eba7\nturn_sharp_right ebaa\nturn_slight_left eba4\nturn_slight_right eb9a\nturned_in e8e6\nturned_in_not e8e7\ntv e333\ntv_off e647\ntwo_wheeler e9f9\ntype_specimen f8f0\nu_turn_left eba1\nu_turn_right eba2\numbrella f1ad\nunarchive e169\nundo e166\nunfold_less e5d6\nunfold_less_double f8cf\nunfold_more e5d7\nunfold_more_double f8d0\nunpublished f236\nunsubscribe e0eb\nupcoming f07e\nupdate e923\nupdate_disabled e075\nupgrade f0fb\nupload f09b\nupload_file e9fc\nusb e1e0\nusb_off e4fa\nvaccines e138\nvape_free ebc6\nvaping_rooms ebcf\nverified ef76\nverified_user e8e8\nvertical_align_bottom e258\nvertical_align_center e259\nvertical_align_top e25a\nvertical_distribute e076\nvertical_shades ec0e\nvertical_shades_closed ec0d\nvertical_split e949\nvibration e62d\nvideo_call e070\nvideo_camera_back f07f\nvideo_camera_front f080\nvideo_chat f8a0\nvideo_collection e04a\nvideo_file eb87\nvideo_label e071\nvideo_library e04a\nvideo_settings ea75\nvideo_stable f081\nvideocam e04b\nvideocam_off e04c\nvideogame_asset e338\nvideogame_asset_off e500\nview_agenda e8e9\nview_array e8ea\nview_carousel e8eb\nview_column e8ec\nview_comfortable e42a\nview_comfy e42a\nview_comfy_alt eb73\nview_compact e42b\nview_compact_alt eb74\nview_cozy eb75\nview_day e8ed\nview_headline e8ee\nview_in_ar e9fe\nview_kanban eb7f\nview_list e8ef\nview_module e8f0\nview_quilt e8f1\nview_sidebar f114\nview_stream e8f2\nview_timeline eb85\nview_week e8f3\nvignette e435\nvilla e586\nvisibility e8f4\nvisibility_off e8f5\nvoice_chat e62e\nvoice_over_off e94a\nvoicemail e0d9\nvolcano ebda\nvolume_down e04d\nvolume_down_alt e79c\nvolume_mute e04e\nvolume_off e04f\nvolume_up e050\nvolunteer_activism ea70\nvpn_key e0da\nvpn_key_off eb7a\nvpn_lock e62f\nvrpano f082\nwallet f8ff\nwallet_giftcard e8f6\nwallet_membership e8f7\nwallet_travel e8f8\nwallpaper e1bc\nwarehouse ebb8\nwarning e002\nwarning_amber f083\nwash f1b1\nwatch e334\nwatch_later e924\nwatch_off eae3\nwater f084\nwater_damage f203\nwater_drop e798\nwaterfall_chart ea00\nwaves e176\nwaving_hand e766\nwb_auto e42c\nwb_cloudy e42d\nwb_incandescent e42e\nwb_iridescent e436\nwb_shade ea01\nwb_sunny e430\nwb_twighlight ea02\nwb_twilight e1c6\nwc e63d\nweb e051\nweb_asset e069\nweb_asset_off e4f7\nweb_stories e595\nwebhook eb92\nwechat ea81\nweekend e16b\nwest f1e6\nwhatshot e80e\nwheelchair_pickup f1ab\nwhere_to_vote e177\nwidgets e1bd\nwidth_full f8f5\nwidth_normal f8f6\nwidth_wide f8f7\nwifi e63e\nwifi_1_bar e4ca\nwifi_2_bar e4d9\nwifi_calling ef77\nwifi_calling_3 f085\nwifi_channel eb6a\nwifi_find eb31\nwifi_lock e1e1\nwifi_off e648\nwifi_password eb6b\nwifi_protected_setup f0fc\nwifi_tethering e1e2\nwifi_tethering_error ead9\nwifi_tethering_error_rounded f086\nwifi_tethering_off f087\nwind_power ec0c\nwindow f088\nwine_bar f1e8\nwoman e13e\nwoman_2 f8e7\nwoo_commerce ea6d\nwordpress ea9f\nwork e8f9\nwork_history ec09\nwork_off e942\nwork_outline e943\nworkspace_premium e7af\nworkspaces e1a0\nworkspaces_filled ea0d\nworkspaces_outline ea0f\nwrap_text e25b\nwrong_location ef78\nwysiwyg f1c3\nyard f089\nyoutube_searched_for e8fa\nzoom_in e8ff\nzoom_in_map eb2d\nzoom_out e900\nzoom_out_map e56b";static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();var UC=function(r){return r.images="images",r.widgets="widgets",r}(UC||{}),bp=ce(5266);let Q0=(()=>{class r{http;endPointConfig=bp.C.getURL();constructor(t){this.http=t}getResources(t){let i=new Ia.WM({"Content-Type":"application/json"});return this.http.get(this.endPointConfig+"/api/resources/"+t,{headers:i,params:{type:t}})}removeWidget(t){let i=new Ia.WM({"Content-Type":"application/json"});return this.http.post(this.endPointConfig+"/api/resources/removeWidget",{path:t.path},{headers:i})}generateImage(t){const n={responseType:"text",headers:new Ia.WM({"Content-Type":"application/json"}),params:{param:JSON.stringify(t)}};return this.http.get(this.endPointConfig+"/api/resources/generateImage",n)}isVideo(t){return[".mp4",".webm",".ogg"].some(n=>t.toLowerCase().endsWith(n))}static \u0275fac=function(i){return new(i||r)(e.LFG(Ia.eN))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var zC=ce(7328);function FV(r,a){if(1&r&&(e.TgZ(0,"div",4)(1,"mat-list-option",5),e._uU(2),e.qZA(),e.TgZ(3,"mat-list-option",5),e._uU(4),e.qZA(),e.TgZ(5,"mat-list-option",5),e._uU(6),e.qZA(),e.TgZ(7,"mat-list-option",5),e._uU(8),e.qZA(),e.TgZ(9,"mat-list-option",5),e._uU(10),e.qZA(),e.TgZ(11,"mat-list-option",5),e._uU(12),e.qZA(),e.TgZ(13,"mat-list-option",5),e._uU(14),e.qZA(),e.TgZ(15,"mat-list-option",5),e._uU(16),e.qZA()()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("selected",t.bits[8].selected)("value",t.bits[8]),e.xp6(1),e.Oqu(t.bits[8].label),e.xp6(1),e.Q6J("selected",t.bits[9].selected)("value",t.bits[9]),e.xp6(1),e.Oqu(t.bits[9].label),e.xp6(1),e.Q6J("selected",t.bits[10].selected)("value",t.bits[10]),e.xp6(1),e.Oqu(t.bits[10].label),e.xp6(1),e.Q6J("selected",t.bits[11].selected)("value",t.bits[11]),e.xp6(1),e.Oqu(t.bits[11].label),e.xp6(1),e.Q6J("selected",t.bits[12].selected)("value",t.bits[12]),e.xp6(1),e.Oqu(t.bits[12].label),e.xp6(1),e.Q6J("selected",t.bits[13].selected)("value",t.bits[13]),e.xp6(1),e.Oqu(t.bits[13].label),e.xp6(1),e.Q6J("selected",t.bits[14].selected)("value",t.bits[14]),e.xp6(1),e.Oqu(t.bits[14].label),e.xp6(1),e.Q6J("selected",t.bits[15].selected)("value",t.bits[15]),e.xp6(1),e.Oqu(t.bits[15].label)}}function OV(r,a){if(1&r&&(e.TgZ(0,"div",4)(1,"mat-list-option",5),e._uU(2),e.qZA(),e.TgZ(3,"mat-list-option",5),e._uU(4),e.qZA(),e.TgZ(5,"mat-list-option",5),e._uU(6),e.qZA(),e.TgZ(7,"mat-list-option",5),e._uU(8),e.qZA(),e.TgZ(9,"mat-list-option",5),e._uU(10),e.qZA(),e.TgZ(11,"mat-list-option",5),e._uU(12),e.qZA(),e.TgZ(13,"mat-list-option",5),e._uU(14),e.qZA(),e.TgZ(15,"mat-list-option",5),e._uU(16),e.qZA()()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("selected",t.bits[16].selected)("value",t.bits[16]),e.xp6(1),e.Oqu(t.bits[16].label),e.xp6(1),e.Q6J("selected",t.bits[17].selected)("value",t.bits[17]),e.xp6(1),e.Oqu(t.bits[17].label),e.xp6(1),e.Q6J("selected",t.bits[18].selected)("value",t.bits[18]),e.xp6(1),e.Oqu(t.bits[18].label),e.xp6(1),e.Q6J("selected",t.bits[19].selected)("value",t.bits[19]),e.xp6(1),e.Oqu(t.bits[19].label),e.xp6(1),e.Q6J("selected",t.bits[20].selected)("value",t.bits[20]),e.xp6(1),e.Oqu(t.bits[20].label),e.xp6(1),e.Q6J("selected",t.bits[21].selected)("value",t.bits[21]),e.xp6(1),e.Oqu(t.bits[21].label),e.xp6(1),e.Q6J("selected",t.bits[22].selected)("value",t.bits[22]),e.xp6(1),e.Oqu(t.bits[22].label),e.xp6(1),e.Q6J("selected",t.bits[23].selected)("value",t.bits[23]),e.xp6(1),e.Oqu(t.bits[23].label)}}function LV(r,a){if(1&r&&(e.TgZ(0,"div",4)(1,"mat-list-option",5),e._uU(2),e.qZA(),e.TgZ(3,"mat-list-option",5),e._uU(4),e.qZA(),e.TgZ(5,"mat-list-option",5),e._uU(6),e.qZA(),e.TgZ(7,"mat-list-option",5),e._uU(8),e.qZA(),e.TgZ(9,"mat-list-option",5),e._uU(10),e.qZA(),e.TgZ(11,"mat-list-option",5),e._uU(12),e.qZA(),e.TgZ(13,"mat-list-option",5),e._uU(14),e.qZA(),e.TgZ(15,"mat-list-option",5),e._uU(16),e.qZA()()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("selected",t.bits[24].selected)("value",t.bits[24]),e.xp6(1),e.Oqu(t.bits[24].label),e.xp6(1),e.Q6J("selected",t.bits[25].selected)("value",t.bits[25]),e.xp6(1),e.Oqu(t.bits[25].label),e.xp6(1),e.Q6J("selected",t.bits[26].selected)("value",t.bits[26]),e.xp6(1),e.Oqu(t.bits[26].label),e.xp6(1),e.Q6J("selected",t.bits[27].selected)("value",t.bits[27]),e.xp6(1),e.Oqu(t.bits[27].label),e.xp6(1),e.Q6J("selected",t.bits[28].selected)("value",t.bits[28]),e.xp6(1),e.Oqu(t.bits[28].label),e.xp6(1),e.Q6J("selected",t.bits[29].selected)("value",t.bits[29]),e.xp6(1),e.Oqu(t.bits[29].label),e.xp6(1),e.Q6J("selected",t.bits[30].selected)("value",t.bits[30]),e.xp6(1),e.Oqu(t.bits[30].label),e.xp6(1),e.Q6J("selected",t.bits[31].selected)("value",t.bits[31]),e.xp6(1),e.Oqu(t.bits[31].label)}}let RV=(()=>{class r{dialogRef;data;size=32;bits=[];selected=[];constructor(t,i){this.dialogRef=t,this.data=i}ngOnInit(){this.size=this.data.size||32;for(let t=0;t8),e.xp6(1),e.Q6J("ngIf",n.size>16),e.xp6(1),e.Q6J("ngIf",n.size>24),e.xp6(3),e.Oqu(e.lcZ(31,33,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(34,35,"dlg.ok")))},dependencies:[l.O5,et,$i,Yn,Qr,Kr,Ir,Zn,Sf,Z_,zr,Ni.X$],styles:[".bitmask-item[_ngcontent-%COMP%]{font-size:13px;height:26px!important;cursor:pointer}"]})}return r})();function YV(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"input",13),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.variableValue=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChanged())}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Udp("background",t.variableValue),e.Q6J("colorPicker",t.variableValue)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")}}function NV(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"input",14),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.variableValue=n)})("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChanged())}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngModel",t.variableValue)}}function UV(r,a){if(1&r&&(e.TgZ(0,"div",9)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.ynx(4,10),e.YNc(5,YV,2,12,"ng-container",11),e.YNc(6,NV,2,1,"ng-container",12),e.BQk(),e.qZA()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,t.variableLabel)),e.xp6(2),e.Q6J("ngSwitch",t.withStaticType),e.xp6(1),e.Q6J("ngSwitchCase","color")}}function zV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"span",16),e._uU(2),e.ALo(3,"translate"),e.qZA(),e._UZ(4,"div",17),e.TgZ(5,"button",18),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onBindTag())}),e.TgZ(6,"mat-icon"),e._uU(7,"link"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,1,t.tagLabel))}}function HV(r,a){if(1&r&&(e.TgZ(0,"mat-option",21)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(2),e.Oqu(t.name)}}function GV(r,a){if(1&r&&(e.TgZ(0,"mat-optgroup",19),e.YNc(1,HV,3,2,"mat-option",20),e.qZA()),2&r){const t=a.$implicit;e.Q6J("label",t.name),e.xp6(1),e.Q6J("ngForOf",t.tags)}}function ZV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",22)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",23),e._UZ(5,"input",24),e.TgZ(6,"mat-icon",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onSetBitmask())}),e._uU(7,"arrow_drop_down"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"gauges.property-mask")),e.xp6(3),e.s9C("value",t.getVariableMask()),e.Q6J("disabled",!0)}}const JV=(r,a)=>{const t=a?.toLowerCase();return r.filter(i=>i.name?.toLowerCase().includes(t))};let $u=(()=>{class r{dialog;projectService;data;variableId;value;allowManualEdit=!1;variableValue;variableLabel="gauges.property-variable-value";withStaticValue=!0;withStaticType=null;withBitmask=!1;tagLabel="gauges.property-tag-label";tagTitle="";bitmask;readonly=!1;placeholders=[];devicesOnly=!1;onchange=new e.vpe;valueChange=new e.vpe;manualEdit=!1;defaultColor=ii.cQ.defaultColor;variableList=[];selectedTag;devices=[];devicesTags$;tagFilter=new li;constructor(t,i){this.dialog=t,this.projectService=i}ngOnInit(){if(this.loadDevicesTags(),this.devicesTags$=this.tagFilter.valueChanges.pipe(na(""),(0,f.U)(t=>this._filterGroup(t||""))),this.value?(this.variableId=this.value.variableId,this.variableValue=this.value.variableValue):this.value={variableId:this.variableId},!this.devicesOnly){let t=ii.cQ.clone(Yi.Jo);this.placeholders?.forEach(i=>{t.tags.push({id:i.variableId,name:i.variableId,device:"@"})}),this.variableId?.startsWith(Yi.Jo.id)&&!t.tags.find(i=>i.id===this.variableId)&&t.tags.push({id:this.variableId,name:this.variableId,device:"@"}),this.devices.unshift(t)}this._setSelectedTag()}_tagToVariableName(t){let i=t.label||t.name;return i&&t.address&&i!==t.address&&(i=i+" - "+t.address),i}_filterGroup(t){return t?this.devices.map(i=>({name:i.name,tags:JV(i.tags,t?.name||t)})).filter(i=>i.tags.length>0):this.devices}_getDeviceTag(t){for(let i=0;io.id===t);if(n)return n}return null}_setSelectedTag(){const t=this._getDeviceTag(this.variableId);this.tagFilter.patchValue(t)}displayFn(t){return t?.name}onDeviceTagSelected(t){this.variableId=t.id,this.onChanged()}getDeviceName(){let t=Yi.ef.getDeviceFromTagId(this.data.devices||{},this.variableId);return t?t.name:""}getVariableName(){let t=Yi.ef.getTagFromTagId(this.data.devices||{},this.variableId);if(t){let i=t.label||t.name;return i&&t.address&&i!==t.address?i+" - "+t.address:t.address?t.address:i}return""}getVariableMask(){return this.bitmask?`bit ${ii.cQ.findBitPosition(this.bitmask).toString()}`:""}onChanged(){if(this.tagFilter.value?.startsWith&&this.tagFilter.value.startsWith(Yi.Jo.id))this.value.variableId=this.tagFilter.value,this.value.variableRaw=null;else if(this.tagFilter.value?.id?.startsWith&&this.tagFilter.value.id.startsWith(Yi.Jo.id))this.value.variableId=this.tagFilter.value.id,this.value.variableRaw=null;else{let t=Yi.ef.getTagFromTagId(this.data.devices||{},this.variableId);t?(this.value.variableId=t.id,this.value.variableRaw=t):(this.value.variableId=null,this.value.variableRaw=null)}this.withBitmask&&(this.value.bitmask=this.bitmask),this.value.variableValue=this.variableValue,this.onchange.emit(this.value),this.valueChange.emit(this.value)}onBindTag(){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:this.variableId}}).afterClosed().subscribe(i=>{i&&(i.deviceName&&this.loadDevicesTags(i.deviceName),this.variableId=i.variableId,this.onChanged(),this._setSelectedTag())})}setVariable(t){this.variableId=t?t.id:null,this.onChanged()}onSetBitmask(){this.dialog.open(RV,{position:{top:"60px"},data:{bitmask:this.bitmask}}).afterClosed().subscribe(i=>{i&&(this.bitmask=i.bitmask,this.onChanged())})}loadDevicesTags(t){const i=Object.values(this.projectService.getDevices()).find(n=>n.name===t);Object.values(this.data.devices||{}).forEach(n=>{let o={name:n.name,tags:[]},s=n.tags;i&&i.name===t&&(s=i.tags),Object.values(s).forEach(c=>{const g={id:c.id,name:this._tagToVariableName(c),device:n.name};o.tags.push(g)}),this.devices.push(o)})}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-variable"]],inputs:{data:"data",variableId:"variableId",value:"value",allowManualEdit:"allowManualEdit",variableValue:"variableValue",variableLabel:"variableLabel",withStaticValue:"withStaticValue",withStaticType:"withStaticType",withBitmask:"withBitmask",tagLabel:"tagLabel",tagTitle:"tagTitle",bitmask:"bitmask",readonly:"readonly",placeholders:"placeholders",devicesOnly:"devicesOnly"},outputs:{onchange:"onchange",valueChange:"valueChange"},decls:14,vars:17,consts:[[1,"container"],["class","my-form-field value",4,"ngIf"],["class","my-form-field link",4,"ngIf"],[1,"my-form-field","input"],["matInput","","type","text",1,"variable-input",3,"title","placeholder","formControl","matAutocomplete","readonly","input"],[3,"displayWith","optionSelected"],["autoDevices","matAutocomplete"],["class","group-label",3,"label",4,"ngFor","ngForOf"],["class","my-form-field bitmask",4,"ngIf"],[1,"my-form-field","value"],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[1,"input-color",2,"width","80px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],["type","text",2,"width","80px",3,"ngModel","ngModelChange","change"],[1,"my-form-field","link"],[1,"span-link"],[1,"tag-link"],["mat-icon-button","",3,"click"],[1,"group-label",3,"label"],["class","option-label",3,"value",4,"ngFor","ngForOf"],[1,"option-label",3,"value"],[1,"my-form-field","bitmask"],[1,"my-form-field-bitmask"],["readonly","true",3,"value","disabled"],[1,"header-icon",3,"click"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0),e.YNc(1,UV,7,5,"div",1),e.YNc(2,zV,8,3,"div",2),e.TgZ(3,"div",3)(4,"span"),e._uU(5),e.qZA(),e.TgZ(6,"input",4),e.NdJ("input",function(){return n.onChanged()}),e.ALo(7,"translate"),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"mat-autocomplete",5,6),e.NdJ("optionSelected",function(s){return n.onDeviceTagSelected(s.option.value)}),e.YNc(11,GV,2,2,"mat-optgroup",7),e.ALo(12,"async"),e.qZA()(),e.YNc(13,ZV,8,5,"div",8),e.qZA()),2&i){const o=e.MAs(10);e.xp6(1),e.Q6J("ngIf",n.withStaticValue||n.withStaticType),e.xp6(1),e.Q6J("ngIf",!n.readonly),e.xp6(3),e.Oqu(n.getDeviceName()),e.xp6(1),e.s9C("title",e.lcZ(7,11,n.tagTitle)),e.s9C("placeholder",e.lcZ(8,13,n.tagTitle)),e.Q6J("formControl",n.tagFilter)("matAutocomplete",o)("readonly",n.readonly),e.xp6(3),e.Q6J("displayWith",n.displayFn),e.xp6(2),e.Q6J("ngForOf",e.lcZ(12,15,n.devicesTags$)),e.xp6(2),e.Q6J("ngIf",n.withBitmask)}},dependencies:[l.sg,l.O5,l.RF,l.n9,l.ED,I,et,$i,ca,h_,Fm,Nr,Nu,Yn,Zn,qd,$A,l.Ov,Ni.X$],styles:[".container[_ngcontent-%COMP%]{display:block;margin-bottom:5px}.container[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{max-width:100px;margin-right:18px}.container[_ngcontent-%COMP%] .link[_ngcontent-%COMP%]{display:inline-block;vertical-align:bottom}.container[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .span-link[_ngcontent-%COMP%]{text-overflow:clip;white-space:nowrap;width:28px}.container[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{line-height:28px;height:28px;width:28px;vertical-align:middle}.container[_ngcontent-%COMP%] .input[_ngcontent-%COMP%]{margin-left:0} .group-label span{line-height:28px;height:28px} .option-label{line-height:28px!important;height:28px!important} .option-label span{font-size:13px} .variable-input{font-size:13px;min-width:450px;vertical-align:unset!important;width:unset}.tag-link[_ngcontent-%COMP%]{position:absolute;bottom:0;right:0;height:28px;width:28px;border-radius:2px 0 0 2px;background-color:var(--formInputBackground);color:var(--formInputColor)}.bitmask[_ngcontent-%COMP%]{vertical-align:bottom;margin-left:7px}"]})}return r})();function jV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",5)(1,"div",6)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",7),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.range.min=n)}),e.qZA()(),e.TgZ(6,"div",8)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",7),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.range.max=n)}),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"gui.range-number-min")),e.xp6(2),e.Q6J("ngModel",t.range.min),e.xp6(3),e.Oqu(e.lcZ(9,6,"gui.range-number-max")),e.xp6(2),e.Q6J("ngModel",t.range.max)}}function VV(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",5)(1,"div",9)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",10),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.booleanValue=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onBooleanChanged())}),e.TgZ(6,"mat-option",11),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"mat-option",11),e._uU(10),e.ALo(11,"translate"),e.qZA()()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,6,"gui.range-number-boolean")),e.xp6(2),e.Q6J("value",t.booleanValue),e.xp6(1),e.Q6J("value",1),e.xp6(1),e.Oqu(e.lcZ(8,8,"gui.range-number-true")),e.xp6(2),e.Q6J("value",0),e.xp6(1),e.Oqu(e.lcZ(11,10,"gui.range-number-false"))}}function WV(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1,"[ - ]"),e.qZA())}function KV(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1,"1/0"),e.qZA())}let wS=(()=>{class r{range={min:0,max:100};isNumber=!0;booleanValue=1;oldRange={min:0,max:100};constructor(){}ngOnInit(){this.saveOld(this.range)}onBooleanChanged(){this.range.min=this.booleanValue,this.range.max=this.booleanValue}onTypeChanged(){this.isNumber?(this.range.min=this.oldRange.min,this.range.max=this.oldRange.max):(this.booleanValue=this.range.min===this.range.max&&this.range.min>=1?1:0,this.onBooleanChanged())}saveOld(t){this.oldRange.min=t.min,this.oldRange.max=t.max}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["range-number"]],inputs:{range:"range"},decls:8,vars:7,consts:[[1,"range-container"],["class","range-type",4,"ngIf"],[1,"range-type-switch"],["mat-icon-button","",3,"matTooltip","click"],[4,"ngIf"],[1,"range-type"],[1,"my-form-field"],["numberOnly","","type","number",2,"width","70px",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"padding-left","10px"],[1,"my-form-field","boolean-selection"],[3,"value","valueChange","selectionChange"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,jV,11,8,"div",1),e.YNc(2,VV,12,12,"div",1),e.TgZ(3,"div",2)(4,"button",3),e.NdJ("click",function(){return n.isNumber=!n.isNumber,n.onTypeChanged()}),e.ALo(5,"translate"),e.YNc(6,WV,2,0,"span",4),e.YNc(7,KV,2,0,"span",4),e.qZA()()()),2&i&&(e.xp6(1),e.Q6J("ngIf",n.isNumber),e.xp6(1),e.Q6J("ngIf",!n.isNumber),e.xp6(2),e.s9C("matTooltip",e.lcZ(5,5,"gui.range-number-switcher")),e.xp6(2),e.Q6J("ngIf",!n.isNumber),e.xp6(1),e.Q6J("ngIf",n.isNumber))},dependencies:[l.O5,I,qn,et,$i,Nr,Yn,fo,Cs,fs,Ni.X$],styles:[".range-container[_ngcontent-%COMP%]{width:200px}.range-type[_ngcontent-%COMP%]{display:inline-block}.range-type-switch[_ngcontent-%COMP%]{float:right}.range-type-switch[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-top:11px;line-height:30px;height:30px;width:30px}.boolean-selection[_ngcontent-%COMP%]{width:157px}"]})}return r})();const qV=["unit"],XV=["digits"];function $V(r,a){if(1&r&&(e.TgZ(0,"div",10),e._UZ(1,"range-number",11),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("range",t)}}function eW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",12)(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",14),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.color=n)}),e.qZA()(),e.TgZ(6,"div",15)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",14),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.stroke=n)}),e.qZA()()()}if(2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,30,"gauges.property-input-color")),e.xp6(2),e.Udp("background",t.color),e.Q6J("colorPicker",t.color)("value",t.color)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex"),e.xp6(3),e.Oqu(e.lcZ(9,32,"gauges.property-input-stroke")),e.xp6(2),e.Udp("background",t.stroke),e.Q6J("colorPicker",t.stroke)("value",t.stroke)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex")}}function tW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div"),e.YNc(1,$V,2,1,"div",6),e.YNc(2,eW,11,34,"div",7),e.TgZ(3,"div",8)(4,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw();return e.KtG(o.onRemoveInput(n))}),e.TgZ(5,"mat-icon"),e._uU(6,"clear"),e.qZA()()()()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",t.slideView),e.xp6(1),e.Q6J("ngIf",t.isWithRangeColor())}}function iW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",16)(2,"div",13)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"input",17),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.min=n)}),e.qZA()(),e.TgZ(7,"div",18)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",17),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.max=n)}),e.qZA()(),e._UZ(12,"div",19),e.TgZ(13,"div",20)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",21),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.color=n)}),e.qZA()()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,17,"gauges.property-input-min")),e.xp6(2),e.Q6J("ngModel",t.min),e.xp6(3),e.Oqu(e.lcZ(10,19,"gauges.property-input-max")),e.xp6(2),e.Q6J("ngModel",t.max),e.xp6(4),e.Oqu(e.lcZ(16,21,"gauges.property-input-color")),e.xp6(2),e.Udp("background",i.getColor(t)),e.Q6J("colorPicker",t.color)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")}}function nW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",22)(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",23),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.min=n)}),e.qZA()(),e.TgZ(6,"div",24),e._uU(7,"-"),e.qZA(),e.TgZ(8,"div",13)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"input",25),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.text=n)}),e.qZA()(),e.TgZ(13,"div",26)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",21),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.color=n)}),e.qZA()(),e.TgZ(18,"div",15)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"input",14),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.stroke=n)}),e.qZA()(),e.TgZ(23,"div",8)(24,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw();return e.KtG(o.onRemoveInput(n))}),e.TgZ(25,"mat-icon"),e._uU(26,"clear"),e.qZA()()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,32,"gauges.property-input-value")),e.xp6(2),e.Q6J("ngModel",t.min),e.xp6(5),e.Oqu(e.lcZ(11,34,"gauges.property-input-label")),e.xp6(2),e.Q6J("ngModel",t.text),e.xp6(3),e.Oqu(e.lcZ(16,36,"gauges.property-input-color")),e.xp6(2),e.Udp("background",i.getColor(t)),e.Q6J("colorPicker",t.color)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always"),e.xp6(3),e.Oqu(e.lcZ(21,38,"gauges.property-input-stroke")),e.xp6(2),e.Udp("background",t.stroke),e.Q6J("colorPicker",t.stroke)("value",t.stroke)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex")}}function rW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",27)(1,"flex-variable",28,29),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onUnitChanged(o,n))}),e.qZA(),e.TgZ(3,"flex-variable",28,30),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onFormatDigitChanged(o,n))}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("variableId",t.textId)("variableValue",t.text)("variableLabel","gauges.property-input-unit"),e.xp6(2),e.Q6J("data",i.data)("variableId",t.fractionDigitsId)("variableValue",t.fractionDigits)("variableLabel","gauges.property-format-digits")}}function oW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"p"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",16)(5,"div",13)(6,"span"),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"input",17),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.min=n)}),e.qZA()(),e.TgZ(10,"div",18)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"input",17),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.max=n)}),e.qZA()()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,5,"gauges.property-input-range")),e.xp6(5),e.Oqu(e.lcZ(8,7,"gauges.property-input-min")),e.xp6(2),e.Q6J("ngModel",t.min),e.xp6(3),e.Oqu(e.lcZ(13,9,"gauges.property-input-max")),e.xp6(2),e.Q6J("ngModel",t.max)}}function aW(r,a){if(1&r&&(e.TgZ(0,"div",2),e.YNc(1,tW,7,2,"div",3),e.YNc(2,iW,18,23,"div",3),e.YNc(3,nW,27,40,"div",4),e.YNc(4,rW,5,8,"div",5),e.YNc(5,oW,15,11,"div",3),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.isWithRange()),e.xp6(1),e.Q6J("ngIf",t.isMinMax()),e.xp6(1),e.Q6J("ngIf",t.isWithStep()),e.xp6(1),e.Q6J("ngIf",t.isOutputCtrl()),e.xp6(1),e.Q6J("ngIf",t.isInputMinMax())}}let sW=(()=>{class r{data;property;ranges;type;propertyType;default;varunit;vardigits;tag=null;withLabel=!0;withValue=!0;slideView=!0;defaultColor=ii.cQ.defaultColor;valueresult="123";constructor(){}ngOnInit(){if(this.ranges)this.isMinMax()?this.ranges.length>0&&2===this.ranges[0].style.length&&(this.withLabel=this.ranges[0].style[0],this.withValue=this.ranges[0].style[1]):this.isOutputCtrl();else{this.ranges=[];let t=new Tt.tI;this.isWithStep()?(t.type=this.type,t.min=1,t.max=1):this.isMinMax()?(t.type=this.type,t.min=0,t.max=100,t.style=[!0,!0]):(t.type=this.type,t.min=20,t.max=80),this.addInput(t)}this.ranges.forEach(t=>{t.color||(t.color=""),t.stroke||(t.stroke="")})}onAddInput(){let t=new Tt.tI;t.type=this.type,t.color="",t.stroke="",this.addInput(t)}onRemoveInput(t){this.ranges.splice(t,1)}onRangeViewToggle(t){this.slideView=t}getRanges(){let t=[];return this.ranges.forEach(i=>{i.type=this.propertyType,this.isWithStep()?(i.max=i.min,null!==i.min&&null!==i.max&&t.push(i)):this.isMinMax()?(i.style=[this.withLabel,this.withValue],t.push(i)):!ii.cQ.isNullOrUndefined(i.min)&&!ii.cQ.isNullOrUndefined(i.max)&&t.push(i)}),t}getColor(t){return t&&t.color?t.color:this.default&&this.default.color?this.default.color:void 0}changeTag(t){if(this.tag=t,this.isOutputCtrl()){let i=Yi.ef.getDeviceFromTagId(this.data.devices,t?.id);i&&(this.varunit&&this.varunit.setVariable(Yi.ef.getTagFromTagAddress(i,t.address+"OpcEngUnit")),this.vardigits&&this.vardigits.setVariable(Yi.ef.getTagFromTagAddress(i,t.address+"DecimalPlaces")))}}isWithRange(){return this.propertyType===Xd.range}isMinMax(){return this.propertyType===Xd.minmax}isWithRangeColor(){return this.propertyType===Xd.range}isWithStep(){return this.propertyType===Xd.step}isOutputCtrl(){return this.propertyType===Xd.output}isInputMinMax(){return 16===this.data.dlgType}onFormatDigitChanged(t,i){t.fractionDigitsId=i.variableId,t.fractionDigits=i.variableValue}onUnitChanged(t,i){t.textId=i.variableId,t.text=i.variableValue}addInput(t){this.ranges.push(t)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-input"]],viewQuery:function(i,n){if(1&i&&(e.Gf(qV,5),e.Gf(XV,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.varunit=o.first),e.iGM(o=e.CRH())&&(n.vardigits=o.first)}},inputs:{data:"data",property:"property",ranges:"ranges",type:"type",propertyType:"propertyType",default:"default"},decls:2,vars:1,consts:[[1,"grid-conta"],["class","item",4,"ngFor","ngForOf"],[1,"item"],[4,"ngIf"],["class","item-step",4,"ngIf"],["class","item-unit",4,"ngIf"],["class","item-range",4,"ngIf"],["style","display: inline-block;",4,"ngIf"],[1,"item-remove"],["mat-icon-button","",1,"remove",3,"click"],[1,"item-range"],[3,"range"],[2,"display","inline-block"],[1,"my-form-field"],[1,"input-color",2,"width","70px",3,"colorPicker","value","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","cpAlphaChannel","cpOutputFormat","colorPickerChange"],[1,"my-form-field",2,"margin-left","10px"],[1,"item-minmax"],["numberOnly","","type","text",2,"width","80px",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"padding-left","20px"],[1,"my-form-field",2,"padding-left","30px"],[1,"my-form-field",2,"width","60px","margin-left","20px"],[1,"input-color",2,"width","70px",3,"colorPicker","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","cpAlphaChannel","colorPickerChange"],[1,"item-step"],["numberOnly","","type","text",2,"width","100px",3,"ngModel","ngModelChange"],[2,"font-size","18px","width","11px","display","inline-block","text-align","center"],["type","text",2,"width","200px","text-align","left !important",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"margin-left","20px"],[1,"item-unit"],[3,"data","variableId","variableValue","variableLabel","onchange"],["unit",""],["digits",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,aW,6,5,"div",1),e.qZA()),2&i&&(e.xp6(1),e.Q6J("ngForOf",n.ranges))},dependencies:[l.sg,l.O5,I,et,$i,Yn,Zn,$A,$u,fs,wS,Ni.X$],styles:[".item[_ngcontent-%COMP%]{display:block;width:100%;border-bottom:1px solid rgba(0,0,0,.1);padding:0 0 5px}.item-alarm[_ngcontent-%COMP%]{margin-left:-30px;width:calc(100% + 30px)}.remove[_ngcontent-%COMP%]{position:relative;top:4px;right:0}.item-range[_ngcontent-%COMP%]{display:inline-block;min-width:320px;max-width:320px;width:320px}.item-minmax[_ngcontent-%COMP%]{display:inline-block;width:100%}.item-step[_ngcontent-%COMP%]{display:inline-block;width:100%;margin-top:5px}.item-unit[_ngcontent-%COMP%]{display:inline-block}.item-remove[_ngcontent-%COMP%]{float:right}.panel-color-class[_ngcontent-%COMP%]{position:relative;top:30px}.panel-color[_ngcontent-%COMP%]{display:inline-block;padding-top:10px;max-width:60px;height:21px;line-height:12px;margin-right:25px}.option-color[_ngcontent-%COMP%]{height:32px!important}.panel-color-class[_ngcontent-%COMP%]{margin-top:30px!important}.input-range[_ngcontent-%COMP%]{display:inline-block;max-width:80px}.input-range[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{font-size:15px;text-align:center}.input-minmax[_ngcontent-%COMP%]{display:inline-block;max-width:80px}.input-minmax[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{font-size:15px;text-align:center}.input-step[_ngcontent-%COMP%]{display:inline-block;max-width:80px}.input-minmax-cb[_ngcontent-%COMP%]{font-size:15px} .input-range .input-step .input-minmax .mat-form-field-wrapper{margin-bottom:-15px!important} .input-range .input-step .input-minmax .mat-form-field-infix{padding-top:1px;padding-bottom:5px}.input-step[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{font-size:15px;text-align:center}.input-slider[_ngcontent-%COMP%]{display:inline} .input-slider span{font-size:14px!important}.toolbox[_ngcontent-%COMP%]{margin-top:3px;margin-bottom:3px}.toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:8px;margin-left:8px}.slider-field[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:2px;text-overflow:clip;max-width:125px;white-space:nowrap;overflow:hidden}.slider-field[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{background-color:#f1f3f4;height:30px}"]})}return r})();var Xd=function(r){return r[r.output=1]="output",r[r.range=2]="range",r[r.text=3]="text",r[r.step=4]="step",r[r.minmax=5]="minmax",r[r.input=6]="input",r}(Xd||{});const cW=["flexinput"];function AW(r,a){if(1&r&&e._UZ(0,"flex-input",4,5),2&r){const t=e.oxw();e.Q6J("data",t.data)("property",t.property)("ranges",t.property.ranges)("default",t.defaultValue)("propertyType",t.withProperty)}}let HC=(()=>{class r{data;property;withStaticValue=!0;withBitmask=!1;flexInput;withProperty=null;variable;alarme;currentTag=null;defaultValue;defaultColor=ii.cQ.defaultColor;alarmDeviceCtrl=new li;alarmDeviceFilterCtrl=new li;alarmCtrl=new li;alarmFilterCtrl=new li;filteredAlarmDevice=new zC.t(1);filteredAlarm=new zC.t(1);_onDestroy=new An.x;constructor(){}ngOnInit(){this.property||(this.property=new Tt.Hy)}ngOnDestroy(){this._onDestroy.next(null),this._onDestroy.complete()}getProperty(){return this.withProperty&&(this.property.ranges=this.flexInput.getRanges()),this.property}getVariableLabel(t){return t.label?t.label:t.name}setVariable(t){this.property.variableId=t.variableId,this.property.variableValue=t.variableValue,this.property.bitmask=t.bitmask,this.flexInput&&this.flexInput.changeTag(t.variableRaw)}onAddInput(){this.flexInput.onAddInput()}onRangeViewToggle(t){this.flexInput.onRangeViewToggle(t),this.flexInput.changeTag(this.currentTag)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-head"]],viewQuery:function(i,n){if(1&i&&e.Gf(cW,5),2&i){let o;e.iGM(o=e.CRH())&&(n.flexInput=o.first)}},inputs:{data:"data",property:"property",withStaticValue:"withStaticValue",withBitmask:"withBitmask",withProperty:"withProperty"},decls:4,vars:7,consts:[[1,"container"],[1,"head",2,"padding-top","10px"],[3,"data","variableId","variableValue","bitmask","withStaticValue","withBitmask","onchange"],["style","padding-bottom: 5px",3,"data","property","ranges","default","propertyType",4,"ngIf"],[2,"padding-bottom","5px",3,"data","property","ranges","default","propertyType"],["flexinput",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1)(2,"flex-variable",2),e.NdJ("onchange",function(s){return n.setVariable(s)}),e.qZA()(),e.YNc(3,AW,2,5,"flex-input",3),e.qZA()),2&i&&(e.xp6(2),e.Q6J("data",n.data)("variableId",n.property.variableId)("variableValue",n.property.variableValue)("bitmask",n.property.bitmask)("withStaticValue",n.withStaticValue)("withBitmask",n.withBitmask),e.xp6(1),e.Q6J("ngIf",n.withProperty))},dependencies:[l.O5,sW,$u],styles:[".head{padding-top:0}.selection{margin-right:20px;margin-bottom:-10px;margin-top:2px;width:220px}.selection .mat-form-field-wrapper{padding-bottom:15px!important}.item-set{display:inline-block;float:right;padding-top:13px;min-width:140px}.panel-color-class{position:relative;top:30px}.panel-color{display:inline-block;padding-top:10px;max-width:60px;height:20px;line-height:12px;margin-right:25px}.option-color{height:32px!important}\n"],encapsulation:2})}return r})();var Wo=ce(846);function dW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"div",2)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",3),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.settings.name=n)}),e.qZA()(),e.TgZ(6,"div",4)(7,"button",5),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onEdit())}),e._uU(8),e.ALo(9,"translate"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"editor.interactivity-name")),e.xp6(2),e.Q6J("ngModel",t.settings.name),e.xp6(3),e.Oqu(e.lcZ(9,5,"gauges.property-title"))}}let uo=(()=>{class r{data;settings;edit=new e.vpe;static GAUGE_TEXT="text";constructor(){}onEdit(){this.edit.emit(this.settings)}static pathToAbsolute(t){var n=[];return t.replace(/([ml])\s*(-?\d*\.?\d+)\s*,\s*(-?\d*\.?\d+)/gi,function(o,s,c,g){var B;c=parseFloat(c),g=parseFloat(g),0===n.length||s.toUpperCase()===s?n.push([c,g]):n.push([c+(B=n[n.length-1])[0],g+B[1]])}),n}static getEvents(t,i){let n=[];if(!t||!t.events)return null;let o=Object.values(Tt.KQ).indexOf(i);return t.events.forEach(s=>{(o<0||Object.keys(Tt.KQ).indexOf(s.type)===o)&&n.push(s)}),n}static getUnit(t,i){return t&&t.ranges&&t.ranges.length>0&&t.ranges[0].type===Xd.output?(t.ranges[0].textId&&!ii.cQ.isNullOrUndefined(i.variablesValue[t.ranges[0].textId])&&(t.ranges[0].text=i.variablesValue[t.ranges[0].textId]),t.ranges[0].text):""}static getDigits(t,i){return t&&t.ranges&&t.ranges.length>0&&(t.ranges[0].fractionDigitsId&&!ii.cQ.isNullOrUndefined(i.variablesValue[t.ranges[0].fractionDigitsId])&&(t.ranges[0].fractionDigits=i.variablesValue[t.ranges[0].fractionDigitsId]),t.ranges[0].fractionDigits)?t.ranges[0].fractionDigits:null}static runActionHide(t,i,n){let o={type:i,animr:t.hide()};n.actionRef&&(o.spool=n.actionRef.spool,o.timer=n.actionRef.timer),n.actionRef=o}static runActionShow(t,i,n){let o={type:i,animr:t.show()};n.actionRef&&(o.spool=n.actionRef.spool,o.timer=n.actionRef.timer),n.actionRef=o}static checkActionBlink(t,i,n,o,s,c){if(n.actionRef||(n.actionRef=new Tt.Zs(i.type)),n.actionRef.type=i.type,o){if(n.actionRef.timer&&r.getBlinkActionId(i)===n.actionRef.spool?.actId)return;r.clearAnimationTimer(n.actionRef);var g=!1;try{const B=r.getBlinkActionId(i);n.actionRef.spool=s?{bk:t.style.backgroundColor,clr:t.style.color,actId:B}:{bk:t.node.getAttribute("fill"),clr:t.node.getAttribute("stroke"),actId:B}}catch(B){console.error(B)}n.actionRef.timer=setInterval(()=>{g=!g;try{g?s?(t.style.backgroundColor=i.options.fillA,t.style.color=i.options.strokeA):(r.walkTreeNodeToSetAttribute(t.node,"fill",i.options.fillA),r.walkTreeNodeToSetAttribute(t.node,"stroke",i.options.strokeA)):s?(t.style.backgroundColor=i.options.fillB,t.style.color=i.options.strokeB):(r.walkTreeNodeToSetAttribute(t.node,"fill",i.options.fillB),r.walkTreeNodeToSetAttribute(t.node,"stroke",i.options.strokeB))}catch(B){console.error(B)}},i.options.interval)}else if(!o)try{(!n.actionRef.spool||n.actionRef.spool.actId===r.getBlinkActionId(i))&&(n.actionRef.timer&&(clearInterval(n.actionRef.timer),n.actionRef.timer=null),c&&n.actionRef.spool&&(c.fill&&(n.actionRef.spool.bk=c.fill),c.stroke&&(n.actionRef.spool.clr=c.stroke)),s?(t.style.backgroundColor=n.actionRef.spool?.bk,t.style.color=n.actionRef.spool?.clr):n.actionRef.spool&&(r.walkTreeNodeToSetAttribute(t.node,"fill",n.actionRef.spool.bk),r.walkTreeNodeToSetAttribute(t.node,"stroke",n.actionRef.spool.clr)))}catch(B){console.error(B)}}static clearAnimationTimer(t){t&&t.timer&&(clearTimeout(t.timer),t.timer=null)}static checkBitmask(t,i){return t?i&t?1:0:i}static checkBitmaskAndValue(t,i,n,o){return t?i&o&t?1:0:i==n?0:1}static valueBitmask(t,i,n){return t?i&t|n&~t:i}static toggleBitmask(t,i){return t^i}static maskedShiftedValue(t,i){if(!i)return t;if(null==t)return null;const n=parseInt(t,0);if(isNaN(n))return null;let o=0,s=i;for(;!(1&s);)s>>=1,o++;return(n&i)>>o}static getBlinkActionId(t){return`${t.variableId}-${t.range.max}-${t.range.min}`}static walkTreeNodeToSetAttribute(t,i,n){t?.setAttribute(i,n),ii.cQ.walkTree(t,o=>{(o.id?.startsWith("SHE")||o.id?.startsWith("svg_"))&&o.setAttribute(i,n)})}static setLanguageText(t,i){i&&t?.tagName?.toLowerCase()===r.GAUGE_TEXT&&(t.textContent=i)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["gauge-base"]],inputs:{data:"data",settings:"settings"},outputs:{edit:"edit"},decls:1,vars:1,consts:[["class","svg-property-split2",4,"ngIf"],[1,"svg-property-split2"],["title","Gauge name",1,"svg-property"],["type","text","id","gaugename","type","text","readonly","",3,"ngModel","ngModelChange"],[1,"svg-property",2,"display","block !important","padding","0px 10px 5px 10px"],["mat-button","","color","primary",2,"background-color","dimgrey","color","white","display","inline-block",3,"click"]],template:function(i,n){1&i&&e.YNc(0,dW,10,7,"div",0),2&i&&e.Q6J("ngIf",n.settings)},dependencies:[l.O5,I,et,$i,Yn,Ni.X$],styles:[".svg-property-split2[_ngcontent-%COMP%]:after{display:table;clear:both}.svg-property-split2[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block}.svg-property[_ngcontent-%COMP%]{color:#ffffffbf}.svg-property[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;font-size:10px;margin:0 5px 0 10px}.svg-property[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:block;margin:0 10px 12px;border:unset;background-color:inherit;color:var(--toolboxFlyColor);border-bottom:1px solid var(--toolboxFlyColor)}.mat-button[_ngcontent-%COMP%]{min-width:60px}"]})}return r})();class ss extends uo{static TypeTag="svg-ext-html_input";static LabelTag="HtmlInput";static prefix="I-HXI_";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show};static InputDateTimeType=["date","time","datetime"];static SkipEnterEvent=["textarea"];constructor(){super()}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getDialogType(){return Do.Input}static getActions(a){return this.actionsType}static getHtmlEvents(a){let t=document.getElementById(a.id);if(t){let i=ii.cQ.searchTreeStartWith(t,this.prefix);if(i){let n=new Tt.ju;return n.dom=i,n.type="key-enter",n.ga=a,n}}return null}static processValue(a,t,i,n){try{if(t.node&&t.node.children&&t.node.children.length>=1){let o=ii.cQ.searchTreeStartWith(t.node,this.prefix);if(o){let s=parseFloat(i.value),c=null,g=null,B="";a.property.ranges&&(c=uo.getUnit(a.property,n),g=uo.getDigits(a.property,n)),Number.isNaN(s)?s=ii.cQ.toNumber(i.value):a.property?.options?.type===Tt.ng.time?(B=i.value,a.property?.options?.convertion===Tt.CG.milliseconds&&(B=ii.cQ.millisecondsToTimeString(s,a.property?.options?.timeformat===Tt.AQ.milliseconds?1e3:a.property?.options?.timeformat===Tt.AQ.seconds?100:0))):a.property?.options?.type===Tt.ng.date||a.property?.options?.type===Tt.ng.datetime?(B=i.value,a.property?.options?.convertion===Tt.CG.milliseconds&&(B=a.property?.options?.type===Tt.ng.date?ii.cQ.millisecondsToDateString(s):ii.cQ.millisecondsToDateString(s,a.property?.options?.timeformat===Tt.AQ.milliseconds?1e3:a.property?.options?.timeformat===Tt.AQ.seconds?100:a.property?.options?.timeformat===Tt.AQ.normal?1:0))):s=parseFloat(s.toFixed(g||5)),a.property?.variableId==i.id&&a.property?.options?.updated&&!(document.hasFocus&&o.id==document.activeElement.id)&&(B?o.value=B:(o.value=a.property?.options?.type===Tt.ng.text?i.value:s,c&&(o.value+=" "+c))),a.property.actions&&a.property.actions.forEach(O=>{O.variableId===i.id&&ss.processAction(O,t,o,s,n)})}}}catch(o){console.error(o)}}static initElement(a,t=!1){let i=null,n=document.getElementById(a.id);if(n&&a.property){n?.setAttribute("data-name",a.name),i=ii.cQ.searchTreeStartWith(n,this.prefix);const o=a?.property?.options?.type===Tt.ng.textarea;if(i&&!t){if(o&&i instanceof HTMLInputElement){const s=document.createElement("textarea");i.parentElement?.insertBefore(s,i),i.parentElement?.removeChild(i),s.setAttribute("style",i.getAttribute("style")??""),s.setAttribute("wrap","soft"),s.style.textAlign="left",s.style.border="unset",s.style.setProperty("width","calc(100% - 2px)"),s.style.setProperty("height","calc(100% - 2px)"),s.style.setProperty("resize","none"),s.style.setProperty("padding","unset !important"),s.style.setProperty("overflow","auto"),s.id=i.id,i=s}else if(!o&&i instanceof HTMLTextAreaElement){const s=document.createElement("input");i.parentElement?.insertBefore(s,i),i.parentElement?.removeChild(i),s.setAttribute("style",i.getAttribute("style")??""),s.style.textAlign="right",s.id=i.id,s.style.setProperty("width","calc(100% - 7px)"),s.style.setProperty("height","calc(100% - 7px)"),s.value="#.##",i=s}o?(i.value=a.property.options.startText||"textarea",i.innerHTML=i.value):i.value="#.##"}if(t&&i){if(i.value="",o&&(i.value=a.property.options.startText||"textarea",i.readOnly=a.property.options.readonly),ss.checkInputType(i,a.property.options),i.setAttribute("autocomplete","off"),a.property.options){if(a.property.options.numeric||a.property.options.type===Tt.ng.number){const s=parseFloat(a.property.options.min),c=parseFloat(a.property.options.max);i.addEventListener("keydown",g=>{try{if("Enter"===g.code||"NumpadEnter"===g.code){const B=parseFloat(i.value);let O="";if(s>B&&(O+=`Min=${s} `),c{document.body.removeChild(we)},2e3)}}}catch(B){console.error(B)}})}if(ss.InputDateTimeType.includes(a.property.options?.type)){let g=function(){s.style.backgroundColor="rgba(0,0,0,0.2)"},B=function(){s.style.backgroundColor="unset"};const s=document.createElement("button");s.style.position="absolute",s.style.left="0",s.style.height="100%",s.style.display="flex",s.style.alignItems="center",s.style.padding="0 5px",s.style.backgroundColor="unset",s.style.border="none",s.style.cursor="pointer";const c=document.createElement("i");c.className="material-icons",c.innerText="done",c.style.fontSize=window.getComputedStyle(i).getPropertyValue("font-size"),c.style.fontWeight="bold",s.appendChild(c),i.parentElement.insertBefore(s,i),s.addEventListener("mousedown",g),s.addEventListener("touchstart",g),s.addEventListener("mouseup",B),s.addEventListener("touchend",B),s.addEventListener("click",function(){const O=new KeyboardEvent("keydown",{key:"Enter"});i.dispatchEvent(O)})}}i.style.margin="1px 1px"}if(n){let s=n.getElementsByTagName("foreignObject");s&&(s[0].style.paddingLeft="1px");let c=n.getElementsByTagName("rect");c&&c[0].setAttribute("stroke-width","0.5")}}return new uW(i)}static checkInputType(a,t){t?.type&&(a.setAttribute("type",t.type===Tt.ng.datetime?"datetime-local":t.type),t.type===Tt.ng.time&&(t.timeformat===Tt.AQ.seconds?a.setAttribute("step","1"):t.timeformat===Tt.AQ.milliseconds&&a.setAttribute("step","0.001")))}static initElementColor(a,t,i){let n=ii.cQ.searchTreeStartWith(i,this.prefix);n&&(a&&(n.style.backgroundColor=a),t&&(n.style.color=t))}static getFillColor(a){if(a.children&&a.children[0]){let t=ii.cQ.searchTreeStartWith(a,this.prefix);if(t)return t.style.backgroundColor}return a.getAttribute("fill")}static getStrokeColor(a){if(a.children&&a.children[0]){let t=ii.cQ.searchTreeStartWith(a,this.prefix);if(t)return t.style.color}return a.getAttribute("stroke")}static processAction(a,t,i,n,o){if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=n&&a.range.max>=n){let s=SVG.adopt(t.node);this.runActionHide(s,a.type,o)}}else if(this.actionsType[a.type]===this.actionsType.show&&a.range.min<=n&&a.range.max>=n){let s=SVG.adopt(t.node);this.runActionShow(s,a.type,o)}}static validateValue(a,t){let i={valid:!0,value:a,errorText:"",min:0,max:0};if(t.property?.options?.numeric||t.property?.options?.type===Tt.ng.number){if(!ii.cQ.isNullOrUndefined(t.property.options.min)&&!ii.cQ.isNullOrUndefined(t.property.options.max)){if(Number.isNaN(a)||!/^-?[\d.]+$/.test(a))return{...i,valid:!1,errorText:"html-input.not-a-number"};{let n=parseFloat(a);if(nt.property.options.max)return{...i,valid:!1,errorText:"html-input.out-of-range",min:t.property.options.min,max:t.property.options.max}}}}else if(t.property?.options?.convertion===Tt.CG.milliseconds&&t.property?.options?.type===Tt.ng.time){const[n,o,s,c]=a.split(/:|\./);i.value=1e3*((n?3600*parseInt(n):0)+(o?60*parseInt(o):0)+(s?parseInt(s):0))+(c?parseInt(c):0)}else t.property?.options?.convertion===Tt.CG.milliseconds&&(t.property?.options?.type===Tt.ng.date||t.property?.options?.type===Tt.ng.datetime)&&(i.value=new Date(a).getTime());return i}static \u0275fac=function(t){return new(t||ss)};static \u0275cmp=e.Xpm({type:ss,selectors:[["html-input"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}class uW{source;constructor(a){this.source=a}getValue(){return this.source.value}}class zl extends uo{static TypeTag="svg-ext-html_select";static LabelTag="HtmlSelect";static prefix="S-HXS_";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show};constructor(){super()}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getDialogType(){return Do.Step}static getActions(a){return this.actionsType}static getHtmlEvents(a){let t=document.getElementById(a.id);if(t){let i=ii.cQ.searchTreeStartWith(t,this.prefix);if(i){let n=new Tt.ju;return n.dom=i,n.type="change",n.ga=a,n}}return null}static processValue(a,t,i,n){try{let o=ii.cQ.searchTreeStartWith(t.node,this.prefix);if(o){let s=parseFloat(i.value);s=Number.isNaN(s)?Number(i.value):parseFloat(s.toFixed(5)),o.value=s;let c=a.property.ranges.find(g=>g.min==s);c&&(o.style.background=c.color,o.style.color=c.stroke),a.property.actions&&a.property.actions.forEach(g=>{g.variableId===i.id&&zl.processAction(g,t,o,s,n)})}}catch(o){console.error(o)}}static initElement(a,t=!1){let i=null,n=document.getElementById(a.id);if(n&&(n?.setAttribute("data-name",a.name),i=ii.cQ.searchTreeStartWith(n,this.prefix),i)){if(a.property){a.property.readonly&&t?(i.disabled=!0,i.style.appearance="none",i.style["border-width"]="0px"):i.style.appearance="menulist";let o=i.style["text-align"];o&&(i.style["text-align-last"]=o)}if(i.innerHTML="",t)a.property?.ranges?.forEach(o=>{let s=document.createElement("option");s.value=o.min,o.text&&(s.text=o.text),i.appendChild(s)});else{let o=document.createElement("option");o.disabled=!0,o.selected=!0,o.innerHTML="Choose...",i.appendChild(o)}}return i}static initElementColor(a,t,i){let n=ii.cQ.searchTreeStartWith(i,this.prefix);n&&(a&&(n.style.backgroundColor=a),t&&(n.style.color=t))}static getFillColor(a){if(a.children&&a.children[0]){let t=ii.cQ.searchTreeStartWith(a,this.prefix);if(t)return t.style.backgroundColor}return a.getAttribute("fill")}static getStrokeColor(a){if(a.children&&a.children[0]){let t=ii.cQ.searchTreeStartWith(a,this.prefix);if(t)return t.style.color}return a.getAttribute("stroke")}static processAction(a,t,i,n,o){if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=n&&a.range.max>=n){let s=SVG.adopt(t.node);this.runActionHide(s,a.type,o)}}else if(this.actionsType[a.type]===this.actionsType.show&&a.range.min<=n&&a.range.max>=n){let s=SVG.adopt(t.node);this.runActionShow(s,a.type,o)}}static \u0275fac=function(t){return new(t||zl)};static \u0275cmp=e.Xpm({type:zl,selectors:[["html-select"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}const hW=["*"];let pW=(()=>{class r{view;data;value;placeholders=[];valueChange=new e.vpe;constructor(){}ngOnInit(){this.value||(this.value={}),this.value.from=this.value.from||{},this.value.to=this.value.to||{}}onValueChange(){this.valueChange.emit(this.value)}compareVariables(t,i){return t&&i&&t.variableId==i.variableId}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-variable-map"]],inputs:{view:"view",data:"data",value:"value",placeholders:"placeholders"},outputs:{valueChange:"valueChange"},ngContentSelectors:hW,decls:6,vars:11,consts:[[1,"flex-variable-mapping"],[1,"flex-join"],[2,"display","inline-block"],[2,"display","block",3,"value","data","placeholders","allowManualEdit","withStaticValue","tagTitle","valueChange"],[2,"display","block",3,"value","data","allowManualEdit","withStaticValue","devicesOnly","valueChange"]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"div",0),e._UZ(1,"div",1),e.TgZ(2,"div",2)(3,"flex-variable",3),e.NdJ("valueChange",function(s){return n.value.from=s})("valueChange",function(){return n.onValueChange()}),e.qZA(),e.TgZ(4,"flex-variable",4),e.NdJ("valueChange",function(s){return n.value.to=s})("valueChange",function(){return n.onValueChange()}),e.qZA()(),e.Hsn(5),e.qZA()),2&i&&(e.xp6(3),e.Q6J("value",n.value.from)("data",n.data)("placeholders",n.placeholders)("allowManualEdit",!0)("withStaticValue",!1)("tagTitle","gauges.property-tag-internal-title"),e.xp6(1),e.Q6J("value",n.value.to)("data",n.data)("allowManualEdit",!1)("withStaticValue",!0)("devicesOnly",!0))},dependencies:[$u],styles:["[_nghost-%COMP%] .flex-variable-mapping[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.08);padding-bottom:3px;padding-top:3px}[_nghost-%COMP%] .flex-join[_ngcontent-%COMP%]{float:left;position:relative;left:0;top:28px;margin-bottom:2px;width:8px;height:45px;margin-right:3px;border-radius:3px 0 0 3px;border-top:2px solid #cacaca;border-left:2px solid #cacaca;border-bottom:2px solid #cacaca}"]})}return r})();function gW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"flex-variable-map",3),e.NdJ("valueChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChange())}),e.TgZ(2,"button",4),e.NdJ("click",function(n){const s=e.CHM(t).index,c=e.oxw();return e.KtG(c.removeVariableMapping(n,s))}),e.ALo(3,"translate"),e.TgZ(4,"mat-icon"),e._uU(5,"clear"),e.qZA()()()()}if(2&r){const t=a.index,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("view",i.view)("value",i.mapping[t])("placeholders",i.viewPlaceholders),e.xp6(1),e.s9C("matTooltip",e.lcZ(3,5,"gauges.property-head-remove-mapvariable"))}}let fW=(()=>{class r{view;mapping;data;mappingChange=new e.vpe;placeholders;constructor(){}ngOnInit(){this.mapping||(this.mapping=[])}ngOnChanges(t){t.view&&(this.placeholders=null)}get viewPlaceholders(){if(this.placeholders)return this.placeholders;let t={};return this.view&&Object.values(this.view.items).forEach(i=>{i&&i.property&&(i.property.variableId&&this.assignVariableTo(i.property,t),i.property.actions&&Object.values(i.property.actions).forEach(n=>{this.assignVariableTo(n,t)}),i.property.events&&Object.values(i.property.events).forEach(n=>{n.actoptions&&n.actoptions.variableId?this.assignVariableTo(n.actoptions,t):n.actoptions&&n.actoptions.variable&&this.assignVariableTo(n.actoptions.variable,t)}))}),this.placeholders=Object.values(t),this.placeholders}assignVariableTo(t,i){let n={variableId:t.variableId};i[n.variableId]=n}addVariableMapping(t){t.preventDefault(),this.mapping.push({from:{},to:{}})}removeVariableMapping(t,i){t.preventDefault(),this.mapping.splice(i,1)}onChange(){this.mappingChange.emit(this.mapping)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-variables-mapping"]],inputs:{view:"view",mapping:"mapping",data:"data"},outputs:{mappingChange:"mappingChange"},features:[e.TTD],decls:7,vars:4,consts:[[1,"flex-variable-mapping"],["mat-icon-button","",3,"click"],[4,"ngFor","ngForOf"],[3,"data","view","value","placeholders","valueChange"],["mat-icon-button","",2,"float","right","margin-top","7px",3,"matTooltip","click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"button",1),e.NdJ("click",function(s){return n.addVariableMapping(s)}),e.TgZ(2,"mat-icon"),e._uU(3,"add_circle_outline"),e.qZA(),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.YNc(6,gW,6,7,"div",2),e.qZA()),2&i&&(e.xp6(4),e.hij(" ",e.lcZ(5,2,"gauges.property-map-variable")," "),e.xp6(2),e.Q6J("ngForOf",n.mapping))},dependencies:[l.sg,Yn,Zn,Cs,pW,Ni.X$]})}return r})();function mW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function _W(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function vW(r,a){if(1&r&&(e.ynx(0),e.YNc(1,_W,2,2,"mat-option",7),e.ALo(2,"enumToArray"),e.BQk()),2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",e.lcZ(2,1,t.actionType))}}function yW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function wW(r,a){if(1&r&&(e.YNc(0,yW,2,2,"mat-option",7),e.ALo(1,"enumToArray")),2&r){const t=e.oxw(2);e.Q6J("ngForOf",e.lcZ(1,1,t.enterActionType))}}function CW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function bW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function xW(r,a){if(1&r){const t=e.EpF();e.ynx(0,4),e.TgZ(1,"div",25)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",6),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actoptions.panelId=n)}),e.YNc(6,CW,2,2,"mat-option",7),e.qZA()(),e.TgZ(7,"div",26)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",6),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actparam=n)}),e.YNc(12,bW,2,2,"mat-option",7),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,6,"gauges.property-event-destination-panel")),e.xp6(2),e.Q6J("value",t.actoptions.panelId),e.xp6(1),e.Q6J("ngForOf",i.viewPanels),e.xp6(3),e.Oqu(e.lcZ(10,8,"gauges.property-event-destination")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.views)}}function BW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function EW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",27)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",6),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actparam=n)}),e.YNc(5,BW,2,2,"mat-option",7),e.qZA()()}if(2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"gauges.property-event-destination")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.views)}}function MW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",33)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-slide-toggle",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.actoptions.singleCard=n)}),e.qZA()()}if(2&r){const t=e.oxw(3).$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-single-card")),e.xp6(2),e.Q6J("ngModel",t.actoptions.singleCard)}}function DW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"shapes.event-relativefrom-"+t.value)," ")}}function TW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",28)(1,"div",29)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actoptions.left=n)}),e.qZA()(),e.TgZ(6,"div",31)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actoptions.top=n)}),e.qZA()(),e.YNc(11,MW,5,4,"div",32),e.TgZ(12,"div",24)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",6),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actoptions.relativeFrom=n)}),e.YNc(17,DW,3,4,"mat-option",7),e.ALo(18,"enumToArray"),e.qZA()()()}if(2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,8,"general-x")),e.xp6(2),e.Q6J("ngModel",t.actoptions.left),e.xp6(3),e.Oqu(e.lcZ(9,10,"general-y")),e.xp6(2),e.Q6J("ngModel",t.actoptions.top),e.xp6(1),e.Q6J("ngIf",i.cardDestination===t.action),e.xp6(3),e.Oqu(e.lcZ(15,12,"gauges.property-event-destination-relative-from")),e.xp6(2),e.Q6J("value",t.actoptions.relativeFrom),e.xp6(1),e.Q6J("ngForOf",e.lcZ(18,14,i.relativeFromType))}}function IW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function kW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",20),e.YNc(1,xW,13,10,"ng-container",21),e.YNc(2,EW,6,5,"ng-template",null,22,e.W1O),e.YNc(4,TW,19,16,"div",23),e.TgZ(5,"div",24)(6,"span"),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"mat-select",6),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.sourceDeviceId=n)}),e._UZ(10,"mat-option",19),e.YNc(11,IW,2,2,"mat-option",7),e.qZA()()()}if(2&r){const t=e.MAs(3),i=e.oxw().$implicit,n=e.oxw();e.xp6(1),e.Q6J("ngIf",n.isWithPanel(i.action))("ngIfElse",t),e.xp6(3),e.Q6J("ngIf",n.withPosition(i.action)),e.xp6(3),e.Oqu(e.lcZ(8,6,"gauges.property-event-destination-target-device")),e.xp6(2),e.Q6J("value",i.actoptions.sourceDeviceId),e.xp6(2),e.Q6J("ngForOf",n.getDevices())}}function QW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",35)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-slide-toggle",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.hideClose=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-destination-hide-close")),e.xp6(2),e.Q6J("ngModel",t.actoptions.hideClose)}}function SW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",36)(1,"flex-variables-mapping",37),e.NdJ("mappingChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.variablesMapping=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.Q6J("mapping",t.actoptions.variablesMapping)("view",i.getView(t.actparam))("data",i.data)}}function PW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function FW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",38)(1,"div",39)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",6),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)}),e.YNc(6,PW,2,2,"mat-option",7),e.qZA()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"gauges.property-event-input")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.inputs)}}function OW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function LW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",40)(1,"div",41)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",42),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)}),e.qZA()(),e.TgZ(6,"div",43)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",44),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.function=n)}),e.YNc(11,OW,2,2,"mat-option",7),e.ALo(12,"enumToArray"),e.qZA()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,5,"gauges.property-event-value")),e.xp6(2),e.Q6J("ngModel",t.actparam),e.xp6(3),e.Oqu(e.lcZ(9,7,"gauges.property-event-function")),e.xp6(2),e.Q6J("value",t.actoptions.function),e.xp6(1),e.Q6J("ngForOf",e.lcZ(12,9,i.setValueType))}}function RW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",45)(1,"flex-variable",46),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.variable=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("value",t.actoptions.variable)("withStaticValue",!1)}}function YW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",45)(1,"flex-variable",47),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.variable=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("value",t.actoptions.variable)("withBitmask",!0)("bitmask",null==t.actoptions.variable?null:t.actoptions.variable.bitmask)("withStaticValue",!1)}}function NW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",51)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-slide-toggle",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.actoptions.newTab=n)}),e.qZA()()}if(2&r){const t=e.oxw(2).$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-newtab")),e.xp6(2),e.Q6J("ngModel",t.actoptions.newTab)}}function UW(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",41)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.actoptions.width=n)}),e.qZA()(),e.TgZ(6,"div",43)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.actoptions.height=n)}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(3).$implicit;e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-event-width")),e.xp6(2),e.Q6J("ngModel",t.actoptions.width),e.xp6(3),e.Oqu(e.lcZ(9,6,"gauges.property-event-height")),e.xp6(2),e.Q6J("ngModel",t.actoptions.height)}}function zW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",43)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.actoptions.scale=n)}),e.qZA()()}if(2&r){const t=e.oxw(3).$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-scale")),e.xp6(2),e.Q6J("ngModel",t.actoptions.scale)}}function HW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",55)(1,"div",41)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.actoptions.left=n)}),e.qZA()(),e.TgZ(6,"div",43)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",30),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3).$implicit;return e.KtG(o.actoptions.top=n)}),e.qZA()()()}if(2&r){const t=e.oxw(3).$implicit;e.xp6(3),e.Oqu(e.lcZ(4,4,"general-x")),e.xp6(2),e.Q6J("ngModel",t.actoptions.left),e.xp6(3),e.Oqu(e.lcZ(9,6,"general-y")),e.xp6(2),e.Q6J("ngModel",t.actoptions.top)}}function GW(r,a){if(1&r&&(e.TgZ(0,"div",52),e.YNc(1,UW,11,8,"ng-container",18),e.YNc(2,zW,5,4,"div",53),e.YNc(3,HW,11,8,"div",54),e.qZA()),2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(1),e.Q6J("ngIf",i.withSize(t.action)),e.xp6(1),e.Q6J("ngIf",i.withScale(t.action)),e.xp6(1),e.Q6J("ngIf",i.withPosition(t.action))}}function ZW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",40)(1,"div",41)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)}),e.qZA()(),e.YNc(6,NW,5,4,"div",49),e.YNc(7,GW,4,3,"div",50),e.qZA()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-event-address")),e.xp6(2),e.Q6J("ngModel",t.actparam),e.xp6(1),e.Q6J("ngIf",i.eventOnOpenTab===t.action),e.xp6(1),e.Q6J("ngIf",i.withAddress(t.action))}}function JW(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function jW(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"input",65),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.value=n)}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("ngModel",t.value)}}function VW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"input",66),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2).$implicit;return e.KtG(o.value=n)}),e.ALo(1,"translate"),e.qZA()}if(2&r){const t=e.oxw(2).$implicit;e.s9C("placeholder",e.lcZ(1,2,"gauges.property-event-script-param-input-value")),e.Q6J("ngModel",t.value)}}function WW(r,a){if(1&r&&(e.TgZ(0,"div",41)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.YNc(4,jW,2,1,"ng-container",10),e.YNc(5,VW,2,4,"ng-template",null,64,e.W1O),e.qZA()),2&r){const t=e.MAs(6),i=e.oxw(3).$implicit,n=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"gauges.property-event-script-param-value")),e.xp6(2),e.Q6J("ngIf",!n.isEnterOrSelect(i.type))("ngIfElse",t)}}function KW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41)(1,"flex-variable",67),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(3);return e.KtG(s.setScriptParam(o,n))}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(1),e.Q6J("data",i.data)("variableId",t.value)("withStaticValue",!1)}}function qW(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",60)(1,"div",41)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",61),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)}),e.qZA()(),e.TgZ(6,"div",62),e.YNc(7,WW,7,5,"div",63),e.YNc(8,KW,2,3,"div",63),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(3),e.Oqu(e.lcZ(4,5,"gauges.property-event-script-param-name")),e.xp6(2),e.Q6J("ngModel",t.name)("disabled",!0),e.xp6(2),e.Q6J("ngIf","value"===t.type),e.xp6(1),e.Q6J("ngIf","tagid"===t.type)}}function XW(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",56)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",57),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onScriptChanged(n.value,o))}),e.YNc(6,JW,2,2,"mat-option",7),e.qZA()(),e.TgZ(7,"div",58),e.YNc(8,qW,9,7,"div",59),e.qZA(),e.BQk()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-event-script")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.scripts),e.xp6(2),e.Q6J("ngForOf",t.actoptions.params)}}function $W(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"div",2)(2,"button",3),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemoveEvent(o))}),e.TgZ(3,"mat-icon"),e._uU(4,"clear"),e.qZA()()(),e.TgZ(5,"div",4)(6,"div",5)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",6),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)}),e.YNc(11,mW,2,2,"mat-option",7),e.ALo(12,"enumToArray"),e.qZA()(),e.TgZ(13,"div",8)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"mat-select",9),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.action=n)})("change",function(){const o=e.CHM(t).$implicit;return e.KtG(o.actparam="")}),e.YNc(18,vW,3,3,"ng-container",10),e.YNc(19,wW,2,3,"ng-template",null,11,e.W1O),e.qZA()()(),e.YNc(21,kW,12,8,"div",12),e.YNc(22,QW,5,4,"div",13),e.YNc(23,SW,2,3,"div",14),e.YNc(24,FW,7,5,"div",15),e.YNc(25,LW,13,11,"div",16),e.YNc(26,RW,2,3,"div",17),e.YNc(27,YW,2,5,"div",17),e.YNc(28,ZW,8,6,"div",16),e.YNc(29,XW,9,6,"ng-container",18),e.qZA()}if(2&r){const t=a.$implicit,i=e.MAs(20),n=e.oxw();e.xp6(8),e.Oqu(e.lcZ(9,16,"gauges.property-event-type")),e.xp6(2),e.Q6J("value",t.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(12,18,n.eventType)),e.xp6(4),e.Oqu(e.lcZ(16,20,"gauges.property-event-action")),e.xp6(2),e.Q6J("value",t.action),e.xp6(1),e.Q6J("ngIf",!n.isEnterOrSelect(t.type))("ngIfElse",i),e.xp6(3),e.Q6J("ngIf",n.withDestination(t.action)),e.xp6(1),e.Q6J("ngIf",n.destinationWithHideClose(t.action)),e.xp6(1),e.Q6J("ngIf",n.withDestination(t.action)),e.xp6(1),e.Q6J("ngIf",n.withSetInput(t.action)),e.xp6(1),e.Q6J("ngIf",n.withSetValue(t.action)),e.xp6(1),e.Q6J("ngIf",n.withSetValue(t.action)||n.withSetInput(t.action)),e.xp6(1),e.Q6J("ngIf",n.withToggleValue(t.action)),e.xp6(1),e.Q6J("ngIf",n.withAddress(t.action)),e.xp6(1),e.Q6J("ngIf",n.withRunScript(t.action))}}let _M=(()=>{class r{translateService;projectService;property;views;inputs;data;scripts;eventRunScript=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript);events;eventType={};setValueType=Tt.io;enterActionType={};actionType=Tt.$q;relativeFromType=Tt.T2;eventActionOnCard=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onwindow);eventWithPosition=[ii.cQ.getEnumKey(Tt.$q,Tt.$q.oncard),ii.cQ.getEnumKey(Tt.$q,Tt.$q.onwindow),ii.cQ.getEnumKey(Tt.$q,Tt.$q.oniframe)];cardDestination=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onwindow);panelDestination=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onViewToPanel);eventOnWindows=ii.cQ.getEnumKey(Tt.$q,Tt.$q.oncard);viewPanels;eventOnOpenTab=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onOpenTab);eventOnIframe=ii.cQ.getEnumKey(Tt.$q,Tt.$q.oniframe);constructor(t,i){this.translateService=t,this.projectService=i}ngOnInit(){this.data?.type===Tt.bW.svg?(this.actionType=Tt.f2,this.eventType[ii.cQ.getEnumKey(Tt.B0,Tt.B0.onopen)]=this.translateService.instant(Tt.B0.onopen),this.eventType[ii.cQ.getEnumKey(Tt.B0,Tt.B0.onclose)]=this.translateService.instant(Tt.B0.onclose)):this.data.settings?.type===ss.TypeTag?this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.enter)]=this.translateService.instant(Tt.KQ.enter):this.data.settings?.type===zl.TypeTag?this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.select)]=this.translateService.instant(Tt.KQ.select):(this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.click)]=this.translateService.instant(Tt.KQ.click),this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.dblclick)]=this.translateService.instant(Tt.KQ.dblclick),this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.mousedown)]=this.translateService.instant(Tt.KQ.mousedown),this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.mouseup)]=this.translateService.instant(Tt.KQ.mouseup),this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.mouseover)]=this.translateService.instant(Tt.KQ.mouseover),this.eventType[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.mouseout)]=this.translateService.instant(Tt.KQ.mouseout)),this.viewPanels=Object.values(this.data.view?.items??[])?.filter(t=>"svg-ext-own_ctrl-panel"===t.type),this.enterActionType[ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript)]=this.translateService.instant(Tt.$q.onRunScript),Object.keys(this.actionType).forEach(t=>{this.translateService.get(this.actionType[t]).subscribe(i=>{this.actionType[t]=i})}),Object.keys(this.setValueType).forEach(t=>{this.translateService.get(this.setValueType[t]).subscribe(i=>{this.setValueType[t]=i})}),this.property&&(this.events=this.property.events,this.events.forEach(t=>{(!t.actoptions||0==Object.keys(t.actoptions).length)&&(t.actoptions={variablesMapping:[]})})),(!this.events||this.events.length<=0)&&this.onAddEvent()}getEvents(){let t=[];return this.events&&this.events.forEach(i=>{i.type&&(i.action===this.eventRunScript?delete i.actoptions.variablesMapping:delete i.actoptions[Wo.ug],t.push(i))}),t}onAddEvent(){let t=new Tt.F$;this.addEvent(t)}onRemoveEvent(t){this.events.splice(t,1)}onScriptChanged(t,i){if(i&&this.scripts){let n=this.scripts.find(o=>o.id===t);i.actoptions[Wo.ug]=[],n&&n.parameters&&(i.actoptions[Wo.ug]=JSON.parse(JSON.stringify(n.parameters)))}}withDestination(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.onpage),o=Object.values(this.actionType).indexOf(Tt.$q.onwindow),s=Object.values(this.actionType).indexOf(Tt.$q.ondialog),c=Object.values(this.actionType).indexOf(Tt.$q.onViewToPanel);return i>-1&&(i===n||i===o||i===s||i===c)}withPosition(t){return-1!==this.eventWithPosition.indexOf(t)}withWindows(t){return t!==this.eventOnOpenTab}withSetValue(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.onSetValue);return i>-1&&i===n}withToggleValue(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.onToggleValue);return i>-1&&i===n}withSetInput(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.onSetInput);return i>-1&&i===n}withAddress(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.oniframe),o=Object.values(this.actionType).indexOf(Tt.$q.oncard),s=Object.values(this.actionType).indexOf(Tt.$q.onOpenTab);return i>-1&&(i===n||i===o||i===s)}withSize(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.oniframe),o=Object.values(this.actionType).indexOf(Tt.$q.oncard);return i>-1&&(i===n||i===o)}withScale(t){let i=Object.keys(this.actionType).indexOf(t),n=Object.values(this.actionType).indexOf(Tt.$q.oniframe);return i>-1&&i===n}withRunScript(t){return t===this.eventRunScript}getView(t){return this.views.find(function(i){return i.id===t})}setScriptParam(t,i){t.value=i.variableId}destinationWithHideClose(t){return t===ii.cQ.getEnumKey(Tt.$q,Tt.$q.onwindow)||t===ii.cQ.getEnumKey(Tt.$q,Tt.$q.ondialog)}isEnterOrSelect(t){return"enter"===t||"select"===t}isWithPanel(t){return Object.keys(this.actionType).indexOf(t)===Object.values(this.actionType).indexOf(Tt.$q.onViewToPanel)}addEvent(t){this.events||(this.events=[]),this.events.push(t)}getDevices(){return this.projectService.getDeviceList()}static \u0275fac=function(i){return new(i||r)(e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-event"]],inputs:{property:"property",views:"views",inputs:"inputs",data:"data",scripts:"scripts"},decls:1,vars:1,consts:[["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"item-remove"],["mat-icon-button","",1,"remove",3,"click"],[1,"inbk",2,"vertical-align","top"],[1,"my-form-field",2,"width","140px"],[3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","ml15",2,"width","140px"],[3,"value","valueChange","change"],[4,"ngIf","ngIfElse"],["enterOrSelectAction",""],["class","my-form-field","style","width: 280px;padding-left: 20px",4,"ngIf"],["class","my-form-field lbk ml10 tac","style","max-width: 60px; vertical-align: top;",4,"ngIf"],["style","padding-left: 25px;",4,"ngIf"],["style","display: inline-block",4,"ngIf"],["class","inbk ml15",4,"ngIf"],["style","display: block; padding-top: 5px;padding-left: 25px;",4,"ngIf"],[4,"ngIf"],[3,"value"],[1,"my-form-field",2,"width","280px","padding-left","20px"],["class","inbk","style","vertical-align: top;",4,"ngIf","ngIfElse"],["destination",""],["class","table mt8",4,"ngIf"],[1,"my-form-field","lbk","mt5",2,"width","240px"],[1,"my-form-field","block",2,"width","240px"],[1,"my-form-field","block","mt5",2,"width","240px"],[1,"my-form-field","lbk",2,"width","240px"],[1,"table","mt8"],[1,"my-form-field","lbk"],["numberOnly","","type","number",2,"width","60px",3,"ngModel","ngModelChange"],[1,"my-form-field","lbk","ml10"],["class","my-form-field lbk ml10 mt5 tac","style","max-width: 70px",4,"ngIf"],[1,"my-form-field","lbk","ml10","mt5","tac",2,"max-width","70px"],["color","primary",3,"ngModel","ngModelChange"],[1,"my-form-field","lbk","ml10","tac",2,"max-width","60px","vertical-align","top"],[2,"padding-left","25px"],[3,"mapping","view","data","mappingChange"],[2,"display","inline-block"],[1,"my-form-field","ml15",2,"width","260px"],[1,"inbk","ml15"],[1,"my-form-field"],["type","text",2,"width","180px",3,"ngModel","ngModelChange"],[1,"my-form-field","ml10"],[2,"width","80px",3,"value","valueChange"],[2,"display","block","padding-top","5px","padding-left","25px"],[2,"display","block",3,"data","value","withStaticValue","valueChange"],[2,"display","block",3,"data","value","withBitmask","bitmask","withStaticValue","valueChange"],["type","text",2,"width","240px",3,"ngModel","ngModelChange"],["class","my-form-field lbk ml20 tac","style","max-width: 70px",4,"ngIf"],["style","display: table; padding-left: 20px; padding-top: 5px;",4,"ngIf"],[1,"my-form-field","lbk","ml20","tac",2,"max-width","70px"],[2,"display","table","padding-left","20px","padding-top","5px"],["class","my-form-field ml10",4,"ngIf"],["class","block mt5",4,"ngIf"],[1,"block","mt5"],[1,"my-form-field","inbk",2,"width","260px","padding-left","20px"],[3,"value","valueChange","selectionChange"],[2,"display","table","padding-top","5px"],["style","padding-left: 10px; padding-top: 5px;",4,"ngFor","ngForOf"],[2,"padding-left","10px","padding-top","5px"],["type","text","readonly","",2,"width","160px",3,"ngModel","disabled","ngModelChange"],[2,"margin-left","10px","display","inline-block"],["class","my-form-field",4,"ngIf"],["enterParamValue",""],["type","text",2,"width","260px",3,"ngModel","ngModelChange"],["type","text",2,"width","260px",3,"ngModel","placeholder","ngModelChange"],[2,"display","block",3,"data","variableId","withStaticValue","onchange"]],template:function(i,n){1&i&&e.YNc(0,$W,30,22,"div",0),2&i&&e.Q6J("ngForOf",n.events)},dependencies:[l.sg,l.O5,I,qn,et,$i,Nr,Yn,Zn,fo,bc,$u,fW,fs,Ni.X$,ii.T9],styles:[".item[_ngcontent-%COMP%]{display:block;width:100%;border-bottom:1px solid rgba(0,0,0,.1);padding:0 0 5px;min-width:664px;margin-bottom:3px}.remove[_ngcontent-%COMP%]{position:relative;top:4px;right:0}.item-remove[_ngcontent-%COMP%]{float:right}"]})}return r})();function eK(r,a){if(1&r&&(e.TgZ(0,"div",12),e._UZ(1,"range-number",13),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("range",t.range)}}function tK(r,a){if(1&r&&(e.TgZ(0,"mat-option",14),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function iK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"div",16)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",17),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.fillA=n)}),e.qZA()(),e.TgZ(6,"div",18)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",17),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.strokeA=n)}),e.qZA()(),e.TgZ(11,"div",19)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",20),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.interval=n)}),e.qZA()(),e.TgZ(16,"div",16)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",17),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.fillB=n)}),e.qZA()(),e.TgZ(21,"div",18)(22,"span"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"input",17),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.strokeB=n)}),e.qZA()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,62,"gauges.property-input-color")),e.xp6(2),e.Udp("background",t.options.fillA),e.Q6J("colorPicker",t.options.fillA)("value",t.options.fillA)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex"),e.xp6(3),e.Oqu(e.lcZ(9,64,"gauges.property-input-stroke")),e.xp6(2),e.Udp("background",t.options.strokeA),e.Q6J("colorPicker",t.options.strokeA)("value",t.options.strokeA)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex"),e.xp6(3),e.Oqu(e.lcZ(14,66,"gauges.property-interval-msec")),e.xp6(2),e.Q6J("ngModel",t.options.interval),e.xp6(3),e.Oqu(e.lcZ(19,68,"gauges.property-input-color")),e.xp6(2),e.Udp("background",t.options.fillB),e.Q6J("colorPicker",t.options.fillB)("value",t.options.fillB)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex"),e.xp6(3),e.Oqu(e.lcZ(24,70,"gauges.property-input-stroke")),e.xp6(2),e.Udp("background",t.options.strokeB),e.Q6J("colorPicker",t.options.strokeB)("value",t.options.strokeB)("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")("cpAlphaChannel","always")("cpOutputFormat","hex")}}function nK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"div",21)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.minAngle=n)}),e.qZA()(),e.TgZ(6,"div",16)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.maxAngle=n)}),e.qZA()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-action-minAngle")),e.xp6(2),e.Q6J("ngModel",t.options.minAngle),e.xp6(3),e.Oqu(e.lcZ(9,6,"gauges.property-action-maxAngle")),e.xp6(2),e.Q6J("ngModel",t.options.maxAngle)}}function rK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"div",23)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.toX=n)}),e.qZA()(),e.TgZ(6,"div",23)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.toY=n)}),e.qZA()(),e.TgZ(11,"div",23)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.options.duration=n)}),e.qZA()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(3),e.Oqu(e.lcZ(4,6,"gauges.property-action-toX")),e.xp6(2),e.Q6J("ngModel",t.options.toX),e.xp6(3),e.Oqu(e.lcZ(9,8,"gauges.property-action-toY")),e.xp6(2),e.Q6J("ngModel",t.options.toY),e.xp6(3),e.Oqu(e.lcZ(14,10,"gauges.property-action-duration")),e.xp6(2),e.Q6J("ngModel",t.options.duration)}}function oK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"flex-variable",2),e.NdJ("onchange",function(n){const s=e.CHM(t).index,c=e.oxw();return e.KtG(c.setVariable(s,n))}),e.qZA(),e.TgZ(2,"div",3),e.YNc(3,eK,2,1,"div",4),e.TgZ(4,"div",5)(5,"span"),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"mat-select",6),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)})("selectionChange",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onCheckActionType(o.type,o))}),e.YNc(9,tK,2,2,"mat-option",7),e.ALo(10,"enumToArray"),e.qZA()(),e.TgZ(11,"div",8)(12,"button",9),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemoveAction(o))}),e.TgZ(13,"mat-icon"),e._uU(14,"clear"),e.qZA()()(),e.TgZ(15,"div",10),e.YNc(16,iK,26,72,"div",11),e.qZA(),e.TgZ(17,"div",10),e.YNc(18,nK,11,8,"div",11),e.YNc(19,rK,16,12,"div",11),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("variableId",t.variableId)("withStaticValue",!1)("withBitmask",i.withBitmask)("bitmask",t.bitmask),e.xp6(2),e.Q6J("ngIf",i.slideView),e.xp6(3),e.Oqu(e.lcZ(7,14,"gauges.property-action-type")),e.xp6(2),e.Q6J("value",t.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(10,16,i.actionsSupported)),e.xp6(6),e.Q6J("ngSwitch",t.type),e.xp6(1),e.Q6J("ngSwitchCase",i.actionBlink),e.xp6(1),e.Q6J("ngSwitch",t.type),e.xp6(1),e.Q6J("ngSwitchCase",i.actionRotate),e.xp6(1),e.Q6J("ngSwitchCase",i.actionMove)}}let CS=(()=>{class r{translateService;data;property;withBitmask=!1;actions;actionsSupported;actionBlink=Object.keys(Tt.KG).find(t=>Tt.KG[t]===Tt.KG.blink);actionRotate=Object.keys(Tt.KG).find(t=>Tt.KG[t]===Tt.KG.rotate);actionMove=Object.keys(Tt.KG).find(t=>Tt.KG[t]===Tt.KG.move);itemtype;slideView=!0;defaultColor=ii.cQ.defaultColor;constructor(t){this.translateService=t}ngOnInit(){this.property&&(this.actions=this.property.actions),(!this.actions||this.actions.length<=0)&&this.onAddAction(),this.data.withActions&&(this.actionsSupported=this.data.withActions,Object.keys(this.actionsSupported).forEach(t=>{this.translateService.get(this.actionsSupported[t]).subscribe(i=>{this.actionsSupported[t]=i})}))}getActions(){let t=null;return this.actions&&(t=[],this.actions.forEach(i=>{i.variableId&&t.push(i)})),t}onAddAction(){let t=new Tt.eS;t.range=new Tt.tI,this.addAction(t)}onRemoveAction(t){this.actions.splice(t,1)}onRangeViewToggle(t){this.slideView=t}setVariable(t,i){this.actions[t].variableId=i.variableId,this.actions[t].bitmask=i.bitmask}addAction(t){this.actions||(this.actions=[]),this.actions.push(t)}onCheckActionType(t,i){t===this.actionBlink&&typeof i.options!=typeof Tt.ew?i.options=new Tt.ew:t===this.actionRotate&&typeof i.options!=typeof Tt.xA?i.options=new Tt.xA:t===this.actionMove&&typeof i.options!=typeof Tt.XG&&(i.options=new Tt.XG)}static \u0275fac=function(i){return new(i||r)(e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-action"]],inputs:{data:"data",property:"property",withBitmask:"withBitmask"},decls:1,vars:1,consts:[["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"item-head",3,"data","variableId","withStaticValue","withBitmask","bitmask","onchange"],[1,"action-content"],["class","item-range",4,"ngIf"],[1,"my-form-field",2,"width","278px"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"item-remove"],["mat-icon-button","",1,"_remove",3,"click"],[3,"ngSwitch"],["class","action-params",4,"ngSwitchCase"],[1,"item-range"],[3,"range"],[3,"value"],[1,"action-params"],[1,"my-form-field"],[1,"input-color",2,"width","70px",3,"colorPicker","value","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","cpAlphaChannel","cpOutputFormat","colorPickerChange"],[1,"my-form-field",2,"margin-left","10px"],[1,"my-form-field",2,"padding-left","35px","padding-right","35px"],["numberOnly","","type","text",2,"width","80px",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"padding-right","10px"],["numberOnly","","type","number",2,"width","70px",3,"ngModel","ngModelChange"],[1,"my-form-field","mr10"]],template:function(i,n){1&i&&e.YNc(0,oK,20,18,"div",0),2&i&&e.Q6J("ngForOf",n.actions)},dependencies:[l.sg,l.O5,l.RF,l.n9,I,qn,et,$i,Nr,Yn,Zn,fo,$A,$u,fs,wS,Ni.X$,ii.T9],styles:[".item[_ngcontent-%COMP%]{display:block;width:100%;border-bottom:1px solid rgba(0,0,0,.1);padding:0 0 5px;margin-bottom:3px}.item-head[_ngcontent-%COMP%]{display:block}.remove[_ngcontent-%COMP%]{position:relative;top:4px;right:0}.item-remove[_ngcontent-%COMP%]{float:right}.action-content[_ngcontent-%COMP%]{display:block;padding-top:2px;margin-left:30px}.item-range[_ngcontent-%COMP%]{display:inline-block;min-width:240px;width:240px}.action-params[_ngcontent-%COMP%]{display:inline-block;padding-top:5px}.input-slider[_ngcontent-%COMP%]{display:inline} .input-slider span{font-size:14px!important}"]})}return r})();function aK(r,a){if(1&r&&e._UZ(0,"mat-list-option",7),2&r){const t=a.$implicit;e.Q6J("selected",t.selected)("value",t)}}function sK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-selection-list",4,5),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.extSelected=n)}),e.YNc(2,aK,1,2,"mat-list-option",6),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("ngModel",t.extSelected)("disabled",t.disabled),e.xp6(2),e.Q6J("ngForOf",t.options)}}function lK(r,a){if(1&r&&(e.TgZ(0,"mat-list-option",8),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("selected",t.selected)("value",t),e.xp6(1),e.hij(" ",t.label," ")}}let em=(()=>{class r{disabled;selected=[];options=[];extSelected;constructor(){}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["sel-options"]],inputs:{disabled:"disabled",selected:"selected",options:"options",extSelected:"extSelected"},decls:4,vars:4,consts:[["style","display: inline-block; width: 40px;padding-top: 0px; padding-bottom: 10px;",3,"ngModel","disabled","ngModelChange",4,"ngIf"],[2,"display","inline-block","padding-top","0px","padding-bottom","10px",3,"ngModel","disabled","ngModelChange"],["selGroups",""],["style","font-size: 14px;height: 26px !important;cursor: pointer;","checkboxPosition","before",3,"selected","value",4,"ngFor","ngForOf"],[2,"display","inline-block","width","40px","padding-top","0px","padding-bottom","10px",3,"ngModel","disabled","ngModelChange"],["extGroups",""],["style","height: 26px;cursor: pointer;","checkboxPosition","before",3,"selected","value",4,"ngFor","ngForOf"],["checkboxPosition","before",2,"height","26px","cursor","pointer",3,"selected","value"],["checkboxPosition","before",2,"font-size","14px","height","26px !important","cursor","pointer",3,"selected","value"]],template:function(i,n){1&i&&(e.YNc(0,sK,3,3,"mat-selection-list",0),e.TgZ(1,"mat-selection-list",1,2),e.NdJ("ngModelChange",function(s){return n.selected=s}),e.YNc(3,lK,2,3,"mat-list-option",3),e.qZA()),2&i&&(e.Q6J("ngIf",n.extSelected),e.xp6(1),e.Q6J("ngModel",n.selected)("disabled",n.disabled),e.xp6(2),e.Q6J("ngForOf",n.options))},dependencies:[l.sg,l.O5,et,$i,Sf,Z_]})}return r})(),tm=(()=>{class r{http;translateService;toastr;appService;resewbApiService;resDemoService;resClientService;endPointConfig=bp.C.getURL();storage;constructor(t,i,n,o,s,c,g){this.http=t,this.translateService=i,this.toastr=n,this.appService=o,this.resewbApiService=s,this.resDemoService=c,this.resClientService=g,this.storage=s,!vp.N.serverEnabled||o.isDemoApp?this.storage=c:o.isClientApp&&(this.storage=g)}getUsers(t){let i=new Ia.WM({"Content-Type":"application/json"});return this.http.get(this.endPointConfig+"/api/users",{headers:i,params:t})}setUser(t){return new Za.y(i=>{if(vp.N.serverEnabled){let n=new Ia.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/users",{headers:n,params:t}).subscribe(o=>{i.next(null)},o=>{console.error(o),this.notifySaveError(),i.error(o)})}else i.next(null)})}removeUser(t){return new Za.y(i=>{if(vp.N.serverEnabled){let n=new Ia.WM({"Content-Type":"application/json"});this.http.delete(this.endPointConfig+"/api/users",{headers:n,params:{param:t.username}}).subscribe(o=>{i.next(null)},o=>{console.error(o),this.notifySaveError(),i.error(o)})}else i.next(null)})}getRoles(){return new Za.y(t=>{this.storage.getRoles().subscribe(i=>{t.next(i)},i=>{console.error(i),t.error(i)})})}setRole(t){return new Za.y(i=>{this.storage.setRoles([t]).subscribe(n=>{i.next(n)},n=>{console.error(n),i.error(n)})})}removeRole(t){return new Za.y(i=>{this.storage.removeRoles([t]).subscribe(n=>{i.next(n)},n=>{console.error(n),i.error(n)})})}notifySaveError(){let t="";this.translateService.get("msg.users-save-error").subscribe(i=>{t=i}),this.toastr.error(t,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}static \u0275fac=function(i){return new(i||r)(e.LFG(Ia.eN),e.LFG(Ni.sK),e.LFG(Vf._W),e.LFG(bg.z),e.LFG(jQ.a),e.LFG(VQ.v),e.LFG(JQ.V))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();function cK(r,a){1&r&&(e.TgZ(0,"span",13),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"dlg.gauge-permission-show")))}function AK(r,a){1&r&&(e.TgZ(0,"span",14),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"dlg.gauge-permission-enabled")))}let Sv=(()=>{class r{dialogRef;userService;cdr;settingsService;data;selected=[];extension=[];options=[];destroy$=new An.x;seloptions;constructor(t,i,n,o,s){this.dialogRef=t,this.userService=i,this.cdr=n,this.settingsService=o,this.data=s}ngAfterViewInit(){this.isRolePermission()?this.userService.getRoles().pipe((0,f.U)(t=>t.sort((i,n)=>i.index-n.index)),(0,On.R)(this.destroy$)).subscribe(t=>{this.options=t?.map(i=>({id:i.id,label:i.name})),this.selected=this.options.filter(i=>this.data.permissionRoles?.enabled?.includes(i.id)),this.extension=this.data.mode?null:this.options.filter(i=>this.data.permissionRoles?.show?.includes(i.id))},t=>{console.error("get Roles err: "+t)}):(this.selected=Gc.wt.ValueToGroups(this.data.permission),this.extension=this.data.mode?null:Gc.wt.ValueToGroups(this.data.permission,!0),this.options=Gc.wt.Groups),this.cdr.detectChanges()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}isRolePermission(){return this.settingsService.getSettings()?.userRole}onNoClick(){this.dialogRef.close()}onOkClick(){this.isRolePermission()?(this.data.permissionRoles||(this.data.permissionRoles={show:null,enabled:null}),this.data.permissionRoles.enabled=this.seloptions.selected?.map(t=>t.id),this.data.permissionRoles.show="onlyShow"===this.data.mode?this.seloptions.selected?.map(t=>t.id):this.seloptions.extSelected?.map(t=>t.id)):(this.data.permission=Gc.wt.GroupsToValue(this.seloptions.selected),this.data.permission+=Gc.wt.GroupsToValue("onlyShow"===this.data.mode?this.seloptions.selected:this.seloptions.extSelected,!0)),this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(tm),e.Y36(e.sBO),e.Y36(Rh.g),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-permission-dialog"]],viewQuery:function(i,n){if(1&i&&e.Gf(em,5),2&i){let o;e.iGM(o=e.CRH())&&(n.seloptions=o.first)}},decls:22,vars:17,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block","mb10"],["class","label label-show",4,"ngIf"],["class","label label-enable",4,"ngIf"],[1,"label"],[1,"block",3,"selected","options","extSelected"],["seloptions",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[1,"label","label-show"],[1,"label","label-enable"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4),e.YNc(8,cK,3,3,"span",5),e.YNc(9,AK,3,3,"span",6),e.TgZ(10,"span",7),e._uU(11),e.ALo(12,"translate"),e.qZA(),e._UZ(13,"sel-options",8,9),e.qZA()(),e.TgZ(15,"div",10)(16,"button",11),e.NdJ("click",function(){return n.onNoClick()}),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"button",12),e.NdJ("click",function(){return n.onOkClick()}),e._uU(20),e.ALo(21,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,9,"dlg.gauge-permission-title")),e.xp6(6),e.Q6J("ngIf",!n.data.mode||"onlyShow"===n.data.mode),e.xp6(1),e.Q6J("ngIf",!n.data.mode||"onlyEnable"===n.data.mode),e.xp6(2),e.Oqu(e.lcZ(12,11,"dlg.gauge-permission-label")),e.xp6(2),e.Q6J("selected",n.selected)("options",n.options)("extSelected",n.extension),e.xp6(4),e.Oqu(e.lcZ(18,13,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(21,15,"dlg.ok")))},dependencies:[l.O5,Yn,Qr,Kr,Ir,Zn,zr,em,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:350px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .label-show[_ngcontent-%COMP%]{width:45px;text-align:center}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .label-enable[_ngcontent-%COMP%]{width:70px}"]})}return r})();const dK=["flexhead"],uK=["flexevent"],hK=["flexaction"];function pK(r,a){1&r&&(e.TgZ(0,"mat-icon",22),e._uU(1,"lock"),e.qZA())}function gK(r,a){1&r&&(e.TgZ(0,"mat-icon",22),e._uU(1,"lock_open"),e.qZA())}function fK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",23)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",24),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.text=n)}),e.ALo(5,"translate"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"gauges.property-text")),e.xp6(2),e.s9C("placeholder",e.lcZ(5,5,"gauges.property-language-text")),e.Q6J("ngModel",t.property.text)}}function mK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",25)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-slide-toggle",26),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.readonly=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-readonly")),e.xp6(2),e.Q6J("ngModel",t.property.readonly)}}function _K(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",27)(1,"button",28),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddInput())}),e.TgZ(2,"mat-icon"),e._uU(3,"add_circle_outline"),e.qZA()()()}}function vK(r,a){if(1&r&&e._UZ(0,"flex-widget-property",29),2&r){const t=e.oxw();e.Q6J("property",t.property)}}function yK(r,a){if(1&r&&e._UZ(0,"flex-head",30,31),2&r){const t=e.oxw();e.Q6J("data",t.data)("property",t.property)("withBitmask",t.withBitmask)}}function wK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",4),e.ALo(1,"translate"),e.TgZ(2,"div",5)(3,"div",27)(4,"button",32),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddEvent())}),e.ALo(5,"translate"),e.TgZ(6,"mat-icon"),e._uU(7,"add_circle_outline"),e.qZA()()(),e.TgZ(8,"div",15),e._UZ(9,"flex-event",33,34),e.qZA()()()}if(2&r){const t=e.oxw();e.s9C("label",e.lcZ(1,7,"gauges.property-events")),e.xp6(4),e.s9C("matTooltip",e.lcZ(5,9,"gauges.property-tooltip-add-event")),e.xp6(5),e.Q6J("property",t.property)("views",t.views)("data",t.data)("inputs",t.inputs)("scripts",t.scripts)}}function CK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",4),e.ALo(1,"translate"),e.TgZ(2,"div",5)(3,"div",27)(4,"button",28),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddAction())}),e.TgZ(5,"mat-icon"),e._uU(6,"add_circle_outline"),e.qZA()()(),e.TgZ(7,"div",15),e._UZ(8,"flex-action",35,36),e.qZA()()()}if(2&r){const t=e.oxw();e.s9C("label",e.lcZ(1,4,"gauges.property-actions")),e.xp6(8),e.Q6J("data",t.data)("property",t.property)("withBitmask",t.withBitmask)}}let bS=(()=>{class r{dialog;dialogRef;settingsService;cdr;data;name;flexHead;flexEvent;flexAction;slideView=!0;slideActionView=!0;withBitmask=!1;property;dialogType=Do.RangeWithAlarm;eventsSupported;actionsSupported;views;defaultValue;inputs;scripts;constructor(t,i,n,o,s){this.dialog=t,this.dialogRef=i,this.settingsService=n,this.cdr=o,this.data=s,this.dialogType=this.data.dlgType,this.eventsSupported=this.data.withEvents,this.actionsSupported=this.data.withActions,this.views=this.data.views,this.inputs=this.data.inputs,this.scripts=this.data.scripts,this.property=JSON.parse(JSON.stringify(this.data.settings.property)),this.property||(this.property=new Tt.Hy)}ngAfterViewInit(){this.defaultValue=this.data.default,!this.isWidget()&&!1!==this.data.withProperty&&(this.dialogType===Do.Input?this.flexHead.withProperty=Xd.input:this.dialogType===Do.ValueAndUnit?this.flexHead.withProperty=Xd.output:(this.flexHead.defaultValue=this.defaultValue,this.flexHead.withProperty=Xd.range,this.dialogType===Do.ValueWithRef?this.flexHead.withProperty=Xd.text:this.dialogType===Do.Step?this.flexHead.withProperty=Xd.step:this.dialogType===Do.MinMax&&(this.flexHead.withProperty=Xd.minmax))),this.data.withBitmask&&(this.withBitmask=this.data.withBitmask)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.settings.property=this.isWidget()?this.property:this.flexHead?.getProperty(),this.flexEvent&&(this.data.settings.property.events=this.flexEvent.getEvents()),this.flexAction&&(this.data.settings.property.actions=this.flexAction.getActions()),this.property.readonly?this.property.readonly=!0:delete this.property.readonly}onAddInput(){this.flexHead.onAddInput()}onAddEvent(){this.flexEvent.onAddEvent()}onAddAction(){this.flexAction.onAddAction()}onRangeViewToggle(){this.flexHead.onRangeViewToggle(this.slideView)}onActionRangeViewToggle(){this.flexAction.onRangeViewToggle(this.slideActionView)}isToolboxToShow(){return(this.dialogType===Do.RangeWithAlarm||this.dialogType===Do.Range||this.dialogType===Do.Step||this.dialogType===Do.RangeAndText)&&!1!==this.data.withProperty}isRangeToShow(){return this.dialogType===Do.RangeWithAlarm||this.dialogType===Do.Range||this.dialogType===Do.RangeAndText}isTextToShow(){return this.data.languageTextEnabled||this.dialogType===Do.RangeAndText}isAlarmToShow(){return this.dialogType===Do.RangeWithAlarm}isReadonlyToShow(){return this.dialogType===Do.Step}onEditPermission(){this.dialog.open(Sv,{position:{top:"60px"},data:{permission:this.property.permission,permissionRoles:this.property.permissionRoles}}).afterClosed().subscribe(i=>{i&&(this.property.permission=i.permission,this.property.permissionRoles=i.permissionRoles),this.cdr.detectChanges()})}isWidget(){return this.property.type}isRolePermission(){return this.settingsService.getSettings()?.userRole}havePermission(){return this.isRolePermission()?this.property.permissionRoles?.show?.length||this.property.permissionRoles?.enabled?.length:this.property.permission}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(_r),e.Y36(Rh.g),e.Y36(e.sBO),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["gauge-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(dK,5),e.Gf(uK,5),e.Gf(hK,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.flexHead=o.first),e.iGM(o=e.CRH())&&(n.flexEvent=o.first),e.iGM(o=e.CRH())&&(n.flexAction=o.first)}},inputs:{name:"name"},decls:38,vars:27,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],[2,"width","100%"],[3,"label"],[1,"mat-tab-container"],[1,"my-form-field"],["type","text",2,"width","220px",3,"ngModel","ngModelChange"],[1,"my-form-field","ml10",2,"vertical-align","bottom"],[1,"my-form-field-permission","pointer",2,"text-align","center",3,"click"],["class","header-icon","style","line-height: 28px;",4,"ngIf","ngIfElse"],["unlock",""],["class","my-form-field ml10",4,"ngIf"],["class","my-form-field","style","padding-left: 100px",4,"ngIf"],["class","toolbox",4,"ngIf"],["mat-dialog-content","",2,"overflow","visible","width","100%"],[3,"property",4,"ngIf"],[3,"data","property","withBitmask",4,"ngIf"],[3,"label",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close","click"],[1,"header-icon",2,"line-height","28px"],[1,"my-form-field","ml10"],["type","text",2,"width","270px",3,"ngModel","placeholder","ngModelChange"],[1,"my-form-field",2,"padding-left","100px"],["color","primary",3,"ngModel","ngModelChange"],[1,"toolbox"],["mat-icon-button","",3,"click"],[3,"property"],[3,"data","property","withBitmask"],["flexhead",""],["mat-icon-button","",3,"matTooltip","click"],[2,"padding-bottom","5px",3,"property","views","data","inputs","scripts"],["flexevent",""],[2,"padding-bottom","5px",3,"data","property","withBitmask"],["flexaction",""]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.qZA(),e.TgZ(3,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(4,"clear"),e.qZA(),e.TgZ(5,"mat-tab-group",3)(6,"mat-tab",4),e.ALo(7,"translate"),e.TgZ(8,"div",5)(9,"div")(10,"div",6)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"input",7),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s}),e.qZA()(),e.TgZ(15,"div",8)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"div",9),e.NdJ("click",function(){return n.onEditPermission()}),e.YNc(20,pK,2,0,"mat-icon",10),e.YNc(21,gK,2,0,"ng-template",null,11,e.W1O),e.qZA()(),e.YNc(23,fK,6,7,"div",12),e.YNc(24,mK,5,4,"div",13),e.YNc(25,_K,4,0,"div",14),e.qZA(),e.TgZ(26,"div",15),e.YNc(27,vK,1,1,"flex-widget-property",16),e.YNc(28,yK,2,3,"flex-head",17),e.qZA()()(),e.YNc(29,wK,11,11,"mat-tab",18),e.YNc(30,CK,10,6,"mat-tab",18),e.qZA(),e.TgZ(31,"div",19)(32,"button",20),e.NdJ("click",function(){return n.onNoClick()}),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"button",21),e.NdJ("click",function(){return n.onOkClick()}),e._uU(36),e.ALo(37,"translate"),e.qZA()()()),2&i){const o=e.MAs(22);e.xp6(2),e.Oqu(n.data.title),e.xp6(4),e.s9C("label",e.lcZ(7,17,"gauges.property-props")),e.xp6(6),e.Oqu(e.lcZ(13,19,"gauges.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(18,21,"gauges.property-permission")),e.xp6(3),e.Q6J("ngIf",n.havePermission())("ngIfElse",o),e.xp6(3),e.Q6J("ngIf",n.isTextToShow()),e.xp6(1),e.Q6J("ngIf",n.isReadonlyToShow()),e.xp6(1),e.Q6J("ngIf",n.isToolboxToShow()),e.xp6(2),e.Q6J("ngIf",n.isWidget()),e.xp6(1),e.Q6J("ngIf",!n.isWidget()),e.xp6(1),e.Q6J("ngIf",n.eventsSupported),e.xp6(1),e.Q6J("ngIf",n.actionsSupported),e.xp6(3),e.Oqu(e.lcZ(34,23,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(37,25,"dlg.ok"))}},styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:760px;position:relative}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{float:right;line-height:44px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .input-text .mat-form-field-infix{padding-top:5px;padding-bottom:0}[_nghost-%COMP%] .mat-dialog-container{display:inline-table!important}[_nghost-%COMP%] .mat-tab-label{height:34px!important}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%]{min-height:300px;height:60vmin;overflow-y:auto;overflow-x:hidden;padding-top:15px}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:block}"],changeDetection:0})}return r})();var Do=function(r){return r[r.Range=0]="Range",r[r.RangeAndText=1]="RangeAndText",r[r.RangeWithAlarm=2]="RangeWithAlarm",r[r.ValueAndUnit=3]="ValueAndUnit",r[r.ValueWithRef=4]="ValueWithRef",r[r.Step=5]="Step",r[r.MinMax=6]="MinMax",r[r.Chart=7]="Chart",r[r.Gauge=8]="Gauge",r[r.Pipe=9]="Pipe",r[r.Slider=10]="Slider",r[r.Switch=11]="Switch",r[r.Graph=12]="Graph",r[r.Iframe=13]="Iframe",r[r.Table=14]="Table",r[r.Input=15]="Input",r[r.Panel=16]="Panel",r[r.Video=17]="Video",r[r.Scheduler=18]="Scheduler",r}(Do||{});class dc extends uo{static TypeTag="svg-ext-html_button";static LabelTag="HtmlButton";static prefixB="B-HXB_";static prefixRect="svg_";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show,blink:Tt.KG.blink};constructor(){super()}static getSignals(a){let t=[];return a?.variableId&&t.push(a.variableId),a?.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getDialogType(){return Do.RangeAndText}static getActions(a){return this.actionsType}static initElement(a,t){let i=document.getElementById(a.id);if(i&&a.property){let n=ii.cQ.searchTreeStartWith(i,this.prefixB);n&&(n.innerHTML=t||a.property.text||a.name||" ")}return i}static initElementColor(a,t,i){let n=ii.cQ.searchTreeStartWith(i,this.prefixB);if(n){i.setAttribute("fill","rgba(0, 0, 0, 0)"),i.setAttribute("stroke","rgba(0, 0, 0, 0)");for(let o=0;o=1&&(s=ii.cQ.searchTreeStartWith(t.node,this.prefixB)),s){if(o)return void(s.textContent=i.value);let c=parseFloat(i.value);if(Number.isNaN(c)&&(c=Number(i.value)),a.property){let g=new Tt.I9;if(a.property.ranges){for(let B=0;B=c&&(g.fill=a.property.ranges[B].color,g.stroke=a.property.ranges[B].stroke);g.fill&&(s.style.backgroundColor=g.fill),g.stroke&&(s.style.color=g.stroke)}a.property.actions&&a.property.actions.forEach(B=>{B.variableId===i.id&&dc.processAction(B,t,s,c,n,g)})}}}catch(s){console.error(s)}}static getFillColor(a){if(a.children&&a.children[0]){let t=ii.cQ.searchTreeStartWith(a,this.prefixB);if(t){let i=t.style["background-color"];if(i||(i=t.getAttribute("fill")),i)return i}}return a.getAttribute("fill")}static getStrokeColor(a){if(a.children&&a.children[0]){let t=ii.cQ.searchTreeStartWith(a,this.prefixB);if(t){let i=t.style.color;if(i||(i=t.getAttribute("stroke")),i)return i}}return a.getAttribute("stroke")}static processAction(a,t,i,n,o,s){if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=n&&a.range.max>=n)if(i===t)i.style.display="none";else{let c=SVG.adopt(t.node);this.runActionHide(c,a.type,o)}}else if(this.actionsType[a.type]===this.actionsType.show){if(a.range.min<=n&&a.range.max>=n)if(i===t)i.style.display="unset";else{let c=SVG.adopt(t.node);this.runActionShow(c,a.type,o)}}else this.actionsType[a.type]===this.actionsType.blink&&this.checkActionBlink(i,a,o,a.range.min<=n&&a.range.max>=n,!0,s)}static \u0275fac=function(t){return new(t||dc)};static \u0275cmp=e.Xpm({type:dc,selectors:[["html-button"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}function bK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-option",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.data.item.image="")}),e.TgZ(1,"mat-icon",27),e._uU(2),e.qZA()()}if(2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(2),e.Oqu(t)}}function xK(r,a){if(1&r&&(e.TgZ(0,"mat-option",15),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function BK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",3)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",12),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.item.link=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"dlg.menuitem-address")),e.xp6(2),e.Q6J("ngModel",t.data.item.link)}}function EK(r,a){if(1&r&&(e.TgZ(0,"mat-option",15),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function MK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.link=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"dlg.menuitem-address")),e.xp6(2),e.Q6J("ngModel",t.link)}}function DK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",29)(1,"div",30)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",31),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.text=n)}),e.qZA()(),e.TgZ(6,"div",30)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",32),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.view=n)}),e.YNc(11,EK,2,2,"mat-option",14),e.TgZ(12,"mat-option",15),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"mat-option",15),e._uU(16),e.ALo(17,"translate"),e.qZA()()(),e.YNc(18,MK,5,4,"div",33),e.TgZ(19,"button",20),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(2);return e.KtG(s.onDeleteChild(o))}),e.TgZ(20,"mat-icon"),e._uU(21,"clear"),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,10,"dlg.menuitem-text")),e.xp6(2),e.Q6J("ngModel",t.text),e.xp6(3),e.Oqu(e.lcZ(9,12,"dlg.menuitem-view")),e.xp6(2),e.Q6J("value",t.view),e.xp6(1),e.Q6J("ngForOf",i.data.views),e.xp6(1),e.Q6J("value",i.linkAddress),e.xp6(1),e.hij("[",e.lcZ(14,14,"dlg.menuitem-link"),"]"),e.xp6(2),e.Q6J("value",i.linkAlarms),e.xp6(1),e.hij("[",e.lcZ(17,16,"dlg.menuitem-alarms"),"]"),e.xp6(2),e.Q6J("ngIf","[link]"===t.view)}}function TK(r,a){if(1&r&&(e.TgZ(0,"div"),e.YNc(1,DK,22,18,"div",28),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngForOf",t.data.item.children)}}ce(1305);let IK=(()=>{class r{projectService;userService;cdr;settingsService;dialogRef;data;selected=[];options=[];icons$;filteredIcons$;filterText="";filterTextSubject=new ba.X("");linkAddress=Tt.Un.address;linkAlarms=Tt.Un.alarms;destroy$=new An.x;seloptions;constructor(t,i,n,o,s,c){this.projectService=t,this.userService=i,this.cdr=n,this.settingsService=o,this.dialogRef=s,this.data=c,this.data.item.children=this.data.item.children||[],this.icons$=(0,lr.of)(Tg.MaterialIconsRegular).pipe((0,f.U)(g=>g.split("\n")),(0,f.U)(g=>g.map(B=>B.split(" ")[0])),(0,f.U)(g=>g.filter(B=>!!B))),this.filteredIcons$=Vl([this.icons$,this.filterTextSubject.asObservable()]).pipe((0,f.U)(([g,B])=>g.filter(O=>O.toLowerCase().includes(B.toLowerCase()))))}ngAfterViewInit(){this.isRolePermission()?this.userService.getRoles().pipe((0,f.U)(t=>t.sort((i,n)=>i.index-n.index)),(0,On.R)(this.destroy$)).subscribe(t=>{this.options=t?.map(i=>({id:i.id,label:i.name})),this.selected=this.options.filter(i=>this.data.permissionRoles?.enabled?.includes(i.id))},t=>{console.error("get Roles err: "+t)}):(this.selected=Gc.wt.ValueToGroups(this.data.permission),this.options=Gc.wt.Groups),this.cdr.detectChanges()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}isRolePermission(){return this.settingsService.getSettings()?.userRole}onNoClick(){this.dialogRef.close()}onOkClick(){this.isRolePermission()?(this.data.permissionRoles||(this.data.permissionRoles={enabled:null}),this.data.permissionRoles.enabled=this.seloptions.selected?.map(t=>t.id)):this.data.permission=Gc.wt.GroupsToValue(this.seloptions.selected),this.dialogRef.close(this.data),this.data.item.children=this.data.item.children||[]}onSetImage(t){if(t.target.files){let i=t.target.files[0].name,n={type:i.split(".").pop().toLowerCase(),name:i.split("/").pop(),data:null},o=new FileReader;o.onload=()=>{try{n.data=o.result,this.projectService.uploadFile(n).subscribe(s=>{this.data.item.image=s.location,this.data.item.icon=null,this.cdr.detectChanges()})}catch(s){console.error(s)}},"svg"===n.type?o.readAsText(t.target.files[0]):o.readAsDataURL(t.target.files[0])}}onFilterChange(){this.filterTextSubject.next(this.filterText)}onAddChild(){const t=new Tt.fH;t.id=ii.cQ.getShortGUID(),t.text="New Submenu Item",this.data.item.children=this.data.item.children||[],this.data.item.children.push(t),console.log("Added child:",t,"Total children:",this.data.item.children),this.cdr.detectChanges()}onDeleteChild(t){this.data.item.children.splice(t,1),this.cdr.detectChanges()}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(tm),e.Y36(e.sBO),e.Y36(Rh.g),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-layout-menu-item-property"]],viewQuery:function(i,n){if(1&i&&e.Gf(em,5),2&i){let o;e.iGM(o=e.CRH())&&(n.seloptions=o.first)}},decls:66,vars:52,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block","mb10"],[2,"width","60px","height","30px",3,"value","valueChange"],["iconsel",""],[3,"value","click"],["type","file","accept","image/png|jpg|svg",2,"display","none",3,"change"],["imagefile",""],[1,"my-form-field"],["matInput","","type","text","autocomplete","off",3,"ngModel","placeholder","ngModelChange","input","click","keydown"],["style","display: inline-block !important;",3,"value","click",4,"ngFor","ngForOf"],["type","text",2,"width","300px",3,"ngModel","ngModelChange"],[2,"width","300px",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","my-form-field block mb10",4,"ngIf"],[3,"selected","options"],["seloptions",""],[1,"my-form-field","block","mb10","submenu-header"],["mat-icon-button","",3,"click"],["aria-label","Add"],[4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[2,"display","inline-block !important",3,"value","click"],[1,""],["class","submenu-item",4,"ngFor","ngForOf"],[1,"submenu-item"],[1,"my-form-field","inbk","mr10"],["type","text",2,"width","200px",3,"ngModel","ngModelChange"],[2,"width","200px",3,"value","valueChange"],["class","my-form-field inbk mr10",4,"ngIf"]],template:function(i,n){if(1&i){const o=e.EpF();e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",4,5),e.NdJ("valueChange",function(c){return n.data.item.icon=c}),e.TgZ(13,"mat-select-trigger")(14,"mat-icon"),e._uU(15),e.qZA()(),e.TgZ(16,"mat-option",6),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(20);return c.value="",e.KtG(c.click())}),e._uU(17),e.ALo(18,"translate"),e.TgZ(19,"input",7,8),e.NdJ("change",function(c){return n.onSetImage(c)}),e.qZA()(),e.TgZ(21,"mat-option")(22,"div",9)(23,"input",10),e.NdJ("ngModelChange",function(c){return n.filterText=c})("input",function(){return n.onFilterChange()})("click",function(c){return c.stopPropagation()})("keydown",function(c){return c.stopPropagation()}),e.ALo(24,"translate"),e.qZA()()(),e.YNc(25,bK,3,2,"mat-option",11),e.ALo(26,"async"),e.qZA()(),e.TgZ(27,"div",3)(28,"span"),e._uU(29),e.ALo(30,"translate"),e.qZA(),e.TgZ(31,"input",12),e.NdJ("ngModelChange",function(c){return n.data.item.text=c}),e.qZA()(),e.TgZ(32,"div",3)(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA(),e.TgZ(36,"mat-select",13),e.NdJ("valueChange",function(c){return n.data.item.view=c}),e.YNc(37,xK,2,2,"mat-option",14),e.TgZ(38,"mat-option",15),e._uU(39),e.ALo(40,"translate"),e.qZA(),e.TgZ(41,"mat-option",15),e._uU(42),e.ALo(43,"translate"),e.qZA()()(),e.YNc(44,BK,5,4,"div",16),e.TgZ(45,"div",3)(46,"span"),e._uU(47),e.ALo(48,"translate"),e.qZA(),e._UZ(49,"sel-options",17,18),e.qZA(),e.TgZ(51,"div",19)(52,"button",20),e.NdJ("click",function(){return n.onAddChild()}),e.TgZ(53,"mat-icon",21),e._uU(54,"control_point"),e.qZA(),e.TgZ(55,"span"),e._uU(56),e.ALo(57,"translate"),e.qZA()()(),e.YNc(58,TK,2,1,"div",22),e.qZA(),e.TgZ(59,"div",23)(60,"button",24),e.NdJ("click",function(){return n.onNoClick()}),e._uU(61),e.ALo(62,"translate"),e.qZA(),e.TgZ(63,"button",25),e.NdJ("click",function(){return n.onOkClick()}),e._uU(64),e.ALo(65,"translate"),e.qZA()()()}if(2&i){const o=e.MAs(12);e.xp6(2),e.Oqu(e.lcZ(3,26,"dlg.menuitem-title")),e.xp6(7),e.Oqu(e.lcZ(10,28,"dlg.menuitem-icon")),e.xp6(2),e.Q6J("value",n.data.item.icon),e.xp6(4),e.Oqu(o.value),e.xp6(1),e.Q6J("value","image"),e.xp6(1),e.hij(" ",e.lcZ(18,30,"dlg.menuitem-image")," "),e.xp6(6),e.s9C("placeholder",e.lcZ(24,32,"dlg.menuitem-icons-filter")),e.Q6J("ngModel",n.filterText),e.xp6(2),e.Q6J("ngForOf",e.lcZ(26,34,n.filteredIcons$)),e.xp6(4),e.Oqu(e.lcZ(30,36,"dlg.menuitem-text")),e.xp6(2),e.Q6J("ngModel",n.data.item.text),e.xp6(3),e.Oqu(e.lcZ(35,38,"dlg.menuitem-view")),e.xp6(2),e.Q6J("value",n.data.item.view),e.xp6(1),e.Q6J("ngForOf",n.data.views),e.xp6(1),e.Q6J("value",n.linkAddress),e.xp6(1),e.hij("[",e.lcZ(40,40,"dlg.menuitem-link"),"]"),e.xp6(2),e.Q6J("value",n.linkAlarms),e.xp6(1),e.hij("[",e.lcZ(43,42,"dlg.menuitem-alarms"),"]"),e.xp6(2),e.Q6J("ngIf","[link]"===n.data.item.view),e.xp6(3),e.Oqu(e.lcZ(48,44,"dlg.useraccess-groups")),e.xp6(2),e.Q6J("selected",n.selected)("options",n.options),e.xp6(7),e.Oqu(e.lcZ(57,46,"dlg.menuitem-add-submenu")),e.xp6(2),e.Q6J("ngIf",null==n.data.item.children?null:n.data.item.children.length),e.xp6(3),e.Oqu(e.lcZ(62,48,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(65,50,"dlg.ok"))}},dependencies:[l.sg,l.O5,I,et,$i,Nr,Yn,Qr,Kr,Ir,Zn,qd,fo,PB,zr,em,l.Ov,Ni.X$],styles:["[_nghost-%COMP%] mat-option[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] mat-option[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:calc(100% - 17px);margin-left:5px;height:13px}[_nghost-%COMP%] .submenu-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;margin-left:10px}"]})}return r})();function kK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-option",23),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.item.image="")}),e.TgZ(1,"mat-icon",24),e._uU(2),e.qZA()()}if(2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(2),e.Oqu(t)}}function QK(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"item.headertype-"+t)," ")}}let SK=(()=>{class r{projectService;dialogRef;data;item;icons$;filteredIcons$;filterText="";filterTextSubject=new ba.X("");headerType=["button","label","image"];defaultColor=ii.cQ.defaultColor;constructor(t,i,n){this.projectService=t,this.dialogRef=i,this.data=n,this.item=n,this.icons$=(0,lr.of)(Tg.MaterialIconsRegular).pipe((0,f.U)(o=>o.split("\n")),(0,f.U)(o=>o.map(s=>s.split(" ")[0])),(0,f.U)(o=>o.filter(s=>!!s))),this.filteredIcons$=Vl([this.icons$,this.filterTextSubject.asObservable()]).pipe((0,f.U)(([o,s])=>o.filter(c=>c.toLowerCase().includes(s.toLowerCase()))))}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.item)}onFilterChange(){this.filterTextSubject.next(this.filterText)}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-layout-header-item-property"]],decls:57,vars:64,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"force-lbk","pointer-move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block","mb10"],[1,"icons-selector",3,"value","valueChange"],["iconsel",""],[1,"my-form-field"],["matInput","","type","text","autocomplete","off",3,"ngModel","placeholder","ngModelChange","input","click","keydown"],["style","display: inline-block !important;",3,"value","click",4,"ngFor","ngForOf"],[1,"block","mt10"],[1,"my-form-field","ftl"],[2,"width","120px",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"ftr","ml10"],[1,"my-form-field","lbk","field-input-60"],["numberOnly","","min","0","step","1","type","number",3,"ngModel","ngModelChange"],[1,"my-form-field","lbk","field-input-60","ml5"],[1,"my-form-field","ftl","mt10"],[1,"input-color",2,"width","126px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","ftr","mt10"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[2,"display","inline-block !important",3,"value","click"],[1,""],[3,"value"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",4,5),e.NdJ("valueChange",function(s){return n.item.icon=s}),e.TgZ(13,"mat-select-trigger")(14,"mat-icon"),e._uU(15),e.qZA()(),e.TgZ(16,"mat-option")(17,"div",6)(18,"input",7),e.NdJ("ngModelChange",function(s){return n.filterText=s})("input",function(){return n.onFilterChange()})("click",function(s){return s.stopPropagation()})("keydown",function(s){return s.stopPropagation()}),e.ALo(19,"translate"),e.qZA()()(),e.YNc(20,kK,3,2,"mat-option",8),e.ALo(21,"async"),e.qZA()(),e.TgZ(22,"div",9)(23,"div",10)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"mat-select",11),e.NdJ("ngModelChange",function(s){return n.item.type=s}),e.YNc(28,QK,3,4,"mat-option",12),e.qZA()(),e.TgZ(29,"div",13)(30,"div",14)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"input",15),e.NdJ("ngModelChange",function(s){return n.item.marginLeft=s}),e.qZA()(),e.TgZ(35,"div",16)(36,"span"),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"input",15),e.NdJ("ngModelChange",function(s){return n.item.marginRight=s}),e.qZA()()()(),e.TgZ(40,"div",17)(41,"span"),e._uU(42),e.ALo(43,"translate"),e.qZA(),e.TgZ(44,"input",18),e.NdJ("colorPickerChange",function(s){return n.item.bkcolor=s}),e.qZA()(),e.TgZ(45,"div",19)(46,"span"),e._uU(47),e.ALo(48,"translate"),e.qZA(),e.TgZ(49,"input",18),e.NdJ("colorPickerChange",function(s){return n.item.fgcolor=s}),e.qZA()()(),e.TgZ(50,"div",20)(51,"button",21),e.NdJ("click",function(){return n.onNoClick()}),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"button",22),e.NdJ("click",function(){return n.onOkClick()}),e._uU(55),e.ALo(56,"translate"),e.qZA()()()),2&i){const o=e.MAs(12);e.xp6(2),e.Oqu(e.lcZ(3,42,"dlg.headeritem-title")),e.xp6(7),e.Oqu(e.lcZ(10,44,"dlg.headeritem-icon")),e.xp6(2),e.Q6J("value",n.item.icon),e.xp6(4),e.Oqu(o.value),e.xp6(3),e.s9C("placeholder",e.lcZ(19,46,"dlg.headeritem-icons-filter")),e.Q6J("ngModel",n.filterText),e.xp6(2),e.Q6J("ngForOf",e.lcZ(21,48,n.filteredIcons$)),e.xp6(5),e.Oqu(e.lcZ(26,50,"dlg.layout-lbl-type")),e.xp6(2),e.Q6J("ngModel",n.item.type),e.xp6(1),e.Q6J("ngForOf",n.headerType),e.xp6(4),e.Oqu(e.lcZ(33,52,"dlg.layout-lbl-margin-left")),e.xp6(2),e.Q6J("ngModel",n.item.marginLeft),e.xp6(3),e.Oqu(e.lcZ(38,54,"dlg.layout-lbl-margin-right")),e.xp6(2),e.Q6J("ngModel",n.item.marginRight),e.xp6(3),e.Oqu(e.lcZ(43,56,"dlg.layout-nav-bkcolor")),e.xp6(2),e.Udp("background",n.item.bkcolor),e.Q6J("colorPicker",n.item.bkcolor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(3),e.Oqu(e.lcZ(48,58,"dlg.layout-nav-fgcolor")),e.xp6(2),e.Udp("background",n.item.fgcolor),e.Q6J("colorPicker",n.item.fgcolor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(3),e.Oqu(e.lcZ(53,60,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(56,62,"dlg.ok"))}},dependencies:[l.sg,I,qn,et,$n,$i,Nr,Yn,Qr,Kr,Ir,Zn,qd,fo,PB,$A,zr,fs,l.Ov,Ni.X$],styles:["[_nghost-%COMP%] .icons-selector[_ngcontent-%COMP%]{width:60px;height:30px}[_nghost-%COMP%] .field-input-60[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:60px}"]})}return r})();function PK(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function FK(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"item.overlaycolor-"+t.value)," ")}}function OK(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",10)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",8),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.layout.loginoverlaycolor=n)}),e.YNc(5,FK,3,4,"mat-option",9),e.ALo(6,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"dlg.layout-lbl-login-overlay-color")),e.xp6(2),e.Q6J("value",t.data.layout.loginoverlaycolor),e.xp6(1),e.Q6J("ngForOf",e.lcZ(6,5,t.loginOverlayColor))}}function LK(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function RK(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function YK(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function NK(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"sidenav.title")))}function UK(r,a){if(1&r&&e._UZ(0,"img",73),2&r){const t=e.oxw();e.s9C("src",t.data.layout.navigation.logo,e.LSH)}}function zK(r,a){if(1&r&&e._UZ(0,"img",93),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function HK(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function GK(r,a){if(1&r&&(e.TgZ(0,"div",90),e.YNc(1,zK,1,1,"img",91),e.YNc(2,HK,2,1,"mat-icon",92),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon)}}function ZK(r,a){if(1&r&&(e.TgZ(0,"div",94)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(t.text)}}function JK(r,a){if(1&r&&e._UZ(0,"img",93),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function jK(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function VK(r,a){if(1&r&&(e.TgZ(0,"div",95),e.YNc(1,JK,1,1,"img",91),e.YNc(2,jK,2,1,"mat-icon",92),e.TgZ(3,"span"),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function WK(r,a){if(1&r&&e._UZ(0,"img",93),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function KK(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function qK(r,a){if(1&r&&(e.TgZ(0,"div",96),e.YNc(1,WK,1,1,"img",91),e.YNc(2,KK,2,1,"mat-icon",92),e.TgZ(3,"span",97),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function XK(r,a){if(1&r&&(e.TgZ(0,"mat-icon",98),e._uU(1),e.qZA()),2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.isExpanded(t)?"expand_less":"expand_more"," ")}}function $K(r,a){if(1&r&&e._UZ(0,"img",93),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function eq(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function tq(r,a){if(1&r&&(e.TgZ(0,"div",90),e.YNc(1,$K,1,1,"img",91),e.YNc(2,eq,2,1,"mat-icon",92),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon)}}function iq(r,a){if(1&r&&(e.TgZ(0,"div",94)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(t.text)}}function nq(r,a){if(1&r&&e._UZ(0,"img",93),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function rq(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function oq(r,a){if(1&r&&(e.TgZ(0,"div",95),e.YNc(1,nq,1,1,"img",91),e.YNc(2,rq,2,1,"mat-icon",92),e.TgZ(3,"span"),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function aq(r,a){if(1&r&&e._UZ(0,"img",93),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function sq(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function lq(r,a){if(1&r&&(e.TgZ(0,"div",96),e.YNc(1,aq,1,1,"img",91),e.YNc(2,sq,2,1,"mat-icon",92),e.TgZ(3,"span",97),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function cq(r,a){if(1&r&&(e.TgZ(0,"mat-list-item",101)(1,"button",102),e.YNc(2,tq,3,2,"div",76),e.YNc(3,iq,3,1,"div",77),e.YNc(4,oq,5,3,"div",78),e.YNc(5,lq,5,3,"div",79),e.qZA()()),2&r){const t=e.oxw(3);e.Udp("color",t.data.layout.navigation.fgcolor),e.Q6J("ngClass","menu-item-"+t.data.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitch",t.data.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitchCase","icon"),e.xp6(1),e.Q6J("ngSwitchCase","text"),e.xp6(1),e.Q6J("ngSwitchCase","block"),e.xp6(1),e.Q6J("ngSwitchCase","inline")}}function Aq(r,a){if(1&r&&(e.TgZ(0,"mat-list",99),e.YNc(1,cq,6,8,"mat-list-item",100),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",t.children)}}function dq(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"mat-list-item",74),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.toggleSubMenu(o))}),e.TgZ(2,"button",75),e.YNc(3,GK,3,2,"div",76),e.YNc(4,ZK,3,1,"div",77),e.YNc(5,VK,5,3,"div",78),e.YNc(6,qK,5,3,"div",79),e.YNc(7,XK,2,1,"mat-icon",80),e.qZA(),e.TgZ(8,"div",81)(9,"div",82)(10,"mat-icon",83),e.NdJ("click",function(n){const s=e.CHM(t).index,c=e.oxw();return n.stopPropagation(),e.KtG(c.onMoveMenuItem(s,"top"))}),e._uU(11,"arrow_upward"),e.qZA(),e.TgZ(12,"mat-icon",83),e.NdJ("click",function(n){const s=e.CHM(t).index,c=e.oxw();return n.stopPropagation(),e.KtG(c.onMoveMenuItem(s,"bottom"))}),e._uU(13,"arrow_downward"),e.qZA()(),e.TgZ(14,"div",84)(15,"mat-icon",85),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onAddMenuItem(s))}),e._uU(16,"edit"),e.qZA(),e.TgZ(17,"div",86),e._uU(18),e.qZA()(),e.TgZ(19,"div",87)(20,"mat-icon",88),e.NdJ("click",function(n){const o=e.CHM(t),s=o.index,c=o.$implicit,g=e.oxw();return n.stopPropagation(),e.KtG(g.onRemoveMenuItem(s,c))}),e._uU(21,"clear"),e.qZA()()()(),e.YNc(22,Aq,2,1,"mat-list",89),e.BQk()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.Q6J("ngClass","menu-item-"+i.data.layout.navigation.type),e.xp6(1),e.Udp("color",i.data.layout.navigation.fgcolor),e.Q6J("ngSwitch",i.data.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitchCase","icon"),e.xp6(1),e.Q6J("ngSwitchCase","text"),e.xp6(1),e.Q6J("ngSwitchCase","block"),e.xp6(1),e.Q6J("ngSwitchCase","inline"),e.xp6(1),e.Q6J("ngIf",i.isExpandable(t)),e.xp6(11),e.hij(" ",i.getViewName(t)," "),e.xp6(4),e.Q6J("ngIf",i.isExpandable(t)&&i.isExpanded(t))}}function uq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function hq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function pq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.path),e.xp6(1),e.hij(" ",t.name," ")}}function gq(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function fq(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"button",105),e.YNc(2,gq,2,1,"mat-icon",92),e._uU(3),e.qZA(),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw();let n,o,s;e.xp6(1),e.Udp("background-color",null!==(n=t.bkcolor)&&void 0!==n?n:i.data.layout.header.bkcolor)("color",null!==(o=t.fgcolor)&&void 0!==o?o:i.data.layout.header.fgcolor)("font-family",i.data.layout.header.fontFamily)("font-size",i.data.layout.header.fontSize+"px !important")("margin-left",t.marginLeft,"px")("margin-right",t.marginRight,"px"),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(1),e.hij(" ",null!==(s=null==t.property?null:t.property.text)&&void 0!==s?s:t.type," ")}}function mq(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"button",106),e._uU(2),e.qZA(),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw();let n,o,s;e.xp6(1),e.Udp("background-color",null!==(n=t.bkcolor)&&void 0!==n?n:i.data.layout.header.bkcolor)("color",null!==(o=t.fgcolor)&&void 0!==o?o:i.data.layout.header.fgcolor)("font-family",i.data.layout.header.fontFamily)("font-size",i.data.layout.header.fontSize+"px !important")("margin-left",t.marginLeft,"px")("margin-right",t.marginRight,"px"),e.xp6(1),e.hij(" ",null!==(s=null==t.property?null:t.property.text)&&void 0!==s?s:t.type," ")}}function _q(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"button",18)(2,"mat-icon"),e._uU(3),e.qZA()(),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw();let n,o;e.xp6(1),e.Udp("background-color",null!==(n=t.bkcolor)&&void 0!==n?n:i.data.layout.header.bkcolor)("color",null!==(o=t.fgcolor)&&void 0!==o?o:i.data.layout.header.fgcolor)("margin-left",t.marginLeft,"px")("margin-right",t.marginRight,"px"),e.xp6(2),e.Oqu(t.icon)}}function vq(r,a){1&r&&(e.ynx(0,103),e.YNc(1,fq,4,14,"ng-container",104),e.YNc(2,mq,3,13,"ng-container",104),e.YNc(3,_q,4,9,"ng-container",104),e.BQk()),2&r&&(e.Q6J("ngSwitch",a.$implicit.type),e.xp6(1),e.Q6J("ngSwitchCase","button"),e.xp6(1),e.Q6J("ngSwitchCase","label"),e.xp6(1),e.Q6J("ngSwitchCase","image"))}function yq(r,a){if(1&r&&(e.TgZ(0,"div",107),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",e.xi3(2,1,t.currentDateTime,t.data.layout.header.dateTimeDisplay)," ")}}function wq(r,a){1&r&&(e.TgZ(0,"div",111),e._uU(1,"EN"),e.qZA())}function Cq(r,a){1&r&&(e.TgZ(0,"div",111),e._uU(1,"English"),e.qZA())}function bq(r,a){if(1&r&&(e.TgZ(0,"div",108)(1,"button",109)(2,"mat-icon",58),e._uU(3,"language"),e.qZA()(),e.YNc(4,wq,2,0,"div",110),e.YNc(5,Cq,2,0,"div",110),e.qZA()),2&r){const t=e.oxw();e.xp6(4),e.Q6J("ngIf","key"===t.data.layout.header.language),e.xp6(1),e.Q6J("ngIf","fullname"===t.data.layout.header.language)}}function xq(r,a){1&r&&(e.ynx(0),e.TgZ(1,"span",115),e._uU(2,"username"),e.qZA(),e.BQk())}function Bq(r,a){1&r&&(e.ynx(0),e.TgZ(1,"span",115),e._uU(2,"Full Name"),e.qZA(),e.BQk())}function Eq(r,a){1&r&&(e.ynx(0),e.TgZ(1,"span",115),e._uU(2,"username"),e.qZA(),e.TgZ(3,"span",116),e._uU(4,"Full Name"),e.qZA(),e.BQk())}function Mq(r,a){if(1&r&&(e.TgZ(0,"div",112)(1,"button",18)(2,"mat-icon",113),e._uU(3,"account_circle"),e.qZA()(),e.TgZ(4,"div",114),e.ynx(5,103),e.YNc(6,xq,3,0,"ng-container",104),e.YNc(7,Bq,3,0,"ng-container",104),e.YNc(8,Eq,5,0,"ng-container",104),e.BQk(),e.qZA()()),2&r){const t=e.oxw();e.xp6(5),e.Q6J("ngSwitch",t.data.layout.header.loginInfo),e.xp6(1),e.Q6J("ngSwitchCase","username"),e.xp6(1),e.Q6J("ngSwitchCase","fullname"),e.xp6(1),e.Q6J("ngSwitchCase","both")}}function Dq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-list-item",117)(1,"div",118)(2,"div",119)(3,"mat-icon",120),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onMoveHeaderItem(o,"top"))}),e._uU(4,"arrow_upward"),e.qZA(),e.TgZ(5,"mat-icon",120),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onMoveHeaderItem(o,"bottom"))}),e._uU(6,"arrow_downward"),e.qZA()(),e.TgZ(7,"div",84)(8,"mat-icon",85),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onAddHeaderItem(o))}),e._uU(9,"edit"),e.qZA(),e.TgZ(10,"div",86),e._uU(11),e.ALo(12,"translate"),e.qZA()(),e.TgZ(13,"div",121)(14,"button",122),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditPropertyItem(o))}),e._uU(15),e.ALo(16,"translate"),e.qZA()(),e.TgZ(17,"div",87)(18,"mat-icon",88),e.NdJ("click",function(){const n=e.CHM(t),o=n.index,s=n.$implicit,c=e.oxw();return e.KtG(c.onRemoveHeaderItem(o,s))}),e._uU(19,"clear"),e.qZA()()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("ngClass","menu-item-"+i.data.layout.navigation.type),e.xp6(11),e.hij(" ",e.lcZ(12,3,"item.headertype-"+t.type)," "),e.xp6(4),e.hij(" ",e.lcZ(16,5,"gauges.property-title")," ")}}function Tq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"item.logininfo-type-"+t)," ")}}function Iq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"item.language-show-mode-"+t)," ")}}function kq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Qq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Sq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("font-family",t),e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function Pq(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"item.headeranchor-"+t)," ")}}let Fq=(()=>{class r{data;dialog;dialogRef;projectService;changeDetector;translateService;resourcesService;draggableListLeft=[];headerItems;layout;defaultColor=ii.cQ.defaultColor;fonts=Tg.fonts;anchorType=["left","center","right"];loginInfoType=["nothing","username","fullname","both"];languageShowModeType=["nothing","simple","key","fullname"];currentDateTime;unsubscribeTimer$=new An.x;startView;sideMode;resources=[];navMode;navType;notifyMode;zoomMode;inputMode=Tt.C6;headerMode=Tt.Io;logo=null;loginOverlayColor=Tt.nh;ready=!1;CodeMirror;codeMirrorContent;codeMirrorOptions={lineNumbers:!0,theme:"material",mode:"css",lint:!0};expandedItems=new Set;expandableNavItems=[ii.cQ.getEnumKey(Tt.tZ,Tt.tZ.text),ii.cQ.getEnumKey(Tt.tZ,Tt.tZ.inline)];constructor(t,i,n,o,s,c,g){this.data=t,this.dialog=i,this.dialogRef=n,this.projectService=o,this.changeDetector=s,this.translateService=c,this.resourcesService=g,t.layout=ii.cQ.mergeDeep(new Tt.I2,t.layout),this.startView=t.layout.start,this.sideMode=t.layout.navigation.mode,t.layout.navigation.items||(t.layout.navigation.items=[]),this.headerItems=t.layout.header.items??[],this.draggableListLeft=t.layout.navigation.items,this.resourcesService.getResources(UC.images).subscribe(B=>{B&&B.groups.forEach(O=>{this.resources.push(...O.items)})})}ngOnInit(){this.navMode=Tt.aL,this.navType=Tt.tZ,this.notifyMode=Tt.s7,this.zoomMode=Tt.Rw,Object.keys(this.navMode).forEach(t=>{this.translateService.get(this.navMode[t]).subscribe(i=>{this.navMode[t]=i})}),Object.keys(this.navType).forEach(t=>{this.translateService.get(this.navType[t]).subscribe(i=>{this.navType[t]=i})}),Object.keys(this.notifyMode).forEach(t=>{this.translateService.get(this.notifyMode[t]).subscribe(i=>{this.notifyMode[t]=i})}),Object.keys(this.zoomMode).forEach(t=>{this.translateService.get(this.zoomMode[t]).subscribe(i=>{this.zoomMode[t]=i})}),Object.keys(this.inputMode).forEach(t=>{this.translateService.get(this.inputMode[t]).subscribe(i=>{this.inputMode[t]=i})}),Object.keys(this.headerMode).forEach(t=>{this.translateService.get(this.headerMode[t]).subscribe(i=>{this.headerMode[t]=i})})}ngOnDestroy(){this.unsubscribeTimer$.next(null),this.unsubscribeTimer$.complete()}onTabChanged(t){3==t.index?(this.changeDetector.detectChanges(),this.CodeMirror?.codeMirror?.refresh()):2==t.index&&this.checkTimer()}checkTimer(){this.data.layout.header?.dateTimeDisplay?this.currentDateTime||vv(1e3).pipe((0,On.R)(this.unsubscribeTimer$)).subscribe(()=>{this.currentDateTime=new Date}):(this.unsubscribeTimer$.next(null),this.currentDateTime=null)}onAddMenuItem(t=null){let i=new Tt.fH;t&&(i=JSON.parse(JSON.stringify(t)));let n=JSON.parse(JSON.stringify(this.data.views));n.unshift({id:"",name:""}),this.dialog.open(IK,{disableClose:!0,position:{top:"60px"},data:{item:i,views:n,permission:i.permission,permissionRoles:i.permissionRoles}}).afterClosed().subscribe(s=>{if(s)if(t)Object.assign(t,s.item),t.icon=s.item.icon,t.image=s.item.image,t.text=s.item.text,t.view=s.item.view,t.link=s.item.link,t.permission=s.permission,t.permissionRoles=s.permissionRoles;else{let c=new Tt.fH;Object.assign(c,s.item),c.icon=s.item.icon,c.image=s.item.image,c.text=s.item.text,c.view=s.item.view,c.link=s.item.link,c.permission=s.permission,c.permissionRoles=s.permissionRoles,this.draggableListLeft.push(c)}})}onRemoveMenuItem(t,i){this.draggableListLeft.splice(t,1)}onMoveMenuItem(t,i){"top"===i&&t>0?this.draggableListLeft.splice(t-1,0,this.draggableListLeft.splice(t,1)[0]):"bottom"===i&&tn.id===t.view);if(i)return i.name}}onAddHeaderItem(t=null){let i=t?JSON.parse(JSON.stringify(t)):{id:ii.cQ.getShortGUID("i_"),type:"button",marginLeft:5,marginRight:5};this.dialog.open(SK,{position:{top:"60px"},data:i}).afterClosed().subscribe(o=>{if(o){if(t){const s=this.headerItems.findIndex(c=>c.id===t.id);this.headerItems[s]=o}else this.headerItems.push(o);this.data.layout.header.items=this.headerItems}})}onRemoveHeaderItem(t,i){this.headerItems.splice(t,1),this.data.layout.header.items=this.headerItems}onMoveHeaderItem(t,i){"top"===i&&t>0?this.headerItems.splice(t-1,0,this.headerItems.splice(t,1)[0]):"bottom"===i&&t{g&&(t.property=g.settings.property)})}onNoClick(){this.dialogRef.close()}toggleSubMenu(t){t.id&&t.children?.length&&(this.expandedItems.has(t.id)?this.expandedItems.delete(t.id):this.expandedItems.add(t.id),this.changeDetector.detectChanges())}isExpanded(t){return t.id||(t.id=ii.cQ.getShortGUID()),!!t.id&&this.expandedItems.has(t.id)}isExpandable(t){return this.expandableNavItems.includes(this.data.layout.navigation.type)&&t.children?.length>0}static \u0275fac=function(i){return new(i||r)(e.Y36(Yr),e.Y36(xo),e.Y36(_r),e.Y36(wr.Y4),e.Y36(e.sBO),e.Y36(Ni.sK),e.Y36(Q0))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-layout-property"]],viewQuery:function(i,n){if(1&i&&e.Gf(XE,5),2&i){let o;e.iGM(o=e.CRH())&&(n.CodeMirror=o.first)}},decls:235,vars:225,consts:[[1,"dialog-mdsd-main",2,"position","relative"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],[1,"dialog-mdsd-content","content"],[3,"selectedTabChange"],[3,"label"],[1,"container-split-ver","mt25"],[1,"my-form-field","block"],[2,"width","400px",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","block","mt10"],[3,"value"],["class","my-form-field block mt10",4,"ngIf"],[2,"display","inline-block","margin-left","180px"],["mat-icon-button","",2,"color","rgba(255,255,255,1)","background-color","rgba(68,138,255, 1)"],[1,"my-form-field",2,"display","inline-block","margin-left","30px"],["color","primary",3,"ngModel","ngModelChange"],[1,"tab-container"],["mat-icon-button",""],["aria-label","Menu"],[2,"display","inline-block","padding-left","140px"],["mat-icon-button","",3,"click"],["aria-label","Add"],[1,"nav-config"],[1,"config-left"],[1,"sidenav-menu",2,"height","calc(100% - 50px)",3,"ngClass"],[1,"dndList",2,"padding-top","10px","background-color","inherit"],[2,"display","flex","justify-content","center","height","35px","font-weight","bold","padding-bottom","10px","margin-bottom","10px","width","unset"],[4,"ngIf","ngIfElse"],["hasLogo",""],[4,"ngFor","ngForOf"],[1,"config-right","mr10"],[1,"my-form-field",2,"display","block"],[2,"width","300px",3,"value","valueChange"],[1,"my-form-field",2,"display","block","margin-top","10px"],[2,"display","block","margin-top","10px"],[1,"my-form-field",2,"display","inline-block"],[1,"input-color",2,"width","126px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field",2,"float","right"],[1,"my-form-field",2,"display","inline-block","margin-top","10px"],[3,"click"],[1,"header-layout"],[1,"header-menu"],[1,"items"],[3,"ngSwitch",4,"ngFor","ngForOf"],[1,"header-notify-button"],["mat-icon-button","",1,"alarm-button"],["aria-label","Alarms"],["mat-icon-button","",1,"info-button"],["aria-label","Info"],["class","header-date-time",4,"ngIf"],["class","header-language",4,"ngIf"],["class","header-login",4,"ngIf"],[1,"header-config","ml20"],[1,"add-item"],[1,"header-items"],[3,"ngClass",4,"ngFor","ngForOf"],[2,"width","260px",3,"value","valueChange"],["aria-label","Language"],["type","text",2,"width","260px",3,"ngModel","ngModelChange","input"],[1,"my-form-field","lbk"],[2,"width","180px",3,"ngModel","ngModelChange"],[3,"fontFamily","value",4,"ngFor","ngForOf"],[1,"my-form-field","lbk","ml15"],["numberOnly","","max","20","min","10","step","1","type","number",3,"ngModel","ngModelChange"],[2,"width","260px",3,"ngModel","ngModelChange"],[1,"colors","block"],[1,"input-color",2,"width","120px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[3,"ngModel","options","ngModelChange"],["CodeMirror",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"mat-dialog-close"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close"],[2,"max-width","100%","max-height","100%",3,"src"],[2,"width","unset",3,"ngClass","click"],["type","button","mat-button","",1,"sidenav-btn","sidenav-submenu-btn",3,"ngSwitch"],["class","menu-item-content-icon",4,"ngSwitchCase"],["class","menu-item-content-text",4,"ngSwitchCase"],["class","menu-item-content-block",4,"ngSwitchCase"],["class","menu-item-content-inline",4,"ngSwitchCase"],["class","sidenav-submenu-icon",4,"ngIf"],[1,"nav-item"],[1,"position"],[1,"layout-menu-item-icon",2,"display","block",3,"click"],[1,"edit"],[1,"layout-menu-item-icon","layout-menu-item-edit",3,"click"],[1,"type"],[1,"remove"],[1,"layout-menu-item-icon","layout-menu-item-delete",3,"click"],["class","submenu-list",4,"ngIf"],[1,"menu-item-content-icon"],[3,"src",4,"ngIf"],[4,"ngIf"],[3,"src"],[1,"menu-item-content-text"],[1,"menu-item-content-block"],[1,"menu-item-content-inline"],[2,"display","inline-block"],[1,"sidenav-submenu-icon"],[1,"submenu-list"],["class","sidenav-submenu-item",3,"ngClass","color",4,"ngFor","ngForOf"],[1,"sidenav-submenu-item",3,"ngClass"],["type","button","mat-button","",1,"sidenav-btn",2,"padding-left","20px !important",3,"ngSwitch"],[3,"ngSwitch"],[4,"ngSwitchCase"],["mat-raised-button",""],["mat-button",""],[1,"header-date-time"],[1,"header-language"],["mat-icon-button","",1,"inbk"],["class","inbk",4,"ngIf"],[1,"inbk"],[1,"header-login"],["aria-label","Login"],[1,"info"],[1,"primary"],[1,"secondary"],[3,"ngClass"],[1,"header-item"],[1,"position","mr15"],[1,"layout-menu-item-icon","block",3,"click"],[1,"property"],["mat-button","",3,"click"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"mat-tab-group",4),e.NdJ("selectedTabChange",function(s){return n.onTabChanged(s)}),e.TgZ(8,"mat-tab",5),e.ALo(9,"translate"),e.TgZ(10,"div",6)(11,"div")(12,"div",7)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",8),e.NdJ("valueChange",function(s){return n.data.layout.start=s}),e.YNc(17,PK,2,2,"mat-option",9),e.qZA()(),e.TgZ(18,"div",10)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",8),e.NdJ("valueChange",function(s){return n.data.layout.loginonstart=s}),e.TgZ(23,"mat-option",11),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"mat-option",11),e._uU(27),e.ALo(28,"translate"),e.qZA()()(),e.YNc(29,OK,7,7,"div",12),e.TgZ(30,"div",10)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"mat-select",8),e.NdJ("valueChange",function(s){return n.data.layout.zoom=s}),e.YNc(35,LK,2,2,"mat-option",9),e.ALo(36,"enumToArray"),e.qZA()(),e.TgZ(37,"div",10)(38,"span"),e._uU(39),e.ALo(40,"translate"),e.qZA(),e.TgZ(41,"mat-select",8),e.NdJ("valueChange",function(s){return n.data.layout.inputdialog=s}),e.YNc(42,RK,2,2,"mat-option",9),e.ALo(43,"enumToArray"),e.qZA()(),e.TgZ(44,"div",10)(45,"span"),e._uU(46),e.ALo(47,"translate"),e.qZA(),e.TgZ(48,"mat-select",8),e.NdJ("valueChange",function(s){return n.data.layout.hidenavigation=s}),e.YNc(49,YK,2,2,"mat-option",9),e.ALo(50,"enumToArray"),e.qZA()(),e.TgZ(51,"div",10)(52,"span"),e._uU(53),e.ALo(54,"translate"),e.qZA(),e.TgZ(55,"mat-select",8),e.NdJ("valueChange",function(s){return n.data.layout.show_connection_error=s}),e.TgZ(56,"mat-option",11),e._uU(57),e.ALo(58,"translate"),e.qZA(),e.TgZ(59,"mat-option",11),e._uU(60),e.ALo(61,"translate"),e.qZA()()()(),e.TgZ(62,"div")(63,"div",13)(64,"button",14)(65,"mat-icon"),e._uU(66,"menu"),e.qZA()()(),e.TgZ(67,"div",15)(68,"span"),e._uU(69),e.ALo(70,"translate"),e.qZA(),e.TgZ(71,"mat-slide-toggle",16),e.NdJ("ngModelChange",function(s){return n.data.layout.showdev=s}),e.qZA()()()()(),e.TgZ(72,"mat-tab",5),e.ALo(73,"translate"),e.TgZ(74,"div",17)(75,"div")(76,"button",18)(77,"mat-icon",19),e._uU(78,"menu"),e.qZA()(),e.TgZ(79,"div",20)(80,"button",21),e.NdJ("click",function(){return n.onAddMenuItem()}),e.TgZ(81,"mat-icon",22),e._uU(82,"control_point"),e.qZA()()()(),e.TgZ(83,"div",23)(84,"div",24)(85,"div",25)(86,"mat-list",26)(87,"mat-list-item",27),e.YNc(88,NK,3,3,"span",28),e.YNc(89,UK,1,1,"ng-template",null,29,e.W1O),e.qZA(),e.YNc(91,dq,23,11,"ng-container",30),e.qZA()()(),e.TgZ(92,"div",31)(93,"div",32)(94,"span"),e._uU(95),e.ALo(96,"translate"),e.qZA(),e.TgZ(97,"mat-select",33),e.NdJ("valueChange",function(s){return n.data.layout.navigation.mode=s}),e.YNc(98,uq,2,2,"mat-option",9),e.ALo(99,"enumToArray"),e.qZA()(),e.TgZ(100,"div",34)(101,"span"),e._uU(102),e.ALo(103,"translate"),e.qZA(),e.TgZ(104,"mat-select",33),e.NdJ("valueChange",function(s){return n.data.layout.navigation.type=s}),e.YNc(105,hq,2,2,"mat-option",9),e.ALo(106,"enumToArray"),e.qZA()(),e.TgZ(107,"div",35)(108,"div",36)(109,"span"),e._uU(110),e.ALo(111,"translate"),e.qZA(),e.TgZ(112,"input",37),e.NdJ("colorPickerChange",function(s){return n.data.layout.navigation.bkcolor=s}),e.qZA()(),e.TgZ(113,"div",38)(114,"span"),e._uU(115),e.ALo(116,"translate"),e.qZA(),e.TgZ(117,"input",37),e.NdJ("colorPickerChange",function(s){return n.data.layout.navigation.fgcolor=s}),e.qZA()()(),e.TgZ(118,"div",39)(119,"span"),e._uU(120),e.ALo(121,"translate"),e.qZA(),e.TgZ(122,"mat-select",33),e.NdJ("valueChange",function(s){return n.data.layout.navigation.logo=s}),e.TgZ(123,"mat-option",40),e.NdJ("click",function(){return n.data.layout.navigation.logo=null}),e.qZA(),e.YNc(124,pq,2,2,"mat-option",9),e.qZA()()()()()(),e.TgZ(125,"mat-tab",5),e.ALo(126,"translate"),e.TgZ(127,"div",17)(128,"div",41)(129,"div",42)(130,"button",18)(131,"mat-icon",19),e._uU(132,"menu"),e.qZA()()(),e.TgZ(133,"div",43),e.YNc(134,vq,4,4,"ng-container",44),e.qZA(),e.TgZ(135,"div",45)(136,"button",46)(137,"mat-icon",47),e._uU(138,"notifications_none"),e.qZA()(),e.TgZ(139,"button",48)(140,"mat-icon",49),e._uU(141,"error_outline"),e.qZA()(),e.YNc(142,yq,3,4,"div",50),e.YNc(143,bq,6,2,"div",51),e.YNc(144,Mq,9,4,"div",52),e.qZA()(),e.TgZ(145,"div",53)(146,"div",24)(147,"div",54)(148,"button",21),e.NdJ("click",function(){return n.onAddHeaderItem()}),e.TgZ(149,"mat-icon",22),e._uU(150,"control_point"),e.qZA()()(),e.TgZ(151,"div",55)(152,"mat-list"),e.YNc(153,Dq,20,7,"mat-list-item",56),e.qZA()()(),e.TgZ(154,"div",31)(155,"div",7)(156,"span"),e._uU(157),e.ALo(158,"translate"),e.qZA(),e.TgZ(159,"mat-select",57),e.NdJ("valueChange",function(s){return n.data.layout.header.loginInfo=s}),e.YNc(160,Tq,3,4,"mat-option",9),e.qZA(),e.TgZ(161,"mat-icon",49),e._uU(162,"account_circle"),e.qZA()(),e.TgZ(163,"div",10)(164,"span"),e._uU(165),e.ALo(166,"translate"),e.qZA(),e.TgZ(167,"mat-select",57),e.NdJ("valueChange",function(s){return n.data.layout.header.language=s}),e.YNc(168,Iq,3,4,"mat-option",9),e.qZA(),e.TgZ(169,"mat-icon",58),e._uU(170,"language"),e.qZA()(),e.TgZ(171,"div",10)(172,"span"),e._uU(173),e.ALo(174,"translate"),e.qZA(),e.TgZ(175,"input",59),e.NdJ("ngModelChange",function(s){return n.data.layout.header.dateTimeDisplay=s})("input",function(){return n.checkTimer()}),e.qZA()(),e.TgZ(176,"div",10)(177,"span"),e._uU(178),e.ALo(179,"translate"),e.qZA(),e.TgZ(180,"mat-select",57),e.NdJ("valueChange",function(s){return n.data.layout.header.alarms=s}),e.YNc(181,kq,2,2,"mat-option",9),e.ALo(182,"enumToArray"),e.qZA(),e.TgZ(183,"mat-icon",47),e._uU(184,"notifications_none"),e.qZA()(),e.TgZ(185,"div",10)(186,"span"),e._uU(187),e.ALo(188,"translate"),e.qZA(),e.TgZ(189,"mat-select",57),e.NdJ("valueChange",function(s){return n.data.layout.header.infos=s}),e.YNc(190,Qq,2,2,"mat-option",9),e.ALo(191,"enumToArray"),e.qZA(),e.TgZ(192,"mat-icon",49),e._uU(193,"error_outline"),e.qZA()(),e.TgZ(194,"div",10)(195,"div",60)(196,"span"),e._uU(197),e.ALo(198,"translate"),e.qZA(),e.TgZ(199,"mat-select",61),e.NdJ("ngModelChange",function(s){return n.data.layout.header.fontFamily=s}),e.YNc(200,Sq,2,4,"mat-option",62),e.qZA()(),e.TgZ(201,"div",63)(202,"span"),e._uU(203),e.ALo(204,"translate"),e.qZA(),e.TgZ(205,"input",64),e.NdJ("ngModelChange",function(s){return n.data.layout.header.fontSize=s}),e.qZA()()(),e.TgZ(206,"div",10)(207,"span"),e._uU(208),e.ALo(209,"translate"),e.qZA(),e.TgZ(210,"mat-select",65),e.NdJ("ngModelChange",function(s){return n.data.layout.header.itemsAnchor=s}),e.YNc(211,Pq,3,4,"mat-option",9),e.qZA()(),e.TgZ(212,"div",66)(213,"div",36)(214,"span"),e._uU(215),e.ALo(216,"translate"),e.qZA(),e.TgZ(217,"input",67),e.NdJ("colorPickerChange",function(s){return n.data.layout.header.bkcolor=s}),e.qZA()(),e.TgZ(218,"div",38)(219,"span"),e._uU(220),e.ALo(221,"translate"),e.qZA(),e.TgZ(222,"input",67),e.NdJ("colorPickerChange",function(s){return n.data.layout.header.fgcolor=s}),e.qZA()()()()()()(),e.TgZ(223,"mat-tab",5),e.ALo(224,"translate"),e.TgZ(225,"div",17)(226,"ngx-codemirror",68,69),e.NdJ("ngModelChange",function(s){return n.data.layout.customStyles=s}),e.qZA()()()()(),e.TgZ(228,"div",70)(229,"button",71),e._uU(230),e.ALo(231,"translate"),e.qZA(),e.TgZ(232,"button",72),e._uU(233),e.ALo(234,"translate"),e.qZA()()()),2&i){const o=e.MAs(90);e.xp6(2),e.Oqu(e.lcZ(3,145,"dlg.layout-title")),e.xp6(6),e.s9C("label",e.lcZ(9,147,"dlg.layout-general")),e.xp6(6),e.Oqu(e.lcZ(15,149,"dlg.layout-lbl-sview")),e.xp6(2),e.Q6J("value",n.data.layout.start),e.xp6(1),e.Q6J("ngForOf",n.data.views),e.xp6(3),e.Oqu(e.lcZ(21,151,"dlg.layout-lbl-login-start")),e.xp6(2),e.Q6J("value",n.data.layout.loginonstart),e.xp6(1),e.Q6J("value",!0),e.xp6(1),e.Oqu(e.lcZ(25,153,"general.enabled")),e.xp6(2),e.Q6J("value",!1),e.xp6(1),e.Oqu(e.lcZ(28,155,"general.disabled")),e.xp6(2),e.Q6J("ngIf",n.data.layout.loginonstart),e.xp6(3),e.Oqu(e.lcZ(33,157,"dlg.layout-lbl-zoom")),e.xp6(2),e.Q6J("value",n.data.layout.zoom),e.xp6(1),e.Q6J("ngForOf",e.lcZ(36,159,n.zoomMode)),e.xp6(4),e.Oqu(e.lcZ(40,161,"dlg.layout-input-dialog")),e.xp6(2),e.Q6J("value",n.data.layout.inputdialog),e.xp6(1),e.Q6J("ngForOf",e.lcZ(43,163,n.inputMode)),e.xp6(4),e.Oqu(e.lcZ(47,165,"dlg.layout-navigation-mode")),e.xp6(2),e.Q6J("value",n.data.layout.hidenavigation),e.xp6(1),e.Q6J("ngForOf",e.lcZ(50,167,n.headerMode)),e.xp6(4),e.Oqu(e.lcZ(54,169,"dlg.layout-connection-message")),e.xp6(2),e.Q6J("value",n.data.layout.show_connection_error),e.xp6(1),e.Q6J("value",!0),e.xp6(1),e.Oqu(e.lcZ(58,171,"general.enabled")),e.xp6(2),e.Q6J("value",!1),e.xp6(1),e.Oqu(e.lcZ(61,173,"general.disabled")),e.xp6(9),e.Oqu(e.lcZ(70,175,"dlg.layout-show-dev")),e.xp6(2),e.Q6J("ngModel",n.data.layout.showdev),e.xp6(1),e.s9C("label",e.lcZ(73,177,"dlg.layout-navigation")),e.xp6(3),e.Udp("background-color",n.data.layout.header.bkcolor)("color",n.data.layout.header.fgcolor),e.xp6(10),e.Udp("background-color",n.data.layout.navigation.bkcolor)("color",n.data.layout.navigation.fgcolor),e.Q6J("ngClass","sidenav-menu-"+n.data.layout.navigation.type),e.xp6(2),e.Udp("color",n.data.layout.navigation.fgcolor),e.xp6(1),e.Q6J("ngIf",!n.data.layout.navigation.logo)("ngIfElse",o),e.xp6(3),e.Q6J("ngForOf",n.draggableListLeft),e.xp6(4),e.Oqu(e.lcZ(96,179,"dlg.layout-lbl-smode")),e.xp6(2),e.Q6J("value",n.data.layout.navigation.mode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(99,181,n.navMode)),e.xp6(4),e.Oqu(e.lcZ(103,183,"dlg.layout-lbl-type")),e.xp6(2),e.Q6J("value",n.data.layout.navigation.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(106,185,n.navType)),e.xp6(5),e.Oqu(e.lcZ(111,187,"dlg.layout-nav-bkcolor")),e.xp6(2),e.Udp("background",n.data.layout.navigation.bkcolor),e.Q6J("colorPicker",n.data.layout.navigation.bkcolor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(3),e.Oqu(e.lcZ(116,189,"dlg.layout-nav-fgcolor")),e.xp6(2),e.Udp("background",n.data.layout.navigation.fgcolor),e.Q6J("colorPicker",n.data.layout.navigation.fgcolor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(3),e.Oqu(e.lcZ(121,191,"dlg.layout-lbl-logo")),e.xp6(2),e.Q6J("value",n.data.layout.navigation.logo),e.xp6(2),e.Q6J("ngForOf",n.resources),e.xp6(1),e.s9C("label",e.lcZ(126,193,"dlg.layout-header")),e.xp6(3),e.Udp("background-color",n.data.layout.header.bkcolor)("color",n.data.layout.header.fgcolor),e.xp6(5),e.Udp("text-align",n.data.layout.header.itemsAnchor),e.xp6(1),e.Q6J("ngForOf",n.headerItems),e.xp6(8),e.Q6J("ngIf",n.data.layout.header.dateTimeDisplay),e.xp6(1),e.Q6J("ngIf",n.data.layout.header.language&&"nothing"!==n.data.layout.header.language),e.xp6(1),e.Q6J("ngIf",n.data.securityEnabled),e.xp6(9),e.Q6J("ngForOf",n.headerItems),e.xp6(4),e.Oqu(e.lcZ(158,195,"dlg.layout-lbl-login-info")),e.xp6(2),e.Q6J("value",n.data.layout.header.loginInfo),e.xp6(1),e.Q6J("ngForOf",n.loginInfoType),e.xp6(5),e.Oqu(e.lcZ(166,197,"dlg.layout-lbl-show-language")),e.xp6(2),e.Q6J("value",n.data.layout.header.language),e.xp6(1),e.Q6J("ngForOf",n.languageShowModeType),e.xp6(5),e.Oqu(e.lcZ(174,199,"dlg.layout-lbl-datetime")),e.xp6(2),e.Q6J("ngModel",n.data.layout.header.dateTimeDisplay),e.xp6(3),e.Oqu(e.lcZ(179,201,"dlg.layout-lbl-alarms")),e.xp6(2),e.Q6J("value",n.data.layout.header.alarms),e.xp6(1),e.Q6J("ngForOf",e.lcZ(182,203,n.notifyMode)),e.xp6(6),e.Oqu(e.lcZ(188,205,"dlg.layout-lbl-infos")),e.xp6(2),e.Q6J("value",n.data.layout.header.infos),e.xp6(1),e.Q6J("ngForOf",e.lcZ(191,207,n.notifyMode)),e.xp6(7),e.Oqu(e.lcZ(198,209,"dlg.layout-lbl-font")),e.xp6(2),e.Q6J("ngModel",n.data.layout.header.fontFamily),e.xp6(1),e.Q6J("ngForOf",n.fonts),e.xp6(3),e.Oqu(e.lcZ(204,211,"dlg.layout-lbl-font-size")),e.xp6(2),e.Q6J("ngModel",n.data.layout.header.fontSize),e.xp6(3),e.Oqu(e.lcZ(209,213,"dlg.layout-lbl-anchor")),e.xp6(2),e.Q6J("ngModel",n.data.layout.header.itemsAnchor),e.xp6(1),e.Q6J("ngForOf",n.anchorType),e.xp6(4),e.Oqu(e.lcZ(216,215,"dlg.layout-header-bkcolor")),e.xp6(2),e.Udp("background",n.data.layout.header.bkcolor),e.Q6J("colorPicker",n.data.layout.header.bkcolor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(3),e.Oqu(e.lcZ(221,217,"dlg.layout-header-fgcolor")),e.xp6(2),e.Udp("background",n.data.layout.header.fgcolor),e.Q6J("colorPicker",n.data.layout.header.fgcolor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(1),e.s9C("label",e.lcZ(224,219,"dlg.layout-lbl-custom-styles")),e.xp6(3),e.Q6J("ngModel",n.data.layout.customStyles)("options",n.codeMirrorOptions),e.xp6(4),e.Oqu(e.lcZ(231,221,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(234,223,"dlg.ok"))}},dependencies:[l.mk,l.sg,l.O5,l.RF,l.n9,I,qn,et,$n,Er,$i,Nr,Yn,Cc,Qr,Ir,Zn,mg,hp,fo,bc,NA,DA,$A,XE,zr,fs,l.uU,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .content[_ngcontent-%COMP%]{min-width:950px;min-height:700px}[_nghost-%COMP%] .tab-container[_ngcontent-%COMP%]{display:block;margin-top:10px;width:100%;min-height:500px;overflow-y:auto;height:650px}[_nghost-%COMP%] .layout-menu-item-icon[_ngcontent-%COMP%]{font-size:17px;height:18px;width:18px;cursor:pointer}[_nghost-%COMP%] .layout-menu-item-link[_ngcontent-%COMP%]{display:block;font-size:12px;white-space:nowrap}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%]{overflow-y:auto}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%]{display:flex;line-height:35px;min-width:max-content}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .position[_ngcontent-%COMP%]{display:inline-block;line-height:35px;margin-left:15px;vertical-align:bottom}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .position[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%]{display:inline-block;line-height:35px}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-left:10px;vertical-align:middle}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%] .type[_ngcontent-%COMP%]{display:inline-block;font-size:12px;margin-left:10px;white-space:nowrap}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .remove[_ngcontent-%COMP%]{display:inline-block;line-height:35px;margin-left:10px}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .remove[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}[_nghost-%COMP%] .nav-config[_ngcontent-%COMP%] .config-right[_ngcontent-%COMP%]{float:right;margin-top:30px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%]{display:flex;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003!important;height:46px!important;line-height:46px;padding-left:4px;padding-right:10px;background-color:#fff}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-menu[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%]{display:inline-block;margin-left:20px;min-width:200px;text-align:right;line-height:46px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-login[_ngcontent-%COMP%]{line-height:46px;border-left-width:1px;border-left-style:solid;padding-left:10px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-login[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{display:inline-block;line-height:46px;vertical-align:middle}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-login[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%]{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:-moz-fit-content;max-width:fit-content;line-height:16px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-login[_ngcontent-%COMP%] .secondary[_ngcontent-%COMP%]{display:block;font-size:14px;font-weight:100;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:-moz-fit-content;max-width:fit-content;color:gray;line-height:16px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-date-time[_ngcontent-%COMP%]{border-left-width:1px;border-left-style:solid;padding-left:10px;padding-right:10px;display:inline-block}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-language[_ngcontent-%COMP%]{padding-left:10px;padding-right:10px;display:inline-block}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-notify-button[_ngcontent-%COMP%]{display:flex;line-height:46px;text-align:right;margin-left:10px;margin-right:10px;padding-right:10px;align-items:center}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-notify-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-notify-button[_ngcontent-%COMP%] .alarm-button[_ngcontent-%COMP%], [_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .header-notify-button[_ngcontent-%COMP%] .info-button[_ngcontent-%COMP%]{margin-right:20px}[_nghost-%COMP%] .header-layout[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{flex:1;align-items:center}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%]{padding-top:30px;overflow-y:auto}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .add-item[_ngcontent-%COMP%]{display:inline-block;vertical-align:top;width:50px}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%]{min-height:50px}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%]{display:flex}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .position[_ngcontent-%COMP%]{display:inline-block;vertical-align:bottom}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .position[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%]{display:inline-block;line-height:35px}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%] .type[_ngcontent-%COMP%]{display:inline-block;font-size:12px;margin-left:10px;width:60px}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .property[_ngcontent-%COMP%]{display:inline-block;line-height:35px}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .property[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background-color:#696969;color:#fff}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .remove[_ngcontent-%COMP%]{display:inline-block;line-height:35px;margin-left:10px}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-left[_ngcontent-%COMP%] .header-items[_ngcontent-%COMP%] .header-item[_ngcontent-%COMP%] .remove[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-right[_ngcontent-%COMP%]{float:right}[_nghost-%COMP%] .header-config[_ngcontent-%COMP%] .config-right[_ngcontent-%COMP%] .colors[_ngcontent-%COMP%]{display:block;margin-top:10px;width:268px}[_nghost-%COMP%] .icons-selector[_ngcontent-%COMP%]{width:60px;height:30px}[_nghost-%COMP%] .my-form-field[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{padding-left:10px;vertical-align:middle}[_nghost-%COMP%] .dndList[_ngcontent-%COMP%]{transition:all .6s ease}[_nghost-%COMP%] .mat-tab-label{height:34px!important}[_nghost-%COMP%] .CodeMirror{height:100%}[_nghost-%COMP%] .sidenav-submenu-btn[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%] .sidenav-submenu-item[_ngcontent-%COMP%]{width:unset;min-height:unset;height:unset}[_nghost-%COMP%] .sidenav-submenu-icon[_ngcontent-%COMP%]{position:absolute;right:12px;top:50%;transform:translateY(-50%)}[_nghost-%COMP%] .submenu-list[_ngcontent-%COMP%]{padding:0;margin:0;list-style:none}"]})}return r})(),GC=(()=>{class r{http;onPluginsChanged=new e.vpe;endPointConfig=bp.C.getURL();constructor(t){this.http=t}getPlugins(){return this.http.get(this.endPointConfig+"/api/plugins")}installPlugin(t){return new Za.y(i=>{if(vp.N.serverEnabled){let n=new Ia.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/plugins",{headers:n,params:t}).subscribe(o=>{i.next(null),this.onPluginsChanged.emit()},o=>{console.error(o),i.error(o)})}else i.next(null)})}removePlugin(t){return new Za.y(i=>{if(vp.N.serverEnabled){let n=new Ia.WM({"Content-Type":"application/json"});this.http.delete(this.endPointConfig+"/api/plugins",{headers:n,params:{param:t.name}}).subscribe(o=>{i.next(null),this.onPluginsChanged.emit()},o=>{console.error(o),i.error(o)})}else i.next(null)})}hasPlugin$(t,i=!1){const n=t.toLowerCase();return this.getPlugins().pipe((0,f.U)(o=>o.some(s=>{const g=(s.name??"").toLowerCase().includes(n);return i?g&&s.current:g})))}hasNodeRed$(t=!1){return this.hasPlugin$("node-red",t)}static \u0275fac=function(i){return new(i||r)(e.LFG(Ia.eN))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();function Oq(r,a){1&r&&e._UZ(0,"mat-spinner",20)}function Lq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"button",21),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.install(n))}),e.TgZ(2,"mat-icon"),e._uU(3,"add_circle_outline"),e.qZA()(),e.TgZ(4,"button",21),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.remove(n))}),e.TgZ(5,"mat-icon"),e._uU(6,"remove_circle_outline"),e.qZA()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("disabled",t.current.length>0),e.xp6(3),e.Q6J("disabled",!t.pkg||!t.current.length)}}function Rq(r,a){if(1&r&&(e.TgZ(0,"mat-list-item",15)(1,"span",16),e._uU(2),e.qZA(),e.TgZ(3,"span",7),e._uU(4),e.qZA(),e.TgZ(5,"span",8),e._uU(6),e.qZA(),e.TgZ(7,"span",8),e._uU(8),e.qZA(),e.TgZ(9,"span",9),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"span",10),e._uU(13),e.qZA(),e.TgZ(14,"div",11)(15,"div",17),e.YNc(16,Oq,1,0,"mat-spinner",18),e.qZA(),e.YNc(17,Lq,7,2,"div",19),e.qZA()()),2&r){const t=a.$implicit;e.xp6(2),e.Oqu(t.type),e.xp6(2),e.Oqu(t.name),e.xp6(2),e.Oqu(t.version),e.xp6(2),e.Oqu(t.current),e.xp6(2),e.Oqu(e.lcZ(11,8,"plugin.group-"+t.group)),e.xp6(3),e.Oqu(t.status),e.xp6(3),e.Q6J("ngIf",t.working),e.xp6(1),e.Q6J("ngIf",t.dinamic)}}let Yq=(()=>{class r{data;dialog;dialogRef;translateService;pluginService;projectService;plugins=[];installing;removing;installed;removed;error;constructor(t,i,n,o,s,c){this.data=t,this.dialog=i,this.dialogRef=n,this.translateService=o,this.pluginService=s,this.projectService=c}ngOnInit(){this.translateService.get("dlg.plugins-status-installing").subscribe(t=>{this.installing=t}),this.translateService.get("dlg.plugins-status-removing").subscribe(t=>{this.removing=t}),this.translateService.get("dlg.plugins-status-installed").subscribe(t=>{this.installed=t}),this.translateService.get("dlg.plugins-status-removed").subscribe(t=>{this.removed=t}),this.translateService.get("dlg.plugins-status-error").subscribe(t=>{this.error=t}),this.pluginService.getPlugins().subscribe(t=>{this.plugins=t},t=>{console.error("Error getPlugin")})}onNoClick(){this.dialogRef.close()}install(t){t.status=this.installing,t.working=!0;let i=JSON.parse(JSON.stringify(t));i.pkg=!0,this.pluginService.installPlugin(i).subscribe(n=>{t.status=this.installed,t.current=t.version,t.working=!1},n=>{t.status=this.error+n,t.working=!1})}remove(t){t.status=this.removing,t.working=!0,this.pluginService.removePlugin(t).subscribe(i=>{t.status=this.removed,t.current="",t.working=!1},i=>{t.status=this.error+i,t.working=!1})}static \u0275fac=function(i){return new(i||r)(e.Y36(Yr),e.Y36(xo),e.Y36(_r),e.Y36(Ni.sK),e.Y36(GC),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-plugins"]],decls:34,vars:25,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"info"],[1,"list"],[1,"list-header","list-item"],[1,"list-type"],[1,"list-name"],[1,"list-version"],[1,"list-description"],[1,"list-status"],[1,"list-tool"],["class","list-item list-item-text",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"mat-dialog-close"],[1,"list-item","list-item-text"],[1,"list-type",2,"font-weight","700"],[2,"width","40px","padding-top","10px"],["diameter","20",4,"ngIf"],[4,"ngIf"],["diameter","20"],["mat-icon-button","",3,"disabled","click"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-list",4)(11,"mat-list-item",5)(12,"span",6),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"span",7),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"span",8),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"span",8),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.TgZ(24,"span",9),e._uU(25),e.ALo(26,"translate"),e.qZA(),e._UZ(27,"span",10)(28,"span",11),e.qZA(),e.YNc(29,Rq,18,10,"mat-list-item",12),e.qZA()(),e.TgZ(30,"div",13)(31,"button",14),e._uU(32),e.ALo(33,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,9,"dlg.plugins-title")),e.xp6(6),e.Oqu(e.lcZ(9,11,"dlg.plugins-info")),e.xp6(5),e.Oqu(e.lcZ(14,13,"dlg.plugins-type")),e.xp6(3),e.Oqu(e.lcZ(17,15,"dlg.plugins-name")),e.xp6(3),e.Oqu(e.lcZ(20,17,"dlg.plugins-version")),e.xp6(3),e.Oqu(e.lcZ(23,19,"dlg.plugins-current")),e.xp6(3),e.Oqu(e.lcZ(26,21,"dlg.plugins-description")),e.xp6(4),e.Q6J("ngForOf",n.plugins),e.xp6(3),e.Oqu(e.lcZ(33,23,"dlg.ok")))},dependencies:[l.sg,l.O5,Yn,Cc,Qr,Kr,Ir,Zn,mg,hp,BA,zr,Ni.X$],styles:["[_nghost-%COMP%] .info[_ngcontent-%COMP%]{margin-bottom:20px}[_nghost-%COMP%] .list[_ngcontent-%COMP%]{min-width:600px;height:400px;font-size:16px!important;padding-top:0!important;overflow:auto}[_nghost-%COMP%] .list-header[_ngcontent-%COMP%]{display:block;height:20px!important}[_nghost-%COMP%] .list-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden;color:gray;font-size:12px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%]{display:block;font-size:14px;height:40px!important;overflow:hidden}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] .list-type[_ngcontent-%COMP%]{width:160px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] .list-name[_ngcontent-%COMP%]{width:200px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] .list-version[_ngcontent-%COMP%]{width:100px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] .list-description[_ngcontent-%COMP%]{width:260px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] .list-status[_ngcontent-%COMP%]{width:200px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] .list-tool[_ngcontent-%COMP%]{display:flex;min-width:120px}[_nghost-%COMP%] .list-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[_nghost-%COMP%] .list-item-text[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden}"]})}return r})(),xS=(()=>{class r{http;endPointConfig=bp.C.getURL();constructor(t){this.http=t}getLogsDir(){return this.http.get(this.endPointConfig+"/api/logsdir")}getLogs(t){const n={responseType:"text",headers:new Ia.WM({"Content-Type":"application/json"}),params:t,observe:"response"};return this.http.get(this.endPointConfig+"/api/logs",n)}sendMail(t,i){return new Za.y(n=>{if(vp.N.serverEnabled){let o=new Ia.WM({"Content-Type":"application/json"});this.http.post(this.endPointConfig+"/api/sendmail",{headers:o,params:{msg:t,smtp:i}}).subscribe(c=>{n.next(null)},c=>{console.error(c),n.error(c)})}else n.next(null)})}static \u0275fac=function(i){return new(i||r)(e.LFG(Ia.eN))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var Ig=ce(9234);function Nq(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.hij(" ",t.text," ")}}function Uq(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.hij(" ",t.text," ")}}function zq(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Hq(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"store.retention-"+t.value)," ")}}function Gq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",11)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",36),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.retention=n)}),e.YNc(5,Hq,3,4,"mat-option",8),e.ALo(6,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,3,"dlg.app-settings-daqstore-retention")),e.xp6(2),e.Q6J("value",t.settings.daqstore.retention),e.xp6(1),e.Q6J("ngForOf",e.lcZ(6,5,t.retationType))}}function Zq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",26)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",47),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.url=n)}),e.qZA()(),e.TgZ(6,"div",26)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.credentials.token=n)}),e.qZA()(),e.TgZ(11,"div",26)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.bucket=n)}),e.qZA()(),e.TgZ(16,"div",26)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.organization=n)}),e.qZA()()()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,8,"dlg.app-settings-daqstore-url")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.url),e.xp6(3),e.Oqu(e.lcZ(9,10,"dlg.app-settings-daqstore-token")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.credentials.token),e.xp6(3),e.Oqu(e.lcZ(14,12,"dlg.app-settings-daqstore-bucket")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.bucket),e.xp6(3),e.Oqu(e.lcZ(19,14,"dlg.app-settings-daqstore-organization")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.organization)}}function Jq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",26)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.url=n)}),e.qZA()(),e.TgZ(6,"div",26)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.database=n)}),e.qZA()(),e.TgZ(11,"div",26)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.credentials.username=n)}),e.qZA()(),e.TgZ(16,"div",26)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.credentials.password=n)}),e.qZA()()()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,8,"dlg.app-settings-daqstore-url")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.url),e.xp6(3),e.Oqu(e.lcZ(9,10,"dlg.app-settings-daqstore-database")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.database),e.xp6(3),e.Oqu(e.lcZ(14,12,"dlg.app-settings-daqstore-username")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.credentials.username),e.xp6(3),e.Oqu(e.lcZ(19,14,"dlg.app-settings-daqstore-password")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.credentials.password)}}function jq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",26)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",50),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.url=n)}),e.qZA()(),e.TgZ(6,"div",26)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",51),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.database=n)}),e.qZA()(),e.TgZ(11,"div",26)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",52),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.credentials.username=n)}),e.qZA()(),e.TgZ(16,"div",26)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",53),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.settings.daqstore.credentials.password=n)}),e.qZA()()()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,8,"dlg.app-settings-daqstore-url")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.url),e.xp6(3),e.Oqu(e.lcZ(9,10,"dlg.app-settings-daqstore-database")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.database),e.xp6(3),e.Oqu(e.lcZ(14,12,"dlg.app-settings-daqstore-username")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.credentials.username),e.xp6(3),e.Oqu(e.lcZ(19,14,"dlg.app-settings-daqstore-password")),e.xp6(2),e.Q6J("ngModel",t.settings.daqstore.credentials.password)}}function Vq(r,a){if(1&r&&(e.TgZ(0,"div",21)(1,"div",44),e.YNc(2,Gq,7,7,"div",45),e.YNc(3,Zq,21,16,"div",46),e.YNc(4,Jq,21,16,"div",46),e.YNc(5,jq,21,16,"div",46),e.qZA()()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngSwitch",t.settings.daqstore.type),e.xp6(1),e.Q6J("ngSwitchCase",t.daqstoreType.SQlite),e.xp6(1),e.Q6J("ngSwitchCase",t.daqstoreType.influxDB),e.xp6(1),e.Q6J("ngSwitchCase",t.influxDB18),e.xp6(1),e.Q6J("ngSwitchCase",t.daqstoreType.TDengine)}}function Wq(r,a){if(1&r&&(e.TgZ(0,"mat-option",19),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"store.retention-"+t.value)," ")}}let Kq=(()=>{class r{settingsService;diagnoseService;translateService;toastr;dialogRef;languageType=[{text:"dlg.app-language-de",value:"de"},{text:"dlg.app-language-en",value:"en"},{text:"dlg.app-language-es",value:"es"},{text:"dlg.app-language-fr",value:"fr"},{text:"dlg.app-language-ko",value:"ko"},{text:"dlg.app-language-pt",value:"pt"},{text:"dlg.app-language-ru",value:"ru"},{text:"dlg.app-language-sv",value:"sv"},{text:"dlg.app-language-tr",value:"tr"},{text:"dlg.app-language-ua",value:"ua"},{text:"dlg.app-language-zh-cn",value:"zh-cn"},{text:"dlg.app-language-ja",value:"ja"}];authType=[{text:"dlg.app-auth-disabled",value:""},{text:"dlg.app-auth-expiration-15m",value:"15m"},{text:"dlg.app-auth-expiration-1h",value:"1h"},{text:"dlg.app-auth-expiration-3h",value:"3h"},{text:"dlg.app-auth-expiration-1d",value:"1d"}];settings=new Ig.de;authentication="";authenticationTooltip="";smtpTesting=!1;smtpTestAddress="";showPassword=!1;daqstoreType=Ig._k;retationType=Ig.Or;alarmsRetationType=Ig.oZ;influxDB18=ii.cQ.getEnumKey(Ig._k,Ig._k.influxDB18);constructor(t,i,n,o,s){this.settingsService=t,this.diagnoseService=i,this.translateService=n,this.toastr=o,this.dialogRef=s}ngOnInit(){this.settings=JSON.parse(JSON.stringify(this.settingsService.getSettings()));for(let t=0;t{this.languageType[t].text=i});for(let t=0;t{this.authType[t].text=i});this.translateService.get("dlg.app-auth-tooltip").subscribe(t=>{this.authenticationTooltip=t}),this.settings.secureEnabled&&(this.authentication=this.settings.tokenExpiresIn),ii.cQ.isNullOrUndefined(this.settings.broadcastAll)&&(this.settings.broadcastAll=!0),ii.cQ.isNullOrUndefined(this.settings.logFull)&&(this.settings.logFull=!1),this.settings.smtp||(this.settings.smtp=new Ig.Nc),this.settings.daqstore=this.settings.daqstore||new Ig.r8,this.settings.daqstore.credentials||(this.settings.daqstore.credentials=new Ig.Tu)}onNoClick(){this.dialogRef.close()}onOkClick(){this.settings.secureEnabled=!!this.authentication,this.settings.tokenExpiresIn=this.authentication,this.settingsService.setSettings(this.settings)&&this.settingsService.saveSettings(),this.dialogRef.close()}onLanguageChange(t){this.settings.language=t}onAlarmsClear(){this.settingsService.clearAlarms(!0)}onSmtpTest(){this.smtpTesting=!0,this.diagnoseService.sendMail({from:this.settings.smtp.mailsender||this.settings.smtp.username,to:this.smtpTestAddress,subject:"FUXA",text:"TEST"},this.settings.smtp).subscribe(()=>{this.smtpTesting=!1;var i="";this.translateService.get("msg.sendmail-success").subscribe(n=>{i=n}),this.toastr.success(i)},i=>{if(this.smtpTesting=!1,i.message)this.notifyError(i.message);else{var n="";this.translateService.get("msg.sendmail-error").subscribe(o=>{n=o}),this.notifyError(n)}})}isSmtpTestReady(){return!(this.smtpTesting||!this.settings.smtp.host||!this.settings.smtp.host.length||!this.settings.smtp.username||!this.settings.smtp.username.length||!this.smtpTestAddress||!this.smtpTestAddress.length)}keyDownStopPropagation(t){t.stopPropagation()}notifyError(t){this.toastr.error(t,"",{timeOut:3e3,closeButton:!0})}static \u0275fac=function(i){return new(i||r)(e.Y36(Rh.g),e.Y36(xS),e.Y36(Ni.sK),e.Y36(Vf._W),e.Y36(_r))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-app-settings"]],decls:142,vars:125,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"tabs-container"],[3,"label"],[1,"block","mt20","tab-system"],[1,"my-form-field","block","system-input"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","block","mt15","system-input"],["numberOnly","","type","text","disabled","true",2,"width","320px",3,"ngModel","ngModelChange"],[1,"my-form-field","block","mt15"],[1,"my-form-field","system-input"],[2,"display","inline-block"],[1,"my-form-field-info",2,"height","16px",3,"matTooltip"],[2,"display","block",3,"value","valueChange"],[1,"my-form-field","ml20"],["color","primary",3,"ngModel","disabled","ngModelChange"],[3,"value","valueChange"],[3,"value"],[1,"block","mt20","tab-smtp"],[1,"block"],[1,"my-form-field"],["placeholder","smtp.example.com","type","text",2,"width","320px",3,"ngModel","ngModelChange"],[1,"my-form-field","lbk","ml10"],["numberOnly","","type","text",2,"width","80px",3,"ngModel","ngModelChange"],[1,"my-form-field","block","mt15","w100"],["placeholder","fuxa@example.com","type","text",1,"input-row",3,"ngModel","ngModelChange"],["autocomplete","off",1,"input-row",3,"type","ngModel","keydown","ngModelChange"],["matSuffix","",1,"show-password",3,"click"],[1,"block","mt15","w100"],[1,"my-form-field","lbk"],["type","text",2,"width","320px",3,"ngModel","ngModelChange"],["mat-raised-button","","color","basic",3,"disabled","click"],[1,"block","mt20","tab-daq"],[1,"my-form-field","block"],[2,"width","200px",3,"value","valueChange"],["class","block",4,"ngIf"],[1,"block","mt20","tab-alarms"],[1,"block","mt20","mb20"],["mat-raised-button","","color","basic",3,"click"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[3,"ngSwitch"],["class","my-form-field block mt15",4,"ngSwitchCase"],[4,"ngSwitchCase"],["placeholder","https://us-west-2-1.aws.cloud2.influxdata.com","type","text",1,"input-row",3,"ngModel","ngModelChange"],["placeholder","","type","text",1,"input-row",3,"ngModel","ngModelChange"],["placeholder","http://localhost:8086","type","text",1,"input-row",3,"ngModel","ngModelChange"],["placeholder","http://localhost:6041/rest/sql","type","text",1,"input-row",3,"ngModel","ngModelChange"],["placeholder","fuxa","type","text",1,"input-row",3,"ngModel","ngModelChange"],["placeholder","root","type","text",1,"input-row",3,"ngModel","ngModelChange"],["placeholder","taosdata","type","text",1,"input-row",3,"ngModel","ngModelChange"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"mat-tab-group",3)(8,"mat-tab",4),e.ALo(9,"translate"),e.TgZ(10,"div",5)(11,"div",6)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"mat-select",7),e.NdJ("valueChange",function(s){return n.settings.language=s})("selectionChange",function(s){return n.onLanguageChange(s.value)}),e.YNc(16,Nq,2,2,"mat-option",8),e.qZA()(),e.TgZ(17,"div",9)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"input",10),e.NdJ("ngModelChange",function(s){return n.settings.uiPort=s}),e.qZA()(),e.TgZ(22,"div",11)(23,"div",12)(24,"span",13),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"mat-icon",14),e._uU(28,"error_outline"),e.qZA(),e.TgZ(29,"mat-select",15),e.NdJ("valueChange",function(s){return n.authentication=s}),e.YNc(30,Uq,2,2,"mat-option",8),e.qZA()(),e.TgZ(31,"div",16)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"mat-slide-toggle",17),e.NdJ("ngModelChange",function(s){return n.settings.secureOnlyEditor=s}),e.qZA()()(),e.TgZ(36,"div",9)(37,"span"),e._uU(38),e.ALo(39,"translate"),e.qZA(),e.TgZ(40,"mat-select",18),e.NdJ("valueChange",function(s){return n.settings.broadcastAll=s}),e.TgZ(41,"mat-option",19),e._uU(42),e.ALo(43,"translate"),e.qZA(),e.TgZ(44,"mat-option",19),e._uU(45),e.ALo(46,"translate"),e.qZA()()(),e.TgZ(47,"div",9)(48,"span"),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"mat-select",18),e.NdJ("valueChange",function(s){return n.settings.logFull=s}),e.TgZ(52,"mat-option",19),e._uU(53),e.ALo(54,"translate"),e.qZA(),e.TgZ(55,"mat-option",19),e._uU(56),e.ALo(57,"translate"),e.qZA()()(),e.TgZ(58,"div",9)(59,"span"),e._uU(60),e.ALo(61,"translate"),e.qZA(),e.TgZ(62,"mat-select",18),e.NdJ("valueChange",function(s){return n.settings.userRole=s}),e.TgZ(63,"mat-option",19),e._uU(64),e.ALo(65,"translate"),e.qZA(),e.TgZ(66,"mat-option",19),e._uU(67),e.ALo(68,"translate"),e.qZA()()()()(),e.TgZ(69,"mat-tab",4),e.ALo(70,"translate"),e.TgZ(71,"div",20)(72,"div",21)(73,"div",22)(74,"span"),e._uU(75),e.ALo(76,"translate"),e.qZA(),e.TgZ(77,"input",23),e.NdJ("ngModelChange",function(s){return n.settings.smtp.host=s}),e.qZA()(),e.TgZ(78,"div",24)(79,"span"),e._uU(80),e.ALo(81,"translate"),e.qZA(),e.TgZ(82,"input",25),e.NdJ("ngModelChange",function(s){return n.settings.smtp.port=s}),e.qZA()()(),e.TgZ(83,"div",26)(84,"span"),e._uU(85),e.ALo(86,"translate"),e.qZA(),e.TgZ(87,"input",27),e.NdJ("ngModelChange",function(s){return n.settings.smtp.mailsender=s}),e.qZA()(),e.TgZ(88,"div",26)(89,"span"),e._uU(90),e.ALo(91,"translate"),e.qZA(),e.TgZ(92,"input",27),e.NdJ("ngModelChange",function(s){return n.settings.smtp.username=s}),e.qZA()(),e.TgZ(93,"div",26)(94,"span"),e._uU(95),e.ALo(96,"translate"),e.qZA(),e.TgZ(97,"input",28),e.NdJ("keydown",function(s){return n.keyDownStopPropagation(s)})("ngModelChange",function(s){return n.settings.smtp.password=s}),e.qZA(),e.TgZ(98,"mat-icon",29),e.NdJ("click",function(){return n.showPassword=!n.showPassword}),e._uU(99),e.qZA()(),e.TgZ(100,"div",30)(101,"div",31)(102,"span"),e._uU(103),e.ALo(104,"translate"),e.qZA(),e.TgZ(105,"input",32),e.NdJ("ngModelChange",function(s){return n.smtpTestAddress=s}),e.qZA()(),e.TgZ(106,"div",24)(107,"button",33),e.NdJ("click",function(){return n.onSmtpTest()}),e._uU(108),e.ALo(109,"translate"),e.qZA()()()()(),e.TgZ(110,"mat-tab",4),e.ALo(111,"translate"),e.TgZ(112,"div",34)(113,"div",35)(114,"span"),e._uU(115),e.ALo(116,"translate"),e.qZA(),e.TgZ(117,"mat-select",36),e.NdJ("valueChange",function(s){return n.settings.daqstore.type=s}),e.YNc(118,zq,2,2,"mat-option",8),e.ALo(119,"enumToArray"),e.qZA()(),e.YNc(120,Vq,6,5,"div",37),e.qZA()(),e.TgZ(121,"mat-tab",4),e.ALo(122,"translate"),e.TgZ(123,"div",38)(124,"div",35)(125,"span"),e._uU(126),e.ALo(127,"translate"),e.qZA(),e.TgZ(128,"mat-select",36),e.NdJ("valueChange",function(s){return n.settings.alarms.retention=s}),e.YNc(129,Wq,3,4,"mat-option",8),e.ALo(130,"enumToArray"),e.qZA()(),e.TgZ(131,"div",39)(132,"button",40),e.NdJ("click",function(){return n.onAlarmsClear()}),e._uU(133),e.ALo(134,"translate"),e.qZA()()()()()(),e.TgZ(135,"div",41)(136,"button",42),e.NdJ("click",function(){return n.onNoClick()}),e._uU(137),e.ALo(138,"translate"),e.qZA(),e.TgZ(139,"button",43),e.NdJ("click",function(){return n.onOkClick()}),e._uU(140),e.ALo(141,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,61,"dlg.app-settings-title")),e.xp6(6),e.s9C("label",e.lcZ(9,63,"dlg.app-settings-system")),e.xp6(5),e.Oqu(e.lcZ(14,65,"dlg.app-settings-language")),e.xp6(2),e.Q6J("value",n.settings.language),e.xp6(1),e.Q6J("ngForOf",n.languageType),e.xp6(3),e.Oqu(e.lcZ(20,67,"dlg.app-settings-server-port")),e.xp6(2),e.Q6J("ngModel",n.settings.uiPort),e.xp6(4),e.Oqu(e.lcZ(26,69,"dlg.app-settings-auth-token")),e.xp6(2),e.s9C("matTooltip",n.authenticationTooltip),e.xp6(2),e.Q6J("value",n.authentication),e.xp6(1),e.Q6J("ngForOf",n.authType),e.xp6(3),e.Oqu(e.lcZ(34,71,"dlg.app-settings-auth-only-editor")),e.xp6(2),e.Q6J("ngModel",n.settings.secureOnlyEditor)("disabled",""===n.authentication),e.xp6(3),e.Oqu(e.lcZ(39,73,"dlg.app-settings-client-broadcast")),e.xp6(2),e.Q6J("value",n.settings.broadcastAll),e.xp6(1),e.Q6J("value",!0),e.xp6(1),e.Oqu(e.lcZ(43,75,"general.enabled")),e.xp6(2),e.Q6J("value",!1),e.xp6(1),e.Oqu(e.lcZ(46,77,"general.disabled")),e.xp6(4),e.Oqu(e.lcZ(50,79,"dlg.app-settings-server-log-full")),e.xp6(2),e.Q6J("value",n.settings.logFull),e.xp6(1),e.Q6J("value",!0),e.xp6(1),e.Oqu(e.lcZ(54,81,"general.enabled")),e.xp6(2),e.Q6J("value",!1),e.xp6(1),e.Oqu(e.lcZ(57,83,"general.disabled")),e.xp6(4),e.Oqu(e.lcZ(61,85,"dlg.app-settings-user-group-label")),e.xp6(2),e.Q6J("value",n.settings.userRole),e.xp6(1),e.Q6J("value",!1),e.xp6(1),e.Oqu(e.lcZ(65,87,"dlg.app-settings-user-group")),e.xp6(2),e.Q6J("value",!0),e.xp6(1),e.Oqu(e.lcZ(68,89,"dlg.app-settings-user-roles")),e.xp6(2),e.s9C("label",e.lcZ(70,91,"dlg.app-settings-smtp")),e.xp6(6),e.Oqu(e.lcZ(76,93,"dlg.app-settings-smtp-host")),e.xp6(2),e.Q6J("ngModel",n.settings.smtp.host),e.xp6(3),e.Oqu(e.lcZ(81,95,"dlg.app-settings-smtp-port")),e.xp6(2),e.Q6J("ngModel",n.settings.smtp.port),e.xp6(3),e.Oqu(e.lcZ(86,97,"dlg.app-settings-smtp-mailsender")),e.xp6(2),e.Q6J("ngModel",n.settings.smtp.mailsender),e.xp6(3),e.Oqu(e.lcZ(91,99,"dlg.app-settings-smtp-user")),e.xp6(2),e.Q6J("ngModel",n.settings.smtp.username),e.xp6(3),e.Oqu(e.lcZ(96,101,"dlg.app-settings-smtp-password")),e.xp6(2),e.Q6J("type",n.showPassword?"text":"password")("ngModel",n.settings.smtp.password),e.xp6(2),e.Oqu(n.showPassword?"visibility":"visibility_off"),e.xp6(4),e.Oqu(e.lcZ(104,103,"dlg.app-settings-smtp-testaddress")),e.xp6(2),e.Q6J("ngModel",n.smtpTestAddress),e.xp6(2),e.Q6J("disabled",!n.isSmtpTestReady()),e.xp6(1),e.Oqu(e.lcZ(109,105,"dlg.app-settings-smtp-test")),e.xp6(2),e.s9C("label",e.lcZ(111,107,"dlg.app-settings-daqstore")),e.xp6(5),e.Oqu(e.lcZ(116,109,"dlg.app-settings-daqstore-type")),e.xp6(2),e.Q6J("value",n.settings.daqstore.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(119,111,n.daqstoreType)),e.xp6(2),e.Q6J("ngIf",n.settings.daqstore.type),e.xp6(1),e.s9C("label",e.lcZ(122,113,"dlg.app-settings-alarms")),e.xp6(5),e.Oqu(e.lcZ(127,115,"dlg.app-settings-daqstore-retention")),e.xp6(2),e.Q6J("value",n.settings.alarms.retention),e.xp6(1),e.Q6J("ngForOf",e.lcZ(130,117,n.alarmsRetationType)),e.xp6(4),e.Oqu(e.lcZ(134,119,"dlg.app-settings-alarms-clear")),e.xp6(4),e.Oqu(e.lcZ(138,121,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(141,123,"dlg.ok")))},dependencies:[l.sg,l.O5,l.RF,l.n9,I,et,$i,Nr,Yn,Qr,Kr,Ir,Zn,kh,fo,bc,NA,DA,Cs,zr,fs,Ni.X$,ii.T9],styles:[".mat-tab-label{height:34px!important;padding:0}.tabs-container[_ngcontent-%COMP%]{min-height:500px;min-width:620px}.tabs-container[_ngcontent-%COMP%] .tab-system[_ngcontent-%COMP%]{min-width:320px}.tabs-container[_ngcontent-%COMP%] .tab-smtp[_ngcontent-%COMP%], .tabs-container[_ngcontent-%COMP%] .tab-daq[_ngcontent-%COMP%], .tabs-container[_ngcontent-%COMP%] .tab-alarms[_ngcontent-%COMP%]{padding-right:10px}.input-row[_ngcontent-%COMP%]{width:100%}.system-input[_ngcontent-%COMP%]{width:320px}"]})}return r})();function qq(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",10)(1,"mat-slide-toggle",11),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.enabled=n)}),e.TgZ(2,"code"),e._uU(3),e.qZA(),e.TgZ(4,"span",12),e.ALo(5,"translate"),e._uU(6),e.ALo(7,"translate"),e.qZA()()()}if(2&r){const t=a.$implicit;e.xp6(1),e.Q6J("ngModel",t.enabled),e.xp6(2),e.Oqu(t.name),e.xp6(1),e.s9C("matTooltip",e.lcZ(5,4,t.tooltip)),e.xp6(2),e.Oqu(e.lcZ(7,6,t.tooltip))}}let Xq=(()=>{class r{dialogRef;projectService;scriptFunctions=[];constructor(t,i){this.dialogRef=t,this.projectService=i}ngOnInit(){const t=new Wo.ui(Wo.EN.CLIENT),i=this.projectService.getClientAccess();this.scriptFunctions=t.functions.map(n=>({name:n.name,label:n.text,tooltip:n.tooltip,enabled:i?.scriptSystemFunctions?.includes(n.name)??!1}))}getClientAccess(){return{scriptSystemFunctions:this.scriptFunctions.filter(t=>t.enabled).map(t=>t.name)}}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close();const t=this.getClientAccess();this.projectService.setClientAccess(t)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-client-script-access"]],decls:19,vars:13,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"info"],[1,"function-list"],["class","function-item",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[1,"function-item"],["color","primary",3,"ngModel","ngModelChange"],[3,"matTooltip"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"div",5),e.YNc(11,qq,8,8,"div",6),e.qZA()(),e.TgZ(12,"div",7)(13,"button",8),e.NdJ("click",function(){return n.onNoClick()}),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"button",9),e.NdJ("click",function(){return n.onOkClick()}),e._uU(17),e.ALo(18,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,5,"client.script-access-title")),e.xp6(6),e.Oqu(e.lcZ(9,7,"client.script-access-info")),e.xp6(3),e.Q6J("ngForOf",n.scriptFunctions),e.xp6(3),e.Oqu(e.lcZ(15,9,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(18,11,"dlg.ok")))},dependencies:[l.sg,et,$i,Yn,Qr,Kr,Ir,Zn,bc,Cs,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{max-width:900px;width:100%;min-width:700px;margin:0 auto}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{display:flex;margin-bottom:20px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .function-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .function-item[_ngcontent-%COMP%]{padding:1px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .function-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:13px;color:gray;margin-left:6px}"]})}return r})();var $q=ce(7081);const eX=["messages","users","userRoles","plugins","notifications","scripts","reports","materials","logs","events","language"];let tX=(()=>{class r{router;appService;dialog;projectService;plugins;dialogRef;nodeRedExists$;constructor(t,i,n,o,s,c){this.router=t,this.appService=i,this.dialog=n,this.projectService=o,this.plugins=s,this.dialogRef=c,this.router.routeReuseStrategy.shouldReuseRoute=function(){return!1},this.nodeRedExists$=this.plugins.hasNodeRed$(!0).pipe(Kd(()=>(0,lr.of)(!1)),(0,$q.d)({bufferSize:1,refCount:!1}))}onNoClick(){this.dialogRef.close()}goTo(t,i){this.onNoClick(),this.router.navigate([t],{queryParams:{type:i}})}onChartConfig(){this.onNoClick(),this.dialog.open(TL,{position:{top:"60px"},minWidth:"1090px",width:"1090px"}).afterClosed().subscribe()}onGraphConfig(t){this.onNoClick(),this.dialog.open(QL,{position:{top:"60px"},minWidth:"1090px",width:"1090px",data:{type:t}}).afterClosed().subscribe()}onLayoutConfig(){this.onNoClick();let t=null,i=this.projectService.getHmi();i.layout&&(t=JSON.parse(JSON.stringify(i.layout))),t&&!1!==t.showdev&&(t.showdev=!0),this.dialog.open(Fq,{position:{top:"60px"},data:{layout:t,views:i.views,securityEnabled:this.projectService.isSecurityEnabled()}}).afterClosed().subscribe(o=>{o&&(i.layout=JSON.parse(JSON.stringify(o.layout)),this.projectService.setLayout(i.layout))})}onPlugins(){this.onNoClick(),this.dialog.open(Yq,{position:{top:"60px"}}).afterClosed().subscribe(i=>{})}onSettings(){this.onNoClick(),this.dialog.open(Kq,{position:{top:"60px"}}).afterClosed().subscribe(i=>{})}isToDisable(t){return-1!==eX.indexOf(t)&&this.appService.isClientApp}onWidgets(){this.onNoClick(),this.dialog.open(Xq,{position:{top:"60px"}}).afterClosed().subscribe(i=>{})}static \u0275fac=function(i){return new(i||r)(e.Y36(Zc),e.Y36(bg.z),e.Y36(xo),e.Y36(wr.Y4),e.Y36(GC),e.Y36(_r))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-setup"]],decls:180,vars:81,consts:[[1,"dlg-container"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"separator"],[1,"separator-line",2,"position","absolute","left","0px"],[1,"separator-text"],[1,"separator-line",2,"position","absolute","right","0px"],[1,"btn-cards"],[1,"btn-card"],["mat-button","",1,"card-btn",3,"click"],[1,"card-btn-content"],["mat-button","",1,"card-btn",3,"disabled","click"],["svgIcon","nodered-flows",2,"width","50px"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4),e._UZ(8,"div",5),e.TgZ(9,"div",6),e._uU(10),e.ALo(11,"translate"),e.qZA(),e._UZ(12,"div",7),e.qZA(),e.TgZ(13,"div",8)(14,"div",9)(15,"button",10),e.NdJ("click",function(){return n.goTo("/editor")}),e.TgZ(16,"div",11)(17,"mat-icon"),e._uU(18,"view_module"),e.qZA(),e.TgZ(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA()()()(),e.TgZ(22,"div",9)(23,"button",10),e.NdJ("click",function(){return n.onLayoutConfig()}),e.TgZ(24,"div",11)(25,"mat-icon"),e._uU(26,"perm_data_setting"),e.qZA(),e.TgZ(27,"span"),e._uU(28),e.ALo(29,"translate"),e.qZA()()()(),e.TgZ(30,"div",9)(31,"button",10),e.NdJ("click",function(){return n.onChartConfig()}),e.TgZ(32,"div",11)(33,"mat-icon"),e._uU(34,"multiline_chart"),e.qZA(),e.TgZ(35,"span"),e._uU(36),e.ALo(37,"translate"),e.qZA()()()(),e.TgZ(38,"div",9)(39,"button",10),e.NdJ("click",function(){return n.onGraphConfig("bar")}),e.TgZ(40,"div",11)(41,"mat-icon"),e._uU(42,"insert_chart_outlined"),e.qZA(),e.TgZ(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA()()()(),e.TgZ(46,"div",9)(47,"button",10),e.NdJ("click",function(){return n.goTo("/mapsLocations")}),e.TgZ(48,"div",11)(49,"mat-icon"),e._uU(50,"location_on"),e.qZA(),e.TgZ(51,"span"),e._uU(52),e.ALo(53,"translate"),e.qZA()()()()(),e.TgZ(54,"div",4),e._UZ(55,"div",5),e.TgZ(56,"div",6),e._uU(57),e.ALo(58,"translate"),e.qZA(),e._UZ(59,"div",7),e.qZA(),e.TgZ(60,"div",8)(61,"div",9)(62,"button",10),e.NdJ("click",function(){return n.goTo("/device")}),e.TgZ(63,"div",11)(64,"mat-icon"),e._uU(65,"lan"),e.qZA(),e.TgZ(66,"span"),e._uU(67),e.ALo(68,"translate"),e.qZA()()()(),e.TgZ(69,"div",9)(70,"button",12),e.NdJ("click",function(){return n.goTo("/users")}),e.TgZ(71,"div",11)(72,"mat-icon"),e._uU(73,"people"),e.qZA(),e.TgZ(74,"span"),e._uU(75),e.ALo(76,"translate"),e.qZA()()()(),e.TgZ(77,"div",9)(78,"button",12),e.NdJ("click",function(){return n.goTo("/userRoles")}),e.TgZ(79,"div",11)(80,"mat-icon"),e._uU(81,"groups"),e.qZA(),e.TgZ(82,"span"),e._uU(83),e.ALo(84,"translate"),e.qZA()()()(),e.TgZ(85,"div",9)(86,"button",12),e.NdJ("click",function(){return n.onPlugins()}),e.TgZ(87,"div",11)(88,"mat-icon"),e._uU(89,"extension"),e.qZA(),e.TgZ(90,"span"),e._uU(91),e.ALo(92,"translate"),e.qZA()()()(),e.TgZ(93,"div",9)(94,"button",10),e.NdJ("click",function(){return n.onWidgets()}),e.TgZ(95,"div",11)(96,"mat-icon"),e._uU(97,"lock_open"),e.qZA(),e.TgZ(98,"span"),e._uU(99),e.ALo(100,"translate"),e.qZA()()()(),e.TgZ(101,"div",9)(102,"button",10),e.NdJ("click",function(){return n.onSettings()}),e.TgZ(103,"div",11)(104,"mat-icon"),e._uU(105,"settings"),e.qZA(),e.TgZ(106,"span"),e._uU(107),e.ALo(108,"translate"),e.qZA()()()()(),e._UZ(109,"div",8),e.TgZ(110,"div",4),e._UZ(111,"div",5),e.TgZ(112,"div",6),e._uU(113),e.ALo(114,"translate"),e.qZA(),e._UZ(115,"div",7),e.qZA(),e.TgZ(116,"div",8)(117,"div",9)(118,"button",12),e.NdJ("click",function(){return n.goTo("/messages")}),e.TgZ(119,"div",11)(120,"mat-icon"),e._uU(121,"warning_amber"),e.qZA(),e.TgZ(122,"span"),e._uU(123),e.ALo(124,"translate"),e.qZA()()()(),e.TgZ(125,"div",9)(126,"button",12),e.NdJ("click",function(){return n.goTo("/notifications")}),e.TgZ(127,"div",11)(128,"mat-icon"),e._uU(129,"notifications_none"),e.qZA(),e.TgZ(130,"span"),e._uU(131),e.ALo(132,"translate"),e.qZA()()()(),e.TgZ(133,"div",9)(134,"button",12),e.NdJ("click",function(){return n.goTo("/scripts")}),e.TgZ(135,"div",11)(136,"mat-icon"),e._uU(137,"code"),e.qZA(),e.TgZ(138,"span"),e._uU(139),e.ALo(140,"translate"),e.qZA()()()(),e.TgZ(141,"div",9)(142,"button",12),e.NdJ("click",function(){return n.goTo("/flows")}),e.ALo(143,"async"),e.TgZ(144,"div",11),e._UZ(145,"mat-icon",13),e.TgZ(146,"span"),e._uU(147),e.ALo(148,"translate"),e.qZA()()()(),e.TgZ(149,"div",9)(150,"button",12),e.NdJ("click",function(){return n.goTo("/reports")}),e.TgZ(151,"div",11)(152,"mat-icon"),e._uU(153,"content_paste"),e.qZA(),e.TgZ(154,"span"),e._uU(155),e.ALo(156,"translate"),e.qZA()()()(),e.TgZ(157,"div",9)(158,"button",12),e.NdJ("click",function(){return n.goTo("/language")}),e.TgZ(159,"div",11)(160,"mat-icon"),e._uU(161,"language"),e.qZA(),e.TgZ(162,"span"),e._uU(163),e.ALo(164,"translate"),e.qZA()()()()(),e.TgZ(165,"div",4),e._UZ(166,"div",5),e.TgZ(167,"div",6),e._uU(168),e.ALo(169,"translate"),e.qZA(),e._UZ(170,"div",7),e.qZA(),e.TgZ(171,"div",8)(172,"div",9)(173,"button",12),e.NdJ("click",function(){return n.goTo("/logs")}),e.TgZ(174,"div",11)(175,"mat-icon"),e._uU(176,"assignment"),e.qZA(),e.TgZ(177,"span"),e._uU(178),e.ALo(179,"translate"),e.qZA()()()()()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,33,"dlg.setup-title")),e.xp6(8),e.hij(" ",e.lcZ(11,35,"dlg.setup-gui")," "),e.xp6(10),e.Oqu(e.lcZ(21,37,"dlg.setup-views")),e.xp6(8),e.Oqu(e.lcZ(29,39,"dlg.setup-layout")),e.xp6(8),e.Oqu(e.lcZ(37,41,"dlg.setup-line-charts")),e.xp6(8),e.Oqu(e.lcZ(45,43,"dlg.setup-bar-charts")),e.xp6(8),e.Oqu(e.lcZ(53,45,"dlg.setup-maps-locations")),e.xp6(5),e.hij(" ",e.lcZ(58,47,"dlg.setup-diverse")," "),e.xp6(10),e.Oqu(e.lcZ(68,49,"dlg.setup-connections")),e.xp6(3),e.Q6J("disabled",n.isToDisable("users")),e.xp6(5),e.Oqu(e.lcZ(76,51,"dlg.setup-users")),e.xp6(3),e.Q6J("disabled",n.isToDisable("userRoles")),e.xp6(5),e.Oqu(e.lcZ(84,53,"dlg.setup-user-roles")),e.xp6(3),e.Q6J("disabled",n.isToDisable("plugins")),e.xp6(5),e.Oqu(e.lcZ(92,55,"dlg.setup-plugins")),e.xp6(8),e.Oqu(e.lcZ(100,57,"dlg.setup-client-access")),e.xp6(8),e.Oqu(e.lcZ(108,59,"dlg.setup-settings")),e.xp6(6),e.hij(" ",e.lcZ(114,61,"dlg.setup-logic")," "),e.xp6(5),e.Q6J("disabled",n.isToDisable("messages")),e.xp6(5),e.Oqu(e.lcZ(124,63,"dlg.setup-alarms")),e.xp6(3),e.Q6J("disabled",n.isToDisable("notifications")),e.xp6(5),e.Oqu(e.lcZ(132,65,"dlg.setup-notifications")),e.xp6(3),e.Q6J("disabled",n.isToDisable("scripts")),e.xp6(5),e.Oqu(e.lcZ(140,67,"dlg.setup-scripts")),e.xp6(3),e.Q6J("disabled",n.isToDisable("scripts")||!1===e.lcZ(143,69,n.nodeRedExists$)),e.xp6(5),e.Oqu(e.lcZ(148,71,"dlg.setup-node-red-flows")),e.xp6(3),e.Q6J("disabled",n.isToDisable("reports")),e.xp6(5),e.Oqu(e.lcZ(156,73,"dlg.setup-reports")),e.xp6(3),e.Q6J("disabled",n.isToDisable("language")),e.xp6(5),e.Oqu(e.lcZ(164,75,"dlg.setup-language")),e.xp6(5),e.hij(" ",e.lcZ(169,77,"dlg.setup-system")," "),e.xp6(5),e.Q6J("disabled",n.isToDisable("logs")),e.xp6(5),e.Oqu(e.lcZ(179,79,"dlg.setup-logs")))},dependencies:[Yn,Qr,Kr,Zn,zr,l.Ov,Ni.X$],styles:["[_nghost-%COMP%] .mat-button[_ngcontent-%COMP%] .mat-button-focus-overlay[_ngcontent-%COMP%]{background-color:transparent}[_nghost-%COMP%] .dlg-container[_ngcontent-%COMP%]{position:relative;height:600px}[_nghost-%COMP%] .separator[_ngcontent-%COMP%]{align-items:center;display:flex;position:relative;margin-top:10px;margin-bottom:10px}[_nghost-%COMP%] .separator-line[_ngcontent-%COMP%]{border-bottom:1px solid var(--setupSeparatorColor);height:1px;width:35%}[_nghost-%COMP%] .separator-text[_ngcontent-%COMP%]{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);font-size:13px}[_nghost-%COMP%] .btn-cards[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin:16px -8px 18px;justify-content:center}[_nghost-%COMP%] .btn-card[_ngcontent-%COMP%]{margin-left:3px;margin-right:3px;padding-left:4px;padding-right:4px;flex:1}[_nghost-%COMP%] .card-btn[_ngcontent-%COMP%]{height:85px;min-height:auto;min-width:100px;width:100px;font-size:16px;text-align:center;align-content:center;overflow:hidden;padding:0!important}[_nghost-%COMP%] .card-btn[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;font-weight:400!important;font-size:13px;text-align:center}[_nghost-%COMP%] .card-btn-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:10px 0 5px;text-align:center;height:100%}[_nghost-%COMP%] .card-btn-content[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:32px;margin-bottom:6px;height:32px;width:32px}[_nghost-%COMP%] .card-btn-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;font-size:14px;text-align:center;white-space:normal;overflow:hidden;text-overflow:ellipsis;line-height:1.2;min-height:2.4em;max-height:2.4em;padding:0 4px}"]})}return r})();const SL={default:{headerBackground:"hsl(0, 0%, 100%)",headerColor:"rgba(33,33,33,0.92)",headerBorder:"#f9f9f9",toolboxBackground:"#FBFBFB",toolboxColor:"#000000",toolboxBorder:"#F1F3F4",toolboxPanelBackground:"#f9f9f9",toolboxButton:"#545454",sidenavBackground:"#f9f9f9",toolboxItemActiveBackground:"#3059af",toolboxItemActiveColor:"#FFFFFF",toolboxFlyColor:"#000000",footZoomBackground:"#E4E4E4",footZoomBackgroundHover:"#CDCDCD",footZoomColor:"#000000",svgEditRulersBackground:"#f9f9f9",svgEditRulersColor:"#000000",svgEditWorkareaBackground:"#e4e4e4",svgEditWorkareaContextMenu:"#e4e4e4",svgEditWorkareaContextColor:"#000000",formInputBackground:"#f1f3f4",formExtInputBackground:"#fdfdfd",formInputColor:"#000000",formInputReadonlyBackground:"#f1f3f4",formInputBorderFocus:"#ccc",formInputBackgroundFocus:"#FFFFFF",formSliderBackground:"#f1f3f4",formSeparatorColor:"#e0e0e0",formBorder:"#F1F3F4",setupSeparatorColor:"#ccc",workPanelBackground:"#FFFFFF",mapBorderColor:"#3C3C3C",formExtBackground:"#f1f3f4",formInputExtBackground:"#FFFFFF",scrollbarTrack:"#D9D9D9",scrollbarThumb:"#BEBEBE",chipsBackground:"#F1F1F1",chipSelectedBackground:"#3059AF",chipSelectedColor:"#FFFFFF",inputTime:"invert(0%)"},dark:{headerBackground:"#333333",headerColor:"rgba(255,255,255,1)",tableHeaderColor:"rgba(255,255,255,0.7)",headerBorder:"#252526",toolboxBackground:"#252526",toolboxColor:"#FFFFFF",toolboxBorder:"rgba(33,33,33,0.92)",toolboxPanelBackground:"#252526",toolboxButton:"##313131",sidenavBackground:"#252526",toolboxItemActiveBackground:"#3059af",toolboxItemActiveColor:"#FFFFFF",toolboxFlyColor:"#FFFFFF",footZoomBackground:"#212121",footZoomBackgroundHover:"#161616",footZoomColor:"#FFFFFF",svgEditRulersBackground:"#2f2f2f",svgEditRulersColor:"#A4A4A4",svgEditWorkareaBackground:"#434343",svgEditWorkareaContextMenu:"#212121",svgEditWorkareaContextColor:"#FFFFFF",formInputBackground:"#37373D",formExtInputBackground:"#2d2d2d",formInputColor:"#FFFFFF",formInputReadonlyBackground:"#37373D",formInputBorderFocus:"#1177BB",formInputBackgroundFocus:"#37373D",formSliderBackground:"#37373D",formSeparatorColor:"#37373D",formBorder:"rgba(39,39,39,0.42)",setupSeparatorColor:"#808080",workPanelBackground:"#424242",workPanelExpandBackground:"#292A2D",mapBorderColor:"#333333",formExtBackground:"#37373D",formInputExtBackground:"#424242",scrollbarTrack:"#414142",scrollbarThumb:"#686868",chipsBackground:"#242424",chipSelectedBackground:"#3059AF",chipSelectedColor:"#FFFFFF",inputTime:"invert(100%)"}};let vM=(()=>{class r{document;constructor(t){this.document=t}static ThemeType={Dark:"dark",Default:"default"};setTheme(t=r.ThemeType.Dark){SL[t]||(t=r.ThemeType.Dark);const i=SL[t];Object.keys(i).forEach(o=>{this.document.documentElement.style.setProperty(`--${o}`,i[o])});const n=document.getElementsByTagName("body")[0];n.classList.remove("dark-theme"),t===r.ThemeType.Dark&&n.classList.add("dark-theme")}static \u0275fac=function(i){return new(i||r)(e.LFG(l.K0))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();function iX(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"div",2)(2,"div",3),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",4),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.close())}),e._uU(6," \xd7 "),e.qZA()(),e.TgZ(7,"div",5)(8,"mat-accordion",6)(9,"mat-expansion-panel",7)(10,"mat-expansion-panel-header",8)(11,"mat-panel-title"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e._UZ(14,"mat-panel-description"),e.qZA(),e.TgZ(15,"div",9)(16,"ul")(17,"li"),e._uU(18,"Ctrl + Left / Right: rotate selected item"),e.qZA(),e.TgZ(19,"li"),e._uU(20,"Ctrl + Shift + Left / Right: rotate the selected item in big step"),e.qZA(),e.TgZ(21,"li"),e._uU(22,"Shift + O / P: select the prev / next item"),e.qZA(),e.TgZ(23,"li"),e._uU(24,"Tab / Shift + Tab: select the prev / next item"),e.qZA(),e.TgZ(25,"li"),e._uU(26,"Ctrl + Up / Down: central zoom in / out"),e.qZA(),e.TgZ(27,"li"),e._uU(28,"Ctrl + Z / Y: undo / redo"),e.qZA(),e.TgZ(29,"li"),e._uU(30,"Shift + 'resize with mouse the selected item': lock width and height"),e.qZA(),e.TgZ(31,"li"),e._uU(32,"Shift + Up / Down / Left / Right: move the selected item"),e.qZA(),e.TgZ(33,"li"),e._uU(34,"Shift + SCROLLER: zoom by mouse position"),e.qZA(),e.TgZ(35,"li"),e._uU(36,"Ctrl + A: select all item"),e.qZA(),e.TgZ(37,"li"),e._uU(38,"Ctrl + G: group or ungroup selected item"),e.qZA(),e.TgZ(39,"li"),e._uU(40,"Ctrl + D: duplicate selected item"),e.qZA(),e.TgZ(41,"li"),e._uU(42,"Shift + 'Draw line': line gradient horizonal, vertical 45\xb0 diagonal"),e.qZA(),e.TgZ(43,"li"),e._uU(44,"Ctrl + X: cut selected item"),e.qZA(),e.TgZ(45,"li"),e._uU(46,"Ctrl + C / V: copy / paste selected item"),e.qZA()()()()()()()}2&r&&(e.xp6(3),e.hij(" ",e.lcZ(4,4,"tutorial.title")," "),e.xp6(7),e.Q6J("collapsedHeight","40px")("expandedHeight","40px"),e.xp6(2),e.hij(" ",e.lcZ(13,6,"tutorial.editor-keyboard-shortcuts")," "))}let nX=(()=>{class r{show=!1;constructor(){}close(){this.show=!1}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tutorial"]],decls:1,vars:1,consts:[["class","tutorial-panel","ngDraggable","",4,"ngIf"],["ngDraggable","",1,"tutorial-panel"],[1,"tutorial-header"],[1,"tutorial-title"],[1,"tutorial-close",3,"click"],[1,"tutorial-body"],["multi","true"],["expanded","true",1,"my-expansion-panel"],[1,"header",3,"collapsedHeight","expandedHeight"],[1,"tutorial-content"]],template:function(i,n){1&i&&e.YNc(0,iX,47,8,"div",0),2&i&&e.Q6J("ngIf",n.show)},dependencies:[l.O5,qm,hg,dp,Df,Dh,zQ,Ni.X$],styles:[".tutorial-panel[_ngcontent-%COMP%]{width:460px;height:720px;z-index:99999!important;position:absolute;right:10px;top:50px;background-color:#585858;box-shadow:0 2px 6px #0003,0 2px 6px #00000030;border:0px!important}.tutorial-header[_ngcontent-%COMP%]{height:36px;background-color:#212121;color:#fff;padding-left:5px;cursor:move;line-height:30px}.tutorial-title[_ngcontent-%COMP%]{padding:5px 10px 5px 20px;font-size:16px}.tutorial-close[_ngcontent-%COMP%]{font-size:28px;cursor:pointer;right:5px;position:absolute;top:0}.tutorial-content[_ngcontent-%COMP%]{font-size:13px}.my-expansion-panel[_ngcontent-%COMP%]{margin:0}.header[_ngcontent-%COMP%] mat-panel-title[_ngcontent-%COMP%]{font-size:16px;font-weight:100} .mat-expansion-panel-body{padding:unset!important}","pre[_ngcontent-%COMP%] {\n white-space: pre-line;\n }"]})}return r})();const rX=["sidenav"],oX=["tutorial"],aX=["fileImportInput"];function sX(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",3)(1,"button",4,5),e.ALo(3,"translate"),e.TgZ(4,"mat-icon",6),e._uU(5,"save"),e.qZA()(),e.TgZ(6,"mat-menu",7,8)(8,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onNewProject())}),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"mat-divider",10),e.TgZ(12,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onSaveProject())}),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onSaveProjectAs())}),e._uU(16),e.ALo(17,"translate"),e.qZA(),e._UZ(18,"mat-divider",10),e.TgZ(19,"button",9),e.NdJ("click",function(n){return e.CHM(t),e.oxw().onOpenProject(),e.KtG(n.stopPropagation())}),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"mat-divider",10),e.TgZ(23,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onRenameProject())}),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"input",11,12),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onFileChangeListener(n))}),e.qZA()(),e.TgZ(28,"button",13),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onSetup())}),e.ALo(29,"translate"),e.TgZ(30,"mat-icon",14),e._uU(31,"settings"),e.qZA()()()}if(2&r){const t=e.MAs(7);e.xp6(1),e.s9C("title",e.lcZ(3,9,"header.save-project")),e.Q6J("matMenuTriggerFor",t),e.xp6(5),e.Q6J("overlapTrigger",!1),e.xp6(3),e.Oqu(e.lcZ(10,11,"header.new-project")),e.xp6(4),e.Oqu(e.lcZ(14,13,"header.save-project")),e.xp6(3),e.Oqu(e.lcZ(17,15,"header.saveas-project")),e.xp6(4),e.Oqu(e.lcZ(21,17,"header.open-project")),e.xp6(4),e.Oqu(e.lcZ(25,19,"header.rename-project")),e.xp6(4),e.s9C("title",e.lcZ(29,21,"header.edit-project"))}}function lX(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"div",16)(2,"button",4),e.ALo(3,"translate"),e.TgZ(4,"mat-icon",17),e._uU(5,"help_outline"),e.qZA()(),e.TgZ(6,"mat-menu",7,18)(8,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onShowHelp("help"))}),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"mat-divider",10),e.TgZ(12,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onShowHelp("info"))}),e._uU(13),e.ALo(14,"translate"),e.qZA(),e._UZ(15,"mat-divider",10),e.TgZ(16,"button",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChangeTheme())}),e._uU(17),e.ALo(18,"translate"),e.qZA()()()()}if(2&r){const t=e.MAs(7);e.xp6(2),e.s9C("title",e.lcZ(3,6,"header.help")),e.Q6J("matMenuTriggerFor",t),e.xp6(4),e.Q6J("overlapTrigger",!1),e.xp6(3),e.Oqu(e.lcZ(10,8,"header.help-tutorial")),e.xp6(4),e.Oqu(e.lcZ(14,10,"header.help-info")),e.xp6(4),e.Oqu(e.lcZ(18,12,"header.change-thema"))}}const cX=["/editor","/device","/messages","/language","/users","/userRoles","/notifications","/scripts","/reports","/materials","/logs","/events","/mapsLocations","/flows"],AX=["/device","/messages","/language","/users","/userRoles","/notifications","/scripts","/reports","/materials","/logs","/events","/mapsLocations","/flows"];let dX=(()=>{class r{router;dialog;translateService;themeService;projectService;sidenav;tutorial;fileImportInput;darkTheme=!0;editorMode=!1;saveFromEditor=!1;subscriptionShowHelp;subscriptionLoad;constructor(t,i,n,o,s){this.router=t,this.dialog=i,this.translateService=n,this.themeService=o,this.projectService=s,this.router.events.pipe((0,Wr.h)(c=>c instanceof Bg)).subscribe(c=>{const g=c.url.split("?")[0];this.editorMode=!!cX.includes(g),this.saveFromEditor=!!AX.includes(g),this.router.url.indexOf(Tt.eC)>=0&&(this.editorMode=!1)}),this.themeService.setTheme(this.projectService.getLayoutTheme())}ngAfterViewInit(){this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{let i=this.projectService.getLayoutTheme();this.darkTheme=i!==vM.ThemeType.Default,this.themeService.setTheme(this.projectService.getLayoutTheme())},t=>{console.error("Error loadHMI")})}ngOnDestroy(){try{this.subscriptionShowHelp&&this.subscriptionShowHelp.unsubscribe(),this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}onClick(t){this.sidenav.close()}onShowHelp(t){let i=new Tt.sB;i.page=t,i.tag="device",this.showHelp(i)}onSetup(){this.projectService.saveProject(wr.JV.Current),this.dialog.open(tX,{position:{top:"60px"}})}showHelp(t){"help"===t.page?this.tutorial.show=!0:"info"===t.page&&this.showInfo()}showInfo(){this.dialog.open(uX,{data:{name:"Info",version:vp.N.version}}).afterClosed().subscribe(i=>{})}goTo(t){this.router.navigate([t])}onChangeTheme(){this.darkTheme=!this.darkTheme;let t=vM.ThemeType.Default;this.darkTheme&&(t=vM.ThemeType.Dark),this.themeService.setTheme(t),this.projectService.setLayoutTheme(t)}onNewProject(){try{let t="";this.translateService.get("msg.project-save-ask").subscribe(i=>{t=i}),window.confirm(t)&&(this.projectService.setNewProject(),this.onRenameProject())}catch(t){console.error(t)}}onSaveProjectAs(){try{this.saveFromEditor?this.projectService.saveAs():this.projectService.saveProject(wr.JV.SaveAs)}catch{}}onOpenProject(){document.getElementById("projectFileUpload").click()}onFileChangeListener(t){let i=t.target,n=new FileReader;n.onload=o=>{let s=JSON.parse(n.result.toString());this.projectService.setProject(s,!0)},n.onerror=function(){alert("Unable to read "+i.files[0])},n.readAsText(i.files[0]),this.fileImportInput.nativeElement.value=null}onSaveProject(){try{this.saveFromEditor?this.projectService.save():this.projectService.saveProject(wr.JV.Save)}catch(t){console.error(t)}}onRenameProject(){let t="";this.translateService.get("project.name").subscribe(n=>{t=n}),this.dialog.open(Tv,{position:{top:"60px"},data:{name:this.projectService.getProjectName(),title:t}}).afterClosed().subscribe(n=>{n&&n.name!==this.projectService.getProjectName()&&this.projectService.setProjectName(n.name.replace(/ /g,""))})}static \u0275fac=function(i){return new(i||r)(e.Y36(Zc),e.Y36(xo),e.Y36(Ni.sK),e.Y36(vM),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-header"]],viewQuery:function(i,n){if(1&i&&(e.Gf(rX,5),e.Gf(oX,5),e.Gf(aX,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.sidenav=o.first),e.iGM(o=e.CRH())&&(n.tutorial=o.first),e.iGM(o=e.CRH())&&(n.fileImportInput=o.first)}},decls:4,vars:2,consts:[["class","header-panel",4,"ngIf"],["class","header-right",4,"ngIf"],["tutorial",""],[1,"header-panel"],["mat-button","",1,"main-btn",3,"title","matMenuTriggerFor"],["prjviewtrigger","matMenuTrigger"],["aria-label","Save Project"],["yPosition","below",1,"leftbar-item-menu","header-menu",3,"overlapTrigger"],["prjview","matMenu"],["mat-menu-item","",3,"click"],[1,"menu-separator"],["type","file","id","projectFileUpload","accept",".json",2,"display","none",3,"change"],["fileImportInput",""],["mat-button","",1,"main-btn",3,"title","click"],["aria-label","Edit Views"],[1,"header-right"],[1,"header-help"],["aria-label","HELP"],["helpmenu","matMenu"]],template:function(i,n){1&i&&(e.YNc(0,sX,32,23,"div",0),e.YNc(1,lX,19,14,"div",1),e._UZ(2,"app-tutorial",null,2)),2&i&&(e.Q6J("ngIf",n.editorMode),e.xp6(1),e.Q6J("ngIf",n.editorMode))},dependencies:[l.O5,Yn,Zn,a0,zc,Hc,cc,nX,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{z-index:99!important;position:fixed;top:0;left:0;background-color:var(--headerBackground);color:var(--headerColor);height:36px;width:200px}.header-right[_ngcontent-%COMP%]{z-index:99!important;position:fixed;top:0;right:0;background-color:var(--headerBackground);color:var(--headerColor);height:36px;width:120px}.header-help[_ngcontent-%COMP%]{float:right;height:36px;width:36px;margin-right:20px}.header-theme[_ngcontent-%COMP%]{float:right;height:36px;width:36px;margin-right:5px}.main-btn[_ngcontent-%COMP%]{height:34px;width:34px;min-width:unset!important;padding:unset!important;line-height:34px;margin-left:5px;margin-right:5px}.main-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px;height:unset;width:unset}.header-menu[_ngcontent-%COMP%]{box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003}.header-icon[_ngcontent-%COMP%]{padding:0 14px}.menu-separator[_ngcontent-%COMP%]{border-top-color:#0003} .mat-menu-item{font-size:11px;height:30px!important;line-height:unset!important}"]})}return r})(),uX=(()=>{class r{dialogRef;data;constructor(t,i){this.dialogRef=t,this.data=i}onNoClick(){this.dialogRef.close()}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["dialog-info"]],decls:20,vars:11,consts:[[2,"width","280px"],["mat-dialog-title","",2,"display","inline-block"],[1,"logo",2,"display","inline-block"],[2,"font-size","18px","display","inline-block","vertical-align","super","padding-left","5px"],["mat-dialog-content","",2,"margin-bottom","10px"],[2,"display","block"],[2,"display","block","font-size","13px","margin-top","10px"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"mat-dialog-close"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._UZ(2,"div",2),e.TgZ(3,"div",3),e._uU(4),e.ALo(5,"translate"),e.qZA()(),e.TgZ(6,"div",4)(7,"div",5),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"div",6),e._uU(11," powered by "),e.TgZ(12,"span")(13,"b"),e._uU(14,"frango"),e.qZA(),e._uU(15,"team"),e.qZA()()(),e.TgZ(16,"div",7)(17,"button",8),e._uU(18),e.ALo(19,"translate"),e.qZA()()()),2&i&&(e.xp6(4),e.Oqu(e.lcZ(5,5,"dlg.info-title")),e.xp6(4),e.AsE(" ",e.lcZ(9,7,"header.info-version")," ",n.data.version," "),e.xp6(9),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(19,9,"dlg.ok")))},dependencies:[Yn,Cc,Qr,Kr,Ir,Ni.X$],encapsulation:2})}return r})();const hX=["elementref"],pX=["contentref"];function gX(r,a){if(1&r&&e._UZ(0,"img",9),2&r){const t=e.oxw();e.s9C("src",t.svgicon,e.LSH)}}function fX(r,a){if(1&r&&(e.TgZ(0,"i",10),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.icon," ")}}function mX(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"a",11),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw();return o.stopPropagation(n),e.KtG(o.emitClickExEvent(n))}),e.TgZ(1,"i",12),e._uU(2),e.qZA()()}if(2&r){const t=e.oxw();e.Udp("background-color",t.color),e.xp6(2),e.hij(" ",t.iconex," ")}}let PL=(()=>{class r{icon;svgicon;iconex;svgiconex;content;color="white";clicked=new e.vpe;exclicked=new e.vpe;disabled=!1;elementref;contentref;emitClickEvent(t){if(this.disabled)return this.disabled;this.clicked.emit(t)}emitClickExEvent(t){if(this.disabled)return this.disabled;this.exclicked.emit(t)}stopPropagation(t){t.stopPropagation()}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["ngx-fab-item-button"]],viewQuery:function(i,n){if(1&i&&(e.Gf(hX,7),e.Gf(pX,7)),2&i){let o;e.iGM(o=e.CRH())&&(n.elementref=o.first),e.iGM(o=e.CRH())&&(n.contentref=o.first)}},inputs:{icon:"icon",svgicon:"svgicon",iconex:"iconex",svgiconex:"svgiconex",content:"content",color:"color",disabled:"disabled"},outputs:{clicked:"clicked",exclicked:"exclicked"},decls:10,vars:13,consts:[[3,"click"],["elementref",""],[1,"fab-item"],[3,"src",4,"ngIf"],["class","material-icons",4,"ngIf"],[1,"content-wrapper"],["contentref",""],[1,"content"],["class","fab-item-ex",3,"backgroundColor","click",4,"ngIf"],[3,"src"],[1,"material-icons"],[1,"fab-item-ex",3,"click"],[1,"material-icons",2,"font-size","18px"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e.NdJ("click",function(s){return n.emitClickEvent(s)}),e.TgZ(2,"a",2),e.YNc(3,gX,1,1,"img",3),e.YNc(4,fX,2,1,"i",4),e.qZA(),e.TgZ(5,"div",5,6)(7,"div",7),e._uU(8),e.YNc(9,mX,3,3,"a",8),e.qZA()()()),2&i&&(e.Gre("item ",n.disabled?"disabled":"",""),e.xp6(2),e.Udp("background-color",n.color),e.xp6(1),e.Q6J("ngIf",n.svgicon),e.xp6(1),e.Q6J("ngIf",!n.svgicon),e.xp6(3),e.Udp("display",n.content?"block":"none")("padding-right",n.iconex?"28px":"20px"),e.xp6(1),e.hij("",n.content," "),e.xp6(1),e.Q6J("ngIf",n.iconex))},dependencies:[l.O5],styles:[".item[_ngcontent-%COMP%]{height:36px;left:3px;transform:translateZ(0);transition:transform,opacity ease-out .2s;transition-timing-function:cubic-bezier(.165,.84,.44,1);transition-duration:.18s;position:absolute;cursor:pointer;top:5px;display:flex;justify-content:flex-end;align-items:center;z-index:9999}.item.disabled[_ngcontent-%COMP%]{pointer-events:none}.item.disabled[_ngcontent-%COMP%] .fab-item[_ngcontent-%COMP%]{background-color:#d3d3d3}.content[_ngcontent-%COMP%]{z-index:9999;background:rgba(68,138,255,1);margin-left:0;line-height:25px;color:#fff;padding:5px 20px 3px;border-radius:18px;display:none;font-size:13px;height:28px;box-shadow:0 2px 5px #00000042;white-space:nowrap}.fab-item[_ngcontent-%COMP%]{left:0;background:rgba(68,138,255,1);border-radius:100%;width:36px;height:36px;position:absolute;color:#fff;text-align:center;cursor:pointer;line-height:50px}.fab-item-ex[_ngcontent-%COMP%]{top:0;background:rgba(68,138,255,1);border-radius:100%;width:36px;height:36px;position:absolute;color:#fff;text-align:center;cursor:pointer;line-height:45px}.fab-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{padding-bottom:2px;padding-left:5px}"],changeDetection:0})}return r})();function _X(r,a){if(1&r&&(e.TgZ(0,"i",3),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.icon," ")}}function vX(r,a){if(1&r&&(e.TgZ(0,"i",3),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.iconOpen," ")}}const yX=["*"];let wX=(()=>{class r{element;cd;elementref;subs=[];state;icon;iconOpen;direction;spaceBetweenButtons=45;open;color="#dd0031";disabled=!1;events=new An.x;opened=!1;buttons;constructor(t,i){this.element=t,this.cd=i,this.elementref=t.nativeElement,this.state=new ba.X({display:!1,direction:"top",event:"start",spaceBetweenButtons:this.spaceBetweenButtons})}toggle(){if(this.disabled)return this.disabled;this.state.next({...this.state.getValue(),display:!this.state.getValue().display,event:this.state.getValue().display?"close":"open"}),this.opened=this.state.getValue().display}checkDirectionType(){if(this.buttons.toArray()){let t="block";("right"===this.direction||"left"===this.direction)&&(t="none"),this.buttons.toArray().forEach(i=>{i.contentref.nativeElement.style.display=t})}}animateButtons(t){this.buttons.toArray().forEach((i,n)=>{if(n+=1,i.elementref){const o=i.elementref.nativeElement.style;"directionChanged"!==t&&this.state.getValue().display&&(o.transform="scale(1)",o["transition-duration"]="0s",i.timeout&&clearTimeout(i.timeout)),setTimeout(()=>{o["transition-duration"]=this.state.getValue().display?90+100*n+"ms":"",o.transform=this.state.getValue().display?this.getTranslate(n):""},50),"directionChanged"!==t&&!this.state.getValue().display&&(i.timeout=setTimeout(()=>{o.transform="scale(0)"},90+100*n))}})}getTranslate(t){let i;switch(this.direction){case"right":i=`translate3d(${this.state.getValue().spaceBetweenButtons*t}px,0,0)`;break;case"bottom":i=`translate3d(0,${this.state.getValue().spaceBetweenButtons*t}px,0)`;break;case"left":i=`translate3d(-${this.state.getValue().spaceBetweenButtons*t}px,0,0)`;break;default:i=`translate3d(0,-${this.state.getValue().spaceBetweenButtons*t}px,0)`}return i}ngAfterContentInit(){this.direction&&this.checkDirectionType();const t=this.state.subscribe(i=>{this.animateButtons(i.event),this.events.next({display:i.display,event:i.event,direction:i.direction})});this.subs.push(t)}ngOnChanges(t){if(t.direction&&!t.direction.firstChange&&(this.state.next({...this.state.getValue(),event:"directionChanged",direction:t.direction.currentValue}),this.checkDirectionType()),t.open&&t.open.currentValue){const i=this.open.subscribe(n=>{n!==this.state.getValue().display&&(this.state.next({...this.state.getValue(),event:n?"open":"close",display:n}),this.cd.markForCheck())});this.subs.push(i)}t.spaceBetweenButtons&&t.spaceBetweenButtons.currentValue&&this.state.next({...this.state.getValue(),event:"spaceBetweenButtonsChanged",spaceBetweenButtons:t.spaceBetweenButtons.currentValue})}ngOnDestroy(){this.subs.forEach(t=>{t.unsubscribe()})}static \u0275fac=function(i){return new(i||r)(e.Y36(e.SBq),e.Y36(e.sBO))};static \u0275cmp=e.Xpm({type:r,selectors:[["ngx-fab-button"]],contentQueries:function(i,n,o){if(1&i&&e.Suo(o,PL,4),2&i){let s;e.iGM(s=e.CRH())&&(n.buttons=s)}},inputs:{icon:"icon",iconOpen:"iconOpen",direction:"direction",spaceBetweenButtons:"spaceBetweenButtons",open:"open",color:"color",disabled:"disabled"},outputs:{events:"events",opened:"opened"},features:[e.TTD],ngContentSelectors:yX,decls:6,vars:8,consts:[[1,"fab-menu"],[1,"fab-toggle",3,"click","touchend"],["class","material-icons",4,"ngIf"],[1,"material-icons"]],template:function(i,n){1&i&&(e.F$t(),e.TgZ(0,"div",0),e.ALo(1,"async"),e.TgZ(2,"a",1),e.NdJ("click",function(){return n.toggle()})("touchend",function(){return n.toggle()}),e.YNc(3,_X,2,1,"i",2),e.YNc(4,vX,2,1,"i",2),e.qZA(),e.Hsn(5),e.qZA()),2&i&&(e.ekj("active",e.lcZ(1,6,n.state).display),e.xp6(2),e.Udp("background-color",n.color),e.xp6(1),e.Q6J("ngIf",!n.opened),e.xp6(1),e.Q6J("ngIf",n.opened))},dependencies:[l.O5,l.Ov],styles:["[_nghost-%COMP%]{position:absolute}.fab-menu[_ngcontent-%COMP%]{box-sizing:border-box;font-size:12px;width:40px;height:40px;text-align:left;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9}.fab-toggle[_ngcontent-%COMP%]{border-radius:100%;width:36px;height:36px;color:#fff;text-align:center;line-height:50px;transform:translateZ(0);transition:all ease-out .2s;z-index:2;transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-duration:.4s;transform:scale(1) translateZ(0);cursor:pointer;box-shadow:0 2px 5px #00000042}.fab-menu[_ngcontent-%COMP%] .fab-toggle[_ngcontent-%COMP%]:hover{transform:scale(1.2) translateZ(0)}.fab-menu[_ngcontent-%COMP%] .item{opacity:0}.fab-menu.active[_ngcontent-%COMP%] .item{opacity:1}.fab-menu.active[_ngcontent-%COMP%] .content-wrapper{display:flex;justify-content:center;align-items:center}.fab-menu.active[_ngcontent-%COMP%] .content{display:block}.fab-menu.active[_ngcontent-%COMP%] .fab-toggle[_ngcontent-%COMP%]{transition-timing-function:linear;transition-duration:.2s;transform:scale(1) translateZ(0)}"],changeDetection:0})}return r})();const CX=["fabmenu"];function bX(r,a){1&r&&e._UZ(0,"mat-progress-bar",5)}function xX(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"ngx-fab-button",6,7)(2,"ngx-fab-item-button",8),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoTo("editor"))})("touchend",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoTo("editor"))}),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"ngx-fab-item-button",8),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoTo("lab"))})("touchend",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoTo("lab"))}),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"ngx-fab-item-button",8),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoTo("home"))})("touchend",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoTo("home"))}),e.ALo(7,"translate"),e.qZA()()}2&r&&(e.xp6(2),e.s9C("content",e.lcZ(3,3,"app.editor")),e.xp6(2),e.s9C("content",e.lcZ(5,5,"app.lab")),e.xp6(2),e.s9C("content",e.lcZ(7,7,"app.home")))}let BX=(()=>{class r{document;router;appService;projectService;settingsService;translateService;heartbeatService;cdr;title="app";location;showdev=!1;isLoading=!1;fabmenu;subscriptionLoad;subscriptionShowLoading;constructor(t,i,n,o,s,c,g,B,O){this.document=t,this.router=i,this.appService=n,this.projectService=o,this.settingsService=s,this.translateService=c,this.heartbeatService=g,this.cdr=B,this.location=O}ngOnInit(){console.log(`FUXA v${vp.N.version}`),this.heartbeatService.startHeartbeatPolling(),(0,Wa.T)(Je(document,"click"),Je(document,"touchstart")).pipe(Zr(()=>this.heartbeatService.setActivity(!0)),(0,Xs.w)(()=>vv(6e4))).subscribe(()=>{this.heartbeatService.setActivity(!1)})}ngAfterViewInit(){try{this.settingsService.init(),this.projectService.getHmi()&&this.checkSettings(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(i=>{this.checkSettings(),this.applyCustomCss()},i=>{console.error("Error loadHMI")}),this.translateService.get("general.usergroups").subscribe(i=>{let n=i.split(",");if(n&&n.length>0)for(let o=0;o{this.isLoading=i,this.cdr.detectChanges()},i=>{this.isLoading=!1,console.error("Error to show loading")})}catch(t){console.error(t)}}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe(),this.subscriptionShowLoading&&this.subscriptionShowLoading.unsubscribe()}catch{}}applyCustomCss(){let t=this.projectService.getHmi();if(t?.layout?.customStyles){const i=this.document.createElement("style");i.textContent=t.layout.customStyles,this.document.head.appendChild(i)}}checkSettings(){let t=this.projectService.getHmi();this.showdev=!t||!t.layout||!1!==t.layout.showdev}isHidden(){const t=this.location.path();return!(t&&!t.startsWith("/home")&&"/lab"!==t)}getClass(){return this.location.path().startsWith("/view")?"work-void":this.isHidden()?"work-home":"work-editor"}showDevNavigation(){return!this.location.path().startsWith("/view")&&this.showdev}onGoTo(t){this.router.navigate([t]),this.fabmenu.toggle(),!this.location.path().includes(t)&&-1!==["home","lab"].indexOf(t)&&"lab"===t&&(this.router.navigate([""]),setTimeout(()=>{this.router.navigate([t])},0))}static \u0275fac=function(i){return new(i||r)(e.Y36(l.K0),e.Y36(Zc),e.Y36(bg.z),e.Y36(wr.Y4),e.Y36(Rh.g),e.Y36(Ni.sK),e.Y36(bL),e.Y36(e.sBO),e.Y36(l.Ye))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-root"]],viewQuery:function(i,n){if(1&i&&e.Gf(CX,5),2&i){let o;e.iGM(o=e.CRH())&&(n.fabmenu=o.first)}},decls:6,vars:4,consts:[["id","main-container",1,"container"],["mode","indeterminate","color","warn","style","position: absolute; top: 0px; left: 0px; right: 0px; z-index: 99999;",4,"ngIf"],[1,"header",3,"hidden"],[3,"ngClass"],["icon","menu","iconOpen","menu","class","fab-button","color","rgba(68,138,255, 1)",4,"ngIf"],["mode","indeterminate","color","warn",2,"position","absolute","top","0px","left","0px","right","0px","z-index","99999"],["icon","menu","iconOpen","menu","color","rgba(68,138,255, 1)",1,"fab-button"],["fabmenu",""],["color","rgba(68,138,255, 1)",3,"content","click","touchend"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,bX,1,0,"mat-progress-bar",1),e._UZ(2,"app-header",2),e.TgZ(3,"div",3),e._UZ(4,"router-outlet"),e.YNc(5,xX,8,9,"ngx-fab-button",4),e.qZA()()),2&i&&(e.xp6(1),e.Q6J("ngIf",n.isLoading),e.xp6(1),e.Q6J("hidden",n.isHidden()),e.xp6(1),e.Q6J("ngClass",n.getClass()),e.xp6(2),e.Q6J("ngIf",n.showDevNavigation()))},dependencies:[l.mk,l.O5,lS,Jw,dX,wX,PL,Ni.X$],styles:[".container[_ngcontent-%COMP%]{width:100%;height:100%!important;background-color:#fff}.work-void[_ngcontent-%COMP%]{height:100%;width:100%}.work-editor[_ngcontent-%COMP%]{background-color:#fff;height:calc(100% - 46px);min-width:800px}.work-home[_ngcontent-%COMP%]{background-color:#fff;height:100%;min-width:640px}.footer[_ngcontent-%COMP%]{height:20px;position:absolute;bottom:0}.fab-button[_ngcontent-%COMP%]{position:absolute;bottom:20px;left:10px;color:#fff;background-color:#448aff00}"]})}return r})();const wu_DONE='',wu_ENTER='',wu_SHIFT='',wu_BACKSPACE='',DX={code:"en-GB",dir:"ltr",layouts:{text_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],text_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],text_numeric:[["1","2","3","4","5","6","7","8","9","0"],["-","/",":",";","(",")","$","&","@",'"'],["{symbolic}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],text_symbolic:[["[","]","{","}","#","%","^","*","+","="],["_","\\","|","~","<",">","\u20ac","\xa3","\xa5","\u2022"],["{numeric}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],search_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],search_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],search_numeric:[["1","2","3","4","5","6","7","8","9","0"],["-","/",":",";","(",")","$","&","@",'"'],["{symbolic}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],search_symbolic:[["[","]","{","}","#","%","^","*","+","="],["_","\\","|","~","<",">","\u20ac","\xa3","\xa5","\u2022"],["{numeric}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],email_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","@","{space}",".","{done}","{enter}"]],email_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","@","{space}",".","{done}","{enter}"]],email_numeric:[["1","2","3","4","5","6","7","8","9","0"],["$","!","~","&","=","#","[","]"],["{symbolic}",".","_","-","+","{backspace}"],["{alphabetic}","@","{space}",".","{done}","{enter}"]],email_symbolic:[["`","|","{","}","?","%","^","*","/","'"],["$","!","~","&","=","#","[","]"],["{numeric}",".","_","-","+","{backspace}"],["{alphabetic}","@","{space}",".","{done}","{enter}"]],url_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","/",".com",".","{done}","{enter}"]],url_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","/",".com",".","{done}","{enter}"]],url_numeric:[["1","2","3","4","5","6","7","8","9","0"],["@","&","%","?",",","=","[","]"],["{symbolic}","_",":","-","+","{backspace}"],["{alphabetic}","/",".com",".","{done}","{enter}"]],url_symbolic:[["1","2","3","4","5","6","7","8","9","0"],["*","$","#","!","'","^","[","]"],["{numeric}","~",";","(",")","{backspace}"],["{alphabetic}","/",".com",".","{done}","{enter}"]],numeric_default:[["1","2","3"],["4","5","6"],["7","8","9"],["0","{backspace}","{enter}"]],decimal_default:[["1","2","3","-"],["4","5","6","+"],["7","8","9","{backspace}"],["{done}","0",".","{enter}"]],tel_default:[["1","2","3","*"],["4","5","6","#"],["7","8","9","+"],["0","{backspace}","{enter}"]]},display:{"{enter}":wu_ENTER,"{done}":wu_DONE,"{shift}":wu_SHIFT,"{backspace}":wu_BACKSPACE,"{space}":" ","{alphabetic}":"ABC","{numeric}":"123","{symbolic}":"#+="}},BS={code:"en-US",dir:"ltr",layouts:{text_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],text_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],text_numeric:[["1","2","3","4","5","6","7","8","9","0"],["-","/",":",";","(",")","$","&","@",'"'],["{symbolic}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],text_symbolic:[["[","]","{","}","#","%","^","*","+","="],["_","\\","|","~","<",">","\u20ac","\xa3","\xa5","\u2022"],["{numeric}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],search_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],search_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","{space}","{done}","{enter}"]],search_numeric:[["1","2","3","4","5","6","7","8","9","0"],["-","/",":",";","(",")","$","&","@",'"'],["{symbolic}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],search_symbolic:[["[","]","{","}","#","%","^","*","+","="],["_","\\","|","~","<",">","\u20ac","\xa3","\xa5","\u2022"],["{numeric}",".",",","?","!","'","{backspace}"],["{alphabetic}","{space}","{done}","{enter}"]],email_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","@","{space}",".","{done}","{enter}"]],email_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","@","{space}",".","{done}","{enter}"]],email_numeric:[["1","2","3","4","5","6","7","8","9","0"],["$","!","~","&","=","#","[","]"],["{symbolic}",".","_","-","+","{backspace}"],["{alphabetic}","@","{space}",".","{done}","{enter}"]],email_symbolic:[["`","|","{","}","?","%","^","*","/","'"],["$","!","~","&","=","#","[","]"],["{numeric}",".","_","-","+","{backspace}"],["{alphabetic}","@","{space}",".","{done}","{enter}"]],url_alphabetic:[["q","w","e","r","t","y","u","i","o","p"],["a","s","d","f","g","h","j","k","l"],["{shift}","z","x","c","v","b","n","m","{backspace}"],["{numeric}","/",".com",".","{done}","{enter}"]],url_shift:[["Q","W","E","R","T","Y","U","I","O","P"],["A","S","D","F","G","H","J","K","L"],["{shift}","Z","X","C","V","B","N","M","{backspace}"],["{numeric}","/",".com",".","{done}","{enter}"]],url_numeric:[["1","2","3","4","5","6","7","8","9","0"],["@","&","%","?",",","=","[","]"],["{symbolic}","_",":","-","+","{backspace}"],["{alphabetic}","/",".com",".","{done}","{enter}"]],url_symbolic:[["1","2","3","4","5","6","7","8","9","0"],["*","$","#","!","'","^","[","]"],["{numeric}","~",";","(",")","{backspace}"],["{alphabetic}","/",".com",".","{done}","{enter}"]],numeric_default:[["1","2","3"],["4","5","6"],["7","8","9"],["0","{backspace}","{enter}"]],decimal_default:[["1","2","3","-"],["4","5","6","+"],["7","8","9","{backspace}"],["{done}","0",".","{enter}"]],tel_default:[["1","2","3","*"],["4","5","6","#"],["7","8","9","+"],["0","{backspace}","{enter}"]]},display:{"{enter}":wu_ENTER,"{done}":wu_DONE,"{shift}":wu_SHIFT,"{backspace}":wu_BACKSPACE,"{space}":" ","{alphabetic}":"ABC","{numeric}":"123","{symbolic}":"#+="}},SX={code:"fa-IR",dir:"rtl",layouts:{text_alphabetic:[["\u0636","\u0635","\u0642","\u0641","\u063a","\u0639","\u0647","\u062e","\u062d","\u062c","\u0686"],["\u0634","\u0633","\u06cc","\u0628","\u0644","\u0627","\u062a","\u0646","\u0645","\u06a9","\u06af"],["\u0638","\u0637","\u0698","\u0632","\u0631","\u0630","\u062f","\u067e","\u0648","\u062b","{backspace}"],["{numeric}","{space}","{done}"]],text_numeric:[["\u06f1","\u06f2","\u06f3","\u06f4","\u06f5","\u06f6","\u06f7","\u06f8","\u06f9","\u06f0"],["-","/",":","\u061b",")","(","$","@","\xbb","\xab"],["{symbolic}",".","\u060c","\u061f","!","\u066b","{backspace}"],["{alphabetic}","{space}","{done}"]],text_symbolic:[["]","[","}","{","#","%","^","*","+","="],["_","\\","|","~",">","<","&","\u2022","\u2018","\u201c"],["{numeric}",".","\u060c","\u061f","!","\u066c","{backspace}"],["{alphabetic}","{space}","{done}"]],search_alphabetic:[["\u0636","\u0635","\u0642","\u0641","\u063a","\u0639","\u0647","\u062e","\u062d","\u062c","\u0686"],["\u0634","\u0633","\u06cc","\u0628","\u0644","\u0627","\u062a","\u0646","\u0645","\u06a9","\u06af"],["\u0638","\u0637","\u0698","\u0632","\u0631","\u0630","\u062f","\u067e","\u0648","\u062b","{backspace}"],["{numeric}","{space}","{done}"]],search_numeric:[["\u06f1","\u06f2","\u06f3","\u06f4","\u06f5","\u06f6","\u06f7","\u06f8","\u06f9","\u06f0"],["-","/",":","\u061b",")","(","$","@","\xbb","\xab"],["{symbolic}",".","\u060c","\u061f","!","\u066b","{backspace}"],["{alphabetic}","{space}","{done}"]],search_symbolic:[["]","[","}","{","#","%","^","*","+","="],["_","\\","|","~",">","<","&","\u2022","\u2018","\u201c"],["{numeric}",".","\u060c","\u061f","!","\u066c","{backspace}"],["{alphabetic}","{space}","{done}"]],email_alphabetic:[["\u0636","\u0635","\u0642","\u0641","\u063a","\u0639","\u0647","\u062e","\u062d","\u062c","\u0686"],["\u0634","\u0633","\u06cc","\u0628","\u0644","\u0627","\u062a","\u0646","\u0645","\u06a9","\u06af"],["\u0638","\u0637","\u0698","\u0632","\u0631","\u0630","\u062f","\u067e","\u0648","\u062b","{backspace}"],["{numeric}","@","{space}",".","{done}"]],email_numeric:[["\u06f1","\u06f2","\u06f3","\u06f4","\u06f5","\u06f6","\u06f7","\u06f8","\u06f9","\u06f0"],["$","!","~","&","=","#","]","["],["{symbolic}",".","_","-","+","{backspace}"],["{alphabetic}","@","{space}",".","{done}"]],email_symbolic:[["`","|","{","}","?","%","^","*","/","'"],["$","!","~","&","=","#","]","["],["{numeric}",".","_","-","+","{backspace}"],["{alphabetic}","@","{space}",".","{done}"]],url_alphabetic:[["\u0636","\u0635","\u0642","\u0641","\u063a","\u0639","\u0647","\u062e","\u062d","\u062c","\u0686"],["\u0634","\u0633","\u06cc","\u0628","\u0644","\u0627","\u062a","\u0646","\u0645","\u06a9","\u06af"],["\u0638","\u0637","\u0698","\u0632","\u0631","\u0630","\u062f","\u067e","\u0648","\u062b","{backspace}"],["{numeric}","/",".com",".","{done}"]],url_numeric:[["\u06f1","\u06f2","\u06f3","\u06f4","\u06f5","\u06f6","\u06f7","\u06f8","\u06f9","\u06f0"],["@","&","%","?",",","=","]","["],["{symbolic}","_",":","-","+","{backspace}"],["{alphabetic}","/",".com",".","{done}"]],url_symbolic:[["\u06f1","\u06f2","\u06f3","\u06f4","\u06f5","\u06f6","\u06f7","\u06f8","\u06f9","\u06f0"],["*","$","#","!","'","^","]","["],["{numeric}","~",";",")","(","{backspace}"],["{alphabetic}","/",".com",".","{done}"]],numeric_default:[["\u06f1","\u06f2","\u06f3"],["\u06f4","\u06f5","\u06f6"],["\u06f7","\u06f8","\u06f9"],["\u06f0","{backspace}"]],decimal_default:[["\u06f1","\u06f2","\u06f3"],["\u06f4","\u06f5","\u06f6"],["\u06f7","\u06f8","\u06f9"],["\u066b","\u06f0","{backspace}"]],tel_default:[["\u06f1","\u06f2","\u06f3","*"],["\u06f4","\u06f5","\u06f6","#"],["\u06f7","\u06f8","\u06f9","+"],["\u06f0","{backspace}"]]},display:{"{done}":wu_DONE,"{backspace}":wu_BACKSPACE,"{space}":" ","{alphabetic}":"\u0627\u200c\u0628\u200c\u067e","{numeric}":"\u06f1\u06f2\u06f3","{symbolic}":"=+#"}};function PX(r,a){if(1&r&&(e.TgZ(0,"div",3)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw();e.xp6(2),e.hij(" ",t.current," ")}}const FX=function(r){return[r]};function OX(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"button",5),e.NdJ("pointerdown",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return c.handleButtonClicked(s,n),e.KtG(c.handleButtonMouseDown(s,n))})("pointerup",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return e.KtG(c.handleButtonMouseUp(s,n))})("pointercancel",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return e.KtG(c.handleButtonMouseUp(s,n))}),e.qZA(),e.BQk()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.xp6(1),e.Q6J("name",t)("dir",i.locale.dir)("ngClass",e.VKq(5,FX,i.getButtonClass(t)))("innerHtml",i.getButtonDisplayName(t),e.oJD),e.uIk("data-layout",i.layoutName)}}function LX(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"div",4),e.YNc(2,OX,2,7,"ng-container",2),e.qZA(),e.BQk()),2&r){const t=a.$implicit;e.xp6(2),e.Q6J("ngForOf",t)}}let RX=(()=>{class r{_sanitizer;_elementRef;_defaultLocale;locale=BS;layoutMode="text";layoutName="alphabetic";debug=!1;fullScreen=!1;closePanel=new e.vpe;_activeButtonClass="active";_caretPosition=null;_caretPositionEnd=null;_activeInputElement;constructor(t,i,n){this._sanitizer=t,this._elementRef=i,this._defaultLocale=n}handleKeyUp(t){t.isTrusted&&(this._caretEventHandler(t),this._handleHighlightKeyUp(t))}handleKeyDown(t){t.isTrusted&&this._handleHighlightKeyDown(t)}handleMouseUp(t){this._caretEventHandler(t)}handleSelect(t){this._caretEventHandler(t)}handleSelectionChange(t){this._caretEventHandler(t)}setLocale(t=this._defaultLocale){t=t.replace("-","").trim(),this.locale=Object.keys(V).includes(t)?V[t]:BS}detachActiveInput(){(this._activeInputElement instanceof HTMLInputElement||this._activeInputElement instanceof HTMLTextAreaElement)&&this._activeInputElement.blur()}setActiveInput(t){this._activeInputElement=t;const i=this._activeInputElement?.inputMode;this.layoutMode=i&&["text","search","email","url","numeric","decimal","tel"].some(n=>n===i)?i:"text",i&&["numeric","decimal","tel"].some(n=>n===i)?("number"===this._activeInputElement?.getAttribute("type")&&this._activeInputElement?.setAttribute("type","text"),this.layoutName="default"):this.layoutName="alphabetic",this.debug&&(console.log("Locale:",`${this.locale.code||this._defaultLocale}`),console.log("Layout:",`${this.layoutMode}_${this.layoutName}`)),this._setCaretPosition(this._activeInputElement.selectionStart,this._activeInputElement.selectionEnd),this.debug&&console.log("Caret start at:",this._caretPosition,this._caretPositionEnd),this._focusActiveInput()}isStandardButton=t=>t&&!("{"===t[0]&&"}"===t[t.length-1]);getButtonType(t){return this.isStandardButton(t)?"standard-key":"function-key"}getButtonClass(t){const i=this.getButtonType(t),n=t.replace("{","").replace("}","");let o="";return"standard-key"!==i&&(o=`${n}-key`),`${i} ${o}`}getButtonDisplayName(t){return this._sanitizer.bypassSecurityTrustHtml(this.locale.display[t]||t)}handleButtonClicked(t,i){if(this.debug&&console.log("Key pressed:",t),"{shift}"===t)return void(this.layoutName="alphabetic"===this.layoutName?"shift":"alphabetic");if("{done}"===t)return this.closePanel.emit(),void this.detachActiveInput();let n=[this._caretPosition||0,this._caretPositionEnd||0,!0],o=this._activeInputElement?.value||"";if(null===this._caretPosition&&null===this._caretPositionEnd&&(n[0]="decimal"===this._activeInputElement?.inputMode?o.length:0,n[1]="decimal"===this._activeInputElement?.inputMode?o.length:0),this.isStandardButton(t))o=this._addStringAt(o,t,...n);else if("{backspace}"===t)o.length>0&&(o=this._removeAt(o,...n));else if("{space}"===t)o=this._addStringAt(o," ",...n);else if("{tab}"===t)o=this._addStringAt(o,"\t",...n);else if("{enter}"!==t)return void(this.layoutName=t.substring(1,t.length-1));this._activeInputElement&&(this._activeInputElement.value=o,this.debug&&console.log("Caret at:",this._caretPosition,this._caretPositionEnd,"Button",i)),this._dispatchEvents(t),"{enter}"!==t||this.closePanel.emit()}handleButtonMouseDown(t,i){i&&(i.preventDefault(),i.stopPropagation()),this._setActiveButton(t)}handleButtonMouseUp(t,i){i&&(i.preventDefault(),i.stopPropagation()),this._removeActiveButton()}get current(){const t=this._activeInputElement?.getAttribute("type"),i=this._activeInputElement?.value||"";return"password"===t?"*".repeat(i.length):i}_setCaretPosition(t,i=t){this._caretPosition=t,this._caretPositionEnd=i}_updateCaretPos(t,i=!1){const n=this._updateCaretPosAction(t,i);this._setCaretPosition(n)}_updateCaretPosAction(t,i=!1){let n=this._caretPosition;return null!=n&&(i?n>0&&(n-=t):n+=t),n}_removeAt(t,i=t.length,n=t.length,o=!1){let s;if(0===i&&0===n&&(i=t.length,n=t.length),i===n){let c,g;const B=/([\uD800-\uDBFF][\uDC00-\uDFFF])/g;i&&i>=0?(c=t.substring(i-2,i),g=c.match(B),g?(s=t.substr(0,i-2)+t.substr(i),o&&this._updateCaretPos(2,!0)):(s=t.substr(0,i-1)+t.substr(i),o&&this._updateCaretPos(1,!0))):(c=t.slice(-2),g=c.match(B),g?(s=t.slice(0,-2),o&&this._updateCaretPos(2,!0)):(s=t.slice(0,-1),o&&this._updateCaretPos(1,!0)))}else s=t.slice(0,i)+t.slice(n),o&&this._setCaretPosition(i);return s}_addStringAt(t,i,n=t.length,o=t.length,s=!1){let c;return n||0===n?(c=[t.slice(0,n),i,t.slice(o)].join(""),s&&this._updateCaretPos(i.length,!1)):c=t+i,c}_dispatchEvents(t){let i,n;t.includes("{")&&t.includes("}")?(i=t.slice(1,t.length-1).toLowerCase(),i=i.charAt(0).toUpperCase()+i.slice(1),n=i):(i=t,n=Number.isInteger(Number(t))?`Digit${t}`:`Key${t.toUpperCase()}`);const o={bubbles:!0,cancelable:!0,shiftKey:"shift"==this.layoutName,key:i,code:n,location:0};this._activeInputElement?.dispatchEvent(new KeyboardEvent("keydown",o)),this._activeInputElement?.dispatchEvent(new KeyboardEvent("keypress",o)),this._activeInputElement?.dispatchEvent(new Event("input",{bubbles:!0})),this._activeInputElement?.dispatchEvent(new KeyboardEvent("keyup",o)),this._focusActiveInput()}_caretEventHandler(t){let i="";t.target.tagName&&(i=t.target.tagName.toLowerCase()),"textarea"===i||"input"===i&&["text","search","email","password","url","tel"].includes(t.target.type);const o=t.target===this._elementRef.nativeElement||t.target&&this._elementRef.nativeElement.contains(t.target);if(this._activeInputElement==t.target)this._setCaretPosition(t.target.selectionStart,t.target.selectionEnd),this.debug&&console.log("Caret at:",this._caretPosition,this._caretPositionEnd,t&&t.target.tagName.toLowerCase(),t);else{if("pointerup"===t.type&&this._activeInputElement===document.activeElement)return;!o&&"selectionchange"!==t?.type&&"select"!==t?.type&&(this._setCaretPosition(null),this.debug&&console.log(`Caret position reset due to "${t?.type}" event`,t),this.closePanel.emit())}}_focusActiveInput(){this._activeInputElement?.focus(),this._caretPosition&&this._caretPositionEnd&&this._activeInputElement?.setSelectionRange(this._caretPosition,this._caretPositionEnd)}_handleHighlightKeyDown(t){const i=this._getKeyboardLayoutKey(t);this._setActiveButton(i)}_handleHighlightKeyUp(t){const i=this._getKeyboardLayoutKey(t);this._removeActiveButton(i)}_getKeyboardLayoutKey(t){let i="";const n=t.code||t.key;return i=n?.includes("Space")||n?.includes("Numpad")||n?.includes("Backspace")||n?.includes("CapsLock")||n?.includes("Meta")?`{${t.code}}`||"":n?.includes("Control")||n?.includes("Shift")||n?.includes("Alt")?`{${t.key}}`||"":t.key||"",i.length>1?i?.toLowerCase():i}_setActiveButton(t){const i=this._elementRef.nativeElement.getElementsByTagName("button").namedItem(t);i&&i.classList&&i.classList.add(this._activeButtonClass)}_removeActiveButton(t){const i=this._elementRef.nativeElement.getElementsByTagName("button");if(t){const n=i.namedItem(t);n&&n.classList&&n.classList.remove(this._activeButtonClass)}else for(let n=0;nsvg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"],encapsulation:2,changeDetection:0})}return r})(),FL=(()=>{class r{_overlay;_elementRef;_document;isOpen=!1;_locale;get ngxTouchKeyboard(){return this._locale}set ngxTouchKeyboard(t){this._locale=t}_debugMode;get ngxTouchKeyboardDebug(){return this._debugMode}set ngxTouchKeyboardDebug(t){this._debugMode=Sn(t)}_fullScreenMode;get ngxTouchKeyboardFullScreen(){return this._fullScreenMode}set ngxTouchKeyboardFullScreen(t){this._fullScreenMode=Sn(t)}_overlayRef;_panelRef;closePanelSubject=new An.x;closePanelObservable;constructor(t,i,n){this._overlay=t,this._elementRef=i,this._document=n,this.closePanelObservable=this.closePanelSubject.asObservable()}ngOnDestroy(){this._overlayRef&&this._overlayRef.dispose()}openPanel(t=null){if(t&&(this._elementRef=t,this._overlayRef=null),!this._overlayRef?.hasAttached())return this._overlayRef||this._createOverlay(),this._overlayRef.setDirection(this._document.body.getAttribute("dir")||this._document.dir||"ltr"),this._overlayRef.updatePositionStrategy(this._getPositionStrategy(this.ngxTouchKeyboardFullScreen)),this._overlayRef.updateSize(this._getOverlaySize(this.ngxTouchKeyboardFullScreen)),this._panelRef=this._overlayRef.attach(new Zd(RX)),this._panelRef.instance.debug=this.ngxTouchKeyboardDebug,this._panelRef.instance.fullScreen=this.ngxTouchKeyboardFullScreen,this._panelRef.instance.setLocale(this._locale),this._panelRef.instance.setActiveInput(this._elementRef.nativeElement),this.isOpen=!0,this._panelRef.instance.closePanel.subscribe(()=>this.closePanel()),this.closePanelObservable}closePanel(){this._overlayRef?.detach(),this.isOpen=!1,this.closePanelSubject.next(null)}togglePanel(){this.isOpen?this.closePanel():this.openPanel()}_createOverlay(){this._overlayRef=this._overlay.create({hasBackdrop:!1,scrollStrategy:this._overlay.scrollStrategies.noop()})}_getPositionStrategy(t){return t?this._overlay.position().global().centerHorizontally().bottom("0"):this._overlay.position().flexibleConnectedTo(this._inputOrigin()).withLockedPosition(!0).withPush(!0).withPositions([{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"}])}_getOverlaySize(t){return t?{width:"100%",maxWidth:"100%",minWidth:"100%"}:{width:this._inputOrigin().getBoundingClientRect().width,maxWidth:this._inputOrigin().getBoundingClientRect().width,minWidth:"260px"}}_inputOrigin(){const t=this._elementRef.nativeElement;return t.classList.contains("mat-input-element")?t.parentNode?.parentNode:t.classList.contains("mat-mdc-input-element")?t.parentNode?.parentNode?.parentNode:t}static \u0275fac=function(i){return new(i||r)(e.Y36(Uc),e.Y36(e.SBq),e.Y36(l.K0))};static \u0275dir=e.lG2({type:r,selectors:[["input","ngxTouchKeyboard",""],["textarea","ngxTouchKeyboard",""]],inputs:{ngxTouchKeyboard:"ngxTouchKeyboard",ngxTouchKeyboardDebug:"ngxTouchKeyboardDebug",ngxTouchKeyboardFullScreen:"ngxTouchKeyboardFullScreen"},exportAs:["ngxTouchKeyboard"]})}return r})();const YX=["touchKeyboard"];function NX(r,a){1&r&&(e.TgZ(0,"mat-error",15),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij("",e.lcZ(2,1,"msg.login-username-required")," "))}function UX(r,a){1&r&&(e.TgZ(0,"mat-error",15),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij("",e.lcZ(2,1,"msg.login-password-required")," "))}function zX(r,a){if(1&r&&(e.TgZ(0,"div",16),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.messageError," ")}}function HX(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"mat-spinner",17),e.qZA())}let OL=(()=>{class r{authService;projectService;translateService;dialogRef;data;touchKeyboard;loading=!1;showPassword=!1;submitLoading=!1;messageError;username=new li;password=new li;errorEnabled=!1;disableCancel=!1;constructor(t,i,n,o,s){this.authService=t,this.projectService=i,this.translateService=n,this.dialogRef=o,this.data=s;const c=this.projectService.getHmi();this.disableCancel=c?.layout?.loginonstart&&c.layout?.loginoverlaycolor!==Tt.nh.none}onNoClick(){this.dialogRef.close()}onOkClick(){this.errorEnabled=!0,this.messageError="",this.signIn()}isValidate(){return!(!this.username.value||!this.password.value)}signIn(){this.submitLoading=!0,this.authService.signIn(this.username.value,this.password.value).subscribe(t=>{this.submitLoading=!1,this.dialogRef.close(!0),this.projectService.reload()},t=>{this.submitLoading=!1,this.translateService.get("msg.signin-failed").subscribe(i=>this.messageError=i)})}keyDownStopPropagation(t){t.stopPropagation()}onFocus(t){const i=this.projectService.getHmi();if(i?.layout?.inputdialog?.includes("keyboard")){"keyboardFullScreen"===i.layout.inputdialog&&(this.touchKeyboard.ngxTouchKeyboardFullScreen=!0),this.touchKeyboard.closePanel();const o=new e.SBq(t.target);this.touchKeyboard.openPanel(o)}}static \u0275fac=function(i){return new(i||r)(e.Y36(xg.e),e.Y36(wr.Y4),e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-login"]],viewQuery:function(i,n){if(1&i&&e.Gf(YX,5),2&i){let o;e.iGM(o=e.CRH())&&(n.touchKeyboard=o.first)}},decls:31,vars:26,consts:[[2,"width","250px","position","relative","padding-bottom","40px"],["mat-dialog-title","",2,"display","inline-block","margin-bottom","14px !important"],["mat-dialog-content",""],[1,"my-form-field",2,"display","block","margin-bottom","10px","margin-right","5px"],["cdkFocusInitial","","autocomplete","off",2,"width","100%",3,"type","formControl","focus"],["class","error",4,"ngIf"],["autocomplete","off",2,"width","100%",3,"type","formControl","keydown","focus"],["matSuffix","",1,"show-password",3,"click"],["class","message-error",4,"ngIf"],[4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"disabled","mat-dialog-close"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"disabled","click"],["type","text","ngxTouchKeyboard","",2,"display","none",3,"focus"],["touchKeyboard","ngxTouchKeyboard"],[1,"error"],[1,"message-error"],["diameter","20",2,"margin","auto"]],template:function(i,n){if(1&i){const o=e.EpF();e.TgZ(0,"form")(1,"div",0)(2,"h1",1),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",2)(6,"div",3)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",4),e.NdJ("focus",function(c){return n.onFocus(c)}),e.qZA(),e.YNc(11,NX,3,3,"mat-error",5),e.qZA(),e.TgZ(12,"div",3)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"input",6),e.NdJ("keydown",function(c){return n.keyDownStopPropagation(c)})("focus",function(c){return n.onFocus(c)}),e.qZA(),e.TgZ(17,"mat-icon",7),e.NdJ("click",function(){return n.showPassword=!n.showPassword}),e._uU(18),e.qZA(),e.YNc(19,UX,3,3,"mat-error",5),e.qZA()(),e.YNc(20,zX,2,1,"div",8),e.YNc(21,HX,2,0,"div",9),e.TgZ(22,"div",10)(23,"button",11),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"button",12),e.NdJ("click",function(){return n.onOkClick()}),e._uU(27),e.ALo(28,"translate"),e.qZA()()()(),e.TgZ(29,"input",13,14),e.NdJ("focus",function(){e.CHM(o);const c=e.MAs(30);return e.KtG(c.openPanel())}),e.qZA()}2&i&&(e.xp6(3),e.Oqu(e.lcZ(4,16,"dlg.login-title")),e.xp6(5),e.Oqu(e.lcZ(9,18,"general.username")),e.xp6(2),e.Q6J("type","text")("formControl",n.username),e.xp6(1),e.Q6J("ngIf",n.errorEnabled&&n.username.errors&&n.username.errors.required),e.xp6(3),e.Oqu(e.lcZ(15,20,"general.password")),e.xp6(2),e.Q6J("type",n.showPassword?"text":"password")("formControl",n.password),e.xp6(2),e.Oqu(n.showPassword?"visibility":"visibility_off"),e.xp6(1),e.Q6J("ngIf",n.errorEnabled&&n.password.errors&&n.password.errors.required),e.xp6(1),e.Q6J("ngIf",n.messageError),e.xp6(1),e.Q6J("ngIf",n.submitLoading),e.xp6(2),e.Q6J("disabled",n.disableCancel),e.xp6(1),e.Oqu(e.lcZ(25,22,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",!n.isValidate()),e.xp6(1),e.Oqu(e.lcZ(28,24,"dlg.ok")))},dependencies:[l.O5,In,I,et,Xe,ue,ca,Yn,Cc,Qr,Kr,Ir,Zn,jx,kh,BA,FL,Ni.X$],styles:[".error[_ngcontent-%COMP%]{display:block;font-size:12px}.message-error[_ngcontent-%COMP%]{width:100%;color:red;padding-bottom:20px;font-size:13px}.show-password[_ngcontent-%COMP%]{bottom:2px;right:0;position:absolute}"]})}return r})(),UA=(()=>{class r{authService;translateService;toastr;projectService;dialog;router;constructor(t,i,n,o,s,c){this.authService=t,this.translateService=i,this.toastr=n,this.projectService=o,this.dialog=s,this.router=c}canActivate(t,i){return!this.projectService.isSecurityEnabled()||this.authService.isAdmin()?(0,lr.of)(!0):this.projectService.checkServer().pipe((0,f.U)(o=>!!o?.secureEnabled)).pipe((0,Xs.w)(o=>o?this.dialog.open(OL).afterClosed().pipe((0,ma.z)(c=>c&&this.authService.isAdmin()?(0,lr.of)(!0):(this.notifySaveError("msg.signin-unauthorized"),this.router.navigateByUrl("/"),(0,lr.of)(!1)))):(0,lr.of)(!0)))}notifySaveError(t){let i="";this.translateService.get(t).subscribe(n=>{i=n}),this.toastr.error(i,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}static \u0275fac=function(i){return new(i||r)(e.LFG(xg.e),e.LFG(Ni.sK),e.LFG(Vf._W),e.LFG(wr.Y4),e.LFG(xo),e.LFG(Zc))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();var GX=ce(8906);function ZX(r,a){if(1&r&&(e.TgZ(0,"mat-option",22),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function JX(r,a){if(1&r&&(e.TgZ(0,"div",6)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",21)(5,"mat-option",22),e._uU(6),e.qZA(),e.YNc(7,ZX,2,2,"mat-option",17),e.qZA()()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,4,"dlg.userproperty-language")),e.xp6(3),e.Q6J("value",null==t.languages||null==t.languages.default?null:t.languages.default.id),e.xp6(1),e.Oqu(null==t.languages||null==t.languages.default?null:t.languages.default.name),e.xp6(1),e.Q6J("ngForOf",null==t.languages?null:t.languages.options)}}function jX(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"dlg.userproperty-role")))}function VX(r,a){1&r&&e.YNc(0,jX,3,3,"ng-template")}function WX(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"dlg.userproperty-groups")))}function KX(r,a){if(1&r&&(e.TgZ(0,"mat-option",22),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}let qX=(()=>{class r{dialogRef;fb;data;projectService;cdr;userService;settingsService;formGroup;selected=[];options=[];showPassword;views;userInfo;languages;seloptions;destroy$=new An.x;constructor(t,i,n,o,s,c,g){this.dialogRef=t,this.fb=i,this.data=n,this.projectService=o,this.cdr=s,this.userService=c,this.settingsService=g}ngOnInit(){this.views=this.projectService.getViews(),this.languages=this.projectService.getLanguages(),this.userInfo=new yM(this.data.user?.info),this.formGroup=this.fb.group({username:[this.data.user?.username,[Z.required,this.isValidUserName()]],fullname:[this.data.user?.fullname],password:[],start:[this.userInfo.start],languageId:[this.userInfo.languageId]}),this.data.current?.username&&this.formGroup.get("username").disable(),this.formGroup.updateValueAndValidity()}ngAfterViewInit(){this.isRolePermission()?this.userService.getRoles().pipe((0,f.U)(t=>t.sort((i,n)=>i.index-n.index)),(0,On.R)(this.destroy$)).subscribe(t=>{this.options=t?.map(i=>({id:i.id,label:i.name})),this.selected=this.options.filter(i=>this.userInfo.roleIds?.includes(i.id))},t=>{console.error("get Roles err: "+t)}):(this.selected=Gc.wt.ValueToGroups(this.data.user.groups),this.options=Gc.wt.Groups),this.cdr.detectChanges()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onCancelClick(){this.dialogRef.close()}onOkClick(){let t;this.seloptions&&(this.isRolePermission()?t=this.seloptions.selected?.map(i=>i.id):this.data.user.groups=Gc.wt.GroupsToValue(this.seloptions.selected)),this.data.user.username=this.formGroup.controls.username.value,this.data.user.fullname=this.formGroup.controls.fullname.value||"",this.data.user.password=this.formGroup.controls.password.value,this.data.user.info=JSON.stringify({start:this.formGroup.controls.start.value||"",roles:t,languageId:this.formGroup.controls.languageId.value}),this.dialogRef.close(this.data.user)}isValidUserName(){return t=>t.value&&this.isValid(t.value)?null:{UserNameNotValid:!0}}isValid(t){return!!this.data.current?.username||!!t&&!this.data.users.find(i=>i===t&&i!==this.data.user?.username)}isAdmin(){return!(!this.data.user||"admin"!==this.data.user.username)}keyDownStopPropagation(t){t.stopPropagation()}isRolePermission(){return this.settingsService.getSettings()?.userRole}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Yr),e.Y36(wr.Y4),e.Y36(e.sBO),e.Y36(tm),e.Y36(Rh.g))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-user-edit"]],viewQuery:function(i,n){if(1&i&&e.Gf(em,5),2&i){let o;e.iGM(o=e.CRH())&&(n.seloptions=o.first)}},decls:44,vars:32,consts:[[3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"force-lbk","pointer-move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block"],["formControlName","username","type","text",2,"width","125px"],[1,"my-form-field","block","mt10"],["formControlName","fullname","type","text",2,"width","250px"],["autocomplete","off","formControlName","password","placeholder","\u2022\u2022\u2022\u2022\u2022\u2022\u2022",2,"width","250px",3,"type","keydown"],["matSuffix","",1,"show-password",3,"click"],["class","my-form-field block mt10",4,"ngIf"],[4,"ngIf","ngIfElse"],["groups",""],[3,"selected","disabled","options"],["seloptions",""],[1,"my-form-field","block","mt10","mb5"],["formControlName","start",2,"width","250px"],[3,"value",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],["formControlName","languageId",2,"width","250px"],[3,"value"]],template:function(i,n){if(1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onCancelClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.qZA(),e.TgZ(17,"div",6)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"input",8),e.NdJ("keydown",function(s){return n.keyDownStopPropagation(s)}),e.qZA(),e.TgZ(22,"mat-icon",9),e.NdJ("click",function(){return n.showPassword=!n.showPassword}),e._uU(23),e.qZA()(),e.YNc(24,JX,8,6,"div",10),e.TgZ(25,"div",6),e.YNc(26,VX,1,0,null,11),e.YNc(27,WX,3,3,"ng-template",null,12,e.W1O),e._UZ(29,"sel-options",13,14),e.qZA(),e.TgZ(31,"div",15)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"mat-select",16),e.YNc(36,KX,2,2,"mat-option",17),e.qZA()()(),e.TgZ(37,"div",18)(38,"button",19),e.NdJ("click",function(){return n.onCancelClick()}),e._uU(39),e.ALo(40,"translate"),e.qZA(),e.TgZ(41,"button",20),e.NdJ("click",function(){return n.onOkClick()}),e._uU(42),e.ALo(43,"translate"),e.qZA()()()),2&i){const o=e.MAs(28);e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,18,"dlg.userproperty-title")),e.xp6(7),e.Oqu(e.lcZ(10,20,"general.username")),e.xp6(5),e.Oqu(e.lcZ(15,22,"general.fullname")),e.xp6(5),e.Oqu(e.lcZ(20,24,"general.password")),e.xp6(2),e.Q6J("type",n.showPassword?"text":"password"),e.xp6(2),e.Oqu(n.showPassword?"visibility":"visibility_off"),e.xp6(1),e.Q6J("ngIf",n.languages),e.xp6(2),e.Q6J("ngIf",n.isRolePermission())("ngIfElse",o),e.xp6(3),e.Q6J("selected",n.selected)("disabled",n.isAdmin())("options",n.options),e.xp6(4),e.Oqu(e.lcZ(34,26,"dlg.userproperty-start")),e.xp6(3),e.Q6J("ngForOf",n.views),e.xp6(3),e.Oqu(e.lcZ(40,28,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(43,30,"dlg.ok"))}},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,kh,fo,zr,em,Ni.X$]})}return r})();class yM{start;roleIds;languageId;constructor(a){if(a){const t=JSON.parse(a);this.start=t.start,this.roleIds=t.roles,this.languageId=t.languageId}}}let Pv=(()=>{class r{projectService;authService;localStorageItem="currentLanguage";languages;languageConfig;languageConfig$=new ba.X(null);texts={};constructor(t,i){this.projectService=t,this.authService=i,this.projectService.onLoadHmi.subscribe(()=>{let n=this.getStorageLanguage();this.languages=this.projectService.getLanguages(),this.languageConfig={currentLanguage:n||this.languages?.default||{id:"EN",name:"English"},...this.languages};const o=this.authService.getUser(),s=new yM(o?.info).languageId;s&&(this.languageConfig.currentLanguage??=this.getLanguage(s)),this.setCurrentLanguage(this.languageConfig.currentLanguage),this.texts=this.projectService.getTexts().reduce((c,g)=>(c[g.name]=g,c),{})})}setCurrentLanguage(t){const i=this.authService.getUser()?.username||"";this.languageConfig.currentLanguage=t,this.languageConfig$.next(this.languageConfig),localStorage.setItem(`${this.localStorageItem}-${i}`,JSON.stringify(t))}getStorageLanguage(){const t=this.authService.getUser()?.username||"";return JSON.parse(localStorage.getItem(`${this.localStorageItem}-${t}`))}getTranslation(t){if(!t||!t.startsWith(GX.uM))return null;const i=this.texts[t.substring(1)];return i?i.translations[this.languageConfig.currentLanguage.id]?i.translations[this.languageConfig.currentLanguage.id]:i.value:null}getLanguage(t){return this.languages?.default?.id===t?this.languages.default:this.languages?.options?.find(i=>i.id===t)}static \u0275fac=function(i){return new(i||r)(e.LFG(wr.Y4),e.LFG(xg.e))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();function XX(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"sidenav.title")))}function $X(r,a){if(1&r&&e._UZ(0,"img",7),2&r){const t=e.oxw(2);e.s9C("src",t.logo,e.LSH)}}function e$(r,a){if(1&r&&e._UZ(0,"img",19),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function t$(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function i$(r,a){if(1&r&&(e.TgZ(0,"div",16),e.YNc(1,e$,1,1,"img",17),e.YNc(2,t$,2,1,"mat-icon",18),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon)}}function n$(r,a){if(1&r&&(e.TgZ(0,"div",20)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(t.text)}}function r$(r,a){if(1&r&&e._UZ(0,"img",19),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function o$(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function a$(r,a){if(1&r&&(e.TgZ(0,"div",21),e.YNc(1,r$,1,1,"img",17),e.YNc(2,o$,2,1,"mat-icon",18),e.TgZ(3,"span"),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function s$(r,a){if(1&r&&e._UZ(0,"img",19),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function l$(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function c$(r,a){if(1&r&&(e.TgZ(0,"div",22),e.YNc(1,s$,1,1,"img",17),e.YNc(2,l$,2,1,"mat-icon",18),e.TgZ(3,"span",23),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function A$(r,a){if(1&r&&(e.TgZ(0,"mat-icon",24),e._uU(1),e.qZA()),2&r){const t=e.oxw().$implicit,i=e.oxw(2);e.xp6(1),e.hij(" ",i.isExpanded(t)?"expand_less":"expand_more"," ")}}function d$(r,a){if(1&r&&e._UZ(0,"img",19),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function u$(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function h$(r,a){if(1&r&&(e.TgZ(0,"div",16),e.YNc(1,d$,1,1,"img",17),e.YNc(2,u$,2,1,"mat-icon",18),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon)}}function p$(r,a){if(1&r&&(e.TgZ(0,"div",20)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(t.text)}}function g$(r,a){if(1&r&&e._UZ(0,"img",19),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function f$(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function m$(r,a){if(1&r&&(e.TgZ(0,"div",21),e.YNc(1,g$,1,1,"img",17),e.YNc(2,f$,2,1,"mat-icon",18),e.TgZ(3,"span"),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function _$(r,a){if(1&r&&e._UZ(0,"img",19),2&r){const t=e.oxw(2).$implicit;e.s9C("src",t.image,e.LSH)}}function v$(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function y$(r,a){if(1&r&&(e.TgZ(0,"div",22),e.YNc(1,_$,1,1,"img",17),e.YNc(2,v$,2,1,"mat-icon",18),e.TgZ(3,"span",23),e._uU(4),e.qZA()()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.image),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(2),e.Oqu(t.text)}}function w$(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-list-item",27)(1,"button",28),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.onGoTo(o))}),e.YNc(2,h$,3,2,"div",10),e.YNc(3,p$,3,1,"div",11),e.YNc(4,m$,5,3,"div",12),e.YNc(5,y$,5,3,"div",13),e.qZA()()}if(2&r){const t=e.oxw(4);e.Udp("color",t.layoutNavigation.fgcolor),e.Q6J("ngClass","menu-item-"+t.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitch",t.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitchCase","icon"),e.xp6(1),e.Q6J("ngSwitchCase","text"),e.xp6(1),e.Q6J("ngSwitchCase","block"),e.xp6(1),e.Q6J("ngSwitchCase","inline")}}function C$(r,a){if(1&r&&(e.TgZ(0,"mat-list",25),e.YNc(1,w$,6,8,"mat-list-item",26),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",t.children)}}function b$(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"mat-list-item",8)(2,"button",9),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2);return e.KtG(s.isExpandable(o)?s.toggleSubMenu(o):s.onGoTo(o))}),e.YNc(3,i$,3,2,"div",10),e.YNc(4,n$,3,1,"div",11),e.YNc(5,a$,5,3,"div",12),e.YNc(6,c$,5,3,"div",13),e.YNc(7,A$,2,1,"mat-icon",14),e.qZA()(),e.YNc(8,C$,2,1,"mat-list",15),e.BQk()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.xp6(1),e.Udp("color",i.layoutNavigation.fgcolor),e.Q6J("ngClass","menu-item-"+i.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitch",i.layout.navigation.type),e.xp6(1),e.Q6J("ngSwitchCase","icon"),e.xp6(1),e.Q6J("ngSwitchCase","text"),e.xp6(1),e.Q6J("ngSwitchCase","block"),e.xp6(1),e.Q6J("ngSwitchCase","inline"),e.xp6(1),e.Q6J("ngIf",i.isExpandable(t)),e.xp6(1),e.Q6J("ngIf",i.isExpandable(t)&&i.isExpanded(t))}}function x$(r,a){if(1&r&&(e.TgZ(0,"div",1)(1,"mat-list",2)(2,"mat-list-item",3),e.YNc(3,XX,3,3,"span",4),e.YNc(4,$X,1,1,"ng-template",null,5,e.W1O),e.qZA(),e.YNc(6,b$,9,10,"ng-container",6),e.qZA()()),2&r){const t=e.MAs(5),i=e.oxw();e.Udp("background-color",i.layoutNavigation.bkcolor)("color",i.layoutNavigation.fgcolor),e.Q6J("ngClass","sidenav-menu-"+i.layout.navigation.type),e.xp6(2),e.Udp("color",i.layoutNavigation.fgcolor),e.xp6(1),e.Q6J("ngIf",!i.logo)("ngIfElse",t),e.xp6(3),e.Q6J("ngForOf",i.layout.navigation.items)}}let B$=(()=>{class r{location;router;projectService;languageService;changeDetector;sidenav;goToPage=new e.vpe;goToLink=new e.vpe;viewAsLink=Tt.Un.address;viewAsAlarms=Tt.Un.alarms;logo=null;layout=null;showSidenav=!1;layoutNavigation=new Tt.iS;expandedItems=new Set;expandableNavItems=[ii.cQ.getEnumKey(Tt.tZ,Tt.tZ.text),ii.cQ.getEnumKey(Tt.tZ,Tt.tZ.inline)];constructor(t,i,n,o,s){this.location=t,this.router=i,this.projectService=n,this.languageService=o,this.changeDetector=s}ngAfterContentChecked(){this.showSidenav=!!this.layout,this.changeDetector.detectChanges()}onGoTo(t){if(this.location.path().startsWith("/home/")){const i=this.projectService.getViewFromId(t.view);i&&this.router.navigate(["/home",i.name])}t.link&&t.view===this.viewAsLink?this.goToLink.emit(t.link):t.view&&this.goToPage.emit(t.view)}toggleSubMenu(t){t.id&&t.children?.length&&(this.expandedItems.has(t.id)?this.expandedItems.delete(t.id):this.expandedItems.add(t.id),this.changeDetector.detectChanges())}isExpanded(t){return!!t.id&&this.expandedItems.has(t.id)}isExpandable(t){return this.expandableNavItems.includes(this.layout.navigation.type)&&t.children?.length>0}setLayout(t){this.layout=ii.cQ.clone(t),this.layout.navigation&&(this.layoutNavigation=this.layout.navigation,this.logo=this.layout.navigation.logo,this.layout.navigation.items?.forEach(i=>{i.text=this.languageService.getTranslation(i.text)??i.text,i.id||(i.id=ii.cQ.getShortGUID()),i.children?.forEach(n=>{n.text=this.languageService.getTranslation(n.text)??n.text,n.id||(n.id=ii.cQ.getShortGUID())})}))}static \u0275fac=function(i){return new(i||r)(e.Y36(l.Ye),e.Y36(Zc),e.Y36(wr.Y4),e.Y36(Pv),e.Y36(e.sBO))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-sidenav"]],inputs:{sidenav:"sidenav"},outputs:{goToPage:"goToPage",goToLink:"goToLink"},decls:1,vars:1,consts:[["class","sidenav-menu","style","height: 100%",3,"ngClass","background-color","color",4,"ngIf"],[1,"sidenav-menu",2,"height","100%",3,"ngClass"],[2,"background-color","inherit"],[2,"display","flex","justify-content","center","height","35px","font-weight","bold","padding-bottom","10px","margin-bottom","10px","width","unset"],[4,"ngIf","ngIfElse"],["hasLogo",""],[4,"ngFor","ngForOf"],[2,"max-width","100%","max-height","100%",3,"src"],[2,"width","unset",3,"ngClass"],["type","button","mat-button","",1,"sidenav-btn",3,"ngSwitch","click"],["class","menu-item-content-icon",4,"ngSwitchCase"],["class","menu-item-content-text",4,"ngSwitchCase"],["class","menu-item-content-block",4,"ngSwitchCase"],["class","menu-item-content-inline",4,"ngSwitchCase"],["class","sidenav-submenu-icon",4,"ngIf"],["class","submenu-list",4,"ngIf"],[1,"menu-item-content-icon"],[3,"src",4,"ngIf"],[4,"ngIf"],[3,"src"],[1,"menu-item-content-text"],[1,"menu-item-content-block"],[1,"menu-item-content-inline"],[2,"display","inline-block"],[1,"sidenav-submenu-icon"],[1,"submenu-list"],["class","sidenav-submenu-item",3,"ngClass","color",4,"ngFor","ngForOf"],[1,"sidenav-submenu-item",3,"ngClass"],["type","button","mat-button","",1,"sidenav-btn",2,"padding-left","20px !important",3,"ngSwitch","click"]],template:function(i,n){1&i&&e.YNc(0,x$,7,10,"div",0),2&i&&e.Q6J("ngIf",n.showSidenav)},dependencies:[l.mk,l.sg,l.O5,l.RF,l.n9,Yn,Zn,mg,hp,Ni.X$],styles:["[_nghost-%COMP%] .sidenav-submenu-btn[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%] .sidenav-submenu-item[_ngcontent-%COMP%]{width:unset;min-height:unset;height:unset}[_nghost-%COMP%] .sidenav-submenu-icon[_ngcontent-%COMP%]{position:absolute;right:12px;top:50%;transform:translateY(-50%)}[_nghost-%COMP%] .submenu-list[_ngcontent-%COMP%]{padding:0;margin:0;list-style:none}"]})}return r})();var xp=function(r){return r.realtime1="realtime1",r.history="history",r.custom="custom",r}(xp||{}),Fv=function(r){return r.last8h="chart.rangetype-last8h",r.last1d="chart.rangetype-last1d",r.last3d="chart.rangetype-last3d",r.last1w="chart.rangetype-last1w",r}(Fv||{}),im=function(r){return r.always="chart.legend-always",r.follow="chart.legend-follow",r.bottom="chart.legend-bottom",r.never="chart.legend-never",r}(im||{});class LL{static ChartRangeToHours(a){let t=Object.keys(Fv);return a===t[0]?8:a===t[1]?24:a===t[2]?72:a===t[3]?168:0}}class nm extends uo{static TypeTag="svg-ext-value";static LabelTag="Value";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show,blink:Tt.KG.blink};constructor(){super()}static getSignals(a){let t=[];return a.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),a.ranges&&a.ranges.forEach(i=>{i.textId&&t.push(i.textId),i.fractionDigitsId&&t.push(i.fractionDigitsId)}),a.variableId&&t.push(a.variableId),t}static getDialogType(){return Do.ValueAndUnit}static getActions(a){return this.actionsType}static processValue(a,t,i,n){try{if(t.node&&t.node.children&&t.node.children.length<=1){let o=t.node.children[0],s=parseFloat(i.value);switch(typeof i.value){case"undefined":default:break;case"boolean":s=Number(i.value);break;case"number":s=parseFloat(s.toFixed(5));break;case"string":s=i.value}if(a.property){let c=uo.getUnit(a.property,n),g=uo.getDigits(a.property,n);if(!ii.cQ.isNullOrUndefined(g)&&ii.cQ.isNumeric(s)&&(s=parseFloat(i.value).toFixed(g)),a.property.variableId===i.id)try{o.textContent=s,c&&(o.textContent+=" "+c)}catch(B){console.error(a,i,B)}a.property.actions&&a.property.actions.forEach(B=>{B.variableId===i.id&&nm.processAction(B,t,parseFloat(s),n)})}}}catch(o){console.error(o)}}static processAction(a,t,i,n){if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=i&&a.range.max>=i){let o=SVG.adopt(t.node);this.runActionHide(o,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.show){if(a.range.min<=i&&a.range.max>=i){let o=SVG.adopt(t.node);this.runActionShow(o,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.blink){let o=SVG.adopt(t.node.children[0]);this.checkActionBlink(o,a,n,a.range.min<=i&&a.range.max>=i,!1)}}static \u0275fac=function(t){return new(t||nm)};static \u0275cmp=e.Xpm({type:nm,selectors:[["gauge-value"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}const E$=["graph"];let M$=(()=>{class r{id;options;graph;onChartClick;lineInterpolations={linear:0,stepAfter:1,stepBefore:2,spline:3,none:4};rawData=!1;overlay;uplot;data;get xSample(){return this.rawData?[2,7]:[(new Date).getTime()/1e3-1,(new Date).getTime()/1e3]}sampleData=[this.xSample,[35,71]];getShortTimeFormat(t=!0){return this.options&&"hh_mm_ss_AA"===this.options.timeFormat?t?"{h}:{mm} {AA}":"{h} {AA}":t?"{HH}:{mm}":"{HH}"}xTimeFormat={hh_mm_ss:"{HH}:{mm}:{ss}",hh_mm_ss_AA:"{h}:{mm}:{ss} {AA}"};xDateFormat={};checkDateFormat(){this.xDateFormat={YYYY_MM_DD:{legendDate:"{YYYY}/{MM}/{DD}",values:[[31536e3,"{YYYY}",null,null,null,null,null,null,1],[2419200,"{MMM}","\n{YYYY}",null,null,null,null,null,1],[86400,"{DD}/{MM}","\n{YYYY}",null,null,null,null,null,1],[3600,""+this.getShortTimeFormat(!1),"\n{YYYY}/{MM}/{DD}",null,"\n{DD}/{MM}",null,null,null,1],[60,""+this.getShortTimeFormat(),"\n{YYYY}/{MM}/{DD}",null,"\n{DD}/{MM}",null,null,null,1],[1,"{mm}:{ss}","\n{YYYY}/{MM}/{DD} "+this.getShortTimeFormat(),null,"\n{DD}/{MM} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1],[.001,":{ss}.{fff}","\n{YYYY}/{MM}/{DD} "+this.getShortTimeFormat(),null,"\n{DD}/{MM} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1]]},MM_DD_YYYY:{legendDate:"{MM}/{DD}/{YYYY}",values:[[31536e3,"{YYYY}",null,null,null,null,null,null,1],[2419200,"{MMM}","\n{YYYY}",null,null,null,null,null,1],[86400,"{MM}/{DD}","\n{YYYY}",null,null,null,null,null,1],[3600,""+this.getShortTimeFormat(!1),"\n{MM}/{DD}/{YYYY}",null,"\n{MM}/{DD}",null,null,null,1],[60,""+this.getShortTimeFormat(),"\n{MM}/{DD}/{YYYY}",null,"\n{MM}/{DD}",null,null,null,1],[1,"{mm}:{ss}","\n{MM}/{DD}/{YYYY} "+this.getShortTimeFormat(),null,"\n{MM}/{DD} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1],[.001,":{ss}.{fff}","\n{MM}/{DD}/{YYYY} "+this.getShortTimeFormat(),null,"\n{MM}/{DD} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1]]},DD_MM_YYYY:{legendDate:"{DD}/{MM}/{YYYY}",values:[[31536e3,"{YYYY}",null,null,null,null,null,null,1],[2419200,"{MMM}","\n{YYYY}",null,null,null,null,null,1],[86400,"{DD}/{MM}","\n{YYYY}",null,null,null,null,null,1],[3600,""+this.getShortTimeFormat(!1),"\n{DD}/{MM}/{YYYY}",null,"\n{DD}/{MM}",null,null,null,1],[60,""+this.getShortTimeFormat(),"\n{DD}/{MM}/{YYYY}",null,"\n{DD}/{MM}",null,null,null,1],[1,"{mm}:{ss}","\n{DD}/{MM}/{YYYY} "+this.getShortTimeFormat(),null,"\n{DD}/{MM} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1],[.001,":{ss}.{fff}","\n{DD}/{MM}/{YYYY} "+this.getShortTimeFormat(),null,"\n{DD}/{MM} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1]]},MM_DD_YY:{legendDate:"{MM}/{DD}/{YY}",values:[[31536e3,"{YYYY}",null,null,null,null,null,null,1],[2419200,"{MMM}","\n{YYYY}",null,null,null,null,null,1],[86400,"{MM}/{DD}","\n{YYYY}",null,null,null,null,null,1],[3600,""+this.getShortTimeFormat(!1),"\n{MM}/{DD}/{YY}",null,"\n{MM}/{DD}",null,null,null,1],[60,""+this.getShortTimeFormat(),"\n{MM}/{DD}/{YY}",null,"\n{MM}/{DD}",null,null,null,1],[1,"{mm}:{ss}","\n{MM}/{DD}/{YY} "+this.getShortTimeFormat(),null,"\n{MM}/{DD} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1],[.001,":{ss}.{fff}","\n{MM}/{DD}/{YY} "+this.getShortTimeFormat(),null,"\n{MM}/{DD} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1]]},DD_MM_YY:{legendDate:"{DD}/{MM}/{YY}",values:[[31536e3,"{YYYY}",null,null,null,null,null,null,1],[2419200,"{MMM}","\n{YYYY}",null,null,null,null,null,1],[86400,"{DD}/{MM}","\n{YYYY}",null,null,null,null,null,1],[3600,""+this.getShortTimeFormat(!1),"\n{DD}/{MM}/{YY}",null,"\n{DD}/{MM}",null,null,null,1],[60,""+this.getShortTimeFormat(),"\n{DD}/{MM}/{YY}",null,"\n{DD}/{MM}",null,null,null,1],[1,"{mm}:{ss}","\n{DD}/{MM}/{YY} "+this.getShortTimeFormat(),null,"\n{DD}/{MM} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1],[.001,":{ss}.{fff}","\n{DD}/{MM}/{YY} "+this.getShortTimeFormat(),null,"\n{DD}/{MM} "+this.getShortTimeFormat(),null,"\n"+this.getShortTimeFormat(),null,1]]}}}fmtDate=uPlot.fmtDate("{DD}/{MM}/{YY} {HH}:{mm}:{ss}");sampleSerie=[{value:(t,i)=>this.fmtDate(new Date(1e3*i))},{show:!0,spanGaps:!1,label:"Serie",value:(t,i)=>i?.toFixed(this.options.decimalsPrecision),stroke:"red",width:1,fill:"rgba(255, 0, 0, 0.3)",dash:[10,5]}];defOptions={title:"Default Chart",id:"defchart",class:"my-chart",width:800,height:600,legend:{show:!0,width:1},scales:{x:{time:!0}},series:this.sampleSerie,cursor:{dataIdx:(t,i,n,o)=>this._proximityIndex(t,i,n,o)}};languageLabels={time:"Time",serie:"Serie",title:"Title"};constructor(){}ngOnInit(){this.options=this.defOptions,this.uplot=new uPlot(this.defOptions,this.sampleData,this.graph.nativeElement)}ngOnDestroy(){try{this.uplot.destroy(),this.overlay.parentNode&&this.overlay.parentNode.removeChild(this.overlay)}catch(t){console.error(t)}}resize(t,i){let n=this.graph.nativeElement;t||(t=n.clientHeight),i||(i=n.clientWidth),this.uplot.setSize({height:t,width:i})}init(t,i){this.data=[[]],this.rawData=i,ii.cQ.isNullOrUndefined(t?.rawData)||(this.rawData=t.rawData),t&&(this.options=t,t.id?this.data=[this.xSample]:(this.data=this.sampleData,this.options.series=this.sampleSerie));let n=this.options||this.defOptions;n.cursor=this.defOptions.cursor,this.uplot&&this.uplot.destroy(),this.checkDateFormat(),this.options.dateFormat&&this.xDateFormat[this.options.dateFormat]&&this.options.timeFormat&&this.xTimeFormat[this.options.timeFormat]&&(this.fmtDate=uPlot.fmtDate(this.xDateFormat[this.options.dateFormat].legendDate+" "+this.xTimeFormat[this.options.timeFormat]),this.options.axes[0].values=this.rawData?(s,c)=>c:this.xDateFormat[this.options.dateFormat].values),this.sampleSerie[1].label=this.languageLabels.serie,this.options.series.length>0&&(this.options.series[0].value=(s,c)=>this.rawData?c:this.fmtDate(new Date(1e3*c)),this.options.series[0].label=this.languageLabels.time),this.options.axes.length>0&&(this.options.axes[0].label?this.options.series[0].label=this.options.axes[0].label:this.options.axes[0].label=this.languageLabels.time),this.options.title||(this.options.title=this.languageLabels.title),this.options.scales={1:{range:[ii.cQ.isNumeric(t.scaleY1min)?t.scaleY1min:null,ii.cQ.isNumeric(t.scaleY1max)?t.scaleY1max:null]},2:{range:[ii.cQ.isNumeric(t.scaleY2min)?t.scaleY2min:null,ii.cQ.isNumeric(t.scaleY2max)?t.scaleY2max:null]},3:{range:[ii.cQ.isNumeric(t.scaleY3min)?t.scaleY3min:null,ii.cQ.isNumeric(t.scaleY3max)?t.scaleY3max:null]},4:{range:[ii.cQ.isNumeric(t.scaleY4min)?t.scaleY4min:null,ii.cQ.isNumeric(t.scaleY4max)?t.scaleY4max:null]}},n.plugins=this.options.tooltip&&this.options.tooltip.show?[this.tooltipPlugin()]:[],this.options.thouchZoom&&n.plugins.push(this.touchZoomPlugin(n)),this.uplot=new uPlot(n,this.data,this.graph.nativeElement);const o=this.uplot.root.querySelector(".u-over");o&&(o.addEventListener("click",s=>{if(this.onChartClick){const c=this.getDataCoordsFromEvent(s);c&&this.onChartClick(c.x,c.y)}}),o.addEventListener("touchstart",s=>{if(this.onChartClick){const c=this.getDataCoordsFromEvent(s);c&&this.onChartClick(c.x,c.y)}}))}getDataCoordsFromEvent(t){const i=this.uplot?.root?.querySelector(".u-over");if(!i||!this.uplot)return null;const n=i.getBoundingClientRect(),o=t instanceof TouchEvent?t.touches[0].clientX:t.clientX,g=(t instanceof TouchEvent?t.touches[0].clientY:t.clientY)-n.top;return{x:this.uplot.posToVal(o-n.left,"x"),y:this.uplot.posToVal(g,this.uplot.series[1]?.scale??"y")}}setOptions(t){this.options=t,this.init(this.options,this.rawData)}addSerie(t,i){this.data.push([null,null]),i.lineInterpolation===this.lineInterpolations.stepAfter?i.paths=uPlot.paths.stepped({align:1}):i.lineInterpolation===this.lineInterpolations.stepBefore?i.paths=uPlot.paths.stepped({align:-1}):i.lineInterpolation===this.lineInterpolations.spline?i.paths=uPlot.paths.spline():i.lineInterpolation===this.lineInterpolations.none&&(i.points={show:!0,size:i.width??5,width:1,stroke:i.stroke,fill:i.fill},i.stroke=null,i.fill=null),this.uplot.addSeries(i,t),this.uplot.setData(this.data)}setSample(){let t=[this.xSample];for(let i=0;i{i=B.root.querySelector(".u-over"),n=i,i.onmouseenter=()=>{g.style.display="block"},i.onmouseleave=()=>{g.style.display="none"}},setSize:B=>{!function c(){let B=i.getBoundingClientRect();o=B.left,s=B.top}()},setCursor:B=>{this.paintLegendCuror(B,g,o,s,n)},setSeries:B=>{this.paintLegendMarkers(B)},setData:B=>{this.paintLegendMarkers(B)}}}}paintLegendCuror=(t,i,n,o,s)=>{const{left:c,top:g,idx:B}=t.cursor,O=t.data[0][B],ne={left:c+n,top:g+o},we=this.fmtDate(new Date(1e3*O)),$e=`
${t.series[0].label}: ${this.rawData?O:we}
`;let nt="";for(let Di=1;Di
${t.series[Di].label}:
${Ri}
`}i.innerHTML=$e+nt,placement(i,ne,"right","start",{bound:s})};paintLegendMarkers=t=>{const i=t.root.querySelector(".u-legend");if(!i)return;const n=i.querySelectorAll(".u-series");for(let o=1;oo.min-s.min);for(let o=0;o=s.min&&i<=s.max)return s.stroke}return"red"}scaleGradient(t,i,n,o,s=!1){let g,B,c=t.scales[i];for(let Ki=0;Ki=c.max)break}if(g==B)return o[g][1];let O=o[g][0],ne=o[B][0];O==-1/0&&(O=c.min),ne==1/0&&(ne=c.max);let Ft,ei,pi,Di,we=t.valToPos(O,i,!0),$e=t.valToPos(ne,i,!0),nt=we-$e;if(1==n?(Ft=pi=0,ei=we,Di=$e):(ei=Di=0,Ft=we,pi=$e),Number.isNaN(ei)||Number.isNaN(Di))return null;let Wi,Ri=this.uplot.ctx.createLinearGradient(Ft,ei,pi,Di);for(let Ki=g;Ki<=B;Ki++){let vn=o[Ki],Vn=(we-(Ki==g?we:Ki==B?$e:t.valToPos(vn[0],i,!0)))/nt;s&&Ki>g&&Ri.addColorStop(Vn,Wi),Ri.addColorStop(Vn,Wi=vn[1])}return Ri}_proximityIndex(t,i,n,o){let c=t.data[i];if(null==c[n]){let O,g=null,B=null;for(O=n;null==g&&O-- >0;)null!=c[O]&&(g=O);for(O=n;null==B&&O++{n.setScale("x",{min:pr,max:go}),n.setScale("y",{min:la,max:Os})})}function Di(Ri){Ft(nt,Ri),ei||(ei=!0,requestAnimationFrame(pi))}c.addEventListener("touchstart",function(Ri){g=c.getBoundingClientRect(),Ft($e,Ri),B=n.scales.x.max-n.scales.x.min,O=n.scales.y.max-n.scales.y.min;let Ki=$e.y;ne=n.posToVal($e.x,"x"),we=n.posToVal(Ki,"y"),document.addEventListener("touchmove",Di,{passive:!0})}),c.addEventListener("touchend",function(Ri){document.removeEventListener("touchmove",Di,{})})}}}}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["ngx-uplot"]],viewQuery:function(i,n){if(1&i&&e.Gf(E$,7),2&i){let o;e.iGM(o=e.CRH())&&(n.graph=o.first)}},inputs:{id:"id",options:"options",onChartClick:"onChartClick"},decls:2,vars:0,consts:[["graph",""]],template:function(i,n){1&i&&e._UZ(0,"div",null,0)}})}return r})();const D$=["dtrange"];let RL=(()=>{class r{dialogRef;dtrange;options={};constructor(t){this.dialogRef=t}onOkClick(){let t={start:this.dtrange.startDate.toDate().getTime(),end:this.dtrange.endDate.toDate().getTime()};this.dialogRef.close(t)}onNoClick(){this.dialogRef.close()}static \u0275fac=function(i){return new(i||r)(e.Y36(_r))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-daterange-dialog"]],viewQuery:function(i,n){if(1&i&&e.Gf(D$,5),2&i){let o;e.iGM(o=e.CRH())&&(n.dtrange=o.first)}},decls:10,vars:8,consts:[[1,"container"],[1,"custom-datapicker",3,"autoApply","locale"],["dtrange",""],[1,"action-panel"],["mat-raised-button","",1,"btn-cancel",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e._UZ(1,"ngx-daterangepicker-material",1,2),e.TgZ(3,"div",3)(4,"button",4),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5),e.ALo(6,"translate"),e.qZA(),e.TgZ(7,"button",5),e.NdJ("click",function(){return n.onOkClick()}),e._uU(8),e.ALo(9,"translate"),e.qZA()()()),2&i&&(e.xp6(1),e.Q6J("autoApply",!0)("locale",n.options),e.xp6(4),e.Oqu(e.lcZ(6,4,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(9,6,"dlg.ok")))},dependencies:[Yn,h7,Ni.X$],styles:[".container[_ngcontent-%COMP%]{background-color:#fff}.custom-datapicker[_ngcontent-%COMP%]{display:flex}.action-panel[_ngcontent-%COMP%]{float:right;padding-right:20px;margin-bottom:8px}.action-panel[_ngcontent-%COMP%] .btn-cancel[_ngcontent-%COMP%]{background-color:#fff;color:#000;margin-right:10px} .light-dialog-container .mat-dialog-container{background-color:#fff!important}"]})}return r})();var Ov=ce(7758);const T$=["chartPanel"],I$=["nguplot"];function k$(r,a){if(1&r&&(e.TgZ(0,"div"),e._UZ(1,"button",10),e.TgZ(2,"button",11)(3,"mat-icon",12),e._uU(4,"access_time"),e.qZA()(),e.TgZ(5,"button",11)(6,"mat-icon",13),e._uU(7,"skip_previous"),e.qZA()(),e.TgZ(8,"button",11)(9,"mat-icon",14),e._uU(10,"skip_next"),e.qZA()()()),2&r){const t=e.oxw(2);e.xp6(1),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground),e.xp6(1),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground),e.xp6(3),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground),e.xp6(3),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground)}}function Q$(r,a){if(1&r&&(e.TgZ(0,"mat-option",18),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.Udp("color",i.options.axisLabelColor)("background-color",i.options.colorBackground),e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,6,t.value)," ")}}function S$(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"mat-select",15),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.rangeTypeValue=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onRangeChanged(n.source.value))}),e.YNc(2,Q$,3,8,"mat-option",16),e.ALo(3,"enumToArray"),e.qZA(),e.TgZ(4,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onDateRange())}),e.TgZ(5,"mat-icon",12),e._uU(6,"access_time"),e.qZA()(),e.TgZ(7,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onClick("B"))}),e.TgZ(8,"mat-icon",13),e._uU(9,"skip_previous"),e.qZA()(),e.TgZ(10,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onClick("F"))}),e.TgZ(11,"mat-icon",14),e._uU(12,"skip_next"),e.qZA()()()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground),e.Q6J("value",t.rangeTypeValue),e.xp6(1),e.Q6J("ngForOf",e.lcZ(3,18,t.rangeType)),e.xp6(2),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground),e.xp6(3),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground),e.xp6(3),e.Udp("color",t.options.axisLabelColor)("background-color",t.options.colorBackground)}}function P$(r,a){if(1&r&&(e.TgZ(0,"div",7)(1,"div",8),e.YNc(2,k$,11,16,"div",9),e.YNc(3,S$,13,20,"div",9),e.qZA()()),2&r){const t=e.oxw();e.Udp("display",t.options.hideToolbar?"none":"block"),e.xp6(2),e.Q6J("ngIf",t.isEditor),e.xp6(1),e.Q6J("ngIf",!t.isEditor)}}const F$=function(r){return{"reload-active":r}};function O$(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",19)(1,"button",20),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onRefresh(!0))}),e.TgZ(2,"mat-icon",21),e._uU(3,"autorenew"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(1),e.Udp("color",t.options.axisLabelColor),e.xp6(1),e.Q6J("ngClass",e.VKq(3,F$,t.reloadActive))}}function L$(r,a){1&r&&(e.TgZ(0,"div",22),e._UZ(1,"mat-spinner",23),e.qZA())}let ES=(()=>{class r{projectService;hmiService;scriptService;dialog;translateService;chartPanel;nguplot;options;onTimeRange=new e.vpe;loading=!1;id;withToolbar=!1;isEditor=!1;reloadActive=!1;lastDaqQuery=new Tt.jS;rangeTypeValue=ii.cQ.getEnumKey(Fv,Fv.last8h);rangeType;range={from:Date.now(),to:Date.now(),zoomStep:0};mapData={};pauseMemoryValue={};destroy$=new An.x;property;chartName;addValueInterval=0;zoomSize=0;eventChartClick=ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.click);constructor(t,i,n,o,s){this.projectService=t,this.hmiService=i,this.scriptService=n,this.dialog=o,this.translateService=s}ngOnInit(){this.options||(this.options=r.DefaultOptions())}ngAfterViewInit(){!this.isEditor&&this.property?.type===xp.custom&&this.getCustomData(),this.nguplot&&(this.nguplot.languageLabels.serie=this.translateService.instant("chart.labels-serie"),this.nguplot.languageLabels.time=this.translateService.instant("chart.labels-time"),this.nguplot.languageLabels.title=this.translateService.instant("chart.labels-title"))}ngOnDestroy(){try{delete this.chartPanel,this.nguplot&&this.nguplot.ngOnDestroy(),delete this.nguplot,this.destroy$.next(null),this.destroy$.unsubscribe()}catch(t){console.error(t)}}onClick(t){if(this.isEditor)return;this.lastDaqQuery.gid=this.id;let i=60*LL.ChartRangeToHours(this.rangeTypeValue)*60;this.zoomSize&&(i=this.zoomSize),"B"===t?(this.range.to=new Date(this.range.from).getTime(),this.range.from=new Date(this.range.from).setTime(new Date(this.range.from).getTime()-1e3*i)):"F"===t&&(this.range.from=new Date(this.range.to).getTime(),this.range.to=new Date(this.range.from).setTime(new Date(this.range.from).getTime()+1e3*i)),this.lastDaqQuery.sids=Object.keys(this.mapData),this.updateLastDaqQueryRange(this.range)}onRangeChanged(t,i){if(!this.isEditor&&(i||(this.zoomSize=0),t)){this.range.from=Date.now(),this.range.to=Date.now();let n=60*LL.ChartRangeToHours(t)*60;this.zoomSize&&(n=this.zoomSize),this.range.from=new Date(this.range.from).setTime(new Date(this.range.from).getTime()-1e3*n),this.lastDaqQuery.event=t,this.lastDaqQuery.gid=this.id,this.lastDaqQuery.sids=Object.keys(this.mapData),this.updateLastDaqQueryRange(this.range)}}onDateRange(){this.dialog.open(RL,{panelClass:"light-dialog-container"}).afterClosed().subscribe(i=>{i&&(this.range.from=i.start,this.range.to=i.end,this.lastDaqQuery.gid=this.id,this.lastDaqQuery.sids=Object.keys(this.mapData),this.updateLastDaqQueryRange(this.range))})}onDaqQuery(t){t&&(this.lastDaqQuery=ii.cQ.mergeDeep(this.lastDaqQuery,t)),this.lastDaqQuery.chunked=!0,this.onTimeRange.emit(this.lastDaqQuery),this.withToolbar&&this.setLoading(!0)}onRefresh(t){this.property?.type===xp.custom?this.getCustomData():(this.onRangeChanged(this.lastDaqQuery.event,t),this.reloadActive=!0)}onExportData(){}resize(t,i){if(!this.chartPanel)return;let n=this.chartPanel.nativeElement;if(!t&&n.offsetParent&&(t=n.offsetParent.clientHeight),!i&&n.offsetParent&&(i=n.offsetParent.clientWidth),t&&i){this.options.panel.width=i,this.options.width=i,this.options.panel.height=t,this.options.height=t,this.options.height-=40,this.withToolbar&&!this.options.hideToolbar&&(this.options.height-=34);let o=ii.cQ.getDomTextHeight(this.options.titleHeight,this.options.fontFamily);this.options.height-=o,o=ii.cQ.getDomTextHeight(this.options.axisLabelFontSize,this.options.fontFamily),o<10&&(o=10),this.options.height-=o,this.nguplot.resize(this.options.height,this.options.width)}}init(t=null,i=!0){i&&(this.mapData={}),t&&(this.options=t),this.destroy$.next(null),this.property?.type===xp.history&&this.options.refreshInterval&&vv(6e4*this.options.refreshInterval).pipe((0,On.R)(this.destroy$)).subscribe(n=>{this.onRefresh()}),this.updateCanvasOptions(this.nguplot),this.options.panel&&this.resize(this.options.panel.height,this.options.panel.width),this.nguplot.init(this.options,this.property?.type===xp.custom),this.updateDomOptions(this.nguplot),!this.isEditor&&this.property?.events?.find(n=>n.type===this.eventChartClick)&&(this.nguplot.onChartClick=this.handleChartClick.bind(this))}setInitRange(t){this.withToolbar&&(t||this.options.lastRange)&&(this.rangeTypeValue=this.options.lastRange),this.property?.type===xp.history?this.onRangeChanged(this.rangeTypeValue):this.options.loadOldValues&&this.options.realtime&&(this.lastDaqQuery.gid=this.id,this.lastDaqQuery.sids=Object.keys(this.mapData),this.range.from=new Date((new Date).getTime()-6e4*this.options.realtime).getTime(),this.range.to=Date.now(),this.updateLastDaqQueryRange(this.range))}setOptions(t,i=!1){this.options={...this.options,...t},i&&(this.options={...this.options,series:[{}]}),this.init(this.options),this.redraw()}updateOptions(t){this.options={...this.options,...t},this.init(this.options,!1),Object.keys(this.mapData).forEach(i=>{this.nguplot.addSerie(this.mapData[i].index,this.mapData[i].attribute)}),this.setInitRange(),this.redraw()}getOptions(){return this.options}addLine(t,i,n,o){if(!this.mapData[t]){let s=n.label||i;o&&(s=`Y${n.yaxis} - ${s}`);let c={label:s,stroke:n.color,spanGaps:!0};c.scale=n.yaxis>1?n.yaxis.toString():"1",c.spanGaps=!!ii.cQ.isNullOrUndefined(n.spanGaps)||n.spanGaps,n.lineWidth&&(c.width=n.lineWidth);const g=n.fill||"rgba(0,0,0,0)",B=n.color||"rgb(0,0,0)";if(n.zones?.some(O=>O.fill)){const O=this.generateZones(n.zones,"fill",g);O&&(c.fill=(ne,we)=>this.nguplot.scaleGradient(ne,n.yaxis,1,O,!0)||g)}else n.fill&&(c.fill=n.fill);if(n.zones?.some(O=>O.stroke)){const O=this.generateZones(n.zones,"stroke",B);O&&(c.stroke=(ne,we)=>this.nguplot.scaleGradient(ne,n.yaxis,1,O,!0)||B)}else n.color&&(c.stroke=n.color);c.lineInterpolation=n.lineInterpolation,this.mapData[t]={index:Object.keys(this.mapData).length+1,attribute:c,lastValueTime:0},this.nguplot.addSerie(this.mapData[t].index,this.mapData[t].attribute)}this.isEditor&&this.nguplot.setSample()}generateZones(t,i,n){const o=[],s=t.sort((B,O)=>B.min-O.min);return o.push([-1/0,s[0]?.[i]||n]),s.forEach((B,O)=>{const ne=B[i]||n;o.push([B.min,ne]);const we=s[O+1]?.min;(void 0!==we&&B.maxc[0]-g[0]).map(c=>c[1]),s=this.buildUnifiedData(o);this.nguplot.setData(s),this.nguplot.setXScala(this.range.from/1e3,this.range.to/1e3),setTimeout(()=>this.setLoading(!1),300)}}else try{const o=t?.[0]?.[0];if(Array.isArray(t)&&Array.isArray(t[0])&&"number"==typeof o)return this.nguplot.setData(t),this.nguplot.setXScala(this.range.from/1e3,this.range.to/1e3),void setTimeout(()=>this.setLoading(!1),300);if(o&&"object"==typeof o){const s=t.map(g=>g.map(B=>({dt:B.dt??B.time,value:void 0!==B.value?B.value:B.v}))),c=this.buildUnifiedData([s]);return this.nguplot.setData(c),this.nguplot.setXScala(this.range.from/1e3,this.range.to/1e3),void setTimeout(()=>this.setLoading(!1),300)}console.warn("setValues (not-chunk): format unknow",t)}catch(o){console.error("setValues (not-chunk): error parsing/application",o)}}buildUnifiedData(t){const i=new Set,n=new Map;for(let g of t)for(let B=0;Bg-B),s=[o],c=t[0].length;for(let g=0;g{const n=this.pauseMemoryValue[i];n&&Object.values(n).forEach(o=>{this.addValue(i,o.x,o.y)})}),this.pauseMemoryValue={}),this.updateLastDaqQueryRange(this.range)}updateLastDaqQueryRange(t){this.lastDaqQuery.from=t.from,this.lastDaqQuery.to=t.to,this.onDaqQuery()}getZoomStatus(){return this.range}setProperty(t,i){return!ii.cQ.isNullOrUndefined(this[t])&&(this[t]=i,!0)}static DefaultOptions(){return{title:"Title",fontFamily:"Roboto-Regular",legendFontSize:12,colorBackground:"rgba(255,255,255,0)",legendBackground:"rgba(255,255,255,0)",titleHeight:18,axisLabelFontSize:12,labelsDivWidth:0,axisLineColor:"rgba(0,0,0,1)",axisLabelColor:"rgba(0,0,0,1)",legendMode:"always",series:[],width:360,height:200,decimalsPrecision:2,realtime:60,dateFormat:ii.cQ.getEnumKey(Tt.kH,Tt.kH.MM_DD_YYYY),timeFormat:ii.cQ.getEnumKey(Tt.lf,Tt.lf.hh_mm_ss_AA)}}setLoading(t){t&&(0,Mo.H)(1e4).pipe((0,On.R)(this.destroy$)).subscribe(i=>{this.loading=!1}),this.loading=t}updateCanvasOptions(t){this.options.axes||(this.options.axes=[{label:"Time",grid:{show:!0,width:1/devicePixelRatio},ticks:{}}],this.options.axes.push({grid:{show:!0,width:1/devicePixelRatio},ticks:{},scale:"1"}),this.options.axes.push({grid:{show:!1,width:1/devicePixelRatio},ticks:{},side:1,scale:"2"}),this.options.axes.push({grid:{show:!1,width:1/devicePixelRatio},ticks:{},side:3,scale:"3"}),this.options.axes.push({grid:{show:!1,width:1/devicePixelRatio},ticks:{},side:1,scale:"4"}));for(let s=0;si.id===this.property?.options?.scriptId);if(t){let i=ii.cQ.clone(t),n=this.hmiService.getChart(this.property.id);this.reloadActive=!0,i.parameters=this.getCustomParameters(t.parameters,n),this.scriptService.runScript(i).pipe(sg(200)).subscribe(o=>{this.setCustomValues(o)},o=>{console.error(o)},()=>{this.reloadActive=!1})}}setCustomValues(t){let i=[];i.push([]);let n={};for(var o=0;o{this.setLoading(!1)},500)}handleChartClick(t,i){const n=this.property?.events?.find(s=>s.type===this.eventChartClick),o=this.projectService.getScripts()?.find(s=>s.id===n?.actparam);if(n&&o){let s=ii.cQ.clone(o),c=this.hmiService.getChart(this.property.id);this.reloadActive=!0,s.parameters=this.getCustomParameters(o.parameters,c,t,i),this.scriptService.runScript(s).pipe(sg(200)).subscribe(g=>{this.setCustomValues(g)},g=>{console.error(g)},()=>{this.reloadActive=!1})}}getCustomParameters(t,i,n=null,o=null){let s=[];for(let c of t)if(c.type===Wo.ZW.chart)s.push({type:Wo.ZW.chart,value:i?.lines,name:c?.name});else if(c.type===Wo.ZW.value){let g={type:c.type,value:c.value,name:c.name};-1!==c.name.toLocaleLowerCase().indexOf("x")?g.value=n:-1!==c.name.toLocaleLowerCase().indexOf("y")&&(g.value=o),s.push(g)}else s.push(c);return s}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(aA.Bb),e.Y36(Ov.Y),e.Y36(xo),e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["chart-uplot"]],viewQuery:function(i,n){if(1&i&&(e.Gf(T$,5),e.Gf(I$,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.chartPanel=o.first),e.iGM(o=e.CRH())&&(n.nguplot=o.first)}},inputs:{options:"options"},outputs:{onTimeRange:"onTimeRange"},decls:7,vars:3,consts:[[1,"mychart-panel"],["chartPanel",""],["class","mychart-toolbar",3,"display",4,"ngIf"],[1,"mychart-graph"],["nguplot",""],["class","reload-btn",4,"ngIf"],["class","spinner",4,"ngIf"],[1,"mychart-toolbar"],[1,"my-form-field",2,"display","block","padding-right","5px","text-align","center"],[4,"ngIf"],[1,"mychart-toolbar-editor"],["mat-flat-button","",1,"mychart-toolbar-step"],["aria-label","time range"],["aria-label","back"],["aria-label","forward"],["panelClass","my-select-panel-class",1,"mychart-toolbar-srange",3,"value","valueChange","selectionChange"],[3,"value","color","backgroundColor",4,"ngFor","ngForOf"],["mat-flat-button","",1,"mychart-toolbar-step",3,"click"],[3,"value"],[1,"reload-btn"],["mat-icon-button","",1,"small-icon-button","default-color",3,"click"],[3,"ngClass"],[1,"spinner"],["diameter","40",2,"margin","auto"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e.YNc(2,P$,4,4,"div",2),e._UZ(3,"ngx-uplot",3,4),e.YNc(5,O$,4,5,"div",5),e.YNc(6,L$,2,0,"div",6),e.qZA()),2&i&&(e.xp6(2),e.Q6J("ngIf",n.withToolbar),e.xp6(3),e.Q6J("ngIf",!n.isEditor&&n.withToolbar),e.xp6(1),e.Q6J("ngIf",n.loading))},dependencies:[l.mk,l.sg,l.O5,Nr,Yn,Zn,BA,fo,M$,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .mychart-panel{display:block;margin:0 auto;height:inherit;width:inherit}[_nghost-%COMP%] .mychart-graph{display:block;margin:0 auto}[_nghost-%COMP%] .mychart-toolbar{display:block;height:34px!important;width:100%!important;background-color:transparent}[_nghost-%COMP%] .mychart-toolbar-editor{margin-left:5px;border:0px;height:28px;width:140px;vertical-align:middle;line-height:20px;box-shadow:1px 1px 3px -1px #888}[_nghost-%COMP%] .mychart-toolbar-srange{width:140px;background-color:inherit!important;box-shadow:1px 1px 3px -1px #888}[_nghost-%COMP%] .mychart-toolbar-srange .mat-select-value{color:inherit!important}[_nghost-%COMP%] .mychart-toolbar-srange .mat-select-arrow{color:inherit!important}[_nghost-%COMP%] .mychart-toolbar-step{margin-left:5px;border:0px;height:28px;width:40px;cursor:pointer;vertical-align:middle;line-height:20px;box-shadow:1px 1px 3px -1px #888!important;min-width:40px;padding:unset}[_nghost-%COMP%] .my-select-panel-class{background:inherit!important;color:inherit!important}[_nghost-%COMP%] .spinner{position:absolute;top:40%;left:calc(50% - 20px)}[_nghost-%COMP%] .small-icon-button{width:24px;height:24px;line-height:24px}[_nghost-%COMP%] .small-icon-button .mat-icon{width:20px;height:20px;line-height:20px}[_nghost-%COMP%] .small-icon-button .material-icons{font-size:20px}[_nghost-%COMP%] .reload-btn{position:absolute;top:0;right:5px;z-index:9999}"]})}return r})(),Bp=(()=>{class r extends uo{resolver;static TypeTag="svg-ext-html_chart";static LabelTag="HtmlChart";static prefixD="D-HXC_";constructor(t){super(),this.resolver=t}static getSignals(t){return t.variableIds}static getDialogType(){return Do.Chart}static processValue(t,i,n,o,s){try{s.addValue(n.id,(new Date).getTime()/1e3,n.value)}catch(c){console.error(c)}}static initElement(t,i,n,o,s){let c=document.getElementById(t.id);if(c){c?.setAttribute("data-name",t.name);let g=ii.cQ.searchTreeStartWith(c,this.prefixD);if(g){const B=i.resolveComponentFactory(ES),O=n.createComponent(B);return t.property&&(O.instance.withToolbar="history"===t.property.type),g.innerHTML="",O.instance.isEditor=!o,O.instance.rangeType=s,O.instance.id=t.id,O.instance.property=t.property,O.instance.chartName=t.name,O.changeDetectorRef.detectChanges(),g.appendChild(O.location.nativeElement),O.instance.setOptions({title:"",panel:{height:g.clientHeight,width:g.clientWidth}}),O.instance.myComRef=O,O.instance.name=t.name,O.instance}}}static detectChange(t,i,n){return r.initElement(t,i,n,!1,null)}static \u0275fac=function(i){return new(i||r)(e.Y36(e._Vd))};static \u0275cmp=e.Xpm({type:r,selectors:[["html-chart"]],features:[e.qOj],decls:0,vars:0,template:function(i,n){}})}return r})(),Lv=(()=>{class r{onReload=new e.vpe;id;isEditor;static VerticalBarChartType="bar";static PieChartType="pie";isOffline(){return!1}static getGridLines(t){let i={display:t.gridLinesShow};return t.gridLinesColor&&(i.color=t.gridLinesColor),i}static getTitle(t,i){return i&&(t.plugins.title.text=i),t.plugins.title.text}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["ng-component"]],outputs:{onReload:"onReload"},decls:0,vars:0,template:function(i,n){},encapsulation:2})}return r})();var MS=function(r){return r.customise="customise",r.dark="dark",r.light="light",r}(MS||{});let ZC=(()=>{class r{static integral(t,i,n){let o=[],s=t.sort(function(ne,we){return ne.dt-we.dt}),c=(ne,we,$e)=>{ne[we]?ne[we]+=$e:ne[we]=$e},g=(ne,we,$e)=>{let nt=new Date(ne),Ft=$e?1:0;return we===Uh.Year?nt=new Date(nt.getFullYear()+Ft,0,0,0,0,0):we===Uh.Month?nt=new Date(nt.getFullYear(),nt.getMonth()+Ft,0,0,0,0):we===Uh.Day?nt=new Date(nt.getFullYear(),nt.getMonth(),nt.getDate()+Ft,0,0,0):we===Uh.Hour?nt=new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours()+Ft,0,0):we===Uh.Minute?nt=new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),nt.getMinutes()+Ft,0):we===Uh.Second&&(nt=new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),nt.getMinutes(),nt.getSeconds()+Ft)),nt},B=null,O=null;for(let ne=0;ne{o[ne]/=n}),o}static integralForHour(t,i){return r.integral(t,i,3600)}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();var Uh=function(r){return r[r.Year=0]="Year",r[r.Month=1]="Month",r[r.Day=2]="Day",r[r.Hour=3]="Hour",r[r.Minute=4]="Minute",r[r.Second=5]="Second",r}(Uh||{});function kg(){}const R$=function(){let r=0;return function(){return r++}}();function Qa(r){return null===r||typeof r>"u"}function ml(r){if(Array.isArray&&Array.isArray(r))return!0;const a=Object.prototype.toString.call(r);return"[object"===a.slice(0,7)&&"Array]"===a.slice(-6)}function Fa(r){return null!==r&&"[object Object]"===Object.prototype.toString.call(r)}const Bc=r=>("number"==typeof r||r instanceof Number)&&isFinite(+r);function eh(r,a){return Bc(r)?r:a}function aa(r,a){return typeof r>"u"?a:r}const YL=(r,a)=>"string"==typeof r&&r.endsWith("%")?parseFloat(r)/100*a:+r;function $s(r,a,t){if(r&&"function"==typeof r.call)return r.apply(t,a)}function Ps(r,a,t,i){let n,o,s;if(ml(r))if(o=r.length,i)for(n=o-1;n>=0;n--)a.call(t,r[n],n);else for(n=0;nr,x:r=>r.x,y:r=>r.y};function rm(r,a){return(UL[a]||(UL[a]=function z$(r){const a=function H$(r){const a=r.split("."),t=[];let i="";for(const n of a)i+=n,i.endsWith("\\")?i=i.slice(0,-1)+".":(t.push(i),i="");return t}(r);return t=>{for(const i of a){if(""===i)break;t=t&&t[i]}return t}}(a)))(r)}function DS(r){return r.charAt(0).toUpperCase()+r.slice(1)}const th=r=>typeof r<"u",om=r=>"function"==typeof r,zL=(r,a)=>{if(r.size!==a.size)return!1;for(const t of r)if(!a.has(t))return!1;return!0},Hl=Math.PI,el=2*Hl,Z$=el+Hl,bM=Number.POSITIVE_INFINITY,J$=Hl/180,uc=Hl/2,jC=Hl/4,HL=2*Hl/3,ih=Math.log10,Mp=Math.sign;function GL(r){const a=Math.round(r);r=VC(r,a,r/1e3)?a:r;const t=Math.pow(10,Math.floor(ih(r))),i=r/t;return(i<=1?1:i<=2?2:i<=5?5:10)*t}function Rv(r){return!isNaN(parseFloat(r))&&isFinite(r)}function VC(r,a,t){return Math.abs(r-a)g&&B=Math.min(a,t)-i&&r<=Math.max(a,t)+i}function kS(r,a,t){t=t||(s=>r[s]1;)o=n+i>>1,t(o)?n=o:i=o;return{lo:n,hi:i}}const Sg=(r,a,t,i)=>kS(r,t,i?n=>r[n][a]<=t:n=>r[n][a]kS(r,t,i=>r[i][a]>=t),VL=["push","pop","shift","splice","unshift"];function WL(r,a){const t=r._chartjs;if(!t)return;const i=t.listeners,n=i.indexOf(a);-1!==n&&i.splice(n,1),!(i.length>0)&&(VL.forEach(o=>{delete r[o]}),delete r._chartjs)}function KL(r){const a=new Set;let t,i;for(t=0,i=r.length;t"u"?function(r){return r()}:window.requestAnimationFrame;function XL(r,a,t){const i=t||(s=>Array.prototype.slice.call(s));let n=!1,o=[];return function(...s){o=i(s),n||(n=!0,qL.call(window,()=>{n=!1,r.apply(a,o)}))}}const QS=r=>"start"===r?"left":"end"===r?"right":"center",ed=(r,a,t)=>"start"===r?a:"end"===r?t:(a+t)/2;function $L(r,a,t){const i=a.length;let n=0,o=i;if(r._sorted){const{iScale:s,_parsed:c}=r,g=s.axis,{min:B,max:O,minDefined:ne,maxDefined:we}=s.getUserBounds();ne&&(n=IA(Math.min(Sg(c,s.axis,B).lo,t?i:Sg(a,g,s.getPixelForValue(B)).lo),0,i-1)),o=we?IA(Math.max(Sg(c,s.axis,O,!0).hi+1,t?0:Sg(a,g,s.getPixelForValue(O),!0).hi+1),n,i)-n:i-n}return{start:n,count:o}}function eR(r){const{xScale:a,yScale:t,_scaleRanges:i}=r,n={xmin:a.min,xmax:a.max,ymin:t.min,ymax:t.max};if(!i)return r._scaleRanges=n,!0;const o=i.xmin!==a.min||i.xmax!==a.max||i.ymin!==t.min||i.ymax!==t.max;return Object.assign(i,n),o}const xM=r=>0===r||1===r,tR=(r,a,t)=>-Math.pow(2,10*(r-=1))*Math.sin((r-a)*el/t),iR=(r,a,t)=>Math.pow(2,-10*r)*Math.sin((r-a)*el/t)+1,KC={linear:r=>r,easeInQuad:r=>r*r,easeOutQuad:r=>-r*(r-2),easeInOutQuad:r=>(r/=.5)<1?.5*r*r:-.5*(--r*(r-2)-1),easeInCubic:r=>r*r*r,easeOutCubic:r=>(r-=1)*r*r+1,easeInOutCubic:r=>(r/=.5)<1?.5*r*r*r:.5*((r-=2)*r*r+2),easeInQuart:r=>r*r*r*r,easeOutQuart:r=>-((r-=1)*r*r*r-1),easeInOutQuart:r=>(r/=.5)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2),easeInQuint:r=>r*r*r*r*r,easeOutQuint:r=>(r-=1)*r*r*r*r+1,easeInOutQuint:r=>(r/=.5)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2),easeInSine:r=>1-Math.cos(r*uc),easeOutSine:r=>Math.sin(r*uc),easeInOutSine:r=>-.5*(Math.cos(Hl*r)-1),easeInExpo:r=>0===r?0:Math.pow(2,10*(r-1)),easeOutExpo:r=>1===r?1:1-Math.pow(2,-10*r),easeInOutExpo:r=>xM(r)?r:r<.5?.5*Math.pow(2,10*(2*r-1)):.5*(2-Math.pow(2,-10*(2*r-1))),easeInCirc:r=>r>=1?r:-(Math.sqrt(1-r*r)-1),easeOutCirc:r=>Math.sqrt(1-(r-=1)*r),easeInOutCirc:r=>(r/=.5)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1),easeInElastic:r=>xM(r)?r:tR(r,.075,.3),easeOutElastic:r=>xM(r)?r:iR(r,.075,.3),easeInOutElastic:r=>xM(r)?r:r<.5?.5*tR(2*r,.1125,.45):.5+.5*iR(2*r-1,.1125,.45),easeInBack:r=>r*r*(2.70158*r-1.70158),easeOutBack:r=>(r-=1)*r*(2.70158*r+1.70158)+1,easeInOutBack(r){let a=1.70158;return(r/=.5)<1?r*r*((1+(a*=1.525))*r-a)*.5:.5*((r-=2)*r*((1+(a*=1.525))*r+a)+2)},easeInBounce:r=>1-KC.easeOutBounce(1-r),easeOutBounce:r=>r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375,easeInOutBounce:r=>r<.5?.5*KC.easeInBounce(2*r):.5*KC.easeOutBounce(2*r-1)+.5};function qC(r){return r+.5|0}const am=(r,a,t)=>Math.max(Math.min(r,t),a);function XC(r){return am(qC(2.55*r),0,255)}function sm(r){return am(qC(255*r),0,255)}function Pg(r){return am(qC(r/2.55)/100,0,1)}function nR(r){return am(qC(100*r),0,100)}const nh={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},SS=[..."0123456789ABCDEF"],iee=r=>SS[15&r],nee=r=>SS[(240&r)>>4]+SS[15&r],BM=r=>(240&r)>>4==(15&r);const lee=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function rR(r,a,t){const i=a*Math.min(t,1-t),n=(o,s=(o+r/30)%12)=>t-i*Math.max(Math.min(s-3,9-s,1),-1);return[n(0),n(8),n(4)]}function cee(r,a,t){const i=(n,o=(n+r/60)%6)=>t-t*a*Math.max(Math.min(o,4-o,1),0);return[i(5),i(3),i(1)]}function Aee(r,a,t){const i=rR(r,1,.5);let n;for(a+t>1&&(n=1/(a+t),a*=n,t*=n),n=0;n<3;n++)i[n]*=1-a-t,i[n]+=a;return i}function PS(r){const t=r.r/255,i=r.g/255,n=r.b/255,o=Math.max(t,i,n),s=Math.min(t,i,n),c=(o+s)/2;let g,B,O;return o!==s&&(O=o-s,B=c>.5?O/(2-o-s):O/(o+s),g=function dee(r,a,t,i,n){return r===n?(a-t)/i+(ar<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055,Yv=r=>r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4);function MM(r,a,t){if(r){let i=PS(r);i[a]=Math.max(0,Math.min(i[a]+i[a]*t,0===a?360:1)),i=OS(i),r.r=i[0],r.g=i[1],r.b=i[2]}}function lR(r,a){return r&&Object.assign(a||{},r)}function cR(r){var a={r:0,g:0,b:0,a:255};return Array.isArray(r)?r.length>=3&&(a={r:r[0],g:r[1],b:r[2],a:255},r.length>3&&(a.a=sm(r[3]))):(a=lR(r,{r:0,g:0,b:0,a:1})).a=sm(a.a),a}function bee(r){return"r"===r.charAt(0)?function yee(r){const a=vee.exec(r);let i,n,o,t=255;if(a){if(a[7]!==i){const s=+a[7];t=a[8]?XC(s):am(255*s,0,255)}return i=+a[1],n=+a[3],o=+a[5],i=255&(a[2]?XC(i):am(i,0,255)),n=255&(a[4]?XC(n):am(n,0,255)),o=255&(a[6]?XC(o):am(o,0,255)),{r:i,g:n,b:o,a:t}}}(r):function pee(r){const a=lee.exec(r);let i,t=255;if(!a)return;a[5]!==i&&(t=a[6]?XC(+a[5]):sm(+a[5]));const n=oR(+a[2]),o=+a[3]/100,s=+a[4]/100;return i="hwb"===a[1]?function uee(r,a,t){return FS(Aee,r,a,t)}(n,o,s):"hsv"===a[1]?function hee(r,a,t){return FS(cee,r,a,t)}(n,o,s):OS(n,o,s),{r:i[0],g:i[1],b:i[2],a:t}}(r)}class DM{constructor(a){if(a instanceof DM)return a;const t=typeof a;let i;"object"===t?i=cR(a):"string"===t&&(i=function oee(r){var t,a=r.length;return"#"===r[0]&&(4===a||5===a?t={r:255&17*nh[r[1]],g:255&17*nh[r[2]],b:255&17*nh[r[3]],a:5===a?17*nh[r[4]]:255}:(7===a||9===a)&&(t={r:nh[r[1]]<<4|nh[r[2]],g:nh[r[3]]<<4|nh[r[4]],b:nh[r[5]]<<4|nh[r[6]],a:9===a?nh[r[7]]<<4|nh[r[8]]:255})),t}(a)||function _ee(r){EM||(EM=function mee(){const r={},a=Object.keys(sR),t=Object.keys(aR);let i,n,o,s,c;for(i=0;i>16&255,o>>8&255,255&o]}return r}(),EM.transparent=[0,0,0,0]);const a=EM[r.toLowerCase()];return a&&{r:a[0],g:a[1],b:a[2],a:4===a.length?a[3]:255}}(a)||bee(a)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var a=lR(this._rgb);return a&&(a.a=Pg(a.a)),a}set rgb(a){this._rgb=cR(a)}rgbString(){return this._valid?function wee(r){return r&&(r.a<255?`rgba(${r.r}, ${r.g}, ${r.b}, ${Pg(r.a)})`:`rgb(${r.r}, ${r.g}, ${r.b})`)}(this._rgb):void 0}hexString(){return this._valid?function see(r){var a=(r=>BM(r.r)&&BM(r.g)&&BM(r.b)&&BM(r.a))(r)?iee:nee;return r?"#"+a(r.r)+a(r.g)+a(r.b)+((r,a)=>r<255?a(r):"")(r.a,a):void 0}(this._rgb):void 0}hslString(){return this._valid?function fee(r){if(!r)return;const a=PS(r),t=a[0],i=nR(a[1]),n=nR(a[2]);return r.a<255?`hsla(${t}, ${i}%, ${n}%, ${Pg(r.a)})`:`hsl(${t}, ${i}%, ${n}%)`}(this._rgb):void 0}mix(a,t){if(a){const i=this.rgb,n=a.rgb;let o;const s=t===o?.5:t,c=2*s-1,g=i.a-n.a,B=((c*g==-1?c:(c+g)/(1+c*g))+1)/2;o=1-B,i.r=255&B*i.r+o*n.r+.5,i.g=255&B*i.g+o*n.g+.5,i.b=255&B*i.b+o*n.b+.5,i.a=s*i.a+(1-s)*n.a,this.rgb=i}return this}interpolate(a,t){return a&&(this._rgb=function Cee(r,a,t){const i=Yv(Pg(r.r)),n=Yv(Pg(r.g)),o=Yv(Pg(r.b));return{r:sm(LS(i+t*(Yv(Pg(a.r))-i))),g:sm(LS(n+t*(Yv(Pg(a.g))-n))),b:sm(LS(o+t*(Yv(Pg(a.b))-o))),a:r.a+t*(a.a-r.a)}}(this._rgb,a._rgb,t)),this}clone(){return new DM(this.rgb)}alpha(a){return this._rgb.a=sm(a),this}clearer(a){return this._rgb.a*=1-a,this}greyscale(){const a=this._rgb,t=qC(.3*a.r+.59*a.g+.11*a.b);return a.r=a.g=a.b=t,this}opaquer(a){return this._rgb.a*=1+a,this}negate(){const a=this._rgb;return a.r=255-a.r,a.g=255-a.g,a.b=255-a.b,this}lighten(a){return MM(this._rgb,2,a),this}darken(a){return MM(this._rgb,2,-a),this}saturate(a){return MM(this._rgb,1,a),this}desaturate(a){return MM(this._rgb,1,-a),this}rotate(a){return function gee(r,a){var t=PS(r);t[0]=oR(t[0]+a),t=OS(t),r.r=t[0],r.g=t[1],r.b=t[2]}(this._rgb,a),this}}function AR(r){return new DM(r)}function dR(r){if(r&&"object"==typeof r){const a=r.toString();return"[object CanvasPattern]"===a||"[object CanvasGradient]"===a}return!1}function uR(r){return dR(r)?r:AR(r)}function RS(r){return dR(r)?r:AR(r).saturate(.5).darken(.1).hexString()}const P0=Object.create(null),YS=Object.create(null);function $C(r,a){if(!a)return r;const t=a.split(".");for(let i=0,n=t.length;it.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,i)=>RS(i.backgroundColor),this.hoverBorderColor=(t,i)=>RS(i.borderColor),this.hoverColor=(t,i)=>RS(i.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(a)}set(a,t){return NS(this,a,t)}get(a){return $C(this,a)}describe(a,t){return NS(YS,a,t)}override(a,t){return NS(P0,a,t)}route(a,t,i,n){const o=$C(this,a),s=$C(this,i),c="_"+t;Object.defineProperties(o,{[c]:{value:o[t],writable:!0},[t]:{enumerable:!0,get(){const g=this[c],B=s[n];return Fa(g)?Object.assign({},B,g):aa(g,B)},set(g){this[c]=g}}})}}({_scriptable:r=>!r.startsWith("on"),_indexable:r=>"events"!==r,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function TM(r,a,t,i,n){let o=a[n];return o||(o=a[n]=r.measureText(n).width,t.push(n)),o>i&&(i=o),i}function Eee(r,a,t,i){let n=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==a&&(n=i.data={},o=i.garbageCollect=[],i.font=a),r.save(),r.font=a;let s=0;const c=t.length;let g,B,O,ne,we;for(g=0;gt.length){for(g=0;g<$e;g++)delete n[o[g]];o.splice(0,$e)}return s}function F0(r,a,t){const i=r.currentDevicePixelRatio,n=0!==t?Math.max(t/2,.5):0;return Math.round((a-n)*i)/i+n}function hR(r,a){(a=a||r.getContext("2d")).save(),a.resetTransform(),a.clearRect(0,0,r.width,r.height),a.restore()}function US(r,a,t,i){pR(r,a,t,i,null)}function pR(r,a,t,i,n){let o,s,c,g,B,O;const ne=a.pointStyle,we=a.rotation,$e=a.radius;let nt=(we||0)*J$;if(ne&&"object"==typeof ne&&(o=ne.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return r.save(),r.translate(t,i),r.rotate(nt),r.drawImage(ne,-ne.width/2,-ne.height/2,ne.width,ne.height),void r.restore();if(!(isNaN($e)||$e<=0)){switch(r.beginPath(),ne){default:n?r.ellipse(t,i,n/2,$e,0,0,el):r.arc(t,i,$e,0,el),r.closePath();break;case"triangle":r.moveTo(t+Math.sin(nt)*$e,i-Math.cos(nt)*$e),nt+=HL,r.lineTo(t+Math.sin(nt)*$e,i-Math.cos(nt)*$e),nt+=HL,r.lineTo(t+Math.sin(nt)*$e,i-Math.cos(nt)*$e),r.closePath();break;case"rectRounded":B=.516*$e,g=$e-B,s=Math.cos(nt+jC)*g,c=Math.sin(nt+jC)*g,r.arc(t-s,i-c,B,nt-Hl,nt-uc),r.arc(t+c,i-s,B,nt-uc,nt),r.arc(t+s,i+c,B,nt,nt+uc),r.arc(t-c,i+s,B,nt+uc,nt+Hl),r.closePath();break;case"rect":if(!we){g=Math.SQRT1_2*$e,O=n?n/2:g,r.rect(t-O,i-g,2*O,2*g);break}nt+=jC;case"rectRot":s=Math.cos(nt)*$e,c=Math.sin(nt)*$e,r.moveTo(t-s,i-c),r.lineTo(t+c,i-s),r.lineTo(t+s,i+c),r.lineTo(t-c,i+s),r.closePath();break;case"crossRot":nt+=jC;case"cross":s=Math.cos(nt)*$e,c=Math.sin(nt)*$e,r.moveTo(t-s,i-c),r.lineTo(t+s,i+c),r.moveTo(t+c,i-s),r.lineTo(t-c,i+s);break;case"star":s=Math.cos(nt)*$e,c=Math.sin(nt)*$e,r.moveTo(t-s,i-c),r.lineTo(t+s,i+c),r.moveTo(t+c,i-s),r.lineTo(t-c,i+s),nt+=jC,s=Math.cos(nt)*$e,c=Math.sin(nt)*$e,r.moveTo(t-s,i-c),r.lineTo(t+s,i+c),r.moveTo(t+c,i-s),r.lineTo(t-c,i+s);break;case"line":s=n?n/2:Math.cos(nt)*$e,c=Math.sin(nt)*$e,r.moveTo(t-s,i-c),r.lineTo(t+s,i+c);break;case"dash":r.moveTo(t,i),r.lineTo(t+Math.cos(nt)*$e,i+Math.sin(nt)*$e)}r.fill(),a.borderWidth>0&&r.stroke()}}function eb(r,a,t){return t=t||.5,!a||r&&r.x>a.left-t&&r.xa.top-t&&r.y0&&""!==o.strokeColor;let g,B;for(r.save(),r.font=n.string,function Tee(r,a){a.translation&&r.translate(a.translation[0],a.translation[1]),Qa(a.rotation)||r.rotate(a.rotation),a.color&&(r.fillStyle=a.color),a.textAlign&&(r.textAlign=a.textAlign),a.textBaseline&&(r.textBaseline=a.textBaseline)}(r,o),g=0;g+r||0;function zS(r,a){const t={},i=Fa(a),n=i?Object.keys(a):a,o=Fa(r)?i?s=>aa(r[s],r[a[s]]):s=>r[s]:()=>r;for(const s of n)t[s]=Pee(o(s));return t}function gR(r){return zS(r,{top:"y",right:"x",bottom:"y",left:"x"})}function L0(r){return zS(r,["topLeft","topRight","bottomLeft","bottomRight"])}function zA(r){const a=gR(r);return a.width=a.left+a.right,a.height=a.top+a.bottom,a}function Jc(r,a){let t=aa((r=r||{}).size,(a=a||Oa.font).size);"string"==typeof t&&(t=parseInt(t,10));let i=aa(r.style,a.style);i&&!(""+i).match(Qee)&&(console.warn('Invalid font style specified: "'+i+'"'),i="");const n={family:aa(r.family,a.family),lineHeight:See(aa(r.lineHeight,a.lineHeight),t),size:t,style:i,weight:aa(r.weight,a.weight),string:""};return n.string=function Bee(r){return!r||Qa(r.size)||Qa(r.family)?null:(r.style?r.style+" ":"")+(r.weight?r.weight+" ":"")+r.size+"px "+r.family}(n),n}function Il(r,a,t,i){let o,s,c,n=!0;for(o=0,s=r.length;or[0])){th(i)||(i=yR("_fallback",r));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:r,_rootScopes:t,_fallback:i,_getTarget:n,override:s=>HS([s,...r],a,t,i)};return new Proxy(o,{deleteProperty:(s,c)=>(delete s[c],delete s._keys,delete r[0][c],!0),get:(s,c)=>mR(s,c,()=>function Hee(r,a,t,i){let n;for(const o of a)if(n=yR(Oee(o,r),t),th(n))return GS(r,n)?ZS(t,i,r,n):n}(c,a,r,s)),getOwnPropertyDescriptor:(s,c)=>Reflect.getOwnPropertyDescriptor(s._scopes[0],c),getPrototypeOf:()=>Reflect.getPrototypeOf(r[0]),has:(s,c)=>wR(s).includes(c),ownKeys:s=>wR(s),set(s,c,g){const B=s._storage||(s._storage=n());return s[c]=B[c]=g,delete s._keys,!0}})}function Nv(r,a,t,i){const n={_cacheable:!1,_proxy:r,_context:a,_subProxy:t,_stack:new Set,_descriptors:fR(r,i),setContext:o=>Nv(r,o,t,i),override:o=>Nv(r.override(o),a,t,i)};return new Proxy(n,{deleteProperty:(o,s)=>(delete o[s],delete r[s],!0),get:(o,s,c)=>mR(o,s,()=>function Lee(r,a,t){const{_proxy:i,_context:n,_subProxy:o,_descriptors:s}=r;let c=i[a];return om(c)&&s.isScriptable(a)&&(c=function Ree(r,a,t,i){const{_proxy:n,_context:o,_subProxy:s,_stack:c}=t;if(c.has(r))throw new Error("Recursion detected: "+Array.from(c).join("->")+"->"+r);return c.add(r),a=a(o,s||i),c.delete(r),GS(r,a)&&(a=ZS(n._scopes,n,r,a)),a}(a,c,r,t)),ml(c)&&c.length&&(c=function Yee(r,a,t,i){const{_proxy:n,_context:o,_subProxy:s,_descriptors:c}=t;if(th(o.index)&&i(r))a=a[o.index%a.length];else if(Fa(a[0])){const g=a,B=n._scopes.filter(O=>O!==g);a=[];for(const O of g){const ne=ZS(B,n,r,O);a.push(Nv(ne,o,s&&s[r],c))}}return a}(a,c,r,s.isIndexable)),GS(a,c)&&(c=Nv(c,n,o&&o[a],s)),c}(o,s,c)),getOwnPropertyDescriptor:(o,s)=>o._descriptors.allKeys?Reflect.has(r,s)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(r,s),getPrototypeOf:()=>Reflect.getPrototypeOf(r),has:(o,s)=>Reflect.has(r,s),ownKeys:()=>Reflect.ownKeys(r),set:(o,s,c)=>(r[s]=c,delete o[s],!0)})}function fR(r,a={scriptable:!0,indexable:!0}){const{_scriptable:t=a.scriptable,_indexable:i=a.indexable,_allKeys:n=a.allKeys}=r;return{allKeys:n,scriptable:t,indexable:i,isScriptable:om(t)?t:()=>t,isIndexable:om(i)?i:()=>i}}const Oee=(r,a)=>r?r+DS(a):a,GS=(r,a)=>Fa(a)&&"adapters"!==r&&(null===Object.getPrototypeOf(a)||a.constructor===Object);function mR(r,a,t){if(Object.prototype.hasOwnProperty.call(r,a))return r[a];const i=t();return r[a]=i,i}function _R(r,a,t){return om(r)?r(a,t):r}const Nee=(r,a)=>!0===r?a:"string"==typeof r?rm(a,r):void 0;function Uee(r,a,t,i,n){for(const o of a){const s=Nee(t,o);if(s){r.add(s);const c=_R(s._fallback,t,n);if(th(c)&&c!==t&&c!==i)return c}else if(!1===s&&th(i)&&t!==i)return null}return!1}function ZS(r,a,t,i){const n=a._rootScopes,o=_R(a._fallback,t,i),s=[...r,...n],c=new Set;c.add(i);let g=vR(c,s,t,o||t,i);return!(null===g||th(o)&&o!==t&&(g=vR(c,s,o,g,i),null===g))&&HS(Array.from(c),[""],n,o,()=>function zee(r,a,t){const i=r._getTarget();a in i||(i[a]={});const n=i[a];return ml(n)&&Fa(t)?t:n}(a,t,i))}function vR(r,a,t,i,n){for(;t;)t=Uee(r,a,t,i,n);return t}function yR(r,a){for(const t of a){if(!t)continue;const i=t[r];if(th(i))return i}}function wR(r){let a=r._keys;return a||(a=r._keys=function Gee(r){const a=new Set;for(const t of r)for(const i of Object.keys(t).filter(n=>!n.startsWith("_")))a.add(i);return Array.from(a)}(r._scopes)),a}function CR(r,a,t,i){const{iScale:n}=r,{key:o="r"}=this._parsing,s=new Array(i);let c,g,B,O;for(c=0,g=i;ca"x"===r?"y":"x";function Jee(r,a,t,i){const n=r.skip?a:r,o=a,s=t.skip?a:t,c=IS(o,n),g=IS(s,o);let B=c/(c+g),O=g/(c+g);B=isNaN(B)?0:B,O=isNaN(O)?0:O;const ne=i*B,we=i*O;return{previous:{x:o.x-ne*(s.x-n.x),y:o.y-ne*(s.y-n.y)},next:{x:o.x+we*(s.x-n.x),y:o.y+we*(s.y-n.y)}}}function QM(r,a,t){return Math.max(Math.min(r,t),a)}function qee(r,a,t,i,n){let o,s,c,g;if(a.spanGaps&&(r=r.filter(B=>!B.skip)),"monotone"===a.cubicInterpolationMode)!function Wee(r,a="x"){const t=bR(a),i=r.length,n=Array(i).fill(0),o=Array(i);let s,c,g,B=Uv(r,0);for(s=0;swindow.getComputedStyle(r,null),$ee=["top","right","bottom","left"];function R0(r,a,t){const i={};t=t?"-"+t:"";for(let n=0;n<4;n++){const o=$ee[n];i[o]=parseFloat(r[a+"-"+o+t])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const ete=(r,a,t)=>(r>0||a>0)&&(!t||!t.shadowRoot);function Y0(r,a){if("native"in r)return r;const{canvas:t,currentDevicePixelRatio:i}=a,n=PM(t),o="border-box"===n.boxSizing,s=R0(n,"padding"),c=R0(n,"border","width"),{x:g,y:B,box:O}=function tte(r,a){const t=r.touches,i=t&&t.length?t[0]:r,{offsetX:n,offsetY:o}=i;let c,g,s=!1;if(ete(n,o,r.target))c=n,g=o;else{const B=a.getBoundingClientRect();c=i.clientX-B.left,g=i.clientY-B.top,s=!0}return{x:c,y:g,box:s}}(r,t),ne=s.left+(O&&c.left),we=s.top+(O&&c.top);let{width:$e,height:nt}=a;return o&&($e-=s.width+c.width,nt-=s.height+c.height),{x:Math.round((g-ne)/$e*t.width/i),y:Math.round((B-we)/nt*t.height/i)}}const jS=r=>Math.round(10*r)/10;function BR(r,a,t){const i=a||1,n=Math.floor(r.height*i),o=Math.floor(r.width*i);r.height=n/i,r.width=o/i;const s=r.canvas;return s.style&&(t||!s.style.height&&!s.style.width)&&(s.style.height=`${r.height}px`,s.style.width=`${r.width}px`),(r.currentDevicePixelRatio!==i||s.height!==n||s.width!==o)&&(r.currentDevicePixelRatio=i,s.height=n,s.width=o,r.ctx.setTransform(i,0,0,i,0,0),!0)}const rte=function(){let r=!1;try{const a={get passive(){return r=!0,!1}};window.addEventListener("test",null,a),window.removeEventListener("test",null,a)}catch{}return r}();function ER(r,a){const t=function Xee(r,a){return PM(r).getPropertyValue(a)}(r,a),i=t&&t.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function N0(r,a,t,i){return{x:r.x+t*(a.x-r.x),y:r.y+t*(a.y-r.y)}}function ote(r,a,t,i){return{x:r.x+t*(a.x-r.x),y:"middle"===i?t<.5?r.y:a.y:"after"===i?t<1?r.y:a.y:t>0?a.y:r.y}}function ate(r,a,t,i){const n={x:r.cp2x,y:r.cp2y},o={x:a.cp1x,y:a.cp1y},s=N0(r,n,t),c=N0(n,o,t),g=N0(o,a,t),B=N0(s,c,t),O=N0(c,g,t);return N0(B,O,t)}const MR=new Map;function ib(r,a,t){return function ste(r,a){a=a||{};const t=r+JSON.stringify(a);let i=MR.get(t);return i||(i=new Intl.NumberFormat(r,a),MR.set(t,i)),i}(a,t).format(r)}function zv(r,a,t){return r?function(r,a){return{x:t=>r+r+a-t,setWidth(t){a=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,i)=>t-i,leftForLtr:(t,i)=>t-i}}(a,t):{x:r=>r,setWidth(r){},textAlign:r=>r,xPlus:(r,a)=>r+a,leftForLtr:(r,a)=>r}}function DR(r,a){let t,i;("ltr"===a||"rtl"===a)&&(t=r.canvas.style,i=[t.getPropertyValue("direction"),t.getPropertyPriority("direction")],t.setProperty("direction",a,"important"),r.prevTextDirection=i)}function TR(r,a){void 0!==a&&(delete r.prevTextDirection,r.canvas.style.setProperty("direction",a[0],a[1]))}function IR(r){return"angle"===r?{between:WC,compare:W$,normalize:Cu}:{between:Qg,compare:(a,t)=>a-t,normalize:a=>a}}function kR({start:r,end:a,count:t,loop:i,style:n}){return{start:r%t,end:a%t,loop:i&&(a-r+1)%t==0,style:n}}function QR(r,a,t){if(!t)return[r];const{property:i,start:n,end:o}=t,s=a.length,{compare:c,between:g,normalize:B}=IR(i),{start:O,end:ne,loop:we,style:$e}=function Ate(r,a,t){const{property:i,start:n,end:o}=t,{between:s,normalize:c}=IR(i),g=a.length;let we,$e,{start:B,end:O,loop:ne}=r;if(ne){for(B+=g,O+=g,we=0,$e=g;we<$e&&s(c(a[B%g][i]),n,o);++we)B--,O--;B%=g,O%=g}return Oc({chart:a,initial:t.initial,numSteps:s,currentStep:Math.min(i-t.start,s)}))}_refresh(){this._request||(this._running=!0,this._request=qL.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(a=Date.now()){let t=0;this._charts.forEach((i,n)=>{if(!i.running||!i.items.length)return;const o=i.items;let g,s=o.length-1,c=!1;for(;s>=0;--s)g=o[s],g._active?(g._total>i.duration&&(i.duration=g._total),g.tick(a),c=!0):(o[s]=o[o.length-1],o.pop());c&&(n.draw(),this._notify(n,i,a,"progress")),o.length||(i.running=!1,this._notify(n,i,a,"complete"),i.initial=!1),t+=o.length}),this._lastDate=a,0===t&&(this._running=!1)}_getAnims(a){const t=this._charts;let i=t.get(a);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(a,i)),i}listen(a,t,i){this._getAnims(a).listeners[t].push(i)}add(a,t){!t||!t.length||this._getAnims(a).items.push(...t)}has(a){return this._getAnims(a).items.length>0}start(a){const t=this._charts.get(a);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((i,n)=>Math.max(i,n._duration),0),this._refresh())}running(a){if(!this._running)return!1;const t=this._charts.get(a);return!(!t||!t.running||!t.items.length)}stop(a){const t=this._charts.get(a);if(!t||!t.items.length)return;const i=t.items;let n=i.length-1;for(;n>=0;--n)i[n].cancel();t.items=[],this._notify(a,t,Date.now(),"complete")}remove(a){return this._charts.delete(a)}};const OR="transparent",mte={boolean:(r,a,t)=>t>.5?a:r,color(r,a,t){const i=uR(r||OR),n=i.valid&&uR(a||OR);return n&&n.valid?n.mix(i,t).hexString():a},number:(r,a,t)=>r+(a-r)*t};class _te{constructor(a,t,i,n){const o=t[i];n=Il([a.to,n,o,a.from]);const s=Il([a.from,o,n]);this._active=!0,this._fn=a.fn||mte[a.type||typeof s],this._easing=KC[a.easing]||KC.linear,this._start=Math.floor(Date.now()+(a.delay||0)),this._duration=this._total=Math.floor(a.duration),this._loop=!!a.loop,this._target=t,this._prop=i,this._from=s,this._to=n,this._promises=void 0}active(){return this._active}update(a,t,i){if(this._active){this._notify(!1);const n=this._target[this._prop],o=i-this._start,s=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(s,a.duration)),this._total+=o,this._loop=!!a.loop,this._to=Il([a.to,t,n,a.from]),this._from=Il([a.from,n,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(a){const t=a-this._start,i=this._duration,n=this._prop,o=this._from,s=this._loop,c=this._to;let g;if(this._active=o!==c&&(s||t1?2-g:g,g=this._easing(Math.min(1,Math.max(0,g))),this._target[n]=this._fn(o,c,g))}wait(){const a=this._promises||(this._promises=[]);return new Promise((t,i)=>{a.push({res:t,rej:i})})}_notify(a){const t=a?"res":"rej",i=this._promises||[];for(let n=0;n"onProgress"!==r&&"onComplete"!==r&&"fn"!==r}),Oa.set("animations",{colors:{type:"color",properties:["color","borderColor","backgroundColor"]},numbers:{type:"number",properties:["x","y","borderWidth","radius","tension"]}}),Oa.describe("animations",{_fallback:"animation"}),Oa.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:r=>0|r}}}});class LR{constructor(a,t){this._chart=a,this._properties=new Map,this.configure(t)}configure(a){if(!Fa(a))return;const t=this._properties;Object.getOwnPropertyNames(a).forEach(i=>{const n=a[i];if(!Fa(n))return;const o={};for(const s of wte)o[s]=n[s];(ml(n.properties)&&n.properties||[i]).forEach(s=>{(s===i||!t.has(s))&&t.set(s,o)})})}_animateOptions(a,t){const i=t.options,n=function bte(r,a){if(!a)return;let t=r.options;if(t)return t.$shared&&(r.options=t=Object.assign({},t,{$shared:!1,$animations:{}})),t;r.options=a}(a,i);if(!n)return[];const o=this._createAnimations(n,i);return i.$shared&&function Cte(r,a){const t=[],i=Object.keys(a);for(let n=0;n{a.options=i},()=>{}),o}_createAnimations(a,t){const i=this._properties,n=[],o=a.$animations||(a.$animations={}),s=Object.keys(t),c=Date.now();let g;for(g=s.length-1;g>=0;--g){const B=s[g];if("$"===B.charAt(0))continue;if("options"===B){n.push(...this._animateOptions(a,t));continue}const O=t[B];let ne=o[B];const we=i.get(B);if(ne){if(we&&ne.active()){ne.update(we,O,c);continue}ne.cancel()}we&&we.duration?(o[B]=ne=new _te(we,a,B,O),n.push(ne)):a[B]=O}return n}update(a,t){if(0===this._properties.size)return void Object.assign(a,t);const i=this._createAnimations(a,t);return i.length?(Fg.add(this._chart,i),!0):void 0}}function RR(r,a){const t=r&&r.options||{},i=t.reverse,n=void 0===t.min?a:0,o=void 0===t.max?a:0;return{start:i?o:n,end:i?n:o}}function YR(r,a){const t=[],i=r._getSortedDatasetMetas(a);let n,o;for(n=0,o=i.length;n0||!t&&o<0)return n.index}return null}function HR(r,a){const{chart:t,_cachedMeta:i}=r,n=t._stacks||(t._stacks={}),{iScale:o,vScale:s,index:c}=i,g=o.axis,B=s.axis,O=function Mte(r,a,t){return`${r.id}.${a.id}.${t.stack||t.type}`}(o,s,i),ne=a.length;let we;for(let $e=0;$et[i].axis===a).shift()}function nb(r,a){const t=r.controller.index,i=r.vScale&&r.vScale.axis;if(i){a=a||r._parsed;for(const n of a){const o=n._stacks;if(!o||void 0===o[i]||void 0===o[i][t])return;delete o[i][t]}}}const WS=r=>"reset"===r||"none"===r,GR=(r,a)=>a?r:Object.assign({},r);let Dp=(()=>{class r{constructor(t,i){this.chart=t,this._ctx=t.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=UR(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&nb(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,i=this._cachedMeta,n=this.getDataset(),o=(we,$e,nt,Ft)=>"x"===we?$e:"r"===we?Ft:nt,s=i.xAxisID=aa(n.xAxisID,VS(t,"x")),c=i.yAxisID=aa(n.yAxisID,VS(t,"y")),g=i.rAxisID=aa(n.rAxisID,VS(t,"r")),B=i.indexAxis,O=i.iAxisID=o(B,s,c,g),ne=i.vAxisID=o(B,c,s,g);i.xScale=this.getScaleForId(s),i.yScale=this.getScaleForId(c),i.rScale=this.getScaleForId(g),i.iScale=this.getScaleForId(O),i.vScale=this.getScaleForId(ne)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const i=this._cachedMeta;return t===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&WL(this._data,this),t._stacked&&nb(t)}_dataCheck(){const t=this.getDataset(),i=t.data||(t.data=[]),n=this._data;if(Fa(i))this._data=function Ete(r){const a=Object.keys(r),t=new Array(a.length);let i,n,o;for(i=0,n=a.length;i{const i="_onData"+DS(t),n=r[t];Object.defineProperty(r,t,{configurable:!0,enumerable:!1,value(...o){const s=n.apply(this,o);return r._chartjs.listeners.forEach(c=>{"function"==typeof c[i]&&c[i](...o)}),s}})}))}(i,this),this._syncList=[],this._data=i}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const i=this._cachedMeta,n=this.getDataset();let o=!1;this._dataCheck();const s=i._stacked;i._stacked=UR(i.vScale,i),i.stack!==n.stack&&(o=!0,nb(i),i.stack=n.stack),this._resyncElements(t),(o||s!==i._stacked)&&HR(this,i._parsed)}configure(){const t=this.chart.config,i=t.datasetScopeKeys(this._type),n=t.getOptionScopes(this.getDataset(),i,!0);this.options=t.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,i){const{_cachedMeta:n,_data:o}=this,{iScale:s,_stacked:c}=n,g=s.axis;let ne,we,$e,B=0===t&&i===o.length||n._sorted,O=t>0&&n._parsed[t-1];if(!1===this._parsing)n._parsed=o,n._sorted=!0,$e=o;else{$e=ml(o[t])?this.parseArrayData(n,o,t,i):Fa(o[t])?this.parseObjectData(n,o,t,i):this.parsePrimitiveData(n,o,t,i);const nt=()=>null===we[g]||O&&we[g]r&&!a.hidden&&a._stacked&&{keys:YR(this.chart,!0),values:null})(i,n),O={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:ne,max:we}=function Dte(r){const{min:a,max:t,minDefined:i,maxDefined:n}=r.getUserBounds();return{min:i?a:Number.NEGATIVE_INFINITY,max:n?t:Number.POSITIVE_INFINITY}}(g);let $e,nt;function Ft(){nt=o[$e];const ei=nt[g.axis];return!Bc(nt[t.axis])||ne>ei||we=0;--$e)if(!Ft()){this.updateRangeFromParsed(O,t,nt,B);break}return O}getAllParsedValues(t){const i=this._cachedMeta._parsed,n=[];let o,s,c;for(o=0,s=i.length;o=0&&tthis.getContext(n,o),we);return ei.$shared&&(ei.$shared=B,s[c]=Object.freeze(GR(ei,B))),ei}_resolveAnimations(t,i,n){const o=this.chart,s=this._cachedDataOpts,c=`animation-${i}`,g=s[c];if(g)return g;let B;if(!1!==o.options.animation){const ne=this.chart.config,we=ne.datasetAnimationScopeKeys(this._type,i),$e=ne.getOptionScopes(this.getDataset(),we);B=ne.createResolver($e,this.getContext(t,n,i))}const O=new LR(o,B&&B.animations);return B&&B._cacheable&&(s[c]=Object.freeze(O)),O}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,i){return!i||WS(t)||this.chart._animationsDisabled}_getSharedOptions(t,i){const n=this.resolveDataElementOptions(t,i),o=this._sharedOptions,s=this.getSharedOptions(n),c=this.includeOptions(i,s)||s!==o;return this.updateSharedOptions(s,i,n),{sharedOptions:s,includeOptions:c}}updateElement(t,i,n,o){WS(o)?Object.assign(t,n):this._resolveAnimations(i,o).update(t,n)}updateSharedOptions(t,i,n){t&&!WS(i)&&this._resolveAnimations(void 0,i).update(t,n)}_setStyle(t,i,n,o){t.active=o;const s=this.getStyle(i,o);this._resolveAnimations(i,n,o).update(t,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(t,i,n){this._setStyle(t,n,"active",!1)}setHoverStyle(t,i,n){this._setStyle(t,n,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const i=this._data,n=this._cachedMeta.data;for(const[g,B,O]of this._syncList)this[g](B,O);this._syncList=[];const o=n.length,s=i.length,c=Math.min(s,o);c&&this.parse(0,c),s>o?this._insertElements(o,s-o,t):s{for(O.length+=i,g=O.length-1;g>=c;g--)O[g]=O[g-i]};for(B(s),g=t;gn-o))}return r._cache.$bar}(a,r.type);let n,o,s,c,i=a._length;const g=()=>{32767===s||-32768===s||(th(c)&&(i=Math.min(i,Math.abs(s-c)||i)),c=s)};for(n=0,o=t.length;nMath.abs(c)&&(g=c,B=s),a[t.axis]=B,a._custom={barStart:g,barEnd:B,start:n,end:o,min:s,max:c}}(r,a,t,i):a[t.axis]=t.parse(r,i),a}function JR(r,a,t,i){const n=r.iScale,o=r.vScale,s=n.getLabels(),c=n===o,g=[];let B,O,ne,we;for(B=t,O=t+i;Br.x,t="left",i="right"):(a=r.base{class r extends Dp{parsePrimitiveData(t,i,n,o){return JR(t,i,n,o)}parseArrayData(t,i,n,o){return JR(t,i,n,o)}parseObjectData(t,i,n,o){const{iScale:s,vScale:c}=t,{xAxisKey:g="x",yAxisKey:B="y"}=this._parsing,O="x"===s.axis?g:B,ne="x"===c.axis?g:B,we=[];let $e,nt,Ft,ei;for($e=n,nt=n+o;$eB.controller.options.grouped),s=n.options.stacked,c=[],g=B=>{const O=B.controller.getParsed(i),ne=O&&O[B.vScale.axis];if(Qa(ne)||isNaN(ne))return!0};for(const B of o)if((void 0===i||!g(B))&&((!1===s||-1===c.indexOf(B.stack)||void 0===s&&void 0===B.stack)&&c.push(B.stack),B.index===t))break;return c.length||c.push(void 0),c}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,i,n){const o=this._getStacks(t,n),s=void 0!==i?o.indexOf(i):-1;return-1===s?o.length-1:s}_getRuler(){const t=this.options,i=this._cachedMeta,n=i.iScale,o=[];let s,c;for(s=0,c=i.data.length;s=t?1:-1)}(Ft,i,c)*s,ne===c&&(pi-=Ft/2);const Di=i.getPixelForDecimal(0),Ri=i.getPixelForDecimal(1),Wi=Math.min(Di,Ri),Ki=Math.max(Di,Ri);pi=Math.max(Math.min(pi,Ki),Wi),nt=pi+Ft}if(pi===i.getPixelForValue(c)){const Di=Mp(Ft)*i.getLineWidthForValue(c)/2;pi+=Di,Ft-=Di}return{size:Ft,base:pi,head:nt,center:nt+Ft/2}}_calculateBarIndexPixels(t,i){const n=i.scale,o=this.options,s=o.skipNull,c=aa(o.maxBarThickness,1/0);let g,B;if(i.grouped){const O=s?this._getStackCount(t):i.stackCount,ne="flex"===o.barThickness?function Ote(r,a,t,i){const n=a.pixels,o=n[r];let s=r>0?n[r-1]:null,c=r{class r extends Dp{initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(t,i,n,o){const s=super.parsePrimitiveData(t,i,n,o);for(let c=0;c=0;--n)i=Math.max(i,t[n].size(this.resolveDataElementOptions(n))/2);return i>0&&i}getLabelAndValue(t){const i=this._cachedMeta,{xScale:n,yScale:o}=i,s=this.getParsed(t),c=n.getLabelForValue(s.x),g=o.getLabelForValue(s.y),B=s._custom;return{label:i.label,value:"("+c+", "+g+(B?", "+B:"")+")"}}update(t){const i=this._cachedMeta.data;this.updateElements(i,0,i.length,t)}updateElements(t,i,n,o){const s="reset"===o,{iScale:c,vScale:g}=this._cachedMeta,{sharedOptions:B,includeOptions:O}=this._getSharedOptions(i,o),ne=c.axis,we=g.axis;for(let $e=i;$e""}}}},r})(),WR=(()=>{class r extends Dp{constructor(t,i){super(t,i),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,i){const n=this.getDataset().data,o=this._cachedMeta;if(!1===this._parsing)o._parsed=n;else{let c,g,s=B=>+n[B];if(Fa(n[t])){const{key:B="value"}=this._parsing;s=O=>+rm(n[O],B)}for(c=t,g=t+i;c"string"==typeof r&&r.endsWith("%")?parseFloat(r)/100:r/a)(this.options.cutout,g),1),O=this._getRingWeight(this.index),{circumference:ne,rotation:we}=this._getRotationExtents(),{ratioX:$e,ratioY:nt,offsetX:Ft,offsetY:ei}=function Zte(r,a,t){let i=1,n=1,o=0,s=0;if(aWC(Ri,c,g,!0)?1:Math.max(Wi,Wi*t,Ki,Ki*t),nt=(Ri,Wi,Ki)=>WC(Ri,c,g,!0)?-1:Math.min(Wi,Wi*t,Ki,Ki*t),Ft=$e(0,B,ne),ei=$e(uc,O,we),pi=nt(Hl,B,ne),Di=nt(Hl+uc,O,we);i=(Ft-pi)/2,n=(ei-Di)/2,o=-(Ft+pi)/2,s=-(ei+Di)/2}return{ratioX:i,ratioY:n,offsetX:o,offsetY:s}}(we,ne,B),Ri=Math.max(Math.min((n.width-c)/$e,(n.height-c)/nt)/2,0),Wi=YL(this.options.radius,Ri),vn=(Wi-Math.max(Wi*B,0))/this._getVisibleDatasetWeightTotal();this.offsetX=Ft*Wi,this.offsetY=ei*Wi,o.total=this.calculateTotal(),this.outerRadius=Wi-vn*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-vn*O,0),this.updateElements(s,0,s.length,t)}_circumference(t,i){const n=this.options,o=this._cachedMeta,s=this._getCircumference();return i&&n.animation.animateRotate||!this.chart.getDataVisibility(t)||null===o._parsed[t]||o.data[t].hidden?0:this.calculateCircumference(o._parsed[t]*s/el)}updateElements(t,i,n,o){const s="reset"===o,c=this.chart,g=c.chartArea,ne=(g.left+g.right)/2,we=(g.top+g.bottom)/2,$e=s&&c.options.animation.animateScale,nt=$e?0:this.innerRadius,Ft=$e?0:this.outerRadius,{sharedOptions:ei,includeOptions:pi}=this._getSharedOptions(i,o);let Ri,Di=this._getRotation();for(Ri=0;Ri0&&!isNaN(t)?el*(Math.abs(t)/i):0}getLabelAndValue(t){const n=this.chart,o=n.data.labels||[],s=ib(this._cachedMeta._parsed[t],n.options.locale);return{label:o[t]||"",value:s}}getMaxBorderWidth(t){let i=0;const n=this.chart;let o,s,c,g,B;if(!t)for(o=0,s=n.data.datasets.length;o"spacing"!==a,_indexable:a=>"spacing"!==a},r.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(a){const t=a.data;if(t.labels.length&&t.datasets.length){const{labels:{pointStyle:i}}=a.legend.options;return t.labels.map((n,o)=>{const c=a.getDatasetMeta(0).controller.getStyle(o);return{text:n,fillStyle:c.backgroundColor,strokeStyle:c.borderColor,lineWidth:c.borderWidth,pointStyle:i,hidden:!a.getDataVisibility(o),index:o}})}return[]}},onClick(a,t,i){i.chart.toggleDataVisibility(t.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label(a){let t=a.label;const i=": "+a.formattedValue;return ml(t)?(t=t.slice(),t[0]+=i):t+=i,t}}}}},r})(),Jte=(()=>{class r extends Dp{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const i=this._cachedMeta,{dataset:n,data:o=[],_dataset:s}=i,c=this.chart._animationsDisabled;let{start:g,count:B}=$L(i,o,c);this._drawStart=g,this._drawCount=B,eR(i)&&(g=0,B=o.length),n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!s._decimated,n.points=o;const O=this.resolveDatasetElementOptions(t);this.options.showLine||(O.borderWidth=0),O.segment=this.options.segment,this.updateElement(n,void 0,{animated:!c,options:O},t),this.updateElements(o,g,B,t)}updateElements(t,i,n,o){const s="reset"===o,{iScale:c,vScale:g,_stacked:B,_dataset:O}=this._cachedMeta,{sharedOptions:ne,includeOptions:we}=this._getSharedOptions(i,o),$e=c.axis,nt=g.axis,{spanGaps:Ft,segment:ei}=this.options,pi=Rv(Ft)?Ft:Number.POSITIVE_INFINITY,Di=this.chart._animationsDisabled||s||"none"===o;let Ri=i>0&&this.getParsed(i-1);for(let Wi=i;Wi0&&Math.abs(vn[$e]-Ri[$e])>pi,ei&&(gn.parsed=vn,gn.raw=O.data[Wi]),we&&(gn.options=ne||this.resolveDataElementOptions(Wi,Ki.active?"active":o)),Di||this.updateElement(Ki,Wi,gn,o),Ri=vn}}getMaxOverflow(){const t=this._cachedMeta,i=t.dataset,n=i.options&&i.options.borderWidth||0,o=t.data||[];if(!o.length)return n;const s=o[0].size(this.resolveDataElementOptions(0)),c=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(n,s,c)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}return r.id="line",r.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1},r.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}},r})(),jte=(()=>{class r extends Dp{constructor(t,i){super(t,i),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const n=this.chart,o=n.data.labels||[],s=ib(this._cachedMeta._parsed[t].r,n.options.locale);return{label:o[t]||"",value:s}}parseObjectData(t,i,n,o){return CR.bind(this)(t,i,n,o)}update(t){const i=this._cachedMeta.data;this._updateRadius(),this.updateElements(i,0,i.length,t)}getMinMax(){const i={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return this._cachedMeta.data.forEach((n,o)=>{const s=this.getParsed(o).r;!isNaN(s)&&this.chart.getDataVisibility(o)&&(si.max&&(i.max=s))}),i}_updateRadius(){const t=this.chart,i=t.chartArea,n=t.options,o=Math.min(i.right-i.left,i.bottom-i.top),s=Math.max(o/2,0),g=(s-Math.max(n.cutoutPercentage?s/100*n.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=s-g*this.index,this.innerRadius=this.outerRadius-g}updateElements(t,i,n,o){const s="reset"===o,c=this.chart,B=c.options.animation,O=this._cachedMeta.rScale,ne=O.xCenter,we=O.yCenter,$e=O.getIndexAngle(0)-.5*Hl;let Ft,nt=$e;const ei=360/this.countVisibleElements();for(Ft=0;Ft{!isNaN(this.getParsed(o).r)&&this.chart.getDataVisibility(o)&&i++}),i}_computeAngle(t,i,n){return this.chart.getDataVisibility(t)?zh(this.resolveDataElementOptions(t,i).angle||n):0}}return r.id="polarArea",r.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0},r.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(a){const t=a.data;if(t.labels.length&&t.datasets.length){const{labels:{pointStyle:i}}=a.legend.options;return t.labels.map((n,o)=>{const c=a.getDatasetMeta(0).controller.getStyle(o);return{text:n,fillStyle:c.backgroundColor,strokeStyle:c.borderColor,lineWidth:c.borderWidth,pointStyle:i,hidden:!a.getDataVisibility(o),index:o}})}return[]}},onClick(a,t,i){i.chart.toggleDataVisibility(t.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label:a=>a.chart.data.labels[a.dataIndex]+": "+a.formattedValue}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}},r})(),Vte=(()=>{class r extends WR{}return r.id="pie",r.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"},r})(),Wte=(()=>{class r extends Dp{getLabelAndValue(t){const i=this._cachedMeta.vScale,n=this.getParsed(t);return{label:i.getLabels()[t],value:""+i.getLabelForValue(n[i.axis])}}parseObjectData(t,i,n,o){return CR.bind(this)(t,i,n,o)}update(t){const i=this._cachedMeta,n=i.dataset,o=i.data||[],s=i.iScale.getLabels();if(n.points=o,"resize"!==t){const c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),this.updateElement(n,void 0,{_loop:!0,_fullLoop:s.length===o.length,options:c},t)}this.updateElements(o,0,o.length,t)}updateElements(t,i,n,o){const s=this._cachedMeta.rScale,c="reset"===o;for(let g=i;g{n[o]=i[o]&&i[o].active()?i[o]._to:this[o]}),n}}Hh.defaults={},Hh.defaultRoutes=void 0;const KR={values:r=>ml(r)?r:""+r,numeric(r,a,t){if(0===r)return"0";const i=this.chart.options.locale;let n,o=r;if(t.length>1){const B=Math.max(Math.abs(t[0].value),Math.abs(t[t.length-1].value));(B<1e-4||B>1e15)&&(n="scientific"),o=function Kte(r,a){let t=a.length>3?a[2].value-a[1].value:a[1].value-a[0].value;return Math.abs(t)>=1&&r!==Math.floor(r)&&(t=r-Math.floor(r)),t}(r,t)}const s=ih(Math.abs(o)),c=Math.max(Math.min(-1*Math.floor(s),20),0),g={notation:n,minimumFractionDigits:c,maximumFractionDigits:c};return Object.assign(g,this.options.ticks.format),ib(r,i,g)},logarithmic(r,a,t){if(0===r)return"0";const i=r/Math.pow(10,Math.floor(ih(r)));return 1===i||2===i||5===i?KR.numeric.call(this,r,a,t):""}};var FM={formatters:KR};function OM(r,a,t,i,n){const o=aa(i,0),s=Math.min(aa(n,r.length),r.length);let g,B,O,c=0;for(t=Math.ceil(t),n&&(g=n-i,t=g/Math.floor(g/t)),O=o;O<0;)c++,O=Math.round(o+c*t);for(B=Math.max(o,0);Ba.lineWidth,tickColor:(r,a)=>a.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:FM.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),Oa.route("scale.ticks","color","","color"),Oa.route("scale.grid","color","","borderColor"),Oa.route("scale.grid","borderColor","","borderColor"),Oa.route("scale.title","color","","color"),Oa.describe("scale",{_fallback:!1,_scriptable:r=>!r.startsWith("before")&&!r.startsWith("after")&&"callback"!==r&&"parser"!==r,_indexable:r=>"borderDash"!==r&&"tickBorderDash"!==r}),Oa.describe("scales",{_fallback:"scale"}),Oa.describe("scale.ticks",{_scriptable:r=>"backdropPadding"!==r&&"callback"!==r,_indexable:r=>"backdropPadding"!==r});const qR=(r,a,t)=>"top"===a||"left"===a?r[a]+t:r[a]-t;function XR(r,a){const t=[],i=r.length/a,n=r.length;let o=0;for(;os+c)))return g}function rb(r){return r.drawTicks?r.tickLength:0}function $R(r,a){if(!r.display)return 0;const t=Jc(r.font,a),i=zA(r.padding);return(ml(r.text)?r.text.length:1)*t.lineHeight+i.height}function lie(r,a,t){let i=QS(r);return(t&&"right"!==a||!t&&"right"===a)&&(i=(r=>"left"===r?"right":"right"===r?"left":r)(i)),i}class U0 extends Hh{constructor(a){super(),this.id=a.id,this.type=a.type,this.options=void 0,this.ctx=a.ctx,this.chart=a.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(a){this.options=a.setContext(this.getContext()),this.axis=a.axis,this._userMin=this.parse(a.min),this._userMax=this.parse(a.max),this._suggestedMin=this.parse(a.suggestedMin),this._suggestedMax=this.parse(a.suggestedMax)}parse(a,t){return a}getUserBounds(){let{_userMin:a,_userMax:t,_suggestedMin:i,_suggestedMax:n}=this;return a=eh(a,Number.POSITIVE_INFINITY),t=eh(t,Number.NEGATIVE_INFINITY),i=eh(i,Number.POSITIVE_INFINITY),n=eh(n,Number.NEGATIVE_INFINITY),{min:eh(a,i),max:eh(t,n),minDefined:Bc(a),maxDefined:Bc(t)}}getMinMax(a){let s,{min:t,max:i,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:t,max:i};const c=this.getMatchingVisibleMetas();for(let g=0,B=c.length;gi?i:t,i=n&&t>i?t:i,{min:eh(t,eh(i,t)),max:eh(i,eh(t,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const a=this.chart.data;return this.options.labels||(this.isHorizontal()?a.xLabels:a.yLabels)||a.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){$s(this.options.beforeUpdate,[this])}update(a,t,i){const{beginAtZero:n,grace:o,ticks:s}=this.options,c=s.sampleSize;this.beforeUpdate(),this.maxWidth=a,this.maxHeight=t,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function Fee(r,a,t){const{min:i,max:n}=r,o=YL(a,(n-i)/2),s=(c,g)=>t&&0===c?0:c+g;return{min:s(i,-Math.abs(o)),max:s(n,o)}}(this,o,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const g=ci)return function tie(r,a,t,i){let s,n=0,o=t[0];for(i=Math.ceil(i),s=0;sn-o).pop(),a}(i);for(let s=0,c=o.length-1;sn)return g}return Math.max(n,1)}(n,a,i);if(o>0){let O,ne;const we=o>1?Math.round((c-s)/(o-1)):null;for(OM(a,g,B,Qa(we)?0:s-we,s),O=0,ne=o-1;O=o||i<=1||!this.isHorizontal())return void(this.labelRotation=n);const O=this._getLabelSizes(),ne=O.widest.width,we=O.highest.height,$e=IA(this.chart.width-ne,0,this.maxWidth);c=a.offset?this.maxWidth/i:$e/(i-1),ne+6>c&&(c=$e/(i-(a.offset?.5:1)),g=this.maxHeight-rb(a.grid)-t.padding-$R(a.title,this.chart.options.font),B=Math.sqrt(ne*ne+we*we),s=TS(Math.min(Math.asin(IA((O.highest.height+6)/c,-1,1)),Math.asin(IA(g/B,-1,1))-Math.asin(IA(we/B,-1,1)))),s=Math.max(n,Math.min(o,s))),this.labelRotation=s}afterCalculateLabelRotation(){$s(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){$s(this.options.beforeFit,[this])}fit(){const a={width:0,height:0},{chart:t,options:{ticks:i,title:n,grid:o}}=this,s=this._isVisible(),c=this.isHorizontal();if(s){const g=$R(n,t.options.font);if(c?(a.width=this.maxWidth,a.height=rb(o)+g):(a.height=this.maxHeight,a.width=rb(o)+g),i.display&&this.ticks.length){const{first:B,last:O,widest:ne,highest:we}=this._getLabelSizes(),$e=2*i.padding,nt=zh(this.labelRotation),Ft=Math.cos(nt),ei=Math.sin(nt);c?a.height=Math.min(this.maxHeight,a.height+(i.mirror?0:ei*ne.width+Ft*we.height)+$e):a.width=Math.min(this.maxWidth,a.width+(i.mirror?0:Ft*ne.width+ei*we.height)+$e),this._calculatePadding(B,O,ei,Ft)}}this._handleMargins(),c?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=a.height):(this.width=a.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(a,t,i,n){const{ticks:{align:o,padding:s},position:c}=this.options,g=0!==this.labelRotation,B="top"!==c&&"x"===this.axis;if(this.isHorizontal()){const O=this.getPixelForTick(0)-this.left,ne=this.right-this.getPixelForTick(this.ticks.length-1);let we=0,$e=0;g?B?(we=n*a.width,$e=i*t.height):(we=i*a.height,$e=n*t.width):"start"===o?$e=t.width:"end"===o?we=a.width:"inner"!==o&&(we=a.width/2,$e=t.width/2),this.paddingLeft=Math.max((we-O+s)*this.width/(this.width-O),0),this.paddingRight=Math.max(($e-ne+s)*this.width/(this.width-ne),0)}else{let O=t.height/2,ne=a.height/2;"start"===o?(O=0,ne=a.height):"end"===o&&(O=t.height,ne=0),this.paddingTop=O+s,this.paddingBottom=ne+s}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){$s(this.options.afterFit,[this])}isHorizontal(){const{axis:a,position:t}=this.options;return"top"===t||"bottom"===t||"x"===a}isFullSize(){return this.options.fullSize}_convertTicksToLabels(a){let t,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(a),t=0,i=a.length;t{const i=t.gc,n=i.length/2;let o;if(n>a){for(o=0;o({width:o[gn]||0,height:s[gn]||0});return{first:vn(0),last:vn(t-1),widest:vn(Wi),highest:vn(Ki),widths:o,heights:s}}getLabelForValue(a){return a}getPixelForValue(a,t){return NaN}getValueForPixel(a){}getPixelForTick(a){const t=this.ticks;return a<0||a>t.length-1?null:this.getPixelForValue(t[a].value)}getPixelForDecimal(a){this._reversePixels&&(a=1-a);const t=this._startPixel+a*this._length;return function K$(r){return IA(r,-32768,32767)}(this._alignToPixels?F0(this.chart,t,0):t)}getDecimalForPixel(a){const t=(a-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:a,max:t}=this;return a<0&&t<0?t:a>0&&t>0?a:0}getContext(a){const t=this.ticks||[];if(a>=0&&ac*n?c/i:g/n:g*n0}_computeGridLineItems(a){const t=this.axis,i=this.chart,n=this.options,{grid:o,position:s}=n,c=o.offset,g=this.isHorizontal(),O=this.ticks.length+(c?1:0),ne=rb(o),we=[],$e=o.setContext(this.getContext()),nt=$e.drawBorder?$e.borderWidth:0,Ft=nt/2,ei=function(So){return F0(i,So,nt)};let pi,Di,Ri,Wi,Ki,vn,gn,Vn,tr,pr,go,no;if("top"===s)pi=ei(this.bottom),vn=this.bottom-ne,Vn=pi-Ft,pr=ei(a.top)+Ft,no=a.bottom;else if("bottom"===s)pi=ei(this.top),pr=a.top,no=ei(a.bottom)-Ft,vn=pi+Ft,Vn=this.top+ne;else if("left"===s)pi=ei(this.right),Ki=this.right-ne,gn=pi-Ft,tr=ei(a.left)+Ft,go=a.right;else if("right"===s)pi=ei(this.left),tr=a.left,go=ei(a.right)-Ft,Ki=pi+Ft,gn=this.left+ne;else if("x"===t){if("center"===s)pi=ei((a.top+a.bottom)/2+.5);else if(Fa(s)){const So=Object.keys(s)[0];pi=ei(this.chart.scales[So].getPixelForValue(s[So]))}pr=a.top,no=a.bottom,vn=pi+Ft,Vn=vn+ne}else if("y"===t){if("center"===s)pi=ei((a.left+a.right)/2);else if(Fa(s)){const So=Object.keys(s)[0];pi=ei(this.chart.scales[So].getPixelForValue(s[So]))}Ki=pi-Ft,gn=Ki-ne,tr=a.left,go=a.right}const la=aa(n.ticks.maxTicksLimit,O),Os=Math.max(1,Math.ceil(O/la));for(Di=0;Dio.value===a);return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(a){const t=this.options.grid,i=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(a));let o,s;const c=(g,B,O)=>{!O.width||!O.color||(i.save(),i.lineWidth=O.width,i.strokeStyle=O.color,i.setLineDash(O.borderDash||[]),i.lineDashOffset=O.borderDashOffset,i.beginPath(),i.moveTo(g.x,g.y),i.lineTo(B.x,B.y),i.stroke(),i.restore())};if(t.display)for(o=0,s=n.length;o{this.drawBackground(),this.drawGrid(n),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:t,draw:n=>{this.drawLabels(n)}}]:[{z:t,draw:n=>{this.draw(n)}}]}getMatchingVisibleMetas(a){const t=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",n=[];let o,s;for(o=0,s=t.length;o{const i=t.split("."),n=i.pop(),o=[r].concat(i).join("."),s=a[t].split("."),c=s.pop(),g=s.join(".");Oa.route(o,n,g,c)})}(a,r.defaultRoutes),r.descriptors&&Oa.describe(a,r.descriptors)}(a,s,i),this.override&&Oa.override(a.id,a.overrides)),s}get(a){return this.items[a]}unregister(a){const t=this.items,i=a.id,n=this.scope;i in t&&delete t[i],n&&i in Oa[n]&&(delete Oa[n][i],this.override&&delete P0[i])}}var Tp=new class hie{constructor(){this.controllers=new LM(Dp,"datasets",!0),this.elements=new LM(Hh,"elements"),this.plugins=new LM(Object,"plugins"),this.scales=new LM(U0,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...a){this._each("register",a)}remove(...a){this._each("unregister",a)}addControllers(...a){this._each("register",a,this.controllers)}addElements(...a){this._each("register",a,this.elements)}addPlugins(...a){this._each("register",a,this.plugins)}addScales(...a){this._each("register",a,this.scales)}getController(a){return this._get(a,this.controllers,"controller")}getElement(a){return this._get(a,this.elements,"element")}getPlugin(a){return this._get(a,this.plugins,"plugin")}getScale(a){return this._get(a,this.scales,"scale")}removeControllers(...a){this._each("unregister",a,this.controllers)}removeElements(...a){this._each("unregister",a,this.elements)}removePlugins(...a){this._each("unregister",a,this.plugins)}removeScales(...a){this._each("unregister",a,this.scales)}_each(a,t,i){[...t].forEach(n=>{const o=i||this._getRegistryForType(n);i||o.isForType(n)||o===this.plugins&&n.id?this._exec(a,o,n):Ps(n,s=>{const c=i||this._getRegistryForType(s);this._exec(a,c,s)})})}_exec(a,t,i){const n=DS(a);$s(i["before"+n],[],i),t[a](i),$s(i["after"+n],[],i)}_getRegistryForType(a){for(let t=0;t{class r extends Dp{update(t){const i=this._cachedMeta,{data:n=[]}=i,o=this.chart._animationsDisabled;let{start:s,count:c}=$L(i,n,o);if(this._drawStart=s,this._drawCount=c,eR(i)&&(s=0,c=n.length),this.options.showLine){const{dataset:g,_dataset:B}=i;g._chart=this.chart,g._datasetIndex=this.index,g._decimated=!!B._decimated,g.points=n;const O=this.resolveDatasetElementOptions(t);O.segment=this.options.segment,this.updateElement(g,void 0,{animated:!o,options:O},t)}this.updateElements(n,s,c,t)}addElements(){const{showLine:t}=this.options;!this.datasetElementType&&t&&(this.datasetElementType=Tp.getElement("line")),super.addElements()}updateElements(t,i,n,o){const s="reset"===o,{iScale:c,vScale:g,_stacked:B,_dataset:O}=this._cachedMeta,ne=this.resolveDataElementOptions(i,o),we=this.getSharedOptions(ne),$e=this.includeOptions(o,we),nt=c.axis,Ft=g.axis,{spanGaps:ei,segment:pi}=this.options,Di=Rv(ei)?ei:Number.POSITIVE_INFINITY,Ri=this.chart._animationsDisabled||s||"none"===o;let Wi=i>0&&this.getParsed(i-1);for(let Ki=i;Ki0&&Math.abs(gn[nt]-Wi[nt])>Di,pi&&(Vn.parsed=gn,Vn.raw=O.data[Ki]),$e&&(Vn.options=we||this.resolveDataElementOptions(Ki,vn.active?"active":o)),Ri||this.updateElement(vn,Ki,Vn,o),Wi=gn}this.updateSharedOptions(we,o,ne)}getMaxOverflow(){const t=this._cachedMeta,i=t.data||[];if(!this.options.showLine){let g=0;for(let B=i.length-1;B>=0;--B)g=Math.max(g,i[B].size(this.resolveDataElementOptions(B))/2);return g>0&&g}const n=t.dataset,o=n.options&&n.options.borderWidth||0;if(!i.length)return o;const s=i[0].size(this.resolveDataElementOptions(0)),c=i[i.length-1].size(this.resolveDataElementOptions(i.length-1));return Math.max(o,s,c)/2}}return r.id="scatter",r.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1},r.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title:()=>"",label:a=>"("+a.label+", "+a.formattedValue+")"}}},scales:{x:{type:"linear"},y:{type:"linear"}}},r})()});function z0(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}var gie={_date:(()=>{class r{constructor(t){this.options=t||{}}init(t){}formats(){return z0()}parse(t,i){return z0()}format(t,i){return z0()}add(t,i,n){return z0()}diff(t,i,n){return z0()}startOf(t,i,n){return z0()}endOf(t,i){return z0()}}return r.override=function(a){Object.assign(r.prototype,a)},r})()};function fie(r,a,t,i){const{controller:n,data:o,_sorted:s}=r,c=n._cachedMeta.iScale;if(c&&a===c.axis&&"r"!==a&&s&&o.length){const g=c._reversePixels?q$:Sg;if(!i)return g(o,a,t);if(n._sharedOptions){const B=o[0],O="function"==typeof B.getRange&&B.getRange(a);if(O){const ne=g(o,a,t-O),we=g(o,a,t+O);return{lo:ne.lo,hi:we.hi}}}}return{lo:0,hi:o.length-1}}function ob(r,a,t,i,n){const o=r.getSortedVisibleDatasetMetas(),s=t[a];for(let c=0,g=o.length;c{g[s](a[t],n)&&(o.push({element:g,datasetIndex:B,index:O}),c=c||g.inRange(a.x,a.y,n))}),i&&!c?[]:o}var yie={evaluateInteractionItems:ob,modes:{index(r,a,t,i){const n=Y0(a,r),o=t.axis||"x",s=t.includeInvisible||!1,c=t.intersect?qS(r,n,o,i,s):XS(r,n,o,!1,i,s),g=[];return c.length?(r.getSortedVisibleDatasetMetas().forEach(B=>{const O=c[0].index,ne=B.data[O];ne&&!ne.skip&&g.push({element:ne,datasetIndex:B.index,index:O})}),g):[]},dataset(r,a,t,i){const n=Y0(a,r),o=t.axis||"xy",s=t.includeInvisible||!1;let c=t.intersect?qS(r,n,o,i,s):XS(r,n,o,!1,i,s);if(c.length>0){const g=c[0].datasetIndex,B=r.getDatasetMeta(g).data;c=[];for(let O=0;OqS(r,Y0(a,r),t.axis||"xy",i,t.includeInvisible||!1),nearest:(r,a,t,i)=>XS(r,Y0(a,r),t.axis||"xy",t.intersect,i,t.includeInvisible||!1),x:(r,a,t,i)=>eY(r,Y0(a,r),"x",t.intersect,i),y:(r,a,t,i)=>eY(r,Y0(a,r),"y",t.intersect,i)}};const tY=["left","top","right","bottom"];function ab(r,a){return r.filter(t=>t.pos===a)}function iY(r,a){return r.filter(t=>-1===tY.indexOf(t.pos)&&t.box.axis===a)}function sb(r,a){return r.sort((t,i)=>{const n=a?i:t,o=a?t:i;return n.weight===o.weight?n.index-o.index:n.weight-o.weight})}function nY(r,a,t,i){return Math.max(r[t],a[t])+Math.max(r[i],a[i])}function rY(r,a){r.top=Math.max(r.top,a.top),r.left=Math.max(r.left,a.left),r.bottom=Math.max(r.bottom,a.bottom),r.right=Math.max(r.right,a.right)}function Bie(r,a,t,i){const{pos:n,box:o}=t,s=r.maxPadding;if(!Fa(n)){t.size&&(r[n]-=t.size);const ne=i[t.stack]||{size:0,count:1};ne.size=Math.max(ne.size,t.horizontal?o.height:o.width),t.size=ne.size/ne.count,r[n]+=t.size}o.getPadding&&rY(s,o.getPadding());const c=Math.max(0,a.outerWidth-nY(s,r,"left","right")),g=Math.max(0,a.outerHeight-nY(s,r,"top","bottom")),B=c!==r.w,O=g!==r.h;return r.w=c,r.h=g,t.horizontal?{same:B,other:O}:{same:O,other:B}}function Mie(r,a){const t=a.maxPadding;return function i(n){const o={left:0,top:0,right:0,bottom:0};return n.forEach(s=>{o[s]=Math.max(a[s],t[s])}),o}(r?["left","right"]:["top","bottom"])}function lb(r,a,t,i){const n=[];let o,s,c,g,B,O;for(o=0,s=r.length,B=0;oB.box.fullSize),!0),i=sb(ab(a,"left"),!0),n=sb(ab(a,"right")),o=sb(ab(a,"top"),!0),s=sb(ab(a,"bottom")),c=iY(a,"x"),g=iY(a,"y");return{fullSize:t,leftAndTop:i.concat(o),rightAndBottom:n.concat(g).concat(s).concat(c),chartArea:ab(a,"chartArea"),vertical:i.concat(n).concat(g),horizontal:o.concat(s).concat(c)}}(r.boxes),g=c.vertical,B=c.horizontal;Ps(r.boxes,Ft=>{"function"==typeof Ft.beforeLayout&&Ft.beforeLayout()});const O=g.reduce((Ft,ei)=>ei.box.options&&!1===ei.box.options.display?Ft:Ft+1,0)||1,ne=Object.freeze({outerWidth:a,outerHeight:t,padding:n,availableWidth:o,availableHeight:s,vBoxMaxWidth:o/2/O,hBoxMaxHeight:s/2}),we=Object.assign({},n);rY(we,zA(i));const $e=Object.assign({maxPadding:we,w:o,h:s,x:n.left,y:n.top},n),nt=function bie(r,a){const t=function Cie(r){const a={};for(const t of r){const{stack:i,pos:n,stackWeight:o}=t;if(!i||!tY.includes(n))continue;const s=a[i]||(a[i]={count:0,placed:0,weight:0,size:0});s.count++,s.weight+=o}return a}(r),{vBoxMaxWidth:i,hBoxMaxHeight:n}=a;let o,s,c;for(o=0,s=r.length;o{const ei=Ft.box;Object.assign(ei,r.chartArea),ei.update($e.w,$e.h,{left:0,top:0,right:0,bottom:0})})}};class aY{acquireContext(a,t){}releaseContext(a){return!1}addEventListener(a,t,i){}removeEventListener(a,t,i){}getDevicePixelRatio(){return 1}getMaximumSize(a,t,i,n){return t=Math.max(0,t||a.width),i=i||a.height,{width:t,height:Math.max(0,n?Math.floor(t/n):i)}}isAttached(a){return!0}updateConfig(a){}}class Die extends aY{acquireContext(a){return a&&a.getContext&&a.getContext("2d")||null}updateConfig(a){a.options.animation=!1}}const YM="$chartjs",Tie={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},sY=r=>null===r||""===r,lY=!!rte&&{passive:!0};function Qie(r,a,t){r.canvas.removeEventListener(a,t,lY)}function NM(r,a){for(const t of r)if(t===a||t.contains(a))return!0}function Pie(r,a,t){const i=r.canvas,n=new MutationObserver(o=>{let s=!1;for(const c of o)s=s||NM(c.addedNodes,i),s=s&&!NM(c.removedNodes,i);s&&t()});return n.observe(document,{childList:!0,subtree:!0}),n}function Fie(r,a,t){const i=r.canvas,n=new MutationObserver(o=>{let s=!1;for(const c of o)s=s||NM(c.removedNodes,i),s=s&&!NM(c.addedNodes,i);s&&t()});return n.observe(document,{childList:!0,subtree:!0}),n}const cb=new Map;let cY=0;function AY(){const r=window.devicePixelRatio;r!==cY&&(cY=r,cb.forEach((a,t)=>{t.currentDevicePixelRatio!==r&&a()}))}function Rie(r,a,t){const i=r.canvas,n=i&&JS(i);if(!n)return;const o=XL((c,g)=>{const B=n.clientWidth;t(c,g),B{const g=c[0],B=g.contentRect.width,O=g.contentRect.height;0===B&&0===O||o(B,O)});return s.observe(n),function Oie(r,a){cb.size||window.addEventListener("resize",AY),cb.set(r,a)}(r,o),s}function $S(r,a,t){t&&t.disconnect(),"resize"===a&&function Lie(r){cb.delete(r),cb.size||window.removeEventListener("resize",AY)}(r)}function Yie(r,a,t){const i=r.canvas,n=XL(o=>{null!==r.ctx&&t(function Sie(r,a){const t=Tie[r.type]||r.type,{x:i,y:n}=Y0(r,a);return{type:t,chart:a,native:r,x:void 0!==i?i:null,y:void 0!==n?n:null}}(o,r))},r,o=>{const s=o[0];return[s,s.offsetX,s.offsetY]});return function kie(r,a,t){r.addEventListener(a,t,lY)}(i,a,n),n}class Nie extends aY{acquireContext(a,t){const i=a&&a.getContext&&a.getContext("2d");return i&&i.canvas===a?(function Iie(r,a){const t=r.style,i=r.getAttribute("height"),n=r.getAttribute("width");if(r[YM]={initial:{height:i,width:n,style:{display:t.display,height:t.height,width:t.width}}},t.display=t.display||"block",t.boxSizing=t.boxSizing||"border-box",sY(n)){const o=ER(r,"width");void 0!==o&&(r.width=o)}if(sY(i))if(""===r.style.height)r.height=r.width/(a||2);else{const o=ER(r,"height");void 0!==o&&(r.height=o)}}(a,t),i):null}releaseContext(a){const t=a.canvas;if(!t[YM])return!1;const i=t[YM].initial;["height","width"].forEach(o=>{const s=i[o];Qa(s)?t.removeAttribute(o):t.setAttribute(o,s)});const n=i.style||{};return Object.keys(n).forEach(o=>{t.style[o]=n[o]}),t.width=t.width,delete t[YM],!0}addEventListener(a,t,i){this.removeEventListener(a,t),(a.$proxies||(a.$proxies={}))[t]=({attach:Pie,detach:Fie,resize:Rie}[t]||Yie)(a,t,i)}removeEventListener(a,t){const i=a.$proxies||(a.$proxies={}),n=i[t];n&&(({attach:$S,detach:$S,resize:$S}[t]||Qie)(a,t,n),i[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(a,t,i,n){return function nte(r,a,t,i){const n=PM(r),o=R0(n,"margin"),s=SM(n.maxWidth,r,"clientWidth")||bM,c=SM(n.maxHeight,r,"clientHeight")||bM,g=function ite(r,a,t){let i,n;if(void 0===a||void 0===t){const o=JS(r);if(o){const s=o.getBoundingClientRect(),c=PM(o),g=R0(c,"border","width"),B=R0(c,"padding");a=s.width-B.width-g.width,t=s.height-B.height-g.height,i=SM(c.maxWidth,o,"clientWidth"),n=SM(c.maxHeight,o,"clientHeight")}else a=r.clientWidth,t=r.clientHeight}return{width:a,height:t,maxWidth:i||bM,maxHeight:n||bM}}(r,a,t);let{width:B,height:O}=g;if("content-box"===n.boxSizing){const ne=R0(n,"border","width"),we=R0(n,"padding");B-=we.width+ne.width,O-=we.height+ne.height}return B=Math.max(0,B-o.width),O=Math.max(0,i?Math.floor(B/i):O-o.height),B=jS(Math.min(B,s,g.maxWidth)),O=jS(Math.min(O,c,g.maxHeight)),B&&!O&&(O=jS(B/2)),{width:B,height:O}}(a,t,i,n)}isAttached(a){const t=JS(a);return!(!t||!t.isConnected)}}class zie{constructor(){this._init=[]}notify(a,t,i,n){"beforeInit"===t&&(this._init=this._createDescriptors(a,!0),this._notify(this._init,a,"install"));const o=n?this._descriptors(a).filter(n):this._descriptors(a),s=this._notify(o,a,t,i);return"afterDestroy"===t&&(this._notify(o,a,"stop"),this._notify(this._init,a,"uninstall")),s}_notify(a,t,i,n){n=n||{};for(const o of a){const s=o.plugin;if(!1===$s(s[i],[t,n,o.options],s)&&n.cancelable)return!1}return!0}invalidate(){Qa(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(a){if(this._cache)return this._cache;const t=this._cache=this._createDescriptors(a);return this._notifyStateChanges(a),t}_createDescriptors(a,t){const i=a&&a.config,n=aa(i.options&&i.options.plugins,{}),o=function Hie(r){const a={},t=[],i=Object.keys(Tp.plugins.items);for(let o=0;oo.filter(c=>!s.some(g=>c.plugin.id===g.plugin.id));this._notify(n(t,i),a,"stop"),this._notify(n(i,t),a,"start")}}function Gie(r,a){return a||!1!==r?!0===r?{}:r:null}function Jie(r,{plugin:a,local:t},i,n){const o=r.pluginScopeKeys(a),s=r.getOptionScopes(i,o);return t&&a.defaults&&s.push(a.defaults),r.createResolver(s,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function eP(r,a){return((a.datasets||{})[r]||{}).indexAxis||a.indexAxis||(Oa.datasets[r]||{}).indexAxis||"x"}function tP(r,a){return"x"===r||"y"===r?r:a.axis||function Wie(r){return"top"===r||"bottom"===r?"x":"left"===r||"right"===r?"y":void 0}(a.position)||r.charAt(0).toLowerCase()}function dY(r){const a=r.options||(r.options={});a.plugins=aa(a.plugins,{}),a.scales=function Kie(r,a){const t=P0[r.type]||{scales:{}},i=a.scales||{},n=eP(r.type,a),o=Object.create(null),s=Object.create(null);return Object.keys(i).forEach(c=>{const g=i[c];if(!Fa(g))return console.error(`Invalid scale configuration for scale: ${c}`);if(g._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${c}`);const B=tP(c,g),O=function Vie(r,a){return r===a?"_index_":"_value_"}(B,n),ne=t.scales||{};o[B]=o[B]||c,s[c]=JC(Object.create(null),[{axis:B},g,ne[B],ne[O]])}),r.data.datasets.forEach(c=>{const g=c.type||r.type,B=c.indexAxis||eP(g,a),ne=(P0[g]||{}).scales||{};Object.keys(ne).forEach(we=>{const $e=function jie(r,a){let t=r;return"_index_"===r?t=a:"_value_"===r&&(t="x"===a?"y":"x"),t}(we,B),nt=c[$e+"AxisID"]||o[$e]||$e;s[nt]=s[nt]||Object.create(null),JC(s[nt],[{axis:$e},i[nt],ne[we]])})}),Object.keys(s).forEach(c=>{const g=s[c];JC(g,[Oa.scales[g.type],Oa.scale])}),s}(r,a)}function uY(r){return(r=r||{}).datasets=r.datasets||[],r.labels=r.labels||[],r}const hY=new Map,pY=new Set;function UM(r,a){let t=hY.get(r);return t||(t=a(),hY.set(r,t),pY.add(t)),t}const Ab=(r,a,t)=>{const i=rm(a,t);void 0!==i&&r.add(i)};class Xie{constructor(a){this._config=function qie(r){return(r=r||{}).data=uY(r.data),dY(r),r}(a),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(a){this._config.type=a}get data(){return this._config.data}set data(a){this._config.data=uY(a)}get options(){return this._config.options}set options(a){this._config.options=a}get plugins(){return this._config.plugins}update(){const a=this._config;this.clearCache(),dY(a)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(a){return UM(a,()=>[[`datasets.${a}`,""]])}datasetAnimationScopeKeys(a,t){return UM(`${a}.transition.${t}`,()=>[[`datasets.${a}.transitions.${t}`,`transitions.${t}`],[`datasets.${a}`,""]])}datasetElementScopeKeys(a,t){return UM(`${a}-${t}`,()=>[[`datasets.${a}.elements.${t}`,`datasets.${a}`,`elements.${t}`,""]])}pluginScopeKeys(a){const t=a.id;return UM(`${this.type}-plugin-${t}`,()=>[[`plugins.${t}`,...a.additionalOptionScopes||[]]])}_cachedScopes(a,t){const i=this._scopeCache;let n=i.get(a);return(!n||t)&&(n=new Map,i.set(a,n)),n}getOptionScopes(a,t,i){const{options:n,type:o}=this,s=this._cachedScopes(a,i),c=s.get(t);if(c)return c;const g=new Set;t.forEach(O=>{a&&(g.add(a),O.forEach(ne=>Ab(g,a,ne))),O.forEach(ne=>Ab(g,n,ne)),O.forEach(ne=>Ab(g,P0[o]||{},ne)),O.forEach(ne=>Ab(g,Oa,ne)),O.forEach(ne=>Ab(g,YS,ne))});const B=Array.from(g);return 0===B.length&&B.push(Object.create(null)),pY.has(t)&&s.set(t,B),B}chartOptionScopes(){const{options:a,type:t}=this;return[a,P0[t]||{},Oa.datasets[t]||{},{type:t},Oa,YS]}resolveNamedOptions(a,t,i,n=[""]){const o={$shared:!0},{resolver:s,subPrefixes:c}=gY(this._resolverCache,a,n);let g=s;(function ene(r,a){const{isScriptable:t,isIndexable:i}=fR(r);for(const n of a){const o=t(n),s=i(n),c=(s||o)&&r[n];if(o&&(om(c)||$ie(c))||s&&ml(c))return!0}return!1})(s,t)&&(o.$shared=!1,g=Nv(s,i=om(i)?i():i,this.createResolver(a,i,c)));for(const B of t)o[B]=g[B];return o}createResolver(a,t,i=[""],n){const{resolver:o}=gY(this._resolverCache,a,i);return Fa(t)?Nv(o,t,void 0,n):o}}function gY(r,a,t){let i=r.get(a);i||(i=new Map,r.set(a,i));const n=t.join();let o=i.get(n);return o||(o={resolver:HS(a,t),subPrefixes:t.filter(c=>!c.toLowerCase().includes("hover"))},i.set(n,o)),o}const $ie=r=>Fa(r)&&Object.getOwnPropertyNames(r).reduce((a,t)=>a||om(r[t]),!1),ine=["top","bottom","left","right","chartArea"];function fY(r,a){return"top"===r||"bottom"===r||-1===ine.indexOf(r)&&"x"===a}function mY(r,a){return function(t,i){return t[r]===i[r]?t[a]-i[a]:t[r]-i[r]}}function _Y(r){const a=r.chart,t=a.options.animation;a.notifyPlugins("afterRender"),$s(t&&t.onComplete,[r],a)}function nne(r){const a=r.chart,t=a.options.animation;$s(t&&t.onProgress,[r],a)}function vY(r){return xR()&&"string"==typeof r?r=document.getElementById(r):r&&r.length&&(r=r[0]),r&&r.canvas&&(r=r.canvas),r}const zM={},yY=r=>{const a=vY(r);return Object.values(zM).filter(t=>t.canvas===a).pop()};function rne(r,a,t){const i=Object.keys(r);for(const n of i){const o=+n;if(o>=a){const s=r[n];delete r[n],(t>0||o>a)&&(r[o+t]=s)}}}class db{constructor(a,t){const i=this.config=new Xie(t),n=vY(a),o=yY(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||function Uie(r){return!xR()||typeof OffscreenCanvas<"u"&&r instanceof OffscreenCanvas?Die:Nie}(n)),this.platform.updateConfig(i);const c=this.platform.acquireContext(n,s.aspectRatio),g=c&&c.canvas,B=g&&g.height,O=g&&g.width;this.id=R$(),this.ctx=c,this.canvas=g,this.width=O,this.height=B,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new zie,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function eee(r,a){let t;return function(...i){return a?(clearTimeout(t),t=setTimeout(r,a,i)):r.apply(this,i),a}}(ne=>this.update(ne),s.resizeDelay||0),this._dataChanges=[],zM[this.id]=this,c&&g?(Fg.listen(this,"complete",_Y),Fg.listen(this,"progress",nne),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:a,maintainAspectRatio:t},width:i,height:n,_aspectRatio:o}=this;return Qa(a)?t&&o?o:n?i/n:null:a}get data(){return this.config.data}set data(a){this.config.data=a}get options(){return this._options}set options(a){this.config.options=a}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():BR(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return hR(this.canvas,this.ctx),this}stop(){return Fg.stop(this),this}resize(a,t){Fg.running(this)?this._resizeBeforeDraw={width:a,height:t}:this._resize(a,t)}_resize(a,t){const i=this.options,s=this.platform.getMaximumSize(this.canvas,a,t,i.maintainAspectRatio&&this.aspectRatio),c=i.devicePixelRatio||this.platform.getDevicePixelRatio(),g=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,BR(this,c,!0)&&(this.notifyPlugins("resize",{size:s}),$s(i.onResize,[this,s],this),this.attached&&this._doResize(g)&&this.render())}ensureScalesHaveIDs(){Ps(this.options.scales||{},(i,n)=>{i.id=n})}buildOrUpdateScales(){const a=this.options,t=a.scales,i=this.scales,n=Object.keys(i).reduce((s,c)=>(s[c]=!1,s),{});let o=[];t&&(o=o.concat(Object.keys(t).map(s=>{const c=t[s],g=tP(s,c),B="r"===g,O="x"===g;return{options:c,dposition:B?"chartArea":O?"bottom":"left",dtype:B?"radialLinear":O?"category":"linear"}}))),Ps(o,s=>{const c=s.options,g=c.id,B=tP(g,c),O=aa(c.type,s.dtype);(void 0===c.position||fY(c.position,B)!==fY(s.dposition))&&(c.position=s.dposition),n[g]=!0;let ne=null;g in i&&i[g].type===O?ne=i[g]:(ne=new(Tp.getScale(O))({id:g,type:O,ctx:this.ctx,chart:this}),i[ne.id]=ne),ne.init(c,a)}),Ps(n,(s,c)=>{s||delete i[c]}),Ps(i,s=>{td.configure(this,s,s.options),td.addBox(this,s)})}_updateMetasets(){const a=this._metasets,t=this.data.datasets.length,i=a.length;if(a.sort((n,o)=>n.index-o.index),i>t){for(let n=t;nt.length&&delete this._stacks,a.forEach((i,n)=>{0===t.filter(o=>o===i._dataset).length&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){const a=[],t=this.data.datasets;let i,n;for(this._removeUnreferencedMetasets(),i=0,n=t.length;i{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(a){const t=this.config;t.update();const i=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:a,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let B=0,O=this.data.datasets.length;B{B.reset()}),this._updateDatasets(a),this.notifyPlugins("afterUpdate",{mode:a}),this._layers.sort(mY("z","_idx"));const{_active:c,_lastEvent:g}=this;g?this._eventHandler(g,!0):c.length&&this._updateHoverStyles(c,c,!0),this.render()}_updateScales(){Ps(this.scales,a=>{td.removeBox(this,a)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const a=this.options,t=new Set(Object.keys(this._listeners)),i=new Set(a.events);(!zL(t,i)||!!this._responsiveListeners!==a.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:a}=this,t=this._getUniformDataChanges()||[];for(const{method:i,start:n,count:o}of t)rne(a,n,"_removeElements"===i?-o:o)}_getUniformDataChanges(){const a=this._dataChanges;if(!a||!a.length)return;this._dataChanges=[];const t=this.data.datasets.length,i=o=>new Set(a.filter(s=>s[0]===o).map((s,c)=>c+","+s.splice(1).join(","))),n=i(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(a){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;td.update(this,this.width,this.height,a);const t=this.chartArea,i=t.width<=0||t.height<=0;this._layers=[],Ps(this.boxes,n=>{i&&"chartArea"===n.position||(n.configure&&n.configure(),this._layers.push(...n._layers()))},this),this._layers.forEach((n,o)=>{n._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(a){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:a,cancelable:!0})){for(let t=0,i=this.data.datasets.length;t=0;--t)this._drawDataset(a[t]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(a){const t=this.ctx,i=a._clip,n=!i.disabled,o=this.chartArea,s={meta:a,index:a.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",s)&&(n&&IM(t,{left:!1===i.left?0:o.left-i.left,right:!1===i.right?this.width:o.right+i.right,top:!1===i.top?0:o.top-i.top,bottom:!1===i.bottom?this.height:o.bottom+i.bottom}),a.controller.draw(),n&&kM(t),s.cancelable=!1,this.notifyPlugins("afterDatasetDraw",s))}isPointInArea(a){return eb(a,this.chartArea,this._minPadding)}getElementsAtEventForMode(a,t,i,n){const o=yie.modes[t];return"function"==typeof o?o(this,a,i,n):[]}getDatasetMeta(a){const t=this.data.datasets[a],i=this._metasets;let n=i.filter(o=>o&&o._dataset===t).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:a,_dataset:t,_parsed:[],_sorted:!1},i.push(n)),n}getContext(){return this.$context||(this.$context=lm(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(a){const t=this.data.datasets[a];if(!t)return!1;const i=this.getDatasetMeta(a);return"boolean"==typeof i.hidden?!i.hidden:!t.hidden}setDatasetVisibility(a,t){this.getDatasetMeta(a).hidden=!t}toggleDataVisibility(a){this._hiddenIndices[a]=!this._hiddenIndices[a]}getDataVisibility(a){return!this._hiddenIndices[a]}_updateVisibility(a,t,i){const n=i?"show":"hide",o=this.getDatasetMeta(a),s=o.controller._resolveAnimations(void 0,n);th(t)?(o.data[t].hidden=!i,this.update()):(this.setDatasetVisibility(a,i),s.update(o,{visible:i}),this.update(c=>c.datasetIndex===a?n:void 0))}hide(a,t){this._updateVisibility(a,t,!1)}show(a,t){this._updateVisibility(a,t,!0)}_destroyDatasetMeta(a){const t=this._metasets[a];t&&t.controller&&t.controller._destroy(),delete this._metasets[a]}_stop(){let a,t;for(this.stop(),Fg.remove(this),a=0,t=this.data.datasets.length;a{t.addEventListener(this,o,s),a[o]=s},n=(o,s,c)=>{o.offsetX=s,o.offsetY=c,this._eventHandler(o)};Ps(this.options.events,o=>i(o,n))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const a=this._responsiveListeners,t=this.platform,i=(g,B)=>{t.addEventListener(this,g,B),a[g]=B},n=(g,B)=>{a[g]&&(t.removeEventListener(this,g,B),delete a[g])},o=(g,B)=>{this.canvas&&this.resize(g,B)};let s;const c=()=>{n("attach",c),this.attached=!0,this.resize(),i("resize",o),i("detach",s)};s=()=>{this.attached=!1,n("resize",o),this._stop(),this._resize(0,0),i("attach",c)},t.isAttached(this.canvas)?c():s()}unbindEvents(){Ps(this._listeners,(a,t)=>{this.platform.removeEventListener(this,t,a)}),this._listeners={},Ps(this._responsiveListeners,(a,t)=>{this.platform.removeEventListener(this,t,a)}),this._responsiveListeners=void 0}updateHoverStyle(a,t,i){const n=i?"set":"remove";let o,s,c,g;for("dataset"===t&&(o=this.getDatasetMeta(a[0].datasetIndex),o.controller["_"+n+"DatasetHoverStyle"]()),c=0,g=a.length;c{const c=this.getDatasetMeta(o);if(!c)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:c.data[s],index:s}});!wM(i,t)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,t))}notifyPlugins(a,t,i){return this._plugins.notify(this,a,t,i)}_updateHoverStyles(a,t,i){const n=this.options.hover,o=(g,B)=>g.filter(O=>!B.some(ne=>O.datasetIndex===ne.datasetIndex&&O.index===ne.index)),s=o(t,a),c=i?a:o(a,t);s.length&&this.updateHoverStyle(s,n.mode,!1),c.length&&n.mode&&this.updateHoverStyle(c,n.mode,!0)}_eventHandler(a,t){const i={event:a,replay:t,cancelable:!0,inChartArea:this.isPointInArea(a)},n=s=>(s.options.events||this.options.events).includes(a.native.type);if(!1===this.notifyPlugins("beforeEvent",i,n))return;const o=this._handleEvent(a,t,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,n),(o||i.changed)&&this.render(),this}_handleEvent(a,t,i){const{_active:n=[],options:o}=this,c=this._getActiveElements(a,n,i,t),g=function G$(r){return"mouseup"===r.type||"click"===r.type||"contextmenu"===r.type}(a),B=function one(r,a,t,i){return t&&"mouseout"!==r.type?i?a:r:null}(a,this._lastEvent,i,g);i&&(this._lastEvent=null,$s(o.onHover,[a,c,this],this),g&&$s(o.onClick,[a,c,this],this));const O=!wM(c,n);return(O||t)&&(this._active=c,this._updateHoverStyles(c,n,t)),this._lastEvent=B,O}_getActiveElements(a,t,i,n){if("mouseout"===a.type)return[];if(!i)return t;const o=this.options.hover;return this.getElementsAtEventForMode(a,o.mode,o,n)}}const wY=()=>Ps(db.instances,r=>r._plugins.invalidate()),cm=!0;function CY(r,a,t){const{startAngle:i,pixelMargin:n,x:o,y:s,outerRadius:c,innerRadius:g}=a;let B=n/c;r.beginPath(),r.arc(o,s,c,i-B,t+B),g>n?(B=n/g,r.arc(o,s,g,t+B,i-B,!0)):r.arc(o,s,n,t+uc,i-uc),r.closePath(),r.clip()}function Hv(r,a,t,i){return{x:t+r*Math.cos(a),y:i+r*Math.sin(a)}}function iP(r,a,t,i,n,o){const{x:s,y:c,startAngle:g,pixelMargin:B,innerRadius:O}=a,ne=Math.max(a.outerRadius+i+t-B,0),we=O>0?O+i+t+B:0;let $e=0;const nt=n-g;if(i){const Cr=((O>0?O-i:0)+(ne>0?ne-i:0))/2;$e=(nt-(0!==Cr?nt*Cr/(Cr+i):nt))/2}const ei=(nt-Math.max(.001,nt*ne-t/Hl)/ne)/2,pi=g+ei+$e,Di=n-ei-$e,{outerStart:Ri,outerEnd:Wi,innerStart:Ki,innerEnd:vn}=function sne(r,a,t,i){const n=function ane(r){return zS(r,["outerStart","outerEnd","innerStart","innerEnd"])}(r.options.borderRadius),o=(t-a)/2,s=Math.min(o,i*a/2),c=g=>{const B=(t-Math.min(o,g))*i/2;return IA(g,0,Math.min(o,B))};return{outerStart:c(n.outerStart),outerEnd:c(n.outerEnd),innerStart:IA(n.innerStart,0,s),innerEnd:IA(n.innerEnd,0,s)}}(a,we,ne,Di-pi),gn=ne-Ri,Vn=ne-Wi,tr=pi+Ri/gn,pr=Di-Wi/Vn,go=we+Ki,no=we+vn,la=pi+Ki/go,Os=Di-vn/no;if(r.beginPath(),o){if(r.arc(s,c,ne,tr,pr),Wi>0){const Cr=Hv(Vn,pr,s,c);r.arc(Cr.x,Cr.y,Wi,pr,Di+uc)}const So=Hv(no,Di,s,c);if(r.lineTo(So.x,So.y),vn>0){const Cr=Hv(no,Os,s,c);r.arc(Cr.x,Cr.y,vn,Di+uc,Os+Math.PI)}if(r.arc(s,c,we,Di-vn/we,pi+Ki/we,!0),Ki>0){const Cr=Hv(go,la,s,c);r.arc(Cr.x,Cr.y,Ki,la+Math.PI,pi-uc)}const ur=Hv(gn,pi,s,c);if(r.lineTo(ur.x,ur.y),Ri>0){const Cr=Hv(gn,tr,s,c);r.arc(Cr.x,Cr.y,Ri,pi-uc,tr)}}else{r.moveTo(s,c);const So=Math.cos(tr)*ne+s,ur=Math.sin(tr)*ne+c;r.lineTo(So,ur);const Cr=Math.cos(pr)*ne+s,oo=Math.sin(pr)*ne+c;r.lineTo(Cr,oo)}r.closePath()}Object.defineProperties(db,{defaults:{enumerable:cm,value:Oa},instances:{enumerable:cm,value:zM},overrides:{enumerable:cm,value:P0},registry:{enumerable:cm,value:Tp},version:{enumerable:cm,value:"3.9.1"},getChart:{enumerable:cm,value:yY},register:{enumerable:cm,value:(...r)=>{Tp.add(...r),wY()}},unregister:{enumerable:cm,value:(...r)=>{Tp.remove(...r),wY()}}});class ub extends Hh{constructor(a){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,a&&Object.assign(this,a)}inRange(a,t,i){const n=this.getProps(["x","y"],i),{angle:o,distance:s}=jL(n,{x:a,y:t}),{startAngle:c,endAngle:g,innerRadius:B,outerRadius:O,circumference:ne}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),we=this.options.spacing/2,nt=aa(ne,g-c)>=el||WC(o,c,g),Ft=Qg(s,B+we,O+we);return nt&&Ft}getCenterPoint(a){const{x:t,y:i,startAngle:n,endAngle:o,innerRadius:s,outerRadius:c}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],a),{offset:g,spacing:B}=this.options,O=(n+o)/2,ne=(s+c+B+g)/2;return{x:t+Math.cos(O)*ne,y:i+Math.sin(O)*ne}}tooltipPosition(a){return this.getCenterPoint(a)}draw(a){const{options:t,circumference:i}=this,n=(t.offset||0)/2,o=(t.spacing||0)/2,s=t.circular;if(this.pixelMargin="inner"===t.borderAlign?.33:0,this.fullCircles=i>el?Math.floor(i/el):0,0===i||this.innerRadius<0||this.outerRadius<0)return;a.save();let c=0;if(n){c=n/2;const B=(this.startAngle+this.endAngle)/2;a.translate(Math.cos(B)*c,Math.sin(B)*c),this.circumference>=Hl&&(c=n)}a.fillStyle=t.backgroundColor,a.strokeStyle=t.borderColor;const g=function lne(r,a,t,i,n){const{fullCircles:o,startAngle:s,circumference:c}=a;let g=a.endAngle;if(o){iP(r,a,t,i,s+el,n);for(let B=0;Bc&&o>c)?i+B-g:B-g}}function hne(r,a,t,i){const{points:n,options:o}=a,{count:s,start:c,loop:g,ilen:B}=xY(n,t,i),O=function une(r){return r.stepped?Mee:r.tension||"monotone"===r.cubicInterpolationMode?Dee:dne}(o);let $e,nt,Ft,{move:ne=!0,reverse:we}=i||{};for($e=0;$e<=B;++$e)nt=n[(c+(we?B-$e:$e))%s],!nt.skip&&(ne?(r.moveTo(nt.x,nt.y),ne=!1):O(r,Ft,nt,we,o.stepped),Ft=nt);return g&&(nt=n[(c+(we?B:0))%s],O(r,Ft,nt,we,o.stepped)),!!g}function pne(r,a,t,i){const n=a.points,{count:o,start:s,ilen:c}=xY(n,t,i),{move:g=!0,reverse:B}=i||{};let we,$e,nt,Ft,ei,pi,O=0,ne=0;const Di=Wi=>(s+(B?c-Wi:Wi))%o,Ri=()=>{Ft!==ei&&(r.lineTo(O,ei),r.lineTo(O,Ft),r.lineTo(O,pi))};for(g&&($e=n[Di(0)],r.moveTo($e.x,$e.y)),we=0;we<=c;++we){if($e=n[Di(we)],$e.skip)continue;const Wi=$e.x,Ki=$e.y,vn=0|Wi;vn===nt?(Kiei&&(ei=Ki),O=(ne*O+Wi)/++ne):(Ri(),r.lineTo(Wi,Ki),nt=vn,ne=0,Ft=ei=Ki),pi=Ki}Ri()}function nP(r){const a=r.options;return r._decimated||r._loop||a.tension||"monotone"===a.cubicInterpolationMode||a.stepped||a.borderDash&&a.borderDash.length?hne:pne}ub.id="arc",ub.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0},ub.defaultRoutes={backgroundColor:"backgroundColor"};const _ne="function"==typeof Path2D;let HM=(()=>{class r extends Hh{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,i){const n=this.options;!n.tension&&"monotone"!==n.cubicInterpolationMode||n.stepped||this._pointsUpdated||(qee(this._points,n,t,n.spanGaps?this._loop:this._fullLoop,i),this._pointsUpdated=!0)}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function hte(r,a){const t=r.points,i=r.options.spanGaps,n=t.length;if(!n)return[];const o=!!r._loop,{start:s,end:c}=function dte(r,a,t,i){let n=0,o=a-1;if(t&&!i)for(;nn&&r[o%a].skip;)o--;return o%=a,{start:n,end:o}}(t,n,o,i);return function PR(r,a,t,i){return i&&i.setContext&&t?function pte(r,a,t,i){const n=r._chart.getContext(),o=FR(r.options),{_datasetIndex:s,options:{spanGaps:c}}=r,g=t.length,B=[];let O=o,ne=a[0].start,we=ne;function $e(nt,Ft,ei,pi){const Di=c?-1:1;if(nt!==Ft){for(nt+=g;t[nt%g].skip;)nt-=Di;for(;t[Ft%g].skip;)Ft+=Di;nt%g!=Ft%g&&(B.push({start:nt%g,end:Ft%g,loop:ei,style:pi}),O=pi,ne=Ft%g)}}for(const nt of a){ne=c?ne:nt.start;let ei,Ft=t[ne%g];for(we=ne+1;we<=nt.end;we++){const pi=t[we%g];ei=FR(i.setContext(lm(n,{type:"segment",p0:Ft,p1:pi,p0DataIndex:(we-1)%g,p1DataIndex:we%g,datasetIndex:s}))),gte(ei,O)&&$e(ne,we-1,nt.loop,O),Ft=pi,O=ei}ne"borderDash"!==a&&"fill"!==a},r})();function BY(r,a,t,i){const n=r.options,{[t]:o}=r.getProps([t],i);return Math.abs(a-o){class r extends Hh{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,i,n){const o=this.options,{x:s,y:c}=this.getProps(["x","y"],n);return Math.pow(t-s,2)+Math.pow(i-c,2){DY(a)})}var Tne={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(r,a,t)=>{if(!t.enabled)return void TY(r);const i=r.width;r.data.datasets.forEach((n,o)=>{const{_data:s,indexAxis:c}=n,g=r.getDatasetMeta(o),B=s||n.data;if("y"===Il([c,r.options.indexAxis])||!g.controller.supportsDecimation)return;const O=r.scales[g.xAxisID];if("linear"!==O.type&&"time"!==O.type||r.options.parsing)return;let nt,{start:ne,count:we}=function Dne(r,a){const t=a.length;let n,i=0;const{iScale:o}=r,{min:s,max:c,minDefined:g,maxDefined:B}=o.getUserBounds();return g&&(i=IA(Sg(a,o.axis,s).lo,0,t-1)),n=B?IA(Sg(a,o.axis,c).hi+1,i,t)-i:t-i,{start:i,count:n}}(g,B);if(we<=(t.threshold||4*i))DY(n);else{switch(Qa(s)&&(n._data=B,delete n.data,Object.defineProperty(n,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(Ft){this._data=Ft}})),t.algorithm){case"lttb":nt=function Ene(r,a,t,i,n){const o=n.samples||i;if(o>=t)return r.slice(a,a+t);const s=[],c=(t-2)/(o-2);let g=0;const B=a+t-1;let ne,we,$e,nt,Ft,O=a;for(s[g++]=r[O],ne=0;ne$e&&($e=nt,we=r[Di],Ft=Di);s[g++]=we,O=Ft}return s[g++]=r[B],s}(B,ne,we,i,t);break;case"min-max":nt=function Mne(r,a,t,i){let s,c,g,B,O,ne,we,$e,nt,Ft,n=0,o=0;const ei=[],Di=r[a].x,Wi=r[a+t-1].x-Di;for(s=a;sFt&&(Ft=B,we=s),n=(o*n+c.x)/++o;else{const vn=s-1;if(!Qa(ne)&&!Qa(we)){const gn=Math.min(ne,we),Vn=Math.max(ne,we);gn!==$e&&gn!==vn&&ei.push({...r[gn],x:n}),Vn!==$e&&Vn!==vn&&ei.push({...r[Vn],x:n})}s>0&&vn!==$e&&ei.push(r[vn]),ei.push(c),O=Ki,o=0,nt=Ft=B,ne=we=$e=s}}return ei}(B,ne,we,i);break;default:throw new Error(`Unsupported decimation algorithm '${t.algorithm}'`)}n._decimated=nt}})},destroy(r){TY(r)}};function aP(r,a,t,i){if(i)return;let n=a[r],o=t[r];return"angle"===r&&(n=Cu(n),o=Cu(o)),{property:r,start:n,end:o}}function sP(r,a,t){for(;a>r;a--){const i=t[a];if(!isNaN(i.x)&&!isNaN(i.y))break}return a}function IY(r,a,t,i){return r&&a?i(r[t],a[t]):r?r[t]:a?a[t]:0}function kY(r,a){let t=[],i=!1;return ml(r)?(i=!0,t=r):t=function kne(r,a){const{x:t=null,y:i=null}=r||{},n=a.points,o=[];return a.segments.forEach(({start:s,end:c})=>{c=sP(s,c,n);const g=n[s],B=n[c];null!==i?(o.push({x:g.x,y:i}),o.push({x:B.x,y:i})):null!==t&&(o.push({x:t,y:g.y}),o.push({x:t,y:B.y}))}),o}(r,a),t.length?new HM({points:t,options:{tension:0},_loop:i,_fullLoop:i}):null}function QY(r){return r&&!1!==r.fill}function Qne(r,a,t){let n=r[a].fill;const o=[a];let s;if(!t)return n;for(;!1!==n&&-1===o.indexOf(n);){if(!Bc(n))return n;if(s=r[n],!s)return!1;if(s.visible)return n;o.push(n),n=s.fill}return!1}function Sne(r,a,t){const i=function Lne(r){const a=r.options,t=a.fill;let i=aa(t&&t.target,t);return void 0===i&&(i=!!a.backgroundColor),!1!==i&&null!==i&&(!0===i?"origin":i)}(r);if(Fa(i))return!isNaN(i.value)&&i;let n=parseFloat(i);return Bc(n)&&Math.floor(n)===n?function Pne(r,a,t,i){return("-"===r||"+"===r)&&(t=a+t),!(t===a||t<0||t>=i)&&t}(i[0],a,n,t):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function Nne(r,a,t){const i=[];for(let n=0;n=0;--s){const c=n[s].$filler;c&&(c.line.updateControlPoints(o,c.axis),i&&c.fill&&lP(r.ctx,c,o))}},beforeDatasetsDraw(r,a,t){if("beforeDatasetsDraw"!==t.drawTime)return;const i=r.getSortedVisibleDatasetMetas();for(let n=i.length-1;n>=0;--n){const o=i[n].$filler;QY(o)&&lP(r.ctx,o,r.chartArea)}},beforeDatasetDraw(r,a,t){const i=a.meta.$filler;!QY(i)||"beforeDatasetDraw"!==t.drawTime||lP(r.ctx,i,r.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const LY=(r,a)=>{let{boxHeight:t=a,boxWidth:i=a}=r;return r.usePointStyle&&(t=Math.min(t,a),i=r.pointStyleWidth||Math.min(i,a)),{boxWidth:i,boxHeight:t,itemHeight:Math.max(a,t)}};class RY extends Hh{constructor(a){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=a.chart,this.options=a.options,this.ctx=a.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(a,t,i){this.maxWidth=a,this.maxHeight=t,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const a=this.options.labels||{};let t=$s(a.generateLabels,[this.chart],this)||[];a.filter&&(t=t.filter(i=>a.filter(i,this.chart.data))),a.sort&&(t=t.sort((i,n)=>a.sort(i,n,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){const{options:a,ctx:t}=this;if(!a.display)return void(this.width=this.height=0);const i=a.labels,n=Jc(i.font),o=n.size,s=this._computeTitleHeight(),{boxWidth:c,itemHeight:g}=LY(i,o);let B,O;t.font=n.string,this.isHorizontal()?(B=this.maxWidth,O=this._fitRows(s,o,c,g)+10):(O=this.maxHeight,B=this._fitCols(s,o,c,g)+10),this.width=Math.min(B,a.maxWidth||this.maxWidth),this.height=Math.min(O,a.maxHeight||this.maxHeight)}_fitRows(a,t,i,n){const{ctx:o,maxWidth:s,options:{labels:{padding:c}}}=this,g=this.legendHitBoxes=[],B=this.lineWidths=[0],O=n+c;let ne=a;o.textAlign="left",o.textBaseline="middle";let we=-1,$e=-O;return this.legendItems.forEach((nt,Ft)=>{const ei=i+t/2+o.measureText(nt.text).width;(0===Ft||B[B.length-1]+ei+2*c>s)&&(ne+=O,B[B.length-(Ft>0?0:1)]=0,$e+=O,we++),g[Ft]={left:0,top:$e,row:we,width:ei,height:n},B[B.length-1]+=ei+c}),ne}_fitCols(a,t,i,n){const{ctx:o,maxHeight:s,options:{labels:{padding:c}}}=this,g=this.legendHitBoxes=[],B=this.columnSizes=[],O=s-a;let ne=c,we=0,$e=0,nt=0,Ft=0;return this.legendItems.forEach((ei,pi)=>{const Di=i+t/2+o.measureText(ei.text).width;pi>0&&$e+n+2*c>O&&(ne+=we+c,B.push({width:we,height:$e}),nt+=we+c,Ft++,we=$e=0),g[pi]={left:nt,top:$e,col:Ft,width:Di,height:n},we=Math.max(we,Di),$e+=n+c}),ne+=we,B.push({width:we,height:$e}),ne}adjustHitBoxes(){if(!this.options.display)return;const a=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:i,labels:{padding:n},rtl:o}}=this,s=zv(o,this.left,this.width);if(this.isHorizontal()){let c=0,g=ed(i,this.left+n,this.right-this.lineWidths[c]);for(const B of t)c!==B.row&&(c=B.row,g=ed(i,this.left+n,this.right-this.lineWidths[c])),B.top+=this.top+a+n,B.left=s.leftForLtr(s.x(g),B.width),g+=B.width+n}else{let c=0,g=ed(i,this.top+a+n,this.bottom-this.columnSizes[c].height);for(const B of t)B.col!==c&&(c=B.col,g=ed(i,this.top+a+n,this.bottom-this.columnSizes[c].height)),B.top=g,B.left+=this.left+n,B.left=s.leftForLtr(s.x(B.left),B.width),g+=B.height+n}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const a=this.ctx;IM(a,this),this._draw(),kM(a)}}_draw(){const{options:a,columnSizes:t,lineWidths:i,ctx:n}=this,{align:o,labels:s}=a,c=Oa.color,g=zv(a.rtl,this.left,this.width),B=Jc(s.font),{color:O,padding:ne}=s,we=B.size,$e=we/2;let nt;this.drawTitle(),n.textAlign=g.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=B.string;const{boxWidth:Ft,boxHeight:ei,itemHeight:pi}=LY(s,we),Wi=this.isHorizontal(),Ki=this._computeTitleHeight();nt=Wi?{x:ed(o,this.left+ne,this.right-i[0]),y:this.top+ne+Ki,line:0}:{x:this.left+ne,y:ed(o,this.top+Ki+ne,this.bottom-t[0].height),line:0},DR(this.ctx,a.textDirection);const vn=pi+ne;this.legendItems.forEach((gn,Vn)=>{n.strokeStyle=gn.fontColor||O,n.fillStyle=gn.fontColor||O;const tr=n.measureText(gn.text).width,pr=g.textAlign(gn.textAlign||(gn.textAlign=s.textAlign)),go=Ft+$e+tr;let no=nt.x,la=nt.y;g.setWidth(this.width),Wi?Vn>0&&no+go+ne>this.right&&(la=nt.y+=vn,nt.line++,no=nt.x=ed(o,this.left+ne,this.right-i[nt.line])):Vn>0&&la+vn>this.bottom&&(no=nt.x=no+t[nt.line].width+ne,nt.line++,la=nt.y=ed(o,this.top+Ki+ne,this.bottom-t[nt.line].height)),function(gn,Vn,tr){if(isNaN(Ft)||Ft<=0||isNaN(ei)||ei<0)return;n.save();const pr=aa(tr.lineWidth,1);if(n.fillStyle=aa(tr.fillStyle,c),n.lineCap=aa(tr.lineCap,"butt"),n.lineDashOffset=aa(tr.lineDashOffset,0),n.lineJoin=aa(tr.lineJoin,"miter"),n.lineWidth=pr,n.strokeStyle=aa(tr.strokeStyle,c),n.setLineDash(aa(tr.lineDash,[])),s.usePointStyle){const go={radius:ei*Math.SQRT2/2,pointStyle:tr.pointStyle,rotation:tr.rotation,borderWidth:pr},no=g.xPlus(gn,Ft/2);pR(n,go,no,Vn+$e,s.pointStyleWidth&&Ft)}else{const go=Vn+Math.max((we-ei)/2,0),no=g.leftForLtr(gn,Ft),la=L0(tr.borderRadius);n.beginPath(),Object.values(la).some(Os=>0!==Os)?tb(n,{x:no,y:go,w:Ft,h:ei,radius:la}):n.rect(no,go,Ft,ei),n.fill(),0!==pr&&n.stroke()}n.restore()}(g.x(no),la,gn),no=((r,a,t,i)=>r===(i?"left":"right")?t:"center"===r?(a+t)/2:a)(pr,no+Ft+$e,Wi?no+go:this.right,a.rtl),function(gn,Vn,tr){O0(n,tr.text,gn,Vn+pi/2,B,{strikethrough:tr.hidden,textAlign:g.textAlign(tr.textAlign)})}(g.x(no),la,gn),Wi?nt.x+=go+ne:nt.y+=vn}),TR(this.ctx,a.textDirection)}drawTitle(){const a=this.options,t=a.title,i=Jc(t.font),n=zA(t.padding);if(!t.display)return;const o=zv(a.rtl,this.left,this.width),s=this.ctx,c=t.position,B=n.top+i.size/2;let O,ne=this.left,we=this.width;if(this.isHorizontal())we=Math.max(...this.lineWidths),O=this.top+B,ne=ed(a.align,ne,this.right-we);else{const nt=this.columnSizes.reduce((Ft,ei)=>Math.max(Ft,ei.height),0);O=B+ed(a.align,this.top,this.bottom-nt-a.labels.padding-this._computeTitleHeight())}const $e=ed(c,ne,ne+we);s.textAlign=o.textAlign(QS(c)),s.textBaseline="middle",s.strokeStyle=t.color,s.fillStyle=t.color,s.font=i.string,O0(s,t.text,$e,O,i)}_computeTitleHeight(){const a=this.options.title,t=Jc(a.font),i=zA(a.padding);return a.display?t.lineHeight+i.height:0}_getLegendItemAt(a,t){let i,n,o;if(Qg(a,this.left,this.right)&&Qg(t,this.top,this.bottom))for(o=this.legendHitBoxes,i=0;inull!==r&&null!==a&&r.datasetIndex===a.datasetIndex&&r.index===a.index)(n,i);n&&!o&&$s(t.onLeave,[a,n,this],this),this._hoveredItem=i,i&&!o&&$s(t.onHover,[a,i,this],this)}else i&&$s(t.onClick,[a,i,this],this)}}var Xne={id:"legend",_element:RY,start(r,a,t){const i=r.legend=new RY({ctx:r.ctx,options:t,chart:r});td.configure(r,i,t),td.addBox(r,i)},stop(r){td.removeBox(r,r.legend),delete r.legend},beforeUpdate(r,a,t){const i=r.legend;td.configure(r,i,t),i.options=t},afterUpdate(r){const a=r.legend;a.buildLabels(),a.adjustHitBoxes()},afterEvent(r,a){a.replay||r.legend.handleEvent(a.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(r,a,t){const i=a.datasetIndex,n=t.chart;n.isDatasetVisible(i)?(n.hide(i),a.hidden=!0):(n.show(i),a.hidden=!1)},onHover:null,onLeave:null,labels:{color:r=>r.chart.options.color,boxWidth:40,padding:10,generateLabels(r){const a=r.data.datasets,{labels:{usePointStyle:t,pointStyle:i,textAlign:n,color:o}}=r.legend.options;return r._getSortedDatasetMetas().map(s=>{const c=s.controller.getStyle(t?0:void 0),g=zA(c.borderWidth);return{text:a[s.index].label,fillStyle:c.backgroundColor,fontColor:o,hidden:!s.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(g.width+g.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:n||c.textAlign,borderRadius:0,datasetIndex:s.index}},this)}},title:{color:r=>r.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:r=>!r.startsWith("on"),labels:{_scriptable:r=>!["generateLabels","filter","sort"].includes(r)}}};class cP extends Hh{constructor(a){super(),this.chart=a.chart,this.options=a.options,this.ctx=a.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(a,t){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=a,this.height=this.bottom=t;const n=ml(i.text)?i.text.length:1;this._padding=zA(i.padding);const o=n*Jc(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const a=this.options.position;return"top"===a||"bottom"===a}_drawArgs(a){const{top:t,left:i,bottom:n,right:o,options:s}=this,c=s.align;let B,O,ne,g=0;return this.isHorizontal()?(O=ed(c,i,o),ne=t+a,B=o-i):("left"===s.position?(O=i+a,ne=ed(c,n,t),g=-.5*Hl):(O=o-a,ne=ed(c,t,n),g=.5*Hl),B=n-t),{titleX:O,titleY:ne,maxWidth:B,rotation:g}}draw(){const a=this.ctx,t=this.options;if(!t.display)return;const i=Jc(t.font),o=i.lineHeight/2+this._padding.top,{titleX:s,titleY:c,maxWidth:g,rotation:B}=this._drawArgs(o);O0(a,t.text,0,0,i,{color:t.color,maxWidth:g,rotation:B,textAlign:QS(t.align),textBaseline:"middle",translation:[s,c]})}}var ere={id:"title",_element:cP,start(r,a,t){!function $ne(r,a){const t=new cP({ctx:r.ctx,options:a,chart:r});td.configure(r,t,a),td.addBox(r,t),r.titleBlock=t}(r,t)},stop(r){td.removeBox(r,r.titleBlock),delete r.titleBlock},beforeUpdate(r,a,t){const i=r.titleBlock;td.configure(r,i,t),i.options=t},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const GM=new WeakMap;var tre={id:"subtitle",start(r,a,t){const i=new cP({ctx:r.ctx,options:t,chart:r});td.configure(r,i,t),td.addBox(r,i),GM.set(r,i)},stop(r){td.removeBox(r,GM.get(r)),GM.delete(r)},beforeUpdate(r,a,t){const i=GM.get(r);td.configure(r,i,t),i.options=t},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const pb={average(r){if(!r.length)return!1;let a,t,i=0,n=0,o=0;for(a=0,t=r.length;a-1?r.split("\n"):r}function ire(r,a){const{element:t,datasetIndex:i,index:n}=a,o=r.getDatasetMeta(i).controller,{label:s,value:c}=o.getLabelAndValue(n);return{chart:r,label:s,parsed:o.getParsed(n),raw:r.data.datasets[i].data[n],formattedValue:c,dataset:o.getDataset(),dataIndex:n,datasetIndex:i,element:t}}function YY(r,a){const t=r.chart.ctx,{body:i,footer:n,title:o}=r,{boxWidth:s,boxHeight:c}=a,g=Jc(a.bodyFont),B=Jc(a.titleFont),O=Jc(a.footerFont),ne=o.length,we=n.length,$e=i.length,nt=zA(a.padding);let Ft=nt.height,ei=0,pi=i.reduce((Wi,Ki)=>Wi+Ki.before.length+Ki.lines.length+Ki.after.length,0);pi+=r.beforeBody.length+r.afterBody.length,ne&&(Ft+=ne*B.lineHeight+(ne-1)*a.titleSpacing+a.titleMarginBottom),pi&&(Ft+=$e*(a.displayColors?Math.max(c,g.lineHeight):g.lineHeight)+(pi-$e)*g.lineHeight+(pi-1)*a.bodySpacing),we&&(Ft+=a.footerMarginTop+we*O.lineHeight+(we-1)*a.footerSpacing);let Di=0;const Ri=function(Wi){ei=Math.max(ei,t.measureText(Wi).width+Di)};return t.save(),t.font=B.string,Ps(r.title,Ri),t.font=g.string,Ps(r.beforeBody.concat(r.afterBody),Ri),Di=a.displayColors?s+2+a.boxPadding:0,Ps(i,Wi=>{Ps(Wi.before,Ri),Ps(Wi.lines,Ri),Ps(Wi.after,Ri)}),Di=0,t.font=O.string,Ps(r.footer,Ri),t.restore(),ei+=nt.width,{width:ei,height:Ft}}function ore(r,a,t,i){const{x:n,width:o}=t,{width:s,chartArea:{left:c,right:g}}=r;let B="center";return"center"===i?B=n<=(c+g)/2?"left":"right":n<=o/2?B="left":n>=s-o/2&&(B="right"),function rre(r,a,t,i){const{x:n,width:o}=i,s=t.caretSize+t.caretPadding;if("left"===r&&n+o+s>a.width||"right"===r&&n-o-s<0)return!0}(B,r,a,t)&&(B="center"),B}function NY(r,a,t){const i=t.yAlign||a.yAlign||function nre(r,a){const{y:t,height:i}=a;return tr.height-i/2?"bottom":"center"}(r,t);return{xAlign:t.xAlign||a.xAlign||ore(r,a,t,i),yAlign:i}}function UY(r,a,t,i){const{caretSize:n,caretPadding:o,cornerRadius:s}=r,{xAlign:c,yAlign:g}=t,B=n+o,{topLeft:O,topRight:ne,bottomLeft:we,bottomRight:$e}=L0(s);let nt=function are(r,a){let{x:t,width:i}=r;return"right"===a?t-=i:"center"===a&&(t-=i/2),t}(a,c);const Ft=function sre(r,a,t){let{y:i,height:n}=r;return"top"===a?i+=t:i-="bottom"===a?n+t:n/2,i}(a,g,B);return"center"===g?"left"===c?nt+=B:"right"===c&&(nt-=B):"left"===c?nt-=Math.max(O,we)+n:"right"===c&&(nt+=Math.max(ne,$e)+n),{x:IA(nt,0,i.width-a.width),y:IA(Ft,0,i.height-a.height)}}function ZM(r,a,t){const i=zA(t.padding);return"center"===a?r.x+r.width/2:"right"===a?r.x+r.width-i.right:r.x+i.left}function zY(r){return Ip([],Og(r))}function HY(r,a){const t=a&&a.dataset&&a.dataset.tooltip&&a.dataset.tooltip.callbacks;return t?r.override(t):r}let GY=(()=>{class r extends Hh{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const i=this.chart,n=this.options.setContext(this.getContext()),o=n.enabled&&i.options.animation&&n.animations,s=new LR(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=function lre(r,a,t){return lm(r,{tooltip:a,tooltipItems:t,type:"tooltip"})}(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,i){const{callbacks:n}=i,o=n.beforeTitle.apply(this,[t]),s=n.title.apply(this,[t]),c=n.afterTitle.apply(this,[t]);let g=[];return g=Ip(g,Og(o)),g=Ip(g,Og(s)),g=Ip(g,Og(c)),g}getBeforeBody(t,i){return zY(i.callbacks.beforeBody.apply(this,[t]))}getBody(t,i){const{callbacks:n}=i,o=[];return Ps(t,s=>{const c={before:[],lines:[],after:[]},g=HY(n,s);Ip(c.before,Og(g.beforeLabel.call(this,s))),Ip(c.lines,g.label.call(this,s)),Ip(c.after,Og(g.afterLabel.call(this,s))),o.push(c)}),o}getAfterBody(t,i){return zY(i.callbacks.afterBody.apply(this,[t]))}getFooter(t,i){const{callbacks:n}=i,o=n.beforeFooter.apply(this,[t]),s=n.footer.apply(this,[t]),c=n.afterFooter.apply(this,[t]);let g=[];return g=Ip(g,Og(o)),g=Ip(g,Og(s)),g=Ip(g,Og(c)),g}_createItems(t){const i=this._active,n=this.chart.data,o=[],s=[],c=[];let B,O,g=[];for(B=0,O=i.length;Bt.filter(ne,we,$e,n))),t.itemSort&&(g=g.sort((ne,we)=>t.itemSort(ne,we,n))),Ps(g,ne=>{const we=HY(t.callbacks,ne);o.push(we.labelColor.call(this,ne)),s.push(we.labelPointStyle.call(this,ne)),c.push(we.labelTextColor.call(this,ne))}),this.labelColors=o,this.labelPointStyles=s,this.labelTextColors=c,this.dataPoints=g,g}update(t,i){const n=this.options.setContext(this.getContext()),o=this._active;let s,c=[];if(o.length){const g=pb[n.position].call(this,o,this._eventPosition);c=this._createItems(n),this.title=this.getTitle(c,n),this.beforeBody=this.getBeforeBody(c,n),this.body=this.getBody(c,n),this.afterBody=this.getAfterBody(c,n),this.footer=this.getFooter(c,n);const B=this._size=YY(this,n),O=Object.assign({},g,B),ne=NY(this.chart,n,O),we=UY(n,O,ne,this.chart);this.xAlign=ne.xAlign,this.yAlign=ne.yAlign,s={opacity:1,x:we.x,y:we.y,width:B.width,height:B.height,caretX:g.x,caretY:g.y}}else 0!==this.opacity&&(s={opacity:0});this._tooltipItems=c,this.$context=void 0,s&&this._resolveAnimations().update(this,s),t&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:i})}drawCaret(t,i,n,o){const s=this.getCaretPosition(t,n,o);i.lineTo(s.x1,s.y1),i.lineTo(s.x2,s.y2),i.lineTo(s.x3,s.y3)}getCaretPosition(t,i,n){const{xAlign:o,yAlign:s}=this,{caretSize:c,cornerRadius:g}=n,{topLeft:B,topRight:O,bottomLeft:ne,bottomRight:we}=L0(g),{x:$e,y:nt}=t,{width:Ft,height:ei}=i;let pi,Di,Ri,Wi,Ki,vn;return"center"===s?(Ki=nt+ei/2,"left"===o?(pi=$e,Di=pi-c,Wi=Ki+c,vn=Ki-c):(pi=$e+Ft,Di=pi+c,Wi=Ki-c,vn=Ki+c),Ri=pi):(Di="left"===o?$e+Math.max(B,ne)+c:"right"===o?$e+Ft-Math.max(O,we)-c:this.caretX,"top"===s?(Wi=nt,Ki=Wi-c,pi=Di-c,Ri=Di+c):(Wi=nt+ei,Ki=Wi+c,pi=Di+c,Ri=Di-c),vn=Wi),{x1:pi,x2:Di,x3:Ri,y1:Wi,y2:Ki,y3:vn}}drawTitle(t,i,n){const o=this.title,s=o.length;let c,g,B;if(s){const O=zv(n.rtl,this.x,this.width);for(t.x=ZM(this,n.titleAlign,n),i.textAlign=O.textAlign(n.titleAlign),i.textBaseline="middle",c=Jc(n.titleFont),g=n.titleSpacing,i.fillStyle=n.titleColor,i.font=c.string,B=0;B0!==Wi)?(t.beginPath(),t.fillStyle=s.multiKeyBackground,tb(t,{x:pi,y:ei,w:O,h:B,radius:Ri}),t.fill(),t.stroke(),t.fillStyle=c.backgroundColor,t.beginPath(),tb(t,{x:Di,y:ei+1,w:O-2,h:B-2,radius:Ri}),t.fill()):(t.fillStyle=s.multiKeyBackground,t.fillRect(pi,ei,O,B),t.strokeRect(pi,ei,O,B),t.fillStyle=c.backgroundColor,t.fillRect(Di,ei+1,O-2,B-2))}t.fillStyle=this.labelTextColors[n]}drawBody(t,i,n){const{body:o}=this,{bodySpacing:s,bodyAlign:c,displayColors:g,boxHeight:B,boxWidth:O,boxPadding:ne}=n,we=Jc(n.bodyFont);let $e=we.lineHeight,nt=0;const Ft=zv(n.rtl,this.x,this.width),ei=function(tr){i.fillText(tr,Ft.x(t.x+nt),t.y+$e/2),t.y+=$e+s},pi=Ft.textAlign(c);let Di,Ri,Wi,Ki,vn,gn,Vn;for(i.textAlign=c,i.textBaseline="middle",i.font=we.string,t.x=ZM(this,pi,n),i.fillStyle=n.bodyColor,Ps(this.beforeBody,ei),nt=g&&"right"!==pi?"center"===c?O/2+ne:O+2+ne:0,Ki=0,gn=o.length;Ki0&&i.stroke()}_updateAnimationTarget(t){const i=this.chart,n=this.$animations,o=n&&n.x,s=n&&n.y;if(o||s){const c=pb[t.position].call(this,this._active,this._eventPosition);if(!c)return;const g=this._size=YY(this,t),B=Object.assign({},c,this._size),O=NY(i,t,B),ne=UY(t,B,O,i);(o._to!==ne.x||s._to!==ne.y)&&(this.xAlign=O.xAlign,this.yAlign=O.yAlign,this.width=g.width,this.height=g.height,this.caretX=c.x,this.caretY=c.y,this._resolveAnimations().update(this,ne))}}_willRender(){return!!this.opacity}draw(t){const i=this.options.setContext(this.getContext());let n=this.opacity;if(!n)return;this._updateAnimationTarget(i);const o={width:this.width,height:this.height},s={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;const c=zA(i.padding);i.enabled&&(this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length)&&(t.save(),t.globalAlpha=n,this.drawBackground(s,t,o,i),DR(t,i.textDirection),s.y+=c.top,this.drawTitle(s,t,i),this.drawBody(s,t,i),this.drawFooter(s,t,i),TR(t,i.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,i){const n=this._active,o=t.map(({datasetIndex:g,index:B})=>{const O=this.chart.getDatasetMeta(g);if(!O)throw new Error("Cannot find a dataset at index "+g);return{datasetIndex:g,element:O.data[B],index:B}}),s=!wM(n,o),c=this._positionChanged(o,i);(s||c)&&(this._active=o,this._eventPosition=i,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,i,n=!0){if(i&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,s=this._active||[],c=this._getActiveElements(t,s,i,n),g=this._positionChanged(c,t),B=i||!wM(c,s)||g;return B&&(this._active=c,(o.enabled||o.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,i))),B}_getActiveElements(t,i,n,o){const s=this.options;if("mouseout"===t.type)return[];if(!o)return i;const c=this.chart.getElementsAtEventForMode(t,s.mode,s,n);return s.reverse&&c.reverse(),c}_positionChanged(t,i){const{caretX:n,caretY:o,options:s}=this,c=pb[s.position].call(this,t,i);return!1!==c&&(n!==c.x||o!==c.y)}}return r.positioners=pb,r})();var cre={id:"tooltip",_element:GY,positioners:pb,afterInit(r,a,t){t&&(r.tooltip=new GY({chart:r,options:t}))},beforeUpdate(r,a,t){r.tooltip&&r.tooltip.initialize(t)},reset(r,a,t){r.tooltip&&r.tooltip.initialize(t)},afterDraw(r){const a=r.tooltip;if(a&&a._willRender()){const t={tooltip:a};if(!1===r.notifyPlugins("beforeTooltipDraw",t))return;a.draw(r.ctx),r.notifyPlugins("afterTooltipDraw",t)}},afterEvent(r,a){r.tooltip&&r.tooltip.handleEvent(a.event,a.replay,a.inChartArea)&&(a.changed=!0)},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(r,a)=>a.bodyFont.size,boxWidth:(r,a)=>a.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:kg,title(r){if(r.length>0){const a=r[0],t=a.chart.data.labels,i=t?t.length:0;if(this&&this.options&&"dataset"===this.options.mode)return a.dataset.label||"";if(a.label)return a.label;if(i>0&&a.dataIndex"filter"!==r&&"itemSort"!==r&&"external"!==r,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Are=Object.freeze({__proto__:null,Decimation:Tne,Filler:Wne,Legend:Xne,SubTitle:tre,Title:ere,Tooltip:cre});class JM extends U0{constructor(a){super(a),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(a){const t=this._addedLabels;if(t.length){const i=this.getLabels();for(const{index:n,label:o}of t)i[n]===o&&i.splice(n,1);this._addedLabels=[]}super.init(a)}parse(a,t){if(Qa(a))return null;const i=this.getLabels();return((r,a)=>null===r?null:IA(Math.round(r),0,a))(t=isFinite(t)&&i[t]===a?t:function ure(r,a,t,i){const n=r.indexOf(a);return-1===n?((r,a,t,i)=>("string"==typeof a?(t=r.push(a)-1,i.unshift({index:t,label:a})):isNaN(a)&&(t=null),t))(r,a,t,i):n!==r.lastIndexOf(a)?t:n}(i,a,aa(t,a),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:a,maxDefined:t}=this.getUserBounds();let{min:i,max:n}=this.getMinMax(!0);"ticks"===this.options.bounds&&(a||(i=0),t||(n=this.getLabels().length-1)),this.min=i,this.max=n}buildTicks(){const a=this.min,t=this.max,i=this.options.offset,n=[];let o=this.getLabels();o=0===a&&t===o.length-1?o:o.slice(a,t+1),this._valueRange=Math.max(o.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let s=a;s<=t;s++)n.push({value:s});return n}getLabelForValue(a){const t=this.getLabels();return a>=0&&at.length-1?null:this.getPixelForValue(t[a].value)}getValueForPixel(a){return Math.round(this._startValue+this.getDecimalForPixel(a)*this._valueRange)}getBasePixel(){return this.bottom}}function ZY(r,a,{horizontal:t,minRotation:i}){const n=zh(i),o=(t?Math.sin(n):Math.cos(n))||.001;return Math.min(a/o,.75*a*(""+r).length)}JM.id="category",JM.defaults={ticks:{callback:JM.prototype.getLabelForValue}};class jM extends U0{constructor(a){super(a),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(a,t){return Qa(a)||("number"==typeof a||a instanceof Number)&&!isFinite(+a)?null:+a}handleTickRangeOptions(){const{beginAtZero:a}=this.options,{minDefined:t,maxDefined:i}=this.getUserBounds();let{min:n,max:o}=this;const s=g=>n=t?n:g,c=g=>o=i?o:g;if(a){const g=Mp(n),B=Mp(o);g<0&&B<0?c(0):g>0&&B>0&&s(0)}if(n===o){let g=1;(o>=Number.MAX_SAFE_INTEGER||n<=Number.MIN_SAFE_INTEGER)&&(g=Math.abs(.05*o)),c(o+g),a||s(n-g)}this.min=n,this.max=o}getTickLimit(){const a=this.options.ticks;let n,{maxTicksLimit:t,stepSize:i}=a;return i?(n=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),t=t||11),t&&(n=Math.min(t,n)),n}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const a=this.options,t=a.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function pre(r,a){const t=[],{bounds:n,step:o,min:s,max:c,precision:g,count:B,maxTicks:O,maxDigits:ne,includeBounds:we}=r,$e=o||1,nt=O-1,{min:Ft,max:ei}=a,pi=!Qa(s),Di=!Qa(c),Ri=!Qa(B),Wi=(ei-Ft)/(ne+1);let vn,gn,Vn,tr,Ki=GL((ei-Ft)/nt/$e)*$e;if(Ki<1e-14&&!pi&&!Di)return[{value:Ft},{value:ei}];tr=Math.ceil(ei/Ki)-Math.floor(Ft/Ki),tr>nt&&(Ki=GL(tr*Ki/nt/$e)*$e),Qa(g)||(vn=Math.pow(10,g),Ki=Math.ceil(Ki*vn)/vn),"ticks"===n?(gn=Math.floor(Ft/Ki)*Ki,Vn=Math.ceil(ei/Ki)*Ki):(gn=Ft,Vn=ei),pi&&Di&&o&&function V$(r,a){const t=Math.round(r);return t-a<=r&&t+a>=r}((c-s)/o,Ki/1e3)?(tr=Math.round(Math.min((c-s)/Ki,O)),Ki=(c-s)/tr,gn=s,Vn=c):Ri?(gn=pi?s:gn,Vn=Di?c:Vn,tr=B-1,Ki=(Vn-gn)/tr):(tr=(Vn-gn)/Ki,tr=VC(tr,Math.round(tr),Ki/1e3)?Math.round(tr):Math.ceil(tr));const pr=Math.max(JL(Ki),JL(gn));vn=Math.pow(10,Qa(g)?pr:g),gn=Math.round(gn*vn)/vn,Vn=Math.round(Vn*vn)/vn;let go=0;for(pi&&(we&&gn!==s?(t.push({value:s}),gn0?i:null;this._zero=!0}determineDataLimits(){const{min:a,max:t}=this.getMinMax(!0);this.min=Bc(a)?Math.max(0,a):null,this.max=Bc(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:a,maxDefined:t}=this.getUserBounds();let i=this.min,n=this.max;const o=g=>i=a?i:g,s=g=>n=t?n:g,c=(g,B)=>Math.pow(10,Math.floor(ih(g))+B);i===n&&(i<=0?(o(1),s(10)):(o(c(i,-1)),s(c(n,1)))),i<=0&&o(c(n,-1)),n<=0&&s(c(i,1)),this._zero&&this.min!==this._suggestedMin&&i===c(this.min,0)&&o(c(i,-1)),this.min=i,this.max=n}buildTicks(){const a=this.options,i=function gre(r,a){const t=Math.floor(ih(a.max)),i=Math.ceil(a.max/Math.pow(10,t)),n=[];let o=eh(r.min,Math.pow(10,Math.floor(ih(a.min)))),s=Math.floor(ih(o)),c=Math.floor(o/Math.pow(10,s)),g=s<0?Math.pow(10,Math.abs(s)):1;do{n.push({value:o,major:JY(o)}),++c,10===c&&(c=1,++s,g=s>=0?1:g),o=Math.round(c*Math.pow(10,s)*g)/g}while(sn?{start:a-t,end:a}:{start:a,end:a+t}}function _re(r,a,t,i,n){const o=Math.abs(Math.sin(t)),s=Math.abs(Math.cos(t));let c=0,g=0;i.starta.r&&(c=(i.end-a.r)/o,r.r=Math.max(r.r,a.r+c)),n.starta.b&&(g=(n.end-a.b)/s,r.b=Math.max(r.b,a.b+g))}function yre(r){return 0===r||180===r?"center":r<180?"left":"right"}function wre(r,a,t){return"right"===t?r-=a:"center"===t&&(r-=a/2),r}function Cre(r,a,t){return 90===t||270===t?r-=a/2:(t>270||t<90)&&(r-=a),r}function VY(r,a,t,i){const{ctx:n}=r;if(t)n.arc(r.xCenter,r.yCenter,a,0,el);else{let o=r.getPointPosition(0,a);n.moveTo(o.x,o.y);for(let s=1;s{const n=$s(this.options.pointLabels.callback,[t,i],this);return n||0===n?n:""}).filter((t,i)=>this.chart.getDataVisibility(i))}fit(){const a=this.options;a.display&&a.pointLabels.display?function mre(r){const a={l:r.left+r._padding.left,r:r.right-r._padding.right,t:r.top+r._padding.top,b:r.bottom-r._padding.bottom},t=Object.assign({},a),i=[],n=[],o=r._pointLabels.length,s=r.options.pointLabels,c=s.centerPointLabels?Hl/o:0;for(let g=0;g=0&&a=0;n--){const o=i.setContext(r.getPointLabelContext(n)),s=Jc(o.font),{x:c,y:g,textAlign:B,left:O,top:ne,right:we,bottom:$e}=r._pointLabelItems[n],{backdropColor:nt}=o;if(!Qa(nt)){const Ft=L0(o.borderRadius),ei=zA(o.backdropPadding);t.fillStyle=nt;const pi=O-ei.left,Di=ne-ei.top,Ri=we-O+ei.width,Wi=$e-ne+ei.height;Object.values(Ft).some(Ki=>0!==Ki)?(t.beginPath(),tb(t,{x:pi,y:Di,w:Ri,h:Wi,radius:Ft}),t.fill()):t.fillRect(pi,Di,Ri,Wi)}O0(t,r._pointLabels[n],c,g+s.lineHeight/2,s,{color:o.color,textAlign:B,textBaseline:"middle"})}}(this,o),n.display&&this.ticks.forEach((B,O)=>{0!==O&&(c=this.getDistanceFromCenterForValue(B.value),function xre(r,a,t,i){const n=r.ctx,o=a.circular,{color:s,lineWidth:c}=a;!o&&!i||!s||!c||t<0||(n.save(),n.strokeStyle=s,n.lineWidth=c,n.setLineDash(a.borderDash),n.lineDashOffset=a.borderDashOffset,n.beginPath(),VY(r,t,o,i),n.closePath(),n.stroke(),n.restore())}(this,n.setContext(this.getContext(O-1)),c,o))}),i.display){for(a.save(),s=o-1;s>=0;s--){const B=i.setContext(this.getPointLabelContext(s)),{color:O,lineWidth:ne}=B;!ne||!O||(a.lineWidth=ne,a.strokeStyle=O,a.setLineDash(B.borderDash),a.lineDashOffset=B.borderDashOffset,c=this.getDistanceFromCenterForValue(t.ticks.reverse?this.min:this.max),g=this.getPointPosition(s,c),a.beginPath(),a.moveTo(this.xCenter,this.yCenter),a.lineTo(g.x,g.y),a.stroke())}a.restore()}}drawBorder(){}drawLabels(){const a=this.ctx,t=this.options,i=t.ticks;if(!i.display)return;const n=this.getIndexAngle(0);let o,s;a.save(),a.translate(this.xCenter,this.yCenter),a.rotate(n),a.textAlign="center",a.textBaseline="middle",this.ticks.forEach((c,g)=>{if(0===g&&!t.reverse)return;const B=i.setContext(this.getContext(g)),O=Jc(B.font);if(o=this.getDistanceFromCenterForValue(this.ticks[g].value),B.showLabelBackdrop){a.font=O.string,s=a.measureText(c.label).width,a.fillStyle=B.backdropColor;const ne=zA(B.backdropPadding);a.fillRect(-s/2-ne.left,-o-O.size/2-ne.top,s+ne.width,O.size+ne.height)}O0(a,c.label,0,-o,O,{color:B.color})}),a.restore()}drawTitle(){}}gb.id="radialLinear",gb.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:FM.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:r=>r,padding:5,centerPointLabels:!1}},gb.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"},gb.descriptors={angleLines:{_fallback:"grid"}};const VM={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},$d=Object.keys(VM);function Ere(r,a){return r-a}function WY(r,a){if(Qa(a))return null;const t=r._adapter,{parser:i,round:n,isoWeekday:o}=r._parseOpts;let s=a;return"function"==typeof i&&(s=i(s)),Bc(s)||(s="string"==typeof i?t.parse(s,i):t.parse(s)),null===s?null:(n&&(s="week"!==n||!Rv(o)&&!0!==o?t.startOf(s,n):t.startOf(s,"isoWeek",o)),+s)}function KY(r,a,t,i){const n=$d.length;for(let o=$d.indexOf(r);o=a?t[i]:t[n]]=!0}}else r[a]=!0}function XY(r,a,t){const i=[],n={},o=a.length;let s,c;for(s=0;s=0&&(a[g].major=!0);return a}(r,i,n,t):i}let hP=(()=>{class r extends U0{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,i){const n=t.time||(t.time={}),o=this._adapter=new gie._date(t.adapters.date);o.init(i),JC(n.displayFormats,o.formats()),this._parseOpts={parser:n.parser,round:n.round,isoWeekday:n.isoWeekday},super.init(t),this._normalized=i.normalized}parse(t,i){return void 0===t?null:WY(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,i=this._adapter,n=t.time.unit||"day";let{min:o,max:s,minDefined:c,maxDefined:g}=this.getUserBounds();function B(O){!c&&!isNaN(O.min)&&(o=Math.min(o,O.min)),!g&&!isNaN(O.max)&&(s=Math.max(s,O.max))}(!c||!g)&&(B(this._getLabelBounds()),("ticks"!==t.bounds||"labels"!==t.ticks.source)&&B(this.getMinMax(!1))),o=Bc(o)&&!isNaN(o)?o:+i.startOf(Date.now(),n),s=Bc(s)&&!isNaN(s)?s:+i.endOf(Date.now(),n)+1,this.min=Math.min(o,s-1),this.max=Math.max(o+1,s)}_getLabelBounds(){const t=this.getLabelTimestamps();let i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;return t.length&&(i=t[0],n=t[t.length-1]),{min:i,max:n}}buildTicks(){const t=this.options,i=t.time,n=t.ticks,o="labels"===n.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&o.length&&(this.min=this._userMin||o[0],this.max=this._userMax||o[o.length-1]);const s=this.min,g=function X$(r,a,t){let i=0,n=r.length;for(;ii&&r[n-1]>t;)n--;return i>0||n=$d.indexOf(t);o--){const s=$d[o];if(VM[s].common&&r._adapter.diff(n,i,s)>=a-1)return s}return $d[t?$d.indexOf(t):0]}(this,g.length,i.minUnit,this.min,this.max)),this._majorUnit=n.major.enabled&&"year"!==this._unit?function Dre(r){for(let a=$d.indexOf(r)+1,t=$d.length;a+t.value))}initOffsets(t){let o,s,i=0,n=0;this.options.offset&&t.length&&(o=this.getDecimalForValue(t[0]),i=1===t.length?1-o:(this.getDecimalForValue(t[1])-o)/2,s=this.getDecimalForValue(t[t.length-1]),n=1===t.length?s:(s-this.getDecimalForValue(t[t.length-2]))/2);const c=t.length<3?.5:.25;i=IA(i,0,c),n=IA(n,0,c),this._offsets={start:i,end:n,factor:1/(i+1+n)}}_generate(){const t=this._adapter,i=this.min,n=this.max,o=this.options,s=o.time,c=s.unit||KY(s.minUnit,i,n,this._getLabelCapacity(i)),g=aa(s.stepSize,1),B="week"===c&&s.isoWeekday,O=Rv(B)||!0===B,ne={};let $e,nt,we=i;if(O&&(we=+t.startOf(we,"isoWeek",B)),we=+t.startOf(we,O?"day":c),t.diff(n,i,c)>1e5*g)throw new Error(i+" and "+n+" are too far apart with stepSize of "+g+" "+c);const Ft="data"===o.ticks.source&&this.getDataTimestamps();for($e=we,nt=0;$eei-pi).map(ei=>+ei)}getLabelForValue(t){const n=this.options.time;return this._adapter.format(t,n.tooltipFormat?n.tooltipFormat:n.displayFormats.datetime)}_tickFormatFunction(t,i,n,o){const s=this.options,c=s.time.displayFormats,g=this._unit,B=this._majorUnit,ne=B&&c[B],we=n[i],nt=this._adapter.format(t,o||(B&&ne&&we&&we.major?ne:g&&c[g])),Ft=s.ticks.callback;return Ft?$s(Ft,[nt,i,n],this):nt}generateTickLabels(t){let i,n,o;for(i=0,n=t.length;i0?g:1}getDataTimestamps(){let i,n,t=this._cache.data||[];if(t.length)return t;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(i=0,n=o.length;i=r[i].pos&&a<=r[n].pos&&({lo:i,hi:n}=Sg(r,"pos",a)),({pos:o,time:c}=r[i]),({pos:s,time:g}=r[n])):(a>=r[i].time&&a<=r[n].time&&({lo:i,hi:n}=Sg(r,"time",a)),({time:o,pos:c}=r[i]),({time:s,pos:g}=r[n]));const B=s-o;return B?c+(g-c)*(a-o)/B:c}class pP extends hP{constructor(a){super(a),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const a=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(a);this._minPos=WM(t,this.min),this._tableRange=WM(t,this.max)-this._minPos,super.initOffsets(a)}buildLookupTable(a){const{min:t,max:i}=this,n=[],o=[];let s,c,g,B,O;for(s=0,c=a.length;s=t&&B<=i&&n.push(B);if(n.length<2)return[{time:t,pos:0},{time:i,pos:1}];for(s=0,c=n.length;s-1},Gv.prototype.set=function Gre(r,a){var t=this.__data__,i=qM(t,r);return i<0?(++this.size,t.push([r,a])):t[i][1]=a,this};const XM=Gv,$Y="object"==typeof global&&global&&global.Object===Object&&global;var toe="object"==typeof self&&self&&self.Object===Object&&self;const Zv=$Y||toe||Function("return this")();var noe=Zv.Symbol,e8=Object.prototype,roe=e8.hasOwnProperty,ooe=e8.toString,fb=noe?noe.toStringTag:void 0;var coe=Object.prototype.toString;var t8=noe?noe.toStringTag:void 0;const eD=function poe(r){return null==r?void 0===r?"[object Undefined]":"[object Null]":t8&&t8 in Object(r)?function aoe(r){var a=roe.call(r,fb),t=r[fb];try{r[fb]=void 0;var i=!0}catch{}var n=ooe.call(r);return i&&(a?r[fb]=t:delete r[fb]),n}(r):function Aoe(r){return coe.call(r)}(r)},H0=function goe(r){var a=typeof r;return null!=r&&("object"==a||"function"==a)},gP=function yoe(r){if(!H0(r))return!1;var a=eD(r);return"[object Function]"==a||"[object GeneratorFunction]"==a||"[object AsyncFunction]"==a||"[object Proxy]"==a};var r,woe=Zv["__core-js_shared__"],n8=(r=/[^.]+$/.exec(woe&&woe.keys&&woe.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";var Boe=Function.prototype.toString;var Toe=/^\[object .+?Constructor\]$/,Poe=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const Ooe=function Foe(r){return!(!H0(r)||function Coe(r){return!!n8&&n8 in r}(r))&&(gP(r)?Poe:Toe).test(function Eoe(r){if(null!=r){try{return Boe.call(r)}catch{}try{return r+""}catch{}}return""}(r))},mP=function Yoe(r,a){var t=function Loe(r,a){return r?.[a]}(r,a);return Ooe(t)?t:void 0},r8=mP(Zv,"Map"),mb=mP(Object,"create");var Voe=Object.prototype.hasOwnProperty;var Xoe=Object.prototype.hasOwnProperty;function Jv(r){var a=-1,t=null==r?0:r.length;for(this.clear();++a-1&&r%1==0&&r<=9007199254740991},CP=function tse(r){return null!=r&&f8(r.length)&&!gP(r)};var m8="object"==typeof exports&&exports&&!exports.nodeType&&exports,_8=m8&&"object"==typeof module&&module&&!module.nodeType&&module,v8=_8&&_8.exports===m8?Zv.Buffer:void 0;const y8=(v8?v8.isBuffer:void 0)||function rse(){return!1};var w8=Function.prototype.toString,use=Object.prototype.hasOwnProperty,hse=w8.call(Object);var kl={};kl["[object Float32Array]"]=kl["[object Float64Array]"]=kl["[object Int8Array]"]=kl["[object Int16Array]"]=kl["[object Int32Array]"]=kl["[object Uint8Array]"]=kl["[object Uint8ClampedArray]"]=kl["[object Uint16Array]"]=kl["[object Uint32Array]"]=!0,kl["[object Arguments]"]=kl["[object Array]"]=kl["[object ArrayBuffer]"]=kl["[object Boolean]"]=kl["[object DataView]"]=kl["[object Date]"]=kl["[object Error]"]=kl["[object Function]"]=kl["[object Map]"]=kl["[object Number]"]=kl["[object Object]"]=kl["[object RegExp]"]=kl["[object Set]"]=kl["[object String]"]=kl["[object WeakMap]"]=!1;var C8="object"==typeof exports&&exports&&!exports.nodeType&&exports,vb=C8&&"object"==typeof module&&module&&!module.nodeType&&module,bP=vb&&vb.exports===C8&&$Y.process,Zse=function(){try{return vb&&vb.require&&vb.require("util").types||bP&&bP.binding&&bP.binding("util")}catch{}}(),x8=Zse&&Zse.isTypedArray;const B8=x8?function zse(r){return function(a){return r(a)}}(x8):function Nse(r){return _b(r)&&f8(r.length)&&!!kl[eD(r)]},xP=function jse(r,a){if(("constructor"!==a||"function"!=typeof r[a])&&"__proto__"!=a)return r[a]};var Wse=Object.prototype.hasOwnProperty;const qse=function Kse(r,a,t){var i=r[a];(!Wse.call(r,a)||!KM(i,t)||void 0===t&&!(a in r))&&_P(r,a,t)};var nle=/^(?:0|[1-9]\d*)$/;const E8=function rle(r,a){var t=typeof r;return!!(a=a??9007199254740991)&&("number"==t||"symbol"!=t&&nle.test(r))&&r>-1&&r%1==0&&r0){if(++a>=800)return arguments[0]}else a=0;return r.apply(void 0,arguments)}}(Dle);const Fle=Ple,Lle=function Ole(r,a){return Fle(function xle(r,a,t){return a=I8(void 0===a?r.length-1:a,0),function(){for(var i=arguments,n=-1,o=I8(i.length-a,0),s=Array(o);++n1?t[n-1]:void 0,s=n>2?t[2]:void 0;for(o=r.length>3&&"function"==typeof o?(n--,o):void 0,s&&function Rle(r,a,t){if(!H0(t))return!1;var i=typeof a;return!!("number"==i?CP(t)&&E8(a,t.length):"string"==i&&a in t)&&KM(t[a],r)}(t[0],t[1],s)&&(o=n<3?void 0:o,n=1),a=Object(a);++i{class r{constructor(){this.colorschemesOptions=new ba.X(void 0)}setColorschemesOptions(t){this.pColorschemesOptions=t,this.colorschemesOptions.next(t)}getColorschemesOptions(){return this.pColorschemesOptions}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"}),r})(),nD=(()=>{class r{constructor(t,i,n){this.zone=i,this.themeService=n,this.type="bar",this.plugins=[],this.chartClick=new e.vpe,this.chartHover=new e.vpe,this.subs=[],this.themeOverrides={},this.ctx=t.nativeElement.getContext("2d"),this.subs.push(this.themeService.colorschemesOptions.pipe((0,eA.x)()).subscribe(o=>this.themeChanged(o)))}ngOnChanges(t){const i=["type"],n=Object.getOwnPropertyNames(t);if(n.some(o=>i.includes(o))||n.every(o=>t[o].isFirstChange()))this.render();else{const o=this.getChartConfiguration();this.chart&&(Object.assign(this.chart.config.data,o.data),this.chart.config.plugins&&Object.assign(this.chart.config.plugins,o.plugins),this.chart.config.options&&Object.assign(this.chart.config.options,o.options)),this.update()}}ngOnDestroy(){this.chart&&(this.chart.destroy(),this.chart=void 0),this.subs.forEach(t=>t.unsubscribe())}render(){return this.chart&&this.chart.destroy(),this.zone.runOutsideAngular(()=>this.chart=new db(this.ctx,this.getChartConfiguration()))}update(t){this.chart&&this.zone.runOutsideAngular(()=>this.chart?.update(t))}hideDataset(t,i){this.chart&&(this.chart.getDatasetMeta(t).hidden=i,this.update())}isDatasetHidden(t){return this.chart?.getDatasetMeta(t)?.hidden}toBase64Image(){return this.chart?.toBase64Image()}themeChanged(t){this.themeOverrides=t,this.chart&&(this.chart.config.options&&Object.assign(this.chart.config.options,this.getChartOptions()),this.update())}getChartOptions(){return k8({onHover:(t,i)=>{!this.chartHover.observed&&!this.chartHover.observers?.length||this.zone.run(()=>this.chartHover.emit({event:t,active:i}))},onClick:(t,i)=>{!this.chartClick.observed&&!this.chartClick.observers?.length||this.zone.run(()=>this.chartClick.emit({event:t,active:i}))}},this.themeOverrides,this.options,{plugins:{legend:{display:this.legend}}})}getChartConfiguration(){return{type:this.type,data:this.getChartData(),options:this.getChartOptions(),plugins:this.plugins}}getChartData(){return this.data?this.data:{labels:this.labels||[],datasets:this.datasets||[]}}}return r.\u0275fac=function(t){return new(t||r)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(zle))},r.\u0275dir=e.lG2({type:r,selectors:[["canvas","baseChart",""]],inputs:{type:"type",legend:"legend",data:"data",options:"options",plugins:"plugins",labels:"labels",datasets:"datasets"},outputs:{chartClick:"chartClick",chartHover:"chartHover"},exportAs:["base-chart"],features:[e.TTD]}),r})();const Hle=[[255,99,132],[54,162,235],[255,206,86],[231,233,237],[75,192,192],[151,187,205],[220,220,220],[247,70,74],[70,191,189],[253,180,92],[148,159,177],[77,83,96]],Gle={plugins:{colors:{enabled:!1}},datasets:{line:{backgroundColor:r=>dm(um(r.datasetIndex),.4),borderColor:r=>dm(um(r.datasetIndex),1),pointBackgroundColor:r=>dm(um(r.datasetIndex),1),pointBorderColor:"#fff"},bar:{backgroundColor:r=>dm(um(r.datasetIndex),.6),borderColor:r=>dm(um(r.datasetIndex),1)},get radar(){return this.line},doughnut:{backgroundColor:r=>dm(um(r.dataIndex),.6),borderColor:"#fff"},get pie(){return this.doughnut},polarArea:{backgroundColor:r=>dm(um(r.dataIndex),.6),borderColor:r=>dm(um(r.dataIndex),1)},get bubble(){return this.doughnut},get scatter(){return this.doughnut},get area(){return this.polarArea}}};function dm(r,a){return"rgba("+r.concat(a).join(",")+")"}function BP(r,a){return Math.floor(Math.random()*(a-r+1))+r}function um(r=0){return Hle[r]||function Zle(){return[BP(0,255),BP(0,255),BP(0,255)]}()}let Q8=(()=>{class r{constructor(){this.generateColors=!0}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"}),r})();db.register(...kre);let Jle=(()=>{class r{constructor(t){t?.plugins&&db.register(...t?.plugins);const i=k8(t?.generateColors?Gle:{},t?.defaults||{});Oa.set(i)}static forRoot(t){return{ngModule:r,providers:[{provide:Q8,useValue:t}]}}}return r.\u0275fac=function(t){return new(t||r)(e.LFG(Q8,8))},r.\u0275mod=e.oAB({type:r}),r.\u0275inj=e.cJS({}),r})();var S8=function(){if(typeof window<"u"){if(window.devicePixelRatio)return window.devicePixelRatio;var r=window.screen;if(r)return(r.deviceXDPI||1)/(r.logicalXDPI||1)}return 1}(),yb_textSize=function(r,a,t){var c,i=[].concat(a),n=i.length,o=r.font,s=0;for(r.font=t.string,c=0;ct.right&&(i|=F8),at.bottom&&(i|=O8),i}function oD(r,a){var n,o,t=a.anchor,i=r;return a.clamp&&(i=function Wle(r,a){for(var g,B,O,t=r.x0,i=r.y0,n=r.x1,o=r.y1,s=rD(t,i,a),c=rD(n,o,a);s|c&&!(s&c);)(g=s||c)&L8?(B=t+(n-t)*(a.top-i)/(o-i),O=a.top):g&O8?(B=t+(n-t)*(a.bottom-i)/(o-i),O=a.bottom):g&F8?(O=i+(o-i)*(a.right-t)/(n-t),B=a.right):g&P8&&(O=i+(o-i)*(a.left-t)/(n-t),B=a.left),g===s?s=rD(t=B,i=O,a):c=rD(n=B,o=O,a);return{x0:t,x1:n,y0:i,y1:o}}(i,a.area)),"start"===t?(n=i.x0,o=i.y0):"end"===t?(n=i.x1,o=i.y1):(n=(i.x0+i.x1)/2,o=(i.y0+i.y1)/2),function jle(r,a,t,i,n){switch(n){case"center":t=i=0;break;case"bottom":t=0,i=1;break;case"right":t=1,i=0;break;case"left":t=-1,i=0;break;case"top":t=0,i=-1;break;case"start":t=-t,i=-i;break;case"end":break;default:n*=Math.PI/180,t=Math.cos(n),i=Math.sin(n)}return{x:r,y:a,vx:t,vy:i}}(n,o,r.vx,r.vy,a.align)}var aD={arc:function(r,a){var t=(r.startAngle+r.endAngle)/2,i=Math.cos(t),n=Math.sin(t),o=r.innerRadius,s=r.outerRadius;return oD({x0:r.x+i*o,y0:r.y+n*o,x1:r.x+i*s,y1:r.y+n*s,vx:i,vy:n},a)},point:function(r,a){var t=EP(r,a.origin),i=t.x*r.options.radius,n=t.y*r.options.radius;return oD({x0:r.x-i,y0:r.y-n,x1:r.x+i,y1:r.y+n,vx:t.x,vy:t.y},a)},bar:function(r,a){var t=EP(r,a.origin),i=r.x,n=r.y,o=0,s=0;return r.horizontal?(i=Math.min(r.x,r.base),o=Math.abs(r.base-r.x)):(n=Math.min(r.y,r.base),s=Math.abs(r.base-r.y)),oD({x0:i,y0:n+s,x1:i+o,y1:n,vx:t.x,vy:t.y},a)},fallback:function(r,a){var t=EP(r,a.origin);return oD({x0:r.x,y0:r.y,x1:r.x+(r.width||0),y1:r.y+(r.height||0),vx:t.x,vy:t.y},a)}},Lg=function(r){return Math.round(r*S8)/S8};function qle(r,a){var t=a.chart.getDatasetMeta(a.datasetIndex).vScale;if(!t)return null;if(void 0!==t.xCenter&&void 0!==t.yCenter)return{x:t.xCenter,y:t.yCenter};var i=t.getBasePixel();return r.horizontal?{x:i,y:null}:{x:null,y:i}}function Xle(r){return r instanceof ub?aD.arc:r instanceof EY?aD.point:r instanceof hb?aD.bar:aD.fallback}function ice(r,a,t){var i=r.shadowBlur,n=t.stroked,o=Lg(t.x),s=Lg(t.y),c=Lg(t.w);n&&r.strokeText(a,o,s,c),t.filled&&(i&&n&&(r.shadowBlur=0),r.fillText(a,o,s,c),i&&n&&(r.shadowBlur=i))}var R8=function(r,a,t,i){var n=this;n._config=r,n._index=i,n._model=null,n._rects=null,n._ctx=a,n._el=t};Ep(R8.prototype,{_modelize:function(r,a,t,i){var n=this,o=n._index,s=Jc(Il([t.font,{}],i,o)),c=Il([t.color,Oa.color],i,o);return{align:Il([t.align,"center"],i,o),anchor:Il([t.anchor,"center"],i,o),area:i.chart.chartArea,backgroundColor:Il([t.backgroundColor,null],i,o),borderColor:Il([t.borderColor,null],i,o),borderRadius:Il([t.borderRadius,0],i,o),borderWidth:Il([t.borderWidth,0],i,o),clamp:Il([t.clamp,!1],i,o),clip:Il([t.clip,!1],i,o),color:c,display:r,font:s,lines:a,offset:Il([t.offset,4],i,o),opacity:Il([t.opacity,1],i,o),origin:qle(n._el,i),padding:zA(Il([t.padding,4],i,o)),positioner:Xle(n._el),rotation:Il([t.rotation,0],i,o)*(Math.PI/180),size:yb_textSize(n._ctx,a,s),textAlign:Il([t.textAlign,"start"],i,o),textShadowBlur:Il([t.textShadowBlur,0],i,o),textShadowColor:Il([t.textShadowColor,c],i,o),textStrokeColor:Il([t.textStrokeColor,c],i,o),textStrokeWidth:Il([t.textStrokeWidth,0],i,o)}},update:function(r){var s,c,g,a=this,t=null,i=null,n=a._index,o=a._config,B=Il([o.display,!0],r,n);B&&(g=Qa(c=aa($s(o.formatter,[s=r.dataset.data[n],r]),s))?[]:function(r){var t,a=[];for(r=[].concat(r);r.length;)"string"==typeof(t=r.pop())?a.unshift.apply(a,t.split("\n")):Array.isArray(t)?r.push.apply(r,t):Qa(r)||a.unshift(""+t);return a}(c)).length&&(i=function Kle(r){var a=r.borderWidth||0,t=r.padding,i=r.size.height,n=r.size.width,o=-n/2,s=-i/2;return{frame:{x:o-t.left-a,y:s-t.top-a,w:n+t.width+2*a,h:i+t.height+2*a},text:{x:o,y:s,w:n,h:i}}}(t=a._modelize(B,g,o,r))),a._model=t,a._rects=i},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(r,a){var s,i=r.ctx,n=this._model,o=this._rects;this.visible()&&(i.save(),n.clip&&(s=n.area,i.beginPath(),i.rect(s.left,s.top,s.right-s.left,s.bottom-s.top),i.clip()),i.globalAlpha=function(r,a,t){return Math.max(r,Math.min(a,t))}(0,n.opacity,1),i.translate(Lg(a.x),Lg(a.y)),i.rotate(n.rotation),function ece(r,a,t){var i=t.backgroundColor,n=t.borderColor,o=t.borderWidth;!i&&(!n||!o)||(r.beginPath(),function $le(r,a,t,i,n,o){var s=Math.PI/2;if(o){var c=Math.min(o,n/2,i/2),g=a+c,B=t+c,O=a+i-c,ne=t+n-c;r.moveTo(a,B),gi.x+i.w+2||r.y>i.y+i.h+2)},intersects:function(r){var n,o,s,a=this._points(),t=r._points(),i=[sD(a[0],a[1]),sD(a[0],a[3])];for(this._rotation!==r._rotation&&i.push(sD(t[0],t[1]),sD(t[0],t[3])),n=0;ng.getProps([B],!0)[B]}),o=i.geometry(),s=U8(c,i.model(),o),n._box.update(s,o,i.rotation()));(function ace(r,a){var t,i,n,o;for(t=r.length-1;t>=0;--t)for(n=r[t].$layout,i=t-1;i>=0&&n._visible;--i)(o=r[i].$layout)._visible&&n._box.intersects(o._box)&&a(n,o)})(r,function(g,B){var O=g._hidable,ne=B._hidable;O&&ne||ne?B._visible=!1:O&&(g._visible=!1)})}(r)},lookup:function(r,a){var t,i;for(t=r.length-1;t>=0;--t)if((i=r[t].$layout)&&i._visible&&i._box.contains(a))return r[t];return null},draw:function(r,a){var t,i,n,o,s,c;for(t=0,i=a.length;t{class r extends Lv{chart;height=240;width=380;onReload=new e.vpe;barChartOptions={responsive:!0,maintainAspectRatio:!1};barChartLabels=["2006","2007","2008","2009","2010","2011","2012"];barChartType="bar";barChartPlugins=[H8];barChartData=[{data:[65,59,80,81,56,55,40],label:"Series A"},{data:[28,48,40,19,86,27,90],label:"Series B"}];id="";isEditor=!1;title="";property;sourceMap={};sourceCount=0;xTypeValue=ii.cQ.getEnumKey(Qd,Qd.value);xTypeDate=ii.cQ.getEnumKey(Qd,Qd.date);fncSumHourIntegral=ii.cQ.getEnumKey(Dg,Dg.sumHourIntegral);fncValueIntegral=ii.cQ.getEnumKey(Dg,Dg.sumValueIntegral);hoursDateGroup=NC.hours;daysDateGroup=NC.days;dateGroupTemplate;currentQuery;reloadActive=!1;static demoValues=[];constructor(){super()}ngOnInit(){if(this.barChartOptions||(this.barChartOptions=r.DefaultOptions()),this.isEditor&&!r.demoValues.length)for(let t=0;t<300;t++)r.demoValues[t]=ii.cQ.rand(10,100)}ngAfterViewInit(){this.barChartOptions.panel&&this.resize(this.barChartOptions.panel.height,this.barChartOptions.panel.width)}ngOnDestroy(){}init(t,i,n){this.title=t,this.property=i,n&&this.setSources(n)}setSources(t){this.sourceMap={},this.barChartData=[];for(let i=0;ii.label)),this.barChartOptions.plugins.title.text=Lv.getTitle(t,this.title),this.chart.update(),this.isEditor||setTimeout(()=>{this.onRefresh()},500),this.setDemo()}}onRefresh(t){if(this.isEditor||!this.property)return!1;this.currentQuery=this.getQuery(),this.onReload.emit(this.currentQuery),t&&(this.reloadActive=!0)}resize(t,i){t&&i&&(this.height=t,this.width=i,this.barChartOptions.panel.width=i,this.barChartOptions.panel.height=t)}setValue(t,i,n){this.sourceMap[t]&&this.property.xtype===this.xTypeValue&&(this.sourceMap[t].data[0]=parseFloat(n).toFixed(this.barChartOptions.decimals),this.chart.update(400))}setValues(t,i){try{if(i&&this.property)if(this.property.xtype===this.xTypeValue)for(let n=0;n{o&&this.setValue(o.id,o.ts,o.value.toFixed(this.barChartOptions.decimals))});else if(this.property.xtype===this.xTypeDate)for(let n=0;n{class r extends Lv{chart;height=380;width=380;pieChartOptions={responsive:!0,maintainAspectRatio:!1};pieChartType="pie";barChartPlugins=[H8];pieData=[300,500,100];pieChartData={labels:["Download Sales","In Store Sales","Mail Sales"],datasets:[{data:this.pieData,backgroundColor:["rgb(154, 162, 235)","rgb(63, 73, 100)","rgb(255, 105, 86)"]}]};id="";isEditor=!1;title="";property;sourceMap={};constructor(){super()}ngOnInit(){this.pieChartOptions||(this.pieChartOptions=r.DefaultOptions())}ngAfterViewInit(){this.pieChartOptions.panel&&this.resize(this.pieChartOptions.panel.height,this.pieChartOptions.panel.width)}ngOnDestroy(){}init(t,i,n){this.title=t,this.property=i,n&&this.setSources(n)}setSources(t){this.sourceMap={};let i=[];this.pieData=[];let n=[];for(let o=0;o{class r extends uo{static TypeTag="svg-ext-html_graph";static LabelTag="HtmlGraph";static prefixD="D-HXC_";static suffixPie="-pie";static suffixBar="-bar";constructor(){super()}static getSignals(t){return t.variableIds}static getDialogType(){return Do.Graph}static processValue(t,i,n,o,s){try{s&&!s.isOffline()&&s.setValue(n.id,(new Date).getTime()/1e3,n.value)}catch(c){console.error(c)}}static initElement(t,i,n,o){let s=document.getElementById(t.id);if(s){s?.setAttribute("data-name",t.name);let c=ii.cQ.searchTreeStartWith(s,this.prefixD);if(c){let g=i.resolveComponentFactory(Lv);g=t.type.endsWith(this.suffixBar)?i.resolveComponentFactory(lD):i.resolveComponentFactory(cD);const B=n.createComponent(g);c.innerHTML="",B.instance.isEditor=!o,B.instance.id=t.id,B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement);let O={panel:{height:c.clientHeight,width:c.clientWidth}};return O=t.type.endsWith(this.suffixBar)?{...lD.DefaultOptions(),...O}:{...cD.DefaultOptions(),...O},B.instance.setOptions(O),B.instance.myComRef=B,B.instance.name=t.name,B.instance}}}static detectChange(t,i,n){return r.initElement(t,i,n,!1)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["html-graph"]],features:[e.qOj],decls:0,vars:0,template:function(i,n){}})}return r})();var Ql=function(r){return r[r.Gauge=0]="Gauge",r[r.Donut=1]="Donut",r[r.Zones=2]="Zones",r}(Ql||{});class Qp{minValue=0;maxValue=3e3;animationSpeed=40;colorStart="#6fadcf";colorStop="#6fadcf";gradientType="";strokeColor="#e0e0e0";pointer={length:.5,strokeWidth:.035,iconScale:1,color:"#000000"};angle=-.2;lineWidth=.2;radiusScale=.9;fontSize=18;fontFamily;textFilePosition=30;limitMax=!1;limitMin=!1;highDpiSupport=!0;backgroundColor="rgba(255, 255, 255, 0)";shadowColor="#d5d5d5";fractionDigits=0;ticksEnabled=!0;renderTicks={divisions:5,divWidth:1.1,divLength:.7,divColor:"#333333",subDivisions:3,subLength:.5,subWidth:.6,subColor:"#666666"};staticLabelsText="200;500;2100;2800";staticFontSize=10;staticFontColor="#000000";staticLabels={font:"10px sans-serif",labels:[200,500,2100,2800],fractionDigits:0,color:"#000000"};staticZones=[{strokeStyle:"#F03E3E",min:0,max:200},{strokeStyle:"#FFDD00",min:200,max:500},{strokeStyle:"#3F4964",min:500,max:2100},{strokeStyle:"#FFDD00",min:2100,max:2800},{strokeStyle:"#F03E3E",min:2800,max:3e3}]}const fce=["panel"],mce=["gauge"],_ce=["gaugetext"];let DP=(()=>{class r{id;options;value;panel;canvas;gaugetext;destroy$=new An.x;gauge;type=Ql.Gauge;defOptions=new Qp;initialized=!1;constructor(){}ngOnInit(){this.options=Object.assign(this.defOptions,this.options)}ngAfterViewInit(){vv(100).pipe((0,yo.q)(10),(0,On.R)(this.destroy$)).subscribe(()=>{this.onResize(null),this.setOptions(this.options)})}ngOnDestroy(){try{this.destroy$.next(null),this.destroy$.unsubscribe()}catch(t){console.error(t)}}ngOnChanges(t){this.gauge&&t&&t.value&&this.setValue(t.value.currentValue)}onResize(t){let i=this.canvas.nativeElement,n=i.parentNode.clientWidth,o=i.parentNode.clientHeight;n{class r extends uo{resolver;static TypeTag="svg-ext-html_bag";static LabelTag="HtmlBag";static prefixD="D-BAG_";constructor(t){super(),this.resolver=t}static getSignals(t){let i=[];return t.variableId&&i.push(t.variableId),i}static getDialogType(){return Do.Gauge}static processValue(t,i,n,o,s){try{s.setValue(n.value)}catch(c){console.error(c)}}static initElement(t,i,n,o){let s=document.getElementById(t.id);if(s){s?.setAttribute("data-name",t.name);let c=ii.cQ.searchTreeStartWith(s,this.prefixD);if(c){const g=i.resolveComponentFactory(DP),B=n.createComponent(g);return c.innerHTML="",B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement),B.instance.resize(c.clientHeight,c.clientWidth),t.property&&t.property.options&&(B.instance.setOptions(t.property.options),B.instance.init(t.property.options.type)),B.instance.name=t.name,B.instance}}}static resize(t,i,n,o){let s=document.getElementById(t.id);if(s){let c=ii.cQ.searchTreeStartWith(s,this.prefixD);if(c){const g=i.resolveComponentFactory(DP),B=n.createComponent(g);return c.innerHTML="",B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement),B.instance.resize(c.clientHeight,c.clientWidth),o&&(B.instance.setOptions(o),B.instance.init(o.type)),B.instance}}}static detectChange(t,i,n){let o;return t.property&&t.property.options&&(o=t.property.options),r.resize(t,i,n,o)}static \u0275fac=function(i){return new(i||r)(e.Y36(e._Vd))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-html-bag"]],features:[e.qOj],decls:0,vars:0,template:function(i,n){}})}return r})();const vce=["switcher"],yce=["slider"],wce=["toggler"];let TP=(()=>{class r{switcher;slider;toggler;options=new G8;checked=!1;onUpdate;isReadonly=!1;disabled=!1;constructor(){}ngAfterViewInit(){this.onRefresh()}onClick(){this.isReadonly||(this.onRefresh(),this.onUpdate&&this.onUpdate(this.checked?this.options.onValue.toString():this.options.offValue.toString()))}onRefresh(){this.checked=this.switcher.nativeElement.checked,this.toggler.nativeElement.classList.toggle("active",this.checked),this.switcher.nativeElement.checked?(this.toggler.nativeElement.style.backgroundColor=this.options.onBackground,this.slider.nativeElement.style.backgroundColor=this.options.onSliderColor,this.slider.nativeElement.style.color=this.options.onTextColor,this.slider.nativeElement.innerHTML=this.options.onText):(this.toggler.nativeElement.style.backgroundColor=this.options.offBackground,this.slider.nativeElement.style.backgroundColor=this.options.offSliderColor,this.slider.nativeElement.style.color=this.options.offTextColor,this.slider.nativeElement.innerHTML=this.options.offText),this.slider.nativeElement.style.lineHeight=this.options.height+"px",this.switcher.nativeElement.disabled=this.disabled,this.toggler.nativeElement.style.opacity=this.disabled?"0.5":"1",this.toggler.nativeElement.style.pointerEvents=this.disabled?"none":"auto"}setOptions(t,i=!1){return i?(this.options=t,this.onRefresh()):setTimeout(()=>{this.options=t,this.onRefresh()},200),!0}setValue(t){this.switcher.nativeElement.checked=!!t,this.onRefresh()}setDisabled(t){this.disabled=t,this.onRefresh()}bindUpdate(t){this.onUpdate=t}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["ngx-switch"]],viewQuery:function(i,n){if(1&i&&(e.Gf(vce,5),e.Gf(yce,5),e.Gf(wce,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.switcher=o.first),e.iGM(o=e.CRH())&&(n.slider=o.first),e.iGM(o=e.CRH())&&(n.toggler=o.first)}},decls:7,vars:6,consts:[[1,"md-switch"],[1,"toggle-button"],["toggler",""],["type","checkbox",3,"change"],["switcher",""],[1,"inner-circle",2,"text-align","center","line-height","inherit"],["slider",""]],template:function(i,n){1&i&&(e.TgZ(0,"label",0)(1,"div",1,2)(3,"input",3,4),e.NdJ("change",function(){return n.onClick()}),e.qZA(),e._UZ(5,"div",5,6),e.qZA()()),2&i&&(e.Udp("border-radius",n.options.radius+"px"),e.xp6(5),e.Udp("font-size",n.options.fontSize+"px")("font-family",n.options.fontFamily))}})}return r})();class G8{offValue=0;onValue=1;offBackground="#ccc";onBackground="#ccc";offText="";onText="";offSliderColor="#fff";onSliderColor="#0CC868";offTextColor="#000";onTextColor="#fff";fontSize=12;fontFamily="";radius=0;height}let tu=(()=>{class r extends uo{static TypeTag="svg-ext-html_switch";static LabelTag="HtmlSwitch";static prefix="T-HXT_";constructor(){super()}static getSignals(t){let i=[];return t.variableId&&i.push(t.variableId),t.alarmId&&i.push(t.alarmId),t.actions&&t.actions.forEach(n=>{i.push(n.variableId)}),i}static getDialogType(){return Do.Switch}static isBitmaskSupported(){return!0}static bindEvents(t,i,n){return i&&i.bindUpdate(o=>{let s=new Tt.ju;s.type="on",s.ga=t,s.value=o,n(s)}),null}static processValue(t,i,n,o,s){try{if(s){let c=parseFloat(n.value);c=Number.isNaN(c)?Number(n.value):parseFloat(c.toFixed(5)),"boolean"!=typeof n.value&&(c=uo.checkBitmaskAndValue(t.property.bitmask,c,t.property.options.offValue,t.property.options.onValue)),s.setValue(c)}}catch(c){console.error(c)}}static initElement(t,i,n,o){let s=document.getElementById(t.id);if(s){s?.setAttribute("data-name",t.name);let c=ii.cQ.searchTreeStartWith(s,this.prefix);if(c){const g=o?o(t.property):null,B=i.resolveComponentFactory(TP),O=n.createComponent(B);return c.innerHTML="",O.changeDetectorRef.detectChanges(),c.appendChild(O.location.nativeElement),t.property?.options&&(t.property.options.height=c.clientHeight,O.instance.setOptions(t.property.options)&&t.property.options.radius&&(c.style.borderRadius=t.property.options.radius+"px")),O.instance.isReadonly=!!t.property?.events?.length,O.instance.name=t.name,!1===g?.enabled&&O.instance.setDisabled(!0),O.instance}}}static resize(t,i,n,o){let s=document.getElementById(t.id);if(s){let c=ii.cQ.searchTreeStartWith(s,this.prefix);if(c){const g=i.resolveComponentFactory(TP),B=n.createComponent(g);return c.innerHTML="",B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement),t.property&&t.property.options&&(t.property.options.height=c.clientHeight,B.instance.setOptions(t.property.options,!0)),B.instance}}}static detectChange(t,i,n){return r.initElement(t,i,n)}static getSize(t){let i={height:0,width:0},n=document.getElementById(t.id);if(n){let o=ii.cQ.searchTreeStartWith(n,this.prefix);o&&(i.height=o.clientHeight,i.width=o.clientWidth)}return i}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})(),iu=(()=>{class r extends uo{static TypeTag="svg-ext-gauge_progress";static LabelTag="HtmlProgress";static prefixA="A-GXP_";static prefixB="B-GXP_";static prefixH="H-GXP_";static prefixMax="M-GXP_";static prefixMin="m-GXP_";static prefixValue="V-GXP_";static barColor="#3F4964";constructor(){super()}static getSignals(t){let i=[];return t.variableId&&i.push(t.variableId),i}static getDialogType(){return Do.Range}static processValue(t,i,n,o){try{if(3===i.node?.children?.length){let s=parseFloat(n.value);const c=t.property?.ranges?.reduce((nt,Ft)=>Ft.minFt.max>nt.max?Ft:nt,t.property?.ranges?.length?t.property.ranges[0]:void 0)?.max??100,B=t.property?.ranges?.find(nt=>s>=nt.min&&s<=nt.max);let O=ii.cQ.searchTreeStartWith(i.node,this.prefixA),ne=parseFloat(O.getAttribute("height")),we=parseFloat(O.getAttribute("y")),$e=ii.cQ.searchTreeStartWith(i.node,this.prefixB);if(O&&$e){s>g&&(s=g),s0){let o=t.property.ranges[0],s=ii.cQ.searchTreeStartWith(n,this.prefixMin);s&&(s.innerHTML=o.min.toString(),s.style.display=o.style[0]?"block":"none"),s=ii.cQ.searchTreeStartWith(n,this.prefixMax),s&&(s.innerHTML=o.max.toString(),s.style.display=o.style[0]?"block":"none");let c=ii.cQ.searchTreeStartWith(n,this.prefixValue);c&&(c.style.display=o.style[1]?"block":"none");let g=ii.cQ.searchTreeStartWith(n,this.prefixB);g&&g.setAttribute("fill",o.color)}}return n}static initElementColor(t,i,n){let o=ii.cQ.searchTreeStartWith(n,this.prefixA);o&&(t&&o.setAttribute("fill",t),i&&o.setAttribute("stroke",i)),o=ii.cQ.searchTreeStartWith(n,this.prefixB),o&&i&&o.setAttribute("stroke",i)}static getFillColor(t){let i=ii.cQ.searchTreeStartWith(t,this.prefixA);if(i)return i.getAttribute("fill")}static getStrokeColor(t){let i=ii.cQ.searchTreeStartWith(t,this.prefixA);if(i)return i.getAttribute("stroke")}static getDefaultValue(){return{color:this.barColor}}static getMinByAttribute(t,i){return t?.reduce((n,o)=>o[i]{t.push(i.variableId)}),t}static getDialogType(){return Do.Range}static getActions(){return this.actionsType}static isBitmaskSupported(){return!0}static processValue(a,t,i,n){try{if(t.node&&t.node.children&&t.node.children.length<=1){let o=t.node.children[0],s="",c=parseFloat(i.value);Number.isNaN(c)&&(c=Number(i.value));let g=uo.checkBitmask(a.property.bitmask,c);if(a.property&&a.property.ranges){for(let B=0;B=g&&(s=a.property.ranges[B].color);o.setAttribute("fill",s),a.property.actions&&a.property.actions.forEach(B=>{B.variableId===i.id&&rh.processAction(B,t,g,n)})}}}catch(o){console.error(o)}}static getFillColor(a){return a.children&&a.children[0]?a.children[0].getAttribute("fill"):a.getAttribute("fill")}static getStrokeColor(a){return a.children&&a.children[0]?a.children[0].getAttribute("stroke"):a.getAttribute("stroke")}static processAction(a,t,i,n){if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=i&&a.range.max>=i){let o=SVG.adopt(t.node);this.runActionHide(o,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.show){if(a.range.min<=i&&a.range.max>=i){let o=SVG.adopt(t.node);this.runActionShow(o,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.blink){let o=SVG.adopt(t.node);this.checkActionBlink(o,a,n,a.range.min<=i&&a.range.max>=i,!1)}}static \u0275fac=function(t){return new(t||rh)};static \u0275cmp=e.Xpm({type:rh,selectors:[["gauge-semaphore"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}class La extends uo{static TypeTag="svg-ext-shapes";static LabelTag="Shapes";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show,blink:Tt.KG.blink,stop:Tt.KG.stop,clockwise:Tt.KG.clockwise,anticlockwise:Tt.KG.anticlockwise,rotate:Tt.KG.rotate,move:Tt.KG.move};constructor(){super()}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.alarmId&&t.push(a.alarmId),a.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getActions(a){return this.actionsType}static getDialogType(){return Do.RangeWithAlarm}static isBitmaskSupported(){return!0}static processValue(a,t,i,n){try{if(t.node){let o=parseFloat(i.value);if(o=Number.isNaN(o)?Number(i.value):parseFloat(o.toFixed(5)),a.property){let s=uo.checkBitmask(a.property.bitmask,o),c=new Tt.I9;if(a.property.variableId===i.id&&a.property.ranges){for(let g=0;g=s&&(c.fill=a.property.ranges[g].color,c.stroke=a.property.ranges[g].stroke);c.fill&&uo.walkTreeNodeToSetAttribute(t.node,"fill",c.fill),c.stroke&&uo.walkTreeNodeToSetAttribute(t.node,"stroke",c.stroke)}a.property.actions&&a.property.actions.forEach(g=>{g.variableId===i.id&&La.processAction(g,t,o,n,c)})}}}catch(o){console.error(o)}}static processAction(a,t,i,n,o){let s=uo.checkBitmask(a.bitmask,i);if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=s&&a.range.max>=s){let g=SVG.adopt(t.node);this.runActionHide(g,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.show){if(a.range.min<=s&&a.range.max>=s){let g=SVG.adopt(t.node);this.runActionShow(g,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.blink){let g=SVG.adopt(t.node);this.checkActionBlink(g,a,n,a.range.min<=s&&a.range.max>=s,!1,o)}else if(this.actionsType[a.type]===this.actionsType.rotate)La.rotateShape(a,t,s);else if(La.actionsType[a.type]===La.actionsType.move)La.moveShape(a,t,s);else if(a.range.min<=s&&a.range.max>=s){var c=SVG.adopt(t.node);La.runMyAction(c,a.type,n)}}static runMyAction(a,t,i){i.actionRef&&i.actionRef.type===t||(a.timeline&&a.timeline().stop(),i.actionRef?.animr&&i.actionRef?.animr.unschedule(),La.actionsType[t]===La.actionsType.clockwise?i.actionRef=La.startRotateAnimationShape(a,t,360):La.actionsType[t]===La.actionsType.anticlockwise?i.actionRef=La.startRotateAnimationShape(a,t,-360):La.actionsType[t]===La.actionsType.stop&&La.stopAnimationShape(i,t))}static startRotateAnimationShape(a,t,i){return{type:t,animr:a.animate(3e3).ease("-").rotate(i).loop()}}static stopAnimationShape(a,t){a.actionRef&&(La.clearAnimationTimer(a.actionRef),a.actionRef.type=t)}static rotateShape(a,t,i){if(a.range.min<=i&&a.range.max>=i){let n=SVG.adopt(t.node),o=a.range.max-a.range.min;a.range.max===a.range.min&&(o=1);let c=o>0?a.options.minAngle+i*(a.options.maxAngle-a.options.minAngle)/o:0;c>a.options.maxAngle?c=a.options.maxAngle:c=i&&n.animate(a.options.duration||500).ease("-").move(a.options.toX,a.options.toY)}static \u0275fac=function(t){return new(t||La)};static \u0275cmp=e.Xpm({type:La,selectors:[["gauge-shapes"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}class nu extends uo{static TypeTag="svg-ext-proceng";static LabelTag="Proc-Eng";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show,blink:Tt.KG.blink,stop:Tt.KG.stop,clockwise:Tt.KG.clockwise,anticlockwise:Tt.KG.anticlockwise,rotate:Tt.KG.rotate,move:Tt.KG.move};constructor(){super()}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.alarmId&&t.push(a.alarmId),a.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getActions(a){return this.actionsType}static getDialogType(){return Do.RangeWithAlarm}static isBitmaskSupported(){return!0}static processValue(a,t,i,n){try{if(t.node){let o=parseFloat(i.value);if(o=Number.isNaN(o)?Number(i.value):parseFloat(o.toFixed(5)),a.property){let s=uo.checkBitmask(a.property.bitmask,o),c=new Tt.I9;if(a.property.variableId===i.id&&a.property.ranges){for(let g=0;g=s&&(c.fill=a.property.ranges[g].color,c.stroke=a.property.ranges[g].stroke);c.fill&&uo.walkTreeNodeToSetAttribute(t.node,"fill",c.fill),c.stroke&&uo.walkTreeNodeToSetAttribute(t.node,"stroke",c.stroke)}a.property.actions&&a.property.actions.forEach(g=>{g.variableId===i.id&&nu.processAction(g,t,o,n,c)})}}}catch(o){console.error(o)}}static processAction(a,t,i,n,o){let s=uo.checkBitmask(a.bitmask,i);if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=s&&a.range.max>=s){let g=SVG.adopt(t.node);this.runActionHide(g,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.show){if(a.range.min<=s&&a.range.max>=s){let g=SVG.adopt(t.node);this.runActionShow(g,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.blink){let g=SVG.adopt(t.node);this.checkActionBlink(g,a,n,a.range.min<=s&&a.range.max>=s,!1,o)}else if(this.actionsType[a.type]===this.actionsType.rotate)La.rotateShape(a,t,s);else if(La.actionsType[a.type]===La.actionsType.move)La.moveShape(a,t,s);else if(a.range.min<=s&&a.range.max>=s){var c=SVG.adopt(t.node);nu.runMyAction(c,a.type,n)}}static runMyAction(a,t,i){i.actionRef&&i.actionRef.type===t||(a.timeline&&a.timeline().stop(),i.actionRef?.animr&&i.actionRef?.animr.unschedule(),nu.actionsType[t]===nu.actionsType.clockwise?i.actionRef=La.startRotateAnimationShape(a,t,360):nu.actionsType[t]===nu.actionsType.anticlockwise?i.actionRef=La.startRotateAnimationShape(a,t,-360):nu.actionsType[t]===nu.actionsType.stop&&La.stopAnimationShape(i,t))}static \u0275fac=function(t){return new(t||nu)};static \u0275cmp=e.Xpm({type:nu,selectors:[["gauge-proc-eng"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}class Ec extends uo{static TypeTag="svg-ext-ape";static EliType="svg-ext-ape-eli";static PistonType="svg-ext-ape-piston";static LabelTag="AnimProcEng";static actionsType={stop:Tt.KG.stop,clockwise:Tt.KG.clockwise,anticlockwise:Tt.KG.anticlockwise,downup:Tt.KG.downup,hide:Tt.KG.hide,show:Tt.KG.show,rotate:Tt.KG.rotate,move:Tt.KG.move};constructor(){super()}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.alarmId&&t.push(a.alarmId),a.actions&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getActions(a){let t=Object.assign({},Ec.actionsType);return a===Ec.EliType?delete t.downup:a===Ec.PistonType&&(delete t.anticlockwise,delete t.clockwise),t}static getDialogType(){return Do.RangeWithAlarm}static isBitmaskSupported(){return!0}static processValue(a,t,i,n){try{if(t.node){let o=parseFloat(i.value);if(o=Number.isNaN(o)?Number(i.value):parseFloat(o.toFixed(5)),a.property){let s=uo.checkBitmask(a.property.bitmask,o);if(a.property.variableId===i.id&&a.property.ranges){let c=new Tt.I9;for(let g=0;g=s&&(c.fill=a.property.ranges[g].color,c.stroke=a.property.ranges[g].stroke);c.fill&&uo.walkTreeNodeToSetAttribute(t.node,"fill",c.fill),c.stroke&&uo.walkTreeNodeToSetAttribute(t.node,"stroke",c.stroke)}a.property.actions&&a.property.actions.forEach(c=>{c.variableId===i.id&&Ec.processAction(c,t,o,n)})}}}catch(o){console.error(o)}}static processAction(a,t,i,n){let o=uo.checkBitmask(a.bitmask,i);if(this.actionsType[a.type]===this.actionsType.hide){if(a.range.min<=o&&a.range.max>=o){let c=SVG.adopt(t.node);Ec.clearAnimationTimer(n.actionRef),this.runActionHide(c,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.show){if(a.range.min<=o&&a.range.max>=o){let c=SVG.adopt(t.node);this.runActionShow(c,a.type,n)}}else if(this.actionsType[a.type]===this.actionsType.rotate)La.rotateShape(a,t,o);else if(La.actionsType[a.type]===La.actionsType.move)La.moveShape(a,t,o);else if(a.range.min<=o&&a.range.max>=o){var s=SVG.adopt(t.node);Ec.runMyAction(s,a.type,n)}}static runMyAction(a,t,i){if(!i.actionRef||i.actionRef.type!==t)if(a.timeline&&a.timeline().stop(),i.actionRef?.animr?.unschedule instanceof Function&&i.actionRef?.animr.unschedule(),Ec.actionsType[t]===Ec.actionsType.clockwise)i.actionRef=La.startRotateAnimationShape(a,t,360);else if(Ec.actionsType[t]===Ec.actionsType.anticlockwise)i.actionRef=La.startRotateAnimationShape(a,t,-360);else if(Ec.actionsType[t]===Ec.actionsType.downup){let s=ii.cQ.searchTreeStartWith(a.node,"pm");if(s){a=SVG.adopt(s);let c=s.getBBox();var n={x:c.x,y:c.y};i.actionRef&&i.actionRef.spool&&(n=i.actionRef.spool);var o={x:c.x,y:c.y-25};Ec.clearAnimationTimer(i.actionRef);let g=setInterval(()=>{a.animate(1e3).ease("-").move(o.x,o.y).animate(1e3).ease("-").move(n.x,n.y)},2e3);i.actionRef={type:t,timer:g,spool:n}}}else Ec.actionsType[t]===Ec.actionsType.stop&&La.stopAnimationShape(i,t)}static \u0275fac=function(t){return new(t||Ec)};static \u0275cmp=e.Xpm({type:Ec,selectors:[["ape-shapes"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}var bb=function(r){return r.hidecontent="pipe.action-hide-content",r}(bb||{});class Ka{static TypeTag="svg-ext-pipe";static LabelTag="Pipe";static prefixB="PIE_";static prefixC="cPIE_";static prefixAnimation="aPIE_";static actionsType={stop:Tt.KG.stop,clockwise:Tt.KG.clockwise,anticlockwise:Tt.KG.anticlockwise,hidecontent:bb.hidecontent,blink:Tt.KG.blink};static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.alarmId&&t.push(a.alarmId),a.actions&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getActions(a){return this.actionsType}static getDialogType(){return Do.Pipe}static isBitmaskSupported(){return!0}static processValue(a,t,i,n){try{if(t.node){let o=parseFloat(i.value);if(o=Number.isNaN(o)?Number(i.value):parseFloat(o.toFixed(5)),a.property){let s=new Tt.I9;s.fill=a.property?.options?.pipe,s.stroke=a.property?.options.content,a.property.actions&&a.property.actions.forEach(c=>{if(c.variableId===i.id){const g=Ka.processAction(c,t,o,n,s);a.property?.options?.imageAnimation&&g&&Ka.runImageAction(a,c,t.node,n)}})}}}catch(o){console.error(o)}}static processAction(a,t,i,n,o){let s=uo.checkBitmask(a.bitmask,i);if(this.actionsType[a.type]===this.actionsType.blink){let O=SVG.adopt(t.node);var c=ii.cQ.searchTreeStartWith(O.node,"p"+this.prefixB),g=ii.cQ.searchTreeStartWith(O.node,"c"+this.prefixB);this.runMyActionBlink(c,g,a,n,a.range.min<=s&&a.range.max>=s,o)}else if(a.range.min<=s&&a.range.max>=s){var B=SVG.adopt(t.node);return Ka.runMyAction(B,a.type,n),!0}return!1}static runMyAction(a,t,i){if(Ka.actionsType[t]===Ka.actionsType.stop)i.actionRef?.timer&&(clearTimeout(i.actionRef.timer),i.actionRef.timer=null),i.actionRef?.animr&&i.actionRef.animr.stop();else{if(i.actionRef?.timer){if(i.actionRef.type===t)return;clearTimeout(i.actionRef.timer),i.actionRef.timer=null}var n=ii.cQ.searchTreeStartWith(a.node,"c"+this.prefixB);if(n){let o=1e3;if(Ka.actionsType[t]===Ka.actionsType.clockwise){n.style.display="unset";let s=setInterval(()=>{o<0&&(o=1e3),n.style.strokeDashoffset=o,o--},20);i.actionRef??=new Tt.Zs(t),i.actionRef.timer=s,i.actionRef.type=t}else if(Ka.actionsType[t]===Ka.actionsType.anticlockwise){n.style.display="unset";let s=setInterval(()=>{o>1e3&&(o=0),n.style.strokeDashoffset=o,o++},20);i.actionRef??=new Tt.Zs(t),i.actionRef.timer=s,i.actionRef.type=t}else Ka.actionsType[t]===Ka.actionsType.hidecontent&&(n.style.display="none")}}}static runImageAction(a,t,i,n){return(0,_O.Z)(function*(){if(!n.actionRef?.animr){n.actionRef??=new Tt.Zs(t.type),Ka.removeImageChildren(i);let o=yield Z8(a,i,!0,"forward");n.actionRef.animr=o}Ka.actionsType[t.type]===Ka.actionsType.stop?n.actionRef.animr.stop():(Ka.actionsType[t.type]===Ka.actionsType.clockwise?n.actionRef.animr.setDirection("forward"):Ka.actionsType[t.type]===Ka.actionsType.anticlockwise&&n.actionRef.animr.setDirection("reverse"),n.actionRef.animr.isRunning||n.actionRef.animr.start())})()}static runMyActionBlink(a,t,i,n,o,s){if(n.actionBlinkRef||(n.actionBlinkRef=new Tt.Zs(i.type)),n.actionBlinkRef.type=i.type,o){if(n.actionBlinkRef.timer&&uo.getBlinkActionId(i)===n.actionBlinkRef.spool?.actId)return;uo.clearAnimationTimer(n.actionBlinkRef);var c=!1;try{const g=uo.getBlinkActionId(i);n.actionBlinkRef.spool={fill:a.getAttribute("stroke"),stroke:t.getAttribute("stroke"),actId:g}}catch(g){console.error(g)}n.actionBlinkRef.timer=setInterval(()=>{c=!c;try{uo.walkTreeNodeToSetAttribute(a,"stroke",c?i.options.fillA:i.options.fillB),uo.walkTreeNodeToSetAttribute(t,"stroke",c?i.options.strokeA:i.options.strokeB)}catch(g){console.error(g)}},i.options.interval)}else if(!o)try{n.actionBlinkRef?.spool?.actId===uo.getBlinkActionId(i)&&(n.actionBlinkRef.timer&&(clearInterval(n.actionBlinkRef.timer),n.actionBlinkRef.timer=null),s&&n.actionBlinkRef.spool&&(s.fill&&(n.actionBlinkRef.spool.fill=s.fill),s.stroke&&(n.actionBlinkRef.spool.stroke=s.stroke)),uo.walkTreeNodeToSetAttribute(a,"stroke",n.actionBlinkRef.spool?.fill),uo.walkTreeNodeToSetAttribute(t,"stroke",n.actionBlinkRef.spool?.stroke))}catch(g){console.error(g)}}static initElement(a,t,i){let n=document.getElementById(a.id);return n&&(Ka.removeImageChildren(n),a.property?.options?.imageAnimation&&Z8(a,n,t).then(o=>{o.stop()}).catch(o=>{console.error("Error occurred while initializing animation:",o)})),n}static removeImageChildren(a){let t=ii.cQ.searchTreeStartWith(a,Ka.prefixAnimation);t&&a.removeChild(t),ii.cQ.childrenStartWith(a,"svg_").forEach(n=>{a.removeChild(n)})}static resize(a){Ka.initElement(a,!1)}static detectChange(a,t,i){let o=i.nativeWindow.svgEditor.runExtension("pipe","initPipe",{id:a.id,property:a.property.options});return Ka.initElement(a,!1),o}static \u0275fac=function(t){return new(t||Ka)};static \u0275prov=e.Yz7({token:Ka,factory:Ka.\u0275fac})}function Z8(r,a,t,i="forward"){let n=ii.cQ.searchTreeStartWith(a,Ka.prefixC);return n?fetch(r.property.options.imageAnimation.imageUrl).then(o=>{if(!o.ok)throw new Error(`Failed to load SVG: ${o.statusText}`);return o.text()}).then(o=>{const g=(new DOMParser).parseFromString(o,"image/svg+xml").documentElement;g.setAttribute("id",ii.cQ.getShortGUID("svg_"));const B=new bce(g,n,r.property.options.imageAnimation.count),O=new xce(B,r.property.options.imageAnimation.delay,t,i);return O.initialize(),O}):Promise.resolve(null)}class Cce{border="#3F4964";borderWidth=11;pipe="#E79180";pipeWidth=6;content="#DADADA";contentWidth=6;contentSpace=20;imageAnimation}class bce{images=[];path=null;constructor(a,t,i){if(this.path=t,!a||!this.path)throw new Error("Pipe Image or track element not found.");for(let n=0;n{this.path.parentElement?.appendChild(n)})}move(a){if(!this.path)return;const t=this.path.getTotalLength();this.images.forEach((i,n)=>{const s=this.path.getPointAtLength((a+n/this.images.length)%1*t),c=i.getBoundingClientRect(),B=c.height/2;i.setAttribute("x",""+(s.x-c.width/2)),i.setAttribute("y",""+(s.y-B))})}}class xce{duration;tZero=0;multiImageInPath;loop;direction;isRunning=!1;animationFrameId=null;constructor(a,t,i=!0,n="forward"){this.multiImageInPath=a,this.duration=t,this.loop=i,this.direction=n}initialize(){this.multiImageInPath.move("forward"===this.direction?0:1)}start(){this.isRunning||(this.isRunning=!0,this.tZero=Date.now(),requestAnimationFrame(()=>this.run()))}stop(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.isRunning=!1}setDirection(a){this.direction=a}run(){if(!this.isRunning)return;let t=(Date.now()-this.tZero)/this.duration,i=t%1;"reverse"===this.direction&&(i=1-i),this.multiImageInPath.move(i),this.loop||t<1?this.animationFrameId=requestAnimationFrame(()=>this.run()):this.onFinish()}onFinish(){this.loop&&setTimeout(()=>this.start(),1e3)}}const Bce=["panel"],Ece=["slider"];class IP{orientation="vertical";direction="ltr";fontFamily="Sans-serif";shape={baseColor:"#cdcdcd",connectColor:"#262c3b",handleColor:"#3f4964"};marker={color:"#222222",subWidth:5,subHeight:1,fontSize:18,divHeight:2,divWidth:12};range={min:0,max:100};step=1;pips={mode:"values",values:[0,50,100],density:4};tooltip={type:"none",decimals:0,background:"#FFF",color:"#000",fontSize:12}}let kP=(()=>{class r{id;panel;slider;options;size={w:0,h:0};padding=40;defOptions=new IP;uiSlider;onUpdate;uiWorking=!1;uiWorkingTimeout;constructor(){}ngOnInit(){this.options=Object.assign(this.defOptions,this.options)}ngAfterViewInit(){setTimeout(()=>{this.init()},200)}resize(t,i){this.size.h=t-2*this.padding,this.size.w=i-2*this.padding,this.init()}ngOnDestroy(){try{this.slider.nativeElement.remove(),this.panel.nativeElement.remove(),this.uiWorkingTimeout&&clearTimeout(this.uiWorkingTimeout),this.uiSlider&&(this.uiSlider.off(),this.uiSlider.destroy(),delete this.uiSlider,delete this.onUpdate)}catch{}}setOptions(t){let i=!1;return(this.options.orientation!==t.orientation||JSON.stringify(this.options.range)!==JSON.stringify(t.range)||JSON.stringify(this.options.pips)!==JSON.stringify(t.pips)||JSON.stringify(this.options.marker)!==JSON.stringify(t.marker)||JSON.stringify(this.options.tooltip)!==JSON.stringify(t.tooltip))&&(i=!0),t.fontFamily&&(this.panel.nativeElement.style.fontFamily=t.fontFamily),this.options=t,!!i&&(this.init(),!0)}getOptions(){return this.options}init(){"vertical"===this.options.orientation?(this.slider.nativeElement.style.height=this.size.h+"px",this.slider.nativeElement.style.width=null):(this.slider.nativeElement.style.width=this.size.w+"px",this.slider.nativeElement.style.height=null);let t=[!1];if(("hide"===this.options.tooltip.type||"show"===this.options.tooltip.type)&&(t=[wNumb({decimals:this.options.tooltip.decimals})]),this.uiSlider&&(this.uiSlider.off(),this.uiSlider.destroy()),this.uiSlider=noUiSlider.create(this.slider.nativeElement,{start:[this.options.range.min+Math.abs(this.options.range.max-this.options.range.min)/2],connect:[!0,!1],orientation:this.options.orientation,direction:this.options.direction,tooltips:t,range:this.options.range,step:this.options.step,pips:{mode:"values",values:this.options.pips.values,density:this.options.pips.density},shape:this.options.shape,marker:this.options.marker}),"show"===this.options.tooltip.type)(i=this.uiSlider.target.getElementsByClassName("noUi-tooltip"))&&i.length>0&&(i[0].style.display="block");else if("hide"===this.options.tooltip.type){var i;(i=this.uiSlider.target.getElementsByClassName("noUi-active noUi-tooltip"))&&i.length>0&&(i[0].style.display="block")}"none"!==this.options.tooltip.type&&(i=this.uiSlider.target.getElementsByClassName("noUi-tooltip"))&&i.length>0&&(i[0].style.color=this.options.tooltip.color,i[0].style.background=this.options.tooltip.background,i[0].style.fontSize=this.options.tooltip.fontSize+"px");let n=this;this.uiSlider.on("slide",function(o,s){n.onUpdate&&(n.resetWorkingTimeout(),n.onUpdate(o[s]))})}resetWorkingTimeout(){this.uiWorking=!0,this.uiWorkingTimeout&&clearTimeout(this.uiWorkingTimeout);let t=this;this.uiWorkingTimeout=setTimeout(function(){t.uiWorking=!1},1e3)}setValue(t){this.uiWorking||this.uiSlider.set(t)}bindUpdate(t){this.onUpdate=t}currentValue(){return parseFloat(this.uiSlider.get())}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["ngx-nouislider"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Bce,5),e.Gf(Ece,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.panel=o.first),e.iGM(o=e.CRH())&&(n.slider=o.first)}},inputs:{id:"id",options:"options"},decls:4,vars:0,consts:[[2,"margin","40px 40px 40px 40px"],["panel",""],["id","mySlider",1,"myslider-container"],["slider",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e._UZ(2,"div",2,3),e.qZA())},styles:[".myslider-container[_ngcontent-%COMP%]{z-index:1;margin:auto}"]})}return r})(),oh=(()=>{class r{static TypeTag="svg-ext-html_slider";static LabelTag="HtmlSlider";static prefix="D-SLI_";static getSignals(t){let i=[];return t.variableId&&i.push(t.variableId),t.alarmId&&i.push(t.alarmId),t.actions&&t.actions.forEach(n=>{i.push(n.variableId)}),i}static getDialogType(){return Do.Slider}static bindEvents(t,i,n){return i&&i.bindUpdate(o=>{let s=new Tt.ju;s.type="on",s.ga=t,s.value=o,n(s)}),null}static processValue(t,i,n,o,s){try{if(s){let c=parseFloat(n.value);c=Number.isNaN(c)?Number(n.value):parseFloat(c.toFixed(5)),s.setValue(c)}}catch(c){console.error(c)}}static initElement(t,i,n,o){let s=document.getElementById(t.id);if(s){s?.setAttribute("data-name",t.name);let c=ii.cQ.searchTreeStartWith(s,this.prefix);if(c){const g=i.resolveComponentFactory(kP),B=n.createComponent(g);return c.innerHTML="",B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement),B.instance.resize(c.clientHeight,c.clientWidth),t.property&&t.property.options&&(B.instance.setOptions(t.property.options)||B.instance.init()),B.instance.myComRef=B,B.instance.name=t.name,B.instance}}}static initElementColor(t,i,n){n&&n.setAttribute("fill",t)}static resize(t,i,n,o){let s=document.getElementById(t.id);if(s){let c=ii.cQ.searchTreeStartWith(s,this.prefix);if(c){const g=i.resolveComponentFactory(kP),B=n.createComponent(g);return c.innerHTML="",B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement),B.instance.resize(c.clientHeight,c.clientWidth),o&&B.instance.setOptions(o),B.instance}}}static getFillColor(t){if(t)return t.getAttribute("fill")}static detectChange(t,i,n){let o;return t.property&&t.property.options&&(o=t.property.options),r.initElement(t,i,n,o)}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})(),Wv=(()=>{class r extends uo{static TypeTag="svg-ext-own_ctrl-iframe";static LabelTag="HtmlIframe";static prefixD="D-OXC_";constructor(){super()}static getSignals(t){let i=[];return t.variableId&&i.push(t.variableId),i}static getDialogType(){return Do.Iframe}static processValue(t,i,n){try{if(n.value&&i?.node?.children?.length>=1){const s=ii.cQ.searchTreeStartWith(i.node,this.prefixD).querySelector("iframe");s.getAttribute("src")!==n.value&&ii.cQ.isValidUrl(n.value)&&s.setAttribute("src",n.value)}}catch(o){console.error(o)}}static initElement(t,i){let n=null,o=document.getElementById(t.id);if(o&&(o?.setAttribute("data-name",t.name),n=ii.cQ.searchTreeStartWith(o,this.prefixD),n)){n.innerHTML="";let s=document.createElement("iframe");s.setAttribute("name",t.name),s.style.width="100%",s.style.height="100%",s.style.border="none",s.style["background-color"]="#F1F3F4",i||(n.innerHTML="iframe",s.style.overflow="hidden",s.style["pointer-events"]="none"),s.setAttribute("title","iframe"),t.property&&t.property.address&&i&&(ii.cQ.isValidUrl(t.property.address)?s.setAttribute("src",t.property.address):console.error("IFRAME URL not valid")),s.innerHTML=" ",n.appendChild(s)}return n}static detectChange(t){return r.initElement(t,!1)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["app-html-iframe"]],features:[e.qOj],decls:0,vars:0,template:function(i,n){}})}return r})();var J8=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,j8=/\[([^]*?)\]/gm;function V8(r,a){for(var t=[],i=0,n=r.length;i-1?n:null}};function G0(r){for(var a=[],t=1;t3?0:(r-r%10!=10?1:0)*r%10]}},AD=G0({},X8),ru=function(r,a){for(void 0===a&&(a=2),r=String(r);r.length0?"-":"+")+ru(100*Math.floor(Math.abs(a)/60)+Math.abs(a)%60,4)},Z:function(r){var a=r.getTimezoneOffset();return(a>0?"-":"+")+ru(Math.floor(Math.abs(a)/60),2)+":"+ru(Math.abs(a)%60,2)}},dD=(W8("monthNamesShort"),W8("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"}),Sp=function(r,a,t){if(void 0===a&&(a=dD.default),void 0===t&&(t={}),"number"==typeof r&&(r=new Date(r)),"[object Date]"!==Object.prototype.toString.call(r)||isNaN(r.getTime()))throw new Error("Invalid Date pass to format");var i=[];a=(a=dD[a]||a).replace(j8,function(o,s){return i.push(s),"@@@"});var n=G0(G0({},AD),t);return(a=a.replace(J8,function(o){return Qce[o](r,n)})).replace(/@@@/g,function(){return i.shift()})},uD=ce(217);let oN=(()=>{class r{static columnDelimiter=",";static lineDelimiter="\n";constructor(){}exportTagsData(t){let i="",o=`${t.name}.csv`;for(let c=0;c{class r{rcgiService;endPointConfig=bp.C.getURL();server;constructor(t){this.rcgiService=t,this.server=t.rcgi}getReportsDir(t){return this.server.getReportsDir(t)}getReportsQuery(t){return this.server.getReportsQuery(t)}buildReport(t){return this.server.buildReport(t)}removeReportFile(t){return this.server.removeReportFile(t)}static \u0275fac=function(i){return new(i||r)(e.LFG(yv))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();class Yce{id;name;receiver;scheduling;docproperty;content;constructor(a){this.id=a,this.docproperty=this.defaultDocProperty(),this.scheduling=ii.cQ.getEnumKey(Tb,Tb.week),this.content={items:[]}}defaultDocProperty(){return{pageSize:"A4",pageOrientation:"portrait",pageMargins:[60,40,40,40],fontName:"Helvetica"}}}var Tb=function(r){return r.none="report.scheduling-none",r.day="report.scheduling-day",r.week="report.scheduling-week",r.month="report.scheduling-month",r}(Tb||{}),sN=function(r){return r[r.timestamp=0]="timestamp",r[r.tag=1]="tag",r}(sN||{}),Rg=function(r){return r.text="report.item-type-text",r.table="report.item-type-table",r.alarms="report.item-type-alarms",r.chart="report.item-type-chart",r}(Rg||{}),Pp=function(r){return r.one="report.item-daterange-none",r.day="report.item-daterange-day",r.week="report.item-daterange-week",r.month="report.item-daterange-month",r}(Pp||{}),gD=function(r){return r.min5="report.item-interval-min5",r.min10="report.item-interval-min10",r.min30="report.item-interval-min30",r.hour="report.item-interval-hour",r.day="report.item-interval-day",r}(gD||{}),fD=function(r){return r.min="report.item-function-min",r.max="report.item-function-max",r.average="report.item-function-average",r.sum="report.item-function-sum",r}(fD||{}),OP=function(r){return r.name="name",r.ontime="ontime",r.download="download",r.delete="delete",r}(OP||{});const LP=Object.values(OP);let RP=(()=>{class r{rcgiService;translateService;toastr;server;constructor(t,i,n){this.rcgiService=t,this.translateService=i,this.toastr=n,this.server=t.rcgi}getReportFile(t){return this.server.downloadFile(t,lN.reportDownload)}notifyError(t){var i="";this.translateService.get("msg.report-build-error").subscribe(n=>{i=n}),this.toastr.error(i,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}static \u0275fac=function(i){return new(i||r)(e.LFG(yv),e.LFG(Ni.sK),e.LFG(Vf._W))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var lN=function(r){return r.reportDownload="REPORT-DOWNLOAD",r}(lN||{});function Uce(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",13)(1,"input",14),e.NdJ("keyup",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.applyFilter(n.target.value))}),e.ALo(2,"translate"),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Udp("background-color",t.tableOptions.header.background)("color",t.tableOptions.row.color),e.s9C("placeholder",e.lcZ(2,5,"table.history-filter"))}}function zce(r,a){if(1&r&&(e.TgZ(0,"mat-option",22),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(4);e.Udp("color",i.tableOptions.row.color)("background-color",i.tableOptions.row.background),e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Hce(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.tableOptions.lastRange=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.onRangeChanged(n.source.value))}),e.YNc(2,zce,2,6,"mat-option",18),e.ALo(3,"enumToArray"),e.qZA(),e.TgZ(4,"button",19),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onDateRange())}),e.TgZ(5,"mat-icon",20),e._uU(6,"access_time"),e.qZA()(),e.TgZ(7,"button",19),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onExportData())}),e.TgZ(8,"mat-icon",21),e._uU(9,"vertical_align_bottom"),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(1),e.Udp("color",t.tableOptions.row.color)("background-color",t.tableOptions.row.background),e.Q6J("value",t.tableOptions.lastRange),e.xp6(1),e.Q6J("ngForOf",e.lcZ(3,14,t.lastRangeType)),e.xp6(2),e.Udp("color",t.tableOptions.row.color)("background-color",t.tableOptions.row.background),e.xp6(3),e.Udp("color",t.tableOptions.row.color)("background-color",t.tableOptions.row.background)}}function Gce(r,a){if(1&r&&(e.TgZ(0,"div"),e._UZ(1,"button",23),e.TgZ(2,"button",24)(3,"mat-icon",20),e._uU(4,"access_time"),e.qZA()(),e.TgZ(5,"button",24)(6,"mat-icon",21),e._uU(7,"vertical_align_bottom"),e.qZA()()()),2&r){const t=e.oxw(3);e.xp6(1),e.Udp("color",t.tableOptions.row.color)("background-color",t.tableOptions.row.background),e.xp6(1),e.Udp("color",t.tableOptions.row.color)("background-color",t.tableOptions.row.background),e.xp6(3),e.Udp("color",t.tableOptions.row.color)("background-color",t.tableOptions.row.background)}}function Zce(r,a){if(1&r&&(e.TgZ(0,"div",15),e.YNc(1,Hce,10,16,"div",16),e.YNc(2,Gce,8,12,"div",16),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",!t.isEditor),e.xp6(1),e.Q6J("ngIf",t.isEditor)}}const Jce=function(){return[10,25,100]};function jce(r,a){if(1&r&&e._UZ(0,"mat-paginator",25),2&r){const t=e.oxw(2);e.Udp("color",t.tableOptions.row.color),e.Q6J("pageSizeOptions",e.DdM(4,Jce))("pageSize",25)}}function Vce(r,a){if(1&r&&(e.TgZ(0,"div",9),e.YNc(1,Uce,3,7,"div",10),e.YNc(2,Zce,3,2,"div",11),e.YNc(3,jce,1,5,"mat-paginator",12),e.qZA()),2&r){const t=e.oxw();e.Udp("background-color",t.tableOptions.row.background),e.xp6(1),e.Q6J("ngIf",t.tableOptions.filter.show),e.xp6(1),e.Q6J("ngIf",t.tableOptions.daterange.show),e.xp6(1),e.Q6J("ngIf",t.tableOptions.paginator.show)}}function Wce(r,a){if(1&r&&(e.TgZ(0,"th",29),e._uU(1),e.qZA()),2&r){const t=e.oxw().$implicit,i=e.oxw();e.Udp("width",null!=i.columnsStyle[t]&&i.columnsStyle[t].width?i.columnsStyle[t].width:"auto","px")("color",null!=i.columnsStyle[t]&&i.columnsStyle[t].color?i.columnsStyle[t].color:null==i.tableOptions.header?null:i.tableOptions.header.color)("text-align",null!=i.columnsStyle[t]&&i.columnsStyle[t].align?i.columnsStyle[t].align:"left")("font-size",i.tableOptions.header.fontSize,"px"),e.xp6(1),e.hij(" ",null==i.columnsStyle[t]?null:i.columnsStyle[t].label," ")}}function Kce(r,a){if(1&r&&(e.ynx(0),e._uU(1),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw().$implicit;e.xp6(1),e.hij(" ",t[i]," ")}}function qce(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",36),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2).$implicit,o=e.oxw(2);return e.KtG(o.onAckAlarm(n))}),e.TgZ(1,"mat-icon"),e._uU(2,"check_circle_outline"),e.qZA()()}if(2&r){const t=e.oxw(2).$implicit;e.Q6J("disabled",0===t.toack)}}function Xce(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",37),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2).$implicit,o=e.oxw(2);return e.KtG(o.onDownloadReport(n))}),e.TgZ(1,"mat-icon"),e._uU(2,"vertical_align_bottom"),e.qZA()()}}function $ce(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",38),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2).$implicit,o=e.oxw(2);return e.KtG(o.onRemoveReportFile(n))}),e.TgZ(1,"mat-icon"),e._uU(2,"delete_forever"),e.qZA()()}if(2&r){const t=e.oxw(2).$implicit;e.Q6J("disabled",!t.deletable)}}function eAe(r,a){if(1&r&&(e._uU(0),e.YNc(1,qce,3,1,"button",33),e.YNc(2,Xce,3,0,"button",34),e.YNc(3,$ce,3,1,"button",35)),2&r){const t=e.oxw().$implicit,i=e.oxw().$implicit,n=e.oxw();e.hij(" ",null==t[i]?null:t[i].stringValue," "),e.xp6(1),e.Q6J("ngIf",i===n.alarmColumnType.ack&&t.toack>=0),e.xp6(1),e.Q6J("ngIf",i===n.reportColumnType.download),e.xp6(1),e.Q6J("ngIf",i===n.reportColumnType.delete)}}const tAe=function(r,a,t){return{"width.px":r,"text-align":a,"font-size.px":t}};function iAe(r,a){if(1&r&&(e.TgZ(0,"td",30),e.YNc(1,Kce,2,1,"ng-container",31),e.YNc(2,eAe,4,4,"ng-template",null,32,e.W1O),e.qZA()),2&r){const t=e.MAs(3),i=e.oxw().$implicit,n=e.oxw();e.Q6J("ngStyle",e.kEZ(3,tAe,n.columnsStyle[i].width,n.columnsStyle[i].align,n.tableOptions.row.fontSize)),e.xp6(1),e.Q6J("ngIf",n.setOfSourceTableData)("ngIfElse",t)}}function nAe(r,a){1&r&&(e.ynx(0,26),e.YNc(1,Wce,2,9,"th",27),e.YNc(2,iAe,4,7,"td",28),e.BQk()),2&r&&e.Q6J("matColumnDef",a.$implicit)}function rAe(r,a){if(1&r&&e._UZ(0,"mat-header-row",39),2&r){const t=e.oxw();e.Udp("height",t.tableOptions.header.height,"px")("background-color",t.tableOptions.header.background)("border-bottom-color",t.tableOptions.gridColor)("display",t.tableOptions.header.show?"flex":"none")}}const mD=function(r,a,t,i,n){return{cursor:r,"height.px":a,"background-color":t,"border-bottom-color":i,color:n}};function oAe(r,a){if(1&r&&e._UZ(0,"mat-row",41),2&r){const t=a.$implicit,i=e.oxw(2);e.Q6J("ngStyle",e.qbA(1,mD,i.isSelectable()?"pointer":"unset",i.tableOptions.row.height,i.isSelected(t)?i.tableOptions.selection.background:i.tableOptions.row.background,i.tableOptions.gridColor,i.isSelected(t)?i.tableOptions.selection.color:i.tableOptions.row.color))}}function aAe(r,a){if(1&r&&(e.ynx(0),e.YNc(1,oAe,1,7,"mat-row",40),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns)}}function sAe(r,a){if(1&r&&e._UZ(0,"mat-row",41),2&r){const t=a.$implicit,i=e.oxw(2);e.Q6J("ngStyle",e.qbA(1,mD,i.isSelectable()?"pointer":"unset",i.tableOptions.row.height,t.bkcolor,i.tableOptions.gridColor,t.color))}}function lAe(r,a){if(1&r&&(e.ynx(0),e.YNc(1,sAe,1,7,"mat-row",40),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns)}}function cAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-row",43),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2);return e.KtG(s.selectRow(o))}),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.Q6J("ngStyle",e.qbA(1,mD,i.isSelectable()?"pointer":"unset",i.tableOptions.row.height,i.isSelected(t)?i.tableOptions.selection.background:i.tableOptions.row.background,i.tableOptions.gridColor,i.isSelected(t)?i.tableOptions.selection.color:i.tableOptions.row.color))}}function AAe(r,a){if(1&r&&(e.ynx(0),e.YNc(1,cAe,1,7,"mat-row",42),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns)}}function dAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-row",43),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2);return e.KtG(s.selectRow(o))}),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.Q6J("ngStyle",e.qbA(1,mD,i.isSelectable()?"pointer":"unset",i.tableOptions.row.height,i.isSelected(t)?i.tableOptions.selection.background:i.tableOptions.row.background,i.tableOptions.gridColor,i.isSelected(t)?i.tableOptions.selection.color:i.tableOptions.row.color))}}function uAe(r,a){if(1&r&&(e.ynx(0),e.YNc(1,dAe,1,7,"mat-row",42),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns)}}const hAe=function(r){return{"reload-active":r}};function pAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",44)(1,"button",45),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onRefresh())}),e.TgZ(2,"mat-icon",46),e._uU(3,"autorenew"),e.qZA()()()}if(2&r){const t=e.oxw();e.Udp("top",t.withToolbar?45:0,"px"),e.xp6(1),e.Udp("color",t.tableOptions.header.color),e.xp6(1),e.Q6J("ngClass",e.VKq(5,hAe,t.reloadActive))}}function gAe(r,a){1&r&&(e.TgZ(0,"div",47),e._UZ(1,"mat-spinner",48),e.qZA())}let Ib=(()=>{class r{dataService;projectService;hmiService;scriptService;reportsService;languageService;commandService;dialog;translateService;table;sort;trigger;paginator;onTimeRange$=new ba.X(null);rxjsPollingTimer;statusText=Mb;priorityText=Db;alarmColumnType=hD;reportColumnType=OP;loading=!1;id;type;isEditor;displayedColumns=[];columnsStyle={};dataSource=new Nn([]);tagsMap={};timestampMap={};tagsColumnMap={};range={from:Date.now(),to:Date.now()};tableType=Tt.Nd;tableHistoryType=Tt.Nd.history;lastRangeType=Tt.rC;tableOptions=r.DefaultOptions();data=[];reloadActive=!1;withToolbar=!1;lastDaqQuery=new Tt.jS;destroy$=new An.x;historyDateformat="";addValueInterval=0;pauseMemoryValue={};setOfSourceTableData=!1;selectedRow=null;events;eventSelectionType=ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.select);dataFilter;constructor(t,i,n,o,s,c,g,B,O){this.dataService=t,this.projectService=i,this.hmiService=n,this.scriptService=o,this.reportsService=s,this.languageService=c,this.commandService=g,this.dialog=B,this.translateService=O}ngOnInit(){this.dataSource.data=this.data,Object.keys(this.lastRangeType).forEach(t=>{this.translateService.get(this.lastRangeType[t]).subscribe(i=>{this.lastRangeType[t]=i})}),this.dataSource.filterPredicate=(t,i)=>{const n=Object.values(t).map(o=>o.stringValue);for(let o=0;o{this.statusText[t]=this.translateService.instant(this.statusText[t])}),Object.keys(this.priorityText).forEach(t=>{this.priorityText[t]=this.translateService.instant(this.priorityText[t])}),this.type===Tt.Nd.alarms&&this.startPollingAlarms()):this.isReportsType()&&this.startPollingReports()}ngAfterViewInit(){this.sort.disabled=this.type===Tt.Nd.data,this.bindTableControls()}ngOnDestroy(){try{this.destroy$.next(null),this.destroy$.complete()}catch(t){console.error(t)}}startPollingAlarms(){this.rxjsPollingTimer=(0,Mo.H)(0,2500),this.rxjsPollingTimer.pipe((0,On.R)(this.destroy$),(0,Xs.w)(()=>this.hmiService.getAlarmsValues(this.dataFilter))).subscribe(t=>{this.updateAlarmsTable(t)})}startPollingReports(){this.rxjsPollingTimer=(0,Mo.H)(0,3e5),this.rxjsPollingTimer.pipe((0,On.R)(this.destroy$),(0,Xs.w)(()=>this.reportsService.getReportsQuery(this.dataFilter))).subscribe(t=>{this.updateReportsTable(t)})}onRangeChanged(t){this.isEditor||t&&(this.range.from=Date.now(),this.range.to=Date.now(),this.range.from=new Date(this.range.from).setTime(new Date(this.range.from).getTime()-60*fAe.TableRangeToHours(t)*60*1e3),this.lastDaqQuery.event=t,this.lastDaqQuery.gid=this.id,this.lastDaqQuery.sids=this.getVariableIdsForQuery(),this.lastDaqQuery.from=this.range.from,this.lastDaqQuery.to=this.range.to,this.onDaqQuery())}onDateRange(){this.dialog.open(RL,{panelClass:"light-dialog-container"}).afterClosed().subscribe(i=>{i&&(this.range.from=i.start,this.range.to=i.end,this.lastDaqQuery.gid=this.id,this.lastDaqQuery.sids=this.getVariableIdsForQuery(),this.lastDaqQuery.from=i.start,this.lastDaqQuery.to=i.end,this.onDaqQuery())})}onDaqQuery(t){t&&(this.lastDaqQuery=ii.cQ.mergeDeep(this.lastDaqQuery,t)),this.onTimeRange$.next(this.lastDaqQuery),this.type===Tt.Nd.history&&this.setLoading(!0)}onRefresh(){this.onRangeChanged(this.lastDaqQuery.event),this.reloadActive=!0}setOptions(t){this.tableOptions={...this.tableOptions,...t},this.loadData(),this.onRangeChanged(this.tableOptions.lastRange||Tt.rC.last1h)}addValue(t,i,n){if(this.type===Tt.Nd.data&&this.tagsMap[t])this.tagsMap[t].value=n,this.tagsMap[t].cells.forEach(o=>{const s=uo.maskedShiftedValue(n,o.bitmask);o.stringValue=ii.cQ.formatValue(s?.toString(),o.valueFormat)}),this.tagsMap[t].rows.forEach(o=>{this.timestampMap[o]&&this.timestampMap[o].forEach(s=>{s.stringValue=Sp(new Date(1e3*i),s.valueFormat||"YYYY-MM-DD HH:mm:ss")})});else if(this.type===Tt.Nd.history){if(this.tableOptions.realtime){if(this.addValueInterval&&this.pauseMemoryValue[t]&&ii.cQ.getTimeDifferenceInSeconds(this.pauseMemoryValue[t])this.columnsStyle[O]).filter(O=>O.type===Tt.v7.variable);t.forEach((O,ne)=>{const we=c[ne];we&&O.forEach($e=>{const nt=Math.round($e.dt/n)*n;s.has(nt)||s.set(nt,{}),s.get(nt)[we.id]=$e.value,o.add(nt)})});const g=Array.from(o).sort((O,ne)=>ne-O),B=[];g.forEach(O=>{const ne={};this.displayedColumns.forEach(we=>{const $e=this.columnsStyle[we];if(ne[we]={stringValue:""},$e.type===Tt.v7.timestamp)ne[we].stringValue=Sp(new Date(O),$e.valueFormat||"YYYY-MM-DD HH:mm:ss"),ne[we].rowIndex=O;else if($e.type===Tt.v7.device)ne[we].stringValue=$e.exname;else if($e.type===Tt.v7.variable){const nt=s.get(O)?.[we]??null;if(ii.cQ.isNumeric(nt)){const Ft=uo.maskedShiftedValue(nt,$e.bitmask);ne[we].stringValue=ii.cQ.formatValue(Ft?.toString(),$e.valueFormat)}else ne[we].stringValue=nt??""}}),B.push(ne)});for(const O of c){let ne="";for(let we=B.length-1;we>=0;we--)B[we][O.id].stringValue?ne=B[we][O.id].stringValue:B[we][O.id].stringValue=ne}this.dataSource.data=B,this.bindTableControls(),setTimeout(()=>this.setLoading(!1),500),this.reloadActive=!1}updateAlarmsTable(t){let i=[];t.forEach(n=>{let o={type:{stringValue:this.priorityText[n.type]},name:{stringValue:n.name},status:{stringValue:this.statusText[n.status]},text:{stringValue:this.languageService.getTranslation(n.text)??n.text},group:{stringValue:this.languageService.getTranslation(n.group)??n.group},ontime:{stringValue:Sp(new Date(n.ontime),"YYYY.MM.DD HH:mm:ss")},color:n.color,bkcolor:n.bkcolor,toack:n.toack};n.offtime&&(o.offtime={stringValue:Sp(new Date(n.offtime),"YYYY.MM.DD HH:mm:ss")}),n.acktime&&(o.acktime={stringValue:Sp(new Date(n.acktime),"YYYY.MM.DD HH:mm:ss")}),n.userack&&(o.userack={stringValue:Sp(new Date(n.userack),"YYYY.MM.DD HH:mm:ss")}),i.push(o)}),this.dataSource.data=i}updateReportsTable(t){let i=[];t.forEach(n=>{let o={name:{stringValue:n.fileName},ontime:{stringValue:Sp(new Date(n.created),"YYYY.MM.DD HH:mm:ss")},deletable:n.deletable,fileName:n.fileName};i.push(o)}),this.dataSource.data=i}isSelectable(){return this.events?.some(t=>t.type===this.eventSelectionType)}selectRow(t){this.isSelectable()&&(this.selectedRow=t,this.events.forEach(i=>{this.runScript(i,this.selectedRow)}))}isSelected(t){return this.selectedRow===t}runScript(t,i){if(t.actparam){let n=ii.cQ.clone(this.projectService.getScripts().find(o=>o.id==t.actparam));n.parameters=ii.cQ.clone(t.actoptions[Wo.ug]),n.parameters.forEach(o=>{ii.cQ.isNullOrUndefined(o.value)&&(o.value=i)}),this.scriptService.runScript(n).subscribe(o=>{},o=>{console.error(o)})}}addRowDataToTable(t,i,n){let o={},s=null,c=null,g=null;for(let B=0;B=0&&this.dataSource.data[we][s].timestampi.id),this.columnsStyle=t.columns,t.columns.forEach(i=>{let n=i;n.fontSize=t.header?.fontSize,n.color=n.color||t.header?.color,n.background=n.background||t.header?.background,n.width=n.width||100,n.align=n.align||Tt.dm.left,this.columnsStyle[n.id]=n})),t.rows&&(this.dataSource=new Nn(t.rows)),this.bindTableControls()}applyFilter(t){t=(t=t.trim()).toLowerCase(),this.dataSource.filter=t}setLoading(t){t&&(0,Mo.H)(1e4).pipe((0,On.R)(this.destroy$)).subscribe(i=>{this.loading=!1}),this.loading=t}onExportData(){let t={name:"data",columns:[]},i={};Object.values(this.columnsStyle).forEach(n=>{i[n.id]={header:`${n.label}`,values:[]}}),this.dataSource.data.forEach(n=>{Object.keys(n).forEach(o=>{i[o].values.push(n[o].stringValue)})}),t.columns=Object.values(i),this.dataService.exportTagsData(t)}bindTableControls(){this.type===Tt.Nd.history&&this.tableOptions.paginator.show&&(this.dataSource.paginator=this.paginator),this.dataSource.sort=this.sort,this.dataSource.sortingDataAccessor=(t,i)=>t[i].stringValue}loadData(){let t=[];if(this.columnsStyle={},(this.isAlarmsType()?this.tableOptions.alarmsColumns:this.isReportsType()?this.tableOptions.reportsColumns:this.tableOptions.columns).forEach(n=>{t.push(n.id),this.columnsStyle[n.id]=n,this.type===Tt.Nd.history&&(n.variableId&&this.addColumnToMap(n),n.type===Tt.v7.timestamp&&(this.historyDateformat=n.valueFormat))}),this.displayedColumns=t,this.type===Tt.Nd.data){this.data=[];for(let n=0;n{c&&(s[c.id]={stringValue:"",rowIndex:n,...c},this.mapCellContent(s[c.id]))}),this.data.push(s)}}this.dataSource.data=this.data,this.withToolbar=this.type===this.tableHistoryType&&(this.tableOptions.paginator.show||this.tableOptions.filter.show||this.tableOptions.daterange.show)}mapCellContent(t){t.stringValue="",t.type===Tt.v7.variable?t.variableId&&(this.isEditor&&(t.stringValue=numeral("123.56").format(t.valueFormat)),this.addVariableToMap(t)):t.type===Tt.v7.timestamp?(this.isEditor&&(t.stringValue=Sp(new Date(0),t.valueFormat||"YYYY-MM-DD HH:mm:ss")),this.addTimestampToMap(t)):(t.type===Tt.v7.label||t.type===Tt.v7.device)&&(t.stringValue=t.label)}addVariableToMap(t){this.tagsMap[t.variableId]||(this.tagsMap[t.variableId]={value:NaN,cells:[],rows:[]}),this.tagsMap[t.variableId].cells.push(t),this.tagsMap[t.variableId].rows.push(t.rowIndex)}addTimestampToMap(t){this.timestampMap[t.rowIndex]||(this.timestampMap[t.rowIndex]=[]),this.timestampMap[t.rowIndex].push(t)}addColumnToMap(t){this.tagsColumnMap[t.variableId]||(this.tagsColumnMap[t.variableId]=[]),this.tagsColumnMap[t.variableId].push(t)}getVariableIdsForQuery(){return this.tableOptions.columns.filter(t=>t.type===Tt.v7.variable&&t.variableId).map(t=>t.variableId).filter(t=>Object.prototype.hasOwnProperty.call(this.tagsColumnMap,t))}isAlarmsType(){return this.type===Tt.Nd.alarms||this.type===Tt.Nd.alarmsHistory}isReportsType(){return this.type===Tt.Nd.reports}onAckAlarm(t){this.isEditor||this.hmiService.setAlarmAck(t.name?.stringValue).subscribe(i=>{},i=>{console.error("Error setAlarmAck",i)})}onDownloadReport(t){this.commandService.getReportFile(t.fileName).subscribe(i=>{let n=new Blob([i],{type:"application/pdf"});uD.saveAs(n,t.fileName)},i=>{console.error("Download Report File err:",i)})}onRemoveReportFile(t){window.confirm(this.translateService.instant("msg.file-remove",{value:t.fileName}))&&this.reportsService.removeReportFile(t.fileName).pipe((0,Kf.b)(()=>(0,Mo.H)(2e3)),Kd(n=>(console.error(`Remove Report File ${t.fileName} err:`,n),(0,lr.of)(null)))).subscribe(()=>{})}static DefaultOptions(){return{paginator:{show:!1},filter:{show:!1},daterange:{show:!1},realtime:!1,lastRange:ii.cQ.getEnumKey(Tt.rC,Tt.rC.last1h),gridColor:"#E0E0E0",header:{show:!0,height:30,fontSize:12,background:"#F0F0F0",color:"#757575"},row:{height:30,fontSize:10,background:"#F9F9F9",color:"#000000"},selection:{background:"#3059AF",color:"#FFFFFF",fontBold:!0},columns:[new Tt.Dw(ii.cQ.getShortGUID("c_"),Tt.v7.timestamp,"Date/Time"),new Tt.Dw(ii.cQ.getShortGUID("c_"),Tt.v7.label,"Tags")],alarmsColumns:[],alarmFilter:{filterA:[],filterB:[],filterC:[]},reportsColumns:[],reportFilter:{filterA:[]},rows:[]}}remapVariableIds(t,i){if(!i)return;const n=s=>{s.variableId&&i[s.variableId]&&(s.variableId=i[s.variableId])},o=s=>{if(s)for(const c of s)n(c)};if(t.columns&&o(t.columns),t.alarmsColumns&&o(t.alarmsColumns),t.reportsColumns&&o(t.reportsColumns),t.rows)for(const s of t.rows)o(s.cells)}static \u0275fac=function(i){return new(i||r)(e.Y36(oN),e.Y36(wr.Y4),e.Y36(aA.Bb),e.Y36(Ov.Y),e.Y36(FP),e.Y36(Pv),e.Y36(RP),e.Y36(xo),e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-data-table"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5),e.Gf(cc,5),e.Gf(Td,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first),e.iGM(o=e.CRH())&&(n.trigger=o.first),e.iGM(o=e.CRH())&&(n.paginator=o.first)}},decls:12,vars:15,consts:[["class","table-toolbar",3,"backgroundColor",4,"ngIf"],["matSort","",3,"dataSource"],["table",""],[3,"matColumnDef",4,"ngFor","ngForOf"],["class","data-table-header",3,"height","backgroundColor","borderBottomColor","display",4,"matHeaderRowDef"],[3,"ngSwitch"],[4,"ngSwitchCase"],["class","reload-btn",3,"top",4,"ngIf"],["class","spinner",4,"ngIf"],[1,"table-toolbar"],["class","my-form-field","style","float: left; padding-left: 20px;",4,"ngIf"],["class","date-range",4,"ngIf"],["class","data-table-paginator",3,"pageSizeOptions","pageSize","color",4,"ngIf"],[1,"my-form-field",2,"float","left","padding-left","20px"],["type","text",2,"width","250px",3,"placeholder","keyup"],[1,"date-range"],[4,"ngIf"],["panelClass","my-select-panel-class",1,"moka-toolbar-editor","moka-toolbar-select",3,"value","valueChange","selectionChange"],[3,"value","color","backgroundColor",4,"ngFor","ngForOf"],["mat-flat-button","",1,"moka-toolbar-editor","moka-toolbar-button",3,"click"],["aria-label","time range"],["aria-label","export data"],[3,"value"],[1,"moka-toolbar-editor","moka-toolbar-select"],[1,"moka-toolbar-editor","moka-toolbar-button"],[1,"data-table-paginator",3,"pageSizeOptions","pageSize"],[3,"matColumnDef"],["mat-sort-header","",3,"width","color","textAlign","fontSize",4,"matHeaderCellDef"],["class","data-table-row-cell",3,"ngStyle",4,"matCellDef"],["mat-sort-header",""],[1,"data-table-row-cell",3,"ngStyle"],[4,"ngIf","ngIfElse"],["stringValue",""],["mat-icon-button","",3,"disabled","click",4,"ngIf"],["mat-icon-button","",3,"click",4,"ngIf"],["mat-icon-button","","class","custom-disabled-button",3,"disabled","click",4,"ngIf"],["mat-icon-button","",3,"disabled","click"],["mat-icon-button","",3,"click"],["mat-icon-button","",1,"custom-disabled-button",3,"disabled","click"],[1,"data-table-header"],["class","data-table-row",3,"ngStyle",4,"matRowDef","matRowDefColumns"],[1,"data-table-row",3,"ngStyle"],["class","data-table-row",3,"ngStyle","click",4,"matRowDef","matRowDefColumns"],[1,"data-table-row",3,"ngStyle","click"],[1,"reload-btn"],["mat-icon-button","",1,"small-icon-button","default-color",3,"click"],[3,"ngClass"],[1,"spinner"],["diameter","40",2,"margin","auto"]],template:function(i,n){1&i&&(e.YNc(0,Vce,4,5,"div",0),e.TgZ(1,"mat-table",1,2),e.YNc(3,nAe,3,1,"ng-container",3),e.YNc(4,rAe,1,8,"mat-header-row",4),e.ynx(5,5),e.YNc(6,aAe,2,1,"ng-container",6),e.YNc(7,lAe,2,1,"ng-container",6),e.YNc(8,AAe,2,1,"ng-container",6),e.YNc(9,uAe,2,1,"ng-container",6),e.BQk(),e.qZA(),e.YNc(10,pAe,4,7,"div",7),e.YNc(11,gAe,2,0,"div",8)),2&i&&(e.Q6J("ngIf",n.withToolbar),e.xp6(1),e.Udp("background-color",n.tableOptions.row.background)("height",n.withToolbar?"calc(100% - 42px)":"100%"),e.Q6J("dataSource",n.dataSource),e.xp6(2),e.Q6J("ngForOf",n.displayedColumns),e.xp6(1),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("ngSwitch",n.type),e.xp6(1),e.Q6J("ngSwitchCase",n.tableType.reports),e.xp6(1),e.Q6J("ngSwitchCase",n.tableType.alarms),e.xp6(1),e.Q6J("ngSwitchCase",n.tableType.data),e.xp6(1),e.Q6J("ngSwitchCase",n.tableType.history),e.xp6(1),e.Q6J("ngIf",!n.isEditor&&n.type===n.tableHistoryType),e.xp6(1),e.Q6J("ngIf",n.loading))},dependencies:[l.mk,l.sg,l.O5,l.PC,l.RF,l.n9,Nr,Yn,Zn,Td,BA,fo,As,YA,Qs,MA,ee,u,oA,Be,Ze,Wt,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .mat-table{height:100%;overflow:auto}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1;padding-left:10px;padding-right:5px}[_nghost-%COMP%] .mat-row[_ngcontent-%COMP%]{padding-left:10px;padding-right:5px}[_nghost-%COMP%] .data-table-header[_ngcontent-%COMP%]{min-height:0px}[_nghost-%COMP%] .data-table-row[_ngcontent-%COMP%]{min-height:0px}[_nghost-%COMP%] .table-toolbar[_ngcontent-%COMP%]{height:42px;display:block;line-height:42px}[_nghost-%COMP%] .data-table-paginator[_ngcontent-%COMP%]{height:42px;top:0;position:absolute;right:0;background-color:transparent}[_nghost-%COMP%] .moka-toolbar-editor[_ngcontent-%COMP%]{display:inline-block;margin-left:5px;border:0px;height:28px;cursor:pointer;vertical-align:middle;line-height:20px;box-shadow:1px 1px 3px -1px #888!important;min-width:40px}[_nghost-%COMP%] .moka-toolbar-select[_ngcontent-%COMP%]{width:100px;line-height:28px;padding-left:5px}[_nghost-%COMP%] .moka-toolbar-button[_ngcontent-%COMP%]{width:40px;padding:unset}[_nghost-%COMP%] .table-toolbar[_ngcontent-%COMP%] .date-range[_ngcontent-%COMP%]{float:left;max-height:42px}[_nghost-%COMP%] .data-table-paginator .mat-paginator-container{min-height:unset;height:42px}[_nghost-%COMP%] .data-table-paginator .mat-paginator-container .mat-paginator-page-size{height:inherit;margin:unset}[_nghost-%COMP%] .data-table-paginator .mat-paginator-container .mat-paginator-page-size-select{margin:unset}[_nghost-%COMP%] .dark-theme .mat-select-value{color:inherit!important}[_nghost-%COMP%] .mat-select-trigger, [_nghost-%COMP%] .mat-select-value[_ngcontent-%COMP%]{color:inherit!important}[_nghost-%COMP%] .left .mat-sort-header-container{text-align:left;justify-content:left}[_nghost-%COMP%] .center .mat-sort-header-container{text-align:center;justify-content:center}[_nghost-%COMP%] .right .mat-sort-header-container{text-align:right;justify-content:right}[_nghost-%COMP%] .spinner[_ngcontent-%COMP%]{position:absolute;top:50%;left:calc(50% - 20px)}[_nghost-%COMP%] .small-icon-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:24px}[_nghost-%COMP%] .small-icon-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:20px;height:20px;line-height:20px}[_nghost-%COMP%] .small-icon-button[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:20px}[_nghost-%COMP%] .reload-btn[_ngcontent-%COMP%]{position:absolute;right:10px;top:0;z-index:9999}[_nghost-%COMP%] .custom-disabled-button[disabled][_ngcontent-%COMP%]{color:inherit}[_nghost-%COMP%] .custom-disabled-button[disabled][_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit;opacity:.2}"]})}return r})();class fAe{static TableRangeToHours(a){let t=Object.keys(Tt.rC);return a===t[0]?1:a===t[1]?24:a===t[2]?72:0}}let Fp=(()=>{class r{static TypeTag="svg-ext-own_ctrl-table";static LabelTag="HtmlTable";static prefixD="D-OXC_";static getSignals(t){if(t.type===Tt.Nd.data&&t.options?.rows){let i=[];return t.options.rows.forEach(n=>{n.cells.forEach(o=>{o&&o.variableId&&o.type===Tt.v7.variable&&i.push(o.variableId)})}),i}if(t.options?.realtime){let i=[];return t.options.columns?.forEach(n=>{n.variableId&&n.type===Tt.v7.variable&&i.push(n.variableId)}),i}return null}static getDialogType(){return Do.Table}static processValue(t,i,n,o,s){try{s.addValue(n.id,(n.timestamp||(new Date).getTime())/1e3,n.value)}catch(c){console.error(c)}}static initElement(t,i,n,o){let s=document.getElementById(t.id);if(s){s?.setAttribute("data-name",t.name);let c=ii.cQ.searchTreeStartWith(s,this.prefixD);if(c){let g=i.resolveComponentFactory(Ib);const B=n.createComponent(g);return t.property||(t.property={id:null,type:Tt.Nd.data,options:Ib.DefaultOptions(),events:[]}),c.innerHTML="",B.instance.isEditor=!o,B.instance.id=t.id,B.instance.type=t.property.type,B.instance.events=t.property.events,B.instance.dataFilter=null,t.property.type===Tt.Nd.alarms&&t.property.options?.alarmFilter?B.instance.dataFilter={priority:t.property.options?.alarmFilter?.filterA,text:t.property.options?.alarmFilter?.filterB[0],group:t.property.options?.alarmFilter?.filterB[1],tagIds:t.property.options?.alarmFilter?.filterC}:t.property.type===Tt.Nd.reports&&t.property.options?.reportFilter&&(B.instance.dataFilter={name:t.property.options?.reportFilter?.filterA[0],count:t.property.options?.reportFilter?.filterA[1]}),B.changeDetectorRef.detectChanges(),c.appendChild(B.location.nativeElement),Ib.DefaultOptions(),B.instance.myComRef=B,B.instance.name=t.name,B.instance}}}static detectChange(t,i,n){return r.initElement(t,i,n,!1)}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();const mAe=["schedulerContainer"],_Ae=["deviceScrollContainer"],vAe=["overviewScrollContainer"];function yAe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",21),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.selectDevice(o.name))})("mouseenter",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.hoveredDevice=o.name)})("mouseleave",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.hoveredDevice=null)}),e._uU(2),e.qZA(),e.BQk()}if(2&r){const t=a.$implicit,i=e.oxw(3);e.xp6(1),e.ekj("selected",t.name===i.selectedDevice)("hovered",t.name===i.hoveredDevice),e.xp6(1),e.hij(" ",t.label||t.name," ")}}function wAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",19),e.YNc(1,yAe,3,5,"ng-container",20),e.TgZ(2,"div",21),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.selectDevice("OVERVIEW"))})("mouseenter",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.hoveredDevice="OVERVIEW")})("mouseleave",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.hoveredDevice=null)}),e._uU(3),e.ALo(4,"translate"),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",t.deviceList),e.xp6(1),e.ekj("selected","OVERVIEW"===t.selectedDevice)("hovered","OVERVIEW"===t.hoveredDevice),e.xp6(1),e.hij(" ",e.lcZ(4,6,"scheduler.device-selector-overview")," ")}}function CAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",13)(1,"div",14)(2,"div",15),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.toggleDropdown())}),e.TgZ(3,"span",16),e._uU(4),e.qZA(),e.TgZ(5,"span",17),e._uU(6),e.qZA()(),e.YNc(7,wAe,5,8,"div",18),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(1),e.ekj("open",t.isDropdownOpen)("disabled",t.isEditMode),e.xp6(1),e.Akn(t.getSelectStyles()),e.xp6(2),e.Oqu(t.getSelectedDeviceLabel()),e.xp6(2),e.Oqu(t.isDropdownOpen?"arrow_drop_up":"arrow_drop_down"),e.xp6(1),e.Q6J("ngIf",t.isDropdownOpen)}}function bAe(r,a){if(1&r&&(e.TgZ(0,"div",22),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",(null==t.deviceList[0]?null:t.deviceList[0].name)||(null==t.deviceList[0]?null:t.deviceList[0].label)," ")}}function xAe(r,a){if(1&r&&(e.TgZ(0,"button",23)(1,"span",24),e._uU(2),e.qZA()()),2&r){const t=e.oxw();e.ekj("active",t.isDeviceActive(t.selectedDevice)),e.Q6J("disabled",!0),e.xp6(2),e.hij(" ",t.isDeviceActive(t.selectedDevice)?"alarm_on":"alarm_off"," ")}}function BAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",25)(1,"button",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.toggleAddView())}),e.TgZ(2,"span",24),e._uU(3,"close"),e.qZA()(),e.TgZ(4,"button",27),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.addOrUpdateSchedule())}),e.TgZ(5,"span",24),e._uU(6,"check"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(1),e.Q6J("disabled",t.isEditor),e.xp6(3),e.Q6J("disabled",t.isEditor)}}function EAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.toggleAddView())}),e.TgZ(1,"span",24),e._uU(2,"add"),e.qZA()()}if(2&r){const t=e.oxw(2);e.Q6J("disabled",t.isEditor)}}function MAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",37)(1,"label",38)(2,"input",39),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.filterOptions.showDisabled=n)}),e.qZA(),e._UZ(3,"span",40),e.TgZ(4,"span",41),e._uU(5),e.ALo(6,"translate"),e.qZA()(),e.TgZ(7,"label",38)(8,"input",39),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.filterOptions.showActive=n)}),e.qZA(),e._UZ(9,"span",40),e.TgZ(10,"span",41),e._uU(11),e.ALo(12,"translate"),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(2),e.Q6J("ngModel",t.filterOptions.showDisabled),e.xp6(3),e.Oqu(e.lcZ(6,4,"scheduler.show-disabled")),e.xp6(3),e.Q6J("ngModel",t.filterOptions.showActive),e.xp6(3),e.Oqu(e.lcZ(12,6,"scheduler.show-active"))}}function DAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",42),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.toggleSettings())}),e.TgZ(1,"span",24),e._uU(2,"settings"),e.qZA()()}}function TAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",43)(1,"button",44),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.clearAllSchedules())}),e.TgZ(2,"span",24),e._uU(3,"delete_sweep"),e.qZA(),e._uU(4),e.ALo(5,"translate"),e.qZA()()}2&r&&(e.xp6(4),e.hij(" ",e.lcZ(5,1,"scheduler.clear-all-schedules")," "))}function IAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.startAddFromOverview())}),e.TgZ(1,"span",24),e._uU(2,"add"),e.qZA()()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",t.isEditor)}}function kAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"div",31)(2,"button",32),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.toggleFilter())}),e.TgZ(3,"span",24),e._uU(4,"filter_alt"),e.qZA()(),e.YNc(5,MAe,13,8,"div",33),e.qZA(),e.TgZ(6,"div",34),e.YNc(7,DAe,3,0,"button",35),e.YNc(8,TAe,6,3,"div",36),e.qZA(),e.YNc(9,IAe,3,1,"button",28),e.qZA()}if(2&r){const t=e.oxw(2);e.xp6(5),e.Q6J("ngIf",t.showFilterOptions),e.xp6(2),e.Q6J("ngIf",t.canModifyScheduler()),e.xp6(1),e.Q6J("ngIf",t.showSettingsOptions&&t.canModifyScheduler()),e.xp6(1),e.Q6J("ngIf",t.deviceList.length>0&&t.canModifyScheduler())}}function QAe(r,a){if(1&r&&(e.TgZ(0,"div"),e.YNc(1,EAe,3,1,"button",28),e.YNc(2,kAe,10,4,"div",29),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf","OVERVIEW"!==t.selectedDevice&&t.canModifyDevice(t.selectedDevice)),e.xp6(1),e.Q6J("ngIf","OVERVIEW"===t.selectedDevice)}}function SAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",78),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(4);return e.KtG(o.deleteSchedule(o.getDeviceSchedules().indexOf(n)))}),e.TgZ(1,"span",24),e._uU(2,"clear"),e.qZA()()}}function PAe(r,a){if(1&r&&(e.TgZ(0,"span",81),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(2).$implicit,o=e.oxw(4);e.ekj("active",n.days[i]),e.Q6J("title",o.dayLabelsLong[i]),e.xp6(1),e.hij(" ",t.charAt(0)," ")}}function FAe(r,a){if(1&r&&(e.TgZ(0,"div",79),e.YNc(1,PAe,2,4,"span",80),e.qZA()),2&r){const t=e.oxw(5);e.xp6(1),e.Q6J("ngForOf",t.dayLabelsShort)}}function OAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",82)(1,"button",83),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(4);return n.stopPropagation(),e.KtG(s.showCalendarPopup(o))}),e.TgZ(2,"span",24),e._uU(3,"calendar_month"),e.qZA(),e.TgZ(4,"span",84),e._uU(5),e.ALo(6,"translate"),e.qZA()()()}2&r&&(e.xp6(5),e.Oqu(e.lcZ(6,1,"scheduler.view-events")))}function LAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.editSchedule(s.getDeviceSchedules().indexOf(o)))}),e.TgZ(1,"div",65)(2,"span",66),e._uU(3),e.qZA(),e._UZ(4,"span",67)(5,"span",68),e.TgZ(6,"span",69),e._uU(7),e.qZA(),e.TgZ(8,"div",70),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(9,"label",71),e._UZ(10,"input",72)(11,"span",73),e.qZA()(),e.TgZ(12,"div",74),e.NdJ("click",function(n){return n.stopPropagation()}),e.YNc(13,SAe,3,0,"button",75),e.qZA()(),e.YNc(14,FAe,2,1,"div",76),e.YNc(15,OAe,7,3,"div",77),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.Udp("cursor",i.canModifyDevice(i.selectedDevice)?"pointer":"default")("pointer-events",i.canModifyDevice(i.selectedDevice)?"auto":"none"),e.ekj("disabled",t.disabled)("read-only",!i.canModifyDevice(i.selectedDevice)),e.xp6(3),e.Oqu(i.getDeviceSchedules().indexOf(t)+1),e.xp6(1),e.Q6J("innerHTML",i.formatTime(t.startTime),e.oJD),e.xp6(1),e.Q6J("innerHTML",i.formatScheduleMode(t),e.oJD),e.xp6(2),e.Oqu(i.calculateDuration(t)),e.xp6(3),e.Q6J("checked",i.isScheduleActive(t)),e.xp6(3),e.Q6J("ngIf",i.canModifyDevice(i.selectedDevice)),e.xp6(1),e.Q6J("ngIf",!t.monthMode),e.xp6(1),e.Q6J("ngIf",t.monthMode)}}function RAe(r,a){if(1&r&&(e.TgZ(0,"div",53)(1,"div",54)(2,"div",55)(3,"span",56),e._uU(4,"#"),e.qZA(),e.TgZ(5,"span",57),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"span",58),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"span",59),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"span",60),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"span",61),e.qZA()(),e.TgZ(18,"div",62),e.YNc(19,LAe,16,16,"div",63),e.qZA()()),2&r){const t=e.oxw(3);e.xp6(6),e.Oqu(e.lcZ(7,6,"scheduler.col-start")),e.xp6(3),e.Oqu(e.lcZ(10,8,"scheduler.col-mode")),e.xp6(3),e.Oqu(e.lcZ(13,10,"scheduler.col-duration")),e.xp6(3),e.Oqu(e.lcZ(16,12,"scheduler.col-status")),e.xp6(4),e.Q6J("ngForOf",t.getDeviceTimerModeSchedules())("ngForTrackBy",t.trackBySchedule)}}function YAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",78),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(4);return e.KtG(o.deleteSchedule(o.getDeviceSchedules().indexOf(n)))}),e.TgZ(1,"span",85),e._uU(2," delete "),e.qZA()()}}function NAe(r,a){if(1&r&&(e.TgZ(0,"span",81),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(2).$implicit,o=e.oxw(4);e.ekj("active",n.days[i]),e.Q6J("title",o.dayLabelsLong[i]),e.xp6(1),e.hij(" ",t.charAt(0)," ")}}function UAe(r,a){if(1&r&&(e.TgZ(0,"div",79),e.YNc(1,NAe,2,4,"span",80),e.qZA()),2&r){const t=e.oxw(5);e.xp6(1),e.Q6J("ngForOf",t.dayLabelsShort)}}function zAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",82)(1,"button",83),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(4);return n.stopPropagation(),e.KtG(s.showCalendarPopup(o))}),e.TgZ(2,"span",24),e._uU(3,"calendar_month"),e.qZA(),e.TgZ(4,"span",84),e._uU(5),e.ALo(6,"translate"),e.qZA()()()}2&r&&(e.xp6(5),e.Oqu(e.lcZ(6,1,"scheduler.view-events")))}function HAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.editSchedule(s.getDeviceSchedules().indexOf(o)))}),e.TgZ(1,"div",65)(2,"span",66),e._uU(3),e.qZA(),e._UZ(4,"span",67)(5,"span",68),e.TgZ(6,"span",69),e._uU(7),e.qZA(),e.TgZ(8,"div",70),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(9,"label",71),e._UZ(10,"input",72)(11,"span",73),e.qZA()(),e.TgZ(12,"div",74),e.NdJ("click",function(n){return n.stopPropagation()}),e.YNc(13,YAe,3,0,"button",75),e.qZA()(),e.YNc(14,UAe,2,1,"div",76),e.YNc(15,zAe,7,3,"div",77),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.Udp("cursor",i.canModifyDevice(i.selectedDevice)?"pointer":"default")("pointer-events",i.canModifyDevice(i.selectedDevice)?"auto":"none"),e.ekj("disabled",t.disabled)("read-only",!i.canModifyDevice(i.selectedDevice)),e.xp6(3),e.Oqu(i.getDeviceSchedules().indexOf(t)+1),e.xp6(1),e.Q6J("innerHTML",i.formatTime(t.startTime),e.oJD),e.xp6(1),e.Q6J("innerHTML",i.formatScheduleMode(t),e.oJD),e.xp6(2),e.Oqu(i.getRemainingTime(t.deviceName||i.selectedDevice,i.getDeviceSchedules().indexOf(t))),e.xp6(3),e.Q6J("checked",i.isScheduleActive(t)),e.xp6(3),e.Q6J("ngIf",i.canModifyDevice(i.selectedDevice)),e.xp6(1),e.Q6J("ngIf",!t.monthMode),e.xp6(1),e.Q6J("ngIf",t.monthMode)}}function GAe(r,a){if(1&r&&(e.TgZ(0,"div",53)(1,"div",54)(2,"div",55)(3,"span",56),e._uU(4,"#"),e.qZA(),e.TgZ(5,"span",57),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"span",58),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"span",59),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"span",60),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"span",61),e.qZA()(),e.TgZ(18,"div",62),e.YNc(19,HAe,16,16,"div",63),e.qZA()()),2&r){const t=e.oxw(3);e.xp6(6),e.Oqu(e.lcZ(7,6,"scheduler.col-start")),e.xp6(3),e.Oqu(e.lcZ(10,8,"scheduler.col-duration")),e.xp6(3),e.Oqu(e.lcZ(13,10,"scheduler.col-remaining")),e.xp6(3),e.Oqu(e.lcZ(16,12,"scheduler.col-status")),e.xp6(4),e.Q6J("ngForOf",t.getDeviceEventModeSchedules())("ngForTrackBy",t.trackBySchedule)}}function ZAe(r,a){1&r&&(e.TgZ(0,"div",86)(1,"p"),e._uU(2),e.ALo(3,"translate"),e.qZA()()),2&r&&(e.xp6(2),e.Oqu(e.lcZ(3,1,"scheduler.empty-device")))}function JAe(r,a){if(1&r&&(e.TgZ(0,"div",48)(1,"div",49,50),e.YNc(3,RAe,20,14,"div",51),e.YNc(4,GAe,20,14,"div",51),e.qZA(),e.YNc(5,ZAe,4,3,"div",52),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.ekj("has-scrollbar",t.needsScrolling),e.xp6(2),e.Q6J("ngIf",t.hasDeviceTimerModeSchedules()),e.xp6(1),e.Q6J("ngIf",t.hasDeviceEventModeSchedules()),e.xp6(1),e.Q6J("ngIf",0===t.getDeviceSchedules().length)}}function jAe(r,a){1&r&&(e.TgZ(0,"div",92)(1,"p"),e._uU(2),e.ALo(3,"translate"),e.qZA()()),2&r&&(e.xp6(2),e.Oqu(e.lcZ(3,1,"scheduler.no-devices")))}function VAe(r,a){1&r&&(e.TgZ(0,"div",92)(1,"p"),e._uU(2),e.ALo(3,"translate"),e.qZA()()),2&r&&(e.xp6(2),e.Oqu(e.lcZ(3,1,"scheduler.no-schedules")))}function WAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",78),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(2).$implicit,s=e.oxw(3);return e.KtG(s.confirmDeleteFromOverview(n,o.allSchedules.indexOf(n)))}),e.TgZ(1,"span",24),e._uU(2,"clear"),e.qZA()()}}function KAe(r,a){if(1&r&&(e.TgZ(0,"span",81),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(2).$implicit,o=e.oxw(5);e.ekj("active",n.days[i]),e.Q6J("title",o.dayLabelsLong[i]),e.xp6(1),e.hij(" ",t.charAt(0)," ")}}function qAe(r,a){if(1&r&&(e.TgZ(0,"div",79),e.YNc(1,KAe,2,4,"span",80),e.qZA()),2&r){const t=e.oxw(6);e.xp6(1),e.Q6J("ngForOf",t.dayLabelsShort)}}function XAe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",82)(1,"button",83),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(5);return n.stopPropagation(),e.KtG(s.showCalendarPopup(o))}),e.TgZ(2,"span",24),e._uU(3,"calendar_month"),e.qZA(),e.TgZ(4,"span",84),e._uU(5),e.ALo(6,"translate"),e.qZA()()()}2&r&&(e.xp6(5),e.Oqu(e.lcZ(6,1,"scheduler.view-events")))}function $Ae(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2).$implicit,c=e.oxw(3);return e.KtG(c.editScheduleFromOverview(o,s.allSchedules.indexOf(o)))}),e.TgZ(1,"div",65)(2,"span",66),e._uU(3),e.qZA(),e._UZ(4,"span",67)(5,"span",68),e.TgZ(6,"span",69),e._uU(7),e.qZA(),e.TgZ(8,"div",70),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(9,"label",71),e._UZ(10,"input",72)(11,"span",73),e.qZA()(),e.TgZ(12,"div",74),e.NdJ("click",function(n){return n.stopPropagation()}),e.YNc(13,WAe,3,0,"button",75),e.qZA()(),e.YNc(14,qAe,2,1,"div",76),e.YNc(15,XAe,7,3,"div",77),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(2).$implicit,n=e.oxw(3);e.Udp("cursor",n.canModifyDevice(t.deviceName)?"pointer":"default")("pointer-events",n.canModifyDevice(t.deviceName)?"auto":"none"),e.ekj("disabled",t.disabled)("read-only",!n.canModifyDevice(t.deviceName)),e.xp6(3),e.Oqu(i.allSchedules.indexOf(t)+1),e.xp6(1),e.Q6J("innerHTML",n.formatTime(t.startTime),e.oJD),e.xp6(1),e.Q6J("innerHTML",n.formatScheduleMode(t),e.oJD),e.xp6(2),e.Oqu(n.calculateDuration(t)),e.xp6(3),e.Q6J("checked",n.isScheduleActive(t)),e.xp6(3),e.Q6J("ngIf",n.canModifyDevice(t.deviceName)),e.xp6(1),e.Q6J("ngIf",!t.monthMode),e.xp6(1),e.Q6J("ngIf",t.monthMode)}}function ede(r,a){if(1&r&&(e.TgZ(0,"div",53)(1,"div",54)(2,"div",55)(3,"span",56),e._uU(4,"#"),e.qZA(),e.TgZ(5,"span",57),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"span",58),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"span",59),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"span",60),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"span",61),e.qZA()(),e.TgZ(18,"div",62),e.YNc(19,$Ae,16,16,"div",63),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(6),e.Oqu(e.lcZ(7,6,"scheduler.col-start")),e.xp6(3),e.Oqu(e.lcZ(10,8,"scheduler.end")),e.xp6(3),e.Oqu(e.lcZ(13,10,"scheduler.col-duration")),e.xp6(3),e.Oqu(e.lcZ(16,12,"scheduler.col-status")),e.xp6(4),e.Q6J("ngForOf",t.timerModeSchedules)("ngForTrackBy",i.trackBySchedule)}}function tde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",78),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(2).$implicit,s=e.oxw(3);return e.KtG(s.confirmDeleteFromOverview(n,o.allSchedules.indexOf(n)))}),e.TgZ(1,"span",24),e._uU(2,"clear"),e.qZA()()}}function ide(r,a){if(1&r&&(e.TgZ(0,"span",81),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=a.index,n=e.oxw(2).$implicit,o=e.oxw(5);e.ekj("active",n.days[i]),e.Q6J("title",o.dayLabelsLong[i]),e.xp6(1),e.hij(" ",t.charAt(0)," ")}}function nde(r,a){if(1&r&&(e.TgZ(0,"div",79),e.YNc(1,ide,2,4,"span",80),e.qZA()),2&r){const t=e.oxw(6);e.xp6(1),e.Q6J("ngForOf",t.dayLabelsShort)}}function rde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",82)(1,"button",83),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(5);return n.stopPropagation(),e.KtG(s.showCalendarPopup(o))}),e.TgZ(2,"span",24),e._uU(3,"calendar_month"),e.qZA(),e.TgZ(4,"span",84),e._uU(5),e.ALo(6,"translate"),e.qZA()()()}2&r&&(e.xp6(5),e.Oqu(e.lcZ(6,1,"scheduler.view-events")))}function ode(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2).$implicit,c=e.oxw(3);return e.KtG(c.editScheduleFromOverview(o,s.allSchedules.indexOf(o)))}),e.TgZ(1,"div",65)(2,"span",66),e._uU(3),e.qZA(),e._UZ(4,"span",67)(5,"span",68),e.TgZ(6,"span",69),e._uU(7),e.qZA(),e.TgZ(8,"div",70),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(9,"label",71),e._UZ(10,"input",72)(11,"span",73),e.qZA()(),e.TgZ(12,"div",74),e.NdJ("click",function(n){return n.stopPropagation()}),e.YNc(13,tde,3,0,"button",75),e.qZA()(),e.YNc(14,nde,2,1,"div",76),e.YNc(15,rde,7,3,"div",77),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(2).$implicit,n=e.oxw(3);e.Udp("cursor",n.canModifyDevice(t.deviceName)?"pointer":"default")("pointer-events",n.canModifyDevice(t.deviceName)?"auto":"none"),e.ekj("disabled",t.disabled)("read-only",!n.canModifyDevice(t.deviceName)),e.xp6(3),e.Oqu(i.allSchedules.indexOf(t)+1),e.xp6(1),e.Q6J("innerHTML",n.formatTime(t.startTime),e.oJD),e.xp6(1),e.Q6J("innerHTML",n.formatScheduleMode(t),e.oJD),e.xp6(2),e.Oqu(n.getRemainingTime(t.deviceName,i.allSchedules.indexOf(t))),e.xp6(3),e.Q6J("checked",n.isScheduleActive(t)),e.xp6(3),e.Q6J("ngIf",n.canModifyDevice(t.deviceName)),e.xp6(1),e.Q6J("ngIf",!t.monthMode),e.xp6(1),e.Q6J("ngIf",t.monthMode)}}function ade(r,a){if(1&r&&(e.TgZ(0,"div",53)(1,"div",54)(2,"div",55)(3,"span",56),e._uU(4,"#"),e.qZA(),e.TgZ(5,"span",57),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"span",58),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"span",59),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"span",60),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"span",61),e.qZA()(),e.TgZ(18,"div",62),e.YNc(19,ode,16,16,"div",63),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(6),e.Oqu(e.lcZ(7,6,"scheduler.col-start")),e.xp6(3),e.Oqu(e.lcZ(10,8,"scheduler.col-duration")),e.xp6(3),e.Oqu(e.lcZ(13,10,"scheduler.col-remaining")),e.xp6(3),e.Oqu(e.lcZ(16,12,"scheduler.col-status")),e.xp6(4),e.Q6J("ngForOf",t.eventModeSchedules)("ngForTrackBy",i.trackBySchedule)}}function sde(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"div",93)(2,"h4",94),e._uU(3),e.qZA(),e.YNc(4,ede,20,14,"div",51),e.YNc(5,ade,20,14,"div",51),e.qZA(),e.BQk()),2&r){const t=a.$implicit;e.xp6(3),e.Oqu(t.deviceName),e.xp6(1),e.Q6J("ngIf",t.timerModeSchedules.length>0),e.xp6(1),e.Q6J("ngIf",t.eventModeSchedules.length>0)}}function lde(r,a){if(1&r&&(e.TgZ(0,"div",87),e.YNc(1,jAe,4,3,"div",88),e.YNc(2,VAe,4,3,"div",88),e.TgZ(3,"div",89,90),e.YNc(5,sde,6,3,"ng-container",91),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",0===t.deviceList.length),e.xp6(1),e.Q6J("ngIf",t.deviceList.length>0&&0===t.getFilteredOverviewSchedules().length),e.xp6(1),e.ekj("has-scrollbar",t.overviewNeedsScrolling),e.xp6(2),e.Q6J("ngForOf",t.getFilteredOverviewSchedules())("ngForTrackBy",t.trackByDeviceGroup)}}function cde(r,a){if(1&r&&(e.TgZ(0,"div",45),e.YNc(1,JAe,6,5,"div",46),e.YNc(2,lde,6,6,"div",47),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf","OVERVIEW"!==t.selectedDevice),e.xp6(1),e.Q6J("ngIf","OVERVIEW"===t.selectedDevice)}}function Ade(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",125),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(3);return e.KtG(o.selectFormDevice(n.name))})("mouseenter",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(3);return e.KtG(o.formHoveredDevice=n.name)})("mouseleave",function(){e.CHM(t);const n=e.oxw(4);return e.KtG(n.formHoveredDevice=null)}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.ekj("selected",t.name===i.formTimer.deviceName)("hovered",t.name===i.formHoveredDevice),e.xp6(1),e.hij(" ",t.label||t.name," ")}}function dde(r,a){if(1&r&&(e.ynx(0),e.YNc(1,Ade,2,5,"div",124),e.BQk()),2&r){const t=a.$implicit,i=e.oxw(3);e.xp6(1),e.Q6J("ngIf",i.canModifyDevice(t.name))}}function ude(r,a){if(1&r&&(e.TgZ(0,"div",123),e.YNc(1,dde,2,1,"ng-container",20),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",t.deviceList)}}function hde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.setTimeHour("start",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(3);e.ekj("selected",t===i.getTimeHour("start")),e.xp6(1),e.hij(" ",t," ")}}function pde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.setTimeMinute("start",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(3);e.ekj("selected",t===i.getTimeMinute("start")),e.xp6(1),e.hij(" ",t," ")}}function gde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.setTimePeriod("start",o))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(3);e.ekj("selected",t===i.getTimePeriod("start")),e.xp6(1),e.hij(" ",e.lcZ(2,3,"scheduler.time."+t)," ")}}function fde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",126)(1,"div",127)(2,"div",128)(3,"label"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"div",129),e.YNc(7,hde,2,3,"div",130),e.qZA()(),e.TgZ(8,"div",128)(9,"label"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"div",129),e.YNc(13,pde,2,3,"div",130),e.qZA()(),e.TgZ(14,"div",128)(15,"label"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"div",129),e.YNc(19,gde,3,5,"div",130),e.qZA(),e.TgZ(20,"div",131)(21,"label"),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.TgZ(24,"div",132)(25,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.setMinuteInterval(1))}),e._uU(26,"\xd71"),e.qZA(),e.TgZ(27,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.setMinuteInterval(5))}),e._uU(28,"\xd75"),e.qZA(),e.TgZ(29,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.setMinuteInterval(10))}),e._uU(30,"\xd710"),e.qZA(),e.TgZ(31,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.setMinuteInterval(15))}),e._uU(32,"\xd715"),e.qZA()()()()()()}if(2&r){const t=e.oxw(2);e.xp6(4),e.Oqu(e.lcZ(5,15,"scheduler.time.hour")),e.xp6(3),e.Q6J("ngForOf",t.getHourOptions()),e.xp6(3),e.Oqu(e.lcZ(11,17,"scheduler.time.minute")),e.xp6(3),e.Q6J("ngForOf",t.getMinuteOptions()),e.xp6(3),e.Oqu(e.lcZ(17,19,"scheduler.time.period")),e.xp6(3),e.Q6J("ngForOf",t.periods),e.xp6(3),e.Oqu(e.lcZ(23,21,"scheduler.time.interval")),e.xp6(3),e.ekj("active",1===t.minuteInterval),e.xp6(2),e.ekj("active",5===t.minuteInterval),e.xp6(2),e.ekj("active",10===t.minuteInterval),e.xp6(2),e.ekj("active",15===t.minuteInterval)}}function mde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.setTimeHour("end",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.ekj("selected",t===i.getTimeHour("end")),e.xp6(1),e.hij(" ",t," ")}}function _de(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.setTimeMinute("end",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.ekj("selected",t===i.getTimeMinute("end")),e.xp6(1),e.hij(" ",t," ")}}function vde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.setTimePeriod("end",o))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.ekj("selected",t===i.getTimePeriod("end")),e.xp6(1),e.hij(" ",e.lcZ(2,3,"scheduler.time."+t)," ")}}function yde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",126)(1,"div",127)(2,"div",128)(3,"label"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"div",129),e.YNc(7,mde,2,3,"div",130),e.qZA()(),e.TgZ(8,"div",128)(9,"label"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"div",129),e.YNc(13,_de,2,3,"div",130),e.qZA()(),e.TgZ(14,"div",128)(15,"label"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"div",129),e.YNc(19,vde,3,5,"div",130),e.qZA(),e.TgZ(20,"div",131)(21,"label"),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.TgZ(24,"div",132)(25,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(1))}),e._uU(26,"\xd71"),e.qZA(),e.TgZ(27,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(5))}),e._uU(28,"\xd75"),e.qZA(),e.TgZ(29,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(10))}),e._uU(30,"\xd710"),e.qZA(),e.TgZ(31,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(15))}),e._uU(32,"\xd715"),e.qZA()()()()()()}if(2&r){const t=e.oxw(3);e.xp6(4),e.Oqu(e.lcZ(5,15,"scheduler.time.hour")),e.xp6(3),e.Q6J("ngForOf",t.getHourOptions()),e.xp6(3),e.Oqu(e.lcZ(11,17,"scheduler.time.minute")),e.xp6(3),e.Q6J("ngForOf",t.getMinuteOptions()),e.xp6(3),e.Oqu(e.lcZ(17,19,"scheduler.time.period")),e.xp6(3),e.Q6J("ngForOf",t.periods),e.xp6(3),e.Oqu(e.lcZ(23,21,"scheduler.time.interval")),e.xp6(3),e.ekj("active",1===t.minuteInterval),e.xp6(2),e.ekj("active",5===t.minuteInterval),e.xp6(2),e.ekj("active",10===t.minuteInterval),e.xp6(2),e.ekj("active",15===t.minuteInterval)}}function wde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",102)(1,"label",135),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",104)(5,"div",105)(6,"input",136),e.NdJ("input",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.updateTimeFromInput("end",n.target.value))})("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.openTimePicker("end"))})("focus",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.openTimePicker("end"))})("blur",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.validateTimeInput("end",n))}),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"span",107),e._uU(9,"schedule"),e.qZA()(),e.YNc(10,yde,33,23,"div",108),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,6,"scheduler.end-time")),e.xp6(4),e.ekj("active","end"===t.activeTimePicker),e.s9C("placeholder",e.lcZ(7,8,"scheduler.hhmm")),e.Q6J("value",t.getFormattedInputTime("end")),e.xp6(4),e.Q6J("ngIf","end"===t.activeTimePicker)}}function Cde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.setDurationValue("hours",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.ekj("selected",t===i.formTimer.durationHours),e.xp6(1),e.hij(" ",t,"h ")}}function bde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.setDurationValue("minutes",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.ekj("selected",t===i.formTimer.durationMinutes),e.xp6(1),e.hij(" ",t.toString().padStart(2,"0"),"m ")}}function xde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",134),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(4);return e.KtG(s.setDurationValue("seconds",o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(4);e.ekj("selected",t===i.formTimer.durationSeconds),e.xp6(1),e.hij(" ",t.toString().padStart(2,"0"),"s ")}}const Bde=function(){return[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]},cN=function(){return[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59]};function Ede(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",126)(1,"div",127)(2,"div",128)(3,"label"),e._uU(4,"Hours"),e.qZA(),e.TgZ(5,"div",129),e.YNc(6,Cde,2,3,"div",130),e.qZA()(),e.TgZ(7,"div",128)(8,"label"),e._uU(9,"Minutes"),e.qZA(),e.TgZ(10,"div",129),e.YNc(11,bde,2,3,"div",130),e.qZA()(),e.TgZ(12,"div",128)(13,"label"),e._uU(14,"Seconds"),e.qZA(),e.TgZ(15,"div",129),e.YNc(16,xde,2,3,"div",130),e.qZA(),e.TgZ(17,"div",131)(18,"label"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"div",132)(22,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(1))}),e._uU(23,"\xd71"),e.qZA(),e.TgZ(24,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(5))}),e._uU(25,"\xd75"),e.qZA(),e.TgZ(26,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(10))}),e._uU(27,"\xd710"),e.qZA(),e.TgZ(28,"button",133),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.setMinuteInterval(15))}),e._uU(29,"\xd715"),e.qZA()()()()()()}if(2&r){const t=e.oxw(3);e.xp6(6),e.Q6J("ngForOf",e.DdM(14,Bde)),e.xp6(5),e.Q6J("ngForOf",e.DdM(15,cN)),e.xp6(5),e.Q6J("ngForOf",e.DdM(16,cN)),e.xp6(3),e.Oqu(e.lcZ(20,12,"scheduler.time.interval")),e.xp6(3),e.ekj("active",1===t.minuteInterval),e.xp6(2),e.ekj("active",5===t.minuteInterval),e.xp6(2),e.ekj("active",10===t.minuteInterval),e.xp6(2),e.ekj("active",15===t.minuteInterval)}}function Mde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",102)(1,"label",137),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",104)(5,"div",105)(6,"input",138),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.openTimePicker("duration"))})("focus",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.openTimePicker("duration"))}),e.qZA(),e.TgZ(7,"span",107),e._uU(8,"timer"),e.qZA()(),e.YNc(9,Ede,30,17,"div",108),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,5,"scheduler.col-duration")),e.xp6(4),e.ekj("active","duration"===t.activeTimePicker),e.Q6J("value",t.formTimer.durationHours+"h "+t.formTimer.durationMinutes+"m "+t.formTimer.durationSeconds+"s"),e.xp6(3),e.Q6J("ngIf","duration"===t.activeTimePicker)}}function Dde(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"button",141),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.toggleMonth(o))}),e._uU(2),e.qZA(),e.BQk()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw(3);e.xp6(1),e.ekj("active",n.formTimer.months&&n.formTimer.months[i]),e.xp6(1),e.hij(" ",t," ")}}function Tde(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"button",142),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.toggleDayOfMonth(o))}),e._uU(2),e.qZA(),e.BQk()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw(3);e.xp6(1),e.ekj("active",n.formTimer.daysOfMonth&&n.formTimer.daysOfMonth[i]),e.xp6(1),e.hij(" ",t," ")}}function Ide(r,a){if(1&r&&(e.TgZ(0,"div")(1,"label"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",139),e.YNc(5,Dde,3,3,"ng-container",20),e.qZA(),e.TgZ(6,"label"),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"div",140),e.YNc(10,Tde,3,3,"ng-container",20),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,4,"scheduler.months-active")),e.xp6(3),e.Q6J("ngForOf",t.monthLabelsShort),e.xp6(2),e.Oqu(e.lcZ(8,6,"scheduler.days-of-month")),e.xp6(3),e.Q6J("ngForOf",t.daysOfMonth)}}function kde(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"button",146),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.toggleDay(o))}),e._uU(2),e.qZA(),e.BQk()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw(3);e.xp6(1),e.ekj("active",n.formTimer.days&&n.formTimer.days[i]),e.xp6(1),e.hij(" ",t," ")}}function Qde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",146),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw(3);return e.KtG(o.toggleDay(n+7))}),e._uU(1),e.qZA()}if(2&r){const t=e.oxw().index,i=e.oxw(3);e.ekj("active",i.formTimer.days&&i.formTimer.days[t+7]),e.xp6(1),e.hij(" ",i.dayLabelsShort[t+7]," ")}}function Sde(r,a){if(1&r&&(e.ynx(0),e.YNc(1,Qde,2,3,"button",147),e.BQk()),2&r){const t=a.index,i=e.oxw(3);e.xp6(1),e.Q6J("ngIf",i.dayLabelsShort[t+7])}}function Pde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"label"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",143)(5,"div",144),e.YNc(6,kde,3,3,"ng-container",20),e.qZA(),e.TgZ(7,"div",144),e.YNc(8,Sde,2,1,"ng-container",20),e.qZA()(),e.TgZ(9,"button",145),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onSelectAllDays())}),e._uU(10),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,4,"scheduler.days-active")),e.xp6(4),e.Q6J("ngForOf",t.dayLabelsShort.slice(0,7)),e.xp6(2),e.Q6J("ngForOf",t.dayLabelsShort.slice(7,14)),e.xp6(2),e.hij(" ",t.getSelectAllText()," ")}}function Fde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",95)(1,"h3"),e._uU(2),e.ALo(3,"translate"),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"form",96),e.NdJ("ngSubmit",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.addOrUpdateSchedule())}),e.TgZ(6,"div",97)(7,"label",98),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"div",99)(11,"div",100),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.toggleFormDropdown())}),e.TgZ(12,"span",16),e._uU(13),e.qZA(),e.TgZ(14,"span",17),e._uU(15),e.qZA()(),e.YNc(16,ude,2,1,"div",101),e.qZA()(),e.TgZ(17,"div",102)(18,"label",103),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"div",104)(22,"div",105)(23,"input",106),e.NdJ("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.updateTimeFromInput("start",n.target.value))})("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.openTimePicker("start"))})("focus",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.openTimePicker("start"))})("blur",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.validateTimeInput("start",n))}),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"span",107),e._uU(26,"schedule"),e.qZA()(),e.YNc(27,fde,33,23,"div",108),e.qZA()(),e.YNc(28,wde,11,10,"div",109),e.YNc(29,Mde,10,7,"div",109),e.TgZ(30,"div",110)(31,"div",111)(32,"div",112)(33,"label",113)(34,"span",114),e._uU(35),e.ALo(36,"translate"),e.qZA(),e.TgZ(37,"div",115)(38,"label",71)(39,"input",116),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.formTimer.recurring=n)}),e.qZA(),e._UZ(40,"span",73),e.qZA()()()(),e.TgZ(41,"div",112)(42,"label",113)(43,"span",114),e._uU(44),e.ALo(45,"translate"),e.qZA(),e.TgZ(46,"div",115)(47,"label",71)(48,"input",117),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.formTimer.eventMode=n)}),e.qZA(),e._UZ(49,"span",73),e.qZA()()()(),e.TgZ(50,"div",112)(51,"label",113)(52,"span",114),e._uU(53),e.ALo(54,"translate"),e.qZA(),e.TgZ(55,"div",115)(56,"label",71)(57,"input",118),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.formTimer.monthMode=n)}),e.qZA(),e._UZ(58,"span",73),e.qZA()()()()()(),e.TgZ(59,"div",119),e.YNc(60,Ide,11,8,"div",8),e.YNc(61,Pde,11,6,"div",8),e.qZA(),e.TgZ(62,"div",120)(63,"button",121),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.cancelForm())}),e._uU(64),e.ALo(65,"translate"),e.qZA(),e.TgZ(66,"button",122),e._uU(67),e.ALo(68,"translate"),e.qZA()()()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(t.editingIndex>=0?e.lcZ(3,27,"scheduler.edit-title"):e.lcZ(4,29,"scheduler.add-title")),e.xp6(6),e.Oqu(e.lcZ(9,31,"scheduler.assign-device")),e.xp6(2),e.ekj("open",t.isFormDropdownOpen)("error",!t.formTimer.deviceName),e.xp6(3),e.Oqu(t.getFormSelectedDeviceLabel()),e.xp6(2),e.Oqu(t.isFormDropdownOpen?"arrow_drop_up":"arrow_drop_down"),e.xp6(1),e.Q6J("ngIf",t.isFormDropdownOpen),e.xp6(3),e.Oqu(e.lcZ(20,33,"scheduler.start-time")),e.xp6(4),e.ekj("active","start"===t.activeTimePicker),e.s9C("placeholder",e.lcZ(24,35,"scheduler.hhmm")),e.Q6J("value",t.getFormattedInputTime("start")),e.xp6(4),e.Q6J("ngIf","start"===t.activeTimePicker),e.xp6(1),e.Q6J("ngIf",!t.formTimer.eventMode),e.xp6(1),e.Q6J("ngIf",t.formTimer.eventMode),e.xp6(6),e.Oqu(e.lcZ(36,37,"scheduler.recurring")),e.xp6(4),e.Q6J("ngModel",t.formTimer.recurring),e.xp6(5),e.Oqu(e.lcZ(45,39,"scheduler.event-mode")),e.xp6(4),e.Q6J("ngModel",t.formTimer.eventMode),e.xp6(5),e.Oqu(e.lcZ(54,41,"scheduler.month-mode")),e.xp6(4),e.Q6J("ngModel",t.formTimer.monthMode),e.xp6(3),e.Q6J("ngIf",t.formTimer.monthMode),e.xp6(1),e.Q6J("ngIf",!t.formTimer.monthMode),e.xp6(3),e.Oqu(e.lcZ(65,43,"scheduler.cancel")),e.xp6(3),e.Oqu(e.lcZ(68,45,"scheduler.save"))}}function Ode(r,a){1&r&&(e.TgZ(0,"div",148)(1,"span",24),e._uU(2,"schedule"),e.qZA(),e.TgZ(3,"p"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"small"),e._uU(7),e.ALo(8,"translate"),e.qZA()()),2&r&&(e.xp6(4),e.Oqu(e.lcZ(5,2,"scheduler.editor-placeholder.title")),e.xp6(3),e.Oqu(e.lcZ(8,4,"scheduler.editor-placeholder.hint")))}function Lde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",121),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.closeConfirmDialog())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"scheduler.cancel")))}function Rde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",149),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.closeConfirmDialog())}),e.TgZ(1,"div",150),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(2,"div",151)(3,"span",152),e._uU(4),e.qZA(),e.TgZ(5,"h3"),e._uU(6),e.qZA()(),e.TgZ(7,"div",153),e._UZ(8,"div",154),e.qZA(),e.TgZ(9,"div",155),e.YNc(10,Lde,3,3,"button",156),e.TgZ(11,"button",157),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.confirmAction())}),e._uU(12),e.qZA()()()()}if(2&r){const t=e.oxw();e.xp6(4),e.Oqu((null==t.confirmDialogData?null:t.confirmDialogData.icon)||"event"),e.xp6(2),e.Oqu(null==t.confirmDialogData?null:t.confirmDialogData.title),e.xp6(2),e.Q6J("innerHTML",null==t.confirmDialogData?null:t.confirmDialogData.message,e.oJD),e.xp6(2),e.Q6J("ngIf",!1!==(null==t.confirmDialogData?null:t.confirmDialogData.showCancel)),e.xp6(2),e.Oqu((null==t.confirmDialogData?null:t.confirmDialogData.confirmText)||"Confirm")}}let AN=(()=>{class r{hmiService;cdr;dialog;authService;translateService;ngZone;schedulerContainer;deviceScrollContainer;overviewScrollContainer;property;isEditor=!1;id;destroy$=new An.x;dayLabelsShort=[];dayLabelsLong=[];monthLabelsShort=[];monthLabelsLong=[];periods=["am","pm"];unnamedDevice="-";static getSignals(t){let i=[];return t&&t.devices&&t.devices.forEach(n=>{n.variableId&&i.push(n.variableId)}),i}schedules={};selectedDevice="OVERVIEW";selectedDeviceIndex=-1;deviceList=[];hoveredDevice=null;activeStates=new Map;get timeFormat(){return this.property?.timeFormat||"12hr"}showFilterOptions=!1;filterOptions={showDisabled:!0,showActive:!0};needsScrolling=!1;overviewNeedsScrolling=!1;showSettingsOptions=!1;hasEventModeSchedules=!1;eventStartTimes=new Map;remainingTimes=new Map;isEditMode=!1;showAddForm=!1;editingIndex=-1;eventMode=!1;formTimer={startTime:"08:00",endTime:"18:00",event:!0,days:[!1,!0,!0,!0,!0,!0,!1],months:Array(12).fill(!1),daysOfMonth:Array(31).fill(!1),monthMode:!1,disabled:!1,deviceName:"",recurring:!0,eventMode:!1,durationHours:0,durationMinutes:1,durationSeconds:0};ensureScheduleArrays(t){t.months||(t.months=Array(12).fill(!1)),t.daysOfMonth||(t.daysOfMonth=Array(31).fill(!1)),t.days||(t.days=Array(7).fill(!1))}daysOfMonth=Array.from({length:31},(t,i)=>i+1);toggleMonth(t){this.formTimer.months||(this.formTimer.months=Array(12).fill(!1)),this.formTimer.months[t]=!this.formTimer.months[t]}toggleDayOfMonth(t){this.formTimer.daysOfMonth||(this.formTimer.daysOfMonth=Array(31).fill(!1)),this.formTimer.daysOfMonth[t]=!this.formTimer.daysOfMonth[t]}showCalendarPopup(t){if(!t)return;this.ensureScheduleArrays(t);let i='
';i+=``,i+='
';for(let n=0;n`,i+=this.monthLabelsShort[n],i+="
";i+="
",i+=``,i+='
';for(let n=0;n<31;n++)i+=`
`,i+=n+1,i+="
";i+="
",i+="",this.confirmDialogData={title:this.translateService.instant("scheduler.monthly-schedule-details"),message:i,confirmText:this.translateService.instant("general.close"),icon:"calendar_month",showCancel:!1,action:()=>this.closeConfirmDialog()},this.showConfirmDialog=!0}tagValues={};trackByDeviceGroup(t,i){return i.deviceName}trackBySchedule(t,i){return`${i.deviceName}-${i.startTime}-${t}`}constructor(t,i,n,o,s,c){this.hmiService=t,this.cdr=i,this.dialog=n,this.authService=o,this.translateService=s,this.ngZone=c}ngOnInit(){this.initializeDevices(),this.applyCustomColors(),this.loadSchedulesFromServer(),this.initI18nLists(),this.hmiService.onSchedulerUpdated.pipe((0,On.R)(this.destroy$)).subscribe(t=>{t.id===this.id&&this.loadSchedulesFromServer()}),this.hmiService.onSchedulerEventActive.pipe((0,On.R)(this.destroy$)).subscribe(t=>{if(t.schedulerId===this.id){const i=t.eventData?.id;if(!i)return;const n=`${t.deviceName}_${i}`;this.activeStates.set(n,t.active),t.active&&t.eventData?.eventMode&&t.eventData?.duration?(this.eventStartTimes.set(n,Date.now()),this.remainingTimes.set(n,void 0!==t.remainingTime?t.remainingTime:t.eventData.duration)):t.active||(this.eventStartTimes.delete(n),this.remainingTimes.delete(n)),this.ngZone.run(()=>{this.cdr.detectChanges(),setTimeout(()=>this.cdr.detectChanges(),0),setTimeout(()=>this.cdr.detectChanges(),100)})}}),this.hmiService.onSchedulerRemainingTime.pipe((0,On.R)(this.destroy$)).subscribe(t=>{if(t.schedulerId===this.id){const i=t.eventId;if(!i)return;this.remainingTimes.set(`${t.deviceName}_${i}`,t.remaining),this.cdr.detectChanges()}}),this.isEditor||setTimeout(()=>{this.loadDeviceStatesForDisplay()},100),setTimeout(()=>{this.cdr.detectChanges()},100),this.isEditor||this.initializeEventDrivenScheduler(),Je(document,"click").pipe((0,On.R)(this.destroy$)).subscribe(this.onDocumentClick.bind(this))}ngOnChanges(t){t.property&&(t.property.previousValue&&t.property.currentValue&&this.migrateSchedulesOnPropertyChange(t.property.previousValue.devices||[],t.property.currentValue.devices||[]),this.initializeDevices(),this.applyCustomColors(),this.isEditor||this.saveSchedulesToServer(!0))}ngAfterViewInit(){setTimeout(()=>this.checkScrollingState(),0)}checkScrollingState(){setTimeout(()=>{let t=!1;if(this.deviceScrollContainer&&this.deviceScrollContainer.nativeElement){const i=this.deviceScrollContainer.nativeElement,n=this.needsScrolling;this.needsScrolling=i.scrollHeight>i.clientHeight,n!==this.needsScrolling&&(t=!0)}if(this.overviewScrollContainer&&this.overviewScrollContainer.nativeElement){const i=this.overviewScrollContainer.nativeElement,n=this.overviewNeedsScrolling;this.overviewNeedsScrolling=i.scrollHeight>i.clientHeight,n!==this.overviewNeedsScrolling&&(t=!0)}t&&this.cdr.detectChanges()},100)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.transitionWatcher&&cancelAnimationFrame(this.transitionWatcher),Object.values(this.tagWriteTimeout).forEach(t=>{t&&clearTimeout(t)}),this.tagWriteTimeout={},this.recentTagWrites.clear()}initializeDevices(){this.deviceList=this.property&&this.property.devices&&this.property.devices.length>0?this.property.devices.map(t=>({name:t.name||t.label||this.unnamedDevice,label:t.label||t.name||this.unnamedDevice,variableId:t.variableId||"",permission:t.permission,permissionRoles:t.permissionRoles})):[],this.deviceList.length>1?(this.selectedDevice="OVERVIEW",this.selectedDeviceIndex=-1):1===this.deviceList.length?(this.selectedDevice=this.deviceList[0].name,this.selectedDeviceIndex=0):(this.selectedDevice="OVERVIEW",this.selectedDeviceIndex=-1)}checkMasterPermission(){return this.isEditor?{show:!0,enabled:!0}:this.authService.checkPermission(this.property)||{show:!0,enabled:!0}}checkDevicePermission(t){if(this.isEditor)return{show:!0,enabled:!0};const i=this.deviceList.find(o=>o.name===t);return i?i.permission||i.permissionRoles?this.authService.checkPermission(i)||{show:!0,enabled:!0}:this.checkMasterPermission():{show:!1,enabled:!1}}canModifyScheduler(){return this.checkMasterPermission().enabled}canSeeDevice(t){return this.checkDevicePermission(t).show}canModifyDevice(t){const i=this.deviceList.find(s=>s.name===t);if(!i)return!1;const n=this.checkMasterPermission();if(!i.permission&&!i.permissionRoles)return n.enabled;const o=this.checkDevicePermission(t);return n.enabled&&o.enabled}getModifiableDevices(){return this.deviceList.filter(t=>this.canModifyDevice(t.name))}migrateSchedulesOnPropertyChange(t,i){if(!t||!i||0===t.length)return;let n=!1;const o={},s=new Map;t.forEach((c,g)=>{s.set(g,{name:c.name||c.label||this.unnamedDevice,variableId:c.variableId||""})}),i.forEach((c,g)=>{const B=c.name||c.label||this.unnamedDevice,O=c.variableId||"",ne=s.get(g);if(ne){const we=ne.name;(we!==B||ne.variableId!==O)&&(n=!0);const ei=this.schedules[we]||[];if(ei.length>0){const pi=ei.map(Di=>({...Di,deviceName:B,variableId:O}));o[B]=pi}else void 0!==this.schedules[we]&&(o[B]=[])}else this.schedules[B]&&(o[B]=this.schedules[B])}),Object.keys(this.schedules).forEach(c=>{!i.some(B=>(B.name||B.label||this.unnamedDevice)===c)&&!o[c]&&(n=!0)}),n&&(this.schedules=o,this.saveSchedulesToServer(!0))}syncSchedulesWithDeviceList(){if(!this.deviceList||0===this.deviceList.length)return;let t=!1;const i=new Map;this.deviceList.forEach(n=>{i.set(n.name,n.variableId)}),Object.keys(this.schedules).forEach(n=>{const o=i.get(n);o&&this.schedules[n].forEach(s=>{s.variableId!==o&&(s.variableId=o,t=!0)})}),t&&this.saveSchedulesToServer(!0)}loadSchedulesFromServer(){this.id&&this.hmiService.askSchedulerData(this.id).pipe((0,yo.q)(1)).subscribe({next:t=>{t&&t.schedules?Array.isArray(t.schedules)?this.convertToDeviceNameFormat(t.schedules):this.schedules=t.schedules?{...t.schedules}:{}:this.schedules={};for(const i in this.schedules)this.schedules[i]&&this.schedules[i].forEach(n=>{n.id||(n.id=ii.cQ.getShortGUID("s_")),this.ensureScheduleArrays(n)});this.syncSchedulesWithDeviceList(),this.initializeActiveStates(),this.cdr.detectChanges(),this.property?.deviceActions&&!t?.settings?.deviceActions&&this.saveSchedulesToServer(!0),this.isEditor||this.loadDeviceStatesForDisplay()},error:t=>{404===t.status||console.error("Error loading scheduler data:",t),this.schedules={},this.cdr.detectChanges(),this.isEditor||this.loadDeviceStatesForDisplay()}})}convertToDeviceNameFormat(t){this.schedules={},t.forEach(i=>{i.schedules&&i.schedules.forEach(n=>{const s=this.getDeviceNameByIndex(void 0!==n.output?n.output:i.deviceIndex);s&&(this.schedules[s]||(this.schedules[s]=[]),this.schedules[s].push({...n,deviceName:s}))})}),this.saveSchedulesToServer(!0)}getDeviceNameByIndex(t){return this.deviceList&&this.deviceList[t]?this.deviceList[t].name:""}selectDevice(t){if("string"==typeof t)return this.selectedDevice=t,this.isDropdownOpen=!1,this.hoveredDevice=null,void this.onDeviceSelectionChange(t);const i=t;-1===i?(this.selectedDevice="OVERVIEW",this.selectedDeviceIndex=-1):this.deviceList[i]?(this.selectedDevice=this.deviceList[i].name,this.selectedDeviceIndex=i):(this.selectedDevice="OVERVIEW",this.selectedDeviceIndex=-1),this.cdr.detectChanges(),this.checkScrollingState()}onDeviceSelectionChange(t){if("OVERVIEW"===t)this.selectedDevice="OVERVIEW",this.selectedDeviceIndex=-1;else{const i=this.deviceList.findIndex(n=>n.name===t);-1!==i?(this.selectedDevice=t,this.selectedDeviceIndex=i):(this.selectedDevice="OVERVIEW",this.selectedDeviceIndex=-1)}this.cdr.detectChanges(),this.checkScrollingState()}getFilteredOverviewSchedules(){const t=[];return Object.keys(this.schedules).forEach(i=>{const n=this.schedules[i]||[];if(0===n.length)return;const o=n.filter(g=>this.isScheduleActive(g)?this.filterOptions.showActive:this.filterOptions.showDisabled),s=o.filter(g=>!g.eventMode),c=o.filter(g=>!0===g.eventMode);o.length>0&&t.push({deviceName:i,timerModeSchedules:s,eventModeSchedules:c,allSchedules:o})}),t.sort((i,n)=>i.deviceName.localeCompare(n.deviceName))}toggleFilter(){this.showFilterOptions=!this.showFilterOptions,this.cdr.detectChanges()}toggleSettings(){this.showSettingsOptions=!this.showSettingsOptions,this.cdr.detectChanges()}getSelectStyles(){return{backgroundColor:"rgba(255, 255, 255, 0.2)",border:"1px solid rgba(255, 255, 255, 0.5)",color:this.property?.secondaryTextColor||"#ffffff",borderRadius:"3px",padding:"4px 8px",height:"20px",display:"flex",alignItems:"center"}}getOptionStyle(t){return t?{color:this.property?.secondaryTextColor||"#ffffff",backgroundColor:this.property?.accentColor||"#2196f3"}:{color:this.property?.textColor||"#333333",backgroundColor:this.property?.backgroundColor||"#ffffff"}}getDeviceSchedules(){if("OVERVIEW"===this.selectedDevice){const i=[];return Object.keys(this.schedules).forEach(n=>{i.push(...this.schedules[n]||[])}),[...i]}return[...this.schedules[this.selectedDevice]||[]]}getDeviceTimerModeSchedules(){return this.getDeviceSchedules().filter(t=>!t.eventMode)}getDeviceEventModeSchedules(){return this.getDeviceSchedules().filter(t=>!0===t.eventMode)}hasDeviceTimerModeSchedules(){return this.getDeviceTimerModeSchedules().length>0}hasDeviceEventModeSchedules(){return this.getDeviceEventModeSchedules().length>0}saveSchedulesToServer(t=!1){!this.id||this.isEditor&&!t||this.hmiService.setSchedulerData(this.id,{schedules:this.schedules,settings:{eventMode:this.eventMode,devices:this.deviceList,deviceActions:this.property?.deviceActions||[]}}).pipe((0,yo.q)(1)).subscribe({next:n=>{this.refreshTagSubscriptions()},error:n=>{console.error("Error saving schedules:",n)}})}toggleAddView(){this.canModifyDevice("OVERVIEW"===this.selectedDevice?this.deviceList[0]?.name||"":this.selectedDevice)&&(this.isEditMode=!this.isEditMode,this.showAddForm=this.isEditMode,this.isEditMode&&(this.resetForm(),this.editingIndex=-1),this.cdr.detectChanges())}resetForm(){this.formTimer={startTime:"08:00",endTime:"18:00",event:!0,days:[!1,!0,!0,!0,!0,!0,!1],months:Array(12).fill(!1),daysOfMonth:Array(31).fill(!1),monthMode:!1,disabled:!1,deviceName:"OVERVIEW"===this.selectedDevice?this.deviceList[0]?.name||"":this.selectedDevice,recurring:!0,eventMode:!1,durationHours:0,durationMinutes:1,durationSeconds:0},this.cdr.detectChanges()}addOrUpdateSchedule(){if(!this.formTimer.startTime||!this.formTimer.deviceName)return;const t=this.formTimer.deviceName,i=this.deviceList.find(s=>s.name===t);if(!i||!this.canModifyDevice(t))return;const n={startTime:this.formTimer.startTime,days:this.formTimer.days,months:this.formTimer.months,daysOfMonth:this.formTimer.daysOfMonth,monthMode:this.formTimer.monthMode,disabled:this.formTimer.disabled,deviceName:t,variableId:i.variableId,recurring:void 0===this.formTimer.recurring||this.formTimer.recurring,eventMode:this.formTimer.eventMode||!1};this.formTimer.eventMode?n.duration=3600*this.formTimer.durationHours+60*this.formTimer.durationMinutes+this.formTimer.durationSeconds:n.endTime=this.formTimer.endTime;const o=this.formatScheduleDetails(n);this.confirmDialogData={title:this.translateService.instant(this.editingIndex>=0?"scheduler.update-schedule":"scheduler.add-schedule"),message:o,confirmText:this.translateService.instant("general.confirm"),icon:"event",action:()=>this.executeSaveSchedule(n)},this.showConfirmDialog=!0}executeSaveSchedule(t){const i=t.deviceName;if(this.schedules[i]||(this.schedules[i]=[]),this.editingIndex>=0){const n=this.getDeviceSchedules();if(n[this.editingIndex]){const o=n[this.editingIndex],s=o.deviceName;if(t.id=o.id,s&&s!==i){const c=this.schedules[s]?.findIndex(g=>g===o);c>=0&&this.schedules[s].splice(c,1)}if(s===i){const c=this.schedules[i].findIndex(g=>g===o);c>=0&&(this.schedules[i][c]=t)}else this.schedules[i].push(t)}}else t.id=ii.cQ.getShortGUID("s_"),this.schedules[i].push(t);this.saveSchedulesToServer(!0),this.showAddForm=!1,this.isEditMode=!1,this.editingIndex=-1,this.selectedDevice="OVERVIEW",this.cdr.detectChanges(),this.checkScheduleStates()}editSchedule(t){const i=this.getDeviceSchedules();if(!i[t])return;const n=i[t],o=n.deviceName||this.selectedDevice;if(!this.canModifyDevice(o))return;let s=0,c=1,g=0;if(n.eventMode&&void 0!==n.duration){const B=n.duration;s=Math.floor(B/3600),c=Math.floor(B%3600/60),g=B%60}this.formTimer={startTime:n.startTime,endTime:n.endTime||"18:00",event:void 0===n.event||n.event,days:[...n.days||[!1,!1,!1,!1,!1,!1,!1]],months:[...n.months||new Array(12).fill(!1)],daysOfMonth:[...n.daysOfMonth||new Array(31).fill(!1)],monthMode:n.monthMode||!1,disabled:n.disabled||!1,deviceName:o,recurring:void 0===n.recurring||n.recurring,eventMode:n.eventMode||!1,durationHours:s,durationMinutes:c,durationSeconds:g},this.editingIndex=t,this.showAddForm=!0,this.isEditMode=!0}editScheduleFromOverview(t,i){const o=this.getDeviceSchedules().findIndex(s=>s.deviceName===t.deviceName&&s.startTime===t.startTime&&s.endTime===t.endTime&&JSON.stringify(s.days)===JSON.stringify(t.days));o>=0&&this.editSchedule(o)}confirmDeleteFromOverview(t,i){this.confirmDialogData={title:this.translateService.instant("scheduler.delete-schedule"),message:this.translateService.instant("scheduler.to-remove",{value:t.deviceName}),confirmText:this.translateService.instant("general.delete"),icon:"warning",action:()=>this.executeDeleteFromOverview(t,i)},this.showConfirmDialog=!0}executeDeleteFromOverview(t,i){const n=t.deviceName;if(this.schedules[n]){const o=this.schedules[n].findIndex(s=>s.startTime===t.startTime&&s.endTime===t.endTime&&JSON.stringify(s.days)===JSON.stringify(t.days));o>=0&&(this.schedules[n].splice(o,1),this.saveSchedulesToServer(!0),this.cdr.detectChanges())}}deleteSchedule(t){const n=this.getDeviceSchedules()[t];this.canModifyDevice(n.deviceName||this.selectedDevice)&&(this.confirmDialogData={title:this.translateService.instant("scheduler.delete-schedule"),message:this.translateService.instant("scheduler.to-remove",{value:n.deviceName}),confirmText:this.translateService.instant("general.delete"),icon:"warning",action:()=>this.executeDeleteSchedule(t)},this.showConfirmDialog=!0)}executeDeleteSchedule(t){const i=this.getDeviceSchedules();if(i[t]){const n=i[t],o=n.deviceName||this.selectedDevice;if(this.schedules[o]){const s=this.schedules[o].findIndex(c=>c===n);s>=0&&(this.schedules[o].splice(s,1),this.saveSchedulesToServer(!0),this.cdr.detectChanges(),this.checkScrollingState())}}}toggleSchedule(t){const i=this.getDeviceSchedules();if(i[t]){const n=i[t],o=n.deviceName||this.selectedDevice;if(!this.canModifyDevice(o))return;if(this.schedules[o]){const s=this.schedules[o].findIndex(c=>c===n);s>=0&&(this.schedules[o][s].disabled=!this.schedules[o][s].disabled,this.schedules[o].some(g=>!g.disabled)?this.checkScheduleStates():this.resetDeviceTag(o),this.saveSchedulesToServer(!0),this.cdr.detectChanges(),this.checkScheduleStates())}}}deviceStates={};signalSubscription=null;scheduledTags=new Set;lastScheduleCheck=0;transitionWatcher=0;recentTagWrites=new Set;tagWriteTimeout={};initializeEventDrivenScheduler(){this.loadDeviceStatesForDisplay(),this.subscribeToScheduledTags(),this.startTransitionWatcher()}subscribeToScheduledTags(){if(this.scheduledTags.clear(),this.deviceList.forEach(t=>{t.variableId&&this.schedules[t.name]?.length>0&&this.scheduledTags.add(t.variableId)}),this.scheduledTags.size>0){const t=Array.from(this.scheduledTags);this.hmiService.viewsTagsSubscribe(t,!0),this.signalSubscription=this.hmiService.onVariableChanged.pipe((0,On.R)(this.destroy$)).subscribe(i=>this.handleSignalChange(i))}}handleSignalChange(t){if(!this.scheduledTags.has(t.id))return;this.tagValues[t.id]=t.value;const i=Date.now();i-this.lastScheduleCheck<500||(this.lastScheduleCheck=i,this.recentTagWrites&&this.recentTagWrites.has(`write_${t.id}`)||this.enforceSchedulerControl()),this.cdr.detectChanges()}startTransitionWatcher(){let t=0;const n=o=>{o-t>=2e3&&(this.checkEventTransitions(),this.checkScheduleStates(),this.enforceSchedulerControl(),t=o),this.transitionWatcher=requestAnimationFrame(n)};this.transitionWatcher=requestAnimationFrame(n)}refreshTagSubscriptions(){this.signalSubscription&&this.signalSubscription.unsubscribe(),this.subscribeToScheduledTags()}loadDeviceStatesForDisplay(){this.deviceList.forEach(t=>{this.deviceStates[t.name]=!1}),this.cdr.detectChanges()}checkEventTransitions(){}checkScheduleStates(){}writeDeviceTag(t,i){}enforceSchedulerControl(){}isValueTrue(t){if("boolean"==typeof t)return t;if("number"==typeof t)return 0!==t;if("string"==typeof t){const i=t.toLowerCase();return"true"===i||"1"===i}return!!t}resetDeviceTag(t){}deleteSchedulerData(){this.id&&this.hmiService.deleteSchedulerData(this.id).pipe((0,yo.q)(1)).subscribe({next:t=>{},error:t=>{console.error("Error deleting scheduler data:",t)}})}onCanvasDelete(){this.isEditor&&this.deleteSchedulerData()}destroy(){try{this.ngOnDestroy()}catch(t){console.error("Error during scheduler destroy:",t)}}startAddFromOverview(){this.deviceList.length>0&&(this.selectedDevice=this.deviceList[0].name,this.selectedDeviceIndex=0,this.toggleAddView())}isTimeInRange(t,i,n){const o=this.timeToMinutes(t),s=this.timeToMinutes(i),c=this.timeToMinutes(n);return s<=c?o>=s&&o<=c:o>=s||o<=c}timeToMinutes(t){const[i,n]=t.split(":").map(Number);return 60*i+n}getScheduleIndex(t){return t.deviceName&&this.schedules[t.deviceName]?this.schedules[t.deviceName].findIndex(i=>i===t):-1}initializeActiveStates(){Object.keys(this.schedules).forEach(t=>{(this.schedules[t]||[]).forEach((n,o)=>{const s=n.id;if(!s)return;const c=`${t}_${s}`;if(!0===n.eventMode)return;const g=new Date,B=g.getHours().toString().padStart(2,"0")+":"+g.getMinutes().toString().padStart(2,"0"),O=g.getDay();if(!n.disabled&&n.days[O]){const ne=this.isTimeInRange(B,n.startTime,n.endTime||"23:59");this.activeStates.set(c,ne)}else this.activeStates.set(c,!1)})})}isScheduleActive(t){if(t.disabled)return!1;const i=t.id;if(!i)return!1;const n=`${t.deviceName}_${i}`;return!!this.activeStates.has(n)&&this.activeStates.get(n)}formatTime(t){if(!t)return"";if("12hr"===this.timeFormat){const[i,n]=t.split(":");let o=parseInt(i);const s=o>=12?"pm":"am";return 0===o?o=12:o>12&&(o-=12),`${o}:${n}${s}`}return t}calculateDuration(t){if(t.event||!t.endTime)return"Event";const i=this.timeToMinutes(t.startTime);let n=this.timeToMinutes(t.endTime);no.name===t);return i&&i.variableId?i.variableId in this.tagValues?!!this.tagValues[i.variableId]:(this.schedules[t]||[]).some(o=>!o.disabled):(this.schedules[t]||[]).some(s=>!s.disabled)}getActiveDays(t){const i=[];return t.forEach((n,o)=>{n&&i.push(this.dayLabelsShort[o])}),i.join(", ")}cancelForm(){this.showAddForm=!1,this.isEditMode=!1,this.editingIndex=-1}toggleDay(t){t>=0&&ti);this.formTimer.days=this.formTimer.days.map(()=>!t)}applyCustomColors(){if(this.property&&this.schedulerContainer){const t=this.schedulerContainer.nativeElement;if(this.property.accentColor){t.style.setProperty("--scheduler-accent-color",this.property.accentColor);const i=this.hexToRgba(this.property.accentColor,.05);t.style.setProperty("--scheduler-hover-bg",i);const n=this.hexToRgba(this.property.accentColor,.2);t.style.setProperty("--scheduler-hover-color",n)}else t.style.setProperty("--scheduler-hover-bg","rgba(33, 150, 243, 0.05)"),t.style.setProperty("--scheduler-hover-color","rgba(33, 150, 243, 0.12)");this.property.backgroundColor&&t.style.setProperty("--scheduler-bg-color",this.property.backgroundColor),this.property.textColor&&t.style.setProperty("--scheduler-text-color",this.property.textColor),this.property.secondaryTextColor&&t.style.setProperty("--scheduler-secondary-text-color",this.property.secondaryTextColor),this.property.borderColor&&t.style.setProperty("--scheduler-border-color",this.property.borderColor),this.property.hoverColor&&t.style.setProperty("--scheduler-hover-bg",this.property.hoverColor)}}hexToRgba(t,i){try{if(3===(t=t.replace("#","")).length&&(t=t.split("").map(g=>g+g).join("")),6!==t.length)return`rgba(33, 150, 243, ${i})`;const o=parseInt(t.substring(0,2),16),s=parseInt(t.substring(2,4),16),c=parseInt(t.substring(4,6),16);return isNaN(o)||isNaN(s)||isNaN(c)?`rgba(33, 150, 243, ${i})`:`rgba(${o}, ${s}, ${c}, ${i})`}catch(n){return console.error("Error converting hex to rgba:",n),`rgba(33, 150, 243, ${i})`}}getOptionBackgroundColor(t,i){return t?`${this.property?.accentColor||"#2196f3"} !important`:i?`${this.hexToRgba(this.property?.accentColor||"#2196f3",.4)} !important`:`${this.property?.backgroundColor||"#ffffff"} !important`}getOptionTextColor(t){return t?`${this.property?.secondaryTextColor||"#ffffff"} !important`:`${this.property?.textColor||"#333333"} !important`}onOptionHover(t,i){this.hoveredDevice=t;const n=i.target;if(n&&!n.classList.contains("mdc-list-item--selected")){const s=this.hexToRgba(this.property?.accentColor||"#2196f3",.4);n.style.setProperty("background-color",s,"important"),n.style.setProperty("color",this.property?.textColor||"#333333","important")}}onOptionLeave(t){this.hoveredDevice=null;const i=t.target;i&&!i.classList.contains("mdc-list-item--selected")&&(i.style.setProperty("background-color",this.property?.backgroundColor||"#ffffff","important"),i.style.setProperty("color",this.property?.textColor||"#333333","important"))}isDropdownOpen=!1;isFormDropdownOpen=!1;formHoveredDevice=null;toggleDropdown(){this.isEditMode||(this.isDropdownOpen=!this.isDropdownOpen)}toggleFormDropdown(){this.isFormDropdownOpen=!this.isFormDropdownOpen}selectFormDevice(t){this.formTimer.deviceName=t,this.isFormDropdownOpen=!1,this.formHoveredDevice=null}getFormSelectedDeviceLabel(){if(!this.formTimer.deviceName)return this.translateService.instant("scheduler.device-selector-select-device");const t=this.deviceList.find(i=>i.name===this.formTimer.deviceName);return t?.label||t?.name||this.formTimer.deviceName}getSelectedDeviceLabel(){if("OVERVIEW"===this.selectedDevice)return this.translateService.instant("scheduler.device-selector-overview");const t=this.deviceList.find(i=>i.name===this.selectedDevice);return t?.label||t?.name||this.translateService.instant("scheduler.device-selector-select-device")}onDocumentClick(t){const i=t.target,n=i.closest(".custom-select"),o=i.closest(".form-custom-select"),s=i.closest(".custom-time-picker"),c=i.closest(".filter-section"),g=i.closest(".settings-section");!n&&this.isDropdownOpen&&(this.isDropdownOpen=!1,this.hoveredDevice=null),!o&&this.isFormDropdownOpen&&(this.isFormDropdownOpen=!1,this.formHoveredDevice=null),!s&&this.activeTimePicker&&this.closeTimePicker(),!c&&this.showFilterOptions&&(this.showFilterOptions=!1,this.cdr.detectChanges()),!g&&this.showSettingsOptions&&(this.showSettingsOptions=!1,this.cdr.detectChanges())}activeTimePicker=null;timeDropdowns={};minuteInterval=1;showConfirmDialog=!1;confirmDialogData=null;openTimePicker(t){this.activeTimePicker=t,this.isDropdownOpen=!1,this.isFormDropdownOpen=!1,setTimeout(()=>{this.scrollToSelectedTime(t)},50)}closeTimePicker(){this.activeTimePicker=null}getHourOptions(){const t=[];for(let i=1;i<=12;i++)t.push(i.toString().padStart(2,"0"));return t}getMinuteOptions(){const t=[];for(let i=0;i<60;i+=this.minuteInterval)t.push(i.toString().padStart(2,"0"));return t}setMinuteInterval(t){this.minuteInterval=t,this.cdr.detectChanges()}scrollToSelectedTime(t){setTimeout(()=>{const n=document.querySelector(".time-picker-dropdown .time-part:nth-child(1) .time-options"),o=document.querySelector(".time-picker-dropdown .time-part:nth-child(1) .time-option.selected");if(o&&n){const g=n.getBoundingClientRect(),B=o.getBoundingClientRect();n.scrollTop+=B.top-g.top-g.height/2+B.height/2}const s=document.querySelector(".time-picker-dropdown .time-part:nth-child(2) .time-options");let c=document.querySelector(".time-picker-dropdown .time-part:nth-child(2) .time-option.selected");if(!c&&s&&("start"===t||"end"===t)){const g=parseInt(this.getTimeMinute(t)),B=Array.from(s.querySelectorAll(".time-option"));let O=null,ne=1/0;B.forEach(we=>{const $e=parseInt(we.textContent?.trim()||"0"),nt=Math.abs($e-g);nt=12?"pm":"am"}`}return i}updateTimeFromInput(t,i){if(!i)return;const n=i.match(/(\d{1,2}):(\d{2})\s*(am|pm)/i);if(n){let o=parseInt(n[1]);const s=n[2],c=n[3].toLowerCase();"pm"===c&&12!==o&&(o+=12),"am"===c&&12===o&&(o=0);const g=`${o.toString().padStart(2,"0")}:${s}`;"start"===t?this.formTimer.startTime=g:this.formTimer.endTime=g}else"start"===t?this.formTimer.startTime=i:this.formTimer.endTime=i}getTimeHour(t){const i="start"===t?this.formTimer.startTime:this.formTimer.endTime;if(!i)return"12";const[n]=i.split(":"),o=parseInt(n);return 0===o?"12":o>12?(o-12).toString().padStart(2,"0"):o.toString().padStart(2,"0")}getTimeMinute(t){const i="start"===t?this.formTimer.startTime:this.formTimer.endTime;if(!i)return"00";const[,n]=i.split(":");return n||"00"}getTimePeriod(t){const i="start"===t?this.formTimer.startTime:this.formTimer.endTime;if(!i)return"am";const[n]=i.split(":");return parseInt(n)>=12?"pm":"am"}setTimeHour(t,i){const n=this.getTimeMinute(t),o=this.getTimePeriod(t);let s=parseInt(i);"pm"===o&&12!==s&&(s+=12),"am"===o&&12===s&&(s=0);const c=`${s.toString().padStart(2,"0")}:${n}`;"start"===t?this.formTimer.startTime=c:this.formTimer.endTime=c}setTimeMinute(t,i){const n=this.getTimeHour(t),o=this.getTimePeriod(t);let s=parseInt(n);"pm"===o&&12!==s&&(s+=12),"am"===o&&12===s&&(s=0);const c=`${s.toString().padStart(2,"0")}:${i}`;"start"===t?this.formTimer.startTime=c:this.formTimer.endTime=c}setTimePeriod(t,i){const n=(i||"").toLowerCase(),o=this.getTimeHour(t),s=this.getTimeMinute(t);let c=parseInt(o);"pm"===n&&12!==c&&(c+=12),"am"===n&&12===c&&(c=0);const g=`${c.toString().padStart(2,"0")}:${s}`;"start"===t?this.formTimer.startTime=g:this.formTimer.endTime=g}setDurationValue(t,i){"hours"===t?this.formTimer.durationHours=Math.max(0,Math.min(24,i)):"minutes"===t?this.formTimer.durationMinutes=Math.max(0,Math.min(59,i)):"seconds"===t&&(this.formTimer.durationSeconds=Math.max(0,Math.min(59,i)))}formatScheduleMode(t){if(t.eventMode&&void 0!==t.duration){const i=Math.floor(t.duration/3600),n=Math.floor(t.duration%3600/60),o=t.duration%60,s=[];return i>0&&s.push(`${i}h`),n>0&&s.push(`${n}m`),o>0&&s.push(`${o}s`),"Event: "+(s.join(" ")||"0s")}return this.formatTime(t.endTime)}hasEventMode(){return this.getDeviceSchedules().some(i=>!0===i.eventMode)}deviceHasEventMode(t){return t.schedules&&t.schedules.some(i=>!0===i.eventMode)}getRemainingTime(t,i){const o=this.schedules[t]?.[i]?.id;if(!o)return"";const c=this.remainingTimes.get(`${t}_${o}`);if(null==c)return"--";const g=Math.floor(c/3600),B=Math.floor(c%3600/60),O=c%60,ne=[];return g>0&&ne.push(`${g}h`),(B>0||g>0)&&ne.push(`${B}m`),ne.push(`${O}s`),ne.join(" ")}validateTimeInput(t,i){const n=i.target.value;n&&!/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(n)&&("start"===t?this.formTimer.startTime=this.formTimer.startTime||"":this.formTimer.endTime=this.formTimer.endTime||"")}removeAllSchedules(){this.id&&(Object.keys(this.schedules).forEach(t=>{const i=this.deviceList.find(n=>n.name===t);i&&i.variableId&&this.writeDeviceTag(t,0)}),this.hmiService.setSchedulerData(this.id,{schedules:{},settings:{}}).pipe((0,yo.q)(1)).subscribe())}confirmAction(){this.confirmDialogData&&this.confirmDialogData.action&&this.confirmDialogData.action(),this.closeConfirmDialog()}closeConfirmDialog(){this.showConfirmDialog=!1,this.confirmDialogData=null}formatScheduleDetails(t){const i=this.dayLabelsShort,n=this.monthLabelsShort,o=t.days.map((ne,we)=>ne?i[we]:null).filter(ne=>null!==ne).join(", "),s=t.months.map((ne,we)=>ne?n[we]:null).filter(ne=>null!==ne).join(", "),c=t.daysOfMonth.map((ne,we)=>ne?(we+1).toString():null).filter(ne=>null!==ne).join(", "),g=ne=>{if("12hr"===this.timeFormat){const[we,$e]=ne.split(":").map(Number),nt=we>=12?"PM":"AM";return`${we%12||12}:${$e.toString().padStart(2,"0")} ${nt}`}return ne};let O='';return O+=``,O+=``,O+=``,O+=t.eventMode?``:``,t.monthMode?(O+=``,O+=``):O+=``,O+=``,O+=``,O+="
${this.translateService.instant("scheduler.col-mode")}:${this.translateService.instant(t.eventMode?"scheduler.event-mode":"scheduler.time-mode")}
${this.translateService.instant("scheduler.col-device")}:${t.deviceName}
${this.translateService.instant("scheduler.start-time")}:${g(t.startTime)}
${this.translateService.instant("scheduler.col-duration")}:${(ne=>{const we=Math.floor(ne/3600),$e=Math.floor(ne%3600/60),nt=ne%60,Ft=[];return we>0&&Ft.push(`${we}h`),$e>0&&Ft.push(`${$e}m`),nt>0&&Ft.push(`${nt}s`),Ft.join(" ")||"0s"})(t.duration)}
${this.translateService.instant("scheduler.end-time")}:${g(t.endTime)}
${this.translateService.instant("scheduler.months")}:${s||"-"}
${this.translateService.instant("scheduler.days-of-month")}:${c||"-"}
${this.translateService.instant("scheduler.days")}:${o||"-"}
${this.translateService.instant("scheduler.recurring")}:${this.translateService.instant(t.recurring?"general.yes":"general.no")}
${this.translateService.instant("scheduler.col-status")}:${this.translateService.instant(t.disabled?"general.disabled":"general.enabled")}
",O}clearAllSchedules(){if(!this.canModifyScheduler())return;let t=0;"OVERVIEW"===this.selectedDevice?Object.keys(this.schedules).forEach(i=>{this.canModifyDevice(i)&&(t+=(this.schedules[i]||[]).length)}):this.canModifyDevice(this.selectedDevice)&&(t=this.getDeviceSchedules().length),0!==t&&(this.confirmDialogData={title:this.translateService.instant("scheduler.clear-schedules"),message:this.translateService.instant("scheduler.to-remove-permission",{value:t}),confirmText:this.translateService.instant("general.delete"),icon:"warning",action:()=>this.executeClearAllSchedules()},this.showConfirmDialog=!0)}executeClearAllSchedules(){if("OVERVIEW"===this.selectedDevice){let t=0,i=0;Object.keys(this.schedules).forEach(n=>{this.canModifyDevice(n)?(this.schedules[n]=[],this.resetDeviceTag(n),t++):i++})}else{if(!this.canModifyDevice(this.selectedDevice))return;this.schedules[this.selectedDevice]=[],this.resetDeviceTag(this.selectedDevice)}this.saveSchedulesToServer(!0),this.cdr.detectChanges(),this.checkScheduleStates()}initI18nLists(){const t=this.translateService.instant("general.weekdays"),i=this.translateService.instant("general.weekdays-short"),n=this.translateService.instant("general.months"),o=this.translateService.instant("general.months-short");this.dayLabelsLong=Array.isArray(t)?t:[],this.dayLabelsShort=Array.isArray(i)?i:[],this.monthLabelsLong=Array.isArray(n)?n:[],this.monthLabelsShort=Array.isArray(o)?o:[],!this.dayLabelsShort.length&&this.dayLabelsLong.length&&(this.dayLabelsShort=this.dayLabelsLong.map(s=>s.substring(0,3))),!this.monthLabelsShort.length&&this.monthLabelsLong.length&&(this.monthLabelsShort=this.monthLabelsLong.map(s=>s.substring(0,3))),this.unnamedDevice=this.translateService.instant("scheduler.unnamed-device")}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb),e.Y36(e.sBO),e.Y36(xo),e.Y36(xg.e),e.Y36(Ni.sK),e.Y36(e.R0b))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-scheduler"]],viewQuery:function(i,n){if(1&i&&(e.Gf(mAe,7),e.Gf(_Ae,5),e.Gf(vAe,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.schedulerContainer=o.first),e.iGM(o=e.CRH())&&(n.deviceScrollContainer=o.first),e.iGM(o=e.CRH())&&(n.overviewScrollContainer=o.first)}},inputs:{property:"property",isEditor:"isEditor",id:"id"},features:[e.TTD],decls:13,vars:9,consts:[[1,"scheduler-container"],["schedulerContainer",""],[1,"scheduler-header"],["class","device-selector",4,"ngIf"],["class","device-name",4,"ngIf"],[1,"header-actions"],["class","status-btn",3,"active","disabled",4,"ngIf"],["class","edit-mode-actions","style","display: flex; align-items: center; gap: 8px;",4,"ngIf"],[4,"ngIf"],["class","schedule-display",4,"ngIf"],["class","schedule-form",4,"ngIf"],["class","editor-placeholder",4,"ngIf"],["class","confirmation-overlay",3,"click",4,"ngIf"],[1,"device-selector"],[1,"custom-select"],[1,"custom-select-trigger",3,"click"],[1,"selected-text"],[1,"material-icons","arrow"],["class","custom-select-dropdown",4,"ngIf"],[1,"custom-select-dropdown"],[4,"ngFor","ngForOf"],[1,"custom-option",3,"click","mouseenter","mouseleave"],[1,"device-name"],[1,"status-btn",3,"disabled"],[1,"material-icons"],[1,"edit-mode-actions",2,"display","flex","align-items","center","gap","8px"],[1,"action-btn",3,"disabled","click"],[1,"action-btn","save-btn",3,"disabled","click"],["class","action-btn",3,"disabled","click",4,"ngIf"],["class","overview-controls","style","display: flex; align-items: center; gap: 8px;",4,"ngIf"],[1,"overview-controls",2,"display","flex","align-items","center","gap","8px"],[1,"filter-section",2,"display","flex","align-items","center","gap","8px"],[1,"filter-btn",3,"click"],["class","filter-options",4,"ngIf"],[1,"settings-section",2,"display","flex","align-items","center","gap","8px"],["class","settings-btn",3,"click",4,"ngIf"],["class","settings-dropdown",4,"ngIf"],[1,"filter-options"],[1,"custom-checkbox"],["type","checkbox",3,"ngModel","ngModelChange"],[1,"checkmark"],[1,"checkbox-label"],[1,"settings-btn",3,"click"],[1,"settings-dropdown"],[1,"settings-option","danger",2,"margin","0",3,"click"],[1,"schedule-display"],["class","device-mode",4,"ngIf"],["class","overview-mode",4,"ngIf"],[1,"device-mode"],[1,"device-scroll-container"],["deviceScrollContainer",""],["class","mode-section",4,"ngIf"],["class","empty-schedule",4,"ngIf"],[1,"mode-section"],[1,"schedule-headers"],[1,"header-row"],[1,"header-cell","schedule-num"],[1,"header-cell","start-time"],[1,"header-cell","end-time"],[1,"header-cell","duration"],[1,"header-cell","status"],[1,"header-cell","actions"],[1,"schedule-list"],["class","schedule-item",3,"disabled","read-only","cursor","pointer-events","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"schedule-item",3,"click"],[1,"schedule-main-row"],[1,"schedule-number"],[1,"start-time",3,"innerHTML"],[1,"end-time",3,"innerHTML"],[1,"duration"],[1,"status-switch",3,"click"],[1,"switch"],["type","checkbox","disabled","",3,"checked"],[1,"slider"],[1,"actions",3,"click"],["type","button","class","delete-btn",3,"click",4,"ngIf"],["class","days-display",4,"ngIf"],["class","calendar-display",4,"ngIf"],["type","button",1,"delete-btn",3,"click"],[1,"days-display"],["class","day-circle",3,"active","title",4,"ngFor","ngForOf"],[1,"day-circle",3,"title"],[1,"calendar-display"],["type","button",1,"calendar-view-btn",3,"click"],[1,"calendar-btn-text"],[1,"material-symbols-outlined"],[1,"empty-schedule"],[1,"overview-mode"],["class","overview-message",4,"ngIf"],[1,"overview-scroll-container"],["overviewScrollContainer",""],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"overview-message"],[1,"device-group"],[1,"device-header"],[1,"schedule-form"],[3,"ngSubmit"],[1,"device-assignment"],["for","deviceSelect"],[1,"form-custom-select"],[1,"form-custom-select-trigger",3,"click"],["class","form-custom-select-dropdown",4,"ngIf"],[1,"form-row"],["for","startTime"],[1,"custom-time-picker"],[1,"time-input-wrapper"],["type","text","name","startTime","required","",1,"time-input",3,"value","placeholder","input","click","focus","blur"],[1,"material-icons","time-icon"],["class","time-picker-dropdown",4,"ngIf"],["class","form-row",4,"ngIf"],[1,"form-row","toggle-row-horizontal"],[1,"toggle-row-responsive"],[1,"toggle-item"],[1,"toggle-label"],[1,"toggle-text"],[1,"toggle-switch-container"],["type","checkbox","name","recurring",3,"ngModel","ngModelChange"],["type","checkbox","name","eventMode",3,"ngModel","ngModelChange"],["type","checkbox","name","monthMode",3,"ngModel","ngModelChange"],[1,"days-selection"],[1,"form-actions"],["type","button",1,"cancel-btn",3,"click"],["type","submit",1,"save-btn"],[1,"form-custom-select-dropdown"],["class","form-custom-option",3,"selected","hovered","click","mouseenter","mouseleave",4,"ngIf"],[1,"form-custom-option",3,"click","mouseenter","mouseleave"],[1,"time-picker-dropdown"],[1,"time-controls"],[1,"time-part"],[1,"time-options"],["class","time-option",3,"selected","click",4,"ngFor","ngForOf"],[1,"minute-interval-selector"],[1,"interval-buttons"],["type","button",1,"interval-btn",3,"click"],[1,"time-option",3,"click"],["for","endTime"],["type","text","name","endTime","required","",1,"time-input",3,"value","placeholder","input","click","focus","blur"],["for","duration"],["type","text","readonly","","placeholder","HH:MM:SS",1,"time-input",3,"value","click","focus"],[1,"months-row"],[1,"days-of-month-calendar"],["type","button",1,"day-btn","month-btn",3,"click"],["type","button",1,"day-btn","day-of-month-btn",3,"click"],[1,"days-grid"],[1,"days-row"],["type","button",1,"select-all-btn",3,"click"],["type","button",1,"day-btn","round-btn",3,"click"],["type","button","class","day-btn round-btn",3,"active","click",4,"ngIf"],[1,"editor-placeholder"],[1,"confirmation-overlay",3,"click"],[1,"confirmation-dialog",3,"click"],[1,"dialog-header"],[1,"material-icons","warning-icon"],[1,"dialog-content"],[3,"innerHTML"],[1,"dialog-actions"],["type","button","class","cancel-btn",3,"click",4,"ngIf"],["type","button",1,"confirm-btn",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1)(2,"div",2),e.YNc(3,CAe,8,9,"div",3),e.YNc(4,bAe,2,1,"div",4),e.TgZ(5,"div",5),e.YNc(6,xAe,3,4,"button",6),e.YNc(7,BAe,7,2,"div",7),e.YNc(8,QAe,3,2,"div",8),e.qZA()(),e.YNc(9,cde,3,2,"div",9),e.YNc(10,Fde,69,47,"div",10),e.YNc(11,Ode,9,6,"div",11),e.YNc(12,Rde,13,5,"div",12),e.qZA()),2&i&&(e.xp6(3),e.Q6J("ngIf",(null==n.deviceList?null:n.deviceList.length)>1),e.xp6(1),e.Q6J("ngIf",1===(null==n.deviceList?null:n.deviceList.length)),e.xp6(2),e.Q6J("ngIf","OVERVIEW"!==n.selectedDevice&&!n.isEditMode),e.xp6(1),e.Q6J("ngIf",n.isEditMode),e.xp6(1),e.Q6J("ngIf",!n.isEditMode),e.xp6(1),e.Q6J("ngIf",!n.isEditMode),e.xp6(1),e.Q6J("ngIf",n.showAddForm),e.xp6(1),e.Q6J("ngIf",n.isEditor),e.xp6(1),e.Q6J("ngIf",n.showConfirmDialog))},dependencies:[l.sg,l.O5,In,D,et,Xe,$i,ue,Ni.X$],styles:['@charset "UTF-8";.months-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:4px;margin-bottom:8px}.days-of-month-calendar{display:grid;grid-template-columns:repeat(7,minmax(14px,38px));gap:6px}.month-btn{flex:1;padding:8px 4px;border:1px solid #ccc;background:#f9f9f9;color:var(--scheduler-text-color, #333333);cursor:pointer;border-radius:3px;font-size:11px;font-weight:500;margin:2px;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.month-btn.active{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3)}.month-btn:hover{background:#e0e0e0;color:var(--scheduler-text-color, #333333)}.month-btn.active:hover{background:var(--scheduler-accent-color, #1976d2);color:var(--scheduler-secondary-text-color, #ffffff)}.month-indicator{flex:1;padding:8px 4px;border:1px solid #ccc;background:#f9f9f9;color:var(--scheduler-text-color, #333333);border-radius:3px;font-size:11px;font-weight:500;margin:2px;display:inline-flex;align-items:center;justify-content:center;min-width:40px;max-width:50px}.month-indicator[style*="background: #2196f3"]{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important;border-color:var(--scheduler-accent-color, #2196f3)!important}.toggle-row-responsive{display:flex;gap:16px;align-items:center;margin-bottom:12px;flex-wrap:wrap;justify-content:center}.toggle-item{min-width:120px;flex:1 1 120px;display:flex;align-items:center;justify-content:center}.day-of-month-btn{aspect-ratio:1;border-radius:50%;padding:0;margin:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;background:#f9f9f9;color:var(--scheduler-text-color, #333333);border:1px solid #ccc;cursor:pointer;transition:background .2s,color .2s;width:100%;min-width:24px;max-width:100%}@media (min-width: 768px){.day-of-month-btn{font-size:12px}}@media (min-width: 1200px){.day-of-month-btn{font-size:13px}}.day-of-month-btn.active{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3)}.day-of-month-btn:hover{background:#e0e0e0;color:var(--scheduler-text-color, #333333)}.day-of-month-btn.active:hover{background:var(--scheduler-accent-color, #1976d2);color:var(--scheduler-secondary-text-color, #ffffff)}.day-indicator{aspect-ratio:1;border-radius:50%;padding:0;margin:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;background:#f9f9f9;color:var(--scheduler-text-color, #333333);border:1px solid #ccc;width:32px;height:32px;min-width:32px}.day-indicator[style*="background: #2196f3"]{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important;border-color:var(--scheduler-accent-color, #2196f3)!important}.day-btn.round-btn{border-radius:50%;width:32px;height:32px;padding:0;margin:2px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;background:#e0e0e0;color:#333;border:1px solid #bbb;transition:background .2s,color .2s}.day-btn.round-btn.active{background:var(--scheduler-accent-color, #2196f3);color:#fff;border:2px solid var(--scheduler-accent-color, #2196f3)}.days-grid{display:flex;flex-direction:column;gap:4px;flex-wrap:wrap}.days-row{display:flex;flex-direction:row;gap:4px;flex-wrap:wrap}.months-grid-responsive,.days-of-month-grid-responsive{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.scheduler-container{position:relative;--mdc-theme-primary: var(--scheduler-accent-color) !important;--mdc-theme-surface: var(--scheduler-bg-color) !important;--mdc-theme-on-surface: var(--scheduler-text-color) !important;--mdc-theme-text-primary-on-background: var(--scheduler-text-color) !important;--mdc-filled-select-container-color: rgba(255, 255, 255, .2) !important;--mdc-filled-select-ink-color: var(--scheduler-text-color) !important;--mdc-select-ink-color: var(--scheduler-text-color) !important;--mdc-select-container-fill-color: rgba(255, 255, 255, .2) !important;--mdc-select-dropdown-icon-color: var(--scheduler-secondary-text-color, #ffffff) !important;--mdc-select-hover-container-fill-color: rgba(255, 255, 255, .3) !important;--mdc-select-focused-container-fill-color: var(--scheduler-accent-color) !important;--mdc-select-focused-ink-color: var(--scheduler-secondary-text-color, #ffffff) !important;--mdc-menu-container-shape: 4px !important;--mdc-menu-container-color: var(--scheduler-bg-color) !important;--mdc-menu-container-surface-tint-color: var(--scheduler-bg-color) !important;--mdc-menu-item-container-height: 48px !important;--mdc-menu-item-label-text-color: var(--scheduler-text-color) !important;--mdc-menu-item-selected-container-fill-color: var(--scheduler-accent-color) !important;--mdc-menu-item-selected-label-text-color: var(--scheduler-secondary-text-color, #ffffff) !important;--mdc-menu-item-hover-container-fill-color: var(--scheduler-hover-color) !important;display:flex;flex-direction:column;height:100%;min-height:400px;font-size:14px}.scheduler-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-bottom:1px solid var(--scheduler-border-color, #cccccc)}.scheduler-header .device-selector,.scheduler-header .device-name{flex:none}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select{background:rgba(255,255,255,.2)!important;border:1px solid rgba(255,255,255,.3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important;padding:6px 8px!important;border-radius:3px!important;cursor:pointer!important;min-width:150px!important;display:flex!important;align-items:center!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-value,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-value{color:var(--scheduler-secondary-text-color, #ffffff)!important;flex:1!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-arrow,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-arrow{color:var(--scheduler-secondary-text-color, #ffffff)!important;margin-left:8px!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select:hover,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select:hover{background:rgba(255,255,255,.3)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select:hover .mat-mdc-select-arrow,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select:hover .mat-mdc-select-arrow{color:var(--scheduler-accent-color)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused{background:var(--scheduler-accent-color)!important;border-color:var(--scheduler-accent-color)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-value,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-value{color:var(--scheduler-secondary-text-color, #ffffff)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-arrow,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-arrow{color:var(--scheduler-secondary-text-color, #ffffff)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel{background:var(--scheduler-bg-color)!important;border:1px solid var(--scheduler-border-color)!important;border-radius:4px!important;box-shadow:0 2px 8px #00000026!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option{color:var(--scheduler-text-color)!important;background:transparent!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected{background:var(--scheduler-accent-color)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected){background:var(--scheduler-hover-color)!important;background-color:var(--scheduler-hover-color)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected){background:var(--scheduler-hover-color)!important;background-color:var(--scheduler-hover-color)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-select-panel-wrap,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-select-panel-wrap{background:var(--scheduler-bg-color)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .cdk-overlay-pane,.scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .cdk-overlay-pane{background:var(--scheduler-bg-color)!important}.scheduler-header .device-selector .device-select ::ng-deep .mat-primary .mat-mdc-option.mdc-list-item--selected,.scheduler-header .device-name .device-select ::ng-deep .mat-primary .mat-mdc-option.mdc-list-item--selected{background:var(--scheduler-accent-color)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}::ng-deep .custom-select-panel{background:var(--scheduler-bg-color)!important;border:1px solid var(--scheduler-border-color)!important;border-radius:4px!important;box-shadow:0 2px 8px #00000026!important}::ng-deep .custom-select-panel .mat-mdc-option{color:var(--scheduler-text-color)!important;transition:background-color .2s ease!important}::ng-deep .custom-select-panel .mat-mdc-option.mdc-list-item--selected{background:var(--scheduler-accent-color)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}::ng-deep ::ng-deep .custom-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected){background:var(--scheduler-hover-color, rgba(173, 216, 230, .3))!important}::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected),::ng-deep .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),::ng-deep .mat-option:hover:not(.mat-selected),::ng-deep .mat-option.mat-option-highlighted:not(.mat-selected){background:var(--scheduler-hover-color)!important;background-color:var(--scheduler-hover-color)!important}::ng-deep .mat-mdc-option .mdc-list-item__ripple:before,::ng-deep .mat-mdc-option .mdc-list-item__ripple:after{background-color:var(--scheduler-hover-color)!important}::ng-deep .mat-mdc-option:hover .mdc-list-item__ripple:before{opacity:.04!important;background-color:var(--scheduler-hover-color)!important}.custom-select{position:relative;min-width:150px}.custom-select .custom-select-trigger{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:var(--scheduler-secondary-text-color, #ffffff);padding:6px 8px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:background-color .2s ease}.custom-select .custom-select-trigger:hover:not(.disabled){background:rgba(255,255,255,.3)}.custom-select .custom-select-trigger .selected-text{flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.custom-select .custom-select-trigger .arrow{margin-left:8px;font-size:18px;transition:transform .2s ease}.custom-select.open .custom-select-trigger .arrow{transform:rotate(180deg)}.custom-select.disabled .custom-select-trigger{opacity:.6;cursor:not-allowed}.custom-select .custom-select-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--scheduler-bg-color, #ffffff);border:1px solid var(--scheduler-border-color, #cccccc);border-radius:4px;box-shadow:0 2px 8px #00000026;z-index:1000;max-height:200px;overflow-y:auto}.custom-select .custom-select-dropdown .custom-option{padding:12px 16px;cursor:pointer;color:var(--scheduler-text-color, #333333);background:transparent;transition:background-color .2s ease}.custom-select .custom-select-dropdown .custom-option:hover{background:var(--scheduler-hover-color)!important;color:var(--scheduler-text-color, #333333)}.custom-select .custom-select-dropdown .custom-option.selected{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff)}.custom-select .custom-select-dropdown .custom-option.selected:hover{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected){background:var(--scheduler-hover-color, rgba(173, 216, 230, .3))!important}::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected){background:var(--scheduler-hover-color, rgba(173, 216, 230, .3))!important}::ng-deep .mat-mdc-option:hover{background:var(--scheduler-hover-color, rgba(173, 216, 230, .3))!important}::ng-deep .mdc-list-item:hover:not(.mdc-list-item--selected){background:var(--scheduler-hover-color, rgba(173, 216, 230, .3))!important}.scheduler-container .header-actions{display:flex;gap:8px;align-items:center}.scheduler-container .header-actions button{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:var(--scheduler-secondary-text-color, #ffffff);padding:6px;border-radius:3px;cursor:pointer;height:32px;display:flex;align-items:center;justify-content:center}.scheduler-container .header-actions button:hover{background:rgba(255,255,255,.3)}.scheduler-container .header-actions button.active{background:rgba(76,175,80,.8)}.scheduler-container .header-actions button.status-btn,.scheduler-container .header-actions button.action-btn{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3)}.scheduler-container .header-actions button.status-btn .material-icons,.scheduler-container .header-actions button.action-btn .material-icons{color:var(--scheduler-secondary-text-color, #ffffff)}.scheduler-container .header-actions button.status-btn:hover,.scheduler-container .header-actions button.action-btn:hover{background:rgba(255,255,255,.3)}.scheduler-container .header-actions button.status-btn.active,.scheduler-container .header-actions button.action-btn.active{background:var(--scheduler-accent-color, #2196f3);border:1px solid var(--scheduler-accent-color, #2196f3)}.scheduler-container .header-actions button.status-btn.active .material-icons,.scheduler-container .header-actions button.action-btn.active .material-icons{color:var(--scheduler-secondary-text-color, #ffffff)}.scheduler-container .header-actions .filter-menu{position:relative}.scheduler-container .header-actions .filter-menu .filter-dropdown{position:absolute;top:100%;right:0;background:white;border:1px solid #ccc;border-radius:4px;padding:8px;box-shadow:0 2px 8px #00000026;z-index:1000;min-width:120px}.scheduler-container .header-actions .filter-menu .filter-dropdown label{display:block;color:#333;font-size:12px;margin-bottom:4px;cursor:pointer}.scheduler-container .header-actions .filter-menu .filter-dropdown label input[type=checkbox]{margin-right:6px}.scheduler-container .header-actions .filter-section,.scheduler-container .header-actions .settings-section{position:relative;display:flex;align-items:center;gap:8px}.scheduler-container .header-actions .filter-section .filter-btn,.scheduler-container .header-actions .filter-section .settings-btn,.scheduler-container .header-actions .settings-section .filter-btn,.scheduler-container .header-actions .settings-section .settings-btn{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:var(--scheduler-secondary-text-color, #ffffff);padding:6px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;height:32px}.scheduler-container .header-actions .filter-section .filter-btn:hover,.scheduler-container .header-actions .filter-section .settings-btn:hover,.scheduler-container .header-actions .settings-section .filter-btn:hover,.scheduler-container .header-actions .settings-section .settings-btn:hover{background:rgba(255,255,255,.3)}.scheduler-container .header-actions .filter-section .filter-btn.active,.scheduler-container .header-actions .filter-section .settings-btn.active,.scheduler-container .header-actions .settings-section .filter-btn.active,.scheduler-container .header-actions .settings-section .settings-btn.active{background:rgba(76,175,80,.8)}.scheduler-container .header-actions .filter-section .settings-dropdown,.scheduler-container .header-actions .settings-section .settings-dropdown{position:absolute;top:100%;right:0;z-index:1000;margin-top:4px;box-shadow:0 2px 8px #0003}.scheduler-container .header-actions .filter-section .settings-option,.scheduler-container .header-actions .settings-section .settings-option{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border:1px solid rgba(255,255,255,.3);padding:6px 12px;border-radius:3px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:4px;white-space:nowrap}.scheduler-container .header-actions .filter-section .settings-option:hover,.scheduler-container .header-actions .settings-section .settings-option:hover{background:var(--scheduler-accent-color, #1976d2)}.scheduler-container .header-actions .filter-section .settings-option .material-icons,.scheduler-container .header-actions .settings-section .settings-option .material-icons{font-size:14px}.scheduler-container .header-actions .filter-section .edit-mode-actions,.scheduler-container .header-actions .settings-section .edit-mode-actions{display:flex;flex-direction:row;align-items:center;gap:12px}.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn,.scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);width:32px;height:32px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center}.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn .material-icons,.scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn .material-icons{color:var(--scheduler-secondary-text-color, #ffffff);font-size:18px}.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn:hover,.scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn:hover{background:rgba(255,255,255,.3)}.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn:disabled,.scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn:disabled{opacity:.5;cursor:not-allowed}.scheduler-container .header-actions .filter-section .edit-mode-actions .save-btn,.scheduler-container .header-actions .settings-section .edit-mode-actions .save-btn{background:var(--scheduler-accent-color, #2196f3);border:1px solid var(--scheduler-accent-color, #2196f3)}.scheduler-container .header-actions .filter-section .edit-mode-actions .save-btn:hover,.scheduler-container .header-actions .settings-section .edit-mode-actions .save-btn:hover{background:var(--scheduler-accent-color, #1976d2);border-color:var(--scheduler-accent-color, #1976d2)}.schedule-display{flex:1;display:flex;flex-direction:column;min-height:0;margin-top:2px}.device-mode,.overview-mode{flex:1;display:flex;flex-direction:column;min-height:0}.device-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden}.device-scroll-container::-webkit-scrollbar{width:6px}.device-scroll-container::-webkit-scrollbar-track{background:transparent}.device-scroll-container::-webkit-scrollbar-thumb{background:var(--scheduler-accent-color, #2196f3);border-radius:3px}.device-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--scheduler-accent-hover, #1976d2)}.device-scroll-container.has-scrollbar .header-row,.device-scroll-container.has-scrollbar .schedule-item{margin-right:6px}.overview-message{text-align:center;padding:40px 20px;color:#666;font-style:italic}.overview-message p{margin:0;font-size:14px}.schedule-headers .header-row{display:grid;grid-template-columns:30px 1fr 1fr 1fr 40px 40px;gap:4px;padding:6px 8px;background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);font-weight:500;font-size:12px;border-radius:4px 4px 0 0}.schedule-headers .header-row .header-cell{display:flex;align-items:center;justify-content:center}.schedule-headers .header-row .header-cell.schedule-num{justify-content:center}.schedule-headers .header-row .header-cell.device-name{justify-content:flex-start}.schedule-headers .header-row .header-cell.actions{justify-content:flex-end}.schedule-list .schedule-item{border:1px solid var(--scheduler-border-color, #e0e0e0);border-radius:0;margin-bottom:0;border-bottom:none;background:var(--scheduler-bg-color, #ffffff);color:var(--scheduler-text-color, #333333)}.schedule-list .schedule-item:first-child{border-radius:0}.schedule-list .schedule-item:last-child{border-radius:0 0 4px 4px;border-bottom:1px solid var(--scheduler-border-color, #e0e0e0)}.schedule-list .schedule-item:hover,.schedule-list .schedule-item:hover .schedule-main-row{background:var(--scheduler-hover-color, #f5f5f5)}.schedule-list .schedule-item.disabled{opacity:.6;background:#f9f9f9}.schedule-list .schedule-item.read-only{cursor:default!important;pointer-events:none!important;opacity:.7;position:relative}.schedule-list .schedule-item.read-only:after{content:"";position:absolute;inset:0;background:rgba(128,128,128,.05);pointer-events:none}.schedule-list .schedule-item.read-only .schedule-main-row{cursor:default!important;pointer-events:none!important}.schedule-list .schedule-item.read-only:hover,.schedule-list .schedule-item.read-only:hover .schedule-main-row{background:var(--scheduler-bg-color, #ffffff)}.schedule-list .schedule-item .schedule-main-row{display:grid;grid-template-columns:30px 1fr 1fr 1fr 40px 40px;gap:4px;padding:6px 8px;align-items:center;font-size:14px;cursor:pointer;transition:background-color .2s ease}.schedule-list .schedule-item .schedule-main-row>*{display:flex;align-items:center;justify-content:center}.schedule-list .schedule-item .schedule-main-row .schedule-number,.schedule-list .schedule-item .schedule-main-row .start-time,.schedule-list .schedule-item .schedule-main-row .end-time,.schedule-list .schedule-item .schedule-main-row .duration{justify-content:center}.schedule-list .schedule-item .schedule-main-row .start-time ::ng-deep .time-period,.schedule-list .schedule-item .schedule-main-row .end-time ::ng-deep .time-period{font-size:.7em;opacity:.7;margin-left:1px;font-weight:400}.schedule-list .schedule-item .schedule-main-row .status-switch{justify-content:center}.schedule-list .schedule-item .schedule-main-row .actions{justify-content:flex-end}.schedule-list .schedule-item .schedule-main-row .actions .delete-btn{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border:none;border-radius:3px;padding:3px 4px;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;min-width:0}.schedule-list .schedule-item .schedule-main-row .actions .delete-btn:hover{background:var(--scheduler-accent-color, #1976d2)}.schedule-list .schedule-item .schedule-main-row .actions .delete-btn .material-icons,.schedule-list .schedule-item .schedule-main-row .actions .delete-btn .material-icons-outlined{font-size:14px}.schedule-list .schedule-item .calendar-view-btn{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border:none;border-radius:3px;padding:6px 48px;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;min-width:0}.schedule-list .schedule-item .calendar-view-btn:hover{background:var(--scheduler-accent-color, #1976d2)}.schedule-list .schedule-item .calendar-view-btn .material-icons{font-size:14px;margin-right:4px}.schedule-list .schedule-item .calendar-view-btn .calendar-btn-text{font-size:11px;font-weight:500;white-space:nowrap}.schedule-list .schedule-item .schedule-number{font-weight:700;color:var(--scheduler-accent-color, #2196f3)}.schedule-list .schedule-item .device-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--scheduler-text-color, #333333)}.schedule-list .schedule-item .start-time,.schedule-list .schedule-item .end-time{font-family:Courier New,monospace;font-size:13px;color:var(--scheduler-text-color, #333333)}.schedule-list .schedule-item .duration{font-size:12px;color:var(--scheduler-text-color, #333333)}.schedule-list .schedule-item .status-switch{display:flex;justify-content:center}.schedule-list .schedule-item .actions{display:flex;gap:4px;justify-content:flex-end}.schedule-list .schedule-item .actions button{padding:4px 8px;border:1px solid #ccc;border-radius:3px;cursor:pointer;font-size:11px}.schedule-list .schedule-item .actions button.edit-btn{background:#e3f2fd;border-color:#2196f3;color:#1976d2}.schedule-list .schedule-item .actions button.edit-btn:hover{background:#bbdefb}.schedule-list .schedule-item .actions button.delete-btn{background:#ffebee;border-color:#f44336;color:#d32f2f}.schedule-list .schedule-item .actions button.delete-btn:hover{background:#ffcdd2}.schedule-list .days-display{display:flex;gap:3px;justify-content:center;padding:6px 8px 8px}.schedule-list .days-display .day-circle{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:500;background:var(--scheduler-border-color, #cccccc);border:1px solid var(--scheduler-border-color, #cccccc);color:var(--scheduler-text-color, #333333)}.schedule-list .days-display .day-circle.active{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3)}.schedule-list .calendar-display{display:flex;justify-content:center;padding:6px 8px 8px}.schedule-list .schedule-days-row{padding:8px 12px 12px}.schedule-list .schedule-days-row .days-display{display:flex;gap:4px;justify-content:center}.schedule-list .schedule-days-row .days-display .day-circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--scheduler-border-color, #cccccc);border:1px solid var(--scheduler-border-color, #cccccc);color:var(--scheduler-text-color, #333333)}.schedule-list .schedule-days-row .days-display .day-circle.active{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3)}.overview-scroll-container{flex:1;overflow-y:auto}.overview-scroll-container::-webkit-scrollbar{width:6px}.overview-scroll-container::-webkit-scrollbar-track{background:transparent}.overview-scroll-container::-webkit-scrollbar-thumb{background:var(--scheduler-accent-color, #2196f3);border-radius:3px}.overview-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--scheduler-accent-color, #1976d2)}.overview-scroll-container::-webkit-scrollbar-corner{background:transparent}.overview-scroll-container.has-scrollbar .header-row,.overview-scroll-container.has-scrollbar .schedule-item,.overview-scroll-container.has-scrollbar .device-header{margin-right:6px}.switch{position:relative;display:inline-block;width:40px;height:20px}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;cursor:pointer;inset:0;background-color:var(--scheduler-border-color, #cccccc);transition:.4s;border-radius:20px}.switch .slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:var(--scheduler-secondary-text-color, #ffffff);transition:.4s;border-radius:50%}.switch input:checked+.slider{background-color:var(--scheduler-accent-color, #2196f3)}.switch input:checked+.slider:before{transform:translate(20px)}.device-assignment{margin-bottom:16px}.device-assignment label{display:block;font-size:12px;font-weight:500;color:var(--scheduler-text-color);margin-bottom:4px}.device-assignment select{width:100%;padding:8px 12px;border:1px solid var(--scheduler-border-color);border-radius:4px;background:var(--scheduler-bg-color);color:var(--scheduler-text-color);font-size:14px}.device-assignment select:focus{outline:none;border-color:var(--scheduler-accent-color)}.schedule-form{max-height:calc(100vh - 600px);overflow-y:auto;overflow-x:visible;padding:16px 16px 200px;background:var(--scheduler-bg-color, #ffffff);border:1px solid var(--scheduler-border-color, #cccccc);border-radius:4px;color:var(--scheduler-text-color, #333333)}.schedule-form::-webkit-scrollbar{width:6px}.schedule-form::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.schedule-form::-webkit-scrollbar-thumb{background:var(--scheduler-accent-color, #2196f3);border-radius:3px}.schedule-form::-webkit-scrollbar-thumb:hover{background:var(--scheduler-accent-hover, #1976d2)}.schedule-form h3{margin:0 0 16px;color:var(--scheduler-accent-color, #2196f3)}.schedule-form .form-row{margin-bottom:12px}.schedule-form .form-row label{display:block;font-size:12px;font-weight:500;margin-bottom:4px;color:var(--scheduler-text-color, #333333)}.schedule-form .form-row input,.schedule-form .form-row select{width:100%;padding:8px;border:1px solid #ccc;border-radius:3px;background:var(--scheduler-bg-color, #ffffff);color:var(--scheduler-text-color, #333333)}.schedule-form .form-row input:focus,.schedule-form .form-row select:focus{outline:none;border-color:var(--scheduler-accent-color, #2196f3)}.schedule-form .recurring-toggle{margin-bottom:16px;padding:12px;background:rgba(var(--scheduler-accent-color-rgb, 33, 150, 243),.05);border:1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243),.2);border-radius:4px}.schedule-form .recurring-toggle .toggle-label{display:flex;flex-direction:row;gap:8px;margin:0;pointer-events:none;align-items:center;justify-content:center}.schedule-form .recurring-toggle .toggle-label .toggle-text{font-size:12px;font-weight:500;color:var(--scheduler-text-color, #333333);cursor:default}.schedule-form .recurring-toggle .toggle-label .toggle-switch-container{display:flex;align-items:center;gap:12px}.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .switch{flex-shrink:0;cursor:pointer;pointer-events:auto}.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .switch .slider{cursor:pointer}.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .toggle-description{font-size:11px;color:var(--scheduler-text-color, #666666);font-style:italic;cursor:default}.schedule-form .toggle-row-horizontal{display:flex;gap:16px;margin-bottom:16px;padding:12px;background:rgba(var(--scheduler-accent-color-rgb, 33, 150, 243),.05);border:1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243),.2);border-radius:4px}.schedule-form .toggle-row-horizontal .toggle-item{flex:1}.schedule-form .toggle-row-horizontal .toggle-item .toggle-label{display:flex;align-items:center;gap:8px;margin:0}.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-text{font-size:12px;font-weight:500;color:var(--scheduler-text-color, #333333);white-space:nowrap}.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-switch-container{display:flex;align-items:center}.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-switch-container .switch{cursor:pointer}.schedule-form .days-selection{margin-bottom:16px}.schedule-form .days-selection label{display:block;font-size:12px;font-weight:500;margin-bottom:8px}.schedule-form .days-selection .days-grid{display:flex;gap:4px;margin-bottom:8px}.schedule-form .days-selection .days-grid .day-btn{flex:1;padding:8px 4px;border:1px solid #ccc;background:#f9f9f9;color:var(--scheduler-text-color, #333333);cursor:pointer;border-radius:3px;font-size:11px}.schedule-form .days-selection .days-grid .day-btn.active{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3)}.schedule-form .days-selection .days-grid .day-btn:hover{background:#e0e0e0;color:var(--scheduler-text-color, #333333)}.schedule-form .days-selection .days-grid .day-btn:hover.active{background:var(--scheduler-accent-color, #1976d2);color:var(--scheduler-secondary-text-color, #ffffff)}.schedule-form .days-selection .select-all-btn{width:100%;padding:6px;border:1px solid var(--scheduler-border-color, #cccccc);background:var(--scheduler-bg-color, #ffffff);color:var(--scheduler-text-color, #333333);cursor:pointer;border-radius:3px;font-size:11px}.schedule-form .days-selection .select-all-btn:hover{background:var(--scheduler-hover-bg, #f5f5f5)}.schedule-form .form-actions{display:flex;gap:8px;justify-content:flex-end}.schedule-form .form-actions button{padding:8px 16px;border:1px solid #ccc;border-radius:3px;cursor:pointer}.schedule-form .form-actions button.cancel-btn{background:#f5f5f5;color:var(--scheduler-text-color, #333333)}.schedule-form .form-actions button.cancel-btn:hover{background:#e0e0e0}.schedule-form .form-actions button.save-btn{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3)}.schedule-form .form-actions button.save-btn:hover{background:var(--scheduler-accent-color, #1976d2)}.empty-schedule{text-align:center;padding:32px;color:#666;font-style:italic}.device-group .device-header{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);padding:8px 12px;margin:0;border-radius:4px 4px 0 0;font-size:14px;font-weight:500}.device-group .mode-section{margin-bottom:1px}.device-group .mode-section .schedule-headers .header-row{background:color-mix(in srgb,var(--scheduler-accent-color, #2196f3) 70%,white 30%)}.editor-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666}.editor-placeholder .material-icons{font-size:48px;margin-bottom:8px}.editor-placeholder p{margin:0 0 4px;font-size:16px;font-weight:500}.editor-placeholder small{font-size:12px;opacity:.7}::ng-deep .cdk-overlay-pane .mat-mdc-select-panel{background:var(--scheduler-bg-color, #ffffff)!important}::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option{background:transparent!important;color:var(--scheduler-text-color, #333333)!important}::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected){background:var(--scheduler-hover-color, rgba(0, 0, 0, .1))!important}::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}.form-custom-select{position:relative;width:100%}.form-custom-select.error .form-custom-select-trigger{border-color:#f44336;background-color:#f443361a}.form-custom-select .form-custom-select-trigger{background:var(--scheduler-bg-color, #ffffff);border:1px solid var(--scheduler-border-color, #cccccc);color:var(--scheduler-text-color, #333333);padding:4px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease;min-height:28px;max-height:28px;height:28px}.form-custom-select .form-custom-select-trigger:hover{border-color:var(--scheduler-accent-color, #2196f3);background-color:#2196f30d}.form-custom-select .form-custom-select-trigger:focus-within{border-color:var(--scheduler-accent-color, #2196f3);box-shadow:0 0 0 2px #2196f333;outline:none}.form-custom-select .form-custom-select-trigger .selected-text{flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left}.form-custom-select .form-custom-select-trigger .arrow{margin-left:8px;font-size:20px;transition:transform .2s ease;color:var(--scheduler-accent-color, #2196f3)}.form-custom-select.open .form-custom-select-trigger .arrow{transform:rotate(180deg)}.form-custom-select .form-custom-select-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--scheduler-bg-color, #ffffff);border:1px solid var(--scheduler-border-color, #cccccc);border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:1001;max-height:120px!important;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--scheduler-accent-color, #2196f3) rgba(0,0,0,.05)}.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar{width:8px}.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:4px}.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-thumb{background:var(--scheduler-accent-color, #2196f3);border-radius:4px;opacity:.6}.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-thumb:hover{opacity:.8}.form-custom-select .form-custom-select-dropdown .form-custom-option{padding:6px 10px;cursor:pointer;color:var(--scheduler-text-color, #333333);background:transparent;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05);display:flex;align-items:center;min-height:28px;max-height:28px;height:28px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-custom-select .form-custom-select-dropdown .form-custom-option:last-child{border-bottom:none}.form-custom-select .form-custom-select-dropdown .form-custom-option:hover{background:var(--scheduler-hover-color)!important;color:var(--scheduler-text-color, #333333);transform:translate(2px)}.form-custom-select .form-custom-select-dropdown .form-custom-option.selected{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);font-weight:500}.form-custom-select .form-custom-select-dropdown .form-custom-option.selected:after{content:"\\2713";margin-left:auto;font-size:16px}.form-custom-select .form-custom-select-dropdown .form-custom-option.selected:hover{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important;transform:none}.form-custom-select .form-custom-select-dropdown .loading-more{padding:8px 16px;text-align:center;color:var(--scheduler-accent-color, #2196f3);font-size:12px;font-style:italic}.form-custom-select .form-custom-select-dropdown .no-devices{padding:16px;text-align:center;color:#00000080;font-style:italic}.custom-time-picker{position:relative}.custom-time-picker .time-input-wrapper{position:relative;display:flex;align-items:center}.custom-time-picker .time-input-wrapper .time-input{width:100%;padding:8px 35px 8px 12px;border:1px solid var(--scheduler-border-color, #cccccc);border-radius:4px;background:var(--scheduler-bg-color, #ffffff);color:var(--scheduler-text-color, #333333);font-family:Courier New,monospace;font-size:14px;cursor:pointer;transition:all .2s ease}.custom-time-picker .time-input-wrapper .time-input:hover{border-color:var(--scheduler-accent-color, #2196f3);background-color:#2196f30d}.custom-time-picker .time-input-wrapper .time-input:focus,.custom-time-picker .time-input-wrapper .time-input.active{outline:none;border-color:var(--scheduler-accent-color, #2196f3);box-shadow:0 0 0 2px #2196f333;background-color:#2196f30d}.custom-time-picker .time-input-wrapper .time-input::placeholder{color:#0006}.custom-time-picker .time-input-wrapper .time-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--scheduler-accent-color, #2196f3);font-size:18px;pointer-events:none;transition:color .2s ease}.custom-time-picker .time-picker-dropdown{position:absolute;top:100%;left:0;width:280px;background:var(--scheduler-bg-color, #ffffff);border:1px solid var(--scheduler-border-color, #cccccc);border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:2000;padding:12px}.custom-time-picker .time-picker-dropdown.align-right{left:auto;right:0}.custom-time-picker .time-picker-dropdown .time-controls{display:flex;gap:8px}.custom-time-picker .time-picker-dropdown .time-controls .time-part{flex:1}.custom-time-picker .time-picker-dropdown .time-controls .time-part label{font-size:11px;font-weight:500;color:var(--scheduler-text-color, #333333);margin-bottom:4px;display:block;text-align:center}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options{background:var(--scheduler-bg-color, #ffffff);border:1px solid var(--scheduler-border-color, #cccccc);border-radius:3px;max-height:140px;overflow-y:auto;padding-right:2px}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar{width:6px}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:3px}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar-thumb{background:var(--scheduler-accent-color, #2196f3);border-radius:3px;opacity:.6}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option{padding:6px 8px;cursor:pointer;font-size:13px;color:var(--scheduler-text-color, #333333);transition:background-color .2s ease;text-align:center;border-bottom:1px solid rgba(0,0,0,.05)}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option:last-child{border-bottom:none}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option:hover{background:var(--scheduler-hover-color)!important}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option.selected{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);font-weight:500}.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option.selected:hover{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important}.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector{margin-top:8px;padding-top:8px;border-top:1px solid var(--scheduler-border-color, #cccccc)}.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector label{font-size:10px;font-weight:500;color:var(--scheduler-text-color, #666666);margin-bottom:4px;display:block;text-align:center}.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn{padding:4px 6px;font-size:11px;border:1px solid var(--scheduler-border-color, #cccccc);background:var(--scheduler-bg-color, #ffffff);color:var(--scheduler-text-color, #333333);border-radius:3px;cursor:pointer;transition:all .2s ease;font-weight:500}.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn:hover{background:var(--scheduler-hover-color);border-color:var(--scheduler-accent-color, #2196f3)}.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn.active{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff);border-color:var(--scheduler-accent-color, #2196f3);font-weight:600}.confirmation-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:1000}.confirmation-dialog{background:white;border-radius:8px;box-shadow:0 4px 12px #0003;padding:0;min-width:300px;max-width:400px;animation:scaleIn .2s ease-out}.dialog-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid #e0e0e0}.dialog-header .material-icons{color:var(--scheduler-accent-color, #2196f3);font-size:24px}.dialog-header h3{margin:0;font-size:18px;font-weight:500;color:var(--scheduler-text-color, #333333)}.dialog-content{padding:16px 20px;color:#666;line-height:1.4}.dialog-content .schedule-label{font-weight:700}.dialog-content .calendar-popup-content label{display:block;font-weight:600;color:var(--scheduler-text-color, #333333);margin-bottom:8px;font-size:14px}.dialog-content .calendar-popup-content .day-btn,.dialog-content .calendar-popup-content .month-btn,.dialog-content .calendar-popup-content .day-of-month-btn{cursor:default!important;pointer-events:none!important}.dialog-content .calendar-popup-content .day-btn:hover,.dialog-content .calendar-popup-content .month-btn:hover,.dialog-content .calendar-popup-content .day-of-month-btn:hover{background:#f9f9f9!important;color:var(--scheduler-text-color, #333333)!important;border-color:#ccc!important}.dialog-content .calendar-popup-content .day-btn.active:hover,.dialog-content .calendar-popup-content .month-btn.active:hover,.dialog-content .calendar-popup-content .day-of-month-btn.active:hover{background:var(--scheduler-accent-color, #2196f3)!important;color:var(--scheduler-secondary-text-color, #ffffff)!important;border-color:var(--scheduler-accent-color, #2196f3)!important}.dialog-actions{display:flex;gap:8px;padding:16px 20px;border-top:1px solid #e0e0e0;justify-content:flex-end}.dialog-actions button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s ease}.dialog-actions button.cancel-btn{background:#f5f5f5;color:var(--scheduler-text-color, #666666)}.dialog-actions button.cancel-btn:hover{background:#e0e0e0}.dialog-actions button.confirm-btn{background:var(--scheduler-accent-color, #2196f3);color:var(--scheduler-secondary-text-color, #ffffff)}.dialog-actions button.confirm-btn:hover{background:var(--scheduler-accent-color, #1976d2)}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.filter-options{position:absolute;top:100%;right:0;z-index:1000;background:var(--scheduler-accent-color, #2196f3);border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:8px 12px;margin-top:4px;display:flex;align-items:center;gap:12px;white-space:nowrap;box-shadow:0 2px 8px #0003}.custom-checkbox{display:flex;align-items:center;cursor:pointer;color:var(--scheduler-secondary-text-color, #ffffff);font-size:12px}.custom-checkbox input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.custom-checkbox .checkmark{height:16px;width:16px;background-color:#ffffffe6;border:1px solid rgba(255,255,255,.5);border-radius:3px;margin-right:6px;position:relative;transition:all .2s ease}.custom-checkbox .checkmark:after{content:"";position:absolute;display:none;left:4px;top:1px;width:4px;height:8px;border:solid var(--scheduler-secondary-text-color, #ffffff);border-width:0 2px 2px 0;transform:rotate(45deg)}.custom-checkbox:hover .checkmark{background-color:var(--scheduler-hover-color, rgba(173, 216, 230, .6));border-color:var(--scheduler-hover-color, rgba(173, 216, 230, .8))}.custom-checkbox input:checked~.checkmark{background-color:var(--scheduler-hover-color, rgba(173, 216, 230, .9));border-color:var(--scheduler-hover-color, rgb(173, 216, 230))}.custom-checkbox input:checked~.checkmark:after{display:block}.custom-checkbox .checkbox-label{-webkit-user-select:none;user-select:none}\n'],encapsulation:2})}return r})(),Yg=(()=>{class r extends uo{static TypeTag="svg-ext-own_ctrl-scheduler";static LabelTag="HtmlScheduler";static prefixD="D-OXC_";constructor(){super()}static getSignals(t){return AN.getSignals(t)}static getDialogType(){return Do.Scheduler}static processValue(t,i,n,o,s){}static initElement(t,i,n,o){let s=document.getElementById(t.id);if(s){s?.setAttribute("data-name",t.name);const c=s.querySelector("rect");c&&!c.hasAttribute("data-initialized")&&((!c.getAttribute("fill")||"#FFFFFF"===c.getAttribute("fill")||"rgb(255, 255, 255)"===c.getAttribute("fill"))&&c.setAttribute("fill","#f9f9f9ff"),c.setAttribute("data-initialized","true"));let g=ii.cQ.searchTreeStartWith(s,this.prefixD);if(g){const B=i.resolveComponentFactory(AN),O=n.createComponent(B);return t.property||(t.property={id:null,devices:[],colors:{background:"#ffffff",text:"#000000",accent:"#2196f3",border:"#cccccc"}}),t.property.accentColor||(t.property.accentColor="#556e82"),t.property.backgroundColor||(t.property.backgroundColor="#f0f0f0"),t.property.borderColor||(t.property.borderColor="#cccccc"),t.property.textColor||(t.property.textColor="#505050"),t.property.secondaryTextColor||(t.property.secondaryTextColor="#ffffff"),g.innerHTML="",O.instance.isEditor=!o,O.instance.property=t.property,O.instance.id=t.id,O.changeDetectorRef.detectChanges(),g.appendChild(O.location.nativeElement),O.instance.myComRef=O,O.instance.name=t.name,O.instance}}return null}static detectChange(t,i,n){return r.initElement(t,i,n,!1)}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["html-scheduler"]],features:[e.qOj],decls:3,vars:0,consts:[[2,"width","100%","height","100%","display","flex","align-items","center","justify-content","center","background","#f5f5f5","border","1px solid #ddd"],[2,"color","#666"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"span",1),e._uU(2,"Time Scheduler"),e.qZA()())}})}return r})(),fm=(()=>{class r{static exportStart="//!export-start";static exportEnd="//!export-end";static isSVG(t){return"svg"===t.split(".").pop()?.toLowerCase()}static getSvgSize(t){const i=t.getAttribute("width"),n=t.getAttribute("height");if(i&&n)return{width:parseInt(i),height:parseInt(n)};{const o=t.getAttribute("viewBox");if(o){const s=o.split(" ").map(Number);return{width:s[2],height:s[3]}}}}static processWidget(t,i,n,o){let s=r.removeComments(t),c=r.exportGlobalVariables(s,i,o),g=r.exportFunctionNames(c.content,i);return g=r.replaceIdsInScript(g,n),g=r.addModuleDeclaration(g,i),{content:g,vars:c.vars}}static removeComments(t){return t.replace(/\/\*[\s\S]*?\*\//g,"")}static exportGlobalVariables(t,i,n){const s=new RegExp(`${r.exportStart}([\\s\\S]*?)${r.exportEnd}`,"g").exec(t),c={};if(s){let B=s[1];const O=/(?:var|let|const)\s+(\w+)/g;let ne;for(;null!==(ne=O.exec(B));){const we=ne[1],$e=n?.find(ei=>ei.originalName===we),nt=$e?$e.name:we;c[we]=nt;const Ft=new RegExp(`\\b${we}\\b`,"g");B=B.replace(Ft,nt),B+=`\n${i}.${nt} = ${nt};`}t=t.replace(s[0],`${r.exportStart}${B}${r.exportEnd}`)}let g=[];return Object.entries(c).forEach(([B,O])=>{const ne=new RegExp(`\\b${B}\\b`,"g");t=t.replace(ne,O);const we=r.toWidgetPropertyVariable(B,O);we&&g.push(we)}),{content:t,vars:g}}static exportFunctionNames(t,i){const n=/function\s+(\w+)\s*\(/g,o=/(\w+)\s*=\s*(?:function|=>)\s*\(/g;let s;for(;null!==(s=n.exec(t));)t+=`\n${i}.${s[1]} = ${s[1]};`;for(;null!==(s=o.exec(t));)t+=`\n${i}.${s[1]} = ${s[1]};`;const c="postValue",g=`${i}.${c}`,B=new RegExp(`(?o(c))}(t),n}static replaceIdsInScript(t,i){let n=t;return Object.entries(i).forEach(([o,s])=>{const c=new RegExp(`(['""])${o}\\1`,"g");n=n.replace(c,`$1${s}$1`)}),n}static addModuleDeclaration(t,i){return`var ${i} = window.${i} || {};\n(function() {${t}\n})();\nwindow.${i}=${i}`}static toWidgetPropertyVariable(t,i){const n=Object.entries(dN).find(([o,s])=>i.startsWith(s));return n?{originalName:t,name:i,type:n[0]}:null}static initWidget(t,i){if(!i)return t;const o=new RegExp(`${r.exportStart}([\\s\\S]*?)${r.exportEnd}`,"g").exec(t);if(!o)return t;let s=o[1];return i.forEach(c=>{if(!ii.cQ.isNullOrUndefined(c.variableValue)&&r.validateVariable(c)){const g=new RegExp(`(let|var|const)\\s+${c.name}\\s*=\\s*[^;]+;`);s=s.replace(g,"string"===c.type||"color"===c.type?`$1 ${c.name} = \`${c.variableValue}\`;`:"boolean"===c.type?`$1 ${c.name} = ${!!c.variableValue};`:`$1 ${c.name} = ${c.variableValue};`)}}),t.replace(o[1],s)}static resizeSvgNodes(t,i){if(i&&t)for(let n=0;n{nt=fm.processWidget(Ft.textContent,$e,we,a.property?.varsToBind),Ft.parentNode.removeChild(Ft)}),i.appendChild(g),a.property={...a.property,type:hc.propertyWidgetType,svgGuid:ne,svgContent:i.innerHTML,scriptContent:{moduleId:$e,content:nt?.content},varsToBind:ii.cQ.mergeArray([nt?.vars,a.property.varsToBind],"originalName")}}if(a.property.scriptContent){const O=document.createElement("script");O.textContent=fm.initWidget(a.property.scriptContent.content,a.property.varsToBind),document.body.appendChild(O)}}else{i.innerHTML="";let s=document.createElement("img");s.style.width="100%",s.style.height="100%",s.style.border="none",a.property&&a.property.address&&s.setAttribute("src",a.property.address),i.appendChild(s)}}return i}static resize(a){const t=document.getElementById(a.id);if(t){const i=ii.cQ.searchTreeStartWith(t,this.prefixD),n=i.querySelector("svg");if(n&&i.getAttribute("type")===hc.propertyWidgetType){const o=fm.getSvgSize(i.parentElement);n.setAttribute("width",o.width.toString()),n.setAttribute("height",o.height.toString()),a.property.svgContent=i.innerHTML}}}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.alarmId&&t.push(a.alarmId),a.actions&&a.actions.length&&a.actions.forEach(i=>{t.push(i.variableId)}),a.varsToBind?.forEach(i=>{i.variableId&&t.push(i.variableId)}),t}static getActions(a){return this.actionsType}static isBitmaskSupported(){return!0}static processWebcamValue(a,t,i,n){i.value&&a.property.actions&&a.property.actions.forEach(o=>{o.variableId!==i.id||this.actionsType[o.type]!==Tt.KG.refreshImage||this.actionRefreshImage(o,t,i,n)})}static processValue(a,t,i,n){try{if(t.node){if(i.device?.type===Yi.Yi.WebCam)return void hc.processWebcamValue(a,t,i,n);let o=parseFloat(i.value);if(o=Number.isNaN(o)?Number(i.value):parseFloat(o.toFixed(5)),a.property){let s=uo.checkBitmask(a.property.bitmask,o),c=new Tt.I9;if(a.property.variableId===i.id&&a.property.ranges){for(let g=0;g=s&&(c.fill=a.property.ranges[g].color,c.stroke=a.property.ranges[g].stroke);c.fill&&t.node.setAttribute("fill",c.fill),c.stroke&&t.node.setAttribute("stroke",c.stroke)}if(a.property.actions&&a.property.actions.forEach(g=>{g.variableId===i.id&&La.processAction(g,t,o,n,c)}),a.property.type===hc.propertyWidgetType&&a.property.scriptContent&&a.property.varsToBind?.length){const g=a.property.scriptContent;if(window[g.moduleId].putValue){const B=a.property.varsToBind?.find(O=>O.variableId===i.id);B&&window[g.moduleId].putValue(B.name,i.value)}}}}}catch(o){console.error(o)}}static bindEvents(a,t){if(a.property.type===hc.propertyWidgetType&&a.property.scriptContent&&a.property.varsToBind?.length){const i=a.property.scriptContent;window[i.moduleId]?.postValue?window[i.moduleId].postValue=(n,o)=>{const s=a.property.varsToBind?.find(c=>c.name===n);if(s){let c=new Tt.ju;c.type=hc.propertyWidgetType,c.ga=a,c.value=o,c.variableId=s.variableId,t(c)}else console.error(`Variable name (${n}) not found!`)}:console.error(`Module (${i.moduleId}) or postValue function not found!`)}return null}static detectChange(a,t){return hc.initElement(a,t)}static actionRefreshImage(a,t,i,n){let o=SVG.adopt(t.node),s=ii.cQ.searchTreeTagName(o.node,"IMG");s&&s.setAttribute("src",`/snapshots${i.value}?${(new Date).getTime()}`)}static \u0275fac=function(t){return new(t||hc)};static \u0275cmp=e.Xpm({type:hc,selectors:[["app-html-image"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}class bu extends uo{projectService;static TypeTag="svg-ext-own_ctrl-panel";static LabelTag="Panel";static prefixD="D-OXC_";static actionsType={hide:Tt.KG.hide,show:Tt.KG.show};static hmi;constructor(a){super(),this.projectService=a}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),t}static getDialogType(){return Do.Panel}static processValue(a,t,i,n,o){try{const s=bu.hmi.views.find(c=>c.name===i.value);s&&(o?.loadHmi(s,!0),a?.property?.scaleMode&&ii.cQ.resizeViewExt(".view-container",a?.id,a?.property?.scaleMode))}catch(s){console.error(s)}}static initElement(a,t,i,n,o,s,c){o&&(bu.hmi=o);let g=document.getElementById(a.id);if(g){g?.setAttribute("data-name",a.name);let B=ii.cQ.searchTreeStartWith(g,this.prefixD);if(B){const O=t.resolveComponentFactory(mm),ne=i.createComponent(O);ne.instance.gaugesManager=n,ne.changeDetectorRef.detectChanges();const we=ne.location.nativeElement;if(B.innerHTML="",B.appendChild(we),ne.instance.myComRef=ne,ne.instance.parent=c,!s){let $e=document.createElement("span");return $e.innerHTML="Panel",B.appendChild($e),null}return bu.processValue(a,null,{value:a.property.viewName},null,ne.instance),ne.instance.name=a.name,ne.instance}}}static \u0275fac=function(t){return new(t||bu)(e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:bu,selectors:[["app-panel"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}class au extends uo{static TypeTag="svg-ext-own_ctrl-video";static LabelTag="HtmlVideo";static prefixD="D-OXC_";static actionsType={stop:Tt.KG.stop,start:Tt.KG.start,pause:Tt.KG.pause,reset:Tt.KG.reset};constructor(){super()}static getSignals(a){let t=[];return a.variableId&&t.push(a.variableId),a.actions&&a.actions.forEach(i=>{t.push(i.variableId)}),t}static getActions(a){return this.actionsType}static getDialogType(){return Do.Video}static processValue(a,t,i){try{if(t?.node?.children?.length>=1){const n=ii.cQ.searchTreeStartWith(t.node,this.prefixD),o=n.querySelector("video");if(!o)return;if(i.id===a.property.variableId){const s=bp.C.resolveUrl(String(i.value??"").trim()),c=s===o.currentSrc||s===o.src||o.querySelector("source")?.src===s;if(o.src=i.value,!c){for(o.pause();o.firstChild;)o.removeChild(o.firstChild);const B=document.createElement("source");B.src=s,B.type=au.getMimeTypeFromUrl(s),o.appendChild(B),o.load()}const g=n.querySelector("img");g&&(g.style.display=i.value?"none":"block")}else{let s=ii.cQ.toFloatOrNumber(i.value);a.property.actions&&a.property.actions.forEach(c=>{c.variableId===i.id&&au.processAction(c,o,s)})}}}catch(n){console.error(n)}}static initElement(a,t=!1){let i=document.getElementById(a.id);if(!i)return null;i?.setAttribute("data-name",a.name);let n=ii.cQ.searchTreeStartWith(i,this.prefixD);if(n){n.innerHTML="";const o=a.property?.options?.address,s=a.property?.options?.initImage,c=bp.C.resolveUrl(o),g=!!o;if(s&&!g){const ne=document.createElement("img");ne.src=s,ne.style.width="100%",ne.style.height="100%",ne.style.objectFit="contain",n.appendChild(ne)}let B=document.createElement("video");B.setAttribute("playsinline","true"),B.style.width="100%",B.style.height="100%",B.style.objectFit="contain",B.style.display="block",a.property?.options?.showControls&&B.setAttribute("controls","");const O=document.createElement("source");O.src=c,g&&(O.type=au.getMimeTypeFromUrl(c)),B.appendChild(O),n.appendChild(B)}return n}static processAction(a,t,i){let n=uo.checkBitmask(a.bitmask,i);this.actionsType[a.type]===this.actionsType.start?a.range.min<=n&&a.range.max>=n&&t.play().catch(o=>console.error("Video play failed:",o)):this.actionsType[a.type]===this.actionsType.pause||this.actionsType[a.type]===this.actionsType.stop?a.range.min<=n&&a.range.max>=n&&t.pause():this.actionsType[a.type]===this.actionsType.reset&&a.range.min<=n&&a.range.max>=n&&(t.pause(),t.currentTime=0)}static detectChange(a,t,i){return au.initElement(a,!1)}static getMimeTypeFromUrl(a){switch(a.split(".").pop()?.toLowerCase()){case"mp4":default:return"video/mp4";case"webm":return"video/webm";case"ogg":case"ogv":return"video/ogg"}}static \u0275fac=function(t){return new(t||au)};static \u0275cmp=e.Xpm({type:au,selectors:[["app-html-video"]],features:[e.qOj],decls:0,vars:0,template:function(t,i){}})}let YP=(()=>{class r{get nativeWindow(){return function Yde(){return window}()}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();class so{hmiService;authService;winRef;onchange=new e.vpe;onevent=new e.vpe;eventGauge={};mapGaugeView={};memorySigGauges={};mapChart={};mapGauges={};mapTable={};static gaugesTags=[];static GaugeWithProperty=[ss.prefix,zl.prefix,tu.prefix];static GaugeWithEvents=[dc.TypeTag,rh.TypeTag,La.TypeTag,nu.TypeTag,Ec.TypeTag,hc.TypeTag,ss.TypeTag,bu.TypeTag,zl.TypeTag,tu.TypeTag];static GaugeWithActions=[Ec,Ka,nu,La,dc,zl,nm,ss,rh,hc,bu,au];static Gauges=[nm,ss,dc,hm,zl,Bp,iu,rh,La,nu,Ec,Ka,oh,tu,kp,Wv,Fp,hc,bu,au,Yg];constructor(a,t,i){this.hmiService=a,this.authService=t,this.winRef=i,this.hmiService.onVariableChanged.subscribe(n=>{try{this.onchange.emit(n)}catch{}}),this.hmiService.onDaqResult.subscribe(n=>{try{this.mapChart[n.gid]?this.mapChart[n.gid].setValues(n.result,n.chunk):this.mapTable[n.gid]&&this.mapTable[n.gid].setValues(n.result)}catch{}}),this.hmiService.getGaugeMapped=this.getGaugeFromName.bind(this),so.Gauges.forEach(n=>{so.gaugesTags.push(n.TypeTag)})}createSettings(a,t){let i=null;if(t)for(let n=0;n0){this.eventGauge[i.id]=i,this.mapGaugeView[i.id]?this.mapGaugeView[i.id][t]||(this.mapGaugeView[i.id][t]=i,o(i)):(this.mapGaugeView[i.id]={},this.mapGaugeView[i.id][t]=i,o(i));let O=document.getElementById(i.id);O&&(O.style.cursor="pointer")}let B=this.getHtmlEvents(i);B&&(this.eventGauge[B.dom.id]=i,s(B)),this.bindGaugeEventToSignal(i),this.checkElementToInit(i)}unbindGauge(a){let t=this.hmiService.removeSignalGaugeFromMap(a);Object.keys(t).forEach(i=>{if(this.memorySigGauges[i])for(let n=0;n{if(i[a]){let n=i[a];n.myComRef&&n.myComRef.destroy(),delete i[a]}})}checkElementToInit(a){return a.type.startsWith(zl.TypeTag)?zl.initElement(a,!0):null}checkElementToResize(a,t,i,n){if(a&&this.mapGauges[a.id])if("function"==typeof this.mapGauges[a.id].resize){let o,s;n&&(o=n.height,s=n.width),this.mapGauges[a.id].resize(o,s)}else for(let o=0;oi?.name===a)}getGaugeValue(a){if(this.mapGauges[a]&&this.mapGauges[a].currentValue)return this.mapGauges[a].currentValue()}getGaugeSettings(a,t){return this.hmiService.getMappedSignalsGauges(a,t)}getMappedGaugesSignals(a){return this.hmiService.getMappedVariables(a)}getBindSignals(a,t){if(a.property)for(let i=0;iYi.ef.placeholderToTag(o,t)?.id??o)),n}if(a.type.startsWith(kp.TypeTag)){let n=this.hmiService.getGraphSignal(a.property.id);return t&&(n=n.map(o=>Yi.ef.placeholderToTag(o,t)?.id??o)),n}return"function"==typeof so.Gauges[i].getSignals?so.Gauges[i].getSignals(a.property):null}return null}getBindSignalsValue(a){let t=this.getBindSignals(a),i=[];return t&&t.forEach(n=>{let o=this.hmiService.getMappedVariable(n,!1);o&&!ii.cQ.isNullOrUndefined(o.value)&&i.push(o)}),i}getBindMouseEvent(a,t){for(let i=0;i{t.putEvent(i)})}else if(a.type.startsWith(tu.TypeTag)){let t=this;tu.bindEvents(a,this.mapGauges[a.id],i=>{t.putEvent(i)})}else if(a.type.startsWith(hc.TypeTag)){let t=this;hc.bindEvents(a,i=>{t.putEvent(i)})}}processValue(a,t,i,n){n.variablesValue[i.id]=i.value;for(let o=0;o{s===a.id&&this.mapGauges[s]&&Bp.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(kp.TypeTag)){"history"!==a.property.type&&this.memorySigGauges[i.id]&&Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&kp.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(hm.TypeTag)){Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&hm.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(oh.TypeTag)){Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&oh.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(tu.TypeTag)){Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&tu.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(Fp.TypeTag)){(a.property.type===Tt.Nd.data||a.property.options?.realtime)&&this.memorySigGauges[i.id]&&Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&Fp.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(Yg.TypeTag)){Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&Yg.processValue(a,t,i,n,this.mapGauges[s])});break}if(a.type.startsWith(bu.TypeTag)){this.memorySigGauges[i.id]&&Object.keys(this.memorySigGauges[i.id]).forEach(s=>{s===a.id&&this.mapGauges[s]&&bu.processValue(a,t,i,n,this.mapGauges[s])});break}if("function"==typeof so.Gauges[o].processValue){so.Gauges[o].processValue(a,t,i,n);break}break}}toggleSignalValue(a,t){if(this.hmiService.variables.hasOwnProperty(a)){let i=this.hmiService.variables[a].value;if(null==i)return;if(ii.cQ.isNullOrUndefined(t))this.putSignalValue(a,0===i||"0"===i?"1":1===i||"1"===i?"0":"false"===i?"true":String(!i));else{const n=uo.toggleBitmask(i,t);this.putSignalValue(a,n.toString())}}}putEvent(a){if(a.type===hc.propertyWidgetType){const t=uo.valueBitmask(a.ga.property.bitmask,a.value,this.hmiService.variables[a.variableId]?.value);this.hmiService.putSignalValue(a.variableId,String(t)),a.dbg="put "+a.variableId+" "+a.value}else if(a.ga.property&&a.ga.property.variableId){const t=uo.valueBitmask(a.ga.property.bitmask,a.value,this.hmiService.variables[a.ga.property.variableId]?.value);this.hmiService.putSignalValue(a.ga.property.variableId,String(t)),a.dbg="put "+a.ga.property.variableId+" "+a.value}this.onevent.emit(a)}putSignalValue(a,t,i=null){this.hmiService.putSignalValue(a,t,i)}static getEditDialogTypeToUse(a){for(let t=0;t!!o);for(let o=0;o{if(n){const ne=Yi.ef.placeholderToTag(O,c);g[O]=ne?.id??O,this.hmiService.addSignal(g[O])}else this.hmiService.addSignal(O)}),n&&a.hide){let O=document.getElementById(a.id);O&&(O.style.display="none")}if(a.type.startsWith(Bp.TypeTag)){let O=Bp.initElement(a,t,i,n,Fv);return O&&(this.setChartPropety(O,a.property,g),this.mapChart[a.id]=O,O.onTimeRange.subscribe(ne=>{this.hmiService.queryDaqValues(ne)}),n&&O.setInitRange(),this.mapGauges[a.id]=O),O}if(a.type.startsWith(kp.TypeTag)){let O=kp.initElement(a,t,i,n);return O&&(this.setGraphPropety(O,a.property,g),O.onReload.subscribe(ne=>{this.hmiService.getDaqValues(ne).subscribe(we=>{O.setValues(ne.sids,we)},we=>{O.setValues(ne.sids,null),console.error("get DAQ values err: "+we)})}),this.mapGauges[a.id]=O),O}if(a.type.startsWith(hm.TypeTag)){let O=hm.initElement(a,t,i,n);return this.mapGauges[a.id]=O,O}if(a.type.startsWith(oh.TypeTag)){let O=oh.initElement(a,t,i,n);return this.mapGauges[a.id]=O,O}if(a.type.startsWith(ss.TypeTag))return ss.initElement(a,n)||!0;if(a.type.startsWith(zl.TypeTag))return zl.initElement(a,n)||!0;if(a.type.startsWith(iu.TypeTag))return iu.initElement(a)||!0;if(a.type.startsWith(tu.TypeTag)){let O=tu.initElement(a,t,i,this.authService.checkPermission.bind(this.authService));return this.mapGauges[a.id]=O,O}if(a.type.startsWith(Fp.TypeTag)){let O=Fp.initElement(a,t,i,n);return O&&(this.setTablePropety(O,a.property,g),this.mapTable[a.id]=O,O.onTimeRange$.subscribe(ne=>{ne&&this.hmiService.queryDaqValues(ne)}),this.mapGauges[a.id]=O),O}if(a.type.startsWith(Yg.TypeTag)){let O=Yg.initElement(a,t,i,n);return O&&(this.mapGauges[a.id]=O),O}if(a.type.startsWith(Wv.TypeTag))return Wv.initElement(a,n)||!0;if(a.type.startsWith(hc.TypeTag)){let O=hc.initElement(a,n);return this.mapGauges[a.id]=O,O}if(a.type.startsWith(bu.TypeTag)){let O=bu.initElement(a,t,i,this,this.hmiService.hmi,n,o);return this.mapGauges[a.id]=O,O}if(a.type.startsWith(dc.TypeTag))return dc.initElement(a,s)||!0;if(a.type.startsWith(Ka.TypeTag)){let O=Ka.initElement(a,n,o?.getGaugeStatus(a));return this.mapGauges[a.id]=O,O||!0}if(a.type.startsWith(au.TypeTag)){let O=au.initElement(a,n);return this.mapGauges[a.id]=O,O||!0}{let O=document.getElementById(a.id);return O?.setAttribute("data-name",a.name),uo.setLanguageText(O,s),O||!0}}chackSetModeParamToAddedGauge(a,t){t&&a?.type===au.TypeTag&&(a.property=a.property||new Tt.BO,a.property.options=a.property.options||{},a.property.options.address=t)}setChartPropety(a,t,i){if(t)if(t.id){let n=this.hmiService.getChart(t.id);if(n){const o={...t.options,title:n.name,id:n.name,scales:{x:{time:!0}}};a.setOptions(o,!0);let s=n.lines.find(c=>c.yaxis>1);for(let c=0;c{class r{dialogRef;projectService;data;view;hmi;gaugesManager;variablesMapping=[];constructor(t,i,n){this.dialogRef=t,this.projectService=i,this.data=n}ngOnInit(){this.hmi=this.projectService.getHmi()}onCloseDialog(){this.dialogRef.close()}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-fuxa-view-dialog"]],decls:3,vars:9,consts:[[1,"fuxa-view-dialog"],["class","dialog-modal-close",4,"ngIf"],[3,"child","gaugesManager","hmi","variablesMapping","view","sourceDeviceId","onclose"],[1,"dialog-modal-close"],[1,"material-icons",2,"font-size","22px","cursor","pointer",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,Nde,3,0,"a",1),e.TgZ(2,"app-fuxa-view",2),e.NdJ("onclose",function(){return n.onCloseDialog()}),e.qZA()()),2&i&&(e.Udp("background",null==n.data||null==n.data.view||null==n.data.view.profile?null:n.data.view.profile.bkcolor),e.xp6(1),e.Q6J("ngIf",!n.data.disableDefaultClose),e.xp6(1),e.Q6J("child",!0)("gaugesManager",n.data.gaugesManager)("hmi",n.hmi)("variablesMapping",n.data.variablesMapping)("view",n.data.view)("sourceDeviceId",n.data.sourceDeviceId))},styles:[".fuxa-view-dialog[_ngcontent-%COMP%]{position:relative}.fuxa-view-dialog[_ngcontent-%COMP%] .dialog-modal-close[_ngcontent-%COMP%]{top:0;right:0;height:22px;width:100%;color:#000000b3;font-size:12px}.fuxa-view-dialog[_ngcontent-%COMP%] .dialog-modal-close[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{float:right}"]})}return r})(),hN=(()=>{class r{dialogRef;data;constructor(t,i){this.dialogRef=t,this.data=i}onCloseDialog(){this.dialogRef.close()}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-webcam-player-dialog"]],decls:5,vars:1,consts:[["mat-dialog-draggable","",1,"webcam-player-dialog"],[1,"dialog-modal-close"],[1,"material-icons",2,"font-size","22px","cursor","pointer",3,"click"],[3,"data","onclose"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"a",1)(2,"i",2),e.NdJ("click",function(){return n.onCloseDialog()}),e._uU(3,"close"),e.qZA()(),e.TgZ(4,"app-webcam-player",3),e.NdJ("onclose",function(){return n.onCloseDialog()}),e.qZA()()),2&i&&(e.xp6(4),e.Q6J("data",n.data))},styles:[".webcam-player-dialog[_ngcontent-%COMP%] .dialog-modal-close[_ngcontent-%COMP%]{top:0;right:0;height:22px;width:100%;background-color:transparent;font-size:12px;cursor:move!important}.webcam-player-dialog[_ngcontent-%COMP%] .dialog-modal-close[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{float:right}.webcam-player-dialog[_ngcontent-%COMP%] app-webcam-player[_ngcontent-%COMP%]{padding-top:22px}"]})}return r})(),Ude=(()=>{class r{static getEventClientPosition(t){return"clientX"in t&&"clientY"in t?{x:t.clientX,y:t.clientY}:"touches"in t&&t.touches.length>0?{x:t.touches[0].clientX,y:t.touches[0].clientY}:"changedTouches"in t&&t.changedTouches.length>0?{x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY}:null}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})(),NP=(()=>{class r{activeroute;sanitizer;subscription;urlSafe;_link;set link(t){this._link=t,this.loadLink(t)}constructor(t,i){this.activeroute=t,this.sanitizer=i}ngOnInit(){this._link?this.urlSafe=this.sanitizer.bypassSecurityTrustResourceUrl(this._link):this.subscription=this.activeroute.params.subscribe(t=>{this._link=t.url,this.urlSafe=this.sanitizer.bypassSecurityTrustResourceUrl(this._link)})}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}loadLink(t){this._link=t,this._link&&(this.urlSafe=this.sanitizer.bypassSecurityTrustResourceUrl(this._link))}static \u0275fac=function(i){return new(i||r)(e.Y36(Cp),e.Y36(T.H7))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-iframe"]],inputs:{link:"link"},decls:1,vars:1,consts:[["width","100%","height","100%","frameBorder","0","sandbox","allow-forms allow-scripts allow-modals allow-same-origin",3,"src"]],template:function(i,n){1&i&&e._UZ(0,"iframe",0),2&i&&e.Q6J("src",n.urlSafe,e.uOi)}})}return r})();const zde=["dataContainer"],Hde=["inputDialogRef"],Gde=["inputValueRef"],Zde=["touchKeyboard"];function Jde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"a",19),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onCloseCard(n))}),e.TgZ(1,"i",20),e._uU(2,"close"),e.qZA()()}}function jde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",14),e.NdJ("pointerdown",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.bringCardToFront(o))}),e.TgZ(1,"div",15,16),e.YNc(3,Jde,3,0,"a",17),e.qZA(),e.TgZ(4,"app-fuxa-view",18),e.NdJ("onclose",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onCloseCard(o))}),e.qZA()()}if(2&r){const t=a.$implicit,i=e.MAs(2),n=e.oxw();let o;e.Udp("z-index",null!==(o=t.zIndex)&&void 0!==o?o:1)("height",n.getCardHeight(t.height)+"px")("left",t.x+"px")("top",t.y+"px")("width",t.width+"px"),e.Q6J("handle",i),e.xp6(3),e.Q6J("ngIf",!t.disableDefaultClose),e.xp6(1),e.Q6J("child",!0)("gaugesManager",n.gaugesManager)("hmi",n.hmi)("parentcards",n.cards)("variablesMapping",t.variablesMapping)("view",t.view)("sourceDeviceId",t.sourceDeviceId)}}function Vde(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",21),e.NdJ("rzResizing",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.onIframeResizing(s,n))}),e.TgZ(1,"div",22,23)(3,"span"),e._uU(4),e.qZA(),e.TgZ(5,"a",24),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onCloseIframe(o))}),e.TgZ(6,"i",20),e._uU(7,"close"),e.qZA()()(),e._UZ(8,"app-iframe",25),e.qZA()}if(2&r){const t=a.$implicit,i=e.MAs(2);e.Udp("height",t.height+22+"px")("left",t.x+"px")("top",t.y+"px")("width",t.width+"px"),e.Q6J("handle",i),e.xp6(4),e.Oqu(t.name),e.xp6(4),e.Udp("height",t.height+"px")("transform","scale("+t.scale+")")("width",t.width+"px")("zoom",1/t.scale),e.Q6J("link",t.link)}}const Wde=function(r){return{visibility:r}};let mm=(()=>{class r{translateService;changeDetector;viewContainerRef;scriptService;projectService;hmiService;languageService;resolver;fuxaDialog;id;variablesMapping=[];view;hmi;child=!1;gaugesManager;parentcards;sourceDeviceId;onclose=new e.vpe;ongoto=new e.vpe;dataContainer;inputDialogRef;inputValueRef;touchKeyboard;eventViewToPanel=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onViewToPanel);eventRunScript=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript);eventOpenTab=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onOpenTab);endPointConfig=bp.C.getURL();scriptParameterValue=ii.cQ.getEnumKey(Wo.ZW,Wo.ZW.value);cards=[];iframes=[];mapGaugeStatus={};mapControls={};inputDialog={show:!1,timer:null,x:0,y:0,target:null};gaugeInput="";gaugeInputCurrent="";parent;cardViewType=ii.cQ.getEnumKey(Tt.bW,Tt.bW.cards);viewLoaded=!1;viewRenderDelay=0;subscriptionOnChange;staticValues={};plainVariableMapping={};destroy$=new An.x;loadOk=!1;zIndexCounter=1e3;constructor(t,i,n,o,s,c,g,B,O){this.translateService=t,this.changeDetector=i,this.viewContainerRef=n,this.scriptService=o,this.projectService=s,this.hmiService=c,this.languageService=g,this.resolver=B,this.fuxaDialog=O}ngOnInit(){this.loadVariableMapping()}ngAfterViewInit(){this.loadHmi(this.view);try{this.gaugesManager.emitBindedSignals(this.id)}catch(t){console.error(t)}}ngOnDestroy(){try{this.destroy$.next(null),this.destroy$.complete(),this.gaugesManager.unbindGauge(this.id),this.clearGaugeStatus(),this.subscriptionOnChange&&this.subscriptionOnChange.unsubscribe(),this.subscriptionOnGaugeEvent&&this.subscriptionOnGaugeEvent.unsubscribe(),this.inputDialogRef&&(this.inputDialogRef.nativeElement.style.display="none"),this.view?.property?.events?.forEach(t=>{t.type===ii.cQ.getEnumKey(Tt.B0,Tt.B0.onclose)&&this.onRunScript(t)})}catch(t){console.error(t)}}loadVariableMapping(t){try{t&&(this.variablesMapping=t),this.variablesMapping?.forEach(i=>{this.plainVariableMapping[i.from.variableId]=i.to})}catch(i){console.error(i)}}clearGaugeStatus(){Object.values(this.mapGaugeStatus).forEach(t=>{try{t.actionRef&&(t.actionRef.timer&&(clearTimeout(t.actionRef.timer),t.actionRef.timer=null),t.actionRef.animr&&(t.actionRef.animr.reset&&t.actionRef.animr.reset(),delete t.actionRef.animr))}catch(i){console.error(i)}}),this.mapGaugeStatus={}}loadHmi(t,i){if(this.viewLoaded=!1,!this.loadOk&&t)try{if(this.hmi||(this.hmi=this.projectService.getHmi()),this.id)try{this.gaugesManager.unbindGauge(this.id),this.clearGaugeStatus(),this.viewContainerRef.clear(),this.dataContainer.nativeElement.innerHTML=""}catch(n){console.error(n)}if(t?.id){if(this.id=t.id,this.view=t,t.type===this.cardViewType)return void this.ongoto.emit(t.id);this.dataContainer.nativeElement.innerHTML=t.svgcontent.replace("Layer 1",""),t.profile.bkcolor&&(this.child||i)&&(this.dataContainer.nativeElement.style.backgroundColor=t.profile.bkcolor),t.profile.align&&!this.child&&r.setAlignStyle(t.profile.align,this.dataContainer.nativeElement)}this.changeDetector.detectChanges(),this.loadWatch(this.view),this.onResize(),t&&(t.property?.events?.forEach(n=>{n.type===ii.cQ.getEnumKey(Tt.B0,Tt.B0.onopen)&&this.onRunScript(n)}),this.viewRenderDelay=t.profile?.viewRenderDelay||0)}finally{setTimeout(()=>{this.viewLoaded=!0,this.changeDetector.detectChanges()},this.viewRenderDelay)}else this.viewLoaded=!0}onResize(t){let i=this.projectService.getHmi();i&&i.layout&&Tt.Rw[i.layout.zoom]===Tt.Rw.autoresize&&!this.child&&ii.cQ.resizeViewRev(this.dataContainer.nativeElement,this.dataContainer.nativeElement.parentElement?.parentElement,"stretch")}loadWatch(t){if(t&&t.items){this.mapControls={};const i=this.projectService.getDeviceFromId(this.sourceDeviceId);let n=i?.tags?Object.values(i.tags):null,o=this.applyVariableMapping(t.items,n),s=[];Object.entries(this.plainVariableMapping??{}).forEach(([c,g])=>{if(g?.variableId){const B=this.projectService.getTagFromId(g.variableId);if(B){const O=new Yi.Vp(B.id),ne=Yi.ef.getPlaceholderContent(c);O.name=ne.firstContent,s.push(O)}}}),n=ii.cQ.mergeUniqueBy(n,s,"id");for(let c in o)if(o.hasOwnProperty(c))try{const g=this.languageService.getTranslation(o[c].property?.text);let B=this.gaugesManager.initElementAdded(o[c],this.resolver,this.viewContainerRef,!0,this,g,n);if(B&&(this.mapControls[c]=B),this.gaugesManager.bindGauge(B,this.id,o[c],n,O=>{this.onBindMouseEvents(O)},O=>{if(this.onBindHtmlEvent(O),o[c]?.property?.options?.selectOnClick){const ne=O.dom.onclick;O.dom.onclick=function(we){ne&&ne.call(this,we),O.dom.select(),O.dom.focus()}}}),o[c].property){let O=o[c],ne=this.getGaugeStatus(O),we=[];if(o[c].property.variableValue||O.property.variableId){let $e={id:O.property.variableId,value:O.property.variableValue};this.checkStatusValue(O.id,ne,$e)&&(we=[$e])}if(we=we.concat(this.gaugesManager.getBindSignalsValue(o[c])),we.length){let $e=r.getSvgElements(O.id);for(let nt=0;nt<$e.length;nt++)we.forEach(Ft=>{this.gaugesManager.processValue(O,$e[nt],Ft,ne)})}if(O.property.events){const $e=ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.onLoad),nt=O.property.events?.filter(Ft=>Ft.type===$e);nt?.length&&this.runEvents(this,O,null,nt)}}}catch(g){console.error("loadWatch: "+c,g)}this.subscriptionOnChange||(this.subscriptionOnChange=this.gaugesManager.onchange.subscribe(this.handleSignal.bind(this))),this.subscriptionOnGaugeEvent||(this.subscriptionOnGaugeEvent=this.hmiService.onGaugeEvent.subscribe(c=>{c&&c.action&&this.runEvents(this,{id:"scheduler-trigger",property:{}},null,[c])}));for(let c in this.staticValues)this.staticValues.hasOwnProperty(c)&&this.handleSignal({id:c,value:this.staticValues[c]});this.hmiService.viewsTagsSubscribe(this.gaugesManager.getBindedSignalsId(),!0)}}handleSignal(t){if(void 0!==t.value)try{let i=this.gaugesManager.getGaugeSettings(this.id,t.id);if(i)for(let n=0;n{this.applyVariableMappingTo(c,i)}),s.events&&s.events.forEach(c=>{c.actoptions&&(ii.cQ.isObject(c.actoptions.variable)?this.applyVariableMappingTo(c.actoptions.variable,i):this.applyVariableMappingTo(c.actoptions,i))}),s.ranges&&s.ranges.forEach(c=>{c.textId&&this.applyVariableMappingTo(c.textId,i)}))}return t}applyVariableMappingTo(t,i){if(t&&t.variableId){if(this.plainVariableMapping.hasOwnProperty(t.variableId))return t.variableValue=this.plainVariableMapping[t.variableId]?.variableValue,void(t.variableId=this.plainVariableMapping[t.variableId]?.variableId);if(i){const n=Yi.ef.placeholderToTag(t.variableId,i);if(n)return t.variableId=n.id,void(t.variableValue=n.value)}}}checkStatusValue(t,i,n){let o=!0;if(i.onlyChange){if(i.takeValue){let s=this.gaugesManager.getGaugeValue(t);i.variablesValue[n.id]=s}i.variablesValue[n.id]===n.value&&(o=!1)}return i.variablesValue[n.id]=n.value,o}onBindMouseEvents(t){let o,i=this.parent||this,n=r.getSvgElement(t.id);if(n){let s=i.gaugesManager.getBindMouseEvent(t,Tt.KQ.dblclick),c=i.gaugesManager.getBindMouseEvent(t,Tt.KQ.click);c?.length>0?(n.click(function(we){clearTimeout(o),o=setTimeout(function(){i.runEvents(i,t,we,c)},s?.length>0?200:0)}),n.touchstart(function(we){i.runEvents(i,t,we,c),we.preventDefault()})):s?.length>0&&n.dblclick(function(we){clearTimeout(o),i.runEvents(i,t,we,s),we.preventDefault()});let g=i.gaugesManager.getBindMouseEvent(t,Tt.KQ.mousedown);g?.length>0&&(n.mousedown(function(we){i.runEvents(i,t,we,g)}),n.touchstart(function(we){i.runEvents(i,t,we,g),we.preventDefault()}));let B=i.gaugesManager.getBindMouseEvent(t,Tt.KQ.mouseup);B?.length>0&&(n.mouseup(function(we){i.runEvents(i,t,we,B)}),n.touchend(function(we){i.runEvents(i,t,we,B),we.preventDefault()}));let O=i.gaugesManager.getBindMouseEvent(t,Tt.KQ.mouseover);O?.length>0&&n.mouseover(function(we){i.runEvents(i,t,we,O)});let ne=i.gaugesManager.getBindMouseEvent(t,Tt.KQ.mouseout);ne?.length>0&&n.mouseout(function(we){i.runEvents(i,t,we,ne)})}}runEvents(t,i,n,o){for(let s=0;s{i.inputValueRef.nativeElement.focus()},300)}}:(this.hmi.layout?.inputdialog.startsWith("keyboard")&&t.ga?.type===ss.TypeTag&&(t.dom.onfocus=function(n){i.touchKeyboard.closePanel();let o=new e.SBq(t.dom);(t.ga?.property?.options?.numeric||t.ga?.property?.options?.type===Tt.ng.number)&&(o.nativeElement.inputMode="decimal"),t.ga?.property?.options?.type!==Tt.ng.datetime&&t.ga?.property?.options?.type!==Tt.ng.date&&t.ga?.property?.options?.type!==Tt.ng.time&&i.touchKeyboard.openPanel(o).pipe((0,yo.q)(1)).subscribe(()=>{t.dom.blur()})}),t.dom.onblur=function(n){let o=i.gaugesManager.getBindSignalsValue(t.ga),s=r.getSvgElements(t.ga.id);o.length&&s.length&&t.ga?.type!==ss.TypeTag&&!ss.InputDateTimeType.includes(t.ga?.property.options?.type)&&i.gaugesManager.processValue(t.ga,s[0],o[0],new Tt.sY),t.dom.setCustomValidity(""),i.checkRestoreValue(t)},t.dom.oninput=function(n){t.dom.setCustomValidity("")})):"change"===t.type&&(t.dom.onchange=function(n){if(t.dbg="key pressed "+t.dom.id+" "+t.dom.value,t.id=t.dom.id,t.value=t.dom.value,i.gaugesManager.putEvent(t),t.ga.type===zl.TypeTag){const o=JSON.parse(JSON.stringify(zl.getEvents(t.ga.property,Tt.KQ.select)));i.eventForScript(o,t.value)}})}checkRestoreValue(t){t.ga?.property?.options?.updated&&(t.ga.property.options.updatedEsc||t.ga.property.options.actionOnEsc===Tt.Hs.update)?setTimeout(()=>{const n=this.getGaugeStatus(t.ga)?.variablesValue[t.ga?.property?.variableId];ii.cQ.isNullOrUndefined(n)||(t.dom.value=n)},1e3):t.ga?.property?.options?.actionOnEsc===Tt.Hs.enter&&this.emulateEnterKey(t.dom)}eventForScript(t,i){t?.forEach(n=>{i&&n.actoptions[Wo.ug].forEach(s=>{s.type===this.scriptParameterValue&&!s.value&&(s.value=i)}),this.onRunScript(n)})}setInputDialogStyle(t,i,n){for(let o=0;o{g.id===t&&(c=g)}),!c){if(c=new pN(t),c.x=ii.cQ.isNumeric(o.left)?parseInt(o.left):0,c.y=ii.cQ.isNumeric(o.top)?parseInt(o.top):0,i&&o.relativeFrom!==Tt.T2.window){const g=Ude.getEventClientPosition(i);g&&(c.x+=g.x??0,c.y+=g.y??0)}this.hmi.layout.hidenavigation&&(c.y-=48),c.width=s.profile.width,c.height=s.profile.height,c.view=s,c.variablesMapping=o?.variablesMapping,c.disableDefaultClose=o?.hideClose,c.sourceDeviceId=o?.sourceDeviceId,c.zIndex=this.nextZIndex(),this.parentcards?this.parentcards.push(c):this.cards.push(c),this.changeDetector.detectChanges()}}onOpenTab(t,i){window.open("resource"===t.actoptions?.addressType?this.endPointConfig+"/"+t.actoptions.resource:t.actparam,i.newTab?"_blank":"_self")}openIframe(t,i,n,o){let s=null;this.iframes.forEach(c=>{c.id===t&&(s=c)}),!s&&(s=new pN(t),s.x=ii.cQ.isNumeric(o.left)?parseInt(o.left):i.clientX,s.y=ii.cQ.isNumeric(o.top)?parseInt(o.top):i.clientY,s.width=ii.cQ.isNumeric(o.width)?parseInt(o.width):600,s.height=ii.cQ.isNumeric(o.height)?parseInt(o.height):400,s.scale=ii.cQ.isNumeric(o.scale)?parseFloat(o.scale):1,s.link=n,s.name=n,this.iframes.push(s),this.onIframeResizing(s,{size:{width:s.width,height:s.height}}))}onIframeResizing(t,i){t.width=i.size.width,t.height=i.size.height}onCloseIframe(t){this.iframes.forEach(i=>{i.id===t.id&&this.iframes.splice(this.cards.indexOf(i),1)})}openWindow(t,i,n,o){const s=ii.cQ.isNumeric(o.width)?parseInt(o.width):600,c=ii.cQ.isNumeric(o.height)?parseInt(o.height):400,g=ii.cQ.isNumeric(o.left)?parseInt(o.left):i.clientX,B=ii.cQ.isNumeric(o.top)?parseInt(o.top):i.clientY;window.open(n,"_blank",o.newTab?null:`height=${c},width=${s},left=${g},top=${B}`)}onCloseCard(t){this.cards.splice(this.cards.indexOf(t),1)}onClose(t){this.onclose&&this.onclose.emit(t)}onSetValue(t,i){if(i.actparam){let n=this.fetchVariableId(i)||t.property.variableId,o=this.fetchFunction(i);this.gaugesManager.putSignalValue(n,i.actparam,o)}}onSetInput(t,i){if(i.actparam){let n=document.getElementById(i.actparam);if(n){let o=null;for(let s=0;so.id==t.actparam));i.parameters=ii.cQ.clone(t.actoptions[Wo.ug]);const n=i.parameters.filter(o=>o.value?.startsWith(Yi.Jo.id)).map(o=>o.value);if(n?.length){const o=this.getViewPlaceholderValue(n);i.parameters.forEach(s=>{ii.cQ.isNullOrUndefined(o[s.value])||(s.value=o[s.value])})}this.scriptService.runScript(i).subscribe(o=>{},o=>{console.error(o)})}}onMonitor(t,i,n,o={}){let s={view:this.getView(n),bkColor:"transparent",gaugesManager:this.gaugesManager,ga:t};this.fuxaDialog.open(hN,{panelClass:"fuxa-dialog-property",disableClose:!1,data:s,position:{top:i.layerY+30+"px",left:i.layerX+10+"px"}}).afterClosed().subscribe()}onSetViewToPanel(t){if(t.actparam&&t.actoptions){let i=this.mapControls[t.actoptions.panelId];const n=this.view.items[t.actoptions.panelId]?.property;i.loadPage(n,t.actparam,t.actoptions)}}getCardHeight(t){return parseInt(t)+4}getViewPlaceholderValue(t){let i={};return Object.values(this.view.items).forEach(n=>{if(-1!==t.indexOf(n.property?.variableId)&&this.mapControls[n.id]){const o=this.mapControls[n.id];o&&!0!==o&&o.getValue&&(i[n.property?.variableId]=o.getValue())}}),this.variablesMapping?.forEach(n=>{-1!==t.indexOf(n?.from?.variableId)&&n?.to?.variableId&&(i[n.from.variableId]=n.to.variableId)}),i}fetchVariableId(t){return t.actoptions?ii.cQ.isObject(t.actoptions.variable)&&t.actoptions.variable.variableId?t.actoptions.variable.variableId:t.actoptions.variableId?t.actoptions.variableId:null:null}fetchFunction(t){return t.actoptions&&t.actoptions.function?t.actoptions.function:null}toggleShowInputDialog(t,i=-1,n=-1,o=null){if(t){let s=self.innerHeight-(n+114);n<0?n=0:s<0&&(n+=s),this.inputDialog.show=!0,i>=0&&n>=0&&(this.inputDialog.target=o,this.inputDialog.x=i,this.inputDialog.y=n),clearTimeout(this.inputDialog.timer)}else this.inputDialog.timer=setTimeout(()=>{this.inputDialog.show=!1,this.gaugeInputCurrent=""},300)}onNoClick(){}inputOnChange(){this.inputValueRef.nativeElement.setCustomValidity("")}onOkClick(t){if(this.inputDialog.target.dom){let i=ss.validateValue(t,this.inputDialog.target.ga);i.valid?(this.inputValueRef.nativeElement.setCustomValidity(""),this.inputDialog.target.dom.value=t,this.inputDialog.target.dbg="key pressed "+this.inputDialog.target.dom.id+" "+this.inputDialog.target.dom.value,this.inputDialog.target.id=this.inputDialog.target.dom.id,this.inputDialog.target.value=this.inputDialog.target.dom.value,this.gaugesManager.putEvent({...this.inputDialog.target,value:i.value}),this.emulateEnterKey(this.inputDialog.target.dom)):this.setInputValidityMessage(i,this.inputValueRef.nativeElement)}}emulateEnterKey(t){const i=new KeyboardEvent("keydown",{key:"Enter",keyCode:13,code:"Enter",bubbles:!0});t.dispatchEvent(i)}static setAlignStyle(t,i){t===Tt.Bx.middleCenter&&(i.style.position="absolute",i.style.top="50%",i.style.left="50%",i.style.transform="translate(-50%, -50%)")}static \u0275fac=function(i){return new(i||r)(e.Y36(Ni.sK),e.Y36(e.sBO),e.Y36(e.s_b),e.Y36(Ov.Y),e.Y36(wr.Y4),e.Y36(aA.Bb),e.Y36(Pv),e.Y36(e._Vd),e.Y36(xo))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-fuxa-view"]],viewQuery:function(i,n){if(1&i&&(e.Gf(zde,5),e.Gf(Hde,5),e.Gf(Gde,5),e.Gf(Zde,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.dataContainer=o.first),e.iGM(o=e.CRH())&&(n.inputDialogRef=o.first),e.iGM(o=e.CRH())&&(n.inputValueRef=o.first),e.iGM(o=e.CRH())&&(n.touchKeyboard=o.first)}},hostBindings:function(i,n){1&i&&e.NdJ("resize",function(s){return n.onResize(s)},!1,e.Jf7)},inputs:{id:"id",variablesMapping:"variablesMapping",view:"view",hmi:"hmi",child:"child",gaugesManager:"gaugesManager",parentcards:"parentcards",sourceDeviceId:"sourceDeviceId"},outputs:{onclose:"onclose",ongoto:"ongoto"},decls:18,vars:13,consts:[["id","content",1,"view-container",3,"ngStyle"],["dataContainer",""],["class","fab-card","style","cursor: auto !important;","ngDraggable","",3,"zIndex","height","left","top","width","handle","pointerdown",4,"ngFor","ngForOf"],["class","fab-iframe","ngDraggable","","ngResizable","",3,"handle","height","left","top","width","rzResizing",4,"ngFor","ngForOf"],[1,"dialog-input"],["inputDialogRef",""],["matInput","","autocomplete","off","type","text","disabled","",3,"ngModel","ngModelChange"],["matInput","","autocomplete","off","type","text",3,"ngModel","ngModelChange","focus","focusout"],["inputValueRef",""],[2,"display","block","padding-top","4px","width","fit-content","margin","auto"],["mat-raised-button","","color","primary",2,"min-width","16px","padding-left","4px","padding-right","4px","margin-right","4px",3,"click"],["mat-raised-button","",2,"min-width","16px","padding-left","4px","padding-right","4px",3,"click"],["type","text","ngxTouchKeyboard","",2,"display","none",3,"focus"],["touchKeyboard","ngxTouchKeyboard"],["ngDraggable","",1,"fab-card",2,"cursor","auto !important",3,"handle","pointerdown"],[1,"card-move-area"],["DemoHandle",""],["class","card-close",3,"click",4,"ngIf"],[3,"child","gaugesManager","hmi","parentcards","variablesMapping","view","sourceDeviceId","onclose"],[1,"card-close",3,"click"],[1,"material-icons",2,"font-size","22px","cursor","pointer"],["ngDraggable","","ngResizable","",1,"fab-iframe",3,"handle","rzResizing"],[1,"iframe-header"],["iframeHandle",""],[3,"click"],[1,"iframe-class",3,"link"]],template:function(i,n){if(1&i){const o=e.EpF();e._UZ(0,"div",0,1),e.YNc(2,jde,5,19,"div",2),e.YNc(3,Vde,9,19,"div",3),e.TgZ(4,"div",4,5)(6,"input",6),e.NdJ("ngModelChange",function(c){return n.gaugeInputCurrent=c}),e.qZA(),e.TgZ(7,"input",7,8),e.NdJ("ngModelChange",function(c){return n.gaugeInput=c})("focus",function(){return n.toggleShowInputDialog(!0)})("focusout",function(){return n.toggleShowInputDialog(!1)})("ngModelChange",function(){return n.inputOnChange()}),e.qZA(),e.TgZ(9,"div",9)(10,"button",10),e.NdJ("click",function(){return n.onOkClick(n.gaugeInput)}),e.TgZ(11,"mat-icon"),e._uU(12,"done"),e.qZA()(),e.TgZ(13,"button",11),e.NdJ("click",function(){return n.onNoClick()}),e.TgZ(14,"mat-icon"),e._uU(15,"close"),e.qZA()()()(),e.TgZ(16,"input",12,13),e.NdJ("focus",function(){e.CHM(o);const c=e.MAs(17);return e.KtG(c.openPanel())}),e.qZA()}2&i&&(e.Q6J("ngStyle",e.VKq(11,Wde,n.viewLoaded?"visible":"hidden")),e.xp6(2),e.Q6J("ngForOf",n.cards),e.xp6(1),e.Q6J("ngForOf",n.iframes),e.xp6(1),e.Udp("display",n.inputDialog.show?"inline-block":"none")("top",n.inputDialog.y,"px")("left",n.inputDialog.x,"px"),e.xp6(2),e.Q6J("ngModel",n.gaugeInputCurrent),e.xp6(1),e.Q6J("ngModel",n.gaugeInput))},dependencies:[l.sg,l.O5,l.PC,I,et,$i,Yn,Zn,qd,zQ,sZ,FL,NP,r],styles:[".view-container[_ngcontent-%COMP%]{display:table}.fab-card[_ngcontent-%COMP%]{position:absolute;width:1300px;height:800px;box-shadow:0 1px 4px 1px #888}.card-close[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:22px;width:22px;color:#000000b3;background-color:transparent;font-size:12px;cursor:move!important}.card-move-area[_ngcontent-%COMP%]{z-index:999;position:absolute;top:0;left:0;right:0;height:22px}.card-close[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{float:right}.fab-iframe[_ngcontent-%COMP%]{position:absolute;width:800px;height:600px;background-color:#000;box-shadow:0 2px 5px #00000042}.iframe-header[_ngcontent-%COMP%]{display:block;height:22px;width:100%;color:#fff;background-color:#000;font-size:12px;text-align:center;line-height:22px}.iframe-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{float:right;color:#fff}.iframe-class[_ngcontent-%COMP%]{display:block;height:100%;transform-origin:0 0}.ng-draggable[_ngcontent-%COMP%]{cursor:move}.dialog-modal[_ngcontent-%COMP%]{position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto} .fuxa-dialog-property .mat-dialog-container{padding:0}.dialog-modal-content[_ngcontent-%COMP%]{border:1px solid #888;box-shadow:0 0 12px #000!important;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-modal-close[_ngcontent-%COMP%]{position:relative;top:0;right:0;height:22px;width:100%;color:#000000b3;background-color:transparent;font-size:12px;cursor:move!important}.dialog-modal-close[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{float:right}.dialog-input[_ngcontent-%COMP%]{z-index:9999;box-shadow:1px 2px 5px -1px #888;position:absolute;padding:5px;background-color:#fff;min-width:80px;border:.5px solid #888;border-radius:2px}.dialog-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:.5px solid rgba(0,0,0,.1);border-radius:2px;padding:6px 3px 7px 4px;width:100%;display:block;margin:2px auto}.dialog-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:80px}"]})}return r})();class pN{id;name;link;x;y;scale;scaleX;scaleY;width;height;variablesMapping=[];view;sourceDeviceId;disableDefaultClose;zIndex;constructor(a){this.id=a}}var Z0=ce(5024);function Kde(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-title")," "))}function qde(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.history-title")," "))}function Xde(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-ontime")," "))}function $de(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",e.xi3(2,3,t.ontime,"yyyy.MM.dd HH:mm:ss")," ")}}function eue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-text")," "))}function tue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.text," ")}}function iue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-type")," "))}function nue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.type,"")}}function rue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-group")," "))}function oue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.group,"")}}function aue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-status")," "))}function sue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.status," ")}}function lue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-offtime")," "))}function cue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.offtime?e.xi3(2,3,t.offtime,"yyyy.MM.dd HH:mm:ss"):""," ")}}function Aue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-acktime")," "))}function due(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.acktime?e.xi3(2,3,t.acktime,"yyyy.MM.dd HH:mm:ss"):""," ")}}function uue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell")(1,"button",31),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAckAllAlarm())}),e.ALo(2,"translate"),e.TgZ(3,"mat-icon"),e._uU(4,"check_circle_outline"),e.qZA()()()}2&r&&(e.xp6(1),e.s9C("matTooltip",e.lcZ(2,1,"alarms.view-ack-all-alarms")))}function hue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",33),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onAckAlarm(n))}),e.TgZ(1,"mat-icon"),e._uU(2,"check_circle_outline"),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.Q6J("disabled",0===t.toack)}}function pue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e.YNc(1,hue,3,1,"button",32),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.Q6J("ngIf",t.toack>=0)}}function gue(r,a){1&r&&(e.TgZ(0,"mat-header-cell",30),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.view-userack")," "))}function fue(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.userack,"")}}function mue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",43),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw(4);return n.stopPropagation(),e.KtG(o.onShowMode("expand"))}),e.TgZ(1,"mat-icon"),e._uU(2,"fullscreen"),e.qZA()()}}function _ue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",43),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw(4);return n.stopPropagation(),e.KtG(o.onShowMode("collapse"))}),e.TgZ(1,"mat-icon"),e._uU(2,"fullscreen_exit"),e.qZA()()}}function vue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41),e.YNc(1,mue,3,0,"button",42),e.YNc(2,_ue,3,0,"button",42),e.TgZ(3,"button",43),e.NdJ("click",function(n){return e.CHM(t),e.oxw(3).onClose(),e.KtG(n.stopPropagation())}),e.TgZ(4,"mat-icon"),e._uU(5,"clear"),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(1),e.Q6J("ngIf","collapse"===t.currentShowMode),e.xp6(1),e.Q6J("ngIf","expand"===t.currentShowMode)}}function yue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",35)(1,"button",36)(2,"mat-icon"),e._uU(3,"more_vert"),e.qZA()(),e.TgZ(4,"mat-menu",37,38)(6,"button",39),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onShowAlarms())}),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"button",39),e.NdJ("click",function(){e.CHM(t),e.oxw(2);const n=e.MAs(44);return e.KtG(n.open())}),e._uU(10),e.ALo(11,"translate"),e.qZA()(),e.YNc(12,vue,6,2,"div",40),e.qZA()}if(2&r){const t=e.MAs(5),i=e.oxw(2);e.xp6(1),e.Q6J("matMenuTriggerFor",t),e.xp6(3),e.Q6J("overlapTrigger",!1),e.xp6(3),e.Oqu(e.lcZ(8,5,"alarms.show-current")),e.xp6(3),e.Oqu(e.lcZ(11,7,"alarms.show-history")),e.xp6(2),e.Q6J("ngIf",!i.showInContainer)}}function wue(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell"),e.YNc(1,yue,13,9,"div",34),e.qZA()),2&r){const t=e.oxw();e.Udp("flex",t.showInContainer?"0 0 10px":"0 0 90px"),e.xp6(1),e.Q6J("ngIf",!t.fullview||t.showInContainer)}}function Cue(r,a){if(1&r&&e._UZ(0,"mat-cell"),2&r){const t=a.$implicit,i=e.oxw();e.Udp("color",t.color)("flex",i.showInContainer?"0 0 10px":"0 0 90px")}}function bue(r,a){1&r&&e._UZ(0,"mat-header-row")}function xue(r,a){1&r&&e._UZ(0,"mat-row",44),2&r&&e.Udp("background-color",a.$implicit.bkcolor)}function Bue(r,a){1&r&&(e.TgZ(0,"div",45),e._UZ(1,"mat-spinner",46),e.qZA())}const Eue=function(r){return{height:r}},Mue=function(){return[10,25,100]};let UP=(()=>{class r{translateService;dialog;languageService;hmiService;alarmsColumns=Eb;historyColumns=pD;displayColumns=Eb;showheader=!1;currentShowMode="collapse";alarmsPolling;statusText=Mb;priorityText=Db;alarmShowType=Kv;showType=Kv.alarms;history=[];alarmsLoading=!1;dateRange;autostart=!1;showInContainer=!1;fullview=!0;showMode=new e.vpe;dataSource=new Nn([]);table;sort;paginator;rxjsPollingTimer=(0,Mo.H)(0,2e3);destroy=new An.x;constructor(t,i,n,o){this.translateService=t,this.dialog=i,this.languageService=n,this.hmiService=o;const s=vC();this.dateRange=new Ut({endDate:new xt(s.set({hour:23,minute:59,second:59,millisecond:999}).toDate()),startDate:new xt(s.set({hour:0,minute:0,second:0,millisecond:0}).add(-3,"day").toDate())})}ngOnInit(){Object.keys(this.statusText).forEach(t=>{this.translateService.get(this.statusText[t]).subscribe(i=>{this.statusText[t]=i})}),Object.keys(this.priorityText).forEach(t=>{this.translateService.get(this.priorityText[t]).subscribe(i=>{this.priorityText[t]=i})})}ngAfterViewInit(){this.displayColumns=this.alarmsColumns,this.dataSource.paginator=this.paginator,this.dataSource.sort=this.sort,this.table.renderRows(),this.autostart&&this.startAskAlarmsValues()}ngOnDestroy(){this.stopAskAlarmsValues()}startAskAlarmsValues(){this.startPolling()}stopAskAlarmsValues(){this.stopPolling()}stopPolling(){this.alarmsPolling=0,this.destroy.next(null),this.destroy.complete()}startPolling(){try{this.alarmsPolling||(this.alarmsPolling=1,this.destroy=new An.x,this.rxjsPollingTimer.pipe((0,On.R)(this.destroy),(0,Xs.w)(()=>this.hmiService.getAlarmsValues().pipe(Kd(t=>this.handleError(t))))).subscribe(t=>{this.updateAlarmsList(t)}))}catch{}}handleError(t){return(0,Zu.c)()}updateAlarmsList(t){this.showType===Kv.alarms&&(t.forEach(i=>{i.text=this.languageService.getTranslation(i.text)??i.text,i.group=this.languageService.getTranslation(i.group)??i.group,i.status=this.getStatus(i.status),i.type=this.getPriority(i.type)}),this.dataSource.data=t)}getStatus(t){return this.statusText[t]}getPriority(t){return this.priorityText[t]}onAckAlarm(t){this.hmiService.setAlarmAck(t.name).subscribe(i=>{},i=>{console.error("Error setAlarmAck",i)})}onAckAllAlarm(){this.dialog.open(qu,{data:{msg:this.translateService.instant("msg.alarm-ack-all")},position:{top:"60px"}}).afterClosed().subscribe(i=>{i&&this.hmiService.setAlarmAck(null).subscribe(n=>{},n=>{console.error("Error onAckAllAlarm",n)})})}onShowMode(t){this.currentShowMode=t,this.showMode.emit(this.currentShowMode)}onClose(){this.onShowAlarms(),this.currentShowMode="collapse",this.showMode.emit("close"),this.stopAskAlarmsValues()}onShowAlarms(){this.showType=Kv.alarms,this.displayColumns=this.alarmsColumns}onShowAlarmsHistory(){console.log(new Date(this.dateRange.value.startDate),new Date(this.dateRange.value.endDate)),this.showType=Kv.history,this.displayColumns=this.historyColumns;let t={start:new Date(new Date(this.dateRange.value.startDate).setHours(0,0,0,0)),end:new Date(new Date(this.dateRange.value.endDate).setHours(23,59,59,999))};this.alarmsLoading=!0,this.hmiService.getAlarmsHistory(t).pipe(sg(1e3)).subscribe(i=>{i&&(i.forEach(n=>{n.status=this.getStatus(n.status),n.type=this.getPriority(n.type)}),this.dataSource.data=i),this.alarmsLoading=!1})}static \u0275fac=function(i){return new(i||r)(e.Y36(Ni.sK),e.Y36(xo),e.Y36(Pv),e.Y36(aA.Bb))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-alarm-view"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5),e.Gf(Td,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first),e.iGM(o=e.CRH())&&(n.paginator=o.first)}},inputs:{autostart:"autostart",showInContainer:"showInContainer",fullview:"fullview"},outputs:{showMode:"showMode"},decls:52,vars:21,consts:[[1,"header-panel"],[4,"ngIf"],[1,"work-panel",3,"ngStyle"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","ontime"],["mat-sort-header","",4,"matHeaderCellDef"],[3,"color",4,"matCellDef"],["matColumnDef","text"],["matColumnDef","type"],["matColumnDef","group"],["matColumnDef","status"],["matColumnDef","offtime"],["matColumnDef","acktime"],["matColumnDef","ack"],[4,"matHeaderCellDef"],["matColumnDef","userack"],["matColumnDef","history"],[3,"flex",4,"matHeaderCellDef"],[3,"color","flex",4,"matCellDef"],[4,"matHeaderRowDef","matHeaderRowDefSticky"],["class","my-mat-row",3,"background-color",4,"matRowDef","matRowDefColumns"],[1,"table-pagination",3,"pageSizeOptions","pageSize"],["class","spinner-overlay",4,"ngIf"],[3,"formGroup","rangePicker"],["matStartDate","","formControlName","startDate"],["matEndDate","","formControlName","endDate"],["picker",""],["mat-button","","matDateRangePickerCancel",""],["mat-raised-button","","color","primary","matDateRangePickerApply","",3,"click"],["mat-sort-header",""],["mat-icon-button","",3,"matTooltip","click"],["mat-icon-button","","class","remove",3,"disabled","click",4,"ngIf"],["mat-icon-button","",1,"remove",3,"disabled","click"],["class","header-tools",4,"ngIf"],[1,"header-tools"],["mat-icon-button","",1,"header-tools-options",3,"matMenuTriggerFor"],[3,"overlapTrigger"],["optionsgMenu",""],["mat-menu-item","",2,"font-size","14px",3,"click"],["style","display: inline-block;padding-left: unset;",4,"ngIf"],[2,"display","inline-block","padding-left","unset"],["mat-icon-button","","class","header-tools-options",3,"click",4,"ngIf"],["mat-icon-button","",1,"header-tools-options",3,"click"],[1,"my-mat-row"],[1,"spinner-overlay"],["diameter","40",1,"spinner",2,"margin","auto"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0),e.YNc(1,Kde,3,3,"div",1),e.YNc(2,qde,3,3,"div",1),e.qZA(),e.TgZ(3,"div",2)(4,"mat-table",3,4),e.ynx(6,5),e.YNc(7,Xde,3,3,"mat-header-cell",6),e.YNc(8,$de,3,6,"mat-cell",7),e.BQk(),e.ynx(9,8),e.YNc(10,eue,3,3,"mat-header-cell",6),e.YNc(11,tue,2,3,"mat-cell",7),e.BQk(),e.ynx(12,9),e.YNc(13,iue,3,3,"mat-header-cell",6),e.YNc(14,nue,2,3,"mat-cell",7),e.BQk(),e.ynx(15,10),e.YNc(16,rue,3,3,"mat-header-cell",6),e.YNc(17,oue,2,3,"mat-cell",7),e.BQk(),e.ynx(18,11),e.YNc(19,aue,3,3,"mat-header-cell",6),e.YNc(20,sue,2,3,"mat-cell",7),e.BQk(),e.ynx(21,12),e.YNc(22,lue,3,3,"mat-header-cell",6),e.YNc(23,cue,3,6,"mat-cell",7),e.BQk(),e.ynx(24,13),e.YNc(25,Aue,3,3,"mat-header-cell",6),e.YNc(26,due,3,6,"mat-cell",7),e.BQk(),e.ynx(27,14),e.YNc(28,uue,5,3,"mat-header-cell",15),e.YNc(29,pue,2,3,"mat-cell",7),e.BQk(),e.ynx(30,16),e.YNc(31,gue,3,3,"mat-header-cell",6),e.YNc(32,fue,2,3,"mat-cell",7),e.BQk(),e.ynx(33,17),e.YNc(34,wue,2,3,"mat-header-cell",18),e.YNc(35,Cue,1,4,"mat-cell",19),e.BQk(),e.YNc(36,bue,1,0,"mat-header-row",20),e.YNc(37,xue,1,2,"mat-row",21),e.qZA(),e._UZ(38,"mat-paginator",22),e.YNc(39,Bue,2,0,"div",23),e.TgZ(40,"mat-date-range-input",24),e._UZ(41,"input",25)(42,"input",26),e.qZA(),e.TgZ(43,"mat-date-range-picker",null,27)(45,"mat-date-range-picker-actions")(46,"button",28),e._uU(47),e.ALo(48,"translate"),e.qZA(),e.TgZ(49,"button",29),e.NdJ("click",function(){return n.onShowAlarmsHistory()}),e._uU(50),e.ALo(51,"translate"),e.qZA()()()()),2&i){const o=e.MAs(44);e.xp6(1),e.Q6J("ngIf",n.showType===n.alarmShowType.alarms),e.xp6(1),e.Q6J("ngIf",n.showType===n.alarmShowType.history),e.xp6(1),e.Q6J("ngStyle",e.VKq(18,Eue,n.showInContainer||!n.fullview&&"expand"!==n.currentShowMode?"calc(100% - 37px)":"calc(100% - 83px)")),e.xp6(1),e.Q6J("dataSource",n.dataSource),e.xp6(32),e.Q6J("matHeaderRowDef",n.displayColumns)("matHeaderRowDefSticky",!0),e.xp6(1),e.Q6J("matRowDefColumns",n.displayColumns),e.xp6(1),e.Q6J("pageSizeOptions",e.DdM(20,Mue))("pageSize",25),e.xp6(1),e.Q6J("ngIf",n.alarmsLoading),e.xp6(1),e.Q6J("formGroup",n.dateRange)("rangePicker",o),e.xp6(7),e.Oqu(e.lcZ(48,14,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(51,16,"dlg.apply"))}},dependencies:[l.O5,l.PC,I,et,Xe,Sr,Ot,Yn,_I,fI,lx,lw,E_,cw,Vm,Zn,zc,Hc,cc,Td,BA,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Cs,l.uU,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);height:36px;width:100%;text-align:center;line-height:32px;border-bottom:1px solid var(--headerBorder)}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground)}.table-pagination[_ngcontent-%COMP%]{position:absolute;right:20px;bottom:0;background:rgba(0,0,0,0)!important}.filter[_ngcontent-%COMP%]{display:inline-block;min-height:60px;padding:8px 24px 0}.filter[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%]{font-size:14px;width:100%}.mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}.mat-header-row[_ngcontent-%COMP%]{top:0;position:relative;z-index:1;min-height:35px}.mat-header-cell[_ngcontent-%COMP%]{font-size:14px}.mat-row[_ngcontent-%COMP%]{min-height:34px}.mat-column-ontime[_ngcontent-%COMP%], .mat-column-offtime[_ngcontent-%COMP%]{flex:0 0 150px}.mat-column-text[_ngcontent-%COMP%]{flex:2 1 200px}.mat-column-type[_ngcontent-%COMP%]{flex:0 1 120px}.mat-column-group[_ngcontent-%COMP%]{flex:1 1 100px}.mat-column-status[_ngcontent-%COMP%]{flex:0 1 160px}.mat-column-ack[_ngcontent-%COMP%]{flex:0 0 60px}.mat-column-acktime[_ngcontent-%COMP%]{flex:0 0 150px}.mat-column-userack[_ngcontent-%COMP%]{flex:0 0 120px}.mat-column-history[_ngcontent-%COMP%]{flex:0 0 90px}.header-tools[_ngcontent-%COMP%]{line-height:32px}.header-tools[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block;padding-left:10px}.header-tools-options[_ngcontent-%COMP%]{width:30px;height:30px;line-height:30px;vertical-align:bottom}.spinner[_ngcontent-%COMP%]{position:absolute;top:50%;left:calc(50% - 20px)}.spinner-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:99} .mat-datepicker-popup{position:absolute;bottom:50%!important;left:50%!important;transform:translate(-50%,50%)}"]})}return r})();var Kv=function(r){return r[r.alarms=0]="alarms",r[r.history=1]="history",r}(Kv||{}),Ng=ce(8433);class zP{id;name;latitude;longitude;description;viewId;pageId;url;constructor(a){this.id=a}}function Due(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function Tue(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}let gN=(()=>{class r{dialogRef;fb;translateService;projectService;data;location;formGroup;views=[];constructor(t,i,n,o,s){this.dialogRef=t,this.fb=i,this.translateService=n,this.projectService=o,this.data=s,this.location=this.data??new zP(ii.cQ.getGUID("l_"))}ngOnInit(){this.views=this.projectService.getViews()?.filter(t=>t.type!==Tt.bW.maps),this.formGroup=this.fb.group({name:[this.location.name,Z.required],latitude:[this.location.latitude],longitude:[this.location.longitude],viewId:[this.location.viewId],pageId:[this.location.pageId],url:[this.location.url],description:[this.location.description]}),this.formGroup.controls.name.addValidators(this.isValidName())}onNoClick(){this.dialogRef.close()}onOkClick(){this.location={...this.location,...this.formGroup.getRawValue()},this.dialogRef.close(this.location)}isValidName(){const t=this.projectService.getMapsLocations().map(i=>i.name);return i=>this.location?.name===i.value?null:-1!==t?.indexOf(i.value)?{name:this.translateService.instant("msg.maps-location-name-exist")}:null}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-maps-location-property"]],decls:54,vars:34,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","name","type","text"],[1,"form-input-dual","mt5"],[1,"my-form-field","inbk"],["formControlName","latitude","type","text"],[1,"my-form-field","inbk","ml20"],["formControlName","longitude","type","text"],[1,"my-form-field","mt5"],["formControlName","viewId"],[3,"value"],[3,"value",4,"ngFor","ngForOf"],["formControlName","pageId"],[1,"my-form-field","item-block","mt5"],["formControlName","url","type","text"],["formControlName","description","type","text"],["mat-dialog-actions","",1,"dialog-action","mt10"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"div",7)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"input",8),e.qZA(),e.TgZ(18,"div",9)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"input",10),e.qZA()(),e.TgZ(23,"div",11)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"mat-select",12),e._UZ(28,"mat-option",13),e.YNc(29,Due,2,2,"mat-option",14),e.qZA()(),e.TgZ(30,"div",11)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"mat-select",15),e._UZ(35,"mat-option",13),e.YNc(36,Tue,2,2,"mat-option",14),e.qZA()(),e.TgZ(37,"div",16)(38,"span"),e._uU(39),e.ALo(40,"translate"),e.qZA(),e._UZ(41,"input",17),e.qZA(),e.TgZ(42,"div",16)(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA(),e._UZ(46,"input",18),e.qZA()(),e.TgZ(47,"div",19)(48,"button",20),e.NdJ("click",function(){return n.onNoClick()}),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"button",21),e.NdJ("click",function(){return n.onOkClick()}),e._uU(52),e.ALo(53,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,14,"maps.location-property-title")),e.xp6(7),e.hij("*",e.lcZ(10,16,"maps.location-property-name"),""),e.xp6(6),e.Oqu(e.lcZ(16,18,"maps.location-property-latitude")),e.xp6(5),e.Oqu(e.lcZ(21,20,"maps.location-property-longitude")),e.xp6(5),e.Oqu(e.lcZ(26,22,"maps.location-property-card")),e.xp6(4),e.Q6J("ngForOf",n.views),e.xp6(3),e.Oqu(e.lcZ(33,24,"maps.location-property-view")),e.xp6(4),e.Q6J("ngForOf",n.views),e.xp6(3),e.Oqu(e.lcZ(40,26,"maps.location-property-url")),e.xp6(5),e.Oqu(e.lcZ(45,28,"maps.location-property-description")),e.xp6(5),e.Oqu(e.lcZ(50,30,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(53,32,"dlg.ok")))},dependencies:[l.sg,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%]{width:400px;min-height:220px;overflow:hidden;padding-bottom:7px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .form-input-dual[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:40%}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})();function Iue(r,a){if(1&r&&(e.TgZ(0,"mat-option",12)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(2),e.Oqu(t.name)}}let kue=(()=>{class r{dialogRef;projectService;data;formGroup;locationFilter=new xt("");locations$;allLocations=[];constructor(t,i,n){this.dialogRef=t,this.projectService=i,this.data=n,this.formGroup=new Ut({location:new xt(null,[Z.required,this.locationValidator.bind(this)])})}ngOnInit(){this.allLocations=this.projectService.getMapsLocations()?.filter(t=>!this.data?.some(i=>i.id===t.id)),this.locations$=this.formGroup.get("location").valueChanges.pipe(na(""),(0,f.U)(t=>this._filterLocations(t||"")))}_filterLocations(t){let i="";return"string"==typeof t?i=t.toLowerCase():t&&t.name&&(i=t.name.toLowerCase()),this.allLocations.filter(n=>n.name.toLowerCase().includes(i))}displayFn(t){return t?t.name:""}locationValidator(t){const i=t.value;return i&&"object"==typeof i&&i.id||"string"==typeof i&&this.allLocations.find(o=>o.name.toLowerCase()===i.toLowerCase())?null:{invalidLocation:!0}}onLocationSelected(t){this.formGroup.get("location").setValue(t),this.formGroup.get("location").updateValueAndValidity()}onNoClick(){this.dialogRef.close()}onOkClick(){const t=this.formGroup.get("location").value;let i;t&&"object"==typeof t&&t.id?i=t:"string"==typeof t&&(i=this.allLocations.find(n=>n.name===t)),i&&this.dialogRef.close(i)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-maps-location-import"]],decls:25,vars:25,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","input"],["matInput","","type","text","formControlName","location",1,"location-input",3,"title","placeholder","matAutocomplete"],[3,"displayWith","optionSelected"],["autoLocations","matAutocomplete"],["class","location-option-label",3,"value",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action","mt10"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"location-option-label",3,"value"]],template:function(i,n){if(1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.ALo(12,"translate"),e.ALo(13,"translate"),e.TgZ(14,"mat-autocomplete",6,7),e.NdJ("optionSelected",function(s){return n.onLocationSelected(s.option.value)}),e.YNc(16,Iue,3,2,"mat-option",8),e.ALo(17,"async"),e.qZA()()(),e.TgZ(18,"div",9)(19,"button",10),e.NdJ("click",function(){return n.onNoClick()}),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"button",11),e.NdJ("click",function(){return n.onOkClick()}),e._uU(23),e.ALo(24,"translate"),e.qZA()()()),2&i){const o=e.MAs(15);e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,11,"maps.location-property-title")),e.xp6(7),e.Oqu(e.lcZ(10,13,"maps.location-to-import")),e.xp6(2),e.s9C("title",e.lcZ(12,15,"maps.location-to-import-input-title")),e.s9C("placeholder",e.lcZ(13,17,"maps.location-to-import-input-title")),e.Q6J("matAutocomplete",o),e.xp6(3),e.Q6J("displayWith",n.displayFn),e.xp6(2),e.Q6J("ngForOf",e.lcZ(17,19,n.locations$)),e.xp6(4),e.Oqu(e.lcZ(21,21,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(24,23,"dlg.ok"))}},dependencies:[l.sg,In,I,et,Xe,Sr,Ot,h_,Fm,Nr,Yn,Qr,Kr,Ir,Zn,qd,zr,l.Ov,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%] .location-input{font-size:13px;min-width:450px;vertical-align:unset!important;width:unset} .location-option-label{line-height:28px!important;height:28px!important} .location-option-label span{font-size:13px}"]})}return r})();function Que(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",3),e.NdJ("click",function(){const o=e.CHM(t).$implicit;return e.KtG(o.action())}),e.TgZ(1,"mat-icon"),e._uU(2),e.qZA()()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw();e.Q6J("ngStyle",n.buttonStyles[i]),e.xp6(2),e.Oqu(t.icon)}}let Sue=(()=>{class r{changeDetector;buttons=[];isOpen=!1;buttonStyles=[];constructor(t){this.changeDetector=t}ngAfterViewInit(){this.toggleMenu(),this.changeDetector.detectChanges()}toggleMenu(){this.isOpen=!this.isOpen,this.isOpen&&this.calculateButtonPositions()}calculateButtonPositions(){const t=this.buttons.length;let i=[];if(1===t)i=[0];else if(2===t)i=[-30,30];else{const s=120/(t-1);i=Array.from({length:t},(c,g)=>g*s-60)}this.buttonStyles=i.map(s=>{const c=s*(Math.PI/180);return{transform:`translate(${55*Math.sin(c)}px, ${55*-Math.cos(c)-30}px)`}})}static \u0275fac=function(i){return new(i||r)(e.Y36(e.sBO))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-maps-fab-button-menu"]],inputs:{buttons:"buttons"},decls:3,vars:3,consts:[[1,"fab-container"],[1,"fab-buttons"],["mat-mini-fab","","class","fab",3,"ngStyle","click",4,"ngFor","ngForOf"],["mat-mini-fab","",1,"fab",3,"ngStyle","click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e.YNc(2,Que,3,2,"button",2),e.qZA()()),2&i&&(e.xp6(1),e.ekj("open",n.isOpen),e.xp6(1),e.Q6J("ngForOf",n.buttons))},dependencies:[l.sg,l.PC,Yn,Zn],styles:["[_nghost-%COMP%] .fab-container[_ngcontent-%COMP%] .fab-buttons[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%] .fab-container[_ngcontent-%COMP%] .fab[_ngcontent-%COMP%]{position:absolute;transition:transform .3s ease-in-out;background-color:#ffffffb3!important;color:#2b82c8!important}"]})}return r})();const Pue=["menuTrigger"],Fue=["mapContainer"];function Oue(r,a){1&r&&e._UZ(0,"div",12)}function Lue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",11),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAddLocation())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.edit-add-location")," "))}function Rue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",11),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onImportLocation())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.edit-import-location")," "))}function Yue(r,a){if(1&r&&(e.ynx(0),e.YNc(1,Lue,3,3,"button",10),e.YNc(2,Rue,3,3,"button",10),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.editMode),e.xp6(1),e.Q6J("ngIf",t.editMode)}}function Nue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",11),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onEditLocation())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.edit-edit-location")," "))}function Uue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",11),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onRemoveLocation())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.edit-remove-location")," "))}function zue(r,a){if(1&r&&(e.ynx(0),e.YNc(1,Nue,3,3,"button",10),e.YNc(2,Uue,3,3,"button",10),e.BQk()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.editMode),e.xp6(1),e.Q6J("ngIf",t.editMode)}}function Hue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",11),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onSetStartLocation())}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.edit-start-location")," "))}const Gue=function(r){return{"top.px":r}};let GP=(()=>{class r{resolver;injector;dialog;projectService;appRef;translateService;toastr;view;hmi;gaugesManager;editMode;onGoTo=new e.vpe;menuTrigger;menuTriggerButton;mapContainer;map=null;destroy$=new An.x;lastClickLatLng;lastClickMarker;menuPosition={x:"0px",y:"0px"};locations=[];lastClickMapLocation;openPopups=[];currentPopup=null;constructor(t,i,n,o,s,c,g){this.resolver=t,this.injector=i,this.dialog=n,this.projectService=o,this.appRef=s,this.translateService=c,this.toastr=g}ngAfterViewInit(){let t=[46.9466746335407,7.444236656153662];this.view.property?.startLocation&&(t=[this.view.property.startLocation.latitude,this.view.property.startLocation.longitude]),setTimeout(()=>{this.map=Ng.map("map").setView(t,this.view.property?.startZoom||13),Ng.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:"© FUXA"}).addTo(this.map),this.loadMapsResources(),this.projectService.onLoadHmi.pipe((0,On.R)(this.destroy$)).subscribe(i=>{this.loadMapsResources()}),this.initMapEvents(),this.map.invalidateSize()},200)}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}reload(){this.loadMapsResources()}initMapEvents(){this.map.on("contextmenu",t=>{this.showContextMenu(t)}),this.map.on("click",()=>{this.menuTrigger.closeMenu()})}loadMapsResources(){this.hmi=this.projectService.getHmi(),this.locations=this.view?.svgcontent?this.projectService.getMapsLocations(JSON.parse(this.view.svgcontent)):[],this.clearMarker();const t=Ng.icon({iconUrl:"assets/images/marker-icon.png",shadowUrl:"assets/images/marker-shadow.png",iconSize:[25,41],iconAnchor:[12,45],popupAnchor:[0,-34]});this.locations.forEach(i=>{const n=Ng.marker([i.latitude,i.longitude]).addTo(this.map);n.locationId=i.id,this.openMarkerTooltip(n,i),n.setIcon(t),n.on("click",()=>{this.onClickMarker(i,n)}),n.on("contextmenu",o=>{this.showContextMenu(o,n)})}),this.map.on("popupopen",i=>{this.openPopups.push(i.popup)}),this.map.on("popupclose",i=>{const n=this.openPopups.indexOf(i.popup);n>-1&&this.openPopups.splice(n,1),i.popup=null})}openMarkerTooltip(t,i){t.bindTooltip(`${i.name}`,{permanent:!1,direction:"top",offset:[2,-35]})}closeAllPopups(){this.openPopups.forEach(t=>t.close()),this.openPopups.length=0}showContextMenu(t,i){this.lastClickLatLng=t.latlng,this.lastClickMarker=i;const n=this.map.getContainer().getBoundingClientRect(),s=t.originalEvent.clientY-n.top,c=this.menuTriggerButton.nativeElement;c.style.left=t.originalEvent.clientX-n.left+"px",c.style.top=`${s}px`,c.style.position="absolute",c.style.display="block",this.menuTrigger.openMenu()}onClickMarker(t,i){this.currentPopup?(this.currentPopup.on("remove",()=>{this.currentPopup=null,this.showPopup(t,i)}),this.map.closePopup(this.currentPopup)):this.showPopup(t,i)}showPopup(t,i){this.lastClickMapLocation=t,this.isToOpenMenu()?this.showFabButton(t,i):this.createCardPopup(t,i)}showFabButton(t,i){const n=document.createElement("div"),s=this.resolver.resolveComponentFactory(Sue).create(this.injector);this.appRef.attachView(s.hostView),n.appendChild(s.hostView.rootNodes[0]),n.style.width="40px";var c=[];t.viewId&&c.push({icon:"chat_bubble_outline",action:()=>{this.map.closePopup(this.currentPopup),this.createCardPopup(t,i)}}),t.pageId&&c.push({icon:"arrow_outward",action:()=>{this.map.closePopup(this.currentPopup),this.onGoTo?.emit(t.pageId)}}),t.url&&c.push({icon:"open_in_new",action:()=>{this.map.closePopup(this.currentPopup),window.open(t.url,"_blank")}}),s.instance.buttons=c,this.currentPopup=Ng.popup({closeButton:!1,autoClose:!1,closeOnClick:!0,offset:Ng.point(0,0)}).setLatLng([t.latitude,t.longitude]).setContent(n).openOn(this.map),this.currentPopup.on("remove",()=>{this.currentPopup=null})}createCardPopup(t,i){setTimeout(()=>{let n="map"+t?.viewId;if(!t?.viewId||document.getElementById(n))return;const o=document.createElement("div"),c=this.resolver.resolveComponentFactory(mm).create(this.injector);c.instance.gaugesManager=this.gaugesManager,c.instance.hmi=this.hmi,c.instance.view=this.hmi.views.find(g=>g.id===t.viewId),c.instance.child=!0,o.setAttribute("id",n),this.appRef.attachView(c.hostView),o.appendChild(c.hostView.rootNodes[0]),o.style.width=c.instance.view.profile.width+"px",this.currentPopup=Ng.popup({autoClose:!1,closeOnClick:!1,offset:Ng.point(0,-20)}).setLatLng([t.latitude,t.longitude]).setContent(o).openOn(this.map),this.currentPopup.on("remove",()=>{this.currentPopup=null})},250)}onCloseAllPopup(){this.closeAllPopups()}onAddLocation(){let t=new zP(ii.cQ.getGUID("l_"));t.latitude=this.lastClickLatLng.lat,t.longitude=this.lastClickLatLng.lng,this.editLocation(t)}onEditLocation(){var t=this.locations.find(i=>i.id===this.lastClickMarker.locationId);t&&this.editLocation(t)}onRemoveLocation(){if(this.lastClickMarker){var t=this.locations.findIndex(i=>i.id===this.lastClickMarker.locationId);-1!==t&&(this.locations.splice(t,1),this.view.svgcontent=JSON.stringify(this.locations.map(i=>i.id)),this.projectService.setViewAsync(this.view).then(()=>{this.map.removeLayer(this.lastClickMarker),this.lastClickMarker=null,this.loadMapsResources()}))}}onSetStartLocation(){this.view.property??=new Tt.Bi,this.view.property.startLocation=new zP(ii.cQ.getGUID("l_")),this.view.property.startLocation.latitude=this.lastClickLatLng.lat,this.view.property.startLocation.longitude=this.lastClickLatLng.lng,this.view.property.startZoom=this.map.getZoom(),this.projectService.setViewAsync(this.view).then(()=>{this.toastr.success(this.translateService.instant("maps.edit-start-location-saved"))})}onImportLocation(){this.dialog.open(kue,{position:{top:"60px"},disableClose:!0,data:this.locations}).afterClosed().subscribe(i=>{i&&this.insertLocations(i)})}isToOpenMenu(){return!!this.lastClickMapLocation&&[this.lastClickMapLocation.pageId,this.lastClickMapLocation.url].filter(n=>null!=n&&""!==n).length>=1}clearMarker(){this.map.eachLayer(t=>{t instanceof Ng.Marker&&this.map.removeLayer(t)})}editLocation(t){this.dialog.open(gN,{position:{top:"60px"},disableClose:!0,data:t}).afterClosed().subscribe(n=>{n&&this.projectService.setMapsLocation(n,t).subscribe(()=>{this.locations.find(o=>o.id===t.id)?this.loadMapsResources():this.insertLocations(t)})})}insertLocations(t){this.locations.push(t),this.view.svgcontent=JSON.stringify(this.locations.map(i=>i.id)),this.projectService.setViewAsync(this.view).then(()=>{this.loadMapsResources()})}static \u0275fac=function(i){return new(i||r)(e.Y36(e._Vd),e.Y36(e.zs3),e.Y36(xo),e.Y36(wr.Y4),e.Y36(e.z2F),e.Y36(Ni.sK),e.Y36(Vf._W))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-maps-view"]],viewQuery:function(i,n){if(1&i&&(e.Gf(cc,5),e.Gf(Pue,5,e.SBq),e.Gf(Fue,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.menuTrigger=o.first),e.iGM(o=e.CRH())&&(n.menuTriggerButton=o.first),e.iGM(o=e.CRH())&&(n.mapContainer=o.first)}},inputs:{view:"view",hmi:"hmi",gaugesManager:"gaugesManager",editMode:"editMode"},outputs:{onGoTo:"onGoTo"},decls:15,vars:12,consts:[[1,"container"],["mapContainer",""],["class","tools_panel",4,"ngIf"],["id","map",3,"ngStyle"],["mat-button","",1,"hidden-trigger",3,"matMenuTriggerFor"],["menuTrigger","matMenuTrigger"],[3,"overlapTrigger"],["contextMenu","matMenu"],[4,"ngIf"],[1,"menu-separator"],["mat-menu-item","",3,"click",4,"ngIf"],["mat-menu-item","",3,"click"],[1,"tools_panel"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0,1),e.YNc(2,Oue,1,0,"div",2),e._UZ(3,"div",3),e.qZA(),e._UZ(4,"button",4,5),e.TgZ(6,"mat-menu",6,7),e.YNc(8,Yue,3,2,"ng-container",8),e.YNc(9,zue,3,2,"ng-container",8),e._UZ(10,"mat-divider",9),e.YNc(11,Hue,3,3,"button",10),e.TgZ(12,"button",11),e.NdJ("click",function(){return n.onCloseAllPopup()}),e._uU(13),e.ALo(14,"translate"),e.qZA()()),2&i){const o=e.MAs(7);e.xp6(2),e.Q6J("ngIf",n.editMode),e.xp6(1),e.Q6J("ngStyle",e.VKq(10,Gue,n.editMode?37:0)),e.xp6(1),e.Q6J("matMenuTriggerFor",o),e.xp6(2),e.Q6J("overlapTrigger",!1),e.xp6(2),e.Q6J("ngIf",!n.lastClickMarker),e.xp6(1),e.Q6J("ngIf",n.lastClickMarker),e.xp6(2),e.Q6J("ngIf",n.editMode),e.xp6(2),e.hij(" ",e.lcZ(14,8,"maps.close-popups")," ")}},dependencies:[l.O5,l.PC,Yn,a0,zc,Hc,cc,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .tools_panel[_ngcontent-%COMP%]{display:inline-flex;width:100%;height:37px;background-color:var(--headerBackground);color:var(--headerColor)}[_nghost-%COMP%] .container[_ngcontent-%COMP%] #map[_ngcontent-%COMP%]{position:absolute;left:0;right:0;bottom:0}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .leaflet-popup-content-wrapper{padding:unset;border-radius:unset;background-color:transparent}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .leaflet-popup-content{width:auto!important;border-radius:unset;margin:unset;box-shadow:0 4px 6px #0000001a}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .leaflet-popup-close-button{font-size:24px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .leaflet-popup-tip-container{display:none!important}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .hidden-trigger[_ngcontent-%COMP%]{position:absolute;opacity:0;pointer-events:none;z-index:-1}"]})}return r})();function Zue(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"app-maps-view",10),e.NdJ("onGoTo",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.onGoToPage(n))}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(3).$implicit,i=e.oxw();e.xp6(1),e.Q6J("view",t.content)("hmi",i.hmi)("gaugesManager",i.gaugesManager)}}function Jue(r,a){if(1&r&&(e.ynx(0),e._UZ(1,"app-fuxa-view",11),e.BQk()),2&r){const t=e.oxw(3),i=t.index,n=t.$implicit,o=e.oxw();e.xp6(1),e.MGl("id","fuxaView",i,""),e.Q6J("view",n.content)("hmi",o.hmi)("gaugesManager",o.gaugesManager)}}function jue(r,a){if(1&r&&(e.TgZ(0,"div"),e.ynx(1,7),e.YNc(2,Zue,2,3,"ng-container",8),e.YNc(3,Jue,2,4,"ng-container",9),e.BQk(),e.qZA()),2&r){const t=e.oxw(2).$implicit,i=e.oxw();e.xp6(1),e.Q6J("ngSwitch",null==t.content?null:t.content.type),e.xp6(1),e.Q6J("ngSwitchCase",i.mapsViewType)}}function Vue(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"app-alarm-view",12,13),e.qZA()),2&r&&(e.xp6(1),e.Q6J("fullview",!0)("showInContainer",!0)("autostart",!0))}function Wue(r,a){if(1&r&&(e.TgZ(0,"div",16)(1,"span")(2,"b"),e._uU(3,"iframe"),e.qZA(),e._uU(4),e.qZA()()),2&r){const t=e.oxw(3).$implicit;e.xp6(4),e.hij(" ",t.card.data,"")}}function Kue(r,a){if(1&r&&e._UZ(0,"app-iframe",17),2&r){const t=e.oxw(3).$implicit;e.Q6J("link",t.card.data)}}function que(r,a){if(1&r&&(e.TgZ(0,"div"),e.YNc(1,Wue,5,1,"div",14),e.YNc(2,Kue,1,1,"ng-template",null,15,e.W1O),e.qZA()),2&r){const t=e.MAs(3),i=e.oxw(3);e.xp6(1),e.Q6J("ngIf",i.edit)("ngIfElse",t)}}function Xue(r,a){if(1&r&&(e.TgZ(0,"div",6)(1,"div",7),e.YNc(2,jue,4,2,"div",8),e.YNc(3,Vue,3,3,"div",8),e.YNc(4,que,4,2,"div",8),e.qZA()()),2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(1),e.Udp("transform","scale("+t.card.zoom+")"),e.Q6J("ngSwitch",t.card.type),e.xp6(1),e.Q6J("ngSwitchCase",i.cardType.view),e.xp6(1),e.Q6J("ngSwitchCase",i.cardType.alarms),e.xp6(1),e.Q6J("ngSwitchCase",i.cardType.iframe)}}function $ue(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",18),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"mat-slider",19),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.card.zoom=n)})("input",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onZoomChanged(o,n))})("mousedown",function(n){return n.stopPropagation()}),e.qZA(),e.TgZ(4,"button",20),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onEditCard(n))})("mousedown",function(n){return n.stopPropagation()}),e.TgZ(5,"mat-icon"),e._uU(6,"edit"),e.qZA()(),e.TgZ(7,"button",20),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onRemoveCard(n))})("mousedown",function(n){return n.stopPropagation()}),e.TgZ(8,"mat-icon"),e._uU(9,"close"),e.qZA()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(1),e.hij(" ",e.lcZ(2,3,"card.style-zoom")," "),e.xp6(2),e.Q6J("step",.05)("ngModel",t.card.zoom)}}function ehe(r,a){if(1&r&&(e.TgZ(0,"gridster-item",3),e.YNc(1,Xue,5,6,"div",4),e.YNc(2,$ue,10,5,"div",5),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.Q6J("item",t),e.xp6(1),e.Q6J("ngIf",t.content),e.xp6(1),e.Q6J("ngIf",i.edit)}}let fN=(()=>{class r{renderer;changeDetector;options;edit=!0;view;hmi;gaugesManager;editCard=new e.vpe;onGoTo=new e.vpe;fuxaViews;gridOptions;dashboard=[];cardType=Tt.W9;mapsViewType=Tt.bW.maps;loadOk=!1;constructor(t,i){this.renderer=t,this.changeDetector=i,this.gridOptions=new mN,this.gridOptions.itemChangeCallback=this.itemChange,this.gridOptions.itemResizeCallback=r.itemResizeTrigger}ngOnInit(){this.gridOptions={...this.gridOptions,...this.options}}ngAfterViewInit(){this.reload()}reload(){if(this.loadOk)return;let t=document.querySelector("gridster");t&&(this.view.profile.bkcolor&&(t.style.backgroundColor=this.view.profile.bkcolor),this.edit||this.renderer.setStyle(t?.parentElement,"width","100vw")),this.gridOptions.gridType=this.view.profile.gridType??Z0.tQ.Fixed,this.view.profile.margin>=0&&(this.gridOptions.margin=this.view.profile.margin,this.gridOptions.api.optionsChanged()),this.initCardsEditor(this.view.svgcontent)}initCardsEditor(t){if(this.dashboard=[],t){let i=JSON.parse(t);for(let n=0;n{if(s){if(s.type===this.cardType.view){let we=this.hmi.views.filter($e=>$e.name===s.data);we&&we.length&&(we[0].svgcontent&&(O.content=we[0]),we[0].profile.bkcolor&&(O.background=we[0].profile.bkcolor))}else s.type===this.cardType.alarms?(O.background="#CCCCCC",O.content=" "):s.type===this.cardType.iframe&&(O.content=s.data);this.itemChange(O,ne),this.changeDetector.detectChanges()}},this.dashboard.push(B)}render(){this.initCardsEditor(this.view.svgcontent)}getContent(){return JSON.stringify(this.dashboard)}getWindgetViewName(){return this.dashboard.filter(i=>i.card.type===Tt.W9.view&&i.card.data).map(i=>i.card.data)}onZoomChanged(t,i){t.card.zoom=i.value}getFuxaView(t){return this.fuxaViews?.toArray()[t]}itemChange(t,i){i.el&&(t.background&&(i.el.style.backgroundColor=t.background),(t.card.type===Tt.W9.alarms||t.card.type===Tt.W9.iframe)&&i.el.classList.add("card-html"))}static itemResizeTrigger(t,i){if(t.card?.type===Tt.W9.view)if("maps"===t.content?.type)i.el.firstChild.style&&(i.el.firstChild.style.height="100%",i.el.firstChild.style.width="100%");else{let n,o,s;n=i.el.clientWidth/t.content?.profile?.width,o=i.el.clientHeight/t.content?.profile?.height,s=ii.cQ.searchTreeTagName(i.el,"svg"),"contain"===t.card?.scaleMode?s?.setAttribute("transform","scale("+Math.min(n,o)+")"):"stretch"===t.card?.scaleMode&&s?.setAttribute("transform","scale("+n+", "+o+")")}else t.card.type===Tt.W9.iframe&&i.el.firstChild.style&&(i.el.firstChild.style.height="100%",i.el.firstChild.style.width="100%")}static \u0275fac=function(i){return new(i||r)(e.Y36(e.Qsj),e.Y36(e.sBO))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-cards-view"]],viewQuery:function(i,n){if(1&i&&e.Gf(mm,5),2&i){let o;e.iGM(o=e.CRH())&&(n.fuxaViews=o)}},inputs:{options:"options",edit:"edit",view:"view",hmi:"hmi",gaugesManager:"gaugesManager"},outputs:{editCard:"editCard",onGoTo:"onGoTo"},decls:3,vars:2,consts:[[1,"container"],[3,"options"],[3,"item",4,"ngFor","ngForOf"],[3,"item"],["class","card-content",4,"ngIf"],["class","card-tool",4,"ngIf"],[1,"card-content"],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[3,"view","hmi","gaugesManager","onGoTo"],[1,"lab-body",3,"id","view","hmi","gaugesManager"],[3,"fullview","showInContainer","autostart"],["alarmsview",""],["class","card-iframe-edit",4,"ngIf","ngIfElse"],["iframe",""],[1,"card-iframe-edit"],[1,"iframe-class",3,"link"],[1,"card-tool"],["max","2","min","0.1","thumbLabel","true",2,"min-width","80px",3,"step","ngModel","ngModelChange","input","mousedown"],["mat-icon-button","",3,"click","mousedown"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"gridster",1),e.YNc(2,ehe,3,3,"gridster-item",2),e.qZA()()),2&i&&(e.xp6(1),e.Q6J("options",n.gridOptions),e.xp6(1),e.Q6J("ngForOf",n.dashboard))},dependencies:[l.sg,l.O5,l.RF,l.n9,l.ED,et,$i,Yn,Zn,f0,Z0.sm,Z0.IM,NP,mm,UP,GP,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .card-html[_ngcontent-%COMP%] .card-content[_ngcontent-%COMP%]{width:100%!important;height:100%!important}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .card-content[_ngcontent-%COMP%]{margin:0 auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:-moz-fit-content;width:fit-content}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .card-iframe-edit[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#000;display:block;text-align:center}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .card-content[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:100%!important;height:100%!important}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .card-tool[_ngcontent-%COMP%]{background-color:#0009;color:#fff;position:absolute;bottom:-15px;padding-left:10px;font-size:11px;left:50%;transform:translate(-50%,-50%);width:194px;border-radius:2px}"]})}return r})();class mN{gridType=Z0.tQ.Fixed;compactType=Z0.RU.None;maxCols=100;maxRows=100;fixedColWidth=35;fixedRowHeight=35;margin=10;disableWarnings=!0;draggable={enabled:!0};resizable={enabled:!0}}var the=ce(1549),_D=ce.n(the);class ihe{intervals=[];addInterval(a,t,i,n){const o=setInterval(()=>t.call(n,i),a);this.intervals.push(o)}clearIntervals(){this.intervals.forEach(a=>{clearInterval(a)}),this.intervals=[]}}const nhe=["sidenav"],rhe=["matsidenav"],ohe=["fuxaview"],ahe=["cardsview"],she=["alarmsview"],lhe=["container"],che=["header"];function Ahe(r,a){1&r&&(e.TgZ(0,"div",13),e._UZ(1,"mat-progress-bar",14),e.qZA())}function dhe(r,a){1&r&&(e.TgZ(0,"div",15)(1,"div")(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-icon"),e._uU(6,"block"),e.qZA()()()),2&r&&(e.xp6(3),e.Oqu(e.lcZ(4,1,"msg.server-connection-failed")))}function uhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-sidenav",16,17)(2,"app-sidenav",18,19),e.NdJ("goToPage",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onGoToPage(n))})("goToLink",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onGoToLink(n))}),e.qZA()()}if(2&r){const t=e.MAs(1),i=e.oxw();e.Q6J("mode",i.showSidenav),e.xp6(2),e.Q6J("sidenav",t)}}function hhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",32)(1,"button",33),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw(2);return n.stopPropagation(),e.KtG(o.matsidenav.opened?o.matsidenav.close():o.matsidenav.open())}),e.TgZ(2,"mat-icon",34),e._uU(3,"menu"),e.qZA()()()}}function phe(r,a){if(1&r&&(e.TgZ(0,"mat-icon"),e._uU(1),e.qZA()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Oqu(t.icon)}}function ghe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"button",37),e.YNc(2,phe,2,1,"mat-icon",8),e._uU(3),e.qZA(),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw(2);let n,o,s;e.xp6(1),e.Udp("background-color",null!==(n=t.bkcolor)&&void 0!==n?n:i.layoutHeader.bkcolor)("color",null!==(o=t.fgcolor)&&void 0!==o?o:i.layoutHeader.fgcolor)("font-family",i.layoutHeader.fontFamily)("font-size",i.layoutHeader.fontSize+"px !important")("margin-left",t.marginLeft,"px")("margin-right",t.marginRight,"px"),e.Q6J("id",t.id),e.xp6(1),e.Q6J("ngIf",t.icon),e.xp6(1),e.hij(" ",null!==(s=t.text)&&void 0!==s?s:t.type," ")}}function fhe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"button",38),e._uU(2),e.qZA(),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw(2);let n,o,s;e.xp6(1),e.Udp("background-color",null!==(n=t.bkcolor)&&void 0!==n?n:i.layoutHeader.bkcolor)("color",null!==(o=t.fgcolor)&&void 0!==o?o:i.layoutHeader.fgcolor)("font-family",i.layoutHeader.fontFamily)("font-size",i.layoutHeader.fontSize+"px !important")("margin-left",t.marginLeft,"px")("margin-right",t.marginRight,"px"),e.Q6J("id",t.id),e.xp6(1),e.hij(" ",null!==(s=t.text)&&void 0!==s?s:t.type," ")}}function mhe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"button",39)(2,"mat-icon"),e._uU(3),e.qZA()(),e.BQk()),2&r){const t=e.oxw().$implicit,i=e.oxw(2);let n,o;e.xp6(1),e.Udp("background-color",null!==(n=t.bkcolor)&&void 0!==n?n:i.layoutHeader.bkcolor)("color",null!==(o=t.fgcolor)&&void 0!==o?o:i.layoutHeader.fgcolor)("margin-left",t.marginLeft,"px")("margin-right",t.marginRight,"px"),e.Q6J("id",t.id),e.xp6(2),e.Oqu(t.icon)}}function _he(r,a){1&r&&(e.ynx(0,35),e.YNc(1,ghe,4,15,"ng-container",36),e.YNc(2,fhe,3,14,"ng-container",36),e.YNc(3,mhe,4,10,"ng-container",36),e.BQk()),2&r&&(e.Q6J("ngSwitch",a.$implicit.type),e.xp6(1),e.Q6J("ngSwitchCase","button"),e.xp6(1),e.Q6J("ngSwitchCase","label"),e.xp6(1),e.Q6J("ngSwitchCase","image"))}function vhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",33),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAlarmsShowMode("collapse"))}),e.TgZ(1,"mat-icon",40),e._uU(2,"notifications_none"),e.qZA(),e.TgZ(3,"div",41),e._uU(4),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Udp("opacity",t.alarms.count?"":"0"),e.xp6(1),e.Oqu(t.alarms.count)}}function yhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",33),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAlarmsShowMode("collapse"))}),e.TgZ(1,"mat-icon",42),e._uU(2,"error_outline"),e.qZA(),e.TgZ(3,"div",43),e._uU(4),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Udp("opacity",t.infos.count?"":"0"),e.xp6(1),e.Oqu(t.infos.count)}}function whe(r,a){if(1&r&&(e.TgZ(0,"div",44),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.hij(" ",e.xi3(2,1,t.currentDateTime,t.layoutHeader.dateTimeDisplay)," ")}}function Che(r,a){if(1&r&&(e.TgZ(0,"div",53),e._uU(1),e.qZA()),2&r){const t=e.oxw().ngIf;e.xp6(1),e.Oqu(t.currentLanguage.id)}}function bhe(r,a){if(1&r&&(e.TgZ(0,"div",53),e._uU(1),e.qZA()),2&r){const t=e.oxw().ngIf;e.xp6(1),e.Oqu(t.currentLanguage.name)}}function xhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",51),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.onSetLanguage(o))}),e._uU(1),e.qZA()}if(2&r){const t=a.$implicit;e.xp6(1),e.AsE("",t.id," (",t.name,")")}}function Bhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",45)(1,"button",46)(2,"mat-icon",47),e._uU(3,"language"),e.qZA()(),e.YNc(4,Che,2,1,"div",48),e.YNc(5,bhe,2,1,"div",48),e.TgZ(6,"mat-menu",49,50)(8,"button",51),e.NdJ("click",function(){const o=e.CHM(t).ngIf,s=e.oxw(2);return e.KtG(s.onSetLanguage(o.default))}),e._uU(9),e.qZA(),e.YNc(10,xhe,2,2,"button",52),e.qZA()()}if(2&r){const t=a.ngIf,i=e.MAs(7),n=e.oxw(2);e.xp6(1),e.Q6J("matMenuTriggerFor",i),e.xp6(3),e.Q6J("ngIf","key"===n.layoutHeader.language&&t.currentLanguage),e.xp6(1),e.Q6J("ngIf","fullname"===n.layoutHeader.language&&t.currentLanguage),e.xp6(1),e.Q6J("overlapTrigger",!1),e.xp6(3),e.AsE("",null==t.default?null:t.default.id," (",null==t.default?null:t.default.name,")"),e.xp6(1),e.Q6J("ngForOf",t.options)}}function Ehe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"span",58),e._uU(2),e.qZA(),e.BQk()),2&r){const t=e.oxw().ngIf;e.xp6(2),e.Oqu(null==t?null:t.username)}}function Mhe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"span",58),e._uU(2),e.qZA(),e.BQk()),2&r){const t=e.oxw().ngIf;e.xp6(2),e.Oqu(null==t?null:t.fullname)}}function Dhe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"span",58),e._uU(2),e.qZA(),e.TgZ(3,"span",59),e._uU(4),e.qZA(),e.BQk()),2&r){const t=e.oxw().ngIf;e.xp6(2),e.Oqu(null==t?null:t.username),e.xp6(2),e.Oqu(null==t?null:t.fullname)}}function The(r,a){if(1&r&&(e.TgZ(0,"div",57),e.ynx(1,35),e.YNc(2,Ehe,3,1,"ng-container",36),e.YNc(3,Mhe,3,1,"ng-container",36),e.YNc(4,Dhe,5,2,"ng-container",36),e.BQk(),e.qZA()),2&r){const t=e.oxw(3);e.xp6(1),e.Q6J("ngSwitch",t.layoutHeader.loginInfo),e.xp6(1),e.Q6J("ngSwitchCase","username"),e.xp6(1),e.Q6J("ngSwitchCase","fullname"),e.xp6(1),e.Q6J("ngSwitchCase","both")}}function Ihe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"button",33),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onLogin())}),e.TgZ(2,"mat-icon",55),e._uU(3,"account_circle"),e.qZA()(),e.YNc(4,The,5,4,"div",56),e.ALo(5,"async"),e.qZA()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Udp("color",t.isLoggedIn()?"rgb(59, 144, 255)":t.layoutHeader.fgcolor),e.xp6(2),e.Q6J("ngIf",e.lcZ(5,3,t.layoutHeader.loginInfo&&t.loggedUser$))}}function khe(r,a){if(1&r&&(e.TgZ(0,"div",20),e.YNc(1,hhe,4,0,"div",21),e.TgZ(2,"div",22,23),e.YNc(4,_he,4,4,"ng-container",24),e.qZA(),e.TgZ(5,"div",25)(6,"div",26),e.YNc(7,vhe,5,3,"button",27),e.qZA(),e.TgZ(8,"div",28),e.YNc(9,yhe,5,3,"button",27),e.qZA(),e.YNc(10,whe,3,4,"div",29),e.YNc(11,Bhe,11,7,"div",30),e.ALo(12,"async"),e.YNc(13,Ihe,6,5,"div",31),e.qZA()()),2&r){const t=e.oxw();e.Udp("background-color",t.layoutHeader.bkcolor)("color",t.layoutHeader.fgcolor),e.xp6(1),e.Q6J("ngIf",t.showSidenav&&"side"!==t.showSidenav),e.xp6(1),e.Udp("text-align",t.layoutHeader.itemsAnchor),e.xp6(2),e.Q6J("ngForOf",t.layoutHeader.items),e.xp6(3),e.Q6J("ngIf",t.alarms.show),e.xp6(2),e.Q6J("ngIf",t.infos.show),e.xp6(1),e.Q6J("ngIf",t.layoutHeader.dateTimeDisplay),e.xp6(1),e.Q6J("ngIf",e.lcZ(12,13,t.layoutHeader.language&&"nothing"!==t.layoutHeader.language&&t.language$)),e.xp6(2),e.Q6J("ngIf",t.securityEnabled)}}function Qhe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"app-cards-view",61,62),e.NdJ("onGoTo",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onGoToPage(n))}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("edit",!1)("options",t.gridOptions)("view",t.homeView)("hmi",t.hmi)("gaugesManager",t.gaugesManager)}}function She(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"app-maps-view",63),e.NdJ("onGoTo",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onGoToPage(n))}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("view",t.homeView)("hmi",t.hmi)("gaugesManager",t.gaugesManager)}}function Phe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"app-fuxa-view",64,65),e.NdJ("ongoto",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.onGoToPage(n))}),e.qZA(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(1),e.Q6J("view",t.homeView)("hmi",t.hmi)("gaugesManager",t.gaugesManager)}}function Fhe(r,a){if(1&r&&(e.ynx(0)(1,35),e.YNc(2,Qhe,3,5,"ng-container",36),e.YNc(3,She,2,3,"ng-container",36),e.YNc(4,Phe,3,3,"ng-container",60),e.BQk()()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngSwitch",t.homeView.type),e.xp6(1),e.Q6J("ngSwitchCase",t.cardViewType),e.xp6(1),e.Q6J("ngSwitchCase",t.mapsViewType)}}function Ohe(r,a){if(1&r&&(e.ynx(0),e._UZ(1,"app-iframe",66),e.BQk()),2&r){const t=a.$implicit;e.xp6(1),e.Udp("display",t.hide?"none":"block"),e.Q6J("link",t.link)}}let ZP=(()=>{class r{projectService;changeDetector;dialog;router;route;hmiService;toastr;scriptService;languageService;authService;gaugesManager;sidenav;matsidenav;fuxaview;cardsview;alarmsview;container;header;iframes=[];isLoading=!0;homeView=new Tt.G7;hmi=new Tt.tM;showSidenav="over";homeLink="";showHomeLink=!1;securityEnabled=!1;backgroudColor="unset";title="";alarms={show:!1,count:0,mode:""};infos={show:!1,count:0,mode:""};headerButtonMode=Tt.s7;layoutHeader=new Tt.zN;showNavigation=!0;viewAsAlarms=Tt.Un.alarms;alarmPanelWidth="100%";serverErrorBanner$;cardViewType=Tt.bW.cards;mapsViewType=Tt.bW.maps;gridOptions=new mN;intervalsScript=new ihe;currentDateTime=new Date;headerItemsMap=new Map;subscriptionLoad;subscriptionAlarmsStatus;subscriptiongoTo;subscriptionOpen;destroy$=new An.x;loggedUser$;language$;constructor(t,i,n,o,s,c,g,B,O,ne,we){this.projectService=t,this.changeDetector=i,this.dialog=n,this.router=o,this.route=s,this.hmiService=c,this.toastr=g,this.scriptService=B,this.languageService=O,this.authService=ne,this.gaugesManager=we,this.gridOptions.draggable={enabled:!1},this.gridOptions.resizable={enabled:!1}}ngOnInit(){try{this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(()=>{this.projectService.getHmi()&&(this.loadHmi(),this.initScheduledScripts(),this.checkDateTimeTimer())},t=>{console.error(`Error loadHMI: ${t}`)}),this.subscriptionAlarmsStatus=this.hmiService.onAlarmsStatus.subscribe(t=>{this.setAlarmsStatus(t)}),this.subscriptiongoTo=this.hmiService.onGoTo.subscribe(t=>{this.onGoToPage(this.projectService.getViewId(t.viewName),t.force)}),this.subscriptionOpen=this.hmiService.onOpen.subscribe(t=>{const i=this.projectService.getViewId(t.viewName);this.fuxaview.onOpenCard(i,null,i,t.options)}),this.serverErrorBanner$=Vl([this.hmiService.onServerConnection$,this.authService.currentUser$]).pipe((0,Xs.w)(([t,i])=>(0,Wa.T)((0,lr.of)(!1),(0,Mo.H)(2e4).pipe((0,f.U)(()=>!(this.securityEnabled&&!i)))).pipe(na(!1))),(0,On.R)(this.destroy$)),this.language$=this.languageService.languageConfig$,this.loggedUser$=this.authService.currentUser$,this.gaugesManager.onchange.pipe((0,On.R)(this.destroy$),(0,Wr.h)(t=>this.headerItemsMap.has(t.id))).subscribe(t=>{this.processValueInHeaderItem(t)})}catch(t){console.error(t)}}ngAfterViewInit(){try{setTimeout(()=>{this.projectService.notifyToLoadHmi()},0),this.hmiService.askAlarmsStatus(),this.changeDetector.detectChanges()}catch(t){console.error(t)}}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe(),this.subscriptionAlarmsStatus&&this.subscriptionAlarmsStatus.unsubscribe(),this.subscriptionOpen&&this.subscriptionOpen.unsubscribe(),this.subscriptiongoTo&&this.subscriptiongoTo.unsubscribe(),this.destroy$.next(null),this.destroy$.complete(),this.intervalsScript.clearIntervals()}catch{}}checkDateTimeTimer(){this.hmi.layout?.header?.dateTimeDisplay&&vv(1e3).pipe((0,On.R)(this.destroy$)).subscribe(()=>{this.currentDateTime=new Date})}initScheduledScripts(){this.intervalsScript.clearIntervals(),this.projectService.getScripts()?.forEach(t=>{t.mode===Wo.EN.CLIENT&&t.scheduling?.interval>0&&this.intervalsScript.addInterval(1e3*t.scheduling.interval,this.scriptService.evalScript,t,this.scriptService)})}onGoToPage(t,i=!1){if(t===this.viewAsAlarms)this.onAlarmsShowMode("expand"),this.checkToCloseSideNav();else if(!this.homeView||t!==this.homeView?.id||i||this.fuxaview?.view?.id!==t){const n=this.hmi.views.find(o=>o.id===t);this.setIframe(),this.showHomeLink=!1,this.changeDetector.detectChanges(),n&&(this.homeView=n,this.changeDetector.detectChanges(),this.setBackground(),this.homeView.type!==this.cardViewType&&this.homeView.type!==this.mapsViewType?(this.checkZoom(),this.fuxaview.hmi.layout=this.hmi.layout,this.fuxaview.loadHmi(this.homeView)):this.cardsview&&this.cardsview.reload()),this.onAlarmsShowMode("close"),this.checkToCloseSideNav()}}onGoToLink(t){t.indexOf("://")>=0||"/"==t[0]?(this.showHomeLink=!0,this.changeDetector.detectChanges(),this.setIframe(t)):this.router.navigate([t]).then(i=>{}).catch(i=>{console.error("Route "+t+" not found, redirection stopped with no error raised")}),this.checkToCloseSideNav()}setIframe(t=null){let i;if(this.homeView=null,this.iframes.forEach(n=>{n.hide||(i=n.link),n.hide=!0}),t){let n=this.iframes.find(o=>o.link===t);n?(n.hide=!1,i===t&&(n.link="",this.changeDetector.detectChanges(),n.link=t)):this.iframes.push({link:t,hide:!1})}}checkToCloseSideNav(){this.hmi.layout&&Tt.aL[this.hmi.layout.navigation.mode]!==Tt.aL.fix&&this.matsidenav&&this.matsidenav.close()}onLogin(){let t=this.authService.getUser();if(t)this.dialog.open(Lhe,{id:"myuserinfo",position:{top:"50px",right:"15px"},backdropClass:"user-info",data:t}).afterClosed().subscribe(n=>{n&&(this.authService.signOut(),this.projectService.reload())});else{let i={data:{},disableClose:!0,autoFocus:!1,...this.hmi.layout.loginoverlaycolor&&this.hmi.layout.loginoverlaycolor!==Tt.nh.none&&{backdropClass:this.hmi.layout.loginoverlaycolor===Tt.nh.black?"backdrop-black":"backdrop-white"}};this.dialog.open(OL,i).afterClosed().subscribe(o=>{const s=new yM(this.authService.getUser()?.info);s.start&&this.onGoToPage(s.start)})}}askValue(){this.hmiService.askDeviceValues()}askStatus(){this.hmiService.askDeviceStatus()}isLoggedIn(){return!!this.authService.getUser()}onAlarmsShowMode(t){ii.cQ.getEnumKey(Tt.aL,Tt.aL.fix)===this.hmi.layout.navigation.mode&&this.matsidenav&&(this.alarmPanelWidth=`calc(100% - ${this.matsidenav._getWidth()}px)`);let i=document.getElementById("alarms-panel");"expand"===t?(i.classList.add("is-full-active"),this.alarmsview.startAskAlarmsValues()):"collapse"===t?(i.classList.add("is-active"),i.classList.remove("is-full-active"),this.alarmsview.startAskAlarmsValues()):(i.classList.remove("is-active"),i.classList.remove("is-full-active"))}onSetLanguage(t){this.languageService.setCurrentLanguage(t),window.location.reload()}processValueInHeaderItem(t){this.headerItemsMap.get(t.id)?.forEach(i=>{i.status.variablesValue[t.id]!==t.value&&dc.processValue({property:i.property},i.element??ii.cQ.findElementByIdRecursive(this.header.nativeElement,i.id),t,i.status,"label"===i.type),i.status.variablesValue[t.id]=t.value})}goTo(t){this.router.navigate([t])}loadHmi(){let t=this.projectService.getHmi();if(t&&(this.hmi=t),this.hmi&&this.hmi.views&&this.hmi.views.length>0){let i=null;this.hmi.layout?.start&&(i=this.hmi.views.find(o=>o.id===this.hmi.layout.start)),i||(i=this.hmi.views[0]);let n=this.hmi.views.find(o=>o.name===this.route.snapshot.queryParamMap.get("viewName")?.trim());if(n&&(i=n),this.homeView=i,this.setBackground(),this.showSidenav=null,this.hmi.layout){ii.cQ.Boolify(this.hmi.layout.hidenavigation)&&(this.showNavigation=!1);let o=Tt.aL[this.hmi.layout.navigation.mode];this.hmi.layout&&o!==Tt.aL.void&&(o===Tt.aL.over?this.showSidenav="over":o===Tt.aL.fix?(this.showSidenav="side",this.matsidenav&&this.matsidenav.open()):o===Tt.aL.push&&(this.showSidenav="push"),this.sidenav.setLayout(this.hmi.layout)),this.hmi.layout.header&&(this.title=this.hmi.layout.header.title,this.hmi.layout.header.alarms&&(this.alarms.mode=this.hmi.layout.header.alarms),this.hmi.layout.header.infos&&(this.infos.mode=this.hmi.layout.header.infos),this.checkHeaderButton(),this.layoutHeader=ii.cQ.clone(this.hmi.layout.header),this.changeDetector.detectChanges(),this.loadHeaderItems()),this.checkZoom()}}this.homeView&&this.fuxaview&&(this.fuxaview.hmi.layout=this.hmi.layout,this.fuxaview.loadHmi(this.homeView)),this.isLoading=!1,this.securityEnabled=this.projectService.isSecurityEnabled(),this.securityEnabled&&!this.isLoggedIn()&&this.hmi.layout.loginonstart&&this.onLogin()}checkZoom(){this.hmi.layout?.zoom&&Tt.Rw[this.hmi.layout.zoom]===Tt.Rw.enabled&&setTimeout(()=>{let t=document.querySelector("#home");t&&_D()&&_D()(t,{bounds:!0,boundsPadding:.05}),this.container.nativeElement.style.overflow="hidden"},1e3)}loadHeaderItems(){this.headerItemsMap.clear(),this.showNavigation&&(this.layoutHeader.items?.forEach(t=>{t.status=t.status??new Tt.sY,t.status.onlyChange=!0,t.status.variablesValue={},t.element=ii.cQ.findElementByIdRecursive(this.header.nativeElement,t.id),t.text=this.languageService.getTranslation(t.property?.text)??t.property?.text,dc.getSignals(t.property).forEach(o=>{this.headerItemsMap.has(o)||this.headerItemsMap.set(o,[]),this.headerItemsMap.get(o).push(t)});const n=new Tt.nr(null,dc.TypeTag);n.property=t.property,this.onBindMouseEvents(t.element,n)}),this.hmiService.homeTagsSubscribe(Array.from(this.headerItemsMap.keys())))}onBindMouseEvents(t,i){if(t){let n=this.gaugesManager.getBindMouseEvent(i,Tt.KQ.click);n?.length>0&&(t.onclick=c=>{this.handleMouseEvent(i,c,n)},t.ontouchstart=c=>{this.handleMouseEvent(i,c,n)});let o=this.gaugesManager.getBindMouseEvent(i,Tt.KQ.mousedown);o?.length>0&&(t.onmousedown=c=>{this.handleMouseEvent(i,c,o)});let s=this.gaugesManager.getBindMouseEvent(i,Tt.KQ.mouseup);s?.length>0&&(t.onmouseup=c=>{this.handleMouseEvent(i,c,s)})}}handleMouseEvent(t,i,n){let o=this.fuxaview??this.cardsview.getFuxaView(0);o&&(n.filter(g=>"onpage"===g.action).forEach(g=>{this.onGoToPage(g.actparam)}),n.filter(g=>"onpage"!==g.action).length>0&&o.runEvents(o,t,i,n))}setBackground(){this.homeView?.profile&&(this.backgroudColor=this.homeView.profile.bkcolor)}checkHeaderButton(){let t=Object.keys(Tt.s7)[Object.values(Tt.s7).indexOf(Tt.s7.fix)],i=Object.keys(Tt.s7)[Object.values(Tt.s7).indexOf(Tt.s7.float)];this.alarms.show=this.alarms.mode===t||this.alarms.mode===i&&this.alarms.count>0,this.infos.show=this.infos.mode===t||this.infos.mode===i&&this.infos.count>0}setAlarmsStatus(t){t&&(this.alarms.count=t.highhigh+t.high+t.low,this.infos.count=t.info,this.checkHeaderButton(),this.checkActions(t.actions))}checkActions(t){t&&t.forEach(i=>{if(i.type===ii.cQ.getEnumKey(kA,kA.popup))this.fuxaview.openDialog(null,i.params,{});else if(i.type===ii.cQ.getEnumKey(kA,kA.setView))this.onGoToPage(i.params);else if(i.type===ii.cQ.getEnumKey(kA,kA.toastMessage)){var n=i.params;this.toastr.findDuplicate("",n,!0,!1)||this.toastr[i.options?.type??"info"](n,"",{timeOut:3e3,closeButton:!0,disableTimeOut:!0})}})}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(e.sBO),e.Y36(xo),e.Y36(Zc),e.Y36(Cp),e.Y36(aA.Bb),e.Y36(Vf._W),e.Y36(Ov.Y),e.Y36(Pv),e.Y36(xg.e),e.Y36(so))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-home"]],viewQuery:function(i,n){if(1&i&&(e.Gf(nhe,5),e.Gf(rhe,5),e.Gf(ohe,5),e.Gf(ahe,5),e.Gf(she,5),e.Gf(lhe,5),e.Gf(che,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.sidenav=o.first),e.iGM(o=e.CRH())&&(n.matsidenav=o.first),e.iGM(o=e.CRH())&&(n.fuxaview=o.first),e.iGM(o=e.CRH())&&(n.cardsview=o.first),e.iGM(o=e.CRH())&&(n.alarmsview=o.first),e.iGM(o=e.CRH())&&(n.container=o.first),e.iGM(o=e.CRH())&&(n.header=o.first)}},decls:14,vars:15,consts:[["style","position:absolute;top:0px;left:0px;right:0px;bottom:0px;background-color:rgba(0,0,0,0.2); z-index: 99999;",4,"ngIf"],["class","banner",4,"ngIf"],[1,"sidenav-container",3,"hasBackdrop"],["class","sidenav",3,"mode",4,"ngIf"],[3,"click"],["class","header",3,"background-color","color",4,"ngIf"],["id","container",3,"ngClass","click"],["container",""],[4,"ngIf"],[4,"ngFor","ngForOf"],["id","alarms-panel"],[3,"fullview","showMode"],["alarmsview",""],[2,"position","absolute","top","0px","left","0px","right","0px","bottom","0px","background-color","rgba(0,0,0,0.2)","z-index","99999"],["mode","indeterminate","color","warn",2,"position","absolute","top","0px","left","0px","right","0px","z-index","99999"],[1,"banner"],[1,"sidenav",3,"mode"],["matsidenav",""],[3,"sidenav","goToPage","goToLink"],["sidenav",""],[1,"header"],["class","sidenav-toogle",4,"ngIf"],[1,"items"],["header",""],[3,"ngSwitch",4,"ngFor","ngForOf"],[1,"header-button"],[1,"alarm-layout",2,"min-width","40px"],["mat-icon-button","",3,"click",4,"ngIf"],[1,"info-layout",2,"min-width","40px"],["class","header-date-time",4,"ngIf"],["class","header-language",4,"ngIf"],["class","header-login",4,"ngIf"],[1,"sidenav-toogle"],["mat-icon-button","",3,"click"],["aria-label","Menu"],[3,"ngSwitch"],[4,"ngSwitchCase"],["mat-raised-button","",3,"id"],["mat-button","",3,"id"],["mat-icon-button","",3,"id"],["aria-label","Alarms"],[1,"button-counter","alarm-color"],["aria-label","Info"],[1,"button-counter","info-color"],[1,"header-date-time"],[1,"header-language"],["mat-icon-button","",3,"matMenuTriggerFor"],["aria-label","Language"],["class","inbk",4,"ngIf"],[3,"overlapTrigger"],["languageMenu",""],["mat-menu-item","",2,"font-size","14px",3,"click"],["mat-menu-item","","style","font-size: 14px;",3,"click",4,"ngFor","ngForOf"],[1,"inbk"],[1,"header-login"],["aria-label","Login"],["class","info",4,"ngIf"],[1,"info"],[1,"primary"],[1,"secondary"],[4,"ngSwitchDefault"],[3,"edit","options","view","hmi","gaugesManager","onGoTo"],["cardsview",""],[3,"view","hmi","gaugesManager","onGoTo"],["id","home",1,"home-body",3,"view","hmi","gaugesManager","ongoto"],["fuxaview",""],[1,"home-body",2,"width","100%","height","100%",3,"link"]],template:function(i,n){1&i&&(e.YNc(0,Ahe,2,0,"div",0),e.YNc(1,dhe,7,3,"div",1),e.ALo(2,"async"),e.TgZ(3,"mat-sidenav-container",2),e.YNc(4,uhe,4,2,"mat-sidenav",3),e.TgZ(5,"mat-sidenav-content",4),e.NdJ("click",function(){return n.checkToCloseSideNav()}),e.YNc(6,khe,14,15,"div",5),e.TgZ(7,"div",6,7),e.NdJ("click",function(){return n.checkToCloseSideNav()}),e.YNc(9,Fhe,5,3,"ng-container",8),e.YNc(10,Ohe,2,3,"ng-container",9),e.TgZ(11,"div",10)(12,"app-alarm-view",11,12),e.NdJ("showMode",function(s){return n.onAlarmsShowMode(s)}),e.qZA()()()()()),2&i&&(e.Q6J("ngIf",n.isLoading),e.xp6(1),e.Q6J("ngIf",e.lcZ(2,13,n.serverErrorBanner$)),e.xp6(2),e.Q6J("hasBackdrop",!1),e.xp6(1),e.Q6J("ngIf",n.showNavigation&&n.showSidenav),e.xp6(1),e.Udp("background-color",n.backgroudColor),e.xp6(1),e.Q6J("ngIf",n.showNavigation),e.xp6(1),e.Q6J("ngClass",n.showNavigation?"home-container-nav":"home-container"),e.xp6(2),e.Q6J("ngIf",!n.showHomeLink&&n.homeView),e.xp6(1),e.Q6J("ngForOf",n.iframes),e.xp6(1),e.Udp("width",n.alarmPanelWidth),e.xp6(1),e.Q6J("fullview",!1))},dependencies:[l.mk,l.sg,l.O5,l.RF,l.n9,l.ED,Yn,Zn,zc,Hc,cc,Jw,cE,AE,nC,B$,NP,mm,UP,fN,GP,l.Ov,l.uU,Ni.X$],styles:["[_nghost-%COMP%] .home-body[_ngcontent-%COMP%]{display:table;margin:0 auto}[_nghost-%COMP%] .banner[_ngcontent-%COMP%]{display:flex;position:absolute;left:0;top:0;right:0;z-index:999999;font-size:16px;padding-left:25px;height:48px;background-color:#b71c1c;color:#fff}[_nghost-%COMP%] .banner[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;align-items:center;margin:auto}[_nghost-%COMP%] .banner[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .home-container[_ngcontent-%COMP%]{position:absolute;inset:0;overflow:auto}[_nghost-%COMP%] .home-container-nav[_ngcontent-%COMP%]{position:absolute;inset:48px 0 0;overflow:auto}[_nghost-%COMP%] .home-info[_ngcontent-%COMP%]{text-align:center}[_nghost-%COMP%] .header[_ngcontent-%COMP%]{display:flex;z-index:9999!important;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003!important;height:46px!important;padding-left:4px;padding-right:10px;background-color:#fff;line-height:46px}[_nghost-%COMP%] .header[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{flex:1;align-items:center;margin-left:30px}[_nghost-%COMP%] .header-login[_ngcontent-%COMP%]{float:right;line-height:46px;border-left-width:1px;border-left-style:solid;padding-left:10px}[_nghost-%COMP%] .header-login[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{display:inline-block;line-height:46px;vertical-align:middle;max-width:140px}[_nghost-%COMP%] .header-login[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%]{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:-moz-fit-content;max-width:fit-content;line-height:16px}[_nghost-%COMP%] .header-login[_ngcontent-%COMP%] .secondary[_ngcontent-%COMP%]{display:block;font-size:14px;font-weight:100;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:-moz-fit-content;max-width:fit-content;color:gray;line-height:16px}[_nghost-%COMP%] .header-date-time[_ngcontent-%COMP%]{border-left-width:1px;border-left-style:solid;padding-left:10px;padding-right:10px;display:inline-block}[_nghost-%COMP%] .header-language[_ngcontent-%COMP%]{padding-left:10px;padding-right:10px;display:inline-block}[_nghost-%COMP%] .header-button[_ngcontent-%COMP%]{float:right;line-height:46px;text-align:right;margin-right:10px}[_nghost-%COMP%] .header-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px}[_nghost-%COMP%] .button-counter[_ngcontent-%COMP%]{display:inline-block;position:absolute;bottom:7px;right:1px;width:16px;height:16px;border-radius:50%;text-align:center;line-height:16px;font-size:12px;font-weight:700}[_nghost-%COMP%] .alarm-layout[_ngcontent-%COMP%]{position:relative;right:45px;display:inline-block;width:40px}[_nghost-%COMP%] .info-layout[_ngcontent-%COMP%]{position:relative;right:20px;display:inline-block;width:40px}[_nghost-%COMP%] .sidenav[_ngcontent-%COMP%]{padding:0;background-color:#2c2c2c!important;color:#fff!important;display:inline-block!important;top:0;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003!important}[_nghost-%COMP%] .sidenav-container[_ngcontent-%COMP%]{width:100%;height:100%!important;background-color:#fff}[_nghost-%COMP%] .mat-drawer-backdrop.mat-drawer-shown{background-color:transparent}[_nghost-%COMP%] #myuserinfo{padding:unset!important;box-shadow:0 2px 6px #0003,0 2px 6px #0000002e}[_nghost-%COMP%] #alarms-panel[_ngcontent-%COMP%]{background:white;height:300px;transition:bottom .3s;width:100%;position:fixed;bottom:-300px}[_nghost-%COMP%] #alarms-panel.is-active[_ngcontent-%COMP%]{bottom:0;transition:bottom .3s;z-index:999}[_nghost-%COMP%] #alarms-panel.is-full-active[_ngcontent-%COMP%]{top:46px;height:100%;transition:top .3s;z-index:999}"]})}return r})(),Lhe=(()=>{class r{dialogRef;data;constructor(t,i){this.dialogRef=t,this.data=i}onOkClick(){this.dialogRef.close(!0)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["user-info"]],decls:18,vars:8,consts:[[2,"display","block","text-align","center","padding-top","20px","padding-bottom","10px","width","220px"],[2,"display","block","margin","auto"],[2,"font-size","14px","display","block","padding-top","10px","padding-bottom","10px"],[2,"display","block","padding-bottom","20px","padding-top","20px","border-top","1px solid rgba(0,0,0,0.1)"],["mat-raised-button","",3,"mat-dialog-close"],[2,"display","block","font-size","10px","padding-top","10px","border-top","1px solid rgba(0,0,0,0.1)"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1)(2,"mat-icon"),e._uU(3,"account_circle"),e.qZA()(),e.TgZ(4,"div",2),e._uU(5),e.qZA(),e.TgZ(6,"div",2),e._uU(7),e.qZA(),e.TgZ(8,"div",3)(9,"button",4),e._uU(10),e.ALo(11,"translate"),e.qZA()(),e.TgZ(12,"div",5),e._uU(13," FUXA powered by "),e.TgZ(14,"span")(15,"b"),e._uU(16,"frango"),e.qZA(),e._uU(17,"team"),e.qZA()()()),2&i&&(e.xp6(2),e.Udp("color","rgb(59, 144, 255)"),e.xp6(3),e.hij(" ",n.data.username," "),e.xp6(2),e.hij(" ",n.data.fullname," "),e.xp6(2),e.Q6J("mat-dialog-close",!0),e.xp6(1),e.Oqu(e.lcZ(11,6,"dlg.logout-btn")))},dependencies:[Yn,Cc,Zn,Ni.X$],encapsulation:2})}return r})();function Rhe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"video",14),e._UZ(2,"source",15),e._uU(3," Your browser does not support the video tag. "),e.qZA(),e.BQk()),2&r){const t=e.oxw().$implicit;e.xp6(2),e.Q6J("src",t.path,e.LSH)}}function Yhe(r,a){if(1&r&&e._UZ(0,"img",16),2&r){const t=e.oxw().$implicit;e.Q6J("src",t.path,e.LSH)("id",t.path)}}function Nhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",11),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2);return e.KtG(s.onSelect(o.path))}),e.YNc(1,Rhe,4,1,"ng-container",12),e.YNc(2,Yhe,1,2,"ng-template",null,13,e.W1O),e.qZA()}if(2&r){const t=a.$implicit,i=e.MAs(3),n=e.oxw(2);e.s9C("matTooltip",t.name),e.xp6(1),e.Q6J("ngIf",n.isVideo(t.path))("ngIfElse",i)}}function Uhe(r,a){if(1&r&&(e.TgZ(0,"mat-expansion-panel",8)(1,"mat-expansion-panel-header",9)(2,"mat-panel-title"),e._uU(3),e.qZA(),e._UZ(4,"mat-panel-description"),e.qZA(),e.YNc(5,Nhe,4,3,"div",10),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.Q6J("collapsedHeight","40px")("expandedHeight","40px"),e.xp6(2),e.hij(" ",t.name," "),e.xp6(2),e.Q6J("ngForOf",t.items)}}let zhe=(()=>{class r{dialogRef;resourcesService;endPointConfig=bp.C.getURL();resImages;subscription;constructor(t,i){this.dialogRef=t,this.resourcesService=i}ngAfterViewInit(){this.loadResources()}ngOnDestroy(){try{this.subscription.unsubscribe()}catch(t){console.error(t)}}loadResources(){this.subscription=this.resourcesService.getResources(UC.images).subscribe(t=>{const i=t?.groups||[];i.forEach(n=>{n.items.forEach(o=>{o.path=`${this.endPointConfig}/${o.path}`})}),this.resImages=i},t=>{console.error("get Resources images error: "+t)})}onSelect(t){this.dialogRef.close(t)}onNoClick(){this.dialogRef.close()}isVideo(t){return this.resourcesService.isVideo(t)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Q0))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-lib-images"]],decls:14,vars:7,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],["mat-dialog-content",""],["multi","true"],["class","my-expansion-panel lib-image-panel",4,"ngFor","ngForOf"],[2,"display","block","width","660px","padding-bottom","20px"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],[1,"my-expansion-panel","lib-image-panel"],[1,"header",3,"collapsedHeight","expandedHeight"],["class","lib-image-item",3,"matTooltip","click",4,"ngFor","ngForOf"],[1,"lib-image-item",3,"matTooltip","click"],[4,"ngIf","ngIfElse"],["imageTemplate",""],["width","300","height","auto","controls",""],["type","video/mp4",3,"src"],[3,"src","id"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"mat-accordion",3),e.YNc(8,Uhe,6,4,"mat-expansion-panel",4),e.qZA(),e._UZ(9,"div",5),e.qZA(),e.TgZ(10,"div",6)(11,"button",7),e.NdJ("click",function(){return n.onNoClick()}),e._uU(12),e.ALo(13,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,3,"resources.lib-images")),e.xp6(6),e.Q6J("ngForOf",n.resImages),e.xp6(4),e.Oqu(e.lcZ(13,5,"dlg.cancel")))},dependencies:[l.sg,l.O5,Yn,Qr,Kr,Ir,qm,hg,dp,Df,Dh,Zn,Cs,zr,Ni.X$],styles:[".lib-image-panel[_ngcontent-%COMP%]{max-width:900px}.lib-image-item[_ngcontent-%COMP%]{display:inline-block;margin:5px;padding:2px}.lib-image-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]:hover{background-color:#b6b6b64d}.lib-image-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{min-width:100px;width:100px;object-fit:cover;cursor:pointer}"]})}return r})();const Hhe=["ngauge"],Ghe=["flexhead"];function Zhe(r,a){1&r&&(e.TgZ(0,"mat-icon",44),e._uU(1,"lock"),e.qZA())}function Jhe(r,a){1&r&&(e.TgZ(0,"mat-icon",44),e._uU(1,"lock_open"),e.qZA())}function jhe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",45)(1,"div",28)(2,"div",46)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"mat-slide-toggle",47),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.ticksEnabled=n)})("change",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeTicks(n.checked))}),e.qZA()()(),e.TgZ(7,"div",28)(8,"div",29)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.divisions=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("divisions",n.value))}),e.qZA()(),e.TgZ(13,"div",29)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.subDivisions=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("subDivisions",n.value))}),e.qZA()()(),e.TgZ(18,"div",28)(19,"div",29)(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.divLength=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("divLength",n.value))}),e.qZA()(),e.TgZ(24,"div",29)(25,"span"),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.subLength=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("subLength",n.value))}),e.qZA()()(),e.TgZ(29,"div",28)(30,"div",29)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.divWidth=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("divWidth",n.value))}),e.qZA()(),e.TgZ(35,"div",29)(36,"span"),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.subWidth=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("subWidth",n.value))}),e.qZA()()(),e.TgZ(40,"div",28)(41,"div",33)(42,"span"),e._uU(43),e.ALo(44,"translate"),e.qZA(),e.TgZ(45,"input",49),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.divColor=n)})("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("divColor",n))}),e.qZA()(),e.TgZ(46,"div",33)(47,"span"),e._uU(48),e.ALo(49,"translate"),e.qZA(),e.TgZ(50,"input",49),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.renderTicks.subColor=n)})("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsTicks("subColor",n))}),e.qZA()()(),e.TgZ(51,"div",28)(52,"div",29)(53,"span"),e._uU(54),e.ALo(55,"translate"),e.qZA(),e.TgZ(56,"mat-slider",48),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.staticFontSize=n)})("input",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsLabels("fontSize",n.value))}),e.qZA()(),e.TgZ(57,"div",33)(58,"span"),e._uU(59),e.ALo(60,"translate"),e.qZA(),e.TgZ(61,"input",50),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.staticFontColor=n)})("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeOptionsLabels("labelsColor",n))}),e.qZA()()(),e.TgZ(62,"div",28)(63,"div",29)(64,"span",51),e._uU(65),e.ALo(66,"translate"),e.qZA(),e.TgZ(67,"input",52),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.optcfg.staticLabelsText=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChangeOptionsLabels("labels",n.optcfg.staticLabelsText))}),e.qZA()()()()}if(2&r){const t=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,96,"bag.property-ticks")),e.xp6(2),e.Q6J("ngModel",t.optcfg.ticksEnabled),e.xp6(4),e.Oqu(e.lcZ(11,98,"bag.property-divisions")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",20)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.renderTicks.divisions),e.xp6(3),e.Oqu(e.lcZ(16,100,"bag.property-subdivisions")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",20)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.renderTicks.subDivisions),e.xp6(4),e.Oqu(e.lcZ(22,102,"bag.property-divisions-length")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.renderTicks.divLength),e.xp6(3),e.Oqu(e.lcZ(27,104,"bag.property-subdivisions-length")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.renderTicks.subLength),e.xp6(4),e.Oqu(e.lcZ(33,106,"bag.property-divisions-width")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.renderTicks.divWidth),e.xp6(3),e.Oqu(e.lcZ(38,108,"bag.property-subdivisions-width")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.renderTicks.subWidth),e.xp6(4),e.Oqu(e.lcZ(44,110,"bag.property-divisions-color")),e.xp6(2),e.Udp("background",t.optcfg.renderTicks.divColor),e.Q6J("disabled",!t.optcfg.ticksEnabled)("colorPicker",t.optcfg.renderTicks.divColor)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(3),e.Oqu(e.lcZ(49,112,"bag.property-subdivisions-color")),e.xp6(2),e.Udp("background",t.optcfg.renderTicks.subColor),e.Q6J("disabled",!t.optcfg.ticksEnabled)("colorPicker",t.optcfg.renderTicks.subColor)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(4),e.Oqu(e.lcZ(55,114,"bag.property-divisionfont-size")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",t.optcfg.staticFontSize),e.xp6(3),e.Oqu(e.lcZ(60,116,"bag.property-divisionfont-color")),e.xp6(2),e.Udp("background",t.optcfg.staticFontColor),e.Q6J("colorPicker",t.optcfg.staticFontColor)("cpDisabled",!t.optcfg.ticksEnabled)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(4),e.Oqu(e.lcZ(66,118,"bag.property-divisions-labels")),e.xp6(2),e.Q6J("disabled",!t.optcfg.ticksEnabled)("ngModel",t.optcfg.staticLabelsText)}}function Vhe(r,a){if(1&r&&(e.TgZ(0,"mat-option",53),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("font-family",t),e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function Whe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",5)(1,"div",59)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",60),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.min=n)})("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChangeStaticZones())}),e.qZA()(),e.TgZ(6,"div",29)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",61),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.max=n)})("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChangeStaticZones())}),e.qZA()(),e.TgZ(11,"div",33)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",62),e.NdJ("colorPickerChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.strokeStyle=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChangeStaticZones())}),e.qZA()(),e.TgZ(16,"div",63)(17,"button",64),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(2);return e.KtG(s.onRemoveZone(o))}),e.TgZ(18,"mat-icon"),e._uU(19,"clear"),e.qZA()()()()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,18,"bag.property-min")),e.xp6(2),e.Q6J("ngModel",t.min),e.xp6(3),e.Oqu(e.lcZ(9,20,"bag.property-max")),e.xp6(2),e.Q6J("ngModel",t.max),e.xp6(3),e.Oqu(e.lcZ(14,22,"bag.property-color")),e.xp6(2),e.Udp("background",t.strokeStyle),e.Q6J("cpDialogDisplay","popup")("colorPicker",t.strokeStyle)("cpAlphaChannel","always")("cpPresetColors",i.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top")}}function Khe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",55)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"button",56),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddZone())}),e.TgZ(6,"mat-icon"),e._uU(7,"add_circle_outline"),e.qZA()()(),e.TgZ(8,"div",57),e.YNc(9,Whe,20,24,"div",58),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"bag.property-zones")),e.xp6(2),e.Q6J("disabled",t.optcfg.staticZones&&t.optcfg.staticZones.length>=5),e.xp6(4),e.Q6J("ngForOf",t.optcfg.staticZones)}}const JP=function(r){return{"background-color":r}};let qhe=(()=>{class r{cdRef;dialog;dialogRef;data;ngauge;flexHead;gauge={value:30};property;gaugeTypeEnum=Ql;gaugeType=Ql.Gauge;options=new Qp;optionsGauge=new Qp;optionsDonut=new Qp;optionsZones=new Qp;optcfg=new Qp;defaultColor=ii.cQ.defaultColor;fonts=Tg.fonts;constructor(t,i,n,o){this.cdRef=t,this.dialog=i,this.dialogRef=n,this.data=o,this.optionsGauge=this.getDefaultOptions(Ql.Gauge),this.optionsDonut=this.getDefaultOptions(Ql.Donut),this.optionsZones=this.getDefaultOptions(Ql.Zones),this.options=this.optionsGauge,this.property=JSON.parse(JSON.stringify(this.data.settings.property)),this.property||(this.property=new Tt.Hy)}ngAfterViewInit(){setTimeout(()=>{this.gaugeType=Ql.Gauge,this.property.options&&(this.options=this.property.options,this.gaugeType=this.options.type,this.gaugeType===Ql.Donut?this.optionsDonut=this.options:this.gaugeType===Ql.Zones?this.optionsZones=this.options:this.optionsGauge=this.options),this.onGaugeChange(this.gaugeType),this.cdRef.detectChanges()},500)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.settings.property=this.flexHead.getProperty(),this.options.type=this.gaugeType,this.data.settings.property.options=this.options}onEditPermission(){this.dialog.open(Sv,{position:{top:"60px"},data:{permission:this.property.permission,permissionRoles:this.property.permissionRoles}}).afterClosed().subscribe(i=>{i&&(this.property.permission=i.permission,this.property.permissionRoles=i.permissionRoles)})}onGaugeChange(t){t===Ql.Donut?(this.gaugeType=Ql.Donut,this.initOptionsToConfig(this.optionsDonut),this.initDonut()):t===Ql.Zones?(this.gaugeType=Ql.Zones,this.initOptionsToConfig(this.optionsZones),this.initZones()):(this.gaugeType=Ql.Gauge,this.initOptionsToConfig(this.optionsGauge),this.initGauge()),this.cdRef.detectChanges()}onChangeValue(t){this.ngauge.setValue(t)}onChangeOptions(t,i){this.optcfg[t]=i,this.configToOptions(this.optcfg[t],t),this.setGaugeOptions()}onChangeOptionsPointer(t,i){this.options.pointer[t]=i,"pointerLength"===t?this.options.pointer.length=i/100:"pointerStrokeWidth"===t&&(this.options.pointer.strokeWidth=i/1e3),"minValue"===t&&this.onChangeValue(i),this.setGaugeOptions()}onChangeOptionsTicks(t,i){this.options.renderTicks[t]=i,"divLength"===t?this.options.renderTicks.divLength=i/100:"divWidth"===t?this.options.renderTicks.divWidth=i/10:"subLength"===t?this.options.renderTicks.subLength=i/100:"subWidth"===t&&(this.options.renderTicks.subWidth=i/10),this.setGaugeOptions()}onChangeTicks(t){if(this.options.ticksEnabled=t,t){let i=new Qp;this.options.renderTicks=JSON.parse(JSON.stringify(i.renderTicks))}else this.options.renderTicks={};this.onGaugeChange(this.gaugeType)}onChangeOptionsLabels(t,i){if("labels"===t){let n=[];i&&i.split(";").forEach(s=>{let c=parseFloat(s);isNaN(c)||n.push(c)}),this.options.staticLabels={labels:n,font:this.options.staticFontSize+"px Sans-serif",color:this.options.staticFontColor},this.checkFontFamily(),this.onGaugeChange(this.gaugeType)}else"fontSize"===t?(this.options.staticFontSize=i,this.options.staticLabels&&(this.options.staticLabels.font=this.options.staticFontSize+"px Sans-serif",this.checkFontFamily(),this.setGaugeOptions())):"labelsColor"===t?(this.options.staticFontColor=i,this.options.staticLabels&&(this.options.staticLabels.color=this.options.staticFontColor,this.setGaugeOptions())):"fontFamily"===t&&(this.options.fontFamily=i,this.checkFontFamily(),this.setGaugeOptions())}onAddZone(){this.optcfg.staticZones||(this.optcfg.staticZones=[]),this.optcfg.staticZones.length<5&&this.optcfg.staticZones.push({min:null,max:null,strokeStyle:null}),this.options.staticZones=this.optcfg.staticZones,this.onGaugeChange(this.gaugeType)}onRemoveZone(t){this.optcfg.staticZones.splice(t,1),this.optcfg.staticZones.length<=0?(delete this.optcfg.staticZones,delete this.options.staticZones):this.options.staticZones=this.optcfg.staticZones,this.onGaugeChange(this.gaugeType)}onChangeStaticZones(){this.options.staticZones=this.optcfg.staticZones,this.setGaugeOptions()}checkFontFamily(){this.options.staticLabels&&this.options.fontFamily&&(this.options.staticLabels.font=this.options.staticFontSize+"px "+this.options.fontFamily)}initGauge(){this.setGaugeOptions(),this.options=this.optionsGauge,this.ngauge.init(Ql.Gauge)}initDonut(){this.setGaugeOptions(),this.options=this.optionsDonut,this.ngauge.init(Ql.Donut)}initZones(){this.setGaugeOptions(),this.options=this.optionsZones,this.ngauge.init(Ql.Zones)}setGaugeOptions(){this.ngauge.setOptions(this.gaugeType===Ql.Donut?this.optionsDonut:this.gaugeType===Ql.Zones?this.optionsZones:this.optionsGauge)}initOptionsToConfig(t){this.optcfg=JSON.parse(JSON.stringify(t)),this.optcfg.angle*=100,this.optcfg.lineWidth*=100,this.optcfg.radiusScale*=100,this.optcfg.pointer.length*=100,this.optcfg.pointer.strokeWidth*=1e3,this.optcfg.renderTicks&&(this.optcfg.renderTicks.divLength&&(this.optcfg.renderTicks.divLength*=100),this.optcfg.renderTicks.divWidth&&(this.optcfg.renderTicks.divWidth*=10),this.optcfg.renderTicks.subLength&&(this.optcfg.renderTicks.subLength*=100),this.optcfg.renderTicks.subWidth&&(this.optcfg.renderTicks.subWidth*=10)),this.optcfg.staticLabelsText="",this.optcfg.staticLabels&&this.optcfg.staticLabels.labels.length&&this.optcfg.staticLabels.labels.forEach(i=>{this.optcfg.staticLabelsText&&(this.optcfg.staticLabelsText+=";"),this.optcfg.staticLabelsText+=i})}configToOptions(t,i){("angle"===i||"lineWidth"===i||"radiusScale"===i)&&(t/=100),this.options[i]=t}getDefaultOptions(t){if(t===Ql.Zones){var i=new Qp;return i.angle=-.25,i.lineWidth=.2,i.radiusScale=.9,i.pointer.length=.6,i.pointer.strokeWidth=.05,i}if(t===Ql.Donut){var n=new Qp;return n.angle=.3,n.lineWidth=.1,n.radiusScale=.8,n.renderTicks.divisions=0,n.renderTicks.divWidth=0,n.renderTicks.divLength=0,n.renderTicks.subDivisions=0,n.renderTicks.subWidth=0,n.renderTicks.subLength=0,delete n.staticLabels,delete n.staticZones,n.ticksEnabled=!1,n}var o=new Qp;return delete o.staticLabels,delete o.staticZones,o.ticksEnabled=!1,o.renderTicks={},o.staticFontSize=0,o.staticLabelsText="",o}static \u0275fac=function(i){return new(i||r)(e.Y36(e.sBO),e.Y36(xo),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["bag-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Hhe,5),e.Gf(Ghe,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.ngauge=o.first),e.iGM(o=e.CRH())&&(n.flexHead=o.first)}},decls:138,vars:187,consts:[[1,"dialog-mdsd-main",2,"width","750px","height","810px","position","relative"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],[1,"dialog-mdsd-content"],[2,"display","block","width","660px"],[2,"display","block"],[1,"my-form-field"],["type","text",2,"width","220px",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"vertical-align","bottom","margin-left","13px"],[1,"my-form-field-permission",2,"text-align","center","cursor","pointer",3,"click"],["class","header-icon","style","line-height: 28px;",4,"ngIf","ngIfElse"],["unlock",""],["mat-dialog-content","",2,"overflow","hidden","width","100%"],[3,"data","property"],["flexhead",""],[2,"width","750px","height","660px","position","relative"],[2,"display","block","height","360px"],[1,"gauge"],[1,"gauge-select"],[1,"btn-gauge","btn-gauge-mat",3,"ngStyle","click"],[1,"btn-gauge","btn-gauge-donut",3,"ngStyle","click"],[1,"btn-gauge","btn-gauge-zone",3,"ngStyle","click"],[1,"gauge-view"],[3,"options","value"],["ngauge",""],["class","toolbox-det",4,"ngIf"],[1,"toolbox"],[1,"toolbox-left"],[1,"field-row"],[1,"my-form-field","slider-field",2,"padding-left","12px"],[2,"display","inline-block",3,"max","min","step","thumbLabel","ngModel","ngModelChange","input"],["numberOnly","","type","number",2,"width","50px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],[1,"my-form-field","slider-field",2,"padding-left","14px"],[1,"my-form-field","slider-field","color-field",2,"padding-left","12px"],[1,"input-color",2,"width","121px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"field-row","slider-field"],[1,"my-form-field","color-field",2,"padding-left","12px"],[1,"my-form-field",2,"padding-left","12px","width","160px"],[3,"value","valueChange","selectionChange"],[3,"fontFamily","value",4,"ngFor","ngForOf"],["class","toolbox-right",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close","click"],[1,"header-icon",2,"line-height","28px"],[1,"toolbox-det"],[1,"my-form-field",2,"padding-left","12px"],["color","primary",3,"ngModel","ngModelChange","change"],[2,"display","inline-block",3,"disabled","max","min","step","thumbLabel","ngModel","ngModelChange","input"],[1,"input-color",2,"width","121px",3,"disabled","colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"input-color",2,"width","121px",3,"colorPicker","cpDisabled","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[2,"max-width","180px"],["type","text",2,"width","265px",3,"disabled","ngModel","ngModelChange","change"],[3,"value"],[1,"toolbox-right"],[2,"position","absolute","top","0px","right","0px"],["mat-icon-button","",3,"disabled","click"],[2,"margin-top","20px","margin-bottom","20px","height","250px"],["style","display: block;",4,"ngFor","ngForOf"],[1,"my-form-field","slider-field"],["type","text",2,"width","60px","text-align","center",3,"ngModel","ngModelChange","change"],["type","text",2,"width","60px",3,"ngModel","ngModelChange","change"],[1,"input-color",2,"width","58px",3,"cpDialogDisplay","colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field",2,"line-height","40px"],["mat-icon-button","",1,"remove",3,"click"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"div",5)(9,"div",6)(10,"span"),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"input",7),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s}),e.qZA()(),e.TgZ(14,"div",8)(15,"span"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"div",9),e.NdJ("click",function(){return n.onEditPermission()}),e.YNc(19,Zhe,2,0,"mat-icon",10),e.YNc(20,Jhe,2,0,"ng-template",null,11,e.W1O),e.qZA()()(),e.TgZ(22,"div",12),e._UZ(23,"flex-head",13,14),e.qZA()(),e.TgZ(25,"div",15)(26,"div",16)(27,"div",17)(28,"div",18)(29,"div",19),e.NdJ("click",function(){return n.onGaugeChange(n.gaugeTypeEnum.Gauge)}),e.qZA(),e.TgZ(30,"div",20),e.NdJ("click",function(){return n.onGaugeChange(n.gaugeTypeEnum.Donut)}),e.qZA(),e.TgZ(31,"div",21),e.NdJ("click",function(){return n.onGaugeChange(n.gaugeTypeEnum.Zones)}),e.qZA()(),e.TgZ(32,"div",22),e._UZ(33,"ngx-gauge",23,24),e.qZA()(),e.YNc(35,jhe,68,120,"div",25),e.qZA(),e.TgZ(36,"div",26)(37,"div",27)(38,"div",28)(39,"div",29)(40,"span"),e._uU(41),e.ALo(42,"translate"),e.qZA(),e.TgZ(43,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.gauge.value=s})("input",function(s){return n.onChangeValue(s.value)}),e.qZA()(),e.TgZ(44,"div",29)(45,"span"),e._uU(46),e.ALo(47,"translate"),e.qZA(),e.TgZ(48,"input",31),e.NdJ("ngModelChange",function(s){return n.optcfg.minValue=s})("change",function(){return n.onChangeOptions("minValue",n.optcfg.minValue)}),e.qZA()(),e.TgZ(49,"div",32)(50,"span"),e._uU(51),e.ALo(52,"translate"),e.qZA(),e.TgZ(53,"input",31),e.NdJ("ngModelChange",function(s){return n.optcfg.maxValue=s})("change",function(){return n.onChangeOptions("maxValue",n.optcfg.maxValue)}),e.qZA()(),e.TgZ(54,"div",29)(55,"span"),e._uU(56),e.ALo(57,"translate"),e.qZA(),e.TgZ(58,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.lineWidth=s})("input",function(s){return n.onChangeOptions("lineWidth",s.value)}),e.qZA()()(),e.TgZ(59,"div",28)(60,"div",29)(61,"span"),e._uU(62),e.ALo(63,"translate"),e.qZA(),e.TgZ(64,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.animationSpeed=s})("input",function(s){return n.onChangeOptions("animationSpeed",s.value)}),e.qZA()(),e.TgZ(65,"div",29)(66,"span"),e._uU(67),e.ALo(68,"translate"),e.qZA(),e.TgZ(69,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.angle=s})("input",function(s){return n.onChangeOptions("angle",s.value)}),e.qZA()(),e.TgZ(70,"div",29)(71,"span"),e._uU(72),e.ALo(73,"translate"),e.qZA(),e.TgZ(74,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.radiusScale=s})("input",function(s){return n.onChangeOptions("radiusScale",s.value)}),e.qZA()()(),e.TgZ(75,"div",28)(76,"div",29)(77,"span"),e._uU(78),e.ALo(79,"translate"),e.qZA(),e.TgZ(80,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.fontSize=s})("input",function(s){return n.onChangeOptions("fontSize",s.value)}),e.qZA()(),e.TgZ(81,"div",29)(82,"span"),e._uU(83),e.ALo(84,"translate"),e.qZA(),e.TgZ(85,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.textFilePosition=s})("input",function(s){return n.onChangeOptions("textFilePosition",s.value)}),e.qZA()(),e.TgZ(86,"div",29)(87,"span"),e._uU(88),e.ALo(89,"translate"),e.qZA(),e.TgZ(90,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.fractionDigits=s})("input",function(s){return n.onChangeOptions("fractionDigits",s.value)}),e.qZA()()(),e.TgZ(91,"div",28)(92,"div",29)(93,"span"),e._uU(94),e.ALo(95,"translate"),e.qZA(),e.TgZ(96,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.pointer.length=s})("input",function(s){return n.onChangeOptionsPointer("pointerLength",s.value)}),e.qZA()(),e.TgZ(97,"div",29)(98,"span"),e._uU(99),e.ALo(100,"translate"),e.qZA(),e.TgZ(101,"mat-slider",30),e.NdJ("ngModelChange",function(s){return n.optcfg.pointer.strokeWidth=s})("input",function(s){return n.onChangeOptionsPointer("pointerStrokeWidth",s.value)}),e.qZA()(),e.TgZ(102,"div",33)(103,"span"),e._uU(104),e.ALo(105,"translate"),e.qZA(),e.TgZ(106,"input",34),e.NdJ("colorPickerChange",function(s){return n.optcfg.pointer.color=s})("colorPickerChange",function(s){return n.onChangeOptionsPointer("color",s)}),e.qZA()()(),e.TgZ(107,"div",35)(108,"div",36)(109,"span"),e._uU(110),e.ALo(111,"translate"),e.qZA(),e.TgZ(112,"input",34),e.NdJ("colorPickerChange",function(s){return n.optcfg.colorStart=s})("colorPickerChange",function(s){return n.onChangeOptions("colorStart",s)}),e.qZA()(),e.TgZ(113,"div",33)(114,"span"),e._uU(115),e.ALo(116,"translate"),e.qZA(),e.TgZ(117,"input",34),e.NdJ("colorPickerChange",function(s){return n.optcfg.colorStop=s})("colorPickerChange",function(s){return n.onChangeOptions("colorStop",s)}),e.qZA()(),e.TgZ(118,"div",33)(119,"span"),e._uU(120),e.ALo(121,"translate"),e.qZA(),e.TgZ(122,"input",34),e.NdJ("colorPickerChange",function(s){return n.optcfg.strokeColor=s})("colorPickerChange",function(s){return n.onChangeOptions("strokeColor",s)}),e.qZA()()(),e.TgZ(123,"div",35)(124,"div",37)(125,"span"),e._uU(126),e.ALo(127,"translate"),e.qZA(),e.TgZ(128,"mat-select",38),e.NdJ("valueChange",function(s){return n.options.fontFamily=s})("selectionChange",function(s){return n.onChangeOptionsLabels("fontFamily",s.value)}),e.YNc(129,Vhe,2,4,"mat-option",39),e.qZA()()()(),e.YNc(130,Khe,10,5,"div",40),e.qZA()()(),e.TgZ(131,"div",41)(132,"button",42),e.NdJ("click",function(){return n.onNoClick()}),e._uU(133),e.ALo(134,"translate"),e.qZA(),e.TgZ(135,"button",43),e.NdJ("click",function(){return n.onOkClick()}),e._uU(136),e.ALo(137,"translate"),e.qZA()()()),2&i){const o=e.MAs(21);e.xp6(2),e.Oqu(e.lcZ(3,137,"editor.controls-bag-settings")),e.xp6(9),e.Oqu(e.lcZ(12,139,"gauges.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(17,141,"gauges.property-permission")),e.xp6(3),e.Q6J("ngIf",n.property.permission||(null==n.property.permissionRoles||null==n.property.permissionRoles.show?null:n.property.permissionRoles.show.length)||(null==n.property.permissionRoles||null==n.property.permissionRoles.enabled?null:n.property.permissionRoles.enabled.length))("ngIfElse",o),e.xp6(4),e.Q6J("data",n.data)("property",n.property),e.xp6(6),e.Q6J("ngStyle",e.VKq(181,JP,n.gaugeType===n.gaugeTypeEnum.Gauge?"transparent":"rgba(0,0,0,0.1)")),e.xp6(1),e.Q6J("ngStyle",e.VKq(183,JP,n.gaugeType===n.gaugeTypeEnum.Donut?"transparent":"rgba(0,0,0,0.1)")),e.xp6(1),e.Q6J("ngStyle",e.VKq(185,JP,n.gaugeType===n.gaugeTypeEnum.Zones?"transparent":"rgba(0,0,0,0.1)")),e.xp6(2),e.Q6J("options",n.options)("value",n.gauge.value),e.xp6(2),e.Q6J("ngIf",n.gaugeType!==n.gaugeTypeEnum.Donut),e.xp6(6),e.Oqu(e.lcZ(42,143,"bag.property-current-value")),e.xp6(2),e.Q6J("max",n.optcfg.maxValue)("min",n.optcfg.minValue)("step",1)("thumbLabel",!0)("ngModel",n.gauge.value),e.xp6(3),e.Oqu(e.lcZ(47,145,"bag.property-min")),e.xp6(2),e.Q6J("ngModel",n.optcfg.minValue),e.xp6(3),e.Oqu(e.lcZ(52,147,"bag.property-max")),e.xp6(2),e.Q6J("ngModel",n.optcfg.maxValue),e.xp6(3),e.Oqu(e.lcZ(57,149,"bag.property-bar-width")),e.xp6(2),e.Q6J("max",70)("min",0)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.lineWidth),e.xp6(4),e.Oqu(e.lcZ(63,151,"bag.property-animation-speed")),e.xp6(2),e.Q6J("max",128)("min",1)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.animationSpeed),e.xp6(3),e.Oqu(e.lcZ(68,153,"bag.property-angle")),e.xp6(2),e.Q6J("max",50)("min",-50)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.angle),e.xp6(3),e.Oqu(e.lcZ(73,155,"bag.property-radius")),e.xp6(2),e.Q6J("max",100)("min",50)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.radiusScale),e.xp6(4),e.Oqu(e.lcZ(79,157,"bag.property-font-size")),e.xp6(2),e.Q6J("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.fontSize),e.xp6(3),e.Oqu(e.lcZ(84,159,"bag.property-textfield-position")),e.xp6(2),e.Q6J("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.textFilePosition),e.xp6(3),e.Oqu(e.lcZ(89,161,"bag.property-format-digits")),e.xp6(2),e.Q6J("max",5)("min",0)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.fractionDigits),e.xp6(4),e.Oqu(e.lcZ(95,163,"bag.property-pointer-length")),e.xp6(2),e.Q6J("max",100)("min",0)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.pointer.length),e.xp6(3),e.Oqu(e.lcZ(100,165,"bag.property-pointer-stroke")),e.xp6(2),e.Q6J("max",300)("min",0)("step",1)("thumbLabel",!0)("ngModel",n.optcfg.pointer.strokeWidth),e.xp6(3),e.Oqu(e.lcZ(105,167,"bag.property-pointer-color")),e.xp6(2),e.Udp("background",n.optcfg.pointer.color),e.Q6J("colorPicker",n.optcfg.pointer.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(4),e.Oqu(e.lcZ(111,169,"bag.property-color-start")),e.xp6(2),e.Udp("background",n.optcfg.colorStart),e.Q6J("colorPicker",n.optcfg.colorStart)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(3),e.Oqu(e.lcZ(116,171,"bag.property-color-stop")),e.xp6(2),e.Udp("background",n.optcfg.colorStop),e.Q6J("colorPicker",n.optcfg.colorStop)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(3),e.Oqu(e.lcZ(121,173,"bag.property-background")),e.xp6(2),e.Udp("background",n.optcfg.strokeColor),e.Q6J("colorPicker",n.optcfg.strokeColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(4),e.Oqu(e.lcZ(127,175,"bag.property-font")),e.xp6(2),e.Q6J("value",n.options.fontFamily),e.xp6(1),e.Q6J("ngForOf",n.fonts),e.xp6(1),e.Q6J("ngIf",n.gaugeType===n.gaugeTypeEnum.Zones),e.xp6(3),e.Oqu(e.lcZ(134,177,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(137,179,"dlg.ok"))}},dependencies:[l.sg,l.O5,l.PC,I,qn,et,$i,Nr,Yn,Cc,Qr,Kr,Ir,Zn,fo,f0,bc,$A,HC,zr,fs,DP,Ni.X$],styles:[".slider[_ngcontent-%COMP%]{display:inline-block;width:100px}.gauge[_ngcontent-%COMP%]{display:inline-block;position:absolute;top:0;width:360px;height:350px;margin:0 auto;padding-top:30px;padding-left:70px}.gauge-select[_ngcontent-%COMP%]{width:280px;text-align:center}.gauge-view[_ngcontent-%COMP%]{border:1px solid var(--formSeparatorColor);width:280px;height:220px;margin-top:-5px;padding-top:30px}.btn-gauge[_ngcontent-%COMP%]{z-index:99;display:inline-block;width:50px;height:38px;border:1px solid var(--formSeparatorColor)}.btn-gauge-mat[_ngcontent-%COMP%]{background:url(/assets/images/gauge-mat.png) no-repeat center center;background-size:45px 30px}.btn-gauge-donut[_ngcontent-%COMP%]{background:url(/assets/images/gauge-donut.png) no-repeat center center;background-size:52px 28px}.btn-gauge-zone[_ngcontent-%COMP%]{background:url(/assets/images/gauge-zone.png) no-repeat center center;background-size:45px 30px}.toolbox[_ngcontent-%COMP%]{position:absolute;width:100%;height:310px}.toolbox-left[_ngcontent-%COMP%]{display:inline-block;width:460px;padding-top:20px}.toolbox-right[_ngcontent-%COMP%]{width:300px;position:absolute;top:0;right:0;height:270px}.toolbox-det[_ngcontent-%COMP%]{display:inline-block;width:312px;height:300px;position:absolute;top:15px;right:0}.slider-field[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:2px;text-overflow:clip;max-width:125px;white-space:nowrap;overflow:hidden}.slider-field[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{background-color:var(--formSliderBackground);height:30px}.field-row[_ngcontent-%COMP%]{display:block;margin-bottom:5px}"]})}return r})();function Xhe(r,a){1&r&&(e.TgZ(0,"mat-icon",6),e._uU(1,"lock"),e.qZA())}function $he(r,a){1&r&&(e.TgZ(0,"mat-icon",6),e._uU(1,"lock_open"),e.qZA())}let qv=(()=>{class r{dialog;settingsService;cdr;name;permission;permissionRoles;permissionMode;onChanged=new e.vpe;constructor(t,i,n){this.dialog=t,this.settingsService=i,this.cdr=n}onEditPermission(){this.dialog.open(Sv,{position:{top:"60px"},data:{permission:this.permission,permissionRoles:this.permissionRoles,mode:this.permissionMode}}).afterClosed().subscribe(n=>{n&&(this.permission=n.permission,this.permissionRoles=n.permissionRoles,this.onEmitValues()),this.cdr.detectChanges()})}getResult(){return{name:this.name,permission:this.permission,permissionRoles:this.permissionRoles}}onEmitValues(){this.onChanged.emit(this.getResult())}isRolePermission(){return this.settingsService.getSettings()?.userRole}havePermission(){return this.isRolePermission()?this.permissionRoles?.show?.length||this.permissionRoles?.enabled?.length:this.permission}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Rh.g),e.Y36(e.sBO))};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-auth"]],inputs:{name:"name",permission:"permission",permissionRoles:"permissionRoles",permissionMode:"permissionMode"},outputs:{onChanged:"onChanged"},decls:13,vars:9,consts:[[1,"my-form-field"],["type","text",2,"width","220px",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field",2,"vertical-align","bottom","margin-left","13px"],[1,"my-form-field-permission",2,"text-align","center","cursor","pointer",3,"click"],["class","header-icon","style","line-height: 28px;",4,"ngIf","ngIfElse"],["unlock",""],[1,"header-icon",2,"line-height","28px"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",1),e.NdJ("ngModelChange",function(s){return n.name=s})("change",function(){return n.onEmitValues()})("keyup.enter",function(){return n.onEmitValues()}),e.qZA()(),e.TgZ(5,"div",2)(6,"span"),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"div",3),e.NdJ("click",function(){return n.onEditPermission()}),e.YNc(10,Xhe,2,0,"mat-icon",4),e.YNc(11,$he,2,0,"ng-template",null,5,e.W1O),e.qZA()()),2&i){const o=e.MAs(12);e.xp6(2),e.Oqu(e.lcZ(3,5,"gauges.property-name")),e.xp6(2),e.Q6J("ngModel",n.name),e.xp6(3),e.Oqu(e.lcZ(8,7,"gauges.property-permission")),e.xp6(3),e.Q6J("ngIf",n.havePermission())("ngIfElse",o)}},dependencies:[l.O5,I,et,$i,Zn,Ni.X$]})}return r})();const epe=["flexauth"],tpe=["flexhead"],ipe=["slider"];function npe(r,a){if(1&r&&(e.TgZ(0,"mat-option",44),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function rpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",44),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function ope(r,a){if(1&r&&(e.TgZ(0,"mat-option",44),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("font-family",t),e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function ape(r,a){if(1&r&&(e.TgZ(0,"mat-option",44),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}let spe=(()=>{class r{dialogRef;translateService;changeDetector;data;flexAuth;flexHead;slider;property;options=new IP;defaultColor=ii.cQ.defaultColor;fonts=Tg.fonts;name;layoutHorizontal={width:400,height:80,top:180,left:0};layoutVertical={width:80,height:400,top:20,left:150};sliderLayout=this.layoutVertical;orientationType={horizontal:"horizontal",vertical:"vertical"};directionType={ltr:"ltr",rtl:"rtl"};tooltipType={none:"none",hide:"hide",show:"show"};staticScala="";constructor(t,i,n,o){this.dialogRef=t,this.translateService=i,this.changeDetector=n,this.data=o,this.property=JSON.parse(JSON.stringify(this.data.settings.property)),this.property||(this.property=new Tt.Hy),this.name=this.data.settings.name,this.options=this.property.options,this.options||(this.options=new IP)}ngOnInit(){Object.keys(this.orientationType).forEach(t=>{this.translateService.get("slider.property-"+this.orientationType[t]).subscribe(i=>{this.orientationType[t]=i})}),Object.keys(this.directionType).forEach(t=>{this.translateService.get("slider.property-"+this.directionType[t]).subscribe(i=>{this.directionType[t]=i})}),Object.keys(this.tooltipType).forEach(t=>{this.translateService.get("slider.property-tooltip-"+this.tooltipType[t]).subscribe(i=>{this.tooltipType[t]=i})}),this.sliderLayout="vertical"===this.options.orientation?this.layoutVertical:this.layoutHorizontal,this.options.pips.values.forEach(t=>{this.staticScala.length&&(this.staticScala+=";"),this.staticScala+=t.toString()})}ngAfterViewInit(){this.setSliderOptions()}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.settings.property=this.property,this.data.settings.property.permission=this.flexAuth.permission,this.data.settings.property.options=this.options,this.data.settings.name=this.flexAuth.name}onChangeOptions(t,i){"min"===t||"max"===t?this.options.range[t]=parseFloat(i):"step"===t?this.options[t]=parseFloat(i):"staticScala"===t?(this.options.pips.values=[],i&&i.split(";").forEach(o=>{let s=parseFloat(o);isNaN(s)||this.options.pips.values.push(s)})):"tooltipType"===t?this.options.tooltip.type=i:this.options[t]=i,this.setSliderOptions()}onChangeDirection(t){this.setSliderOptions()}setSliderOptions(){this.sliderLayout="vertical"===this.options.orientation?this.layoutVertical:this.layoutHorizontal,this.changeDetector.detectChanges();let t=JSON.parse(JSON.stringify(this.options));this.slider.setOptions(t),this.slider.resize(this.sliderLayout.height,this.sliderLayout.width)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Ni.sK),e.Y36(e.sBO),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-slider-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(epe,5),e.Gf(tpe,5),e.Gf(ipe,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.flexAuth=o.first),e.iGM(o=e.CRH())&&(n.flexHead=o.first),e.iGM(o=e.CRH())&&(n.slider=o.first)}},decls:156,vars:189,consts:[[1,"dialog-mdsd-main",2,"width","790px","height","730px","position","relative"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],[1,"dialog-mdsd-content"],[2,"width","100%"],[3,"label"],[2,"display","block","width","660px","padding-top","20px"],[2,"display","block"],[3,"name","permission"],["flexauth",""],["mat-dialog-content","",2,"overflow","hidden","width","100%"],[3,"data","property"],["flexhead",""],[2,"width","100%","height","515px","position","relative"],[2,"position","absolute"],["slider",""],[2,"width","280px","height","100%","float","right"],[1,"field-row",2,"margin-top","20px"],[1,"my-form-field",2,"width","120px"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field",2,"width","120px","margin-left","20px"],[1,"field-row","slider-field"],[1,"my-form-field",2,"width","163px"],[3,"fontFamily","value",4,"ngFor","ngForOf"],[1,"my-form-field","slider-field","color-field"],[1,"input-color",2,"width","78px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","slider-field","color-field",2,"padding-left","10px"],[1,"field-row"],[1,"my-form-field","slider-field"],["numberOnly","","type","text",2,"width","50px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],[1,"my-form-field","slider-field",2,"padding-left","12px"],[2,"max-width","180px"],["type","text",2,"width","160px",3,"ngModel","ngModelChange","change"],["numberOnly","","max","50","min","6","step","1","type","number",2,"width","60px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],[1,"my-form-field","slider-field",2,"padding-left","10px"],["numberOnly","","max","15","min","0","step","1","type","number",2,"width","60px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],["numberOnly","","max","50","min","0","step","1","type","number",2,"width","60px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],[1,"my-form-field",2,"width","80px"],[1,"my-form-field","slider-field","color-field",2,"padding-left","17px"],["numberOnly","","max","3","min","0","step","1","type","number",2,"width","60px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close","click"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"mat-tab-group",4)(8,"mat-tab",5),e.ALo(9,"translate"),e.TgZ(10,"div",6)(11,"div",7),e._UZ(12,"flex-auth",8,9),e.qZA(),e.TgZ(14,"div",10),e._UZ(15,"flex-head",11,12),e.qZA()(),e.TgZ(17,"div",13)(18,"div",14),e._UZ(19,"ngx-nouislider",null,15),e.qZA(),e.TgZ(21,"div",16)(22,"div",17)(23,"div",18)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"mat-select",19),e.NdJ("valueChange",function(s){return n.options.orientation=s})("selectionChange",function(){return n.setSliderOptions()}),e.YNc(28,npe,2,2,"mat-option",20),e.ALo(29,"enumToArray"),e.qZA()(),e.TgZ(30,"div",21)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"mat-select",19),e.NdJ("valueChange",function(s){return n.options.direction=s})("selectionChange",function(){return n.setSliderOptions()}),e.YNc(35,rpe,2,2,"mat-option",20),e.ALo(36,"enumToArray"),e.qZA()()(),e.TgZ(37,"div",22)(38,"div",23)(39,"span"),e._uU(40),e.ALo(41,"translate"),e.qZA(),e.TgZ(42,"mat-select",19),e.NdJ("valueChange",function(s){return n.options.fontFamily=s})("selectionChange",function(s){return n.onChangeOptions("fontFamily",s.value)}),e.YNc(43,ope,2,4,"mat-option",24),e.qZA()()(),e.TgZ(44,"div",17)(45,"div",25)(46,"span"),e._uU(47),e.ALo(48,"translate"),e.qZA(),e.TgZ(49,"input",26),e.NdJ("colorPickerChange",function(s){return n.options.shape.connectColor=s})("colorPickerChange",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(50,"div",27)(51,"span"),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"input",26),e.NdJ("colorPickerChange",function(s){return n.options.shape.baseColor=s})("colorPickerChange",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(55,"div",27)(56,"span"),e._uU(57),e.ALo(58,"translate"),e.qZA(),e.TgZ(59,"input",26),e.NdJ("colorPickerChange",function(s){return n.options.shape.handleColor=s})("colorPickerChange",function(){return n.setSliderOptions()}),e.qZA()()(),e.TgZ(60,"div",28)(61,"div",29)(62,"span"),e._uU(63),e.ALo(64,"translate"),e.qZA(),e.TgZ(65,"input",30),e.NdJ("ngModelChange",function(s){return n.options.range.min=s})("change",function(){return n.onChangeOptions("min",n.options.range.min)}),e.qZA()(),e.TgZ(66,"div",31)(67,"span"),e._uU(68),e.ALo(69,"translate"),e.qZA(),e.TgZ(70,"input",30),e.NdJ("ngModelChange",function(s){return n.options.range.max=s})("change",function(){return n.onChangeOptions("max",n.options.range.max)}),e.qZA()(),e.TgZ(71,"div",31)(72,"span"),e._uU(73),e.ALo(74,"translate"),e.qZA(),e.TgZ(75,"input",30),e.NdJ("ngModelChange",function(s){return n.options.step=s})("change",function(){return n.onChangeOptions("step",n.options.step)}),e.qZA()()(),e.TgZ(76,"div",17)(77,"div",29)(78,"div",29)(79,"span",32),e._uU(80),e.ALo(81,"translate"),e.qZA(),e.TgZ(82,"input",33),e.NdJ("ngModelChange",function(s){return n.staticScala=s})("change",function(){return n.onChangeOptions("staticScala",n.staticScala)}),e.qZA()(),e.TgZ(83,"div",27)(84,"span"),e._uU(85),e.ALo(86,"translate"),e.qZA(),e.TgZ(87,"input",26),e.NdJ("colorPickerChange",function(s){return n.options.marker.color=s})("colorPickerChange",function(){return n.setSliderOptions()}),e.qZA()()()(),e.TgZ(88,"div",28)(89,"div",29)(90,"span"),e._uU(91),e.ALo(92,"translate"),e.qZA(),e.TgZ(93,"input",34),e.NdJ("ngModelChange",function(s){return n.options.marker.fontSize=s})("change",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(94,"div",35)(95,"span"),e._uU(96),e.ALo(97,"translate"),e.qZA(),e.TgZ(98,"input",36),e.NdJ("ngModelChange",function(s){return n.options.marker.divHeight=s})("change",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(99,"div",35)(100,"span"),e._uU(101),e.ALo(102,"translate"),e.qZA(),e.TgZ(103,"input",36),e.NdJ("ngModelChange",function(s){return n.options.marker.divWidth=s})("change",function(){return n.setSliderOptions()}),e.qZA()()(),e.TgZ(104,"div",28)(105,"div",29)(106,"span"),e._uU(107),e.ALo(108,"translate"),e.qZA(),e.TgZ(109,"input",37),e.NdJ("ngModelChange",function(s){return n.options.pips.density=s})("change",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(110,"div",35)(111,"span"),e._uU(112),e.ALo(113,"translate"),e.qZA(),e.TgZ(114,"input",36),e.NdJ("ngModelChange",function(s){return n.options.marker.subHeight=s})("change",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(115,"div",35)(116,"span"),e._uU(117),e.ALo(118,"translate"),e.qZA(),e.TgZ(119,"input",36),e.NdJ("ngModelChange",function(s){return n.options.marker.subWidth=s})("change",function(){return n.setSliderOptions()}),e.qZA()()(),e.TgZ(120,"div",17)(121,"div",38)(122,"span"),e._uU(123),e.ALo(124,"translate"),e.qZA(),e.TgZ(125,"mat-select",19),e.NdJ("valueChange",function(s){return n.options.tooltip.type=s})("selectionChange",function(){return n.onChangeOptions("tooltipType",n.options.tooltip.type)}),e.YNc(126,ape,2,2,"mat-option",20),e.ALo(127,"enumToArray"),e.qZA()(),e.TgZ(128,"div",39)(129,"span"),e._uU(130),e.ALo(131,"translate"),e.qZA(),e.TgZ(132,"input",26),e.NdJ("colorPickerChange",function(s){return n.options.tooltip.color=s})("colorPickerChange",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(133,"div",27)(134,"span"),e._uU(135),e.ALo(136,"translate"),e.qZA(),e.TgZ(137,"input",26),e.NdJ("colorPickerChange",function(s){return n.options.tooltip.background=s})("colorPickerChange",function(){return n.setSliderOptions()}),e.qZA()()(),e.TgZ(138,"div",28)(139,"div",29)(140,"span"),e._uU(141),e.ALo(142,"translate"),e.qZA(),e.TgZ(143,"input",34),e.NdJ("ngModelChange",function(s){return n.options.tooltip.fontSize=s})("change",function(){return n.setSliderOptions()}),e.qZA()(),e.TgZ(144,"div",35)(145,"span"),e._uU(146),e.ALo(147,"translate"),e.qZA(),e.TgZ(148,"input",40),e.NdJ("ngModelChange",function(s){return n.options.tooltip.decimals=s})("change",function(){return n.setSliderOptions()}),e.qZA()()()()()()()(),e.TgZ(149,"div",41)(150,"button",42),e.NdJ("click",function(){return n.onNoClick()}),e._uU(151),e.ALo(152,"translate"),e.qZA(),e.TgZ(153,"button",43),e.NdJ("click",function(){return n.onOkClick()}),e._uU(154),e.ALo(155,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,131,"editor.controls-slider-settings")),e.xp6(6),e.s9C("label",e.lcZ(9,133,"slider.property-props")),e.xp6(4),e.Q6J("name",n.name)("permission",n.property.permission),e.xp6(3),e.Q6J("data",n.data)("property",n.property),e.xp6(3),e.Udp("width",n.sliderLayout.width+"px")("height",n.sliderLayout.height+"px")("top",n.sliderLayout.top+"px")("left",n.sliderLayout.left+"px"),e.xp6(7),e.Oqu(e.lcZ(26,135,"slider.property-orientation")),e.xp6(2),e.Q6J("value",n.options.orientation),e.xp6(1),e.Q6J("ngForOf",e.lcZ(29,137,n.orientationType)),e.xp6(4),e.Oqu(e.lcZ(33,139,"slider.property-direction")),e.xp6(2),e.Q6J("value",n.options.direction),e.xp6(1),e.Q6J("ngForOf",e.lcZ(36,141,n.directionType)),e.xp6(5),e.Oqu(e.lcZ(41,143,"slider.property-font")),e.xp6(2),e.Q6J("value",n.options.fontFamily),e.xp6(1),e.Q6J("ngForOf",n.fonts),e.xp6(4),e.Oqu(e.lcZ(48,145,"slider.property-slider-color")),e.xp6(2),e.Udp("background",n.options.shape.connectColor),e.Q6J("colorPicker",n.options.shape.connectColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(3),e.Oqu(e.lcZ(53,147,"slider.property-slider-background")),e.xp6(2),e.Udp("background",n.options.shape.baseColor),e.Q6J("colorPicker",n.options.shape.baseColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(3),e.Oqu(e.lcZ(58,149,"slider.property-slider-handle")),e.xp6(2),e.Udp("background",n.options.shape.handleColor),e.Q6J("colorPicker",n.options.shape.handleColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(4),e.Oqu(e.lcZ(64,151,"slider.property-min")),e.xp6(2),e.Q6J("ngModel",n.options.range.min),e.xp6(3),e.Oqu(e.lcZ(69,153,"slider.property-max")),e.xp6(2),e.Q6J("ngModel",n.options.range.max),e.xp6(3),e.Oqu(e.lcZ(74,155,"slider.property-step")),e.xp6(2),e.Q6J("ngModel",n.options.step),e.xp6(5),e.Oqu(e.lcZ(81,157,"slider.property-scala")),e.xp6(2),e.Q6J("ngModel",n.staticScala),e.xp6(3),e.Oqu(e.lcZ(86,159,"slider.property-marker-color")),e.xp6(2),e.Udp("background",n.options.marker.color),e.Q6J("colorPicker",n.options.marker.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(4),e.Oqu(e.lcZ(92,161,"slider.property-font-size")),e.xp6(2),e.Q6J("ngModel",n.options.marker.fontSize),e.xp6(3),e.Oqu(e.lcZ(97,163,"slider.property-divisions-height")),e.xp6(2),e.Q6J("ngModel",n.options.marker.divHeight),e.xp6(3),e.Oqu(e.lcZ(102,165,"slider.property-divisions-width")),e.xp6(2),e.Q6J("ngModel",n.options.marker.divWidth),e.xp6(4),e.Oqu(e.lcZ(108,167,"slider.property-subdivisions")),e.xp6(2),e.Q6J("ngModel",n.options.pips.density),e.xp6(3),e.Oqu(e.lcZ(113,169,"slider.property-subdivisions-height")),e.xp6(2),e.Q6J("ngModel",n.options.marker.subHeight),e.xp6(3),e.Oqu(e.lcZ(118,171,"slider.property-subdivisions-width")),e.xp6(2),e.Q6J("ngModel",n.options.marker.subWidth),e.xp6(4),e.Oqu(e.lcZ(124,173,"slider.property-tooltip")),e.xp6(2),e.Q6J("value",n.options.tooltip.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(127,175,n.tooltipType)),e.xp6(4),e.Oqu(e.lcZ(131,177,"slider.property-tooltip-color")),e.xp6(2),e.Udp("background",n.options.tooltip.color),e.Q6J("colorPicker",n.options.tooltip.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(3),e.Oqu(e.lcZ(136,179,"slider.property-tooltip-background")),e.xp6(2),e.Udp("background",n.options.tooltip.background),e.Q6J("colorPicker",n.options.tooltip.background)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(4),e.Oqu(e.lcZ(142,181,"slider.property-tooltip-font-size")),e.xp6(2),e.Q6J("ngModel",n.options.tooltip.fontSize),e.xp6(3),e.Oqu(e.lcZ(147,183,"slider.property-tooltip-decimals")),e.xp6(2),e.Q6J("ngModel",n.options.tooltip.decimals),e.xp6(3),e.Oqu(e.lcZ(152,185,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(155,187,"dlg.ok")))},dependencies:[l.sg,I,qn,et,$n,Er,$i,Nr,Yn,Cc,Qr,Kr,Ir,Zn,fo,NA,DA,$A,qv,HC,zr,fs,kP,Ni.X$,ii.T9],styles:[".field-row[_ngcontent-%COMP%]{display:block;margin-bottom:5px}.slider-field[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:2px;text-overflow:clip;max-width:125px;white-space:nowrap;overflow:hidden}.slider-field[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{background-color:var(--formSliderBackground);height:30px} .mat-tab-label{height:34px!important}"]})}return r})();const lpe=["switcher"],cpe=["flexhead"],Ape=["flexauth"],dpe=["flexevent"];function upe(r,a){if(1&r&&(e.TgZ(0,"mat-option",35),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("font-family",t),e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function hpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",4),e.ALo(1,"translate"),e.TgZ(2,"div",36)(3,"div",37)(4,"button",38),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddEvent())}),e.ALo(5,"translate"),e.TgZ(6,"mat-icon"),e._uU(7,"add_circle_outline"),e.qZA()()(),e.TgZ(8,"div",39),e._UZ(9,"flex-event",40,41),e.qZA()()()}if(2&r){const t=e.oxw();e.s9C("label",e.lcZ(1,7,"gauges.property-events")),e.xp6(4),e.s9C("matTooltip",e.lcZ(5,9,"gauges.property-tooltip-add-event")),e.xp6(5),e.Q6J("property",t.property)("views",t.data.views)("data",t.data)("inputs",t.data.inputs)("scripts",t.data.scripts)}}let ppe=(()=>{class r{dialogRef;data;switcher;flexhead;flexauth;flexEvent;property;options;name;switchWidth=80;switchHeight=40;fonts=Tg.fonts;defaultColor=ii.cQ.defaultColor;withBitmask=!1;eventsSupported;constructor(t,i){this.dialogRef=t,this.data=i,this.property=JSON.parse(JSON.stringify(this.data.settings.property)),this.property||(this.property=new Tt.Hy),this.name=this.data.settings.name,this.options=this.property.options,this.options||(this.options=new G8);let n=tu.getSize(this.data.settings);this.switchHeight=n.height,this.switchWidth=n.width,this.options.height=this.switchHeight,this.eventsSupported=this.data.withEvents}ngOnInit(){this.data.withBitmask&&(this.withBitmask=this.data.withBitmask)}ngAfterViewInit(){this.updateOptions()}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.settings.property=this.property,this.data.settings.property.permission=this.flexauth.permission,this.data.settings.property.permissionRoles=this.flexauth.permissionRoles,this.data.settings.property.options=this.options,this.data.settings.name=this.flexauth.name,this.flexEvent&&(this.data.settings.property.events=this.flexEvent.getEvents())}onAddEvent(){this.flexEvent.onAddEvent()}updateOptions(){this.switcher?.setOptions(this.options)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-html-switch-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(lpe,5),e.Gf(cpe,5),e.Gf(Ape,5),e.Gf(dpe,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.switcher=o.first),e.iGM(o=e.CRH())&&(n.flexhead=o.first),e.iGM(o=e.CRH())&&(n.flexauth=o.first),e.iGM(o=e.CRH())&&(n.flexEvent=o.first)}},decls:97,vars:144,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],[2,"width","100%"],[3,"label"],[2,"height","500px","overflow-y","auto","overflow-x","hidden","padding-top","15px"],[1,"block"],[3,"name","permission","permissionRoles"],["flexauth",""],[3,"data","property","withStaticValue","withBitmask"],["flexhead",""],[1,"field-row","mt10"],[1,"my-form-field","color-field"],[1,"input-color",2,"padding","8px 0 0 0","width","90px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","color-field","ml10"],[1,"my-form-field","ml10"],["numberOnly","","type","text",2,"width","80px","text-align","center","display","inline-block",3,"ngModel","ngModelChange"],[1,"my-form-field","color-field","ftr","ml10"],[1,"my-form-field","ftr"],["type","text",2,"width","90px","text-align","center","display","inline-block",3,"ngModel","ngModelChange","change"],[1,"my-form-field","ftr","ml10"],[1,"my-form-field","input-radius"],["numberOnly","","type","number","min","0","max","100","step","1",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","input-font-size","ml10"],["numberOnly","","type","number","min","0","max","50","step","1",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","input-font","ml10"],[3,"value","valueChange","selectionChange"],[3,"fontFamily","value",4,"ngFor","ngForOf"],[1,"field-row",2,"position","absolute","height","210px","width","650px","margin-top","16px","max-width","650px","max-height","210px","overflow","hidden"],[2,"position","absolute","left","50%","top","50%","transform","translateX(-50%) translateY(-50%)"],["switcher",""],[3,"label",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close","click"],[3,"value"],[1,"mat-tab-container"],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],["mat-dialog-content","",2,"overflow","visible","width","100%"],[1,"mb5",3,"property","views","data","inputs","scripts"],["flexevent",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"mat-tab-group",3)(7,"mat-tab",4),e.ALo(8,"translate"),e.TgZ(9,"div",5)(10,"div",6),e._UZ(11,"flex-auth",7,8),e.qZA(),e.TgZ(13,"div",6),e._UZ(14,"flex-head",9,10),e.qZA(),e._UZ(16,"div",11),e.TgZ(17,"div",11)(18,"div",12)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"input",13),e.NdJ("colorPickerChange",function(s){return n.options.offBackground=s})("colorPickerChange",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(23,"div",14)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"input",13),e.NdJ("colorPickerChange",function(s){return n.options.offSliderColor=s})("colorPickerChange",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(28,"div",15)(29,"span"),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"input",16),e.NdJ("ngModelChange",function(s){return n.options.offValue=s}),e.qZA()(),e.TgZ(33,"div",17)(34,"span"),e._uU(35),e.ALo(36,"translate"),e.qZA(),e.TgZ(37,"input",13),e.NdJ("colorPickerChange",function(s){return n.options.onBackground=s})("colorPickerChange",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(38,"div",17)(39,"span"),e._uU(40),e.ALo(41,"translate"),e.qZA(),e.TgZ(42,"input",13),e.NdJ("colorPickerChange",function(s){return n.options.onSliderColor=s})("colorPickerChange",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(43,"div",18)(44,"span"),e._uU(45),e.ALo(46,"translate"),e.qZA(),e.TgZ(47,"input",16),e.NdJ("ngModelChange",function(s){return n.options.onValue=s}),e.qZA()()(),e.TgZ(48,"div",11)(49,"div",12)(50,"span"),e._uU(51),e.ALo(52,"translate"),e.qZA(),e.TgZ(53,"input",13),e.NdJ("colorPickerChange",function(s){return n.options.offTextColor=s})("colorPickerChange",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(54,"div",15)(55,"span"),e._uU(56),e.ALo(57,"translate"),e.qZA(),e.TgZ(58,"input",19),e.NdJ("ngModelChange",function(s){return n.options.offText=s})("change",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(59,"div",17)(60,"span"),e._uU(61),e.ALo(62,"translate"),e.qZA(),e.TgZ(63,"input",13),e.NdJ("colorPickerChange",function(s){return n.options.onTextColor=s})("colorPickerChange",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(64,"div",20)(65,"span"),e._uU(66),e.ALo(67,"translate"),e.qZA(),e.TgZ(68,"input",19),e.NdJ("ngModelChange",function(s){return n.options.onText=s})("change",function(){return n.updateOptions()}),e.qZA()()(),e.TgZ(69,"div",11)(70,"div",21)(71,"span"),e._uU(72),e.ALo(73,"translate"),e.qZA(),e.TgZ(74,"input",22),e.NdJ("ngModelChange",function(s){return n.options.radius=s})("change",function(){return n.updateOptions()})("keyup.enter",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(75,"div",23)(76,"span"),e._uU(77),e.ALo(78,"translate"),e.qZA(),e.TgZ(79,"input",24),e.NdJ("ngModelChange",function(s){return n.options.fontSize=s})("change",function(){return n.updateOptions()})("keyup.enter",function(){return n.updateOptions()}),e.qZA()(),e.TgZ(80,"div",25)(81,"span"),e._uU(82),e.ALo(83,"translate"),e.qZA(),e.TgZ(84,"mat-select",26),e.NdJ("valueChange",function(s){return n.options.fontFamily=s})("selectionChange",function(){return n.updateOptions()}),e.YNc(85,upe,2,4,"mat-option",27),e.qZA()()(),e.TgZ(86,"div",28),e._UZ(87,"ngx-switch",29,30),e.qZA()()(),e.YNc(89,hpe,11,11,"mat-tab",31),e.qZA(),e.TgZ(90,"div",32)(91,"button",33),e.NdJ("click",function(){return n.onNoClick()}),e._uU(92),e.ALo(93,"translate"),e.qZA(),e.TgZ(94,"button",34),e.NdJ("click",function(){return n.onOkClick()}),e._uU(95),e.ALo(96,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,110,"editor.controls-html-switch-settings")),e.xp6(5),e.s9C("label",e.lcZ(8,112,"gauges.property-props")),e.xp6(4),e.Q6J("name",n.name)("permission",n.property.permission)("permissionRoles",n.property.permissionRoles),e.xp6(3),e.Q6J("data",n.data)("property",n.property)("withStaticValue",!1)("withBitmask",n.withBitmask),e.xp6(6),e.Oqu(e.lcZ(21,114,"html-switch.property-off-background")),e.xp6(2),e.Udp("background",n.options.offBackground),e.Q6J("colorPicker",n.options.offBackground)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","right"),e.xp6(3),e.Oqu(e.lcZ(26,116,"html-switch.property-off-slider-color")),e.xp6(2),e.Udp("background",n.options.offSliderColor),e.Q6J("colorPicker",n.options.offSliderColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","right"),e.xp6(3),e.Oqu(e.lcZ(31,118,"html-switch.property-off-value")),e.xp6(2),e.Q6J("ngModel",n.options.offValue),e.xp6(3),e.Oqu(e.lcZ(36,120,"html-switch.property-on-background")),e.xp6(2),e.Udp("background",n.options.onBackground),e.Q6J("colorPicker",n.options.onBackground)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(3),e.Oqu(e.lcZ(41,122,"html-switch.property-on-slider-color")),e.xp6(2),e.Udp("background",n.options.onSliderColor),e.Q6J("colorPicker",n.options.onSliderColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","left"),e.xp6(3),e.Oqu(e.lcZ(46,124,"html-switch.property-on-value")),e.xp6(2),e.Q6J("ngModel",n.options.onValue),e.xp6(4),e.Oqu(e.lcZ(52,126,"html-switch.property-off-text-color")),e.xp6(2),e.Udp("background",n.options.offTextColor),e.Q6J("colorPicker",n.options.offTextColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(3),e.Oqu(e.lcZ(57,128,"html-switch.property-off-text")),e.xp6(2),e.Q6J("ngModel",n.options.offText),e.xp6(3),e.Oqu(e.lcZ(62,130,"html-switch.property-on-text-color")),e.xp6(2),e.Udp("background",n.options.onTextColor),e.Q6J("colorPicker",n.options.onTextColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","top"),e.xp6(3),e.Oqu(e.lcZ(67,132,"html-switch.property-on-text")),e.xp6(2),e.Q6J("ngModel",n.options.onText),e.xp6(4),e.Oqu(e.lcZ(73,134,"html-switch.property-radius")),e.xp6(2),e.Q6J("ngModel",n.options.radius),e.xp6(3),e.Oqu(e.lcZ(78,136,"html-switch.property-font-size")),e.xp6(2),e.Q6J("ngModel",n.options.fontSize),e.xp6(3),e.Oqu(e.lcZ(83,138,"html-switch.property-font")),e.xp6(2),e.Q6J("value",n.options.fontFamily),e.xp6(1),e.Q6J("ngForOf",n.fonts),e.xp6(2),e.Udp("width",n.switchWidth+"px")("height",n.switchHeight+"px"),e.xp6(2),e.Q6J("ngIf",n.eventsSupported),e.xp6(3),e.Oqu(e.lcZ(93,140,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(96,142,"dlg.ok")))},dependencies:[l.sg,l.O5,I,qn,et,$n,Er,$i,Nr,Yn,Cc,Qr,Kr,Ir,Zn,fo,NA,DA,Cs,$A,qv,HC,_M,zr,fs,TP,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:740px;position:relative}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .input-radius[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:80px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .input-font-size[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:80px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .input-font[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%]{width:160px}[_nghost-%COMP%] .field-row[_ngcontent-%COMP%]{display:block;margin-bottom:5px}[_nghost-%COMP%] .slider-field[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:2px;text-overflow:clip;width:150px;white-space:nowrap;overflow:hidden}[_nghost-%COMP%] .slider-field[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{background-color:var(--formSliderBackground);height:29px}[_nghost-%COMP%] .slider-small[_ngcontent-%COMP%] > .mat-slider-horizontal[_ngcontent-%COMP%]{min-width:80px}[_nghost-%COMP%] .mat-tab-label{height:34px!important}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%]{min-height:300px;height:60vmin;overflow-y:auto;overflow-x:hidden;padding-top:15px}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{float:right;line-height:44px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}"]})}return r})();function gpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",12),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.Q6J("value",t.key)("disabled",t.key===i.cardType.table),e.xp6(1),e.hij(" ",e.lcZ(2,3,"card.widget-"+t.value)," ")}}function fpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",14),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function mpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",3)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",4),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.card.data=n)}),e.YNc(6,fpe,2,2,"mat-option",13),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"card.config-content-view")),e.xp6(2),e.Q6J("value",t.card.data),e.xp6(1),e.Q6J("ngForOf",t.data.views)}}function _pe(r,a){1&r&&e._UZ(0,"div")}function vpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",15)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",16),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.card.data=n)}),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,2,"card.config-content-iframe")),e.xp6(2),e.Q6J("ngModel",t.card.data)}}function ype(r,a){if(1&r&&(e.TgZ(0,"mat-option",14),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"panel.property-scalemode-"+t.value)," ")}}function wpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",17)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",4),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.card.scaleMode=n)}),e.YNc(5,ype,3,4,"mat-option",13),e.ALo(6,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"panel.property-scalemode")),e.xp6(2),e.Q6J("value",t.card.scaleMode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(6,5,t.scaleMode))}}let Cpe=(()=>{class r{translateService;dialogRef;data;cardType=Tt.W9;card;scaleMode=Tt.r8;constructor(t,i,n){this.translateService=t,this.dialogRef=i,this.data=n,this.card=this.data.item.card}ngOnInit(){Object.keys(this.cardType).forEach(t=>{this.translateService.get(this.cardType[t]).subscribe(i=>{this.cardType[t]=i})})}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.item.content=null,this.card.type===Tt.W9.view||this.card.type===Tt.W9.iframe&&(this.data.item.content=this.card.data),this.dialogRef.close(this.data.item)}static \u0275fac=function(i){return new(i||r)(e.Y36(Ni.sK),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-card-config"]],decls:26,vars:22,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"force-lbk","pointer-move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",1,"container"],[1,"my-form-field"],[2,"width","320px",3,"value","valueChange"],[3,"value","disabled",4,"ngFor","ngForOf"],[1,"ftr",3,"ngSwitch"],[4,"ngSwitchCase"],["class","my-form-field block mt10",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close","click"],[3,"value","disabled"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"my-form-field","ftr"],["type","text",2,"width","320px",3,"ngModel","ngModelChange"],[1,"my-form-field","block","mt10"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",4),e.NdJ("valueChange",function(s){return n.card.type=s}),e.YNc(12,gpe,3,5,"mat-option",5),e.ALo(13,"enumToArray"),e.qZA()(),e.TgZ(14,"div",6),e.YNc(15,mpe,7,5,"div",7),e.YNc(16,_pe,1,0,"div",7),e.YNc(17,vpe,6,4,"div",7),e.qZA(),e.YNc(18,wpe,7,7,"div",8),e.qZA(),e.TgZ(19,"div",9)(20,"button",10),e.NdJ("click",function(){return n.onNoClick()}),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"button",11),e.NdJ("click",function(){return n.onOkClick()}),e._uU(24),e.ALo(25,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,12,"card.config-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"card.config-content-type")),e.xp6(2),e.Q6J("value",n.card.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(13,16,n.cardType)),e.xp6(2),e.Q6J("ngSwitch",n.card.type),e.xp6(1),e.Q6J("ngSwitchCase",n.cardType.view),e.xp6(1),e.Q6J("ngSwitchCase",n.cardType.alarms),e.xp6(1),e.Q6J("ngSwitchCase",n.cardType.iframe),e.xp6(1),e.Q6J("ngIf",n.card.type===n.cardType.view||n.card.type===n.cardType.iframe),e.xp6(3),e.Oqu(e.lcZ(22,18,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(25,20,"dlg.ok")))},dependencies:[l.sg,l.O5,l.RF,l.n9,I,et,$i,Nr,Yn,Cc,Qr,Kr,Ir,Zn,fo,zr,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:700px;height:500px}"]})}return r})();function bpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",7),e._UZ(1,"flex-variable",8),e.TgZ(2,"span"),e._uU(3," - "),e.qZA(),e.TgZ(4,"flex-variable",9),e.NdJ("onchange",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.setVariable(s,n))}),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("variableId",t.srcId)("withStaticValue",!1)("withBitmask",!1)("readonly",!0),e.xp6(3),e.Q6J("data",i.data)("variableId",t.destId)("withStaticValue",!1)("withBitmask",!1)}}let xpe=(()=>{class r{dialogRef;data;constructor(t,i){this.dialogRef=t,this.data=i}onOkClick(){this.dialogRef.close(this.data.tagsIds)}onCancelClick(){this.dialogRef.close()}setVariable(t,i){t.destId=i.variableId}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tags-ids-config"]],decls:15,vars:10,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",1,"content"],["class","tag-Id-ref",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],[1,"tag-Id-ref"],[3,"data","variableId","withStaticValue","withBitmask","readonly"],[3,"data","variableId","withStaticValue","withBitmask","onchange"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onCancelClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2),e.YNc(7,bpe,5,9,"div",3),e.qZA(),e.TgZ(8,"div",4)(9,"button",5),e.NdJ("click",function(){return n.onCancelClick()}),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"button",6),e.NdJ("click",function(){return n.onOkClick()}),e._uU(13),e.ALo(14,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,4,"tags.ids-config-title")),e.xp6(5),e.Q6J("ngForOf",n.data.tagsIds),e.xp6(3),e.Oqu(e.lcZ(11,6,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(14,8,"dlg.ok")))},dependencies:[l.sg,Yn,Qr,Kr,Ir,Zn,$u,zr,Ni.X$],styles:[".content[_ngcontent-%COMP%]{min-height:400px;min-width:800px;margin-top:10px}.tag-Id-ref[_ngcontent-%COMP%]{display:block}.tag-Id-ref[_ngcontent-%COMP%] flex-variable[_ngcontent-%COMP%]{display:inline-block}.tag-Id-ref[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-left:5px;margin-right:5px;display:inline-block}"]})}return r})();const Bpe=["flexevent"],Epe=["tabEvents"];function Mpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",10),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.hij(" ",t.text," ")}}function Dpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",10),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"dlg.docproperty-align-"+t.value)," ")}}function Tpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",24)(2,"div",25)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._UZ(6,"input",26),e.qZA(),e.TgZ(7,"div",27)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",28),e.qZA()(),e.TgZ(12,"div",8)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",29),e.NdJ("selectionChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onSizeChange(n.value))}),e.ALo(17,"translate"),e.YNc(18,Mpe,2,2,"mat-option",30),e.qZA()(),e.TgZ(19,"div",8)(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"mat-select",31),e.ALo(24,"translate"),e.YNc(25,Dpe,3,4,"mat-option",30),e.ALo(26,"enumToArray"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,8,"dlg.docproperty-width")),e.xp6(5),e.Oqu(e.lcZ(10,10,"dlg.docproperty-height")),e.xp6(5),e.Oqu(e.lcZ(15,12,"dlg.docproperty-size")),e.xp6(2),e.s9C("placeholder",e.lcZ(17,14,"dlg.docproperty-select")),e.xp6(2),e.Q6J("ngForOf",t.propSizeType),e.xp6(3),e.Oqu(e.lcZ(22,16,"dlg.docproperty-align")),e.xp6(2),e.s9C("placeholder",e.lcZ(24,18,"dlg.docproperty-align-placeholder")),e.xp6(2),e.Q6J("ngForOf",e.lcZ(26,20,t.alignType))}}function Ipe(r,a){if(1&r&&(e.TgZ(0,"mat-option",10),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.hij(" ",e.lcZ(2,2,"dlg.docproperty-gridtype-"+t.value)," ")}}function kpe(r,a){if(1&r&&(e.TgZ(0,"div")(1,"div",32)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",33),e.ALo(6,"translate"),e.YNc(7,Ipe,3,4,"mat-option",30),e.ALo(8,"enumToArray"),e.qZA()(),e.TgZ(9,"div",34)(10,"span"),e._uU(11),e.ALo(12,"translate"),e.qZA(),e._UZ(13,"input",35),e.qZA()()),2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,7,"dlg.docproperty-gridtype")),e.xp6(2),e.s9C("placeholder",e.lcZ(6,9,"dlg.docproperty-gridtype-placeholder")),e.xp6(2),e.Q6J("ngForOf",e.lcZ(8,11,t.gridType)),e.xp6(4),e.Oqu(e.lcZ(12,13,"dlg.docproperty-margin")),e.xp6(2),e.Q6J("max",20)("min",0)("step",1)}}function Qpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",8)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",36),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.profile.bkcolor=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,14,"dlg.docproperty-background")),e.xp6(2),e.Udp("background",t.data.profile.bkcolor),e.Q6J("colorPicker",t.data.profile.bkcolor)("cpPresetColors",t.defaultColor)("cpAlphaChannel","always")("cpPosition","bottom")("value",t.data.profile.bkcolor)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButton",!0)("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")}}let _N=(()=>{class r{fb;translateService;projectService;dialogRef;data;defaultColor=ii.cQ.defaultColor;viewType=Tt.bW;alignType=Tt.Bx;formGroup;gridType=Z0.tQ;scripts;destroy$=new An.x;flexEvent;tabEvents;propSizeType=[{text:"dlg.docproperty-size-320-240",value:{width:320,height:240}},{text:"dlg.docproperty-size-460-360",value:{width:460,height:360}},{text:"dlg.docproperty-size-640-480",value:{width:640,height:480}},{text:"dlg.docproperty-size-800-600",value:{width:800,height:600}},{text:"dlg.docproperty-size-1024-768",value:{width:1024,height:768}},{text:"dlg.docproperty-size-1280-960",value:{width:1280,height:960}},{text:"dlg.docproperty-size-1600-1200",value:{width:1600,height:1200}},{text:"dlg.docproperty-size-1920-1080",value:{width:1920,height:1080}}];constructor(t,i,n,o,s){this.fb=t,this.translateService=i,this.projectService=n,this.dialogRef=o,this.data=s,this.scripts=this.projectService.getScripts();for(let c=0;c{this.propSizeType[c].text=g})}ngOnInit(){this.formGroup=this.fb.group({name:[{value:this.data.name,disabled:this.data.name},Z.required],type:[{value:this.data.type,disabled:this.data.name}],width:[this.data.profile.width],height:[this.data.profile.height],margin:[this.data.profile.margin],align:[this.data.profile.align],gridType:[this.data.profile.gridType],viewRenderDelay:[this.data.profile?.viewRenderDelay||0]}),this.data.type!==Tt.bW.cards&&this.data.type!==Tt.bW.maps&&(this.formGroup.controls.width.setValidators(Z.required),this.formGroup.controls.height.setValidators(Z.required)),this.data.name||this.formGroup.controls.name.addValidators(this.isValidName()),this.formGroup.updateValueAndValidity(),this.formGroup.controls.type.valueChanges.pipe((0,On.R)(this.destroy$),na(this.formGroup.controls.type.value)).subscribe(t=>{this.tabEvents.disabled=t===Tt.bW.cards||t===Tt.bW.maps,t===Tt.bW.cards&&this.data.newView&&"#ffffffff"===this.data.profile.bkcolor&&(this.data.profile.bkcolor="#E6E6E6")})}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}isValidName(){return t=>-1!==this.data.existingNames?.indexOf(t.value)?{name:this.translateService.instant("msg.view-name-exist")}:null}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.name=this.formGroup.controls.name.value,this.data.type=this.formGroup.controls.type.value,this.data.profile.width=this.formGroup.controls.width.value,this.data.profile.height=this.formGroup.controls.height.value,this.data.profile.margin=this.formGroup.controls.margin.value,this.data.profile.align=this.formGroup.controls.align.value,this.data.profile.gridType=this.formGroup.controls.gridType.value,this.data.profile.viewRenderDelay=this.formGroup.controls.viewRenderDelay.value,this.data.property||(this.data.property=new Tt.Bi),this.data.property.events=this.flexEvent.getEvents(),this.dialogRef.close(this.data)}onSizeChange(t){t?.width&&t?.height&&(this.formGroup.controls.height.setValue(t.height),this.formGroup.controls.width.setValue(t.width))}onAddEvent(){this.flexEvent.onAddEvent()}static \u0275fac=function(i){return new(i||r)(e.Y36(co),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-view-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Bpe,5),e.Gf(Epe,7)),2&i){let o;e.iGM(o=e.CRH())&&(n.flexEvent=o.first),e.iGM(o=e.CRH())&&(n.tabEvents=o.first)}},decls:57,vars:51,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],[2,"width","100%"],[3,"label"],[1,"mat-tab-container","property-container"],[1,"my-form-field","item-block"],["formControlName","name","type","text"],[1,"my-form-field","item-block","mt10"],["formControlName","type",3,"placeholder"],[3,"value"],[4,"ngIf"],["class","my-form-field item-block mt10",4,"ngIf"],["numberOnly","","formControlName","viewRenderDelay","type","number",3,"min"],["tabEvents",""],[1,"mat-tab-container"],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],["mat-dialog-content","",2,"overflow","visible","width","100%"],[2,"padding-bottom","5px",3,"data","property","scripts"],["flexevent",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"block","mt10"],[1,"my-form-field","inbk"],["numberOnly","","formControlName","width","type","number",2,"width","120px"],[1,"my-form-field",2,"float","right"],["numberOnly","","formControlName","height","type","number",2,"width","120px"],[3,"placeholder","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["formControlName","align",3,"placeholder"],[1,"my-form-field","inbk","mt10",2,"width","160px"],["formControlName","gridType",3,"placeholder"],[1,"my-form-field","inbk","mt10","ftr"],["numberOnly","","formControlName","margin","type","number",2,"width","100px",3,"max","min","step"],["readonly","","title","Change stroke color",1,"input-color",2,"width","292px","border","1px solid rgba(0,0,0,0.2)","height","15px !important",3,"colorPicker","cpPresetColors","cpAlphaChannel","cpPosition","value","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButton","cpOKButtonText","cpOKButtonClass","colorPickerChange"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"mat-tab-group",3)(7,"mat-tab",4),e.ALo(8,"translate"),e.TgZ(9,"div",5)(10,"div",6)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e._UZ(14,"input",7),e.qZA(),e.TgZ(15,"div",8)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"mat-select",9),e.ALo(20,"translate"),e.TgZ(21,"mat-option",10),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.TgZ(24,"mat-option",10),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"mat-option",10),e._uU(28),e.ALo(29,"translate"),e.qZA()()(),e.YNc(30,Tpe,27,22,"div",11),e.YNc(31,kpe,14,15,"div",11),e.YNc(32,Qpe,5,16,"div",12),e.TgZ(33,"div",8)(34,"span"),e._uU(35),e.ALo(36,"translate"),e.qZA(),e._UZ(37,"input",13),e.qZA()()(),e.TgZ(38,"mat-tab",4,14),e.ALo(40,"translate"),e.TgZ(41,"div",15)(42,"div",16)(43,"button",17),e.NdJ("click",function(){return n.onAddEvent()}),e.ALo(44,"translate"),e.TgZ(45,"mat-icon"),e._uU(46,"add_circle_outline"),e.qZA()()(),e.TgZ(47,"div",18),e._UZ(48,"flex-event",19,20),e.qZA()()()(),e.TgZ(50,"div",21)(51,"button",22),e.NdJ("click",function(){return n.onNoClick()}),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"button",23),e.NdJ("click",function(){return n.onOkClick()}),e._uU(55),e.ALo(56,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,25,"dlg.docproperty-title")),e.xp6(5),e.s9C("label",e.lcZ(8,27,"gauges.property-props")),e.xp6(5),e.Oqu(e.lcZ(13,29,"dlg.docproperty-name")),e.xp6(5),e.Oqu(e.lcZ(18,31,"dlg.docproperty-type")),e.xp6(2),e.s9C("placeholder",e.lcZ(20,33,"dlg.doctype")),e.xp6(2),e.Q6J("value",n.viewType.svg),e.xp6(1),e.Oqu(e.lcZ(23,35,"editor.view-svg")),e.xp6(2),e.Q6J("value",n.viewType.cards),e.xp6(1),e.Oqu(e.lcZ(26,37,"editor.view-cards")),e.xp6(2),e.Q6J("value",n.viewType.maps),e.xp6(1),e.Oqu(e.lcZ(29,39,"editor.view-maps")),e.xp6(2),e.Q6J("ngIf",(null==n.formGroup.controls.type?null:n.formGroup.controls.type.value)===n.viewType.svg),e.xp6(1),e.Q6J("ngIf",(null==n.formGroup.controls.type?null:n.formGroup.controls.type.value)===n.viewType.cards),e.xp6(1),e.Q6J("ngIf",(null==n.formGroup.controls.type?null:n.formGroup.controls.type.value)!==n.viewType.maps),e.xp6(3),e.Oqu(e.lcZ(36,41,"dlg.docproperty-renderDelay")),e.xp6(2),e.Q6J("min",0),e.xp6(1),e.s9C("label",e.lcZ(40,43,"gauges.property-events")),e.xp6(5),e.s9C("matTooltip",e.lcZ(44,45,"gauges.property-tooltip-add-event")),e.xp6(5),e.Q6J("data",n.data)("property",n.data.property)("scripts",n.scripts),e.xp6(4),e.hij(" ",e.lcZ(53,47,"dlg.cancel")," "),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.hij(" ",e.lcZ(56,49,"dlg.ok")," "))},dependencies:[l.sg,l.O5,In,I,qn,et,Xe,$n,Er,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,NA,DA,Cs,$A,_M,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:700px}[_nghost-%COMP%] .property-container[_ngcontent-%COMP%]{width:300px}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 7px)}[_nghost-%COMP%] .slider-field[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:2px;text-overflow:clip;max-width:125px;white-space:nowrap;overflow:hidden}[_nghost-%COMP%] .slider-field[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{background-color:var(--formSliderBackground);height:30px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{float:right;line-height:44px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .mat-tab-label{height:34px!important}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%]{min-height:300px;height:60vmin;overflow-y:auto;overflow-x:hidden;padding-top:15px}"]})}return r})(),vN=(()=>{class r{resourcesService;clearSelection$=new An.x;svgWidgetSelected$=new An.x;refreshSubject=new An.x;constructor(t){this.resourcesService=t}resourceWidgets$=this.refreshSubject.pipe(na(0),(0,Xs.w)(()=>this.resourcesService.getResources(UC.widgets).pipe((0,f.U)(t=>t.groups))));clearSelection(){this.clearSelection$.next(null)}widgetSelected(t){"svg"===t.split(".").pop().toLowerCase()&&this.svgWidgetSelected$.next(t)}refreshResources(){this.refreshSubject.next(null)}removeWidget(t){return this.resourcesService.removeWidget(t)}static \u0275fac=function(i){return new(i||r)(e.LFG(Q0))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})(),jP=(()=>{class r{rciService;constructor(t){this.rciService=t}upload(t,i,n){if(t){let o=t.name,s={type:o.split(".").pop().toLowerCase(),name:o.split("/").pop(),data:null,fullPath:n};const c="svg"===s.type;let g=new FileReader;return new Za.y(B=>{g.onload=()=>{try{s.data=g.result,this.rciService.uploadFile(s,i).subscribe(O=>{B.next({result:O,error:null}),B.complete()},O=>{B.next({result:!1,error:O.error?.error||O.message}),B.complete()})}catch(O){B.next({result:!1,error:O}),B.complete()}},c?g.readAsText(t):g.readAsDataURL(t)})}return(0,lr.of)({result:!1,error:null})}static \u0275fac=function(i){return new(i||r)(e.LFG(yv))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})(),Spe=(()=>{class r{http;fileService;endPointWidgetResources="https://frangoteam.org/api/list-widgets.php";resourceWidgets$;widgetAssetBaseUrl="https://frangoteam.org/widgets/";constructor(t,i){this.http=t,this.fileService=i,this.resourceWidgets$=this.getWidgetsResource()}getWidgetsResource(){const t=new Ia.WM({"Skip-Auth":"true"});return this.http.get(this.endPointWidgetResources,{headers:t})}getWidgetsGroupContent(t){const i=new Ia.WM({"Skip-Auth":"true"});return this.http.get(`${this.endPointWidgetResources}?path=${encodeURIComponent(t)}`,{headers:i})}uploadWidgetFromUrl(t,i,n){return new Za.y(o=>{fetch(t).then(s=>{if(!s.ok)throw new Error("Download failed");return s.text()}).then(s=>{const c=n||i.split("/").pop()||t.split("/").pop()||"widget.svg",g=new Blob([s],{type:"image/svg+xml"}),B=new File([g],c,{type:"image/svg+xml"});this.fileService.upload(B,"widgets",i).subscribe({next:O=>o.next(O),error:O=>o.error(O),complete:()=>o.complete()})}).catch(s=>o.error(s))})}static \u0275fac=function(i){return new(i||r)(e.LFG(Ia.eN),e.LFG(jP))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var vD=ce(243);function Ppe(r,a){1&r&&(e.TgZ(0,"div",13),e._UZ(1,"mat-progress-spinner",14),e.qZA())}function Fpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",20)(1,"mat-icon",21),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(3);return e.KtG(o.onDownload(n))}),e._uU(2,"download"),e.qZA()()}}function Ope(r,a){if(1&r&&(e.TgZ(0,"div",17),e._UZ(1,"img",18),e.YNc(2,Fpe,3,0,"div",19),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.ekj("item-exists",t.exist),e.s9C("matTooltip",t.name),e.xp6(1),e.Q6J("src",i.assetBaseUrl+t.path,e.LSH)("id",t.path),e.xp6(1),e.Q6J("ngIf",!t.exist)}}function Lpe(r,a){if(1&r&&(e.TgZ(0,"div",15),e.YNc(1,Ope,3,6,"div",16),e.qZA()),2&r){const t=a.ngIf;e.xp6(1),e.Q6J("ngForOf",t)}}function Rpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-expansion-panel",9),e.NdJ("opened",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onGroupExpand(o.path))}),e.TgZ(1,"mat-expansion-panel-header",10)(2,"mat-panel-title"),e._uU(3),e.qZA(),e._UZ(4,"mat-panel-description"),e.qZA(),e.YNc(5,Ppe,2,0,"div",11),e.YNc(6,Lpe,2,1,"div",12),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.Q6J("collapsedHeight","40px")("expandedHeight","40px"),e.xp6(2),e.hij(" ",t.name," "),e.xp6(2),e.Q6J("ngIf",i.loadingGroups[t.path]),e.xp6(1),e.Q6J("ngIf",i.groupContent[t.path])}}let Ype=(()=>{class r{dialogRef;resourcesService;toastNotifier;kioskWidgetService;resourceWidgets$;groupContent={};loadingGroups={};existingWidgets=[];assetBaseUrl;changed=!1;constructor(t,i,n,o){this.dialogRef=t,this.resourcesService=i,this.toastNotifier=n,this.kioskWidgetService=o,this.assetBaseUrl=this.kioskWidgetService.widgetAssetBaseUrl}ngOnInit(){this.resourceWidgets$=this.kioskWidgetService.resourceWidgets$,this.resourcesService.getResources(UC.widgets).pipe((0,f.U)(t=>t.groups.reduce((i,n)=>i.concat(n.items||[]),[]).map(i=>i.name).filter(i=>!!i))).subscribe(t=>{this.existingWidgets=t})}onGroupExpand(t){this.groupContent[t]||(this.loadingGroups[t]=!0,this.kioskWidgetService.getWidgetsGroupContent(t).subscribe(i=>{const n=i.map(o=>({...o,exist:this.existingWidgets.includes(o.name||"")}));this.groupContent[t]=n,this.loadingGroups[t]=!1},i=>{console.error("Load Widgets resources error: ",i),this.loadingGroups[t]=!1}))}onDownload(t){const i=this.assetBaseUrl+t.path,n=t.name||t.path.split("/").pop();this.kioskWidgetService.uploadWidgetFromUrl(i,t.path,n).subscribe({next:o=>{!o.result&&o.error?(console.error(o.error),this.toastNotifier.notifyError("msg.file-upload-failed",o.error)):(t.exist=!0,this.changed=!0)},error:o=>{console.error("Download or upload failed:",o),this.toastNotifier.notifyError("msg.file-download-failed",o.message||o)}})}onNoClick(){this.dialogRef.close(this.changed)}onOkClick(){this.dialogRef.close(this.changed)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Q0),e.Y36(vD.o),e.Y36(Spe))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-kiosk-widgets"]],decls:15,vars:9,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],["multi","true"],["class","widget-panel",3,"opened",4,"ngFor","ngForOf"],[2,"display","block","width","660px","padding-bottom","20px"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","","color","primary",3,"click"],[1,"widget-panel",3,"opened"],[1,"header",3,"collapsedHeight","expandedHeight"],["class","loading-spinner",4,"ngIf"],["class","content",4,"ngIf"],[1,"loading-spinner"],["diameter","30","mode","indeterminate"],[1,"content"],["class","content-item",3,"item-exists","matTooltip",4,"ngFor","ngForOf"],[1,"content-item",3,"matTooltip"],[3,"src","id"],["class","download-icon",4,"ngIf"],[1,"download-icon"],["matTooltip","Download",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"mat-accordion",4),e.YNc(8,Rpe,7,5,"mat-expansion-panel",5),e.ALo(9,"async"),e.qZA(),e._UZ(10,"div",6),e.qZA(),e.TgZ(11,"div",7)(12,"button",8),e.NdJ("click",function(){return n.onOkClick()}),e._uU(13),e.ALo(14,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,3,"widgets.kiosk-title")),e.xp6(6),e.Q6J("ngForOf",e.lcZ(9,5,n.resourceWidgets$)),e.xp6(5),e.Oqu(e.lcZ(14,7,"dlg.ok")))},dependencies:[l.sg,l.O5,Yn,Qr,Kr,Ir,qm,hg,dp,Df,Dh,Zn,BA,Cs,zr,l.Ov,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{max-width:1020px;width:100%;min-width:700px;margin:0 auto}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:16px 0}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{background-color:#5858584d}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:5px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .content-item[_ngcontent-%COMP%]{display:inline-flex;margin:8px;padding:4px;width:120px;height:120px;box-sizing:border-box;position:relative;justify-content:center;border-radius:4px;border:1px solid transparent}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .content-item.item-exists[_ngcontent-%COMP%]{border-color:#1976d2}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .content-item[_ngcontent-%COMP%] .download-icon[_ngcontent-%COMP%]{position:absolute;bottom:0;right:4px;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;color:#ffffffb3}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .content-item[_ngcontent-%COMP%] .download-icon[_ngcontent-%COMP%]:hover{color:#000}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .content-item[_ngcontent-%COMP%]:hover{background-color:#b6b6b64d}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .content-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;margin:0 auto;padding-bottom:15px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .widget-panel[_ngcontent-%COMP%]{background-color:#4141414d}"]})}return r})();const Npe=["flexhead"],Upe=["flexevent"],zpe=["flexaction"];function Hpe(r,a){1&r&&(e.TgZ(0,"mat-icon",32),e._uU(1,"lock"),e.qZA())}function Gpe(r,a){1&r&&(e.TgZ(0,"mat-icon",32),e._uU(1,"lock_open"),e.qZA())}function Zpe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",33)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.text=n)}),e.ALo(5,"translate"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"gauges.property-text")),e.xp6(2),e.s9C("placeholder",e.lcZ(5,5,"gauges.property-language-text")),e.Q6J("ngModel",t.property.text)}}function Jpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"gauges.property-input-type-"+t.value)," ")}}function jpe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",22)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",35),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.min=n)}),e.qZA()(),e.TgZ(6,"div",22)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",35),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.max=n)}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-input-min")),e.xp6(2),e.Q6J("ngModel",t.property.options.min),e.xp6(3),e.Oqu(e.lcZ(9,6,"gauges.property-input-max")),e.xp6(2),e.Q6J("ngModel",t.property.options.max)}}function Vpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"gauges.property-input-time-format-"+t.value)," ")}}function Wpe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",36)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",24),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.timeformat=n)}),e.YNc(6,Vpe,3,4,"mat-option",19),e.ALo(7,"enumToArray"),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"gauges.property-input-time-format")),e.xp6(2),e.Q6J("ngModel",t.property.options.timeformat),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,5,t.inputTimeFormatType))}}function Kpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"gauges.property-input-convertion-"+t.value)," ")}}function qpe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",37)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",24),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.convertion=n)}),e.YNc(6,Kpe,3,4,"mat-option",19),e.ALo(7,"enumToArray"),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"gauges.property-input-convertion")),e.xp6(2),e.Q6J("ngModel",t.property.options.convertion),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,5,t.inputConvertionType))}}function Xpe(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"gauges.property-action-esc-"+t.value)," ")}}function $pe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",38)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",35),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.maxlength=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-input-maxlength")),e.xp6(2),e.Q6J("ngModel",t.property.options.maxlength)}}function ege(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",22)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-slide-toggle",21),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.readonly=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-input-readonly")),e.xp6(2),e.Q6J("ngModel",t.property.options.readonly)}}function tge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",39)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"textarea",40),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.property.options.startText=n)}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,2,"gauges.property-input-startText")),e.xp6(2),e.Q6J("ngModel",t.property.options.startText)}}function ige(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",4),e.ALo(1,"translate"),e.TgZ(2,"div",5)(3,"div",41)(4,"button",42),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddEvent())}),e.ALo(5,"translate"),e.TgZ(6,"mat-icon"),e._uU(7,"add_circle_outline"),e.qZA()()(),e.TgZ(8,"div",13),e._UZ(9,"flex-event",43,44),e.qZA()()()}if(2&r){const t=e.oxw();e.s9C("label",e.lcZ(1,7,"gauges.property-events")),e.xp6(4),e.s9C("matTooltip",e.lcZ(5,9,"gauges.property-tooltip-add-event")),e.xp6(5),e.Q6J("property",t.property)("views",t.views)("data",t.data)("inputs",t.data.inputs)("scripts",t.scripts)}}function nge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",4),e.ALo(1,"translate"),e.TgZ(2,"div",5)(3,"div",41)(4,"button",45),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddAction())}),e.TgZ(5,"mat-icon"),e._uU(6,"add_circle_outline"),e.qZA()()(),e.TgZ(7,"div",13),e._UZ(8,"flex-action",46,47),e.qZA()()()}if(2&r){const t=e.oxw();e.s9C("label",e.lcZ(1,4,"gauges.property-actions")),e.xp6(8),e.Q6J("data",t.data)("property",t.property)("withBitmask",t.withBitmask)}}let rge=(()=>{class r{dialog;dialogRef;settingsService;projectService;cdr;data;flexHead;flexEvent;flexAction;slideView=!0;slideActionView=!0;withBitmask=!1;property;dialogType=ss.getDialogType();eventsSupported;actionsSupported;withProperty=Xd.input;views;scripts;inputOptionType=Tt.ng;inputTimeFormatType=Tt.AQ;inputConvertionType=Tt.CG;inputActionEscType=Tt.Hs;constructor(t,i,n,o,s,c){this.dialog=t,this.dialogRef=i,this.settingsService=n,this.projectService=o,this.cdr=s,this.data=c,this.eventsSupported=this.data.withEvents,this.actionsSupported=this.data.withActions,this.property=JSON.parse(JSON.stringify(this.data.settings.property)),this.property||(this.property=new Tt.Hy),this.property.options=this.property.options||{updated:!1,numeric:!1},this.property.options.type=this.property.options.type?this.property.options.type:this.property.options.numeric?this.inputOptionType.number:this.inputOptionType.text,!this.property.options.actionOnEsc&&this.property.options.updatedEsc?this.property.options.actionOnEsc=Tt.Hs.update:this.property.options.actionOnEsc&&(this.property.options.updatedEsc=null),this.property.options.maxlength=this.property.options?.maxlength??null,this.property.options.readonly=!!this.property.options?.readonly,this.views=this.projectService.getHmi()?.views??[],this.scripts=this.projectService.getScripts()}ngAfterViewInit(){this.data.withBitmask&&(this.withBitmask=this.data.withBitmask)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.settings.property=this.property,this.flexEvent&&(this.data.settings.property.events=this.flexEvent.getEvents()),this.flexAction&&(this.data.settings.property.actions=this.flexAction.getActions()),this.property.readonly?this.property.readonly=!0:delete this.property.readonly}onAddEvent(){this.flexEvent.onAddEvent()}onAddAction(){this.flexAction.onAddAction()}onRangeViewToggle(){this.flexHead.onRangeViewToggle(this.slideView)}onActionRangeViewToggle(){this.flexAction.onRangeViewToggle(this.slideActionView)}setVariable(t){this.property.variableId=t.variableId,this.property.variableValue=t.variableValue,this.property.bitmask=t.bitmask}isTextToShow(){return this.data.languageTextEnabled}onEditPermission(){this.dialog.open(Sv,{position:{top:"60px"},data:{permission:this.property.permission,permissionRoles:this.property.permissionRoles}}).afterClosed().subscribe(i=>{i&&(this.property.permission=i.permission,this.property.permissionRoles=i.permissionRoles),this.cdr.detectChanges()})}onTypeChange(t){!this.property.options.timeformat&&(t.value===Tt.ng.time||t.value===Tt.ng.datetime)&&(this.property.options.timeformat=Tt.AQ.normal),!this.property.options.convertion&&(t.value===Tt.ng.time||t.value===Tt.ng.date||t.value===Tt.ng.datetime)&&(this.property.options.convertion=Tt.CG.milliseconds)}isRolePermission(){return this.settingsService.getSettings()?.userRole}havePermission(){return this.isRolePermission()?this.property.permissionRoles?.show?.length||this.property.permissionRoles?.enabled?.length:this.property.permission}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(_r),e.Y36(Rh.g),e.Y36(wr.Y4),e.Y36(e.sBO),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-input-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Npe,5),e.Gf(Upe,5),e.Gf(zpe,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.flexHead=o.first),e.iGM(o=e.CRH())&&(n.flexEvent=o.first),e.iGM(o=e.CRH())&&(n.flexAction=o.first)}},decls:68,vars:57,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],[2,"width","100%"],[3,"label"],[1,"mat-tab-container"],[1,"my-form-field"],["type","text",2,"width","220px",3,"ngModel","ngModelChange"],[1,"my-form-field","ml10",2,"vertical-align","bottom"],[1,"my-form-field-permission","pointer",2,"text-align","center",3,"click"],["class","header-icon","style","line-height: 28px;",4,"ngIf","ngIfElse"],["unlock",""],["class","my-form-field ml10",4,"ngIf"],["mat-dialog-content","",2,"overflow","visible","width","100%"],[1,"mt10"],[3,"data","variableId","variableValue","bitmask","withBitmask","onchange"],[1,"mt15"],[1,"my-form-field",2,"width","140px"],[3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["color","primary",1,"ml20",3,"ngModel","ngModelChange"],[1,"my-form-field","ml20"],[1,"my-form-field","ml20",2,"width","140px"],[3,"ngModel","ngModelChange"],[3,"value"],["class","my-form-field ml20","style","width: 100px;",4,"ngIf"],["class","my-form-field ml20",4,"ngIf"],[3,"label",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close","click"],[1,"header-icon",2,"line-height","28px"],[1,"my-form-field","ml10"],["type","text",2,"width","270px",3,"ngModel","placeholder","ngModelChange"],["numberOnly","","type","number",2,"width","80px",3,"ngModel","ngModelChange"],[1,"my-form-field","ml20",2,"width","160px"],[1,"my-form-field","ml20",2,"width","120px"],[1,"my-form-field","ml20",2,"width","100px"],[1,"my-form-field","mt10"],[2,"width","320px","height","200px","font-family","inherit",3,"ngModel","ngModelChange"],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],[2,"padding-bottom","5px",3,"property","views","data","inputs","scripts"],["flexevent",""],["mat-icon-button","",3,"click"],[2,"padding-bottom","5px",3,"data","property","withBitmask"],["flexaction",""]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.qZA(),e.TgZ(3,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(4,"clear"),e.qZA(),e.TgZ(5,"mat-tab-group",3)(6,"mat-tab",4),e.ALo(7,"translate"),e.TgZ(8,"div",5)(9,"div",6)(10,"span"),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"input",7),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s}),e.qZA()(),e.TgZ(14,"div",8)(15,"span"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"div",9),e.NdJ("click",function(){return n.onEditPermission()}),e.YNc(19,Hpe,2,0,"mat-icon",10),e.YNc(20,Gpe,2,0,"ng-template",null,11,e.W1O),e.qZA()(),e.YNc(22,Zpe,6,7,"div",12),e.TgZ(23,"div",13)(24,"div",14)(25,"flex-variable",15),e.NdJ("onchange",function(s){return n.setVariable(s)}),e.qZA()(),e.TgZ(26,"div",16)(27,"div",17)(28,"span"),e._uU(29),e.ALo(30,"translate"),e.qZA(),e.TgZ(31,"mat-select",18),e.NdJ("ngModelChange",function(s){return n.property.options.type=s})("selectionChange",function(s){return n.onTypeChange(s)}),e.YNc(32,Jpe,3,4,"mat-option",19),e.ALo(33,"enumToArray"),e.qZA()(),e.YNc(34,jpe,11,8,"ng-container",20),e.YNc(35,Wpe,8,7,"ng-container",20),e.YNc(36,qpe,8,7,"ng-container",20),e.TgZ(37,"div",16)(38,"div",6)(39,"span"),e._uU(40),e.ALo(41,"translate"),e.qZA(),e.TgZ(42,"mat-slide-toggle",21),e.NdJ("ngModelChange",function(s){return n.property.options.updated=s}),e.qZA()(),e.TgZ(43,"div",22)(44,"span"),e._uU(45),e.ALo(46,"translate"),e.qZA(),e.TgZ(47,"mat-slide-toggle",21),e.NdJ("ngModelChange",function(s){return n.property.options.selectOnClick=s}),e.qZA()(),e.TgZ(48,"div",23)(49,"span"),e._uU(50),e.ALo(51,"translate"),e.qZA(),e.TgZ(52,"mat-select",24),e.NdJ("ngModelChange",function(s){return n.property.options.actionOnEsc=s}),e._UZ(53,"mat-option",25),e.YNc(54,Xpe,3,4,"mat-option",19),e.ALo(55,"enumToArray"),e.qZA()(),e.YNc(56,$pe,5,4,"div",26),e.YNc(57,ege,5,4,"div",27),e.qZA(),e.YNc(58,tge,6,4,"ng-container",20),e.qZA()()()(),e.YNc(59,ige,11,11,"mat-tab",28),e.YNc(60,nge,10,6,"mat-tab",28),e.qZA(),e.TgZ(61,"div",29)(62,"button",30),e.NdJ("click",function(){return n.onNoClick()}),e._uU(63),e.ALo(64,"translate"),e.qZA(),e.TgZ(65,"button",31),e.NdJ("click",function(){return n.onOkClick()}),e._uU(66),e.ALo(67,"translate"),e.qZA()()()),2&i){const o=e.MAs(21);e.xp6(2),e.Oqu(n.data.title),e.xp6(4),e.s9C("label",e.lcZ(7,35,"gauges.property-props")),e.xp6(5),e.Oqu(e.lcZ(12,37,"gauges.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(17,39,"gauges.property-permission")),e.xp6(3),e.Q6J("ngIf",n.havePermission())("ngIfElse",o),e.xp6(3),e.Q6J("ngIf",n.isTextToShow()),e.xp6(3),e.Q6J("data",n.data)("variableId",n.property.variableId)("variableValue",n.property.variableValue)("bitmask",n.property.bitmask)("withBitmask",n.withBitmask),e.xp6(4),e.Oqu(e.lcZ(30,41,"gauges.property-input-type")),e.xp6(2),e.Q6J("ngModel",n.property.options.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(33,43,n.inputOptionType)),e.xp6(2),e.Q6J("ngIf",n.property.options.type===n.inputOptionType.number),e.xp6(1),e.Q6J("ngIf",n.property.options.type===n.inputOptionType.time||n.property.options.type===n.inputOptionType.datetime),e.xp6(1),e.Q6J("ngIf",n.property.options.type===n.inputOptionType.time||n.property.options.type===n.inputOptionType.date||n.property.options.type===n.inputOptionType.datetime),e.xp6(4),e.Oqu(e.lcZ(41,45,"gauges.property-update-enabled")),e.xp6(2),e.Q6J("ngModel",n.property.options.updated),e.xp6(3),e.Oqu(e.lcZ(46,47,"gauges.property-select-content-on-click")),e.xp6(2),e.Q6J("ngModel",n.property.options.selectOnClick),e.xp6(3),e.Oqu(e.lcZ(51,49,"gauges.property-input-esc-action")),e.xp6(2),e.Q6J("ngModel",n.property.options.actionOnEsc),e.xp6(1),e.Q6J("value",null),e.xp6(1),e.Q6J("ngForOf",e.lcZ(55,51,n.inputActionEscType)),e.xp6(2),e.Q6J("ngIf",n.property.options.type===n.inputOptionType.text||n.property.options.type===n.inputOptionType.textarea),e.xp6(1),e.Q6J("ngIf",n.property.options.type===n.inputOptionType.textarea),e.xp6(1),e.Q6J("ngIf",n.property.options.type===n.inputOptionType.textarea),e.xp6(1),e.Q6J("ngIf",n.eventsSupported),e.xp6(1),e.Q6J("ngIf",n.actionsSupported),e.xp6(3),e.Oqu(e.lcZ(64,53,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(67,55,"dlg.ok"))}},dependencies:[l.sg,l.O5,I,qn,et,$i,Nr,Yn,Cc,Qr,Kr,Ir,Zn,fo,bc,NA,DA,Cs,_M,CS,$u,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:760px;position:relative}[_nghost-%COMP%] .input-text .mat-form-field-infix{padding-top:5px;padding-bottom:0}[_nghost-%COMP%] .mat-dialog-container{display:inline-table!important}[_nghost-%COMP%] .mat-tab-label{height:34px!important}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%]{min-height:300px;height:60vmin;overflow-y:auto;overflow-x:hidden;padding-top:15px}[_nghost-%COMP%] .mat-tab-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:block}"]})}return r})();const oge=function(r){return{"svg-selector-active":r}};function age(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",7),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onSelected(s))})("mouseout",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSvgElementPreview(o,!1))})("mouseover",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSvgElementPreview(o,!0))}),e.TgZ(1,"div",8),e._uU(2),e.qZA(),e.TgZ(3,"div",9),e._uU(4),e.qZA(),e.TgZ(5,"button",10),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onEditElement(s))}),e.TgZ(6,"mat-icon"),e._uU(7,"edit"),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("ngClass",e.VKq(3,oge,i.isSelected(t))),e.xp6(2),e.Oqu(t.name),e.xp6(2),e.Oqu(t.id)}}let sge=(()=>{class r{onEdit=new e.vpe;onSelect=new e.vpe;onPreview=new e.vpe;set selected(t){this.svgElementSelected=t}set elements(t){this.svgElements=t,this.filteredSvgElements=t}svgElements=[];filteredSvgElements=[];svgElementSelected;filterText;constructor(){}onSvgElementPreview(t,i){this.onPreview?.emit({element:t,preview:i})}onSelected(t){this.onSelect?.emit(t)}onEditElement(t){this.onSelect?.emit(t),setTimeout(()=>{this.onEdit?.emit(t)},500)}isSelected(t){return t?.id===this.svgElementSelected?.id}filterElements(){if(this.filterText)try{const t=new RegExp(this.filterText,"i");this.filteredSvgElements=this.svgElements.filter(i=>t.test(i.name))}catch{this.filteredSvgElements=[]}else this.filteredSvgElements=this.svgElements}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["app-svg-selector"]],inputs:{selected:"selected",elements:"elements"},outputs:{onEdit:"onEdit",onSelect:"onSelect",onPreview:"onPreview"},decls:10,vars:5,consts:[[1,"element-property"],[1,"element-property-title"],[1,"svg-selector-list"],[1,"my-form-field","search-input-container"],["type","text","matInput","",3,"ngModel","ngModelChange","input"],[1,"search-icon"],["class","svg-selector-item",3,"ngClass","click","mouseout","mouseover",4,"ngFor","ngForOf"],[1,"svg-selector-item",3,"ngClass","click","mouseout","mouseover"],[1,"name"],[1,"id"],["mat-icon-button","",1,"edit",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"div",3)(6,"input",4),e.NdJ("ngModelChange",function(s){return n.filterText=s})("input",function(){return n.filterElements()}),e.qZA(),e.TgZ(7,"mat-icon",5),e._uU(8,"search"),e.qZA()(),e.YNc(9,age,8,5,"div",6),e.qZA()()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,3,"svg.selector.property-title")," "),e.xp6(4),e.Q6J("ngModel",n.filterText),e.xp6(3),e.Q6J("ngForOf",n.filteredSvgElements))},dependencies:[l.mk,l.sg,I,et,$i,Yn,Zn,qd,Ni.X$],styles:["[_nghost-%COMP%] .svg-selector-list[_ngcontent-%COMP%]{position:absolute;overflow:auto;margin-top:10px;inset:35px 0 0 5px}[_nghost-%COMP%] .svg-selector-item[_ngcontent-%COMP%]{font-size:12px;line-height:24px;cursor:pointer;padding-left:5px;display:block}[_nghost-%COMP%] .svg-selector-item[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:inline-block;width:170px;font-size:13px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}[_nghost-%COMP%] .svg-selector-item[_ngcontent-%COMP%] .id[_ngcontent-%COMP%]{display:inline-block;margin-left:10px;color:#a9a9a9;width:150px}[_nghost-%COMP%] .svg-selector-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%]{width:22px;height:22px;line-height:22px}[_nghost-%COMP%] .svg-selector-item[_ngcontent-%COMP%] .edit[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px}[_nghost-%COMP%] .svg-selector-item[_ngcontent-%COMP%]:hover{background-color:#9c9c9c36}[_nghost-%COMP%] .svg-selector-active[_ngcontent-%COMP%]{background-color:#3059af}[_nghost-%COMP%] .search-input-container[_ngcontent-%COMP%]{position:relative;width:100%;margin-bottom:10px;margin-top:3px}[_nghost-%COMP%] .search-input-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:calc(100% - 10px)}[_nghost-%COMP%] .search-input-container[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#757575}"]})}return r})();const lge=["searchSelectInput"];function cge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",6),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n._reset(!0))}),e.TgZ(1,"mat-icon"),e._uU(2,"close"),e.qZA()()}}function Age(r,a){if(1&r&&(e.TgZ(0,"div",7),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.noEntriesFoundLabel,"\n")}}const dge=function(r){return{"mat-select-search-inner-multiple":r}};let VP=(()=>{class r{matSelect;translateService;changeDetectorRef;placeholderLabel="";noEntriesFoundLabel="";searchSelectInput;get value(){return this._value}_value;onChange=t=>{};onTouched=t=>{};_options;previousSelectedValues;overlayClassSet=!1;change=new e.vpe;_onDestroy=new An.x;constructor(t,i,n){this.matSelect=t,this.translateService=i,this.changeDetectorRef=n}ngOnInit(){const t="mat-select-search-panel";this.matSelect.panelClass?Array.isArray(this.matSelect.panelClass)?this.matSelect.panelClass.push(t):"string"==typeof this.matSelect.panelClass?this.matSelect.panelClass=[this.matSelect.panelClass,t]:"object"==typeof this.matSelect.panelClass&&(this.matSelect.panelClass[t]=!0):this.matSelect.panelClass=t,this.matSelect.openedChange.pipe((0,On.R)(this._onDestroy)).subscribe(i=>{i?this._focus():this._reset()}),this.matSelect.openedChange.pipe((0,yo.q)(1)).pipe((0,On.R)(this._onDestroy)).subscribe(()=>{this._options=this.matSelect.options,this._options.changes.pipe((0,On.R)(this._onDestroy)).subscribe(()=>{const i=this.matSelect._keyManager;i&&this.matSelect.panelOpen&&setTimeout(()=>{i.setFirstItemActive()})})}),this.change.pipe((0,On.R)(this._onDestroy)).subscribe(()=>{this.changeDetectorRef.detectChanges()}),this.initMultipleHandling()}ngOnDestroy(){this._onDestroy.next(null),this._onDestroy.complete()}ngAfterViewInit(){this.setOverlayClass(),this.translateService.get("general.search").subscribe(t=>{this.placeholderLabel=t}),this.translateService.get("general.search-notfound").subscribe(t=>{this.noEntriesFoundLabel=t})}_handleKeydown(t){32===t.keyCode&&t.stopPropagation()}writeValue(t){t!==this._value&&(this._value=t,this.change.emit(t))}onInputChange(t){t!==this._value&&(this._value=t,this.onChange(t),this.change.emit(t))}onBlur(t){this.writeValue(t),this.onTouched()}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}_focus(){if(!this.searchSelectInput)return;const t=this.matSelect.panel.nativeElement,i=t.scrollTop;this.searchSelectInput.nativeElement.focus(),t.scrollTop=i}_reset(t){this.searchSelectInput&&(this.searchSelectInput.nativeElement.value="",this.onInputChange(""),t&&this._focus())}setOverlayClass(){this.overlayClassSet||(this.matSelect.openedChange.pipe((0,On.R)(this._onDestroy)).subscribe(i=>{if(i){let o,n=this.searchSelectInput.nativeElement;for(;n=n.parentElement;)if(n.classList.contains("cdk-overlay-pane")){o=n;break}o&&o.classList.add("cdk-overlay-pane-select-search")}}),this.overlayClassSet=!0)}initMultipleHandling(){this.matSelect.valueChange.pipe((0,On.R)(this._onDestroy)).subscribe(t=>{if(this.matSelect.multiple){let i=!1;if(this._value&&this._value.length&&this.previousSelectedValues&&Array.isArray(this.previousSelectedValues)){(!t||!Array.isArray(t))&&(t=[]);const n=this.matSelect.options.map(o=>o.value);this.previousSelectedValues.forEach(o=>{-1===t.indexOf(o)&&-1===n.indexOf(o)&&(t.push(o),i=!0)})}i&&this.matSelect._onChange(t),this.previousSelectedValues=t}})}static \u0275fac=function(i){return new(i||r)(e.Y36(fo),e.Y36(Ni.sK),e.Y36(e.sBO))};static \u0275cmp=e.Xpm({type:r,selectors:[["mat-select-search"]],viewQuery:function(i,n){if(1&i&&e.Gf(lge,7,e.SBq),2&i){let o;e.iGM(o=e.CRH())&&(n.searchSelectInput=o.first)}},inputs:{placeholderLabel:"placeholderLabel",noEntriesFoundLabel:"noEntriesFoundLabel"},features:[e._Bn([{provide:y,useExisting:(0,e.Gpc)(()=>r),multi:!0}])],decls:6,vars:6,consts:[["matInput","",1,"mat-select-search-input","mat-select-search-hidden"],[1,"mat-select-search-inner",3,"ngClass"],["matInput","",1,"mat-select-search-input",3,"placeholder","keydown","input","blur"],["searchSelectInput",""],["mat-button","","mat-icon-button","","aria-label","Clear","class","mat-select-search-clear",3,"click",4,"ngIf"],["class","mat-select-search-no-entries-found",4,"ngIf"],["mat-button","","mat-icon-button","","aria-label","Clear",1,"mat-select-search-clear",3,"click"],[1,"mat-select-search-no-entries-found"]],template:function(i,n){1&i&&(e._UZ(0,"input",0),e.TgZ(1,"div",1)(2,"input",2,3),e.NdJ("keydown",function(s){return n._handleKeydown(s)})("input",function(s){return n.onInputChange(s.target.value)})("blur",function(s){return n.onBlur(s.target.value)}),e.qZA(),e.YNc(4,cge,3,0,"button",4),e.qZA(),e.YNc(5,Age,2,1,"div",5)),2&i&&(e.xp6(1),e.Q6J("ngClass",e.VKq(4,dge,n.matSelect.multiple)),e.xp6(1),e.Q6J("placeholder",n.placeholderLabel),e.xp6(2),e.Q6J("ngIf",n.value),e.xp6(1),e.Q6J("ngIf",n.noEntriesFoundLabel&&n.value&&0===(null==n._options?null:n._options.length)))},dependencies:[l.mk,l.O5,Yn,Zn,qd],styles:[".mat-select-search-hidden[_ngcontent-%COMP%]{visibility:hidden}.mat-select-search-inner[_ngcontent-%COMP%]{position:absolute;top:0;width:calc(100% + 22px);border-bottom:1px solid #cccccc;background-color:var(--workPanelBackground);z-index:100}.mat-select-search-inner.mat-select-search-inner-multiple[_ngcontent-%COMP%]{width:calc(100% + 55px)} .mat-select-search-panel{transform:none!important;max-height:350px}.mat-select-search-input[_ngcontent-%COMP%]{padding:16px 36px 16px 16px;box-sizing:border-box;font-size:13px;border:none;background-color:var(--workPanelBackground);color:var(--formInputColor);line-height:28px;height:28px}.mat-select-search-no-entries-found[_ngcontent-%COMP%]{padding:16px;color:var(--formInputColor)}.mat-select-search-clear[_ngcontent-%COMP%]{position:absolute;right:0;top:4px;color:var(--formInputColor)} .cdk-overlay-pane-select-search{margin-top:40px}"],changeDetection:0})}return r})();function uge(r,a){if(1&r&&(e.TgZ(0,"mat-option",8)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(2),e.Oqu(t.name)}}function hge(r,a){if(1&r&&(e.TgZ(0,"mat-optgroup",6),e.YNc(1,uge,3,2,"mat-option",7),e.qZA()),2&r){const t=a.$implicit;e.Q6J("label",t.name),e.xp6(1),e.Q6J("ngForOf",t.tags)}}const pge=(r,a)=>{const t=a.toLowerCase();return r.filter(i=>i.name.toLowerCase().includes(t))};let Xv=(()=>{class r{projectService;dialog;tagTitle="";readonly=!1;variableId;deviceTagValue;onchange=new e.vpe;devicesGroups=[];devicesTags$;tagFilter=new li;devices=[];constructor(t,i){this.projectService=t,this.dialog=i}ngOnInit(){this.deviceTagValue?this.variableId=this.deviceTagValue.variableId:this.deviceTagValue={variableId:this.variableId},this.loadDevicesTags()}ngOnChanges(t){t.variableId&&!t.variableId.isFirstChange()&&(this.deviceTagValue={variableId:this.variableId},this.loadDevicesTags())}_tagToVariableName(t){let i=t.label||t.name;return i&&t.address&&i!==t.address&&(i=i+" - "+t.address),i}_filterGroup(t){return t?this.devicesGroups.map(i=>({name:i.name,tags:pge(i.tags,t?.name||t)})).filter(i=>i.tags.length>0):this.devicesGroups}_getDeviceTag(t){for(let i=0;io.id===t);if(n)return n}return null}_setSelectedTag(){const t=this._getDeviceTag(this.variableId);this.tagFilter.patchValue(t)}displayFn(t){return t?.name}onDeviceTagSelected(t){this.variableId=t.id,this.onChanged()}getDeviceName(){const t=Yi.ef.getDeviceFromTagId(this.devices,this.variableId);return t?t.name:""}onChanged(){if(this.tagFilter.value?.startsWith&&this.tagFilter.value.startsWith(Yi.Jo.id))this.deviceTagValue.variableId=this.tagFilter.value,this.deviceTagValue.variableRaw=null;else if(this.tagFilter.value?.id?.startsWith&&this.tagFilter.value.id.startsWith(Yi.Jo.id))this.deviceTagValue.variableId=this.tagFilter.value.id,this.deviceTagValue.variableRaw=null;else{let t=Yi.ef.getTagFromTagId(this.devices,this.variableId);t?(this.deviceTagValue.variableId=t.id,this.deviceTagValue.variableRaw=t):(this.deviceTagValue.variableId=null,this.deviceTagValue.variableRaw=null)}this.onchange.emit(this.deviceTagValue)}onBindTag(){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:this.variableId}}).afterClosed().subscribe(i=>{i&&(i.deviceName&&this.loadDevicesTags(),this.variableId=i.variableId,this._setSelectedTag(),this.onChanged())})}loadDevicesTags(){this.devicesGroups=[],this.devicesGroups.push(ii.cQ.clone(Yi.Jo)),this.devices=Object.values(this.projectService.getDevices()),this.devices.forEach(t=>{let i={name:t.name,tags:[]};Object.values(t.tags).forEach(n=>{const o={id:n.id,name:this._tagToVariableName(n),device:t.name};i.tags.push(o)}),this.devicesGroups.push(i)}),this.devicesTags$=this.tagFilter.valueChanges.pipe(na(""),(0,f.U)(t=>this._filterGroup(t||""))),this.variableId?.startsWith(Yi.Jo.id)&&this.devicesGroups[0].tags.push({id:this.variableId,name:this.variableId,device:"@"}),this._setSelectedTag()}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(xo))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-flex-device-tag"]],inputs:{tagTitle:"tagTitle",readonly:"readonly",variableId:"variableId",deviceTagValue:"deviceTagValue"},outputs:{onchange:"onchange"},features:[e.TTD],decls:14,vars:17,consts:[[1,"my-form-field","device-input"],["matInput","","type","text",1,"device-variable-input",3,"title","placeholder","formControl","matAutocomplete","readonly","input"],[3,"displayWith","optionSelected"],["autoDevices","matAutocomplete"],["class","device-group-label",3,"label",4,"ngFor","ngForOf"],["mat-icon-button","",3,"click"],[1,"device-group-label",3,"label"],["class","device-option-label",3,"value",4,"ngFor","ngForOf"],[1,"device-option-label",3,"value"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",1),e.NdJ("input",function(){return n.onChanged()}),e.ALo(5,"translate"),e.ALo(6,"translate"),e.qZA(),e.TgZ(7,"mat-autocomplete",2,3),e.NdJ("optionSelected",function(s){return n.onDeviceTagSelected(s.option.value)}),e.YNc(9,hge,2,2,"mat-optgroup",4),e.ALo(10,"async"),e.qZA(),e.TgZ(11,"button",5),e.NdJ("click",function(){return n.onBindTag()}),e.TgZ(12,"mat-icon"),e._uU(13,"link"),e.qZA()()()),2&i){const o=e.MAs(8);e.xp6(2),e.AsE("",e.lcZ(3,9,"gauges.property-tag-label")," ",n.getDeviceName(),""),e.xp6(2),e.s9C("title",e.lcZ(5,11,n.tagTitle)),e.s9C("placeholder",e.lcZ(6,13,n.tagTitle)),e.Q6J("formControl",n.tagFilter)("matAutocomplete",o)("readonly",n.readonly),e.xp6(3),e.Q6J("displayWith",n.displayFn),e.xp6(2),e.Q6J("ngForOf",e.lcZ(10,15,n.devicesTags$))}},dependencies:[l.sg,I,et,ca,h_,Fm,Nr,Nu,Yn,Zn,qd,l.Ov,Ni.X$],styles:[".device-input[_ngcontent-%COMP%]{display:inline-block;width:100%}.device-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding-left:30px;width:calc(100% - 36px)}.device-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{position:absolute;left:0;line-height:22px;height:28px;width:28px;vertical-align:middle}.device-input[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)} .device-group-label span{line-height:28px;height:28px} .device-option-label{line-height:28px!important;height:28px!important} .device-option-label span{font-size:13px} .device-variable-input{font-size:13px;vertical-align:unset!important;width:unset}"]})}return r})(),gge=(()=>{class r{elementRef;constructor(t){this.elementRef=t}ngAfterViewInit(){this.elementRef.nativeElement.querySelectorAll("input").forEach(n=>{n.addEventListener("keydown",o=>{o.stopPropagation()})})}static \u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))};static \u0275dir=e.lG2({type:r,selectors:[["","stopInputPropagation",""]]})}return r})();function fge(r,a){if(1&r&&(e.TgZ(0,"mat-option",12),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t.name," ")}}function mge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"chart.viewtype-"+t.value)," ")}}function _ge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,t.value)," ")}}function vge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",46)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.lastRange=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChartChanged())}),e.YNc(6,_ge,3,4,"mat-option",18),e.ALo(7,"enumToArray"),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,3,"chart.property-date-last-range")),e.xp6(2),e.Q6J("value",t.options.lastRange),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,5,t.lastRangeType))}}function yge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function wge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",47)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.scriptId=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChartChanged())}),e._UZ(6,"mat-option",41),e.YNc(7,yge,2,2,"mat-option",18),e.ALo(8,"async"),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,3,"chart.property-script")),e.xp6(2),e.Q6J("value",t.options.scriptId),e.xp6(2),e.Q6J("ngForOf",e.lcZ(8,5,t.scripts$))}}function Cge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",48)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-slide-toggle",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.hideToolbar=n)})("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChartChanged())}),e.qZA()(),e.TgZ(6,"div",48)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-slide-toggle",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.thouchZoom=n)})("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onChartChanged())}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,4,"chart.property-hide-toolbar")),e.xp6(2),e.Q6J("ngModel",t.options.hideToolbar),e.xp6(3),e.Oqu(e.lcZ(9,6,"chart.property-thouch-zoom")),e.xp6(2),e.Q6J("ngModel",t.options.thouchZoom)}}function bge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.YNc(1,vge,8,7,"ng-container",20),e.YNc(2,wge,9,7,"ng-container",20),e.TgZ(3,"div",42)(4,"div",43)(5,"span",44),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"input",45),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.refreshInterval=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChartChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChartChanged())}),e.qZA()(),e.YNc(9,Cge,11,8,"ng-container",20),e.qZA(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.chartViewValue===t.chartViewType.history),e.xp6(1),e.Q6J("ngIf",t.chartViewValue===t.chartViewType.custom),e.xp6(4),e.Oqu(e.lcZ(7,5,"chart.property-refresh-interval")),e.xp6(2),e.Q6J("ngModel",t.options.refreshInterval),e.xp6(1),e.Q6J("ngIf",t.chartViewValue===t.chartViewType.history)}}function xge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",50)(2,"span",51),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",52),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.realtime=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChartChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChartChanged())}),e.qZA()(),e.TgZ(6,"div",53)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-slide-toggle",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.loadOldValues=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChartChanged())}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"chart.property-realtime-max")),e.xp6(2),e.Q6J("ngModel",t.options.realtime),e.xp6(3),e.Oqu(e.lcZ(9,6,"chart.property-load-old-values")),e.xp6(2),e.Q6J("ngModel",t.options.loadOldValues)}}function Bge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("font-family",t),e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function Ege(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Mge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Dge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Tge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"shapes.event-"+t)," ")}}function Ige(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function kge(r,a){if(1&r&&(e.TgZ(0,"mat-option",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function Qge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",69)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",27),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)})("change",function(){e.CHM(t);const n=e.oxw(4);return e.KtG(n.onChartChanged())}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-script-param-value")),e.xp6(2),e.Q6J("ngModel",t.value)}}function Sge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",70)(1,"app-flex-device-tag",71),e.NdJ("onchange",function(){e.CHM(t);const n=e.oxw(4);return e.KtG(n.onChartChanged())}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("variableId",t.value)}}function Pge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",42)(1,"div",65)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",66),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)})("change",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onChartChanged())}),e.qZA()(),e.YNc(6,Qge,5,4,"div",67),e.YNc(7,Sge,2,1,"div",68),e.qZA()}if(2&r){const t=a.$implicit;e.xp6(3),e.Oqu(e.lcZ(4,6,"gauges.property-event-script-param-name")),e.xp6(2),e.s9C("matTooltip",t.name),e.Q6J("ngModel",t.name)("disabled",!0),e.xp6(1),e.Q6J("ngIf","value"===t.type),e.xp6(1),e.Q6J("ngIf","tagid"===t.type)}}function Fge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",62)(1,"div",63)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onScriptChanged(n.value,o))}),e.YNc(6,kge,2,2,"mat-option",18),e.ALo(7,"async"),e.qZA()(),e.YNc(8,Pge,8,8,"div",64),e.qZA()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-event-script")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,6,i.scripts$)),e.xp6(2),e.Q6J("ngForOf",t.actoptions.params)}}function Oge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",25)(2,"div",55)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"mat-select",17),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChartChanged())}),e.YNc(7,Tge,3,4,"mat-option",18),e.qZA()(),e.TgZ(8,"div",56)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-select",57),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.action=n)})("change",function(){const o=e.CHM(t).$implicit;return e.KtG(o.actparam="")})("selectionChange",function(){const o=e.CHM(t).$implicit,s=e.oxw();return o.actparam="",e.KtG(s.onChartChanged())}),e.YNc(13,Ige,2,2,"mat-option",18),e.ALo(14,"enumToArray"),e.qZA()(),e.TgZ(15,"div",58)(16,"button",59),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemoveEvent(o))}),e.TgZ(17,"mat-icon"),e._uU(18,"clear"),e.qZA()()()(),e.TgZ(19,"div",60),e.YNc(20,Fge,9,8,"div",61),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,8,"gauges.property-event-type")),e.xp6(2),e.Q6J("value",t.type),e.xp6(1),e.Q6J("ngForOf",i.eventType),e.xp6(3),e.Oqu(e.lcZ(11,10,"gauges.property-event-action")),e.xp6(2),e.Q6J("value",t.action),e.xp6(1),e.Q6J("ngForOf",e.lcZ(14,12,i.selectActionType)),e.xp6(6),e.Q6J("ngSwitch",t.action),e.xp6(1),e.Q6J("ngSwitchCase",i.actionRunScript)}}let Lge=(()=>{class r{dialog;projectService;translateService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}lastRangeType=Fv;chartViewType=xp;dateFormat=Tt.kH;timeFormat=Tt.lf;legendModes=im;fonts=Tg.fonts;defaultColor=ii.cQ.defaultColor;chartViewValue=xp.realtime1;chartCtrl=new li;chartFilterCtrl=new li;filteredChart=new zC.t(1);options=ES.DefaultOptions();autoScala={enabled:!0,min:0,max:10};scripts$;property;eventType=[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.click),ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.onLoad)];actionRunScript=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript);selectActionType={};destroy$=new An.x;constructor(t,i,n){this.dialog=t,this.projectService=i,this.translateService=n,this.selectActionType[ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript)]=this.translateService.instant(Tt.$q.onRunScript)}ngOnInit(){Object.keys(this.legendModes).forEach(t=>{this.translateService.get(this.legendModes[t]).subscribe(i=>{this.legendModes[t]=i})}),this._reload(),this.scripts$=(0,lr.of)(this.projectService.getScripts()).pipe((0,On.R)(this.destroy$))}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}_reload(){this.property=this.data.settings.property,this.property||(this.property={id:null,type:this.chartViewValue,options:null}),this.property.options||(this.property.options=ES.DefaultOptions()),this.options=this.property.options,this.loadChart(),this.chartViewValue=this.property.type;let t=this.data.charts.find(i=>i.id===this.property.id);this.property.options&&(this.options=Object.assign(this.options,this.property.options)),this.chartCtrl.setValue(t)}onChartChanged(){this.chartCtrl.value&&(this.property.id=this.chartCtrl.value.id),this.onPropChanged.emit(this.data.settings),this.data.settings.property={id:null,type:this.chartViewValue,options:JSON.parse(JSON.stringify(this.options)),events:this.property.events},this.chartCtrl.value&&(this.data.settings.property.id=this.chartCtrl.value.id),this.onPropChanged.emit(this.data.settings)}onEditNewChart(){this.dialog.open(TL,{position:{top:"60px"},minWidth:"1090px",width:"1090px"}).afterClosed().subscribe(i=>{i&&(this.data.charts=i.charts,this.loadChart(),i.selected&&this.chartCtrl.setValue(i.selected),this.onChartChanged())})}onShowChartSelectionMessage(t){t.value===xp.custom&&this.dialog.open(qu,{data:{msg:this.translateService.instant("msg.chart-with-script"),hideCancel:!0},position:{top:"60px"}}).afterClosed().subscribe()}loadChart(t){if(this.filteredChart.next(this.data.charts.slice()),this.chartFilterCtrl.valueChanges.pipe((0,On.R)(this.destroy$)).subscribe(()=>{this.filterChart()}),t){let i=-1;this.data.charts.every(function(n,o,s){return n.id!==t||(i=o,!1)}),i>=0&&this.chartCtrl.setValue(this.data.charts[i])}}filterChart(){if(!this.data.charts)return;let t=this.chartFilterCtrl.value;t?(t=t.toLowerCase(),this.filteredChart.next(this.data.charts.filter(i=>i.name.toLowerCase().indexOf(t)>-1))):this.filteredChart.next(this.data.charts.slice())}onAddEvent(){const t=new Tt.F$;this.addEvent(t)}addEvent(t){this.property.events||(this.property.events=[]),this.property.events.push(t)}onRemoveEvent(t){this.property.events.splice(t,1),this.onChartChanged()}onScriptChanged(t,i){const n=this.projectService.getScripts();if(i&&n){let o=n.find(s=>s.id===t);i.actoptions[Wo.ug]=[],o&&o.parameters&&(i.actoptions[Wo.ug]=ii.cQ.clone(o.parameters))}this.onChartChanged()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-chart-property"]],inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:196,vars:183,consts:[["stopInputPropagation","",1,"element-property"],[1,"element-property-title"],[1,"chart-selection"],[2,"height","100%"],[3,"label"],[1,"element-property-header"],[1,"_section-newline"],[1,"my-form-field","field-block","lbk"],["type","text",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","field-block","lbk","mt5"],[3,"formControl","selectionChange"],[3,"formControl"],[1,"chart-filter-option",3,"value"],[1,"chart-filter-option",3,"click"],["class","chart-filter-option",3,"value",4,"ngFor","ngForOf"],[1,"section-newline"],[1,"my-form-field","section-item",2,"display","inline-block","width","120px"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"section-inline-margin"],[4,"ngIf"],[3,"fontFamily","value",4,"ngFor","ngForOf"],[1,"my-form-field","field-number","lbk","section-toogle"],["numberOnly","","type","number","min","0","max","36",3,"ngModel","ngModelChange","change","keyup.enter"],["numberOnly","","type","number","min","0","max","24",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"block"],[1,"my-form-field","field-text"],["type","text",3,"ngModel","ngModelChange","change"],[1,"my-form-field","field-number","ml5"],["type","number",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","field-number","ml12"],[1,"my-form-field","field-text","lbk"],[1,"my-form-field","section-inline-text"],["type","text",3,"ngModel","placeholder","ngModelChange","change"],[1,"my-form-field","section-inline-color","color-field"],[1,"input-color",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"section-inline-margin2"],[1,"events-toolbox"],["mat-icon-button","",3,"click"],[1,"events-section"],["class","event-item",4,"ngFor","ngForOf"],[3,"value"],[1,"block","mt5"],[1,"my-form-field","field-number","inbk",2,"width","120px"],[2,"width","120px"],["numberOnly","","type","number","min","0",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-item","inbk",2,"width","110px"],[1,"my-form-field","inbk",2,"width","180px"],[1,"my-form-field","inbk","ml10","tac"],["color","primary",3,"ngModel","ngModelChange","change"],[1,"my-form-field","field-number","lbk","section-item"],[2,"width","100px"],["numberOnly","","type","number","min","1",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","inbk","ml20","tac",2,"max-width","100px"],[1,"event-item"],[1,"my-form-field","inbk","mr10","event-type"],[1,"my-form-field","inbk","ml10","event-action"],[3,"value","valueChange","change","selectionChange"],[1,"item-remove","inbk","event-remove"],["mat-icon-button","",1,"remove",3,"click"],[1,"mt5","event-action-ext",3,"ngSwitch"],["class","block event-script",4,"ngSwitchCase"],[1,"block","event-script"],[1,"my-form-field","inbk","script-selection"],["class","block mt5",4,"ngFor","ngForOf"],[1,"my-form-field","inbk","event-script-param"],["type","text","readonly","",3,"ngModel","matTooltip","disabled","ngModelChange","change"],["class","my-form-field inbk event-script-value",4,"ngIf"],["class","my-form-field inbk event-script-tag",4,"ngIf"],[1,"my-form-field","inbk","event-script-value"],[1,"my-form-field","inbk","event-script-tag"],[1,"block","mt5","item-device-tag",3,"variableId","onchange"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"mat-tab-group",3)(6,"mat-tab",4),e.ALo(7,"translate"),e.TgZ(8,"div",5)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA()(),e.TgZ(12,"div",6)(13,"div",7)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",8),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(18,"div",9)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",10),e.NdJ("selectionChange",function(){return n.onChartChanged()}),e._UZ(23,"mat-select-search",11)(24,"mat-option",12),e.TgZ(25,"mat-option",13),e.NdJ("click",function(){return n.onEditNewChart()}),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.YNc(28,fge,2,2,"mat-option",14),e.ALo(29,"async"),e.qZA()(),e._UZ(30,"div",15),e.TgZ(31,"div",16)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"mat-select",17),e.NdJ("valueChange",function(s){return n.chartViewValue=s})("selectionChange",function(s){return n.onChartChanged(),n.onShowChartSelectionMessage(s)}),e.YNc(36,mge,3,4,"mat-option",18),e.ALo(37,"enumToArray"),e.qZA()(),e._UZ(38,"div",19),e.YNc(39,bge,10,7,"ng-container",20),e.YNc(40,xge,11,8,"ng-container",20),e.TgZ(41,"div",5)(42,"span"),e._uU(43),e.ALo(44,"translate"),e.qZA()(),e.TgZ(45,"div",16)(46,"span"),e._uU(47),e.ALo(48,"translate"),e.qZA(),e.TgZ(49,"mat-select",17),e.NdJ("valueChange",function(s){return n.options.fontFamily=s})("selectionChange",function(){return n.onChartChanged()}),e.YNc(50,Bge,2,4,"mat-option",21),e.qZA()(),e._UZ(51,"div",19),e.TgZ(52,"div",22)(53,"span"),e._uU(54),e.ALo(55,"translate"),e.qZA(),e.TgZ(56,"input",23),e.NdJ("ngModelChange",function(s){return n.options.titleHeight=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e._UZ(57,"div",19),e.TgZ(58,"div",22)(59,"span"),e._uU(60),e.ALo(61,"translate"),e.qZA(),e.TgZ(62,"input",24),e.NdJ("ngModelChange",function(s){return n.options.axisLabelFontSize=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e._UZ(63,"div",15),e.TgZ(64,"div",16)(65,"span"),e._uU(66),e.ALo(67,"translate"),e.qZA(),e.TgZ(68,"mat-select",17),e.NdJ("valueChange",function(s){return n.options.dateFormat=s})("selectionChange",function(){return n.onChartChanged()}),e.YNc(69,Ege,2,2,"mat-option",18),e.ALo(70,"enumToArray"),e.qZA()(),e._UZ(71,"div",19),e.TgZ(72,"div",16)(73,"span"),e._uU(74),e.ALo(75,"translate"),e.qZA(),e.TgZ(76,"mat-select",17),e.NdJ("valueChange",function(s){return n.options.timeFormat=s})("selectionChange",function(){return n.onChartChanged()}),e.YNc(77,Mge,2,2,"mat-option",18),e.ALo(78,"enumToArray"),e.qZA()(),e._UZ(79,"div",15),e.TgZ(80,"div",16)(81,"span"),e._uU(82),e.ALo(83,"translate"),e.qZA(),e.TgZ(84,"mat-select",17),e.NdJ("valueChange",function(s){return n.options.legendMode=s})("selectionChange",function(){return n.onChartChanged()}),e.YNc(85,Dge,2,2,"mat-option",18),e.ALo(86,"enumToArray"),e.qZA()(),e.TgZ(87,"div",5)(88,"span"),e._uU(89),e.ALo(90,"translate"),e.qZA()(),e.TgZ(91,"div",25)(92,"div",26)(93,"span"),e._uU(94),e.ALo(95,"translate"),e.qZA(),e.TgZ(96,"input",27),e.NdJ("ngModelChange",function(s){return n.options.axisLabelY1=s})("change",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(97,"div",28)(98,"span"),e._uU(99),e.ALo(100,"translate"),e.qZA(),e.TgZ(101,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY1min=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(102,"div",30)(103,"span"),e._uU(104),e.ALo(105,"translate"),e.qZA(),e.TgZ(106,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY1max=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()()(),e.TgZ(107,"div",25)(108,"div",31)(109,"span"),e._uU(110),e.ALo(111,"translate"),e.qZA(),e.TgZ(112,"input",27),e.NdJ("ngModelChange",function(s){return n.options.axisLabelY2=s})("change",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(113,"div",28)(114,"span"),e._uU(115),e.ALo(116,"translate"),e.qZA(),e.TgZ(117,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY2min=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(118,"div",30)(119,"span"),e._uU(120),e.ALo(121,"translate"),e.qZA(),e.TgZ(122,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY2max=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()()(),e.TgZ(123,"div",25)(124,"div",31)(125,"span"),e._uU(126),e.ALo(127,"translate"),e.qZA(),e.TgZ(128,"input",27),e.NdJ("ngModelChange",function(s){return n.options.axisLabelY3=s})("change",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(129,"div",28)(130,"span"),e._uU(131),e.ALo(132,"translate"),e.qZA(),e.TgZ(133,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY3min=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(134,"div",30)(135,"span"),e._uU(136),e.ALo(137,"translate"),e.qZA(),e.TgZ(138,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY3max=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()()(),e.TgZ(139,"div",25)(140,"div",31)(141,"span"),e._uU(142),e.ALo(143,"translate"),e.qZA(),e.TgZ(144,"input",27),e.NdJ("ngModelChange",function(s){return n.options.axisLabelY4=s})("change",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(145,"div",28)(146,"span"),e._uU(147),e.ALo(148,"translate"),e.qZA(),e.TgZ(149,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY4min=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(150,"div",30)(151,"span"),e._uU(152),e.ALo(153,"translate"),e.qZA(),e.TgZ(154,"input",29),e.NdJ("ngModelChange",function(s){return n.options.scaleY4max=s})("change",function(){return n.onChartChanged()})("keyup.enter",function(){return n.onChartChanged()}),e.qZA()()(),e.TgZ(155,"div",5)(156,"span"),e._uU(157),e.ALo(158,"translate"),e.qZA()(),e.TgZ(159,"div",32)(160,"span"),e._uU(161),e.ALo(162,"translate"),e.qZA(),e.TgZ(163,"input",33),e.NdJ("ngModelChange",function(s){return n.options.axisLabelX=s})("change",function(){return n.onChartChanged()}),e.ALo(164,"translate"),e.qZA()(),e.TgZ(165,"div",5)(166,"span"),e._uU(167),e.ALo(168,"translate"),e.qZA()(),e.TgZ(169,"div",34)(170,"span"),e._uU(171),e.ALo(172,"translate"),e.qZA(),e.TgZ(173,"input",35),e.NdJ("colorPickerChange",function(s){return n.options.axisLabelColor=s})("colorPickerChange",function(){return n.onChartChanged()}),e.qZA()(),e._UZ(174,"div",36),e.TgZ(175,"div",34)(176,"span"),e._uU(177),e.ALo(178,"translate"),e.qZA(),e.TgZ(179,"input",35),e.NdJ("colorPickerChange",function(s){return n.options.colorBackground=s})("colorPickerChange",function(){return n.onChartChanged()}),e.qZA()(),e._UZ(180,"div",36),e.TgZ(181,"div",34)(182,"span"),e._uU(183),e.ALo(184,"translate"),e.qZA(),e.TgZ(185,"input",35),e.NdJ("colorPickerChange",function(s){return n.options.gridLineColor=s})("colorPickerChange",function(){return n.onChartChanged()}),e.qZA()()()(),e.TgZ(186,"mat-tab",4),e.ALo(187,"translate"),e.TgZ(188,"div",15),e._uU(189,"\xa0"),e.qZA(),e.TgZ(190,"div",37)(191,"button",38),e.NdJ("click",function(){return n.onAddEvent()}),e.TgZ(192,"mat-icon"),e._uU(193,"add_circle_outline"),e.qZA()()(),e.TgZ(194,"div",39),e.YNc(195,Oge,21,14,"div",40),e.qZA()()()()()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,103,"editor.controls-chart-settings")," "),e.xp6(4),e.s9C("label",e.lcZ(7,105,"editor.settings-general")),e.xp6(4),e.Oqu(e.lcZ(11,107,"chart.property-data")),e.xp6(5),e.Oqu(e.lcZ(16,109,"chart.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(21,111,"chart.property-chart")),e.xp6(2),e.Q6J("formControl",n.chartCtrl),e.xp6(1),e.Q6J("formControl",n.chartFilterCtrl),e.xp6(3),e.Oqu(e.lcZ(27,113,"chart.property-newchart")),e.xp6(2),e.Q6J("ngForOf",e.lcZ(29,115,n.filteredChart)),e.xp6(5),e.Oqu(e.lcZ(34,117,"chart.property-chart-type")),e.xp6(2),e.Q6J("value",n.chartViewValue),e.xp6(1),e.Q6J("ngForOf",e.lcZ(37,119,n.chartViewType)),e.xp6(3),e.Q6J("ngIf",n.chartViewValue!==n.chartViewType.realtime1),e.xp6(1),e.Q6J("ngIf",n.chartViewValue===n.chartViewType.realtime1),e.xp6(3),e.Oqu(e.lcZ(44,121,"chart.property-general")),e.xp6(4),e.Oqu(e.lcZ(48,123,"chart.property-font")),e.xp6(2),e.Q6J("value",n.options.fontFamily),e.xp6(1),e.Q6J("ngForOf",n.fonts),e.xp6(4),e.Oqu(e.lcZ(55,125,"chart.property-font.titlesize")),e.xp6(2),e.Q6J("ngModel",n.options.titleHeight),e.xp6(4),e.Oqu(e.lcZ(61,127,"chart.property-font.axissize")),e.xp6(2),e.Q6J("ngModel",n.options.axisLabelFontSize),e.xp6(4),e.Oqu(e.lcZ(67,129,"chart.property-date.format")),e.xp6(2),e.Q6J("value",n.options.dateFormat),e.xp6(1),e.Q6J("ngForOf",e.lcZ(70,131,n.dateFormat)),e.xp6(5),e.Oqu(e.lcZ(75,133,"chart.property-time.format")),e.xp6(2),e.Q6J("value",n.options.timeFormat),e.xp6(1),e.Q6J("ngForOf",e.lcZ(78,135,n.timeFormat)),e.xp6(5),e.Oqu(e.lcZ(83,137,"chart.property-legend.mode")),e.xp6(2),e.Q6J("value",n.options.legendMode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(86,139,n.legendModes)),e.xp6(4),e.Oqu(e.lcZ(90,141,"chart.property-yaxis")),e.xp6(5),e.Oqu(e.lcZ(95,143,"chart.property-axis-y1")),e.xp6(2),e.Q6J("ngModel",n.options.axisLabelY1),e.xp6(3),e.Oqu(e.lcZ(100,145,"chart.property-axis-y1-min")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY1min),e.xp6(3),e.Oqu(e.lcZ(105,147,"chart.property-axis-y1-max")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY1max),e.xp6(4),e.Oqu(e.lcZ(111,149,"chart.property-axis-y2")),e.xp6(2),e.Q6J("ngModel",n.options.axisLabelY2),e.xp6(3),e.Oqu(e.lcZ(116,151,"chart.property-axis-y2-min")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY2min),e.xp6(3),e.Oqu(e.lcZ(121,153,"chart.property-axis-y2-max")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY2max),e.xp6(4),e.Oqu(e.lcZ(127,155,"chart.property-axis-y3")),e.xp6(2),e.Q6J("ngModel",n.options.axisLabelY3),e.xp6(3),e.Oqu(e.lcZ(132,157,"chart.property-axis-y3-min")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY3min),e.xp6(3),e.Oqu(e.lcZ(137,159,"chart.property-axis-y3-max")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY3max),e.xp6(4),e.Oqu(e.lcZ(143,161,"chart.property-axis-y4")),e.xp6(2),e.Q6J("ngModel",n.options.axisLabelY4),e.xp6(3),e.Oqu(e.lcZ(148,163,"chart.property-axis-y4-min")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY4min),e.xp6(3),e.Oqu(e.lcZ(153,165,"chart.property-axis-y4-max")),e.xp6(2),e.Q6J("ngModel",n.options.scaleY4max),e.xp6(3),e.Oqu(e.lcZ(158,167,"chart.property-xaxis")),e.xp6(4),e.Oqu(e.lcZ(162,169,"chart.property-axis-x")),e.xp6(2),e.s9C("placeholder",e.lcZ(164,171,"chart.labels-time")),e.Q6J("ngModel",n.options.axisLabelX),e.xp6(4),e.Oqu(e.lcZ(168,173,"chart.property-theme")),e.xp6(4),e.Oqu(e.lcZ(172,175,"chart.property-color.text")),e.xp6(2),e.Udp("background",n.options.axisLabelColor),e.Q6J("colorPicker",n.options.axisLabelColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(4),e.Oqu(e.lcZ(178,177,"chart.property-color.background")),e.xp6(2),e.Udp("background",n.options.colorBackground),e.Q6J("colorPicker",n.options.colorBackground)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(4),e.Oqu(e.lcZ(184,179,"chart.property-color.grid")),e.xp6(2),e.Udp("background",n.options.gridLineColor),e.Q6J("colorPicker",n.options.gridLineColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(1),e.s9C("label",e.lcZ(187,181,"editor.settings-events")),e.xp6(9),e.Q6J("ngForOf",null==n.property?null:n.property.events))},dependencies:[l.sg,l.O5,l.RF,l.n9,I,qn,et,$n,Er,$i,ca,Nr,Yn,Zn,fo,bc,NA,DA,Cs,$A,VP,Xv,fs,gge,l.Ov,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .chart-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px);padding-top:5px}[_nghost-%COMP%] .section-item[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .field-block[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .field-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .field-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .field-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .field-text[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:70px}[_nghost-%COMP%] .field-number[_ngcontent-%COMP%]{width:60px}[_nghost-%COMP%] .field-number[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:inherit;text-align:center}[_nghost-%COMP%] .field-number[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:65px;text-align:left}[_nghost-%COMP%] .section-inline-margin-s[_ngcontent-%COMP%]{display:inline-block;width:5px}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%]{display:inline-block;width:60px}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:60px!important;text-align:center}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:60px}[_nghost-%COMP%] .section-inline-margin[_ngcontent-%COMP%]{display:inline-block;width:12px}[_nghost-%COMP%] .section-inline-margin2[_ngcontent-%COMP%]{display:inline-block;width:16px}[_nghost-%COMP%] .section-newline[_ngcontent-%COMP%]{height:8px;display:block}[_nghost-%COMP%] .slider-field mat-slider{background-color:var(--formSliderBackground);height:30px;width:100px}[_nghost-%COMP%] .mat-tab-label{height:34px!important;min-width:110px!important;width:110px!important}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%]{display:contents}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-item[_ngcontent-%COMP%]{margin-top:5px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-type[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-action[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-remove[_ngcontent-%COMP%]{float:right}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-action-ext[_ngcontent-%COMP%]{padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.1)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%]{padding-left:10px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .script-selection[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .event-script-param[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .event-script-value[_ngcontent-%COMP%]{width:calc(100% - 120px)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .event-script-tag[_ngcontent-%COMP%]{width:calc(100% - 125px)}[_nghost-%COMP%] .events-toolbox[_ngcontent-%COMP%]{display:block;width:100%}[_nghost-%COMP%] .events-toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .section-item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] input[_ngcontent-%COMP%]{width:calc(100% - 15px)} .chart-filter-option{line-height:28px!important;height:28px!important} .chart-filter-option span{font-size:13px}"]})}return r})();const Rge=["flexaction"];let yN=(()=>{class r{projectService;dialogRef;data;flexAction;property;constructor(t,i,n){this.projectService=t,this.dialogRef=i,this.data=n}ngOnInit(){this.data.devices||(this.data.devices=Object.values(this.projectService.getDevices())),this.property=this.data.property}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.property.actions=this.flexAction.getActions(),this.dialogRef.close(this.data)}onAddAction(){this.flexAction.onAddAction()}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-action-properties-dialog"]],viewQuery:function(i,n){if(1&i&&e.Gf(Rge,5),2&i){let o;e.iGM(o=e.CRH())&&(n.flexAction=o.first)}},decls:20,vars:12,consts:[[1,"container"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],[1,"toolbox"],["mat-icon-button","",3,"click"],["mat-dialog-content","",1,"dialog-mdsd-content","content"],[2,"padding-bottom","5px",3,"data","property","withBitmask"],["flexaction",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"button",4),e.NdJ("click",function(){return n.onAddAction()}),e.TgZ(8,"mat-icon"),e._uU(9,"add_circle_outline"),e.qZA()()(),e.TgZ(10,"div",5),e._UZ(11,"flex-action",6,7),e.qZA(),e.TgZ(13,"div",8)(14,"button",9),e.NdJ("click",function(){return n.onNoClick()}),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"button",10),e.NdJ("click",function(){return n.onOkClick()}),e._uU(18),e.ALo(19,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,6,"action-settings-title")),e.xp6(9),e.Q6J("data",n.data)("property",n.property)("withBitmask",!0),e.xp6(4),e.Oqu(e.lcZ(16,8,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(19,10,"dlg.ok")))},dependencies:[Yn,Qr,Kr,Ir,Zn,CS,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:760px;position:relative}[_nghost-%COMP%] .content[_ngcontent-%COMP%]{min-height:300px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{position:absolute;right:10px;top:20px}"]})}return r})(),WP=(()=>{class r{translateService;constructor(t){this.translateService=t}getRange(t){return`range(${t?.min} - ${t?.max})`}typeToText(t){let i="";return t===ii.cQ.getEnumKey(bb,bb.hidecontent)?i=this.translateService.instant(bb.hidecontent):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.stop)?i=this.translateService.instant(Tt.KG.stop):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.clockwise)?i=this.translateService.instant(Tt.KG.clockwise):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.anticlockwise)?i=this.translateService.instant(Tt.KG.anticlockwise):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.blink)?i=this.translateService.instant(Tt.KG.blink):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.start)?i=this.translateService.instant(Tt.KG.start):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.pause)?i=this.translateService.instant(Tt.KG.pause):t===ii.cQ.getEnumKey(Tt.KG,Tt.KG.reset)&&(i=this.translateService.instant(Tt.KG.reset)),i}static \u0275fac=function(i){return new(i||r)(e.LFG(Ni.sK))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();const Yge=["flexauth"],Nge=["flexhead"],Uge=["flexevent"],zge=["flexaction"];function Hge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",20),e._UZ(2,"img",21),e.TgZ(3,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onClearImage())}),e.ALo(4,"translate"),e.TgZ(5,"mat-icon"),e._uU(6,"clear"),e.qZA()()(),e.TgZ(7,"div",9)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.imageAnimation.count=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChangeValue("imageAnimation",n.options.imageAnimation))}),e.qZA()(),e.TgZ(12,"div",23)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"input",24),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.imageAnimation.delay=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onChangeValue("imageAnimation",n.options.imageAnimation))}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(2),e.s9C("src",t.options.imageAnimation.imageUrl,e.LSH),e.xp6(1),e.s9C("matTooltip",e.lcZ(4,6,"pipe.property-style-animation-image-remove")),e.xp6(6),e.Oqu(e.lcZ(10,8,"pipe.property-style-animation-count")),e.xp6(2),e.Q6J("ngModel",t.options.imageAnimation.count),e.xp6(3),e.Oqu(e.lcZ(15,10,"pipe.property-style-animation-delay")),e.xp6(2),e.Q6J("ngModel",t.options.imageAnimation.delay)}}function Gge(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",20)(1,"mat-select",25),e.NdJ("click",function(){e.CHM(t);const n=e.MAs(4);return e.KtG(n.click())}),e.ALo(2,"translate"),e.qZA(),e.TgZ(3,"input",26,27),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onSetImage(n))}),e.qZA()()}2&r&&(e.xp6(1),e.s9C("placeholder",e.lcZ(2,1,"pipe.property-style-animation-image")))}function Zge(r,a){if(1&r&&(e.TgZ(0,"div",28)(1,"div",29)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"input",30),e.qZA(),e.TgZ(6,"div",31)(7,"div",32)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",30),e.qZA(),e.TgZ(12,"div",33)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",30),e.qZA(),e.TgZ(17,"div",34)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e._UZ(21,"input",30),e.qZA()()()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,12,"action-settings-readonly-tag")),e.xp6(2),e.Q6J("value",i.getActionTag(t))("disabled",!0),e.xp6(4),e.Oqu(e.lcZ(10,14,"gui.range-number-min")),e.xp6(2),e.Q6J("value",null==t||null==t.range?null:t.range.min)("disabled",!0),e.xp6(3),e.Oqu(e.lcZ(15,16,"gui.range-number-max")),e.xp6(2),e.Q6J("value",null==t||null==t.range?null:t.range.max)("disabled",!0),e.xp6(3),e.Oqu(e.lcZ(20,18,"gauges.property-action-type")),e.xp6(2),e.Q6J("value",i.getActionType(t))("disabled",!0)}}let Jge=(()=>{class r{dialog;projectService;actionPropertyService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}flexAuth;flexHead;flexEvent;flexAction;property;options;views;name;defaultColor=ii.cQ.defaultColor;pipepath={bk:null,fg:null,hp:null};devices=[];constructor(t,i,n){this.dialog=t,this.projectService=i,this.actionPropertyService=n}ngOnInit(){this.initFromInput()}initFromInput(){let t=ii.cQ.isNullOrUndefined(this.data.settings.property)||ii.cQ.isNullOrUndefined(this.data.settings.property.options);this.name=this.data.settings.name,this.property=this.data.settings.property||new Tt.Hy,this.property||(this.property=new Tt.Hy),this.options=this.property.options??new Cce,this.devices=this.projectService.getDeviceList(),t&&setTimeout(()=>{this.onPipeChanged()},0)}onFlexAuthChanged(t){this.name=t.name,this.property.permission=t.permission,this.property.permissionRoles=t.permissionRoles,this.onPipeChanged()}onPipeChanged(){this.data.settings.name=this.name,this.data.settings.property=this.property,this.data.settings.property.options=this.options,this.onPropChanged.emit(this.data.settings)}onEditActions(){this.dialog.open(yN,{disableClose:!0,data:{withActions:this.data.withActions,property:JSON.parse(JSON.stringify(this.property))},position:{top:"60px"}}).afterClosed().subscribe(i=>{i&&(this.property=i.property,this.onPipeChanged())})}onChangeValue(t,i){"borderWidth"==t?this.options.borderWidth=i:"border"==t?this.options.border=i:"pipeWidth"==t?this.options.pipeWidth=i:"pipe"==t?this.options.pipe=i:"contentWidth"==t?this.options.contentWidth=i:"content"==t?this.options.content=i:"contentSpace"==t&&(this.options.contentSpace=i),this.onPipeChanged()}onAddEvent(){this.flexEvent.onAddEvent()}onAddAction(){this.flexAction.onAddAction()}getActionTag(t){let i=Yi.ef.getTagFromTagId(this.devices,t.variableId);return i?.label||i?.name}getActionType(t){return this.actionPropertyService.typeToText(t.type)}onSetImage(t){if(t.target.files){let i=t.target.files[0].name,n={type:i.split(".").pop().toLowerCase(),name:i.split("/").pop(),data:null},o=new FileReader;o.onload=()=>{try{n.data=o.result,this.projectService.uploadFile(n).subscribe(s=>{this.options.imageAnimation={imageUrl:s.location,delay:3e3,count:1},this.onPipeChanged()})}catch(s){console.error(s)}},"svg"===n.type&&o.readAsText(t.target.files[0])}}onClearImage(){this.options.imageAnimation=null,this.onPipeChanged()}_reload(){this.property=this.data?.settings?.property,this.initFromInput()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(WP))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-pipe-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Yge,5),e.Gf(Nge,5),e.Gf(Uge,5),e.Gf(zge,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.flexAuth=o.first),e.iGM(o=e.CRH())&&(n.flexHead=o.first),e.iGM(o=e.CRH())&&(n.flexEvent=o.first),e.iGM(o=e.CRH())&&(n.flexAction=o.first)}},inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:73,vars:88,consts:[[1,"element-property"],[1,"element-property-title"],[1,"pipe-selection"],[2,"height","100%"],[3,"label"],[1,"element-property-header"],[1,"block","mt5"],[3,"name","permission","permissionMode","onChanged"],["flexauth",""],[1,"my-form-field","inbk"],["numberOnly","","max","100","min","0","step","1","type","number",1,"style-size",3,"ngModel","ngModelChange","change"],[1,"my-form-field","ml10"],[1,"input-color",2,"width","80px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],["numberOnly","","min","0","step","1","type","number",1,"style-size",3,"ngModel","ngModelChange","change"],[4,"ngIf","ngIfElse"],["imageAnimVoid",""],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],[1,"mt30"],["class","action-readonly-item",4,"ngFor","ngForOf"],[1,"my-form-field","block","mt5","image-animation"],[2,"max-width","80%",3,"src"],["numberOnly","","min","1","step","1","type","number",1,"style-size",3,"ngModel","ngModelChange","change"],[1,"my-form-field","inbk","ml10"],["numberOnly","","min","0","step","100","type","number",1,"style-size",3,"ngModel","ngModelChange","change"],[3,"placeholder","click"],["type","file","accept",".svg,image/svg+xml",2,"display","none",3,"change"],["imagefile",""],[1,"action-readonly-item"],[1,"my-form-field","tag"],["type","text","readonly","",3,"value","disabled"],[1,"flex","value","mt5"],[1,"my-form-field","number","inbk"],[1,"my-form-field","number","inbk","ml5"],[1,"my-form-field","type","inbk","ml5"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"mat-tab-group",3)(6,"mat-tab",4),e.ALo(7,"translate"),e.TgZ(8,"div",5)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA()(),e.TgZ(12,"div",6)(13,"flex-auth",7,8),e.NdJ("onChanged",function(s){return n.onFlexAuthChanged(s)}),e.qZA()(),e.TgZ(15,"div",5)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA()(),e.TgZ(19,"div",6)(20,"div",9)(21,"span"),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.TgZ(24,"input",10),e.NdJ("ngModelChange",function(s){return n.options.borderWidth=s})("change",function(){return n.onChangeValue("borderWidth",n.options.borderWidth)}),e.qZA()(),e.TgZ(25,"div",11)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"input",12),e.NdJ("colorPickerChange",function(s){return n.options.border=s})("colorPickerChange",function(s){return n.onChangeValue("border",s)}),e.qZA()()(),e.TgZ(30,"div",6)(31,"div",9)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"input",10),e.NdJ("ngModelChange",function(s){return n.options.pipeWidth=s})("change",function(){return n.onChangeValue("pipeWidth",n.options.pipeWidth)}),e.qZA()(),e.TgZ(36,"div",11)(37,"span"),e._uU(38),e.ALo(39,"translate"),e.qZA(),e.TgZ(40,"input",12),e.NdJ("colorPickerChange",function(s){return n.options.pipe=s})("colorPickerChange",function(s){return n.onChangeValue("pipe",s)}),e.qZA()()(),e.TgZ(41,"div",6)(42,"div",9)(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA(),e.TgZ(46,"input",10),e.NdJ("ngModelChange",function(s){return n.options.contentWidth=s})("change",function(){return n.onChangeValue("contentWidth",n.options.contentWidth)}),e.qZA()(),e.TgZ(47,"div",11)(48,"span"),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"input",12),e.NdJ("colorPickerChange",function(s){return n.options.content=s})("colorPickerChange",function(s){return n.onChangeValue("content",s)}),e.qZA()(),e.TgZ(52,"div",11)(53,"span"),e._uU(54),e.ALo(55,"translate"),e.qZA(),e.TgZ(56,"input",13),e.NdJ("ngModelChange",function(s){return n.options.contentSpace=s})("change",function(){return n.onChangeValue("contentSpace",n.options.contentSpace)}),e.qZA()()(),e.TgZ(57,"div",5)(58,"span"),e._uU(59),e.ALo(60,"translate"),e.qZA()(),e.YNc(61,Hge,17,12,"ng-container",14),e.YNc(62,Gge,5,3,"ng-template",null,15,e.W1O),e.qZA(),e.TgZ(64,"mat-tab",4),e.ALo(65,"translate"),e.TgZ(66,"div",16)(67,"button",17),e.NdJ("click",function(){return n.onEditActions()}),e.ALo(68,"translate"),e.TgZ(69,"mat-icon"),e._uU(70,"edit"),e.qZA()()(),e.TgZ(71,"div",18),e.YNc(72,Zge,22,20,"div",19),e.qZA()()()()()),2&i){const o=e.MAs(63);e.xp6(2),e.hij(" ",e.lcZ(3,60,"pipe.property-title")," "),e.xp6(4),e.s9C("label",e.lcZ(7,62,"editor.settings-general")),e.xp6(4),e.Oqu(e.lcZ(11,64,"pipe.property-data")),e.xp6(3),e.Q6J("name",n.name)("permission",n.property.permission)("permissionMode","onlyShow"),e.xp6(4),e.Oqu(e.lcZ(18,66,"pipe.property-style")),e.xp6(5),e.Oqu(e.lcZ(23,68,"pipe.property-border-width")),e.xp6(2),e.Q6J("ngModel",n.options.borderWidth),e.xp6(3),e.Oqu(e.lcZ(28,70,"pipe.property-border-color")),e.xp6(2),e.Udp("background",n.options.border),e.Q6J("colorPicker",n.options.border)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(4),e.Oqu(e.lcZ(34,72,"pipe.property-pipe-width")),e.xp6(2),e.Q6J("ngModel",n.options.pipeWidth),e.xp6(3),e.Oqu(e.lcZ(39,74,"pipe.property-pipe-color")),e.xp6(2),e.Udp("background",n.options.pipe),e.Q6J("colorPicker",n.options.pipe)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(4),e.Oqu(e.lcZ(45,76,"pipe.property-content-width")),e.xp6(2),e.Q6J("ngModel",n.options.contentWidth),e.xp6(3),e.Oqu(e.lcZ(50,78,"pipe.property-content-color")),e.xp6(2),e.Udp("background",n.options.content),e.Q6J("colorPicker",n.options.content)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","bottom"),e.xp6(3),e.Oqu(e.lcZ(55,80,"pipe.property-content-space")),e.xp6(2),e.Q6J("ngModel",n.options.contentSpace),e.xp6(3),e.Oqu(e.lcZ(60,82,"pipe.property-style-animation")),e.xp6(2),e.Q6J("ngIf",n.options.imageAnimation)("ngIfElse",o),e.xp6(3),e.s9C("label",e.lcZ(65,84,"editor.settings-actions")),e.xp6(3),e.s9C("matTooltip",e.lcZ(68,86,"table.property-edit-actions-tooltip")),e.xp6(5),e.Q6J("ngForOf",null==n.property?null:n.property.actions)}},dependencies:[l.sg,l.O5,I,qn,et,$n,Er,$i,Yn,Zn,fo,NA,DA,Cs,$A,qv,fs,Ni.X$],styles:["[_nghost-%COMP%] .pipe-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px);padding-top:5px}[_nghost-%COMP%] .pipe-selection[_ngcontent-%COMP%] .style-size[_ngcontent-%COMP%]{width:80px;text-align:left}[_nghost-%COMP%] .mat-tab-label{height:34px!important;min-width:110px!important;width:110px!important}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{float:right;margin-bottom:3px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:8px;margin-left:8px}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%]{display:block;width:100%;border-bottom:1px solid rgba(0,0,0,.1);padding:5px 0}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:inherit}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .number[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{width:50px}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .type[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{width:auto}[_nghost-%COMP%] .image-animation[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .image-animation[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 10px)}[_nghost-%COMP%] .image-animation[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:200px}[_nghost-%COMP%] .image-animation[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{float:right}"]})}return r})();function jge(r,a){if(1&r&&(e.TgZ(0,"mat-option",29),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t.name," ")}}function Vge(r,a){if(1&r&&(e.TgZ(0,"mat-option",29),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"graph.rangetype-"+t.key)," ")}}function Wge(r,a){if(1&r&&(e.TgZ(0,"mat-option",29),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"graph.grouptype-"+t.key)," ")}}function Kge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",30)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",31),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.lastRange=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.YNc(6,Vge,3,4,"mat-option",10),e.ALo(7,"enumToArray"),e.qZA()(),e.TgZ(8,"div",32)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-select",31),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.dateGroup=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.YNc(13,Wge,3,4,"mat-option",10),e.ALo(14,"enumToArray"),e.qZA()(),e.TgZ(15,"div",14)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"mat-slide-toggle",33),e.NdJ("change",function(){e.CHM(t);const n=e.oxw();return n.options.offline=!n.options.offline,e.KtG(n.onGraphChanged())}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,11,"graph.property-date-last-range")),e.xp6(2),e.Q6J("value",t.options.lastRange)("disabled",!t.isDateTime(t.graphCtrl.value)),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,13,t.lastRangeType)),e.xp6(4),e.Oqu(e.lcZ(11,15,"graph.property-date-group")),e.xp6(2),e.Q6J("value",t.options.dateGroup)("disabled",!t.isDateTime(t.graphCtrl.value)),e.xp6(1),e.Q6J("ngForOf",e.lcZ(14,17,t.dateGroupType)),e.xp6(4),e.Oqu(e.lcZ(18,19,"graph.property-offline")),e.xp6(2),e.Q6J("checked",!t.options.offline)("disabled",t.isDateTime(t.graphCtrl.value))}}function qge(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",3)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA()(),e.BQk()),2&r&&(e.xp6(3),e.Oqu(e.lcZ(4,1,"graph.property-general")))}function Xge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",4)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.indexAxis=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.TgZ(6,"mat-option",34),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"mat-option",35),e._uU(10),e.ALo(11,"translate"),e.qZA()()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"graph.property-graph-oriantation")),e.xp6(2),e.Q6J("value",t.options.indexAxis),e.xp6(2),e.Oqu(e.lcZ(8,6,"graph.property-ori-vartical")),e.xp6(3),e.Oqu(e.lcZ(11,8,"graph.property-ori-horizontal"))}}function $ge(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",3)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA()(),e.TgZ(5,"div")(6,"div",12)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",36),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.y.min=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(11,"div",37)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",36),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.y.max=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(16,"div",37)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",38),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.y.ticks.stepSize=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e._UZ(21,"div",39),e.TgZ(22,"div",12)(23,"span"),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"input",13),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.y.ticks.font.size=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(27,"div",26)(28,"span"),e._uU(29),e.ALo(30,"translate"),e.qZA(),e.TgZ(31,"input",27),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.decimals=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(32,"div",14)(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA(),e.TgZ(36,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.y.display=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()()(),e.TgZ(37,"div",3)(38,"span"),e._uU(39),e.ALo(40,"translate"),e.qZA()(),e.TgZ(41,"div")(42,"div",40)(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA(),e.TgZ(46,"input",13),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.x.ticks.font.size=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(47,"div",14)(48,"span"),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.scales.x.display=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,18,"graph.property-yaxis")),e.xp6(5),e.Oqu(e.lcZ(9,20,"graph.property-yaxis-min")),e.xp6(2),e.Q6J("ngModel",t.options.scales.y.min),e.xp6(3),e.Oqu(e.lcZ(14,22,"graph.property-yaxis-max")),e.xp6(2),e.Q6J("ngModel",t.options.scales.y.max),e.xp6(3),e.Oqu(e.lcZ(19,24,"graph.property-stepsize")),e.xp6(2),e.Q6J("ngModel",t.options.scales.y.ticks.stepSize),e.xp6(4),e.Oqu(e.lcZ(25,26,"graph.property-yaxis-fontsize")),e.xp6(2),e.Q6J("ngModel",t.options.scales.y.ticks.font.size),e.xp6(3),e.Oqu(e.lcZ(30,28,"graph.property-decimals")),e.xp6(2),e.Q6J("ngModel",t.options.decimals),e.xp6(3),e.Oqu(e.lcZ(35,30,"graph.property-yaxis-show")),e.xp6(2),e.Q6J("ngModel",t.options.scales.y.display),e.xp6(3),e.Oqu(e.lcZ(40,32,"graph.property-xaxis")),e.xp6(5),e.Oqu(e.lcZ(45,34,"graph.property-xaxis-fontsize")),e.xp6(2),e.Q6J("ngModel",t.options.scales.x.ticks.font.size),e.xp6(3),e.Oqu(e.lcZ(50,36,"graph.property-xaxis-show")),e.xp6(2),e.Q6J("ngModel",t.options.scales.x.display)}}function efe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",39)(1,"div",42)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",43),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.plugins.title.color=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(6,"div",44)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",43),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.scales.y.ticks.color=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(11,"div",44)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",43),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.scales.x.ticks.color=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(16,"div",44)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",43),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.gridLinesColor=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(21,"div",39)(22,"div",42)(23,"span"),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"input",43),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.plugins.legend.labels.color=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(27,"div",44)(28,"span"),e._uU(29),e.ALo(30,"translate"),e.qZA(),e.TgZ(31,"input",43),e.NdJ("colorPickerChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.options.plugins.datalabels.color=n)})("colorPickerChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onGraphChanged())}),e.qZA()()()()}if(2&r){const t=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,78,"graph.property-title-color")),e.xp6(2),e.Udp("background",t.options.plugins.title.color),e.Q6J("colorPicker",t.options.plugins.title.color)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(9,80,"graph.property-yaxis-color")),e.xp6(2),e.Udp("background",t.options.scales.y.ticks.color),e.Q6J("colorPicker",t.options.scales.y.ticks.color)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(14,82,"graph.property-xaxis-color")),e.xp6(2),e.Udp("background",t.options.scales.x.ticks.color),e.Q6J("colorPicker",t.options.scales.x.ticks.color)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(19,84,"graph.property-grid-color")),e.xp6(2),e.Udp("background",t.options.gridLinesColor),e.Q6J("colorPicker",t.options.gridLinesColor)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(4),e.Oqu(e.lcZ(25,86,"graph.property-legend-color")),e.xp6(2),e.Udp("background",t.options.plugins.legend.labels.color),e.Q6J("colorPicker",t.options.plugins.legend.labels.color)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(30,88,"graph.property-datalabels-color")),e.xp6(2),e.Udp("background",t.options.plugins.datalabels.color),e.Q6J("colorPicker",t.options.plugins.datalabels.color)("cpAlphaChannel","always")("cpPresetColors",t.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto")}}function tfe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",3)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA()(),e.TgZ(5,"div")(6,"div",4)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.theme=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphThemaChanged())}),e.TgZ(11,"mat-option",29),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"mat-option",29),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"mat-option",29),e._uU(18),e.ALo(19,"translate"),e.qZA()()(),e.YNc(20,efe,32,90,"div",41),e.qZA(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,10,"graph.property-theme")),e.xp6(5),e.Oqu(e.lcZ(9,12,"graph.property-theme-type")),e.xp6(2),e.Q6J("value",t.options.theme),e.xp6(1),e.Q6J("value",t.themeType.customise),e.xp6(1),e.Oqu(e.lcZ(13,14,"graph.property-theme-owner")),e.xp6(2),e.Q6J("value",t.themeType.light),e.xp6(1),e.Oqu(e.lcZ(16,16,"graph.property-theme-light")),e.xp6(2),e.Q6J("value",t.themeType.dark),e.xp6(1),e.Oqu(e.lcZ(19,18,"graph.property-theme-dark")),e.xp6(2),e.Q6J("ngIf",t.options.theme===t.themeType.customise)}}function ife(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",14)(2,"span",45),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.gridLinesShow=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,2,"graph.property-gridline")),e.xp6(2),e.Q6J("ngModel",t.options.gridLinesShow)}}function nfe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",3)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA()(),e.TgZ(5,"div")(6,"div",16)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",17),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.plugins.datalabels.anchor=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.TgZ(11,"mat-option",23),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"mat-option",24),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"mat-option",25),e._uU(18),e.ALo(19,"translate"),e.qZA()()(),e.TgZ(20,"div",26)(21,"span"),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.TgZ(24,"input",13),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.plugins.datalabels.font.size=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()(),e.TgZ(25,"div",14)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.plugins.datalabels.display=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGraphChanged())}),e.qZA()()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,10,"graph.property-datalabels")),e.xp6(5),e.Oqu(e.lcZ(9,12,"graph.property-datalabels-align")),e.xp6(2),e.Q6J("value",t.options.plugins.datalabels.anchor),e.xp6(2),e.Oqu(e.lcZ(13,14,"graph.property-legend-center")),e.xp6(3),e.Oqu(e.lcZ(16,16,"graph.property-legend-start")),e.xp6(3),e.Oqu(e.lcZ(19,18,"graph.property-legend-end")),e.xp6(4),e.Oqu(e.lcZ(23,20,"graph.property-datalabels-fontsize")),e.xp6(2),e.Q6J("ngModel",t.options.plugins.datalabels.font.size),e.xp6(3),e.Oqu(e.lcZ(28,22,"graph.property-datalabels-show")),e.xp6(2),e.Q6J("ngModel",t.options.plugins.datalabels.display)}}let rfe=(()=>{class r{dialog;translateService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}themeType=MS;graphBarType=Nh.bar;graphType=Nh.pie;options;defaultColor=ii.cQ.defaultColor;lastRangeType=$f;dateGroupType=NC;dataXType=ii.cQ.getEnumKey(Qd,Qd.date);graphCtrl=new li;graphFilterCtrl=new li;filteredGraph=new zC.t(1);_onDestroy=new An.x;constructor(t,i){this.dialog=t,this.translateService=i}ngOnInit(){this.checkInitProperty(),this.data.settings.type.endsWith("bar")&&Object.keys(this.dateGroupType).forEach(t=>{this.translateService.get(this.dateGroupType[t]).subscribe(i=>{this.dateGroupType[t]=i})}),this._reload()}ngOnDestroy(){this._onDestroy.next(null),this._onDestroy.complete()}_reload(){this.checkInitProperty(),this.data.settings.type.endsWith("bar")?this.options=ii.cQ.mergeDeep(lD.DefaultOptions(),this.data.settings.property.options):this.data.settings.type.endsWith("pie")&&(this.options=ii.cQ.mergeDeep(cD.DefaultOptions(),this.data.settings.property.options)),this.loadGraphs();let t=null;this.data.settings.property&&(t=this.data.graphs.find(i=>i.id===this.data.settings.property.id)),this.graphCtrl.setValue(t)}checkInitProperty(){this.data.settings.type.endsWith("bar")?(this.graphType=Nh.bar,this.data.settings.property||(this.data.settings.property={id:null,type:null,options:null}),this.data.settings.property.options||(this.data.settings.property.options=lD.DefaultOptions())):this.data.settings.type.endsWith("pie")&&(this.graphType=Nh.pie,this.data.settings.property||(this.data.settings.property={id:null,type:null,options:null}),this.data.settings.property.options||(this.data.settings.property.options=cD.DefaultOptions()))}onGraphChanged(){this.data.settings.property={id:null,type:null,options:null},this.graphCtrl.value&&(this.data.settings.property.id=this.graphCtrl.value.id,this.data.settings.property.type=this.graphCtrl.value.type,this.data.settings.type.endsWith("bar")&&(this.isDateTime(this.graphCtrl.value)?(this.options.offline=!0,this.options.lastRange=this.options.lastRange??$f.last1d,this.options.dateGroup=this.options.dateGroup??NC.hours):(this.options.lastRange=null,this.options.dateGroup=null))),this.data.settings.type.endsWith("bar")&&(this.options.scales.y.grid.color=this.options.gridLinesColor,this.options.scales.y.grid.display=this.options.gridLinesShow,this.options.scales.x.grid.color=this.options.gridLinesColor,this.options.scales.x.grid.display=this.options.gridLinesShow),this.data.settings.property.options=JSON.parse(JSON.stringify(this.options)),this.onPropChanged.emit(this.data.settings)}onGraphThemaChanged(){const t=this.options.scales.y,i=this.options.scales.x;this.options.theme===this.themeType.light?(t.ticks.color="#666",i.ticks.color="#666",this.options.plugins.legend.labels.color="#666",this.options.plugins.datalabels.color="#666",this.options.plugins.title.color="#666",this.options.gridLinesColor="rgba(0, 0, 0, 0.2)",this.options.backgroundColor=null):this.options.theme===this.themeType.dark?(t.ticks.color="#fff",i.ticks.color="#fff",this.options.plugins.legend.labels.color="#fff",this.options.plugins.datalabels.color="#fff",this.options.plugins.title.color="#fff",this.options.gridLinesColor="#808080",this.options.backgroundColor="242424"):this.options.theme===this.themeType.customise&&(this.options.backgroundColor=null),this.onGraphChanged()}onEditNewGraph(){this.dialog.open(QL,{position:{top:"60px"},minWidth:"1090px",width:"1090px",data:{type:this.graphType===Nh.bar?"bar":"pie"}}).afterClosed().subscribe(i=>{i&&(this.data.graphs=i.graphs,this.loadGraphs(),i.selected&&this.graphCtrl.setValue(i.selected),this.onGraphChanged())})}isDateTime(t){return!(!t||!t.property||t.property.xtype!==this.dataXType)}loadGraphs(t){if(this.filteredGraph.next(this.data.graphs.slice()),this.graphFilterCtrl.valueChanges.pipe((0,On.R)(this._onDestroy)).subscribe(()=>{this.filterGraph()}),t){let i=-1;this.data.graphs.every(function(n,o,s){return n.id!==t||(i=o,!1)}),i>=0&&this.graphCtrl.setValue(this.data.graphs[i])}}filterGraph(){if(!this.data.graphs)return;let t=this.graphFilterCtrl.value;t?(t=t.toLowerCase(),this.filteredGraph.next(this.data.graphs.filter(i=>i.name.toLowerCase().indexOf(t)>-1))):this.filteredGraph.next(this.data.graphs.slice())}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-graph-property"]],inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:109,vars:90,consts:[[1,"element-property"],[1,"element-property-title"],[1,"graph-selection"],[1,"element-property-header"],[1,"my-form-field","section-item","section-item-block"],["type","text",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-item","section-item-block","mt5"],[3,"formControl","selectionChange"],[3,"formControl"],[3,"click"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"my-form-field","section-inline-number"],["numberOnly","","type","number","min","6",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-inline-toggle","slider-field","ml10"],["color","primary",3,"ngModel","ngModelChange","change"],[1,"my-form-field","section-item",2,"display","inline-block","width","80px"],[3,"value","valueChange","selectionChange"],["value","top"],["value","left"],["value","bottom"],["value","right"],[1,"my-form-field","section-item","ml15",2,"display","inline-block","width","80px"],["value","center"],["value","start"],["value","end"],[1,"my-form-field","section-inline-number","section-toogle","ml15"],["numberOnly","","type","number","min","0",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-inline-toggle","section-inline-toggle-ext","slider-field","ml10"],[3,"value"],[1,"my-form-field","section-item","mt5","inbk",2,"width","120px"],[3,"value","disabled","valueChange","selectionChange"],[1,"my-form-field","section-item","ml15",2,"display","inline-block","width","120px"],["color","primary",3,"checked","disabled","change"],["value","x"],["value","y"],["numberOrNullOnly","","type","number",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-inline-number","ml15"],["numberOnly","","type","number",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"mt5"],[1,"my-form-field","section-inline-number","section-toogle"],["class","mt5",4,"ngIf"],[1,"my-form-field","section-inline-color","color-field"],[1,"input-color",2,"width","88px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","section-inline-color","color-field","ml15"],[2,"width","60px"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"div",3)(6,"span"),e._uU(7),e.ALo(8,"translate"),e.qZA()(),e.TgZ(9,"div")(10,"div",4)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"input",5),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s})("change",function(){return n.onGraphChanged()})("keyup.enter",function(){return n.onGraphChanged()}),e.qZA()(),e.TgZ(15,"div",6)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"mat-select",7),e.NdJ("selectionChange",function(){return n.onGraphChanged()}),e._UZ(20,"mat-select-search",8),e.TgZ(21,"mat-option",9),e.NdJ("click",function(){return n.onEditNewGraph()}),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.YNc(24,jge,2,2,"mat-option",10),e.ALo(25,"async"),e.qZA()(),e.YNc(26,Kge,20,21,"ng-container",11),e.qZA(),e.YNc(27,qge,5,3,"ng-container",11),e.YNc(28,Xge,12,10,"ng-container",11),e.TgZ(29,"div",3)(30,"span"),e._uU(31),e.ALo(32,"translate"),e.qZA()(),e.TgZ(33,"div")(34,"div",12)(35,"span"),e._uU(36),e.ALo(37,"translate"),e.qZA(),e.TgZ(38,"input",13),e.NdJ("ngModelChange",function(s){return n.options.plugins.title.font.size=s})("change",function(){return n.onGraphChanged()})("keyup.enter",function(){return n.onGraphChanged()}),e.qZA()(),e.TgZ(39,"div",14)(40,"span"),e._uU(41),e.ALo(42,"translate"),e.qZA(),e.TgZ(43,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(s){return n.options.plugins.title.display=s})("change",function(){return n.onGraphChanged()}),e.qZA()()(),e.YNc(44,$ge,52,38,"ng-container",11),e.TgZ(45,"div",3)(46,"span"),e._uU(47),e.ALo(48,"translate"),e.qZA()(),e.TgZ(49,"div")(50,"div",16)(51,"span"),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"mat-select",17),e.NdJ("valueChange",function(s){return n.options.plugins.legend.position=s})("selectionChange",function(){return n.onGraphChanged()}),e.TgZ(55,"mat-option",18),e._uU(56),e.ALo(57,"translate"),e.qZA(),e.TgZ(58,"mat-option",19),e._uU(59),e.ALo(60,"translate"),e.qZA(),e.TgZ(61,"mat-option",20),e._uU(62),e.ALo(63,"translate"),e.qZA(),e.TgZ(64,"mat-option",21),e._uU(65),e.ALo(66,"translate"),e.qZA()()(),e.TgZ(67,"div",22)(68,"span"),e._uU(69),e.ALo(70,"translate"),e.qZA(),e.TgZ(71,"mat-select",17),e.NdJ("valueChange",function(s){return n.options.plugins.legend.align=s})("selectionChange",function(){return n.onGraphChanged()}),e.TgZ(72,"mat-option",23),e._uU(73),e.ALo(74,"translate"),e.qZA(),e.TgZ(75,"mat-option",24),e._uU(76),e.ALo(77,"translate"),e.qZA(),e.TgZ(78,"mat-option",25),e._uU(79),e.ALo(80,"translate"),e.qZA()()(),e.TgZ(81,"div",26)(82,"span"),e._uU(83),e.ALo(84,"translate"),e.qZA(),e.TgZ(85,"input",13),e.NdJ("ngModelChange",function(s){return n.options.plugins.legend.labels.font.size=s})("change",function(){return n.onGraphChanged()})("keyup.enter",function(){return n.onGraphChanged()}),e.qZA()(),e.TgZ(86,"div",14)(87,"span"),e._uU(88),e.ALo(89,"translate"),e.qZA(),e.TgZ(90,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(s){return n.options.plugins.legend.display=s})("change",function(){return n.onGraphChanged()}),e.qZA()()(),e.YNc(91,tfe,21,20,"ng-container",11),e.TgZ(92,"div",3)(93,"span"),e._uU(94),e.ALo(95,"translate"),e.qZA()(),e.TgZ(96,"div")(97,"div",12)(98,"span"),e._uU(99),e.ALo(100,"translate"),e.qZA(),e.TgZ(101,"input",27),e.NdJ("ngModelChange",function(s){return n.options.borderWidth=s})("change",function(){return n.onGraphChanged()})("keyup.enter",function(){return n.onGraphChanged()}),e.qZA()(),e.YNc(102,ife,6,4,"ng-container",11),e.TgZ(103,"div",28)(104,"span"),e._uU(105),e.ALo(106,"translate"),e.qZA(),e.TgZ(107,"mat-slide-toggle",15),e.NdJ("ngModelChange",function(s){return n.options.plugins.tooltip.enabled=s})("change",function(){return n.onGraphChanged()}),e.qZA()()(),e.YNc(108,nfe,30,24,"ng-container",11),e.qZA()()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,42,n.graphType===n.graphBarType?"editor.controls-graph-bar-settings":"editor.controls-graph-pie-settings")," "),e.xp6(5),e.Oqu(e.lcZ(8,44,"graph.property-data")),e.xp6(5),e.Oqu(e.lcZ(13,46,"graph.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(18,48,"graph.property-graph")),e.xp6(2),e.Q6J("formControl",n.graphCtrl),e.xp6(1),e.Q6J("formControl",n.graphFilterCtrl),e.xp6(2),e.Oqu(e.lcZ(23,50,"graph.property-newgraph")),e.xp6(2),e.Q6J("ngForOf",e.lcZ(25,52,n.filteredGraph)),e.xp6(2),e.Q6J("ngIf",n.graphType===n.graphBarType),e.xp6(1),e.Q6J("ngIf",n.graphType===n.graphBarType),e.xp6(1),e.Q6J("ngIf",n.graphType===n.graphBarType),e.xp6(3),e.Oqu(e.lcZ(32,54,"graph.property-title")),e.xp6(5),e.Oqu(e.lcZ(37,56,"graph.property-title-font")),e.xp6(2),e.Q6J("ngModel",n.options.plugins.title.font.size),e.xp6(3),e.Oqu(e.lcZ(42,58,"graph.property-title-show")),e.xp6(2),e.Q6J("ngModel",n.options.plugins.title.display),e.xp6(1),e.Q6J("ngIf",n.graphType===n.graphBarType),e.xp6(3),e.Oqu(e.lcZ(48,60,"graph.property-legend")),e.xp6(5),e.Oqu(e.lcZ(53,62,"graph.property-legend-display")),e.xp6(2),e.Q6J("value",n.options.plugins.legend.position),e.xp6(2),e.Oqu(e.lcZ(57,64,"graph.property-legend-top")),e.xp6(3),e.Oqu(e.lcZ(60,66,"graph.property-legend-left")),e.xp6(3),e.Oqu(e.lcZ(63,68,"graph.property-legend-bottom")),e.xp6(3),e.Oqu(e.lcZ(66,70,"graph.property-legend-right")),e.xp6(4),e.Oqu(e.lcZ(70,72,"graph.property-legend-align")),e.xp6(2),e.Q6J("value",n.options.plugins.legend.align),e.xp6(2),e.Oqu(e.lcZ(74,74,"graph.property-legend-center")),e.xp6(3),e.Oqu(e.lcZ(77,76,"graph.property-legend-start")),e.xp6(3),e.Oqu(e.lcZ(80,78,"graph.property-legend-end")),e.xp6(4),e.Oqu(e.lcZ(84,80,"graph.property-legend-fontsize")),e.xp6(2),e.Q6J("ngModel",n.options.plugins.legend.labels.font.size),e.xp6(3),e.Oqu(e.lcZ(89,82,"graph.property-legend-show")),e.xp6(2),e.Q6J("ngModel",n.options.plugins.legend.display),e.xp6(1),e.Q6J("ngIf",n.graphType===n.graphBarType),e.xp6(3),e.Oqu(e.lcZ(95,84,"graph.property-layout")),e.xp6(5),e.Oqu(e.lcZ(100,86,"graph.property-border")),e.xp6(2),e.Q6J("ngModel",n.options.borderWidth),e.xp6(1),e.Q6J("ngIf",n.graphType===n.graphBarType),e.xp6(3),e.Oqu(e.lcZ(106,88,"graph.property-tooltip")),e.xp6(2),e.Q6J("ngModel",n.options.plugins.tooltip.enabled),e.xp6(1),e.Q6J("ngIf",n.graphType===n.graphBarType))},dependencies:[l.sg,l.O5,I,qn,et,$n,$i,ca,Nr,fo,bc,$A,VP,fs,Nj,l.Ov,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .graph-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px)}[_nghost-%COMP%] .section-item[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .section-item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .section-inline-number[_ngcontent-%COMP%]{display:inline-block;width:60px}[_nghost-%COMP%] .section-inline-number[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:inherit;text-align:center}[_nghost-%COMP%] .section-inline-number[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:65px;text-align:left}[_nghost-%COMP%] .section-inline-toggle[_ngcontent-%COMP%]{display:inline-block;width:50px;text-align:center}[_nghost-%COMP%] .section-inline-toggle[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:inherit}[_nghost-%COMP%] .section-inline-toggle[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:inherit;padding-left:10px}[_nghost-%COMP%] .section-inline-toggle-ext[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:85px}[_nghost-%COMP%] .section-inline-toggle-ext[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{padding-left:20px}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%]{display:inline-block;width:60px}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:60px!important;text-align:center}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:65px}"]})}return r})(),ofe=(()=>{class r{translateService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}property;constructor(t){this.translateService=t}ngOnInit(){this._reload()}onPropertyChanged(){this.onPropChanged.emit(this.data.settings)}onTagChanged(t){this.data.settings.property.variableId=t.variableId,this.onPropChanged.emit(this.data.settings)}_reload(){this.data.settings.property||(this.data.settings.property={address:null,variableId:null}),this.property=this.data.settings.property}static \u0275fac=function(i){return new(i||r)(e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-iframe-property"]],inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:22,vars:15,consts:[[1,"element-property"],[1,"element-property-title"],[1,"iframe-selection"],[1,"element-property-header"],[1,"my-form-field","section-item","section-item-block"],["type","text",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-item","section-item-block","mt5"],[1,"block","mt5","item-device-tag",3,"variableId","onchange"],[1,"section-newline"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"div",3)(6,"span"),e._uU(7),e.ALo(8,"translate"),e.qZA()(),e.TgZ(9,"div")(10,"div",4)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"input",5),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s})("change",function(){return n.onPropertyChanged()})("keyup.enter",function(){return n.onPropertyChanged()}),e.qZA()(),e.TgZ(15,"div",6)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"input",5),e.NdJ("ngModelChange",function(s){return n.property.address=s})("change",function(){return n.onPropertyChanged()})("keyup.enter",function(){return n.onPropertyChanged()}),e.qZA()(),e.TgZ(20,"app-flex-device-tag",7),e.NdJ("onchange",function(s){return n.onTagChanged(s)}),e.qZA(),e._UZ(21,"div",8),e.qZA()()()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,7,"editor.controls-iframe-settings")," "),e.xp6(5),e.Oqu(e.lcZ(8,9,"iframe.property-data")),e.xp6(5),e.Oqu(e.lcZ(13,11,"iframe.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(18,13,"iframe.property-address")),e.xp6(2),e.Q6J("ngModel",n.property.address),e.xp6(1),e.Q6J("variableId",n.property.variableId))},dependencies:[I,et,$i,Xv,Ni.X$],styles:["[_nghost-%COMP%] .iframe-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px)}[_nghost-%COMP%] .section-item[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .section-item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .item-device-tag[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})();function afe(r,a){1&r&&(e.TgZ(0,"h1",15),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"table.column-dialog-title")))}function sfe(r,a){1&r&&(e.TgZ(0,"h1",15),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"table.row-dialog-title")))}function lfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",16)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",17),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.cell.label=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"table.cell-column-name")),e.xp6(2),e.Q6J("ngModel",t.data.cell.label)}}function cfe(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"table.cell-column-type")))}function Afe(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"table.cell-row-type")))}function dfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",9),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=e.oxw();e.Q6J("value",t.columnType.label),e.xp6(1),e.hij(" ",e.lcZ(2,2,"table.property-column-label"),"")}}function ufe(r,a){if(1&r&&(e.TgZ(0,"mat-option",9),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=e.oxw();e.Q6J("value",t.columnType.variable),e.xp6(1),e.hij(" ",e.lcZ(2,2,"table.property-column-variable"),"")}}function hfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",9),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=e.oxw();e.Q6J("value",t.columnType.device),e.xp6(1),e.hij(" ",e.lcZ(2,2,"table.property-column-device"),"")}}function pfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",18)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",19),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.cell.valueFormat=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"table.cell-ts-format")),e.xp6(2),e.Q6J("ngModel",t.data.cell.valueFormat)}}function gfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",18)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",19),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.cell.label=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"table.cell-text")),e.xp6(2),e.Q6J("ngModel",t.data.cell.label)}}function ffe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",18)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",19),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.cell.valueFormat=n)}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"table.cell-value-format")),e.xp6(2),e.Q6J("ngModel",t.data.cell.valueFormat)}}function mfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",20)(1,"flex-variable",21),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onSetVariable(n))}),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(1),e.Q6J("data",t.devicesValues)("variableId",t.data.cell.variableId)("bitmask",t.data.cell.bitmask)("withStaticValue",!1)("withBitmask",!0)}}let wN=(()=>{class r{projectService;dialogRef;data;tableType=Tt.Nd;cellType=yD;columnType=Tt.v7;devicesValues={devices:null};constructor(t,i,n){this.projectService=t,this.dialogRef=i,this.data=n,this.devicesValues.devices=Object.values(this.projectService.getDevices())}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.data)}onSetVariable(t){if(this.data.cell.variableId=t.variableId,this.data.cell.bitmask=t.bitmask,this.data.table===Tt.Nd.data)if(t.variableRaw){if(this.data.cell.label=t.variableRaw.name,this.data.cell.type===Tt.v7.device){let i=this.projectService.getDeviceFromTagId(t.variableId);this.data.cell.label=i?i.name:""}}else this.data.cell.label=null;else if(this.data.table===Tt.Nd.history&&t.variableRaw&&this.data.cell.type===Tt.v7.device){let i=this.projectService.getDeviceFromTagId(t.variableId);this.data.cell.exname=i?i.name:""}}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-table-customizer-cell-edit"]],decls:29,vars:23,consts:[["mat-dialog-title","","class","dialog-title","mat-dialog-draggable","",4,"ngIf"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],["class","my-form-field","style","display: block;",4,"ngIf"],[2,"display","block","margin-top","10px"],[1,"my-form-field",2,"display","inline-block"],[4,"ngIf"],[2,"width","260px",3,"value","valueChange"],[3,"value",4,"ngIf"],[3,"value"],["class","my-form-field","style","display: inline-block; margin-left: 16px;",4,"ngIf"],["class","my-form-field variable-input",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"my-form-field",2,"display","block"],["type","text",2,"width","260px",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"display","inline-block","margin-left","16px"],["type","text",2,"width","265px",3,"ngModel","ngModelChange"],[1,"my-form-field","variable-input"],[3,"data","variableId","bitmask","withStaticValue","withBitmask","onchange"]],template:function(i,n){1&i&&(e.TgZ(0,"div"),e.YNc(1,afe,3,3,"h1",0),e.YNc(2,sfe,3,3,"h1",0),e.TgZ(3,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(4,"clear"),e.qZA(),e.TgZ(5,"div",2),e.YNc(6,lfe,5,4,"div",3),e.TgZ(7,"div",4)(8,"div",5),e.YNc(9,cfe,3,3,"span",6),e.YNc(10,Afe,3,3,"span",6),e.TgZ(11,"mat-select",7),e.NdJ("valueChange",function(s){return n.data.cell.type=s}),e.YNc(12,dfe,3,4,"mat-option",8),e.YNc(13,ufe,3,4,"mat-option",8),e.YNc(14,hfe,3,4,"mat-option",8),e.TgZ(15,"mat-option",9),e._uU(16),e.ALo(17,"translate"),e.qZA()()(),e.YNc(18,pfe,5,4,"div",10),e.YNc(19,gfe,5,4,"div",10),e.YNc(20,ffe,5,4,"div",10),e.qZA(),e.YNc(21,mfe,2,5,"div",11),e.qZA(),e.TgZ(22,"div",12)(23,"button",13),e.NdJ("click",function(){return n.onNoClick()}),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"button",14),e.NdJ("click",function(){return n.onOkClick()}),e._uU(27),e.ALo(28,"translate"),e.qZA()()()),2&i&&(e.xp6(1),e.Q6J("ngIf",n.data.type===n.cellType.column),e.xp6(1),e.Q6J("ngIf",n.data.type===n.cellType.row),e.xp6(4),e.Q6J("ngIf",n.data.type===n.cellType.column),e.xp6(3),e.Q6J("ngIf",n.data.type===n.cellType.column),e.xp6(1),e.Q6J("ngIf",n.data.type===n.cellType.row),e.xp6(1),e.Q6J("value",n.data.cell.type),e.xp6(1),e.Q6J("ngIf",n.data.table===n.tableType.data),e.xp6(1),e.Q6J("ngIf",!(n.data.table===n.tableType.data&&n.data.type===n.cellType.column)),e.xp6(1),e.Q6J("ngIf",!(n.data.table===n.tableType.data&&n.data.type===n.cellType.column)),e.xp6(1),e.Q6J("value",n.columnType.timestamp),e.xp6(1),e.hij(" ",e.lcZ(17,17,"table.property-column-timestamp"),""),e.xp6(2),e.Q6J("ngIf",n.data.cell.type===n.columnType.timestamp),e.xp6(1),e.Q6J("ngIf",n.data.type===n.cellType.row&&n.data.cell.type===n.columnType.label),e.xp6(1),e.Q6J("ngIf",n.data.cell.type===n.columnType.variable),e.xp6(1),e.Q6J("ngIf",n.data.cell.type===n.columnType.variable||n.data.cell.type===n.columnType.device),e.xp6(3),e.Oqu(e.lcZ(25,19,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(28,21,"dlg.ok")))},dependencies:[l.O5,I,et,$i,Nr,Yn,Qr,Kr,Ir,Zn,fo,$u,zr,Ni.X$]})}return r})();var yD=function(r){return r[r.column=0]="column",r[r.row=1]="row",r}(yD||{});function _fe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell")(1,"div",18)(2,"span",19),e._uU(3),e.qZA(),e.TgZ(4,"span",20),e._uU(5),e.qZA()(),e.TgZ(6,"button",21)(7,"mat-icon"),e._uU(8,"more_vert"),e.qZA()(),e.TgZ(9,"mat-menu",22,23)(11,"button",24),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onEditColumn(n))}),e.TgZ(12,"mat-icon"),e._uU(13,"edit"),e.qZA(),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"button",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw();return e.KtG(o.onMoveColumnLeft(n))}),e.TgZ(17,"mat-icon"),e._uU(18,"west"),e.qZA(),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"button",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw();return e.KtG(o.onMoveColumnRight(n))}),e.TgZ(22,"mat-icon"),e._uU(23,"east"),e.qZA(),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"button",24),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onRemoveColumn(n))}),e.TgZ(27,"mat-icon"),e._uU(28,"delete"),e.qZA(),e._uU(29),e.ALo(30,"translate"),e.qZA()()()}if(2&r){const t=e.MAs(10),i=e.oxw().index,n=e.oxw();e.xp6(3),e.hij("",n.getColumnType(i)," "),e.xp6(2),e.hij("",n.getColumnSetting(i)," "),e.xp6(1),e.Q6J("matMenuTriggerFor",t),e.xp6(3),e.Q6J("overlapTrigger",!1),e.xp6(5),e.hij(" ",e.lcZ(15,10,"table.customize-column-edit")," "),e.xp6(2),e.Q6J("disabled",0===i),e.xp6(3),e.hij(" ",e.lcZ(20,12,"table.customize-column-left")," "),e.xp6(2),e.Q6J("disabled",i===n.displayedColumns.length-1),e.xp6(3),e.hij(" ",e.lcZ(25,14,"table.customize-column-right")," "),e.xp6(5),e.hij(" ",e.lcZ(30,16,"table.customize-column-remove")," ")}}function vfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",28)(1,"button",29),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(2,"mat-icon"),e._uU(3,"more_vert"),e.qZA()(),e.TgZ(4,"mat-menu",null,30)(6,"button",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(2);return e.KtG(o.onMoveRowUp(n))}),e.TgZ(7,"mat-icon"),e._uU(8,"arrow_upward"),e.qZA(),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"button",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(2);return e.KtG(o.onMoveRowDown(n))}),e.TgZ(12,"mat-icon"),e._uU(13,"arrow_downward"),e.qZA(),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"button",24),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw(2);return e.KtG(o.onRemoveRow(n))}),e.TgZ(17,"mat-icon"),e._uU(18,"delete"),e.qZA(),e._uU(19),e.ALo(20,"translate"),e.qZA()()()}if(2&r){const t=e.MAs(5),i=e.oxw().$implicit,n=e.oxw(2);e.xp6(1),e.Q6J("matMenuTriggerFor",t),e.xp6(5),e.Q6J("disabled",0===n.dataSource.data.indexOf(i)),e.xp6(3),e.hij(" ",e.lcZ(10,6,"table.customize-row-up")," "),e.xp6(2),e.Q6J("disabled",n.dataSource.data.indexOf(i)===n.dataSource.data.length-1),e.xp6(3),e.hij(" ",e.lcZ(15,8,"table.customize-row-down")," "),e.xp6(5),e.hij(" ",e.lcZ(20,10,"table.customize-row-remove")," ")}}function yfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell"),e.YNc(1,vfe,21,12,"mat-cell",26),e.TgZ(2,"div",18)(3,"span",19),e._uU(4),e.qZA(),e.TgZ(5,"span",20),e._uU(6),e.qZA()(),e.TgZ(7,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw().$implicit,c=e.oxw();return e.KtG(c.onEditCell(o,s))}),e.ALo(8,"translate"),e.TgZ(9,"mat-icon"),e._uU(10,"edit"),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw(),n=i.index,o=i.$implicit,s=e.oxw();e.xp6(1),e.Q6J("ngIf",0===n),e.xp6(3),e.hij("",s.getCellType(t[o])," "),e.xp6(2),e.hij("",s.getCellSetting(t[o])," "),e.xp6(1),e.s9C("matTooltip",e.lcZ(8,4,"table.customize-cell-edit"))}}function wfe(r,a){1&r&&(e.ynx(0,15),e.YNc(1,_fe,31,18,"mat-header-cell",16),e.YNc(2,yfe,11,6,"mat-cell",17),e.BQk()),2&r&&e.Q6J("matColumnDef",a.$implicit)}function Cfe(r,a){1&r&&e._UZ(0,"mat-header-row",31)}function bfe(r,a){1&r&&e._UZ(0,"mat-row")}function xfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",32)(1,"button",10),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddRow())}),e.ALo(2,"translate"),e.TgZ(3,"mat-icon"),e._uU(4,"add_circle_outline"),e.qZA()()()}2&r&&(e.xp6(1),e.s9C("matTooltip",e.lcZ(2,1,"table.customize-row-add")))}let Bfe=(()=>{class r{dialog;dialogRef;data;tableType=Tt.Nd;displayedColumns=[];dataSource=new Nn([]);constructor(t,i,n){this.dialog=t,this.dialogRef=i,this.data=n}ngOnInit(){this.loadData()}loadData(){this.displayedColumns=this.data.columns.map(i=>i.id);let t=[];this.data.rows.forEach(i=>{let n={};i.cells.forEach(o=>{o&&(n[o.id]=o)}),t.push(n)}),this.data.type===Tt.Nd.data&&(this.dataSource.data=t)}onAddColumn(){this.onEditColumn()}onAddRow(){let t=[];this.data.columns.forEach(i=>{t.push(new Tt.pj(i.id,i.type))}),this.data.rows.push(new Tt.SC(t)),this.loadData()}onEditColumn(t){let i=this.data.columns.findIndex(s=>s.id===t),n=new Tt.Dw(ii.cQ.getShortGUID("c_"),Tt.v7.label);i>=0&&(n=this.data.columns[i]),this.dialog.open(wN,{data:{table:this.data.type,type:yD.column,cell:JSON.parse(JSON.stringify(n))},position:{top:"60px"}}).afterClosed().subscribe(s=>{if(s){let c=this.data.columns.findIndex(g=>g.id===s.cell.id);c>=0?this.data.columns[c]=s.cell:this.data.columns.push(s.cell),this.loadData()}})}onEditCell(t,i){const n=this.dataSource.data.indexOf(t,0);let o=this.data.columns.findIndex(g=>g.id===i),s=this.data.rows[n].cells[o];s||(s=new Tt.pj(i,Tt.v7.label)),this.dialog.open(wN,{data:{table:this.data.type,type:yD.row,cell:JSON.parse(JSON.stringify(s))},position:{top:"60px"}}).afterClosed().subscribe(g=>{if(g){this.data.rows[n].cells[o]=g.cell;const B=this.dataSource.data.slice();B[n][i]=g.cell,this.dataSource.data=B}})}onRemoveColumn(t){this.data.columns.splice(this.data.columns.findIndex(i=>i.id===t),1),this.ngOnInit()}onRemoveRow(t){const i=this.dataSource.data.indexOf(t,0);this.data.rows.splice(i,1);const n=this.dataSource.data.slice();n.splice(i,1),this.dataSource.data=n}getColumnType(t){return this.getCellType(this.data.columns[t])}getColumnSetting(t){return this.data.columns[t].label||""}getCellType(t){return t?`${t.type?t.type:""}`:""}getCellSetting(t){if(t){if(t.type===Tt.v7.label)return t.label||"";if(t.type===Tt.v7.timestamp)return t.valueFormat?t.valueFormat:"";if(t.type===Tt.v7.variable)return(t.label||"")+(t.valueFormat?` (${t.valueFormat})`:"");if(t.type===Tt.v7.device)return t.label||""}return""}onMoveColumnLeft(t){t>0&&([this.data.columns[t-1],this.data.columns[t]]=[this.data.columns[t],this.data.columns[t-1]],this.data.rows.forEach(i=>{[i.cells[t-1],i.cells[t]]=[i.cells[t],i.cells[t-1]]}),this.loadData())}onMoveColumnRight(t){t{[i.cells[t+1],i.cells[t]]=[i.cells[t],i.cells[t+1]]}),this.loadData())}onMoveRowUp(t){const i=this.dataSource.data.indexOf(t);if(i>0){const n=this.data.rows[i];this.data.rows[i]=this.data.rows[i-1],this.data.rows[i-1]=n,this.loadData()}}onMoveRowDown(t){const i=this.dataSource.data.indexOf(t);if(i{if(t.cells.lengththis.data.columns.length){let i=this.data.columns.map(o=>o.id),n=t.cells.filter(o=>i.indexOf(o.id)>=0);t.cells=n}}),this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-table-customizer"]],decls:25,vars:17,consts:[[2,"position","relative"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],["matSort","",1,"customer-table",2,"min-width","900px","height","500px","display","block",3,"dataSource"],["table",""],[3,"matColumnDef",4,"ngFor","ngForOf"],["class","data-table-header",4,"matHeaderRowDef"],[4,"matRowDef","matRowDefColumns"],[1,"toolbox-column"],["mat-icon-button","",3,"matTooltip","click"],["class","toolbox-row",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","","cdkFocusInitial","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"matColumnDef"],[4,"matHeaderCellDef"],[4,"matCellDef"],[1,"data-table-cell"],[2,"display","block","font-size","12px"],[2,"display","block"],["mat-icon-button","",1,"column-options",3,"matMenuTriggerFor"],[3,"overlapTrigger"],["optionsgMenu",""],["mat-menu-item","",1,"table-menu-item",3,"click"],["mat-menu-item","",1,"table-menu-item",3,"disabled","click"],["class","data-table-edit-row",4,"ngIf"],["mat-icon-button","",1,"column-options",3,"matTooltip","click"],[1,"data-table-edit-row"],["mat-icon-button","",1,"row-options",3,"matMenuTriggerFor","click"],["rowMenu","matMenu"],[1,"data-table-header"],[1,"toolbox-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"mat-table",4,5),e.YNc(9,wfe,3,1,"ng-container",6),e.YNc(10,Cfe,1,0,"mat-header-row",7),e.YNc(11,bfe,1,0,"mat-row",8),e.qZA(),e.TgZ(12,"div",9)(13,"button",10),e.NdJ("click",function(){return n.onAddColumn()}),e.ALo(14,"translate"),e.TgZ(15,"mat-icon"),e._uU(16,"add_circle_outline"),e.qZA()()(),e.YNc(17,xfe,5,3,"div",11),e.qZA(),e.TgZ(18,"div",12)(19,"button",13),e.NdJ("click",function(){return n.onNoClick()}),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"button",14),e.NdJ("click",function(){return n.onOkClick()}),e._uU(23),e.ALo(24,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,9,"table.customize-title")),e.xp6(5),e.Q6J("dataSource",n.dataSource),e.xp6(2),e.Q6J("ngForOf",n.displayedColumns),e.xp6(1),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns),e.xp6(2),e.s9C("matTooltip",e.lcZ(14,11,"table.customize-column-add")),e.xp6(4),e.Q6J("ngIf",n.data.type===n.tableType.data),e.xp6(3),e.Oqu(e.lcZ(21,13,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(24,15,"dlg.ok")))},dependencies:[l.sg,l.O5,Yn,Qr,Kr,Ir,Zn,zc,Hc,cc,As,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Cs,zr,Ni.X$],styles:["[_nghost-%COMP%] .toolbox-column[_ngcontent-%COMP%]{z-index:1000;position:absolute;right:10px;top:40px}[_nghost-%COMP%] .toolbox-column[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .toolbox-row[_ngcontent-%COMP%]{z-index:1000;position:absolute;left:0;bottom:-50px}[_nghost-%COMP%] .toolbox-row[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .data-table-header[_ngcontent-%COMP%]{min-height:0px}[_nghost-%COMP%] .column-options[_ngcontent-%COMP%]{margin-left:10px;margin-right:20px}[_nghost-%COMP%] .data-table-edit-row[_ngcontent-%COMP%]{max-width:40px;min-width:40px;width:40px;height:40px;padding-left:0;padding-right:0;margin-left:-24px}[_nghost-%COMP%] .data-table-cell[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden}[_nghost-%COMP%] .variable-input[_ngcontent-%COMP%]{display:block;margin-top:10px}[_nghost-%COMP%] .table-menu-item[_ngcontent-%COMP%]{font-size:14px} .table-menu-item .mat-icon{font-size:20px}"]})}return r})();function Efe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",20),e.NdJ("change",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.onAlarmColumChanged(s,n.checked))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("checked",-1!==(null==i.data.columns?null:i.data.columns.indexOf(t))),e.xp6(1),e.hij(" ",e.lcZ(2,2,"alarms.view-"+t)," ")}}function Mfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",20),e.NdJ("change",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.onAlarmTypeChanged(s,n.checked))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("checked",-1!==i.alarmsFilter.priority.indexOf(t)),e.xp6(1),e.hij(" ",e.lcZ(2,2,"alarm.property-"+t)," ")}}function Dfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-list-item",21)(1,"mat-icon",22),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.removeFilterTag(s))}),e._uU(2,"delete"),e.qZA(),e.TgZ(3,"div",23)(4,"span"),e._uU(5),e.qZA()(),e.TgZ(6,"div",24)(7,"span"),e._uU(8),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(5),e.Oqu(i.getDeviceTagName(t)),e.xp6(3),e.Oqu(i.getDeviceName(t))}}let Tfe=(()=>{class r{dialog;projectService;dialogRef;data;alarmsColumns=Eb.filter(t=>t!==hD.history);historyColumns=pD.filter(t=>t!==SP.history);alarmPriorityType=[Sd.HIGH_HIGH,Sd.HIGH,Sd.LOW,Sd.INFO];tableType=Tt.Nd;alarmsFilter={priority:[],text:"",group:"",tagIds:[]};constructor(t,i,n,o){this.dialog=t,this.projectService=i,this.dialogRef=n,this.data=o,this.alarmsFilter.priority=this.data.filter?.filterA||[],this.alarmsFilter.text=this.data.filter?.filterB[0],this.alarmsFilter.group=this.data.filter?.filterB[1],this.alarmsFilter.tagIds=this.data.filter?.filterC||[]}onAlarmColumChanged(t,i){let n=this.data.columns.indexOf(t);i?-1===n&&this.data.columns.push(t):this.data.columns.splice(n,1)}onAlarmTypeChanged(t,i){let n=this.alarmsFilter.priority.indexOf(t);i?-1===n&&this.alarmsFilter.priority.push(t):this.alarmsFilter.priority.splice(n,1)}removeFilterTag(t){const i=this.alarmsFilter.tagIds.indexOf(t);i>-1&&this.alarmsFilter.tagIds.splice(i,1)}getDeviceTagName(t){return this.projectService.getTagFromId(t)?.name}getDeviceName(t){return this.projectService.getDeviceFromTagId(t)?.name}onAddTags(){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:null,multiSelection:!0,variablesId:this.alarmsFilter.tagIds,deviceFilter:[Yi.Yi.internal]}}).afterClosed().subscribe(i=>{i&&(this.alarmsFilter.tagIds=i.variablesId||[])})}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.filter={filterA:this.alarmsFilter.priority||[],filterB:[this.alarmsFilter.text,this.alarmsFilter.group],filterC:this.alarmsFilter.tagIds||[]},this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-table-alarms"]],decls:50,vars:32,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",1,"container"],[1,"my-form-field","alarm-column","mt10"],[3,"checked","change",4,"ngFor","ngForOf"],[1,"block","alarm-filter","mt20"],[1,"my-form-field","alarm-priority","block","mt10"],[1,"block","mt10"],[1,"my-form-field","inbk"],["type","text",2,"width","400px",3,"ngModel","ngModelChange"],[1,"my-form-field","inbk","ml10"],["type","text",2,"width","250px",3,"ngModel","ngModelChange"],[1,"my-form-field","alarm-tags","block","mt10"],["mat-icon-button","",1,"add-tags",3,"click"],[1,"list"],[1,"list-panel"],["class","list-item",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"checked","change"],[1,"list-item"],[1,"list-item-remove",2,"color","gray","font-size","20px",3,"click"],[1,"list-item-text","list-item-name"],[1,"list-item-text","list-item-label"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div")(8,"div",3)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.YNc(12,Efe,3,4,"mat-checkbox",4),e.qZA(),e.TgZ(13,"div",5)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"div",6)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.YNc(21,Mfe,3,4,"mat-checkbox",4),e.qZA(),e.TgZ(22,"div",7)(23,"div",8)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"input",9),e.NdJ("ngModelChange",function(s){return n.alarmsFilter.text=s}),e.qZA()(),e.TgZ(28,"div",10)(29,"span"),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"input",11),e.NdJ("ngModelChange",function(s){return n.alarmsFilter.group=s}),e.qZA()()(),e.TgZ(33,"div",12)(34,"span"),e._uU(35),e.ALo(36,"translate"),e.qZA(),e.TgZ(37,"button",13),e.NdJ("click",function(){return n.onAddTags()}),e.TgZ(38,"mat-icon"),e._uU(39,"add_circle_outline"),e.qZA()(),e.TgZ(40,"mat-list",14)(41,"div",15),e.YNc(42,Dfe,9,2,"mat-list-item",16),e.qZA()()()()()(),e.TgZ(43,"div",17)(44,"button",18),e.NdJ("click",function(){return n.onNoClick()}),e._uU(45),e.ALo(46,"translate"),e.qZA(),e.TgZ(47,"button",19),e.NdJ("click",function(){return n.onOkClick()}),e._uU(48),e.ALo(49,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,14,"table.alarms-title")),e.xp6(8),e.Oqu(e.lcZ(11,16,"table.alarm-columns")),e.xp6(2),e.Q6J("ngForOf",n.data.type===n.tableType.alarms?n.alarmsColumns:n.historyColumns),e.xp6(3),e.Oqu(e.lcZ(16,18,"table.alarm-filter")),e.xp6(4),e.Oqu(e.lcZ(20,20,"table.alarm-priority")),e.xp6(2),e.Q6J("ngForOf",n.alarmPriorityType),e.xp6(4),e.Oqu(e.lcZ(26,22,"alarm.property-text")),e.xp6(2),e.Q6J("ngModel",n.alarmsFilter.text),e.xp6(3),e.Oqu(e.lcZ(31,24,"alarm.property-group")),e.xp6(2),e.Q6J("ngModel",n.alarmsFilter.group),e.xp6(3),e.Oqu(e.lcZ(36,26,"table.alarm-tags")),e.xp6(7),e.Q6J("ngForOf",n.alarmsFilter.tagIds),e.xp6(3),e.Oqu(e.lcZ(46,28,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(49,30,"dlg.ok")))},dependencies:[l.sg,I,et,$i,Yn,Bh,Qr,Kr,Ir,Zn,mg,hp,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{min-width:680px;min-height:400px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-column[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{font-size:14px;margin:7px 30px 7px 10px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-priority[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{font-size:14px;margin:7px 30px 7px 10px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-filter[_ngcontent-%COMP%]{font-size:16px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .add-tags[_ngcontent-%COMP%]{float:right}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-panel[_ngcontent-%COMP%]{height:200px;overflow-x:hidden}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]{display:block;font-size:14px;height:26px!important;overflow:hidden;padding-left:10px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item-text[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item-remove[_ngcontent-%COMP%]{width:20px;max-width:20px;cursor:pointer}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item-name[_ngcontent-%COMP%]{width:50%;max-width:50%}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .alarm-tags[_ngcontent-%COMP%] .list-item-label[_ngcontent-%COMP%]{width:50%;max-width:50%}"]})}return r})();function Ife(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",15),e.NdJ("change",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.onReportColumChanged(s,n.checked))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("checked",-1!==(null==i.data.columns?null:i.data.columns.indexOf(t))),e.xp6(1),e.hij(" ",e.lcZ(2,2,"table.report-view-"+t)," ")}}let kfe=(()=>{class r{dialog;projectService;dialogRef;data;reportsColumns=LP;reportsFilter={name:"",count:""};constructor(t,i,n,o){this.dialog=t,this.projectService=i,this.dialogRef=n,this.data=o,this.reportsFilter.name=this.data.filter?.filterA[0],this.reportsFilter.count=this.data.filter?.filterA[1]}onReportColumChanged(t,i){let n=this.data.columns.indexOf(t);i?-1===n&&this.data.columns.push(t):this.data.columns.splice(n,1)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.filter={filterA:[this.reportsFilter.name,this.reportsFilter.count]},this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-table-reports"]],decls:35,vars:24,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",1,"container"],[1,"block","reports-column","mt10"],[1,"my-form-field","report-column"],[3,"checked","change",4,"ngFor","ngForOf"],[1,"block","report-filter","mt20"],[1,"block","mt10"],[1,"my-form-field","inbk"],["type","text",2,"width","300px",3,"ngModel","ngModelChange"],[1,"my-form-field","inbk","ml10"],["type","number",2,"width","100px",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"checked","change"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"div",4)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.YNc(12,Ife,3,4,"mat-checkbox",5),e.qZA()(),e.TgZ(13,"div",6)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"div",7)(18,"div",8)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"input",9),e.NdJ("ngModelChange",function(s){return n.reportsFilter.name=s}),e.qZA()(),e.TgZ(23,"div",10)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"input",11),e.NdJ("ngModelChange",function(s){return n.reportsFilter.count=s}),e.qZA()()()()(),e.TgZ(28,"div",12)(29,"button",13),e.NdJ("click",function(){return n.onNoClick()}),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"button",14),e.NdJ("click",function(){return n.onOkClick()}),e._uU(33),e.ALo(34,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,10,"table.reports-title")),e.xp6(8),e.Oqu(e.lcZ(11,12,"table.report-columns")),e.xp6(2),e.Q6J("ngForOf",n.reportsColumns),e.xp6(3),e.Oqu(e.lcZ(16,14,"table.report-filter")),e.xp6(5),e.Oqu(e.lcZ(21,16,"table.report-filter-name")),e.xp6(2),e.Q6J("ngModel",n.reportsFilter.name),e.xp6(3),e.Oqu(e.lcZ(26,18,"table.report-filter-count")),e.xp6(2),e.Q6J("ngModel",n.reportsFilter.count),e.xp6(3),e.Oqu(e.lcZ(31,20,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(34,22,"dlg.ok")))},dependencies:[l.sg,I,qn,et,$i,Yn,Bh,Qr,Kr,Ir,Zn,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{min-width:680px;min-height:400px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .report-column[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{font-size:14px;margin:7px 30px 7px 10px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .report-filter[_ngcontent-%COMP%]{font-size:16px}"]})}return r})();const Qfe=["grptabs"];function Sfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Pfe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",36)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",37),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.lastRange=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.YNc(6,Sfe,2,2,"mat-option",38),e.ALo(7,"enumToArray"),e.qZA()(),e.TgZ(8,"div",39)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-slide-toggle",23),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.realtime=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,5,"table.property-date-last-range")),e.xp6(2),e.Q6J("value",t.options.lastRange),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,7,t.lastRangeType)),e.xp6(4),e.Oqu(e.lcZ(11,9,"table.property-type-with-realtime")),e.xp6(2),e.Q6J("ngModel",t.options.realtime)}}function Ffe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",40),e._UZ(1,"div",12),e.TgZ(2,"div",22)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"mat-slide-toggle",23),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.filter.show=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.qZA()(),e._UZ(7,"div",12),e.TgZ(8,"div",22)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-slide-toggle",23),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.paginator.show=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.qZA()(),e._UZ(13,"div",12),e.TgZ(14,"div",22)(15,"span"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"mat-slide-toggle",23),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.options.daterange.show=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,6,"table.property-filter")),e.xp6(2),e.Q6J("ngModel",t.options.filter.show),e.xp6(4),e.Oqu(e.lcZ(11,8,"table.property-paginator")),e.xp6(2),e.Q6J("ngModel",t.options.paginator.show),e.xp6(4),e.Oqu(e.lcZ(17,10,"table.property-daterange")),e.xp6(2),e.Q6J("ngModel",t.options.daterange.show)}}function Ofe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41)(1,"div",42)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",43),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.label=n)}),e.qZA()(),e.TgZ(6,"div",14)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",43),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)}),e.qZA()(),e.TgZ(11,"div",44)(12,"div",45)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",37),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.align=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.TgZ(17,"mat-option",11),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"mat-option",11),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"mat-option",11),e._uU(24),e.ALo(25,"translate"),e.qZA()()(),e._UZ(26,"div",46),e.TgZ(27,"div",14)(28,"span"),e._uU(29),e.ALo(30,"translate"),e.qZA(),e.TgZ(31,"input",47),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.width=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())})("keyup.enter",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.qZA()()()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,16,"table.property-column-name")),e.xp6(2),e.Q6J("ngModel",t.label)("disabled",!0),e.xp6(3),e.Oqu(e.lcZ(9,18,"table.property-column-type")),e.xp6(2),e.Q6J("ngModel",t.type)("disabled",!0),e.xp6(4),e.Oqu(e.lcZ(15,20,"table.property-column-align")),e.xp6(2),e.Q6J("value",t.align),e.xp6(1),e.Q6J("value",i.alignType.left),e.xp6(1),e.Oqu(e.lcZ(19,22,"table.cell-align-left")),e.xp6(2),e.Q6J("value",i.alignType.center),e.xp6(1),e.Oqu(e.lcZ(22,24,"table.cell-align-center")),e.xp6(2),e.Q6J("value",i.alignType.right),e.xp6(1),e.Oqu(e.lcZ(25,26,"table.cell-align-right")),e.xp6(5),e.Oqu(e.lcZ(30,28,"table.property-column-width")),e.xp6(2),e.Q6J("ngModel",t.width)}}function Lfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"shapes.event-"+t)," ")}}function Rfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Yfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function Nfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",65),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)})("change",function(){e.CHM(t);const n=e.oxw(4);return e.KtG(n.onTableChanged())}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-script-param-value")),e.xp6(2),e.Q6J("ngModel",t.value)}}function Ufe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",66)(1,"app-flex-device-tag",67),e.NdJ("onchange",function(){e.CHM(t);const n=e.oxw(4);return e.KtG(n.onTableChanged())}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("variableId",t.value)}}function zfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",6)(1,"div",60)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",61),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)})("change",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onTableChanged())}),e.qZA()(),e.YNc(6,Nfe,5,4,"div",62),e.YNc(7,Ufe,2,1,"div",63),e.qZA()}if(2&r){const t=a.$implicit;e.xp6(3),e.Oqu(e.lcZ(4,6,"gauges.property-event-script-param-name")),e.xp6(2),e.s9C("matTooltip",t.name),e.Q6J("ngModel",t.name)("disabled",!0),e.xp6(1),e.Q6J("ngIf","value"===t.type),e.xp6(1),e.Q6J("ngIf","tagid"===t.type)}}function Hfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",57)(1,"div",58)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",37),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return e.KtG(s.onScriptChanged(n.value,o))}),e.YNc(6,Yfe,2,2,"mat-option",38),e.ALo(7,"async"),e.qZA()(),e.YNc(8,zfe,8,8,"div",59),e.qZA()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,4,"gauges.property-event-script")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",e.lcZ(7,6,i.scripts$)),e.xp6(2),e.Q6J("ngForOf",t.actoptions.params)}}function Gfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",48)(1,"div",49)(2,"div",50)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"mat-select",37),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onTableChanged())}),e.YNc(7,Lfe,3,4,"mat-option",38),e.qZA()(),e.TgZ(8,"div",51)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-select",52),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.action=n)})("change",function(){const o=e.CHM(t).$implicit;return e.KtG(o.actparam="")})("selectionChange",function(){const o=e.CHM(t).$implicit,s=e.oxw();return o.actparam="",e.KtG(s.onTableChanged())}),e.YNc(13,Rfe,2,2,"mat-option",38),e.ALo(14,"enumToArray"),e.qZA()(),e.TgZ(15,"div",53)(16,"button",54),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemoveEvent(o))}),e.TgZ(17,"mat-icon"),e._uU(18,"clear"),e.qZA()()()(),e.TgZ(19,"div",55),e.YNc(20,Hfe,9,8,"div",56),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,8,"gauges.property-event-type")),e.xp6(2),e.Q6J("value",t.type),e.xp6(1),e.Q6J("ngForOf",i.eventType),e.xp6(3),e.Oqu(e.lcZ(11,10,"gauges.property-event-action")),e.xp6(2),e.Q6J("value",t.action),e.xp6(1),e.Q6J("ngForOf",e.lcZ(14,12,i.selectActionType)),e.xp6(6),e.Q6J("ngSwitch",t.action),e.xp6(1),e.Q6J("ngSwitchCase",i.actionRunScript)}}let Zfe=(()=>{class r{dialog;projectService;translateService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}grptabs;tableTypeCtrl=new li;options=Ib.DefaultOptions();tableType=Tt.Nd;columnType=Tt.v7;alignType=Tt.dm;lastRangeType=Tt.rC;defaultColor=ii.cQ.defaultColor;destroy$=new An.x;property;eventType=[ii.cQ.getEnumKey(Tt.KQ,Tt.KQ.select)];selectActionType={};actionRunScript=ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript);scripts$;constructor(t,i,n){this.dialog=t,this.projectService=i,this.translateService=n,this.selectActionType[ii.cQ.getEnumKey(Tt.$q,Tt.$q.onRunScript)]=this.translateService.instant(Tt.$q.onRunScript)}ngOnInit(){Object.keys(this.lastRangeType).forEach(t=>{this.translateService.get(this.lastRangeType[t]).subscribe(i=>{this.lastRangeType[t]=i})}),this._reload(),this.scripts$=(0,lr.of)(this.projectService.getScripts()).pipe((0,On.R)(this.destroy$))}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}_reload(){this.property=this.data.settings.property,this.property?(this.tableTypeCtrl.setValue(this.property.type),this.options=Object.assign(this.options,Ib.DefaultOptions(),this.property.options)):this.ngOnInit()}onTableChanged(){this.property.options=JSON.parse(JSON.stringify(this.options)),this.property.type=this.tableTypeCtrl.value,this.onPropChanged.emit(this.data.settings)}onCustomize(){this.isAlarmsType()?this.customizeAlarmsTable():this.isReportsType()?this.customizeReportsTable():this.customizeTable()}customizeTable(){this.dialog.open(Bfe,{data:{columns:JSON.parse(JSON.stringify(this.options.columns)),rows:JSON.parse(JSON.stringify(this.options.rows)),type:this.property.type},position:{top:"60px"}}).afterClosed().subscribe(i=>{i&&(this.options.columns=i.columns,this.options.rows=i.rows,this.onTableChanged())})}customizeAlarmsTable(){this.dialog.open(Tfe,{data:{columns:this.options.alarmsColumns.map(i=>i.id),filter:JSON.parse(JSON.stringify(this.options.alarmFilter)),type:this.property.type},position:{top:"60px"}}).afterClosed().subscribe(i=>{if(i){let n=[];i.columns.forEach(o=>{const s=this.options.alarmsColumns.find(c=>c.id===o);n.push(s||new Tt.Dw(o,Tt.v7.label,this.translateService.instant("alarms.view-"+o)))}),this.options.alarmsColumns=n,this.property.type===Tt.Nd.alarms?this.options.alarmsColumns=this.options.alarmsColumns.sort((o,s)=>Eb.indexOf(o.id)-Eb.indexOf(s.id)):this.property.type===Tt.Nd.alarmsHistory&&(this.options.alarmsColumns=this.options.alarmsColumns.sort((o,s)=>pD.indexOf(o.id)-pD.indexOf(s.id))),this.options.alarmFilter=i.filter,this.onTableChanged()}})}customizeReportsTable(){this.dialog.open(kfe,{data:{columns:this.options.reportsColumns.map(i=>i.id),filter:JSON.parse(JSON.stringify(this.options.reportFilter)),type:this.property.type},position:{top:"60px"}}).afterClosed().subscribe(i=>{if(i){let n=[];i.columns.forEach(o=>{const s=this.options.reportsColumns.find(c=>c.id===o);n.push(s||new Tt.Dw(o,Tt.v7.label,this.translateService.instant("table.report-view-"+o)))}),this.options.reportsColumns=n.sort((o,s)=>LP.indexOf(o.id)-LP.indexOf(s.id)),this.options.reportFilter=i.filter,this.onTableChanged()}})}onAddEvent(){const t=new Tt.F$;this.addEvent(t)}addEvent(t){this.property.events||(this.property.events=[]),this.property.events.push(t)}getColumns(){return this.isAlarmsType()?this.options.alarmsColumns:this.isReportsType()?this.options.reportsColumns:this.options.columns}isAlarmsType(){return this.property.type===Tt.Nd.alarms||this.property.type===Tt.Nd.alarmsHistory}isReportsType(){return this.property.type===Tt.Nd.reports}onRemoveEvent(t){this.property.events.splice(t,1),this.onTableChanged()}onScriptChanged(t,i){const n=this.projectService.getScripts();if(i&&n){let o=n.find(s=>s.id===t);i.actoptions[Wo.ug]=[],o&&o.parameters&&(i.actoptions[Wo.ug]=ii.cQ.clone(o.parameters))}this.onTableChanged()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(Ni.sK))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-table-property"]],viewQuery:function(i,n){if(1&i&&e.Gf(Qfe,5),2&i){let o;e.iGM(o=e.CRH())&&(n.grptabs=o.first)}},inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:144,vars:183,consts:[[1,"element-property"],[1,"element-property-title"],[1,"table-selection"],[2,"height","100%"],[3,"label"],[1,"element-property-header"],[1,"block","mt5"],[1,"my-form-field","section-item","section-item-block"],["type","text",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","table-type","mt5"],[3,"formControl","selectionChange"],[3,"value"],[1,"section-inline-margin2"],[4,"ngIf"],[1,"my-form-field","section-inline-number"],["numberOnly","","type","number","min","0","max","100",3,"ngModel","ngModelChange","change","keyup.enter"],["numberOnly","","type","number","min","8","max","30",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-inline-color","color-field","ml5"],[1,"input-color",2,"width","88px",3,"colorPicker","cpAlphaChannel","cpPresetColors","cpOKButton","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButtonText","cpOKButtonClass","cpPosition","colorPickerChange"],[1,"my-form-field","section-inline-color","color-field","ml15"],[1,"my-form-field","section-inline-color","color-field"],[1,"section-inline-margin"],[1,"my-form-field","section-inline-toggle","slider-field"],["color","primary",3,"ngModel","ngModelChange","change"],["style","display: inline-block;",4,"ngIf"],[1,"section-newline"],[2,"position","relative"],[1,"tab-columns-rows"],["grptabs",""],["class","cell-item column-item",4,"ngFor","ngForOf"],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],[1,"events-toolbox"],["mat-icon-button","",3,"click"],[1,"events-section"],["class","event-item",4,"ngFor","ngForOf"],[1,"my-form-field","inbk","data-range"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","inbk","tac","data-realtime"],[2,"display","inline-block"],[1,"cell-item","column-item"],[1,"my-form-field","section-inline"],["type","text",3,"ngModel","disabled","ngModelChange"],[1,"section-item-newline"],[1,"my-form-field","section-inline-type"],[1,"section-inline-margin",2,"margin-right","3px"],["numberOnly","","type","number","min","40",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"event-item"],[1,"block"],[1,"my-form-field","inbk","mr10","event-type"],[1,"my-form-field","inbk","ml10","event-action"],[3,"value","valueChange","change","selectionChange"],[1,"item-remove","inbk","event-remove"],["mat-icon-button","",1,"remove",3,"click"],[1,"mt5","event-action-ext",3,"ngSwitch"],["class","block event-script",4,"ngSwitchCase"],[1,"block","event-script"],[1,"my-form-field","inbk","script-selection"],["class","block mt5",4,"ngFor","ngForOf"],[1,"my-form-field","inbk","event-script-param"],["type","text","readonly","",3,"ngModel","matTooltip","disabled","ngModelChange","change"],["class","my-form-field inbk event-script-value",4,"ngIf"],["class","my-form-field inbk event-script-tag",4,"ngIf"],[1,"my-form-field","inbk","event-script-value"],["type","text",3,"ngModel","ngModelChange","change"],[1,"my-form-field","inbk","event-script-tag"],[1,"block","mt5","item-device-tag",3,"variableId","onchange"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"mat-tab-group",3)(6,"mat-tab",4),e.ALo(7,"translate"),e.TgZ(8,"div",5)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA()(),e.TgZ(12,"div",6)(13,"div",7)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",8),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s})("change",function(){return n.onTableChanged()})("keyup.enter",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(18,"div",9)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",10),e.NdJ("selectionChange",function(){return n.onTableChanged()}),e.TgZ(23,"mat-option",11),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"mat-option",11),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"mat-option",11),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"mat-option",11),e._uU(33),e.ALo(34,"translate"),e.qZA()()(),e._UZ(35,"div",12),e.YNc(36,Pfe,13,11,"ng-container",13),e.qZA(),e.TgZ(37,"div",5)(38,"span"),e._uU(39),e.ALo(40,"translate"),e.qZA()(),e.TgZ(41,"div",6)(42,"div",14)(43,"span"),e._uU(44),e.ALo(45,"translate"),e.qZA(),e.TgZ(46,"input",15),e.NdJ("ngModelChange",function(s){return n.options.header.height=s})("change",function(){return n.onTableChanged()})("keyup.enter",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(47,"div",14)(48,"span"),e._uU(49),e.ALo(50,"translate"),e.qZA(),e.TgZ(51,"input",16),e.NdJ("ngModelChange",function(s){return n.options.header.fontSize=s})("change",function(){return n.onTableChanged()})("keyup.enter",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(52,"div",17)(53,"span"),e._uU(54),e.ALo(55,"translate"),e.qZA(),e.TgZ(56,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.header.background=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(57,"div",19)(58,"span"),e._uU(59),e.ALo(60,"translate"),e.qZA(),e.TgZ(61,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.header.color=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()()(),e.TgZ(62,"div",5)(63,"span"),e._uU(64),e.ALo(65,"translate"),e.qZA()(),e.TgZ(66,"div",6)(67,"div",14)(68,"span"),e._uU(69),e.ALo(70,"translate"),e.qZA(),e.TgZ(71,"input",15),e.NdJ("ngModelChange",function(s){return n.options.row.height=s})("change",function(){return n.onTableChanged()})("keyup.enter",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(72,"div",14)(73,"span"),e._uU(74),e.ALo(75,"translate"),e.qZA(),e.TgZ(76,"input",16),e.NdJ("ngModelChange",function(s){return n.options.row.fontSize=s})("change",function(){return n.onTableChanged()})("keyup.enter",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(77,"div",17)(78,"span"),e._uU(79),e.ALo(80,"translate"),e.qZA(),e.TgZ(81,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.row.background=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(82,"div",19)(83,"span"),e._uU(84),e.ALo(85,"translate"),e.qZA(),e.TgZ(86,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.row.color=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(87,"div",19)(88,"span"),e._uU(89),e.ALo(90,"translate"),e.qZA(),e.TgZ(91,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.gridColor=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()()(),e.TgZ(92,"div",5)(93,"span"),e._uU(94),e.ALo(95,"translate"),e.qZA()(),e.TgZ(96,"div",6)(97,"div",20)(98,"span"),e._uU(99),e.ALo(100,"translate"),e.qZA(),e.TgZ(101,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.selection.background=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()(),e.TgZ(102,"div",19)(103,"span"),e._uU(104),e.ALo(105,"translate"),e.qZA(),e.TgZ(106,"input",18),e.NdJ("colorPickerChange",function(s){return n.options.selection.color=s})("colorPickerChange",function(){return n.onTableChanged()}),e.qZA()()(),e.TgZ(107,"div",5)(108,"span"),e._uU(109),e.ALo(110,"translate"),e.qZA()(),e.TgZ(111,"div",6),e._UZ(112,"div",21),e.TgZ(113,"div",22)(114,"span"),e._uU(115),e.ALo(116,"translate"),e.qZA(),e.TgZ(117,"mat-slide-toggle",23),e.NdJ("ngModelChange",function(s){return n.options.header.show=s})("change",function(){return n.onTableChanged()}),e.qZA()(),e.YNc(118,Ffe,19,12,"div",24),e.qZA(),e.TgZ(119,"div",25),e._uU(120,"\xa0"),e.qZA(),e.TgZ(121,"div",26)(122,"mat-tab-group",27,28)(124,"mat-tab",4),e.ALo(125,"translate"),e.TgZ(126,"div",25),e._uU(127,"\xa0"),e.qZA(),e.YNc(128,Ofe,32,30,"div",29),e.qZA()(),e.TgZ(129,"div",30)(130,"button",31),e.NdJ("click",function(){return n.onCustomize()}),e.ALo(131,"translate"),e.TgZ(132,"mat-icon"),e._uU(133,"edit"),e.qZA()()()()(),e.TgZ(134,"mat-tab",4),e.ALo(135,"translate"),e.TgZ(136,"div",25),e._uU(137,"\xa0"),e.qZA(),e.TgZ(138,"div",32)(139,"button",33),e.NdJ("click",function(){return n.onAddEvent()}),e.TgZ(140,"mat-icon"),e._uU(141,"add_circle_outline"),e.qZA()()(),e.TgZ(142,"div",34),e.YNc(143,Gfe,21,14,"div",35),e.qZA()()()()()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,127,"table.property-title")," "),e.xp6(4),e.s9C("label",e.lcZ(7,129,"editor.settings-general")),e.xp6(4),e.Oqu(e.lcZ(11,131,"table.property-data")),e.xp6(5),e.Oqu(e.lcZ(16,133,"table.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(21,135,"table.property-type")),e.xp6(2),e.Q6J("formControl",n.tableTypeCtrl),e.xp6(1),e.Q6J("value",n.tableType.data),e.xp6(1),e.Oqu(e.lcZ(25,137,"table.property-type-data")),e.xp6(2),e.Q6J("value",n.tableType.history),e.xp6(1),e.Oqu(e.lcZ(28,139,"table.property-type-history")),e.xp6(2),e.Q6J("value",n.tableType.alarms),e.xp6(1),e.Oqu(e.lcZ(31,141,"table.property-type-alarms")),e.xp6(2),e.Q6J("value",n.tableType.reports),e.xp6(1),e.Oqu(e.lcZ(34,143,"table.property-type-reports")),e.xp6(3),e.Q6J("ngIf",n.tableTypeCtrl.value===n.tableType.history),e.xp6(3),e.Oqu(e.lcZ(40,145,"table.property-header")),e.xp6(5),e.Oqu(e.lcZ(45,147,"table.property-header-height")),e.xp6(2),e.Q6J("ngModel",n.options.header.height),e.xp6(3),e.Oqu(e.lcZ(50,149,"table.property-header-fontSize")),e.xp6(2),e.Q6J("ngModel",n.options.header.fontSize),e.xp6(3),e.Oqu(e.lcZ(55,151,"table.property-header-background")),e.xp6(2),e.Udp("background",n.options.header.background),e.Q6J("colorPicker",n.options.header.background)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(60,153,"table.property-header-color")),e.xp6(2),e.Udp("background",n.options.header.color),e.Q6J("colorPicker",n.options.header.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(65,155,"table.property-row")),e.xp6(5),e.Oqu(e.lcZ(70,157,"table.property-row-height")),e.xp6(2),e.Q6J("ngModel",n.options.row.height),e.xp6(3),e.Oqu(e.lcZ(75,159,"table.property-row-fontSize")),e.xp6(2),e.Q6J("ngModel",n.options.row.fontSize),e.xp6(3),e.Oqu(e.lcZ(80,161,"table.property-row-background")),e.xp6(2),e.Udp("background",n.options.row.background),e.Q6J("colorPicker",n.options.row.background)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(85,163,"table.property-row-color")),e.xp6(2),e.Udp("background",n.options.row.color),e.Q6J("colorPicker",n.options.row.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(90,165,"table.property-grid-color")),e.xp6(2),e.Udp("background",n.options.gridColor),e.Q6J("colorPicker",n.options.gridColor)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(95,167,"table.property-selection")),e.xp6(5),e.Oqu(e.lcZ(100,169,"table.property-row-background")),e.xp6(2),e.Udp("background",n.options.selection.background),e.Q6J("colorPicker",n.options.selection.background)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(105,171,"table.property-row-color")),e.xp6(2),e.Udp("background",n.options.selection.color),e.Q6J("colorPicker",n.options.selection.color)("cpAlphaChannel","always")("cpPresetColors",n.defaultColor)("cpOKButton",!0)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass")("cpPosition","auto"),e.xp6(3),e.Oqu(e.lcZ(110,173,"table.property-layout")),e.xp6(6),e.Oqu(e.lcZ(116,175,"table.property-header")),e.xp6(2),e.Q6J("ngModel",n.options.header.show),e.xp6(1),e.Q6J("ngIf",n.tableTypeCtrl.value===n.tableType.history||n.tableTypeCtrl.value===n.tableType.alarmsHistory),e.xp6(6),e.s9C("label",e.lcZ(125,177,"table.property-cols")),e.xp6(4),e.Q6J("ngForOf",n.getColumns()),e.xp6(2),e.s9C("matTooltip",e.lcZ(131,179,"table.property-customize-tooltip")),e.xp6(4),e.s9C("label",e.lcZ(135,181,"editor.settings-events")),e.xp6(9),e.Q6J("ngForOf",null==n.property?null:n.property.events))},dependencies:[l.sg,l.O5,l.RF,l.n9,I,qn,et,$n,Er,$i,ca,Nr,Yn,Zn,fo,bc,NA,DA,Cs,$A,Xv,fs,l.Ov,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .table-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px);padding-top:5px}[_nghost-%COMP%] .table-selection[_ngcontent-%COMP%] .table-type[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .table-selection[_ngcontent-%COMP%] .data-range[_ngcontent-%COMP%]{width:100px}[_nghost-%COMP%] .table-selection[_ngcontent-%COMP%] .data-realtime[_ngcontent-%COMP%]{width:100px}[_nghost-%COMP%] .section-item[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .section-item-newline[_ngcontent-%COMP%]{margin-top:5px}[_nghost-%COMP%] .section-newline[_ngcontent-%COMP%]{height:8px;display:block}[_nghost-%COMP%] .section-item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .section-inline-name[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:140px}[_nghost-%COMP%] .section-inline-number[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{max-width:100px}[_nghost-%COMP%] .section-inline-type[_ngcontent-%COMP%]{width:160px}[_nghost-%COMP%] .section-inline-toggle[_ngcontent-%COMP%]{display:inline-block;width:60px;text-align:center}[_nghost-%COMP%] .section-inline-toggle[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:inherit}[_nghost-%COMP%] .section-inline-toggle-ext[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:85px;text-align:left}[_nghost-%COMP%] .section-inline-toggle-ext[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{padding-left:20px}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%]{display:inline-block;width:60px}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:60px!important;text-align:center}[_nghost-%COMP%] .section-inline-color[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:65px}[_nghost-%COMP%] .section-inline-margin[_ngcontent-%COMP%]{display:inline-block;width:12px}[_nghost-%COMP%] .section-inline-margin2[_ngcontent-%COMP%]{display:inline-block;width:16px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{z-index:1000;position:absolute;right:10px;top:-8px;line-height:44px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .mat-tab-label{height:34px!important;min-width:110px!important;width:110px!important}[_nghost-%COMP%] .tab-columns-rows[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .cell-item[_ngcontent-%COMP%]{padding-top:5px;padding-bottom:5px;border-bottom:1px solid var(--toolboxBorder)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%]{display:contents}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-item[_ngcontent-%COMP%]{margin-top:5px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-type[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-action[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-remove[_ngcontent-%COMP%]{float:right}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-action-ext[_ngcontent-%COMP%]{padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.1)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%]{padding-left:10px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .script-selection[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .event-script-param[_ngcontent-%COMP%]{width:120px}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .event-script-value[_ngcontent-%COMP%]{width:calc(100% - 120px)}[_nghost-%COMP%] .events-section[_ngcontent-%COMP%] .event-script[_ngcontent-%COMP%] .event-script-tag[_ngcontent-%COMP%]{width:calc(100% - 125px)}[_nghost-%COMP%] .events-toolbox[_ngcontent-%COMP%]{display:block;width:100%}[_nghost-%COMP%] .events-toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}"]})}return r})();const Jfe=["menuTriggerButton"],jfe=["menuTriggerEl"];function Vfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",6),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.onSelect(o.path))}),e._UZ(1,"img",7),e.TgZ(2,"mat-icon",8),e._uU(3," more_vert "),e.qZA(),e.TgZ(4,"mat-menu",9,10)(6,"button",11),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.onRemoveWidget(o))}),e._uU(7),e.ALo(8,"translate"),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.MAs(5),n=e.oxw(3);e.ekj("selected",n.selectedWidgetPath===t.path),e.s9C("matTooltip",t.name),e.xp6(1),e.hYB("src","",n.rootPath,"/",t.path,"",e.LSH),e.s9C("id",t.path),e.xp6(1),e.Q6J("matMenuTriggerFor",i),e.xp6(5),e.Oqu(e.lcZ(8,8,"widget.remove"))}}function Wfe(r,a){if(1&r&&e.YNc(0,Vfe,9,10,"div",5),2&r){const t=e.oxw().$implicit;e.Q6J("ngForOf",t.items)}}function Kfe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-expansion-panel",2),e.NdJ("opened",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.expandedGroups[o.name]=!0)})("closed",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.expandedGroups[o.name]=!1)}),e.TgZ(1,"mat-expansion-panel-header",3)(2,"mat-panel-title"),e._uU(3),e.qZA(),e._UZ(4,"mat-panel-description"),e.qZA(),e.YNc(5,Wfe,1,1,"ng-template",4),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("expanded",i.expandedGroups[t.name]),e.xp6(3),e.hij(" ",t.name," ")}}let qfe=(()=>{class r{libWidgetService;toastNotifier;rcgiService;resourceWidgets$;selectedWidgetPath;destroy$=new An.x;rootPath="";contextMenuWidget=null;expandedGroups={};menuTrigger;triggerButtonRef;constructor(t,i,n){this.libWidgetService=t,this.toastNotifier=i,this.rcgiService=n,this.rootPath=this.rcgiService.rcgi.endPointConfig}ngOnInit(){this.resourceWidgets$=this.libWidgetService.resourceWidgets$,this.libWidgetService.clearSelection$.pipe((0,On.R)(this.destroy$)).subscribe(()=>{this.clearSelection()})}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onSelect(t){this.selectedWidgetPath=t,this.libWidgetService.widgetSelected(`${this.rootPath}/${t}`)}clearSelection(){this.selectedWidgetPath=null}onRemoveWidget(t){this.libWidgetService.removeWidget(t).subscribe(()=>{this.libWidgetService.refreshResources()},i=>{console.error("Remove failed:",i),this.toastNotifier.notifyError("msg.file-download-failed",i.message||i)})}static \u0275fac=function(i){return new(i||r)(e.Y36(vN),e.Y36(vD.o),e.Y36(yv))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-lib-widgets"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Jfe,5),e.Gf(jfe,5,e.SBq)),2&i){let o;e.iGM(o=e.CRH())&&(n.menuTrigger=o.first),e.iGM(o=e.CRH())&&(n.triggerButtonRef=o.first)}},decls:3,vars:3,consts:[["multi","true"],["class","resource-widgets-panel","togglePosition","before",3,"expanded","opened","closed",4,"ngFor","ngForOf"],["togglePosition","before",1,"resource-widgets-panel",3,"expanded","opened","closed"],[1,"resource-widgets-header"],["matExpansionPanelContent",""],["class","lib-widget-item",3,"selected","matTooltip","click",4,"ngFor","ngForOf"],[1,"lib-widget-item",3,"matTooltip","click"],[3,"src","id"],["aria-label","More",3,"matMenuTriggerFor"],[1,"item-menu"],["menuview","matMenu"],["mat-menu-item","",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"mat-accordion",0),e.YNc(1,Kfe,6,2,"mat-expansion-panel",1),e.ALo(2,"async"),e.qZA()),2&i&&(e.xp6(1),e.Q6J("ngForOf",e.lcZ(2,1,n.resourceWidgets$)))},dependencies:[l.sg,qm,hg,dp,Df,Dh,tc,Zn,zc,Hc,cc,Cs,l.Ov,Ni.X$],styles:["[_nghost-%COMP%] .resource-widgets-panel[_ngcontent-%COMP%]{background-color:var(--toolboxBackground);color:var(--toolboxColor);font-size:11px;margin:unset}[_nghost-%COMP%] .resource-widgets-header[_ngcontent-%COMP%]{max-height:23px;text-align:center;vertical-align:middle;padding-left:8px;padding-right:8px;border-top:1px solid var(--toolboxBorder);box-shadow:0 1px 3px #000;font-size:11px}[_nghost-%COMP%] .resource-widgets-header[_ngcontent-%COMP%] mat-panel-title[_ngcontent-%COMP%]{display:contents}[_nghost-%COMP%] .resource-images-header[_ngcontent-%COMP%]:enabled .resource-images-header[_ngcontent-%COMP%]::selection{color:#fff}[_nghost-%COMP%] .lib-widget-item[_ngcontent-%COMP%]{display:inline-block;padding:3px;margin:2px;position:relative}[_nghost-%COMP%] .lib-widget-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:85px;height:85px;min-width:50px;cursor:pointer}[_nghost-%COMP%] .lib-widget-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute;bottom:4px;right:4px;font-size:16px;cursor:pointer;height:unset;width:unset}[_nghost-%COMP%] .selected[_ngcontent-%COMP%]{background-color:#bdbdbd}[_nghost-%COMP%] .lib-widget-item[_ngcontent-%COMP%]:hover{background-color:#b6b6b64d}"]})}return r})();function Xfe(r,a){if(1&r&&(e.TgZ(0,"mat-option",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"panel.property-scalemode-"+t.value)," ")}}let $fe=(()=>{class r{data;onPropChanged=new e.vpe;set reload(t){this._reload()}property;scaleMode=Tt.r8;constructor(){}ngOnInit(){this._reload()}onPropertyChanged(){this.onPropChanged.emit(this.data.settings)}onTagChanged(t){this.data.settings.property.variableId=t.variableId,this.onPropertyChanged()}_reload(){this.data.settings.property||(this.data.settings.property={viewName:null,variableId:null,scaleMode:null}),this.property=this.data.settings.property}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["app-panel-property"]],inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:29,vars:22,consts:[[1,"element-property"],[1,"element-property-title"],[1,"panel-selection"],[1,"element-property-header"],[1,"my-form-field","section-item","section-item-block"],["type","text",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"my-form-field","section-item","section-item-block","mt5"],[1,"block","mt5","item-device-tag",3,"variableId","onchange"],[3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"section-newline"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"div",3)(6,"span"),e._uU(7),e.ALo(8,"translate"),e.qZA()(),e.TgZ(9,"div")(10,"div",4)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"input",5),e.NdJ("ngModelChange",function(s){return n.data.settings.name=s})("change",function(){return n.onPropertyChanged()})("keyup.enter",function(){return n.onPropertyChanged()}),e.qZA()(),e.TgZ(15,"div",6)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"input",5),e.NdJ("ngModelChange",function(s){return n.property.viewName=s})("change",function(){return n.onPropertyChanged()})("keyup.enter",function(){return n.onPropertyChanged()}),e.qZA()(),e.TgZ(20,"app-flex-device-tag",7),e.NdJ("onchange",function(s){return n.onTagChanged(s)}),e.qZA(),e.TgZ(21,"div",6)(22,"span"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"mat-select",8),e.NdJ("valueChange",function(s){return n.property.scaleMode=s})("selectionChange",function(){return n.onPropertyChanged()}),e.YNc(26,Xfe,3,4,"mat-option",9),e.ALo(27,"enumToArray"),e.qZA()(),e._UZ(28,"div",10),e.qZA()()()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,10,"editor.controls-panel-settings")," "),e.xp6(5),e.Oqu(e.lcZ(8,12,"panel.property-data")),e.xp6(5),e.Oqu(e.lcZ(13,14,"panel.property-name")),e.xp6(2),e.Q6J("ngModel",n.data.settings.name),e.xp6(3),e.Oqu(e.lcZ(18,16,"panel.property-view-name")),e.xp6(2),e.Q6J("ngModel",n.property.viewName),e.xp6(1),e.Q6J("variableId",n.property.variableId),e.xp6(3),e.Oqu(e.lcZ(24,18,"panel.property-scalemode")),e.xp6(2),e.Q6J("value",n.property.scaleMode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(27,20,n.scaleMode)))},dependencies:[l.sg,I,et,$i,Nr,fo,Xv,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .panel-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px)}[_nghost-%COMP%] .section-item[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .section-item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%], [_nghost-%COMP%] mat-select[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .item-device-tag[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})(),eme=(()=>{class r{el;oldY=0;isGrabbing=!1;resizeZoneHeight=6;height;heightChange=new e.vpe;changeEnd=new e.vpe;constructor(t){this.el=t}onMouseMove(t){if(this.isGrabbing);else{const i=this.el.nativeElement.getBoundingClientRect();this.el.nativeElement.style.cursor=t.clientY-i.top>=i.height-this.resizeZoneHeight?"ns-resize":"default"}}onMouseDown(t){const i=this.el.nativeElement.getBoundingClientRect();t.clientY-i.top>=i.height-this.resizeZoneHeight&&(this.isGrabbing=!0,this.oldY=t.clientY,window.addEventListener("mousemove",this.resizeHandler),window.addEventListener("mouseup",this.releaseHandler),t.preventDefault())}resizeHandler=t=>{this.isGrabbing&&(this.height+=t.clientY-this.oldY,this.height=Math.max(50,this.height),this.heightChange.emit(this.height),this.oldY=t.clientY)};releaseHandler=()=>{this.isGrabbing&&(this.isGrabbing=!1,this.changeEnd.emit(),window.removeEventListener("mousemove",this.resizeHandler),window.removeEventListener("mouseup",this.releaseHandler))};ngOnDestroy(){window.removeEventListener("mousemove",this.resizeHandler),window.removeEventListener("mouseup",this.releaseHandler)}static \u0275fac=function(i){return new(i||r)(e.Y36(e.SBq))};static \u0275dir=e.lG2({type:r,selectors:[["","appResize",""]],hostBindings:function(i,n){1&i&&e.NdJ("mousemove",function(s){return n.onMouseMove(s)})("mousedown",function(s){return n.onMouseDown(s)})},inputs:{height:"height"},outputs:{heightChange:"heightChange",changeEnd:"changeEnd"}})}return r})();function tme(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"br"),e.qZA())}function ime(r,a){1&r&&(e.TgZ(0,"mat-icon",12),e.ALo(1,"translate"),e._uU(2," wysiwyg "),e.qZA()),2&r&&e.s9C("matTooltip",e.lcZ(1,1,"editor.view-svg"))}function nme(r,a){1&r&&(e.TgZ(0,"mat-icon",13),e.ALo(1,"translate"),e._uU(2," grid_view "),e.qZA()),2&r&&e.s9C("matTooltip",e.lcZ(1,1,"editor.view-cards"))}function rme(r,a){1&r&&(e.TgZ(0,"mat-icon",14),e.ALo(1,"translate"),e._uU(2," map "),e.qZA()),2&r&&e.s9C("matTooltip",e.lcZ(1,1,"editor.view-maps"))}function ome(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",10),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onCloneView(n))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"editor.view-clone")))}function ame(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",10),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onExportView(n))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"editor.view-export")))}function sme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",10),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onCleanView(n))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"editor.view-clean")))}const lme=function(r){return{"leftbar-item-active":r}};function cme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",2),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onSelectView(o,!1))}),e.YNc(1,ime,3,3,"mat-icon",3),e.YNc(2,nme,3,3,"mat-icon",4),e.YNc(3,rme,3,3,"mat-icon",5),e.TgZ(4,"span",6),e._uU(5),e.qZA(),e.TgZ(6,"mat-icon",7),e._uU(7," more_vert "),e.qZA(),e.TgZ(8,"mat-menu",8,9)(10,"button",10),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onDeleteView(o))}),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"button",10),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onRenameView(o))}),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"button",10),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onPropertyView(o))}),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.YNc(19,ome,3,3,"button",11),e.YNc(20,ame,3,3,"button",11),e.YNc(21,sme,3,3,"button",11),e.qZA()()}if(2&r){const t=a.$implicit,i=e.MAs(9),n=e.oxw();e.Q6J("ngClass",e.VKq(18,lme,n.isViewActive(t))),e.xp6(1),e.Q6J("ngIf",!t.type||t.type===n.svgViewType),e.xp6(1),e.Q6J("ngIf",t.type===n.cardViewType),e.xp6(1),e.Q6J("ngIf",t.type===n.mapsViewType),e.xp6(2),e.hij(" ",t.name," "),e.xp6(1),e.Q6J("matMenuTriggerFor",i),e.xp6(5),e.Oqu(e.lcZ(12,12,"editor.view-delete")),e.xp6(3),e.Oqu(e.lcZ(15,14,"editor.view-rename")),e.xp6(3),e.Oqu(e.lcZ(18,16,"editor.view-property")),e.xp6(2),e.Q6J("ngIf",t.type!==n.cardViewType&&t.type!==n.mapsViewType),e.xp6(1),e.Q6J("ngIf",t.type!==n.cardViewType&&t.type!==n.mapsViewType),e.xp6(1),e.Q6J("ngIf",t.type!==n.cardViewType&&t.type!==n.mapsViewType)}}let Ame=(()=>{class r{projectService;translateService;dialog;views=[];set select(t){this.currentView=t}selected=new e.vpe;viewPropertyChanged=new e.vpe;cloneView=new e.vpe;currentView=null;cardViewType=Tt.bW.cards;svgViewType=Tt.bW.svg;mapsViewType=Tt.bW.maps;constructor(t,i,n){this.projectService=t,this.translateService=i,this.dialog=n}onSelectView(t,i=!0){!i&&this.currentView?.id===t?.id||(this.currentView=t,this.selected.emit(this.currentView))}getViewsSorted(){return this.views.sort((t,i)=>t.name>i.name?1:-1)}isViewActive(t){return this.currentView&&this.currentView.name===t.name}onDeleteView(t){let i="";this.translateService.get("msg.view-remove",{value:t.name}).subscribe(o=>{i=o}),this.dialog.open(qu,{position:{top:"60px"},data:{msg:this.translateService.instant("msg.view-remove",{value:t.name})}}).afterClosed().subscribe(o=>{if(o&&this.views){let c=null;for(var s=0;s0&&s0&&this.onSelectView(this.views[0]),this.projectService.removeView(t)}})}onRenameView(t){let i=this.views.filter(o=>o.id!==t.id).map(o=>o.name);this.dialog.open(Tv,{disableClose:!0,position:{top:"60px"},data:{title:this.translateService.instant("dlg.docname-title"),name:t.name,exist:i}}).afterClosed().subscribe(o=>{o&&o.name&&(t.name=o.name,this.projectService.setView(t,!1))})}onPropertyView(t){this.dialog.open(_N,{position:{top:"60px"},disableClose:!0,data:{name:t.name,type:t.type||Tt.bW.svg,profile:t.profile,property:t.property}}).afterClosed().subscribe(n=>{n?.profile&&(n.profile.height&&(t.profile.height=parseInt(n.profile.height)),n.profile.width&&(t.profile.width=parseInt(n.profile.width)),n.profile.margin>=0&&(t.profile.margin=parseInt(n.profile.margin)),t.profile.bkcolor=n.profile.bkcolor,n.property?.events&&(t.property??={events:[],actions:[]},t.property.events=n.property.events),this.viewPropertyChanged.emit(t),this.onSelectView(t))})}onCloneView(t){this.cloneView.emit(t)}onExportView(t){let i=`${t.name}.json`,n=JSON.stringify(t),o=new Blob([n],{type:"text/plain;charset=utf-8"});uD.saveAs(o,i)}onCleanView(t){this.projectService.cleanView(t)&&this.onSelectView(t)}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(Ni.sK),e.Y36(xo))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-editor-views-list"]],inputs:{views:"views",select:"select"},outputs:{selected:"selected",viewPropertyChanged:"viewPropertyChanged",cloneView:"cloneView"},decls:2,vars:2,consts:[[4,"ngIf"],["class","leftbar-item pointer",3,"ngClass","click",4,"ngFor","ngForOf"],[1,"leftbar-item","pointer",3,"ngClass","click"],["class","leftbar-item-type item-icon-view",3,"matTooltip",4,"ngIf"],["class","leftbar-item-type item-icon-cards",3,"matTooltip",4,"ngIf"],["class","leftbar-item-type item-icon-maps",3,"matTooltip",4,"ngIf"],[1,"view-item-text"],["aria-label","More",3,"matMenuTriggerFor"],[1,"leftbar-item-menu"],["menuview","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"leftbar-item-type","item-icon-view",3,"matTooltip"],[1,"leftbar-item-type","item-icon-cards",3,"matTooltip"],[1,"leftbar-item-type","item-icon-maps",3,"matTooltip"]],template:function(i,n){1&i&&(e.YNc(0,tme,2,0,"div",0),e.YNc(1,cme,22,20,"div",1)),2&i&&(e.Q6J("ngIf",n.views&&n.views.length<=0),e.xp6(1),e.Q6J("ngForOf",n.getViewsSorted()))},dependencies:[l.mk,l.sg,l.O5,Zn,zc,Hc,cc,Cs,Ni.X$],styles:["[_nghost-%COMP%] .leftbar-item[_ngcontent-%COMP%]{padding:3px 0 1px;display:flow-root}[_nghost-%COMP%] .leftbar-item-active[_ngcontent-%COMP%]{background-color:var(--toolboxItemActiveBackground);color:var(--toolboxItemActiveColor)}[_nghost-%COMP%] .leftbar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{float:left}[_nghost-%COMP%] .leftbar-item[_ngcontent-%COMP%] .leftbar-item-type[_ngcontent-%COMP%]{float:left;padding-left:4px;font-size:16px;line-height:20px}[_nghost-%COMP%] .leftbar-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{float:right;font-size:18px}[_nghost-%COMP%] .view-item-text[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 54px)}[_nghost-%COMP%] .item-icon-view[_ngcontent-%COMP%]{color:#7cacf8}[_nghost-%COMP%] .item-icon-cards[_ngcontent-%COMP%]{color:#f8a57c}[_nghost-%COMP%] .item-icon-maps[_ngcontent-%COMP%]{color:#37be5f}"]})}return r})();function dme(r,a){if(1&r){const t=e.EpF();e.ynx(0),e._UZ(1,"img",21),e.TgZ(2,"button",22),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onClearImage())}),e.TgZ(3,"mat-icon"),e._uU(4,"clear"),e.qZA()(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(1),e.s9C("src",t.property.options.initImage,e.LSH)}}function ume(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-select",23),e.NdJ("click",function(){e.CHM(t);const n=e.MAs(3);return e.KtG(n.click())}),e.ALo(1,"translate"),e.qZA(),e.TgZ(2,"input",24,25),e.NdJ("change",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onSetImage(n))}),e.qZA()}2&r&&e.s9C("placeholder",e.lcZ(1,1,"video.property-image-placeholder"))}function hme(r,a){if(1&r&&(e.TgZ(0,"div",26)(1,"div",27)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"input",28),e.qZA(),e.TgZ(6,"div",29)(7,"div",30)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",28),e.qZA(),e.TgZ(12,"div",31)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",28),e.qZA(),e.TgZ(17,"div",32)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e._UZ(21,"input",28),e.qZA()()()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,12,"action-settings-readonly-tag")),e.xp6(2),e.Q6J("value",i.getActionTag(t))("disabled",!0),e.xp6(4),e.Oqu(e.lcZ(10,14,"gui.range-number-min")),e.xp6(2),e.Q6J("value",null==t||null==t.range?null:t.range.min)("disabled",!0),e.xp6(3),e.Oqu(e.lcZ(15,16,"gui.range-number-max")),e.xp6(2),e.Q6J("value",null==t||null==t.range?null:t.range.max)("disabled",!0),e.xp6(3),e.Oqu(e.lcZ(20,18,"gauges.property-action-type")),e.xp6(2),e.Q6J("value",i.getActionType(t))("disabled",!0)}}let pme=(()=>{class r{dialog;projectService;actionPropertyService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}property;name;devices=[];constructor(t,i,n){this.dialog=t,this.projectService=i,this.actionPropertyService=n}ngOnInit(){this.initFromInput()}initFromInput(){this.name=this.data.settings.name,this.property=this.data.settings.property||new Tt.BO,this.devices=this.projectService.getDeviceList()}onFlexAuthChanged(t){this.name=t.name,this.property.permission=t.permission,this.property.permissionRoles=t.permissionRoles,this.onVideoChanged()}onVideoChanged(){this.data.settings.name=this.name,this.data.settings.property=this.property,this.onPropChanged.emit(this.data.settings)}onTagChanged(t){this.data.settings.property.variableId=t.variableId,this.onPropChanged.emit(this.data.settings)}getActionTag(t){let i=Yi.ef.getTagFromTagId(this.devices,t.variableId);return i?.label||i?.name}getActionType(t){return this.actionPropertyService.typeToText(t.type)}onEditActions(){this.dialog.open(yN,{disableClose:!0,data:{withActions:this.data.withActions,property:JSON.parse(JSON.stringify(this.property))},position:{top:"60px"}}).afterClosed().subscribe(i=>{i&&(this.property=i.property,this.onVideoChanged())})}onSetImage(t){const i=t.target;if(!i.files||0===i.files.length)return;const n=i.files[0],o=n.name,s=o.split(".").pop().toLowerCase(),c={type:s,name:o.split("/").pop(),data:null};let g=new FileReader;g.onload=()=>{try{c.data=g.result,this.projectService.uploadFile(c).subscribe(B=>{this.property.options.initImage=B.location,this.onVideoChanged()})}catch(B){console.error(B)}},"svg"===s?g.readAsText(n):g.readAsDataURL(n)}onClearImage(){this.property.options.initImage=null,this.onVideoChanged()}_reload(){this.property=this.data?.settings?.property,this.initFromInput()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(WP))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-video-property"]],inputs:{data:"data",reload:"reload"},outputs:{onPropChanged:"onPropChanged"},decls:42,vars:33,consts:[[1,"element-property"],[1,"element-property-title"],[1,"video-selection"],[2,"height","100%"],[3,"label"],[1,"element-property-header"],[1,"block","mt5"],[3,"name","permission","permissionMode","onChanged"],["flexauth",""],[1,"my-form-field","section-item","section-item-block","mt5"],["type","text",3,"ngModel","ngModelChange","change","keyup.enter"],[1,"block","mt5","item-device-tag",3,"variableId","onchange"],[1,"my-form-field","block","mt5","static-image"],[4,"ngIf","ngIfElse"],["imageVoid",""],[1,"my-form-field","block","tac","mt5","item-slider"],["color","primary",3,"ngModel","ngModelChange","change"],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],[1,"mt30"],["class","action-readonly-item",4,"ngFor","ngForOf"],[3,"src"],["mat-icon-button","",3,"click"],[3,"placeholder","click"],["type","file","accept","image/*",2,"display","none",3,"change"],["imagefile",""],[1,"action-readonly-item"],[1,"my-form-field","tag"],["type","text","readonly","",3,"value","disabled"],[1,"flex","value","mt5"],[1,"my-form-field","number","inbk"],[1,"my-form-field","number","inbk","ml5"],[1,"my-form-field","type","inbk","ml5"]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"mat-tab-group",3)(6,"mat-tab",4),e.ALo(7,"translate"),e.TgZ(8,"div",5)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA()(),e.TgZ(12,"div",6)(13,"flex-auth",7,8),e.NdJ("onChanged",function(s){return n.onFlexAuthChanged(s)}),e.qZA()(),e.TgZ(15,"div",9)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"input",10),e.NdJ("ngModelChange",function(s){return n.property.options.address=s})("change",function(){return n.onVideoChanged()})("keyup.enter",function(){return n.onVideoChanged()}),e.qZA()(),e.TgZ(20,"app-flex-device-tag",11),e.NdJ("onchange",function(s){return n.onTagChanged(s)}),e.qZA(),e.TgZ(21,"div",12)(22,"span"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.YNc(25,dme,5,1,"ng-container",13),e.YNc(26,ume,4,3,"ng-template",null,14,e.W1O),e.qZA(),e.TgZ(28,"div",15)(29,"span"),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"mat-slide-toggle",16),e.NdJ("ngModelChange",function(s){return n.property.options.showControls=s})("change",function(){return n.onVideoChanged()}),e.qZA()()(),e.TgZ(33,"mat-tab",4),e.ALo(34,"translate"),e.TgZ(35,"div",17)(36,"button",18),e.NdJ("click",function(){return n.onEditActions()}),e.ALo(37,"translate"),e.TgZ(38,"mat-icon"),e._uU(39,"edit"),e.qZA()()(),e.TgZ(40,"div",19),e.YNc(41,hme,22,20,"div",20),e.qZA()()()()()),2&i){const o=e.MAs(27);e.xp6(2),e.hij(" ",e.lcZ(3,17,"video.property-title")," "),e.xp6(4),e.s9C("label",e.lcZ(7,19,"editor.settings-general")),e.xp6(4),e.Oqu(e.lcZ(11,21,"video.property-data")),e.xp6(3),e.Q6J("name",n.name)("permission",n.property.permission)("permissionMode","onlyShow"),e.xp6(4),e.Oqu(e.lcZ(18,23,"video.property-address")),e.xp6(2),e.Q6J("ngModel",n.property.options.address),e.xp6(1),e.Q6J("variableId",n.property.variableId),e.xp6(3),e.Oqu(e.lcZ(24,25,"video.property-image")),e.xp6(2),e.Q6J("ngIf",n.property.options.initImage)("ngIfElse",o),e.xp6(5),e.Oqu(e.lcZ(31,27,"video.property-controls")),e.xp6(2),e.Q6J("ngModel",n.property.options.showControls),e.xp6(1),e.s9C("label",e.lcZ(34,29,"editor.settings-actions")),e.xp6(3),e.s9C("matTooltip",e.lcZ(37,31,"table.property-edit-actions-tooltip")),e.xp6(5),e.Q6J("ngForOf",null==n.property?null:n.property.actions)}},dependencies:[l.sg,l.O5,I,et,$i,Yn,Zn,fo,bc,NA,DA,Cs,Xv,qv,Ni.X$],styles:["[_nghost-%COMP%] .video-selection[_ngcontent-%COMP%]{position:absolute;top:35px;bottom:0;overflow:auto;width:calc(100% - 10px)}[_nghost-%COMP%] .section-item[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .section-item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .item-device-tag[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .item-slider[_ngcontent-%COMP%]{margin-left:20px;width:100px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%]{float:right;margin-bottom:3px}[_nghost-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:8px;margin-left:8px}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%]{display:block;width:100%;border-bottom:1px solid rgba(0,0,0,.1);padding:5px 0}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:inherit}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .number[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{width:50px}[_nghost-%COMP%] .action-readonly-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .type[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{width:auto}[_nghost-%COMP%] .static-image[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .static-image[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 15px)}[_nghost-%COMP%] .static-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:200px;max-height:160px}[_nghost-%COMP%] .static-image[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{float:right}[_nghost-%COMP%] .mat-tab-label{height:34px!important;min-width:110px!important;width:110px!important}"]})}return r})();function gme(r,a){1&r&&(e.TgZ(0,"mat-icon",40),e._uU(1,"lock"),e.qZA())}function fme(r,a){1&r&&(e.TgZ(0,"mat-icon",40),e._uU(1,"lock_open"),e.qZA())}function mme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",29)(1,"div",30)(2,"div",31)(3,"div",15)(4,"span"),e._uU(5),e.ALo(6,"translate"),e.qZA(),e.TgZ(7,"input",32),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)})("change",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onPropertyChanged())}),e.qZA()(),e.TgZ(8,"div",33)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"div",34),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onEditDevicePermission(o))}),e.YNc(13,gme,2,0,"mat-icon",35),e.YNc(14,fme,2,0,"ng-template",null,36,e.W1O),e.qZA()(),e.TgZ(16,"div",37)(17,"button",38),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.removeDevice(o))}),e.TgZ(18,"mat-icon"),e._uU(19,"clear"),e.qZA()()()(),e.TgZ(20,"app-flex-device-tag",39),e.NdJ("onchange",function(n){const s=e.CHM(t).index,c=e.oxw();return e.KtG(c.onTagChanged(s,n))}),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.MAs(15),n=e.oxw();e.xp6(5),e.Oqu(e.lcZ(6,7,"scheduler.property-settings-device-name")),e.xp6(2),e.Q6J("ngModel",t.name),e.xp6(3),e.Oqu(e.lcZ(11,9,"gauges.property-permission")),e.xp6(3),e.Q6J("ngIf",n.haveDevicePermission(t))("ngIfElse",i),e.xp6(4),e.Q6J("disabled",n.deviceList.length<=1),e.xp6(3),e.Q6J("variableId",t.variableId)}}function _me(r,a){1&r&&e.GkF(0)}const CN=function(r){return{action:r}};function vme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"div",41)(2,"button",42),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.removeActionOn(o))}),e.TgZ(3,"mat-icon"),e._uU(4,"clear"),e.qZA()(),e.TgZ(5,"button",42),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.addActionOn())}),e.TgZ(6,"mat-icon"),e._uU(7,"add"),e.qZA()()(),e.YNc(8,_me,1,0,"ng-container",43),e.qZA()}if(2&r){const t=a.$implicit;e.oxw();const i=e.MAs(80);e.xp6(8),e.Q6J("ngTemplateOutlet",i)("ngTemplateOutletContext",e.VKq(2,CN,t))}}function yme(r,a){1&r&&e.GkF(0)}function wme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"div",41)(2,"button",42),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.removeActionOff(o))}),e.TgZ(3,"mat-icon"),e._uU(4,"clear"),e.qZA()(),e.TgZ(5,"button",42),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.addActionOff())}),e.TgZ(6,"mat-icon"),e._uU(7,"add"),e.qZA()()(),e.YNc(8,yme,1,0,"ng-container",43),e.qZA()}if(2&r){const t=a.$implicit;e.oxw();const i=e.MAs(80);e.xp6(8),e.Q6J("ngTemplateOutlet",i)("ngTemplateOutletContext",e.VKq(2,CN,t))}}function Cme(r,a){if(1&r&&(e.TgZ(0,"mat-option",53),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.name),e.xp6(1),e.hij(" ",t.name," ")}}function bme(r,a){if(1&r&&(e.TgZ(0,"mat-option",53),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function xme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",15)(2,"span"),e._uU(3,"Value"),e.qZA(),e.TgZ(4,"input",55),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().action;return e.KtG(o.actparam=n)}),e.qZA()(),e.TgZ(5,"div",56)(6,"span"),e._uU(7,"Function"),e.qZA(),e.TgZ(8,"mat-select",57),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().action;return e.KtG(o.actoptions.function=n)}),e._UZ(9,"mat-option",58),e.TgZ(10,"mat-option",59),e._uU(11,"Add"),e.qZA(),e.TgZ(12,"mat-option",60),e._uU(13,"Remove"),e.qZA()()()()}if(2&r){const t=e.oxw().action;e.xp6(4),e.Q6J("ngModel",t.actparam),e.xp6(4),e.Q6J("value",t.actoptions.function)}}function Bme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",61)(1,"flex-variable",62),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().action;return e.KtG(o.actoptions.variable=n)}),e.qZA()()}if(2&r){const t=e.oxw().action,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("value",t.actoptions.variable)("withStaticValue",!1)}}function Eme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",61)(1,"flex-variable",63),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().action;return e.KtG(o.actoptions.variable=n)}),e.qZA()()}if(2&r){const t=e.oxw().action,i=e.oxw();e.xp6(1),e.Q6J("data",i.data)("value",t.actoptions.variable)("withBitmask",!0)("bitmask",null==t.actoptions.variable?null:t.actoptions.variable.bitmask)("withStaticValue",!1)}}function Mme(r,a){if(1&r&&(e.TgZ(0,"mat-option",53),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function Dme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"span"),e._uU(2,"Value"),e.qZA(),e.TgZ(3,"input",72),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(3),e.Q6J("ngModel",t.value)}}function Tme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",15)(1,"flex-variable",73),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(3);return e.KtG(s.setScriptParam(o,n))}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(3);e.xp6(1),e.Q6J("data",i.data)("variableId",t.value)("withStaticValue",!1)}}function Ime(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",68)(1,"div",15)(2,"span"),e._uU(3,"Parameter"),e.qZA(),e.TgZ(4,"input",69),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)}),e.qZA()(),e.TgZ(5,"div",70),e.YNc(6,Dme,4,1,"div",71),e.YNc(7,Tme,2,3,"div",71),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(4),e.Q6J("ngModel",t.name)("disabled",!0),e.xp6(2),e.Q6J("ngIf","value"===t.type),e.xp6(1),e.Q6J("ngIf","tagid"===t.type)}}function kme(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",64)(2,"span"),e._uU(3,"Script"),e.qZA(),e.TgZ(4,"mat-select",65),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().action;return e.KtG(o.actparam=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw().action,s=e.oxw();return e.KtG(s.onScriptChanged(n.value,o))}),e.YNc(5,Mme,2,2,"mat-option",47),e.qZA()(),e.TgZ(6,"div",66),e.YNc(7,Ime,8,4,"div",67),e.qZA(),e.BQk()}if(2&r){const t=e.oxw().action,i=e.oxw();e.xp6(4),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.scripts),e.xp6(2),e.Q6J("ngForOf",t.actoptions.params)}}function Qme(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",44)(1,"div",45)(2,"span"),e._uU(3,"Device"),e.qZA(),e.TgZ(4,"mat-select",46),e.NdJ("valueChange",function(n){const s=e.CHM(t).action;return e.KtG(s.deviceName=n)}),e.YNc(5,Cme,2,2,"mat-option",47),e.qZA()(),e.TgZ(6,"div",48)(7,"span"),e._uU(8,"Action"),e.qZA(),e.TgZ(9,"mat-select",49),e.NdJ("valueChange",function(n){const s=e.CHM(t).action;return e.KtG(s.action=n)})("change",function(){const o=e.CHM(t).action;return e.KtG(o.actparam="")}),e.YNc(10,bme,2,2,"mat-option",47),e.ALo(11,"keyvalue"),e.qZA()()(),e.YNc(12,xme,14,2,"div",50),e.YNc(13,Bme,2,3,"div",51),e.YNc(14,Eme,2,5,"div",51),e.YNc(15,kme,8,3,"ng-container",52)}if(2&r){const t=a.action,i=e.oxw();e.xp6(4),e.Q6J("value",t.deviceName),e.xp6(1),e.Q6J("ngForOf",i.deviceList),e.xp6(4),e.Q6J("value",t.action),e.xp6(1),e.Q6J("ngForOf",e.lcZ(11,8,i.actionTypeKeys)),e.xp6(2),e.Q6J("ngIf",i.withSetValue(t.action)),e.xp6(1),e.Q6J("ngIf",i.withSetValue(t.action)),e.xp6(1),e.Q6J("ngIf",i.withToggleValue(t.action)),e.xp6(1),e.Q6J("ngIf",i.isRunScript(t.action))}}let Sme=(()=>{class r{dialog;projectService;translateService;data;onPropChanged=new e.vpe;set reload(t){this._reload()}deviceList=[];deviceActionsOn=[];deviceActionsOff=[];views=[];scripts=[];inputs=[];actionType=Tt.$q;actionTypeKeys={};property;constructor(t,i,n){this.dialog=t,this.projectService=i,this.translateService=n}ngOnInit(){this._reload()}_reload(){this.projectService&&(this.views=this.projectService.getViews(),this.scripts=this.projectService.getScripts());const t={onSetValue:this.actionType.onSetValue,onToggleValue:this.actionType.onToggleValue,onRunScript:this.actionType.onRunScript};this.translateService&&Object.keys(t).forEach(i=>{this.translateService.get(t[i]).subscribe(n=>{this.actionTypeKeys[i]=n})}),this.data.settings.name||(this.data.settings.name="scheduler_1"),this.property=this.data.settings.property||{},this.property.accentColor??="#556e82",this.property.backgroundColor??="#f0f0f0",this.property.textColor??="#505050",this.property.secondaryTextColor??="#ffffff",this.property.borderColor??="#cccccc",this.property.hoverColor??="#f5f5f5",this.property.timeFormat??="12hr",this.property.devices&&Array.isArray(this.property.devices)&&this.property.devices.length>0?this.deviceList=[...this.property.devices]:(this.deviceList=[{variableId:"",name:"Device 1"}],this.property.devices=[...this.deviceList]),this.property.deviceActions&&Array.isArray(this.property.deviceActions)?(this.deviceActionsOn=this.property.deviceActions.filter(i=>"on"===i.eventTrigger||!i.eventTrigger),this.deviceActionsOff=this.property.deviceActions.filter(i=>"off"===i.eventTrigger),this.deviceActionsOn.forEach(i=>{i.eventTrigger="on",i.actoptions||(i.actoptions={variable:{},params:[]})}),this.deviceActionsOff.forEach(i=>{i.eventTrigger="off",i.actoptions||(i.actoptions={variable:{},params:[]})})):(this.deviceActionsOn=[],this.deviceActionsOff=[]),0===this.deviceActionsOn.length&&this.addActionOn(),0===this.deviceActionsOff.length&&this.addActionOff()}addDevice(){this.deviceList.push({variableId:"",name:`Device ${this.deviceList.length+1}`}),this.data.settings.property.devices=[...this.deviceList],this.onPropChanged.emit(this.data.settings)}removeDevice(t){this.deviceList.length>1&&(this.deviceList.splice(t,1),this.data.settings.property.devices=[...this.deviceList],this.onPropChanged.emit(this.data.settings))}onFlexAuthChanged(t){this.data.settings.name=t.name,this.property.permission=t.permission,this.property.permissionRoles=t.permissionRoles,this.onPropertyChanged()}onTagChanged(t,i){i&&i.variableId&&(this.deviceList[t].variableId=i.variableId,this.onPropChanged.emit(this.data.settings))}onEditDevicePermission(t){const i=this.deviceList[t];this.dialog.open(Sv,{position:{top:"60px"},data:{permission:i.permission,permissionRoles:i.permissionRoles}}).afterClosed().subscribe(o=>{o&&(i.permission=o.permission,i.permissionRoles=o.permissionRoles)})}haveDevicePermission(t){return!!(t.permission||t.permissionRoles?.show?.length||t.permissionRoles?.enabled?.length)}onEditMasterPermission(){const t=this.data.settings.property;this.dialog.open(Sv,{position:{top:"60px"},data:{permission:t.permission,permissionRoles:t.permissionRoles}}).afterClosed().subscribe(n=>{n&&(t.permission=n.permission,t.permissionRoles=n.permissionRoles)})}haveMasterPermission(){const t=this.data.settings.property;return!!(t.permission||t.permissionRoles?.show?.length||t.permissionRoles?.enabled?.length)}onPropertyChanged(){this.data.settings.property=this.property,this.data.settings.property.devices=[...this.deviceList];const t=this.deviceActionsOn.filter(n=>n.deviceName&&n.action),i=this.deviceActionsOff.filter(n=>n.deviceName&&n.action);this.data.settings.property.deviceActions=[...t,...i],this.onPropChanged.emit(this.data.settings)}addActionOn(){this.deviceActionsOn.push({deviceName:this.deviceList[0]?.name||"",action:"",actparam:"",actoptions:{variable:{},params:[]},eventTrigger:"on"})}addActionOff(){this.deviceActionsOff.push({deviceName:this.deviceList[0]?.name||"",action:"",actparam:"",actoptions:{variable:{},params:[]},eventTrigger:"off"})}removeActionOn(t){t>-1&&t-1&&t{class r{projectService;winRef;dialog;changeDetector;translateService;gaugesManager;viewContainerRef;resolver;resourcesService;libWidgetsService;gaugePanelComponent;viewFileImportInput;cardsview;sidePanel;svgSelectorPanel;svgPreview;mapsView;svgElementSelected=null;svgElements=[];gaugeDialogType=Do;gaugeDialog={type:null,data:null};reloadGaugeDialog;colorDefault={fill:"#FFFFFF",stroke:"#000000"};fonts=Tg.fonts;isLoading=!0;editorModeType=Op;editorMode=Op.SVG;defaultColor=ii.cQ.defaultColor;colorFill=this.colorDefault.fill;colorStroke=this.colorDefault.stroke;currentView=null;hmi=new Tt.tM;currentMode="";setModeParam;imagefile;ctrlInitParams;gridOn=!1;isAnySelected=!1;selectedElement=new Tt.Uk;panelsState={enabled:!1,panelView:!0,panelViewHeight:200,panelGeneral:!0,panelC:!0,panelD:!0,panelS:!0,panelWidgets:!0};panelPropertyIdOpenState;panelPropertyTransformOpenState;panelAlignOpenState;panelFillOpenState;panelEventOpenState;panelMarkerOpenState;panelHyperlinkOpenState;gaugeSettingsHide=!1;gaugeSettingsLock=!1;dashboard;cardViewType=Tt.bW.cards;svgViewType=Tt.bW.svg;mapsViewType=Tt.bW.maps;shapesGrps=[];gaugesRef={};subscriptionSave;subscriptionLoad;destroy$=new An.x;constructor(t,i,n,o,s,c,g,B,O,ne){this.projectService=t,this.winRef=i,this.dialog=n,this.changeDetector=o,this.translateService=s,this.gaugesManager=c,this.viewContainerRef=g,this.resolver=B,this.resourcesService=O,this.libWidgetsService=ne}ngOnInit(){try{this.subscriptionSave=this.projectService.onSaveCurrent.subscribe(t=>{t===wr.JV.Current?this.onSaveProject():t===wr.JV.SaveAs?this.projectService.saveAs():t===wr.JV.Save&&this.onSaveProject(!0)}),this.gaugesManager.clearMemory()}catch(t){console.error(t)}this.libWidgetsService.svgWidgetSelected$.pipe((0,Xs.w)(t=>fetch(t).then(i=>i.text().then(n=>({content:n,widgetPath:t})))),(0,On.R)(this.destroy$)).subscribe(({content:t,widgetPath:i})=>{localStorage.setItem(i,t),this.ctrlInitParams=i,this.setMode("own_ctrl-image")})}ngAfterViewInit(){this.myInit(),this.setMode("select"),this.projectService.getHmi()&&this.loadHmi(!0),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(i=>{this.loadHmi()},i=>{console.error("Error loadHMI")}),this.changeDetector.detectChanges()}ngOnDestroy(){try{this.subscriptionSave&&this.subscriptionSave.unsubscribe(),this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch(t){console.error(t)}this.onSaveProject(),this.destroy$.next(null),this.destroy$.complete()}myInit(){try{mypathseg.initPathSeg(),mybrowser.initBrowser(),mysvgutils.initSvgutils(),myselect.initSelect(),mydraw.initDraw(),mysvgcanvas.initSvgCanvas(),mysvgeditor.initSvgEditor($,i=>{this.isAnySelected=i,this.onSelectedElement(i),this.getGaugeSettings(i),this.checkSelectedGaugeSettings()},(i,n)=>{this.onExtensionLoaded(n),this.clearSelection(),"shapes"===i&&this.setShapes()},(i,n)=>{"fill"===i?(this.colorFill=n,this.setFillColor(this.colorFill),this.checkMySelectedToSetColor(this.colorFill,null,this.winRef.nativeWindow.svgEditor.getSelectedElements())):"stroke"===i&&(this.colorStroke=n,this.checkMySelectedToSetColor(null,this.colorStroke,this.winRef.nativeWindow.svgEditor.getSelectedElements()))},i=>{let n=this.getGaugeSettings(i,this.ctrlInitParams);this.checkGaugeAdded(n),setTimeout(()=>{this.setMode("select",!1)},700),this.checkSvgElementsMap(!0)},i=>{this.onRemoveElement(i),this.checkSvgElementsMap(!0)},i=>{if(i&&i.id){let n=this.getGaugeSettings(i);this.gaugesManager.checkElementToResize(n,this.resolver,this.viewContainerRef,i.size)}},i=>{this.onCopyAndPaste(i)},()=>{this.checkSvgElementsMap(!0)}),this.winRef.nativeWindow.svgEditor.init(),$(initContextmenu)}catch(t){console.error(t)}this.setFillColor(this.colorFill),this.setFillColor(this.colorStroke)}checkSvgElementsMap(t=!1){t&&(this.svgElements=Array.from(document.querySelectorAll("g, text, line, rect, image, path, circle, ellipse")).filter(i=>i.attributes?.type?.value?.startsWith("svg-ext")||i.id?.startsWith("svg_")&&!i.parentNode?.attributes?.type?.value?.startsWith("svg-ext")).map(i=>({id:i.id,name:this.currentView.items[i.id]?.name}))),this.svgElementSelected=this.svgElements.find(i=>i.id===this.selectedElement?.id)}onSvgElementSelected(t){this.clearSelection(),this.winRef.nativeWindow.svgEditor.selectOnly([document.getElementById(t.id)],!0)}onSvgElementPreview(t){let i=document.getElementById(t.element?.id),n=i?.getBoundingClientRect();i&&n&&(this.svgPreview.nativeElement.style.width=`${n.width}px`,this.svgPreview.nativeElement.style.height=`${n.height}px`,this.svgPreview.nativeElement.style.top=`${n.top}px`,this.svgPreview.nativeElement.style.left=`${n.left}px`),this.svgPreview.nativeElement.style.display=t.preview?"flex":"none"}loadHmi(t=!1){if(this.gaugesManager.initGaugesMap(),this.currentView=null,this.hmi=this.projectService.getHmi(),this.hmi.views?.length<=0)this.hmi.views=[],this.addView(wr.Y4.MainViewName);else{let i=localStorage.getItem("@frango.webeditor.currentview");!i&&this.hmi.views.length&&(i=this.hmi.views[0].name);for(let n=0;n{i.push({name:n,shapes:t[n]})}),this.shapesGrps=i}getGaugeSettings(t,i=null){if(t&&this.currentView){if(this.currentView.items[t.id])return this.currentView.items[t.id];let n=this.gaugesManager.createSettings(t.id,t.type);return i&&(n.property=new Tt.Hy,n.property.address=i),n}return null}searchGaugeSettings(t){if(t){if(this.currentView&&this.currentView.items[t.id])return this.currentView.items[t.id];for(var i=0;iLayer 1'),this.winRef.nativeWindow.svgEditor&&(this.winRef.nativeWindow.svgEditor.setDocProperty(t.name,t.profile.width,t.profile.height,t.profile.bkcolor),this.winRef.nativeWindow.svgEditor.setSvgString(i)),this.gaugesRef={},setTimeout(()=>{for(let o in n.items){let s=this.getGaugeSettings(n.items[o]);this.checkGaugeAdded(s)}this.winRef.nativeWindow.svgEditor.refreshCanvas(),this.checkSvgElementsMap(!0),this.winRef.nativeWindow.svgEditor.resetUndoStack()},500)}else this.isCardsEditMode(this.editorMode)&&this.cardsview?(this.cardsview.view=t,this.cardsview.reload()):this.isMapsEditMode(this.editorMode)&&this.mapsView&&(this.mapsView.view=t,this.mapsView.reload())}isSvgEditMode(t){return t!==Op.CARDS&&t!==Op.MAPS}isCardsEditMode(t){return t===Op.CARDS}isMapsEditMode(t){return t===Op.MAPS}getView(t){for(var i=0;it.name>i.name?1:-1)}editCardsWidget(t){let i=this.cardsview.getWindgetViewName();t.card.data&&i.indexOf(t.card.data)>=0&&(i=i.filter(c=>c!==t.card.data));let n=Tt.bW.cards,o=this.hmi.views.filter(c=>c.type!==n&&i.indexOf(c.name)<0).map(c=>c.name);this.dialog.open(Cpe,{position:{top:"60px"},data:{item:JSON.parse(JSON.stringify(t)),views:o}}).afterClosed().subscribe(c=>{c&&(t.card=c.card,this.onSaveProject(),this.cardsview.render())})}addCard(){this.cardsview.addCardsWidget()}saveCards(t){}setMode(t,i=!0){this.currentMode=t,i&&(this.clearSelection(),this.checkFillAndStrokeColor()),this.winRef.nativeWindow.svgEditor.clickToSetMode(t)}isModeActive(t){return this.currentMode===t}clearEditor(){this.winRef.nativeWindow.svgEditor&&this.winRef.nativeWindow.svgEditor.clickClearAll()}checkFillAndStrokeColor(){this.colorFill&&this.colorStroke&&this.colorFill===this.colorStroke&&(this.setFillColor(this.colorDefault.fill),this.setStrokeColor(this.colorDefault.stroke))}onSelectedElement(t){this.selectedElement=null;try{document.activeElement!==document.body&&document.activeElement.blur()}catch{}t&&t.length<=1&&(this.selectedElement=t[0],this.selectedElement.type=t[0].type||"svg-ext-shapes-"+(this.currentMode||"default"),this.checkColors(this.selectedElement),this.checkGaugeInView(this.selectedElement)),this.checkSvgElementsMap(!1),this.sidePanel.opened&&this.sidePanel.toggle()}onExtensionLoaded(t){}onChangeFillColor(t){this.setFillColor(t),this.checkMySelectedToSetColor(this.colorFill,null,this.winRef.nativeWindow.svgEditor.getSelectedElements())}onChangeStrokeColor(t){this.setStrokeColor(t),this.checkMySelectedToSetColor(null,this.colorStroke,this.winRef.nativeWindow.svgEditor.getSelectedElements())}onCopyAndPaste(t){if(t?.copy?.length&&t?.past?.length){const i=t.copy.filter(o=>null!==o&&!o?.symbols),n=t.past.filter(o=>null!==o);if(i.length==t.past.length){let o=Object.values(this.currentView.items).map(s=>s.name);for(let s=0;s=0&&this.winRef.nativeWindow.svgEditor.setMarker(t,i)}onAlignSelected(t){this.winRef.nativeWindow.svgEditor.alignSelectedElements(t.charAt(0))}onZoomSelect(){this.winRef.nativeWindow.svgEditor.clickZoom()}onShowGrid(){this.gridOn=this.gridOn=!this.gridOn,this.winRef.nativeWindow.svgEditor.clickExtension("view_grid"),this.winRef.nativeWindow.svgEditor.enableGridSnapping(this.gridOn)}onSetImage(t){if(t.target.files){let i=t.target.files[0].name;this.imagefile="assets/images/"+t.target.files[0].name;let n={type:i.split(".").pop().toLowerCase(),name:i.split("/").pop(),data:null},o=this;if("svg"===n.type){let s=new FileReader;s.onloadend=function(c){localStorage.setItem(n.name,s.result.toString()),o.ctrlInitParams=n.name,o.setMode("own_ctrl-image")},s.readAsText(t.target.files[0])}else this.getBase64Image(t.target.files[0],function(s){o.winRef.nativeWindow.svgEditor.setUrlImageToAdd&&o.winRef.nativeWindow.svgEditor.setUrlImageToAdd(s),o.setMode("image")})}}onSetImageAsLink(t){if(t.target.files){let i=t.target.files[0].name,n={type:i.split(".").pop().toLowerCase(),name:i.split("/").pop(),data:null},o=new FileReader;this.ctrlInitParams=null,o.onload=()=>{try{n.data=o.result,this.projectService.uploadFile(n).subscribe(s=>{this.ctrlInitParams=s.location,this.setMode("own_ctrl-image")})}catch(s){console.error(s)}},"svg"===n.type?o.readAsText(t.target.files[0]):o.readAsDataURL(t.target.files[0])}}getBase64Image(t,i){var n=new FileReader;n.onload=function(){i(n.result)},n.readAsDataURL(t)}onSetStrokeOption(t){this.winRef.nativeWindow.svgEditor.setStrokeOption(t)}onSetShadowOption(t){this.winRef.nativeWindow.svgEditor.onSetShadowOption(t)}onFontFamilyChange(t){this.winRef.nativeWindow.svgEditor.setFontFamily(t)}onTextAlignChange(t){this.winRef.nativeWindow.svgEditor.setTextAlign(t)}checkMySelectedToSetColor(t,i,n){so.initElementColor(t,i,n)}checkGaugeAdded(t){this.gaugesManager.chackSetModeParamToAddedGauge(t,this.setModeParam);let i=this.gaugesManager.initElementAdded(t,this.resolver,this.viewContainerRef,!1);i&&(!0!==i&&(this.gaugesRef.hasOwnProperty(t.id)||(this.gaugesRef[t.id]={type:t.type,ref:i})),this.setGaugeSettings(t)),this.setModeParam=null}onMakeHyperlink(){this.dialog.open(S0e,{data:{url:"https://"},position:{top:"60px"}}).afterClosed().subscribe(i=>{i&&i.url&&this.winRef.nativeWindow.svgEditor.makeHyperlink(i.url)})}onStartCurrent(){this.onSaveProject(),this.winRef.nativeWindow.open("lab","MyTest","width=800,height=640,menubar=0")}onSaveProject(t=!1){this.currentView&&(this.currentView.svgcontent=this.getContent(),this.saveView(this.currentView,t))}onAddDoc(){this.dialog.open(_N,{position:{top:"60px"},data:{name:"",profile:new Tt.NI,type:Tt.bW.svg,existingNames:this.hmi.views.map(i=>i.name),newView:!0}}).afterClosed().subscribe(i=>{if(i){let n=new Tt.G7(ii.cQ.getShortGUID("v_"),i.type,i.name);n.profile=i.profile,this.hmi.views.push(n),this.onSelectView(n),this.saveView(this.currentView)}})}addView(t,i){if(this.hmi.views){let o="View_",s=1;for(s=1;s{let g=JSON.parse(s.result.toString());if(this.projectService.verifyView(g)){let B=1,O=g.name,ne=null;for(;ne=this.hmi.views.find(we=>we.name===g.name);)g.name=O+"_"+B++;g.id="v_"+ii.cQ.getShortGUID(),this.hmi.views.push(g),this.onSelectView(g),this.saveView(this.currentView)}},s.onerror=function(){alert("Unable to read "+o.files[0])},s.readAsText(o.files[0]),this.viewFileImportInput.nativeElement.value=null}loadPanelState(){let t=localStorage.getItem("@frango.webeditor.panelsState");this.panelsState.enabled=!0,t&&(this.panelsState=ii.cQ.mergeDeep(this.panelsState,JSON.parse(t)))}savePanelState(){this.panelsState.enabled&&(this.panelsState.panelViewHeight<100&&(this.panelsState.panelViewHeight=100),localStorage.setItem("@frango.webeditor.panelsState",JSON.stringify(this.panelsState)))}onInteractivityClick(t){t?.type&&so.isGauge(t.type)&&this.onGaugeEditEx()}onGaugeEdit(t){this.openEditGauge(this.gaugePanelComponent?.settings,i=>{this.setGaugeSettings(i)})}onGaugeEditEx(){setTimeout(()=>{this.gaugePanelComponent.onEdit()},500)}isWithEvents(t){return this.gaugesManager.isWithEvents(t)}isWithActions(t){return this.gaugesManager.isWithActions(t)}openEditGauge(t,i){if(!t)return;let we,$e,n=JSON.parse(JSON.stringify(t)),o=this.projectService.getHmi(),s=so.getEditDialogTypeToUse(t.type),c=so.isBitmaskSupported(t.type),g=this.isWithEvents(t.type),B=this.isWithActions(t.type),O=so.getDefaultValue(t.type),ne=Object.values(this.currentView.items).map(nt=>nt.name);if(n.name||(n.name=ii.cQ.getNextName(so.getPrefixGaugeName(t.type),ne)),s===Do.Chart)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,devices:Object.values(this.projectService.getDevices()),views:o.views,dlgType:s,charts:this.projectService.getCharts(),names:ne},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);if(s===Do.Graph)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,devices:Object.values(this.projectService.getDevices()),views:o.views,dlgType:s,graphs:this.projectService.getGraphs(),names:ne},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);if(s===Do.Iframe)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,dlgType:s,names:ne},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);if(s===Do.Gauge)we=this.dialog.open(qhe,{position:{top:"30px"},data:{settings:n,devices:Object.values(this.projectService.getDevices()),dlgType:s,names:ne}});else{if(s===Do.Pipe)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,dlgType:s,names:ne,withEvents:g,withActions:B},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);if(s===Do.Slider)we=this.dialog.open(spe,{position:{top:"60px"},data:{settings:n,devices:Object.values(this.projectService.getDevices()),withEvents:g,withActions:B,names:ne}});else if(s===Do.Switch)we=this.dialog.open(ppe,{position:{top:"60px"},data:{settings:n,devices:Object.values(this.projectService.getDevices()),withEvents:g,withActions:B,withBitmask:c,views:o.views,view:this.currentView,scripts:this.projectService.getScripts(),inputs:Object.values(this.currentView.items).filter(nt=>nt.name&&(nt.id.startsWith("HXS_")||nt.id.startsWith("HXI_"))),names:ne}});else{if(s===Do.Table||s===Do.Panel)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,dlgType:s,names:ne},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);if(s===Do.Video)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,dlgType:s,names:ne,withActions:B},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);if(s===Do.Input)we=this.dialog.open(rge,{position:{top:"60px"},disableClose:!0,data:{settings:n,devices:Object.values(this.projectService.getDevices()),withEvents:g,withActions:B,inputs:Object.values(this.currentView.items).filter(nt=>nt.name&&(nt.id.startsWith("HXS_")||nt.id.startsWith("HXI_"))),withBitmask:c,languageTextEnabled:!!this.isSelectedElementToEnableLanguageTextSettings()}});else{if(s===Do.Scheduler)return this.gaugeDialog.type=s,this.gaugeDialog.data={settings:n,devices:Object.values(this.projectService.getDevices()),withEvents:g,withActions:B,languageTextEnabled:!!this.isSelectedElementToEnableLanguageTextSettings()},this.sidePanel.opened||this.sidePanel.toggle(),void(this.reloadGaugeDialog=!this.reloadGaugeDialog);{$e=this.isSelectedElementToEnableLanguageTextSettings();let nt=this.getGaugeTitle(t.type);we=this.dialog.open(bS,{position:{top:"60px"},disableClose:!0,data:{settings:n,devices:Object.values(this.projectService.getDevices()),title:nt,views:o.views,view:this.currentView,dlgType:s,withEvents:g,withActions:B,default:O,inputs:Object.values(this.currentView.items).filter(Ft=>Ft.name&&(Ft.id.startsWith("HXS_")||Ft.id.startsWith("HXI_"))),names:ne,scripts:this.projectService.getScripts(),withBitmask:c,languageTextEnabled:!!$e}})}}}}we.afterClosed().subscribe(nt=>{nt&&(i(nt.settings),this.saveView(this.currentView),this.gaugesManager.initInEditor(nt.settings,this.resolver,this.viewContainerRef,$e),this.checkSvgElementsMap(!0))})}isSelectedElementToEnableLanguageTextSettings(){const t=this.winRef.nativeWindow.svgEditor.getSelectedElements();return"text"===t[0]?.tagName?.toLowerCase()?t[0]:null}editBindOfTags(t){if(!t)return;const i=[],n=this.winRef.nativeWindow.svgEditor.getSelectedElements(),o=new Set;if(n?.length){const c=ii.cQ.getInTreeIdAndType(n[0]);if(c?.length)for(let g=0;g{o.add(ne)}))}}this.dialog.open(xpe,{position:{top:"60px"},data:{devices:Object.values(this.projectService.getDevices()),tagsIds:Array.from(o).map(c=>({srcId:c,destId:c}))}}).afterClosed().subscribe(c=>{c?.length&&(i.forEach(g=>{c.forEach(B=>{ii.cQ.changeAttributeValue(g,"variableId",B.srcId,B.destId)})}),this.saveView(this.currentView))})}onGaugeDialogChanged(t){if(t){this.setGaugeSettings(t),this.saveView(this.currentView);let i=this.gaugesManager.initInEditor(t,this.resolver,this.viewContainerRef);i?.element&&i.element.id!==t.id&&(delete this.currentView.items[t.id],t.id=i.element.id,this.saveView(this.currentView))}}getGaugeTitle(t){return t.startsWith(ss.TypeTag)?this.translateService.instant("editor.controls-input-settings"):t.startsWith(nm.TypeTag)?this.translateService.instant("editor.controls-output-settings"):t.startsWith(dc.TypeTag)?this.translateService.instant("editor.controls-button-settings"):t.startsWith(zl.TypeTag)?this.translateService.instant("editor.controls-select-settings"):t.startsWith(iu.TypeTag)?this.translateService.instant("editor.controls-progress-settings"):t.startsWith(rh.TypeTag)?this.translateService.instant("editor.controls-semaphore-settings"):this.translateService.instant("editor.controls-shape-settings")}onAddResource(){this.dialog.open(zhe,{disableClose:!0,position:{top:"60px"}}).afterClosed().subscribe(i=>{if(i&&i){this.imagefile=i;let n=this;"svg"===this.imagefile.split(".").pop().toLowerCase()?fetch(this.imagefile).then(o=>o.text()).then(o=>{n.winRef.nativeWindow.svgEditor.setSvgImageToAdd&&n.winRef.nativeWindow.svgEditor.setSvgImageToAdd(o),n.setMode("svg-image")}):this.resourcesService.isVideo(this.imagefile)&&(this.setModeParam=this.imagefile,n.setMode("own_ctrl-video"))}})}onWidgetKiosk(){this.dialog.open(Ype,{disableClose:!0,position:{top:"60px"},width:"1020px"}).afterClosed().subscribe(i=>{i&&this.libWidgetsService.refreshResources()})}isWithShadow(){return!1}fileNew(){}checkValid(t){return!!t.views||(t.views=[],!1)}clearSelection(){this.winRef.nativeWindow.svgEditor.clearSelection()}cloneElement(){this.winRef.nativeWindow.svgEditor.clickExtension("view_grid")}onHideSelectionToggle(t){let i=this.getGaugeSettings(this.selectedElement);i&&(i.hide=t,this.setGaugeSettings(i))}onLockSelectionToggle(t){let i=this.getGaugeSettings(this.selectedElement);i&&(i.lock=t,this.setGaugeSettings(i),this.winRef.nativeWindow.svgEditor.lockSelection(i.lock))}checkSelectedGaugeSettings(){let t=this.getGaugeSettings(this.selectedElement);this.gaugeSettingsHide=t?.hide??!1,this.gaugeSettingsLock=t?.lock??!1,this.winRef.nativeWindow.svgEditor.lockSelection(t?.lock)}flipSelected(t){}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(YP),e.Y36(xo),e.Y36(e.sBO),e.Y36(Ni.sK),e.Y36(so),e.Y36(e.s_b),e.Y36(e._Vd),e.Y36(Q0),e.Y36(vN))};static \u0275cmp=e.Xpm({type:r,selectors:[["ng-component"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Pme,5),e.Gf(Fme,5),e.Gf(Ome,5),e.Gf(Lme,5),e.Gf(Rme,5),e.Gf(Yme,5),e.Gf(Nme,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.gaugePanelComponent=o.first),e.iGM(o=e.CRH())&&(n.viewFileImportInput=o.first),e.iGM(o=e.CRH())&&(n.cardsview=o.first),e.iGM(o=e.CRH())&&(n.sidePanel=o.first),e.iGM(o=e.CRH())&&(n.svgSelectorPanel=o.first),e.iGM(o=e.CRH())&&(n.svgPreview=o.first),e.iGM(o=e.CRH())&&(n.mapsView=o.first)}},decls:893,vars:511,consts:[["style","position:absolute;top:0px;left:0px;right:0px;bottom:0px;background-color:rgba(0,0,0,0.2); z-index: 99999;",4,"ngIf"],["mode","side","position","end",1,"sidepanel-selector"],["svgSelectorPanel",""],["mat-icon-button","",2,"position","absolute","top","3px","right","3px",3,"click"],["mat-icon-button","",2,"position","absolute","top","3px","right","40px",3,"click"],[3,"elements","selected","onSelect","onPreview","onEdit"],["mode","side","position","end",1,"editor-sidenav"],["sidePanel",""],[3,"ngSwitch"],[4,"ngSwitchCase"],["id","svg_editor_container"],[1,"svg-workarea-container"],["mode","side","opened","true","disableClose","",1,"svg-sidenav","leave-header-area"],["multi","true"],["hideToggle","true",1,"svg-workarea-leftbar-p",3,"expanded","opened","closed"],[1,"svg-workarea-leftbar-h"],["aria-label","Select",4,"ngIf"],["aria-label","Add","class","leftbar-edit-btn",3,"matTooltip","click",4,"ngIf"],["aria-label","Import","class","leftbar-edit-btn",3,"matTooltip","click",4,"ngIf"],["type","file","id","viewFileUpload","accept",".json",2,"display","none",3,"click","change"],["viewFileImportInput",""],["appResize","",1,"leftbar-panel","view-panel",3,"height","heightChange","changeEnd"],[3,"views","select","viewsChange","selected","viewPropertyChanged","cloneView"],[4,"ngIf"],[1,"svg-tools-fly"],["hideToggle","true","expanded","true",1,"svg-workarea-fly-p",2,"display","none",3,"opened","closed"],[1,"svg-workarea-flybar-h"],["id","_selected_panel"],[1,"_toolset"],["id","idLabel",1,"svg-property",3,"matTooltip"],["id","elem_id","data-attr","id","type","text",1,"attr_changer"],["selid",""],["id","classLabel",1,"svg-property",3,"matTooltip"],["id","elem_class","data-attr","class","type","text",1,"attr_changer"],["hideToggle","true","expanded","true",1,"svg-workarea-fly-p",3,"opened","closed"],["id","_selected_panel",1,"rightbar-panel"],["id","xy_panel",1,"_toolset"],[1,"svg-property-split2"],[1,"svg-property"],["numberOnly","","id","selected_x","type","number","size","4","data-attr","x",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","selected_y","type","number","size","4","data-attr","y",1,"attr_changer","rightbar-input",3,"matTooltip"],["id","line_panel"],["numberOnly","","id","line_x1","type","number","size","4","data-attr","x1",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","line_y1","type","number","size","4","data-attr","y1",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","line_x2","type","number","size","4","data-attr","x2",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","line_y2","type","number","size","4","data-attr","y2",1,"attr_changer","rightbar-input",3,"matTooltip"],["id","rect_panel"],[1,"svg-property",3,"matTooltip"],["numberOnly","","id","rect_width","type","number","size","4","data-attr","width",1,"attr_changer","rightbar-input"],["numberOnly","","id","rect_height","type","number","size","4","data-attr","height",1,"attr_changer","rightbar-input"],["numberOnly","","id","rect_rx","size","4","value","0","type","number","data-attr","Corner Radius",1,"rightbar-input"],["id","htmlctrl_panel"],["numberOnly","","id","htmlctrl_width","type","number","size","4","data-attr","width",1,"attr_changer","rightbar-input"],["numberOnly","","id","htmlctrl_height","type","number","size","4","data-attr","height",1,"attr_changer","rightbar-input"],["id","shape_panel"],["numberOnly","","id","shape_width","type","number","size","4","data-attr","width",1,"attr_changer","rightbar-input"],["numberOnly","","id","shape_height","type","number","size","4","data-attr","height",1,"attr_changer","rightbar-input"],["id","circle_panel"],["numberOnly","","id","circle_cx","type","number","size","4","data-attr","cx",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","circle_cy","type","number","size","4","data-attr","cy",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","circle_r","type","number","size","4","data-attr","r",1,"attr_changer","rightbar-input",3,"matTooltip"],["id","ellipse_panel"],["numberOnly","","id","ellipse_cx","type","number","size","4","data-attr","cx",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","ellipse_cy","type","number","size","4","data-attr","cy",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","ellipse_rx","type","number","size","4","data-attr","rx",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","ellipse_ry","type","number","size","4","data-attr","ry",1,"attr_changer","rightbar-input",3,"matTooltip"],["id","text_panel"],["id","font_family",1,"font-family",3,"change"],["fontfamily",""],[3,"fontFamily","value",4,"ngFor","ngForOf"],["numberOnly","","id","font_size","size","4","value","0","type","number",1,"rightbar-input",3,"matTooltip"],["id","text_anchor",1,"text-align",3,"change"],["textalign",""],["value","start"],["value","middle"],["value","end"],["id","text","type","text","size","35"],["id","image_panel"],["numberOnly","","id","image_width","type","number","size","4","data-attr","width",1,"attr_changer","rightbar-input",3,"matTooltip"],["numberOnly","","id","image_height","type","number","size","4","data-attr","height",1,"attr_changer","rightbar-input",3,"matTooltip"],[1,"svg-property",2,"display","none"],["id","image_url","type","text",1,"attr_changer",3,"matTooltip"],["id","change_image_url",2,"display","none"],["id","url_notice",3,"matTooltip"],["id","tool_angle",1,"svg-property",3,"matTooltip"],["numberOnly","","id","angle","size","4","value","0","type","number",1,"rightbar-input"],[1,"svg-property",2,"vertical-align","top"],["type","checkbox",2,"margin-top","2px",3,"ngModel","ngModelChange","change"],["id","align_panel","hideToggle","true","expanded","true",1,"svg-workarea-fly-p",3,"opened","closed"],[1,"rightbar_panel"],[1,"svg-tool-button",3,"matTooltip","click"],[1,"icon-align-left"],[1,"icon-align-center"],[1,"icon-align-right"],[1,"icon-align-top"],[1,"icon-align-middle"],[1,"icon-align-bottom"],["id","tool_stroke","hideToggle","true","expanded","true",1,"svg-workarea-fly-p",3,"opened","closed"],[1,"_color_tool"],["numberOnly","","id","stroke_width","type","number","size","4","value","1","data-attr","Stroke Width",1,"rightbar-input",3,"matTooltip"],["id","stroke_style",1,"style-stroke",3,"matTooltip"],["selected","selected","value","none"],["value","2,2"],["value","5,5"],["value","5,2,2,2"],["value","5,2,2,2,2,2"],["id","linejoin_miter",1,"svg-tool-button",3,"matTooltip","click"],["linejoinmiter",""],[1,"icon-linejoin-miter"],["id","linejoin_round",1,"svg-tool-button",3,"matTooltip","click"],["linejoinround",""],[1,"icon-linejoin-round"],["id","linejoin_bevel",1,"svg-tool-button",3,"matTooltip","click"],["linejoinbevel",""],[1,"icon-linejoin-bevel"],["id","linecap_butt",1,"svg-tool-button",3,"matTooltip","click"],["linecapbutt",""],[1,"icon-linecap-butt"],["id","linecap_square",1,"svg-tool-button",3,"matTooltip","click"],["linecapsquare",""],[1,"icon-linecap-square"],["id","linecap_round",1,"svg-tool-button",3,"matTooltip","click"],["linecapround",""],[1,"icon-linecap-round"],[1,"svg-property-split2",2,"display","none"],["for","class_shadow"],["type","checkbox","id","class_shadow","name","class_shadow","label","shadow",1,"attr_changer",3,"matTooltip","change"],["id","marker_panel","hideToggle","true","expanded","true",1,"svg-workarea-fly-p",3,"opened","closed"],[1,"svg-property-split3"],["id","start_marker","onfocus","this.selectedIndex=-1;this.blur();",1,"style-stroke",3,"matTooltip","click"],["smarker",""],["id","mid_marker","onfocus","this.selectedIndex=-1;this.blur();",1,"style-stroke",3,"matTooltip","click"],["mmarker",""],["id","end_marker","onfocus","this.selectedIndex=-1;this.blur();",1,"style-stroke",3,"matTooltip","click"],["emarker",""],["id","a_panel","hideToggle","true","expanded","true",1,"svg-workarea-fly-p",3,"opened","closed"],[1,"svg-property",2,"display","table"],["id","link_url","type","text"],["id","interaction_panel","hideToggle","true","expanded","true",1,"svg-workarea-fly-p",3,"opened","closed"],[3,"settings","edit",4,"ngIf"],["id","svg_editor",2,"z-index","-1"],["id","rulers"],["id","ruler_corner"],["id","ruler_x"],["height","15"],["id","ruler_y"],["width","15"],["id","workarea"],["id","svgcanvas",2,"position","relative"],["id","tools_top",1,"tools_panel"],["id","editor_panel"],[1,"main-btn-sep"],["mat-button","",1,"main-btn",3,"matTooltip","click"],["aria-label","Launch Current View"],["aria-label","Zoom Tool [Ctrl+Up/Down]"],["aria-label","Show Hide Grid",4,"ngIf"],["id","history_panel"],["mat-button","","id","tool_undo",1,"main-btn",3,"matTooltip"],["aria-label","Undo [Z]"],["mat-button","","id","tool_redo",1,"main-btn",3,"matTooltip"],["aria-label","Redo [Y]"],["id","selected_panel"],["mat-button","","id","tool_clone",1,"main-btn",3,"matTooltip"],["aria-label","Duplicate Element [D]"],["mat-button","","id","tool_delete",1,"main-btn",3,"matTooltip"],["aria-label","Delete Element [Delete/Backspace]"],["mat-button","","id","tool_move_bottom",1,"main-btn",3,"matTooltip"],[2,"font-size","28px"],["mat-button","","id","tool_move_top",1,"main-btn",3,"matTooltip"],[2,"font-size","28px","transform","scaleX(-1) scaleY(-1) translateX(-28px) translateY(-27px)"],["mat-button","","id","tool_make_link",1,"main-btn",3,"matTooltip","click"],["id","multiselected_panel"],["mat-button","","id","tool_clone_multi",1,"main-btn",3,"matTooltip"],["aria-label","Clone Elements [C]"],["mat-button","","id","tool_delete_multi",1,"main-btn",3,"matTooltip"],["aria-label","Delete Selected Elements [Delete/Backspace]"],["mat-button","","id","tool_group_elements",1,"main-btn",3,"matTooltip"],[1,"group"],["mat-button","","id","tool_alignleft",1,"main-btn",3,"matTooltip"],["mat-button","","id","tool_aligncenter",1,"main-btn",3,"matTooltip"],["mat-button","","id","tool_alignright",1,"main-btn",3,"matTooltip"],["mat-button","","id","tool_aligntop",1,"main-btn",3,"matTooltip"],["mat-button","","id","tool_alignmiddle",1,"main-btn",3,"matTooltip"],["mat-button","","id","tool_alignbottom",1,"main-btn",3,"matTooltip"],["id","threemoreselected_panel"],["mat-button","","id","tool_dividevertical",1,"main-btn",3,"matTooltip"],["mat-button","","id","tool_dividehorizontal",1,"main-btn",3,"matTooltip"],[2,"transform-origin","center center","transform","rotate(90deg)"],["id","g_panel"],["mat-button","","id","tool_ungroup",1,"main-btn",3,"matTooltip"],[1,"ungroup"],[1,"svg-element-selected"],["id","cur_context_panel"],[1,"bottom-bar","tools_panel"],[1,"zoom-menu",3,"matTooltip"],[1,"zoom-value"],["id","zoom","size","3","value","100","type","text","hidden",""],["zoomValue",""],["id","zoom_dropdown",1,"dropdown","selection",2,"margin-top","0px","margin-bottom","0px","margin-right","0px"],[2,"margin-top","2px","width","80px","cursor","pointer","font-size","12px"],["id","fit_to_canvas","data-val","canvas"],["id","fit_to_sel","data-val","selection"],["id","fit_to_all","data-val","content"],["id","tools_bottom_2",1,"colors"],["readonly","",1,"color-fill",3,"colorPicker","cpAlphaChannel","cpPosition","cpPresetColors","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButton","cpOKButtonText","cpOKButtonClass","colorPickerChange"],["readonly","",1,"color-stroke",3,"colorPicker","cpAlphaChannel","cpPosition","cpPresetColors","cpCancelButton","cpCancelButtonClass","cpCancelButtonText","cpOKButton","cpOKButtonText","cpOKButtonClass","colorPickerChange"],["id","tool_fill","hidden","",1,"color_tool"],["for","fill_color",1,"icon_label",3,"matTooltip"],[1,"color_block"],["id","fill_color",1,"color_block"],["id","tool_stroke","hidden","",1,"color_tool"],["matTooltip","Change stroke color",1,"icon_label"],["id","stroke_bg"],["id","stroke_color",1,"color_block",3,"matTooltip"],["id","tools_bottom_3",1,"colors-palette"],["id","palette_holder"],["id","palette",3,"matTooltip"],["id","option_lists",1,"dropdown"],["id","position_opts",1,"optcols3"],["id","tool_posleft","matTooltip","Align Left",1,"push_button"],["id","tool_poscenter","matTooltip","Align Center",1,"push_button"],["id","tool_posright","matTooltip","Align Right",1,"push_button"],["id","tool_postop","matTooltip","Align Top",1,"push_button"],["id","tool_posmiddle","matTooltip","Align Middle",1,"push_button"],["id","tool_posbottom","matTooltip","Align Bottom",1,"push_button"],[2,"width","100%","height","100%"],["id","svg_source_editor"],[1,"overlay"],["id","svg_source_container"],["id","tool_source_back",1,"toolbar_button"],["id","tool_source_save"],["id","tool_source_cancel"],["id","save_output_btns"],["id","copy_save_note"],["id","copy_save_done"],["id","svg_source_textarea","spellcheck","false"],["id","svg_docprops"],["id","svg_docprops_container"],["id","tool_docprops_back",1,"toolbar_button"],["id","tool_docprops_save"],["id","tool_docprops_cancel"],["id","svg_docprops_docprops"],["id","svginfo_image_props"],["id","svginfo_title"],["type","text","id","canvas_title"],["id","change_resolution"],["id","svginfo_dim"],["id","svginfo_width"],["type","text","id","canvas_width","size","6"],["id","svginfo_height"],["type","text","id","canvas_height","size","6"],["id","resolution"],["id","selectedPredefined","selected","selected"],["id","fitToContent","value","content"],["id","image_save_opts"],["id","includedImages"],["type","radio","name","image_opt","value","embed","checked","checked"],["id","image_opt_embed"],["type","radio","name","image_opt","value","ref"],["id","image_opt_ref"],["id","svg_prefs"],["id","svg_prefs_container"],["id","tool_prefs_back",1,"toolbar_button"],["id","tool_prefs_save"],["id","tool_prefs_cancel"],["id","svginfo_editor_prefs"],["id","svginfo_lang"],["id","lang_select"],["id","lang_ar","value","ar"],["id","lang_cs","value","cs"],["id","lang_de","value","de"],["id","lang_en","value","en","selected","selected"],["id","lang_es","value","es"],["id","lang_fa","value","fa"],["id","lang_fr","value","fr"],["id","lang_fy","value","fy"],["id","lang_hi","value","hi"],["id","lang_it","value","it"],["id","lang_ja","value","ja"],["id","lang_nl","value","nl"],["id","lang_pl","value","pl"],["id","lang_pt-BR","value","pt-BR"],["id","lang_ro","value","ro"],["id","lang_ru","value","ru"],["id","lang_sk","value","sk"],["id","lang_sl","value","sl"],["id","lang_zh-TW","value","zh-TW"],["id","svginfo_icons"],["id","iconsize"],["id","icon_small","value","s"],["id","icon_medium","value","m","selected","selected"],["id","icon_large","value","l"],["id","icon_xlarge","value","xl"],["id","change_background"],["id","svginfo_change_background"],["id","bg_blocks"],["id","svginfo_bg_url"],["type","text","id","canvas_bg_url"],["id","svginfo_bg_note"],["id","change_grid"],["id","svginfo_grid_settings"],["id","svginfo_snap_onoff"],["type","checkbox","value","snapping_on","id","grid_snapping_on"],["id","svginfo_snap_step"],["type","text","id","grid_snapping_step","size","3","value","10"],["id","svginfo_grid_color"],["type","text","id","grid_color","size","3","value","#000"],["id","units_rulers"],["id","svginfo_units_rulers"],["id","svginfo_rulers_onoff"],["type","checkbox","value","show_rulers","id","show_rulers","checked","checked"],["id","svginfo_unit"],["id","base_unit"],["value","px"],["value","cm"],["value","mm"],["value","in"],["value","pt"],["value","pc"],["value","em"],["value","ex"],["id","dialog_box"],["id","dialog_container"],["id","dialog_content"],["id","dialog_buttons"],["id","cmenu_canvas",1,"contextMenu","svg-workarea-contextmenu"],["id","#interactivity",3,"click"],["id","#editBindOfTags",3,"click"],[1,"separator"],["id","#cut"],["id","#copy"],["id","#paste"],["id","#paste_in_place"],["id","#delete"],["id","#group"],[1,"shortcut"],["id","#ungroup"],["id","#move_front"],["id","#move_up"],["id","#move_back"],["id","#move_down"],["id","cmenu_layers",1,"contextMenu",2,"display","none"],["href","#dupe"],["href","#delete"],["href","#merge_down"],["href","#merge_all"],[1,"svg-preview"],["svgpreview",""],[2,"position","absolute","top","0px","left","0px","right","0px","bottom","0px","background-color","rgba(0,0,0,0.2)","z-index","99999"],["mode","indeterminate","color","warn",2,"position","absolute","top","0px","left","0px","right","0px","z-index","99999"],[3,"data","reload","onPropChanged"],["aria-label","Select"],["aria-label","Add",1,"leftbar-edit-btn",3,"matTooltip","click"],["aria-label","Import",1,"leftbar-edit-btn",3,"matTooltip","click"],["id","__tools_left",1,"leftbar-panel","h200"],[1,"svg-tool-button",3,"ngClass","matTooltip","click"],[1,"icon-select"],[1,"icon-pencil"],[1,"icon-line"],[1,"icon-rect"],[1,"icon-circle"],[1,"icon-ellipse"],[1,"icon-path"],[1,"icon-text"],[1,"icon-image"],["type","file","accept","image/png|jpg|svg",2,"display","none",3,"change"],["imagefile",""],["id","tool_line",2,"display","none"],[1,"svg-tool-button",3,"matTooltip","ngClass","click"],[1,"icon-tool","icon-editvalue"],[1,"icon-tool","icon-value"],[1,"icon-tool","icon-button"],[1,"icon-tool","icon-selectvalue"],[1,"icon-tool","icon-progress-v"],[1,"icon-tool","icon-semaphore"],[1,"icon-tool","icon-chart"],[1,"icon-tool","icon-bag"],[1,"icon-tool","icon-pipe"],[1,"icon-tool","icon-slider"],[1,"icon-tool","icon-switch"],[1,"icon-tool","icon-graphbar"],[1,"icon-tool","icon-table"],[1,"icon-tool","icon-iframe"],[1,"material-icon-tool","material-icons"],["imageLink",""],[1,"material-icon-tool","material-icons",2,"font-size","25px"],[1,"material-icon-tool","material-icons",2,"font-size","23px"],["class","svg-workarea-leftbar-p","hideToggle","true",3,"expanded","opened","closed",4,"ngFor","ngForOf"],[1,"leftbar-edit-btn",3,"click"],["matExpansionPanelContent",""],["hideToggle","true",1,"svg-workarea-leftbar-p"],[1,"svg-workarea-leftbar-h",2,"max-height","32px","height","32px"],["aria-label","Select",2,"color","rgba(255,255, 255,0.4)"],["style","margin-left: 3px;margin-right: 3px;","class","svg-tool-button",3,"ngClass","click",4,"ngFor","ngForOf"],[1,"svg-tool-button",2,"margin-left","3px","margin-right","3px",3,"ngClass","click"],[1,"icon-tool"],[3,"value"],[3,"settings","edit"],["gaugepanel",""],["aria-label","Show Hide Grid"],[1,"tools_panel",2,"display","inline-flex","width","100%","height","37px"],[1,"main-btn-sep",2,"display","inline-block"],["mat-button","",1,"main-btn",2,"display","inline-block",3,"matTooltip","click"],[2,"position","absolute","top","37px","left","0px","right","0px","bottom","0px","background-color","rgba(247, 247, 247, 1)"],[3,"edit","view","hmi","gaugesManager","editCard","save"],["cardsview",""],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"view","hmi","gaugesManager","editMode"],["mapsView",""]],template:function(i,n){if(1&i){const o=e.EpF();e.YNc(0,Ume,2,0,"div",0),e.TgZ(1,"mat-drawer",1,2)(3,"button",3),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(2);return e.KtG(c.toggle())}),e.TgZ(4,"mat-icon"),e._uU(5,"close"),e.qZA()(),e.TgZ(6,"button",4),e.NdJ("click",function(){return n.checkSvgElementsMap(!0)}),e.TgZ(7,"mat-icon"),e._uU(8,"autorenew"),e.qZA()(),e.TgZ(9,"app-svg-selector",5),e.NdJ("onSelect",function(c){return n.onSvgElementSelected(c)})("onPreview",function(c){return n.onSvgElementPreview(c)})("onEdit",function(c){return n.onGaugeEdit(c)}),e.qZA()(),e.TgZ(10,"mat-drawer",6,7)(12,"button",3),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(11);return e.KtG(c.toggle())}),e.TgZ(13,"mat-icon"),e._uU(14,"close"),e.qZA()(),e.TgZ(15,"div",8),e.YNc(16,zme,2,2,"div",9),e.YNc(17,Hme,2,2,"div",9),e.YNc(18,Gme,2,2,"div",9),e.YNc(19,Zme,2,2,"div",9),e.YNc(20,Jme,2,2,"div",9),e.YNc(21,jme,2,2,"div",9),e.YNc(22,Vme,2,2,"div",9),e.YNc(23,Wme,2,2,"div",9),e.qZA()(),e.TgZ(24,"div",10)(25,"mat-drawer-container",11)(26,"mat-drawer",12)(27,"mat-accordion",13)(28,"mat-expansion-panel",14),e.NdJ("opened",function(){return n.panelsState.panelView=!0,n.savePanelState()})("closed",function(){return n.panelsState.panelView=!1,n.savePanelState()}),e.TgZ(29,"mat-expansion-panel-header",15)(30,"mat-panel-title"),e.YNc(31,Kme,2,0,"mat-icon",16),e.YNc(32,qme,2,0,"mat-icon",16),e.TgZ(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA()(),e.YNc(36,Xme,3,3,"mat-icon",17),e.YNc(37,$me,3,3,"mat-icon",18),e.TgZ(38,"input",19,20),e.NdJ("click",function(c){return c.stopPropagation()})("change",function(c){return n.onViewFileChangeListener(c)}),e.qZA()(),e.TgZ(40,"div",21),e.NdJ("heightChange",function(c){return n.panelsState.panelViewHeight=c})("changeEnd",function(){return n.savePanelState()}),e.TgZ(41,"app-editor-views-list",22),e.NdJ("viewsChange",function(c){return n.hmi.views=c})("selected",function(c){return n.onSelectView(c,!1)})("viewPropertyChanged",function(c){return n.onViewPropertyChanged(c)})("cloneView",function(c){return n.onCloneView(c)}),e.qZA()()(),e.YNc(42,d0e,137,193,"div",23),e.qZA()(),e.TgZ(43,"mat-drawer-content")(44,"div")(45,"div",24)(46,"mat-expansion-panel",25),e.NdJ("opened",function(){return n.panelPropertyIdOpenState=!0})("closed",function(){return n.panelPropertyIdOpenState=!1}),e.TgZ(47,"mat-expansion-panel-header",26)(48,"mat-panel-title"),e.YNc(49,u0e,2,0,"mat-icon",16),e.YNc(50,h0e,2,0,"mat-icon",16),e.TgZ(51,"span"),e._uU(52),e.ALo(53,"translate"),e.qZA()()(),e.TgZ(54,"div",27)(55,"div",28)(56,"label",29),e.ALo(57,"translate"),e.TgZ(58,"span"),e._uU(59),e.ALo(60,"translate"),e.qZA(),e._UZ(61,"input",30,31),e.qZA(),e.TgZ(63,"label",32),e.ALo(64,"translate"),e.TgZ(65,"span"),e._uU(66),e.ALo(67,"translate"),e.qZA(),e._UZ(68,"input",33),e.qZA()()()(),e.TgZ(69,"mat-expansion-panel",34),e.NdJ("opened",function(){return n.panelPropertyTransformOpenState=!0})("closed",function(){return n.panelPropertyTransformOpenState=!1}),e.TgZ(70,"mat-expansion-panel-header",15)(71,"mat-panel-title"),e.YNc(72,p0e,2,0,"mat-icon",16),e.YNc(73,g0e,2,0,"mat-icon",16),e.TgZ(74,"span"),e._uU(75),e.ALo(76,"translate"),e.qZA()()(),e.TgZ(77,"div",35)(78,"div",28)(79,"div",36)(80,"div",37)(81,"div",38)(82,"span"),e._uU(83),e.ALo(84,"translate"),e.qZA(),e._UZ(85,"input",39),e.ALo(86,"translate"),e.qZA(),e.TgZ(87,"div",38)(88,"span"),e._uU(89),e.ALo(90,"translate"),e.qZA(),e._UZ(91,"input",40),e.ALo(92,"translate"),e.qZA()()(),e.TgZ(93,"div",41)(94,"div",37)(95,"div",38)(96,"span"),e._uU(97),e.ALo(98,"translate"),e.qZA(),e._UZ(99,"input",42),e.ALo(100,"translate"),e.qZA(),e.TgZ(101,"div",38)(102,"span"),e._uU(103),e.ALo(104,"translate"),e.qZA(),e._UZ(105,"input",43),e.ALo(106,"translate"),e.qZA()(),e.TgZ(107,"div",37)(108,"div",38)(109,"span"),e._uU(110),e.ALo(111,"translate"),e.qZA(),e._UZ(112,"input",44),e.ALo(113,"translate"),e.qZA(),e.TgZ(114,"div",38)(115,"span"),e._uU(116),e.ALo(117,"translate"),e.qZA(),e._UZ(118,"input",45),e.ALo(119,"translate"),e.qZA()()(),e.TgZ(120,"div",46)(121,"div",37)(122,"div",47),e.ALo(123,"translate"),e.TgZ(124,"span"),e._uU(125),e.ALo(126,"translate"),e.qZA(),e._UZ(127,"input",48),e.qZA(),e.TgZ(128,"div",47),e.ALo(129,"translate"),e.TgZ(130,"span"),e._uU(131),e.ALo(132,"translate"),e.qZA(),e._UZ(133,"input",49),e.qZA()(),e.TgZ(134,"div",37)(135,"div",47),e.ALo(136,"translate"),e.TgZ(137,"span"),e._uU(138),e.ALo(139,"translate"),e.qZA(),e._UZ(140,"input",50),e.qZA()()(),e.TgZ(141,"div",51)(142,"div",37)(143,"div",47),e.ALo(144,"translate"),e.TgZ(145,"span"),e._uU(146),e.ALo(147,"translate"),e.qZA(),e._UZ(148,"input",52),e.qZA(),e.TgZ(149,"div",47),e.ALo(150,"translate"),e.TgZ(151,"span"),e._uU(152),e.ALo(153,"translate"),e.qZA(),e._UZ(154,"input",53),e.qZA()()(),e.TgZ(155,"div",54)(156,"div",37)(157,"div",47),e.ALo(158,"translate"),e.TgZ(159,"span"),e._uU(160),e.ALo(161,"translate"),e.qZA(),e._UZ(162,"input",55),e.qZA(),e.TgZ(163,"div",47),e.ALo(164,"translate"),e.TgZ(165,"span"),e._uU(166),e.ALo(167,"translate"),e.qZA(),e._UZ(168,"input",56),e.qZA()()(),e.TgZ(169,"div",57)(170,"div",37)(171,"div",38)(172,"span"),e._uU(173),e.ALo(174,"translate"),e.qZA(),e._UZ(175,"input",58),e.ALo(176,"translate"),e.qZA(),e.TgZ(177,"div",38)(178,"span"),e._uU(179),e.ALo(180,"translate"),e.qZA(),e._UZ(181,"input",59),e.ALo(182,"translate"),e.qZA()(),e.TgZ(183,"div",37)(184,"div",38)(185,"span"),e._uU(186),e.ALo(187,"translate"),e.qZA(),e._UZ(188,"input",60),e.ALo(189,"translate"),e.qZA()()(),e.TgZ(190,"div",61)(191,"div",37)(192,"div",38)(193,"span"),e._uU(194),e.ALo(195,"translate"),e.qZA(),e._UZ(196,"input",62),e.ALo(197,"translate"),e.qZA(),e.TgZ(198,"div",38)(199,"span"),e._uU(200),e.ALo(201,"translate"),e.qZA(),e._UZ(202,"input",63),e.ALo(203,"translate"),e.qZA()(),e.TgZ(204,"div",37)(205,"div",38)(206,"span"),e._uU(207),e.ALo(208,"translate"),e.qZA(),e._UZ(209,"input",64),e.ALo(210,"translate"),e.qZA(),e.TgZ(211,"div",38)(212,"span"),e._uU(213),e.ALo(214,"translate"),e.qZA(),e._UZ(215,"input",65),e.ALo(216,"translate"),e.qZA()()(),e.TgZ(217,"div",66)(218,"div",38)(219,"span"),e._uU(220),e.ALo(221,"translate"),e.qZA(),e.TgZ(222,"select",67,68),e.NdJ("change",function(){e.CHM(o);const c=e.MAs(223);return e.KtG(n.onFontFamilyChange(c.value))}),e.YNc(224,f0e,2,4,"option",69),e.qZA()(),e.TgZ(225,"div",37)(226,"div",38)(227,"span"),e._uU(228),e.ALo(229,"translate"),e.qZA(),e._UZ(230,"input",70),e.ALo(231,"translate"),e.qZA(),e.TgZ(232,"div",38)(233,"span"),e._uU(234),e.ALo(235,"translate"),e.qZA(),e.TgZ(236,"select",71,72),e.NdJ("change",function(){e.CHM(o);const c=e.MAs(237);return e.KtG(n.onTextAlignChange(c.value))}),e.TgZ(238,"option",73),e._uU(239),e.ALo(240,"translate"),e.qZA(),e.TgZ(241,"option",74),e._uU(242),e.ALo(243,"translate"),e.qZA(),e.TgZ(244,"option",75),e._uU(245),e.ALo(246,"translate"),e.qZA()()()(),e._UZ(247,"input",76),e.qZA(),e.TgZ(248,"div",77)(249,"div",37)(250,"div",38)(251,"span"),e._uU(252),e.ALo(253,"translate"),e.qZA(),e._UZ(254,"input",78),e.ALo(255,"translate"),e.qZA(),e.TgZ(256,"div",38)(257,"span"),e._uU(258),e.ALo(259,"translate"),e.qZA(),e._UZ(260,"input",79),e.ALo(261,"translate"),e.qZA()(),e.TgZ(262,"div",80)(263,"div",38)(264,"span"),e._uU(265),e.ALo(266,"translate"),e.qZA(),e._UZ(267,"input",81),e.ALo(268,"translate"),e.qZA(),e.TgZ(269,"div",38)(270,"div",38)(271,"button",82),e._uU(272),e.ALo(273,"translate"),e.qZA(),e._UZ(274,"span",83),e.ALo(275,"translate"),e.qZA()()()(),e.TgZ(276,"div",84),e.ALo(277,"translate"),e.TgZ(278,"div",37)(279,"div",38)(280,"span"),e._uU(281),e.ALo(282,"translate"),e.qZA(),e._UZ(283,"input",85),e.qZA(),e.TgZ(284,"div",86)(285,"span"),e._uU(286),e.ALo(287,"translate"),e.qZA(),e.TgZ(288,"input",87),e.NdJ("ngModelChange",function(c){return n.gaugeSettingsHide=c})("change",function(){return n.onHideSelectionToggle(n.gaugeSettingsHide)}),e.qZA()(),e.TgZ(289,"div",86)(290,"span"),e._uU(291),e.ALo(292,"translate"),e.qZA(),e.TgZ(293,"input",87),e.NdJ("ngModelChange",function(c){return n.gaugeSettingsLock=c})("change",function(){return n.onLockSelectionToggle(n.gaugeSettingsLock)}),e.qZA()()()()()()(),e.TgZ(294,"mat-expansion-panel",88),e.NdJ("opened",function(){return n.panelAlignOpenState=!0})("closed",function(){return n.panelAlignOpenState=!1}),e.TgZ(295,"mat-expansion-panel-header",15)(296,"mat-panel-title"),e.YNc(297,m0e,2,0,"mat-icon",16),e.YNc(298,_0e,2,0,"mat-icon",16),e.TgZ(299,"span"),e._uU(300),e.ALo(301,"translate"),e.qZA()()(),e.TgZ(302,"div",89)(303,"div",90),e.NdJ("click",function(){return n.onAlignSelected("left")}),e.ALo(304,"translate"),e._UZ(305,"span",91),e.qZA(),e.TgZ(306,"div",90),e.NdJ("click",function(){return n.onAlignSelected("center")}),e.ALo(307,"translate"),e._UZ(308,"span",92),e.qZA(),e.TgZ(309,"div",90),e.NdJ("click",function(){return n.onAlignSelected("right")}),e.ALo(310,"translate"),e._UZ(311,"span",93),e.qZA(),e.TgZ(312,"div",90),e.NdJ("click",function(){return n.onAlignSelected("top")}),e.ALo(313,"translate"),e._UZ(314,"span",94),e.qZA(),e.TgZ(315,"div",90),e.NdJ("click",function(){return n.onAlignSelected("middle")}),e.ALo(316,"translate"),e._UZ(317,"span",95),e.qZA(),e.TgZ(318,"div",90),e.NdJ("click",function(){return n.onAlignSelected("bottom")}),e.ALo(319,"translate"),e._UZ(320,"span",96),e.qZA()()(),e.TgZ(321,"mat-expansion-panel",97),e.NdJ("opened",function(){return n.panelFillOpenState=!0})("closed",function(){return n.panelFillOpenState=!1}),e.TgZ(322,"mat-expansion-panel-header",15)(323,"mat-panel-title"),e.YNc(324,v0e,2,0,"mat-icon",16),e.YNc(325,y0e,2,0,"mat-icon",16),e.TgZ(326,"span"),e._uU(327),e.ALo(328,"translate"),e.qZA()()(),e.TgZ(329,"div",89)(330,"div",98)(331,"div",37)(332,"div",38)(333,"span"),e._uU(334),e.ALo(335,"translate"),e.qZA(),e._UZ(336,"input",99),e.ALo(337,"translate"),e.qZA(),e.TgZ(338,"div",38)(339,"span"),e._uU(340),e.ALo(341,"translate"),e.qZA(),e.TgZ(342,"select",100),e.ALo(343,"translate"),e.TgZ(344,"option",101),e._uU(345,"\u2014"),e.qZA(),e.TgZ(346,"option",102),e._uU(347,"..."),e.qZA(),e.TgZ(348,"option",103),e._uU(349,"- -"),e.qZA(),e.TgZ(350,"option",104),e._uU(351,"- ."),e.qZA(),e.TgZ(352,"option",105),e._uU(353,"- .."),e.qZA()()()(),e.TgZ(354,"div",38)(355,"div",106,107),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(356);return e.KtG(n.onSetStrokeOption(c))}),e.ALo(357,"translate"),e._UZ(358,"span",108),e.qZA(),e.TgZ(359,"div",109,110),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(360);return e.KtG(n.onSetStrokeOption(c))}),e.ALo(361,"translate"),e._UZ(362,"span",111),e.qZA(),e.TgZ(363,"div",112,113),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(364);return e.KtG(n.onSetStrokeOption(c))}),e.ALo(365,"translate"),e._UZ(366,"span",114),e.qZA()(),e.TgZ(367,"div",38)(368,"div",115,116),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(369);return e.KtG(n.onSetStrokeOption(c))}),e.ALo(370,"translate"),e._UZ(371,"span",117),e.qZA(),e.TgZ(372,"div",118,119),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(373);return e.KtG(n.onSetStrokeOption(c))}),e.ALo(374,"translate"),e._UZ(375,"span",120),e.qZA(),e.TgZ(376,"div",121,122),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(377);return e.KtG(n.onSetStrokeOption(c))}),e.ALo(378,"translate"),e._UZ(379,"span",123),e.qZA()(),e.TgZ(380,"div",124)(381,"div",38)(382,"span",125),e._uU(383),e.ALo(384,"translate"),e.qZA(),e.TgZ(385,"input",126),e.NdJ("change",function(c){return n.onSetShadowOption(c.target.checked)}),e.ALo(386,"translate"),e.qZA()(),e._UZ(387,"div",38),e.qZA()()()(),e.TgZ(388,"mat-expansion-panel",127),e.NdJ("opened",function(){return n.panelMarkerOpenState=!0})("closed",function(){return n.panelMarkerOpenState=!1}),e.TgZ(389,"mat-expansion-panel-header",15)(390,"mat-panel-title"),e.YNc(391,w0e,2,0,"mat-icon",16),e.YNc(392,C0e,2,0,"mat-icon",16),e.TgZ(393,"span"),e._uU(394),e.ALo(395,"translate"),e.qZA()()(),e.TgZ(396,"div",89)(397,"div",128)(398,"div",38)(399,"span"),e._uU(400),e.ALo(401,"translate"),e.qZA(),e.TgZ(402,"select",129,130),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(403);return e.KtG(n.onSetMarker("start_marker",c.selectedIndex))}),e.ALo(404,"translate"),e.qZA()(),e.TgZ(405,"div",38)(406,"span"),e._uU(407),e.ALo(408,"translate"),e.qZA(),e.TgZ(409,"select",131,132),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(410);return e.KtG(n.onSetMarker("mid_marker",c.selectedIndex))}),e.ALo(411,"translate"),e.qZA()(),e.TgZ(412,"div",38)(413,"span"),e._uU(414),e.ALo(415,"translate"),e.qZA(),e.TgZ(416,"select",133,134),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(417);return e.KtG(n.onSetMarker("end_marker",c.selectedIndex))}),e.ALo(418,"translate"),e.qZA()()()()(),e.TgZ(419,"mat-expansion-panel",135),e.NdJ("opened",function(){return n.panelHyperlinkOpenState=!0})("closed",function(){return n.panelHyperlinkOpenState=!1}),e.TgZ(420,"mat-expansion-panel-header",15)(421,"mat-panel-title"),e.YNc(422,b0e,2,0,"mat-icon",16),e.YNc(423,x0e,2,0,"mat-icon",16),e.TgZ(424,"span"),e._uU(425),e.ALo(426,"translate"),e.qZA()()(),e.TgZ(427,"div",89)(428,"div",136)(429,"span"),e._uU(430),e.ALo(431,"translate"),e.qZA(),e._UZ(432,"input",137),e.qZA()()(),e.TgZ(433,"mat-expansion-panel",138),e.NdJ("opened",function(){return n.panelEventOpenState=!0})("closed",function(){return n.panelEventOpenState=!1}),e.TgZ(434,"mat-expansion-panel-header",15)(435,"mat-panel-title"),e.YNc(436,B0e,2,0,"mat-icon",16),e.YNc(437,E0e,2,0,"mat-icon",16),e.TgZ(438,"span"),e._uU(439),e.ALo(440,"translate"),e.qZA()()(),e.TgZ(441,"div",89),e.YNc(442,M0e,2,1,"gauge-base",139),e.qZA()()(),e.TgZ(443,"div",140)(444,"div",141),e._UZ(445,"div",142),e.TgZ(446,"div",143)(447,"div"),e._UZ(448,"canvas",144),e.qZA()(),e.TgZ(449,"div",145)(450,"div"),e._UZ(451,"canvas",146),e.qZA()()(),e.TgZ(452,"div",147),e._UZ(453,"div",148),e.qZA(),e.TgZ(454,"div",149)(455,"div",150),e._UZ(456,"div",151),e.TgZ(457,"button",152),e.NdJ("click",function(){return n.onStartCurrent()}),e.ALo(458,"translate"),e.TgZ(459,"mat-icon",153),e._uU(460,"play_arrow"),e.qZA()(),e._UZ(461,"div",151),e.TgZ(462,"button",152),e.NdJ("click",function(){return n.onZoomSelect()}),e.ALo(463,"translate"),e.TgZ(464,"mat-icon",154),e._uU(465,"zoom_in"),e.qZA()(),e.TgZ(466,"button",152),e.NdJ("click",function(){return n.onShowGrid()}),e.ALo(467,"translate"),e.YNc(468,D0e,2,0,"mat-icon",155),e.YNc(469,T0e,2,0,"mat-icon",155),e.qZA(),e.TgZ(470,"div",156)(471,"button",157),e.ALo(472,"translate"),e.TgZ(473,"mat-icon",158),e._uU(474,"undo"),e.qZA()(),e.TgZ(475,"button",159),e.ALo(476,"translate"),e.TgZ(477,"mat-icon",160),e._uU(478,"redo"),e.qZA()()()(),e.TgZ(479,"div",161),e._UZ(480,"div",151),e.TgZ(481,"button",162),e.ALo(482,"translate"),e.TgZ(483,"mat-icon",163),e._uU(484,"content_copy"),e.qZA()(),e.TgZ(485,"button",164),e.ALo(486,"translate"),e.TgZ(487,"mat-icon",165),e._uU(488,"content_cut"),e.qZA()(),e.TgZ(489,"button",166),e.ALo(490,"translate"),e.TgZ(491,"mat-icon",167),e._uU(492,"low_priority"),e.qZA()(),e.TgZ(493,"button",168),e.ALo(494,"translate"),e.TgZ(495,"mat-icon",169),e._uU(496,"low_priority"),e.qZA()(),e.TgZ(497,"button",170),e.NdJ("click",function(){return n.onMakeHyperlink()}),e.ALo(498,"translate"),e.TgZ(499,"mat-icon",167),e._uU(500,"link"),e.qZA()()(),e.TgZ(501,"div",171),e._UZ(502,"div",151),e.TgZ(503,"button",172),e.ALo(504,"translate"),e.TgZ(505,"mat-icon",173),e._uU(506,"content_copy"),e.qZA()(),e.TgZ(507,"button",174),e.ALo(508,"translate"),e.TgZ(509,"mat-icon",175),e._uU(510,"content_cut"),e.qZA()(),e.TgZ(511,"button",176),e.ALo(512,"translate"),e._UZ(513,"span",177),e.qZA(),e.TgZ(514,"button",178),e.ALo(515,"translate"),e.TgZ(516,"mat-icon"),e._uU(517,"format_align_left"),e.qZA()(),e.TgZ(518,"button",179),e.ALo(519,"translate"),e.TgZ(520,"mat-icon"),e._uU(521,"format_align_center"),e.qZA()(),e.TgZ(522,"button",180),e.ALo(523,"translate"),e.TgZ(524,"mat-icon"),e._uU(525,"format_align_right"),e.qZA()(),e.TgZ(526,"button",181),e.ALo(527,"translate"),e.TgZ(528,"mat-icon"),e._uU(529,"vertical_align_top"),e.qZA()(),e.TgZ(530,"button",182),e.ALo(531,"translate"),e.TgZ(532,"mat-icon"),e._uU(533,"vertical_align_center"),e.qZA()(),e.TgZ(534,"button",183),e.ALo(535,"translate"),e.TgZ(536,"mat-icon"),e._uU(537,"vertical_align_bottom"),e.qZA()()(),e.TgZ(538,"div",184)(539,"button",185),e.ALo(540,"translate"),e.TgZ(541,"mat-icon"),e._uU(542,"format_line_spacing"),e.qZA()(),e.TgZ(543,"button",186),e.ALo(544,"translate"),e.TgZ(545,"mat-icon",187),e._uU(546,"format_line_spacing"),e.qZA()()(),e.TgZ(547,"div",188)(548,"button",189),e.ALo(549,"translate"),e._UZ(550,"span",190),e.qZA()(),e.TgZ(551,"div",191)(552,"button",152),e.NdJ("click",function(){e.CHM(o);const c=e.MAs(2);return e.KtG(c.toggle())}),e.ALo(553,"translate"),e.TgZ(554,"mat-icon",167),e._uU(555,"list"),e.qZA()()()(),e._UZ(556,"div",192),e.TgZ(557,"div",193)(558,"div",194),e.ALo(559,"translate"),e.TgZ(560,"div",195),e._UZ(561,"input",196,197),e.TgZ(563,"div",198)(564,"button",199),e._uU(565),e.qZA(),e.TgZ(566,"ul")(567,"li"),e._uU(568,"1000%"),e.qZA(),e.TgZ(569,"li"),e._uU(570,"400%"),e.qZA(),e.TgZ(571,"li"),e._uU(572,"200%"),e.qZA(),e.TgZ(573,"li"),e._uU(574,"100%"),e.qZA(),e.TgZ(575,"li"),e._uU(576,"50%"),e.qZA(),e.TgZ(577,"li"),e._uU(578,"25%"),e.qZA(),e.TgZ(579,"li",200),e._uU(580),e.ALo(581,"translate"),e.qZA(),e.TgZ(582,"li",201),e._uU(583),e.ALo(584,"translate"),e.qZA(),e.TgZ(585,"li",202),e._uU(586),e.ALo(587,"translate"),e.qZA(),e.TgZ(588,"li"),e._uU(589,"100%"),e.qZA()()()()(),e.TgZ(590,"div",203)(591,"input",204),e.NdJ("colorPickerChange",function(c){return n.colorFill=c})("colorPickerChange",function(c){return n.onChangeFillColor(c)}),e.qZA(),e.TgZ(592,"input",205),e.NdJ("colorPickerChange",function(c){return n.colorStroke=c})("colorPickerChange",function(c){return n.onChangeStrokeColor(c)}),e.qZA(),e.TgZ(593,"div",206),e._UZ(594,"label",207),e.ALo(595,"translate"),e.TgZ(596,"div",208),e._UZ(597,"div",209),e.qZA()(),e.TgZ(598,"div",210),e._UZ(599,"label",211),e.TgZ(600,"div",208),e._UZ(601,"div",212)(602,"div",213),e.ALo(603,"translate"),e.qZA()()(),e.TgZ(604,"div",214)(605,"div",215),e._UZ(606,"div",216),e.ALo(607,"translate"),e.qZA()()(),e.TgZ(608,"div",217)(609,"ul",218),e._UZ(610,"li",219)(611,"li",220)(612,"li",221)(613,"li",222)(614,"li",223)(615,"li",224),e.qZA()()()(),e.TgZ(616,"div",225),e.YNc(617,I0e,13,7,"ng-container",23),e.YNc(618,k0e,3,4,"ng-container",23),e.qZA()()(),e.TgZ(619,"div",226),e._UZ(620,"div",227),e.TgZ(621,"div",228)(622,"div",229)(623,"button",230),e._uU(624,"Apply Changes"),e.qZA(),e.TgZ(625,"button",231),e._uU(626,"Cancel"),e.qZA()(),e.TgZ(627,"div",232)(628,"p",233),e._uU(629,"Copy the contents of this box into a text editor, then save the file with a .svg extension."),e.qZA(),e.TgZ(630,"button",234),e._uU(631,"Done"),e.qZA()(),e.TgZ(632,"form"),e._UZ(633,"textarea",235),e.qZA()()(),e.TgZ(634,"div",236),e._UZ(635,"div",227),e.TgZ(636,"div",237)(637,"div",238)(638,"button",239),e._uU(639,"OK"),e.qZA(),e.TgZ(640,"button",240),e._uU(641,"Cancel"),e.qZA()(),e.TgZ(642,"fieldset",241)(643,"legend",242),e._uU(644,"Image Properties"),e.qZA(),e.TgZ(645,"label")(646,"span",243),e._uU(647,"Title:"),e.qZA(),e._UZ(648,"input",244),e.qZA(),e.TgZ(649,"fieldset",245)(650,"legend",246),e._uU(651,"Canvas Dimensions"),e.qZA(),e.TgZ(652,"label")(653,"span",247),e._uU(654,"width:"),e.qZA(),e._UZ(655,"input",248),e.qZA(),e.TgZ(656,"label")(657,"span",249),e._uU(658,"height:"),e.qZA(),e._UZ(659,"input",250),e.qZA(),e.TgZ(660,"label")(661,"select",251)(662,"option",252),e._uU(663,"Select predefined:"),e.qZA(),e.TgZ(664,"option"),e._uU(665,"640x480"),e.qZA(),e.TgZ(666,"option"),e._uU(667,"800x600"),e.qZA(),e.TgZ(668,"option"),e._uU(669,"1024x768"),e.qZA(),e.TgZ(670,"option"),e._uU(671,"1280x960"),e.qZA(),e.TgZ(672,"option"),e._uU(673,"1600x1200"),e.qZA(),e.TgZ(674,"option",253),e._uU(675,"Fit to Content"),e.qZA()()()(),e.TgZ(676,"fieldset",254)(677,"legend",255),e._uU(678,"Included Images"),e.qZA(),e.TgZ(679,"label"),e._UZ(680,"input",256),e.TgZ(681,"span",257),e._uU(682,"Embed data (local files)"),e.qZA()(),e.TgZ(683,"label"),e._UZ(684,"input",258),e.TgZ(685,"span",259),e._uU(686,"Use file reference"),e.qZA()()()()()(),e.TgZ(687,"div",260),e._UZ(688,"div",227),e.TgZ(689,"div",261)(690,"div",262)(691,"button",263),e._uU(692,"OK"),e.qZA(),e.TgZ(693,"button",264),e._uU(694,"Cancel"),e.qZA()(),e.TgZ(695,"fieldset")(696,"legend",265),e._uU(697,"Editor Preferences"),e.qZA(),e.TgZ(698,"label")(699,"span",266),e._uU(700,"Language:"),e.qZA(),e.TgZ(701,"select",267)(702,"option",268),e._uU(703,"\u0627\u0644\u0639\u0631\u0628\u064a\u0629"),e.qZA(),e.TgZ(704,"option",269),e._uU(705,"\u010ce\u0161tina"),e.qZA(),e.TgZ(706,"option",270),e._uU(707,"Deutsch"),e.qZA(),e.TgZ(708,"option",271),e._uU(709,"English"),e.qZA(),e.TgZ(710,"option",272),e._uU(711,"Espa\xf1ol"),e.qZA(),e.TgZ(712,"option",273),e._uU(713,"\u0641\u0627\u0631\u0633\u06cc"),e.qZA(),e.TgZ(714,"option",274),e._uU(715,"Fran\xe7ais"),e.qZA(),e.TgZ(716,"option",275),e._uU(717,"Frysk"),e.qZA(),e.TgZ(718,"option",276),e._uU(719,"\u0939\u093f\u0928\u094d\u0926\u0940, \u0939\u093f\u0902\u0926\u0940"),e.qZA(),e.TgZ(720,"option",277),e._uU(721,"Italiano"),e.qZA(),e.TgZ(722,"option",278),e._uU(723,"\u65e5\u672c\u8a9e"),e.qZA(),e.TgZ(724,"option",279),e._uU(725,"Nederlands"),e.qZA(),e.TgZ(726,"option",280),e._uU(727,"Polski"),e.qZA(),e.TgZ(728,"option",281),e._uU(729,"Portugu\xeas (BR)"),e.qZA(),e.TgZ(730,"option",282),e._uU(731,"Rom\xe2n\u0103"),e.qZA(),e.TgZ(732,"option",283),e._uU(733,"\u0420\u0443\u0441\u0441\u043a\u0438\u0439"),e.qZA(),e.TgZ(734,"option",284),e._uU(735,"Sloven\u010dina"),e.qZA(),e.TgZ(736,"option",285),e._uU(737,"Sloven\u0161\u010dina"),e.qZA(),e.TgZ(738,"option",286),e._uU(739,"\u7e41\u9ad4\u4e2d\u6587"),e.qZA()()(),e.TgZ(740,"label")(741,"span",287),e._uU(742,"Icon size:"),e.qZA(),e.TgZ(743,"select",288)(744,"option",289),e._uU(745,"Small"),e.qZA(),e.TgZ(746,"option",290),e._uU(747,"Medium"),e.qZA(),e.TgZ(748,"option",291),e._uU(749,"Large"),e.qZA(),e.TgZ(750,"option",292),e._uU(751,"Extra Large"),e.qZA()()(),e.TgZ(752,"fieldset",293)(753,"legend",294),e._uU(754,"Editor Background"),e.qZA(),e._UZ(755,"div",295),e.TgZ(756,"label")(757,"span",296),e._uU(758,"URL:"),e.qZA(),e._UZ(759,"input",297),e.qZA(),e.TgZ(760,"p",298),e._uU(761,"Note: Background will not be saved with image."),e.qZA()(),e.TgZ(762,"fieldset",299)(763,"legend",300),e._uU(764,"Grid"),e.qZA(),e.TgZ(765,"label")(766,"span",301),e._uU(767,"Snapping on/off"),e.qZA(),e._UZ(768,"input",302),e.qZA(),e.TgZ(769,"label")(770,"span",303),e._uU(771,"Snapping Step-Size:"),e.qZA(),e._UZ(772,"input",304),e.qZA(),e.TgZ(773,"label")(774,"span",305),e._uU(775,"Grid color:"),e.qZA(),e._UZ(776,"input",306),e.qZA()(),e.TgZ(777,"fieldset",307)(778,"legend",308),e._uU(779,"Units & Rulers"),e.qZA(),e.TgZ(780,"label")(781,"span",309),e._uU(782,"Show rulers"),e.qZA(),e._UZ(783,"input",310),e.qZA(),e.TgZ(784,"label")(785,"span",311),e._uU(786,"Base Unit:"),e.qZA(),e.TgZ(787,"select",312)(788,"option",313),e._uU(789,"Pixels"),e.qZA(),e.TgZ(790,"option",314),e._uU(791,"Centimeters"),e.qZA(),e.TgZ(792,"option",315),e._uU(793,"Millimeters"),e.qZA(),e.TgZ(794,"option",316),e._uU(795,"Inches"),e.qZA(),e.TgZ(796,"option",317),e._uU(797,"Points"),e.qZA(),e.TgZ(798,"option",318),e._uU(799,"Picas"),e.qZA(),e.TgZ(800,"option",319),e._uU(801,"Ems"),e.qZA(),e.TgZ(802,"option",320),e._uU(803,"Exs"),e.qZA()()()()()()(),e.TgZ(804,"div",321),e._UZ(805,"div",227),e.TgZ(806,"div",322),e._UZ(807,"div",323)(808,"div",324),e.qZA()(),e.TgZ(809,"ul",325)(810,"li")(811,"a",326),e.NdJ("click",function(){return n.onInteractivityClick(n.selectedElement)}),e._uU(812),e.ALo(813,"translate"),e.qZA()(),e.TgZ(814,"li")(815,"a",327),e.NdJ("click",function(){return n.editBindOfTags(n.selectedElement)}),e._uU(816),e.ALo(817,"translate"),e.qZA()(),e.TgZ(818,"li",328)(819,"a",329),e._uU(820),e.ALo(821,"translate"),e.qZA()(),e.TgZ(822,"li")(823,"a",330),e._uU(824),e.ALo(825,"translate"),e.qZA()(),e.TgZ(826,"li")(827,"a",331),e._uU(828),e.ALo(829,"translate"),e.qZA()(),e.TgZ(830,"li")(831,"a",332),e._uU(832),e.ALo(833,"translate"),e.qZA()(),e.TgZ(834,"li",328)(835,"a",333),e._uU(836),e.ALo(837,"translate"),e.qZA()(),e.TgZ(838,"li",328)(839,"a",334),e._uU(840),e.ALo(841,"translate"),e.TgZ(842,"span",335),e._uU(843,"G"),e.qZA()()(),e.TgZ(844,"li")(845,"a",336),e._uU(846),e.ALo(847,"translate"),e.TgZ(848,"span",335),e._uU(849,"G"),e.qZA()()(),e.TgZ(850,"li",328)(851,"a",337),e._uU(852),e.ALo(853,"translate"),e.TgZ(854,"span",335),e._uU(855,"SHFT+CTRL+]"),e.qZA()()(),e.TgZ(856,"li")(857,"a",338),e._uU(858),e.ALo(859,"translate"),e.TgZ(860,"span",335),e._uU(861,"CTRL+]"),e.qZA()()(),e.TgZ(862,"li")(863,"a",339),e._uU(864),e.ALo(865,"translate"),e.TgZ(866,"span",335),e._uU(867,"SHFT+CTRL+["),e.qZA()()(),e.TgZ(868,"li")(869,"a",340),e._uU(870),e.ALo(871,"translate"),e.TgZ(872,"span",335),e._uU(873,"CTRL+["),e.qZA()()()(),e.TgZ(874,"ul",341)(875,"li")(876,"a",342),e._uU(877),e.ALo(878,"translate"),e.qZA()(),e.TgZ(879,"li")(880,"a",343),e._uU(881),e.ALo(882,"translate"),e.qZA()(),e.TgZ(883,"li")(884,"a",344),e._uU(885),e.ALo(886,"translate"),e.qZA()(),e.TgZ(887,"li")(888,"a",345),e._uU(889),e.ALo(890,"translate"),e.qZA()()(),e._UZ(891,"div",346,347),e.qZA()}if(2&i){const o=e.MAs(562);e.Q6J("ngIf",n.isLoading),e.xp6(9),e.Q6J("elements",n.svgElements)("selected",n.svgElementSelected),e.xp6(6),e.Q6J("ngSwitch",n.gaugeDialog.type),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Chart),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Graph),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Iframe),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Table),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Panel),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Pipe),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Video),e.xp6(1),e.Q6J("ngSwitchCase",n.gaugeDialogType.Scheduler),e.xp6(5),e.Q6J("expanded",n.panelsState.panelView),e.xp6(3),e.Q6J("ngIf",n.panelsState.panelView),e.xp6(1),e.Q6J("ngIf",!n.panelsState.panelView),e.xp6(2),e.Oqu(e.lcZ(35,225,"editor.views")),e.xp6(2),e.Q6J("ngIf",n.panelsState.panelView),e.xp6(1),e.Q6J("ngIf",n.panelsState.panelView),e.xp6(3),e.Udp("height",n.panelsState.panelViewHeight,"px"),e.Q6J("height",n.panelsState.panelViewHeight),e.xp6(1),e.Q6J("views",n.hmi.views)("select",n.currentView),e.xp6(1),e.Q6J("ngIf",n.editorMode===n.editorModeType.SVG),e.xp6(2),e.Udp("display",n.editorMode===n.editorModeType.SVG?"block":"none"),e.xp6(1),e.Udp("display",n.isAnySelected?"block":"none"),e.xp6(4),e.Q6J("ngIf",n.panelPropertyIdOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelPropertyIdOpenState),e.xp6(2),e.Oqu(e.lcZ(53,227,"editor.interactivity")),e.xp6(4),e.s9C("matTooltip",e.lcZ(57,229,"editor.interactivity-id-title")),e.xp6(3),e.Oqu(e.lcZ(60,231,"editor.interactivity-id")),e.xp6(4),e.s9C("matTooltip",e.lcZ(64,233,"editor.interactivity-class-title")),e.xp6(3),e.Oqu(e.lcZ(67,235,"editor.interactivity-class")),e.xp6(3),e.Udp("display",n.selectedElement?"block":"none"),e.xp6(3),e.Q6J("ngIf",n.panelPropertyTransformOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelPropertyTransformOpenState),e.xp6(2),e.Oqu(e.lcZ(76,237,"editor.transform")),e.xp6(8),e.Oqu(e.lcZ(84,239,"editor.transform-x")),e.xp6(2),e.s9C("matTooltip",e.lcZ(86,241,"editor.transform-x-title")),e.xp6(4),e.Oqu(e.lcZ(90,243,"editor.transform-y")),e.xp6(2),e.s9C("matTooltip",e.lcZ(92,245,"editor.transform-y-title")),e.xp6(6),e.Oqu(e.lcZ(98,247,"editor.transform-x1")),e.xp6(2),e.s9C("matTooltip",e.lcZ(100,249,"editor.transform-x1-title")),e.xp6(4),e.Oqu(e.lcZ(104,251,"editor.transform-y1")),e.xp6(2),e.s9C("matTooltip",e.lcZ(106,253,"editor.transform-y1-title")),e.xp6(5),e.Oqu(e.lcZ(111,255,"editor.transform-x2")),e.xp6(2),e.s9C("matTooltip",e.lcZ(113,257,"editor.transform-x2-title")),e.xp6(4),e.Oqu(e.lcZ(117,259,"editor.transform-y2")),e.xp6(2),e.s9C("matTooltip",e.lcZ(119,261,"editor.transform-y2-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(123,263,"editor.transform-rect-width-title")),e.xp6(3),e.Oqu(e.lcZ(126,265,"editor.transform-width")),e.xp6(3),e.s9C("matTooltip",e.lcZ(129,267,"editor.transform-rect-height-title")),e.xp6(3),e.Oqu(e.lcZ(132,269,"editor.transform-height")),e.xp6(4),e.s9C("matTooltip",e.lcZ(136,271,"editor.transform-rect-radius-title")),e.xp6(3),e.Oqu(e.lcZ(139,273,"editor.transform-radiuscorner")),e.xp6(5),e.s9C("matTooltip",e.lcZ(144,275,"editor.transform-rect-width-title")),e.xp6(3),e.Oqu(e.lcZ(147,277,"editor.transform-width")),e.xp6(3),e.s9C("matTooltip",e.lcZ(150,279,"editor.transform-rect-height-title")),e.xp6(3),e.Oqu(e.lcZ(153,281,"editor.transform-height")),e.xp6(5),e.s9C("matTooltip",e.lcZ(158,283,"editor.transform-rect-width-title")),e.xp6(3),e.Oqu(e.lcZ(161,285,"editor.transform-width")),e.xp6(3),e.s9C("matTooltip",e.lcZ(164,287,"editor.transform-rect-height-title")),e.xp6(3),e.Oqu(e.lcZ(167,289,"editor.transform-height")),e.xp6(7),e.Oqu(e.lcZ(174,291,"editor.transform-circlecx")),e.xp6(2),e.s9C("matTooltip",e.lcZ(176,293,"editor.transform-circlecx-title")),e.xp6(4),e.Oqu(e.lcZ(180,295,"editor.transform-circlecy")),e.xp6(2),e.s9C("matTooltip",e.lcZ(182,297,"editor.transform-circlecy-title")),e.xp6(5),e.Oqu(e.lcZ(187,299,"editor.transform-circler")),e.xp6(2),e.s9C("matTooltip",e.lcZ(189,301,"editor.transform-circler-title")),e.xp6(6),e.Oqu(e.lcZ(195,303,"editor.transform-ellipsecx")),e.xp6(2),e.s9C("matTooltip",e.lcZ(197,305,"editor.transform-ellipsecx-title")),e.xp6(4),e.Oqu(e.lcZ(201,307,"editor.transform-ellipsecy")),e.xp6(2),e.s9C("matTooltip",e.lcZ(203,309,"editor.transform-ellipsecy-title")),e.xp6(5),e.Oqu(e.lcZ(208,311,"editor.transform-ellipserx")),e.xp6(2),e.s9C("matTooltip",e.lcZ(210,313,"editor.transform-ellipserx-title")),e.xp6(4),e.Oqu(e.lcZ(214,315,"editor.transform-ellipsery")),e.xp6(2),e.s9C("matTooltip",e.lcZ(216,317,"editor.transform-ellipsery-title")),e.xp6(5),e.Oqu(e.lcZ(221,319,"editor.transform-fontfamily")),e.xp6(4),e.Q6J("ngForOf",n.fonts),e.xp6(4),e.Oqu(e.lcZ(229,321,"editor.transform-fontsize")),e.xp6(2),e.s9C("matTooltip",e.lcZ(231,323,"editor.transform-fontsize-title")),e.xp6(4),e.Oqu(e.lcZ(235,325,"editor.transform-textalign")),e.xp6(5),e.Oqu(e.lcZ(240,327,"editor.transform-left")),e.xp6(3),e.Oqu(e.lcZ(243,329,"editor.transform-center")),e.xp6(3),e.Oqu(e.lcZ(246,331,"editor.transform-right")),e.xp6(7),e.Oqu(e.lcZ(253,333,"editor.transform-width")),e.xp6(2),e.s9C("matTooltip",e.lcZ(255,335,"editor.transform-image-width-title")),e.xp6(4),e.Oqu(e.lcZ(259,337,"editor.transform-height")),e.xp6(2),e.s9C("matTooltip",e.lcZ(261,339,"editor.transform-image-height-title")),e.xp6(5),e.Oqu(e.lcZ(266,341,"editor.transform-url")),e.xp6(2),e.s9C("matTooltip",e.lcZ(268,343,"editor.transform-image-url-title")),e.xp6(5),e.Oqu(e.lcZ(273,345,"editor.transform-change-image")),e.xp6(2),e.s9C("matTooltip",e.lcZ(275,347,"editor.transform-change-image-title")),e.xp6(2),e.s9C("matTooltip",e.lcZ(277,349,"editor.transform-angle-title")),e.xp6(5),e.Oqu(e.lcZ(282,351,"editor.transform-angle")),e.xp6(5),e.Oqu(e.lcZ(287,353,"editor.transform-hide")),e.xp6(2),e.Q6J("ngModel",n.gaugeSettingsHide),e.xp6(3),e.Oqu(e.lcZ(292,355,"editor.transform-lock")),e.xp6(2),e.Q6J("ngModel",n.gaugeSettingsLock),e.xp6(4),e.Q6J("ngIf",n.panelAlignOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelAlignOpenState),e.xp6(2),e.Oqu(e.lcZ(301,357,"editor.align")),e.xp6(3),e.s9C("matTooltip",e.lcZ(304,359,"editor.align-left-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(307,361,"editor.align-center-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(310,363,"editor.align-right-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(313,365,"editor.align-top-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(316,367,"editor.align-middle-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(319,369,"editor.align-bottom-title")),e.xp6(6),e.Q6J("ngIf",n.panelFillOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelFillOpenState),e.xp6(2),e.Oqu(e.lcZ(328,371,"editor.stroke")),e.xp6(7),e.Oqu(e.lcZ(335,373,"editor.stroke-width")),e.xp6(2),e.s9C("matTooltip",e.lcZ(337,375,"editor.stroke-width-title")),e.xp6(4),e.Oqu(e.lcZ(341,377,"editor.stroke-style")),e.xp6(2),e.s9C("matTooltip",e.lcZ(343,379,"editor.stroke-style-title")),e.xp6(13),e.s9C("matTooltip",e.lcZ(357,381,"editor.stroke-joinmiter-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(361,383,"editor.stroke-joinround-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(365,385,"editor.stroke-joinbevel-title")),e.xp6(5),e.s9C("matTooltip",e.lcZ(370,387,"editor.stroke-capbutt-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(374,389,"editor.stroke-capsquare-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(378,391,"editor.stroke-capround-title")),e.xp6(7),e.Oqu(e.lcZ(384,393,"editor.stroke-shadow")),e.xp6(2),e.s9C("matTooltip",e.lcZ(386,395,"editor.stroke-shadow-title")),e.xp6(6),e.Q6J("ngIf",n.panelMarkerOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelMarkerOpenState),e.xp6(2),e.Oqu(e.lcZ(395,397,"editor.marker")),e.xp6(6),e.Oqu(e.lcZ(401,399,"editor.marker-start")),e.xp6(2),e.s9C("matTooltip",e.lcZ(404,401,"editor.marker-start-title")),e.xp6(5),e.Oqu(e.lcZ(408,403,"editor.marker-middle")),e.xp6(2),e.s9C("matTooltip",e.lcZ(411,405,"editor.marker-middle-title")),e.xp6(5),e.Oqu(e.lcZ(415,407,"editor.marker-end")),e.xp6(2),e.s9C("matTooltip",e.lcZ(418,409,"editor.marker-end-title")),e.xp6(6),e.Q6J("ngIf",n.panelHyperlinkOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelHyperlinkOpenState),e.xp6(2),e.Oqu(e.lcZ(426,411,"editor.hyperlink")),e.xp6(5),e.Oqu(e.lcZ(431,413,"editor.hyperlink-url")),e.xp6(3),e.Udp("display",n.selectedElement?"block":"none"),e.xp6(3),e.Q6J("ngIf",n.panelEventOpenState),e.xp6(1),e.Q6J("ngIf",!n.panelEventOpenState),e.xp6(2),e.Oqu(e.lcZ(440,415,"editor.interactivity")),e.xp6(3),e.Q6J("ngIf",n.selectedElement),e.xp6(15),e.s9C("matTooltip",e.lcZ(458,417,"editor.tools-launch-title")),e.xp6(5),e.s9C("matTooltip",e.lcZ(463,419,"editor.tools-zoom-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(467,421,"editor.tools-grid-title")),e.xp6(2),e.Q6J("ngIf",!n.gridOn),e.xp6(1),e.Q6J("ngIf",n.gridOn),e.xp6(2),e.s9C("matTooltip",e.lcZ(472,423,"editor.tools-undo-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(476,425,"editor.tools-redo-title")),e.xp6(6),e.s9C("matTooltip",e.lcZ(482,427,"editor.tools-clone-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(486,429,"editor.tools-delete-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(490,431,"editor.tools-movebottom-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(494,433,"editor.tools-movetop-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(498,435,"editor.tools-hyperlink-title")),e.xp6(6),e.s9C("matTooltip",e.lcZ(504,437,"editor.tools-clonemulti-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(508,439,"editor.tools-deletemulti-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(512,441,"editor.tools-group-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(515,443,"editor.tools-alignleft-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(519,445,"editor.tools-aligncenter-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(523,447,"editor.tools-alignright-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(527,449,"editor.tools-aligntop-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(531,451,"editor.tools-alignmiddle-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(535,453,"editor.tools-alignbottom-title")),e.xp6(5),e.s9C("matTooltip",e.lcZ(540,455,"editor.tools-dividevertical-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(544,457,"editor.tools-dividehorizontal-title")),e.xp6(5),e.s9C("matTooltip",e.lcZ(549,459,"editor.tools-ungroup-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(553,461,"editor.tools-svg-selector")),e.xp6(6),e.s9C("matTooltip",e.lcZ(559,463,"editor.tools-zoomlevel-title")),e.xp6(7),e.hij(" ",o.value," % "),e.xp6(15),e.Oqu(e.lcZ(581,465,"editor.tools-zoomlevel-fitcanvas")),e.xp6(3),e.Oqu(e.lcZ(584,467,"editor.tools-zoomlevel-fitsection")),e.xp6(3),e.Oqu(e.lcZ(587,469,"editor.tools-zoomlevel-fitcontent")),e.xp6(5),e.Udp("background",n.colorFill),e.Q6J("colorPicker",n.colorFill)("cpAlphaChannel","always")("cpPosition","top")("cpPresetColors",n.defaultColor)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButton",!0)("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass"),e.xp6(1),e.Udp("background",n.colorStroke),e.Q6J("colorPicker",n.colorStroke)("cpAlphaChannel","always")("cpPosition","top")("cpPresetColors",n.defaultColor)("cpCancelButton",!0)("cpCancelButtonClass","cpCancelButtonClass")("cpCancelButtonText","Cancel")("cpOKButton",!0)("cpOKButtonText","OK")("cpOKButtonClass","cpOKButtonClass"),e.xp6(2),e.s9C("matTooltip",e.lcZ(595,471,"editor.tools-fillcolor-title")),e.xp6(3),e.Udp("border-color",n.colorFill),e.xp6(5),e.Udp("border-color",n.colorStroke),e.s9C("matTooltip",e.lcZ(603,473,"editor.tools-strokecolor-title")),e.xp6(4),e.s9C("matTooltip",e.lcZ(607,475,"editor.tools-palettecolor-title")),e.xp6(11),e.Q6J("ngIf",n.editorMode===n.editorModeType.CARDS),e.xp6(1),e.Q6J("ngIf",n.editorMode===n.editorModeType.MAPS),e.xp6(194),e.Oqu(e.lcZ(813,477,"editor.interactivity")),e.xp6(4),e.Oqu(e.lcZ(817,479,"editor.edit-bind-of-tags")),e.xp6(4),e.Oqu(e.lcZ(821,481,"editor.cmenu-cut")),e.xp6(4),e.Oqu(e.lcZ(825,483,"editor.cmenu-copy")),e.xp6(4),e.Oqu(e.lcZ(829,485,"editor.cmenu-paste")),e.xp6(4),e.Oqu(e.lcZ(833,487,"editor.cmenu-paste-place")),e.xp6(4),e.Oqu(e.lcZ(837,489,"editor.cmenu-delete")),e.xp6(4),e.hij("",e.lcZ(841,491,"editor.cmenu-group")," "),e.xp6(6),e.hij("",e.lcZ(847,493,"editor.cmenu-ungroup")," "),e.xp6(6),e.hij("",e.lcZ(853,495,"editor.cmenu-bring-front")," "),e.xp6(6),e.hij("",e.lcZ(859,497,"editor.cmenu-bring-forward")," "),e.xp6(6),e.hij("",e.lcZ(865,499,"editor.cmenu-send-back")," "),e.xp6(6),e.hij("",e.lcZ(871,501,"editor.cmenu-send-backward")," "),e.xp6(7),e.Oqu(e.lcZ(878,503,"editor.cmenu-layer-duplicate")),e.xp6(4),e.Oqu(e.lcZ(882,505,"editor.cmenu-layer-delete")),e.xp6(4),e.Oqu(e.lcZ(886,507,"editor.cmenu-layer-marge-down")),e.xp6(4),e.Oqu(e.lcZ(890,509,"editor.cmenu-layer-marge-all"))}},dependencies:[l.mk,l.sg,l.O5,l.RF,l.n9,In,ht,Ui,D,et,Xe,$i,ue,Yn,qm,hg,dp,Df,tc,Zn,Jw,av,g0,ov,Cs,$A,uo,sge,Lge,Jge,fs,fN,rfe,ofe,Zfe,qfe,$fe,eme,Ame,GP,pme,Sme,Ni.X$],styles:[".editor-sidenav[_ngcontent-%COMP%]{position:fixed;margin-top:36px;height:calc(100% - 74px);padding:7px;width:350px}.sidepanel-selector[_ngcontent-%COMP%]{position:fixed;margin-top:36px;height:calc(100% - 74px);padding:7px;width:370px}@media (min-width: 1601px){.editor-sidenav[_ngcontent-%COMP%]{width:450px}}#svg_editor_container[_ngcontent-%COMP%]{background:#aaa;height:100%;width:100%;display:flex;flex-direction:column;position:absolute;top:0;left:0}.svg-workarea-toolbar[_ngcontent-%COMP%]{min-height:46px;height:46px}.svg-workarea-leftbar-p[_ngcontent-%COMP%]{box-shadow:none!important;background-color:var(--toolboxBackground);color:var(--toolboxColor)}.svg-workarea-leftbar-h[_ngcontent-%COMP%]{max-height:23px;text-align:center;vertical-align:middle;padding-left:0;padding-right:0;border-top:1px solid var(--toolboxBorder);margin-bottom:0;box-shadow:0 1px 3px #000}.svg-workarea-leftbar-h[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-top:5px!important;padding-left:3px;font-size:11px}.svg-workarea-flybar-h[_ngcontent-%COMP%]{max-height:23px;text-align:center;vertical-align:middle;padding-left:0;padding-right:0;border-top:1px solid var(--toolboxBorder);box-shadow:0 1px 3px #000}.svg-workarea-flybar-h[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-top:5px!important;padding-left:3px;font-size:11px}.svg-workarea-flybar-h[_ngcontent-%COMP%]:enabled .svg-workarea-flybar-h[_ngcontent-%COMP%]::selection{color:#fff}.svg-workarea-fly-p[_ngcontent-%COMP%]{box-shadow:none!important;background-color:var(--toolboxBackground);color:var(--toolboxColor);width:200px;padding-left:0;padding-right:0}.svg-property-split3[_ngcontent-%COMP%]:after{display:table;clear:both}.svg-property-split3[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block}.svg-property-split2[_ngcontent-%COMP%]:after{display:table;clear:both}.svg-property-split2[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block}.svg-property[_ngcontent-%COMP%]{color:var(--toolboxFlyColor)}.svg-property[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;font-size:10px;margin:0 5px 0 10px}.svg-property[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:block;margin:0 10px 12px;border:unset;background-color:inherit;color:inherit;border-bottom:1px solid var(--toolboxFlyColor)}.svg-workarea-container[_ngcontent-%COMP%]{display:block;height:100%}.svg-preview[_ngcontent-%COMP%]{background-color:#3058af36;height:0px;width:0px;z-index:1;position:absolute}#rulers[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{background-color:var(--svgEditRulersBackground)!important;color:var(--svgEditRulersColor)!important}#svgcanvas[_ngcontent-%COMP%]{background-color:var(--svgEditWorkareaBackground)!important}.contextMenu[_ngcontent-%COMP%]{background-color:var(--svgEditWorkareaContextMenu)!important}.contextMenu[_ngcontent-%COMP%] A[_ngcontent-%COMP%]{color:var(--svgEditWorkareaContextColor)!important}.contextMenu[_ngcontent-%COMP%] LI[_ngcontent-%COMP%]:not(.disabled) A[_ngcontent-%COMP%]:hover{color:var(--toolboxItemActiveColor)!important}.contextMenu[_ngcontent-%COMP%] LI.separator[_ngcontent-%COMP%]{margin-top:0!important;border-color:var(--svgEditWorkareaContextBorder)!important}.svg-tools-fly[_ngcontent-%COMP%]{z-index:9999;position:absolute;right:15px;top:55px;max-height:calc(100% - 75px);background-color:var(--toolboxBackground);box-shadow:0 1px 4px #000}.svg-tool-button[_ngcontent-%COMP%]{vertical-align:middle;display:inline-table;cursor:pointer;height:30px;width:30px;border-radius:50%;margin:2px;background-color:var(--toolboxButton)}.svg-tool-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;margin:auto}.svg-tool-button[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.1)}.svg-tool-active[_ngcontent-%COMP%], .svg-tool-active[_ngcontent-%COMP%]:active, .svg-tool-active[_ngcontent-%COMP%]:hover{background-color:#3059af}.leave-header-area[_ngcontent-%COMP%]{margin-top:36px}.svg-sidenav[_ngcontent-%COMP%]{min-width:160px;max-width:300px;width:300px;background:var(--sidenavBackground)}.tools_panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor)}.main-btn[_ngcontent-%COMP%]{height:34px;width:34px;min-width:unset!important;padding:unset!important;line-height:34px;margin-left:5px;margin-right:5px}.main-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px;height:unset;width:unset}.main-btn[_ngcontent-%COMP%] .to-top[_ngcontent-%COMP%], .main-btn[_ngcontent-%COMP%] .to-bottom[_ngcontent-%COMP%], .main-btn[_ngcontent-%COMP%] .to-path[_ngcontent-%COMP%]{display:inline-block;height:34px;width:34px}.main-btn[_ngcontent-%COMP%] .group[_ngcontent-%COMP%]{background:url(/assets/images/group.svg) no-repeat center center;background-size:contain;display:inline-block;height:34px;width:34px}.main-btn[_ngcontent-%COMP%] .ungroup[_ngcontent-%COMP%]{background:url(/assets/images/ungroup.svg) no-repeat center center;background-size:contain;display:inline-block;height:34px;width:34px}.main-btn-sep[_ngcontent-%COMP%]{width:1px;background:#888;border-left:1px outset #888;margin:5px 3px;padding:0;height:24px}.svg-element-selected[_ngcontent-%COMP%]{display:inline-flex}.view-panel[_ngcontent-%COMP%]{overflow:auto;cursor:s-resize}.leftbar-edit-btn[_ngcontent-%COMP%]{margin-top:2px;font-size:18px;height:18px;width:18px;padding-right:15px}.leftbar-panel[_ngcontent-%COMP%]{margin-top:4px;padding:0;font-size:11px;background-color:var(--toolboxPanelBackground);color:var(--toolboxColor);overflow:auto}.leftbar-panel.h200[_ngcontent-%COMP%]{max-height:200px}.leftbar-item[_ngcontent-%COMP%]{padding:3px 0 1px;display:flow-root}.leftbar-item-active[_ngcontent-%COMP%]{background-color:var(--toolboxItemActiveBackground);color:var(--toolboxItemActiveColor)}.leftbar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{float:left}.leftbar-item[_ngcontent-%COMP%] .leftbar-item-type[_ngcontent-%COMP%]{float:left;padding-left:4px;font-size:16px;line-height:20px;opacity:.5}.leftbar-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{float:right;font-size:18px} .svg-workarea-leftbar-p .mat-expansion-panel-body{margin:0!important;padding:0!important;flex-wrap:wrap!important} .svg-workarea-fly-p .mat-expansion-panel-body{margin:0!important;padding:0!important;flex-wrap:wrap!important} .mat-menu-item{font-size:11px;height:30px!important;line-height:unset!important}.rightbar-panel[_ngcontent-%COMP%]{margin-top:4px;background-color:var(--toolboxPanelBackground);color:var(--toolboxColor)}.rightbar-input[_ngcontent-%COMP%]{width:70px}.mat-expansion-panel-header-title[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-top:3px}.mat-expansion-panel-spacing[_ngcontent-%COMP%]{margin:0!important}.bottom-bar[_ngcontent-%COMP%]{position:absolute;left:0;right:0;bottom:0;height:30px;overflow:visible}.zoom-menu[_ngcontent-%COMP%]{float:left;padding-left:5px;width:90px}.zoom-value[_ngcontent-%COMP%]{border:unset;display:inline-block}.zoom-label[_ngcontent-%COMP%]{display:inline-block;height:25px}.zoom-value[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .zoom-value[_ngcontent-%COMP%] .selection[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{display:inline-block}.zoom-value[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{z-index:9999;background-color:var(--footZoomBackground);color:var(--footZoomColor);border:unset}.zoom-value[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], li[_ngcontent-%COMP%]{background-color:var(--footZoomBackground);color:var(--footZoomColor);border:unset}.zoom-value[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{left:0}.zoom-value[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover{background-color:var(--footZoomBackgroundHover)}.colors[_ngcontent-%COMP%]{position:absolute;left:25px;top:0}.colors-palette[_ngcontent-%COMP%]{position:absolute;inset:0 0 0 165px}.color-fill[_ngcontent-%COMP%]{position:relative;top:4px;left:12px;cursor:pointer;width:13px;height:13px;border:1px solid rgba(71,71,71,1)}.color-stroke[_ngcontent-%COMP%]{position:absolute;top:4px;left:30px;cursor:pointer;width:13px;height:13px;border:1px solid rgba(71,71,71,1)}.style-stroke[_ngcontent-%COMP%]{display:block!important;margin:0 10px 12px;background-color:inherit;color:inherit;background-color:var(--toolboxPanelBackground);color:var(--toolboxColor)}.style-stroke[_ngcontent-%COMP%] option[_ngcontent-%COMP%]{background-color:var(--toolboxPanelBackground);color:var(--toolboxColor)}.font-family[_ngcontent-%COMP%]{display:block;margin:0 10px 12px;background-color:inherit;color:inherit;width:174px}.font-family[_ngcontent-%COMP%] option[_ngcontent-%COMP%]{background-color:var(--toolboxPanelBackground);color:var(--toolboxColor)}.text-align[_ngcontent-%COMP%]{display:block;margin:0 10px 12px;background-color:inherit;color:inherit;width:75px}.text-align[_ngcontent-%COMP%] option[_ngcontent-%COMP%]{background-color:var(--toolboxPanelBackground);color:var(--toolboxColor)}.view-item-text[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 54px)}select#start_marker[_ngcontent-%COMP%] option[value=A][_ngcontent-%COMP%]{background:url(/assets/images/select-pointer.svg)}select#start_marker[_ngcontent-%COMP%] option[value=B][_ngcontent-%COMP%]{background:url(/assets/images/select-pointer.svg)}select#start_marker[_ngcontent-%COMP%] option[value=C][_ngcontent-%COMP%]{background:url(/assets/images/select-pointer.svg)}select#start_marker[_ngcontent-%COMP%] option[value=D][_ngcontent-%COMP%]{background:url(/assets/images/select-pointer.svg)}.icon-select[_ngcontent-%COMP%]{background:url(/assets/images/select-pointer.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-pencil[_ngcontent-%COMP%]{background:url(/assets/images/pencil.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-line[_ngcontent-%COMP%]{background:url(/assets/images/line.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-rect[_ngcontent-%COMP%]{background:url(/assets/images/rect.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-circle[_ngcontent-%COMP%]{background:url(/assets/images/circle.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-ellipse[_ngcontent-%COMP%]{background:url(/assets/images/ellipse.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-path[_ngcontent-%COMP%]{background:url(/assets/images/path.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-text[_ngcontent-%COMP%]{background:url(/assets/images/text.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-image[_ngcontent-%COMP%]{background:url(/assets/images/image.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-align-left[_ngcontent-%COMP%]{background:url(/assets/images/align-left.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-align-center[_ngcontent-%COMP%]{background:url(/assets/images/align-center.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-align-right[_ngcontent-%COMP%]{background:url(/assets/images/align-right.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-align-top[_ngcontent-%COMP%]{background:url(/assets/images/align-top.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-align-middle[_ngcontent-%COMP%]{background:url(/assets/images/align-middle.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-align-bottom[_ngcontent-%COMP%]{background:url(/assets/images/align-bottom.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-flip-orizontal[_ngcontent-%COMP%]{background:url(/assets/images/flip-orizontal.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-flip-vertical[_ngcontent-%COMP%]{background:url(/assets/images/flip-vertical.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-linejoin-miter[_ngcontent-%COMP%]{background:url(/assets/images/linejoin-miter.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-linejoin-round[_ngcontent-%COMP%]{background:url(/assets/images/linejoin-round.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-linejoin-bevel[_ngcontent-%COMP%]{background:url(/assets/images/linejoin-bevel.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-linecap-butt[_ngcontent-%COMP%]{background:url(/assets/images/linecap-butt.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-linecap-square[_ngcontent-%COMP%]{background:url(/assets/images/linecap-square.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-linecap-round[_ngcontent-%COMP%]{background:url(/assets/images/linecap-round.svg) no-repeat center center;background-size:contain;height:30px;width:30px}.icon-tool[_ngcontent-%COMP%]{background-size:auto;height:30px;width:30px;color:#fff;background-position:center;background-repeat:no-repeat}.material-icon-tool[_ngcontent-%COMP%]{text-align:center;line-height:30px;font-size:22px}.icon-switch[_ngcontent-%COMP%]{background:url(/assets/images/switch.svg) no-repeat center center}.icon-value[_ngcontent-%COMP%]{background:url(/assets/images/value.svg) no-repeat center center}.icon-editvalue[_ngcontent-%COMP%]{background:url(/assets/images/editvalue.svg) no-repeat center center}.icon-selectvalue[_ngcontent-%COMP%]{background:url(/assets/images/selectvalue.svg) no-repeat center center}.icon-progress-v[_ngcontent-%COMP%]{background:url(/assets/images/progress-v.svg) no-repeat center center}.icon-semaphore[_ngcontent-%COMP%]{background:url(/assets/images/semaphore.svg) no-repeat center center}.icon-button[_ngcontent-%COMP%]{background:url(/assets/images/button.svg) no-repeat center center}.icon-chart[_ngcontent-%COMP%]{background:url(/assets/images/chart.svg) no-repeat center center}.icon-bag[_ngcontent-%COMP%]{background:url(/assets/images/bag.svg) no-repeat center center}.icon-pipe[_ngcontent-%COMP%]{background:url(/assets/images/pipe.svg) no-repeat center center}.icon-slider[_ngcontent-%COMP%]{background:url(/assets/images/slider.svg) no-repeat center center}.icon-graphbar[_ngcontent-%COMP%]{background:url(/assets/images/graphbar.svg) no-repeat center center}.icon-table[_ngcontent-%COMP%]{background:url(/assets/images/table.svg) no-repeat center center}.icon-iframe[_ngcontent-%COMP%]{background:url(/assets/images/iframe.svg) no-repeat center center}"]})}return r})(),S0e=(()=>{class r{dialogRef;data;constructor(t,i){this.dialogRef=t,this.data=i}onNoClick(){this.dialogRef.close()}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["dialog-link-property"]],decls:19,vars:14,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],["mat-dialog-content",""],[1,"my-form-field",2,"display","block","margin-bottom","10px"],["type","text",2,"width","300px",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",4),e.NdJ("ngModelChange",function(s){return n.data.url=s}),e.qZA()()(),e.TgZ(12,"div",5)(13,"button",6),e.NdJ("click",function(){return n.onNoClick()}),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"button",7),e._uU(17),e.ALo(18,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,6,"dlg.linkproperty-title")),e.xp6(7),e.Oqu(e.lcZ(10,8,"dlg.linkproperty-url")),e.xp6(2),e.Q6J("ngModel",n.data.url),e.xp6(3),e.Oqu(e.lcZ(15,10,"dlg.cancel")),e.xp6(2),e.Q6J("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(18,12,"dlg.ok")))},dependencies:[I,et,$i,Yn,Cc,Qr,Kr,Ir,Zn,zr,Ni.X$],encapsulation:2})}return r})();var Op=function(r){return r[r.SVG=0]="SVG",r[r.CARDS=1]="CARDS",r[r.MAPS=2]="MAPS",r}(Op||{});function P0e(r,a){if(1&r&&(e.TgZ(0,"mat-option",27),e.ALo(1,"translate"),e._uU(2),e.ALo(3,"translate"),e.qZA()),2&r){const t=a.$implicit;e.s9C("matTooltip",e.lcZ(1,3,t.value+"-tooltip")),e.Q6J("value",t.key),e.xp6(2),e.hij(" ",e.lcZ(3,5,t.value)," ")}}function F0e(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",28)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"input",29),e.qZA(),e.BQk()),2&r&&(e.xp6(3),e.Oqu(e.lcZ(4,1,"device.tag-convert-datetime-format")))}function O0e(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",28)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"input",29),e.qZA(),e.BQk()),2&r&&(e.xp6(3),e.Oqu(e.lcZ(4,1,"device.tag-convert-ticktime-format")))}function L0e(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",30)(2,"div",31)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._UZ(6,"input",32),e.qZA(),e.TgZ(7,"div",33)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",34),e.qZA()(),e.TgZ(12,"div",30)(13,"div",31)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"input",35),e.qZA(),e.TgZ(18,"div",33)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"input",36),e.qZA()(),e.BQk()),2&r&&(e.xp6(4),e.Oqu(e.lcZ(5,4,"device.tag-raw-low")),e.xp6(5),e.Oqu(e.lcZ(10,6,"device.tag-raw-high")),e.xp6(6),e.Oqu(e.lcZ(16,8,"device.tag-scaled-low")),e.xp6(5),e.Oqu(e.lcZ(21,10,"device.tag-scaled-high")))}function R0e(r,a){if(1&r&&(e.TgZ(0,"mat-option",37),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}const bN=function(){return{standalone:!0}};function Y0e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41),e._UZ(1,"input",42),e.TgZ(2,"input",43),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.value=n)}),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(1),e.Q6J("value",t.name)("disabled",!0),e.xp6(1),e.Q6J("ngModel",t.value)("ngModelOptions",e.DdM(4,bN))}}function N0e(r,a){if(1&r&&(e.TgZ(0,"div",38)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",39),e.ALo(5,"translate"),e.YNc(6,Y0e,3,5,"div",40),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,3,"device.tag-scale-read-script-params")),e.xp6(2),e.s9C("matTooltip",e.lcZ(5,5,"device.tag-scale-script-params-tooltip")),e.xp6(2),e.Q6J("ngForOf",t.configedReadParams[t.formGroup.value.scaleReadFunction])}}function U0e(r,a){if(1&r&&(e.TgZ(0,"mat-option",37),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function z0e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41),e._UZ(1,"input",42),e.TgZ(2,"input",43),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.value=n)}),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(1),e.Q6J("value",t.name)("disabled",!0),e.xp6(1),e.Q6J("ngModel",t.value)("ngModelOptions",e.DdM(4,bN))}}function H0e(r,a){if(1&r&&(e.TgZ(0,"div",38)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",39),e.ALo(5,"translate"),e.YNc(6,z0e,3,5,"div",40),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,3,"device.tag-scale-write-script-params")),e.xp6(2),e.s9C("matTooltip",e.lcZ(5,5,"device.tag-scale-script-params-tooltip")),e.xp6(2),e.Q6J("ngForOf",t.configedWriteParams[t.formGroup.value.scaleWriteFunction])}}function G0e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",11)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",18),e.YNc(6,P0e,4,7,"mat-option",19),e.ALo(7,"enumToArray"),e.qZA()(),e.ynx(8,20),e.YNc(9,F0e,6,3,"ng-container",21),e.YNc(10,O0e,6,3,"ng-container",21),e.YNc(11,L0e,23,12,"ng-container",21),e.BQk(),e.TgZ(12,"div",11)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",22),e.ALo(17,"translate"),e.TgZ(18,"mat-option",23),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.formGroup.controls.scaleReadFunction.reset())}),e.qZA(),e.YNc(19,R0e,2,2,"mat-option",24),e.qZA()(),e.YNc(20,N0e,7,7,"div",25),e.TgZ(21,"div",11)(22,"span"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"mat-select",26),e.ALo(26,"translate"),e.TgZ(27,"mat-option",23),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.formGroup.controls.scaleWriteFunction.reset())}),e.qZA(),e.YNc(28,U0e,2,2,"mat-option",24),e.qZA()(),e.YNc(29,H0e,7,7,"div",25),e.qZA()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,14,"device.tag-scale")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(7,16,t.scaleModeType)),e.xp6(2),e.Q6J("ngSwitch",t.formGroup.controls.scaleMode.value),e.xp6(1),e.Q6J("ngSwitchCase","convertDateTime"),e.xp6(1),e.Q6J("ngSwitchCase","convertTickTime"),e.xp6(1),e.Q6J("ngSwitchCase","linear"),e.xp6(3),e.Oqu(e.lcZ(15,18,"device.tag-scale-read-script")),e.xp6(2),e.s9C("matTooltip",e.lcZ(17,20,"device.tag-scale-read-script-tooltip")),e.xp6(3),e.Q6J("ngForOf",t.scripts),e.xp6(1),e.Q6J("ngIf",(null==t.configedReadParams[t.formGroup.value.scaleReadFunction]?null:t.configedReadParams[t.formGroup.value.scaleReadFunction].length)>0),e.xp6(3),e.Oqu(e.lcZ(24,22,"device.tag-scale-write-script")),e.xp6(2),e.s9C("matTooltip",e.lcZ(26,24,"device.tag-scale-write-script-tooltip")),e.xp6(3),e.Q6J("ngForOf",t.scripts),e.xp6(1),e.Q6J("ngIf",(null==t.configedWriteParams[t.formGroup.value.scaleWriteFunction]?null:t.configedWriteParams[t.formGroup.value.scaleWriteFunction].length)>0)}}class Z0e extends Wo.lo{scriptId}let J0e=(()=>{class r{dialogRef;fb;data;projectService;formGroup;scaleModeType=Yi.Nq;scripts;configedReadParams={};configedWriteParams={};subscriptionLoad;constructor(t,i,n,o){this.dialogRef=t,this.fb=i,this.data=n,this.projectService=o}ngOnInit(){if(this.loadScripts(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{this.loadScripts()}),this.formGroup=this.fb.group({interval:[{value:60,disabled:!0},[Z.required,Z.min(0)]],changed:[{value:!1,disabled:!0}],enabled:[!1],restored:[!1],format:[null,[Z.min(0)]],deadband:null,scaleMode:"undefined",rawLow:null,rawHigh:null,scaledLow:null,scaledHigh:null,dateTimeFormat:null,scaleRead:null,scaleReadFunction:null,scaleWriteFunction:null}),this.formGroup.controls.enabled.valueChanges.subscribe(t=>{t?(this.formGroup.controls.interval.enable(),this.formGroup.controls.changed.enable()):(this.formGroup.controls.interval.disable(),this.formGroup.controls.changed.disable())}),this.data.tags.length>0){let t={value:null,valid:!0},i={value:null,valid:!0},n={value:null,valid:!0},o={value:null,valid:!0},s={value:null,valid:!0},c={value:null,valid:!0},g={value:null,valid:!0},B={value:null,valid:!0},O={value:null,valid:!0},ne={value:null,valid:!0},we={value:null,valid:!0},$e={value:null,valid:!0},nt={value:null,valid:!0},Ft={value:null,valid:!0};for(let pi=0;piWi.id===this.data.tags[pi].scaleReadFunction);if(this.data.tags[pi].scaleReadParams){const Wi=JSON.parse(this.data.tags[pi].scaleReadParams);this.initializeScriptParams(Ri,Wi,this.configedReadParams)}if(Ft.value||(Ft.value=this.data.tags[pi].scaleWriteFunction),Ri=this.scripts.find(Wi=>Wi.id===this.data.tags[pi].scaleWriteFunction),this.data.tags[pi].scaleWriteParams){const Wi=JSON.parse(this.data.tags[pi].scaleWriteParams);this.initializeScriptParams(Ri,Wi,this.configedWriteParams)}}let ei={};t.valid&&null!==t.value&&(ei={...ei,enabled:t.value}),i.valid&&null!==i.value&&(ei={...ei,changed:i.value}),o.valid&&null!==o.value&&(ei={...ei,restored:o.value}),n.valid&&!ii.cQ.isNullOrUndefined(n.value)&&(ei={...ei,interval:n.value}),s.valid&&s.value&&(ei={...ei,format:s.value}),c.valid&&c.value&&(ei={...ei,deadband:c.value}),g.valid&&g.value&&(ei={...ei,scaleMode:g.value,rawLow:B.value,rawHigh:O.value,scaledLow:ne.value,scaledHigh:we.value,dateTimeFormat:$e.value}),nt.valid&&nt.value&&(ei={...ei,scaleReadFunction:nt.value}),Ft.valid&&Ft.value&&(ei={...ei,scaleWriteFunction:Ft.value}),this.formGroup.patchValue(ei),this.data.device?.id===Yi.Bj.id&&this.formGroup.controls.scaleMode.disable(),this.formGroup.updateValueAndValidity(),this.onCheckScaleMode(this.formGroup.value.scaleMode)}this.formGroup.controls.scaleMode.valueChanges.subscribe(t=>{this.onCheckScaleMode(t)})}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}onCheckScaleMode(t){"linear"===t?(this.formGroup.controls.rawLow.setValidators(Z.required),this.formGroup.controls.rawHigh.setValidators(Z.required),this.formGroup.controls.scaledLow.setValidators(Z.required),this.formGroup.controls.scaledHigh.setValidators(Z.required)):(this.formGroup.controls.rawLow.clearValidators(),this.formGroup.controls.rawHigh.clearValidators(),this.formGroup.controls.scaledLow.clearValidators(),this.formGroup.controls.scaledHigh.clearValidators()),this.formGroup.controls.rawLow.updateValueAndValidity(),this.formGroup.controls.rawHigh.updateValueAndValidity(),this.formGroup.controls.scaledLow.updateValueAndValidity(),this.formGroup.controls.scaledHigh.updateValueAndValidity(),this.formGroup.updateValueAndValidity()}onNoClick(){this.dialogRef.close()}onOkClick(){let t,i;t=this.configedReadParams[this.formGroup.value.scaleReadFunction]?JSON.stringify(this.configedReadParams[this.formGroup.value.scaleReadFunction]):void 0,i=this.configedWriteParams[this.formGroup.value.scaleWriteFunction]?JSON.stringify(this.configedWriteParams[this.formGroup.value.scaleWriteFunction]):void 0,this.dialogRef.close({daq:new Yi.PC(this.formGroup.value.enabled,this.formGroup.value.changed,this.formGroup.value.interval,this.formGroup.value.restored),format:this.formGroup.value.format,deadband:this.formGroup.value.deadband?{value:this.formGroup.value.deadband,mode:Yi.jP.absolute}:void 0,scale:"undefined"!==this.formGroup.value.scaleMode?{mode:this.formGroup.value.scaleMode,rawLow:this.formGroup.value.rawLow,rawHigh:this.formGroup.value.rawHigh,scaledLow:this.formGroup.value.scaledLow,scaledHigh:this.formGroup.value.scaledHigh,dateTimeFormat:this.formGroup.value.dateTimeFormat}:null,scaleReadFunction:this.formGroup.value.scaleReadFunction,scaleReadParams:t,scaleWriteFunction:this.formGroup.value.scaleWriteFunction,scaleWriteParams:i})}disableForm(){return this.formGroup.invalid||this.paramsInValid()}paramsInValid(){return!!(this.formGroup.value.scaleReadFunction&&(this.configedReadParams[this.formGroup.value.scaleReadFunction]??[]).some(t=>!t.value)||this.formGroup.value.scaleWriteFunction&&(this.configedWriteParams[this.formGroup.value.scaleWriteFunction]??[]).some(t=>!t.value))}isFuxaServerTag(){return this.data.device?.id===Yi.Bj.id}loadScripts(){const t=this.projectService.getScripts().filter(i=>{if(i.parameters.length>0&&i.mode===Wo.EN.SERVER){if("value"!==i.parameters[0].name||i.parameters[0].type!==Wo.ZW.value)return!1;for(const n of i.parameters)if(n.type!==Wo.ZW.value)return!1;return!0}return!1});for(const i of t){const n=[];for(let o=1;og.name===c.name)){o=!0;break}return!!o||(n[t.id]=i,!1)}return!0}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Yr),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tag-options"]],decls:46,vars:30,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"block","mt10","flex",2,"text-align","center"],[1,"my-form-field","w100"],["color","primary","formControlName","enabled"],["color","primary","formControlName","changed"],["color","primary","formControlName","restored"],[1,"my-form-field","item-block"],["numberOnly","","formControlName","interval","min","0","type","number"],[1,"my-form-field","item-block","mt10"],["numberOnly","","formControlName","format","min","0","max","10","type","number"],["numberOnly","","formControlName","deadband","type","number"],[4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],["formControlName","scaleMode"],[3,"matTooltip","value",4,"ngFor","ngForOf"],[3,"ngSwitch"],[4,"ngSwitchCase"],["formControlName","scaleReadFunction",3,"matTooltip"],[3,"click"],[3,"value",4,"ngFor","ngForOf"],["class","my-form-field block mt5 ml15",4,"ngIf"],["formControlName","scaleWriteFunction",3,"matTooltip"],[3,"matTooltip","value"],[1,"my-form-field","item-block","mt5"],["formControlName","dateTimeFormat"],[1,"block","mt5"],[1,"my-form-field"],["formControlName","rawLow","type","number",2,"width","140px"],[1,"my-form-field","ml10"],["formControlName","rawHigh","type","number",2,"width","140px"],["formControlName","scaledLow","type","number",2,"width","140px"],["formControlName","scaledHigh","type","number",2,"width","140px"],[3,"value"],[1,"my-form-field","block","mt5","ml15"],[3,"matTooltip"],["class","item-param mt5",4,"ngFor","ngForOf"],[1,"item-param","mt5"],["matTooltip","item.name","type","text","readonly","",3,"value","disabled"],[1,"ml5",3,"ngModel","ngModelOptions","ngModelChange"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"div",5)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e._UZ(12,"mat-slide-toggle",6),e.qZA(),e.TgZ(13,"div",5)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"mat-slide-toggle",7),e.qZA(),e.TgZ(18,"div",5)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._UZ(22,"mat-slide-toggle",8),e.qZA()(),e.TgZ(23,"div",9)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e._UZ(27,"input",10),e.qZA(),e.TgZ(28,"div",11)(29,"span"),e._uU(30),e.ALo(31,"translate"),e.qZA(),e._UZ(32,"input",12),e.qZA(),e.TgZ(33,"div",11)(34,"span"),e._uU(35),e.ALo(36,"translate"),e.qZA(),e._UZ(37,"input",13),e.qZA(),e.YNc(38,G0e,30,26,"div",14),e.qZA(),e.TgZ(39,"div",15)(40,"button",16),e.NdJ("click",function(){return n.onNoClick()}),e._uU(41),e.ALo(42,"translate"),e.qZA(),e.TgZ(43,"button",17),e.NdJ("click",function(){return n.onOkClick()}),e._uU(44),e.ALo(45,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,12,"device.tag-options-title")),e.xp6(8),e.Oqu(e.lcZ(11,14,"device.tag-daq-enabled")),e.xp6(5),e.Oqu(e.lcZ(16,16,"device.tag-daq-changed")),e.xp6(5),e.Oqu(e.lcZ(21,18,"device.tag-daq-restored")),e.xp6(5),e.Oqu(e.lcZ(26,20,"device.tag-daq-interval")),e.xp6(5),e.Oqu(e.lcZ(31,22,"device.tag-format")),e.xp6(5),e.Oqu(e.lcZ(36,24,"device.tag-deadband")),e.xp6(3),e.Q6J("ngIf",!n.isFuxaServerTag()),e.xp6(3),e.Oqu(e.lcZ(42,26,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.disableForm()),e.xp6(1),e.Oqu(e.lcZ(45,28,"dlg.ok")))},dependencies:[l.sg,l.O5,l.RF,l.n9,In,I,qn,et,Xe,$n,Er,$i,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,bc,Cs,zr,fs,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:350px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .item-param[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .item-param[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:150px}"],changeDetection:0})}return r})();function j0e(r,a){if(1&r&&(e.TgZ(0,"mat-option",36),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t.name," ")}}function V0e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",29)(1,"button",30),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onGoBack())}),e.TgZ(2,"mat-icon",31),e._uU(3,"arrow_back"),e.qZA()(),e.TgZ(4,"div",32)(5,"span"),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"mat-select",33),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.deviceSelected=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.onDeviceChange(n.source))}),e.YNc(9,j0e,2,2,"mat-option",34),e.qZA()(),e.TgZ(10,"div",32)(11,"span"),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"input",35),e.NdJ("keyup",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.applyFilter(n.target.value))}),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(6),e.Oqu(e.lcZ(7,4,"device.list-device")),e.xp6(2),e.Q6J("value",t.deviceSelected),e.xp6(1),e.Q6J("ngForOf",t.devicesValue()),e.xp6(3),e.Oqu(e.lcZ(13,6,"device.list-filter"))}}function W0e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",39),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAddTag())}),e.ALo(1,"translate"),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()}2&r&&e.s9C("matTooltip",e.lcZ(1,1,"device.list-add"))}function K0e(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",37),e.YNc(1,W0e,4,3,"button",38),e.qZA()),2&r){const t=e.oxw();e.Q6J("ngClass","selectidthClass"),e.xp6(1),e.Q6J("ngIf",!t.readonly&&t.isDeviceToEdit)}}function q0e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",39),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onEditRow(n))}),e.ALo(1,"translate"),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()}2&r&&e.s9C("matTooltip",e.lcZ(1,1,"device.list-edit"))}function X0e(r,a){if(1&r&&(e.TgZ(0,"mat-cell",37),e.YNc(1,q0e,4,3,"button",38),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.Q6J("ngClass","selectidthClass"),e.xp6(1),e.Q6J("ngIf",!i.readonly&&i.isToEdit(i.deviceSelected.type,t))}}function $0e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-name")," "))}function e_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getTagLabel(t)," ")}}function t_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-address")," "))}function i_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getAddress(t)," ")}}function n_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-device")," "))}function r_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.deviceSelected.name," ")}}function o_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-type")," "))}function a_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.type," ")}}function s_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-min")," "))}function l_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.min," ")}}function c_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-max")," "))}function A_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.max," ")}}function d_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-value")," "))}function u_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.s9C("matTooltip",t.value),e.xp6(1),e.hij(" ",t.value," ")}}function h_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-timestamp")," "))}function p_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",e.xi3(2,1,t.timestamp,"dd-MM-yyyy HH:mm:ss")," ")}}function g_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-description")," "))}function f_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.s9C("matTooltip",t.description),e.xp6(1),e.Oqu(t.description)}}function m_e(r,a){1&r&&e._UZ(0,"mat-header-cell",40)}function __e(r,a){1&r&&(e.ynx(0),e.TgZ(1,"mat-icon"),e._uU(2,"settings_backup_restore"),e.qZA(),e.BQk())}function v_e(r,a){if(1&r&&(e.TgZ(0,"span",44),e._uU(1),e.qZA()),2&r){const t=e.oxw(3).$implicit;e.xp6(1),e.hij(" ",t.daq.interval," s ")}}function y_e(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"mat-icon"),e._uU(2,"storage"),e.qZA(),e.YNc(3,v_e,2,1,"span",43),e.BQk()),2&r){const t=e.oxw(2).$implicit;e.xp6(3),e.Q6J("ngIf",t.daq.interval)}}function w_e(r,a){if(1&r&&(e.TgZ(0,"div"),e.YNc(1,__e,3,0,"ng-container",42),e.YNc(2,y_e,4,1,"ng-container",42),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngIf",t.daq.restored),e.xp6(1),e.Q6J("ngIf",t.daq.enabled)}}function C_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e.YNc(1,w_e,3,2,"div",42),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.Q6J("ngIf",t.daq)}}function b_e(r,a){1&r&&e._UZ(0,"mat-header-cell",40)}function x_e(r,a){1&r&&(e.TgZ(0,"button",47)(1,"mat-icon"),e._uU(2,"warning_amber"),e.qZA()())}function B_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell",45),e.YNc(1,x_e,3,0,"button",46),e.qZA()),2&r){const t=a.$implicit;e.Q6J("matTooltip",t.error?t.error:null),e.xp6(1),e.Q6J("ngIf",t.error)}}function E_e(r,a){1&r&&e._UZ(0,"mat-header-cell")}function M_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",52),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().$implicit,o=e.oxw();return e.KtG(o.onEditOptions(n))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-options")," "))}function D_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",48)(2,"mat-icon"),e._uU(3,"more_vert"),e.qZA()(),e.TgZ(4,"mat-menu",49,50),e.YNc(6,M_e,3,3,"button",51),e.TgZ(7,"button",52),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onCopyTagToClipboard(o))}),e._uU(8),e.ALo(9,"translate"),e.qZA()()()}if(2&r){const t=e.MAs(5),i=e.oxw();e.xp6(1),e.Q6J("matMenuTriggerFor",t),e.xp6(5),e.Q6J("ngIf",!i.readonly&&i.isWithOptions),e.xp6(2),e.hij(" ",e.lcZ(9,3,"device.list-clipboard")," ")}}function T_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",39),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onRemoveAll())}),e.ALo(1,"translate"),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()}2&r&&e.s9C("matTooltip",e.lcZ(1,1,"device.list-remove-all"))}function I_e(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell"),e.YNc(1,T_e,4,3,"button",38),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!t.readonly)}}function k_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",39),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw();return n.stopPropagation(),e.KtG(s.onRemoveRow(o))}),e.ALo(1,"translate"),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()}2&r&&e.s9C("matTooltip",e.lcZ(1,1,"device.list-remove"))}function Q_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e.YNc(1,k_e,4,3,"button",38),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!t.readonly)}}function S_e(r,a){1&r&&(e.TgZ(0,"mat-header-cell",40),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.list-direction")," "))}function P_e(r,a){if(1&r&&(e.TgZ(0,"mat-cell",41),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.s9C("matTooltip",t.direction),e.xp6(1),e.hij(" ",t.direction," ")}}const xN=function(r){return{"min-width.px":r}};function F_e(r,a){if(1&r&&e._UZ(0,"mat-header-row",53),2&r){const t=e.oxw();e.Q6J("ngStyle",e.VKq(1,xN,t.tableWidth))}}function O_e(r,a){if(1&r&&e._UZ(0,"mat-row",54),2&r){const t=e.oxw();e.Q6J("ngStyle",e.VKq(1,xN,t.tableWidth))}}const L_e=function(){return[10,25,100]};let R_e=(()=>{class r{dialog;hmiService;translateService;changeDetector;projectService;tagPropertyService;defAllColumns=["select","name","address","device","type","value","timestamp","description","warning","logger","options","remove"];defInternalColumns=["select","name","device","type","value","timestamp","description","options","remove"];defGpipColumns=["select","name","device","address","direction","value","timestamp","description","logger","options","remove"];defWebcamColumns=["select","name","device","address","value","timestamp","description","logger","options","remove"];defAllRowWidth=1400;defClientRowWidth=1400;defInternalRowWidth=1200;displayedColumns=this.defAllColumns;dataSource=new Nn([]);selection=new xA(!0,[]);devices;deviceType=Yi.Yi;tableWidth=this.defAllRowWidth;tagsMap={};deviceSelected=null;isDeviceToEdit=!0;isWithOptions=!0;readonly=!1;save=new e.vpe;goto=new e.vpe;table;sort;trigger;paginator;constructor(t,i,n,o,s,c){this.dialog=t,this.hmiService=i,this.translateService=n,this.changeDetector=o,this.projectService=s,this.tagPropertyService=c}ngOnInit(){this.devices=this.projectService.getDevices(),!this.deviceSelected&&this.devices&&(this.deviceSelected=this.devices[0])}ngAfterViewInit(){this.dataSource.paginator=this.paginator,this.dataSource.sort=this.sort}mapTags(){this.devices=this.projectService.getDevices(),Object.values(this.devices).forEach(t=>{t.tags&&Object.values(t.tags).forEach(i=>{this.tagsMap[i.id]=i})}),this.setSelectedDevice(this.deviceSelected)}bindToTable(t){t||(t={}),this.dataSource.data=Object.values(t),this.hmiService.viewsTagsSubscribe(Object.keys(t))}onDeviceChange(t){this.dataSource.data=[],this.deviceSelected=t.value,this.setSelectedDevice(this.deviceSelected)}setSelectedDevice(t){this.devices=this.projectService.getDevices(),this.updateDeviceValue(),t&&(this.isDeviceToEdit=!Yi.AS.isWebApiProperty(t),Object.values(this.devices).forEach(i=>{i.name===t.name&&(this.deviceSelected=i,this.bindToTable(this.deviceSelected.tags))}),this.deviceSelected.type===Yi.Yi.internal?(this.displayedColumns=this.defInternalColumns,this.tableWidth=this.defInternalRowWidth):this.deviceSelected.type===Yi.Yi.GPIO?(this.displayedColumns=this.defGpipColumns,this.tableWidth=this.defAllRowWidth):this.deviceSelected.type===Yi.Yi.WebCam?(this.displayedColumns=this.defWebcamColumns,this.tableWidth=this.defAllRowWidth):(this.displayedColumns=this.defAllColumns,this.tableWidth=this.defAllRowWidth),this.isWithOptions=!(this.deviceSelected.type===this.deviceType.internal||this.deviceSelected.type===Yi.Yi.WebCam))}onGoBack(){this.goto.emit()}onRemoveRow(t){const i=this.dataSource.data.indexOf(t,0);this.dataSource.data[i]&&delete this.deviceSelected.tags[this.dataSource.data[i].id],this.bindToTable(this.deviceSelected.tags),this.projectService.setDeviceTags(this.deviceSelected)}onRemoveAll(){let t="";this.translateService.get("msg.tags-remove-all").subscribe(n=>{t=n}),this.dialog.open(qu,{disableClose:!0,data:{msg:t},position:{top:"60px"}}).afterClosed().subscribe(n=>{n&&this.clearTags()})}clearTags(){this.deviceSelected.tags={},this.bindToTable(this.deviceSelected.tags),this.projectService.setDeviceTags(this.deviceSelected)}isAllSelected(){return this.selection.selected.length===this.dataSource.data.length}masterToggle(){this.isAllSelected()?this.selection.clear():this.dataSource.data.forEach(t=>this.selection.select(t))}applyFilter(t){t=(t=t.trim()).toLowerCase(),this.dataSource.filter=t}onEditRow(t){this.deviceSelected.type===Yi.Yi.MQTTclient?this.editTopics(t):this.editTag(t,!1)}onEditOptions(t){this.editTagOptions([t])}onAddTag(){if(this.deviceSelected.type===Yi.Yi.OPCUA||this.deviceSelected.type===Yi.Yi.BACnet||this.deviceSelected.type===Yi.Yi.WebAPI)this.addOpcTags();else if(this.deviceSelected.type===Yi.Yi.MQTTclient)this.editTopics();else{let t=new Yi.Vp(ii.cQ.getGUID(Yi.$u));this.editTag(t,!0)}}addOpcTags(){this.deviceSelected.type!==Yi.Yi.OPCUA?this.deviceSelected.type!==Yi.Yi.BACnet?this.deviceSelected.type!==Yi.Yi.WebAPI||this.tagPropertyService.editTagPropertyWebapi(this.deviceSelected,this.tagsMap).subscribe(t=>{this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyBacnet(this.deviceSelected,this.tagsMap).subscribe(t=>{this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.addTagsOpcUa(this.deviceSelected,this.tagsMap).subscribe(t=>{this.bindToTable(this.deviceSelected.tags)})}getTagLabel(t){return this.deviceSelected.type===Yi.Yi.BACnet||this.deviceSelected.type===Yi.Yi.WebAPI?t.label||t.name:this.deviceSelected.type===Yi.Yi.OPCUA?t.label:t.name}getAddress(t){return t.address?this.deviceSelected.type===Yi.Yi.ModbusRTU||this.deviceSelected.type===Yi.Yi.ModbusTCP?parseInt(t.address)+parseInt(t.memaddress):this.deviceSelected.type===Yi.Yi.WebAPI?t.options?t.address+" / "+t.options.selval:t.address:this.deviceSelected.type===Yi.Yi.MQTTclient&&t.options&&t.options.subs&&"json"===t.type?this.tagPropertyService.formatAddress(t.address,t.memaddress):t.address:""}isToEdit(t,i){return t===Yi.Yi.SiemensS7||t===Yi.Yi.ModbusTCP||t===Yi.Yi.ModbusRTU||t===Yi.Yi.internal||t===Yi.Yi.EthernetIP||t===Yi.Yi.FuxaServer||t===Yi.Yi.OPCUA||t===Yi.Yi.GPIO||t===Yi.Yi.ADSclient||t===Yi.Yi.WebCam||t===Yi.Yi.MELSEC||!(t!==Yi.Yi.MQTTclient||!i||!i.options||!i.options.pubs&&!i.options.subs)}editTag(t,i){this.deviceSelected.type!==Yi.Yi.SiemensS7?this.deviceSelected.type!==Yi.Yi.FuxaServer?this.deviceSelected.type!==Yi.Yi.ModbusRTU&&this.deviceSelected.type!==Yi.Yi.ModbusTCP?this.deviceSelected.type!==Yi.Yi.internal?this.deviceSelected.type!==Yi.Yi.EthernetIP?this.deviceSelected.type!==Yi.Yi.OPCUA?this.deviceSelected.type!==Yi.Yi.ADSclient?this.deviceSelected.type!==Yi.Yi.GPIO?this.deviceSelected.type!==Yi.Yi.WebCam?this.deviceSelected.type!==Yi.Yi.MELSEC||this.tagPropertyService.editTagPropertyMelsec(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyWebcam(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyGpio(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyADSclient(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyOpcUa(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyEthernetIp(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyInternal(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyModbus(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyServer(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)}):this.tagPropertyService.editTagPropertyS7(this.deviceSelected,t,i).subscribe(n=>{this.tagsMap[t.id]=t,this.bindToTable(this.deviceSelected.tags)})}editTagOptions(t){this.dialog.open(J0e,{disableClose:!0,data:{device:this.deviceSelected,tags:t},position:{top:"60px"}}).afterClosed().subscribe(n=>{if(n){for(let o=0;o{this.bindToTable(this.deviceSelected.tags)})}onCopyTagToClipboard(t){ii.cQ.copyToClipboard(JSON.stringify(t))}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(aA.Bb),e.Y36(Ni.sK),e.Y36(e.sBO),e.Y36(wr.Y4),e.Y36(EL))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-device-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5),e.Gf(cc,5),e.Gf(Td,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first),e.iGM(o=e.CRH())&&(n.trigger=o.first),e.iGM(o=e.CRH())&&(n.paginator=o.first)}},inputs:{readonly:"readonly"},outputs:{save:"save",goto:"goto"},decls:52,vars:7,consts:[[1,"container"],["class","filter","style","color:var(--formInputColor)",4,"ngIf"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","address"],["matColumnDef","device"],["matColumnDef","type"],["matColumnDef","min"],["matColumnDef","max"],["matColumnDef","value"],[3,"matTooltip",4,"matCellDef"],["matColumnDef","timestamp"],["matColumnDef","description"],["matColumnDef","logger"],["matColumnDef","warning"],["matTooltipPosition","left",3,"matTooltip",4,"matCellDef"],["matColumnDef","options"],[4,"matHeaderCellDef"],["matColumnDef","remove"],["matColumnDef","direction"],[3,"ngStyle",4,"matHeaderRowDef"],["class","my-mat-row",3,"ngStyle",4,"matRowDef","matRowDefColumns"],[2,"position","relative","right","100px",3,"pageSizeOptions","pageSize"],[1,"filter",2,"color","var(--formInputColor)"],["mat-icon-button","","title","Device Map",2,"margin-right","10px","margin-left","-10px",3,"click"],["aria-label","Show devices map"],[1,"my-form-field",2,"padding-right","10px"],[2,"width","300px",3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["type","text",2,"width","450px",3,"keyup"],[3,"value"],[3,"ngClass"],["mat-icon-button","","class","remove",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","",1,"remove",3,"matTooltip","click"],["mat-sort-header",""],[3,"matTooltip"],[4,"ngIf"],["style","display: inline-block;vertical-align: super;",4,"ngIf"],[2,"display","inline-block","vertical-align","super"],["matTooltipPosition","left",3,"matTooltip"],["mat-icon-button","","class","warning",4,"ngIf"],["mat-icon-button","",1,"warning"],["mat-icon-button","",3,"matMenuTriggerFor"],["xPosition","before"],["options","matMenu"],["mat-menu-item","","class","context-menu",3,"click",4,"ngIf"],["mat-menu-item","",1,"context-menu",3,"click"],[3,"ngStyle"],[1,"my-mat-row",3,"ngStyle"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,V0e,15,8,"div",1),e.TgZ(2,"mat-table",2,3),e.ynx(4,4),e.YNc(5,K0e,2,2,"mat-header-cell",5),e.YNc(6,X0e,2,2,"mat-cell",6),e.BQk(),e.ynx(7,7),e.YNc(8,$0e,3,3,"mat-header-cell",8),e.YNc(9,e_e,2,1,"mat-cell",9),e.BQk(),e.ynx(10,10),e.YNc(11,t_e,3,3,"mat-header-cell",8),e.YNc(12,i_e,2,1,"mat-cell",9),e.BQk(),e.ynx(13,11),e.YNc(14,n_e,3,3,"mat-header-cell",8),e.YNc(15,r_e,2,1,"mat-cell",9),e.BQk(),e.ynx(16,12),e.YNc(17,o_e,3,3,"mat-header-cell",8),e.YNc(18,a_e,2,1,"mat-cell",9),e.BQk(),e.ynx(19,13),e.YNc(20,s_e,3,3,"mat-header-cell",8),e.YNc(21,l_e,2,1,"mat-cell",9),e.BQk(),e.ynx(22,14),e.YNc(23,c_e,3,3,"mat-header-cell",8),e.YNc(24,A_e,2,1,"mat-cell",9),e.BQk(),e.ynx(25,15),e.YNc(26,d_e,3,3,"mat-header-cell",8),e.YNc(27,u_e,2,2,"mat-cell",16),e.BQk(),e.ynx(28,17),e.YNc(29,h_e,3,3,"mat-header-cell",8),e.YNc(30,p_e,3,4,"mat-cell",9),e.BQk(),e.ynx(31,18),e.YNc(32,g_e,3,3,"mat-header-cell",8),e.YNc(33,f_e,2,2,"mat-cell",16),e.BQk(),e.ynx(34,19),e.YNc(35,m_e,1,0,"mat-header-cell",8),e.YNc(36,C_e,2,1,"mat-cell",9),e.BQk(),e.ynx(37,20),e.YNc(38,b_e,1,0,"mat-header-cell",8),e.YNc(39,B_e,2,2,"mat-cell",21),e.BQk(),e.ynx(40,22),e.YNc(41,E_e,1,0,"mat-header-cell",23),e.YNc(42,D_e,10,5,"mat-cell",9),e.BQk(),e.ynx(43,24),e.YNc(44,I_e,2,1,"mat-header-cell",23),e.YNc(45,Q_e,2,1,"mat-cell",9),e.BQk(),e.ynx(46,25),e.YNc(47,S_e,3,3,"mat-header-cell",8),e.YNc(48,P_e,2,2,"mat-cell",16),e.BQk(),e.YNc(49,F_e,1,3,"mat-header-row",26),e.YNc(50,O_e,1,3,"mat-row",27),e.qZA(),e._UZ(51,"mat-paginator",28),e.qZA()),2&i&&(e.xp6(1),e.Q6J("ngIf",n.deviceSelected),e.xp6(1),e.Q6J("dataSource",n.dataSource),e.xp6(47),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns),e.xp6(1),e.Q6J("pageSizeOptions",e.DdM(6,L_e))("pageSize",25))},dependencies:[l.mk,l.sg,l.O5,l.PC,Nr,Yn,Zn,zc,Hc,cc,Td,fo,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Cs,l.uU,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:1px 0 0}[_nghost-%COMP%] .filter[_ngcontent-%COMP%]{display:inline-block;min-height:50px;padding:8px 24px 0}[_nghost-%COMP%] .filter[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%]{font-size:14px;width:100%}[_nghost-%COMP%] .mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}[_nghost-%COMP%] .mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}[_nghost-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:15px}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 80px}[_nghost-%COMP%] .mat-column-name[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] .mat-column-address[_ngcontent-%COMP%]{flex:2 1 280px}[_nghost-%COMP%] .mat-column-device[_ngcontent-%COMP%]{flex:1 1 140px}[_nghost-%COMP%] .mat-column-type[_ngcontent-%COMP%]{flex:0 0 120px}[_nghost-%COMP%] .mat-column-value[_ngcontent-%COMP%]{flex:1 1 180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:10px}[_nghost-%COMP%] .mat-column-timestamp[_ngcontent-%COMP%]{flex:0 0 140px}[_nghost-%COMP%] .mat-column-description[_ngcontent-%COMP%]{flex:1 1 140px}[_nghost-%COMP%] .mat-column-logger[_ngcontent-%COMP%]{flex:0 0 80px;font-size:10px}[_nghost-%COMP%] .mat-column-logger[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;height:20px}[_nghost-%COMP%] .mat-column-info[_ngcontent-%COMP%]{flex:0 0 40px}[_nghost-%COMP%] .mat-column-warning[_ngcontent-%COMP%]{flex:0 0 30px}[_nghost-%COMP%] .mat-column-options[_ngcontent-%COMP%]{flex:0 0 60px}[_nghost-%COMP%] .mat-column-min[_ngcontent-%COMP%]{flex:0 0 100px}[_nghost-%COMP%] .mat-column-max[_ngcontent-%COMP%]{flex:0 0 100px}[_nghost-%COMP%] .mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}[_nghost-%COMP%] .mat-column-direction[_ngcontent-%COMP%]{flex:0 0 120px}[_nghost-%COMP%] .selectidthClass[_ngcontent-%COMP%]{flex:0 0 50px}[_nghost-%COMP%] .warning[_ngcontent-%COMP%]{color:red}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-12px;right:20px}[_nghost-%COMP%] .my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px}[_nghost-%COMP%] .context-menu[_ngcontent-%COMP%]{font-size:13px}"],changeDetection:0})}return r})();function Y_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-icon",5),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.removeFile())}),e._uU(1,"clear"),e.qZA()}}let N_e=(()=>{class r{fileService;toastNotifier;fileName;destination;onFileChange=new e.vpe;selectedFile;constructor(t,i){this.fileService=t,this.toastNotifier=i}onChange(t){this.selectedFile=t.target.files[0],this.fileService.upload(this.selectedFile,this.destination).subscribe(i=>{i.result?(this.onFileChange.emit(this.selectedFile),this.fileName=this.selectedFile.name):this.toastNotifier.notifyError("msg.file-upload-failed",i.error)})}removeFile(){this.selectedFile=null,this.onFileChange.emit(this.selectedFile),this.fileName=null}static \u0275fac=function(i){return new(i||r)(e.Y36(jP),e.Y36(vD.o))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-file-upload"]],inputs:{fileName:"fileName",destination:"destination"},outputs:{onFileChange:"onFileChange"},decls:8,vars:2,consts:[[1,"file-upload"],[1,"pointer",3,"click"],["type","file",2,"display","none",3,"change","click"],["file",""],["class","clear pointer",3,"click",4,"ngIf"],[1,"clear","pointer",3,"click"]],template:function(i,n){if(1&i){const o=e.EpF();e.TgZ(0,"div",0)(1,"mat-icon",1),e.NdJ("click",function(c){return e.CHM(o),e.MAs(4).click(),e.KtG(c.stopPropagation())}),e._uU(2,"upload"),e.qZA(),e.TgZ(3,"input",2,3),e.NdJ("change",function(c){return n.onChange(c)})("click",function(c){return c.stopPropagation()}),e.qZA(),e.TgZ(5,"span"),e._uU(6),e.qZA(),e.YNc(7,Y_e,2,0,"mat-icon",4),e.qZA()}2&i&&(e.xp6(6),e.Oqu(n.fileName),e.xp6(1),e.Q6J("ngIf",n.fileName))},dependencies:[l.O5,Zn],styles:[".file-upload[_ngcontent-%COMP%]{background-color:#0000001a}.file-upload[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:30px}.file-upload[_ngcontent-%COMP%] .clear[_ngcontent-%COMP%]{float:right}.file-upload[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:text-bottom;margin-left:10px;font-size:13px}"]})}return r})();const U_e=["panelProperty"],z_e=["panelCertificate"];function H_e(r,a){if(1&r&&(e.TgZ(0,"div",7),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.AsE(" ",e.lcZ(2,2,"msg.device-remove")," '",t.data.device.name,"' ? ")}}function G_e(r,a){1&r&&(e.TgZ(0,"h1",10),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.property-client"),""))}function Z_e(r,a){1&r&&(e.TgZ(0,"h1",10),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.property-server"),""))}function J_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div"),e.YNc(1,G_e,3,3,"h1",8),e.YNc(2,Z_e,3,3,"h1",8),e.TgZ(3,"mat-icon",9),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onNoClick())}),e._uU(4,"clear"),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!t.isFuxaServer),e.xp6(1),e.Q6J("ngIf",t.isFuxaServer)}}function j_e(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function V_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",20)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",21,22),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.data.device.type=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onDeviceTypeChanged())}),e.YNc(6,j_e,2,2,"mat-option",23),e.ALo(7,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,4,"device.property-type")),e.xp6(2),e.Q6J("value",t.data.device.type)("disabled",t.isFuxaServer),e.xp6(2),e.Q6J("ngForOf",e.lcZ(7,6,t.deviceType))}}function W_e(r,a){1&r&&(e.TgZ(0,"div",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"device.property-internal")," "))}function K_e(r,a){if(1&r&&(e.TgZ(0,"mat-option",29),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw(3);e.Q6J("value",t.value)("disabled",i.isFuxaServer&&t.value>3e3),e.xp6(1),e.hij(" ",t.text," ")}}function q_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",26)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",27),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.data.device.polling=n)}),e.YNc(5,K_e,2,3,"mat-option",28),e.qZA()()}if(2&r){const t=e.oxw(2);e.Udp("margin-left",t.isFuxaServer?0:15,"px"),e.xp6(2),e.Oqu(e.lcZ(3,5,"device.property-polling")),e.xp6(2),e.Q6J("value",t.data.device.polling),e.xp6(1),e.Q6J("ngForOf",t.pollingType)}}function X_e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",30)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-slide-toggle",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.data.device.enabled=n)}),e.qZA()()}if(2&r){const t=e.oxw(2);e.xp6(2),e.Oqu(e.lcZ(3,2,"device.property-enable")),e.xp6(2),e.Q6J("ngModel",t.data.device.enabled)}}function $_e(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.property-security")))}function eve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.not-property-security")))}function tve(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"mat-spinner",40),e.qZA())}function ive(r,a){if(1&r&&(e.TgZ(0,"mat-radio-button",46),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.value),e.xp6(1),e.Oqu(t.text)}}function nve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",47)(1,"div",48)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(5);return e.KtG(o.security.username=n)}),e.qZA()(),e.TgZ(6,"div",50)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",51),e.NdJ("keydown",function(n){e.CHM(t);const o=e.oxw(5);return e.KtG(o.keyDownStopPropagation(n))})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(5);return e.KtG(o.security.password=n)}),e.qZA(),e.TgZ(11,"mat-icon",52),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(5);return e.KtG(n.showPassword=!n.showPassword)}),e._uU(12),e.qZA()()()}if(2&r){const t=e.oxw(5);e.xp6(3),e.Oqu(e.lcZ(4,6,"general.username")),e.xp6(2),e.Q6J("ngModel",t.security.username),e.xp6(3),e.Oqu(e.lcZ(9,8,"general.password")),e.xp6(2),e.Q6J("type",t.showPassword?"text":"password")("ngModel",t.security.password),e.xp6(2),e.Oqu(t.showPassword?"visibility":"visibility_off")}}function rve(r,a){if(1&r&&(e.TgZ(0,"div",53)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw(5);e.xp6(2),e.Oqu(t.propertyError)}}function ove(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41)(1,"mat-radio-group",42),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.securityRadio=n)}),e.YNc(2,ive,2,2,"mat-radio-button",43),e.qZA(),e.YNc(3,nve,13,10,"div",44),e.YNc(4,rve,3,1,"div",45),e.qZA()}if(2&r){const t=e.oxw(4);e.xp6(1),e.Q6J("ngModel",t.securityRadio),e.xp6(1),e.Q6J("ngForOf",t.securityMode),e.xp6(1),e.Q6J("ngIf",!t.propertyError),e.xp6(1),e.Q6J("ngIf",t.propertyError)}}function ave(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",35)(7,"mat-expansion-panel",36,37),e.NdJ("closed",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!1))})("opened",function(){e.CHM(t);const n=e.oxw(3);return n.onPropertyExpand(!0),e.KtG(n.onCheckOpcUaServer())}),e.TgZ(9,"mat-expansion-panel-header",38)(10,"mat-panel-title"),e.YNc(11,$_e,3,3,"span",2),e.YNc(12,eve,3,3,"span",2),e.qZA()(),e.YNc(13,tve,2,0,"div",2),e.YNc(14,ove,5,4,"div",39),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,8,"device.property-address-opc")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(4),e.Q6J("collapsedHeight","32px")("expandedHeight","32px"),e.xp6(2),e.Q6J("ngIf",t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",!t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",t.propertyLoading),e.xp6(1),e.Q6J("ngIf",!t.propertyLoading)}}function sve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",54),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.ALo(6,"translate"),e.qZA()(),e.TgZ(7,"div",55)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",54),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.broadcastAddress=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.ALo(12,"translate"),e.qZA()(),e.TgZ(13,"div",20)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",56),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.adpuTimeout=n)}),e.ALo(18,"translate"),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,9,"device.property-interface-address")),e.xp6(2),e.s9C("placeholder",e.lcZ(6,11,"device.property-interface-address-ph")),e.Q6J("ngModel",t.data.device.property.address),e.xp6(4),e.Oqu(e.lcZ(10,13,"device.property-broadcast-address")),e.xp6(2),e.s9C("placeholder",e.lcZ(12,15,"device.property-broadcast-address-ph")),e.Q6J("ngModel",t.data.device.property.broadcastAddress),e.xp6(4),e.Oqu(e.lcZ(16,17,"device.property-adpu-timeout")),e.xp6(2),e.s9C("placeholder",e.lcZ(18,19,"device.property-adpu-timeout-ph")),e.Q6J("ngModel",t.data.device.property.adpuTimeout)}}function lve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",57)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",58),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.rack=n)}),e.qZA()(),e.TgZ(11,"div",20)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",58),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.slot=n)}),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,6,"device.property-address-s7")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(3),e.Oqu(e.lcZ(9,8,"device.property-rack")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.rack),e.xp6(3),e.Oqu(e.lcZ(14,10,"device.property-slot")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.slot)}}function cve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function Ave(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function dve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function uve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function hve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function pve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",59),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.connectionOption=n)}),e.YNc(6,cve,2,2,"mat-option",23),e.qZA()(),e.TgZ(7,"div",60)(8,"div",61)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"input",62),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(13,"div",63)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",64),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.slaveid=n)}),e.qZA()()(),e.TgZ(18,"div",57)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",65),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.baudrate=n)}),e.YNc(23,Ave,2,2,"mat-option",23),e.qZA()(),e.TgZ(24,"div",57)(25,"span"),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"mat-select",66),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.databits=n)}),e.YNc(29,dve,2,2,"mat-option",23),e.qZA()(),e.TgZ(30,"div",57)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"mat-select",66),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.stopbits=n)}),e.YNc(35,uve,2,2,"mat-option",23),e.qZA()(),e.TgZ(36,"div",20)(37,"span"),e._uU(38),e.ALo(39,"translate"),e.qZA(),e.TgZ(40,"mat-select",67),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.parity=n)}),e.YNc(41,hve,2,2,"mat-option",23),e.qZA()(),e.TgZ(42,"div",68)(43,"div",69)(44,"span"),e._uU(45),e.ALo(46,"translate"),e.qZA(),e.TgZ(47,"mat-slide-toggle",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.options=n)}),e.qZA()(),e.TgZ(48,"div",70)(49,"span"),e._uU(50),e.ALo(51,"translate"),e.qZA(),e.TgZ(52,"input",71),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.delay=n)}),e.qZA()()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,23,"device.property-connection-options")),e.xp6(2),e.Q6J("value",t.data.device.property.connectionOption),e.xp6(1),e.Q6J("ngForOf",t.modbusRtuOptionType),e.xp6(4),e.Oqu(e.lcZ(11,25,"device.property-serialport")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(3),e.Oqu(e.lcZ(16,27,"device.property-slave-id")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.slaveid),e.xp6(3),e.Oqu(e.lcZ(21,29,"device.property-baudrate")),e.xp6(2),e.Q6J("value",t.data.device.property.baudrate),e.xp6(1),e.Q6J("ngForOf",t.baudrateType),e.xp6(3),e.Oqu(e.lcZ(27,31,"device.property-databits")),e.xp6(2),e.Q6J("value",t.data.device.property.databits),e.xp6(1),e.Q6J("ngForOf",t.databitsType),e.xp6(3),e.Oqu(e.lcZ(33,33,"device.property-stopbits")),e.xp6(2),e.Q6J("value",t.data.device.property.stopbits),e.xp6(1),e.Q6J("ngForOf",t.stopbitsType),e.xp6(3),e.Oqu(e.lcZ(39,35,"device.property-parity")),e.xp6(2),e.Q6J("value",t.data.device.property.parity),e.xp6(1),e.Q6J("ngForOf",t.parityType),e.xp6(4),e.Oqu(e.lcZ(46,37,"device.property-tockenized")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.options),e.xp6(3),e.Oqu(e.lcZ(51,39,"device.property-delay")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.delay)}}function gve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function fve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function mve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",68)(2,"div",26)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"mat-select",72),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.connectionOption=n)}),e.YNc(7,gve,2,2,"mat-option",23),e.qZA()(),e.TgZ(8,"div",73)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"mat-select",74),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.socketReuse=n)}),e._UZ(13,"mat-option",24),e.YNc(14,fve,2,2,"mat-option",23),e.ALo(15,"enumToArray"),e.qZA()()(),e.TgZ(16,"div",20)(17,"span"),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"input",62),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(21,"div",63)(22,"span"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"input",64),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.slaveid=n)}),e.qZA()(),e.TgZ(26,"div",68)(27,"div",69)(28,"span"),e._uU(29),e.ALo(30,"translate"),e.qZA(),e.TgZ(31,"mat-slide-toggle",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.options=n)}),e.qZA()(),e.TgZ(32,"div",70)(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA(),e.TgZ(36,"input",71),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.delay=n)}),e.qZA()()()()}if(2&r){const t=e.oxw(3);e.xp6(4),e.Oqu(e.lcZ(5,14,"device.property-connection-options")),e.xp6(2),e.Q6J("value",t.data.device.property.connectionOption),e.xp6(1),e.Q6J("ngForOf",t.modbusTcpOptionType),e.xp6(3),e.Oqu(e.lcZ(11,16,"device.property-socket-reuse")),e.xp6(2),e.Q6J("value",t.data.device.property.socketReuse),e.xp6(2),e.Q6J("ngForOf",e.lcZ(15,18,t.modbusReuseModeType)),e.xp6(4),e.Oqu(e.lcZ(19,20,"device.property-address-port")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(3),e.Oqu(e.lcZ(24,22,"device.property-slave-id")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.slaveid),e.xp6(4),e.Oqu(e.lcZ(30,24,"device.property-tockenized")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.options),e.xp6(3),e.Oqu(e.lcZ(35,26,"device.property-delay")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.delay)}}function _ve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function vve(r,a){if(1&r&&(e.TgZ(0,"mat-option",24),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t," ")}}function yve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.property-webapi-result")))}function wve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.not-webapi-result")))}function Cve(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"mat-spinner",40),e.qZA())}function bve(r,a){if(1&r&&(e.TgZ(0,"div")(1,"div",79),e._uU(2),e.qZA()()),2&r){const t=e.oxw(4);e.xp6(2),e.hij(" ",t.result," ")}}function xve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",20)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",75),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.method=n)}),e.YNc(6,_ve,2,2,"mat-option",23),e.qZA()(),e.TgZ(7,"div",76)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",77),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.format=n)}),e.YNc(12,vve,2,2,"mat-option",23),e.qZA()(),e.TgZ(13,"div",13)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(18,"div",35)(19,"mat-expansion-panel",78,37),e.NdJ("closed",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!1))})("opened",function(){e.CHM(t);const n=e.oxw(3);return n.onPropertyExpand(!0),e.KtG(n.onCheckWebApi())}),e.TgZ(21,"mat-expansion-panel-header",38)(22,"mat-panel-title"),e.YNc(23,yve,3,3,"span",2),e.YNc(24,wve,3,3,"span",2),e.qZA()(),e.YNc(25,Cve,2,0,"div",2),e.YNc(26,bve,3,1,"div",2),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,15,"device.property-method")),e.xp6(2),e.Q6J("value",t.data.device.property.method),e.xp6(1),e.Q6J("ngForOf",t.methodType),e.xp6(3),e.Oqu(e.lcZ(10,17,"device.property-format")),e.xp6(2),e.Q6J("value",t.data.device.property.format),e.xp6(1),e.Q6J("ngForOf",t.parserType),e.xp6(3),e.Oqu(e.lcZ(16,19,"device.property-url")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(2),e.Q6J("disabled",!t.data.device.property.method||!t.data.device.property.address),e.xp6(2),e.Q6J("collapsedHeight","32px")("expandedHeight","32px"),e.xp6(2),e.Q6J("ngIf",t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",!t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",t.propertyLoading),e.xp6(1),e.Q6J("ngIf",!t.propertyLoading)}}function Bve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.property-security")))}function Eve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.not-property-security")))}function Mve(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"mat-spinner",40),e.qZA())}function Dve(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",82)(2,"div",48)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"input",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.security.clientId=n)}),e.qZA()(),e.TgZ(7,"div",48)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",49),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.security.username=n)}),e.qZA()(),e.TgZ(12,"div",48)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"input",51),e.NdJ("keydown",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.keyDownStopPropagation(n))})("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.security.password=n)}),e.qZA(),e.TgZ(17,"mat-icon",52),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(4);return e.KtG(n.showPassword=!n.showPassword)}),e._uU(18),e.qZA()()(),e.BQk()}if(2&r){const t=e.oxw(4);e.xp6(4),e.Oqu(e.lcZ(5,8,"general.clientId")),e.xp6(2),e.Q6J("ngModel",t.security.clientId),e.xp6(3),e.Oqu(e.lcZ(10,10,"general.username")),e.xp6(2),e.Q6J("ngModel",t.security.username),e.xp6(3),e.Oqu(e.lcZ(15,12,"general.password")),e.xp6(2),e.Q6J("type",t.showPassword?"text":"password")("ngModel",t.security.password),e.xp6(2),e.Oqu(t.showPassword?"visibility":"visibility_off")}}function Tve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",13)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",35)(7,"mat-expansion-panel",36,37),e.NdJ("closed",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!1))})("opened",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!0))}),e.TgZ(9,"mat-expansion-panel-header",80)(10,"mat-panel-title"),e.YNc(11,Bve,3,3,"span",2),e.YNc(12,Eve,3,3,"span",2),e.qZA()(),e.YNc(13,Mve,2,0,"div",2),e.YNc(14,Dve,19,14,"ng-container",2),e.qZA()(),e.TgZ(15,"div",35)(16,"mat-expansion-panel",36,81),e.NdJ("closed",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!1))})("opened",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!0))}),e.TgZ(18,"mat-expansion-panel-header",80)(19,"mat-panel-title")(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA()()(),e.ynx(23),e.TgZ(24,"div",82)(25,"div",83)(26,"span"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"app-file-upload",84),e.NdJ("onFileChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.security.certificateFileName=null!=n&&n.name?n.name:null)}),e.qZA()(),e.TgZ(30,"div",83)(31,"span"),e._uU(32),e.ALo(33,"translate"),e.qZA(),e.TgZ(34,"app-file-upload",84),e.NdJ("onFileChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.security.privateKeyFileName=null!=n&&n.name?n.name:null)}),e.qZA()(),e.TgZ(35,"div",83)(36,"span"),e._uU(37),e.ALo(38,"translate"),e.qZA(),e.TgZ(39,"app-file-upload",84),e.NdJ("onFileChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.security.caCertificateFileName=null!=n&&n.name?n.name:null)}),e.qZA()()(),e.BQk(),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,17,"device.property-mqtt-address")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(4),e.Q6J("collapsedHeight","32px")("expandedHeight","32px"),e.xp6(2),e.Q6J("ngIf",t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",!t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",t.propertyLoading),e.xp6(1),e.Q6J("ngIf",!t.propertyLoading),e.xp6(4),e.Q6J("collapsedHeight","32px")("expandedHeight","32px"),e.xp6(3),e.Oqu(e.lcZ(22,19,"device.property-certificate-section")),e.xp6(6),e.Oqu(e.lcZ(28,21,"device.property-certificate")),e.xp6(2),e.Q6J("fileName",t.security.certificateFileName),e.xp6(3),e.Oqu(e.lcZ(33,23,"device.property-certificate-key")),e.xp6(2),e.Q6J("fileName",t.security.privateKeyFileName),e.xp6(3),e.Oqu(e.lcZ(38,25,"device.property-certificate-ca")),e.xp6(2),e.Q6J("fileName",t.security.caCertificateFileName)}}function Ive(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",88)(1,"input",89),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.data.device.property.rack=n)}),e.qZA(),e.TgZ(2,"input",90),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.data.device.property.slot=n)}),e.qZA()()}if(2&r){const t=e.oxw(4);e.xp6(1),e.Q6J("ngModel",t.data.device.property.rack),e.xp6(1),e.Q6J("ngModel",t.data.device.property.slot)}}function kve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",20)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",85)(7,"div",86)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-slide-toggle",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.options=n)}),e.qZA()(),e.YNc(12,Ive,3,2,"div",87),e.qZA()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,5,"device.property-address-port")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(4),e.Oqu(e.lcZ(10,7,"device.property-routing")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.options),e.xp6(1),e.Q6J("ngIf",t.data.device.property.options)}}function Qve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.property-odbc-result")))}function Sve(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"device.not-odbc-result")))}function Pve(r,a){1&r&&(e.TgZ(0,"div"),e._UZ(1,"mat-spinner",40),e.qZA())}function Fve(r,a){if(1&r&&(e.TgZ(0,"mat-radio-button",46),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t)}}function Ove(r,a){if(1&r&&(e.TgZ(0,"div",96)(1,"span"),e._uU(2),e.qZA()()),2&r){const t=e.oxw(5);e.xp6(2),e.Oqu(t.propertyError)}}function Lve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",41)(1,"mat-radio-group",42),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(4);return e.KtG(o.tableRadio=n)}),e.YNc(2,Fve,2,2,"mat-radio-button",43),e.qZA(),e.YNc(3,Ove,3,1,"div",95),e.qZA()}if(2&r){const t=e.oxw(4);e.xp6(1),e.Q6J("ngModel",t.tableRadio),e.xp6(1),e.Q6J("ngForOf",t.databaseTables),e.xp6(1),e.Q6J("ngIf",t.propertyError)}}function Rve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",83)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",91)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",92),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.security.username=n)}),e.qZA()(),e.TgZ(11,"div",91)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",93),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.security.password=n)})("keydown",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.keyDownStopPropagation(n))}),e.qZA(),e.TgZ(16,"mat-icon",52),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.showPassword=!n.showPassword)}),e._uU(17),e.qZA()(),e.TgZ(18,"div",94)(19,"mat-expansion-panel",78,37),e.NdJ("closed",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onPropertyExpand(!1))})("opened",function(){e.CHM(t);const n=e.oxw(3);return n.onPropertyExpand(!0),e.KtG(n.onCheckOdbc())}),e.TgZ(21,"mat-expansion-panel-header",38)(22,"mat-panel-title"),e.YNc(23,Qve,3,3,"span",2),e.YNc(24,Sve,3,3,"span",2),e.qZA()(),e.YNc(25,Pve,2,0,"div",2),e.YNc(26,Lve,4,3,"div",39),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,15,"device.property-dsn")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(3),e.Oqu(e.lcZ(9,17,"general.username")),e.xp6(2),e.Q6J("ngModel",t.security.username),e.xp6(3),e.Oqu(e.lcZ(14,19,"general.password")),e.xp6(2),e.Q6J("ngModel",t.security.password)("type",t.showPassword?"text":"password"),e.xp6(2),e.Oqu(t.showPassword?"visibility":"visibility_off"),e.xp6(2),e.Q6J("disabled",!t.data.device.property.address),e.xp6(2),e.Q6J("collapsedHeight","32px")("expandedHeight","32px"),e.xp6(2),e.Q6J("ngIf",t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",!t.propertyExpanded),e.xp6(1),e.Q6J("ngIf",t.propertyLoading),e.xp6(1),e.Q6J("ngIf",!t.propertyLoading)}}function Yve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",55)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",55)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.local=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(11,"div",83)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"input",34),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.router=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,6,"device.property-ads-target")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(3),e.Oqu(e.lcZ(9,8,"device.property-ads-local")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.local),e.xp6(3),e.Oqu(e.lcZ(14,10,"device.property-ads-router")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.router)}}function Nve(r,a){1&r&&e._UZ(0,"div")}function Uve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",55)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",97),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.address=n)})("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddressChanged())}),e.qZA()(),e.TgZ(6,"div",68)(7,"div",98)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-slide-toggle",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.ascii=n)}),e.qZA()(),e.TgZ(12,"div",98)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-slide-toggle",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw(3);return e.KtG(o.data.device.property.octalIO=n)}),e.qZA()()()()}if(2&r){const t=e.oxw(3);e.xp6(3),e.Oqu(e.lcZ(4,6,"device.property-melsec-target")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.address),e.xp6(4),e.Oqu(e.lcZ(10,8,"device.property-melsec-ascii")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.ascii),e.xp6(3),e.Oqu(e.lcZ(15,10,"device.property-melsec-octalIO")),e.xp6(2),e.Q6J("ngModel",t.data.device.property.octalIO)}}function zve(r,a){if(1&r&&(e.TgZ(0,"div",32),e.YNc(1,ave,15,10,"div",33),e.YNc(2,sve,19,21,"div",33),e.YNc(3,lve,16,12,"div",33),e.YNc(4,pve,53,41,"div",33),e.YNc(5,mve,37,28,"div",33),e.YNc(6,xve,27,21,"div",33),e.YNc(7,Tve,40,27,"div",33),e.YNc(8,kve,13,9,"div",33),e.YNc(9,Rve,27,21,"div",33),e.YNc(10,Yve,16,12,"div",33),e.YNc(11,Nve,1,0,"div",33),e.YNc(12,Uve,17,12,"div",33),e.qZA()),2&r){const t=e.oxw(2);e.Q6J("ngSwitch",t.data.device.type),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.OPCUA),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.BACnet),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.SiemensS7),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.ModbusRTU),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.ModbusTCP),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.WebAPI),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.MQTTclient),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.EthernetIP),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.ODBC),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.ADSclient),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.Gpio),e.xp6(1),e.Q6J("ngSwitchCase",t.deviceType.MELSEC)}}function Hve(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",11)(1,"div",12)(2,"div",13)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"input",14),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.device.name=n)}),e.qZA()(),e.YNc(7,V_e,8,8,"div",15),e.YNc(8,W_e,3,3,"div",16),e.YNc(9,q_e,6,7,"div",17),e.YNc(10,X_e,5,4,"div",18),e.YNc(11,zve,13,13,"div",19),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,8,"device.property-name")),e.xp6(2),e.Q6J("ngModel",t.data.device.name)("disabled",t.isFuxaServer),e.xp6(1),e.Q6J("ngIf",!t.isFuxaServer),e.xp6(1),e.Q6J("ngIf",t.data.device.type===t.deviceType.internal),e.xp6(1),e.Q6J("ngIf",t.isWithPolling()),e.xp6(1),e.Q6J("ngIf",t.canEnable()),e.xp6(1),e.Q6J("ngIf",t.data.device.property&&t.data.device.type)}}let Gve=(()=>{class r{hmiService;translateService;appService;dialogRef;data;panelProperty;panelCertificate;tableRadio;databaseTables=[];securityRadio;mode;deviceType={};showPassword;pollingPlcType=[{text:"200 ms",value:200},{text:"350 ms",value:350},{text:"500 ms",value:500},{text:"700 ms",value:700},{text:"1 sec",value:1e3},{text:"1.5 sec",value:1500},{text:"2 sec",value:2e3},{text:"3 sec",value:3e3},{text:"4 sec",value:4e3},{text:"5 sec",value:5e3},{text:"10 sec",value:1e4},{text:"30 sec",value:3e4},{text:"1 min",value:6e4}];pollingWebApiType=[{text:"1 sec",value:1e3},{text:"2 sec",value:2e3},{text:"3 sec",value:3e3},{text:"5 sec",value:5e3},{text:"10 sec",value:1e4},{text:"30 sec",value:3e4},{text:"1 min",value:6e4},{text:"2 min",value:12e4},{text:"5 min",value:3e5},{text:"10 min",value:6e5},{text:"30 min",value:18e5},{text:"60 min",value:36e5}];pollingWebCamType=this.pollingWebApiType.concat([{text:"Disabled",value:-1}]);pollingType=this.pollingPlcType;isFuxaServer=!1;isToRemove=!1;propertyError="";propertyExpanded;propertyLoading;securityMode=[];security=new Yi.TP;baudrateType=[110,300,600,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200,128e3,256e3,921600];databitsType=[7,8];stopbitsType=[1,1.5,2];parityType=["None","Odd","Even"];methodType=["GET"];parserType=["JSON"];hostInterfaces=[];modbusRtuOptionType=[Yi.Lk.SerialPort,Yi.Lk.RTUBufferedPort,Yi.Lk.AsciiPort];modbusTcpOptionType=[Yi.Lk.TcpPort,Yi.Lk.UdpPort,Yi.Lk.TcpRTUBufferedPort,Yi.Lk.TelnetPort];modbusReuseModeType=Yi.TO;result="";subscriptionDeviceProperty;subscriptionHostInterfaces;subscriptionDeviceWebApiRequest;projectService;constructor(t,i,n,o,s){this.hmiService=t,this.translateService=i,this.appService=n,this.dialogRef=o,this.data=s,this.projectService=s.projectService}ngOnInit(){this.isToRemove=this.data.remove,this.isFuxaServer=!(!this.data.device.type||this.data.device.type!==Yi.Yi.FuxaServer);for(let t in Yi.Yi)if(!this.isFuxaServer&&t!==Yi.Yi.FuxaServer)for(let i=0;i{if(t.type===Yi.Yi.OPCUA)if(this.securityMode=[],t.result){let i=Yi.Qv;for(let n=0;n{t&&this.setSecurity(t.value)},t=>{console.error("get Device Security err: "+t)}),this.data.device.property&&(this.data.device.property.baudrate||(this.data.device.property.baudrate=9600),this.data.device.property.databits||(this.data.device.property.databits=8),this.data.device.property.stopbits||(this.data.device.property.stopbits=1),this.data.device.property.parity||(this.data.device.property.parity="None")),this.subscriptionHostInterfaces=this.hmiService.onHostInterfaces.subscribe(t=>{t.result&&(this.hostInterfaces=t)}),this.subscriptionDeviceWebApiRequest=this.hmiService.onDeviceWebApiRequest.subscribe(t=>{t.result&&(this.result=JSON.stringify(t.result)),this.propertyLoading=!1}),this.onDeviceTypeChanged()}ngOnDestroy(){try{this.subscriptionDeviceProperty&&this.subscriptionDeviceProperty.unsubscribe(),this.subscriptionHostInterfaces&&this.subscriptionHostInterfaces.unsubscribe(),this.subscriptionDeviceWebApiRequest&&this.subscriptionDeviceWebApiRequest.unsubscribe()}catch(t){console.error(t)}}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.security=this.getSecurity()}onCheckOpcUaServer(){this.propertyLoading=!0,this.propertyError="",this.hmiService.askDeviceProperty(this.data.device.property.address,this.data.device.type)}onCheckWebApi(){this.propertyLoading=!0,this.result="",this.hmiService.askWebApiProperty(this.data.device.property)}onCheckOdbc(){this.propertyLoading=!0,this.result="",this.hmiService.askDeviceProperty({address:this.data.device.property.address,uid:this.security.username,pwd:this.security.password,id:this.data.device.id},this.data.device.type)}onPropertyExpand(t){this.propertyExpanded=t}onAddressChanged(){this.propertyLoading=!1}onDeviceTypeChanged(){this.pollingType=this.data.device.type===Yi.Yi.WebAPI?this.pollingWebApiType:this.data.device.type===Yi.Yi.WebCam?this.pollingWebCamType:this.pollingPlcType}isValid(t){return!(!t.name||!t.type||this.data.exist.find(i=>i===t.name))}isSecurityMode(t){return JSON.stringify(this.mode)===JSON.stringify(t)}getSecurity(){if(this.propertyExpanded&&this.data.device.type===Yi.Yi.OPCUA){if(this.securityRadio||this.security.username||this.security.password)return{mode:this.securityRadio,uid:this.security.username,pwd:this.security.password}}else if(this.propertyExpanded&&this.data.device.type===Yi.Yi.MQTTclient){if(this.security.clientId||this.security.username||this.security.password||this.security.certificateFileName||this.security.privateKeyFileName||this.security.caCertificateFileName)return{clientId:this.security.clientId,uid:this.security.username,pwd:this.security.password,cert:this.security.certificateFileName,pkey:this.security.privateKeyFileName,caCert:this.security.caCertificateFileName}}else if(this.data.device.type===Yi.Yi.ODBC&&(this.tableRadio||this.security.username||this.security.password))return{mode:this.tableRadio,uid:this.security.username,pwd:this.security.password};return null}setSecurity(t){if(t&&"null"!==t){let i=JSON.parse(t);this.mode=i.mode,this.security.username=i.uid,this.security.password=i.pwd,this.security.clientId=i.clientId,this.security.grant_type=i.gt,(i.uid||i.pwd||i.clientId)&&this.panelProperty?.open(),this.security.certificateFileName=i.cert,this.security.privateKeyFileName=i.pkey,this.security.caCertificateFileName=i.caCert,(i.cert||i.pkey||i.caCert)&&this.panelCertificate?.open()}}keyDownStopPropagation(t){t.stopPropagation()}isWithPolling(){return!(this.data.device?.type===Yi.Yi.internal||this.appService.isClientApp||this.appService.isDemoApp)}canEnable(){return!(this.isFuxaServer||this.data.device?.type===this.deviceType.internal)}securityModeToString(t){let i=Yi.nP,n="";return t===i.NONE?this.translateService.get("device.security-none").subscribe(o=>{n=o}):t===i.SIGN?this.translateService.get("device.security-sign").subscribe(o=>{n=o}):t===i.SIGNANDENCRYPT&&this.translateService.get("device.security-signandencrypt").subscribe(o=>{n=o}),n}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb),e.Y36(Ni.sK),e.Y36(bg.z),e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-device-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(U_e,5),e.Gf(z_e,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.panelProperty=o.first),e.iGM(o=e.CRH())&&(n.panelCertificate=o.first)}},decls:11,vars:11,consts:[[2,"width","100%","position","relative"],["style","margin-top: 20px;margin-bottom: 20px;",4,"ngIf"],[4,"ngIf"],["style","overflow-y: hidden; overflow-x: hidden; padding-top: 5px;",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","mat-dialog-close","click"],[2,"margin-top","20px","margin-bottom","20px"],["mat-dialog-title","","style","display:inline-block; cursor:move; padding-top: 15px","mat-dialog-draggable","",4,"ngIf"],[2,"float","right","cursor","pointer","color","gray","position","relative","top","10px","right","0px",3,"click"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move","padding-top","15px"],[2,"overflow-y","hidden","overflow-x","hidden","padding-top","5px"],[2,"display","block"],[1,"my-form-field",2,"display","block","margin-bottom","10px"],["type","text",2,"width","350px",3,"ngModel","disabled","ngModelChange"],["class","my-form-field","style","display: inline-block;margin-bottom: 10px;",4,"ngIf"],["class","my-form-field","style","display: inline-block;margin-left: 15px;font-size: 14px;",4,"ngIf"],["class","my-form-field inbk ",3,"marginLeft",4,"ngIf"],["class","my-form-field","style","display: inline-block;margin-bottom: 10px;text-align: center;width: 80px;",4,"ngIf"],[3,"ngSwitch",4,"ngIf"],[1,"my-form-field",2,"display","inline-block","margin-bottom","10px"],[2,"width","160px",3,"value","disabled","valueChange","selectionChange"],["devicetype",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"my-form-field",2,"display","inline-block","margin-left","15px","font-size","14px"],[1,"my-form-field","inbk"],[2,"width","80px",3,"value","valueChange"],[3,"value","disabled",4,"ngFor","ngForOf"],[3,"value","disabled"],[1,"my-form-field",2,"display","inline-block","margin-bottom","10px","text-align","center","width","80px"],["color","primary",3,"ngModel","ngModelChange"],[3,"ngSwitch"],[4,"ngSwitchCase"],["type","ip",2,"width","350px",3,"ngModel","ngModelChange","click"],[1,"my-expansion-panel"],[3,"closed","opened"],["panelProperty",""],[1,"header",2,"padding-left","5px !important","padding-right","17px !important","font-size","13px",3,"collapsedHeight","expandedHeight"],["class","my-expansion-conent",4,"ngIf"],["diameter","20",2,"margin","auto"],[1,"my-expansion-conent"],[3,"ngModel","ngModelChange"],["style","display:block;padding-left:10px;padding-bottom:2px;font-size: 13px;",3,"value",4,"ngFor","ngForOf"],["style","display: block;margin: 5px 10px 0px 10px;",4,"ngIf"],["style","display: block;margin: 5px 10px 0px 10px;width: 315px; color: red;",4,"ngIf"],[2,"display","block","padding-left","10px","padding-bottom","2px","font-size","13px",3,"value"],[2,"display","block","margin","5px 10px 0px 10px"],[1,"my-form-field"],["type","text",2,"width","315px","background-color","var(--formInputExtBackground)",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"margin-top","5px"],["autocomplete","off",2,"width","315px","background-color","var(--formInputExtBackground)",3,"type","ngModel","keydown","ngModelChange"],["matSuffix","",1,"show-password",3,"click"],[2,"display","block","margin","5px 10px 0px 10px","width","315px","color","red"],["type","ip",1,"address",3,"ngModel","placeholder","ngModelChange","click"],[1,"my-form-field","block","mb10"],["numberOnly","","type","number",1,"adpu",3,"ngModel","placeholder","ngModelChange"],[1,"my-form-field",2,"display","inline-block","margin-bottom","10px","padding-right","10px"],["numberOnly","","type","text",2,"width","80px",3,"ngModel","ngModelChange"],[2,"width","262px",3,"value","valueChange"],[2,"display","block","margin-bottom","10px"],[1,"my-form-field",2,"display","inline-block"],["type","ip",2,"width","262px",3,"ngModel","ngModelChange","click"],[1,"my-form-field",2,"display","inline-block","margin-left","15px"],["numberOnly","","type","text",2,"width","65px",3,"ngModel","ngModelChange"],[2,"width","75px",3,"value","valueChange"],[2,"width","50px",3,"value","valueChange"],[2,"width","74px",3,"value","valueChange"],[1,"mb10","block"],[1,"my-form-field","inbk",2,"width","100px","text-align","center"],[1,"my-form-field","inbk",2,"display","inline-block","margin-left","50px"],["numberOnly","","type","number",2,"width","100px",3,"ngModel","ngModelChange"],[2,"width","200px",3,"value","valueChange"],[1,"my-form-field","inbk","ml10","ftr"],[2,"width","130px",3,"value","valueChange"],[2,"width","160px",3,"value","valueChange"],[1,"my-form-field",2,"margin-bottom","10px","float","right"],[2,"width","168px",3,"value","valueChange"],[3,"disabled","closed","opened"],[1,"my-form-field","multiline",2,"display","block","margin","5px 5px 0px 5px","font-size","13px"],[1,"header",3,"collapsedHeight","expandedHeight"],["panelCertificate",""],[1,"expand-panel"],[1,"my-form-field","block"],["destination","certificates",3,"fileName","onFileChange"],[2,"display","block","height","45px"],[1,"my-form-field",2,"display","inline-block","text-align","center","width","80px"],["class","my-form-field","style","display: inline-block; margin-left: 10px;",4,"ngIf"],[1,"my-form-field",2,"display","inline-block","margin-left","10px"],["numberOnly","","type","text",2,"width","20px",3,"ngModel","ngModelChange"],["numberOnly","","type","text",2,"width","20px","margin-left","5px",3,"ngModel","ngModelChange"],[1,"my-form-field","block","mt5"],["type","text",2,"width","350px",3,"ngModel","ngModelChange"],["autocomplete","off",2,"width","350px",3,"ngModel","type","ngModelChange","keydown"],[1,"my-form-field","my-expansion-panel"],["class","error",4,"ngIf"],[1,"error"],["placeholder","192.168.0.2:1281","type","ip",2,"width","350px",3,"ngModel","ngModelChange","click"],[1,"my-form-field","inbk","tac",2,"width","100px"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,H_e,3,4,"div",1),e.YNc(2,J_e,5,2,"div",2),e.YNc(3,Hve,12,10,"div",3),e.TgZ(4,"div",4)(5,"button",5),e.NdJ("click",function(){return n.onNoClick()}),e._uU(6),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"button",6),e.NdJ("click",function(){return n.onOkClick()}),e._uU(9),e.ALo(10,"translate"),e.qZA()()()),2&i&&(e.xp6(1),e.Q6J("ngIf",n.isToRemove),e.xp6(1),e.Q6J("ngIf",!n.isToRemove),e.xp6(1),e.Q6J("ngIf",!n.isToRemove),e.xp6(3),e.Oqu(e.lcZ(7,7,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",!n.isValid(n.data.device))("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(10,9,"dlg.ok")))},dependencies:[l.sg,l.O5,l.RF,l.n9,I,qn,et,$i,Nr,Yn,Cc,Qr,Ir,hg,dp,Df,Zn,kh,BA,sE,Dk,fo,bc,N_e,zr,fs,Ni.X$,ii.T9],styles:[".mat-expansion-panel-body{padding-left:5px!important;padding-right:5px!important}.my-expansion-panel[_ngcontent-%COMP%]{width:356px;display:block;margin-top:10px}.my-expansion-panel[_ngcontent-%COMP%] mat-expansion-panel[_ngcontent-%COMP%]{box-shadow:none!important;background-color:var(--formExtBackground);border-radius:2px}.my-expansion-panel[_ngcontent-%COMP%] .my-expansion-conent[_ngcontent-%COMP%]{padding-bottom:10px!important;max-height:320px;overflow:auto}.my-expansion-panel[_ngcontent-%COMP%] .error[_ngcontent-%COMP%]{display:block;line-height:20px;width:315px;color:red;font-size:13px}.multiline[_ngcontent-%COMP%]{overflow:auto;max-height:300px}.address[_ngcontent-%COMP%]{width:350px}.adpu[_ngcontent-%COMP%]{width:120px}.header[_ngcontent-%COMP%]{font-size:13px;padding-left:5px;padding-right:15px}.expand-panel[_ngcontent-%COMP%]{display:block;margin:5px 10px 10px}.expand-panel[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%]{margin-top:5px}"]})}return r})(),Zve=(()=>{class r{projectService;hmiService;translateService;dialogRef;data;cacheDevice;subscriptionDeviceTagsRequest;message="";constructor(t,i,n,o,s){this.projectService=t,this.hmiService=i,this.translateService=n,this.dialogRef=o,this.data=s}ngOnInit(){this.cacheDevice=JSON.parse(JSON.stringify(this.data.device)),this.subscriptionDeviceTagsRequest=this.hmiService.onDeviceTagsRequest.subscribe(t=>{if(t.result&&t.result.tags&&(this.translateService.get("msg.device-tags-request-result",{value:t.result.newTagsCount,current:t.result.tags.length}).subscribe(i=>{this.message=i}),t.result.newTagsCount)){for(let i=0;i{class r{dialog;translateService;elementRef;appService;pluginService;projectService;goto=new e.vpe;mode;readonly=!1;subscriptionPluginsChange;devicesViewMap=Yi.MC.map;devicesViewList=Yi.MC.list;deviceStatusType=Yi.Bl;displayedColumns=["select","name","type","polling","address","status","enabled","remove"];dataSource=new Nn([]);tableWidth=1200;table;sort;paginator;flowBorder=5;flowWidth=160;flowHeight=70;flowLineHeight=60;deviceBorder=5;deviceWidth=160;deviceHeight=90;deviceLineHeight=60;lineFlowSize=6;lineFlowHeight=60;lineDeviceSize=6;mainDeviceLineHeight=60;mainWidth=160;mainHeight=90;mainBorder=5;server;devices={};plugins=[];devicesStatus={};dirty=!1;domArea;constructor(t,i,n,o,s,c){this.dialog=t,this.translateService=i,this.elementRef=n,this.appService=o,this.pluginService=s,this.projectService=c,this.domArea=this.elementRef.nativeElement.parent}ngOnInit(){this.loadCurrentProject(),this.loadAvailableType(),this.subscriptionPluginsChange=this.pluginService.onPluginsChanged.subscribe(t=>{this.loadAvailableType()}),Object.keys(this.deviceStatusType).forEach(t=>{this.translateService.get(this.deviceStatusType[t]).subscribe(i=>{this.deviceStatusType[t]=i})})}ngAfterViewInit(){this.appService.isClientApp&&(this.mainDeviceLineHeight=0,this.mainHeight=0,this.flowLineHeight=0,this.flowHeight=0,this.lineFlowHeight=0),this.dataSource.paginator=this.paginator,this.dataSource.sort=this.sort}ngOnDestroy(){try{this.subscriptionPluginsChange&&this.subscriptionPluginsChange.unsubscribe()}catch{}}onEditDevice(t){Yi.AS.isWebApiProperty(t)?this.showDeviceWebApiProperty(t):this.editDevice(t,!1)}loadCurrentProject(){let t=this.projectService.getProject();this.devices=this.projectService.getDevices(),t&&t.server&&(this.server=this.devices[t.server.id]),this.loadDevices()}loadDevices(){this.devices=this.projectService.checkSystemTags(),this.dataSource.data=Object.values(this.devices)}loadAvailableType(){this.plugins=[],this.appService.isClientApp||this.appService.isDemoApp||(this.pluginService.getPlugins().subscribe(t=>{Object.values(t).forEach(i=>{i.current.length&&this.plugins.push(i.type)})},t=>{}),this.plugins.push(Yi.Yi.WebAPI),this.plugins.push(Yi.Yi.MQTTclient)),this.plugins.push(Yi.Yi.internal)}addDevice(){let t=new Yi.AS(ii.cQ.getGUID(Yi.pP));t.property=new Yi.mT,t.enabled=!1,t.tags={},this.editDevice(t,!1)}onRemoveDevice(t){this.editDevice(t,!0)}removeDevice(t){delete this.devices[t.id],this.loadDevices()}getWindowWidth(){let t=window.innerWidth;return this.appService.isClientApp&&this.elementRef.nativeElement&&this.elementRef.nativeElement.parentElement&&(t=this.elementRef.nativeElement.parentElement.clientWidth),this.devices&&(t<(this.plcs().length+2)*this.deviceWidth&&(t=(this.plcs().length+2)*this.deviceWidth),t<(this.flows().length+2)*this.deviceWidth&&(t=(this.flows().length+2)*this.deviceWidth)),t}getHorizontalCenter(){return this.getWindowWidth()/2}getVerticalCenter(){return this.devices&&this.plcs().length&&this.flows().length?window.innerHeight/5*2:this.flows().length?window.innerHeight/2:window.innerHeight/3}getMainLeftPosition(){return this.getHorizontalCenter()-this.mainWidth/2}getMainTopPosition(){return this.getVerticalCenter()-this.mainHeight/2}getMainLineLeftPosition(){return this.getHorizontalCenter()-1+this.lineDeviceSize/2}getMainLineTopPosition(t=null){return"flow"===t?this.getVerticalCenter()+this.mainBorder-(this.lineFlowHeight+this.mainHeight/2):this.getVerticalCenter()+this.mainBorder+this.mainHeight/2}getMainLineHeight(t=null){if(this.devices)if("flow"===t){if(this.flows().length)return this.lineFlowHeight}else if(this.plcs().length)return this.mainDeviceLineHeight;return 0}getDeviceLeftPosition(t,i=null){if(this.devices)if("flow"===i){if(this.flows().length){let n=t+1,o=this.flows().length+1;return(this.getWindowWidth()-this.flowWidth)/o*n}}else if(this.plcs().length){let n=t+1,o=this.plcs().length+1;return(this.getWindowWidth()-this.deviceWidth)/o*n}return 0}getDeviceTopPosition(t=null){if(this.server)return"flow"===t?this.getDeviceLineTopPosition(t)-(this.flowHeight+2*this.flowBorder):this.getVerticalCenter()+(this.mainHeight/2+this.deviceLineHeight+this.mainDeviceLineHeight);{let i=this.elementRef.nativeElement.parentElement.clientHeight/2;return i<200&&(i=200),"flow"===t?i-=2*this.mainHeight:i+=this.mainHeight/2,i}}getDeviceLineLeftPosition(t,i=null){if(this.devices)if("flow"===i){if(this.flows().length){let n=t+1,o=this.flows().length+1,s=(this.getWindowWidth()-this.flowWidth)/o*n;return s+=this.flowBorder+this.flowWidth/2-this.lineDeviceSize/2,s}}else if(this.plcs().length){let n=t+1,o=this.plcs().length+1,s=(this.getWindowWidth()-this.deviceWidth)/o*n;return s+=this.deviceBorder+this.deviceWidth/2-this.lineDeviceSize/2,s}return 0}getDeviceLineTopPosition(t=null){return"flow"===t?this.getDeviceConnectionTopPosition(t)+this.lineFlowSize-this.flowLineHeight:this.getDeviceTopPosition(t)-this.deviceLineHeight}getDeviceConnectionLeftPosition(t=null){if("flow"===t){let i=this.flows().length+1,n=(this.getWindowWidth()-this.flowWidth)/i*1;return n+=this.deviceBorder+(this.flowWidth-this.lineFlowSize)/2,n}{let i=this.plcs().length+1,n=(this.getWindowWidth()-this.deviceWidth)/i*1;return n+=this.deviceBorder+(this.deviceWidth-this.lineDeviceSize)/2,n}}getDeviceConnectionTopPosition(t=null){return"flow"===t?this.getMainLineTopPosition(t)-this.lineFlowSize:this.getDeviceLineTopPosition()}getDeviceConnectionWidth(t=null){if(this.devices)if("flow"===t){let i=this.flows().length;if(i){let n=this.flows().length+1;return(this.getWindowWidth()-this.flowWidth)/n*i-(this.getWindowWidth()-this.flowWidth)/n*1}}else{let i=this.plcs().length;if(i){let n=this.plcs().length+1;return(this.getWindowWidth()-this.deviceWidth)/n*i-(this.getWindowWidth()-this.deviceWidth)/n*1}}return 0}devicesValue(t=null){if(this.devices)if("flow"===t){if(this.flows().length)return this.flows().sort((n,o)=>n.name>o.name?1:-1)}else if(this.plcs().length)return this.plcs().sort((n,o)=>n.name>o.name?1:-1);return[]}onListDevice(t){this.goto.emit(t)}withListConfig(t){return t.type!==Yi.Yi.ODBC}isDevicePropertyToShow(t){if(t.property&&"OPCUA"!==t.type)return!0}isClientDevice(t){return this.appService.isClientApp}isServer(t){return this.server.id===t.id}getDeviceAddress(t){return t.property?t.property.address:""}getDevicePropertyToShow(t){let i="";return t.property&&(t.type===Yi.Yi.OPCUA?i="OPC-UA":t.type===Yi.Yi.SiemensS7?(i="Port: ",t.property.port&&(i+=t.property.port),i+=" / Rack: ",t.property.rack&&(i+=t.property.rack),i+=" / Slot: ",t.property.slot&&(i+=t.property.slot)):t.type===Yi.Yi.ModbusTCP?(i="Modbus-TCP Slave ID: ",t.property.slaveid&&(i+=t.property.slaveid)):t.type===Yi.Yi.ModbusRTU&&(i="Modbus-RTU Slave ID: ",t.property.slaveid&&(i+=t.property.slaveid))),i}getDeviceStatusColor(t){if(this.devicesStatus[t.id]){let i=(new Date).getTime();this.devicesStatus[t.id].last+15e3c.id!==t.id).map(c=>c.name);n.push("server");let o=JSON.parse(JSON.stringify(t));this.dialog.open(Gve,{disableClose:!0,panelClass:"dialog-property",data:{device:o,remove:i,exist:n,availableType:this.plugins,projectService:this.projectService},position:{top:"60px"}}).afterClosed().subscribe(c=>{if(c){if(this.dirty=!0,i)this.removeDevice(t),this.projectService.removeDevice(t);else{let g=JSON.parse(JSON.stringify(t));t.name=o.name,t.type=o.type,t.enabled=o.enabled,t.polling=o.polling,(this.appService.isClientApp||this.appService.isDemoApp)&&delete t.property,t.property&&o.property&&(t.property.address=o.property.address,t.property.port=parseInt(o.property.port),t.property.slot=parseInt(o.property.slot),t.property.rack=parseInt(o.property.rack),t.property.slaveid=o.property.slaveid,t.property.baudrate=o.property.baudrate,t.property.databits=o.property.databits,t.property.stopbits=o.property.stopbits,t.property.parity=o.property.parity,t.property.options=o.property.options,t.property.delay=o.property.delay,t.property.method=o.property.method,t.property.format=o.property.format,t.property.broadcastAddress=o.property.broadcastAddress,t.property.adpuTimeout=o.property.adpuTimeout,t.property.local=o.property.local,t.property.router=o.property.router,t.type===Yi.Yi.MELSEC&&(t.property.ascii=o.property.ascii,t.property.octalIO=o.property.octalIO),o.property.connectionOption&&(t.property.connectionOption=o.property.connectionOption),t.property.socketReuse=t.type===Yi.Yi.ModbusTCP?o.property.socketReuse:null),this.projectService.setDevice(t,g,c.security)}this.loadDevices()}})}showDeviceWebApiProperty(t){this.dialog.open(Zve,{data:{device:t},position:{top:"60px"}}).afterClosed().subscribe(()=>{})}plcs(){return Object.values(this.devices).filter(t=>t.type!==Yi.Yi.WebAPI&&t.type!==Yi.Yi.FuxaServer&&t.type!==Yi.Yi.ODBC&&t.type!==Yi.Yi.internal)}flows(){return Object.values(this.devices).filter(t=>t.type===Yi.Yi.WebAPI||t.type===Yi.Yi.ODBC||t.type===Yi.Yi.internal)}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(e.SBq),e.Y36(bg.z),e.Y36(GC),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-device-map"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5),e.Gf(Td,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first),e.iGM(o=e.CRH())&&(n.paginator=o.first)}},inputs:{mode:"mode",readonly:"readonly"},outputs:{goto:"goto"},decls:31,vars:8,consts:[[4,"ngIf"],[1,"container",3,"ngClass"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","type"],["matColumnDef","polling"],["matColumnDef","address"],["matColumnDef","status"],[3,"color",4,"matCellDef"],["matColumnDef","enabled"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[3,"ngStyle",4,"matHeaderRowDef"],["class","my-mat-row",3,"ngStyle",4,"matRowDef","matRowDefColumns"],[2,"position","relative","right","100px",3,"pageSizeOptions","pageSize"],[1,"container"],["class","main-device",3,"left","top","width","height","borderWidth",4,"ngIf"],["class","node-flow",3,"color","left","top","width","height","borderWidth",4,"ngFor","ngForOf"],[3,"ngClass","color","left","top","width","height","borderWidth",4,"ngFor","ngForOf"],[1,"main-line-flow"],["class","flow-line",3,"left","top","width","height",4,"ngFor","ngForOf"],[1,"connection-line"],[1,"main-line"],["class","device-line",3,"left","top","width","height",4,"ngFor","ngForOf"],[1,"flow-line"],[1,"device-line"],[1,"main-device"],[1,"device-header",2,"padding-top","10px"],[1,"device-pro"],["mat-icon-button","","class","device-icon device-list mat-button-sm",3,"right","matTooltip","click",4,"ngIf"],["mat-icon-button","","class","device-edit mat-button-sm",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","",1,"device-icon","device-list","mat-button-sm",3,"matTooltip","click"],["mat-icon-button","",1,"device-edit","mat-button-sm",3,"matTooltip","click"],[2,"font-size","17px"],[1,"node-flow"],[1,"device-header",2,"color","black"],["class","device-pro",4,"ngIf"],[1,"device-pro",2,"padding-bottom","10px"],["class","device-status",3,"background-color",4,"ngIf"],["mat-icon-button","","class","device-list mat-button-sm",3,"right","matTooltip","click",4,"ngIf"],["mat-icon-button","","class","device-delete mat-button-sm",3,"matTooltip","click",4,"ngIf"],[1,"device-status"],["mat-icon-button","",1,"device-list","mat-button-sm",3,"matTooltip","click"],["mat-icon-button","",1,"device-delete","mat-button-sm",3,"matTooltip","click"],[3,"ngClass"],[1,"device-header"],["mat-icon-button","","class","remove",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","",1,"remove",3,"matTooltip","click"],["mat-sort-header",""],[3,"ngStyle"],[1,"my-mat-row",3,"ngStyle"]],template:function(i,n){1&i&&(e.YNc(0,Aye,6,4,"div",0),e.TgZ(1,"div",1)(2,"mat-table",2,3),e.ynx(4,4),e.YNc(5,uye,2,2,"mat-header-cell",5),e.YNc(6,gye,3,3,"mat-cell",6),e.BQk(),e.ynx(7,7),e.YNc(8,fye,3,3,"mat-header-cell",8),e.YNc(9,mye,2,1,"mat-cell",9),e.BQk(),e.ynx(10,10),e.YNc(11,_ye,3,3,"mat-header-cell",8),e.YNc(12,vye,2,1,"mat-cell",9),e.BQk(),e.ynx(13,11),e.YNc(14,yye,3,3,"mat-header-cell",8),e.YNc(15,wye,2,1,"mat-cell",9),e.BQk(),e.ynx(16,12),e.YNc(17,Cye,3,3,"mat-header-cell",8),e.YNc(18,bye,2,1,"mat-cell",9),e.BQk(),e.ynx(19,13),e.YNc(20,xye,3,3,"mat-header-cell",8),e.YNc(21,Bye,2,3,"mat-cell",14),e.BQk(),e.ynx(22,15),e.YNc(23,Eye,3,3,"mat-header-cell",8),e.YNc(24,Mye,2,1,"mat-cell",9),e.BQk(),e.ynx(25,16),e.YNc(26,Dye,1,0,"mat-header-cell",17),e.YNc(27,Iye,2,1,"mat-cell",9),e.BQk(),e.YNc(28,kye,1,3,"mat-header-row",18),e.YNc(29,Qye,1,3,"mat-row",19),e.qZA(),e._UZ(30,"mat-paginator",20),e.qZA()),2&i&&(e.Q6J("ngIf",n.mode===n.devicesViewMap),e.xp6(1),e.Q6J("ngClass",n.mode===n.devicesViewList?"showTable":"hideTable"),e.xp6(1),e.Q6J("dataSource",n.dataSource),e.xp6(26),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns),e.xp6(1),e.Q6J("pageSizeOptions",e.DdM(7,Sye))("pageSize",25))},dependencies:[l.mk,l.sg,l.O5,l.PC,Yn,Zn,Td,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Cs,Ni.X$],styles:["[_nghost-%COMP%] .main-device[_ngcontent-%COMP%]{position:absolute;text-align:center;background-color:#0c65bd;color:#fff;border-style:solid;border-color:var(--mapBorderColor)}[_nghost-%COMP%] .node-device[_ngcontent-%COMP%]{position:absolute;background-color:#4f565d;text-align:center;padding-top:17px;border-style:solid;border-color:var(--mapBorderColor)}[_nghost-%COMP%] .node-device[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#fff}[_nghost-%COMP%] .node-internal[_ngcontent-%COMP%]{position:absolute;background-color:#72787d;text-align:center;padding-top:17px;border-style:solid;border-color:var(--mapBorderColor)}[_nghost-%COMP%] .node-internal[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#fff}[_nghost-%COMP%] .node-flow[_ngcontent-%COMP%]{position:absolute;background-color:#dadada;text-align:center;padding-top:17px;border-style:solid;border-color:var(--mapBorderColor)}[_nghost-%COMP%] .node-flow[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#000}[_nghost-%COMP%] .main-line[_ngcontent-%COMP%]{position:absolute;background-color:var(--mapBorderColor)}[_nghost-%COMP%] .main-line-flow[_ngcontent-%COMP%]{position:absolute;background-color:var(--mapBorderColor)}[_nghost-%COMP%] .device-line[_ngcontent-%COMP%]{position:absolute;background-color:var(--mapBorderColor)}[_nghost-%COMP%] .flow-line[_ngcontent-%COMP%]{position:absolute;background-color:var(--mapBorderColor)}[_nghost-%COMP%] .connection-line[_ngcontent-%COMP%]{position:absolute;background-color:var(--mapBorderColor)}[_nghost-%COMP%] .device-header[_ngcontent-%COMP%]{display:block;font-size:17px;padding-bottom:7px;padding-top:0;min-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[_nghost-%COMP%] .device-pro[_ngcontent-%COMP%]{display:block;font-size:12px;padding-top:0;min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[_nghost-%COMP%] .device-pro-line[_ngcontent-%COMP%]{display:inline-block;font-size:12px;padding-top:5px}[_nghost-%COMP%] .device-icon[_ngcontent-%COMP%]{position:absolute;cursor:pointer}[_nghost-%COMP%] .device-edit[_ngcontent-%COMP%]{position:absolute;bottom:0;right:0;font-size:17px}[_nghost-%COMP%] .device-edit-disabled[_ngcontent-%COMP%]{color:#888!important;cursor:default}[_nghost-%COMP%] .device-delete[_ngcontent-%COMP%]{position:absolute;top:0;right:0;font-size:17px}[_nghost-%COMP%] .device-list[_ngcontent-%COMP%]{position:absolute;right:30px;font-size:24px;bottom:0}[_nghost-%COMP%] .device-status[_ngcontent-%COMP%]{position:absolute;bottom:10px;left:10px;width:10px;height:10px;border-radius:4px}[_nghost-%COMP%] .container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:1px 0 0}[_nghost-%COMP%] .mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}[_nghost-%COMP%] .mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}[_nghost-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:15px}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{flex:0 0 100px}[_nghost-%COMP%] .mat-column-name[_ngcontent-%COMP%]{flex:1 1 160px}[_nghost-%COMP%] .mat-column-type[_ngcontent-%COMP%]{flex:0 0 150px}[_nghost-%COMP%] .mat-column-polling[_ngcontent-%COMP%]{flex:0 0 100px}[_nghost-%COMP%] .mat-column-address[_ngcontent-%COMP%]{flex:2 1 300px}[_nghost-%COMP%] .mat-column-status[_ngcontent-%COMP%]{flex:0 0 120px}[_nghost-%COMP%] .mat-column-enabled[_ngcontent-%COMP%]{flex:0 0 160px}[_nghost-%COMP%] .mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}[_nghost-%COMP%] .selectWidthClass[_ngcontent-%COMP%]{flex:0 0 100px}[_nghost-%COMP%] .selectHideClass[_ngcontent-%COMP%]{flex:0 0 10px}[_nghost-%COMP%] .my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px}[_nghost-%COMP%] .showTable[_ngcontent-%COMP%]{display:flex}[_nghost-%COMP%] .hideTable[_ngcontent-%COMP%]{display:none}"]})}return r})();const Fye=["devicelist"],Oye=["devicemap"],Lye=["fileImportInput"],Rye=["tplFileImportInput"];function Yye(r,a){1&r&&(e.TgZ(0,"mat-icon",25),e.ALo(1,"translate"),e._uU(2,"device_hub"),e.qZA()),2&r&&e.s9C("matTooltip",e.lcZ(1,1,"devices.mode-map"))}function Nye(r,a){1&r&&(e.TgZ(0,"mat-icon",25),e.ALo(1,"translate"),e._uU(2,"view_list"),e.qZA()),2&r&&e.s9C("matTooltip",e.lcZ(1,1,"devices.mode-list"))}function Uye(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",23),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.gotoDevices(!0))}),e.YNc(1,Yye,3,3,"mat-icon",24),e.YNc(2,Nye,3,3,"mat-icon",24),e.qZA()}if(2&r){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.showMode.startsWith(t.devicesViewList)),e.xp6(1),e.Q6J("ngIf",t.showMode.startsWith(t.devicesViewMap))}}function zye(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",26),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.addItem())}),e.TgZ(1,"mat-icon",27),e._uU(2,"add"),e.qZA()()}}const Hye=function(r){return{"fab-reload-active":r}};let EN=(()=>{class r{router;projectService;hmiService;deviceList;deviceMap;fileImportInput;tplFileImportInput;subscriptionLoad;subscriptionDeviceChange;subscriptionVariableChange;askStatusTimer;devicesViewMode=Yi.MC.devices;devicesViewMap=Yi.MC.map;devicesViewList=Yi.MC.list;tagsViewMode=Yi.MC.tags;showMode=this.devicesViewMap;readonly=!1;reloadActive=!1;constructor(t,i,n){this.router=t,this.projectService=i,this.hmiService=n,this.router.url.indexOf(Tt.eC)>=0&&(this.readonly=!0),this.showMode=localStorage.getItem("@frango.devicesview")||this.devicesViewMap}ngOnInit(){this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{this.deviceMap.loadCurrentProject(),this.deviceList.mapTags()}),this.subscriptionDeviceChange=this.hmiService.onDeviceChanged.subscribe(t=>{this.deviceMap.setDeviceStatus(t)}),this.subscriptionVariableChange=this.hmiService.onVariableChanged.subscribe(t=>{this.deviceList.updateDeviceValue()}),this.askStatusTimer=setInterval(()=>{this.hmiService.askDeviceStatus()},1e4),this.hmiService.askDeviceStatus()}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe(),this.subscriptionDeviceChange&&this.subscriptionDeviceChange.unsubscribe(),this.subscriptionVariableChange&&this.subscriptionVariableChange.unsubscribe()}catch{}try{clearInterval(this.askStatusTimer),this.askStatusTimer=null}catch{}}show(t){if(this.showMode=t,this.showMode===this.tagsViewMode){this.deviceList.updateDeviceValue();try{Object.values(this.deviceMap.devicesValue()).length>0&&this.deviceList.setSelectedDevice(this.deviceMap.devicesValue()[0])}catch{}}else localStorage.setItem("@frango.devicesview",this.showMode)}gotoDevices(t){if(t)return void this.show(this.showMode===this.devicesViewMap?this.devicesViewList:this.devicesViewMap);let i=localStorage.getItem("@frango.devicesview")||this.devicesViewMap;this.show(i)}gotoList(t){this.onReload(),this.show(this.tagsViewMode),this.deviceList.setSelectedDevice(t)}addItem(){this.showMode===this.tagsViewMode?this.deviceList.onAddTag():this.showMode.startsWith(this.devicesViewMode)&&this.deviceMap.addDevice()}onReload(){this.projectService.onRefreshProject(),this.reloadActive=!0,setTimeout(()=>{this.reloadActive=!1},1e3)}onExport(t){try{this.projectService.exportDevices(t)}catch(i){console.error(i)}}onImport(){document.getElementById("devicesConfigFileUpload").click()}onImportTpl(){document.getElementById("devicesConfigTplUpload").click()}onFileChangeListener(t){return this.onDevTplChangeListener(t,!1)}onDevTplChangeListener(t,i){let n=t.target,o=new FileReader;o.onload=s=>{let c;c=ii.cQ.isJson(o.result)?JSON.parse(o.result.toString()):Yi.ef.csvToDevices(o.result.toString());let g=[];i&&c.forEach(B=>{if(B.type!=Yi.Yi.FuxaServer){if(B.id=ii.cQ.getGUID(Yi.pP),B.name=ii.cQ.getShortGUID(B.name+"_",""),B.tags){let O={};Object.keys(B.tags).forEach(ne=>{const we=ii.cQ.getGUID(Yi.$u);O[we]=B.tags[ne],O[we].id=we}),B.tags=O}g.push(B)}}),this.projectService.importDevices(i?g:c),setTimeout(()=>{this.projectService.onRefreshProject()},2e3)},o.onerror=function(){alert("Unable to read "+n.files[0])},o.readAsText(n.files[0]),this.tplFileImportInput.nativeElement.value=null}static \u0275fac=function(i){return new(i||r)(e.Y36(Zc),e.Y36(wr.Y4),e.Y36(aA.Bb))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-device"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Fye,5),e.Gf(Oye,5),e.Gf(Lye,5),e.Gf(Rye,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.deviceList=o.first),e.iGM(o=e.CRH())&&(n.deviceMap=o.first),e.iGM(o=e.CRH())&&(n.fileImportInput=o.first),e.iGM(o=e.CRH())&&(n.tplFileImportInput=o.first)}},decls:41,vars:31,consts:[[2,"width","100%","height","100% !important","position","absolute"],[1,"header-panel"],[1,"work-panel"],[3,"hidden","readonly","goto"],["devicelist",""],[3,"hidden","mode","readonly","goto"],["devicemap",""],["mat-icon-button","",1,"fab-reload",2,"right","50px !important",3,"matMenuTriggerFor"],["type","file","id","devicesConfigFileUpload","accept",".json,.csv",2,"display","none",3,"change"],["fileImportInput",""],["type","file","id","devicesConfigTplUpload","accept",".json,.csv",2,"display","none",3,"change"],["tplFileImportInput",""],[3,"overlapTrigger"],["optionsgMenu",""],["mat-menu-item","",2,"font-size","14px",3,"matMenuTriggerFor"],["xPosition","before"],["export","matMenu"],["mat-menu-item","",3,"click"],[1,"menu-separator"],["mat-menu-item","",2,"font-size","14px",3,"click"],["mat-icon-button","",1,"fab-reload",3,"ngClass","click"],["mat-icon-button","","class","fab-reload","style","right: 90px !important",3,"click",4,"ngIf"],["mat-fab","","color","primary","class","fab-add",3,"click",4,"ngIf"],["mat-icon-button","",1,"fab-reload",2,"right","90px !important",3,"click"],[3,"matTooltip",4,"ngIf"],[3,"matTooltip"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""]],template:function(i,n){if(1&i&&(e.TgZ(0,"div",0)(1,"div",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"app-device-list",3,4),e.NdJ("goto",function(){return n.gotoDevices(!1)}),e.qZA(),e.TgZ(7,"app-device-map",5,6),e.NdJ("goto",function(s){return n.gotoList(s)}),e.qZA()()(),e.TgZ(9,"button",7)(10,"mat-icon"),e._uU(11,"more_vert"),e.qZA()(),e.TgZ(12,"input",8,9),e.NdJ("change",function(s){return n.onDevTplChangeListener(s,!1)}),e.qZA(),e.TgZ(14,"input",10,11),e.NdJ("change",function(s){return n.onDevTplChangeListener(s,!0)}),e.qZA(),e.TgZ(16,"mat-menu",12,13)(18,"button",14),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"mat-menu",15,16)(23,"button",17),e.NdJ("click",function(){return n.onExport("json")}),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"button",17),e.NdJ("click",function(){return n.onExport("csv")}),e._uU(27),e.ALo(28,"translate"),e.qZA()(),e._UZ(29,"mat-divider",18),e.TgZ(30,"button",19),e.NdJ("click",function(){return n.onImport()}),e._uU(31),e.ALo(32,"translate"),e.qZA(),e.TgZ(33,"button",19),e.NdJ("click",function(){return n.onImportTpl()}),e._uU(34),e.ALo(35,"translate"),e.qZA()(),e.TgZ(36,"button",20),e.NdJ("click",function(){return n.onReload()}),e.TgZ(37,"mat-icon"),e._uU(38,"autorenew"),e.qZA()(),e.YNc(39,Uye,3,2,"button",21),e.YNc(40,zye,3,0,"button",22)),2&i){const o=e.MAs(17),s=e.MAs(22);e.xp6(2),e.hij(" ",e.lcZ(3,17,"device.list-title")," "),e.xp6(3),e.Q6J("hidden",!n.showMode.startsWith(n.tagsViewMode))("readonly",n.readonly),e.xp6(2),e.Q6J("hidden",!n.showMode.startsWith(n.devicesViewMode))("mode",n.showMode)("readonly",n.readonly),e.xp6(2),e.Q6J("matMenuTriggerFor",o),e.xp6(7),e.Q6J("overlapTrigger",!1),e.xp6(2),e.Q6J("matMenuTriggerFor",s),e.xp6(1),e.Oqu(e.lcZ(20,19,"devices.export")),e.xp6(5),e.Oqu(e.lcZ(25,21,"devices.export-json")),e.xp6(3),e.Oqu(e.lcZ(28,23,"devices.export-csv")),e.xp6(4),e.Oqu(e.lcZ(32,25,"devices.import")),e.xp6(3),e.Oqu(e.lcZ(35,27,"devices.import-template")),e.xp6(2),e.Q6J("ngClass",e.VKq(29,Hye,n.reloadActive)),e.xp6(3),e.Q6J("ngIf",n.showMode.startsWith(n.devicesViewMode)),e.xp6(1),e.Q6J("ngIf",!n.readonly)}},dependencies:[l.mk,l.O5,Yn,Zn,a0,zc,Hc,cc,Cs,R_e,Pye,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{top:0;left:0;background-color:var(--headerBackground);color:var(--headerColor);height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}.device-btn[_ngcontent-%COMP%]{height:34px;width:34px;min-width:unset!important;padding:unset!important;line-height:34px;margin-left:5px;margin-right:5px;float:right}.device-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px;height:unset;width:unset}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;overflow:auto;background-color:var(--workPanelBackground)}.mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}.mat-row[_ngcontent-%COMP%]{min-height:34px;height:34px;border-bottom-color:#0000000f}.mat-cell[_ngcontent-%COMP%]{font-size:13px}.mat-cell[_ngcontent-%COMP%] .mat-checkbox-inner-container{height:16px;width:16px;margin-left:2px}.mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.mat-header-cell[_ngcontent-%COMP%]{font-size:11px}.mat-column-toogle[_ngcontent-%COMP%]{overflow:visible;flex:0 0 40px}.mat-column-name[_ngcontent-%COMP%]{flex:0 0 220px}.mat-column-address[_ngcontent-%COMP%]{flex:0 0 380px}.mat-column-device[_ngcontent-%COMP%]{flex:0 0 220px}.mat-column-select[_ngcontent-%COMP%]{flex:0 0 40px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-content{display:unset;text-align:left}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}.my-header-filter[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:5px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-14px;right:20px}.my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px;border:1px solid var(--formInputBackground);background-color:var(--formInputBackground);color:var(--formInputColor)}.my-header-filter-input[_ngcontent-%COMP%]:focus{padding:3px 1px 3px 2px;border:1px solid var(--formInputBorderFocus);background-color:var(--formInputBackgroundFocus)}.fab-reload[_ngcontent-%COMP%]{position:fixed!important;right:10px!important;top:40px!important;z-index:9999!important;color:var(--headerColor)}.fab-reload-active[_ngcontent-%COMP%]{transform:rotate(360deg);transition:all .5s ease-in-out}"]})}return r})(),KP=(()=>{class r{change=new e.vpe;toggle(t){this.change.emit(t)}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();function Gye(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",11)(2,"span"),e._uU(3),e.qZA(),e.TgZ(4,"input",12),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.value=n)}),e.qZA(),e.TgZ(5,"button",13),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(2);return e.KtG(s.setSignal(o))}),e._uU(6),e.ALo(7,"translate"),e.qZA()()()}if(2&r){const t=a.$implicit;e.xp6(3),e.AsE("",t.source," - ",t.name," :"),e.xp6(1),e.Q6J("ngModel",t.value),e.xp6(2),e.hij(" ",e.lcZ(7,4,"tester.send")," ")}}function Zye(r,a){if(1&r&&(e.TgZ(0,"span",14),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t," ")}}function Jye(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"div",2)(2,"div",3)(3,"div",4),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"div",5),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.close())}),e._uU(7," \xd7 "),e.qZA()(),e.TgZ(8,"div",6),e._UZ(9,"div",7)(10,"br"),e.YNc(11,Gye,8,6,"div",8),e.qZA(),e.TgZ(12,"div",9),e.YNc(13,Zye,2,1,"span",10),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(4),e.hij(" ",e.lcZ(5,3,"tester.title")," "),e.xp6(7),e.Q6J("ngForOf",t.items),e.xp6(2),e.Q6J("ngForOf",t.output)}}let jye=(()=>{class r{hmiService;gaugesManager;testerService;show=!1;items=[];output=[];subscription;demoSwitch=!0;constructor(t,i,n){this.hmiService=t,this.gaugesManager=i,this.testerService=n}ngOnInit(){this.testerService.change.subscribe(t=>{this.show=t}),this.gaugesManager.onevent.subscribe(t=>{t.dbg&&this.addOutput(t.dbg)})}ngOnDestroy(){this.stopDemo()}setSignal(t){this.hmiService.setSignalValue(t),this.addOutput(" > "+t.source+" - "+t.name+" = "+t.value)}setSignals(t){this.items=t}setDemo(t){}addOutput(t){this.output.unshift(t)}close(){this.testerService.toggle(!1)}startDemo(){this.stopDemo();let t=(0,Mo.H)(2e3,1500);this.subscription=t.subscribe(i=>{this.demoValue()})}stopDemo(){try{this.subscription&&this.subscription.unsubscribe()}catch{}}demoValue(){}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb),e.Y36(so),e.Y36(KP))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-tester"]],decls:1,vars:1,consts:[["class","tester-panel","ngDraggable","",4,"ngIf"],["ngDraggable","",1,"tester-panel"],["name","dlgTesterForm"],[1,"tester-header"],[1,"tester-title"],[1,"tester-close",3,"click"],[1,"tester-body"],["mat-dialog-actions","",1,"_svg-property"],[4,"ngFor","ngForOf"],[1,"tester-output"],["class","output-item",4,"ngFor","ngForOf"],[1,"svg-property"],["id","item.name","type","text",1,"no-spinners",3,"ngModel","ngModelChange"],["mat-raised-button","","color","primary","type","button",1,"",3,"click"],[1,"output-item"]],template:function(i,n){1&i&&e.YNc(0,Jye,14,5,"div",0),2&i&&e.Q6J("ngIf",n.show)},dependencies:[l.sg,l.O5,I,et,$i,Yn,Ir,zQ,Ni.X$],styles:[".tester-panel[_ngcontent-%COMP%]{width:300px;height:563px;z-index:99999!important;position:absolute;right:10px;top:50px;color:#f0f0f0;background-color:#2e2e30;box-shadow:0 2px 6px #0003,0 2px 6px #0000002e;border:0px!important}.tester-header[_ngcontent-%COMP%]{height:30px;color:#e6e6e6;padding-left:10px;cursor:move;line-height:30px;background-color:#000}.tester-close[_ngcontent-%COMP%]{font-size:28px;cursor:pointer;right:5px;position:absolute;top:0}.tester-body[_ngcontent-%COMP%]{overflow-y:auto;height:350px;color:#e6e6e6}.tester-output[_ngcontent-%COMP%]{overflow-y:auto;height:180px;border-top:1px solid gray;color:#e6e6e6;padding:2px 2px 0 5px}.output-item[_ngcontent-%COMP%]{display:block;font-size:12px}.svg-property[_ngcontent-%COMP%]{color:#000000bf}.svg-property[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;font-size:12px;margin:0 5px 0 10px;color:#e6e6e6}.svg-property[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:50%;display:inline-block;margin:0 10px 12px;border:unset;background-color:inherit;color:#e6e6e6;background-color:#424242;height:22px}.svg-property[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{height:26px}","pre[_ngcontent-%COMP%] {\n white-space: pre-line;\n }"]})}return r})();const Vye=["messagecontainer"],Wye=["tester"];function Kye(r,a){if(1&r&&e._UZ(0,"app-fuxa-view",6),2&r){const t=e.oxw();e.Q6J("view",t.currentView)("hmi",t.hmi)("gaugesManager",t.gaugesManager)}}function qye(r,a){1&r&&(e.TgZ(0,"div"),e._uU(1," Loading... "),e.qZA())}let Xye=(()=>{class r{projectService;appService;gaugesManager;changeDetector;testerService;entry;tester;currentView=new Tt.G7;hmi=new Tt.tM;svgMain;componentRef;labView=null;backgroudColor="unset";subscriptionLoad;constructor(t,i,n,o,s){this.projectService=t,this.appService=i,this.gaugesManager=n,this.changeDetector=o,this.testerService=s}ngOnInit(){try{this.appService.showLoading(!0),this.projectService.getHmi()?(this.appService.showLoading(!1),this.loadHmi()):this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(i=>{this.appService.showLoading(!1),this.loadHmi()},i=>{this.appService.showLoading(!1),console.error("Error loadHMI")}),this.changeDetector.detectChanges()}catch(t){this.appService.showLoading(!1),console.error(t)}}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}onTest(){this.tester.setSignals(this.gaugesManager.getMappedGaugesSignals(!0)),this.testerService.toggle(!0)}loadHmi(){if(this.hmi=this.projectService.getHmi(),this.hmi&&this.hmi.views&&this.hmi.views.length>0){this.currentView=this.hmi.views[0],this.labView=this.hmi.views[0];let t=localStorage.getItem("@frango.webeditor.currentview");if(t)for(let i=0;i{class r{dialog;projectService;translateService;settingsService;userService;displayedColumns=["select","username","fullname","groups","start","remove"];dataSource=new Nn([]);users;usersInfo={};roles;table;sort;destroy$=new An.x;constructor(t,i,n,o,s){this.dialog=t,this.projectService=i,this.translateService=n,this.settingsService=o,this.userService=s}ngOnInit(){this.loadUsers(),this.userService.getRoles().pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.roles=t},t=>{console.error("get Roles err: "+t)})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onAddUser(){let t=new Gc.n5;this.editUser(t,t)}onEditUser(t){this.editUser(t,t)}onRemoveUser(t){let i=this.translateService.instant("msg.user-remove",{value:t.username});this.dialog.open(qu,{data:{msg:i},position:{top:"60px"}}).afterClosed().subscribe(o=>{o&&t&&this.userService.removeUser(t).subscribe(s=>{this.users=this.users.filter(function(c){return c.username!==t.username}),this.bindToTable(this.users)},s=>{})})}isAdmin(t){return!(!t||"admin"!==t.username)}isRolePermission(){return this.settingsService.getSettings()?.userRole}permissionValueToLabel(t){if(this.isRolePermission()){const i=new yM(t?.info);return this.roles?.filter(n=>i.roleIds?.includes(n.id)).map(n=>n.name).join(", ")}return Gc.wt.GroupToLabel(t.groups)}getViewStartName(t){return this.usersInfo[t]}loadUsers(){this.users=[],this.usersInfo={},this.userService.getUsers(null).pipe((0,On.R)(this.destroy$)).subscribe(t=>{Object.values(t).forEach(i=>{if(i.info){const n=JSON.parse(i.info)?.start,o=this.projectService.getViewFromId(n);this.usersInfo[i.username]=o?.name}this.users.push(i)}),this.bindToTable(this.users)},t=>{console.error("get Users err: "+t)})}editUser(t,i){let n=JSON.parse(JSON.stringify(t));n.password="",this.dialog.open(qX,{position:{top:"60px"},data:{user:n,current:i,users:this.users.map(s=>s.username)}}).afterClosed().subscribe(s=>{s&&this.userService.setUser(s).subscribe(c=>{this.loadUsers()},c=>{})},s=>{})}bindToTable(t){this.dataSource.data=t}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(wr.Y4),e.Y36(Ni.sK),e.Y36(Rh.g),e.Y36(tm))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-users"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:30,vars:6,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","username"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","fullname"],["matColumnDef","groups"],["matColumnDef","start"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],["mat-icon-button","","class","remove",3,"click",4,"ngIf"],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e._uU(1),e.ALo(2,"translate"),e.qZA(),e.TgZ(3,"div",1)(4,"div",2)(5,"mat-table",3,4),e.ynx(7,5),e.YNc(8,$ye,4,1,"mat-header-cell",6),e.YNc(9,ewe,4,1,"mat-cell",7),e.BQk(),e.ynx(10,8),e.YNc(11,twe,3,3,"mat-header-cell",9),e.YNc(12,iwe,2,1,"mat-cell",10),e.BQk(),e.ynx(13,11),e.YNc(14,nwe,3,3,"mat-header-cell",9),e.YNc(15,rwe,2,1,"mat-cell",10),e.BQk(),e.ynx(16,12),e.YNc(17,owe,3,3,"mat-header-cell",9),e.YNc(18,awe,2,1,"mat-cell",10),e.BQk(),e.ynx(19,13),e.YNc(20,swe,3,3,"mat-header-cell",9),e.YNc(21,lwe,2,1,"mat-cell",10),e.BQk(),e.ynx(22,14),e.YNc(23,cwe,1,0,"mat-header-cell",15),e.YNc(24,dwe,2,1,"mat-cell",10),e.BQk(),e.YNc(25,uwe,1,0,"mat-header-row",16),e.YNc(26,hwe,1,0,"mat-row",17),e.qZA()()(),e.TgZ(27,"button",18),e.NdJ("click",function(){return n.onAddUser()}),e.TgZ(28,"mat-icon",19),e._uU(29,"add"),e.qZA()()),2&i&&(e.xp6(1),e.hij(" ",e.lcZ(2,4,"users.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(20),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,l.O5,Yn,Zn,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:fixed;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground)}.container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:0}.mat-table[_ngcontent-%COMP%]{overflow:auto}.mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}.mat-cell[_ngcontent-%COMP%]{font-size:13px}.mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.mat-header-cell[_ngcontent-%COMP%]{font-size:15px}.mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 100px}.mat-column-username[_ngcontent-%COMP%]{flex:0 0 200px}.mat-column-fullname[_ngcontent-%COMP%]{flex:2 1 250px}.mat-column-groups[_ngcontent-%COMP%]{flex:2 1 650px}.mat-column-start[_ngcontent-%COMP%]{flex:2 1 250px}.mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}.selectidthClass[_ngcontent-%COMP%]{flex:0 0 50px}.show-password[_ngcontent-%COMP%]{bottom:2px;right:8px;position:absolute}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-12px;right:20px}.my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px}"]})}return r})();const gwe=["fuxaview"],fwe=["container"];let mwe=(()=>{class r{projectService;route;changeDetector;gaugesManager;fuxaview;container;startView=new Tt.G7;hmi=new Tt.tM;viewName;subscriptionLoad;constructor(t,i,n,o){this.projectService=t,this.route=i,this.changeDetector=n,this.gaugesManager=o}ngOnInit(){this.viewName=this.route.snapshot.queryParamMap.get("name")}ngAfterViewInit(){try{this.projectService.getHmi()&&this.loadHmi(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(i=>{this.loadHmi()},i=>{console.error("Error loadHMI")}),this.changeDetector.detectChanges()}catch(t){console.error(t)}}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}loadHmi(){let t=this.projectService.getHmi();t&&(this.hmi=t),this.hmi&&this.hmi.views&&this.hmi.views.length>0&&(this.startView=this.hmi.views.find(i=>i.name===this.viewName),this.setBackground(),this.startView&&this.fuxaview&&this.fuxaview.loadHmi(this.startView),this.hmi.layout&&this.hmi.layout.zoom&&Tt.Rw[this.hmi.layout.zoom]===Tt.Rw.enabled&&setTimeout(()=>{let i=document.querySelector("#view");i&&_D()&&(_D()(i,{bounds:!0,boundsPadding:.05}),this.container.nativeElement.style.overflow="hidden")},1e3))}setBackground(){this.startView&&this.startView.profile&&(document.getElementById("main-container").style.backgroundColor=this.startView.profile.bkcolor)}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(Cp),e.Y36(e.sBO),e.Y36(so))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-view"]],viewQuery:function(i,n){if(1&i&&(e.Gf(gwe,7),e.Gf(fwe,7,e.SBq)),2&i){let o;e.iGM(o=e.CRH())&&(n.fuxaview=o.first),e.iGM(o=e.CRH())&&(n.container=o.first)}},decls:4,vars:3,consts:[["id","container",1,"view-container"],["container",""],["id","view",1,"view-body",3,"view","hmi","gaugesManager"],["fuxaview",""]],template:function(i,n){1&i&&(e.TgZ(0,"div",0,1),e._UZ(2,"app-fuxa-view",2,3),e.qZA()),2&i&&(e.xp6(2),e.Q6J("view",n.startView)("hmi",n.hmi)("gaugesManager",n.gaugesManager))},dependencies:[mm],styles:[".view-body[_ngcontent-%COMP%]{display:table;margin:0 auto}.view-container[_ngcontent-%COMP%]{position:absolute;inset:0;overflow:auto}"]})}return r})();function _we(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",16),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"input",17),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(1),e.hij(" ",e.lcZ(2,2,"logs.view-ontime")," "),e.xp6(2),e.Q6J("formControl",t.ontimeFilter)}}function vwe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.ALo(2,"date"),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",e.xi3(2,3,t.ontime,"yyyy.MM.dd HH:mm:ss")," ")}}function ywe(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",16),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"input",18),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(1),e.hij(" ",e.lcZ(2,2,"logs.view-type")," "),e.xp6(2),e.Q6J("formControl",t.typeFilter)}}function wwe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.type,"")}}function Cwe(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",16),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"input",19),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(1),e.hij(" ",e.lcZ(2,2,"logs.view-source")," "),e.xp6(2),e.Q6J("formControl",t.sourceFilter)}}function bwe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.group,"")}}function xwe(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",16),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"input",19),e.NdJ("click",function(i){return i.stopPropagation()}),e.qZA()()),2&r){const t=e.oxw(2);e.xp6(1),e.hij(" ",e.lcZ(2,2,"logs.view-text")," "),e.xp6(2),e.Q6J("formControl",t.textFilter)}}function Bwe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("color",t.color),e.xp6(1),e.hij(" ",t.text," ")}}function Ewe(r,a){1&r&&e._UZ(0,"mat-header-row")}function Mwe(r,a){1&r&&e._UZ(0,"mat-row",20),2&r&&e.Udp("background-color",a.$implicit.bkcolor)}const Dwe=function(){return[10,25,100]};function Twe(r,a){if(1&r&&(e.TgZ(0,"div",4)(1,"mat-table",5,6),e.ynx(3,7),e.YNc(4,_we,4,4,"mat-header-cell",8),e.YNc(5,vwe,3,6,"mat-cell",9),e.BQk(),e.ynx(6,10),e.YNc(7,ywe,4,4,"mat-header-cell",8),e.YNc(8,wwe,2,3,"mat-cell",9),e.BQk(),e.ynx(9,11),e.YNc(10,Cwe,4,4,"mat-header-cell",8),e.YNc(11,bwe,2,3,"mat-cell",9),e.BQk(),e.ynx(12,12),e.YNc(13,xwe,4,4,"mat-header-cell",8),e.YNc(14,Bwe,2,3,"mat-cell",9),e.BQk(),e.YNc(15,Ewe,1,0,"mat-header-row",13),e.YNc(16,Mwe,1,2,"mat-row",14),e.qZA(),e._UZ(17,"mat-paginator",15),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Q6J("dataSource",t.dataSource),e.xp6(14),e.Q6J("matHeaderRowDef",t.displayColumns)("matHeaderRowDefSticky",!0),e.xp6(1),e.Q6J("matRowDefColumns",t.displayColumns),e.xp6(1),e.Q6J("pageSizeOptions",e.DdM(6,Dwe))("pageSize",25)}}function Iwe(r,a){if(1&r&&e._UZ(0,"div",21),2&r){const t=e.oxw();e.Q6J("innerHTML",t.content,e.oJD)}}function kwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",26),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t)}}function Qwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",22)(1,"div",23)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",24),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.logs.selected=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.loadLogs(n.logs.selected))}),e.YNc(6,kwe,2,2,"mat-option",25),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,3,"logs.view-files")),e.xp6(2),e.Q6J("value",t.logs.selected),e.xp6(1),e.Q6J("ngForOf",t.logs.files)}}let MN=(()=>{class r{diagnoseService;appService;table;sort;paginator;dataSource=new Nn([]);ontimeFilter=new li;typeFilter=new li;sourceFilter=new li;textFilter=new li;filteredValues={ontime:"",source:"",type:"",text:""};displayColumns=["ontime","type","source","text"];tableView=!1;content="";logs={selected:"fuxa.log",files:[]};constructor(t,i){this.diagnoseService=t,this.appService=i}ngAfterViewInit(){this.diagnoseService.getLogsDir().subscribe(t=>{this.logs.files=t},t=>{console.error("get Logs err: "+t)}),this.loadLogs(this.logs.selected)}loadLogs(t){this.appService.showLoading(!0),this.diagnoseService.getLogs({file:t}).subscribe(i=>{this.content=i.body.replace(new RegExp("\n","g"),"
"),this.appService.showLoading(!1)},i=>{this.appService.showLoading(!1),console.error("get Logs err: "+i)})}static \u0275fac=function(i){return new(i||r)(e.Y36(xS),e.Y36(bg.z))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-logs-view"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5),e.Gf(Td,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first),e.iGM(o=e.CRH())&&(n.paginator=o.first)}},decls:6,vars:6,consts:[[1,"header-panel"],["class","work-panel",4,"ngIf"],["class","work-panel text-content",3,"innerHTML",4,"ngIf"],["class","logs-selector",4,"ngIf"],[1,"work-panel"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","ontime"],["mat-sort-header","","class","my-header-filter",4,"matHeaderCellDef"],[3,"color",4,"matCellDef"],["matColumnDef","type"],["matColumnDef","source"],["matColumnDef","text"],[4,"matHeaderRowDef","matHeaderRowDefSticky"],["class","my-mat-row",3,"background-color",4,"matRowDef","matRowDefColumns"],[1,"table-pagination",3,"pageSizeOptions","pageSize"],["mat-sort-header","",1,"my-header-filter"],["type","text",1,"my-header-filter-input",2,"width","140px",3,"formControl","click"],["type","text",1,"my-header-filter-input",2,"width","80px",3,"formControl","click"],["type","text",1,"my-header-filter-input",2,"width","200px",3,"formControl","click"],[1,"my-mat-row"],[1,"work-panel","text-content",3,"innerHTML"],[1,"logs-selector"],[1,"my-form-field"],[2,"width","200px",3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e._uU(1),e.ALo(2,"translate"),e.qZA(),e.YNc(3,Twe,18,7,"div",1),e.YNc(4,Iwe,1,1,"div",2),e.YNc(5,Qwe,7,5,"div",3)),2&i&&(e.xp6(1),e.hij(" ",e.lcZ(2,4,"logs.view-title"),"\n"),e.xp6(2),e.Q6J("ngIf",n.tableView),e.xp6(1),e.Q6J("ngIf",!n.tableView),e.xp6(1),e.Q6J("ngIf",!n.tableView))},dependencies:[l.sg,l.O5,I,et,ca,Nr,Td,fo,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,l.uU,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);height:36px;width:100%;text-align:center;line-height:32px;border-bottom:1px solid var(--headerBorder)}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground);min-width:930px}.text-content[_ngcontent-%COMP%]{overflow-y:auto;overflow-x:auto;padding-left:10px;color:#acacac;font-family:Segoe UI Symbol,Roboto-Regular,Helvetica Neue,sans-serif;font-size:12px}.mat-row[_ngcontent-%COMP%]{min-height:34px;height:34px;border-bottom-color:#0000000f}.mat-cell[_ngcontent-%COMP%]{font-size:13px}.mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.mat-header-cell[_ngcontent-%COMP%]{font-size:13px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-12px;right:20px}.my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px;border:1px solid var(--formInputBackground);background-color:var(--formInputBackground);color:var(--formInputColor)}.my-header-filter-input[_ngcontent-%COMP%]:focus{padding:3px 1px 3px 2px;border:1px solid var(--formInputBorderFocus);background-color:var(--formInputBackgroundFocus)}.mat-column-ontime[_ngcontent-%COMP%]{overflow:visible;flex:0 0 160px}.mat-column-type[_ngcontent-%COMP%]{flex:0 0 100px}.mat-column-source[_ngcontent-%COMP%]{flex:1 1 300px}.mat-column-text[_ngcontent-%COMP%]{flex:3 1 400px}.logs-selector[_ngcontent-%COMP%]{position:absolute;top:50px;right:40px;z-index:999;padding:5px 7px;background-color:var(--toolboxBackground);color:var(--toolboxColor);box-shadow:0 1px 3px #000}"]})}return r})();const Swe=["flexauth"],Pwe=["flexhead"];function Fwe(r,a){if(1&r&&(e.TgZ(0,"div",7),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.AsE(" ",e.lcZ(2,2,"msg.alarm-remove")," '",t.data.alarm.name,"' ? ")}}function Owe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t)}}function Lwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t)}}function Rwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Ywe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Nwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Uwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function zwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Hwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",55)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",56),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)}),e.qZA()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(3),e.Oqu(e.lcZ(4,2,"alarm.property-action-value")),e.xp6(2),e.Q6J("ngModel",t.actparam)}}function Gwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function Zwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",57)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",50),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)}),e.YNc(6,Gwe,2,2,"mat-option",16),e.qZA()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,3,"alarm.property-action-destination")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.data.views)}}function Jwe(r,a){if(1&r&&(e.TgZ(0,"mat-option",42),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.id),e.xp6(1),e.Oqu(t.name)}}function jwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",57)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"mat-select",58),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)})("selectionChange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(2);return e.KtG(s.onScriptChanged(n.value,o))}),e.YNc(6,Jwe,2,2,"mat-option",16),e.qZA()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(2);e.xp6(3),e.Oqu(e.lcZ(4,3,"gauges.property-event-script")),e.xp6(2),e.Q6J("value",t.actparam),e.xp6(1),e.Q6J("ngForOf",i.scripts)}}function Vwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",54)(1,"div",55)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",56),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actparam=n)}),e.qZA()(),e.TgZ(6,"div",59)(7,"span"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"mat-select",50),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.actoptions.type=n)}),e.TgZ(11,"mat-option",42),e._uU(12,"error"),e.qZA(),e.TgZ(13,"mat-option",42),e._uU(14,"warning"),e.qZA(),e.TgZ(15,"mat-option",42),e._uU(16,"success"),e.qZA(),e.TgZ(17,"mat-option",42),e._uU(18,"info"),e.qZA()()()()}if(2&r){const t=e.oxw().$implicit;e.xp6(3),e.Oqu(e.lcZ(4,8,"alarm.property-action-toastMessage")),e.xp6(2),e.Q6J("ngModel",t.actparam),e.xp6(3),e.Oqu(e.lcZ(9,10,"alarm.property-action-toastType")),e.xp6(2),e.Q6J("value",t.actoptions.type),e.xp6(1),e.Q6J("value","error"),e.xp6(2),e.Q6J("value","warning"),e.xp6(2),e.Q6J("value","success"),e.xp6(2),e.Q6J("value","info")}}function Wwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",60)(1,"div",61)(2,"flex-variable",62),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(2);return e.KtG(s.setActionVariable(o,n))}),e.qZA()()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(2);e.xp6(2),e.Q6J("data",i.data)("variableId",t.variableId)("withStaticValue",!1)}}function Kwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",65)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"input",56),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.value=n)}),e.qZA()()}if(2&r){const t=e.oxw().$implicit;e.xp6(2),e.Oqu(e.lcZ(3,2,"gauges.property-event-script-param-value")),e.xp6(2),e.Q6J("ngModel",t.value)}}function qwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",65)(1,"flex-variable",62),e.NdJ("onchange",function(n){e.CHM(t);const o=e.oxw().$implicit,s=e.oxw(4);return e.KtG(s.setScriptParam(o,n))}),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw(4);e.xp6(1),e.Q6J("data",i.data)("variableId",t.value)("withStaticValue",!1)}}function Xwe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",64)(1,"div",65)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"input",66),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.name=n)}),e.qZA()(),e.TgZ(6,"div",67),e.YNc(7,Kwe,5,4,"div",68),e.YNc(8,qwe,2,3,"div",68),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(3),e.Oqu(e.lcZ(4,5,"gauges.property-event-script-param-name")),e.xp6(2),e.Q6J("ngModel",t.name)("disabled",!0),e.xp6(2),e.Q6J("ngIf","value"===t.type),e.xp6(1),e.Q6J("ngIf","tagid"===t.type)}}function $we(r,a){if(1&r&&(e.TgZ(0,"div",60),e.YNc(1,Xwe,9,7,"div",63),e.qZA()),2&r){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",t.actoptions.params)}}function eCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",43)(1,"div",44)(2,"div",45)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e.TgZ(6,"input",27),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.checkdelay=n)}),e.qZA()(),e.TgZ(7,"div",28),e._UZ(8,"range-number",29),e.qZA(),e.TgZ(9,"div",46)(10,"span"),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"input",47),e.NdJ("ngModelChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.timedelay=n)}),e.qZA()()(),e.TgZ(14,"div",48)(15,"div",49)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"mat-select",50),e.NdJ("valueChange",function(n){const s=e.CHM(t).$implicit;return e.KtG(s.type=n)}),e.YNc(20,zwe,2,2,"mat-option",16),e.ALo(21,"enumToArray"),e.qZA()(),e.YNc(22,Hwe,6,4,"div",51),e.YNc(23,Zwe,7,5,"div",51),e.YNc(24,jwe,7,5,"div",51),e.YNc(25,Vwe,19,12,"div",51),e.TgZ(26,"div",52)(27,"button",37),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(2);return e.KtG(s.onAlarmAction(o))}),e.TgZ(28,"mat-icon"),e._uU(29,"clear"),e.qZA()()()(),e.YNc(30,Wwe,3,3,"div",53),e.YNc(31,$we,2,1,"div",53),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.xp6(4),e.Oqu(e.lcZ(5,14,"alarm.property-checkdelay")),e.xp6(2),e.Q6J("ngModel",t.checkdelay),e.xp6(2),e.Q6J("range",t),e.xp6(3),e.Oqu(e.lcZ(12,16,"alarm.property-timedelay")),e.xp6(2),e.Q6J("ngModel",t.timedelay),e.xp6(4),e.Oqu(e.lcZ(18,18,"alarm.property-action-type")),e.xp6(2),e.Q6J("value",t.type),e.xp6(1),e.Q6J("ngForOf",e.lcZ(21,20,i.actionsType)),e.xp6(2),e.Q6J("ngIf",t.type===i.actionSetValue),e.xp6(1),e.Q6J("ngIf",t.type===i.actionPopup||t.type===i.actionSetView),e.xp6(1),e.Q6J("ngIf",t.type===i.actionRunScript),e.xp6(1),e.Q6J("ngIf",t.type===i.actionToastMessage),e.xp6(5),e.Q6J("ngIf",t.type===i.actionSetValue),e.xp6(1),e.Q6J("ngIf",t.type===i.actionRunScript)}}function tCe(r,a){1&r&&(e.TgZ(0,"div",69)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA()()),2&r&&(e.xp6(2),e.Oqu(e.lcZ(3,1,"msg.alarmproperty-error-exist")))}function iCe(r,a){1&r&&(e.TgZ(0,"div",69)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA()()),2&r&&(e.xp6(2),e.Oqu(e.lcZ(3,1,"msg.alarmproperty-missing-value")))}function nCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",7)(1,"div",8)(2,"div",9),e._UZ(3,"flex-auth",10,11),e.qZA(),e.TgZ(5,"div",12),e._UZ(6,"flex-head",13,14),e.qZA()(),e.TgZ(8,"mat-autocomplete",null,15),e.YNc(10,Owe,2,2,"mat-option",16),e.qZA(),e.TgZ(11,"mat-autocomplete",null,17),e.YNc(13,Lwe,2,2,"mat-option",16),e.qZA(),e.TgZ(14,"mat-tab-group",18)(15,"mat-tab",19),e.ALo(16,"translate"),e.TgZ(17,"div",20)(18,"div",9)(19,"div",21)(20,"span"),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"mat-slide-toggle",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.highhigh.enabled=n)}),e.qZA()(),e.TgZ(24,"div",23)(25,"span"),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"mat-select",24),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.highhigh.ackmode=n)}),e.YNc(29,Rwe,2,2,"mat-option",16),e.ALo(30,"enumToArray"),e.qZA()()(),e.TgZ(31,"div",25)(32,"div",26)(33,"span"),e._uU(34),e.ALo(35,"translate"),e.qZA(),e.TgZ(36,"input",27),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.highhigh.checkdelay=n)}),e.qZA()(),e.TgZ(37,"div",28),e._UZ(38,"range-number",29),e.qZA(),e.TgZ(39,"div",30)(40,"span"),e._uU(41),e.ALo(42,"translate"),e.qZA(),e.TgZ(43,"input",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.highhigh.timedelay=n)}),e.qZA()()(),e.TgZ(44,"div",9)(45,"div",26)(46,"span"),e._uU(47),e.ALo(48,"translate"),e.qZA(),e.TgZ(49,"input",32),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.highhigh.text=n)}),e.qZA()(),e.TgZ(50,"div",30)(51,"span"),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"input",33),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.highhigh.group=n)}),e.qZA()()(),e.TgZ(55,"div",34)(56,"div",35)(57,"span"),e._uU(58),e.qZA()(),e.TgZ(59,"div",36)(60,"span"),e._uU(61),e.qZA()()()()(),e.TgZ(62,"mat-tab",19),e.ALo(63,"translate"),e.TgZ(64,"div",20)(65,"div",9)(66,"div",21)(67,"span"),e._uU(68),e.ALo(69,"translate"),e.qZA(),e.TgZ(70,"mat-slide-toggle",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.high.enabled=n)}),e.qZA()(),e.TgZ(71,"div",23)(72,"span"),e._uU(73),e.ALo(74,"translate"),e.qZA(),e.TgZ(75,"mat-select",24),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.high.ackmode=n)}),e.YNc(76,Ywe,2,2,"mat-option",16),e.ALo(77,"enumToArray"),e.qZA()()(),e.TgZ(78,"div",25)(79,"div",26)(80,"span"),e._uU(81),e.ALo(82,"translate"),e.qZA(),e.TgZ(83,"input",27),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.high.checkdelay=n)}),e.qZA()(),e.TgZ(84,"div",28),e._UZ(85,"range-number",29),e.qZA(),e.TgZ(86,"div",30)(87,"span"),e._uU(88),e.ALo(89,"translate"),e.qZA(),e.TgZ(90,"input",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.high.timedelay=n)}),e.qZA()()(),e.TgZ(91,"div",9)(92,"div",26)(93,"span"),e._uU(94),e.ALo(95,"translate"),e.qZA(),e.TgZ(96,"input",32),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.high.text=n)}),e.qZA()(),e.TgZ(97,"div",30)(98,"span"),e._uU(99),e.ALo(100,"translate"),e.qZA(),e.TgZ(101,"input",33),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.high.group=n)}),e.qZA()()(),e.TgZ(102,"div",34)(103,"div",35)(104,"span"),e._uU(105),e.qZA()(),e.TgZ(106,"div",36)(107,"span"),e._uU(108),e.qZA()()()()(),e.TgZ(109,"mat-tab",19),e.ALo(110,"translate"),e.TgZ(111,"div",20)(112,"div",9)(113,"div",21)(114,"span"),e._uU(115),e.ALo(116,"translate"),e.qZA(),e.TgZ(117,"mat-slide-toggle",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.low.enabled=n)}),e.qZA()(),e.TgZ(118,"div",23)(119,"span"),e._uU(120),e.ALo(121,"translate"),e.qZA(),e.TgZ(122,"mat-select",24),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.low.ackmode=n)}),e.YNc(123,Nwe,2,2,"mat-option",16),e.ALo(124,"enumToArray"),e.qZA()()(),e.TgZ(125,"div",25)(126,"div",26)(127,"span"),e._uU(128),e.ALo(129,"translate"),e.qZA(),e.TgZ(130,"input",27),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.low.checkdelay=n)}),e.qZA()(),e.TgZ(131,"div",28),e._UZ(132,"range-number",29),e.qZA(),e.TgZ(133,"div",30)(134,"span"),e._uU(135),e.ALo(136,"translate"),e.qZA(),e.TgZ(137,"input",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.low.timedelay=n)}),e.qZA()()(),e.TgZ(138,"div",9)(139,"div",26)(140,"span"),e._uU(141),e.ALo(142,"translate"),e.qZA(),e.TgZ(143,"input",32),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.low.text=n)}),e.qZA()(),e.TgZ(144,"div",30)(145,"span"),e._uU(146),e.ALo(147,"translate"),e.qZA(),e.TgZ(148,"input",33),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.low.group=n)}),e.qZA()()(),e.TgZ(149,"div",34)(150,"div",35)(151,"span"),e._uU(152),e.qZA()(),e.TgZ(153,"div",36)(154,"span"),e._uU(155),e.qZA()()()()(),e.TgZ(156,"mat-tab",19),e.ALo(157,"translate"),e.TgZ(158,"div",20)(159,"div",9)(160,"div",21)(161,"span"),e._uU(162),e.ALo(163,"translate"),e.qZA(),e.TgZ(164,"mat-slide-toggle",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.info.enabled=n)}),e.qZA()(),e.TgZ(165,"div",23)(166,"span"),e._uU(167),e.ALo(168,"translate"),e.qZA(),e.TgZ(169,"mat-select",24),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.info.ackmode=n)}),e.YNc(170,Uwe,2,2,"mat-option",16),e.ALo(171,"enumToArray"),e.qZA()()(),e.TgZ(172,"div",25)(173,"div",26)(174,"span"),e._uU(175),e.ALo(176,"translate"),e.qZA(),e.TgZ(177,"input",27),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.info.checkdelay=n)}),e.qZA()(),e.TgZ(178,"div",28),e._UZ(179,"range-number",29),e.qZA(),e.TgZ(180,"div",30)(181,"span"),e._uU(182),e.ALo(183,"translate"),e.qZA(),e.TgZ(184,"input",31),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.info.timedelay=n)}),e.qZA()()(),e.TgZ(185,"div",9)(186,"div",26)(187,"span"),e._uU(188),e.ALo(189,"translate"),e.qZA(),e.TgZ(190,"input",32),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.info.text=n)}),e.qZA()(),e.TgZ(191,"div",30)(192,"span"),e._uU(193),e.ALo(194,"translate"),e.qZA(),e.TgZ(195,"input",33),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.info.group=n)}),e.qZA()()(),e.TgZ(196,"div",34)(197,"div",35)(198,"span"),e._uU(199),e.qZA()(),e.TgZ(200,"div",36)(201,"span"),e._uU(202),e.qZA()()()()(),e.TgZ(203,"mat-tab",19),e.ALo(204,"translate"),e.TgZ(205,"div",20)(206,"div",9)(207,"div",21)(208,"span"),e._uU(209),e.ALo(210,"translate"),e.qZA(),e.TgZ(211,"mat-slide-toggle",22),e.NdJ("ngModelChange",function(n){e.CHM(t);const o=e.oxw();return e.KtG(o.data.alarm.actions.enabled=n)}),e.qZA()(),e.TgZ(212,"div",23)(213,"button",37),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddAction())}),e.TgZ(214,"mat-icon"),e._uU(215,"add_circle_outline"),e.qZA()()()(),e.TgZ(216,"div",38),e.YNc(217,eCe,32,22,"div",39),e.qZA()()()(),e.TgZ(218,"div",40),e.YNc(219,tCe,4,3,"div",41),e.YNc(220,iCe,4,3,"div",41),e.qZA()()}if(2&r){const t=e.MAs(9),i=e.MAs(12),n=e.oxw();e.xp6(3),e.Q6J("name",n.data.alarm.name)("permission",n.property.permission)("permissionRoles",n.property.permissionRoles),e.xp6(3),e.Q6J("data",n.data)("property",n.property)("withStaticValue",!1)("withBitmask",!0),e.xp6(4),e.Q6J("ngForOf",n.existtexts),e.xp6(3),e.Q6J("ngForOf",n.existgroups),e.xp6(2),e.s9C("label",e.lcZ(16,107,"alarm.property-highhigh")),e.xp6(6),e.Oqu(e.lcZ(22,109,"alarm.property-enabled")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.highhigh.enabled),e.xp6(3),e.Oqu(e.lcZ(27,111,"alarm.property-ackmode")),e.xp6(2),e.Q6J("value",n.data.alarm.highhigh.ackmode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(30,113,n.ackMode)),e.xp6(5),e.Oqu(e.lcZ(35,115,"alarm.property-checkdelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.highhigh.checkdelay),e.xp6(2),e.Q6J("range",n.data.alarm.highhigh),e.xp6(3),e.Oqu(e.lcZ(42,117,"alarm.property-timedelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.highhigh.timedelay),e.xp6(4),e.Oqu(e.lcZ(48,119,"alarm.property-text")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.highhigh.text)("matAutocomplete",t),e.xp6(3),e.Oqu(e.lcZ(53,121,"alarm.property-group")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.highhigh.group)("matAutocomplete",i),e.xp6(1),e.Udp("background",n.data.alarm.highhigh.bkcolor)("color",n.data.alarm.highhigh.color),e.xp6(3),e.Oqu(n.data.alarm.highhigh.text),e.xp6(3),e.Oqu(n.data.alarm.highhigh.group),e.xp6(1),e.s9C("label",e.lcZ(63,123,"alarm.property-high")),e.xp6(6),e.Oqu(e.lcZ(69,125,"alarm.property-enabled")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.high.enabled),e.xp6(3),e.Oqu(e.lcZ(74,127,"alarm.property-ackmode")),e.xp6(2),e.Q6J("value",n.data.alarm.high.ackmode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(77,129,n.ackMode)),e.xp6(5),e.Oqu(e.lcZ(82,131,"alarm.property-checkdelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.high.checkdelay),e.xp6(2),e.Q6J("range",n.data.alarm.high),e.xp6(3),e.Oqu(e.lcZ(89,133,"alarm.property-timedelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.high.timedelay),e.xp6(4),e.Oqu(e.lcZ(95,135,"alarm.property-text")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.high.text)("matAutocomplete",t),e.xp6(3),e.Oqu(e.lcZ(100,137,"alarm.property-group")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.high.group)("matAutocomplete",i),e.xp6(1),e.Udp("background",n.data.alarm.high.bkcolor)("color",n.data.alarm.high.color),e.xp6(3),e.Oqu(n.data.alarm.high.text),e.xp6(3),e.Oqu(n.data.alarm.high.group),e.xp6(1),e.s9C("label",e.lcZ(110,139,"alarm.property-low")),e.xp6(6),e.Oqu(e.lcZ(116,141,"alarm.property-enabled")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.low.enabled),e.xp6(3),e.Oqu(e.lcZ(121,143,"alarm.property-ackmode")),e.xp6(2),e.Q6J("value",n.data.alarm.low.ackmode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(124,145,n.ackMode)),e.xp6(5),e.Oqu(e.lcZ(129,147,"alarm.property-checkdelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.low.checkdelay),e.xp6(2),e.Q6J("range",n.data.alarm.low),e.xp6(3),e.Oqu(e.lcZ(136,149,"alarm.property-timedelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.low.timedelay),e.xp6(4),e.Oqu(e.lcZ(142,151,"alarm.property-text")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.low.text)("matAutocomplete",t),e.xp6(3),e.Oqu(e.lcZ(147,153,"alarm.property-group")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.low.group)("matAutocomplete",i),e.xp6(1),e.Udp("background",n.data.alarm.low.bkcolor)("color",n.data.alarm.low.color),e.xp6(3),e.Oqu(n.data.alarm.low.text),e.xp6(3),e.Oqu(n.data.alarm.low.group),e.xp6(1),e.s9C("label",e.lcZ(157,155,"alarm.property-info")),e.xp6(6),e.Oqu(e.lcZ(163,157,"alarm.property-enabled")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.info.enabled),e.xp6(3),e.Oqu(e.lcZ(168,159,"alarm.property-ackmode")),e.xp6(2),e.Q6J("value",n.data.alarm.info.ackmode),e.xp6(1),e.Q6J("ngForOf",e.lcZ(171,161,n.ackMode)),e.xp6(5),e.Oqu(e.lcZ(176,163,"alarm.property-checkdelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.info.checkdelay),e.xp6(2),e.Q6J("range",n.data.alarm.info),e.xp6(3),e.Oqu(e.lcZ(183,165,"alarm.property-timedelay")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.info.timedelay),e.xp6(4),e.Oqu(e.lcZ(189,167,"alarm.property-text")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.info.text)("matAutocomplete",t),e.xp6(3),e.Oqu(e.lcZ(194,169,"alarm.property-group")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.info.group)("matAutocomplete",i),e.xp6(1),e.Udp("background",n.data.alarm.info.bkcolor)("color",n.data.alarm.info.color),e.xp6(3),e.Oqu(n.data.alarm.info.text),e.xp6(3),e.Oqu(n.data.alarm.info.group),e.xp6(1),e.s9C("label",e.lcZ(204,171,"alarm.property-action")),e.xp6(6),e.Oqu(e.lcZ(210,173,"alarm.property-enabled")),e.xp6(2),e.Q6J("ngModel",n.data.alarm.actions.enabled),e.xp6(6),e.Q6J("ngForOf",n.data.alarm.actions.values),e.xp6(2),e.Q6J("ngIf",n.errorExist),e.xp6(1),e.Q6J("ngIf",n.errorMissingValue)}}let rCe=(()=>{class r{dialogRef;projectService;translateService;data;flexAuth;flexHead;scripts;property;ackMode=ou;actionsType=kA;actionPopup=ii.cQ.getEnumKey(kA,kA.popup);actionSetView=ii.cQ.getEnumKey(kA,kA.setView);actionSetValue=ii.cQ.getEnumKey(kA,kA.setValue);actionRunScript=ii.cQ.getEnumKey(kA,kA.runScript);actionToastMessage=ii.cQ.getEnumKey(kA,kA.toastMessage);errorExist=!1;errorMissingValue=!1;existnames=[];existtexts=[];existgroups=[];constructor(t,i,n,o){this.dialogRef=t,this.projectService=i,this.translateService=n,this.data=o,this.property=this.data.alarm.property?JSON.parse(JSON.stringify(this.data.alarm.property)):new Lce,this.data.alarm.highhigh||(this.data.alarm.highhigh=new Bb,this.data.alarm.highhigh.bkcolor="#FF4848",this.data.alarm.highhigh.color="#FFF",this.data.alarm.highhigh.enabled=!1,this.data.alarm.highhigh.ackmode=Object.keys(ou)[Object.values(ou).indexOf(ou.ackactive)]),this.data.alarm.high||(this.data.alarm.high=new Bb,this.data.alarm.high.bkcolor="#F9CF59",this.data.alarm.high.color="#000",this.data.alarm.high.enabled=!1,this.data.alarm.high.ackmode=Object.keys(ou)[Object.values(ou).indexOf(ou.ackactive)]),this.data.alarm.low||(this.data.alarm.low=new Bb,this.data.alarm.low.bkcolor="#E5E5E5",this.data.alarm.low.color="#000",this.data.alarm.low.enabled=!1,this.data.alarm.low.ackmode=Object.keys(ou)[Object.values(ou).indexOf(ou.ackactive)]),this.data.alarm.info||(this.data.alarm.info=new Bb,this.data.alarm.info.bkcolor="#22A7F2",this.data.alarm.info.color="#FFF",this.data.alarm.info.enabled=!1,this.data.alarm.info.ackmode=Object.keys(ou)[Object.values(ou).indexOf(ou.float)]),this.data.alarm.actions||(this.data.alarm.actions=new aN,this.data.alarm.actions.enabled=!1),Object.keys(this.ackMode).forEach(s=>{this.translateService.get(this.ackMode[s]).subscribe(c=>{this.ackMode[s]=c})}),Object.keys(this.actionsType).forEach(s=>{this.translateService.get(this.actionsType[s]).subscribe(c=>{this.actionsType[s]=c})}),o.alarms&&(this.existnames=o.alarms.filter(s=>s.name!==o.alarm.name),o.alarms.forEach(s=>{s.highhigh.text&&-1===this.existtexts.indexOf(s.highhigh.text)&&this.existtexts.push(s.highhigh.text),s.high.text&&-1===this.existtexts.indexOf(s.high.text)&&this.existtexts.push(s.high.text),s.low.text&&-1===this.existtexts.indexOf(s.low.text)&&this.existtexts.push(s.low.text),s.info.text&&-1===this.existtexts.indexOf(s.info.text)&&this.existtexts.push(s.info.text),s.highhigh.group&&-1===this.existgroups.indexOf(s.highhigh.group)&&this.existgroups.push(s.highhigh.group),s.high.group&&-1===this.existgroups.indexOf(s.high.group)&&this.existgroups.push(s.high.group),s.low.group&&-1===this.existgroups.indexOf(s.low.group)&&this.existgroups.push(s.low.group),s.info.group&&-1===this.existgroups.indexOf(s.info.group)&&this.existgroups.push(s.info.group)}))}ngOnInit(){this.scripts=this.projectService.getScripts()?.filter(t=>t.mode===Wo.EN.SERVER)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.editmode<0?this.dialogRef.close(this.data.alarm):this.checkValid()&&(this.data.alarm.property=this.property,this.data.alarm.property.permission=this.flexAuth.permission,this.data.alarm.property.permissionRoles=this.flexAuth.permissionRoles,this.data.alarm.name=this.flexAuth.name,this.dialogRef.close(this.data.alarm))}checkValid(){return this.errorMissingValue=!this.flexAuth.name,this.errorExist=!!this.existnames.find(t=>t.name===this.flexAuth.name),!(this.errorMissingValue||this.errorExist)}onAddAction(){let t=new Rce;this.data.alarm.actions.values.push(t)}onAlarmAction(t){this.data.alarm.actions.values.splice(t,1)}setActionVariable(t,i){t.variableId=i.variableId}onScriptChanged(t,i){let n=this.scripts.find(o=>o.id===t);i.actoptions[Wo.ug]=[],n&&n.parameters&&(i.actoptions[Wo.ug]=JSON.parse(JSON.stringify(n.parameters)))}setScriptParam(t,i){t.value=i.variableId}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(wr.Y4),e.Y36(Ni.sK),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-alarm-property"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Swe,5),e.Gf(Pwe,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.flexAuth=o.first),e.iGM(o=e.CRH())&&(n.flexHead=o.first)}},decls:15,vars:11,consts:[[2,"position","relative"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","color","gray","cursor","pointer",3,"click"],["mat-dialog-content","",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"],["mat-dialog-content",""],[2,"display","block","width","680px","padding-bottom","20px"],[2,"display","block"],[3,"name","permission","permissionRoles"],["flexauth",""],["mat-dialog-content","",2,"overflow","hidden","width","100%"],[3,"data","property","withStaticValue","withBitmask"],["flexhead",""],["textAuto","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],["groupAuto","matAutocomplete"],[2,"width","100%","min-height","320px"],[3,"label"],[2,"overflow","hidden","padding-top","25px"],[1,"my-form-field",2,"display","inline-block","margin-bottom","10px","margin-left","20px"],["color","primary",3,"ngModel","ngModelChange"],[1,"my-form-field",2,"margin-bottom","10px","float","right"],[2,"width","323px",3,"value","valueChange"],[2,"display","inline-table"],[1,"my-form-field",2,"display","inline-block","margin-bottom","10px","padding-right","13px"],["numberOnly","","type","number","min","1",2,"width","145px",3,"ngModel","ngModelChange"],[2,"display","inline-block","margin-left","45px","margin-right","50px"],[3,"range"],[1,"my-form-field",2,"display","inline-block","margin-bottom","10px"],["numberOnly","","type","number",2,"width","158px",3,"ngModel","ngModelChange"],["type","text",2,"width","400px",3,"ngModel","matAutocomplete","ngModelChange"],["type","text",2,"width","253px",3,"ngModel","matAutocomplete","ngModelChange"],[2,"display","block","height","35px","margin-top","15px"],[1,"alarm-sample",2,"display","inline-block","padding-right","13px","width","403px","line-height","35px","padding-left","5px"],[1,"alarm-sample",2,"display","inline-block","width","240px","line-height","35px"],["mat-icon-button","",3,"click"],[2,"max-height","210px","overflow","auto","width","100%"],["class","action-item",4,"ngFor","ngForOf"],[1,"mb10",2,"height","20px"],["class","message-error",4,"ngIf"],[3,"value"],[1,"action-item"],[2,"display","inline-table",";margin-bottom","10px"],[1,"my-form-field",2,"display","inline-block","padding-right","13px"],[1,"my-form-field",2,"display","inline-block"],["numberOnly","","type","number",2,"width","145px",3,"ngModel","ngModelChange"],[1,"block","mb5"],[1,"my-form-field",2,"width","150px"],[3,"value","valueChange"],["class","inbk",4,"ngIf"],[2,"float","right"],["class","block mt5",4,"ngIf"],[1,"inbk"],[1,"my-form-field","ml20"],["type","text",2,"width","260px",3,"ngModel","ngModelChange"],[1,"my-form-field","ml20",2,"width","260px"],[3,"value","valueChange","selectionChange"],[1,"my-form-field","ml10",2,"width","100px"],[1,"block","mt5"],[2,"display","block","padding-left","25px"],[2,"display","block",3,"data","variableId","withStaticValue","onchange"],["class","ml10 mt5",4,"ngFor","ngForOf"],[1,"ml10","mt5"],[1,"my-form-field"],["type","text","readonly","",2,"width","160px",3,"ngModel","disabled","ngModelChange"],[2,"margin-left","10px","display","inline-block"],["class","my-form-field",4,"ngIf"],[1,"message-error"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.YNc(6,Fwe,3,4,"div",3),e.YNc(7,nCe,221,175,"div",3),e.TgZ(8,"div",4)(9,"button",5),e.NdJ("click",function(){return n.onNoClick()}),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"button",6),e.NdJ("click",function(){return n.onOkClick()}),e._uU(13),e.ALo(14,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,5,"alarm.property-title")),e.xp6(4),e.Q6J("ngIf",n.data.editmode<0),e.xp6(1),e.Q6J("ngIf",n.data.editmode>=0),e.xp6(3),e.Oqu(e.lcZ(11,7,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(14,9,"dlg.ok")))},dependencies:[l.sg,l.O5,I,qn,et,$n,$i,h_,Fm,Nr,Yn,Qr,Kr,Ir,Zn,fo,bc,NA,DA,qv,HC,$u,zr,fs,wS,Ni.X$,ii.T9],styles:["[_nghost-%COMP%] .alarm-sample[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[_nghost-%COMP%] .message-error[_ngcontent-%COMP%]{display:inline-block;color:red}[_nghost-%COMP%] .mat-tab-label{height:34px!important;min-width:120px!important}[_nghost-%COMP%] .action-item[_ngcontent-%COMP%]{display:block;width:100%;border-bottom:1px solid rgba(0,0,0,.1);margin-top:5px;margin-bottom:5px}"]})}return r})();function oCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",23)(1,"button",24),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddAlarm())}),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function aCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",23)(1,"button",24),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditAlarm(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function sCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-name")," "))}function lCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function cCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-device")," "))}function ACe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getVariableLabel(t.property),"")}}function dCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-highhigh")," "))}function uCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getSubProperty(t.highhigh)," ")}}function hCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-high")," "))}function pCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getSubProperty(t.high)," ")}}function gCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-low")," "))}function fCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getSubProperty(t.low)," ")}}function mCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-info")," "))}function _Ce(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getSubProperty(t.info)," ")}}function vCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"alarms.list-actions")," "))}function yCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getSubActionsProperty(t.actions)," ")}}function wCe(r,a){1&r&&e._UZ(0,"mat-header-cell")}function CCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",24),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveAlarm(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function bCe(r,a){1&r&&e._UZ(0,"mat-header-row")}function xCe(r,a){1&r&&e._UZ(0,"mat-row",26)}let BCe=(()=>{class r{dialog;translateService;projectService;displayedColumns=["select","name","device","highhigh","high","low","info","actions","remove"];dataSource=new Nn([]);subscriptionLoad;enabledText="";table;sort;constructor(t,i,n){this.dialog=t,this.translateService=i,this.projectService=n}ngOnInit(){this.loadAlarms(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{this.loadAlarms()}),this.translateService.get("alarm.property-enabled").subscribe(t=>{this.enabledText=t})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}onAddAlarm(){let t=new Oce;this.editAlarm(t,1)}onEditAlarm(t){this.editAlarm(t,0)}onRemoveAlarm(t){this.editAlarm(t,-1)}editAlarm(t,i){let n=JSON.parse(JSON.stringify(t));this.dialog.open(rCe,{disableClose:!0,data:{alarm:n,editmode:i,alarms:this.dataSource.data,devices:Object.values(this.projectService.getDevices()),views:this.projectService.getViews()},position:{top:"80px"}}).afterClosed().subscribe(s=>{s&&(i<0?this.projectService.removeAlarm(s).subscribe(c=>{this.loadAlarms()}):this.projectService.setAlarm(s,t).subscribe(c=>{this.loadAlarms()}))})}getSubProperty(t){return t&&t.enabled&&Bb.isValid(t)?this.enabledText:""}getSubActionsProperty(t){return t&&t.enabled&&aN.isValid(t)?this.enabledText:""}getVariableLabel(t){if(!t.variableId)return"";let i=this.projectService.getDeviceFromTagId(t.variableId);return i?i.name+" - "+i.tags[t.variableId].name:""}loadAlarms(){this.dataSource.data=this.projectService.getAlarms()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-alarm-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:41,vars:6,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","device"],["matColumnDef","highhigh"],["matColumnDef","high"],["matColumnDef","low"],["matColumnDef","info"],["matColumnDef","actions"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"warning_amber"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"mat-table",3,4),e.ynx(9,5),e.YNc(10,oCe,4,1,"mat-header-cell",6),e.YNc(11,aCe,4,1,"mat-cell",7),e.BQk(),e.ynx(12,8),e.YNc(13,sCe,3,3,"mat-header-cell",9),e.YNc(14,lCe,2,1,"mat-cell",10),e.BQk(),e.ynx(15,11),e.YNc(16,cCe,3,3,"mat-header-cell",9),e.YNc(17,ACe,2,1,"mat-cell",10),e.BQk(),e.ynx(18,12),e.YNc(19,dCe,3,3,"mat-header-cell",9),e.YNc(20,uCe,2,1,"mat-cell",10),e.BQk(),e.ynx(21,13),e.YNc(22,hCe,3,3,"mat-header-cell",9),e.YNc(23,pCe,2,1,"mat-cell",10),e.BQk(),e.ynx(24,14),e.YNc(25,gCe,3,3,"mat-header-cell",9),e.YNc(26,fCe,2,1,"mat-cell",10),e.BQk(),e.ynx(27,15),e.YNc(28,mCe,3,3,"mat-header-cell",9),e.YNc(29,_Ce,2,1,"mat-cell",10),e.BQk(),e.ynx(30,16),e.YNc(31,vCe,3,3,"mat-header-cell",9),e.YNc(32,yCe,2,1,"mat-cell",10),e.BQk(),e.ynx(33,17),e.YNc(34,wCe,1,0,"mat-header-cell",18),e.YNc(35,CCe,4,0,"mat-cell",10),e.BQk(),e.YNc(36,bCe,1,0,"mat-header-row",19),e.YNc(37,xCe,1,0,"mat-row",20),e.qZA()()(),e.TgZ(38,"button",21),e.NdJ("click",function(){return n.onAddAlarm()}),e.TgZ(39,"mat-icon",22),e._uU(40,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,4,"alarms.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(29),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,Yn,Zn,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}.header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0}.container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:0}.filter[_ngcontent-%COMP%]{display:inline-block;min-height:60px;padding:8px 24px 0}.filter[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%]{font-size:14px;width:100%}.table[_ngcontent-%COMP%]{height:705px}.mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}.mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}.mat-cell[_ngcontent-%COMP%]{font-size:13px}.mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.mat-header-cell[_ngcontent-%COMP%]{font-size:15px}.mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 80px}.mat-column-name[_ngcontent-%COMP%]{flex:1 1 200px}.mat-column-device[_ngcontent-%COMP%]{flex:2 1 350px}.mat-column-highhigh[_ngcontent-%COMP%], .mat-column-high[_ngcontent-%COMP%], .mat-column-low[_ngcontent-%COMP%], .mat-column-info[_ngcontent-%COMP%], .mat-column-actions[_ngcontent-%COMP%]{flex:0 0 140px}.mat-column-value[_ngcontent-%COMP%]{flex:0 0 800px}.mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}.selectidthClass[_ngcontent-%COMP%]{flex:0 0 50px}.message-error[_ngcontent-%COMP%]{display:inline-block;color:red}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-12px;right:20px}.my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px}"]})}return r})();class ECe{id;name;receiver;delay=1;interval=0;enabled=!0;text;type;subscriptions={};options;constructor(a){this.id=a}}var ah=function(r){return r.alarms="notification.type-alarm",r.trigger="notification.type-trigger",r}(ah||{});function DCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",23),e.NdJ("change",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return e.KtG(c.onSubscriptionChanged(s,n.checked))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw(2);e.Q6J("checked",i.getTypeValue(t)),e.xp6(1),e.hij(" ",e.lcZ(2,2,"alarm.property-"+t)," ")}}function TCe(r,a){if(1&r&&(e.TgZ(0,"div",21)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.YNc(4,DCe,3,4,"mat-checkbox",22),e.qZA()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"notification.property-priority")),e.xp6(2),e.Q6J("ngForOf",t.alarmsType)}}let ICe=(()=>{class r{dialogRef;fb;translateService;projectService;data;notification;notificationsType=ah;notificationAlarm=ii.cQ.getEnumKey(ah,ah.alarms);notificationTrigger=ii.cQ.getEnumKey(ah,ah.trigger);formGroup;alarmsType=[Sd.HIGH_HIGH,Sd.HIGH,Sd.LOW,Sd.INFO];constructor(t,i,n,o,s){this.dialogRef=t,this.fb=i,this.translateService=n,this.projectService=o,this.data=s,this.notification=this.data.notification??new ECe(ii.cQ.getGUID("n_"))}ngOnInit(){this.formGroup=this.fb.group({name:[this.notification.name,Z.required],receiver:[this.notification.receiver,Z.required],type:[this.notification.type,Z.required],delay:[this.notification.delay],interval:[this.notification.interval],enabled:[this.notification.enabled]}),this.formGroup.controls.name.addValidators(this.isValidName()),Object.keys(this.notificationsType).forEach(t=>{this.notificationsType[t]=this.translateService.instant(this.notificationsType[t])})}onNoClick(){this.dialogRef.close()}onOkClick(){this.notification={...this.notification,...this.formGroup.getRawValue()},this.dialogRef.close(this.notification)}onTypeChanged(t){}onSubscriptionChanged(t,i){this.notification.subscriptions[t]=i}getTypeValue(t){return this.notification?.type===this.notificationAlarm&&this.notification.subscriptions[t]}isValidName(){const t=this.projectService.getNotifications().map(i=>i.name);return i=>this.notification?.name===i.value?null:-1!==t?.indexOf(i.value)?{name:this.translateService.instant("msg.notification-name-exist")}:null}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-notification-property"]],decls:49,vars:32,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","item-block"],["formControlName","name","type","text"],[1,"my-form-field","item-block","mt10"],["formControlName","receiver","type","text"],[1,"block","mt10"],[1,"my-form-field"],["formControlName","type",2,"width","207px"],[3,"value"],[1,"my-form-field","ml15"],["numberOnly","","formControlName","delay","type","number","max","60","min","1","step","1",2,"width","80px"],["numberOnly","","formControlName","interval","type","number","max","60","min","0","step","1",2,"width","80px"],[1,"my-form-field","ml20"],["color","primary","formControlName","enabled",2,"vertical-align","middle"],["class","my-form-field block mt10",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action","mt10"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"my-form-field","block","mt10"],["style","margin: 7px 10px 7px 10px;",3,"checked","change",4,"ngFor","ngForOf"],[2,"margin","7px 10px 7px 10px",3,"checked","change"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",6)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",7),e.qZA(),e.TgZ(17,"div",8)(18,"div",9)(19,"span"),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-select",10),e._UZ(23,"mat-option",11),e.TgZ(24,"mat-option",11),e._uU(25),e.qZA()()(),e.TgZ(26,"div",12)(27,"span"),e._uU(28),e.ALo(29,"translate"),e.qZA(),e._UZ(30,"input",13),e.qZA(),e.TgZ(31,"div",12)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e._UZ(35,"input",14),e.qZA(),e.TgZ(36,"div",15)(37,"span"),e._uU(38),e.ALo(39,"translate"),e.qZA(),e._UZ(40,"mat-slide-toggle",16),e.qZA()(),e.YNc(41,TCe,5,4,"div",17),e.qZA(),e.TgZ(42,"div",18)(43,"button",19),e.NdJ("click",function(){return n.onNoClick()}),e._uU(44),e.ALo(45,"translate"),e.qZA(),e.TgZ(46,"button",20),e.NdJ("click",function(){return n.onOkClick()}),e._uU(47),e.ALo(48,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,14,"notification.property-title")),e.xp6(7),e.hij("*",e.lcZ(10,16,"notification.property-name"),""),e.xp6(5),e.hij("*",e.lcZ(15,18,"notification.property-receiver"),""),e.xp6(6),e.hij("*",e.lcZ(21,20,"notification.property-type"),""),e.xp6(4),e.Q6J("value",n.notificationAlarm),e.xp6(1),e.hij(" ",n.notificationsType[n.notificationAlarm]," "),e.xp6(3),e.Oqu(e.lcZ(29,22,"notification.property-delay")),e.xp6(5),e.Oqu(e.lcZ(34,24,"notification.property-interval")),e.xp6(5),e.Oqu(e.lcZ(39,26,"notification.property-enabled")),e.xp6(3),e.Q6J("ngIf",n.formGroup.value.type===n.notificationAlarm),e.xp6(3),e.Oqu(e.lcZ(45,28,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(48,30,"dlg.ok")))},dependencies:[l.sg,l.O5,In,I,qn,et,Xe,$n,Er,Sr,Ot,Nr,Yn,Bh,Qr,Kr,Ir,Zn,fo,bc,zr,fs,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%]{width:500px;min-height:220px;overflow:hidden;padding-bottom:7px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .item-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})();function kCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",23)(1,"button",24),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddNotification())}),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function QCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",23)(1,"button",24),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditNotification(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function SCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-name")," "))}function PCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function FCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-receiver")," "))}function OCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.receiver," ")}}function LCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-delay")," "))}function RCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.delay," ")}}function YCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-interval")," "))}function NCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.interval," ")}}function UCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-type")," "))}function zCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.type," ")}}function HCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-enabled")," "))}function GCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.enabled," ")}}function ZCe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",25),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"notifications.list-subscriptions")," "))}function JCe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getSubProperty(t)," ")}}function jCe(r,a){1&r&&e._UZ(0,"mat-header-cell")}function VCe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",24),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveNotification(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function WCe(r,a){1&r&&e._UZ(0,"mat-header-row")}function KCe(r,a){1&r&&e._UZ(0,"mat-row",26)}let qCe=(()=>{class r{dialog;translateService;projectService;displayedColumns=["select","name","receiver","delay","interval","type","enabled","subscriptions","remove"];dataSource=new Nn([]);notificationAlarm=Object.keys(ah).find(t=>ah[t]===ah.alarms);notificationTrigger=Object.keys(ah).find(t=>ah[t]===ah.trigger);alarmsType={};alarmsEnum=Sd;destroy$=new An.x;table;sort;constructor(t,i,n){this.dialog=t,this.translateService=i,this.projectService=n}ngOnInit(){this.loadNotifications(),this.projectService.onLoadHmi.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.loadNotifications()}),Object.values(this.alarmsEnum).forEach(t=>{this.alarmsType[t]=this.translateService.instant("alarm.property-"+t)})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onAddNotification(){this.editNotification()}onEditNotification(t){this.editNotification(t)}onRemoveNotification(t){let i=this.translateService.instant("msg.notification-remove",{value:t.name});this.dialog.open(qu,{data:{msg:i},position:{top:"60px"}}).afterClosed().subscribe(o=>{o&&this.projectService.removeNotification(t).subscribe(()=>{this.loadNotifications()})})}editNotification(t){this.dialog.open(ICe,{disableClose:!0,data:{notification:t},position:{top:"80px"}}).afterClosed().subscribe(n=>{n&&this.projectService.setNotification(n,t).subscribe(()=>{this.loadNotifications()})})}getSubProperty(t){if(t&&t.type===this.notificationAlarm){let i="";return Object.keys(t.subscriptions??[]).forEach(n=>{t.subscriptions[n]&&(i&&(i+=", "),i+=this.alarmsType[n])}),i}return""}loadNotifications(){this.dataSource.data=this.projectService.getNotifications()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-notification-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,7),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:41,vars:6,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","receiver"],["matColumnDef","delay"],["matColumnDef","interval"],["matColumnDef","type"],["matColumnDef","enabled"],["matColumnDef","subscriptions"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"notifications_none"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"mat-table",3,4),e.ynx(9,5),e.YNc(10,kCe,4,1,"mat-header-cell",6),e.YNc(11,QCe,4,1,"mat-cell",7),e.BQk(),e.ynx(12,8),e.YNc(13,SCe,3,3,"mat-header-cell",9),e.YNc(14,PCe,2,1,"mat-cell",10),e.BQk(),e.ynx(15,11),e.YNc(16,FCe,3,3,"mat-header-cell",9),e.YNc(17,OCe,2,1,"mat-cell",10),e.BQk(),e.ynx(18,12),e.YNc(19,LCe,3,3,"mat-header-cell",9),e.YNc(20,RCe,2,1,"mat-cell",10),e.BQk(),e.ynx(21,13),e.YNc(22,YCe,3,3,"mat-header-cell",9),e.YNc(23,NCe,2,1,"mat-cell",10),e.BQk(),e.ynx(24,14),e.YNc(25,UCe,3,3,"mat-header-cell",9),e.YNc(26,zCe,2,1,"mat-cell",10),e.BQk(),e.ynx(27,15),e.YNc(28,HCe,3,3,"mat-header-cell",9),e.YNc(29,GCe,2,1,"mat-cell",10),e.BQk(),e.ynx(30,16),e.YNc(31,ZCe,3,3,"mat-header-cell",9),e.YNc(32,JCe,2,1,"mat-cell",10),e.BQk(),e.ynx(33,17),e.YNc(34,jCe,1,0,"mat-header-cell",18),e.YNc(35,VCe,4,0,"mat-cell",10),e.BQk(),e.YNc(36,WCe,1,0,"mat-header-row",19),e.YNc(37,KCe,1,0,"mat-row",20),e.qZA()()(),e.TgZ(38,"button",21),e.NdJ("click",function(){return n.onAddNotification()}),e.TgZ(39,"mat-icon",22),e._uU(40,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,4,"notifications.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(29),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,Yn,Zn,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:["[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}[_nghost-%COMP%] .work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0}[_nghost-%COMP%] .container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:0}[_nghost-%COMP%] .mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}[_nghost-%COMP%] .mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}[_nghost-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:15px}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 80px}[_nghost-%COMP%] .mat-column-name[_ngcontent-%COMP%]{flex:1 1 120px}[_nghost-%COMP%] .mat-column-receiver[_ngcontent-%COMP%]{flex:1 1 460px}[_nghost-%COMP%] .mat-column-delay[_ngcontent-%COMP%]{flex:0 0 60px}[_nghost-%COMP%] .mat-column-interval[_ngcontent-%COMP%]{flex:0 0 80px}[_nghost-%COMP%] .mat-column-type[_ngcontent-%COMP%]{flex:0 0 80px}[_nghost-%COMP%] .mat-column-enabled[_ngcontent-%COMP%]{flex:0 0 100px}[_nghost-%COMP%] .mat-column-subscriptions[_ngcontent-%COMP%]{flex:3 1 200px}[_nghost-%COMP%] .mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}[_nghost-%COMP%] .selectidthClass[_ngcontent-%COMP%]{flex:0 0 50px}[_nghost-%COMP%] .message-error[_ngcontent-%COMP%]{display:inline-block;color:red}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}[_nghost-%COMP%] .my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-12px;right:20px}[_nghost-%COMP%] .my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px}"]})}return r})();function XCe(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"script.paramtype-"+t)," ")}}function $Ce(r,a){if(1&r&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.Oqu(t.error)}}let ebe=(()=>{class r{dialogRef;translateService;data;error="";existError;paramType=ii.cQ.enumKeys(Wo.ZW);constructor(t,i,n){this.dialogRef=t,this.translateService=i,this.data=n,this.existError=this.translateService.instant("script.param-name-exist")}onNoClick(){this.dialogRef.close()}isValid(t){return!(this.data.validator&&!this.data.validator(t)||!this.data.type||!this.data.name||this.data.exist.find(i=>i===t))}onCheckValue(t){this.error=this.data.exist&&this.data.exist.length&&t.target.value&&this.data.exist.find(i=>i===t.target.value)?this.existError:""}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Ni.sK),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-script-editor-param"]],decls:28,vars:25,consts:[["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block"],["type","text",2,"width","300px",3,"ngModel","readonly","ngModelChange","input"],[1,"my-form-field","mt10"],[2,"width","300px",3,"value","placeholder","valueChange"],[3,"value",4,"ngFor","ngForOf"],[2,"display","block","color","red","height","22px"],[4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","mat-dialog-close"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",4),e.NdJ("ngModelChange",function(s){return n.data.name=s})("input",function(s){return n.onCheckValue(s)}),e.qZA()(),e.TgZ(12,"div",5)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"mat-select",6),e.NdJ("valueChange",function(s){return n.data.type=s}),e.ALo(17,"translate"),e.YNc(18,XCe,3,4,"mat-option",7),e.qZA()(),e.TgZ(19,"div",8),e.YNc(20,$Ce,2,1,"span",9),e.qZA()(),e.TgZ(21,"div",10)(22,"button",11),e.NdJ("click",function(){return n.onNoClick()}),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"button",12),e._uU(26),e.ALo(27,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,13,"script.param-title")),e.xp6(7),e.Oqu(e.lcZ(10,15,"script.param-name")),e.xp6(2),e.Q6J("ngModel",n.data.name)("readonly",n.data.readonly),e.xp6(3),e.Oqu(e.lcZ(15,17,"script.param-type")),e.xp6(2),e.s9C("placeholder",e.lcZ(17,19,"script.paramtype")),e.Q6J("value",n.data.type),e.xp6(2),e.Q6J("ngForOf",n.paramType),e.xp6(2),e.Q6J("ngIf",n.error),e.xp6(3),e.Oqu(e.lcZ(24,21,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",!n.isValid(n.data.name))("mat-dialog-close",n.data),e.xp6(1),e.Oqu(e.lcZ(27,23,"dlg.ok")))},dependencies:[l.sg,l.O5,I,et,$i,Nr,Yn,Cc,Qr,Kr,Ir,Zn,fo,zr,Ni.X$]})}return r})();function tbe(r,a){if(1&r&&(e.TgZ(0,"div"),e._uU(1),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.hij(" ",t.msgRemoveScript," ")}}function ibe(r,a){1&r&&(e.TgZ(0,"span",10),e._uU(1,"async "),e.qZA())}function nbe(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1,","),e.qZA())}function rbe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",38)(1,"div",39)(2,"mat-icon",40),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(2);return e.KtG(s.onRemoveParameter(o))}),e._uU(3,"cancel"),e.qZA(),e.TgZ(4,"span"),e._uU(5),e.qZA()(),e.YNc(6,nbe,2,0,"span",3),e.qZA()}if(2&r){const t=a.$implicit,i=a.index,n=e.oxw(2);e.xp6(5),e.Oqu(t.name),e.xp6(1),e.Q6J("ngIf",i",t,"")}}function ube(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div")(1,"div",7)(2,"div",8),e.YNc(3,ibe,2,0,"span",9),e.TgZ(4,"span",10),e._uU(5,"function"),e.qZA(),e.TgZ(6,"span",11),e._uU(7),e.qZA(),e._uU(8," ( "),e.YNc(9,rbe,7,2,"div",12),e._uU(10," ) { "),e.qZA(),e.TgZ(11,"div",13)(12,"button",14)(13,"mat-icon"),e._uU(14,"more_vert"),e.qZA()(),e.TgZ(15,"mat-menu",15,16)(17,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onEditScriptName())}),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddFunctionParam())}),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"button",18),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.toggleSync())}),e.TgZ(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.YNc(27,obe,2,0,"mat-icon",3),e.qZA()(),e.TgZ(28,"button",19),e.NdJ("click",function(){e.CHM(t);const n=e.MAs(36);return e.KtG(n.toggle())}),e.ALo(29,"translate"),e.TgZ(30,"mat-icon",20),e._uU(31,"keyboard_arrow_left"),e.qZA()()()(),e.TgZ(32,"div")(33,"mat-drawer-container",21),e.YNc(34,abe,3,2,"div",3),e.TgZ(35,"mat-drawer",22,23)(37,"mat-tab-group")(38,"mat-tab",24),e.ALo(39,"translate"),e.TgZ(40,"div",25),e.YNc(41,sbe,3,2,"div",26),e.qZA()(),e.TgZ(42,"mat-tab",24),e.ALo(43,"translate"),e.TgZ(44,"div",25),e.YNc(45,lbe,3,2,"div",26),e.qZA()(),e.TgZ(46,"mat-tab",24),e.ALo(47,"translate"),e.TgZ(48,"div",27)(49,"div",28)(50,"div",29)(51,"span",30),e._uU(52),e.ALo(53,"translate"),e.qZA(),e.TgZ(54,"div",31),e.YNc(55,Abe,6,3,"div",32),e.qZA()(),e.TgZ(56,"button",33),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onRunTest())}),e._uU(57),e.ALo(58,"translate"),e.qZA()(),e.TgZ(59,"div",34)(60,"div")(61,"span",30),e._uU(62),e.ALo(63,"translate"),e.qZA(),e.TgZ(64,"button",35),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onConsoleClear())}),e.TgZ(65,"mat-icon"),e._uU(66,"delete_forever"),e.qZA()(),e.YNc(67,dbe,3,1,"div",36),e.qZA()()()()()()()(),e.TgZ(68,"div",37),e._uU(69," } "),e.qZA()()}if(2&r){const t=e.MAs(16),i=e.MAs(36),n=e.oxw();e.xp6(3),e.Q6J("ngIf",!n.script.sync),e.xp6(4),e.hij(" ",n.script.name,""),e.xp6(2),e.Q6J("ngForOf",n.parameters),e.xp6(3),e.Q6J("matMenuTriggerFor",t),e.xp6(3),e.Q6J("overlapTrigger",!1),e.xp6(3),e.Oqu(e.lcZ(19,22,"script.property-editname")),e.xp6(3),e.Oqu(e.lcZ(22,24,"script.property-addfnc-param")),e.xp6(4),e.Oqu(e.lcZ(26,26,"script.property-async-function")),e.xp6(2),e.Q6J("ngIf",!n.script.sync),e.xp6(1),e.s9C("matTooltip",e.lcZ(29,28,"script.property-systems")),e.xp6(2),e.Q6J("ngClass",i.opened?"side-toggle-collapse":"side-toggle-expand"),e.xp6(4),e.Q6J("ngIf",n.ready),e.xp6(4),e.s9C("label",e.lcZ(39,30,"script.property-systems")),e.xp6(3),e.Q6J("ngForOf",n.systemFunctions.functions),e.xp6(1),e.s9C("label",e.lcZ(43,32,"script.property-templates")),e.xp6(3),e.Q6J("ngForOf",n.templatesCode.functions),e.xp6(1),e.s9C("label",e.lcZ(47,34,"script.property-test")),e.xp6(6),e.Oqu(e.lcZ(53,36,"script.property-test-params")),e.xp6(3),e.Q6J("ngForOf",n.testParameters),e.xp6(2),e.Oqu(e.lcZ(58,38,"script.property-test-run")),e.xp6(5),e.Oqu(e.lcZ(63,40,"script.property-test-console")),e.xp6(5),e.Q6J("ngForOf",n.console)}}let hbe=(()=>{class r{dialogRef;dialog;changeDetector;translateService;hmiService;scriptService;data;CodeMirror;codeMirrorContent;codeMirrorOptions={lineNumbers:!0,theme:"material",mode:"javascript",lint:!0};systemFunctions;templatesCode;checkSystemFnc=[];parameters=[];testParameters=[];tagParamType=ii.cQ.getEnumKey(Wo.ZW,Wo.ZW.tagid);console=[];script;msgRemoveScript="";ready=!1;destroy$=new An.x;constructor(t,i,n,o,s,c,g){this.dialogRef=t,this.dialog=i,this.changeDetector=n,this.translateService=o,this.hmiService=s,this.scriptService=c,this.data=g,this.script=g.script,this.dialogRef.afterOpened().subscribe(()=>setTimeout(()=>{this.ready=!0,this.setCM()},0)),this.systemFunctions=new Wo.ui(this.script.mode),this.templatesCode=new Wo.mH(this.script.mode),this.checkSystemFnc=this.systemFunctions.functions.map(B=>B.name)}ngOnInit(){this.script||(this.script=new Wo.Xf(ii.cQ.getGUID(Wo.HO))),this.parameters=this.script.parameters,this.codeMirrorContent=this.script.code,this.translateService.get("msg.script-remove",{value:this.script.name}).subscribe(t=>{this.msgRemoveScript=t}),this.systemFunctions.functions.forEach(t=>{this.translateService.get(t.text).subscribe(i=>{t.text=i}),this.translateService.get(t.tooltip).subscribe(i=>{t.tooltip=i})}),this.templatesCode.functions.forEach(t=>{t.text=this.translateService.instant(t.text),t.tooltip=this.translateService.instant(t.tooltip)}),this.hmiService.onScriptConsole.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.console.push(t.msg)}),this.loadTestParameter()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}setCM(){this.changeDetector.detectChanges(),this.CodeMirror?.codeMirror?.refresh();let t={token:i=>{for(let n=0;nc.name);this.translateService.get(t).subscribe(c=>{t=c}),this.translateService.get(i).subscribe(c=>{i=c}),this.translateService.get(n).subscribe(c=>{n=c}),this.dialog.open(Tv,{disableClose:!0,position:{top:"60px"},data:{name:this.script.name,title:t,label:i,exist:o,error:n,validator:this.validateName}}).afterClosed().subscribe(c=>{c&&c.name&&c.name.length>0&&(this.script.name=c.name)})}onAddFunctionParam(){let i=this.parameters.map(o=>o.name);this.dialog.open(ebe,{disableClose:!0,position:{top:"60px"},data:{name:"",exist:i,error:"dlg.item-name-error",validator:this.validateName}}).afterClosed().subscribe(o=>{o&&o.name&&o.type&&(this.parameters.push(new Wo.lo(o.name,o.type)),this.loadTestParameter())})}onRemoveParameter(t){this.parameters.splice(t,1),this.loadTestParameter()}onEditorContent(t){this.script.code=this.codeMirrorContent}onAddSystemFunction(t){t.params.filter(i=>i)?.length?this.onAddSystemFunctionTag(t):this.insertText(this.getFunctionText(t))}onAddTemplateCode(t){t.code&&this.insertText(t.code)}onAddSystemFunctionTag(t){const i=t.params?.find(o=>"array"===o);this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:null,multiSelection:!!i,deviceFilter:[this.script.mode===Wo.EN.SERVER?Yi.Yi.internal:null],isHistorical:t.paramFilter===Wo.St.history}}).afterClosed().subscribe(o=>{if(o){let s;if(i&&o.variablesId){const c=o.variablesId.map(g=>({id:g,comment:Yi.ef.getDeviceTagText(this.data.devices,g)}));s=this.getTagFunctionText(t,c)}else if(o.variableId){const c={id:o.variableId,comment:Yi.ef.getDeviceTagText(this.data.devices,o.variableId)};s=this.getTagFunctionText(t,[c])}this.insertText(s)}})}onSetTestTagParam(t){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:null,multiSelection:!1,deviceFilter:[Yi.Yi.internal]}}).afterClosed().subscribe(n=>{n&&n.variableId&&(t.value=n.variableId)})}onRunTest(){let t=new Wo.vC(this.script.id,this.script.name);t.parameters=this.testParameters,t.mode=this.script.mode,t.outputId=this.script.id,t.code=this.script.code,this.scriptService.runScript(t).subscribe(i=>{this.console.push(JSON.stringify(i))},i=>{this.console.push(i.message?i.message:i),i.error&&this.console.push(i.error.message?i.error.message:i.error)})}toggleSync(){this.script.sync=!this.script.sync}onConsoleClear(){this.console=[]}validateName(t){return/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(t)}insertText(t){let i=this.CodeMirror.codeMirror.getDoc();var n=i.getCursor();i.replaceRange(t,n)}getTagFunctionText(t,i){let n="";for(let o=0;o`'${c.id}' /* ${c.comment} */`).join(", ")+"]":i[o]&&(s=`'${i[o].id}' /* ${i[o].comment} */`)),n+=s}return`${t.name}(${n});`}getFunctionText(t){let i="'params'";const n=this.systemFunctions.functions.find(o=>o.name===t.name);return n?.params?.length?n?.paramsText&&(i=this.translateService.instant(n.paramsText)||i):i="",`${t.name}(${i});`}loadTestParameter(){let t=[];for(let i=0;i=0),e.xp6(3),e.Oqu(e.lcZ(11,8,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",!n.isValid()),e.xp6(1),e.Oqu(e.lcZ(14,10,"dlg.ok")))},dependencies:[l.mk,l.sg,l.O5,I,et,$i,Yn,Qr,Ir,Zn,zc,Hc,cc,av,g0,NA,DA,Cs,XE,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{height:100%}[_nghost-%COMP%] .panel-header[_ngcontent-%COMP%]{width:100%;display:block}[_nghost-%COMP%] .panel-footer[_ngcontent-%COMP%]{float:left;height:22px;font-family:monospace}[_nghost-%COMP%] .panel-function[_ngcontent-%COMP%]{display:inline-block;width:calc(100% - 90px);margin-top:10px;font-family:monospace}[_nghost-%COMP%] .panel-toolbar[_ngcontent-%COMP%]{float:right}[_nghost-%COMP%] .panel-code[_ngcontent-%COMP%]{width:100%;--tab-height: 30px}[_nghost-%COMP%] .system-function[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%;font-size:12px!important;font-weight:100!important;margin-top:2px;margin-bottom:2px;background-color:#424242;color:#fff}[_nghost-%COMP%] .test-parameters[_ngcontent-%COMP%]{display:block;font-size:12px;padding:5px}[_nghost-%COMP%] .test-console[_ngcontent-%COMP%]{display:block;font-size:12px;padding-left:5px;border-top:1px solid #2D3335}[_nghost-%COMP%] .test-parameters[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{line-height:24px;width:100%}[_nghost-%COMP%] .test-parameters[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{overflow:auto}[_nghost-%COMP%] .content[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%]{margin-top:5px}[_nghost-%COMP%] .content[_ngcontent-%COMP%] .content-input[_ngcontent-%COMP%]{width:220px;background-color:#242b2e}[_nghost-%COMP%] .content[_ngcontent-%COMP%] .content-button[_ngcontent-%COMP%]{margin-left:10px;height:27px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{overflow:auto;position:relative}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%] .test-button[_ngcontent-%COMP%]{position:absolute;bottom:5px;right:5px}[_nghost-%COMP%] .test-console[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{line-height:20px;width:100%}[_nghost-%COMP%] .small-icon-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:24px}[_nghost-%COMP%] .small-icon-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:20px;height:20px;line-height:20px}[_nghost-%COMP%] .small-icon-button[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:16px}[_nghost-%COMP%] .console-text[_ngcontent-%COMP%]{display:block;line-height:14px;white-space:nowrap}[_nghost-%COMP%] .mat-tab-label{height:var(--tab-height)!important;color:#fff;padding-left:10px!important;padding-right:10px!important;min-width:100px}[_nghost-%COMP%] .cm-system-function{color:#adff2f}@media screen and (max-height: 1500px){[_nghost-%COMP%] .CodeMirror{height:600px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{height:calc(299px - var(--tab-height) / 2)}}@media screen and (max-height: 960px){[_nghost-%COMP%] .CodeMirror{height:600px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{height:calc(299px - var(--tab-height) / 2)}}@media screen and (max-height: 920px){[_nghost-%COMP%] .CodeMirror{height:540px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{height:calc(269px - var(--tab-height) / 2)}}@media screen and (max-height: 870px){[_nghost-%COMP%] .CodeMirror{height:480px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{height:calc(239px - var(--tab-height) / 2)}}@media screen and (max-height: 820px){[_nghost-%COMP%] .CodeMirror{height:400px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{height:calc(199px - var(--tab-height) / 2)}}@media screen and (max-height: 720px){[_nghost-%COMP%] .CodeMirror{height:300px}[_nghost-%COMP%] .test-panel[_ngcontent-%COMP%]{height:calc(149px - var(--tab-height) / 2)}}[_nghost-%COMP%] .side-panel[_ngcontent-%COMP%]{background-color:#333a3c;color:#fff}[_nghost-%COMP%] .side-panel-header[_ngcontent-%COMP%]{font-size:15px;margin-top:5px;line-height:25px;margin-bottom:5px}[_nghost-%COMP%] .side-toggle[_ngcontent-%COMP%]{transform-origin:center center;transition:all .3s ease-in-out}[_nghost-%COMP%] .side-toggle-expand[_ngcontent-%COMP%]{transform:rotate(0)}[_nghost-%COMP%] .side-toggle-collapse[_ngcontent-%COMP%]{transform:rotate(180deg)}[_nghost-%COMP%] .function-text[_ngcontent-%COMP%]{color:#006eff;line-height:25px}[_nghost-%COMP%] .mychips[_ngcontent-%COMP%]{display:inline-block;font-size:inherit;height:26px;line-height:24px;border-radius:13px;background-color:var(--chipsBackground);cursor:pointer;font-family:monospace;vertical-align:middle;margin-left:2px;margin-right:2px}[_nghost-%COMP%] .mychips[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:3px 3px 4px 2px;opacity:.5;font-size:20px;text-align:center}[_nghost-%COMP%] .mychips[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{padding-left:3px;padding-right:13px;vertical-align:top}.code-menu-sync-select[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;margin-right:unset!important}.code-menu-sync-select[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:20px;margin-right:25px}"]})}return r})();function pbe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"button",21),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onRemoveScheduling())}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()(),e.BQk()}}function gbe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"button",22),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onRemoveScheduling())}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()(),e.BQk()}}let fbe=(()=>{class r{removable=!0;formGroup;onRemove=new e.vpe;selectedTabIndex=0;selectedTabFormControl=new xt(this.selectedTabIndex);constructor(){}ngOnInit(){this.selectedTabIndex=this.formGroup.value.type}onTabSelectionChange(t){this.formGroup.controls.type.setValue(t)}onRemoveScheduling(){this.onRemove.emit()}static \u0275fac=function(i){return new(i||r)};static \u0275cmp=e.Xpm({type:r,selectors:[["app-ngx-scheduler"]],inputs:{removable:"removable",formGroup:"formGroup"},outputs:{onRemove:"onRemove"},decls:61,vars:64,consts:[[1,"container",3,"formGroup"],[1,"inbk",3,"selectedIndex","selectedIndexChange"],[3,"label"],["formControlName","days","multiple","",1,"mt15"],["value","mon",3,"matTooltip"],["value","tue",3,"matTooltip"],["value","wed",3,"matTooltip"],["value","thu",3,"matTooltip"],["value","fri",3,"matTooltip"],["value","sat",3,"matTooltip"],["value","sun",3,"matTooltip"],[1,"inbk","ml10","mr10","hour-time"],[1,"my-form-field","hour"],["numberOnly","","type","number","formControlName","hour","min","0","max","23","step","1"],[1,"my-form-field","minute"],["numberOnly","","type","number","formControlName","minute","min","0","max","59","step","1"],[4,"ngIf"],[1,"mt10"],[1,"my-form-field","inbk","ml10","mr10"],["type","date","matInput","","formControlName","date",1,"time"],["type","time","matInput","","formControlName","time",1,"time"],["mat-icon-button","","type","button",1,"ml10",3,"click"],["mat-icon-button","","type","button",1,"ftr",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"mat-tab-group",1),e.NdJ("selectedIndexChange",function(s){return n.selectedTabIndex=s})("selectedIndexChange",function(s){return n.onTabSelectionChange(s)}),e.TgZ(2,"mat-tab",2),e.ALo(3,"translate"),e.TgZ(4,"mat-button-toggle-group",3)(5,"mat-button-toggle",4),e.ALo(6,"translate"),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"mat-button-toggle",5),e.ALo(10,"translate"),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"mat-button-toggle",6),e.ALo(14,"translate"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"mat-button-toggle",7),e.ALo(18,"translate"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"mat-button-toggle",8),e.ALo(22,"translate"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.TgZ(25,"mat-button-toggle",9),e.ALo(26,"translate"),e._uU(27),e.ALo(28,"translate"),e.qZA(),e.TgZ(29,"mat-button-toggle",10),e.ALo(30,"translate"),e._uU(31),e.ALo(32,"translate"),e.qZA()(),e.TgZ(33,"div",11)(34,"div",12)(35,"span"),e._uU(36),e.ALo(37,"translate"),e.qZA(),e._UZ(38,"input",13),e.qZA(),e.TgZ(39,"span"),e._uU(40," : "),e.qZA(),e.TgZ(41,"div",14)(42,"span"),e._uU(43),e.ALo(44,"translate"),e.qZA(),e._UZ(45,"input",15),e.qZA()(),e.YNc(46,pbe,4,0,"ng-container",16),e.qZA(),e.TgZ(47,"mat-tab",2),e.ALo(48,"translate"),e.TgZ(49,"div",17)(50,"div",18)(51,"span"),e._uU(52),e.ALo(53,"translate"),e.qZA(),e._UZ(54,"input",19),e.qZA(),e.TgZ(55,"div",18)(56,"span"),e._uU(57),e.ALo(58,"translate"),e.qZA(),e._UZ(59,"input",20),e.qZA(),e.YNc(60,gbe,4,0,"ng-container",16),e.qZA()()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(1),e.Q6J("selectedIndex",n.selectedTabIndex),e.xp6(1),e.s9C("label",e.lcZ(3,24,"script.scheduling-weekly")),e.xp6(3),e.s9C("matTooltip",e.lcZ(6,26,"general.monday")),e.xp6(2),e.Oqu(e.lcZ(8,28,"general.monday-short")),e.xp6(2),e.s9C("matTooltip",e.lcZ(10,30,"general.tuesday")),e.xp6(2),e.Oqu(e.lcZ(12,32,"general.tuesday-short")),e.xp6(2),e.s9C("matTooltip",e.lcZ(14,34,"general.wednesday")),e.xp6(2),e.Oqu(e.lcZ(16,36,"general.wednesday-short")),e.xp6(2),e.s9C("matTooltip",e.lcZ(18,38,"general.thursday")),e.xp6(2),e.Oqu(e.lcZ(20,40,"general.thursday-short")),e.xp6(2),e.s9C("matTooltip",e.lcZ(22,42,"general.friday")),e.xp6(2),e.Oqu(e.lcZ(24,44,"general.friday-short")),e.xp6(2),e.s9C("matTooltip",e.lcZ(26,46,"general.saturday")),e.xp6(2),e.Oqu(e.lcZ(28,48,"general.saturday-short")),e.xp6(2),e.s9C("matTooltip",e.lcZ(30,50,"general.sunday")),e.xp6(2),e.Oqu(e.lcZ(32,52,"general.sunday-short")),e.xp6(5),e.Oqu(e.lcZ(37,54,"script.scheduling-hour")),e.xp6(7),e.Oqu(e.lcZ(44,56,"script.scheduling-minute")),e.xp6(3),e.Q6J("ngIf",n.removable),e.xp6(1),e.s9C("label",e.lcZ(48,58,"script.scheduling-date")),e.xp6(5),e.Oqu(e.lcZ(53,60,"script.scheduling-date")),e.xp6(5),e.Oqu(e.lcZ(58,62,"script.scheduling-time")),e.xp6(3),e.Q6J("ngIf",n.removable))},dependencies:[l.O5,In,I,qn,et,Xe,$n,Er,Sr,Ot,Yn,Sy,Fy,Zn,qd,NA,DA,Cs,fs,Ni.X$],styles:[".container[_ngcontent-%COMP%]{min-height:100px}.container[_ngcontent-%COMP%] .mat-tab-label{height:34px!important;min-width:120px!important}.container[_ngcontent-%COMP%] input[type=time][_ngcontent-%COMP%]::-webkit-calendar-picker-indicator{filter:var(--inputTime)}.container[_ngcontent-%COMP%] input[type=date][_ngcontent-%COMP%]::-webkit-calendar-picker-indicator{filter:var(--inputTime)}.container[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{font-size:16px;font-family:Segoe UI Symbol,Roboto-Regular,Helvetica Neue,sans-serif}.container[_ngcontent-%COMP%] .hour-time[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .container[_ngcontent-%COMP%] .hour-time[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:40px}"]})}return r})();function mbe(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",e.lcZ(2,2,"script.scheduling-"+t)," ")}}function _be(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",14)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"input",15),e.qZA(),e.BQk()),2&r&&(e.xp6(3),e.Oqu(e.lcZ(4,1,"script.delay")))}function vbe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",20)(1,"app-ngx-scheduler",21),e.NdJ("onRemove",function(){const o=e.CHM(t).index,s=e.oxw(2);return e.KtG(s.onRemoveScheduling(o))}),e.qZA()()}if(2&r){const t=a.$implicit;e.xp6(1),e.Q6J("formGroup",t)("removable",!0)}}function ybe(r,a){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",16)(2,"button",17),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddScheduling())}),e.TgZ(3,"mat-icon"),e._uU(4,"add_circle_outline"),e.qZA()(),e._uU(5),e.ALo(6,"translate"),e.qZA(),e.TgZ(7,"div",18),e.YNc(8,vbe,2,2,"div",19),e.qZA(),e.BQk()}if(2&r){const t=e.oxw();e.xp6(5),e.hij(" ",e.lcZ(6,2,"script.scheduling-add-item")," "),e.xp6(3),e.Q6J("ngForOf",t.formGroup.controls.schedules.value.controls)}}function wbe(r,a){1&r&&(e.ynx(0),e.TgZ(1,"div",16)(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"input",15),e.qZA(),e.BQk()),2&r&&(e.xp6(3),e.Oqu(e.lcZ(4,1,"script.interval")))}let Cbe=(()=>{class r{dialogRef;fb;data;formGroup;scheduling={interval:0};schedulingMode=Object.keys(Wo.ez);constructor(t,i,n){this.dialogRef=t,this.fb=i,this.data=n,this.data.scheduling&&(this.scheduling=JSON.parse(JSON.stringify(this.data.scheduling)))}ngOnInit(){this.formGroup=this.fb.group({mode:[this.scheduling?.mode||"interval"],interval:[this.scheduling?.interval||0],schedules:[this.fb.array([])]}),this.scheduling?.schedules&&this.scheduling.schedules.forEach(t=>{this.onAddScheduling(t)})}onAddScheduling(t){let i=this.formGroup.get("schedules");const n=this.fb.group({date:[t?.date],days:[t?.days],time:[t?.time],hour:[t?.hour],minute:[t?.minute],type:[t?.type]});i.value.controls.push(n)}onRemoveScheduling(t){this.formGroup.get("schedules").value.controls.splice(t,1)}onNoClick(){this.dialogRef.close()}onOkClick(){let t=this.formGroup.get("schedules");this.scheduling=this.formGroup.value,this.scheduling.schedules=t.value.controls.map(i=>i.value),this.dialogRef.close(this.scheduling)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-script-scheduling"]],decls:24,vars:17,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"force-lbk","pointer-move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block","mt10","mb10"],["formControlName","mode",1,"sel-type"],[3,"value",4,"ngFor","ngForOf"],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","","cdkFocusInitial","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"value"],[1,"my-form-field","block","mt10"],["numberOnly","","formControlName","interval","min","0","type","number",1,"row-input"],[1,"my-form-field","block"],["mat-icon-button","","type","button",3,"click"],[1,"schedulig-list","mt10"],["class","mt5 mb5",4,"ngFor","ngForOf"],[1,"mt5","mb5"],[3,"formGroup","removable","onRemove"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",5),e.YNc(12,mbe,3,4,"mat-option",6),e.qZA()(),e.ynx(13,7),e.YNc(14,_be,6,3,"ng-container",8),e.YNc(15,ybe,9,4,"ng-container",8),e.YNc(16,wbe,6,3,"ng-container",9),e.BQk(),e.qZA(),e.TgZ(17,"div",10)(18,"button",11),e.NdJ("click",function(){return n.onNoClick()}),e._uU(19),e.ALo(20,"translate"),e.qZA(),e.TgZ(21,"button",12),e.NdJ("click",function(){return n.onOkClick()}),e._uU(22),e.ALo(23,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,9,"script.scheduling-title")),e.xp6(7),e.Oqu(e.lcZ(10,11,"script.scheduling-type")),e.xp6(3),e.Q6J("ngForOf",n.schedulingMode),e.xp6(1),e.Q6J("ngSwitch",n.formGroup.controls.mode.value),e.xp6(1),e.Q6J("ngSwitchCase","start"),e.xp6(1),e.Q6J("ngSwitchCase","scheduling"),e.xp6(4),e.Oqu(e.lcZ(20,13,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(23,15,"dlg.ok")))},dependencies:[l.sg,l.RF,l.n9,l.ED,In,I,qn,et,Xe,$n,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,fs,fbe,Ni.X$],styles:[".container[_ngcontent-%COMP%]{min-width:510px}.container[_ngcontent-%COMP%] .sel-type[_ngcontent-%COMP%], .container[_ngcontent-%COMP%] .row-input[_ngcontent-%COMP%]{width:400px}.container[_ngcontent-%COMP%] .schedulig-list[_ngcontent-%COMP%]{max-height:500px;overflow:auto}"]})}return r})(),bbe=(()=>{class r{dialogRef;data;cdr;userService;settingsService;userInfo;selected=[];options=[];seloptions;destroy$=new An.x;constructor(t,i,n,o,s){this.dialogRef=t,this.data=i,this.cdr=n,this.userService=o,this.settingsService=s}ngOnInit(){this.isRolePermission()?this.userService.getRoles().pipe((0,f.U)(t=>t.sort((i,n)=>i.index-n.index)),(0,On.R)(this.destroy$)).subscribe(t=>{this.options=t?.map(i=>({id:i.id,label:i.name})),this.selected=this.options.filter(i=>this.data.permissionRoles?.enabled?.includes(i.id))},t=>{console.error("get Roles err: "+t)}):(this.selected=Gc.wt.ValueToGroups(this.data.permission),this.options=Gc.wt.Groups),this.cdr.detectChanges()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onNoClick(){this.dialogRef.close()}onOkClick(){let t={permission:null,permissionRoles:{enabled:null}};this.seloptions&&(this.isRolePermission()?t.permissionRoles.enabled=this.seloptions.selected?.map(i=>i.id):t.permission=Gc.wt.GroupsToValue(this.seloptions.selected)),this.dialogRef.close(t)}isRolePermission(){return this.settingsService.getSettings()?.userRole}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr),e.Y36(e.sBO),e.Y36(tm),e.Y36(Rh.g))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-script-permission"]],viewQuery:function(i,n){if(1&i&&e.Gf(em,5),2&i){let o;e.iGM(o=e.CRH())&&(n.seloptions=o.first)}},decls:23,vars:17,consts:[[2,"width","350px"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[2,"float","right","margin-right","-10px","margin-top","-10px","cursor","pointer","color","gray",3,"click"],["mat-dialog-content",""],[1,"my-form-field",2,"display","block","margin-bottom","10px"],[2,"display","inline-block","width","70px"],[2,"display","inline-block"],[2,"display","block",3,"selected","options"],["seloptions",""],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary","cdkFocusInitial","",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5," clear "),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span",5),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"span",6),e._uU(12),e.ALo(13,"translate"),e.qZA(),e._UZ(14,"sel-options",7,8),e.qZA()(),e.TgZ(16,"div",9)(17,"button",10),e.NdJ("click",function(){return n.onNoClick()}),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"button",11),e.NdJ("click",function(){return n.onOkClick()}),e._uU(21),e.ALo(22,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,7,"script.permission-title")),e.xp6(7),e.Oqu(e.lcZ(10,9,"script.permission-enabled")),e.xp6(3),e.Oqu(e.lcZ(13,11,"script.permission-label")),e.xp6(2),e.Q6J("selected",n.selected)("options",n.options),e.xp6(4),e.Oqu(e.lcZ(19,13,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(22,15,"dlg.ok")))},dependencies:[Yn,Qr,Kr,Ir,Zn,zr,em,Ni.X$]})}return r})();function xbe(r,a){1&r&&(e.ynx(0),e._uU(1),e.ALo(2,"translate"),e.BQk()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"script.create-title")," "))}function Bbe(r,a){1&r&&(e._uU(0),e.ALo(1,"translate")),2&r&&e.hij(" ",e.lcZ(1,1,"script.mode-title")," ")}function Ebe(r,a){if(1&r&&(e.TgZ(0,"span",15),e._uU(1),e.qZA()),2&r){const t=e.oxw(2);e.xp6(1),e.hij(" ",null==t.formGroup.controls.name.errors?null:t.formGroup.controls.name.errors.message," ")}}function Mbe(r,a){if(1&r&&(e.TgZ(0,"div",7)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e._UZ(4,"input",13),e.YNc(5,Ebe,2,1,"span",14),e.qZA()),2&r){const t=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,2,"dlg.item-req-name")),e.xp6(3),e.Q6J("ngIf",null==t.formGroup.controls.name.errors?null:t.formGroup.controls.name.errors.message)}}function Dbe(r,a){if(1&r&&(e.TgZ(0,"mat-option",16),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",e.lcZ(2,2,"script.mode-"+t.value)," ")}}let DN=(()=>{class r{dialogRef;translateService;projectService;fb;data;formGroup;scriptMode=Wo.EN;existingNames=[];constructor(t,i,n,o,s){this.dialogRef=t,this.translateService=i,this.projectService=n,this.fb=o,this.data=s}ngOnInit(){this.existingNames=this.projectService.getScripts()?.map(t=>t.name),this.formGroup=this.fb.group({name:[this.data.name],mode:[this.data.mode,Z.required]}),this.data.newScript&&this.formGroup.controls.name.setValidators([Z.required,this.isValidScriptName()])}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.formGroup.getRawValue())}isValidScriptName(){return t=>{const i=t.value?.trim();return i?/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(i)?this.existingNames.includes(i)?{message:this.translateService.instant("msg.script-name-exist")}:null:{message:this.translateService.instant("msg.invalid-script-name")}:null}}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(co),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-script-mode"]],decls:23,vars:17,consts:[[3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[4,"ngIf","ngIfElse"],["mode",""],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],["class","my-form-field block mt10",4,"ngIf"],[1,"my-form-field","block","mt10"],["formControlName","mode",2,"width","300px"],[3,"value",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action","mt10"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],["formControlName","name","type","text",2,"width","300px"],["class","form-input-error",4,"ngIf"],[1,"form-input-error"],[3,"value"]],template:function(i,n){if(1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e.YNc(2,xbe,3,3,"ng-container",2),e.YNc(3,Bbe,2,3,"ng-template",null,3,e.W1O),e.qZA(),e.TgZ(5,"mat-icon",4),e.NdJ("click",function(){return n.onNoClick()}),e._uU(6,"clear"),e.qZA(),e.TgZ(7,"div",5),e.YNc(8,Mbe,6,4,"div",6),e.TgZ(9,"div",7)(10,"span"),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"mat-select",8),e.YNc(14,Dbe,3,4,"mat-option",9),e.ALo(15,"enumToArray"),e.qZA()()(),e.TgZ(16,"div",10)(17,"button",11),e.NdJ("click",function(){return n.onNoClick()}),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"button",12),e.NdJ("click",function(){return n.onOkClick()}),e._uU(21),e.ALo(22,"translate"),e.qZA()()()),2&i){const o=e.MAs(4);e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Q6J("ngIf",n.data.newScript)("ngIfElse",o),e.xp6(6),e.Q6J("ngIf",n.data.newScript),e.xp6(3),e.Oqu(e.lcZ(12,9,"script.mode-label")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(15,11,n.scriptMode)),e.xp6(4),e.Oqu(e.lcZ(19,13,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(22,15,"dlg.ok"))}},dependencies:[l.sg,l.O5,In,I,et,Xe,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,fo,zr,Ni.X$,ii.T9]})}return r})();function Tbe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",21)(1,"button",22),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddScript())}),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function Ibe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",21)(1,"button",22),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditScript(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function kbe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",23),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"scripts.list-name")," "))}function Qbe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function Sbe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",23),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"scripts.list-params")," "))}function Pbe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getParameters(t)," ")}}function Fbe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",23),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"scripts.list-scheduling")," "))}function Obe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getScheduling(t),"")}}function Lbe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",23),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"scripts.list-mode")," "))}function Rbe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.mode||"SERVER"," ")}}function Ybe(r,a){1&r&&e._UZ(0,"mat-header-cell")}function Nbe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",24),e.ALo(2,"translate"),e.TgZ(3,"mat-icon"),e._uU(4,"more_vert"),e.qZA()(),e.TgZ(5,"mat-menu",25,26)(7,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditScriptScheduling(o))}),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditScriptPermission(o))}),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"button",27),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditScriptMode(o))}),e._uU(14),e.ALo(15,"translate"),e.qZA()()()}if(2&r){const t=e.MAs(6);e.xp6(1),e.s9C("matTooltip",e.lcZ(2,6,"scripts.list-options")),e.Q6J("matMenuTriggerFor",t),e.xp6(4),e.Q6J("overlapTrigger",!1),e.xp6(3),e.Oqu(e.lcZ(9,8,"scripts.list-scheduling")),e.xp6(3),e.Oqu(e.lcZ(12,10,"scripts.list-permission")),e.xp6(3),e.Oqu(e.lcZ(15,12,"scripts.list-mode"))}}function Ube(r,a){1&r&&e._UZ(0,"mat-header-cell")}function zbe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",22),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveScript(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function Hbe(r,a){1&r&&e._UZ(0,"mat-header-row")}function Gbe(r,a){1&r&&e._UZ(0,"mat-row",28)}let Zbe=(()=>{class r{dialog;translateService;projectService;displayedColumns=["select","name","params","scheduling","mode","options","remove"];dataSource=new Nn([]);subscriptionLoad;table;sort;constructor(t,i,n){this.dialog=t,this.translateService=i,this.projectService=n}ngOnInit(){this.loadScripts(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{this.loadScripts()})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}onAddScript(){this.dialog.open(DN,{disableClose:!0,position:{top:"60px"},data:{mode:Wo.EN.SERVER,name:ii.cQ.getNextName("script_",this.dataSource.data.map(i=>i.name)),newScript:!0}}).afterClosed().subscribe(i=>{if(i){let n=new Wo.Xf(ii.cQ.getGUID(Wo.HO));n.name=i.name,n.mode=i.mode,this.editScript(n,1)}})}onEditScript(t){this.editScript(t,0)}onRemoveScript(t){this.editScript(t,-1)}editScript(t,i){let n=i<0?"auto":"80%",o=this.dataSource.data.filter(g=>g.id!==t.id),s=JSON.parse(JSON.stringify(t));this.dialog.open(hbe,{data:{script:s,editmode:i,scripts:o,devices:Object.values(this.projectService.getDevices())},disableClose:!0,width:n,position:{top:"80px"}}).afterClosed().subscribe(g=>{g&&(i<0?this.projectService.removeScript(g).subscribe(B=>{this.loadScripts()}):this.projectService.setScript(g,t).subscribe(()=>{this.loadScripts()}))})}getParameters(t){if(t.parameters){let i="";return Object.values(t.parameters).forEach(n=>{i&&(i+=", "),i+=`${n.name}: ${n.type}`}),i}return""}getScheduling(t){if(t.scheduling){let i="";return t.scheduling.mode&&(i=this.translateService.instant("script.scheduling-"+t.scheduling.mode)+" - "),t.scheduling.mode===Wo.ez.interval||t.scheduling.mode===Wo.ez.start?i+=t.scheduling.interval?`${t.scheduling.interval} sec.`:this.translateService.instant("report.scheduling-none"):t.scheduling.mode===Wo.ez.scheduling&&(i+=`${t.scheduling.schedules?.length}`),i}return""}onEditScriptScheduling(t){this.dialog.open(Cbe,{data:{scheduling:t.scheduling},disableClose:!0,position:{top:"60px"}}).afterClosed().subscribe(n=>{n&&(t.scheduling=n,this.projectService.setScript(t,null).subscribe(()=>{this.loadScripts()}))})}onEditScriptPermission(t){this.dialog.open(bbe,{disableClose:!0,position:{top:"60px"},data:{permission:t.permission,permissionRoles:t.permissionRoles}}).afterClosed().subscribe(o=>{o&&(t.permission=o.permission,t.permissionRoles=o.permissionRoles,this.projectService.setScript(t,null).subscribe(()=>{this.loadScripts()}))})}onEditScriptMode(t){this.dialog.open(DN,{disableClose:!0,position:{top:"60px"},data:{mode:t.mode}}).afterClosed().subscribe(n=>{n&&(t.mode=n.mode,this.projectService.setScript(t,null).subscribe(()=>{this.loadScripts()}))})}loadScripts(){this.dataSource.data=this.projectService.getScripts()}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-script-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:35,vars:6,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","params"],["matColumnDef","scheduling"],["matColumnDef","mode"],["matColumnDef","options"],[4,"matHeaderCellDef"],["matColumnDef","remove"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],["mat-icon-button","",1,"options",3,"matMenuTriggerFor","matTooltip"],[3,"overlapTrigger"],["optionsgMenu",""],["mat-menu-item","",2,"font-size","14px",3,"click"],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"code"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"mat-table",3,4),e.ynx(9,5),e.YNc(10,Tbe,4,1,"mat-header-cell",6),e.YNc(11,Ibe,4,1,"mat-cell",7),e.BQk(),e.ynx(12,8),e.YNc(13,kbe,3,3,"mat-header-cell",9),e.YNc(14,Qbe,2,1,"mat-cell",10),e.BQk(),e.ynx(15,11),e.YNc(16,Sbe,3,3,"mat-header-cell",9),e.YNc(17,Pbe,2,1,"mat-cell",10),e.BQk(),e.ynx(18,12),e.YNc(19,Fbe,3,3,"mat-header-cell",9),e.YNc(20,Obe,2,1,"mat-cell",10),e.BQk(),e.ynx(21,13),e.YNc(22,Lbe,3,3,"mat-header-cell",9),e.YNc(23,Rbe,2,1,"mat-cell",10),e.BQk(),e.ynx(24,14),e.YNc(25,Ybe,1,0,"mat-header-cell",15),e.YNc(26,Nbe,16,14,"mat-cell",10),e.BQk(),e.ynx(27,16),e.YNc(28,Ube,1,0,"mat-header-cell",15),e.YNc(29,zbe,4,0,"mat-cell",10),e.BQk(),e.YNc(30,Hbe,1,0,"mat-header-row",17),e.YNc(31,Gbe,1,0,"mat-row",18),e.qZA()()(),e.TgZ(32,"button",19),e.NdJ("click",function(){return n.onAddScript()}),e.TgZ(33,"mat-icon",20),e._uU(34,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,4,"scripts.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(23),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,Yn,Zn,zc,Hc,cc,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Cs,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}.header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0}.container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:0}.mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%}.mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}.mat-cell[_ngcontent-%COMP%]{font-size:13px}.mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.mat-header-cell[_ngcontent-%COMP%]{font-size:15px}.mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 80px}.mat-column-name[_ngcontent-%COMP%]{flex:1 1 120px}.mat-column-params[_ngcontent-%COMP%]{flex:3 1 180px}.mat-column-scheduling[_ngcontent-%COMP%]{flex:3 1 280px}.mat-column-options[_ngcontent-%COMP%], .mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}.selectidthClass[_ngcontent-%COMP%]{flex:0 0 50px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-button{display:block;text-align:left;margin-top:5px}.my-header-filter[_ngcontent-%COMP%] .mat-sort-header-arrow{top:-12px;right:20px}.my-header-filter-input[_ngcontent-%COMP%]{display:block;margin-top:4px;margin-bottom:6px;padding:3px 1px 3px 2px;border-radius:2px}"]})}return r})();var TN=ce(7069),Jbe=ce(6236);let jbe=(()=>{class r{dialogRef;data;constructor(t,i){this.dialogRef=t,this.data=i}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-report-item-text"]],decls:19,vars:13,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field"],["matInput","",1,"report-textarea",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"textarea",4),e.NdJ("ngModelChange",function(s){return n.data.text=s}),e.qZA()()(),e.TgZ(12,"div",5)(13,"button",6),e.NdJ("click",function(){return n.onNoClick()}),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.TgZ(16,"button",7),e.NdJ("click",function(){return n.onOkClick()}),e._uU(17),e.ALo(18,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,5,"report.item-text-title")),e.xp6(7),e.Oqu(e.lcZ(10,7,"report.item-text-label")),e.xp6(2),e.Q6J("ngModel",n.data.text),e.xp6(3),e.Oqu(e.lcZ(15,9,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(18,11,"dlg.ok")))},dependencies:[I,et,$i,Yn,Qr,Kr,Ir,Zn,qd,zr,Ni.X$],styles:[".report-textarea[_ngcontent-%COMP%]{min-width:400px;min-height:200px;font-family:inherit}"]})}return r})();function Vbe(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Wbe(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function Kbe(r,a){if(1&r&&(e.TgZ(0,"mat-option",13),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function qbe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",28)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-select",29),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw().$implicit;return e.KtG(o.function=n)}),e.YNc(5,Kbe,2,2,"mat-option",5),e.ALo(6,"enumToArray"),e.qZA()()}if(2&r){const t=e.oxw().$implicit,i=e.oxw();e.xp6(2),e.Oqu(e.lcZ(3,3,"report.item-function-type")),e.xp6(2),e.Q6J("value",t.function),e.xp6(1),e.Q6J("ngForOf",e.lcZ(6,5,i.functionType))}}function Xbe(r,a){1&r&&e._UZ(0,"mat-divider",30)}function $be(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",20),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw();return e.KtG(o.onDeleteItem(n))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.table-delitem")))}function e1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function t1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function i1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function n1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",14)(1,"div",15),e._uU(2),e.qZA(),e.YNc(3,qbe,7,7,"div",16),e.TgZ(4,"div",17)(5,"mat-icon",18),e._uU(6,"more_vert"),e.qZA()(),e.TgZ(7,"mat-menu",null,19)(9,"button",20),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onSetLabel(o))}),e._uU(10),e.ALo(11,"translate"),e.qZA(),e.TgZ(12,"button",20),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onAddItem(o))}),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.TgZ(15,"button",21),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.YNc(18,Xbe,1,0,"mat-divider",22),e.YNc(19,$be,3,3,"button",23),e.qZA(),e.TgZ(20,"mat-menu",null,24)(22,"button",20),e.NdJ("click",function(){const o=e.CHM(t).$implicit;return e.KtG(o.align="left")}),e.TgZ(23,"div",25),e.YNc(24,e1e,2,0,"mat-icon",26),e.TgZ(25,"span",27),e._uU(26),e.ALo(27,"translate"),e.qZA()()(),e.TgZ(28,"button",20),e.NdJ("click",function(){const o=e.CHM(t).$implicit;return e.KtG(o.align="center")}),e.TgZ(29,"div",25),e.YNc(30,t1e,2,0,"mat-icon",26),e.TgZ(31,"span",27),e._uU(32),e.ALo(33,"translate"),e.qZA()()(),e.TgZ(34,"button",20),e.NdJ("click",function(){const o=e.CHM(t).$implicit;return e.KtG(o.align="right")}),e.TgZ(35,"div",25),e.YNc(36,i1e,2,0,"mat-icon",26),e.TgZ(37,"span",27),e._uU(38),e.ALo(39,"translate"),e.qZA()()()()()}if(2&r){const t=a.$implicit,i=a.index,n=e.MAs(8),o=e.MAs(21);e.s9C("matTooltip",t.tag.label||t.tag.name),e.xp6(1),e.Udp("text-align",t.align),e.xp6(1),e.hij(" ",t.label||t.tag.label||t.tag.name," "),e.xp6(1),e.Q6J("ngIf",i>0),e.xp6(2),e.Q6J("matMenuTriggerFor",n),e.xp6(5),e.Oqu(e.lcZ(11,21,"report.tags-table-setlabel")),e.xp6(3),e.Oqu(e.lcZ(14,23,"report.tags-table-add")),e.xp6(2),e.Q6J("matMenuTriggerFor",o),e.xp6(1),e.Oqu(e.lcZ(17,25,"report.table-alignitem")),e.xp6(2),e.Q6J("ngIf",i>0),e.xp6(1),e.Q6J("ngIf",i>0),e.xp6(5),e.Q6J("ngIf","left"===t.align),e.xp6(1),e.Q6J("ngClass","left"===t.align?"":"unselect"),e.xp6(1),e.Oqu(e.lcZ(27,27,"general.align-left")),e.xp6(4),e.Q6J("ngIf","center"===t.align),e.xp6(1),e.Q6J("ngClass","center"===t.align?"":"unselect"),e.xp6(1),e.Oqu(e.lcZ(33,29,"general.align-center")),e.xp6(4),e.Q6J("ngIf","right"===t.align),e.xp6(1),e.Q6J("ngClass","right"===t.align?"":"unselect"),e.xp6(1),e.Oqu(e.lcZ(39,31,"general.align-right"))}}let r1e=(()=>{class r{dialogRef;dialog;translateService;projectService;data;dateRangeType=Pp;intervalType=gD;functionType=fD;columns;constructor(t,i,n,o,s){if(this.dialogRef=t,this.dialog=i,this.translateService=n,this.projectService=o,this.data=s,this.data.columns.length<=0){let c={label:"Timestamp"};this.data.columns=[{type:sN.timestamp,tag:c,label:c.label||c.name,align:"left",width:"auto"}]}this.columns=ii.cQ.clone(this.data.columns)}ngOnInit(){Object.keys(this.dateRangeType).forEach(t=>{this.translateService.get(this.dateRangeType[t]).subscribe(i=>{this.dateRangeType[t]=i})}),Object.keys(this.intervalType).forEach(t=>{this.translateService.get(this.intervalType[t]).subscribe(i=>{this.intervalType[t]=i})}),Object.keys(this.functionType).forEach(t=>{this.translateService.get(this.functionType[t]).subscribe(i=>{this.functionType[t]=i})})}onAddItem(t){this.dialog.open(Xf,{disableClose:!0,position:{top:"60px"},data:{variableId:null,multiSelection:!0,deviceFilter:[Yi.Yi.internal]}}).afterClosed().subscribe(n=>{n&&(n.variablesId||[n.variableId]).forEach(s=>{let c=this.projectService.getTagFromId(s);this.columns.splice(++t,0,{tag:c,width:"auto",align:"left",label:c.label||c.name,function:ii.cQ.getEnumKey(fD,fD.average)})})})}onSetLabel(t){let i="";this.translateService.get("report.tags-table-setlabel").subscribe(s=>{i=s}),this.dialog.open(Tv,{position:{top:"60px"},data:{name:this.columns[t].label||this.columns[t].tag.label||this.columns[t].tag.name,title:i}}).afterClosed().subscribe(s=>{s&&(this.columns[t].label=s.name)})}onDeleteItem(t){this.columns.splice(t,1)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.columns=this.columns,this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-report-item-table"]],decls:33,vars:28,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field"],[2,"width","200px",3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],[1,"my-form-field","ml20"],[2,"width","140px",3,"value","valueChange"],[1,"data-table","my-form-field"],["class","data-table-cell",3,"matTooltip",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"value"],[1,"data-table-cell",3,"matTooltip"],[1,"label"],["class","my-form-field mt10",4,"ngIf"],[1,"menu"],["aria-label","More",3,"matMenuTriggerFor"],["menuitem","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"matMenuTriggerFor"],["class","menu-separator",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],["menualign","matMenu"],[1,"menu-item-select"],[4,"ngIf"],[3,"ngClass"],[1,"my-form-field","mt10"],[2,"width","110px",3,"value","valueChange"],[1,"menu-separator"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",4),e.NdJ("valueChange",function(s){return n.data.range=s}),e.YNc(12,Vbe,2,2,"mat-option",5),e.ALo(13,"enumToArray"),e.qZA()(),e.TgZ(14,"div",6)(15,"span"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"mat-select",7),e.NdJ("valueChange",function(s){return n.data.interval=s}),e.YNc(19,Wbe,2,2,"mat-option",5),e.ALo(20,"enumToArray"),e.qZA()(),e.TgZ(21,"div",8)(22,"span"),e._uU(23),e.ALo(24,"translate"),e.qZA(),e.YNc(25,n1e,40,33,"div",9),e.qZA()(),e.TgZ(26,"div",10)(27,"button",11),e.NdJ("click",function(){return n.onNoClick()}),e._uU(28),e.ALo(29,"translate"),e.qZA(),e.TgZ(30,"button",12),e.NdJ("click",function(){return n.onOkClick()}),e._uU(31),e.ALo(32,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,12,"report.tags-table-title")),e.xp6(7),e.Oqu(e.lcZ(10,14,"report.item-daterange")),e.xp6(2),e.Q6J("value",n.data.range)("disabled",!0),e.xp6(1),e.Q6J("ngForOf",e.lcZ(13,16,n.dateRangeType)),e.xp6(4),e.Oqu(e.lcZ(17,18,"report.item-interval")),e.xp6(2),e.Q6J("value",n.data.interval),e.xp6(1),e.Q6J("ngForOf",e.lcZ(20,20,n.intervalType)),e.xp6(4),e.Oqu(e.lcZ(24,22,"report.tags-table-column")),e.xp6(2),e.Q6J("ngForOf",n.columns),e.xp6(3),e.Oqu(e.lcZ(29,24,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(32,26,"dlg.ok")))},dependencies:[l.mk,l.sg,l.O5,Nr,Yn,Qr,Kr,Ir,Zn,a0,zc,Hc,cc,fo,Cs,zr,Ni.X$,ii.T9],styles:[".data-table[_ngcontent-%COMP%]{min-width:900px;margin-top:20px;height:500px;display:block}.data-table-cell[_ngcontent-%COMP%]{white-space:nowrap;max-width:120px;min-height:100px;overflow:hidden;position:relative;border:1px solid #7F7F7F;font-size:12px;padding:5px;display:inline-block;width:-webkit-fill-available}.data-table-cell[_ngcontent-%COMP%] .menu[_ngcontent-%COMP%]{font-size:18px;position:absolute;bottom:0;left:5px;cursor:pointer}.data-table-cell[_ngcontent-%COMP%] .menu[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px}.data-table-cell[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{width:inherit}.menu-item-select[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;margin-right:unset!important}.menu-item-select[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:20px}.menu-item-select[_ngcontent-%COMP%] .unselect[_ngcontent-%COMP%]{padding-left:25px}"]})}return r})();function o1e(r,a){if(1&r&&(e.TgZ(0,"mat-option",17),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function a1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",18),e.NdJ("change",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.onPriorityChanged(s,n.checked))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("checked",i.getPriorityValue(t)),e.xp6(1),e.hij(" ",e.lcZ(2,2,"alarm.property-"+t)," ")}}function s1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-checkbox",18),e.NdJ("change",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.onPropertyChanged(s,n.checked))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}if(2&r){const t=a.$implicit,i=e.oxw();e.Q6J("checked",i.getPropertyValue(t)),e.xp6(1),e.hij(" ",e.lcZ(2,2,"alarms.view-"+t)," ")}}function l1e(r,a){if(1&r&&(e.TgZ(0,"mat-list-option",19)(1,"div",20),e._uU(2),e.qZA(),e.TgZ(3,"div",21),e._uU(4),e.qZA()()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(2),e.Oqu(t.name),e.xp6(2),e.Oqu(t.variableName)}}let c1e=(()=>{class r{projectService;dialogRef;translateService;data;dateRangeType=Pp;alarmsType=[Sd.HIGH_HIGH,Sd.HIGH,Sd.LOW,Sd.INFO];alarmPropertyType=Object.values(PP).map(t=>t);alarmsList=[];alarmsListSelected=[];constructor(t,i,n,o){this.projectService=t,this.dialogRef=i,this.translateService=n,this.data=o}ngOnInit(){Object.keys(this.dateRangeType).forEach(t=>{this.translateService.get(this.dateRangeType[t]).subscribe(i=>{this.dateRangeType[t]=i})}),this.alarmsList=this.projectService.getAlarms().map(t=>{let i=this.projectService.getTagFromId(t.property?.variableId);return{name:t.name,variableName:i?.label||i?.name,variableId:t.property?.variableId}}),this.alarmsListSelected=this.data.alarmFilter?this.alarmsList.filter(t=>!!this.data.alarmFilter?.find(i=>t.name===i)):this.alarmsList}onPriorityChanged(t,i){this.data.priority[t]=i}onPropertyChanged(t,i){this.data.property[t]=i}getPriorityValue(t){return this.data.priority[t]}getPropertyValue(t){return this.data.property[t]}toggleAlarmFilterSelection(t){this.alarmsListSelected=this.alarmsList.filter(i=>t.checked)}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.priorityText={},Object.keys(Db).forEach(t=>{this.translateService.get(Db[t]).subscribe(i=>{this.data.priorityText[t]=i})}),this.data.propertyText={},Object.keys(this.data.property).forEach(t=>{this.data.property[t]&&this.translateService.get("alarms.view-"+t).subscribe(i=>{this.data.propertyText[t]=i})}),this.data.statusText={},Object.keys(Mb).forEach(t=>{this.translateService.get(Mb[t]).subscribe(i=>{this.data.statusText[t]=i})}),this.data.alarmFilter=this.alarmsListSelected.map(t=>t.name),this.dialogRef.close(this.data)}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4),e.Y36(_r),e.Y36(Ni.sK),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-report-item-alarms"]],decls:40,vars:31,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field"],[2,"width","200px",3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],[1,"alarms"],["style","margin: 7px 10px 7px 10px;",3,"checked","change",4,"ngFor","ngForOf"],[1,"my-form-field","block","mt20"],[1,"my-form-field","alarms-filter"],[1,"my-form-field","list-header"],[3,"checked","change"],[1,"alarm-list",3,"ngModel","ngModelChange"],["class","alarm-item",3,"value",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"value"],[2,"margin","7px 10px 7px 10px",3,"checked","change"],[1,"alarm-item",3,"value"],[1,"alarm-name"],[1,"alarm-tag"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",4),e.NdJ("valueChange",function(s){return n.data.range=s}),e.YNc(12,o1e,2,2,"mat-option",5),e.ALo(13,"enumToArray"),e.qZA()(),e.TgZ(14,"div",6)(15,"div",3)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.YNc(19,a1e,3,4,"mat-checkbox",7),e.qZA(),e.TgZ(20,"div",8)(21,"span"),e._uU(22),e.ALo(23,"translate"),e.qZA(),e.YNc(24,s1e,3,4,"mat-checkbox",7),e.qZA()(),e.TgZ(25,"div",9)(26,"div",10)(27,"span"),e._uU(28),e.ALo(29,"translate"),e.qZA(),e.TgZ(30,"mat-checkbox",11),e.NdJ("change",function(s){return n.toggleAlarmFilterSelection(s)}),e.qZA()(),e.TgZ(31,"mat-selection-list",12),e.NdJ("ngModelChange",function(s){return n.alarmsListSelected=s}),e.YNc(32,l1e,5,3,"mat-list-option",13),e.qZA()()(),e.TgZ(33,"div",14)(34,"button",15),e.NdJ("click",function(){return n.onNoClick()}),e._uU(35),e.ALo(36,"translate"),e.qZA(),e.TgZ(37,"button",16),e.NdJ("click",function(){return n.onOkClick()}),e._uU(38),e.ALo(39,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,15,"report.item-alarms-title")),e.xp6(7),e.Oqu(e.lcZ(10,17,"report.item-daterange")),e.xp6(2),e.Q6J("value",n.data.range)("disabled",!0),e.xp6(1),e.Q6J("ngForOf",e.lcZ(13,19,n.dateRangeType)),e.xp6(5),e.Oqu(e.lcZ(18,21,"report.alarms-priority")),e.xp6(2),e.Q6J("ngForOf",n.alarmsType),e.xp6(3),e.Oqu(e.lcZ(23,23,"report.alarms-column")),e.xp6(2),e.Q6J("ngForOf",n.alarmPropertyType),e.xp6(4),e.Oqu(e.lcZ(29,25,"report.alarms-filter")),e.xp6(2),e.Q6J("checked",n.alarmsListSelected.length===n.alarmsList.length),e.xp6(1),e.Q6J("ngModel",n.alarmsListSelected),e.xp6(1),e.Q6J("ngForOf",n.alarmsList),e.xp6(3),e.Oqu(e.lcZ(36,27,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(39,29,"dlg.ok")))},dependencies:[l.sg,et,$i,Nr,Yn,Bh,Qr,Kr,Ir,Zn,Sf,Z_,fo,zr,Ni.X$,ii.T9],styles:[".alarms[_ngcontent-%COMP%]{min-width:600px;margin-top:20px;margin-bottom:10px;display:block}.alarms-filter[_ngcontent-%COMP%]{width:100%;margin-top:5px}.alarms-filter[_ngcontent-%COMP%] mat-selection-list[_ngcontent-%COMP%]{overflow:auto;height:300px}.alarms-filter[_ngcontent-%COMP%] mat-list-option[_ngcontent-%COMP%] .mat-list-text{display:block}.alarms-filter[_ngcontent-%COMP%] .alarm-name[_ngcontent-%COMP%]{width:50%;display:inline-block}.alarms-filter[_ngcontent-%COMP%] .alarm-tag[_ngcontent-%COMP%]{display:inline-block;color:#fff9}.alarms-filter[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%]{display:block}.alarms-filter[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-bottom:2px}.alarms-filter[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{position:absolute;right:16px;top:-5px}.alarms-filter[_ngcontent-%COMP%] .alarm-list[_ngcontent-%COMP%]{background:var(--formInputBackground)}.alarms-filter[_ngcontent-%COMP%] .alarm-item[_ngcontent-%COMP%]{font-size:14px;height:34px}"]})}return r})();function A1e(r,a){if(1&r&&(e.TgZ(0,"mat-option",15),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function d1e(r,a){if(1&r&&(e.TgZ(0,"mat-option",15),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t.name," ")}}let u1e=(()=>{class r{dialogRef;translateService;projectService;data;chartCtrl=new li;chartFilterCtrl=new li;filteredChart=new zC.t(1);dateRangeType=Pp;charts;_onDestroy=new An.x;constructor(t,i,n,o){this.dialogRef=t,this.translateService=i,this.projectService=n,this.data=o,this.charts=this.projectService.getCharts()}ngOnInit(){Object.keys(this.dateRangeType).forEach(i=>{this.translateService.get(this.dateRangeType[i]).subscribe(n=>{this.dateRangeType[i]=n})}),this.loadChart();let t=null;this.data.chart&&(t=this.charts.find(i=>i.id===this.data.chart.id)),this.chartCtrl.setValue(t)}ngOnDestroy(){this._onDestroy.next(null),this._onDestroy.complete()}onChartChanged(){}onNoClick(){this.dialogRef.close()}onOkClick(){this.data.chart=this.chartCtrl.value,this.dialogRef.close(this.data)}loadChart(t){if(this.filteredChart.next(this.charts.slice()),this.chartFilterCtrl.valueChanges.pipe((0,On.R)(this._onDestroy)).subscribe(()=>{this.filterChart()}),t){let i=-1;this.charts.every(function(n,o,s){return n.id!==t||(i=o,!1)}),i>=0&&this.chartCtrl.setValue(this.charts[i])}}filterChart(){if(!this.charts)return;let t=this.chartFilterCtrl.value;t?(t=t.toLowerCase(),this.filteredChart.next(this.charts.filter(i=>i.name.toLowerCase().indexOf(t)>-1))):this.filteredChart.next(this.charts.slice())}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-report-item-chart"]],decls:40,vars:33,consts:[["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field"],[2,"width","200px",3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],[1,"chart"],[2,"width","200px",3,"formControl","selectionChange"],[3,"formControl"],[1,"my-form-field","ml20"],["numberOnly","","type","number","min","100",2,"width","75px",3,"ngModel","ngModelChange","change"],[1,"my-form-field","ml10"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],[3,"value"]],template:function(i,n){1&i&&(e.TgZ(0,"div")(1,"h1",0),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",1),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",2)(7,"div",3)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"mat-select",4),e.NdJ("valueChange",function(s){return n.data.range=s}),e.YNc(12,A1e,2,2,"mat-option",5),e.ALo(13,"enumToArray"),e.qZA()(),e.TgZ(14,"div",6)(15,"div",3)(16,"span"),e._uU(17),e.ALo(18,"translate"),e.qZA(),e.TgZ(19,"mat-select",7),e.NdJ("selectionChange",function(){return n.onChartChanged()}),e._UZ(20,"mat-select-search",8),e.YNc(21,d1e,2,2,"mat-option",5),e.ALo(22,"async"),e.qZA()(),e.TgZ(23,"div",9)(24,"span"),e._uU(25),e.ALo(26,"translate"),e.qZA(),e.TgZ(27,"input",10),e.NdJ("ngModelChange",function(s){return n.data.width=s})("change",function(){return n.onChartChanged()}),e.qZA()(),e.TgZ(28,"div",11)(29,"span"),e._uU(30),e.ALo(31,"translate"),e.qZA(),e.TgZ(32,"input",10),e.NdJ("ngModelChange",function(s){return n.data.height=s})("change",function(){return n.onChartChanged()}),e.qZA()()()(),e.TgZ(33,"div",12)(34,"button",13),e.NdJ("click",function(){return n.onNoClick()}),e._uU(35),e.ALo(36,"translate"),e.qZA(),e.TgZ(37,"button",14),e.NdJ("click",function(){return n.onOkClick()}),e._uU(38),e.ALo(39,"translate"),e.qZA()()()),2&i&&(e.xp6(2),e.Oqu(e.lcZ(3,15,"report.chart-title")),e.xp6(7),e.Oqu(e.lcZ(10,17,"report.item-daterange")),e.xp6(2),e.Q6J("value",n.data.range)("disabled",!0),e.xp6(1),e.Q6J("ngForOf",e.lcZ(13,19,n.dateRangeType)),e.xp6(5),e.Oqu(e.lcZ(18,21,"report.chart-name")),e.xp6(2),e.Q6J("formControl",n.chartCtrl),e.xp6(1),e.Q6J("formControl",n.chartFilterCtrl),e.xp6(1),e.Q6J("ngForOf",e.lcZ(22,23,n.filteredChart)),e.xp6(4),e.Oqu(e.lcZ(26,25,"report.chart-width")),e.xp6(2),e.Q6J("ngModel",n.data.width),e.xp6(3),e.Oqu(e.lcZ(31,27,"report.chart-height")),e.xp6(2),e.Q6J("ngModel",n.data.height),e.xp6(3),e.Oqu(e.lcZ(36,29,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(39,31,"dlg.ok")))},dependencies:[l.sg,I,qn,et,$n,$i,ca,Nr,Yn,Qr,Kr,Ir,Zn,fo,VP,zr,fs,l.Ov,Ni.X$,ii.T9],styles:[".chart[_ngcontent-%COMP%]{min-width:400px;margin-top:20px;min-height:250px;display:block}"]})}return r})();var IN=function(r){return r.Chart="Chart",r.Service="Service",r}(IN||{});function p1e(r,a){if(1&r&&(e.TgZ(0,"div",10),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){const t=e.oxw();e.xp6(1),e.AsE(" ",e.lcZ(2,2,"msg.report-remove")," '",t.report.name,"' ? ")}}function g1e(r,a){if(1&r&&(e.TgZ(0,"mat-option",25),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Q6J("value",t.key),e.xp6(1),e.hij(" ",t.value," ")}}function f1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",30),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(3);return e.KtG(n.onAddItem(n.itemChartType))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.content-addchart")))}function m1e(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.content-type-text")))}function _1e(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.content-type-tagstable")))}function v1e(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.content-type-alarmshistory")))}function y1e(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.content-type-chart")))}function w1e(r,a){if(1&r&&(e.TgZ(0,"button",39),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r){e.oxw();const t=e.MAs(33);e.Q6J("matMenuTriggerFor",t),e.xp6(1),e.Oqu(e.lcZ(2,2,"report.content-alignitem"))}}function C1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",30),e.NdJ("click",function(){e.CHM(t);const n=e.oxw().index,o=e.oxw(3);return e.KtG(o.onAddItem(o.itemChartType,n,!1))}),e._uU(1),e.ALo(2,"translate"),e.qZA()}2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"report.content-addchart")))}function b1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function x1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function B1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function E1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"done"),e.qZA())}function M1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"button",30),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(),c=s.index,g=s.$implicit,B=e.oxw(3);return e.KtG(B.onFontSizeItem(c,g,o))}),e.TgZ(1,"div",43),e.YNc(2,E1e,2,0,"mat-icon",36),e.TgZ(3,"span",44),e._uU(4),e.qZA()()()}if(2&r){const t=a.$implicit,i=e.oxw().$implicit;e.xp6(2),e.Q6J("ngIf",i.size===t),e.xp6(1),e.Q6J("ngClass",i.size===t?"":"unselect"),e.xp6(1),e.Oqu(t)}}function D1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",33)(1,"mat-icon",34),e.NdJ("click",function(){const n=e.CHM(t),o=n.$implicit,s=n.index,c=e.oxw(3);return e.KtG(c.onEditItem(o,s,!0))}),e._uU(2,"edit"),e.qZA(),e.TgZ(3,"div",35),e.YNc(4,m1e,3,3,"span",36),e.YNc(5,_1e,3,3,"span",36),e.YNc(6,v1e,3,3,"span",36),e.YNc(7,y1e,3,3,"span",36),e.qZA(),e.TgZ(8,"mat-icon",37),e._uU(9,"more_vert"),e.qZA(),e.TgZ(10,"mat-menu",null,38)(12,"button",39),e._uU(13),e.ALo(14,"translate"),e.qZA(),e.YNc(15,w1e,3,4,"button",40),e._UZ(16,"mat-divider",41),e.TgZ(17,"button",30),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.onAddItem(s.itemTextType,o,!1))}),e._uU(18),e.ALo(19,"translate"),e.qZA(),e.TgZ(20,"button",30),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.onAddItem(s.itemTableType,o,!1))}),e._uU(21),e.ALo(22,"translate"),e.qZA(),e.TgZ(23,"button",30),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.onAddItem(s.itemAlarmsType,o,!1))}),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.YNc(26,C1e,3,3,"button",31),e.ALo(27,"async"),e._UZ(28,"mat-divider",41),e.TgZ(29,"button",30),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw(3);return e.KtG(s.onDeleteItem(o))}),e._uU(30),e.ALo(31,"translate"),e.qZA()(),e.TgZ(32,"mat-menu",null,42)(34,"button",30),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.onAlignItem(o,"left"))}),e.TgZ(35,"div",43),e.YNc(36,b1e,2,0,"mat-icon",36),e.TgZ(37,"span",44),e._uU(38),e.ALo(39,"translate"),e.qZA()()(),e.TgZ(40,"button",30),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.onAlignItem(o,"center"))}),e.TgZ(41,"div",43),e.YNc(42,x1e,2,0,"mat-icon",36),e.TgZ(43,"span",44),e._uU(44),e.ALo(45,"translate"),e.qZA()()(),e.TgZ(46,"button",30),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw(3);return e.KtG(s.onAlignItem(o,"right"))}),e.TgZ(47,"div",43),e.YNc(48,B1e,2,0,"mat-icon",36),e.TgZ(49,"span",44),e._uU(50),e.ALo(51,"translate"),e.qZA()()()(),e.TgZ(52,"mat-menu",null,45),e.YNc(54,M1e,5,3,"button",46),e.qZA()()}if(2&r){const t=a.$implicit,i=e.MAs(11),n=e.MAs(53),o=e.oxw(3);e.xp6(4),e.Q6J("ngIf",t.type===o.itemTextType),e.xp6(1),e.Q6J("ngIf",t.type===o.itemTableType),e.xp6(1),e.Q6J("ngIf",t.type===o.itemAlarmsType),e.xp6(1),e.Q6J("ngIf",t.type===o.itemChartType),e.xp6(1),e.Q6J("matMenuTriggerFor",i),e.xp6(4),e.Q6J("matMenuTriggerFor",n),e.xp6(1),e.Oqu(e.lcZ(14,23,"report.content-fontsizeitem")),e.xp6(2),e.Q6J("ngIf",t.type===o.itemTextType),e.xp6(3),e.Oqu(e.lcZ(19,25,"report.content-addtext")),e.xp6(3),e.Oqu(e.lcZ(22,27,"report.content-addtable")),e.xp6(3),e.Oqu(e.lcZ(25,29,"report.content-addalarms")),e.xp6(2),e.Q6J("ngIf",e.lcZ(27,31,o.chartImageAvailable$)),e.xp6(4),e.Oqu(e.lcZ(31,33,"report.content-delete")),e.xp6(6),e.Q6J("ngIf","left"===t.align),e.xp6(1),e.Q6J("ngClass","left"===t.align?"":"unselect"),e.xp6(1),e.Oqu(e.lcZ(39,35,"general.align-left")),e.xp6(4),e.Q6J("ngIf","center"===t.align),e.xp6(1),e.Q6J("ngClass","center"===t.align?"":"unselect"),e.xp6(1),e.Oqu(e.lcZ(45,37,"general.align-center")),e.xp6(4),e.Q6J("ngIf","right"===t.align),e.xp6(1),e.Q6J("ngClass","right"===t.align?"":"unselect"),e.xp6(1),e.Oqu(e.lcZ(51,39,"general.align-right")),e.xp6(4),e.Q6J("ngForOf",o.fontSize)}}function T1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",26),e.ALo(1,"translate"),e.TgZ(2,"div",27)(3,"mat-icon",28),e._uU(4,"add_circle_outline"),e.qZA(),e.TgZ(5,"mat-menu",null,29)(7,"button",30),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAddItem(n.itemTextType))}),e._uU(8),e.ALo(9,"translate"),e.qZA(),e.TgZ(10,"button",30),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAddItem(n.itemTableType))}),e._uU(11),e.ALo(12,"translate"),e.qZA(),e.TgZ(13,"button",30),e.NdJ("click",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onAddItem(n.itemAlarmsType))}),e._uU(14),e.ALo(15,"translate"),e.qZA(),e.YNc(16,f1e,3,3,"button",31),e.ALo(17,"async"),e.qZA()(),e.YNc(18,D1e,55,41,"div",32),e.qZA()}if(2&r){const t=e.MAs(6),i=e.oxw(2);e.s9C("label",e.lcZ(1,7,"report.property-content")),e.xp6(3),e.Q6J("matMenuTriggerFor",t),e.xp6(5),e.Oqu(e.lcZ(9,9,"report.content-addtext")),e.xp6(3),e.Oqu(e.lcZ(12,11,"report.content-addtable")),e.xp6(3),e.Oqu(e.lcZ(15,13,"report.content-addalarms")),e.xp6(2),e.Q6J("ngIf",e.lcZ(17,15,i.chartImageAvailable$)),e.xp6(2),e.Q6J("ngForOf",null==i.report.content?null:i.report.content.items)}}function I1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-tab",26),e.ALo(1,"translate"),e.TgZ(2,"div",47)(3,"div",48)(4,"span"),e._uU(5),e.ALo(6,"translate"),e.qZA(),e.TgZ(7,"mat-select",49),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.report.docproperty.pageSize=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onReportChanged())}),e.TgZ(8,"mat-option",50),e._uU(9,"A3"),e.qZA(),e.TgZ(10,"mat-option",51),e._uU(11,"A4"),e.qZA(),e.TgZ(12,"mat-option",52),e._uU(13,"A5"),e.qZA()()(),e.TgZ(14,"div",53)(15,"span"),e._uU(16),e.ALo(17,"translate"),e.qZA(),e.TgZ(18,"mat-select",54),e.NdJ("valueChange",function(n){e.CHM(t);const o=e.oxw(2);return e.KtG(o.report.docproperty.pageOrientation=n)})("selectionChange",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onReportChanged())}),e.TgZ(19,"mat-option",55),e._uU(20),e.ALo(21,"translate"),e.qZA(),e.TgZ(22,"mat-option",56),e._uU(23),e.ALo(24,"translate"),e.qZA()()(),e.TgZ(25,"div",57)(26,"div",58)(27,"span"),e._uU(28),e.ALo(29,"translate"),e.qZA(),e.TgZ(30,"input",59),e.NdJ("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onReportChanged())}),e.qZA()(),e.TgZ(31,"div",58)(32,"span"),e._uU(33),e.ALo(34,"translate"),e.qZA(),e.TgZ(35,"input",60),e.NdJ("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onReportChanged())}),e.qZA()(),e.TgZ(36,"div",58)(37,"span"),e._uU(38),e.ALo(39,"translate"),e.qZA(),e.TgZ(40,"input",61),e.NdJ("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onReportChanged())}),e.qZA()(),e.TgZ(41,"div",62)(42,"span"),e._uU(43),e.ALo(44,"translate"),e.qZA(),e.TgZ(45,"input",63),e.NdJ("change",function(){e.CHM(t);const n=e.oxw(2);return e.KtG(n.onReportChanged())}),e.qZA()()()()()}if(2&r){const t=e.oxw(2);e.s9C("label",e.lcZ(1,11,"report.property-page")),e.xp6(5),e.Oqu(e.lcZ(6,13,"report.property-page-size")),e.xp6(2),e.Q6J("value",t.report.docproperty.pageSize),e.xp6(9),e.Oqu(e.lcZ(17,15,"report.property-page-orientation")),e.xp6(2),e.Q6J("value",t.report.docproperty.pageOrientation),e.xp6(2),e.Oqu(e.lcZ(21,17,"report.property-page-ori-landscape")),e.xp6(3),e.Oqu(e.lcZ(24,19,"report.property-page-ori-portrait")),e.xp6(5),e.Oqu(e.lcZ(29,21,"report.property-margin-left")),e.xp6(5),e.Oqu(e.lcZ(34,23,"report.property-margin-top")),e.xp6(5),e.Oqu(e.lcZ(39,25,"report.property-margin-right")),e.xp6(5),e.Oqu(e.lcZ(44,27,"report.property-margin-bottom"))}}function k1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",11)(1,"div",12)(2,"div",13)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._UZ(6,"input",14),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"div",15)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e._UZ(12,"input",16),e.qZA(),e.TgZ(13,"div",15)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"mat-select",17),e.NdJ("selectionChange",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onSchedulingChanged())}),e.YNc(18,g1e,2,2,"mat-option",18),e.ALo(19,"enumToArray"),e.qZA()(),e.TgZ(20,"div",19)(21,"mat-tab-group",20,21),e.YNc(23,T1e,19,17,"mat-tab",22),e.YNc(24,I1e,46,29,"mat-tab",22),e.qZA()()(),e.TgZ(25,"div",23),e._UZ(26,"iframe",24),e.qZA()()}if(2&r){const t=e.oxw();e.xp6(4),e.Oqu(e.lcZ(5,7,"report.property-name")),e.xp6(2),e.MGl("placeholder","",e.lcZ(7,9,"report.property-name")," *"),e.xp6(4),e.Oqu(e.lcZ(11,11,"report.property-receiver")),e.xp6(5),e.Oqu(e.lcZ(16,13,"report.property-scheduling-type")),e.xp6(3),e.Q6J("ngForOf",e.lcZ(19,15,t.schedulingType)),e.xp6(5),e.Q6J("ngIf",t.report.content),e.xp6(1),e.Q6J("ngIf",t.report.docproperty)}}function Q1e(r,a){1&r&&(e.TgZ(0,"div",64)(1,"span"),e._uU(2),e.ALo(3,"translate"),e.qZA()()),2&r&&(e.xp6(2),e.Oqu(e.lcZ(3,1,"msg.report-property-missing-value")))}TN.vfs=Jbe;let S1e=(()=>{class r{dialogRef;dialog;fb;projectService;translateService;resourcesService;pluginService;data;myForm;itemTextType=ii.cQ.getEnumKey(Rg,Rg.text);itemTableType=ii.cQ.getEnumKey(Rg,Rg.table);itemAlarmsType=ii.cQ.getEnumKey(Rg,Rg.alarms);itemChartType=ii.cQ.getEnumKey(Rg,Rg.chart);fontSize=[6,8,10,12,14,16,18,20];report;schedulingType=Tb;chartImageAvailable$;destroy$=new An.x;imagesList={};constructor(t,i,n,o,s,c,g,B){this.dialogRef=t,this.dialog=i,this.fb=n,this.projectService=o,this.translateService=s,this.resourcesService=c,this.pluginService=g,this.data=B;const O=this.projectService.getReports()?.filter(ne=>ne.id!==B.report.id)?.map(ne=>ne.name);this.report=B.report,this.myForm=this.fb.group({id:[this.report.id,Z.required],name:[this.report.name,[Z.required,ne=>-1!==O?.indexOf(ne.value)?{invalidName:!0}:null]],receiver:[this.report.receiver],scheduling:[this.report.scheduling],marginLeft:[this.report.docproperty.pageMargins[0]],marginTop:[this.report.docproperty.pageMargins[1]],marginRight:[this.report.docproperty.pageMargins[2]],marginBottom:[this.report.docproperty.pageMargins[3]]}),this.chartImageAvailable$=this.pluginService.getPlugins().pipe((0,On.R)(this.destroy$),(0,f.U)(ne=>ne.some(we=>we.type===IN.Chart&&we.current)))}ngOnInit(){Object.keys(this.schedulingType).forEach(t=>{this.translateService.get(this.schedulingType[t]).subscribe(i=>{this.schedulingType[t]=i})})}ngAfterViewInit(){this.onReportChanged(),this.myForm.markAsPristine()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onNoClick(){this.dialogRef.close()}onOkClick(){this.report.id=this.myForm.controls.id.value,this.report.name=this.myForm.controls.name.value,this.report.receiver=this.myForm.controls.receiver.value,this.report.scheduling=this.myForm.controls.scheduling.value,(this.data.editmode<0||this.myForm.valid)&&this.dialogRef.close(this.report)}onSchedulingChanged(){this.report.content.items.forEach(t=>{(t.type===this.itemTableType||t.type===this.itemAlarmsType)&&(t.range=this.myForm.controls.scheduling.value)}),this.onReportChanged()}onReportChanged(){this.report.docproperty.pageMargins=[this.myForm.controls.marginLeft.value,this.myForm.controls.marginTop.value,this.myForm.controls.marginRight.value,this.myForm.controls.marginBottom.value],this.getPdfContent(this.report).subscribe(t=>{TN.createPdf(t).getDataUrl(n=>{const o=document.querySelector("iframe");o.src=n,o.style.width="100%",o.style.height="100%"})})}getPdfContent(t){return new Za.y(i=>{let n={...t.docproperty};n.header={text:"FUXA by frangoteam",style:[{fontSize:6}]},n.footer=(o,s)=>({text:o.toString()+" / "+s,style:[{alignment:"right",fontSize:8}]}),this.checkImages(t.content.items.filter(o=>o.type===this.itemChartType)).subscribe(o=>{o.forEach(s=>{this.imagesList[s.id]||(this.imagesList[s.id]=s.content)}),n.content=[],t.content.items.forEach(s=>{if(s.type===this.itemTextType)n.content.push({text:s.text,style:[{alignment:s.align,fontSize:s.size}]});else if(s.type===this.itemTableType){const c=r.getTableContent(s),g=r.getDateRange(s.range);n.content.push({text:`${g.begin.toLocaleDateString()} - ${g.end.toLocaleDateString()}`,style:[{fontSize:s.size}]}),n.content.push(c)}else if(s.type===this.itemAlarmsType){const c=r.getAlarmsContent(s),g=r.getDateRange(s.range);n.content.push({text:`${g.begin.toLocaleDateString()} - ${g.end.toLocaleDateString()}`,style:[{fontSize:s.size}]}),n.content.push(c)}else s.type===this.itemChartType&&s.chart&&this.imagesList[s.chart.id]&&n.content.push({image:`data:image/png;base64,${this.imagesList[s.chart.id]}`,width:s.width||500,height:s.height||350})}),i.next(n)},o=>{console.error("get Resources images error: "+o),i.next(n)})})}checkImages(t){if(t.length<=0)return(0,lr.of)([]);let i=[];return t.forEach(n=>{n.chart&&!this.imagesList[n.chart.id]&&i.push(this.resourcesService.generateImage(n).pipe((0,f.U)(s=>({id:n.chart.id,content:s}))))}),(0,h.D)(i).pipe((0,f.U)(n=>[...n]))}onAddItem(t,i=0,n=!1){let o={type:t,align:"left",size:10};t===this.itemTextType?o={...o,text:"",style:[{alignment:o.align}]}:t===this.itemTableType?o={...o,columns:[],interval:ii.cQ.getEnumKey(gD,gD.hour),range:this.myForm.value.scheduling}:t===this.itemAlarmsType?o={...o,priority:ii.cQ.convertArrayToObject(Object.values(Sd),!0),property:ii.cQ.convertArrayToObject(Object.values(PP),!0),range:this.myForm.value.scheduling}:t===this.itemChartType&&(o={...o,range:this.myForm.value.scheduling,width:500,height:350,size:14}),this.onEditItem(o,i,n)}onEditItem(t,i,n){let o=null;const s={data:JSON.parse(JSON.stringify(t)),position:{top:"60px"}};o=this.dialog.open(t.type===this.itemTableType?r1e:t.type===this.itemAlarmsType?c1e:t.type===this.itemChartType?u1e:jbe,s),o.afterClosed().subscribe(c=>{c&&(i<=this.report.content.items.length?n?(this.checkToRemoveImage(i),this.report.content.items.splice(i,1,c)):this.report.content.items.splice(i,0,c):this.report.content.items.push(c),this.onReportChanged())})}onDeleteItem(t){this.checkToRemoveImage(t),this.report.content.items.splice(t,1),this.onReportChanged()}onAlignItem(t,i){t.align=i,this.onReportChanged()}onFontSizeItem(t,i,n){i.size=n,this.checkToRemoveImage(t),this.onReportChanged()}static getTableContent(t){let i={layout:"lightHorizontalLines",fontSize:t.size},n=t.columns.map(s=>({text:s.label||s.tag.label||s.tag.name,bold:!0,style:[{alignment:s.align}]})),o=t.columns.map(s=>s.tag.address||"...");return i.table={headerRows:1,widths:t.columns.map(s=>s.width),body:[n,o]},i}static getAlarmsContent(t){let i={layout:"lightHorizontalLines",fontSize:t.size},n=Object.values(t.propertyText).map(s=>({text:s,bold:!0,style:[{alignment:"left"}]})),o=Object.values(t.propertyText).map(s=>"...");return i.table={headerRows:1,widths:Object.values(t.propertyText).map(s=>"*"),body:[n,o]},i}checkToRemoveImage(t){if(this.report.content.items[t]&&this.report.content.items[t].type===this.itemChartType){const i=this.report.content.items[t];i.chart&&delete this.imagesList[i.chart.id]}}static getDateRange(t){if(t===ii.cQ.getEnumKey(Pp,Pp.day)){var i=new Date;return i.setDate(i.getDate()-1),{begin:new Date(i.getFullYear(),i.getMonth(),i.getDate()),end:new Date(i.getFullYear(),i.getMonth(),i.getDate(),23,59,59)}}if(t===ii.cQ.getEnumKey(Pp,Pp.week)){var n=new Date,o=(n=new Date(n.setDate(n.getDate()-7-(n.getDay()+6)%7))).getDate()-n.getDay()+(0==n.getDay()?-6:1);return n=new Date(n.setDate(o)),{begin:new Date(n.getFullYear(),n.getMonth(),n.getDate()),end:new Date(n.getFullYear(),n.getMonth(),n.getDate()+6,23,59,59)}}if(t===ii.cQ.getEnumKey(Pp,Pp.month)){var s=new Date;return s.setMonth(s.getMonth()-1),s.setDate(-1),{begin:new Date(s.getFullYear(),s.getMonth(),1),end:new Date(s.getFullYear(),s.getMonth(),s.getDate(),23,59,59)}}return{begin:new Date,end:new Date}}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(xo),e.Y36(co),e.Y36(wr.Y4),e.Y36(Ni.sK),e.Y36(Q0),e.Y36(GC),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-report-editor"]],decls:17,vars:13,consts:[[3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",2,"display","inline-block","cursor","move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content","",4,"ngIf"],["mat-dialog-content","","class","dialog-ld-content","style","position: relative",4,"ngIf"],[1,"valid-error"],["class","message-error",4,"ngIf"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"click"],["mat-dialog-content",""],["mat-dialog-content","",1,"dialog-ld-content",2,"position","relative"],[1,"left-panel"],[1,"my-form-field","report-row"],["formControlName","name","type","text",3,"placeholder"],[1,"my-form-field","report-row","mt10"],["formControlName","receiver","type","text"],["formControlName","scheduling",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"content-panel"],[2,"width","100%"],["grptabs",""],[3,"label",4,"ngIf"],[1,"rigth-panel"],["id","iframeContainer"],[3,"value"],[3,"label"],[2,"width","100%","display","block","height","30px"],["aria-label","More",1,"report-head-menu",3,"matMenuTriggerFor"],["menuitem2","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["class","report-item",4,"ngFor","ngForOf"],[1,"report-item"],["aria-label","More",1,"report-item-edit",3,"click"],[1,"report-item-type"],[4,"ngIf"],["aria-label","More",1,"report-item-menu",3,"matMenuTriggerFor"],["menuitem","matMenu"],["mat-menu-item","",3,"matMenuTriggerFor"],["mat-menu-item","",3,"matMenuTriggerFor",4,"ngIf"],[1,"menu-separator"],["menualign","matMenu"],[1,"menu-item-select"],[3,"ngClass"],["menufontsize","matMenu"],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],[1,"mt20",2,"display","block"],[1,"my-form-field"],[2,"width","100px",3,"value","valueChange","selectionChange"],["value","A3"],["value","A4"],["value","A5"],[1,"my-form-field","ml20"],[2,"width","160px",3,"value","valueChange","selectionChange"],["value","landscape"],["value","portrait"],[1,"block","mt15"],[1,"my-form-field","mr10"],["numberOnly","","formControlName","marginLeft","type","number","min","0",2,"width","75px",3,"change"],["numberOnly","","formControlName","marginTop","type","number","min","0",2,"width","75px",3,"change"],["numberOnly","","formControlName","marginRight","type","number","min","0",2,"width","75px",3,"change"],[1,"my-form-field","mr5"],["numberOnly","","formControlName","marginBottom","type","number","min","0",2,"width","75px",3,"change"],[1,"message-error"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.YNc(6,p1e,3,4,"div",3),e.YNc(7,k1e,27,17,"div",4),e.TgZ(8,"div",5),e.YNc(9,Q1e,4,3,"div",6),e.qZA(),e.TgZ(10,"div",7)(11,"button",8),e.NdJ("click",function(){return n.onNoClick()}),e._uU(12),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"button",9),e.NdJ("click",function(){return n.onOkClick()}),e._uU(15),e.ALo(16,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.myForm),e.xp6(2),e.Oqu(e.lcZ(3,7,"report.property-title")),e.xp6(4),e.Q6J("ngIf",n.data.editmode<0),e.xp6(1),e.Q6J("ngIf",n.data.editmode>=0),e.xp6(2),e.Q6J("ngIf",n.myForm.invalid),e.xp6(3),e.Oqu(e.lcZ(13,9,"dlg.cancel")),e.xp6(3),e.Oqu(e.lcZ(16,11,"dlg.ok")))},dependencies:[l.mk,l.sg,l.O5,In,I,qn,et,Xe,$n,Sr,Ot,Nr,Yn,Qr,Kr,Ir,Zn,a0,zc,Hc,cc,fo,NA,DA,zr,fs,l.Ov,Ni.X$,ii.T9],styles:[".left-panel[_ngcontent-%COMP%]{float:left;width:380px}.report-row[_ngcontent-%COMP%]{width:inherit}.report-row[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .report-row[_ngcontent-%COMP%] mat-select[_ngcontent-%COMP%]{width:-webkit-fill-available}.content-toolbox[_ngcontent-%COMP%]{line-height:20px}.content-toolbox[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{float:left}.content-toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{float:right}.content-panel[_ngcontent-%COMP%]{display:block;margin-top:15px;width:100%}.report-item[_ngcontent-%COMP%]{font-size:14px;line-height:24px;padding:7px 0 5px;border-bottom:1px solid var(--toolboxBorder)}.report-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;line-height:24px;margin-left:4px}.report-item-type[_ngcontent-%COMP%]{display:inline-block}.report-head-menu[_ngcontent-%COMP%]{float:right;padding-top:5px;padding-right:5px;cursor:pointer}.report-item-edit[_ngcontent-%COMP%]{cursor:pointer;margin-right:10px;vertical-align:middle}.report-item-menu[_ngcontent-%COMP%]{cursor:pointer;float:right;margin-right:3px;vertical-align:middle}.report-item-label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rigth-panel[_ngcontent-%COMP%]{position:absolute;inset:0 20px 10px 380px;margin-left:40px}.valid-error[_ngcontent-%COMP%]{float:left;margin-top:15px} .content-panel .mat-tab-label{height:34px!important;min-width:120px!important;width:140px}.menu-item-select[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;margin-right:unset!important}.menu-item-select[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:20px}.menu-item-select[_ngcontent-%COMP%] .unselect[_ngcontent-%COMP%]{padding-left:25px}"]})}return r})();function P1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"th",25)(1,"button",26),e.NdJ("click",function(n){e.CHM(t);const o=e.oxw();return n.stopPropagation(),e.KtG(o.onAddReport())}),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function F1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",27)(1,"button",26),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onEditReport(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function O1e(r,a){1&r&&(e.TgZ(0,"th",28),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"reports.list-name")," "))}function L1e(r,a){if(1&r&&(e.TgZ(0,"td",29),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function R1e(r,a){1&r&&(e.TgZ(0,"th",28),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"reports.list-receiver")," "))}function Y1e(r,a){if(1&r&&(e.TgZ(0,"td",29),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.receiver," ")}}function N1e(r,a){1&r&&(e.TgZ(0,"th",28),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"reports.list-scheduling")," "))}function U1e(r,a){if(1&r&&(e.TgZ(0,"td",29),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getScheduling(t.scheduling)," ")}}function z1e(r,a){1&r&&(e.TgZ(0,"th",28),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"reports.list-type")," "))}function H1e(r,a){if(1&r&&(e.TgZ(0,"td",29),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.type," ")}}function G1e(r,a){1&r&&e._UZ(0,"th",30)}function Z1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"expand_more"),e.qZA())}function J1e(r,a){1&r&&(e.TgZ(0,"mat-icon"),e._uU(1,"expand_less"),e.qZA())}function j1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",29)(1,"button",26),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.toogleDetails(s))}),e.YNc(2,Z1e,2,0,"mat-icon",31),e.YNc(3,J1e,2,0,"mat-icon",31),e.qZA()()}if(2&r){const t=a.$implicit,i=e.oxw();e.xp6(2),e.Q6J("ngIf",t!==i.expandedElement),e.xp6(1),e.Q6J("ngIf",t===i.expandedElement)}}function V1e(r,a){1&r&&e._UZ(0,"th",30)}function W1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",29)(1,"button",32),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onStartReport(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"play_arrow"),e.qZA()()()}}function K1e(r,a){1&r&&e._UZ(0,"th",30)}function q1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"td",29)(1,"button",26),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveReport(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function X1e(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",37)(1,"div"),e._uU(2),e.qZA(),e.TgZ(3,"button",32),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw(2);return n.stopPropagation(),e.KtG(c.onDownloadDetail(s))}),e.TgZ(4,"mat-icon"),e._uU(5,"download"),e.qZA()(),e.TgZ(6,"button",32),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw().$implicit,g=e.oxw();return n.stopPropagation(),e.KtG(g.onRemoveFile(s,c))}),e.TgZ(7,"mat-icon"),e._uU(8,"delete_forever"),e.qZA()()()}if(2&r){const t=a.$implicit;e.xp6(2),e.Oqu(t)}}function $1e(r,a){if(1&r&&(e.TgZ(0,"td",33)(1,"div",34)(2,"div",35),e.YNc(3,X1e,9,1,"div",36),e.qZA()()()),2&r){const t=a.$implicit,i=e.oxw();e.uIk("colspan",i.displayedColumns.length),e.xp6(1),e.Q6J("@detailExpand",t===i.expandedElement?"expanded":"collapsed"),e.xp6(2),e.Q6J("ngForOf",i.currentDetails)}}function exe(r,a){1&r&&e._UZ(0,"tr",38)}function txe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"tr",39),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.toogleDetails(o))}),e.qZA()}}function ixe(r,a){1&r&&e._UZ(0,"tr",40)}const nxe=function(){return["detailColumns"]};let rxe=(()=>{class r{dialog;translateService;projectService;commandService;reportsService;displayedColumns=["select","name","receiver","scheduling","type","expand","create","remove"];dataSource=new Nn([]);subscriptionLoad;schedulingType=Tb;expandedElement;currentDetails;table;sort;constructor(t,i,n,o,s){this.dialog=t,this.translateService=i,this.projectService=n,this.commandService=o,this.reportsService=s}ngOnInit(){this.loadReports(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{this.loadReports()}),Object.keys(this.schedulingType).forEach(t=>{this.translateService.get(this.schedulingType[t]).subscribe(i=>{this.schedulingType[t]=i})})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}getScheduling(t){return this.schedulingType[t]||""}onAddReport(){this.editReport(new Yce(ii.cQ.getGUID("r_")),1)}onEditReport(t){this.editReport(t,0)}onStartReport(t){this.reportsService.buildReport(t).pipe((0,Kf.b)(()=>(0,Mo.H)(5e3))).subscribe(()=>{this.loadDetails(t)})}onRemoveReport(t){this.editReport(t,-1)}editReport(t,i){let n=i<0?"auto":"80%",o=JSON.parse(JSON.stringify(t));this.dialog.open(S1e,{data:{report:o,editmode:i},width:n,position:{top:"80px"}}).afterClosed().subscribe(c=>{c&&(i<0?this.projectService.removeReport(c).subscribe(g=>{this.loadReports()}):this.projectService.setReport(c,t).subscribe(()=>{this.loadReports()}))})}loadReports(){this.dataSource.data=this.projectService.getReports().sort((t,i)=>t.namei.name?1:0)}toogleDetails(t){this.expandedElement=this.expandedElement===t?null:t,this.loadDetails(this.expandedElement)}loadDetails(t){this.currentDetails=[],t&&this.reportsService.getReportsDir(t).subscribe(i=>{this.currentDetails=i},i=>{console.error("loadDetails err: "+i)})}onDownloadDetail(t){this.commandService.getReportFile(t).subscribe(i=>{let n=new Blob([i],{type:"application/pdf"});uD.saveAs(n,t)},i=>{console.error("Download Report File err:",i)})}onRemoveFile(t,i){this.dialog.open(qu,{position:{top:"60px"},data:{msg:this.translateService.instant("msg.file-remove",{value:t})}}).afterClosed().subscribe(o=>{o&&this.reportsService.removeReportFile(t).pipe((0,Kf.b)(()=>(0,Mo.H)(2e3))).subscribe(()=>{this.loadDetails(i)})})}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4),e.Y36(RP),e.Y36(FP))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-report-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:41,vars:8,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["mat-table","","multiTemplateDataRows","","matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],["mat-header-cell","",3,"ngClass",4,"matHeaderCellDef"],["mat-cell","",3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","receiver"],["matColumnDef","scheduling"],["matColumnDef","type"],["matColumnDef","expand"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","create"],["matColumnDef","remove"],["matColumnDef","detailColumns"],["mat-cell","","class","details-container",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","my-mat-row",3,"click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","detail-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],["mat-header-cell","",3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-cell","",3,"ngClass"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell",""],[4,"ngIf"],["mat-icon-button","",3,"click"],["mat-cell","",1,"details-container"],[1,"report-details"],[1,"details-description"],["class","report-detail",4,"ngFor","ngForOf"],[1,"report-detail"],["mat-header-row",""],["mat-row","",1,"my-mat-row",3,"click"],["mat-row","",1,"detail-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"content_paste"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"table",3,4),e.ynx(9,5),e.YNc(10,P1e,4,1,"th",6),e.YNc(11,F1e,4,1,"td",7),e.BQk(),e.ynx(12,8),e.YNc(13,O1e,3,3,"th",9),e.YNc(14,L1e,2,1,"td",10),e.BQk(),e.ynx(15,11),e.YNc(16,R1e,3,3,"th",9),e.YNc(17,Y1e,2,1,"td",10),e.BQk(),e.ynx(18,12),e.YNc(19,N1e,3,3,"th",9),e.YNc(20,U1e,2,1,"td",10),e.BQk(),e.ynx(21,13),e.YNc(22,z1e,3,3,"th",9),e.YNc(23,H1e,2,1,"td",10),e.BQk(),e.ynx(24,14),e.YNc(25,G1e,1,0,"th",15),e.YNc(26,j1e,4,2,"td",10),e.BQk(),e.ynx(27,16),e.YNc(28,V1e,1,0,"th",15),e.YNc(29,W1e,4,0,"td",10),e.BQk(),e.ynx(30,17),e.YNc(31,K1e,1,0,"th",15),e.YNc(32,q1e,4,0,"td",10),e.BQk(),e.ynx(33,18),e.YNc(34,$1e,4,3,"td",19),e.BQk(),e.YNc(35,exe,1,0,"tr",20),e.YNc(36,txe,1,0,"tr",21),e.YNc(37,ixe,1,0,"tr",22),e.qZA()()(),e.TgZ(38,"button",23),e.NdJ("click",function(){return n.onAddReport()}),e.TgZ(39,"mat-icon",24),e._uU(40,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,5,"reports.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(28),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",e.DdM(7,nxe)))},dependencies:[l.mk,l.sg,l.O5,Yn,Zn,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}.header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground)}.container[_ngcontent-%COMP%]{display:inline-table;width:100%}.mat-table[_ngcontent-%COMP%]{overflow:auto;height:100%;width:100%}.mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}.mat-cell[_ngcontent-%COMP%]{font-size:13px}.mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.mat-header-cell[_ngcontent-%COMP%]{font-size:15px}.mat-column-select[_ngcontent-%COMP%]{overflow:visible;width:50px}.mat-column-name[_ngcontent-%COMP%]{flex:1 1 120px}.mat-column-type[_ngcontent-%COMP%]{flex:0 0 100px}.mat-column-receiver[_ngcontent-%COMP%], .mat-column-scheduling[_ngcontent-%COMP%]{flex:3 1 180px}.mat-column-enabled[_ngcontent-%COMP%]{flex:0 0 60px}.mat-column-create[_ngcontent-%COMP%], .mat-column-remove[_ngcontent-%COMP%], .mat-column-expand[_ngcontent-%COMP%]{width:50px}tr.detail-row[_ngcontent-%COMP%]{height:0}.report-details[_ngcontent-%COMP%]{overflow:hidden;display:flex}.details-description[_ngcontent-%COMP%]{min-height:100px;max-height:360px;margin:5px 10px;padding-left:40px;width:100%;overflow:auto}.report-detail[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{min-width:600px;display:inline-block}td.details-container[_ngcontent-%COMP%]{background-color:var(--workPanelExpandBackground)}"],data:{animation:[(0,vi.X$)("detailExpand",[(0,vi.SB)("collapsed",(0,vi.oB)({height:"0px",minHeight:"0"})),(0,vi.SB)("expanded",(0,vi.oB)({height:"*"})),(0,vi.eR)("expanded <=> collapsed",(0,vi.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)"))])]}})}return r})(),oxe=(()=>{class r{dialogRef;fb;data;userService;formGroup;roles=[];destroy$=new An.x;constructor(t,i,n,o){this.dialogRef=t,this.fb=i,this.data=n,this.userService=o}ngOnInit(){this.userService.getRoles().pipe((0,On.R)(this.destroy$)).subscribe(t=>this.roles=t),this.formGroup=this.fb.group({id:this.data.id||ii.cQ.getShortGUID("r_"),name:[this.data.name,[Z.required,this.isValidRoleName()]],index:[this.data?.index],description:[this.data?.description]}),this.formGroup.updateValueAndValidity()}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onCancelClick(){this.dialogRef.close()}onOkClick(){this.data.id=this.formGroup.controls.id.value,this.data.name=this.formGroup.controls.name.value,this.data.index=this.formGroup.controls.index.value,this.data.description=this.formGroup.controls.description.value||"",this.dialogRef.close(this.data)}isValidRoleName(){return t=>t.value&&this.isValid(t.value)?null:{UserNameNotValid:!0}}isValid(t){return!!t&&!this.roles.find(i=>i.name===t&&this.data?.name!==t)}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(Yr),e.Y36(tm))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-users-role-edit"]],decls:29,vars:20,consts:[[3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"force-lbk","pointer-move"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field","block","mb10"],["formControlName","name","type","text",2,"width","250px"],["formControlName","index","type","number",2,"width","250px"],["formControlName","description","type","text",2,"width","250px"],["mat-dialog-actions","",1,"dialog-action"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onCancelClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e._UZ(11,"input",5),e.qZA(),e.TgZ(12,"div",4)(13,"span"),e._uU(14),e.ALo(15,"translate"),e.qZA(),e._UZ(16,"input",6),e.qZA(),e.TgZ(17,"div",4)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e._UZ(21,"input",7),e.qZA()(),e.TgZ(22,"div",8)(23,"button",9),e.NdJ("click",function(){return n.onCancelClick()}),e._uU(24),e.ALo(25,"translate"),e.qZA(),e.TgZ(26,"button",10),e.NdJ("click",function(){return n.onOkClick()}),e._uU(27),e.ALo(28,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,8,"user-role-edit-title")),e.xp6(7),e.Oqu(e.lcZ(10,10,"user-role-edit-name")),e.xp6(5),e.Oqu(e.lcZ(15,12,"user-role-edit-index")),e.xp6(5),e.Oqu(e.lcZ(20,14,"user-role-edit-description")),e.xp6(5),e.Oqu(e.lcZ(25,16,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(28,18,"dlg.ok")))},dependencies:[In,I,qn,et,Xe,Sr,Ot,Yn,Qr,Kr,Ir,Zn,zr,Ni.X$]})}return r})();function axe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",19)(1,"button",20),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddRole())}),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function sxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",19)(1,"button",20),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditRole(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function lxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",21),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"roles.list-index")," "))}function cxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.index," ")}}function Axe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",21),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"roles.list-name")," "))}function dxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function uxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",21),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"roles.list-description")," "))}function hxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.description," ")}}function pxe(r,a){1&r&&e._UZ(0,"mat-header-cell")}function gxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",20),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveRole(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function fxe(r,a){1&r&&e._UZ(0,"mat-header-row")}function mxe(r,a){1&r&&e._UZ(0,"mat-row",22)}let _xe=(()=>{class r{dialog;translateService;userService;displayedColumns=["select","index","name","description","remove"];dataSource=new c6([]);roles;table;sort;constructor(t,i,n){this.dialog=t,this.translateService=i,this.userService=n}ngOnInit(){this.loadRoles()}ngAfterViewInit(){this.dataSource.sort=this.sort}onAddRole(){let t=new Gc.uU;this.editRole(t)}onEditRole(t){this.editRole(t)}onRemoveRole(t){let i=this.translateService.instant("msg.role-remove",{value:t.name});this.dialog.open(qu,{data:{msg:i},position:{top:"60px"}}).afterClosed().subscribe(o=>{o&&t&&this.userService.removeRole(t).subscribe(s=>{this.loadRoles()},s=>{console.error("remove Roles err: "+s)})})}loadRoles(){this.roles=[],this.userService.getRoles().subscribe(t=>{Object.values(t).forEach(i=>{this.roles.push(i)}),this.bindToTable(this.roles)},t=>{console.error("get Roles err: "+t)})}editRole(t){let i=JSON.parse(JSON.stringify(t));this.dialog.open(oxe,{position:{top:"60px"},data:i}).afterClosed().subscribe(o=>{o&&this.userService.setRole(o).subscribe(s=>{this.loadRoles()},s=>{console.error("set Roles err: "+s)})},o=>{})}bindToTable(t){this.dataSource.data=t}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(tm))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-user-roles"]],viewQuery:function(i,n){if(1&i&&(e.Gf(mv,5),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:29,vars:6,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","index"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","name"],["matColumnDef","description"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"groups"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"mat-table",3,4),e.ynx(9,5),e.YNc(10,axe,4,1,"mat-header-cell",6),e.YNc(11,sxe,4,1,"mat-cell",7),e.BQk(),e.ynx(12,8),e.YNc(13,lxe,3,3,"mat-header-cell",9),e.YNc(14,cxe,2,1,"mat-cell",10),e.BQk(),e.ynx(15,11),e.YNc(16,Axe,3,3,"mat-header-cell",9),e.YNc(17,dxe,2,1,"mat-cell",10),e.BQk(),e.ynx(18,12),e.YNc(19,uxe,3,3,"mat-header-cell",9),e.YNc(20,hxe,2,1,"mat-cell",10),e.BQk(),e.ynx(21,13),e.YNc(22,pxe,1,0,"mat-header-cell",14),e.YNc(23,gxe,4,0,"mat-cell",10),e.BQk(),e.YNc(24,fxe,1,0,"mat-header-row",15),e.YNc(25,mxe,1,0,"mat-row",16),e.qZA()()(),e.TgZ(26,"button",17),e.NdJ("click",function(){return n.onAddRole()}),e.TgZ(27,"mat-icon",18),e._uU(28,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,4,"roles.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(17),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,Yn,Zn,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:[".header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}.header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}.work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground)}.work-panel[_ngcontent-%COMP%] .container[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:300px;position:absolute;inset:0}.work-panel[_ngcontent-%COMP%] .mat-table[_ngcontent-%COMP%]{overflow:auto}.work-panel[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{min-height:40px;height:43px}.work-panel[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px}.work-panel[_ngcontent-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}.work-panel[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:15px}.work-panel[_ngcontent-%COMP%] .mat-column-select[_ngcontent-%COMP%], .work-panel[_ngcontent-%COMP%] .mat-column-index[_ngcontent-%COMP%]{overflow:visible;flex:0 0 100px}.work-panel[_ngcontent-%COMP%] .mat-column-name[_ngcontent-%COMP%]{flex:0 0 200px}.work-panel[_ngcontent-%COMP%] .mat-column-description[_ngcontent-%COMP%]{flex:2 1 250px}"]})}return r})();function vxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",19)(1,"button",20),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddLocation())}),e.TgZ(2,"mat-icon"),e._uU(3,"add"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function yxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",19)(1,"button",20),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditLocation(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function wxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",21),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.locations-list-name")," "))}function Cxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.name," ")}}function bxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",21),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.locations-list-view")," "))}function xxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(1),e.hij(" ",i.getViewName(t.viewId)," ")}}function Bxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",21),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.hij(" ",e.lcZ(2,1,"maps.locations-list-description")," "))}function Exe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.xp6(1),e.hij(" ",t.description," ")}}function Mxe(r,a){1&r&&e._UZ(0,"mat-header-cell")}function Dxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",20),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveLocation(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function Txe(r,a){1&r&&e._UZ(0,"mat-header-row")}function Ixe(r,a){1&r&&e._UZ(0,"mat-row",22)}let kxe=(()=>{class r{dialog;translateService;projectService;displayedColumns=["select","name","view","description","remove"];dataSource=new Nn([]);locations;viewNameMap={};destroy$=new An.x;table;sort;constructor(t,i,n){this.dialog=t,this.translateService=i,this.projectService=n}ngOnInit(){this.loadLocations(),this.projectService.onLoadHmi.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this.loadLocations()})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){this.destroy$.next(null),this.destroy$.complete()}onAddLocation(){this.editLocation()}onEditLocation(t){this.editLocation(t)}onRemoveLocation(t){let i=this.translateService.instant("msg.maps-location-remove",{value:t.name});this.dialog.open(qu,{data:{msg:i},position:{top:"60px"}}).afterClosed().subscribe(o=>{o&&t&&this.projectService.removeMapsLocation(t).subscribe(s=>{this.loadLocations()},s=>{console.error("remove Locations err: "+s)})})}getViewName(t){return this.viewNameMap[t]}loadLocations(){this.viewNameMap=this.projectService.getViews().reduce((t,i)=>(t[i.id]=i.name,t),{}),this.dataSource.data=this.projectService.getMapsLocations()}editLocation(t){this.dialog.open(gN,{position:{top:"60px"},disableClose:!0,data:t}).afterClosed().subscribe(n=>{n&&this.projectService.setMapsLocation(n,t).subscribe(()=>{this.loadLocations()})})}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-maps-location-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,7),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:29,vars:6,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","name"],["mat-sort-header","",4,"matHeaderCellDef"],[4,"matCellDef"],["matColumnDef","view"],["matColumnDef","description"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"location_on"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"mat-table",3,4),e.ynx(9,5),e.YNc(10,vxe,4,1,"mat-header-cell",6),e.YNc(11,yxe,4,1,"mat-cell",7),e.BQk(),e.ynx(12,8),e.YNc(13,wxe,3,3,"mat-header-cell",9),e.YNc(14,Cxe,2,1,"mat-cell",10),e.BQk(),e.ynx(15,11),e.YNc(16,bxe,3,3,"mat-header-cell",9),e.YNc(17,xxe,2,1,"mat-cell",10),e.BQk(),e.ynx(18,12),e.YNc(19,Bxe,3,3,"mat-header-cell",9),e.YNc(20,Exe,2,1,"mat-cell",10),e.BQk(),e.ynx(21,13),e.YNc(22,Mxe,1,0,"mat-header-cell",14),e.YNc(23,Dxe,4,0,"mat-cell",10),e.BQk(),e.YNc(24,Txe,1,0,"mat-header-row",15),e.YNc(25,Ixe,1,0,"mat-row",16),e.qZA()()(),e.TgZ(26,"button",17),e.NdJ("click",function(){return n.onAddLocation()}),e.TgZ(27,"mat-icon",18),e._uU(28,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,4,"maps.locations-list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(17),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,Yn,Zn,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:["[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}[_nghost-%COMP%] .work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground)}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 80px}[_nghost-%COMP%] .mat-column-name[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] .mat-column-view[_ngcontent-%COMP%]{flex:1 1 140px}[_nghost-%COMP%] .mat-column-description[_ngcontent-%COMP%]{flex:1 1 140px}[_nghost-%COMP%] .mat-column-remove[_ngcontent-%COMP%]{flex:0 0 60px}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}[_nghost-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:15px}"]})}return r})();function Qxe(r,a){1&r&&(e.TgZ(0,"div",16),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"msg.text-name-exist")))}function Sxe(r,a){if(1&r&&(e.ynx(0),e.TgZ(1,"span"),e._uU(2),e.qZA(),e.BQk()),2&r){const t=e.oxw();e.xp6(2),e.AsE("",t.defaultLanguage.id," (",t.defaultLanguage.name,")")}}function Pxe(r,a){1&r&&(e.TgZ(0,"span"),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"text.settings-value")))}function Fxe(r,a){if(1&r&&(e.TgZ(0,"div",7)(1,"span"),e._uU(2),e.qZA(),e._UZ(3,"input",17),e.qZA()),2&r){const t=a.$implicit,i=e.oxw();let n;e.xp6(2),e.AsE("",t.id," (",t.name,")"),e.xp6(1),e.Q6J("formControlName","translation_"+t.id)("value",null==(n=i.formGroup.get("translation_"+t.id))?null:n.value)}}let Oxe=(()=>{class r{dialogRef;fb;projectService;data;formGroup;languages=[];defaultLanguage;nameExists=!1;constructor(t,i,n,o){this.dialogRef=t,this.fb=i,this.projectService=n,this.data=o}ngOnInit(){let t={name:new xt(this.data.text?.name||"",[Z.required,Z.pattern(/^[a-zA-Z0-9_]+$/)]),group:new xt(this.data.text?.group||""),value:new xt(this.data.text?.value||"")};this.languages=this.projectService.getLanguages().options||[],this.defaultLanguage=this.projectService.getLanguages().default,this.languages.forEach(i=>{t[`translation_${i.id}`]=new xt(this.data.text?.translations?.[i.id]||"")}),this.formGroup=this.fb.group(t)}checkNameExists(){const t=this.formGroup?.get("name")?.value;return this.nameExists=!!this.projectService.getTexts()?.find(i=>i.name===t&&i.id!==this.data.text.id),this.nameExists?{nameTaken:!0}:null}clearNameError(){this.nameExists=!1}onNoClick(){this.dialogRef.close()}onOkClick(){if(this.formGroup.valid){const t={...this.data.text,name:this.formGroup.value.name,group:this.formGroup.value.group,value:this.formGroup.value.value,translations:this.languages.reduce((i,n)=>(i[n.id]=this.formGroup.value[`translation_${n.id}`],i),{})};this.dialogRef.close(t)}}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(wr.Y4),e.Y36(Yr))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-language-text-property"]],decls:31,vars:21,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"dialog-close-btn",3,"click"],["mat-dialog-content",""],[1,"my-form-field"],["matInput","","formControlName","name","type","text","pattern","^[a-zA-Z0-9_]+$",3,"input"],["class","message-error",4,"ngIf"],[1,"my-form-field","mt5"],["matInput","","formControlName","group","type","text"],[4,"ngIf","ngIfElse"],["defaultText",""],["matInput","","formControlName","value","type","text"],["class","my-form-field mt5",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action","mt10"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"message-error"],["matInput","","type","text",3,"formControlName","value"]],template:function(i,n){if(1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"mat-icon",2),e.NdJ("click",function(){return n.onNoClick()}),e._uU(5,"clear"),e.qZA(),e.TgZ(6,"div",3)(7,"div",4)(8,"span"),e._uU(9),e.ALo(10,"translate"),e.qZA(),e.TgZ(11,"input",5),e.NdJ("input",function(){return n.clearNameError()}),e.qZA(),e.YNc(12,Qxe,3,3,"div",6),e.qZA(),e.TgZ(13,"div",7)(14,"span"),e._uU(15),e.ALo(16,"translate"),e.qZA(),e._UZ(17,"input",8),e.qZA(),e.TgZ(18,"div",7),e.YNc(19,Sxe,3,2,"ng-container",9),e.YNc(20,Pxe,3,3,"ng-template",null,10,e.W1O),e._UZ(22,"input",11),e.qZA(),e.YNc(23,Fxe,4,4,"div",12),e.qZA(),e.TgZ(24,"div",13)(25,"button",14),e.NdJ("click",function(){return n.onNoClick()}),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"button",15),e.NdJ("click",function(){return n.onOkClick()}),e._uU(29),e.ALo(30,"translate"),e.qZA()()()),2&i){const o=e.MAs(21);e.Q6J("formGroup",n.formGroup),e.xp6(2),e.Oqu(e.lcZ(3,11,"text.settings-title")),e.xp6(7),e.Oqu(e.lcZ(10,13,"text.settings-id")),e.xp6(3),e.Q6J("ngIf",n.nameExists),e.xp6(3),e.Oqu(e.lcZ(16,15,"text.settings-group")),e.xp6(4),e.Q6J("ngIf",n.defaultLanguage)("ngIfElse",o),e.xp6(4),e.Q6J("ngForOf",n.languages),e.xp6(3),e.Oqu(e.lcZ(27,17,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.formGroup.invalid),e.xp6(1),e.Oqu(e.lcZ(30,19,"dlg.ok"))}},dependencies:[l.sg,l.O5,In,I,et,Xe,tl,Sr,Ot,Yn,Qr,Kr,Ir,Zn,qd,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%]{width:400px;min-height:220px;max-height:400px;overflow:auto;padding-bottom:7px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%], [_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .my-form-field[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:calc(100% - 5px)}"]})}return r})();function Lxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"div",14)(1,"div",15)(2,"div",16)(3,"span"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._UZ(6,"input",17),e.ALo(7,"translate"),e.qZA(),e.TgZ(8,"div",18)(9,"span"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e._UZ(12,"input",19),e.ALo(13,"translate"),e.qZA(),e.TgZ(14,"button",20),e.NdJ("click",function(){const o=e.CHM(t).index,s=e.oxw();return e.KtG(s.onRemoveLanguage(o))}),e.TgZ(15,"mat-icon"),e._uU(16,"clear"),e.qZA()()()()}if(2&r){const t=a.index;e.xp6(1),e.Q6J("formGroupName",t),e.xp6(3),e.hij("*",e.lcZ(5,5,"language.settings-id"),""),e.xp6(2),e.s9C("placeholder",e.lcZ(7,7,"language.settings-id-placeholder")),e.xp6(4),e.hij("*",e.lcZ(11,9,"language.settings-name"),""),e.xp6(2),e.s9C("placeholder",e.lcZ(13,11,"language.settings-name-placeholder"))}}let Rxe=(()=>{class r{dialogRef;fb;projectService;languagesForm;constructor(t,i,n){this.dialogRef=t,this.fb=i,this.projectService=n}ngOnInit(){const t=this.projectService.getLanguages();this.languagesForm=this.fb.group({languages:this.fb.array([],this.uniqueLanguageIdValidator),defaultId:[t.default?.id||"EN",[Z.required,Z.pattern("^[A-Za-z]{2}$")]],defaultName:[t.default?.name||"English",Z.required]}),this.setLanguages(t.options)}get languages(){return this.languagesForm?.get("languages")||new Ls([])}setLanguages(t){const i=this.languagesForm.get("languages");t.forEach(n=>{i.push(this.createLanguageForm(n))})}createLanguageForm(t){return this.fb.group({id:[t?.id||"",[Z.required,Z.pattern("^[A-Za-z]{2}$")]],name:[t?.name||"",Z.required]})}uniqueLanguageIdValidator(t){const n=t.controls.map(s=>s.get("id")?.value?.toLowerCase());return n.some((s,c)=>s&&n.indexOf(s)!==c)?{duplicateId:!0}:null}onAddLanguage(){this.languages.push(this.createLanguageForm())}onRemoveLanguage(t){this.languages.removeAt(t)}onNoClick(){this.dialogRef.close()}onOkClick(){this.dialogRef.close({options:this.languagesForm.getRawValue().languages,default:{id:this.languagesForm.get("defaultId").value,name:this.languagesForm.get("defaultName").value}})}static \u0275fac=function(i){return new(i||r)(e.Y36(_r),e.Y36(co),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-language-type-property"]],decls:31,vars:27,consts:[[1,"container",3,"formGroup"],["mat-dialog-title","","mat-dialog-draggable","",1,"dialog-title"],[1,"toolbox"],["mat-icon-button","",3,"matTooltip","click"],["mat-dialog-content",""],[1,"block","mb5"],[1,"my-form-field","mt5","inbk"],["matInput","","formControlName","defaultId","maxlength","2","type","text",2,"width","80px",3,"placeholder"],[1,"my-form-field","mt5","ml10","inbk"],["matInput","","formControlName","defaultName","type","text",2,"width","200px",3,"placeholder"],["formArrayName","languages",4,"ngFor","ngForOf"],["mat-dialog-actions","",1,"dialog-action","mt10"],["mat-raised-button","",3,"click"],["mat-raised-button","","color","primary",3,"disabled","click"],["formArrayName","languages"],[1,"language-item",3,"formGroupName"],[1,"my-form-field","inbk"],["matInput","","formControlName","id","maxlength","2","type","text",2,"width","80px",3,"placeholder"],[1,"my-form-field","ml10","inbk"],["matInput","","formControlName","name","type","text",2,"width","200px",3,"placeholder"],["mat-icon-button","",1,"remove","inbk",3,"click"]],template:function(i,n){1&i&&(e.TgZ(0,"form",0)(1,"h1",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2)(5,"button",3),e.NdJ("click",function(){return n.onAddLanguage()}),e.ALo(6,"translate"),e.TgZ(7,"mat-icon"),e._uU(8,"add_circle_outline"),e.qZA()()(),e.TgZ(9,"div",4)(10,"div",5)(11,"div",6)(12,"span"),e._uU(13),e.ALo(14,"translate"),e.qZA(),e._UZ(15,"input",7),e.ALo(16,"translate"),e.qZA(),e.TgZ(17,"div",8)(18,"span"),e._uU(19),e.ALo(20,"translate"),e.qZA(),e._UZ(21,"input",9),e.ALo(22,"translate"),e.qZA()(),e.YNc(23,Lxe,17,13,"div",10),e.qZA(),e.TgZ(24,"div",11)(25,"button",12),e.NdJ("click",function(){return n.onNoClick()}),e._uU(26),e.ALo(27,"translate"),e.qZA(),e.TgZ(28,"button",13),e.NdJ("click",function(){return n.onOkClick()}),e._uU(29),e.ALo(30,"translate"),e.qZA()()()),2&i&&(e.Q6J("formGroup",n.languagesForm),e.xp6(2),e.Oqu(e.lcZ(3,11,"language.settings-title")),e.xp6(3),e.s9C("matTooltip",e.lcZ(6,13,"language.settings-add-tooltip")),e.xp6(8),e.hij("*",e.lcZ(14,15,"language.settings-default-id"),""),e.xp6(2),e.s9C("placeholder",e.lcZ(16,17,"language.settings-id-placeholder")),e.xp6(4),e.hij("*",e.lcZ(20,19,"language.settings-default-name"),""),e.xp6(2),e.s9C("placeholder",e.lcZ(22,21,"language.settings-name-placeholder")),e.xp6(2),e.Q6J("ngForOf",n.languages.controls),e.xp6(3),e.Oqu(e.lcZ(27,23,"dlg.cancel")),e.xp6(2),e.Q6J("disabled",n.languagesForm.invalid),e.xp6(1),e.Oqu(e.lcZ(30,25,"dlg.ok")))},dependencies:[l.sg,In,I,et,Xe,Xa,Sr,Ot,Aa,kn,Yn,Qr,Kr,Ir,Zn,qd,Cs,zr,Ni.X$],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%] .toolbox[_ngcontent-%COMP%]{float:right;line-height:44px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .toolbox[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%]{width:380px;min-height:220px;max-height:400px;overflow:auto;padding-bottom:7px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .language-item[_ngcontent-%COMP%]{gap:10px}[_nghost-%COMP%] .container[_ngcontent-%COMP%] .mat-dialog-content[_ngcontent-%COMP%] .remove[_ngcontent-%COMP%]{margin-left:20px}"]})}return r})();function Yxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-header-cell",21)(1,"button",22)(2,"mat-icon"),e._uU(3,"add"),e.qZA()(),e.TgZ(4,"mat-menu",23,24)(6,"button",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onAddText())}),e._uU(7),e.ALo(8,"translate"),e.qZA(),e.TgZ(9,"button",25),e.NdJ("click",function(){e.CHM(t);const n=e.oxw();return e.KtG(n.onEditLanguage())}),e._uU(10),e.ALo(11,"translate"),e.qZA()()()}if(2&r){const t=e.MAs(5);e.Q6J("ngClass","selectidthClass"),e.xp6(1),e.Q6J("matMenuTriggerFor",t),e.xp6(3),e.Q6J("overlapTrigger",!1),e.xp6(3),e.Oqu(e.lcZ(8,5,"texts.list-add-text")),e.xp6(3),e.Oqu(e.lcZ(11,7,"texts.list-edit-language"))}}function Nxe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell",21)(1,"button",26),e.NdJ("click",function(){const o=e.CHM(t).$implicit,s=e.oxw();return e.KtG(s.onEditText(o))}),e.TgZ(2,"mat-icon"),e._uU(3,"edit"),e.qZA()()()}2&r&&e.Q6J("ngClass","selectidthClass")}function Uxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",27),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.Udp("min-width",200,"px"),e.xp6(1),e.hij(" ",e.lcZ(2,3,"texts.list-id")," "))}function zxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("min-width",200,"px"),e.xp6(1),e.hij(" ",t.name," ")}}function Hxe(r,a){1&r&&(e.TgZ(0,"mat-header-cell",27),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&r&&(e.Udp("min-width",200,"px"),e.xp6(1),e.hij(" ",e.lcZ(2,3,"texts.list-group")," "))}function Gxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("min-width",200,"px"),e.xp6(1),e.hij(" ",t.group," ")}}function Zxe(r,a){if(1&r&&(e.ynx(0),e._uU(1),e.BQk()),2&r){const t=e.oxw(2);e.xp6(1),e.AsE("",t.defaultLanguage.id," (",t.defaultLanguage.name,")")}}function Jxe(r,a){1&r&&(e._uU(0),e.ALo(1,"translate")),2&r&&e.Oqu(e.lcZ(1,1,"texts.list-value"))}function jxe(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",27),e.YNc(1,Zxe,2,2,"ng-container",28),e.YNc(2,Jxe,2,3,"ng-template",null,29,e.W1O),e.qZA()),2&r){const t=e.MAs(3),i=e.oxw();e.Udp("min-width",200,"px"),e.xp6(1),e.Q6J("ngIf",i.defaultLanguage)("ngIfElse",t)}}function Vxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit;e.Udp("min-width",200,"px"),e.xp6(1),e.hij(" ",t.value," ")}}function Wxe(r,a){if(1&r&&(e.TgZ(0,"mat-header-cell",27),e._uU(1),e.qZA()),2&r){const t=e.oxw().$implicit;e.Gre("mat-column-lang-",t.id,""),e.Udp("min-width",200,"px"),e.xp6(1),e.AsE(" ",t.id," (",t.name,") ")}}function Kxe(r,a){if(1&r&&(e.TgZ(0,"mat-cell"),e._uU(1),e.qZA()),2&r){const t=a.$implicit,i=e.oxw().$implicit;e.Gre("mat-column-lang-",i.id,""),e.Udp("min-width",200,"px"),e.xp6(1),e.hij(" ",t.translations[i.id]||"-"," ")}}function qxe(r,a){1&r&&(e.ynx(0,30),e.YNc(1,Wxe,2,7,"mat-header-cell",31),e.YNc(2,Kxe,2,6,"mat-cell",32),e.BQk()),2&r&&e.Q6J("matColumnDef","lang-"+a.$implicit.id)}function Xxe(r,a){1&r&&e._UZ(0,"mat-header-cell")}function $xe(r,a){if(1&r){const t=e.EpF();e.TgZ(0,"mat-cell")(1,"button",26),e.NdJ("click",function(n){const s=e.CHM(t).$implicit,c=e.oxw();return n.stopPropagation(),e.KtG(c.onRemoveText(s))}),e.TgZ(2,"mat-icon"),e._uU(3,"clear"),e.qZA()()()}}function eBe(r,a){1&r&&e._UZ(0,"mat-header-row")}function tBe(r,a){1&r&&e._UZ(0,"mat-row",33)}let iBe=(()=>{class r{dialog;translateService;projectService;displayedColumns=["select","id","group","value","remove"];languages=[];defaultLanguage;dataSource=new Nn([]);selection=new xA(!0,[]);subscriptionLoad;table;sort;constructor(t,i,n){this.dialog=t,this.translateService=i,this.projectService=n}ngOnInit(){this.loadTexts(),this.subscriptionLoad=this.projectService.onLoadHmi.subscribe(t=>{this.loadTexts()})}ngAfterViewInit(){this.dataSource.sort=this.sort}ngOnDestroy(){try{this.subscriptionLoad&&this.subscriptionLoad.unsubscribe()}catch{}}onAddText(){this.editText()}onEditText(t){this.editText(t)}onRemoveText(t){this.dialog.open(qu,{position:{top:"60px"},data:{msg:this.translateService.instant("msg.texts-text-remove",{value:t.name})}}).afterClosed().subscribe(n=>{n&&(this.projectService.removeText(t),this.loadTexts())})}editText(t){this.dialog.open(Oxe,{position:{top:"60px"},disableClose:!0,data:{text:t}}).afterClosed().subscribe(n=>{n&&(this.projectService.setText(n),this.loadTexts())})}onEditLanguage(){this.dialog.open(Rxe,{position:{top:"60px"},disableClose:!0}).afterClosed().subscribe(i=>{i&&(this.projectService.setLanguages(i),this.loadTexts())})}loadTexts(){const t=this.projectService.getLanguages().options;this.defaultLanguage=this.projectService.getLanguages().default,this.languages=Array.isArray(t)?t:Object.values(t);const i=this.displayedColumns.indexOf("value"),n=this.displayedColumns.indexOf("remove");this.displayedColumns=[...this.displayedColumns.slice(0,i+1),...this.languages.map(s=>`lang-${s.id}`),...this.displayedColumns.slice(n)];const o=this.projectService.getTexts();o.forEach(s=>{s.translations||(s.translations={}),this.languages.forEach(c=>{c.id in s.translations||(s.translations[c.id]="")})}),this.dataSource.data=o}static \u0275fac=function(i){return new(i||r)(e.Y36(xo),e.Y36(Ni.sK),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-language-text-list"]],viewQuery:function(i,n){if(1&i&&(e.Gf(Qs,5),e.Gf(As,5)),2&i){let o;e.iGM(o=e.CRH())&&(n.table=o.first),e.iGM(o=e.CRH())&&(n.sort=o.first)}},decls:30,vars:7,consts:[[1,"header-panel"],[1,"work-panel"],[1,"container"],["matSort","",3,"dataSource"],["table",""],["matColumnDef","select"],[3,"ngClass",4,"matHeaderCellDef"],[3,"ngClass",4,"matCellDef"],["matColumnDef","id"],["mat-sort-header","",3,"min-width",4,"matHeaderCellDef"],[3,"min-width",4,"matCellDef"],["matColumnDef","group"],["matColumnDef","value"],[3,"matColumnDef",4,"ngFor","ngForOf"],["matColumnDef","remove"],[4,"matHeaderCellDef"],[4,"matCellDef"],[4,"matHeaderRowDef"],["class","my-mat-row",4,"matRowDef","matRowDefColumns"],["mat-fab","","color","primary",1,"fab-add",3,"click"],[1,""],[3,"ngClass"],["mat-icon-button","",1,"remove",3,"matMenuTriggerFor"],[3,"overlapTrigger"],["addMenu",""],["mat-menu-item","",3,"click"],["mat-icon-button","",1,"remove",3,"click"],["mat-sort-header",""],[4,"ngIf","ngIfElse"],["defaultText",""],[3,"matColumnDef"],["mat-sort-header","",3,"class","min-width",4,"matHeaderCellDef"],[3,"class","min-width",4,"matCellDef"],[1,"my-mat-row"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0)(1,"mat-icon"),e._uU(2,"language"),e.qZA(),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.TgZ(5,"div",1)(6,"div",2)(7,"mat-table",3,4),e.ynx(9,5),e.YNc(10,Yxe,12,9,"mat-header-cell",6),e.YNc(11,Nxe,4,1,"mat-cell",7),e.BQk(),e.ynx(12,8),e.YNc(13,Uxe,3,5,"mat-header-cell",9),e.YNc(14,zxe,2,3,"mat-cell",10),e.BQk(),e.ynx(15,11),e.YNc(16,Hxe,3,5,"mat-header-cell",9),e.YNc(17,Gxe,2,3,"mat-cell",10),e.BQk(),e.ynx(18,12),e.YNc(19,jxe,4,4,"mat-header-cell",9),e.YNc(20,Vxe,2,3,"mat-cell",10),e.BQk(),e.YNc(21,qxe,3,1,"ng-container",13),e.ynx(22,14),e.YNc(23,Xxe,1,0,"mat-header-cell",15),e.YNc(24,$xe,4,0,"mat-cell",16),e.BQk(),e.YNc(25,eBe,1,0,"mat-header-row",17),e.YNc(26,tBe,1,0,"mat-row",18),e.qZA()()(),e.TgZ(27,"button",19),e.NdJ("click",function(){return n.onAddText()}),e.TgZ(28,"mat-icon",20),e._uU(29,"add"),e.qZA()()),2&i&&(e.xp6(3),e.hij(" ",e.lcZ(4,5,"texts.list-title"),"\n"),e.xp6(4),e.Q6J("dataSource",n.dataSource),e.xp6(14),e.Q6J("ngForOf",n.languages),e.xp6(4),e.Q6J("matHeaderRowDef",n.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",n.displayedColumns))},dependencies:[l.mk,l.sg,l.O5,Yn,Zn,zc,Hc,cc,As,YA,Qs,MA,ee,u,oA,Be,m,F,Ze,Wt,Ni.X$],styles:["[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:36px;width:100%;text-align:center;line-height:36px;border-bottom:1px solid var(--headerBorder)}[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}[_nghost-%COMP%] .work-panel[_ngcontent-%COMP%]{position:absolute;inset:37px 0 0;background-color:var(--workPanelBackground)}[_nghost-%COMP%] .container[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .mat-table[_ngcontent-%COMP%]{width:100%;height:100%;table-layout:fixed;overflow:auto}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{overflow:visible;flex:0 0 80px}[_nghost-%COMP%] .mat-column-id[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] .mat-column-group[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] .mat-column-value[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-1[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-1[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-2[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-2[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-3[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-3[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-4[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-4[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-5[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-5[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-6[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-6[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-7[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-7[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-8[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-8[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-9[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-9[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-10[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-10[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-11[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-11[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-12[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-12[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-13[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-13[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-14[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-14[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-15[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-15[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-16[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-16[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-17[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-17[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-18[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-18[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-19[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-19[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] mat-header-cell.mat-column-lang-20[_ngcontent-%COMP%], [_nghost-%COMP%] mat-cell.mat-column-lang-20[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%] .mat-column-remove[_ngcontent-%COMP%]{flex:1 1 60px;padding-right:0!important}[_nghost-%COMP%] .mat-cell[_ngcontent-%COMP%]{font-size:13px;overflow:visible}[_nghost-%COMP%] .mat-header-row[_ngcontent-%COMP%]{top:0;position:sticky;z-index:1}[_nghost-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{font-size:15px;overflow:visible}"]})}return r})(),nBe=(()=>{class r{activeroute;sanitizer;projectService;destroy$=new An.x;urlSafe;_link;set link(t){this._link=t,this.loadLink(t)}constructor(t,i,n){this.activeroute=t,this.sanitizer=i,this.projectService=n}ngOnInit(){this._link?this.urlSafe=this.sanitizer.bypassSecurityTrustResourceUrl(this._link):this.activeroute.params.pipe((0,On.R)(this.destroy$)).subscribe(t=>{this._link=t.url||"/nodered/",this.urlSafe=this.sanitizer.bypassSecurityTrustResourceUrl(this._link)})}ngOnDestroy(){this.projectService.saveProject(wr.JV.Current),this.destroy$.next(null),this.destroy$.complete()}loadLink(t){if(this._link=t,this._link){let i=this._link;this._link.startsWith("/")?i=window.location.origin+this._link:!this._link.startsWith("http://")&&!this._link.startsWith("https://")&&(i=window.location.origin+"/"+this._link),this.urlSafe=this.sanitizer.bypassSecurityTrustResourceUrl(i)}}static \u0275fac=function(i){return new(i||r)(e.Y36(Cp),e.Y36(T.H7),e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-node-red-flows"]],inputs:{link:"link"},decls:6,vars:4,consts:[[1,"header-panel"],["svgIcon","nodered-flows",2,"width","40px"],[1,"work-panel"],["width","100%","height","100%","frameBorder","0","sandbox","allow-forms allow-scripts allow-modals allow-same-origin",3,"src"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e._UZ(1,"mat-icon",1),e._uU(2),e.ALo(3,"translate"),e.qZA(),e.TgZ(4,"div",2),e._UZ(5,"iframe",3),e.qZA()),2&i&&(e.xp6(2),e.hij(" ",e.lcZ(3,2,"dlg.setup-node-red-flows"),"\n"),e.xp6(3),e.Q6J("src",n.urlSafe,e.uOi))},dependencies:[Zn,Ni.X$],styles:["[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%]{background-color:var(--headerBackground);color:var(--headerColor);position:absolute;top:0;left:0;height:40px;width:100%;text-align:center;line-height:40px;border-bottom:1px solid var(--headerBorder)}[_nghost-%COMP%] .header-panel[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:text-top}[_nghost-%COMP%] .work-panel[_ngcontent-%COMP%]{position:absolute;inset:40px 0 0}"]})}return r})();const oBe=Dj.forRoot([{path:"",component:ZP},{path:"home",component:ZP},{path:"home/:viewName",component:ZP},{path:"editor",component:Q0e,canActivate:[UA]},{path:"lab",component:Xye,canActivate:[UA]},{path:"device",component:EN,canActivate:[UA]},{path:Tt.eC,component:EN,canActivate:[UA]},{path:"users",component:pwe,canActivate:[UA]},{path:"userRoles",component:_xe,canActivate:[UA]},{path:"alarms",component:UP,canActivate:[UA]},{path:"messages",component:BCe,canActivate:[UA]},{path:"notifications",component:qCe,canActivate:[UA]},{path:"scripts",component:Zbe,canActivate:[UA]},{path:"reports",component:rxe,canActivate:[UA]},{path:"language",component:iBe,canActivate:[UA]},{path:"logs",component:MN,canActivate:[UA]},{path:"events",component:MN,canActivate:[UA]},{path:"view",component:mwe},{path:"mapsLocations",component:kxe,canActivate:[UA]},{path:"flows",component:nBe,canActivate:[UA]},{path:"**",redirectTo:""}],{});class aBe{items={};count=0;ContainsKey(a){return this.items.hasOwnProperty(a)}Count(){return this.count}Add(a,t){this.items.hasOwnProperty(a)||this.count++,this.items[a]=t}Remove(a){var t=this.items[a];return delete this.items[a],this.count--,t}Item(a){return this.items[a]}Keys(){var a=[];for(var t in this.items)this.items.hasOwnProperty(t)&&a.push(t);return a}Values(){var a=[];for(var t in this.items)this.items.hasOwnProperty(t)&&a.push(this.items[t]);return a}}let sBe=(()=>{class r{_cache=new Map;set(t,i){this._cache.set(t,i)}get(t){return this._cache.get(t)}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})(),lBe=(()=>{class r{static \u0275fac=function(i){return new(i||r)};static \u0275mod=e.oAB({type:r});static \u0275inj=e.cJS({imports:[l.ez,gf,n0,Y_,gf,Y_]})}return r})(),dBe=(()=>{class r{injector;constructor(t){this.injector=t}intercept(t,i){if(t.headers.has("Skip-Auth")){const o=t.headers.delete("Skip-Auth"),s=t.clone({headers:o});return i.handle(s)}const n=this.injector.get(xg.e);if(n.getUserToken){const o=n.getUserToken();if(null!=o){const s=n.getUser();s&&(t=t.clone({headers:t.headers.set("x-auth-user",JSON.stringify({user:s.username,groups:s.groups}))})),t=t.clone({headers:t.headers.set("x-access-token",o)})}}return i.handle(t).pipe(Zr(o=>{},o=>{o instanceof Ia.UA&&(401===o.status||403===o.status)&&(n.signOut(),this.injector.get(wr.Y4).reload())}))}static \u0275fac=function(i){return new(i||r)(e.LFG(e.zs3))};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac})}return r})();const uBe=[{provide:Ia.TP,useClass:dBe,multi:!0}];let kN=(()=>{class r{static \u0275fac=function(i){return new(i||r)};static \u0275mod=e.oAB({type:r});static \u0275inj=e.cJS({imports:[l.ez,Bd,xd]})}return r})(),hBe=(()=>{class r{static \u0275fac=function(i){return new(i||r)};static \u0275mod=e.oAB({type:r});static \u0275inj=e.cJS({imports:[l.ez,kN,Lf,n0,kN]})}return r})();function QN(r,a){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);a&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function Mc(r){for(var a=1;a"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var n,i=qo(r);if(a){var o=qo(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return XP(this,n)}}function sa(){return sa=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(a,t,i){var n=function gBe(r,a){for(;!Object.prototype.hasOwnProperty.call(r,a)&&null!==(r=qo(r)););return r}(a,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?a:i):o.value}},sa.apply(this,arguments)}function Gh(r){return function fBe(r){if(Array.isArray(r))return $P(r)}(r)||function mBe(r){if(typeof Symbol<"u"&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function _Be(r,a){if(r){if("string"==typeof r)return $P(r,a);var t=Object.prototype.toString.call(r).slice(8,-1);if("Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t)return Array.from(r);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return $P(r,a)}}(r)||function vBe(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $P(r,a){(null==a||a>r.length)&&(a=r.length);for(var t=0,i=new Array(a);t-1,e3={info:"color: #525252; background-color: #90ee90;",error:"color: #525252; background-color: red;",warn:"color: #525252; background-color: yellow; "},t3="%c[xgplayer]",ls={config:{debug:wBe?3:0},logInfo:function(a){for(var t,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o=3&&(t=console).log.apply(t,[t3,e3.info,a].concat(n))},logWarn:function(a){for(var t,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o=1&&(t=console).warn.apply(t,[t3,e3.warn,a].concat(n))},logError:function(a){var t;if(!(this.config.debug<1)){for(var i=this.config.debug>=2?"trace":"error",n=arguments.length,o=new Array(n>1?n-1:0),s=1;s0&&void 0!==arguments[0]?arguments[0]:"div",a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",n=document.createElement(r);return n.className=i,n.innerHTML=a,Object.keys(t).forEach(function(o){var s=o,c=t[o];"video"===r||"audio"===r||"live-video"===r?c&&n.setAttribute(s,c):n.setAttribute(s,c)}),n},ti.createDomFromHtml=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{var i=document.createElement("div");i.innerHTML=r;var n=i.children;return i=null,n.length>0?(n=n[0],t&&ti.addClass(n,t),a&&Object.keys(a).forEach(function(o){n.setAttribute(o,a[o])}),n):null}catch(o){return ls.logError("util.createDomFromHtml",o),null}},ti.hasClass=function(r,a){if(!r||!a)return!1;try{return Array.prototype.some.call(r.classList,function(i){return i===a})}catch{var t=r.className&&"object"===Pd(r.className)?r.getAttribute("class"):r.className;return t&&!!t.match(new RegExp("(\\s|^)"+a+"(\\s|$)"))}},ti.addClass=function(r,a){if(r&&a)try{a.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach(function(t){t&&r.classList.add(t)})}catch{ti.hasClass(r,a)||(r.className&&"object"===Pd(r.className)?r.setAttribute("class",r.getAttribute("class")+" "+a):r.className+=" "+a)}},ti.removeClass=function(r,a){if(r&&a)try{a.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach(function(t){t&&r.classList.remove(t)})}catch{ti.hasClass(r,a)&&a.split(/\s+/g).forEach(function(i){var n=new RegExp("(\\s|^)"+i+"(\\s|$)");r.className&&"object"===Pd(r.className)?r.setAttribute("class",r.getAttribute("class").replace(n," ")):r.className=r.className.replace(n," ")})}},ti.toggleClass=function(r,a){r&&a.split(/\s+/g).forEach(function(t){ti.hasClass(r,t)?ti.removeClass(r,t):ti.addClass(r,t)})},ti.classNames=function(){for(var r=arguments,a=[],t=function(o){"String"===ti.typeOf(r[o])?a.push(r[o]):"Object"===ti.typeOf(r[o])&&Object.keys(r[o]).map(function(s){r[o][s]&&a.push(s)})},i=0;i0&&void 0!==arguments[0]?arguments[0]:document,a=arguments.length>1?arguments[1]:void 0;try{t=r.querySelector(a)}catch(i){ls.logError("util.findDom",i),0===a.indexOf("#")&&(t=r.getElementById(a.slice(1)))}return t},ti.getCss=function(r,a){return r.currentStyle?r.currentStyle[a]:document.defaultView.getComputedStyle(r,!1)[a]},ti.padStart=function(r,a,t){for(var i=String(t),n=a>>0,o=Math.ceil(n/i.length),s=[],c=String(r);o--;)s.push(i);return s.join("").substring(0,n-c.length)+c},ti.format=function(r){if(window.isNaN(r))return"";r=Math.round(r);var a=ti.padStart(Math.floor(r/3600),2,0),t=ti.padStart(Math.floor((r-3600*a)/60),2,0),i=ti.padStart(Math.floor(r-3600*a-60*t),2,0);return("00"===a?[t,i]:[a,t,i]).join(":")},ti.event=function(r){if(r.touches){var a=r.touches[0]||r.changedTouches[0];r.clientX=a.clientX||0,r.clientY=a.clientY||0,r.offsetX=a.pageX-a.target.offsetLeft,r.offsetY=a.pageY-a.target.offsetTop}r._target=r.target||r.srcElement},ti.typeOf=function(r){return Object.prototype.toString.call(r).match(/([^\s.*]+)(?=]$)/g)[0]},ti.deepCopy=function(r,a){if("Object"===ti.typeOf(a)&&"Object"===ti.typeOf(r))return Object.keys(a).forEach(function(t){"Object"!==ti.typeOf(a[t])||a[t]instanceof Node?r[t]="Array"===ti.typeOf(a[t])&&"Array"===ti.typeOf(r[t])?r[t].concat(a[t]):a[t]:void 0===r[t]||void 0===r[t]?r[t]=a[t]:ti.deepCopy(r[t],a[t])}),r},ti.deepMerge=function(r,a){return Object.keys(a).map(function(t){var i;"Array"===ti.typeOf(a[t])&&"Array"===ti.typeOf(r[t])?"Array"===ti.typeOf(r[t])&&(i=r[t]).push.apply(i,Gh(a[t])):ti.typeOf(r[t])!==ti.typeOf(a[t])||null===r[t]||"Object"!==ti.typeOf(r[t])||a[t]instanceof window.Node?null!==a[t]&&(r[t]=a[t]):ti.deepMerge(r[t],a[t])}),r},ti.getBgImage=function(r){var a=(r.currentStyle||window.getComputedStyle(r,null)).backgroundImage;if(!a||"none"===a)return"";var t=document.createElement("a");return t.href=a.replace(/url\("|"\)/g,""),t.href},ti.copyDom=function(r){if(r&&1===r.nodeType){var a=document.createElement(r.tagName);return Array.prototype.forEach.call(r.attributes,function(t){a.setAttribute(t.name,t.value)}),r.innerHTML&&(a.innerHTML=r.innerHTML),a}return""},ti.setInterval=function(r,a,t,i){r._interval[a]||(r._interval[a]=window.setInterval(t.bind(r),i))},ti.clearInterval=function(r,a){clearInterval(r._interval[a]),r._interval[a]=null},ti.setTimeout=function(r,a,t){r._timers||(r._timers=[]);var i=setTimeout(function(){a(),ti.clearTimeout(r,i)},t);return r._timers.push(i),i},ti.clearTimeout=function(r,a){var t=r._timers;if("Array"===ti.typeOf(t)){for(var i=0;i-1&&i.indexOf(g)>-1&&(o=parseFloat(t.slice(0,t.indexOf(g)).trim()),s=parseFloat(i.slice(0,i.indexOf(g)).trim()),c=g,1))}),n.style.width="".concat(o).concat(c),n.style.height="".concat(s).concat(c),n.style.backgroundSize="".concat(o).concat(c," ").concat(s).concat(c),n.style.margin="start"===r?"-".concat(s/2).concat(c," auto auto -").concat(o/2).concat(c):"auto 5px auto 5px"),n},ti.Hex2RGBA=function(r,a){var t=[];if(/^\#[0-9A-F]{3}$/i.test(r)){var i="#";r.replace(/[0-9A-F]/gi,function(n){i+=n+n}),r=i}return/^#[0-9A-F]{6}$/i.test(r)?(r.replace(/[0-9A-F]{2}/gi,function(n){t.push(parseInt(n,16))}),"rgba(".concat(t.join(","),", ").concat(a,")")):"rgba(255, 255, 255, 0.1)"},ti.getFullScreenEl=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},ti.checkIsFunction=function(r){return r&&"function"==typeof r},ti.checkIsObject=function(r){return null!==r&&"object"===Pd(r)},ti.hide=function(r){r.style.display="none"},ti.show=function(r,a){r.style.display=a||"block"},ti.isUndefined=function(r){if(typeof r>"u"||null===r)return!0},ti.isNotNull=function(r){return null!=r},ti.setStyleFromCsstext=function(r,a){a&&("String"===ti.typeOf(a)?a.replace(/\s+/g,"").split(";").map(function(i){if(i){var n=i.split(":");n.length>1&&(r.style[n[0]]=n[1])}}):Object.keys(a).map(function(i){r.style[i]=a[i]}))},ti.filterStyleFromText=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["width","height","top","left","bottom","right","position","z-index","padding","margin","transform"],t=r.style.cssText;if(!t)return{};var i=t.replace(/\s+/g,"").split(";"),n={},o={};return i.map(function(s){if(s){var c=s.split(":");c.length>1&&(function xBe(r,a){for(var t=0,i=a.length;t-1)return!0;return!1}(c[0],a)?n[c[0]]=c[1]:o[c[0]]=c[1])}}),r.setAttribute("style",""),Object.keys(o).map(function(s){r.style[s]=o[s]}),n},ti.getStyleFromCsstext=function(r){var a=r.style.cssText;if(!a)return{};var t=a.replace(/\s+/g,"").split(";"),i={};return t.map(function(n){if(n){var o=n.split(":");o.length>1&&(i[o[0]]=o[1])}}),i},ti.preloadImg=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};if(r){var i=new window.Image;i.onload=function(n){i=null,a&&a(n)},i.onerror=function(n){i=null,t&&t(n)},i.src=r}},ti.stopPropagation=function(r){r&&r.stopPropagation()},ti.scrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},ti.scrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},ti.checkTouchSupport=function(){return"ontouchstart"in window},ti.getBuffered2=function(r){for(var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5,t=[],i=0;ic&&(n[s-1].end=t[o].end):n.push(t[o])}else n.push(t[o])}else n=t;return new bBe(n)},ti.getEventPos=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return r.touches&&r.touches.length>0&&(r=r.touches[0]),{x:r.x/a,y:r.y/a,clientX:r.clientX/a,clientY:r.clientY/a,offsetX:r.offsetX/a,offsetY:r.offsetY/a,pageX:r.pageX/a,pageY:r.pageY/a}},ti.requestAnimationFrame=function(r){var a=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;if(a)return a(r)},ti.getHostFromUrl=function(r){if("String"!==ti.typeOf(r))return"";var a=r.split("/"),t="";return a.length>3&&a[2]&&(t=a[2]),t},ti.cancelAnimationFrame=function(r){var a=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame;a&&a(r)},ti.isMSE=function(r){return!!(r&&r instanceof HTMLMediaElement)&&(/^blob/.test(r.currentSrc)||/^blob/.test(r.src))},ti.isBlob=function(r){return"string"==typeof r&&/^blob/.test(r)},ti.generateSessionId=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=(new Date).getTime();try{r=parseInt(r)}catch{r=0}return a+=r,window.performance&&"function"==typeof window.performance.now&&(a+=parseInt(window.performance.now())),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){var n=(a+16*Math.random())%16|0;return a=Math.floor(a/16),("x"===i?n:3&n|8).toString(16)})},ti.createEvent=function(r){var a;return"function"==typeof window.Event?a=new Event(r):(a=document.createEvent("Event")).initEvent(r,!0,!0),a},ti.adjustTimeByDuration=function(r,a,t){return a&&r&&(r>a||t&&r0&&void 0!==arguments[0]?arguments[0]:{x:0,y:0,scale:1,rotate:0},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t={scale:"".concat(r.scale||1),translate:"".concat(r.x||0,"%, ").concat(r.y||0,"%"),rotate:"".concat(r.rotate||0,"deg")};return Object.keys(t).forEach(function(n){var o=new RegExp("".concat(n,"\\([^\\(]+\\)"),"g"),s="".concat(n,"(").concat(t[n],")");o.test(a)?(o.lastIndex=-1,a=a.replace(o,s)):a+="".concat(s," ")}),a},ti.convertDeg=function(r){return Math.abs(r)<=1?360*r:r%360},ti.getIndexByTime=function(r,a){var t=a.length,i=-1;if(t<1)return i;if(r<=a[0].end||t<2)i=0;else if(r>a[t-1].end)i=t-1;else for(var n=1;na[n-1].end&&r<=a[n].end){i=n;break}return i},ti.getOffsetCurrentTime=function(r,a){var i,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if((i=t>=0&&t=s&&r<=c?r-o.offset:r>c&&i>=a.length-1?c:-1},ti.getCurrentTimeByOffset=function(r,a){var t=-1;if(!a||a.length<0)return r;for(var i=0;i"u")return"";var r=navigator.userAgent.toLowerCase(),a={ie:/rv:([\d.]+)\) like gecko/,firefox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(a).filter(function(t){return a[t].test(r)}))[0]},get os(){if(typeof navigator>"u")return{};var r=navigator.userAgent,a=/(?:Windows Phone)/.test(r),t=/(?:SymbianOS)/.test(r)||a,i=/(?:Android)/.test(r),n=/(?:Firefox)/.test(r),o=/(?:iPad|PlayBook)/.test(r)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,s=o||i&&!/(?:Mobile)/.test(r)||n&&/(?:Tablet)/.test(r),c=/(?:iPhone)/.test(r)&&!s;return{isTablet:s,isPhone:c,isIpad:o,isIos:c||o,isAndroid:i,isPc:!(c||i||t||s),isSymbian:t,isWindowsPhone:a,isFireFox:n}},get osVersion(){if(typeof navigator>"u")return 0;var r=navigator.userAgent,a="",t=(a=/(?:iPhone)|(?:iPad|PlayBook)/.test(r)?RN_ios:RN_android)?a.exec(r):[];if(t&&t.length>=3){var i=t[2].split(".");return i.length>0?parseInt(i[0]):0}return 0},get isWeixin(){return!(typeof navigator>"u")&&!!/(micromessenger)\/([\d.]+)/.exec(navigator.userAgent.toLocaleLowerCase())},isSupportMP4:function(){var a={isSupport:!1,mime:""};if(typeof document>"u")return a;if(this.supportResult)return this.supportResult;var t=document.createElement("video");return"function"==typeof t.canPlayType&&TBe.map(function(i){"probably"===t.canPlayType('video/mp4; codecs="'.concat(i,'"'))&&(a.isSupport=!0,a.mime+="||".concat(i))}),this.supportResult=a,t=null,a},isMSESupport:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';if(typeof MediaSource>"u"||!MediaSource)return!1;try{return MediaSource.isTypeSupported(a)}catch(t){return this._logger.error(a,t),!1}},isHevcSupported:function(){return!(typeof MediaSource>"u"||!MediaSource.isTypeSupported)&&(MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"'))},probeConfigSupported:function(a){var t={supported:!1,smooth:!1,powerEfficient:!1};if(!a||typeof navigator>"u")return Promise.resolve(t);if(navigator.mediaCapabilities&&navigator.mediaCapabilities.decodingInfo)return navigator.mediaCapabilities.decodingInfo(a);var i=a.video||{},n=a.audio||{};try{var o=MediaSource.isTypeSupported(i.contentType),s=MediaSource.isTypeSupported(n.contentType);return Promise.resolve({supported:o&&s,smooth:!1,powerEfficient:!1})}catch{return Promise.resolve(t)}}},n3="3.0.13",YN={1:"media",2:"media",3:"media",4:"media",5:"media",6:"media"},NN={1:5101,2:5102,3:5103,4:5104,5:5105,6:5106},kb=po(function r(a){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{errorType:"",errorCode:0,errorMessage:"",originError:"",ext:{},mediaError:null};ho(this,r);var i=a&&a.i18n?a.i18n.ERROR_TYPES:null;if(a.media){var n=t.mediaError?t.mediaError:a.media.error||{},g=a.src,B=a.currentSrc,O=a.media,$e=t.errorCode||n.code;NN[$e]&&($e=NN[$e]);var nt={playerVersion:n3,currentTime:a.currentTime,duration:a.duration,ended:a.ended,readyState:O.readyState,networkState:O.networkState,src:g||B,errorType:t.errorType,errorCode:$e,message:t.errorMessage||n.message,mediaError:n,originError:t.originError?t.originError.stack:"",host:ti.getHostFromUrl(g||B)};return t.ext&&Object.keys(t.ext).map(function(Di){nt[Di]=t.ext[Di]}),nt}if(arguments.length>1){for(var Ft={playerVersion:n3,domain:document.domain},ei=["errorType","currentTime","duration","networkState","readyState","src","currentSrc","ended","errd","errorCode","mediaError"],pi=0;pi0&&void 0!==arguments[0]?arguments[0]:this.media;this._evHandlers||(this._evHandlers=XN.map(function(s){var c="on".concat(s.charAt(0).toUpperCase()).concat(s.slice(1));return"function"==typeof n[c]&&n.on(s,n[c]),Hn({},s,function NBe(r,a){return function(t,i){var n={player:a,eventName:r,originalEvent:t,detail:t.detail||{},timeStamp:t.timeStamp,currentTime:a.currentTime,duration:a.duration,paused:a.paused,ended:a.ended,isInternalOp:!!a._internalOp[t.type],muted:a.muted,volume:a.volume,host:ti.getHostFromUrl(a.currentSrc),vtype:a.vtype};if(a.removeInnerOP(t.type),"timeupdate"===r&&(a._currentTime=a.media&&a.media.currentTime),"ratechange"===r){var o=a.media?a.media.playbackRate:0;if(o&&a._rate===o)return;a._rate=a.media&&a.media.playbackRate}if("durationchange"===r&&(a._duration=a.media.duration),"volumechange"===r&&(n.isMutedChange=a._lastMuted!==a.muted,a._lastMuted=a.muted),"error"===r&&(n.error=i||a.video.error),a.mediaEventMiddleware[r]){var s=p3.bind(a,r,n);try{a.mediaEventMiddleware[r].call(a,n,s)}catch(c){throw p3.call(a,r,n),c}}else p3.call(a,r,n)}}(s,n))})),this._evHandlers.forEach(function(s){var c=Object.keys(s)[0];o.addEventListener(c,s[c],!1)})}},{key:"detachVideoEvents",value:function(){var n=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.media;this._evHandlers.forEach(function(s){var c=Object.keys(s)[0];o.removeEventListener(c,s[c],!1)}),this._evHandlers.forEach(function(s){var c=Object.keys(s)[0],g="on".concat(c.charAt(0).toUpperCase()).concat(c.slice(1));"function"==typeof n[g]&&n.off(c,n[g])}),this._evHandlers=null}},{key:"_attachSourceEvents",value:function(n,o){var s=this;n.removeAttribute("src"),n.load(),o.forEach(function(ne,we){s.media.appendChild(ti.createDom("source","",{src:"".concat(ne.src),type:"".concat(ne.type||""),"data-index":we+1}))});var c=n.children;if(c){this._videoSourceCount=c.length,this._videoSourceIndex=c.length,this._vLoadeddata=function(ne){s.emit(qN,{src:ne.target.currentSrc,host:ti.getHostFromUrl(ne.target.currentSrc)})};for(var g=null,B=0;B=s._videoSourceCount){var $e={code:4,message:"sources_load_error"};g?g.error(ne,$e):s.errorHandler("error",$e)}s.emit(KN,new kb(s,{errorType:YN[4],errorCode:4,errorMessage:"sources_load_error",mediaError:{code:4,message:"sources_load_error"},src:ne.target.src}))});for(var O=0;O0;)n.removeChild(o[0]);this._vLoadeddata&&n.removeEventListener("loadeddata",this._vLoadeddata)}}},{key:"errorHandler",value:function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this.media&&(this.media.error||o)){var s=this.media.error||o,c=s.code?YN[s.code]:"other";this.media.currentSrc||(s={code:6,message:"empty_src"}),this.emit(n,new kb(this,{errorType:c,errorCode:s.code,errorMessage:s.message||"",mediaError:s}))}}},{key:"destroy",value:function(){for(var n in this.media&&(this.media.pause&&(this.media.pause(),this.media.muted=!0),this.media.removeAttribute("src"),this.media.load()),this._currentTime=0,this._duration=0,this.mediaConfig=null,this._interval)Object.prototype.hasOwnProperty.call(this._interval,n)&&(clearInterval(this._interval[n]),this._interval[n]=null);this.detachVideoEvents(),this.media=null,this.mediaEventMiddleware={},this.removeAllListeners()}},{key:"video",get:function(){return this.media},set:function(n){this.media=n}},{key:"play",value:function(){return this.media?this.media.play():null}},{key:"pause",value:function(){this.media&&this.media.pause()}},{key:"load",value:function(){this.media&&this.media.load()}},{key:"canPlayType",value:function(n){return!!this.media&&this.media.canPlayType(n)}},{key:"getBufferedRange",value:function(n){var o=[0,0];if(!this.media)return o;n||(n=this.media.buffered);var s=this.media.currentTime;if(n)for(var c=0,g=n.length;c=this.currentTime)return{start:o.start(s),end:o.end(s)};return n}},{key:"crossOrigin",get:function(){return this.media?this.media.crossOrigin:""},set:function(n){this.media&&(this.media.crossOrigin=n)}},{key:"currentSrc",get:function(){return this.media?this.media.currentSrc:""},set:function(n){this.media&&(this.media.currentSrc=n)}},{key:"currentTime",get:function(){return this.media?void 0!==this.media.currentTime?this.media.currentTime:this._currentTime:0},set:function(n){this.media&&(this.media.currentTime=n)}},{key:"defaultMuted",get:function(){return!!this.media&&this.media.defaultMuted},set:function(n){this.media&&(this.media.defaultMuted=n)}},{key:"duration",get:function(){return this._duration}},{key:"ended",get:function(){return!!this.media&&this.media.ended}},{key:"error",get:function(){return this.media.error}},{key:"errorNote",get:function(){return this.media.error?["MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED"][this.media.error.code-1]:""}},{key:"loop",get:function(){return!!this.media&&this.media.loop},set:function(n){this.media&&(this.media.loop=n)}},{key:"muted",get:function(){return!!this.media&&this.media.muted},set:function(n){!this.media||this.media.muted===n||(this._lastMuted=this.media.muted,this.media.muted=n)}},{key:"networkState",get:function(){return this.media.networkState}},{key:"paused",get:function(){return!this.media||this.media.paused}},{key:"playbackRate",get:function(){return this.media?this.media.playbackRate:0},set:function(n){!this.media||n===1/0||(this.media.defaultPlaybackRate=n,this.media.playbackRate=n)}},{key:"played",get:function(){return this.media?this.media.played:null}},{key:"preload",get:function(){return!!this.media&&this.media.preload},set:function(n){this.media&&(this.media.preload=n)}},{key:"readyState",get:function(){return this.media.readyState}},{key:"seekable",get:function(){return!!this.media&&this.media.seekable}},{key:"seeking",get:function(){return!!this.media&&this.media.seeking}},{key:"src",get:function(){return this.media?this.media.src:""},set:function(n){if(this.media){if(this.emit(Pb,n),this.emit(Sb),this._currentTime=0,this._duration=0,ti.isMSE(this.media))return void this.onWaiting();this._detachSourceEvents(this.media),"Array"===ti.typeOf(n)?this._attachSourceEvents(this.media,n):n?this.media.src=n:this.media.removeAttribute("src"),this.load()}}},{key:"volume",get:function(){return this.media?this.media.volume:0},set:function(n){n===1/0||!this.media||(this.media.volume=n)}},{key:"addInnerOP",value:function(n){this._internalOp[n]=!0}},{key:"removeInnerOP",value:function(n){delete this._internalOp[n]}},{key:"emit",value:function(n,o){for(var s,c=arguments.length,g=new Array(c>2?c-2:0),B=2;B2?c-2:0),B=2;B2?c-2:0),B=2;B2?c-2:0),B=2;B0&&void 0!==arguments[0]?arguments[0]:{name:"xgplayer",version:1,db:null,ojstore:{name:"xg-m4a",keypath:"vid"}};ho(this,r),this.indexedDB=window.indexedDB||window.webkitindexedDB,this.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange,this.myDB=a}return po(r,[{key:"openDB",value:function(t){var i=this,n=this,s=n.indexedDB.open(n.myDB.name,this.myDB.version||1);s.onerror=function(c){},s.onsuccess=function(c){i.myDB.db=c.target.result,t.call(n)},s.onupgradeneeded=function(c){var g=c.target.result;g.objectStoreNames.contains(n.myDB.ojstore.name)||g.createObjectStore(n.myDB.ojstore.name,{keyPath:n.myDB.ojstore.keypath})}}},{key:"deletedb",value:function(){this.indexedDB.deleteDatabase(this.myDB.name)}},{key:"closeDB",value:function(){this.myDB.db.close()}},{key:"addData",value:function(t,i){for(var o,n=this.myDB.db.transaction(t,"readwrite").objectStore(t),s=0;s3?i-3:0),o=3;o2&&void 0!==arguments[2]?arguments[2]:{pre:null,next:null};return this.__hooks||(this.__hooks={}),!this.__hooks[r]&&(this.__hooks[r]=null),function(){var i=arguments,n=this;if(t.pre)try{var o;(o=t.pre).call.apply(o,[this].concat(Array.prototype.slice.call(arguments)))}catch(g){throw g.message="[pluginName: ".concat(this.pluginName,":").concat(r,":pre error] >> ").concat(g.message),g}if(this.__hooks&&this.__hooks[r])try{var s,c=(s=this.__hooks[r]).call.apply(s,[this,this].concat(Array.prototype.slice.call(arguments)));c?c.then?c.then(function(g){!1!==g&&TD.apply(void 0,[n,a,t.next].concat(Gh(i)))}).catch(function(g){throw g}):TD.apply(void 0,[this,a,t.next].concat(Array.prototype.slice.call(arguments))):void 0===c&&TD.apply(void 0,[this,a,t.next].concat(Array.prototype.slice.call(arguments)))}catch(g){throw g.message="[pluginName: ".concat(this.pluginName,":").concat(r,"] >> ").concat(g.message),g}else TD.apply(void 0,[this,a,t.next].concat(Array.prototype.slice.call(arguments)))}.bind(this)}function kD(r,a){var t=this.__hooks;if(t)return t.hasOwnProperty(r)?(t&&(t[r]=a),!0):(console.warn("has no supported hook which name [".concat(r,"]")),!1)}function QD(r,a){var t=this.__hooks;t&&delete t[r]}function o5(r){if(this.plugins&&this.plugins[r.toLowerCase()]){for(var a=this.plugins[r.toLowerCase()],t=arguments.length,i=new Array(t>1?t-1:0),n=1;n1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:[];r.__hooks={},a&&a.map(function(t){r.__hooks[t]=null}),Object.defineProperty(r,"hooks",{get:function(){return r.__hooks&&Object.keys(r.__hooks).map(function(i){if(r.__hooks[i])return i})}})}function l5(r){r.__hooks=null}function Gg(r,a,t){for(var i=arguments.length,n=new Array(i>3?i-3:0),o=3;o1?n-1:0),s=1;s2&&void 0!==arguments[2]?arguments[2]:{}),{},{pluginName:this.pluginName});this.player.emitUserAction(t,i,o)}}},{key:"hook",value:function(t,i){return ID.call.apply(ID,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"useHooks",value:function(t,i){for(var n=arguments.length,o=new Array(n>2?n-2:0),s=2;s2?n-2:0),s=2;s1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(this.player)return n&&(i.pluginName=n),this.player.registerPlugin({plugin:t,options:i})}},{key:"getPlugin",value:function(t){return this.player?this.player.getPlugin(t):null}},{key:"__destroy",value:function(){var t=this,i=this.player,n=this.pluginName;this.offAll(),ti.clearAllTimers(this),ti.checkIsFunction(this.destroy)&&this.destroy(),["player","playerConfig","pluginName","logger","__args","__hooks"].map(function(o){t[o]=null}),i.unRegisterPlugin(n),l5(this)}}],[{key:"defineGetterOrSetter",value:function(t,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&Object.defineProperty(t,n,i[n])}},{key:"defaultConfig",get:function(){return{}}},{key:"pluginName",get:function(){return"pluginName"}}]),r}(),HBe=ce(1527),c5=ce.n(HBe),GBe={CONTROLS:"controls",ROOT:"root"},_l={ROOT:"root",ROOT_LEFT:"rootLeft",ROOT_RIGHT:"rootRight",ROOT_TOP:"rootTop",CONTROLS_LEFT:"controlsLeft",CONTROLS_RIGTH:"controlsRight",CONTROLS_RIGHT:"controlsRight",CONTROLS_CENTER:"controlsCenter",CONTROLS:"controls"};function f3(r){return!!r&&r.indexOf&&/^(?:http|data:|\/)/.test(r)}function A5(r,a){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",o=null;if(r instanceof window.Element)return ti.addClass(r,t),Object.keys(i).map(function(s){r.setAttribute(s,i[s])}),r;if(f3(r)||f3(r.url))return i.src=f3(r)?r:r.url||"",o=ti.createDom(r.tag||"img","",i,"xg-img ".concat(t));if("function"==typeof r)try{return(o=r())instanceof window.Element?(ti.addClass(o,t),Object.keys(i).map(function(s){o.setAttribute(s,i[s])}),o):(ls.logWarn("warn>>icons.".concat(a," in config of plugin named [").concat(n,"] is a function mast return an Element Object")),null)}catch(s){return ls.logError("Plugin named [".concat(n,"]:createIcon"),s),null}return"string"==typeof r?ti.createDomFromHtml(r,i,t):(ls.logWarn("warn>>icons.".concat(a," in config of plugin named [").concat(n,"] is invalid")),null)}var Fs=function(r){Jo(t,r);var a=jo(t);function t(){var i,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ho(this,t),(i=a.call(this,n)).__delegates=[],i}return po(t,[{key:"__init",value:function(n){if(sa(qo(t.prototype),"__init",this).call(this,n),n.root){var o=n.root,s=null;this.icons={},this.root=null,this.parent=null,function jBe(r,a){var t=a.config.icons||a.playerConfig.icons;Object.keys(r).map(function(i){var n=r[i],o=n&&n.class?n.class:"",s=n&&n.attr?n.attr:{},c=null;t&&t[i]&&(o=function ZBe(r,a){return"object"===Pd(r)&&r.class&&"string"==typeof r.class?"".concat(a," ").concat(r.class):a}(t[i],o),s=function JBe(r,a){return"object"===Pd(r)&&r.attr&&"object"===Pd(r.attr)&&Object.keys(r.attr).map(function(t){a[t]=r.attr[t]}),a}(t[i],s),c=A5(t[i],i,o,s,a.pluginName)),!c&&n&&(c=A5(n.icon?n.icon:n,s,o,{},a.pluginName)),a.icons[i]=c})}(this.registerIcons()||{},this),this.langText={},function VBe(r,a){Object.keys(r).map(function(t){Object.defineProperty(a.langText,t,{get:function(){var o=a.i18n;return o[t]?o[t]:r[t]&&r[t][a.lang]||""}})})}(this.registerLanguageTexts()||{},this);var B="";try{B=this.render()}catch(we){throw ls.logError("Plugin:".concat(this.pluginName,":render"),we),new Error("Plugin:".concat(this.pluginName,":render:").concat(we.message))}if(B)(s=t.insert(B,o,n.index)).setAttribute("data-index",n.index);else{if(!n.tag)return;(s=ti.createDom(n.tag,"",n.attr,n.name)).setAttribute("data-index",n.index),o.appendChild(s)}this.root=s,this.parent=o;var ne=this.config.style||{};this.setAttr(this.config.attr||{}),this.setStyle(ne),this.config.index&&this.root.setAttribute("data-index",this.config.index),this.__registerChildren()}}},{key:"__registerChildren",value:function(){var n=this;if(this.root){this._children=[];var o=this.children();o&&"object"===Pd(o)&&Object.keys(o).length>0&&Object.keys(o).map(function(s){var O,ne,c=s,g=o[c],B={root:n.root};"function"==typeof g?(O=n.config[c]||{},ne=g):"object"===Pd(g)&&"function"==typeof g.plugin&&(O=g.options?ti.deepCopy(n.config[c]||{},g.options):n.config[c]||{},ne=g.plugin),B.config=O,void 0!==O.index&&(B.index=O.index),O.root&&(B.root=O.root),n.registerPlugin(ne,B,c)})}}},{key:"updateLang",value:function(n){n||(n=this.lang);var s=this.root,c=this.i18n,g=this.langText;s&&function o(B,O){for(var ne=0;ne0?o(B.children[ne],O):O(B.children[ne])}(s,function(B){var O=B.getAttribute&&B.getAttribute("lang-key");if(O){var ne=c[O.toUpperCase()]||g[O];ne&&(B.innerHTML="function"==typeof ne?ne(n):ne)}})}},{key:"lang",get:function(){return this.player.lang}},{key:"changeLangTextKey",value:function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=this.i18n||{},c=this.langText;n.setAttribute&&n.setAttribute("lang-key",o);var g=s[o]||c[o]||"";g&&(n.innerHTML=g)}},{key:"plugins",value:function(){return this._children}},{key:"children",value:function(){return{}}},{key:"registerPlugin",value:function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";o.root=o.root||this.root;var c=sa(qo(t.prototype),"registerPlugin",this).call(this,n,o,s);return this._children.push(c),c}},{key:"registerIcons",value:function(){return{}}},{key:"registerLanguageTexts",value:function(){return{}}},{key:"find",value:function(n){if(this.root)return this.root.querySelector(n)}},{key:"bind",value:function(n,o,s){var c=this;if(arguments.length<3&&"function"==typeof o)Array.isArray(n)?n.forEach(function(B){c.bindEL(B,o)}):this.bindEL(n,o);else{var g=t.delegate.call(this,this.root,n,o,s);this.__delegates=this.__delegates.concat(g)}}},{key:"unbind",value:function(n,o){var s=this;if(arguments.length<3&&"function"==typeof o)Array.isArray(n)?n.forEach(function(B){s.unbindEL(B,o)}):this.unbindEL(n,o);else for(var c="".concat(n,"_").concat(o),g=0;g2&&void 0!==arguments[2]&&arguments[2];this.root&&"on".concat(n)in this.root&&"function"==typeof o&&this.root.addEventListener(n,o,s)}},{key:"unbindEL",value:function(n,o){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.root&&"on".concat(n)in this.root&&"function"==typeof o&&this.root.removeEventListener(n,o,s)}},{key:"show",value:function(n){this.root&&(this.root.style.display=void 0!==n?n:"block","none"===window.getComputedStyle(this.root,null).getPropertyValue("display")&&(this.root.style.display="block"))}},{key:"hide",value:function(){this.root&&(this.root.style.display="none")}},{key:"appendChild",value:function(n,o){if(!this.root)return null;if(arguments.length<2&&arguments[0]instanceof window.Element)return this.root.appendChild(arguments[0]);if(!(o&&o instanceof window.Element))return null;try{return"string"==typeof n?this.find(n).appendChild(o):n.appendChild(o)}catch(s){return ls.logError("Plugin:appendChild",s),null}}},{key:"render",value:function(){return""}},{key:"destroy",value:function(){}},{key:"__destroy",value:function(){var n=this,o=this.player;this.__delegates.map(function(s){s.destroy()}),this.__delegates=[],this._children instanceof Array&&(this._children.map(function(s){o.unRegisterPlugin(s.pluginName)}),this._children=null),this.root&&(this.root.hasOwnProperty("remove")?this.root.remove():this.root.parentNode&&this.root.parentNode.removeChild(this.root)),sa(qo(t.prototype),"__destroy",this).call(this),this.icons={},["root","parent"].map(function(s){n[s]=null})}}],[{key:"insert",value:function(n,o){var c=o.children.length,g=Number(arguments.length>2&&void 0!==arguments[2]?arguments[2]:0),B=n instanceof window.Node;if(c){for(var O=0,ne=null,we="";O=g){we="beforebegin";break}$e4&&void 0!==arguments[4]&&arguments[4],B=[];if(n instanceof window.Node&&"function"==typeof c)if(Array.isArray(s))s.forEach(function(ne){var we=c5()(n,o,ne,c,g);we.key="".concat(o,"_").concat(ne),B.push(we)});else{var O=c5()(n,o,s,c,g);O.key="".concat(o,"_").concat(s),B.push(O)}return B}},{key:"ROOT_TYPES",get:function(){return GBe}},{key:"POSITIONS",get:function(){return _l}}]),t}(Zh),WBe=function(){function r(){var a=this;if(ho(this,r),Hn(this,"__trigger",function(t){var i=(new Date).getTime();a.timeStamp=i;for(var n=0;n=a||go<0||ne&&pr-B>=o}function Wi(){var pr=Date.now();if(Ri(pr))return Ki(pr);c=Ft(Wi,function Di(pr){var la=a-(pr-g);return ne?Math.min(la,o-(pr-B)):la}(pr))}function Ki(pr){return c=void 0,we&&i?nt(pr):(i=n=void 0,s)}function tr(){for(var pr=Date.now(),go=Ri(pr),no=arguments.length,la=new Array(no),Os=0;Os-1?this.__handlers[s].handler=i:this.__handlers.push({target:t,handler:i,playerId:n})}}},{key:"unObserver",value:function(t){var i=-1;this.__handlers.map(function(n,o){t===n.target&&(i=o)});try{this.observer&&this.observer.unobserve(t)}catch{}this.observer&&this.observer.unobserve(t),i>-1&&this.__handlers.splice(i,1)}},{key:"destroyObserver",value:function(){this.observer&&this.observer.disconnect(),this.observer=null,this.__handlers=null}},{key:"__runHandler",value:function(t){for(var i=this.__handlers,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};if(a&&t&&"function"==typeof t&&void 0!==t.prototype){var n=a._pluginInfoId;if(n&&this.pluginGroup[n]){this.pluginGroup[n]._plugins||(this.pluginGroup[n]._plugins={});var o=this.pluginGroup[n]._plugins,s=this.pluginGroup[n]._originalOptions;i.player=a;var c=i.pluginName||t.pluginName;if(!c)throw new Error("The property pluginName is necessary");if(t.isSupported&&!t.isSupported(a.config.mediaType,a.config.codecType))return void console.warn("not supported plugin [".concat(c,"]"));i.config||(i.config={});for(var g=Object.keys(s),B=0;B"u"&&(i.config[we]=t.defaultConfig[we])}),i.root?"string"==typeof i.root&&(i.root=a[i.root]):i.root=a.root,i.index=i.config.index||0;try{o[c.toLowerCase()]&&(this.unRegister(n,c.toLowerCase()),console.warn("the is one plugin with same pluginName [".concat(c,"] exist, destroy the old instance")));var ne=new t(i);return o[c.toLowerCase()]=ne,o[c.toLowerCase()].func=t,ne&&"function"==typeof ne.afterCreate&&ne.afterCreate(),ne}catch(we){throw console.error(we),we}}}},unRegister:function(a,t){a._pluginInfoId&&(a=a._pluginInfoId),t=t.toLowerCase();try{var i=this.pluginGroup[a]._plugins[t];i&&(i.pluginName&&i.__destroy(),delete this.pluginGroup[a]._plugins[t])}catch(n){console.error("[unRegister:".concat(t,"] cgid:[").concat(a,"] error"),n)}},deletePlugin:function(a,t){var i=a._pluginInfoId;i&&this.pluginGroup[i]&&this.pluginGroup[i]._plugins&&delete this.pluginGroup[i]._plugins[t]},getPlugins:function(a){var t=a._pluginInfoId;return t&&this.pluginGroup[t]?this.pluginGroup[t]._plugins:{}},findPlugin:function(a,t){var i=a._pluginInfoId;if(!i||!this.pluginGroup[i])return null;var n=t.toLowerCase();return this.pluginGroup[i]._plugins[n]},beforeInit:function(a){var t=this;function i(n){return n&&n.then?n:new Promise(function(o){o()})}return new Promise(function(n){if(t.pluginGroup)return(a._loadingPlugins&&a._loadingPlugins.length?Promise.all(a._loadingPlugins):Promise.resolve()).then(function(){var s=a._pluginInfoId;if(t.pluginGroup[s]){var c=t.pluginGroup[s]._plugins,g=[];Object.keys(c).forEach(function(B){if(c[B]&&c[B].beforePlayerInit)try{var O=c[B].beforePlayerInit();g.push(i(O))}catch(ne){throw g.push(i(null)),ne}}),Promise.all([].concat(g)).then(function(){n()}).catch(function(B){console.error(B),n()})}else n()})})},afterInit:function(a){var t=a._pluginInfoId;if(t&&this.pluginGroup[t]){var i=this.pluginGroup[t]._plugins;Object.keys(i).forEach(function(n){i[n]&&i[n].afterPlayerInit&&i[n].afterPlayerInit()})}},setLang:function(a,t){var i=t._pluginInfoId;if(i&&this.pluginGroup[i]){var n=this.pluginGroup[i]._plugins;Object.keys(n).forEach(function(o){if(n[o].updateLang)n[o].updateLang(a);else try{n[o].lang=a}catch{console.warn("".concat(o," setLang"))}})}},reRender:function(a){var t=this,i=a._pluginInfoId;if(i&&this.pluginGroup[i]){var n=[],o=this.pluginGroup[i]._plugins;Object.keys(o).forEach(function(s){"controls"!==s&&o[s]&&(n.push({plugin:o[s].func,options:o[s].__args}),t.unRegister(i,s))}),n.forEach(function(s){t.register(a,s.plugin,s.options)})}},onPluginsReady:function(a){var t=a._pluginInfoId;if(t&&this.pluginGroup[t]){var i=this.pluginGroup[t]._plugins||{};Object.keys(i).forEach(function(n){i[n].onPluginsReady&&"function"==typeof i[n].onPluginsReady&&i[n].onPluginsReady()})}},destroy:function(a){var t=a._pluginInfoId;if(this.pluginGroup[t]){!function qBe(r,a){Fb.unObserver(r,a)}(a.root);for(var n=0,o=Object.keys(this.pluginGroup[t]._plugins);n0&&this.setCurrentUserActive(g[g.length-1],!0)}}}},cr={DEFAULT:"xgplayer",DEFAULT_SKIN:"xgplayer-skin-default",ENTER:"xgplayer-is-enter",PAUSED:"xgplayer-pause",PLAYING:"xgplayer-playing",ENDED:"xgplayer-ended",CANPLAY:"xgplayer-canplay",LOADING:"xgplayer-isloading",ERROR:"xgplayer-is-error",REPLAY:"xgplayer-replay",NO_START:"xgplayer-nostart",ACTIVE:"xgplayer-active",INACTIVE:"xgplayer-inactive",FULLSCREEN:"xgplayer-is-fullscreen",CSS_FULLSCREEN:"xgplayer-is-cssfullscreen",ROTATE_FULLSCREEN:"xgplayer-rotate-fullscreen",PARENT_ROTATE_FULLSCREEN:"xgplayer-rotate-parent",PARENT_FULLSCREEN:"xgplayer-fullscreen-parent",INNER_FULLSCREEN:"xgplayer-fullscreen-inner",NO_CONTROLS:"no-controls",FLEX_CONTROLS:"flex-controls",CONTROLS_FOLLOW:"controls-follow",CONTROLS_AUTOHIDE:"controls-autohide",TOP_BAR_AUTOHIDE:"top-bar-autohide",NOT_ALLOW_AUTOPLAY:"not-allow-autoplay",SEEKING:"seeking",PC:"xgplayer-pc",MOBILE:"xgplayer-mobile",MINI:"xgplayer-mini"};function d5(){return{id:"",el:null,url:"",domEventType:"default",nullUrlStart:!1,width:600,height:337.5,fluid:!1,fitVideoSize:"fixed",videoFillMode:"auto",volume:.6,autoplay:!1,autoplayMuted:!1,loop:!1,isLive:!1,zoom:1,videoInit:!0,poster:"",isMobileSimulateMode:!1,defaultPlaybackRate:1,execBeforePluginsCall:null,allowSeekAfterEnded:!0,enableContextmenu:!0,closeVideoClick:!1,closeVideoDblclick:!1,closePlayerBlur:!1,closeDelayBlur:!1,leavePlayerTime:3e3,closePlayVideoFocus:!1,closePauseVideoFocus:!1,closeFocusVideoFocus:!0,closeControlsBlur:!0,topBarAutoHide:!0,videoAttributes:{},startTime:0,seekedStatus:"play",miniprogress:!1,disableSwipeHandler:function(){},enableSwipeHandler:function(){},preProcessUrl:null,ignores:[],whitelist:[],inactive:3e3,lang:MBe(),controls:!0,marginControls:!1,fullscreenTarget:null,screenShot:!1,rotate:!1,pip:!1,download:!1,mini:!1,cssFullscreen:!0,keyShortcut:!0,presets:[],plugins:[],playbackRate:1,definition:{list:[]},playsinline:!0,customDuration:0,timeOffset:0,icons:{},i18n:[],tabindex:0,thumbnail:null,videoConfig:{},isHideTips:!1,minWaitDelay:200,commonStyle:{progressColor:"",playedColor:"",cachedColor:"",sliderBtnStyle:{},volumeColor:""}}}var $Be=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0;if(this.root&&!o.root){switch(o.position?o.position:o.config&&o.config.position?o.config.position:(n.defaultConfig||{}).position){case _l.CONTROLS_LEFT:o.root=this.left;break;case _l.CONTROLS_RIGHT:o.root=this.right;break;case _l.CONTROLS_CENTER:o.root=this.center;break;case _l.CONTROLS:o.root=this.root;break;default:o.root=this.left}return sa(qo(t.prototype),"registerPlugin",this).call(this,n,o,s)}}},{key:"destroy",value:function(){"mobile"!==Ma.device&&(this.unbind("mouseenter",this.onMouseEnter),this.unbind("mouseleave",this.onMouseLeave))}},{key:"render",value:function(){var n=this.config,o=n.mode,s=n.autoHide,c=n.initShow;if(!n.disable){var B=ti.classNames({"xgplayer-controls":!0},{"flex-controls":"flex"===o},{"bottom-controls":"bottom"===o},Hn({},cr.CONTROLS_AUTOHIDE,s),{"xgplayer-controls-initshow":c||!s});return'\n \n \n \n \n \n \n \n ')}}}],[{key:"pluginName",get:function(){return"controls"}},{key:"defaultConfig",get:function(){return{disable:!1,autoHide:!0,mode:"",initShow:!1}}}]),t}(Fs),Bu={lang:{},langKeys:[],textKeys:[]};function Ob(r,a){return Object.keys(a).forEach(function(t){var o,i=ti.typeOf(a[t]),n=ti.typeOf(r[t]);"Array"===i?("Array"!==n&&(r[t]=[]),(o=r[t]).push.apply(o,Gh(a[t]))):"Object"===i?("Object"!==n&&(r[t]={}),Ob(r[t],a[t])):r[t]=a[t]}),r}function u5(){Object.keys(Bu.lang.en).map(function(r){Bu.textKeys[r]=r})}function m3(r,a){var t=r.LANG;if(a||(a=Bu),a.lang){var i=r.TEXT||{};"zh"===t&&(t="zh-cn"),a.lang[t]?Ob(a.lang[t],i):(a.langKeys.push(t),a.lang[t]=i),u5()}}m3({LANG:"en",TEXT:{ERROR_TYPES:{network:{code:1,msg:"video download error"},mse:{code:2,msg:"stream append error"},parse:{code:3,msg:"parsing error"},format:{code:4,msg:"wrong format"},decoder:{code:5,msg:"decoding error"},runtime:{code:6,msg:"grammatical errors"},timeout:{code:7,msg:"play timeout"},other:{code:8,msg:"other errors"}},HAVE_NOTHING:"There is no information on whether audio/video is ready",HAVE_METADATA:"Audio/video metadata is ready ",HAVE_CURRENT_DATA:"Data about the current play location is available, but there is not enough data to play the next frame/millisecond",HAVE_FUTURE_DATA:"Current and at least one frame of data is available",HAVE_ENOUGH_DATA:"The available data is sufficient to start playing",NETWORK_EMPTY:"Audio/video has not been initialized",NETWORK_IDLE:"Audio/video is active and has been selected for resources, but no network is used",NETWORK_LOADING:"The browser is downloading the data",NETWORK_NO_SOURCE:"No audio/video source was found",MEDIA_ERR_ABORTED:"The fetch process is aborted by the user",MEDIA_ERR_NETWORK:"An error occurred while downloading",MEDIA_ERR_DECODE:"An error occurred while decoding",MEDIA_ERR_SRC_NOT_SUPPORTED:"Audio/video is not supported",REPLAY:"Replay",ERROR:"Network is offline",PLAY_TIPS:"Play",PAUSE_TIPS:"Pause",PLAYNEXT_TIPS:"Play next",DOWNLOAD_TIPS:"Download",ROTATE_TIPS:"Rotate",RELOAD_TIPS:"Reload",FULLSCREEN_TIPS:"Fullscreen",EXITFULLSCREEN_TIPS:"Exit fullscreen",CSSFULLSCREEN_TIPS:"Cssfullscreen",EXITCSSFULLSCREEN_TIPS:"Exit cssfullscreen",TEXTTRACK:"Caption",PIP:"PIP",SCREENSHOT:"Screenshot",LIVE:"LIVE",OFF:"Off",OPEN:"Open",MINI_DRAG:"Click and hold to drag",MINISCREEN:"Miniscreen",REFRESH_TIPS:"Please Try",REFRESH:"Refresh",FORWARD:"forward",LIVE_TIP:"Live"}});var ty={get textKeys(){return Bu.textKeys},get langKeys(){return Bu.langKeys},get lang(){var r={};return Bu.langKeys.map(function(a){r[a]=Bu.lang[a]}),Bu.lang["zh-cn"]&&(r.zh=Bu.lang["zh-cn"]||{}),r},extend:function tEe(r,a){var t=[];if(a||(a=Bu),a.lang){t="Array"!==ti.typeOf(r)?Object.keys(r).map(function(o){return{LANG:"zh"===o?"zh-cn":o,TEXT:r[o]}}):r;var n=a.lang;t.map(function(o){"zh"===o.LANG&&(o.LANG="zh-cn"),n[o.LANG]?Ob(n[o.LANG]||{},o.TEXT||{}):m3(o,a)}),u5()}},use:m3,init:function iEe(r){var a,t={lang:{},langKeys:[],textKeys:{},pId:r};return Ob(t.lang,Bu.lang),(a=t.langKeys).push.apply(a,Gh(Bu.langKeys)),Ob(t.textKeys,Bu.textKeys),t}},h5=["ERROR","INITIAL","READY","ATTACHING","ATTACHED","NOTALLOW","RUNNING","ENDED","DESTROYED"],su={},_3=null,p5=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"add",value:function(n){n&&(su[n.playerId]=n,1===Object.keys(su).length&&this.setActive(n.playerId,!0))}},{key:"remove",value:function(n){n&&delete su[n.playerId]}},{key:"_iterate",value:function(n){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var s in su)if(Object.prototype.hasOwnProperty.call(su,s)){var c=su[s];if(o){if(n(c))break}else n(c)}}},{key:"forEach",value:function(n){this._iterate(n)}},{key:"find",value:function(n){var o=null;return this._iterate(function(s){var c=n(s);return c&&(o=s),c},!0),o}},{key:"findAll",value:function(n){var o=[];return this._iterate(function(s){n(s)&&o.push(s)}),o}},{key:"setActive",value:function(n){var o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(su[n])return o?this.forEach(function(s){n===s.playerId?(s.isUserActive=!0,s.isInstNext=!1):s.isUserActive=!1}):su[n].isUserActive=o,n}},{key:"getActiveId",value:function(){for(var n=Object.keys(su),o=0;o1&&void 0!==arguments[1])||arguments[1];if(su[n])return o?this.forEach(function(s){n===s.playerId?(s.isUserActive=!1,s.isInstNext=!0):s.isInstNext=!1}):su[n].isInstNext=o,n}}],[{key:"getInstance",value:function(){return _3||(_3=new t),_3}}]),t}(FN.EventEmitter),rEe=["play","pause","replay","retry"],g5=0,f5=0,W0=null,SD=function(r){Jo(t,r);var a=jo(t);function t(i){var n;ho(this,t);var o=ti.deepMerge(d5(),i);Hn(yn(n=a.call(this,o)),"canPlayFunc",function(){if(n.config){var nt=n.config,Ft=nt.autoplay,ei=nt.defaultPlaybackRate;ls.logInfo("player","canPlayFunc, startTime",n.__startTime),n.__startTime>0&&n.duration>0&&(n.currentTime=n.__startTime>n.duration?n.duration:n.__startTime,n.__startTime=-1),n.playbackRate=ei,(Ft||n._useAutoplay)&&n.mediaPlay(),n.off(zg,n.canPlayFunc),n.removeClass(cr.ENTER)}}),Hn(yn(n),"onFullscreenChange",function(nt,Ft){var ei=function(){ti.setTimeout(yn(n),function(){n.resize()},100)},pi=ti.getFullScreenEl();n._fullActionFrom?n._fullActionFrom="":n.emit(MD,{eventType:"system",action:"switch_fullscreen",pluginName:"player",currentTime:n.currentTime,duration:n.duration,props:[{prop:"fullscreen",from:!0,to:!1}]});var Di=function DBe(r,a,t){if(r){var i=r.getAttribute(t);return!(!i||i!==a||"VIDEO"!==r.tagName&&"AUDIO"!==r.tagName)}}(pi,n.playerId,V0);if(Ft||pi&&(pi===n._fullscreenEl||Di))ei(),!n.config.closeFocusVideoFocus&&n.media.focus(),n.fullscreen=!0,n.changeFullStyle(n.root,pi,cr.FULLSCREEN),n.emit(Hg,!0,n._fullScreenOffset),n.cssfullscreen&&n.exitCssFullscreen();else if(n.fullscreen){ei();var Ri=yn(n),Wi=Ri._fullScreenOffset;Ri.config.needFullscreenScroll?(window.scrollTo(Wi.left,Wi.top),ti.setTimeout(yn(n),function(){n.fullscreen=!1,n._fullScreenOffset=null},100)):(!n.config.closeFocusVideoFocus&&n.media.focus(),n.fullscreen=!1,n._fullScreenOffset=null),n.cssfullscreen?n.removeClass(cr.FULLSCREEN):n.recoverFullStyle(n.root,n._fullscreenEl,cr.FULLSCREEN),n._fullscreenEl=null,n.emit(Hg,!1)}}),Hn(yn(n),"_onWebkitbeginfullscreen",function(nt){n._fullscreenEl=n.media,n.onFullscreenChange(nt,!0)}),Hn(yn(n),"_onWebkitendfullscreen",function(nt){n.onFullscreenChange(nt,!1)}),s5(yn(n),rEe),n.config=o,n._pluginInfoId=ti.generateSessionId(),function CBe(r){r.logInfo=ls.logInfo.bind(r),r.logWarn=ls.logWarn.bind(r),r.logError=ls.logError.bind(r)}(yn(n));var s=n.constructor.defaultPreset;if(n.config.presets.length){var c=n.config.presets.indexOf("default");c>=0&&s&&(n.config.presets[c]=s)}else s&&n.config.presets.push(s);if(n.userTimer=null,n.waitTimer=null,n.handleSource=!0,n._state=1,n.isError=!1,n._hasStart=!1,n.isSeeking=!1,n.isCanplay=!1,n._useAutoplay=!1,n.__startTime=-1,n.rotateDeg=0,n.isActive=!1,n.fullscreen=!1,n.cssfullscreen=!1,n.isRotateFullscreen=!1,n._fullscreenEl=null,n.timeSegments=[],n._cssfullscreenEl=null,n.curDefinition=null,n._orgCss="",n._fullScreenOffset=null,n._videoHeight=0,n._videoWidth=0,n.videoPos={pi:1,scale:0,rotate:-1,x:0,y:0,h:-1,w:-1,vy:0,vx:0},n.sizeInfo={width:0,height:0,left:0,top:0},n._accPlayed={t:0,acc:0,loopAcc:0},n._offsetInfo={currentTime:-1,duration:0},n.innerContainer=null,n.controls=null,n.topBar=null,n.root=null,n.__i18n=ty.init(n._pluginInfoId),Ma.os.isAndroid&&Ma.osVersion>0&&Ma.osVersion<6&&(n.config.autoplay=!1),n.database=new zBe,n.isUserActive=!1,n._onceSeekCanplay=null,n._isPauseBeforeSeek=0,n.innerStates={isActiveLocked:!1},n.instManager=W0,!n._initDOM())return console.error(new Error("can't find the dom which id is ".concat(n.config.id," or this.config.el does not exist"))),XP(n);var B=n.config,O=B.definition,ne=void 0===O?{}:O;if(!B.url&&ne.list&&ne.list.length>0){var $e=ne.list.find(function(nt){return nt.definition&&nt.definition===ne.defaultDefinition});$e||(ne.defaultDefinition=ne.list[0].definition,$e=ne.list[0]),n.config.url=$e.url,n.curDefinition=$e}return n._bindEvents(),n._registerPresets(),n._registerPlugins(),HA.onPluginsReady(yn(n)),n.getInitDefinition(),n.setState(2),ti.setTimeout(yn(n),function(){n.emit(s3)},0),n.onReady&&n.onReady(),(n.config.videoInit||n.config.autoplay)&&(!n.hasStart||n.state<4)&&n.start(),n}return po(t,[{key:"_initDOM",value:function(){var n,o=this;if(this.root=this.config.id?document.getElementById(this.config.id):null,!this.root){var s=this.config.el;if(!s||1!==s.nodeType)return this.emit(Qb,new kb("use",this.config.vid,{line:32,handle:"Constructor",msg:"container id can't be empty"})),console.error("this.confg.id or this.config.el can't be empty"),!1;this.root=s}var c=function nEe(r){for(var a=Object.keys(su),t=0;t0?this._attachSourceEvents(this.media,n):this.media.src&&this.media.src===n?n||this.media.removeAttribute("src"):this.media.src=n),"Number"===ti.typeOf(this.config.volume)&&(this.volume=this.config.volume);var s=this.innerContainer?this.innerContainer:this.root;this.media instanceof window.Element&&!s.contains(this.media)&&s.insertBefore(this.media,s.firstChild);var c=this.media.readyState;ls.logInfo("_startInit readyState",c),this.config.autoplay&&(!ti.isMSE(this.media)&&this.load(),(Ma.os.isIpad||Ma.os.isPhone)&&this.mediaPlay());var g=this.config.startTime;this.__startTime=g>0?g:-1,this.config.startTime=0,c>=2&&this.duration>0?this.canPlayFunc():this.on(zg,this.canPlayFunc),(!this.hasStart||this.state<4)&&HA.afterInit(this),this.hasStart=!0,this.setState(4),ti.setTimeout(this,function(){o.emit(CD)},0)}}},{key:"_registerPlugins",value:function(){var n=this,o=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this._loadingPlugins=[];var s=this.config.ignores||[],c=this.config.plugins||[];o&&ty.extend(this.config.i18n||[],this.__i18n);var B=s.join("||").toLowerCase().split("||"),O=this.plugins;c.forEach(function(ne){try{var we=ne.plugin?ne.plugin.pluginName:ne.pluginName;if(we&&B.indexOf(we.toLowerCase())>-1)return null;if(!o&&O[we.toLowerCase()])return;if(ne.lazy&&ne.loader){var $e=HA.lazyRegister(n,ne);return void(ne.forceBeforeInit&&($e.then(function(){n._loadingPlugins.splice(n._loadingPlugins.indexOf($e),1)}).catch(function(nt){ls.logError("_registerPlugins:loadingPlugin",nt),n._loadingPlugins.splice(n._loadingPlugins.indexOf($e),1)}),n._loadingPlugins.push($e)))}return n.registerPlugin(ne)}catch(nt){ls.logError("_registerPlugins:",nt)}})}},{key:"_registerPresets",value:function(){var n=this;this.config.presets.forEach(function(o){!function(a,t){var i,n,o,c=(o=t.preset&&t.options?new t.preset(t.options,a.config):new t({},a.config)).plugins,g=void 0===c?[]:c,B=o.ignores,O=void 0===B?[]:B,ne=o.icons,we=void 0===ne?{}:ne,$e=o.i18n,nt=void 0===$e?[]:$e;a.config.plugins||(a.config.plugins=[]),a.config.ignores||(a.config.ignores=[]),(i=a.config.plugins).push.apply(i,Gh(g)),(n=a.config.ignores).push.apply(n,Gh(O)),Object.keys(we).map(function(ei){a.config.icons[ei]||(a.config.icons[ei]=we[ei])}),nt.push.apply(nt,Gh(a.config.i18n||[])),a.config.i18n=nt}(n,o)})}},{key:"_getRootByPosition",value:function(n){var o=null;switch(n){case _l.ROOT_RIGHT:this.rightBar||(this.rightBar=ti.createPositionBar("xg-right-bar",this.root)),o=this.rightBar;break;case _l.ROOT_LEFT:this.leftBar||(this.leftBar=ti.createPositionBar("xg-left-bar",this.root)),o=this.leftBar;break;case _l.ROOT_TOP:this.topBar||(this.topBar=ti.createPositionBar("xg-top-bar",this.root),this.config.topBarAutoHide&&ti.addClass(this.topBar,cr.TOP_BAR_AUTOHIDE)),o=this.topBar;break;default:o=this.innerContainer||this.root}return o}},{key:"registerPlugin",value:function(n,o){var s=HA.formatPluginInfo(n,o),c=s.PLUFGIN,g=s.options,B=this.config.plugins;!HA.checkPluginIfExits(c.pluginName,B)&&B.push(c);var ne=HA.getRootByConfig(c.pluginName,this.config);ne.root&&(g.root=ne.root),ne.position&&(g.position=ne.position);var we=g.position?g.position:g.config&&g.config.position||c.defaultConfig&&c.defaultConfig.position;return!g.root&&"string"==typeof we&&we.indexOf("controls")>-1?this.controls&&this.controls.registerPlugin(c,g,c.pluginName):(g.root||(g.root=this._getRootByPosition(we)),HA.register(this,c,g))}},{key:"deregister",value:function(n){"string"==typeof n?HA.unRegister(this,n):n instanceof Zh&&HA.unRegister(this,n.pluginName)}},{key:"unRegisterPlugin",value:function(n){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.deregister(n),o&&this.removePluginFromConfig(n)}},{key:"removePluginFromConfig",value:function(n){var o;if("string"==typeof n?o=n:n instanceof Zh&&(o=n.pluginName),o)for(var s=this.config.plugins.length-1;s>-1;s--)if(this.config.plugins[s].pluginName.toLowerCase()===o.toLowerCase()){this.config.plugins.splice(s,1);break}}},{key:"plugins",get:function(){return HA.getPlugins(this)}},{key:"getPlugin",value:function(n){var o=HA.findPlugin(this,n);return o&&o.pluginName?o:null}},{key:"addClass",value:function(n){this.root&&(ti.hasClass(this.root,n)||ti.addClass(this.root,n))}},{key:"removeClass",value:function(n){this.root&&ti.removeClass(this.root,n)}},{key:"hasClass",value:function(n){if(this.root)return ti.hasClass(this.root,n)}},{key:"setAttribute",value:function(n,o){this.root&&this.root.setAttribute(n,o)}},{key:"removeAttribute",value:function(n,o){this.root&&this.root.removeAttribute(n,o)}},{key:"start",value:function(n){var o=this;if(!(this.state>3))return!n&&!this.config.url&&this.getInitDefinition(),this.hasStart=!0,this.setState(3),this._registerPlugins(!1),HA.beforeInit(this).then(function(){if(o.config){n||(n=o.url||o.config.url);var s=o._preProcessUrl(n);return o._startInit(s.url)}}).catch(function(s){throw s.fileName="player",s.lineNumber="236",ls.logError("start:beforeInit:",s),s})}},{key:"switchURL",value:function(n,o){var s=this,c=n;"Object"===ti.typeOf(n)&&(c=n.url),c=this._preProcessUrl(c).url,this.__startTime=this.currentTime;var B=this.paused&&!this.isError;return this.src=c,new Promise(function(O,ne){var we=function(Ft){s.off("timeupdate",$e),s.off("canplay",$e),ne(Ft)},$e=function(){s.duration>0&&s.__startTime>0&&(s.currentTime=s.__startTime,s.__startTime=-1),B&&s.pause(),s.off("error",we),O(!0)};s.once("error",we),c?(s.once(Ma.os.isAndroid?"timeupdate":"canplay",$e),s.play()):s.errorHandler("error",{code:6,message:"empty_src"})})}},{key:"videoPlay",value:function(){this.mediaPlay()}},{key:"mediaPlay",value:function(){var n=this;if(!this.hasStart&&this.state<4)return this.removeClass(cr.NO_START),this.addClass(cr.ENTER),this.start(),void(this._useAutoplay=!0);this.state<6&&(this.removeClass(cr.NO_START),!this.isCanplay&&this.addClass(cr.ENTER));var o=sa(qo(t.prototype),"play",this).call(this);return void 0!==o&&o&&o.then?o.then(function(){n.removeClass(cr.NOT_ALLOW_AUTOPLAY),n.addClass(cr.PLAYING),n.state<6&&(ls.logInfo(">>>>playPromise.then"),n.setState(6),n.emit(j0))}).catch(function(s){if(ls.logWarn(">>>>playPromise.catch",s.name),n.media&&n.media.error)return n.onError(),void n.removeClass(cr.ENTER);"NotAllowedError"===s.name&&(n._errorTimer=ti.setTimeout(n,function(){n._errorTimer=null,n.emit(l3),n.addClass(cr.NOT_ALLOW_AUTOPLAY),n.removeClass(cr.ENTER),n.pause(),n.setState(5)},0))}):(ls.logWarn("video.play not return promise"),this.state<6&&(this.setState(6),this.removeClass(cr.NOT_ALLOW_AUTOPLAY),this.removeClass(cr.NO_START),this.removeClass(cr.ENTER),this.addClass(cr.PLAYING),this.emit(j0))),o}},{key:"mediaPause",value:function(){sa(qo(t.prototype),"pause",this).call(this)}},{key:"videoPause",value:function(){sa(qo(t.prototype),"pause",this).call(this)}},{key:"play",value:function(){var n=this;return this.removeClass(cr.PAUSED),Gg(this,"play",function(){return n.mediaPlay()})}},{key:"pause",value:function(){var n=this;Gg(this,"pause",function(){sa(qo(t.prototype),"pause",n).call(n)})}},{key:"seek",value:function(n,o){var s=this;if(this.media&&!Number.isNaN(Number(n))&&this.hasStart){var c=this.config,O=o||(c.isSeekedPlay?"play":c.seekedStatus);n=n<0?0:n>this.duration?parseInt(this.duration,10):n,!this._isPauseBeforeSeek&&(this._isPauseBeforeSeek=this.paused?2:1),this._onceSeekCanplay&&this.off(Ug,this._onceSeekCanplay),this._onceSeekCanplay=function(){switch(s.removeClass(cr.ENTER),s.isSeeking=!1,O){case"play":s.play();break;case"pause":s.pause();break;default:s._isPauseBeforeSeek>1||s.paused?s.pause():s.play()}s._isPauseBeforeSeek=0,s._onceSeekCanplay=null},this.once(Ug,this._onceSeekCanplay),this.state<6?(this.removeClass(cr.NO_START),this.currentTime=n,this.play()):this.currentTime=n}}},{key:"getInitDefinition",value:function(){var n=this,o=this.config,s=o.definition;!o.url&&s&&s.list&&s.list.length>0&&s.defaultDefinition&&s.list.map(function(g){g.definition===s.defaultDefinition&&(n.config.url=g.url,n.curDefinition=g)})}},{key:"changeDefinition",value:function(n,o){var s=this,c=this.config.definition;if(Array.isArray(c?.list)&&c.list.forEach(function(B){n?.definition===B.definition&&(s.curDefinition=B)}),null!=n&&n.bitrate&&"number"!=typeof n.bitrate&&(n.bitrate=parseInt(n.bitrate,10)||0),this.emit(d3,{from:o,to:n}),this.hasStart){var g=this.switchURL(n.url,Mc({seamless:!1!==c.seamless&&typeof MediaSource<"u"&&"function"==typeof MediaSource.isTypeSupported},n));g&&g.then?g.then(function(){s.emit(u3,{from:o,to:n})}):this.emit(u3,{from:o,to:n})}else this.config.url=n.url}},{key:"reload",value:function(){this.load(),this.reloadFunc=function(){this.play()},this.once(Lp,this.reloadFunc)}},{key:"resetState",value:function(){var n=this,nt=[cr.NOT_ALLOW_AUTOPLAY,cr.PLAYING,cr.NO_START,cr.PAUSED,cr.REPLAY,cr.ENTER,cr.ENDED,cr.ERROR,cr.LOADING];this.hasStart=!1,this.isError=!1,this._useAutoplay=!1,this.mediaPause(),this._accPlayed.acc=0,this._accPlayed.t=0,this._accPlayed.loopAcc=0,nt.forEach(function(Ft){n.removeClass(Ft)}),this.addClass(cr.NO_START),this.emit(DD)}},{key:"reset",value:function(){var n=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],s=arguments.length>1?arguments[1]:void 0;if(this.resetState(),this.plugins&&(o.map(function(B){n.deregister(B)}),s)){var g=d5();Object.keys(this.config).keys(function(B){"undefined"!==n.config[B]&&("plugins"===B||"presets"===B||"el"===B||"id"===B)&&(n.config[B]=g[B])})}}},{key:"destroy",value:function(){var n,o=this,s=this.innerContainer,c=this.root,g=this.media;if(c&&g){if(this.hasStart=!1,this._useAutoplay=!1,c.removeAttribute(V0),this.updateAcc("destroy"),this._unbindEvents(),this._detachSourceEvents(this.media),ti.clearAllTimers(this),this.emit(c3),null===(n=W0)||void 0===n||n.remove(this),HA.destroy(this),l5(this),sa(qo(t.prototype),"destroy",this).call(this),this.fullscreen&&this._fullscreenEl===this.root&&this.exitFullscreen(),s)for(var B=s.children,O=0;O0?ne.filter(function(we){return we.indexOf("xgplayer")<0}).join(" "):"",this.removeAttribute("data-xgfill"),["isSeeking","isCanplay","isActive","cssfullscreen","fullscreen"].forEach(function(we){o[we]=!1})}}},{key:"replay",value:function(){var n=this;this.removeClass(cr.ENDED),this.currentTime=0,this.isSeeking=!1,Gg(this,"replay",function(){n.once(Ug,function(){var o=n.mediaPlay();o&&o.catch&&o.catch(function(s){console.log(s)})}),n.play(),n.emit(bD),n.onPlay()})}},{key:"retry",value:function(){var n=this;this.removeClass(cr.ERROR),this.addClass(cr.LOADING),Gg(this,"retry",function(){var o=n.currentTime,s=n.config.url,c=ti.isMSE(n.media)?{url:s}:n._preProcessUrl(s);n.src=c.url,!n.config.isLive&&(n.currentTime=o),n.once(zg,function(){n.mediaPlay()})})}},{key:"changeFullStyle",value:function(n,o,s,c){n&&(c||(c=cr.PARENT_FULLSCREEN),this._orgCss||(this._orgCss=ti.filterStyleFromText(n)),ti.addClass(n,s),o&&o!==n&&!this._orgPCss&&(this._orgPCss=ti.filterStyleFromText(o),ti.addClass(o,c),o.setAttribute(V0,this.playerId)))}},{key:"recoverFullStyle",value:function(n,o,s,c){c||(c=cr.PARENT_FULLSCREEN),this._orgCss&&(ti.setStyleFromCsstext(n,this._orgCss),this._orgCss=""),ti.removeClass(n,s),o&&o!==n&&this._orgPCss&&(ti.setStyleFromCsstext(o,this._orgPCss),this._orgPCss="",ti.removeClass(o,c),o.removeAttribute(V0))}},{key:"getFullscreen",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.fullscreenTarget,s=this.media;if(n||(n=this.root),this._fullScreenOffset={top:ti.scrollTop(),left:ti.scrollLeft()},this._fullscreenEl=n,this._fullActionFrom="get",ti.getFullScreenEl()===this._fullscreenEl)return this.onFullscreenChange(),Promise.resolve();try{for(var g=0;g0&&void 0!==arguments[0]?arguments[0]:this.config.fullscreenTarget;this.isRotateFullscreen?this.exitRotateFullscreen():this.fullscreen&&this.exitFullscreen();var o=n?"".concat(cr.INNER_FULLSCREEN," ").concat(cr.CSS_FULLSCREEN):cr.CSS_FULLSCREEN;this.changeFullStyle(this.root,n,o);var s=this.config.fullscreen,c=void 0===s?{}:s;(!0===c.useCssFullscreen||"function"==typeof c.useCssFullscreen&&c.useCssFullscreen())&&(this.fullscreen=!0,this.emit(Hg,!0)),this._cssfullscreenEl=n,this.cssfullscreen=!0,this.emit(xD,!0)}},{key:"exitCssFullscreen",value:function(){var n=this._cssfullscreenEl?"".concat(cr.INNER_FULLSCREEN," ").concat(cr.CSS_FULLSCREEN):cr.CSS_FULLSCREEN;if(this.fullscreen){var o=this.config.fullscreen,s=void 0===o?{}:o;!0===s.useCssFullscreen||"function"==typeof s.useCssFullscreen&&s.useCssFullscreen()?(this.recoverFullStyle(this.root,this._cssfullscreenEl,n),this.fullscreen=!1,this.emit(Hg,!1)):this.removeClass(n)}else this.recoverFullStyle(this.root,this._cssfullscreenEl,n);this._cssfullscreenEl=null,this.cssfullscreen=!1,this.emit(xD,!1)}},{key:"getRotateFullscreen",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.fullscreenTarget;this.cssfullscreen&&this.exitCssFullscreen(n);var o=n?"".concat(cr.INNER_FULLSCREEN," ").concat(cr.ROTATE_FULLSCREEN):cr.ROTATE_FULLSCREEN;this._fullscreenEl=n||this.root,this.changeFullStyle(this.root,n,o,cr.PARENT_ROTATE_FULLSCREEN),this.isRotateFullscreen=!0,this.fullscreen=!0,this.setRotateDeg(90),this._rootStyle=this.root.getAttribute("style"),this.root.style.width="".concat(window.innerHeight,"px"),this.emit(Hg,!0)}},{key:"exitRotateFullscreen",value:function(n){var o=this._fullscreenEl!==this.root?"".concat(cr.INNER_FULLSCREEN," ").concat(cr.ROTATE_FULLSCREEN):cr.ROTATE_FULLSCREEN;this.recoverFullStyle(this.root,this._fullscreenEl,o,cr.PARENT_ROTATE_FULLSCREEN),this.isRotateFullscreen=!1,this.fullscreen=!1,this.setRotateDeg(0),this.emit(Hg,!1),this._rootStyle&&(this.root.style.style=this._rootStyle,this._rootStyle=!1)}},{key:"setRotateDeg",value:function(n){this.rotateDeg=90===window.orientation||-90===window.orientation?0:n}},{key:"focus",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autoHide:!this.config.closeDelayBlur,delay:this.config.inactive};this.isActive?this.onFocus(n):this.emit(a3,Mc({paused:this.paused,ended:this.ended},n))}},{key:"blur",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{ignorePaused:!1};this.isActive?this.emit(GN,Mc({paused:this.paused,ended:this.ended},n)):this.onBlur(n)}},{key:"onFocus",value:function(){var n=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autoHide:!0,delay:3e3},s=this.innerStates;this.isActive=!0,this.removeClass(cr.INACTIVE),this.userTimer&&(ti.clearTimeout(this,this.userTimer),this.userTimer=null),void 0!==o.isLock&&(s.isActiveLocked=o.isLock),!1===o.autoHide||!0===o.isLock||s.isActiveLocked?this.userTimer&&(ti.clearTimeout(this,this.userTimer),this.userTimer=null):this.userTimer=ti.setTimeout(this,function(){n.userTimer=null,n.blur()},o&&o.delay?o.delay:this.config.inactive)}},{key:"onBlur",value:function(){var o=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).ignorePaused,s=void 0!==o&&o;if(this.isActive&&!this.innerStates.isActiveLocked){var c=this.config.closePauseVideoFocus;this.isActive=!1,(s||c||!this.paused&&!this.ended)&&this.addClass(cr.INACTIVE)}}},{key:"onEmptied",value:function(){this.updateAcc("emptied")}},{key:"onCanplay",value:function(){this.removeClass(cr.ENTER),this.removeClass(cr.ERROR),this.removeClass(cr.LOADING),this.isCanplay=!0,this.waitTimer&&ti.clearTimeout(this,this.waitTimer)}},{key:"onDurationchange",value:function(){this.__startTime>0&&this.duration>0&&(this.currentTime=this.__startTime,this.__startTime=-1)}},{key:"onLoadeddata",value:function(){this.isError=!1,this.isSeeking=!1}},{key:"onLoadstart",value:function(){this.removeClass(cr.ERROR),this.isCanplay=!1}},{key:"onPlay",value:function(){7===this.state&&this.setState(6),this.removeClass(cr.PAUSED),this.ended&&this.removeClass(cr.ENDED),!this.config.closePlayVideoFocus&&this.focus()}},{key:"onPause",value:function(){this.addClass(cr.PAUSED),this.updateAcc("pause"),this.config.closePauseVideoFocus||(this.userTimer&&(ti.clearTimeout(this,this.userTimer),this.userTimer=null),this.focus())}},{key:"onEnded",value:function(){this.updateAcc("ended"),this.addClass(cr.ENDED),this.setState(7)}},{key:"onError",value:function(){this.isError=!0,this.updateAcc("error"),this.removeClass(cr.NOT_ALLOW_AUTOPLAY),this.removeClass(cr.NO_START),this.removeClass(cr.ENTER),this.removeClass(cr.LOADING),this.addClass(cr.ERROR)}},{key:"onSeeking",value:function(){this.isSeeking||this.updateAcc("seeking"),this.isSeeking=!0,this.addClass(cr.SEEKING)}},{key:"onSeeked",value:function(){this.isSeeking=!1,this.waitTimer&&ti.clearTimeout(this,this.waitTimer),this.removeClass(cr.LOADING),this.removeClass(cr.SEEKING)}},{key:"onWaiting",value:function(){var n=this;this.waitTimer&&ti.clearTimeout(this,this.waitTimer),this.updateAcc("waiting"),this.waitTimer=ti.setTimeout(this,function(){n.addClass(cr.LOADING),ti.clearTimeout(n,n.waitTimer),n.waitTimer=null},this.config.minWaitDelay)}},{key:"onPlaying",value:function(){var n=this;this.isError=!1,[cr.NO_START,cr.PAUSED,cr.ENDED,cr.ERROR,cr.REPLAY,cr.LOADING].forEach(function(we){n.removeClass(we)}),!this._accPlayed.t&&!this.paused&&!this.ended&&(this._accPlayed.t=(new Date).getTime())}},{key:"onTimeupdate",value:function(){!this._videoHeight&&this.media.videoHeight&&this.resize(),(this.waitTimer||this.hasClass(cr.LOADING))&&this.media.readyState>2&&(this.removeClass(cr.LOADING),ti.clearTimeout(this,this.waitTimer),this.waitTimer=null),!this.paused&&this.state<6&&this.duration&&(this.setState(6),this.emit(j0)),!this._accPlayed.t&&!this.paused&&!this.ended&&(this._accPlayed.t=(new Date).getTime())}},{key:"onVolumechange",value:function(){"Number"===ti.typeOf(this.config.volume)&&(this.config.volume=this.volume)}},{key:"onRatechange",value:function(){this.config.defaultPlaybackRate=this.playbackRate}},{key:"emitUserAction",value:function(n,o,s){if(this.media&&o&&n){var c="String"===ti.typeOf(n)?n:n.type||"";s.props&&"Array"!==ti.typeOf(s.props)&&(s.props=[s.props]),this.emit(MD,Mc({eventType:c,action:o,currentTime:this.currentTime,duration:this.duration,ended:this.ended,event:n},s))}}},{key:"updateAcc",value:function(n){if(this._accPlayed.t){var o=(new Date).getTime()-this._accPlayed.t;this._accPlayed.acc+=o,this._accPlayed.t=0,("ended"===n||this.ended)&&(this._accPlayed.loopAcc=this._accPlayed.acc)}}},{key:"checkBuffer",value:function(n){var o=this.media.buffered;if(!o||0===o.length||!this.duration)return!0;for(var s=n||this.media.currentTime||.2,c=o.length,g=0;gs)return!0;return!1}},{key:"resizePosition",value:function(){var n=this.videoPos,o=n.vy,s=n.vx,c=n.h,g=n.w,B=this.videoPos.rotate;if(!(B<0&&c<0&&g<0)){var O=this.videoPos._pi;if(!O&&this.media.videoHeight&&(O=this.media.videoWidth/this.media.videoHeight*100),O){this.videoPos.pi=O;var ne={rotate:B=B<0?0:B},we=0,$e=0,nt=1,Ft=Math.abs(B/90),ei=this.root,pi=this.innerContainer,Di=ei.offsetWidth,Ri=pi?pi.offsetHeight:ei.offsetHeight,Wi=Ri,Ki=Di;if(Ft%2==0)ne.scale=nt=c>0?100/c:g>0?100/g:1,we=o>0?(100-c)/2-o:0,ne.y=2===Ft?0-we:we,$e=s>0?(100-g)/2-s:0,ne.x=2===Ft?0-$e:$e,this.media.style.width="".concat(Ki,"px"),this.media.style.height="".concat(Wi,"px");else if(Ft%2==1){Wi=Di;var vn=Ri-Di;$e=-vn/2/(Ki=Ri)*100,ne.x=3===Ft?$e+o/2:$e-o/2,we=vn/2/Wi*100,ne.y=3===Ft?we+s/2:we-s/2,ne.scale=nt,this.media.style.width="".concat(Ki,"px"),this.media.style.height="".concat(Wi,"px")}var gn=ti.getTransformStyle(ne,this.media.style.transform||this.media.style.webkitTransform);this.media.style.transform=gn,this.media.style.webkitTransform=gn}}}},{key:"position",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{h:0,y:0,x:0,w:0};if(this.media&&n&&n.h){var o=this.videoPos;o.h=100*n.h||0,o.w=100*n.w||0,o.vx=100*n.x||0,o.vy=100*n.y||0,this.resizePosition()}}},{key:"setConfig",value:function(n){var o=this;n&&Object.keys(n).map(function(s){if("plugins"!==s){o.config[s]=n[s];var c=o.plugins[s.toLowerCase()];c&&"Function"===ti.typeOf(c.setConfig)&&c.setConfig(n[s])}})}},{key:"playNext",value:function(n){var o=this;this.resetState(),this.setConfig(n),this._currentTime=0,this._duration=0,Gg(this,"playnext",function(){o.start(),o.emit(ED,n)})}},{key:"resize",value:function(){var n=this;if(this.media){var o=this.root.getBoundingClientRect();this.sizeInfo.width=o.width,this.sizeInfo.height=o.height,this.sizeInfo.left=o.left,this.sizeInfo.top=o.top;var s=this.media,c=s.videoWidth,g=s.videoHeight,B=this.config,O=B.fitVideoSize,ne=B.videoFillMode;if(("fill"===ne||"cover"===ne||"contain"===ne)&&this.setAttribute("data-xgfill",ne),g&&c){this._videoHeight=g,this._videoWidth=c;var we=this.controls&&this.innerContainer?this.controls.root.getBoundingClientRect().height:0,$e=o.width,nt=o.height-we,Ft=parseInt(c/g*1e3,10),ei=parseInt($e/nt*1e3,10),pi=$e,Di=nt,Ri={};"auto"===O&&ei>Ft||"fixWidth"===O?(Di=$e/Ft*1e3,this.config.fluid?Ri.paddingTop="".concat(100*Di/pi,"%"):Ri.height="".concat(Di+we,"px")):("auto"===O&&eiFt)&&this.setAttribute("data-xgfill","cover");var Wi={videoScale:Ft,vWidth:pi,vHeight:Di,cWidth:pi,cHeight:Di+we};this.resizePosition(),this.emit(vm,Wi)}}}},{key:"updateObjectPosition",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.media.updateObjectPosition?this.media.updateObjectPosition(n,o):this.media.style.objectPosition="".concat(100*n,"% ").concat(100*o,"%")}},{key:"setState",value:function(n){ls.logInfo("setState","state from:".concat(h5[this.state]," to:").concat(h5[n])),this._state=n}},{key:"_preProcessUrl",value:function(n,o){var s=this.config.preProcessUrl;return ti.isBlob(n)||"function"!=typeof s?{url:n}:s(n,o)}},{key:"state",get:function(){return this._state}},{key:"isFullscreen",get:function(){return this.fullscreen}},{key:"isCssfullScreen",get:function(){return this.cssfullscreen}},{key:"hasStart",get:function(){return this._hasStart},set:function(n){"boolean"==typeof n&&(this._hasStart=n,!1===n&&this.setState(2),this.emit("hasstart"))}},{key:"isPlaying",get:function(){return 6===this._state||7===this._state},set:function(n){n?this.setState(6):this._state>=6&&this.setState(4)}},{key:"definitionList",get:function(){return this.config&&this.config.definition&&this.config.definition.list||[]},set:function(n){var o=this,s=this.config.definition,c=null,g=null;s.list=n,this.emit("resourceReady",n),n.forEach(function(B){var O;(null===(O=o.curDefinition)||void 0===O?void 0:O.definition)===B.definition&&(c=B),s.defaultDefinition===B.definition&&(g=B)}),!g&&n.length>0&&(g=n[0]),c?this.changeDefinition(c):g&&this.changeDefinition(g)}},{key:"videoFrameInfo",get:function(){var n={total:0,dropped:0,corrupted:0,droppedRate:0,droppedDuration:0};if(!this.media||!this.media.getVideoPlaybackQuality)return n;var o=this.media.getVideoPlaybackQuality();return n.dropped=o.droppedVideoFrames||0,n.total=o.totalVideoFrames||0,n.corrupted=o.corruptedVideoFrames||0,n.total>0&&(n.droppedRate=n.dropped/n.total*100,n.droppedDuration=parseInt(this.cumulateTime/n.total*n.dropped,0)),n}},{key:"lang",get:function(){return this.config.lang},set:function(n){0!==ty.langKeys.filter(function(s){return s===n}).length||"zh"===n?(this.config.lang=n,HA.setLang(n,this)):console.error("Sorry, set lang fail, because the language [".concat(n,"] is not supported now, list of all supported languages is [").concat(ty.langKeys.join(),"] "))}},{key:"i18n",get:function(){var n=this.config.lang;return"zh"===n&&(n="zh-cn"),this.__i18n.lang[n]||this.__i18n.lang.en}},{key:"i18nKeys",get:function(){return this.__i18n.textKeys||{}}},{key:"version",get:function(){return n3}},{key:"playerId",get:function(){return this._pluginInfoId}},{key:"url",get:function(){return this.__url||this.config.url},set:function(n){this.__url=n}},{key:"poster",get:function(){return this.plugins.poster?this.plugins.poster.config.poster:this.config.poster},set:function(n){this.plugins.poster&&this.plugins.poster.update(n)}},{key:"readyState",get:function(){return sa(qo(t.prototype),"readyState",this)}},{key:"error",get:function(){var n=sa(qo(t.prototype),"error",this);return this.i18n[n]||n}},{key:"networkState",get:function(){return sa(qo(t.prototype),"networkState",this)}},{key:"fullscreenChanging",get:function(){return null!==this._fullScreenOffset}},{key:"cumulateTime",get:function(){var n=this._accPlayed,o=n.acc,s=n.t;return s?(new Date).getTime()-s+o:o}},{key:"zoom",get:function(){return this.config.zoom},set:function(n){this.config.zoom=n}},{key:"videoRotateDeg",get:function(){return this.videoPos.rotate},set:function(n){(n=ti.convertDeg(n))%90==0&&n!==this.videoPos.rotate&&(this.videoPos.rotate=n,this.resizePosition())}},{key:"avgSpeed",get:function(){return f5},set:function(n){f5=n}},{key:"realTimeSpeed",get:function(){return g5},set:function(n){g5=n}},{key:"offsetCurrentTime",get:function(){return this._offsetInfo.currentTime||0},set:function(n){this._offsetInfo.currentTime=n}},{key:"offsetDuration",get:function(){return this._offsetInfo.duration||0},set:function(n){this._offsetInfo.duration=n||0}},{key:"hook",value:function(n,o){return ID.call.apply(ID,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"useHooks",value:function(n,o){return kD.call.apply(kD,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"removeHooks",value:function(n,o){return QD.call.apply(QD,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"usePluginHooks",value:function(n,o,s){for(var c=arguments.length,g=new Array(c>3?c-3:0),B=3;B3?c-3:0),B=3;B1&&void 0!==arguments[1]&&arguments[1];"boolean"==typeof o&&o!==this.muted&&(this.addInnerOP("volumechange"),this.muted=o),HA.setCurrentUserActive(this.playerId,n)}}],[{key:"debugger",get:function(){return ls.config.debug},set:function(n){ls.config.debug=n}},{key:"instManager",get:function(){return W0},set:function(n){W0=n}},{key:"getCurrentUserActivePlayerId",value:function(){var n;return null===(n=W0)||void 0===n?void 0:n.getActiveId()}},{key:"setCurrentUserActive",value:function(n,o){var s;null===(s=W0)||void 0===s||s.setActive(n,o)}},{key:"isHevcSupported",value:function(){return Ma.isHevcSupported()}},{key:"probeConfigSupported",value:function(n){return Ma.probeConfigSupported(n)}},{key:"install",value:function(n,o){t.plugins||(t.plugins={}),t.plugins[n]||(t.plugins[n]=o)}},{key:"use",value:function(n,o){t.plugins||(t.plugins={}),t.plugins[n]=o}}]),t}(UBe);function Fd(){return(new Date).getTime()}Hn(SD,"defaultPreset",null),Hn(SD,"XgVideoProxy",null),SD.instManager=p5.getInstance();var oEe=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s0&&s&&!c&&(ls.logInfo("[xgLogger]".concat(this.player.playerId," emitLog_firstFrame"),n),this._state.isFFLoading=!1,this._state.isFFSend=!0,this.emitLog("firstFrame",{fvt:this.fvt,costTime:this.fvt,vt:this.vt,startCostTime:this.startCostTime,loadedCostTime:this.loadedCostTime}))}},{key:"_startWaitTimeout",value:function(){var n=this;this._waittTimer&&ti.clearTimeout(this,this._waittTimer),this._waittTimer=ti.setTimeout(this,function(){n.suspendWaitingStatus("timeout"),ti.clearTimeout(n,n._waittTimer),n._waittTimer=null},this.config.waitTimeout)}},{key:"endState",value:function(n){this.suspendWaitingStatus(n),this.suspendSeekingStatus(n)}},{key:"suspendSeekingStatus",value:function(n){if(this.seekingStart){var o=Fd(),s=o-this.seekingStart;this.seekingStart=0,this.emitLog("seekEnd",{end:o,costTime:s,endType:n})}}},{key:"suspendWaitingStatus",value:function(n){if(this._waitTimer&&(ti.clearTimeout(this,this._waitTimer),this._waitTimer=null),this._waittTimer&&(ti.clearTimeout(this,this._waittTimer),this._waittTimer=null),this._isWaiting=!1,this.waitingStart){var o=Fd(),s=o-this.waitingStart,c=o-this.fixedWaitingStart,g=this.config.waitTimeout;this._isWaiting=!1,this.waitingStart=0,this.fixedWaitingStart=0,this.emitLog("waitingEnd",{fixedCostTime:c>g?g:c,costTime:s>g?g:s,type:"loadeddata"===n?1:this._waitType,endType:2===this._waitType?"seek":n})}}},{key:"emitLog",value:function(n,o){var s=this.player;this.emit(WN,Mc({t:Fd(),host:ti.getHostFromUrl(s.currentSrc),vtype:s.vtype,eventType:n,currentTime:this.player.currentTime,readyState:s.video.readyState,networkState:s.video.networkState},o))}}],[{key:"pluginName",get:function(){return"xgLogger"}},{key:"defaultConfig",get:function(){return{waitTimeout:1e4}}}]),t}(Fs);function aEe(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var sEe=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"registerIcons",value:function(){return{replay:aEe}}},{key:"afterCreate",value:function(){var n=this;Fs.insert(this.icons.replay,this.root,0),this.__handleReplay=this.hook("replayClick",function(){n.player.replay()},{pre:function(s){s.preventDefault(),s.stopPropagation()}}),this.bind(".xgplayer-replay",["click","touchend"],this.__handleReplay),this.on(J0,function(){if(n.playerConfig.loop||ti.addClass(n.player.root,"replay"),!n.config.disable){n.show();var o=n.root.querySelector("path");if(o){var s=window.getComputedStyle(o).getPropertyValue("transform");if("string"==typeof s&&s.indexOf("none")>-1)return null;o.setAttribute("transform",s)}}}),this.on(xu,function(){n.hide()})}},{key:"handleReplay",value:function(n){n.preventDefault(),n.stopPropagation(),this.player.replay(),ti.removeClass(this.player.root,"replay")}},{key:"show",value:function(n){this.config.disable||(this.root.style.display="flex")}},{key:"enable",value:function(){this.config.disable=!1}},{key:"disable",value:function(){this.config.disable=!0,this.hide()}},{key:"destroy",value:function(){this.unbind(".xgplayer-replay",["click","touchend"],this.__handleReplay)}},{key:"render",value:function(){return'\n ').concat(this.i18n.REPLAY,"\n ")}}],[{key:"pluginName",get:function(){return"replay"}},{key:"defaultConfig",get:function(){return{disable:!1}}}]),t}(Fs),m5=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"isEndedShow",get:function(){return this.config.isEndedShow},set:function(n){this.config.isEndedShow=n}},{key:"hide",value:function(){ti.addClass(this.root,"hide")}},{key:"show",value:function(n){ti.removeClass(this.root,"hide")}},{key:"beforeCreate",value:function(n){"string"==typeof n.player.config.poster&&(n.config.poster=n.player.config.poster)}},{key:"afterCreate",value:function(){var n=this;this.on(J0,function(){n.isEndedShow&&ti.removeClass(n.root,"hide")}),this.config.hideCanplay?(this.once(sh,function(){n.onTimeUpdate()}),this.on(Pb,function(){ti.removeClass(n.root,"hide"),ti.addClass(n.root,"xg-showplay"),n.once(sh,function(){n.onTimeUpdate()})})):this.on(xu,function(){ti.addClass(n.root,"hide")})}},{key:"onTimeUpdate",value:function(){var n=this;this.player.currentTime?ti.removeClass(this.root,"xg-showplay"):this.once(sh,function(){n.onTimeUpdate()})}},{key:"update",value:function(n){n&&(this.config.poster=n,this.root.style.backgroundImage="url(".concat(n,")"))}},{key:"getBgSize",value:function(n){var o="";switch(n){case"cover":o="cover";break;case"container":o="container";break;case"fixHeight":o="auto 100%";break;default:o=""}return o?"background-size: ".concat(o,";"):""}},{key:"render",value:function(){var n=this.config,o=n.poster,s=n.hideCanplay,g=n.notHidden,B=this.getBgSize(n.fillMode),O=o?"background-image:url(".concat(o,");").concat(B):B;return'\n ')}}],[{key:"pluginName",get:function(){return"poster"}},{key:"defaultConfig",get:function(){return{isEndedShow:!0,hideCanplay:!1,notHidden:!1,poster:"",fillMode:"fixWidth"}}}]),t}(Fs);function v3(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}function y3(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var Rp={};function _5(r){r?window.clearTimeout(r):Object.keys(Rp).map(function(a){window.clearTimeout(Rp[a].id),delete Rp[a]})}var v5=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),Hn(yn(n=a.call(this,i)),"onPlayerReset",function(){n.autoPlayStart=!1;var o="auto"===n.config.mode?"auto-hide":"hide";n.setAttr("data-state","play"),ti.removeClass(n.root,o),n.show()}),Hn(yn(n),"onAutoplayStart",function(){n.autoPlayStart||(ti.addClass(n.root,"auto"===n.config.mode?"auto-hide":"hide"),n.autoPlayStart=!0,n.onPlayPause("play"))}),n.autoPlayStart=!1,n}return po(t,[{key:"afterCreate",value:function(){var n=this,o=this.player,s=this.playerConfig;this.initIcons(),this.once(s3,function(){s&&(s.lang&&"en"===s.lang?ti.addClass(o.root,"lang-is-en"):"jp"===s.lang&&ti.addClass(o.root,"lang-is-jp"))}),this.on(j0,this.onAutoplayStart),s.autoplay||this.show(),this.on(l3,function(){var c="auto"===n.config.mode?"auto-hide":"hide";n.setAttr("data-state","play"),ti.removeClass(n.root,c),n.show()}),this.on(xu,function(){n.onPlayPause("play")}),this.on($v,function(){n.onPlayPause("pause")}),this.on(DD,function(){n.onPlayerReset()}),this.clickHandler=this.hook("startClick",this.switchPausePlay,{pre:function(g){g.cancelable&&g.preventDefault(),g.stopPropagation();var B=n.player.paused;n.emitUserAction(g,"switch_play_pause",{props:"paused",from:B,to:!B})}}),this.bind(["click","touchend"],this.clickHandler)}},{key:"registerIcons",value:function(){return{startPlay:{icon:v3,class:"xg-icon-play"},startPause:{icon:y3,class:"xg-icon-pause"}}}},{key:"initIcons",value:function(){var n=this.icons;this.appendChild("xg-start-inner",n.startPlay),this.appendChild("xg-start-inner",n.startPause)}},{key:"hide",value:function(){ti.addClass(this.root,"hide")}},{key:"show",value:function(n){ti.removeClass(this.root,"hide")}},{key:"focusHide",value:function(){ti.addClass(this.root,"focus-hide")}},{key:"recover",value:function(){ti.removeClass(this.root,"focus-hide")}},{key:"switchStatus",value:function(n){this.setAttr("data-state",n?this.player.paused?"pause":"play":this.player.paused?"play":"pause")}},{key:"animate",value:function(n){var o=this;this._animateId=function lEe(r,a){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{start:null,end:null};return Rp[r]&&window.clearTimeout(Rp[r].id),Rp[r]={},t.start&&t.start(),Rp[r].id=window.setTimeout(function(){t.end&&t.end(),window.clearTimeout(Rp[r].id),delete Rp[r]},a),Rp[r].id}("pauseplay",400,{start:function(){ti.addClass(o.root,"interact"),o.show(),o.switchStatus(!0)},end:function(){ti.removeClass(o.root,"interact"),!n&&o.hide(),o._animateId=null}})}},{key:"endAnimate",value:function(){ti.removeClass(this.root,"interact"),_5(this._animateId),this._animateId=null}},{key:"switchPausePlay",value:function(n){var o=this.player;n.cancelable&&n.preventDefault(),n.stopPropagation(),o.state<2||(this.player.paused||6!==o.state?o.play():o.pause())}},{key:"onPlayPause",value:function(n){var o=this.config,s=this.player;if(s&&!(s.state<6)&&this.autoPlayStart){if("show"===o.mode)return this.switchStatus(),void this.show();if("auto"===o.mode)return void this.switchStatus();if(o.isShowPause&&s.paused&&!s.ended||o.isShowEnd&&s.ended)return this.switchStatus(),this.show(),void this.endAnimate();if(o.disableAnimate)return this.switchStatus(),void this.hide();if("play"===n)this.autoPlayStart?this.animate():this.hide();else{if(!this.autoPlayStart||s.ended)return;this.animate()}}}},{key:"destroy",value:function(){this.unbind(["click","touchend"],this.clickHandler),_5(this._animateId)}},{key:"render",value:function(){return'\n \n \n ')}}],[{key:"pluginName",get:function(){return"start"}},{key:"defaultConfig",get:function(){return{isShowPause:!1,isShowEnd:!1,disableAnimate:!1,mode:"hide"}}}]),t}(Fs),y5=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"render",value:function(){var n=this.config.innerHtml,o=ti.createDom("xg-enter","",{},"xgplayer-enter");if(n&&n instanceof window.HTMLElement)o.appendChild(n);else if(n&&"string"==typeof n)o.innerHTML=n;else{for(var s="",c=1;c<=12;c++)s+='
');o.innerHTML='
'.concat(s,"
")}return o}}],[{key:"pluginName",get:function(){return"enter"}},{key:"defaultConfig",get:function(){return{innerHtml:"",logo:""}}}]),t}(Fs);function wm(r,a,t){try{return'
\n ').concat(r.i18n[a],"\n
")}catch{return'
'}}var w5=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"afterCreate",value:function(){this.getMini=this.getMini.bind(this),this.exitMini=this.exitMini.bind(this),this.bind("click",this.getMini)}},{key:"getMini",value:function(){this.config.onClick&&this.config.onClick()}},{key:"exitMini",value:function(){this.config.onClick&&this.config.onClick()}},{key:"destroy",value:function(){this.unbind(["click","touchend"],this.getMini)}},{key:"render",value:function(){var n="MINISCREEN";return'\n \n
').concat(this.i18n[n],"
\n
")}}],[{key:"pluginName",get:function(){return"miniscreenIcon"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:10}}}]),t}(Fs);function C5(r){var a=parseFloat(r);return-1===r.indexOf("%")&&!Number.isNaN(a)&&a}var w3=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],b5=w3.length;function x5(r){if("string"==typeof r&&(r=document.querySelector(r)),r&&"object"===Pd(r)&&r.nodeType){var a=function AEe(r){return window.getComputedStyle(r)}(r);if("none"===a.display)return function cEe(){for(var r={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return ho(this,t),(n=a.call(this)).isEnabled=!0,n.isDragging=!1,n.isDown=!1,n.position={},n.downPoint={},n.dragPoint={x:0,y:0},n.startPos={x:0,y:0},n._root=i instanceof Element?i:document.querySelector(i),n._handlerDom=o.handle instanceof Element?o.handle:document.querySelector(o.handle),n._root&&n._handlerDom?(n._bindStartEvent(),n):XP(n)}return po(t,[{key:"_bindStartEvent",value:function(){var n=this;this._startKey="ontouchstart"in window?"touchstart":"mousedown",this["on".concat(this._startKey)]=this["on".concat(this._startKey)].bind(this),this._handlerDom.addEventListener(this._startKey,this["on".concat(this._startKey)]),B5[this._startKey].map(function(o){n["on".concat(o)]=n["on".concat(o)].bind(n)})}},{key:"_unbindStartEvent",value:function(){this._handlerDom.removeEventListener(this._startKey,this["on".concat(this._startKey)])}},{key:"_bindPostStartEvents",value:function(n){var o=this;if(n){var s=B5[this._startKey];s.map(function(c){window.addEventListener(c,o["on".concat(c)])}),this._boundPointerEvents=s}}},{key:"_unbindPostStartEvents",value:function(){var n=this;this._boundPointerEvents&&(this._boundPointerEvents.map(function(o){window.removeEventListener(o,n["on".concat(o)])}),delete this._boundPointerEvents)}},{key:"enable",value:function(){this.isEnabled=!0}},{key:"disable",value:function(){this.isEnabled=!1,this.isDragging&&this.onUp()}},{key:"onDocUp",value:function(n){this.onUp()}},{key:"animate",value:function(){var n=this;this.isDragging&&(this.positionDrag(),window.requestAnimationFrame(function(){n.animate()}))}},{key:"positionDrag",value:function(){var n="translate3d(".concat(this.dragPoint.x,"px, ").concat(this.dragPoint.y,"px, 0)");this._root.style.transform=n,this._root.style.webKitTransform=n}},{key:"setLeftTop",value:function(){this._root.style.left=this.position.x+"px",this._root.style.top=this.position.y+"px"}},{key:"onmousedown",value:function(n){this.dragStart(n,n)}},{key:"onmousemove",value:function(n){this.dragMove(n,n)}},{key:"onmouseup",value:function(n){this.dragEnd(n,n)}},{key:"ontouchstart",value:function(n){var o=n.changedTouches[0];this.dragStart(n,o),this.touchIdentifier=void 0!==o.pointerId?o.pointerId:o.identifier,n.preventDefault()}},{key:"ontouchmove",value:function(n){var o=C3(n.changedTouches,this.touchIdentifier);o&&this.dragMove(n,o)}},{key:"ontouchend",value:function(n){var o=C3(n.changedTouches,this.touchIdentifier);o&&this.dragEnd(n,o),n.preventDefault()}},{key:"ontouchcancel",value:function(n){var o=C3(n.changedTouches,this.touchIdentifier);o&&this.dragCancel(n,o)}},{key:"dragStart",value:function(n,o){if(this._root&&!this.isDown&&this.isEnabled){this.downPoint=o,this.dragPoint.x=0,this.dragPoint.y=0,this._getPosition();var s=x5(this._root);this.startPos.x=this.position.x,this.startPos.y=this.position.y,this.startPos.maxY=window.innerHeight-s.height,this.startPos.maxX=window.innerWidth-s.width,this.setLeftTop(),this.isDown=!0,this._bindPostStartEvents(n)}}},{key:"dragRealStart",value:function(n,o){this.isDragging=!0,this.animate(),this.emit("dragStart",this.startPos)}},{key:"dragEnd",value:function(n,o){this._root&&(this._unbindPostStartEvents(),this.isDragging&&(this._root.style.transform="",this.setLeftTop(),this.emit("dragEnded")),this.presetInfo())}},{key:"_dragPointerMove",value:function(n,o){var s={x:o.pageX-this.downPoint.pageX,y:o.pageY-this.downPoint.pageY};return!this.isDragging&&this.hasDragStarted(s)&&this.dragRealStart(n,o),s}},{key:"dragMove",value:function(n,o){if(n=n||window.event,this.isDown){var s=this.startPos,c=s.x,g=s.y,B=this._dragPointerMove(n,o),O=B.x,ne=B.y;O=this.checkContain("x",O,c),ne=this.checkContain("y",ne,g),this.position.x=c+O,this.position.y=g+ne,this.dragPoint.x=O,this.dragPoint.y=ne,this.emit("dragMove",this.position)}}},{key:"dragCancel",value:function(n,o){this.dragEnd(n,o)}},{key:"presetInfo",value:function(){this.isDragging=!1,this.startPos={x:0,y:0},this.dragPoint={x:0,y:0},this.isDown=!1}},{key:"destroy",value:function(){this._unbindStartEvent(),this._unbindPostStartEvents(),this.isDragging&&this.dragEnd(),this.removeAllListeners(),this._handlerDom=null}},{key:"hasDragStarted",value:function(n){return Math.abs(n.x)>3||Math.abs(n.y)>3}},{key:"checkContain",value:function(n,o,s){return o+s<0?0-s:"x"===n&&o+s>this.startPos.maxX?this.startPos.maxX-s:"y"===n&&o+s>this.startPos.maxY?this.startPos.maxY-s:o}},{key:"_getPosition",value:function(){var n=window.getComputedStyle(this._root),o=this._getPositionCoord(n.left,"width"),s=this._getPositionCoord(n.top,"height");this.position.x=Number.isNaN(o)?0:o,this.position.y=Number.isNaN(s)?0:s,this._addTransformPosition(n)}},{key:"_addTransformPosition",value:function(n){var o=n.transform;if(0===o.indexOf("matrix")){var s=o.split(","),c=0===o.indexOf("matrix3d")?12:4,g=parseInt(s[c],10),B=parseInt(s[c+1],10);this.position.x+=g,this.position.y+=B}}},{key:"_getPositionCoord",value:function(n,o){if(-1!==n.indexOf("%")){var s=x5(this._root.parentNode);return s?parseFloat(n)/100*s[o]:0}return parseInt(n,10)}}]),t}(ON()),uEe=function(r){Jo(t,r);var a=jo(t);function t(i){var n;ho(this,t),Hn(yn(n=a.call(this,i)),"onCancelClick",function(c){n.exitMini(),n.isClose=!0}),Hn(yn(n),"onCenterClick",function(c){var B=yn(n).player;B.paused?B.play():B.pause()}),Hn(yn(n),"onScroll",function(c){if(!(!window.scrollY&&0!==window.scrollY||Math.abs(window.scrollY-n.pos.scrollY)<50)){var g=parseInt(ti.getCss(n.player.root,"height"));g+=n.config.scrollTop,n.pos.scrollY=window.scrollY,window.scrollY>g+5?!n.isMini&&!n.isClose&&n.getMini():window.scrollY<=g&&(n.isMini&&n.exitMini(),n.isClose=!1)}}),n.isMini=!1,n.isClose=!1;var s=yn(n).config;return n.pos={left:s.left<0?window.innerWidth-s.width-20:s.left,top:s.top<0?window.innerHeight-s.height-20:s.top,height:n.config.height,width:n.config.width,scrollY:window.scrollY||0},n.lastStyle=null,n}return po(t,[{key:"beforeCreate",value:function(n){"boolean"==typeof n.player.config.mini&&(n.config.isShowIcon=n.player.config.mini)}},{key:"afterCreate",value:function(){var n=this;this.initIcons(),this.on($v,function(){n.setAttr("data-state","pause")}),this.on(xu,function(){n.setAttr("data-state","play")})}},{key:"onPluginsReady",value:function(){var n=this;if(!this.config.disable){this.config.isShowIcon&&this.player.controls.registerPlugin(w5,{config:{onClick:function(){n.getMini()}}},w5.pluginName);var g=ti.checkTouchSupport()?"touchend":"click";this.bind(".mini-cancel-btn",g,this.onCancelClick),this.bind(".play-icon",g,this.onCenterClick),this.config.disableDrag||(this._draggabilly=new dEe(this.player.root,{handle:this.root})),this.config.isScrollSwitch&&window.addEventListener("scroll",this.onScroll)}}},{key:"registerIcons",value:function(){return{play:{icon:v3,class:"xg-icon-play"},pause:{icon:y3,class:"xg-icon-pause"}}}},{key:"initIcons",value:function(){var n=this.icons;this.appendChild(".play-icon",n.play),this.appendChild(".play-icon",n.pause)}},{key:"getMini",value:function(){var n=this;if(!this.isMini){var o=this.player,s=this.playerConfig,c=this.config.target||this.player.root;this.lastStyle={},ti.addClass(o.root,"xgplayer-mini"),["width","height","top","left"].map(function(g){n.lastStyle[g]=c.style[g],c.style[g]="".concat(n.pos[g],"px")}),s.fluid&&(c.style["padding-top"]=""),this.emit(BD,!0),o.isMini=this.isMini=!0}}},{key:"exitMini",value:function(){var n=this;if(!this.isMini)return!1;var o=this.player,s=this.playerConfig,c=this.config.target||this.player.root;ti.removeClass(o.root,"xgplayer-mini"),this.lastStyle&&Object.keys(this.lastStyle).map(function(g){c.style[g]=n.lastStyle[g]}),this.lastStyle=null,s.fluid&&(o.root.style.width="100%",o.root.style.height="0",o.root.style["padding-top"]="".concat(100*s.height/s.width,"%")),this.emit(BD,!1),this.isMini=o.isMini=!1}},{key:"destroy",value:function(){window.removeEventListener("scroll",this.onScroll);var n=ti.checkTouchSupport()?"touchend":"click";this.unbind(".mini-cancel-btn",n,this.onCancelClick),this.unbind(".play-icon",n,this.onCenterClick),this._draggabilly&&this._draggabilly.destroy(),this._draggabilly=null,this.exitMini()}},{key:"render",value:function(){if(!this.config.disable)return'\n \n \n '.concat(wm(this,"MINI_DRAG",this.playerConfig.isHideTips),'\n \n
\n \n \n \n
\n
\n
\n
')}}],[{key:"pluginName",get:function(){return"miniscreen"}},{key:"defaultConfig",get:function(){return{index:10,disable:!1,width:320,height:180,left:-1,top:-1,isShowIcon:!1,isScrollSwitch:!1,scrollTop:0,disableDrag:!1}}}]),t}(Fs),PD={mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mousemove:"onMouseMove"},x3=["videoClick","videoDbClick"],Lb=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s0&&o.replay():o.paused?o.play():o.pause()}},{key:"onContextmenu",value:function(n){(n=n||window.event).preventDefault&&n.preventDefault(),n.stopPropagation?n.stopPropagation():(n.returnValue=!1,n.cancelBubble=!0)}},{key:"destroy",value:function(){var n=this,o=this.player,s=o.video,c=o.root;this.clickTimer&&clearTimeout(this.clickTimer),c.removeEventListener("click",this.onVideoClick,!1),c.removeEventListener("dblclick",this.onVideoDblClick,!1),s.removeEventListener("contextmenu",this.onContextmenu,!1),Object.keys(PD).map(function(g){c.removeEventListener(g,n[PD[g]],!1)})}}],[{key:"pluginName",get:function(){return"pc"}},{key:"defaultConfig",get:function(){return{}}}]),t}(Zh),hEe={start:"touchstart",end:"touchend",move:"touchmove",cancel:"touchcancel"},pEe={start:"mousedown",end:"mouseup",move:"mousemove",cancel:"mouseleave"};function E5(r){return r&&r.length>0?r[r.length-1]:null}var fEe=function(){function r(a){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{eventType:"touch"};ho(this,r),Hn(this,"onTouchStart",function(n){var o=t._pos,s=t.root,c=E5(n.touches);o.x=c?parseInt(c.pageX,10):n.pageX,o.y=c?parseInt(c.pageX,10):n.pageX,o.start=!0,t.__setPress(n),s.addEventListener(t.events.end,t.onTouchEnd),s.addEventListener(t.events.cancel,t.onTouchCancel),s.addEventListener(t.events.move,t.onTouchMove),t.trigger("touchstart",n)}),Hn(this,"onTouchCancel",function(n){t.onTouchEnd(n)}),Hn(this,"onTouchEnd",function(n){var o=t._pos,s=t.root;t.__clearPress(),s.removeEventListener(t.events.cancel,t.onTouchCancel),s.removeEventListener(t.events.end,t.onTouchEnd),s.removeEventListener(t.events.move,t.onTouchMove),n.moving=o.moving,n.press=o.press,o.press&&t.trigger("pressend",n),t.trigger("touchend",n),!o.press&&!o.moving&&t.__setDb(n),o.press=!1,o.start=!1,o.moving=!1}),Hn(this,"onTouchMove",function(n){var o=t._pos,s=t.config,c=E5(n.touches),g=c?parseInt(c.pageX,10):n.pageX,B=c?parseInt(c.pageY,10):n.pageX,O=g-o.x;Math.abs(B-o.y)=0&&this.__handlers[t].splice(o,1)}}},{key:"trigger",value:function(t,i){this.__handlers[t]&&this.__handlers[t].map(function(n){try{n(i)}catch(o){console.error("trigger>>:".concat(t),o)}})}},{key:"destroy",value:function(){var t=this,i={touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"};Object.keys(i).forEach(function(n){t.root.removeEventListener(n,t[i[n]])})}}]),r}();function mEe(){return(new DOMParser).parseFromString('\n \n \n',"image/svg+xml").firstChild}var B3=["videoClick","videoDbClick"],M5=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),Hn(yn(n=a.call(this,i)),"onTouchStart",function(o){var s=yn(n),c=s.player,g=s.config,B=s.pos,O=s.playerConfig,ne=n.getTouche(o);if(ne&&!g.disableGesture&&n.duration>0&&!c.ended){B.isStart=!0,ti.checkIsFunction(O.disableSwipeHandler)&&O.disableSwipeHandler(),n.find(".xg-dur").innerHTML=ti.format(n.duration);var we=n.root.getBoundingClientRect();90===c.rotateDeg?(B.top=we.left,B.left=we.top,B.width=we.height,B.height=we.width):(B.top=we.top,B.left=we.left,B.width=we.width,B.height=we.height);var $e=parseInt(ne.pageX-B.left,10),nt=parseInt(ne.pageY-B.top,10);B.x=90===c.rotateDeg?nt:$e,B.y=90===c.rotateDeg?$e:nt,B.scopeL=g.scopeL*B.width,B.scopeR=(1-g.scopeR)*B.width,B.scopeM1=B.width*(1-g.scopeM)/2,B.scopeM2=B.width-B.scopeM1}}),Hn(yn(n),"onTouchMove",function(o){var s=n.getTouche(o),c=yn(n),g=c.pos,B=c.config,O=c.player;if(s&&!B.disableGesture&&n.duration&&g.isStart){var ne=B.miniMoveStep,we=B.hideControlsActive,$e=parseInt(s.pageX-g.left,10),nt=parseInt(s.pageY-g.top,10),Ft=90===O.rotateDeg?nt:$e,ei=90===O.rotateDeg?$e:nt;if(Math.abs(Ft-g.x)>ne||Math.abs(ei-g.y)>ne){var pi=Ft-g.x,Di=ei-g.y,Ri=g.scope;if(-1===Ri&&(0===(Ri=n.checkScope(Ft,ei,pi,Di,g))&&(we?O.blur():O.focus({autoHide:!1}),!g.time&&(g.time=parseInt(1e3*O.currentTime,10)+1e3*n.timeOffset)),g.scope=Ri),-1===Ri||Ri>0&&!B.gestureY||0===Ri&&!B.gestureX)return;o.cancelable&&o.preventDefault(),n.executeMove(pi,Di,Ri,g.width,g.height),g.x=Ft,g.y=ei}}}),Hn(yn(n),"onTouchEnd",function(o){var s=yn(n),c=s.player,g=s.pos,B=s.playerConfig;if(g.isStart){g.scope>-1&&o.cancelable&&o.preventDefault();var O=n.config;!O.disableGesture&&O.gestureX?(n.endLastMove(g.scope),setTimeout(function(){c.getPlugin("progress")&&c.getPlugin("progress").resetSeekState()},10)):g.time=0,g.scope=-1,n.resetPos(),ti.checkIsFunction(B.enableSwipeHandler)&&B.enableSwipeHandler(),n.changeAction("auto")}}),Hn(yn(n),"onRootTouchMove",function(o){n.config.disableGesture||!n.config.gestureX||n.checkIsRootTarget(o)&&(o.stopPropagation(),n.pos.isStart?n.onTouchMove(o):n.onTouchStart(o))}),Hn(yn(n),"onRootTouchEnd",function(o){n.pos.isStart&&n.checkIsRootTarget(o)&&(o.stopPropagation(),n.onTouchEnd(o))}),n.pos={isStart:!1,x:0,y:0,time:0,volume:0,rate:1,light:0,width:0,height:0,scopeL:0,scopeR:0,scopeM1:0,scopeM2:0,scope:-1},n.timer=null,n}return po(t,[{key:"duration",get:function(){return this.playerConfig.customDuration||this.player.duration}},{key:"timeOffset",get:function(){return this.playerConfig.timeOffset||0}},{key:"registerIcons",value:function(){return{seekTipIcon:{icon:mEe,class:"xg-seek-pre"}}}},{key:"afterCreate",value:function(){var n=this;B3.map(function(ne){n.__hooks[ne]=null});var o=this.playerConfig,s=this.config,c=this.player;!0===o.closeVideoDblclick&&(s.closedbClick=!0),this.resetPos(),ti.isUndefined(o.disableGesture)||(s.disableGesture=!!o.disableGesture),this.appendChild(".xg-seek-icon",this.icons.seekTipIcon),this.xgMask=ti.createDom("xg-mask","",{},"xgmask"),c.root.appendChild(this.xgMask),this.initCustomStyle(),this.registerThumbnail(),this.touch=new fEe(this.root,{eventType:"mouse"===this.domEventType?"mouse":"touch",needPreventDefault:!this.config.disableGesture}),this.root.addEventListener("contextmenu",function(ne){ne.preventDefault()}),c.root.addEventListener("touchmove",this.onRootTouchMove,!0),c.root.addEventListener("touchend",this.onRootTouchEnd,!0),this.on(_m,function(){var ne=n.player,we=n.config;1e3*ne.duration0&&(n.pos.time=0)});var B={touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",press:"onPress",pressend:"onPressEnd",click:"onClick",doubleclick:"onDbClick"};if(Object.keys(B).map(function(ne){n.touch.on(ne,function(we){n[B[ne]](we)})}),!s.disableActive){var O=c.plugins.progress;O&&(O.addCallBack("dragmove",function(ne){n.activeSeekNote(ne.currentTime,ne.forward)}),O.addCallBack("dragend",function(){n.changeAction("auto")}))}}},{key:"registerThumbnail",value:function(){var o=this.player.plugins.thumbnail;if(o&&o.usable){this.thumbnail=o.createThumbnail(null,"mobile-thumbnail");var s=this.find(".time-preview");s.insertBefore(this.thumbnail,s.children[0])}}},{key:"initCustomStyle",value:function(){var o=(this.playerConfig||{}).commonStyle,s=o.playedColor,c=o.progressColor;s&&(this.find(".xg-curbar").style.backgroundColor=s,this.find(".xg-cur").style.color=s),c&&(this.find(".xg-bar").style.backgroundColor=c,this.find(".time-preview").style.color=c),this.config.disableTimeProgress&&ti.addClass(this.find(".xg-timebar"),"hide")}},{key:"resetPos",value:function(){var n=this;this.pos?(this.pos.isStart=!1,this.pos.scope=-1,["x","y","width","height","scopeL","scopeR","scopeM1","scopeM2"].map(function(o){n.pos[o]=0})):this.pos={isStart:!1,x:0,y:0,volume:0,rate:1,light:0,width:0,height:0,scopeL:0,scopeR:0,scopeM1:0,scopeM2:0,scope:-1,time:0}}},{key:"changeAction",value:function(n){var o=this.player;this.root.setAttribute("data-xg-action",n);var c=o.plugins.start;c&&c.recover()}},{key:"getTouche",value:function(n){var s=n.touches&&n.touches.length>0?n.touches[n.touches.length-1]:n;return{pageX:s.pageX,pageY:s.pageY}}},{key:"checkScope",value:function(n,o,s,c,g){var O=-1;if(n<0||n>g.width)return O;var ne=Math.abs(0===c?s:s/c);return Math.abs(s)>0&&ne>=1.73&&n>g.scopeM1&&ng.scopeR?2:3),O}},{key:"executeMove",value:function(n,o,s,c,g){switch(s){case 0:this.updateTime(n/c*this.config.scopeM);break;case 1:this.updateBrightness(o/g);break;case 2:Ma.os.isIos||this.updateVolume(o/g)}}},{key:"endLastMove",value:function(n){var o=this,c=this.player,g=this.config;0===n&&(c.seek(Number((this.pos.time-this.timeOffset)/1e3).toFixed(1)),g.hideControlsEnd?c.blur():c.focus(),this.timer=setTimeout(function(){o.pos.time=0},500)),this.changeAction("auto")}},{key:"checkIsRootTarget",value:function(n){var o=this.player.plugins||{};return(!o.progress||!o.progress.root.contains(n.target))&&(o.start&&o.start.root.contains(n.target)||o.controls&&o.controls.root.contains(n.target))}},{key:"sendUseAction",value:function(n){var o=this.player.paused;this.emitUserAction(n,"switch_play_pause",{prop:"paused",from:o,to:!o})}},{key:"clickHandler",value:function(n){var o=this.player,s=this.config,c=this.playerConfig;o.state<6?c.closeVideoClick||(this.sendUseAction(ti.createEvent("click")),o.play()):!s.closedbClick||c.closeVideoClick?o.isActive?o.blur():o.focus():c.closeVideoClick||((o.isActive||s.focusVideoClick)&&(this.sendUseAction(ti.createEvent("click")),this.switchPlayPause()),o.focus())}},{key:"dbClickHandler",value:function(n){!this.config.closedbClick&&this.player.state>=6&&(this.sendUseAction(ti.createEvent("dblclick")),this.switchPlayPause())}},{key:"onClick",value:function(n){var o=this;Gg(this,B3[0],function(c,g){o.clickHandler(g.e)},{e:n,paused:this.player.paused})}},{key:"onDbClick",value:function(n){var o=this;Gg(this,B3[1],function(c,g){o.dbClickHandler(g.e)},{e:n,paused:this.player.paused})}},{key:"onPress",value:function(n){var s=this.config,c=this.player;s.disablePress||(this.pos.rate=this.player.playbackRate,this.emitUserAction("press","change_rate",{prop:"playbackRate",from:c.playbackRate,to:s.pressRate}),c.playbackRate=s.pressRate,this.changeAction("playbackrate"))}},{key:"onPressEnd",value:function(n){var o=this.pos,c=this.player;this.config.disablePress||(this.emitUserAction("pressend","change_rate",{prop:"playbackRate",from:c.playbackRate,to:o.rate}),c.playbackRate=o.rate,o.rate=1,this.changeAction("auto"))}},{key:"updateTime",value:function(n){var o=this.player,s=this.config,c=this.player.duration;n=Number(n.toFixed(4));var g=parseInt(n*s.moveDuration,10)+this.timeOffset;g=(g+=this.pos.time)<0?0:g>1e3*c?1e3*c-200:g,o.getPlugin("time")&&o.getPlugin("time").updateTime(g/1e3),o.getPlugin("progress")&&o.getPlugin("progress").updatePercent(g/1e3/this.duration,!0),this.activeSeekNote(g/1e3,n>0),s.isTouchingSeek&&o.seek(Number((g-this.timeOffset)/1e3).toFixed(1)),this.pos.time=g}},{key:"updateVolume",value:function(n){this.player.rotateDeg&&(n=-n);var o=this.player,s=this.pos;if(n=parseInt(100*n,10),s.volume+=n,!(Math.abs(s.volume)<10)){var c=parseInt(10*o.volume,10)-parseInt(s.volume/10,10);o.volume=(c=c>10?10:c<1?0:c)/10,s.volume=0}}},{key:"updateBrightness",value:function(n){this.player.rotateDeg&&(n=-n);var o=this.pos,s=this.config,c=this.xgMask,g=o.light+.8*n;g=g>s.maxDarkness?s.maxDarkness:g<0?0:g,c&&(c.style.backgroundColor="rgba(0,0,0,".concat(g,")")),o.light=g}},{key:"activeSeekNote",value:function(n){var o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=this.player;if(n&&"number"==typeof n&&this.duration!==1/0&&this.duration>0&&!this.config.disableActive){n<0?n=0:n>s.duration&&(n=s.duration-.2),this.changeAction("seeking");var B=s.plugins.start;B&&B.focusHide(),this.find(".xg-dur").innerHTML=ti.format(this.duration),this.find(".xg-cur").innerHTML=ti.format(n),this.find(".xg-curbar").style.width="".concat(n/this.duration*100,"%"),o?ti.removeClass(this.find(".xg-seek-show"),"xg-back"):ti.addClass(this.find(".xg-seek-show"),"xg-back"),this.updateThumbnails(n)}}},{key:"updateThumbnails",value:function(n){var s=this.player.plugins.thumbnail;s&&s.usable&&this.thumbnail&&s.update(this.thumbnail,n,160,90)}},{key:"switchPlayPause",value:function(){var n=this.player;if(n.state<4)return!1;n.ended||(n.paused?n.play():n.pause())}},{key:"disableGesture",value:function(){this.config.disableGesture=!1}},{key:"enableGesture",value:function(){this.config.disableGesture=!0}},{key:"destroy",value:function(){var n=this.player;this.timer&&clearTimeout(this.timer),this.thumbnail=null,n.root.removeChild(this.xgMask),this.xgMask=null,this.touch&&this.touch.destroy(),this.touch=null,n.root.removeEventListener("touchmove",this.onRootTouchMove,!0),n.root.removeEventListener("touchend",this.onRootTouchEnd,!0)}},{key:"render",value:function(){var n="normal"!==this.config.gradient?"gradient ".concat(this.config.gradient):"gradient";return'\n \n
\n
\n
\n \n 00:00\n /\n 00:00\n
\n
\n
\n
\n
\n
\n ').concat(this.config.pressRate,"X").concat(this.i18n.FORWARD,"\n
\n
\n ")}}],[{key:"pluginName",get:function(){return"mobile"}},{key:"defaultConfig",get:function(){return{index:0,disableGesture:!1,gestureX:!0,gestureY:!0,gradient:"normal",isTouchingSeek:!1,miniMoveStep:5,miniYPer:5,scopeL:.25,scopeR:.25,scopeM:.9,pressRate:2,darkness:!0,maxDarkness:.8,disableActive:!1,disableTimeProgress:!1,hideControlsActive:!1,hideControlsEnd:!1,moveDuration:36e4,closedbClick:!1,disablePress:!0,disableSeekIcon:!1,focusVideoClick:!1}}}]),t}(Fs);function _Ee(r){r.preventDefault(),r.returnValue=!1}function D5(r){var a=r.tagName;return!("INPUT"!==a&&"TEXTAREA"!==a&&!r.isContentEditable)}var FD=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s0&&c-g>.9*o)}},{key:"checkCode",value:function(n,o){var s=this,c=!1;return Object.keys(this.keyCodeMap).map(function(g){s.keyCodeMap[g]&&n===s.keyCodeMap[g].keyCode&&!s.keyCodeMap[g].disable&&(c=!o||o&&!s.keyCodeMap[g].noBodyTarget)}),c}},{key:"downVolume",value:function(n){var o=this.player;if(!(o.volume<=0)){var s=parseFloat((o.volume-.1).toFixed(1));this.emitUserAction(n,"change_volume",{props:{volume:{from:o.volume,to:s}}}),o.volume=s>=0?s:0}}},{key:"upVolume",value:function(n){var o=this.player;if(!(o.volume>=1)){var s=parseFloat((o.volume+.1).toFixed(1));this.emitUserAction(n,"change_volume",{props:{volume:{from:o.volume,to:s}}}),o.volume=s<=1?s:1}}},{key:"seek",value:function(n){var o=this.player,s=o.currentTime,c=o.offsetCurrentTime,O=o.timeSegments,ne=c>-1?c:s,we=o.offsetDuration||o.duration,$e=n.repeat&&this.seekStep>=4?parseInt(this.seekStep/2,10):this.seekStep;ne+$e<=we?ne+=$e:ne=we;var nt=ti.getCurrentTimeByOffset(ne,O);this.emitUserAction(n,"seek",{props:{currentTime:{from:s,to:nt}}}),this.player.currentTime=nt}},{key:"seekBack",value:function(n){var o=this.player,s=o.currentTime,c=o.offsetCurrentTime,g=o.timeSegments,ne=(c>-1?c:s)-(n.repeat?parseInt(this.seekStep/2,10):this.seekStep);ne<0&&(ne=0),ne=ti.getCurrentTimeByOffset(ne,g),this.emitUserAction(n,"seek",{props:{currentTime:{from:s,to:ne}}}),this.player.currentTime=ne}},{key:"changePlaybackRate",value:function(n){var o=this._keyState,s=this.config,c=this.player;0===o.playbackRate&&(o.playbackRate=c.playbackRate,c.playbackRate=s.playbackRate)}},{key:"playPause",value:function(n){var o=this.player;o&&(this.emitUserAction(n,"switch_play_pause"),o.paused?o.play():o.pause())}},{key:"exitFullscreen",value:function(n){var o=this.player,s=o.fullscreen,c=o.cssfullscreen;s&&(this.emitUserAction("keyup","switch_fullscreen",{prop:"fullscreen",from:s,to:!s}),o.exitFullscreen()),c&&(this.emitUserAction("keyup","switch_css_fullscreen",{prop:"cssfullscreen",from:c,to:!c}),o.exitCssFullscreen())}},{key:"handleKeyDown",value:function(n){var o=this._keyState;if(n.repeat){o.isPress=!0;var s=Date.now();if(s-o.tt<200)return;o.tt=s}this.handleKeyCode(n.keyCode,n,o.isPress)}},{key:"handleKeyUp",value:function(n){var o=this._keyState;o.playbackRate>0&&(this.player.playbackRate=o.playbackRate,o.playbackRate=0),o.isKeyDown=!1,o.isPress=!1,o.tt=0}},{key:"handleKeyCode",value:function(n,o,s){for(var c=Object.keys(this.keyCodeMap),g=0;g\n \n\n',"image/svg+xml").firstChild}var T5=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"registerIcons",value:function(){return{loadingIcon:vEe}}},{key:"afterCreate",value:function(){this.appendChild("xg-loading-inner",this.icons.loadingIcon)}},{key:"render",value:function(){return'\n \n \n '}}],[{key:"pluginName",get:function(){return"loading"}},{key:"defaultConfig",get:function(){return{position:_l.ROOT}}}]),t}(Fs),yEe=[{tag:"xg-cache",className:"xgplayer-progress-cache",styleKey:"cachedColor"},{tag:"xg-played",className:"xgplayer-progress-played",styleKey:"playedColor"}],wEe=function(){function r(a){ho(this,r),this.fragments=a.fragments||[],0===this.fragments.length&&this.fragments.push({percent:1}),this._callBack=a.actionCallback,this.fragConfig={fragFocusClass:a.fragFocusClass||"inner-focus-point",fragAutoFocus:!!a.fragAutoFocus,fragClass:a.fragClass||""},this.style=a.style||{playedColor:"",cachedColor:"",progressColor:""},this.duration=0,this.cachedIndex=0,this.playedIndex=0,this.focusIndex=-1}return po(r,[{key:"updateDuration",value:function(t){var i=this;this.duration=t;var n=0;this.fragments=this.fragments.map(function(s){return s.start=parseInt(n,10),s.end=parseInt(n+s.percent*i.duration,10),s.duration=parseInt(s.percent*i.duration,10),n+=s.percent*i.duration,s})}},{key:"updateProgress",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"played",i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{newIndex:0,curIndex:0,millisecond:0},n=this.progressList,o=this.fragments;if(!(n.length<1)){var s=i.newIndex,g=i.millisecond;s!==i.curIndex&&n.map(function(ne,we){wes&&(ne[t].style.width=0)});var B=o[s],O=0===g?0:(g-B.start)/B.duration;n[s][t].style.width=O<0?0:"".concat(100*O,"%")}}},{key:"updateFocus",value:function(t){if(this.fragConfig.fragAutoFocus&&!(this.fragments.length<2)){if(!t)return void(this.focusIndex>-1&&(this.unHightLight(this.focusIndex),this._callBack&&this._callBack({index:-1,preIndex:this.focusIndex,fragment:null}),this.focusIndex=-1));var n=this.findIndex(1e3*t.currentTime,this.focusIndex);if(n>=0&&n!==this.focusIndex){this.focusIndex>-1&&this.unHightLight(this.focusIndex),this.setHightLight(n);var o={index:n,preIndex:this.focusIndex,fragment:this.fragments[this.focusIndex]};this.focusIndex=n,this._callBack&&this._callBack(o)}}}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cached:0,played:0},i=arguments.length>1?arguments[1]:void 0;if(!this.duration||parseInt(1e3*i,10)!==this.duration){if(!i&&0!==i)return;this.updateDuration(parseInt(1e3*i,10))}var n=this.playedIndex,o=this.cachedIndex;if("Undefined"!==ti.typeOf(t.played)){var s=this.findIndex(1e3*t.played,n);if(s<0)return;this.updateProgress("played",{newIndex:s,curIndex:n,millisecond:parseInt(1e3*t.played,10)}),this.playedIndex=s}if("Undefined"!==ti.typeOf(t.cached)){var c=this.findIndex(1e3*t.cached,o);if(c<0)return;this.updateProgress("cached",{newIndex:c,curIndex:o,millisecond:parseInt(1e3*t.cached,10)}),this.cachedIndex=c}}},{key:"findIndex",value:function(t,i){var n=this.fragments;if(!n||0===n.length)return-1;if(1===n.length)return 0;if(i>-1&&in[i].start&&tn[n.length-1].start)return n.length-1;for(var o=0;on[o].start&&t<=n[o].end){i=o;break}return i}},{key:"findHightLight",value:function(){for(var t=this.root.children,i=0;i=i.length?null:{dom:i[t],pos:i[t].getBoundingClientRect()}}},{key:"unHightLight",value:function(){for(var t=this.root.children,i=0;i0;)this.root.removeChild(n[0]);this.render()}}},{key:"render",value:function(){var t=this,i=this.style.progressColor;if(this.root||(this.root=ti.createDom("xg-inners","",{},"progress-list")),this.fragments){var n=this.fragConfig,o=n.fragClass,s=n.fragFocusClass;this.progressList=this.fragments.map(function(c){var g=ti.createDom("xg-inner","",{style:i?"background:".concat(i,"; flex: ").concat(c.percent):"flex: ".concat(c.percent)},"".concat(c.isFocus?s:""," xgplayer-progress-inner ").concat(o));return t.root.appendChild(g),yEe.forEach(function(B){g.appendChild(ti.createDom(B.tag,"",{style:B.styleKey?"background: ".concat(t.style[B.styleKey],"; width:0;"):"width:0;"},B.className))}),{cached:g.children[0],played:g.children[1]}})}return this.root}}]),r}(),I5={POINT:"inner-focus-point",HIGHLIGHT:"inner-focus-highlight"},CEe=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),Hn(yn(n=a.call(this,i)),"onMoveOnly",function(o,s){var c=yn(n),g=c.pos,B=c.config,O=c.player,ne=s;if(o){ti.event(o);var we=ti.getEventPos(o,O.zoom),$e=90===O.rotateDeg?we.clientY:we.clientX;if(g.moving&&Math.abs(g.x-$e)=0?o:n.currentTime+this.timeOffset}},{key:"changeState",value:function(){this.useable=!(arguments.length>0&&void 0!==arguments[0])||arguments[0]}},{key:"show",value:function(n){this.root&&(this.root.style.display="flex")}},{key:"_initInner",value:function(){var n=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];(!o||0===o.length)&&(o=[{percent:1}]);var c=Mc(Mc({fragments:o},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),{},{actionCallback:function(B){n.emitUserAction("fragment_focus","fragment_focus",B)}});this.innerList?this.innerList.reset(c):(this.innerList=new wEe(c),this.outer.insertBefore(this.innerList.render(),this.outer.children[0]),["findHightLight","unHightLight","setHightLight","findFragment"].map(function(g){n[g]=n.innerList[g].bind(n.innerList)}))}},{key:"_updateInnerFocus",value:function(n){this.innerList&&this.innerList.updateFocus(n)}},{key:"afterCreate",value:function(){var n=this;if(!this.config.disable&&!this.playerConfig.isLive){this.pos={x:0,y:0,moving:!1,isDown:!1,isEnter:!1,isLocked:!1},this.outer=this.find("xg-outer");var o=this.config;this._initInner(this.config.fragments,{fragFocusClass:o.fragFocusClass,fragAutoFocus:o.fragAutoFocus,fragClass:o.fragClass,style:this.playerConfig.commonStyle||{}}),"mobile"===Ma.device&&(this.config.isDragingSeek=!1,this.isMobile=!0),this.progressBtn=this.find(".xgplayer-progress-btn"),this.on(_m,function(){n.onMouseLeave()}),this.on(sh,function(){n.onTimeupdate()}),this.on(Ug,function(){n.onTimeupdate(),n.onCacheUpdate()}),this.on(HN,function(){n.onCacheUpdate()}),this.on(J0,function(){n.onCacheUpdate(!0),n.onTimeupdate(!0),n._state.now=0}),this.on(ey,function(){n.onReset()}),this.on(vm,function(){n.onVideoResize()}),this.bindDomEvents(),this.initCustomStyle()}}},{key:"setConfig",value:function(n){var o=this,s=null;Object.keys(n).forEach(function(c){o.config[c]=n[c],"fragments"===c&&(s=n[c])}),s&&this._initInner(s,n)}},{key:"initCustomStyle",value:function(){var s=(this.playerConfig||{}).commonStyle.sliderBtnStyle,c=this.progressBtn;s&&("string"==typeof s?c.style.boxShadow=s:"object"===Pd(s)&&Object.keys(s).map(function(g){c.style[g]=s[g]}))}},{key:"triggerCallbacks",value:function(n,o,s){this.__dragCallBacks.length>0&&this.__dragCallBacks.map(function(c){if(c&&c.handler&&c.type===n)try{c.handler(o,s)}catch(g){console.error("[XGPLAYER][triggerCallbacks] ".concat(c," error"),g)}})}},{key:"addCallBack",value:function(n,o){o&&"function"==typeof o&&this.__dragCallBacks.push({type:n,handler:o})}},{key:"removeCallBack",value:function(n,o){var s=this.__dragCallBacks,c=-1;s.map(function(g,B){g&&g.type===n&&g.handler===o&&(c=B)}),c>-1&&s.splice(c,1)}},{key:"unlock",value:function(){var n=this.player,o=this.pos;if(o.isEnter=!1,o.isLocked=!1,!n.isMini){if(this.unbind("mousemove",this.onMoveOnly),o.isDown)return void this.unbind("mouseleave",this.onMouseLeave);this.blur()}}},{key:"bindDomEvents",value:function(){var n=this.player,o=n.controls,s=n.config;this._mouseDownHandlerHook=this.hook("dragstart",this._mouseDownHandler),this._mouseUpHandlerHook=this.hook("dragend",this._mouseUpHandler),this._mouseMoveHandlerHook=this.hook("drag",this._mouseMoveHandler),("touch"===this.domEventType||"compatible"===this.domEventType)&&(this.root.addEventListener("touchstart",this.onMouseDown),o&&(o.root&&o.root.addEventListener("touchmove",ti.stopPropagation),o.center&&o.center.addEventListener("touchend",ti.stopPropagation))),("mouse"===this.domEventType||"compatible"===this.domEventType)&&(this.bind("mousedown",this.onMouseDown),"mobile"!==s.isMobileSimulateMode&&this.bind("mouseenter",this.onMouseEnter),this.bind("mouseover",this.onMouseOver),this.bind("mouseout",this.onMouseOut),this.player.root.addEventListener("click",this.onBodyClick,!0))}},{key:"focus",value:function(){this.player.controls.pauseAutoHide(),ti.addClass(this.root,"active")}},{key:"blur",value:function(){this._disableBlur||(this.player.controls.recoverAutoHide(),ti.removeClass(this.root,"active"))}},{key:"disableBlur",value:function(){this._disableBlur=!0}},{key:"enableBlur",value:function(){this._disableBlur=!1}},{key:"updateWidth",value:function(n,o,s,c){var g=this.config,B=this.player;if(!g.isCloseClickSeek||0!==c){var O=o=o>=B.duration?B.duration-g.endedDiff:Number(o).toFixed(1);this.updatePercent(s),this.updateTime(n),(1!==c||g.isDragingSeek&&"audio"!==B.config.mediaType)&&(this._state.now=O,this._state.direc=O>B.currentTime?0:1,B.seek(O))}}},{key:"computeTime",value:function(n,o){var we,$e,s=this.player,c=this.root.getBoundingClientRect();90===s.rotateDeg?(we=c.height,$e=c.top):(we=c.width,$e=c.left);var Ft=o-$e,ei=(Ft=Ft>we?we:Ft<0?0:Ft)/we;ei=ei<0?0:ei>1?1:ei;var pi=parseInt(ei*this.offsetDuration*1e3,10)/1e3;return{percent:ei,currentTime:pi,seekTime:ti.getCurrentTimeByOffset(pi,s.timeSegments),offset:Ft,width:we,left:$e,e:n}}},{key:"updateTime",value:function(n){var s=this.duration;n>s?n=s:n<0&&(n=0);var c=this.player.plugins.time;c&&c.updateTime(n)}},{key:"resetSeekState",value:function(){this.isProgressMoving=!1;var n=this.player.plugins.time;n&&n.resetActive()}},{key:"updatePercent",value:function(n,o){if(this.isProgressMoving=!0,!this.config.disable){this.progressBtn.style.left="".concat(100*(n=n>1?1:n<0?0:n),"%"),this.innerList.update({played:n*this.offsetDuration},this.offsetDuration);var s=this.player.plugins.miniprogress;s&&s.update({played:n*this.offsetDuration},this.offsetDuration)}}},{key:"onTimeupdate",value:function(n){var o=this.player,s=this._state,c=this.offsetDuration;if(!(o.isSeeking&&o.media.seeking||this.isProgressMoving)&&o.hasStart){if(s.now>-1){var g=parseInt(1e3*s.now,10)-parseInt(1e3*o.currentTime,10);if(0===s.direc&&g>300||1===s.direc&&g>-300)return void(s.now=-1);s.now=-1}var B=this.currentTime;B=ti.adjustTimeByDuration(B,c,n),this.innerList.update({played:B},c),this.progressBtn.style.left="".concat(B/c*100,"%");var O=this.player.plugins.miniprogress;O&&O.update({played:B},c)}}},{key:"onCacheUpdate",value:function(n){var o=this.player,s=this.duration;if(o){var c=o.bufferedPoint.end;c=ti.adjustTimeByDuration(c,s,n),this.innerList.update({cached:c},s);var g=this.player.plugins.miniprogress;g&&g.update({cached:c},s)}}},{key:"onReset",value:function(){this.innerList.update({played:0,cached:0},0),this.progressBtn.style.left="0%";var n=this.player.plugins.miniprogress;n&&n.update({cached:0,played:0},0),this.progressBtn.style.left="0%"}},{key:"destroy",value:function(){var n=this.player,o=n.controls;this.thumbnailPlugin=null,this.innerList.destroy(),this.innerList=null;var s=this.domEventType;("touch"===s||"compatible"===s)&&(this.root.removeEventListener("touchstart",this.onMouseDown),this.root.removeEventListener("touchmove",this.onMouseMove),this.root.removeEventListener("touchend",this.onMouseUp),o&&(o.root&&o.root.removeEventListener("touchmove",ti.stopPropagation),o.center&&o.center.removeEventListener("touchend",ti.stopPropagation))),("mouse"===s||"compatible"===s)&&(this.unbind("mousedown",this.onMouseDown),this.unbind("mouseenter",this.onMouseEnter),this.unbind("mousemove",this.onMoveOnly),this.unbind("mouseleave",this.onMouseLeave),document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),n.root.removeEventListener("click",this.onBodyClick,!0))}},{key:"render",value:function(){if(!this.config.disable&&!this.playerConfig.isLive)return'\n \n \n \n \n \n ')}}],[{key:"pluginName",get:function(){return"progress"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_CENTER,index:0,disable:!1,isDragingSeek:!0,closeMoveSeek:!1,isPauseMoving:!1,isCloseClickSeek:!1,fragments:[{percent:1}],fragFocusClass:I5.POINT,fragClass:"",fragAutoFocus:!1,miniMoveStep:5,miniStartStep:2,onMoveStart:function(){},onMoveEnd:function(){},endedDiff:.2}}},{key:"FRAGMENT_FOCUS_CLASS",get:function(){return I5}}]),t}(Fs),K0=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s\n
\n
\n '.concat(wm(this,"PLAY_TIPS",this.playerConfig.isHideTips),"\n ")}}],[{key:"pluginName",get:function(){return"play"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_LEFT,index:0,disable:!1}}}]),t}(K0);function bEe(){return(new DOMParser).parseFromString('\n \n \n \n',"image/svg+xml").firstChild}var xEe=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"afterCreate",value:function(){var n=this;this.initIcons(),this.onClick=function(o){o.preventDefault(),o.stopPropagation(),n.config.onClick(o)},this.bind(["click","touchend"],this.onClick)}},{key:"registerIcons",value:function(){return{screenBack:{icon:bEe,class:"xg-fullscreen-back"}}}},{key:"initIcons",value:function(){this.appendChild(this.root,this.icons.screenBack)}},{key:"show",value:function(){ti.addClass(this.root,"show")}},{key:"hide",value:function(){ti.removeClass(this.root,"show")}},{key:"render",value:function(){return'\n '}}],[{key:"pluginName",get:function(){return"topbackicon"}},{key:"defaultConfig",get:function(){return{position:_l.ROOT_TOP,index:0}}}]),t}(Fs);function BEe(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}function EEe(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var Q5=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s\n
\n
\n '.concat(wm(this,"FULLSCREEN_TIPS",this.playerConfig.isHideTips),"\n ")}}],[{key:"pluginName",get:function(){return"fullscreen"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:0,useCssFullscreen:!1,rotateFullscreen:!1,switchCallback:null,target:null,disable:!1,needBackIcon:!1}}}]),t}(K0),S5=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),(n=a.call(this,i)).isActiving=!1,n}return po(t,[{key:"duration",get:function(){var n=this.player;return this.playerConfig.customDuration||n.offsetDuration||n.duration}},{key:"currentTime",get:function(){var n=this.player,o=n.offsetCurrentTime;return o>=0?o:n.currentTime}},{key:"timeOffset",get:function(){return this.playerConfig.timeOffset||0}},{key:"afterCreate",value:function(){var n=this;this.mode="flex"===this.player.controls.config.mode?"flex":"normal",!this.config.disable&&("flex"===this.mode&&(this.createCenterTime(),this.root.style.display="none"),this.durationDom=this.find(".time-duration"),this.timeDom=this.find(".time-current"),this.on([_m,Ug,sh],function(s){"durationchange"===s.eventName&&(n.isActiving=!1),n.onTimeUpdate()}),this.on(J0,function(){n.onTimeUpdate(!0)}),this.on(ey,function(){n.onReset()}))}},{key:"show",value:function(n){if("flex"===this.mode)return this.centerCurDom&&(this.centerCurDom.style.display="block"),void(this.centerDurDom&&(this.centerDurDom.style.display="block"));this.root.style.display="block"}},{key:"hide",value:function(){if("flex"===this.mode)return this.centerCurDom&&(this.centerCurDom.style.display="none"),void(this.centerDurDom&&(this.centerDurDom.style.display="none"));this.root.style.display="none"}},{key:"onTimeUpdate",value:function(n){var c=this.duration;if(!this.config.disable&&!this.isActiving&&this.player.hasStart){var g=this.currentTime+this.timeOffset;g=ti.adjustTimeByDuration(g,c,n),"flex"===this.mode?(this.centerCurDom.innerHTML=this.minWidthTime(ti.format(g)),c!==1/0&&c>0&&(this.centerDurDom.innerHTML=ti.format(c))):(this.timeDom.innerHTML=this.minWidthTime(ti.format(g)),c!==1/0&&c>0&&(this.durationDom.innerHTML=ti.format(c)))}}},{key:"onReset",value:function(){"flex"===this.mode?(this.centerCurDom.innerHTML=this.minWidthTime(ti.format(0)),this.centerDurDom.innerHTML=ti.format(0)):(this.timeDom.innerHTML=this.minWidthTime(ti.format(0)),this.durationDom.innerHTML=ti.format(0))}},{key:"createCenterTime",value:function(){var n=this.player;if(n.controls&&n.controls.center){var o=n.controls.center;this.centerCurDom=ti.createDom("xg-icon","00:00",{},"xgplayer-time xg-time-left"),this.centerDurDom=ti.createDom("xg-icon","00:00",{},"xgplayer-time xg-time-right"),o.children.length>0?o.insertBefore(this.centerCurDom,o.children[0]):o.appendChild(this.centerCurDom),o.appendChild(this.centerDurDom)}}},{key:"afterPlayerInit",value:function(){var n=this.config;this.duration===1/0||this.playerConfig.isLive?(ti.hide(this.durationDom),ti.hide(this.timeDom),ti.hide(this.find(".time-separator")),ti.show(this.find(".time-live-tag"))):ti.hide(this.find(".time-live-tag")),n.hide?this.hide():this.show()}},{key:"changeLiveState",value:function(n){n?(ti.hide(this.durationDom),ti.hide(this.timeDom),ti.hide(this.find(".time-separator")),ti.show(this.find(".time-live-tag"))):(ti.hide(this.find(".time-live-tag")),ti.show(this.find(".time-separator")),ti.show(this.durationDom),ti.show(this.timeDom))}},{key:"updateTime",value:function(n){if(this.isActiving=!0,!(!n&&0!==n||n>this.duration)){if("flex"===this.mode)return void(this.centerCurDom.innerHTML=this.minWidthTime(ti.format(n)));this.timeDom.innerHTML=this.minWidthTime(ti.format(n))}}},{key:"minWidthTime",value:function(n){return n.split(":").map(function(o){return''.concat(o,"")}).join(":")}},{key:"resetActive",value:function(){var n=this,o=this.player,s=function(){n.isActiving=!1};this.off(Ug,s),o.isSeeking&&o.media.seeking?this.once(Ug,s):this.isActiving=!1}},{key:"destroy",value:function(){var n=this.player.controls.center;this.centerCurDom&&n.removeChild(this.centerCurDom),this.centerCurDom=null,this.centerDurDom&&n.removeChild(this.centerDurDom),this.centerDurDom=null}},{key:"render",value:function(){if(!this.config.disable)return'\n 00:00\n /\n 00:00\n '.concat(this.i18n.LIVE_TIP,"\n ")}}],[{key:"pluginName",get:function(){return"time"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_LEFT,index:2,disable:!1}}}]),t}(Fs),MEe=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s0&&(i.player.currentTime=i.curPos.start)}}),Hn(yn(i),"_onTimeupdate",function(){var c=i.player,g=c.currentTime,B=c.timeSegments;if(i._checkIfEnabled(B)){var O=B.length;i.lastCurrentTime=g;var ne=ti.getIndexByTime(g,B);ne!==i.curIndex&&i.changeIndex(ne,B);var we=ti.getOffsetCurrentTime(g,B,ne);if(i.player.offsetCurrentTime=we,i.curPos){var $e=i.curPos,nt=$e.start,Ft=$e.end;gFt&&ne>=O-1&&i.player.pause()}}}),Hn(yn(i),"_onSeeking",function(){var c=i.player,g=c.currentTime,B=c.timeSegments;if(i._checkIfEnabled(B))if(gB[B.length-1].end)i.player.currentTime=B[B.length-1].end;else{var O=ti.getIndexByTime(g,B);if(O>=0){var ne=i.getSeekTime(g,i.lastCurrentTime,O,B);ne>=0&&(i.player.currentTime=ne)}}}),Hn(yn(i),"_onPlay",function(){var c=i.player,g=c.currentTime,B=c.timeSegments;i._checkIfEnabled(B)&&g>=B[B.length-1].end&&(i.player.currentTime=B[0].start)}),i}return po(t,[{key:"afterCreate",value:function(){this.curIndex=-1,this.curPos=null,this.lastCurrentTime=0,this.updateSegments(),this.on(_m,this._onDurationChange),this.on(Lp,this._onLoadedData),this.on(sh,this._onTimeupdate),this.on(wD,this._onSeeking),this.on(xu,this._onPlay)}},{key:"setConfig",value:function(n){var o=this;if(n){var s=Object.keys(n);s.length<1||(s.forEach(function(c){o.config[c]=n[c]}),this.updateSegments())}}},{key:"updateSegments",value:function(){var n=this.config,s=n.segments,c=this.player;if(n.disable||!s||0===s.length)c.timeSegments=[],c.offsetDuration=0,c.offsetCurrentTime=-1;else{var g=this.formatTimeSegments(s,c.duration);c.timeSegments=g,c.offsetDuration=g.length>0?g[g.length-1].duration:0}}},{key:"formatTimeSegments",value:function(n,o){var s=[];return n?(n.sort(function(c,g){return c.start-g.start}),n.forEach(function(c,g){var B={};if(B.start=c.start<0?0:c.start,B.end=o>0&&c.end>o?o:c.end,!(o>0&&B.start>o)){s.push(B);var O=B.end-B.start;if(0===g)B.offset=c.start,B.cTime=0,B.segDuration=O,B.duration=O;else{var ne=s[g-1];B.offset=ne.offset+(B.start-ne.end),B.cTime=ne.duration+ne.cTime,B.segDuration=O,B.duration=ne.duration+O}}}),s):[]}},{key:"getSeekTime",value:function(n,o,s,c){var g=-1,B=c[s],O=B.start;if(n>=O&&n<=B.end)return g;var we=n-o;return we<0&&n=0?c[s-1].end+we+(o>O?o-O:0):0:-1}},{key:"_checkIfEnabled",value:function(n){return!(!n||n.length<1)}},{key:"changeIndex",value:function(n,o){this.curIndex=n,this.curPos=n>=0&&o.length>0?o[n]:null}}],[{key:"pluginName",get:function(){return"TimeSegmentsControls"}},{key:"defaultConfig",get:function(){return{disable:!0,segments:[]}}}]),t}(Zh);function DEe(){return(new DOMParser).parseFromString('\n \n \n\n',"image/svg+xml").firstChild}function TEe(){return(new DOMParser).parseFromString('\n \n \n\n',"image/svg+xml").firstChild}function IEe(){return(new DOMParser).parseFromString('\n \n \n\n',"image/svg+xml").firstChild}var P5=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;sne.barH||i.updateVolumePos(nt,c)}}),Hn(yn(i),"onBarMouseUp",function(c){ti.event(c),document.removeEventListener("mouseup",i.onBarMouseUp);var B=yn(i)._d;B.isStart=!1,B.isMoving=!1}),Hn(yn(i),"onMouseenter",function(c){i._d.isActive=!0,i.focus(),i.emit("icon_mouseenter",{pluginName:i.pluginName})}),Hn(yn(i),"onMouseleave",function(c){i._d.isActive=!1,i.unFocus(100,!1,c),i.emit("icon_mouseleave",{pluginName:i.pluginName})}),Hn(yn(i),"onVolumeChange",function(c){if(i.player){var g=i.player,B=g.muted,O=g.volume;i._d.isMoving||(i.find(".xgplayer-drag").style.height=B||0===O?"4px":"".concat(100*O,"%"),i.config.showValueLabel&&i.updateVolumeValue()),i.animate(B,O)}}),i}return po(t,[{key:"registerIcons",value:function(){return{volumeSmall:{icon:TEe,class:"xg-volume-small"},volumeLarge:{icon:DEe,class:"xg-volume"},volumeMuted:{icon:IEe,class:"xg-volume-mute"}}}},{key:"afterCreate",value:function(){var n=this;if(this._timerId=null,this._d={isStart:!1,isMoving:!1,isActive:!1},!this.config.disable){this.initIcons();var o=this.playerConfig,s=o.commonStyle,c=o.volume;s.volumeColor&&(this.find(".xgplayer-drag").style.backgroundColor=s.volumeColor),this.changeMutedHandler=this.hook("mutedChange",function(g){n.changeMuted(g)},{pre:function(B){B.preventDefault(),B.stopPropagation()}}),this._onMouseenterHandler=this.hook("mouseenter",this.onMouseenter),this._onMouseleaveHandler=this.hook("mouseleave",this.onMouseleave),"mobile"!==Ma.device&&"mobile"!==this.playerConfig.isMobileSimulateMode&&(this.bind("mouseenter",this._onMouseenterHandler),this.bind(["blur","mouseleave"],this._onMouseleaveHandler),this.bind(".xgplayer-slider","mousedown",this.onBarMousedown),this.bind(".xgplayer-slider","mousemove",this.onBarMouseMove),this.bind(".xgplayer-slider","mouseup",this.onBarMouseUp)),this.bind(".xgplayer-icon",["touchend","click"],this.changeMutedHandler),this.on(UN,this.onVolumeChange),this.once(Lp,this.onVolumeChange),"Number"!==ti.typeOf(c)&&(this.player.volume=this.config.default),this.onVolumeChange()}}},{key:"updateVolumePos",value:function(n,o){var s=this.player,c=this.find(".xgplayer-drag"),g=this.find(".xgplayer-bar");if(g&&c){var B=parseInt(n/g.getBoundingClientRect().height*1e3,10);c.style.height="".concat(n,"px");var O=Math.max(Math.min(B/1e3,1),0),ne={volume:{from:s.volume,to:O}};s.muted&&(ne.muted={from:!0,to:!1}),this.emitUserAction(o,"change_volume",{muted:s.muted,volume:s.volume,props:ne}),s.volume=Math.max(Math.min(B/1e3,1),0),s.muted&&(s.muted=!1),this.config.showValueLabel&&this.updateVolumeValue()}}},{key:"updateVolumeValue",value:function(){var n=this.player,o=n.volume,s=n.muted,c=this.find(".xgplayer-value-label"),g=Math.max(Math.min(o,1),0);c.innerText=s?0:Math.ceil(100*g)}},{key:"focus",value:function(){this.player.focus({autoHide:!1}),this._timerId&&(ti.clearTimeout(this,this._timerId),this._timerId=null),ti.addClass(this.root,"slide-show")}},{key:"unFocus",value:function(){var n=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=arguments.length>2?arguments[2]:void 0,g=this._d,B=this.player;g.isActive||(this._timerId&&(ti.clearTimeout(this,this._timerId),this._timerId=null),this._timerId=ti.setTimeout(this,function(){g.isActive||(s?B.blur():B.focus(),ti.removeClass(n.root,"slide-show"),g.isStart&&n.onBarMouseUp(c)),n._timerId=null},o))}},{key:"changeMuted",value:function(n){n&&n.stopPropagation();var o=this.player;this._d.isStart&&this.onBarMouseUp(n),this.emitUserAction(n,"change_muted",{muted:o.muted,volume:o.volume,props:{muted:{from:o.muted,to:!o.muted}}}),o.volume>0&&(o.muted=!o.muted),o.volume<.01&&(o.volume=this.config.miniVolume)}},{key:"animate",value:function(n,o){this.setAttr("data-state",n||0===o?"mute":o<.5&&this.icons.volumeSmall?"small":"normal")}},{key:"initIcons",value:function(){var n=this.icons;this.appendChild(".xgplayer-icon",n.volumeSmall),this.appendChild(".xgplayer-icon",n.volumeLarge),this.appendChild(".xgplayer-icon",n.volumeMuted)}},{key:"destroy",value:function(){this._timerId&&(ti.clearTimeout(this,this._timerId),this._timerId=null),this.unbind("mouseenter",this.onMouseenter),this.unbind(["blur","mouseleave"],this.onMouseleave),this.unbind(".xgplayer-slider","mousedown",this.onBarMousedown),this.unbind(".xgplayer-slider","mousemove",this.onBarMouseMove),this.unbind(".xgplayer-slider","mouseup",this.onBarMouseUp),document.removeEventListener("mouseup",this.onBarMouseUp),this.unbind(".xgplayer-icon","mobile"===Ma.device?"touchend":"click",this.changeMutedHandler)}},{key:"render",value:function(){if(!this.config.disable){var n=this.config.default||this.player.volume;return'\n \n
\n
\n \n '.concat(this.config.showValueLabel?'
'.concat(100*n,"
"):"",'\n
\n \n
\n
\n
')}}}],[{key:"pluginName",get:function(){return"volume"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:1,disable:!1,showValueLabel:!1,default:.6,miniVolume:.2}}}]),t}(Fs);function kEe(){return(new DOMParser).parseFromString('\n \n \n \n \n \n \n \n \n \n\n',"image/svg+xml").firstChild}var F5=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),(n=a.call(this,i)).rotateDeg=n.config.rotateDeg||0,n}return po(t,[{key:"afterCreate",value:function(){var n=this;if(!this.config.disable){sa(qo(t.prototype),"afterCreate",this).call(this),this.appendChild(".xgplayer-icon",this.icons.rotate),this.onBtnClick=this.onBtnClick.bind(this),this.bind(".xgplayer-icon",["click","touchend"],this.onBtnClick),this.on(vm,function(){n.rotateDeg&&n.config.innerRotate&&ti.setTimeout(n,function(){n.updateRotateDeg(n.rotateDeg,n.config.innerRotate)},100)});var o=this.player.root;this.rootWidth=o.style.width||o.offsetWidth||o.clientWidth,this.rootHeight=o.style.height||o.offsetHeight||o.clientHeight,this.rotateDeg&&this.updateRotateDeg(this.rotateDeg,this.config.innerRotate)}}},{key:"destroy",value:function(){sa(qo(t.prototype),"destroy",this).call(this),this.unbind(".xgplayer-icon",["click","touchend"],this.onBtnClick)}},{key:"onBtnClick",value:function(n){n.preventDefault(),n.stopPropagation(),this.emitUserAction(n,"rotate"),this.rotate(this.config.clockwise,this.config.innerRotate,1)}},{key:"updateRotateDeg",value:function(n,o){if(n||(n=0),o)this.player.videoRotateDeg=n;else{var s=this.player,B=s.root,O=s.innerContainer,ne=s.media,we=B.offsetWidth,$e=O&&o?O.offsetHeight:B.offsetHeight,nt=this.rootWidth,Ft=this.rootHeight,ei=0,pi=0;(.75===n||.25===n)&&(nt="".concat($e,"px"),Ft="".concat(we,"px"),ei=-($e-we)/2,pi=-(we-$e)/2);var Di="translate(".concat(ei,"px,").concat(pi,"px) rotate(").concat(n,"turn)"),Ri={transformOrigin:"center center",transform:Di,webKitTransform:Di,height:Ft,width:nt},Wi=o?ne:B,Ki=o?s.getPlugin("poster"):null;Object.keys(Ri).map(function(vn){Wi.style[vn]=Ri[vn],Ki&&Ki.root&&(Ki.root.style[vn]=Ri[vn])})}}},{key:"rotate",value:function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,c=this.player;this.rotateDeg||(this.rotateDeg=0),this.rotateDeg=(this.rotateDeg+1+.25*(n?1:-1)*s)%1,this.updateRotateDeg(this.rotateDeg,o),c.emit(JN,360*this.rotateDeg)}},{key:"registerIcons",value:function(){return{rotate:kEe}}},{key:"render",value:function(){if(!this.config.disable)return'\n \n
\n
\n '.concat(wm(this,"ROTATE_TIPS",this.playerConfig.isHideTips),"\n
")}}],[{key:"pluginName",get:function(){return"rotate"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:6,innerRotate:!0,clockwise:!1,rotateDeg:0,disable:!1}}}]),t}(K0);function QEe(){return(new DOMParser).parseFromString('\n \n',"image/svg+xml").firstChild}function SEe(){return(new DOMParser).parseFromString('\n \n \n',"image/svg+xml").firstChild}var O5=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s\n
\n
\n '.concat(wm(this,"PIP",this.playerConfig.isHideTips),"\n ")}}],[{key:"pluginName",get:function(){return"pip"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:6,showIcon:!1,preferDocument:!1,width:void 0,height:void 0,docPiPNode:void 0,docPiPStyle:void 0}}},{key:"checkWebkitSetPresentationMode",value:function(n){return"function"==typeof n.webkitSetPresentationMode}}]),t}(K0);function PEe(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var FEe=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),Hn(yn(n=a.call(this,i)),"playNext",function(o){var c=yn(n).player;o.preventDefault(),o.stopPropagation(),n.idx+1\n
\n
\n '.concat(wm(this,"PLAYNEXT_TIPS",this.playerConfig.isHideTips),"\n \n ")}}],[{key:"pluginName",get:function(){return"playNext"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_LEFT,index:1,url:null,urlList:[]}}}]),t}(Fs),OEe=ce(8107),LEe=ce.n(OEe);function REe(){return(new DOMParser).parseFromString('\n \n \n \n \n \n \n \n \n \n \n \n \n\n',"image/svg+xml").firstChild}var YEe=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),Hn(yn(n=a.call(this,i)),"download",function(o){if(!n.isLock){n.emitUserAction(o,"download");var s=n.playerConfig.url,c="";"String"===ti.typeOf(s)?c=s:"Array"===ti.typeOf(s)&&s.length>0&&(c=s[0].src);var g=n.getAbsoluteURL(c);LEe()(g),n.isLock=!0,n.timer=window.setTimeout(function(){n.isLock=!1,window.clearTimeout(n.timer),n.timer=null},300)}}),n.timer=null,n.isLock=!1,n}return po(t,[{key:"afterCreate",value:function(){sa(qo(t.prototype),"afterCreate",this).call(this),!this.config.disable&&(this.appendChild(".xgplayer-icon",this.icons.download),this._handler=this.hook("click",this.download,{pre:function(o){o.preventDefault(),o.stopPropagation()}}),this.bind(["click","touchend"],this._handler))}},{key:"registerIcons",value:function(){return{download:REe}}},{key:"getAbsoluteURL",value:function(n){if(!n.match(/^https?:\/\//)){var o=document.createElement("div");o.innerHTML='x'),n=o.firstChild.href}return n}},{key:"destroy",value:function(){sa(qo(t.prototype),"destroy",this).call(this),this.unbind(["click","touchend"],this.download),window.clearTimeout(this.timer),this.timer=null}},{key:"render",value:function(){if(!this.config.disable)return'\n
\n
\n '.concat(wm(this,"DOWNLOAD_TIPS",this.playerConfig.isHideTips),"\n
")}}],[{key:"pluginName",get:function(){return"download"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:3,disable:!0}}}]),t}(K0),NEe=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"beforeCreate",value:function(n){"boolean"==typeof n.player.config.screenShot&&(n.config.disable=!n.player.config.screenShot)}},{key:"afterCreate",value:function(){sa(qo(t.prototype),"afterCreate",this).call(this),this.appendChild(".xgplayer-icon",this.icons.screenshotIcon);var n=this.config;this.initSize=function(o){n.fitVideo&&(n.width=o.vWidth,n.height=o.vHeight)},this.once(vm,this.initSize)}},{key:"onPluginsReady",value:function(){this.show(),this.onClickBtn=this.onClickBtn.bind(this),this.bind(["click","touchend"],this.onClickBtn)}},{key:"saveScreenShot",value:function(n,o){var s=document.createElement("a");s.href=n,s.download=o;var c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),s.dispatchEvent(c)}},{key:"createCanvas",value:function(n,o){var s=document.createElement("canvas"),c=s.getContext("2d");this.canvasCtx=c,this.canvas=s,s.width=n||this.config.width,s.height=o||this.config.height,c.imageSmoothingEnabled=!0,c.imageSmoothingEnabled&&(c.imageSmoothingQuality="high")}},{key:"onClickBtn",value:function(n){var o=this;n.preventDefault(),n.stopPropagation(),this.emitUserAction(n,"shot");var s=this.config;this.shot(s.width,s.height).then(function(c){o.emit(jN,c),s.saveImg&&o.saveScreenShot(c,s.name+s.format)})}},{key:"shot",value:function(n,o){var s=this,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{quality:.92,type:"image/png"},g=this.config,B=this.player,O=c.quality||g.quality,ne=c.type||g.type;return new Promise(function(we,$e){var Ft,nt=null;if(B.media.canvas)nt=B.media.canvas;else{s.canvas?(s.canvas.width=n||g.width,s.canvas.height=o||g.height):s.createCanvas(n,o),Ft=s.canvasCtx;var vn,gn,Vn,tr,ei=B.media.videoWidth/B.media.videoHeight,pi=(nt=s.canvas).width/nt.height,Wi=B.media.videoWidth,Ki=B.media.videoHeight;ei>pi?(Vn=nt.width,tr=nt.width/ei,vn=0,gn=Math.round((nt.height-tr)/2)):ei===pi?(Vn=nt.width,tr=nt.height,vn=0,gn=0):ei\n
\n ').concat(this.icons.screenshotIcon?"":'').concat(this.i18n[o],""),"\n
\n ")}}}],[{key:"pluginName",get:function(){return"screenShot"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:5,quality:.92,type:"image/png",format:".png",width:600,height:337,saveImg:!0,fitVideo:!0,disable:!1,name:"screenshot"}}}]),t}(K0),UEe=function(){function r(a){ho(this,r),this.config=a.config,this.parent=a.root,this.root=ti.createDom("ul","",{},"xg-options-list xg-list-slide-scroll ".concat(this.config.className)),a.root.appendChild(this.root);var t=this.config.maxHeight;t&&this.setStyle({maxHeight:t}),this.onItemClick=this.onItemClick.bind(this),this.renderItemList(),this._delegates=Fs.delegate.call(this,this.root,"li","mobile"===Ma.device?"touchend":"click",this.onItemClick)}return po(r,[{key:"renderItemList",value:function(t){var i=this,n=this.config,o=this.root;t?n.data=t:t=n.data,n.style&&Object.keys(n.style).map(function(s){o.style[s]=n[s]}),t.length>0&&(this.attrKeys=Object.keys(t[0])),this.root.innerHTML="",t.map(function(s,c){var g=s.selected?"option-item selected":"option-item";s["data-index"]=c,i.root.appendChild(ti.createDom("li","".concat(s.showText,""),s,g))})}},{key:"onItemClick",value:function(t){t.delegateTarget||(t.delegateTarget=t.target);var i=t.delegateTarget;if(i&&ti.hasClass(i,"selected"))return!1;var n="function"==typeof this.config.onItemClick?this.config.onItemClick:null,o=this.root.querySelector(".selected");ti.addClass(i,"selected"),o&&ti.removeClass(o,"selected"),n(t,{from:o?this.getAttrObj(o,this.attrKeys):null,to:this.getAttrObj(i,this.attrKeys)})}},{key:"getAttrObj",value:function(t,i){if(!t||!i)return{};var n={};i.map(function(s){n[s]=t.getAttribute(s)});var o=t.getAttribute("data-index");return o&&(n.index=Number(o)),n}},{key:"show",value:function(){ti.removeClass(this.root,"hide"),ti.addClass(this.root,"active")}},{key:"hide",value:function(){ti.removeClass(this.root,"active"),ti.addClass(this.root,"hide")}},{key:"setStyle",value:function(t){var i=this;Object.keys(t).forEach(function(n){i.root.style[n]=t[n]})}},{key:"destroy",value:function(){this._delegates&&(this._delegates.map(function(t){t.destroy&&t.destroy()}),this._delegates=null),this.root.innerHTML=null,this.parent.removeChild(this.root),this.root=null}}]),r}();function zEe(r,a){return"side"===r?a===_l.CONTROLS_LEFT?"xg-side-list xg-left-side":"xg-side-list xg-right-side":""}var OD="mobile"===Ma.device,LD=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),Hn(yn(n=a.call(this,i)),"onEnter",function(o){o.stopPropagation(),n.emit("icon_mouseenter",{pluginName:n.pluginName}),n.switchActiveState(o)}),Hn(yn(n),"switchActiveState",function(o){o.stopPropagation(),n.toggle("click"!==n.config.toggleMode||!n.isActive)}),Hn(yn(n),"onLeave",function(o){o.stopPropagation(),n.emit("icon_mouseleave",{pluginName:n.pluginName}),"side"!==n.config.listType&&n.isActive&&n.toggle(!1)}),Hn(yn(n),"onListEnter",function(o){n.enterType=2}),Hn(yn(n),"onListLeave",function(o){n.enterType=0,n.isActive&&n.toggle(!1)}),n.isIcons=!1,n.isActive=!1,n.curValue=null,n.curIndex=0,n}return po(t,[{key:"updateLang",value:function(n){this.renderItemList(this.config.list,this.curIndex)}},{key:"afterCreate",value:function(){var n=this,o=this.config;this.initIcons(),OD&&"middle"!==o.listType&&(o.listType="side"),o.hidePortrait&&ti.addClass(this.root,"portrait"),this.on([vm,Hg],function(){n._resizeList()}),this.once(zg,function(){o.list&&o.list.length>0&&(n.renderItemList(o.list),n.show())}),OD&&this.on(a3,function(){n.isActive&&(n.optionsList&&n.optionsList.hide(),n.isActive=!1)}),OD?(o.toggleMode="click",this.activeEvent="touchend"):this.activeEvent="click"===o.toggleMode?"click":"mouseenter","click"===o.toggleMode?this.bind(this.activeEvent,this.switchActiveState):(this.bind(this.activeEvent,this.onEnter),this.bind("mouseleave",this.onLeave)),this.isIcons&&this.bind("click",this.onIconClick)}},{key:"initIcons",value:function(){var n=this,o=this.icons,s=Object.keys(o),c=!1;s.length>0&&(s.forEach(function(g){n.appendChild(".xgplayer-icon",o[g]),!c&&(c=o[g])}),this.isIcons=c),!c&&(this.appendChild(".xgplayer-icon",ti.createDom("span","",{},"icon-text")),ti.addClass(this.find(".xgplayer-icon"),"btn-text"))}},{key:"show",value:function(n){!this.config.list||this.config.list.length<2||ti.addClass(this.root,"show")}},{key:"hide",value:function(){ti.removeClass(this.root,"show")}},{key:"getTextByLang",value:function(n,o,s){if(void 0===n)return"";var c=this.config.list;!s&&(s=this.player.lang),o=!o||ti.isUndefined(n[o])?"text":o,"number"==typeof n&&(n=c[n]);try{return"object"===Pd(n[o])?n[o][s]||n[o].en:n[o]}catch(g){return console.warn(g),""}}},{key:"toggle",value:function(n){if(n!==this.isActive){var o=this.player.controls,s=this.config.listType;n?("side"===s?o.blur():o.focus(),this.optionsList&&this.optionsList.show()):("side"===s?o.focus():o.focusAwhile(),this.optionsList&&this.optionsList.hide()),this.isActive=n}}},{key:"onItemClick",value:function(n,o){n.stopPropagation();var s=this.config,c=s.listType,g=s.list;this.curIndex=o.to.index,this.curItem=g[this.curIndex],this.changeCurrentText(),(this.config.isItemClickHide||OD||"side"===c)&&this.toggle(!1)}},{key:"onIconClick",value:function(n){}},{key:"changeCurrentText",value:function(){if(!this.isIcons){var n=this.config.list,s=n[this.curIndex\n
\n
\n ')}}],[{key:"pluginName",get:function(){return"optionsIcon"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:100,list:[],listType:"middle",listStyle:{},hidePortrait:!0,isShowIcon:!1,isItemClickHide:!0,toggleMode:"hover",heightLimit:!0}}}]),t}(Fs),L5=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),(n=a.call(this,i)).curTime=0,n.isPaused=!0,n}return po(t,[{key:"beforeCreate",value:function(n){var o=n.config.list;Array.isArray(o)&&o.length>0&&(n.config.list=o.map(function(s){return!s.text&&s.name&&(s.text=s.name),s.text||(s.text=s.definition),s}))}},{key:"afterCreate",value:function(){var n=this;sa(qo(t.prototype),"afterCreate",this).call(this),this.on("resourceReady",function(o){n.changeDefinitionList(o)}),this.on(d3,function(o){n.renderItemList(n.config.list,o.to)}),this.player.definitionList.length<2&&this.hide()}},{key:"show",value:function(n){!this.config.list||this.config.list.length<2||ti.addClass(this.root,"show")}},{key:"initDefinition",value:function(){var n=this.config,o=n.list,s=n.defaultDefinition;if(o.length>0){var c=null;o.map(function(g){g.definition===s&&(c=g)}),c||(c=o[0]),this.changeDefinition(c)}}},{key:"renderItemList",value:function(){var n=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.list||[],s=arguments.length>1?arguments[1]:void 0,c=s&&s.definition?s.definition:this.config.defaultDefinition;s&&o.forEach(function(O){O.selected=!1});var g=0,B=o.map(function(O,ne){var we=Mc(Mc({},O),{},{showText:n.getTextByLang(O)||O.definition,selected:!1});return(O.selected||O.definition&&O.definition==c)&&(we.selected=!0,g=ne),we});sa(qo(t.prototype),"renderItemList",this).call(this,B,g)}},{key:"changeDefinitionList",value:function(n){Array.isArray(n)&&(this.config.list=n.map(function(o){return!o.text&&o.name&&(o.text=o.name),o.text||(o.text=o.definition),o}),this.renderItemList(),this.config.list.length<2?this.hide():this.show())}},{key:"changeDefinition",value:function(n,o){this.player.changeDefinition(n,o)}},{key:"onItemClick",value:function(n,o){var s=this.player.definitionList;sa(qo(t.prototype),"onItemClick",this).apply(this,arguments),this.emitUserAction(n,"change_definition",{from:o.from,to:o.to});for(var c=0;c\n \n\n',"image/svg+xml").firstChild}function GEe(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var E3=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"beforeCreate",value:function(n){"boolean"==typeof n.player.config.cssFullscreen&&(n.config.disable=!n.player.config.cssFullscreen)}},{key:"afterCreate",value:function(){var n=this;sa(qo(t.prototype),"afterCreate",this).call(this),!this.config.disable&&(this.config.target&&(this.playerConfig.fullscreenTarget=this.config.target),this.initIcons(),this.on(xD,function(o){n.animate(o)}),this.btnClick=this.btnClick.bind(this),this.handleCssFullscreen=this.hook("cssFullscreen_change",this.btnClick,{pre:function(s){s.preventDefault(),s.stopPropagation()}}),this.bind(["click","touchend"],this.handleCssFullscreen))}},{key:"initIcons",value:function(){var n=this.icons,o=this.find(".xgplayer-icon");o.appendChild(n.cssFullscreen),o.appendChild(n.exitCssFullscreen)}},{key:"btnClick",value:function(n){n.preventDefault(),n.stopPropagation();var o=this.player.isCssfullScreen;this.emitUserAction(n,"switch_cssfullscreen",{cssfullscreen:o}),o?this.player.exitCssFullscreen():this.player.getCssFullscreen()}},{key:"animate",value:function(n){this.root&&(this.setAttr("data-state",n?"full":"normal"),this.switchTips(n))}},{key:"switchTips",value:function(n){var o=this.i18nKeys,s=this.find(".xg-tips");s&&this.changeLangTextKey(s,n?o.EXITCSSFULLSCREEN_TIPS:o.CSSFULLSCREEN_TIPS)}},{key:"registerIcons",value:function(){return{cssFullscreen:{icon:HEe,class:"xg-get-cssfull"},exitCssFullscreen:{icon:GEe,class:"xg-exit-cssfull"}}}},{key:"destroy",value:function(){sa(qo(t.prototype),"destroy",this).call(this),this.unbind(["click","touchend"],this.btnClick)}},{key:"render",value:function(){if(!this.config.disable)return"\n
\n
\n ".concat(wm(this,"CSSFULLSCREEN_TIPS",this.playerConfig.isHideTips),"\n
")}}],[{key:"pluginName",get:function(){return"cssFullscreen"}},{key:"defaultConfig",get:function(){return{position:_l.CONTROLS_RIGHT,index:1,disable:!1,target:null}}}]),t}(K0),Y5=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"afterCreate",value:function(){var n=this;this.clickHandler=this.hook("errorRetry",this.errorRetry,{pre:function(s){s.preventDefault(),s.stopPropagation()}}),this.onError=this.hook("showError",this.handleError),this.bind(".xgplayer-error-refresh","click",this.clickHandler),this.on(Qb,function(o){n.onError(o)})}},{key:"errorRetry",value:function(n){this.emitUserAction(n,"error_retry",{}),this.player.retry()}},{key:"handleError",value:function(){var o=this.player,c=o.errorNote?this.i18n[o.errorNote]:"";if(!c)switch((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).errorType){case"decoder":c=this.i18n.MEDIA_ERR_DECODE;break;case"network":c=this.i18n.MEDIA_ERR_NETWORK;break;default:c=this.i18n.MEDIA_ERR_SRC_NOT_SUPPORTED}this.find(".xgplayer-error-text").innerHTML=c,this.find(".xgplayer-error-tips").innerHTML="".concat(this.i18n.REFRESH_TIPS,'').concat(this.i18n.REFRESH,"")}},{key:"destroy",value:function(){this.unbind(".xgplayer-error-refresh","click",this.clickHandler)}},{key:"render",value:function(){return'\n
\n \n \n
\n
'}}],[{key:"pluginName",get:function(){return"error"}}]),t}(Fs),ZEe=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"afterCreate",value:function(){var n=this;this.intervalId=0,this.customConfig=null,this.bind(".highlight",["click","touchend"],function(o){(n.config.onClick||n.customOnClick)&&(o.preventDefault(),o.stopPropagation(),n.customOnClick?n.customOnClick(o):n.config.onClick(o))}),this.player.showPrompt=function(){n.showPrompt.apply(n,arguments)},this.player.hidePrompt=function(){n.hide()}}},{key:"setStyle",value:function(n){var o=this;Object.keys(n).map(function(s){o.root.style[s]=n[s]})}},{key:"showPrompt",value:function(n){var o=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n){this.customOnClick=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};var g=this.config.interval;this.intervalId&&(clearTimeout(this.intervalId),this.intervalId=null),ti.addClass(this.root,"show"),"arrow"===s.mode&&ti.addClass(this.root,"arrow"),this.find(".xgplayer-prompt-detail").innerHTML="string"==typeof n?n:"".concat(n.text||"")+"".concat(n.highlight?''.concat(n.highlight,""):""),s.style&&this.setStyle(s.style),("boolean"==typeof s.autoHide?s.autoHide:this.config.autoHide)&&(this.intervalId=setTimeout(function(){o.hide()},s.interval||g))}}},{key:"hide",value:function(){ti.removeClass(this.root,"show"),ti.removeClass(this.root,"arrow"),this.root.removeAttribute("style"),this.customOnClick=null}},{key:"render",value:function(){return'\n \n ')}}],[{key:"pluginName",get:function(){return"prompt"}},{key:"defaultConfig",get:function(){return{interval:3e3,style:{},mode:"arrow",autoHide:!0,detail:{text:"",highlight:""},onClick:function(){}}}}]),t}(Fs),N5={time:0,text:"",id:1,duration:1,color:"#fff",style:{},width:6,height:6};function U5(r){Object.keys(N5).map(function(a){void 0===r[a]&&(r[a]=N5[a])})}var z5={_updateDotDom:function(a,t){if(t){var i=this.calcuPosition(a.time,a.duration),n=a.style||{};n.left="".concat(i.left,"%"),n.width="".concat(i.width,"%"),t.setAttribute("data-text",a.text),t.setAttribute("data-time",a.time),i.isMini?ti.addClass(t,"mini"):ti.removeClass(t,"mini"),Object.keys(n).map(function(o){t.style[o]=n[o]})}},initDots:function(){var a=this;this._ispots.map(function(t){a.createDot(t,!1)}),this.ispotsInit=!0},createDot:function(a){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.player.plugins.progress;if(i&&(t&&(U5(a),this._ispots.push(a)),this.ispotsInit||!t)){var n=this.calcuPosition(a.time,a.duration),o=a.style||{};o.left="".concat(n.left,"%"),o.width="".concat(n.width,"%");var s="xgspot_".concat(a.id," xgplayer-spot");n.isMini&&(s+=" mini");var c=a.template?'
'.concat(a.template,"
"):"",g=ti.createDom("xg-spot",c,{"data-text":a.text,"data-time":a.time,"data-id":a.id},s);Object.keys(o).map(function(B){g.style[B]=o[B]}),i.outer&&i.outer.appendChild(g),this.positionDot(g,a.id)}},findDot:function(a){if(this.player.plugins.progress){var t=this._ispots.filter(function(i,n){return i.id===a});return t.length>0?t[0]:null}},updateDot:function(a){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.player.plugins.progress;if(i){var n=this.findDot(a.id);if(n&&Object.keys(a).map(function(s){n[s]=a[s]}),this.ispotsInit){var o=i.find('xg-spot[data-id="'.concat(a.id,'"]'));o&&(this._updateDotDom(a,o),t&&this.showDot(a.id))}}},deleteDot:function(a){var t=this._ispots,i=this.player.plugins.progress;if(i){for(var n=[],o=0;o=0;c--)if(t.splice(n[c],1),this.ispotsInit){var g=i.find('xg-spot[data-id="'.concat(a,'"]'));g&&g.parentElement.removeChild(g)}}},deleteAllDots:function(){var a=this.player.plugins.progress;if(a){if(!this.ispotsInit)return void(this._ispots=[]);for(var t=a.root.getElementsByTagName("xg-spot"),i=t.length-1;i>=0;i--)a.outer.removeChild(t[i]);this._ispots=[]}},updateAllDots:function(){var a=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=this.player.plugins.progress;if(i){if(!this.ispotsInit)return void(this._ispots=t);this._ispots=[];var n=i.root.getElementsByTagName("xg-spot"),o=n.length;if(o>t.length)for(var s=o-1;s>t.length-1;s--)i.outer.removeChild(n[s]);t.forEach(function(c,g){g0&&n.hide();var c=n.player.plugins.progress;c&&c.disableBlur(),n._curDot.addEventListener("mouseleave",n.onDotMouseLeave)}}),n._ispots=[],n.videoPreview=null,n.videothumbnail=null,n.thumbnail=null,n.timeStr="",n._state={now:0,f:!1},n}return po(t,[{key:"beforeCreate",value:function(n){var o=n.player.plugins.progress;o&&(n.root=o.root)}},{key:"afterCreate",value:function(){var n=this;this._curDot=null,this.handlerSpotClick=this.hook("spotClick",function(o,s){s.seekTime&&n.player.seek(s.seekTime)}),this.transformTimeHook=this.hook("transformTime",function(o){n.setTimeContent(ti.format(o))}),function JEe(r){var a=r.config,t=r.player;Object.keys(z5).map(function(n){r[n]=z5[n].bind(r)}),r._ispots=(t.config.progressDot||a.ispots||[]).map(function(n){return U5(n),n}),r.ispotsInit=!1,r.playerSize={left:t.sizeInfo.left,width:t.sizeInfo.width},r.on(_m,function(){r.ispotsInit?r.updateDuration():r.initDots()}),r.on(vm,function(){r.positionDots()})}(this),this.on(_m,function(){n.show()}),this.config.disable&&this.disable(),this.extTextRoot=this.find(".xg-spot-ext-text")}},{key:"setConfig",value:function(n){var o=this;n&&Object.keys(n).map(function(s){o.config[s]=n[s]})}},{key:"onPluginsReady",value:function(){this.player.plugins.progress&&(this.previewLine=this.find(".xg-spot-line"),this.timePoint=this.find(".xgplayer-progress-point"),this.timeText=this.find(".xg-spot-time"),this.tipText=this.find(".spot-inner-text"),this._hasThumnail=!1,this.registerThumbnail(),this.bindEvents())}},{key:"bindEvents",value:function(){var n=this,o=this.player.plugins.progress;if(o&&(Object.keys(oy).map(function(c){n[oy[c]]=n[oy[c]].bind(n),o.addCallBack(c,n[oy[c]])}),"mobile"!==Ma.device)){this.bind(".xg-spot-info","mousemove",this.onMousemove),this.bind(".xg-spot-info","mousedown",this.onMousedown),this.bind(".xg-spot-info","mouseup",this.onMouseup);var s=this.hook("previewClick",function(){});this.handlerPreviewClick=function(c){c.stopPropagation(),s(parseInt(1e3*n._state.now,10)/1e3,c)},this.bind(".xg-spot-content","mouseup",this.handlerPreviewClick)}}},{key:"onProgressMove",value:function(n,o){this.config.disable||!this.player.duration||this.updatePosition(n.offset,n.width,n.currentTime,n.e)}},{key:"onProgressDragStart",value:function(n){this.config.disable||!this.player.duration||(this.isDrag=!0,this.videoPreview&&ti.addClass(this.videoPreview,"show"))}},{key:"onProgressDragEnd",value:function(n){this.config.disable||!this.player.duration||(this.isDrag=!1,this.videoPreview&&ti.removeClass(this.videoPreview,"show"))}},{key:"onProgressClick",value:function(n,o){this.config.disable||ti.hasClass(o.target,"xgplayer-spot")&&(o.stopPropagation(),o.preventDefault(),["time","id","text"].map(function(s){n[s]=o.target.getAttribute("data-".concat(s))}),n.time&&(n.time=Number(n.time)),this.handlerSpotClick(o,n))}},{key:"updateLinePos",value:function(n,o){var s=this.root,c=this.previewLine,B=this.config,ne="flex"===this.player.controls.mode,we=s.getBoundingClientRect().width;if(we||!this._hasThumnail){var nt,$e=n-(we=this._hasThumnail&&weo-we&&!ne?(nt=$e-(o-we),$e=o-we):nt=0,void 0!==nt&&(c.style.transform="translateX(".concat(nt.toFixed(2),"px)")),s.style.transform="translateX(".concat($e.toFixed(2),"px) translateZ(0)")}}},{key:"updateTimeText",value:function(n){var s=this.timePoint;this.timeText.innerHTML=n,!this.thumbnail&&(s.innerHTML=n)}},{key:"updatePosition",value:function(n,o,s,c){var B=this.config,O=this._state;if(this.root){O.now=s,this.transformTimeHook(s);var ne=this.timeStr;c&&c.target&&ti.hasClass(c.target,"xgplayer-spot")?(this.showTips(c.target.getAttribute("data-text"),!1,ne),this.focusDot(c.target),O.f=!0,B.isFocusDots&&O.f&&(O.now=parseInt(c.target.getAttribute("data-time"),10))):B.defaultText?(O.f=!1,this.showTips(B.defaultText,!0,ne)):(O.f=!1,this.hideTips("")),this.updateTimeText(ne),this.updateThumbnails(O.now),this.updateLinePos(n,o)}}},{key:"setTimeContent",value:function(n){this.timeStr=n}},{key:"updateThumbnails",value:function(n){var s=this.videoPreview,c=this.config,g=this.player.plugins.thumbnail;if(g&&g.usable){this.thumbnail&&g.update(this.thumbnail,n,c.width,c.height);var B=s&&s.getBoundingClientRect();this.videothumbnail&&g.update(this.videothumbnail,n,B.width,B.height)}}},{key:"registerThumbnail",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("mobile"!==Ma.device){var o=this.player,s=this.config,c=o.getPlugin("thumbnail");if(c&&c.setConfig(n),!(c&&c.usable&&s.isShowThumbnail))return void ti.addClass(this.root,"short-line no-thumbnail");ti.removeClass(this.root,"short-line no-thumbnail"),"short"===s.mode&&ti.addClass(this.root,"short-line"),this._hasThumnail=!0;var g=this.find(".xg-spot-thumbnail");this.thumbnail=c.createThumbnail(g,"progress-thumbnail"),s.isShowCoverPreview&&(this.videoPreview=ti.createDom("xg-video-preview","",{},"xgvideo-preview"),o.root.appendChild(this.videoPreview),this.videothumbnail=c.createThumbnail(this.videoPreview,"xgvideo-thumbnail")),this.updateThumbnails(0)}}},{key:"calcuPosition",value:function(n,o){var c=this.player,g=this.player.plugins.progress.root.getBoundingClientRect().width;return n+o>c.duration&&(o=c.duration-n),{left:n/c.duration*100,width:o/c.duration*100,isMini:o2&&void 0!==arguments[2]?arguments[2]:"";ti.addClass(this.root,"no-timepoint"),n&&(ti.addClass(this.find(".xg-spot-content"),"show-text"),o&&"production"===this.config.mode?(ti.addClass(this.root,"product"),this.tipText.textContent=n):(ti.removeClass(this.root,"product"),this.tipText.textContent=this._hasThumnail?n:"".concat(s," ").concat(n)))}},{key:"hideTips",value:function(){ti.removeClass(this.root,"no-timepoint"),this.tipText.textContent="",ti.removeClass(this.find(".xg-spot-content"),"show-text"),ti.removeClass(this.root,"product")}},{key:"hide",value:function(){ti.addClass(this.root,"hide")}},{key:"show",value:function(n){ti.removeClass(this.root,"hide")}},{key:"enable",value:function(){var n=this.config,o=this.playerConfig;this.config.disable=!1,this.show(),!this.thumbnail&&n.isShowThumbnail&&this.registerThumbnail(o.thumbnail||{})}},{key:"disable",value:function(){this.config.disable=!0,this.hide()}},{key:"destroy",value:function(){var n=this,o=this.player.plugins.progress;o&&Object.keys(oy).map(function(s){o.removeCallBack(s,n[oy[s]])}),this.videothumbnail=null,this.thumbnail=null,this.videoPreview&&this.player.root.removeChild(this.videoPreview),this.unbind(".xg-spot-info","mousemove",this.onMousemove),this.unbind(".xg-spot-info","mousedown",this.onMousedown),this.unbind(".xg-spot-info","mouseup",this.onMouseup),this.unbind(".xg-spot-content","mouseup",this.handlerPreviewClick)}},{key:"render",value:function(){return"mobile"===Ma.device||"mobile"===this.playerConfig.isMobileSimulateMode?"":'
\n
\n
\n \n
\n
\n
\n
00:00
\n
\n
\n
')}}],[{key:"pluginName",get:function(){return"progresspreview"}},{key:"defaultConfig",get:function(){return{index:1,miniWidth:6,ispots:[],defaultText:"",isFocusDots:!0,isHideThumbnailHover:!0,isShowThumbnail:!0,isShowCoverPreview:!1,mode:"",disable:!1,width:160,height:90}}}]),t}(Fs),VEe=function(r){Jo(t,r);var a=jo(t);function t(i){var n;return ho(this,t),(n=a.call(this,i)).ratio=1,n.interval=null,n._preloadMark={},n}return po(t,[{key:"afterCreate",value:function(){var n=this;this.usable&&this.initThumbnail(),this.on([_m],function(){var o=n.config,c=o.interval;n.usable&&(n.interval=c>0?c:Math.round(1e3*n.player.duration/o.pic_num)/1e3)})}},{key:"setConfig",value:function(n){var o=this;if(n){var s=Object.keys(n);s.length<1||(s.forEach(function(c){o.config[c]=n[c]}),this.usable&&this.initThumbnail())}}},{key:"usable",get:function(){var n=this.config,o=n.urls;return o&&o.length>0&&n.pic_num>0}},{key:"initThumbnail",value:function(){var n=this.config,c=n.pic_num,g=n.interval;this.ratio=n.width/n.height*100,this.interval=g||Math.round(this.player.duration/c),this._preloadMark={}}},{key:"getUrlByIndex",value:function(n){return n>=0&&n0&&g.push(n-1),g.push(n),n>0&&n=0&&B1&&void 0!==arguments[1]?arguments[1]:0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,c=this.config,g=c.pic_num,B=c.row,O=c.col,ne=c.width,we=c.height;this.interval=Math.round(this.player.duration/g);var $e=Math.ceil(n/this.interval),nt=($e=$e>g?g:$e)0?Math.ceil(Ft/O)-1:0,pi=Ft>0?Ft-ei*O-1:0,Di=0,Ri=0;o&&s?o/s4&&void 0!==arguments[4]?arguments[4]:"",B=this.config,ne=B.urls;if(!(B.pic_num<=0)&&ne&&0!==ne.length){var we=this.getPosition(o,arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,arguments.length>3&&void 0!==arguments[3]?arguments[3]:0);this.preload(we.urlIndex),Object.keys(we.style).map(function($e){n.style[$e]=we.style[$e]}),Object.keys(g).map(function($e){n.style[$e]=g[$e]})}}},{key:"changeConfig",value:function(){this.setConfig(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}},{key:"createThumbnail",value:function(n,o){var s=ti.createDom("xg-thumbnail","",{},"thumbnail ".concat(o));return n&&n.appendChild(s),s}}],[{key:"pluginName",get:function(){return"thumbnail"}},{key:"defaultConfig",get:function(){return{isShow:!1,urls:[],pic_num:0,col:0,row:0,height:90,width:160,scale:1,className:"",hidePortrait:!1}}}]),t}(Fs);function M3(r){return r?"background:".concat(r,";"):""}var WEe=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"afterCreate",value:function(){}},{key:"update",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cached:0,played:0},o=arguments.length>1?arguments[1]:void 0;!o||!this.root||(n.cached&&(this.find("xg-mini-progress-cache").style.width="".concat(n.cached/o*100,"%")),n.played&&(this.find("xg-mini-progress-played").style.width="".concat(n.played/o*100,"%")))}},{key:"render",value:function(){if(this.playerConfig.progress&&this.playerConfig.miniprogress){var n=this.playerConfig.commonStyle,o={cached:M3(n.cachedColor),played:M3(n.playedColor),progress:M3(n.progressColor)};return'\n \n \n ')}}}],[{key:"pluginName",get:function(){return"MiniProgress"}},{key:"defaultConfig",get:function(){return{}}}]),t}(Fs),RD=null,XEe=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s0)i.renderOnce(),i._frameCount--;else{i._isLoaded=!0,i.off(sh,i.renderOnTimeupdate);var g=i.config.startInterval;!i.player.paused&&i._checkIfCanStart()&&i.start(0,g)}}),Hn(yn(i),"start",function(c,g){var B=i.player.video,O=function KEe(){try{return parseInt(window.performance.now(),10)}catch{return(new Date).getTime()}}(),ne=i.checkVideoIsSupport(B);!ne||!i.canvasCtx||(g||(g=i.interval),i.stop(),B.videoWidth&&B.videoHeight&&(i.videoPI=B.videoHeight>0?parseInt(B.videoWidth/B.videoHeight*100,10):0,("realtime"===i.config.mode||O-i.preTime>=g)&&(B&&B.videoWidth&&i.update(ne,i.videoPI),i.preTime=O)),i.frameId="timer"===i._loopType?ti.setTimeout(yn(i),i.start,g):ti.requestAnimationFrame(i.start))}),Hn(yn(i),"stop",function(){i.frameId&&("timer"===i._loopType?ti.clearTimeout(yn(i),i.frameId):ti.cancelAnimationFrame(i.frameId),i.frameId=null)}),i}return po(t,[{key:"afterCreate",value:function(){var n=this;!0===this.playerConfig.dynamicBg&&(this.config.disable=!1),t.isSupport||(this.config.disable=!0);var o=this.config,c=o.mode,g=o.frameRate;o.disable||(this._pos={width:0,height:0,rwidth:0,rheight:0,x:0,y:0,pi:0},this.isStart=!1,this._isLoaded=!1,this.videoPI=0,this.preTime=0,this.interval=parseInt(1e3/g,10),this.canvas=null,this.canvasCtx=null,this._frameCount=0,this._loopType="realtime"!==this.config.mode&&this.interval>=1e3?"timer":"animation",this.once(CD,function(){n.player&&(n.init(),n.renderByPoster(),n.player.paused||n.start())}),"poster"!==c&&("firstframe"!==c&&(this.on(ey,function(){n.stop()}),this.on(xu,function(){var B=n.config.startInterval;n._checkIfCanStart()&&n.start(0,B)}),this.on($v,function(){n.stop()})),this.on(Lp,this.onLoadedData),this.on(o3,function(){n._isLoaded=!1,n.stop()}),document.addEventListener("visibilitychange",this.onVisibilitychange)))}},{key:"setConfig",value:function(n){var o=this;Object.keys(n).forEach(function(s){"root"===s&&n[s]!==o.config[s]?o.reRender(n[s]):"frameRate"===s?o.interval=parseInt(1e3/n[s],10):"disable"===s&&n[s]&&o.stop(),o.config[s]=n[s]})}},{key:"init",value:function(n){var o=this.player,s=this.config;this.canvasFilter=t.supportCanvasFilter();try{var c=n||s.root;c||(c=s.isInnerRender&&o.innerContainer||o.root),c.insertAdjacentHTML("afterbegin",'
\n
')),this.root=c.children[0],this.canvas=this.find("canvas"),this.canvasFilter||(this.canvas.style.filter=s.filter,this.canvas.style.webkitFilter=s.filter),this.mask=this.find("xgmask"),s.addMask&&(this.mask.style.background=s.maskBg),this.canvasCtx=this.canvas.getContext("2d")}catch(g){ls.logError("plugin:DynamicBg",g)}}},{key:"reRender",value:function(n){if(this.config.disable||this.root){this.stop();var s=this.root?this.root.parentElement:null;if(s!==n&&s.removeChild(this.root),!n)return void(this.root=null);this.init(n),this.renderOnce();var c=this.config.startInterval;this._checkIfCanStart()&&this.start(0,c)}}},{key:"checkVideoIsSupport",value:function(n){if(!n)return null;var o=n&&n instanceof window.HTMLVideoElement?n:n.canvas?n.canvas:n.flyVideo?n.flyVideo:null;if(o&&("safari"!==Ma.browser||!ti.isMSE(o)))return o;var s=o?o.tagName.toLowerCase():"";return"canvas"===s||"img"===s?o:null}},{key:"renderByPoster",value:function(){var n=this.playerConfig.poster;if(n){var o="String"===ti.typeOf(n)?n:"String"===ti.typeOf(n.poster)?n.poster:null;this.updateImg(o)}}},{key:"_checkIfCanStart",value:function(){var n=this.config.mode;return this._isLoaded&&!this.player.paused&&"firstframe"!==n&&"poster"!==n}},{key:"renderOnce",value:function(){var n=this.player.video;if(n.videoWidth&&n.videoHeight){this.videoPI=parseInt(n.videoWidth/n.videoHeight*100,10);var o=this.checkVideoIsSupport(n);o&&this.update(o,this.videoPI)}}},{key:"updateImg",value:function(n){var o=this;if(n){var s=this.canvas.getBoundingClientRect(),c=s.width,g=s.height,B=new window.Image;B.onload=function(){if(o.canvas&&!o.frameId&&!o.isStart){o.canvas.height=g,o.canvas.width=c;var O=parseInt(c/g*100,10);o.update(B,O),B=null}},B.src=n}}},{key:"update",value:function(n,o){if(this.canvas&&this.canvasCtx&&o)try{var s=this._pos,c=this.config,g=this.canvas.getBoundingClientRect(),B=g.width,O=g.height;if(B!==s.width||O!==s.height||s.pi!==o){var ne=parseInt(B/O*100,10);s.pi=o,s.width!==B&&(s.width=this.canvas.width=B),s.height!==O&&(s.height=this.canvas.height=O);var we=O,$e=B;neo&&(we=parseInt(100*B/o,10)),s.rwidth=$e*c.multiple,s.rheight=we*c.multiple,s.x=(B-s.rwidth)/2,s.y=(O-s.rheight)/2}this.canvasFilter&&(this.canvasCtx.filter=c.filter),this.canvasCtx.drawImage(n,s.x,s.y,s.rwidth,s.rheight)}catch(nt){ls.logError("plugin:DynamicBg",nt)}}},{key:"destroy",value:function(){this.stop(),document.removeEventListener("visibilitychange",this.onVisibilitychange),this.canvasCtx=null,this.canvas=null}},{key:"render",value:function(){return""}}],[{key:"pluginName",get:function(){return"dynamicBg"}},{key:"defaultConfig",get:function(){return{isInnerRender:!1,disable:!0,index:-1,mode:"framerate",frameRate:10,filter:"blur(50px)",startFrameCount:2,startInterval:0,addMask:!0,multiple:1.2,maskBg:"rgba(0,0,0,0.7)"}}},{key:"isSupport",get:function(){return"boolean"==typeof RD||(RD=function qEe(){try{return!!document.createElement("canvas").getContext}catch{return!1}}()),RD}},{key:"supportCanvasFilter",value:function(){return!("safari"===Ma.browser||"firefox"===Ma.browser)}}]),t}(Fs),H5={LANG:"zh-cn",TEXT:{ERROR_TYPES:{network:{code:1,msg:"\u89c6\u9891\u4e0b\u8f7d\u9519\u8bef"},mse:{code:2,msg:"\u6d41\u8ffd\u52a0\u9519\u8bef"},parse:{code:3,msg:"\u89e3\u6790\u9519\u8bef"},format:{code:4,msg:"\u683c\u5f0f\u9519\u8bef"},decoder:{code:5,msg:"\u89e3\u7801\u9519\u8bef"},runtime:{code:6,msg:"\u8bed\u6cd5\u9519\u8bef"},timeout:{code:7,msg:"\u64ad\u653e\u8d85\u65f6"},other:{code:8,msg:"\u5176\u4ed6\u9519\u8bef"}},HAVE_NOTHING:"\u6ca1\u6709\u5173\u4e8e\u97f3\u9891/\u89c6\u9891\u662f\u5426\u5c31\u7eea\u7684\u4fe1\u606f",HAVE_METADATA:"\u97f3\u9891/\u89c6\u9891\u7684\u5143\u6570\u636e\u5df2\u5c31\u7eea",HAVE_CURRENT_DATA:"\u5173\u4e8e\u5f53\u524d\u64ad\u653e\u4f4d\u7f6e\u7684\u6570\u636e\u662f\u53ef\u7528\u7684\uff0c\u4f46\u6ca1\u6709\u8db3\u591f\u7684\u6570\u636e\u6765\u64ad\u653e\u4e0b\u4e00\u5e27/\u6beb\u79d2",HAVE_FUTURE_DATA:"\u5f53\u524d\u53ca\u81f3\u5c11\u4e0b\u4e00\u5e27\u7684\u6570\u636e\u662f\u53ef\u7528\u7684",HAVE_ENOUGH_DATA:"\u53ef\u7528\u6570\u636e\u8db3\u4ee5\u5f00\u59cb\u64ad\u653e",NETWORK_EMPTY:"\u97f3\u9891/\u89c6\u9891\u5c1a\u672a\u521d\u59cb\u5316",NETWORK_IDLE:"\u97f3\u9891/\u89c6\u9891\u662f\u6d3b\u52a8\u7684\u4e14\u5df2\u9009\u53d6\u8d44\u6e90\uff0c\u4f46\u5e76\u672a\u4f7f\u7528\u7f51\u7edc",NETWORK_LOADING:"\u6d4f\u89c8\u5668\u6b63\u5728\u4e0b\u8f7d\u6570\u636e",NETWORK_NO_SOURCE:"\u672a\u627e\u5230\u97f3\u9891/\u89c6\u9891\u6765\u6e90",MEDIA_ERR_ABORTED:"\u53d6\u56de\u8fc7\u7a0b\u88ab\u7528\u6237\u4e2d\u6b62",MEDIA_ERR_NETWORK:"\u7f51\u7edc\u9519\u8bef",MEDIA_ERR_DECODE:"\u89e3\u7801\u9519\u8bef",MEDIA_ERR_SRC_NOT_SUPPORTED:"\u4e0d\u652f\u6301\u7684\u97f3\u9891/\u89c6\u9891\u683c\u5f0f",REPLAY:"\u91cd\u64ad",ERROR:"\u7f51\u7edc\u8fde\u63a5\u4f3c\u4e4e\u51fa\u73b0\u4e86\u95ee\u9898",PLAY_TIPS:"\u64ad\u653e",PAUSE_TIPS:"\u6682\u505c",PLAYNEXT_TIPS:"\u4e0b\u4e00\u96c6",DOWNLOAD_TIPS:"\u4e0b\u8f7d",ROTATE_TIPS:"\u65cb\u8f6c",RELOAD_TIPS:"\u91cd\u65b0\u8f7d\u5165",FULLSCREEN_TIPS:"\u8fdb\u5165\u5168\u5c4f",EXITFULLSCREEN_TIPS:"\u9000\u51fa\u5168\u5c4f",CSSFULLSCREEN_TIPS:"\u8fdb\u5165\u6837\u5f0f\u5168\u5c4f",EXITCSSFULLSCREEN_TIPS:"\u9000\u51fa\u6837\u5f0f\u5168\u5c4f",TEXTTRACK:"\u5b57\u5e55",PIP:"\u753b\u4e2d\u753b",SCREENSHOT:"\u622a\u56fe",LIVE:"\u6b63\u5728\u76f4\u64ad",OFF:"\u5173\u95ed",OPEN:"\u5f00\u542f",MINI_DRAG:"\u70b9\u51fb\u6309\u4f4f\u53ef\u62d6\u52a8\u89c6\u9891",MINISCREEN:"\u5c0f\u5c4f\u5e55",REFRESH_TIPS:"\u8bf7\u8bd5\u8bd5",REFRESH:"\u5237\u65b0",FORWARD:"\u5feb\u8fdb\u4e2d",LIVE_TIP:"\u76f4\u64ad"}},Rb="info",D3=$N,$Ee=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;sg.media.duration)){var pi=Ft-$e,Di=pi<=ne;pio&&(0===B||c[B-1].end-o<=s)){g=B;break}return g}},{key:"_getBuffered",value:function(n){if(!n)return[];for(var o=[],s=0;sg.jumpCntMax||i.timer||!1===g.useWaitingTimeoutJump||(i.timer=setTimeout(i.onJump,1e3*g.waitingTime))}),Hn(yn(i),"onJump",function(){var c=yn(i),g=c.player,B=c.config;if(clearTimeout(i.timer),i.timer=null,!(i.jumpCnt>B.jumpCntMax||!1===B.useWaitingTimeoutJump||g.media.paused&&0!==g.media.currentTime&&i.hasPlayed)){i.jumpSize=B.jumpSize*(i.jumpCnt+1),i.jumpCnt===B.jumpSize&&i.jumpSize<6&&(i.jumpSize=6);var O=g.currentTime+i.jumpSize;O>g.media.duration||(console.log("waitintTimeout, currentTime:",g.currentTime,", jumpTo:",O),i.jumpCnt++,g.currentTime=O)}}),i}return po(t,[{key:"afterCreate",value:function(){var n=this,o=this.config,c=o.jumpSize;!1!==o.useWaitingTimeoutJump&&(this.hasPlayed=!1,this.jumpCnt=0,this.timer=null,this.jumpSize=c,this.on(Sb,this.onWaiting),this.on([r3,zg],function(){clearTimeout(n.timer),n.timer=null,n.jumpSize=n.config.jumpSize}),this.on(xu,function(){n.hasPlayed=!0}))}}],[{key:"pluginName",get:function(){return"waitingTimeoutJump"}},{key:"defaultConfig",get:function(){return{useWaitingTimeoutJump:!1,waitingTime:15,jumpSize:2,jumpCntMax:4}}}]),t}(Fs),sy="cdn",YD=["cdn"],tMe=function(r){Jo(t,r);var a=jo(t);function t(){var i;ho(this,t);for(var n=arguments.length,o=new Array(n),s=0;s0&&void 0!==arguments[0]?arguments[0]:sy;if(!i.speedListCache||!i.speedListCache[c]||i.speedListCache[c].length<=0)return 0;var g=0;return i.speedListCache[c].map(function(B){g+=B}),Math.floor(g/i.speedListCache[c].length)}),Hn(yn(i),"startTimer",function(){ti.isMSE(i.player.video)||(i.initSpeedList(),i.cnt=0,i.timer=setTimeout(i.testSpeed,i.config.testTimeStep))}),Hn(yn(i),"initSpeedList",function(){i.speedListCache={},YD.forEach(function(c){i.speedListCache[c]=[]})}),Hn(yn(i),"_onRealSpeedChange",function(c){c.speed&&i.appendList(c.speed,c.type||sy)}),Hn(yn(i),"testSpeed",function(){if(clearTimeout(i.timer),i.timer=null,i.player&&i.config.openSpeed){var c=i.config,g=c.url,B=c.loadSize,O=c.testCnt,ne=c.testTimeStep,we=g+(g.indexOf("?")<0?"?testst=":"&testst=")+Date.now();if(!(i.cnt>=O)){i.cnt++;try{var $e=(new Date).getTime(),nt=null,Ft=new XMLHttpRequest;i.xhr=Ft,Ft.open("GET",we);var ei={},pi=Math.floor(10*Math.random());ei.Range="bytes="+pi+"-"+(B+pi),ei&&Object.keys(ei).forEach(function(Di){Ft.setRequestHeader(Di,ei[Di])}),Ft.onreadystatechange=function(){if(4===Ft.readyState){i.xhr=null,nt=(new Date).getTime();var Di=Ft.getResponseHeader("Content-Length")/1024*8,Ri=Math.round(1e3*Di/(nt-$e));i.appendList(Ri),i.timer=setTimeout(i.testSpeed,ne)}},Ft.send()}catch(Di){console.error(Di)}}}}),Hn(yn(i),"appendList",function(c){var g=arguments.length>1&&void 0!==arguments[1]?arguments[1]:sy;if(i.speedListCache&&i.speedListCache[g]){i.speedListCache[g].length>=i.config.saveSpeedMax&&i.speedListCache[g].shift(),i.speedListCache[g].push(c);var ne=yn(i).player;ne&&(g===sy?ne.realTimeSpeed=c:ne[i.getSpeedName("realTime",g)]=c),i.updateSpeed(g)}}),Hn(yn(i),"updateSpeed",function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:sy,g=i.getSpeed(c),O=yn(i).player;if(O)if(c===sy)(!O.avgSpeed||g!==O.avgSpeed)&&(O.avgSpeed=g,O.emit(A3,{speed:g,realTimeSpeed:O.realTimeSpeed}));else{var ne=i.getSpeedName("avg",c);(!O[ne]||g!==O[ne])&&(O[ne]=g,O.emit(A3,{speed:g,realTimeSpeed:O.realTimeSpeed}))}}),i}return po(t,[{key:"afterCreate",value:function(){var n=this.config,o=n.openSpeed,s=n.addSpeedTypeList;s?.length>0&&YD.push.apply(YD,Gh(s)),this.initSpeedList(),this.on("real_time_speed",this._onRealSpeedChange),this.timer=null,this.cnt=0,this.xhr=null,o&&this.on([Lp,bD],this.startTimer)}},{key:"getSpeedName",value:function(n,o){return n+"Speed"+o.toUpperCase()}},{key:"openSpeed",get:function(){return this.config.openSpeed},set:function(n){if(this.config.openSpeed=n,!n&&this.timer)return clearTimeout(this.timer),void(this.timer=null);if(this.config.openSpeed){if(this.timer)return;this.timer=setTimeout(this.testSpeed,this.config.testTimeStep)}}},{key:"destroy",value:function(){var n=this;this.off("real_time_speed",this._onRealSpeedChange),this.off([Lp,bD],this.startTimer),YD.forEach(function(o){n.speedListCache&&n.speedListCache[o]&&(n.speedListCache[o]=[])}),this.speedListCache&&(this.speedListCache={}),clearTimeout(this.timer),this.timer=null,this.xhr&&4!==this.xhr.readyState&&(this.xhr.cancel&&this.xhr.cancel(),this.xhr=null)}}],[{key:"pluginName",get:function(){return"testspeed"}},{key:"defaultConfig",get:function(){return{openSpeed:!1,testCnt:3,loadSize:204800,testTimeStep:3e3,url:"",saveSpeedMax:5,addSpeedTypeList:[]}}}]),t}(Fs),iMe=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t,[{key:"afterCreate",value:function(){var n=this,o=this.player,s=this.config;this.timer=null,this._lastDecodedFrames=0,this._currentStuckCount=0,this._lastCheckPoint=null,this._payload=[],s.disabled||o.media.getVideoPlaybackQuality&&(this.on(xu,function(){n._startTick()}),this.on($v,function(){n._stopTick()}),this.on(J0,function(){n._stopTick()}),this.on(ey,function(){n._stopTick()}))}},{key:"_startTick",value:function(){var n=this;this._stopTick(),this._timer=setTimeout(function(){n._checkDecodeFPS(),n._startTick()},this.config.tick)}},{key:"_stopTick",value:function(){clearTimeout(this._timer),this._timer=null}},{key:"_checkStuck",value:function(n,o,s,c){var g=this.player.media,B=document.hidden;if("boolean"==typeof B&&!B&&!g.paused){for(var ne=g.currentTime,we=g.buffered,$e=!1,nt=[],Ft=0;Ftthis.config.stuckCount?(this.emit(e5,this._payload),this._reset()):n<=this.config.reportFrame?(this._currentStuckCount++,this._payload.push({bufs:nt,currentTime:g.currentTime,curDecodedFrames:n,totalVideoFrames:o,droppedVideoFrames:s,checkInterval:c})):this._reset())}}},{key:"_reset",value:function(){this._payload=[],this._currentStuckCount=0}},{key:"_checkDecodeFPS",value:function(){if(this.player.media){var n=this.player.media.getVideoPlaybackQuality(),o=n.totalVideoFrames,s=n.droppedVideoFrames,c=performance.now();o&&this._lastCheckPoint&&this._checkStuck(o-this._lastDecodedFrames,o,s,c-this._lastCheckPoint),this._lastDecodedFrames=o,this._lastCheckPoint=c}}},{key:"destroy",value:function(){this._stopTick()}}],[{key:"pluginName",get:function(){return"FpsDetect"}},{key:"defaultConfig",get:function(){return{disabled:!1,tick:1e3,stuckCount:3,reportFrame:0}}}]),t}(Fs);ty.use(H5);var nMe=po(function r(a,t){var i,n,o;ho(this,r);var s=t&&"mobile"===t.isMobileSimulateMode,B=[].concat(t.isLive?[]:[MEe,CEe,WEe,jEe,S5],[k5,Q5,F5,FEe,L5,R5,YEe,NEe,P5,O5]),O=[sEe,m5,v5,T5,y5,Y5,ZEe,VEe,uEe];this.plugins=[$Ee,oEe].concat(Gh(B),O,[G5,eMe]);var ne=s?"mobile":Ma.device;switch(ne){case"pc":(i=this.plugins).push.apply(i,[FD,Lb,E3,tMe,iMe]);break;case"mobile":(n=this.plugins).push.apply(n,[M5]);break;default:(o=this.plugins).push.apply(o,[FD,Lb,E3])}(Ma.os.isIpad||"pc"===ne)&&this.plugins.push(XEe),Ma.os.isIpad&&this.plugins.push(Lb),this.ignores=[],this.i18n=[]}),Jh=function(r){Jo(t,r);var a=jo(t);function t(){return ho(this,t),a.apply(this,arguments)}return po(t)}(SD);Hn(Jh,"defaultPreset",nMe),Hn(Jh,"Util",ti),Hn(Jh,"Sniffer",Ma),Hn(Jh,"Errors",kb),Hn(Jh,"Events",K),Hn(Jh,"Plugin",Fs),Hn(Jh,"BasePlugin",Zh),Hn(Jh,"I18N",ty),Hn(Jh,"STATE_CLASS",cr),Hn(Jh,"InstManager",p5);var rMe=po(function r(){var a,t;switch(ho(this,r),this.plugins=[m5,v5,T5,y5,Y5].concat([k5,Q5,S5,P5,F5,L5,R5,E3,O5]),Ma.device){case"pc":(a=this.plugins).push.apply(a,[FD,Lb]);break;case"mobile":this.plugins.push(M5);break;default:(t=this.plugins).push.apply(t,[FD,Lb])}this.ignores=[],this.i18n=[H5]});function Z5(r,a){for(var t=0;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var n,i=ND(r);if(a){var o=ND(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return function AMe(r,a){if(a&&("object"==typeof a||"function"==typeof a))return a;if(void 0!==a)throw new TypeError("Derived constructors may only return object or undefined");return function cMe(r){if(void 0===r)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}(r)}(this,n)}}function hMe(r){var a=function uMe(r,a){if("object"!=typeof r||null===r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var i=t.call(r,a||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(r)}(r,"string");return"symbol"==typeof a?a:String(a)}var pMe=ce(1348),ly=ce.n(pMe),gMe=function(r){!function sMe(r,a){if("function"!=typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(a&&a.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),a&&T3(r,a)}(t,r);var a=dMe(t);function t(){return function oMe(r,a){if(!(r instanceof a))throw new TypeError("Cannot call a class as a function")}(this,t),a.apply(this,arguments)}return function aMe(r,a,t){a&&Z5(r.prototype,a),t&&Z5(r,t),Object.defineProperty(r,"prototype",{writable:!1})}(t,[{key:"beforePlayerInit",value:function(){this.playerConfig.url&&this.flvLoad(this.playerConfig.url)}},{key:"afterCreate",value:function(){var n=this,o=this.player;this.flv=null,o.video.addEventListener("contextmenu",function(s){s.preventDefault()}),this.on(Pb,function(s){/^blob/.test(s)||(o.once(Lp,function(){o.play()}),n.playerConfig.url=s,n.flvLoad(s))});try{Zh.defineGetterOrSetter(o,{url:{get:function(){try{return n.player.video.src}catch{return null}},configurable:!0}})}catch{}}},{key:"destroy",value:function(){var n=this.player;this.destroyInstance(),Zh.defineGetterOrSetter(n,{url:{get:function(){try{return n.__url}catch{return null}},configurable:!0}})}},{key:"destroyInstance",value:function(){if(this.flv){var n=this.player;this.flv.unload(),this.flv.detachMediaElement(n.video),this.flv.destroy(),n.__flv__=null,this.flv=null}}},{key:"createInstance",value:function(n){var o=this.player;n&&(console.log("createInstance",n),n.attachMediaElement(o.video),n.load(),n.play(),n.on(ly().Events.ERROR,function(s){o.emit("error",new kb("other",o.config.url))}),n.on(ly().Events.LOADED_SEI,function(s,c){console.log("Flv.Events.LOADED_SEI"),o.emit("loaded_sei",s,c)}),n.on(ly().Events.STATISTICS_INFO,function(s){console.log("Flv.Events.STATISTICS_INFO"),o.emit("statistics_info",s)}),n.on(ly().Events.MEDIA_INFO,function(s){o.mediainfo=s,o.emit("MEDIA_INFO",s)}))}},{key:"flvLoad",value:function(n){console.log("flvLoad",n);var o=this.config.mediaDataSource;o.segments=[{cors:!0,duration:void 0,filesize:void 0,timestampBase:0,url:n,withCredentials:!1}],o.url=n,o.isLive=this.playerConfig.isLive,this.flvLoadMds(o)}},{key:"flvLoadMds",value:function(n){var o=this.player;typeof this.flv<"u"&&this.destroyInstance(),this.flv=o.__flv__=ly().createPlayer(n,this.flvConfig),this.createInstance(this.flv),this.flv.attachMediaElement(o.video),this.flv.load()}},{key:"switchURL",value:function(n){var o=this.player,s=this.playerConfig,c=0;s.isLive||(c=o.currentTime),o.flvLoad(n),o.video.muted=!0,this.once("playing",function(){o.video.muted=!1}),this.once("canplay",function(){s.isLive||(o.currentTime=c),o.play()})}}],[{key:"isSupported",get:function(){return ly().isSupported}},{key:"pluginName",get:function(){return"FlvJsPlugin"}},{key:"defaultConfig",get:function(){return{mediaDataSource:{type:"flv"},flvConfig:{}}}}]),t}(Zh);const fMe=["xgplayer"];let mMe=(()=>{class r{hmiService;xgplayerRef;data;onclose=new e.vpe;player;constructor(t){this.hmiService=t}ngOnInit(){let t=this.data.ga.property.variableValue;if(this.data.ga.property.variableId){let n=this.hmiService.getMappedVariable(this.data.ga.property.variableId,!1);ii.cQ.isNullOrUndefined(n?.value)||(t=""+n.value)}let i=[];new URL(t).pathname.endsWith("flv")&&i.push(gMe),this.player=new Jh({el:this.xgplayerRef.nativeElement,url:t,autoplay:!0,presets:[rMe],plugins:i})}onClose(t){this.onclose&&this.onclose.emit(t)}static \u0275fac=function(i){return new(i||r)(e.Y36(aA.Bb))};static \u0275cmp=e.Xpm({type:r,selectors:[["app-webcam-player"]],viewQuery:function(i,n){if(1&i&&e.Gf(fMe,7),2&i){let o;e.iGM(o=e.CRH())&&(n.xgplayerRef=o.first)}},inputs:{data:"data"},outputs:{onclose:"onclose"},decls:5,vars:0,consts:[["rel","stylesheet","href","//unpkg.byted-static.com/xgplayer/3.0.13/dist/index.min.css"],[1,"webcam-player-container"],["xgplayer",""]],template:function(i,n){1&i&&(e.TgZ(0,"div"),e._UZ(1,"link",0),e.TgZ(2,"div",1),e._UZ(3,"div",null,2),e.qZA()())},styles:[".webcam-player-container[_ngcontent-%COMP%]{min-width:600px}"]})}return r})();function _Me(r,a){if(1&r&&(e.TgZ(0,"div",2)(1,"div",3),e._UZ(2,"input",4),e.qZA(),e.TgZ(3,"span"),e._uU(4," - "),e.qZA(),e.TgZ(5,"div",5),e._UZ(6,"flex-variable",6),e.qZA()()),2&r){const t=a.$implicit,i=e.oxw();e.xp6(2),e.Q6J("value",t.originalName)("readonly",!0),e.xp6(4),e.Q6J("data",i.dataDevices)("value",t)("withStaticValue",!0)("withStaticType",t.type)("withBitmask",!1)}}let vMe=(()=>{class r{projectService;property;dataDevices={devices:[]};constructor(t){this.projectService=t,this.dataDevices={devices:Object.values(this.projectService.getDevices())}}static \u0275fac=function(i){return new(i||r)(e.Y36(wr.Y4))};static \u0275cmp=e.Xpm({type:r,selectors:[["flex-widget-property"]],inputs:{property:"property"},decls:2,vars:1,consts:[[1,"container"],["class","var-ref",4,"ngFor","ngForOf"],[1,"var-ref"],[1,"my-form-field"],["type","text",3,"value","readonly"],[1,"inbk"],[3,"data","value","withStaticValue","withStaticType","withBitmask"]],template:function(i,n){1&i&&(e.TgZ(0,"div",0),e.YNc(1,_Me,7,7,"div",1),e.qZA()),2&i&&(e.xp6(1),e.Q6J("ngForOf",n.property.varsToBind))},dependencies:[l.sg,$u],styles:["[_nghost-%COMP%] .container[_ngcontent-%COMP%]{margin-top:20px}[_nghost-%COMP%] .var-ref[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%] .var-ref[_ngcontent-%COMP%] flex-variable[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .var-ref[_ngcontent-%COMP%] flex-variable[_ngcontent-%COMP%] .value{margin-right:10px}[_nghost-%COMP%] .var-ref[_ngcontent-%COMP%] flex-variable[_ngcontent-%COMP%] .variable-input{min-width:400px}[_nghost-%COMP%] .var-ref[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-left:5px;margin-right:5px;display:inline-block}"]})}return r})(),yMe=(()=>{class r{constructor(){}static \u0275fac=function(i){return new(i||r)};static \u0275prov=e.Yz7({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var wMe=ce(9409);function CMe(r){return new oZ(r,"./assets/i18n/",".json")}const bMe={showDelay:2e3,hideDelay:500,touchendHideDelay:500};let xMe=(()=>{class r{constructor(t,i){t.addSvgIcon("group",i.bypassSecurityTrustResourceUrl("/assets/images/group.svg")),t.addSvgIcon("to_bottom",i.bypassSecurityTrustResourceUrl("/assets/images/to-bottom.svg")),t.addSvgIcon("to_top",i.bypassSecurityTrustResourceUrl("/assets/images/to-top.svg")),t.addSvgIcon("nodered-flows",i.bypassSecurityTrustResourceUrl("/assets/images/nodered-icon.svg"))}static \u0275fac=function(i){return new(i||r)(e.LFG(If),e.LFG(T.H7))};static \u0275mod=e.oAB({type:r,bootstrap:[BX]});static \u0275inj=e.cJS({providers:[JQ.V,jQ.a,VQ.v,aA.Bb,yv,bg.z,wr.Y4,tm,xS,RP,bL,oN,Ov.Y,Q0,GC,Rh.g,KP,uBe,xg.e,so,YP,ii.cQ,fm,ZC,tu,Ka,oh,Fp,aBe,sBe,Tg,UA,vD.o,jP,FP,WP,yMe,Pv,wMe.J,{provide:Uw,useValue:bMe}],imports:[T.b2,js,QA,Ia.JF,oBe,bz,_G,rZ,lZ,lBe,Vf.Rh.forRoot({timeOut:3e3,positionClass:"toast-bottom-right",preventDuplicates:!1}),Ni.aw.forRoot({loader:{provide:Ni.Zw,useFactory:CMe,deps:[Ia.eN]}}),Z0.IX,Jle,AZ,dZ.forRoot(),hBe]})}return r})();e.B6R(BL,function(){return[l.mk,l.sg,l.O5,l.RF,l.n9,I,et,$i,Nr,Yn,Sy,Fy,Bh,Qr,Ir,Zn,BA,fo,NA,DA,$u,zr]},function(){return[l.Nd,Ni.X$,ii.T9]}),e.B6R(uN,function(){return[l.O5,mm]},[]),e.B6R(bS,function(){return[l.O5,I,et,$i,Yn,Cc,Qr,Kr,Ir,Zn,bc,NA,DA,Cs,HC,_M,CS,vMe,zr]},function(){return[Ni.X$]}),e.B6R(hN,function(){return[zr,mMe]},[]),ce(9460),ce(9170),ce(5912),vp.N.production&&(0,e.G48)(),T.q6().bootstrapModule(xMe).catch(r=>console.log(r))},9685:(ni,Pt,ce)=>{var V=ce(5724),K={ease:V(.25,.1,.25,1),easeIn:V(.42,0,1,1),easeOut:V(0,0,.58,1),easeInOut:V(.42,0,.58,1),linear:V(0,0,1,1)};function e(){}function f(){var _=new Set,b=new Set,y=0;return{next:D,cancel:D,clearAll:function M(){_.clear(),b.clear(),cancelAnimationFrame(y),y=0}};function D(I){b.add(I),function x(){y||(y=requestAnimationFrame(k))}()}function k(){y=0;var I=b;b=_,(_=I).forEach(function(d){d()}),_.clear()}}ni.exports=function T(_,b,y){var M=Object.create(null),D=Object.create(null),x="function"==typeof(y=y||{}).easing?y.easing:K[y.easing];x||(y.easing&&console.warn("Unknown easing function in amator: "+y.easing),x=K.ease);var k="function"==typeof y.step?y.step:e,Q="function"==typeof y.done?y.done:e,I=function l(_){if(!_)return typeof window<"u"&&window.requestAnimationFrame?function v(){return{next:window.requestAnimationFrame.bind(window),cancel:window.cancelAnimationFrame.bind(window)}}():function h(){return{next:function(_){return setTimeout(_,1e3/60)},cancel:function(_){return clearTimeout(_)}}}();if("function"!=typeof _.next)throw new Error("Scheduler is supposed to have next(cb) function");if("function"!=typeof _.cancel)throw new Error("Scheduler is supposed to have cancel(handle) function");return _}(y.scheduler),d=Object.keys(b);d.forEach(function(W){M[W]=_[W],D[W]=b[W]-_[W]});var z,R=Math.max(1,.06*("number"==typeof y.duration?y.duration:400)),q=0;return z=I.next(function H(){var W=x(q/R);q+=1,function G(W){d.forEach(function(te){_[te]=D[te]*W+M[te]})}(W),q<=R?(z=I.next(H),k(_)):(z=0,setTimeout(function(){Q(_)},0))}),{cancel:function Z(){I.cancel(z),z=0}}},ni.exports.makeAggregateRaf=f,ni.exports.sharedScheduler=f()},5724:ni=>{var e=.1,l="function"==typeof Float32Array;function v(x,k){return 1-3*k+3*x}function h(x,k){return 3*k-6*x}function f(x){return 3*x}function _(x,k,Q){return((v(k,Q)*x+h(k,Q))*x+f(k))*x}function b(x,k,Q){return 3*v(k,Q)*x*x+2*h(k,Q)*x+f(k)}function D(x){return x}ni.exports=function(k,Q,I,d){if(!(0<=k&&k<=1&&0<=I&&I<=1))throw new Error("bezier x values must be in [0, 1] range");if(k===Q&&I===d)return D;for(var S=l?new Float32Array(11):new Array(11),R=0;R<11;++R)S[R]=_(R*e,k,I);return function(Z){return 0===Z?0:1===Z?1:_(function z(q){for(var Z=0,H=1;10!==H&&S[H]<=q;++H)Z+=e;--H;var te=Z+(q-S[H])/(S[H+1]-S[H])*e,P=b(te,k,I);return P>=.001?function M(x,k,Q,I){for(var d=0;d<4;++d){var S=b(k,Q,I);if(0===S)return k;k-=(_(k,Q,I)-x)/S}return k}(q,te,k,I):0===P?te:function y(x,k,Q,I,d){var S,R,z=0;do{(S=_(R=k+(Q-k)/2,I,d)-x)>0?Q=R:k=R}while(Math.abs(S)>1e-7&&++z<10);return R}(q,Z,Z+e,k,I)}(Z),Q,d)}}},5912:(ni,Pt,ce)=>{!function(V){"use strict";var K="CodeMirror-lint-markers",T="CodeMirror-lint-line-";function l(q){q.parentNode&&q.parentNode.removeChild(q)}function h(q,Z,H,G){var W=function e(q,Z,H){var G=document.createElement("div");function W(te){if(!G.parentNode)return V.off(document,"mousemove",W);var P=Math.max(0,te.clientY-G.offsetHeight-5),J=Math.max(0,Math.min(te.clientX+5,G.ownerDocument.defaultView.innerWidth-G.offsetWidth));G.style.top=P+"px",G.style.left=J+"px"}return G.className="CodeMirror-lint-tooltip cm-s-"+q.options.theme,G.appendChild(H.cloneNode(!0)),q.state.lint.options.selfContain?q.getWrapperElement().appendChild(G):document.body.appendChild(G),V.on(document,"mousemove",W),W(Z),null!=G.style.opacity&&(G.style.opacity=1),G}(q,Z,H);function te(){V.off(G,"mouseout",te),W&&(function v(q){q.parentNode&&(null==q.style.opacity&&l(q),q.style.opacity=0,setTimeout(function(){l(q)},600))}(W),W=null)}var P=setInterval(function(){if(W)for(var J=G;;J=J.parentNode){if(J&&11==J.nodeType&&(J=J.host),J==document.body)return;if(!J){te();break}}if(!W)return clearInterval(P)},400);V.on(G,"mouseout",te)}function f(q,Z,H){for(var G in this.marked=[],Z instanceof Function&&(Z={getAnnotations:Z}),(!Z||!0===Z)&&(Z={}),this.options={},this.linterOptions=Z.options||{},_)this.options[G]=_[G];for(var G in Z)_.hasOwnProperty(G)?null!=Z[G]&&(this.options[G]=Z[G]):Z.options||(this.linterOptions[G]=Z[G]);this.timeout=null,this.hasGutter=H,this.onMouseOver=function(W){!function z(q,Z){var H=Z.target||Z.srcElement;if(/\bCodeMirror-lint-mark-/.test(H.className)){for(var G=H.getBoundingClientRect(),P=q.findMarksAt(q.coordsChar({left:(G.left+G.right)/2,top:(G.top+G.bottom)/2},"client")),J=[],j=0;j1,G.tooltips)),G.highlightLines&&q.addLineClass(te,"wrap",T+J)}}G.onUpdateLinting&&G.onUpdateLinting(Z,W,q)}}function S(q){var Z=q.state.lint;Z&&(clearTimeout(Z.timeout),Z.timeout=setTimeout(function(){I(q)},Z.options.delay))}V.defineOption("lint",!1,function(q,Z,H){if(H&&H!=V.Init&&(b(q),!1!==q.state.lint.options.lintOnChange&&q.off("change",S),V.off(q.getWrapperElement(),"mouseover",q.state.lint.onMouseOver),clearTimeout(q.state.lint.timeout),delete q.state.lint),Z){for(var G=q.getOption("gutters"),W=!1,te=0;te2),Q=/Android/.test(Pt),I=k||Q||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Pt),d=k||/Mac/.test(ce),S=/\bCrOS\b/.test(Pt),R=/win/i.test(ce),z=y&&Pt.match(/Version\/(\d*\.\d*)/);z&&(z=Number(z[1])),z&&z>=15&&(y=!1,h=!0);var q=d&&(f||y&&(null==z||z<12.11)),Z=V||l&&v>=9;function H(p){return new RegExp("(^|\\s)"+p+"(?:$|\\s)\\s*")}var j,G=function(p,C){var N=p.className,Y=H(C).exec(N);if(Y){var X=N.slice(Y.index+Y[0].length);p.className=N.slice(0,Y.index)+(X?Y[1]+X:"")}};function W(p){for(var C=p.childNodes.length;C>0;--C)p.removeChild(p.firstChild);return p}function te(p,C){return W(p).appendChild(C)}function P(p,C,N,Y){var X=document.createElement(p);if(N&&(X.className=N),Y&&(X.style.cssText=Y),"string"==typeof C)X.appendChild(document.createTextNode(C));else if(C)for(var fe=0;fe=C)return We+(C-fe);We+=At-fe,We+=N-We%N,fe=At+1}}k?me=function(p){p.selectionStart=0,p.selectionEnd=p.value.length}:l&&(me=function(p){try{p.select()}catch{}});var Ee=function(){this.id=null,this.f=null,this.time=0,this.handler=ye(this.onTimeout,this)};function Fe(p,C){for(var N=0;N=C)return Y+Math.min(We,C-X);if(X+=fe-Y,Y=fe+1,(X+=N-X%N)>=C)return Y}}var je=[""];function Ke(p){for(;je.length<=p;)je.push(_t(je)+" ");return je[p]}function _t(p){return p[p.length-1]}function Nt(p,C){for(var N=[],Y=0;Y"\x80"&&(p.toUpperCase()!=p.toLowerCase()||It.test(p))}function vt(p,C){return C?!!(C.source.indexOf("\\w")>-1&&Dt(p))||C.test(p):Dt(p)}function Qt(p){for(var C in p)if(p.hasOwnProperty(C)&&p[C])return!1;return!0}var qe=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ke(p){return p.charCodeAt(0)>=768&&qe.test(p)}function it(p,C,N){for(;(N<0?C>0:CN?-1:1;;){if(C==N)return C;var X=(C+N)/2,fe=Y<0?Math.ceil(X):Math.floor(X);if(fe==C)return p(fe)?C:N;p(fe)?N=fe:C=fe+Y}}var Rt=null;function Gt(p,C,N){var Y;Rt=null;for(var X=0;XC)return X;fe.to==C&&(fe.from!=fe.to&&"before"==N?Y=X:Rt=X),fe.from==C&&(fe.from!=fe.to&&"before"!=N?Y=X:Rt=X)}return Y??Rt}var zt=function(){function N(Yt){return Yt<=247?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(Yt):1424<=Yt&&Yt<=1524?"R":1536<=Yt&&Yt<=1785?"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111".charAt(Yt-1536):1774<=Yt&&Yt<=2220?"r":8192<=Yt&&Yt<=8203?"w":8204==Yt?"b":"L"}var Y=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,X=/[stwN]/,fe=/[LRr]/,We=/[Lb1n]/,At=/[1n]/;function bt(Yt,fi,bi){this.level=Yt,this.from=fi,this.to=bi}return function(Yt,fi){var bi="ltr"==fi?"L":"R";if(0==Yt.length||"ltr"==fi&&!Y.test(Yt))return!1;for(var Hi=Yt.length,Pi=[],dn=0;dn-1&&(Y[C]=X.slice(0,fe).concat(X.slice(fe+1)))}}}function ge(p,C){var N=Ht(p,C);if(N.length)for(var Y=Array.prototype.slice.call(arguments,2),X=0;X0}function rt(p){p.prototype.on=function(C,N){Qi(this,C,N)},p.prototype.off=function(C,N){dt(this,C,N)}}function Kt(p){p.preventDefault?p.preventDefault():p.returnValue=!1}function on(p){p.stopPropagation?p.stopPropagation():p.cancelBubble=!0}function Ge(p){return null!=p.defaultPrevented?p.defaultPrevented:0==p.returnValue}function _i(p){Kt(p),on(p)}function qt(p){return p.target||p.srcElement}function tt(p){var C=p.which;return null==C&&(1&p.button?C=1:2&p.button?C=3:4&p.button&&(C=2)),d&&p.ctrlKey&&1==C&&(C=3),C}var Ut,Ti,Bt=function(){if(l&&v<9)return!1;var p=P("div");return"draggable"in p||"dragDrop"in p}();function Si(p){if(null==Ut){var C=P("span","\u200b");te(p,P("span",[C,document.createTextNode("x")])),0!=p.firstChild.offsetHeight&&(Ut=C.offsetWidth<=1&&C.offsetHeight>2&&!(l&&v<8))}var N=Ut?P("span","\u200b"):P("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px");return N.setAttribute("cm-text",""),N}function ln(p){if(null!=Ti)return Ti;var C=te(p,document.createTextNode("A\u062eA")),N=j(C,0,1).getBoundingClientRect(),Y=j(C,1,2).getBoundingClientRect();return W(p),!(!N||N.left==N.right)&&(Ti=Y.right-N.right<3)}var p,Ji=3!="\n\nb".split(/\n/).length?function(p){for(var C=0,N=[],Y=p.length;C<=Y;){var X=p.indexOf("\n",C);-1==X&&(X=p.length);var fe=p.slice(C,"\r"==p.charAt(X-1)?X-1:X),We=fe.indexOf("\r");-1!=We?(N.push(fe.slice(0,We)),C+=We+1):(N.push(fe),C=X+1)}return N}:function(p){return p.split(/\r\n?|\n/)},or=window.getSelection?function(p){try{return p.selectionStart!=p.selectionEnd}catch{return!1}}:function(p){var C;try{C=p.ownerDocument.selection.createRange()}catch{}return!(!C||C.parentElement()!=p)&&0!=C.compareEndPoints("StartToEnd",C)},fn="oncopy"in(p=P("div"))||(p.setAttribute("oncopy","return;"),"function"==typeof p.oncopy),Pn=null;var ui={},di={};function xi(p,C){arguments.length>2&&(C.dependencies=Array.prototype.slice.call(arguments,2)),ui[p]=C}function ji(p){if("string"==typeof p&&di.hasOwnProperty(p))p=di[p];else if(p&&"string"==typeof p.name&&di.hasOwnProperty(p.name)){var C=di[p.name];"string"==typeof C&&(C={name:C}),(p=Xe(C,p)).name=C.name}else{if("string"==typeof p&&/^[\w\-]+\/[\w\-]+\+xml$/.test(p))return ji("application/xml");if("string"==typeof p&&/^[\w\-]+\/[\w\-]+\+json$/.test(p))return ji("application/json")}return"string"==typeof p?{name:p}:p||{name:"null"}}function Qn(p,C){C=ji(C);var N=ui[C.name];if(!N)return Qn(p,"text/plain");var Y=N(p,C);if(wn.hasOwnProperty(C.name)){var X=wn[C.name];for(var fe in X)X.hasOwnProperty(fe)&&(Y.hasOwnProperty(fe)&&(Y["_"+fe]=Y[fe]),Y[fe]=X[fe])}if(Y.name=C.name,C.helperType&&(Y.helperType=C.helperType),C.modeProps)for(var We in C.modeProps)Y[We]=C.modeProps[We];return Y}var wn={};function gr(p,C){Oe(C,wn.hasOwnProperty(p)?wn[p]:wn[p]={})}function xn(p,C){if(!0===C)return C;if(p.copyState)return p.copyState(C);var N={};for(var Y in C){var X=C[Y];X instanceof Array&&(X=X.concat([])),N[Y]=X}return N}function Hr(p,C){for(var N;p.innerMode&&(N=p.innerMode(C))&&N.mode!=p;)C=N.state,p=N.mode;return N||{mode:p,state:C}}function Xo(p,C,N){return!p.startState||p.startState(C,N)}var qr=function(p,C,N){this.pos=this.start=0,this.string=p,this.tabSize=C||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=N};function Fn(p,C){if((C-=p.first)<0||C>=p.size)throw new Error("There is no line "+(C+p.first)+" in the document.");for(var N=p;!N.lines;)for(var Y=0;;++Y){var X=N.children[Y],fe=X.chunkSize();if(C=p.first&&CN?Ai(N,Fn(p,N).text.length):function li(p,C){var N=p.ch;return null==N||N>C?Ai(p.line,C):N<0?Ai(p.line,0):p}(C,Fn(p,C.line).text.length)}function $t(p,C){for(var N=[],Y=0;Y=this.string.length},qr.prototype.sol=function(){return this.pos==this.lineStart},qr.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},qr.prototype.next=function(){if(this.posC},qr.prototype.eatSpace=function(){for(var p=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>p},qr.prototype.skipToEnd=function(){this.pos=this.string.length},qr.prototype.skipTo=function(p){var C=this.string.indexOf(p,this.pos);if(C>-1)return this.pos=C,!0},qr.prototype.backUp=function(p){this.pos-=p},qr.prototype.column=function(){return this.lastColumnPos0?null:(fe&&!1!==C&&(this.pos+=fe[0].length),fe)}var Y=function(We){return N?We.toLowerCase():We};if(Y(this.string.substr(this.pos,p.length))==Y(p))return!1!==C&&(this.pos+=p.length),!0},qr.prototype.current=function(){return this.string.slice(this.start,this.pos)},qr.prototype.hideFirstChars=function(p,C){this.lineStart+=p;try{return C()}finally{this.lineStart-=p}},qr.prototype.lookAhead=function(p){var C=this.lineOracle;return C&&C.lookAhead(p)},qr.prototype.baseToken=function(){var p=this.lineOracle;return p&&p.baseToken(this.pos)};var Ei=function(p,C){this.state=p,this.lookAhead=C},gi=function(p,C,N,Y){this.state=C,this.doc=p,this.line=N,this.maxLookAhead=Y||0,this.baseTokens=null,this.baseTokenPos=1};function Gi(p,C,N,Y){var X=[p.state.modeGen],fe={};jn(p,C.text,p.doc.mode,N,function(Yt,fi){return X.push(Yt,fi)},fe,Y);for(var We=N.state,At=function(Yt){N.baseTokens=X;var fi=p.state.overlays[Yt],bi=1,Hi=0;N.state=!0,jn(p,C.text,fi.mode,N,function(Pi,dn){for(var Tn=bi;HiPi&&X.splice(bi,1,Pi,X[bi+1],Rn),bi+=2,Hi=Math.min(Pi,Rn)}if(dn)if(fi.opaque)X.splice(Tn,bi-Tn,Pi,"overlay "+dn),bi=Tn+2;else for(;Tnp.options.maxHighlightLength&&xn(p.doc.mode,Y.state),fe=Gi(p,C,Y);X&&(Y.state=X),C.stateAfter=Y.save(!X),C.styles=fe.styles,fe.classes?C.styleClasses=fe.classes:C.styleClasses&&(C.styleClasses=null),N===p.doc.highlightFrontier&&(p.doc.modeFrontier=Math.max(p.doc.modeFrontier,++p.doc.highlightFrontier))}return C.styles}function Ci(p,C,N){var Y=p.doc,X=p.display;if(!Y.mode.startState)return new gi(Y,!0,C);var fe=function qn(p,C,N){for(var Y,X,fe=p.doc,We=N?-1:C-(p.doc.mode.innerMode?1e3:100),At=C;At>We;--At){if(At<=fe.first)return fe.first;var bt=Fn(fe,At-1),Yt=bt.stateAfter;if(Yt&&(!N||At+(Yt instanceof Ei?Yt.lookAhead:0)<=fe.modeFrontier))return At;var fi=ae(bt.text,null,p.options.tabSize);(null==X||Y>fi)&&(X=At-1,Y=fi)}return X}(p,C,N),We=fe>Y.first&&Fn(Y,fe-1).stateAfter,At=We?gi.fromSaved(Y,We,fe):new gi(Y,Xo(Y.mode),fe);return Y.iter(fe,C,function(bt){Vi(p,bt.text,At);var Yt=At.line;bt.stateAfter=Yt==C-1||Yt%5==0||Yt>=X.viewFrom&&YtC.start)return fe}throw new Error("Mode "+p.name+" failed to advance stream.")}gi.prototype.lookAhead=function(p){var C=this.doc.getLine(this.line+p);return null!=C&&p>this.maxLookAhead&&(this.maxLookAhead=p),C},gi.prototype.baseToken=function(p){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=p;)this.baseTokenPos+=2;var C=this.baseTokens[this.baseTokenPos+1];return{type:C&&C.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-p}},gi.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},gi.fromSaved=function(p,C,N){return C instanceof Ei?new gi(p,xn(p.mode,C.state),N,C.lookAhead):new gi(p,xn(p.mode,C),N)},gi.prototype.save=function(p){var C=!1!==p?xn(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Ei(C,this.maxLookAhead):C};var Oi=function(p,C,N){this.start=p.start,this.end=p.pos,this.string=p.current(),this.type=C||null,this.state=N};function $i(p,C,N,Y){var We,fi,X=p.doc,fe=X.mode,At=Fn(X,(C=xt(X,C)).line),bt=Ci(p,C.line,N),Yt=new qr(At.text,p.options.tabSize,bt);for(Y&&(fi=[]);(Y||Yt.posp.options.maxHighlightLength?(At=!1,We&&Vi(p,C,Y,fi.pos),fi.pos=C.length,bi=null):bi=In(Cn(N,fi,Y.state,Hi),fe),Hi){var Pi=Hi[0].name;Pi&&(bi="m-"+(bi?Pi+" "+bi:Pi))}if(!At||Yt!=bi){for(;bt=C:fe.to>C)?null:fe.to))}return Y}(N,X,We),bt=function Ta(p,C,N){var Y;if(p)for(var X=0;X=C:fe.to>C)||fe.from==C&&"bookmark"==We.type&&(!N||fe.marker.insertLeft))&&(Y||(Y=[])).push(new Kn(We,null==fe.from||(We.inclusiveLeft?fe.from<=C:fe.from0&&At)for(var nr=0;nrC)&&(!Y||Ot(Y,fe.marker)<0)&&(Y=fe.marker)}return Y}function ht(p,C,N,Y,X){var fe=Fn(p,C),We=br&&fe.markedSpans;if(We)for(var At=0;At=0&&bi<=0||fi<=0&&bi>=0)&&(fi<=0&&(bt.marker.inclusiveRight&&X.inclusiveLeft?Vt(Yt.to,N)>=0:Vt(Yt.to,N)>0)||fi>=0&&(bt.marker.inclusiveRight&&X.inclusiveLeft?Vt(Yt.from,Y)<=0:Vt(Yt.from,Y)<0)))return!0}}}function kt(p){for(var C;C=Ie(p);)p=C.find(-1,!0).line;return p}function en(p,C){var N=Fn(p,C),Y=kt(N);return N==Y?C:ar(Y)}function an(p,C){if(C>p.lastLine())return C;var Y,N=Fn(p,C);if(!Ui(p,N))return C;for(;Y=Ne(N);)N=Y.find(1,!0).line;return ar(N)+1}function Ui(p,C){var N=br&&C.markedSpans;if(N)for(var Y=void 0,X=0;XC.maxLineLength&&(C.maxLineLength=X,C.maxLine=Y)})}var Er=function(p,C,N){this.text=p,kn(this,C),this.height=N?N(this):1};function $n(p){p.parent=null,lo(p)}Er.prototype.lineNo=function(){return ar(this)},rt(Er);var Ur={},Tr={};function Ln(p,C){if(!p||/^\s*$/.test(p))return null;var N=C.addModeClass?Tr:Ur;return N[p]||(N[p]=p.replace(/\S+/g,"cm-$&"))}function Io(p,C){var N=J("span",null,null,h?"padding-right: .1px":null),Y={pre:J("pre",[N],"CodeMirror-line"),content:N,col:0,pos:0,cm:p,trailingSpace:!1,splitSpaces:p.getOption("lineWrapping")};C.measure={};for(var X=0;X<=(C.rest?C.rest.length:0);X++){var fe=X?C.rest[X-1]:C.line,We=void 0;Y.pos=0,Y.addToken=ao,ln(p.display.measure)&&(We=mi(fe,p.doc.direction))&&(Y.addToken=ds(Y.addToken,We)),Y.map=[],Xa(fe,Y,hn(p,fe,C!=p.display.externalMeasured&&ar(fe))),fe.styleClasses&&(fe.styleClasses.bgClass&&(Y.bgClass=Ce(fe.styleClasses.bgClass,Y.bgClass||"")),fe.styleClasses.textClass&&(Y.textClass=Ce(fe.styleClasses.textClass,Y.textClass||""))),0==Y.map.length&&Y.map.push(0,0,Y.content.appendChild(Si(p.display.measure))),0==X?(C.measure.map=Y.map,C.measure.cache={}):((C.measure.maps||(C.measure.maps=[])).push(Y.map),(C.measure.caches||(C.measure.caches=[])).push({}))}if(h){var bt=Y.content.lastChild;(/\bcm-tab\b/.test(bt.className)||bt.querySelector&&bt.querySelector(".cm-tab"))&&(Y.content.className="cm-tab-wrap-hack")}return ge(p,"renderLine",p,C.line,Y.pre),Y.pre.className&&(Y.textClass=Ce(Y.pre.className,Y.textClass||"")),Y}function ko(p){var C=P("span","\u2022","cm-invalidchar");return C.title="\\u"+p.charCodeAt(0).toString(16),C.setAttribute("aria-label",C.title),C}function ao(p,C,N,Y,X,fe,We){if(C){var fi,At=p.splitSpaces?function Ca(p,C){if(p.length>1&&!/ /.test(p))return p;for(var N=C,Y="",X=0;XYt&&bi.from<=Yt);Hi++);if(bi.to>=fi)return p(N,Y,X,fe,We,At,bt);p(N,Y.slice(0,bi.to-Yt),X,fe,null,At,bt),fe=null,Y=Y.slice(bi.to-Yt),Yt=bi.to}}}function da(p,C,N,Y){var X=!Y&&N.widgetNode;X&&p.map.push(p.pos,p.pos+C,X),!Y&&p.cm.display.input.needsContentAttribute&&(X||(X=p.content.appendChild(document.createElement("span"))),X.setAttribute("cm-marker",N.id)),X&&(p.cm.display.input.setUneditable(X),p.content.appendChild(X)),p.pos+=C,p.trailingSpace=!1}function Xa(p,C,N){var Y=p.markedSpans,X=p.text,fe=0;if(Y)for(var bi,Hi,dn,Tn,Rn,er,Ar,At=X.length,bt=0,Yt=1,fi="",Pi=0;;){if(Pi==bt){dn=Tn=Rn=Hi="",Ar=null,er=null,Pi=1/0;for(var Xn=[],nr=void 0,Lr=0;Lrbt||Lo.collapsed&&Rr.to==bt&&Rr.from==bt)){if(null!=Rr.to&&Rr.to!=bt&&Pi>Rr.to&&(Pi=Rr.to,Tn=""),Lo.className&&(dn+=" "+Lo.className),Lo.css&&(Hi=(Hi?Hi+";":"")+Lo.css),Lo.startStyle&&Rr.from==bt&&(Rn+=" "+Lo.startStyle),Lo.endStyle&&Rr.to==Pi&&(nr||(nr=[])).push(Lo.endStyle,Rr.to),Lo.title&&((Ar||(Ar={})).title=Lo.title),Lo.attributes)for(var fa in Lo.attributes)(Ar||(Ar={}))[fa]=Lo.attributes[fa];Lo.collapsed&&(!er||Ot(er.marker,Lo)<0)&&(er=Rr)}else Rr.from>bt&&Pi>Rr.from&&(Pi=Rr.from)}if(nr)for(var cl=0;cl=At)break;for(var ql=Math.min(At,Pi);;){if(fi){var lc=bt+fi.length;if(!er){var gs=lc>ql?fi.slice(0,ql-bt):fi;C.addToken(C,gs,bi?bi+dn:dn,Rn,bt+gs.length==Pi?Tn:"",Hi,Ar)}if(lc>=ql){fi=fi.slice(ql-bt),bt=ql;break}bt=lc,Rn=""}fi=X.slice(fe,fe=N[Yt++]),bi=Ln(N[Yt++],C.cm.options)}}else for(var We=1;WeN)return{map:p.measure.maps[X],cache:p.measure.caches[X],before:!0}}}function nl(p,C,N,Y){return ia(p,rl(p,C),N,Y)}function Pl(p,C){if(C>=p.display.viewFrom&&C=N.lineN&&C2&&fe.push((bt.bottom+Yt.top)/2-N.top)}}fe.push(N.bottom-N.top)}}(p,C.view,C.rect),C.hasHeights=!0),(We=function lr(p,C,N,Y){var Yt,X=Jr(C.map,N,Y),fe=X.node,We=X.start,At=X.end,bt=X.collapse;if(3==fe.nodeType){for(var fi=0;fi<4;fi++){for(;We&&ke(C.line.text.charAt(X.coverStart+We));)--We;for(;X.coverStart+At1}(p))return C;var N=screen.logicalXDPI/screen.deviceXDPI,Y=screen.logicalYDPI/screen.deviceYDPI;return{left:C.left*N,right:C.right*N,top:C.top*Y,bottom:C.bottom*Y}}(p.display.measure,Yt))}else{var bi;We>0&&(bt=Y="right"),Yt=p.options.lineWrapping&&(bi=fe.getClientRects()).length>1?bi["right"==Y?bi.length-1:0]:fe.getBoundingClientRect()}if(l&&v<9&&!We&&(!Yt||!Yt.left&&!Yt.right)){var Hi=fe.parentNode.getClientRects()[0];Yt=Hi?{left:Hi.left,right:Hi.left+Kc(p.display),top:Hi.top,bottom:Hi.bottom}:An}for(var Pi=Yt.top-C.rect.top,dn=Yt.bottom-C.rect.top,Tn=(Pi+dn)/2,Rn=C.view.measure.heights,er=0;erC)&&(X=(fe=bt-At)-1,C>=bt&&(We="right")),null!=X){if(Y=p[Yt+2],At==bt&&N==(Y.insertLeft?"left":"right")&&(We=N),"left"==N&&0==X)for(;Yt&&p[Yt-2]==p[Yt-3]&&p[Yt-1].insertLeft;)Y=p[2+(Yt-=3)],We="left";if("right"==N&&X==bt-At)for(;Yt=0&&(N=p[X]).left==N.right;X--);return N}function Fl(p){if(p.measure&&(p.measure.cache={},p.measure.heights=null,p.rest))for(var C=0;C=Y.text.length?(bt=Y.text.length,Yt="before"):bt<=0&&(bt=0,Yt="after"),!At)return We("before"==Yt?bt-1:bt,"before"==Yt);function fi(dn,Tn,Rn){return We(Rn?dn-1:dn,1==At[Tn].level!=Rn)}var bi=Gt(At,bt,Yt),Hi=Rt,Pi=fi(bt,bi,"before"==Yt);return null!=Hi&&(Pi.other=fi(bt,Hi,"before"!=Yt)),Pi}function ya(p,C){var N=0;C=xt(p.doc,C),p.options.lineWrapping||(N=Kc(p.display)*C.ch);var Y=Fn(p.doc,C.line),X=Un(Y)+il(p.display);return{left:N,right:N,top:X,bottom:X+Y.height}}function ol(p,C,N,Y,X){var fe=Ai(p,C,N);return fe.xRel=X,Y&&(fe.outside=Y),fe}function Vc(p,C,N){var Y=p.doc;if((N+=p.display.viewOffset)<0)return ol(Y.first,0,null,-1,-1);var X=wo(Y,N),fe=Y.first+Y.size-1;if(X>fe)return ol(Y.first+Y.size-1,Fn(Y,fe).text.length,null,1,1);C<0&&(C=0);for(var We=Fn(Y,X);;){var At=ts(p,We,X,C,N),bt=Ye(We,At.ch+(At.xRel>0||At.outside>0?1:0));if(!bt)return At;var Yt=bt.find(1);if(Yt.line==X)return Yt;We=Fn(Y,X=Yt.line)}}function AA(p,C,N,Y){Y-=cA(C);var X=C.text.length,fe=gt(function(We){return ia(p,N,We-1).bottom<=Y},X,0);return{begin:fe,end:X=gt(function(We){return ia(p,N,We).top>Y},fe,X)}}function JA(p,C,N,Y){return N||(N=rl(p,C)),AA(p,C,N,fc(p,C,ia(p,N,Y),"line").top)}function Cl(p,C,N,Y){return!(p.bottom<=N)&&(p.top>N||(Y?p.left:p.right)>C)}function ts(p,C,N,Y,X){X-=Un(C);var fe=rl(p,C),We=cA(C),At=0,bt=C.text.length,Yt=!0,fi=mi(C,p.doc.direction);if(fi){var bi=(p.options.lineWrapping?Vs:Ra)(p,C,N,fe,fi,Y,X);At=(Yt=1!=bi.level)?bi.from:bi.to-1,bt=Yt?bi.to:bi.from-1}var Tn,Rn,Hi=null,Pi=null,dn=gt(function(Lr){var Rr=ia(p,fe,Lr);return Rr.top+=We,Rr.bottom+=We,!!Cl(Rr,Y,X,!1)&&(Rr.top<=X&&Rr.left<=Y&&(Hi=Lr,Pi=Rr),!0)},At,bt),er=!1;if(Pi){var Ar=Y-Pi.left=nr.bottom?1:0}return ol(N,dn=it(C.text,dn,1),Rn,er,Y-Tn)}function Ra(p,C,N,Y,X,fe,We){var At=gt(function(bi){var Hi=X[bi],Pi=1!=Hi.level;return Cl(Ho(p,Ai(N,Pi?Hi.to:Hi.from,Pi?"before":"after"),"line",C,Y),fe,We,!0)},0,X.length-1),bt=X[At];if(At>0){var Yt=1!=bt.level,fi=Ho(p,Ai(N,Yt?bt.from:bt.to,Yt?"after":"before"),"line",C,Y);Cl(fi,fe,We,!0)&&fi.top>We&&(bt=X[At-1])}return bt}function Vs(p,C,N,Y,X,fe,We){var At=AA(p,C,Y,We),bt=At.begin,Yt=At.end;/\s/.test(C.text.charAt(Yt-1))&&Yt--;for(var fi=null,bi=null,Hi=0;Hi=Yt||Pi.to<=bt)){var Tn=ia(p,Y,1!=Pi.level?Math.min(Yt,Pi.to)-1:Math.max(bt,Pi.from)).right,Rn=TnRn)&&(fi=Pi,bi=Rn)}}return fi||(fi=X[X.length-1]),fi.fromYt&&(fi={from:fi.from,to:Yt,level:fi.level}),fi}function Qc(p){if(null!=p.cachedTextHeight)return p.cachedTextHeight;if(null==Wc){Wc=P("pre",null,"CodeMirror-line-like");for(var C=0;C<49;++C)Wc.appendChild(document.createTextNode("x")),Wc.appendChild(P("br"));Wc.appendChild(document.createTextNode("x"))}te(p.measure,Wc);var N=Wc.offsetHeight/50;return N>3&&(p.cachedTextHeight=N),W(p.measure),N||1}function Kc(p){if(null!=p.cachedCharWidth)return p.cachedCharWidth;var C=P("span","xxxxxxxxxx"),N=P("pre",[C],"CodeMirror-line-like");te(p.measure,N);var Y=C.getBoundingClientRect(),X=(Y.right-Y.left)/10;return X>2&&(p.cachedCharWidth=X),X||10}function Ld(p){for(var C=p.display,N={},Y={},X=C.gutters.clientLeft,fe=C.gutters.firstChild,We=0;fe;fe=fe.nextSibling,++We){var At=p.display.gutterSpecs[We].className;N[At]=fe.offsetLeft+fe.clientLeft+X,Y[At]=fe.clientWidth}return{fixedPos:SA(C),gutterTotalWidth:C.gutters.offsetWidth,gutterLeft:N,gutterWidth:Y,wrapperWidth:C.wrapper.clientWidth}}function SA(p){return p.scroller.getBoundingClientRect().left-p.sizer.getBoundingClientRect().left}function PA(p){var C=Qc(p.display),N=p.options.lineWrapping,Y=N&&Math.max(5,p.display.scroller.clientWidth/Kc(p.display)-3);return function(X){if(Ui(p.doc,X))return 0;var fe=0;if(X.widgets)for(var We=0;We0&&(Yt=Fn(p.doc,bt.line).text).length==bt.ch){var fi=ae(Yt,Yt.length,p.options.tabSize)-Yt.length;bt=Ai(bt.line,Math.max(0,Math.round((fe-Rs(p.display).left)/Kc(p.display))-fi))}return bt}function pt(p,C){if(C>=p.display.viewTo||(C-=p.display.viewFrom)<0)return null;for(var N=p.display.view,Y=0;YC)&&(X.updateLineNumbers=C),p.curOp.viewChanged=!0,C>=X.viewTo)br&&en(p.doc,C)X.viewFrom?rn(p):(X.viewFrom+=Y,X.viewTo+=Y);else if(C<=X.viewFrom&&N>=X.viewTo)rn(p);else if(C<=X.viewFrom){var fe=Bn(p,N,N+Y,1);fe?(X.view=X.view.slice(fe.index),X.viewFrom=fe.lineN,X.viewTo+=Y):rn(p)}else if(N>=X.viewTo){var We=Bn(p,C,C,-1);We?(X.view=X.view.slice(0,We.index),X.viewTo=We.lineN):rn(p)}else{var At=Bn(p,C,C,-1),bt=Bn(p,N,N+Y,1);At&&bt?(X.view=X.view.slice(0,At.index).concat(tl(p,At.lineN,bt.lineN)).concat(X.view.slice(bt.index)),X.viewTo+=Y):rn(p)}var Yt=X.externalMeasured;Yt&&(N=X.lineN&&C=Y.viewTo)){var fe=Y.view[pt(p,C)];if(null!=fe.node){var We=fe.changes||(fe.changes=[]);-1==Fe(We,N)&&We.push(N)}}}function rn(p){p.display.viewFrom=p.display.viewTo=p.doc.first,p.display.view=[],p.display.viewOffset=0}function Bn(p,C,N,Y){var fe,X=pt(p,C),We=p.display.view;if(!br||N==p.doc.first+p.doc.size)return{index:X,lineN:N};for(var At=p.display.viewFrom,bt=0;bt0){if(X==We.length-1)return null;fe=At+We[X].size-C,X++}else fe=At-C;C+=fe,N+=fe}for(;en(p.doc,N)!=N;){if(X==(Y<0?0:We.length-1))return null;N+=Y*We[X-(Y<0?1:0)].size,X+=Y}return{index:X,lineN:N}}function $o(p){for(var C=p.display.view,N=0,Y=0;Y=p.display.viewTo||bt.to().line0?We:p.defaultCharWidth())+"px"}if(Y.other){var At=N.appendChild(P("div","\xa0","CodeMirror-cursor CodeMirror-secondarycursor"));At.style.display="",At.style.left=Y.other.left+"px",At.style.top=Y.other.top+"px",At.style.height=.85*(Y.other.bottom-Y.other.top)+"px"}}function ha(p,C){return p.top-C.top||p.left-C.left}function ka(p,C,N){var Y=p.display,X=p.doc,fe=document.createDocumentFragment(),We=Rs(p.display),At=We.left,bt=Math.max(Y.sizerWidth,bs(p)-Y.sizer.offsetLeft)-We.right,Yt="ltr"==X.direction;function fi(Xn,nr,Lr,Rr){nr<0&&(nr=0),nr=Math.round(nr),Rr=Math.round(Rr),fe.appendChild(P("div",null,"CodeMirror-selected","position: absolute; left: "+Xn+"px;\n top: "+nr+"px; width: "+(Lr??bt-Xn)+"px;\n height: "+(Rr-nr)+"px"))}function bi(Xn,nr,Lr){var fa,cl,Rr=Fn(X,Xn),Lo=Rr.text.length;function ps(gs,Xl){return jc(p,Ai(Xn,gs),"div",Rr,Xl)}function ql(gs,Xl,cs){var qs=JA(p,Rr,null,gs),Ns="ltr"==Xl==("after"==cs)?"left":"right";return ps("after"==cs?qs.begin:qs.end-(/\s/.test(Rr.text.charAt(qs.end-1))?2:1),Ns)[Ns]}var lc=mi(Rr,X.direction);return function ai(p,C,N,Y){if(!p)return Y(C,N,"ltr",0);for(var X=!1,fe=0;feC||C==N&&We.to==C)&&(Y(Math.max(We.from,C),Math.min(We.to,N),1==We.level?"rtl":"ltr",fe),X=!0)}X||Y(C,N,"ltr")}(lc,nr||0,Lr??Lo,function(gs,Xl,cs,qs){var Ns="ltr"==cs,Us=ps(gs,Ns?"left":"right"),Dl=ps(Xl-1,Ns?"right":"left"),Nu=null==nr&&0==gs,Nr=null==Lr&&Xl==Lo,zs=0==qs,Yc=!lc||qs==lc.length-1;if(Dl.top-Us.top<=3){var yA=(Yt?Nu:Nr)&&zs?At:(Ns?Us:Dl).left;fi(yA,Us.top,((Yt?Nr:Nu)&&Yc?bt:(Ns?Dl:Us).right)-yA,Us.bottom)}else{var Te,Je,se,pe;Ns?(Te=Yt&&Nu&&zs?At:Us.left,Je=Yt?bt:ql(gs,cs,"before"),se=Yt?At:ql(Xl,cs,"after"),pe=Yt&&Nr&&Yc?bt:Dl.right):(Te=Yt?ql(gs,cs,"before"):At,Je=!Yt&&Nu&&zs?bt:Us.right,se=!Yt&&Nr&&Yc?At:Dl.left,pe=Yt?ql(Xl,cs,"after"):bt),fi(Te,Us.top,Je-Te,Us.bottom),Us.bottom0?C.blinker=setInterval(function(){p.hasFocus()||xs(p),C.cursorDiv.style.visibility=(N=!N)?"":"hidden"},p.options.cursorBlinkRate):p.options.cursorBlinkRate<0&&(C.cursorDiv.style.visibility="hidden")}}function ic(p){p.hasFocus()||(p.display.input.focus(),p.state.focused||Sc(p))}function Ol(p){p.state.delayingBlurEvent=!0,setTimeout(function(){p.state.delayingBlurEvent&&(p.state.delayingBlurEvent=!1,p.state.focused&&xs(p))},100)}function Sc(p,C){p.state.delayingBlurEvent&&!p.state.draggingText&&(p.state.delayingBlurEvent=!1),"nocursor"!=p.options.readOnly&&(p.state.focused||(ge(p,"focus",p,C),p.state.focused=!0,oe(p.display.wrapper,"CodeMirror-focused"),!p.curOp&&p.display.selForContextMenu!=p.doc.sel&&(p.display.input.reset(),h&&setTimeout(function(){return p.display.input.reset(!0)},20)),p.display.input.receivedFocus()),is(p))}function xs(p,C){p.state.delayingBlurEvent||(p.state.focused&&(ge(p,"blur",p,C),p.state.focused=!1,G(p.display.wrapper,"CodeMirror-focused")),clearInterval(p.display.blinker),setTimeout(function(){p.state.focused||(p.display.shift=!1)},150))}function Pr(p){for(var C=p.display,N=C.lineDiv.offsetTop,Y=Math.max(0,C.scroller.getBoundingClientRect().top),X=C.lineDiv.getBoundingClientRect().top,fe=0,We=0;We.005||Pi<-.005)&&(Xp.display.sizerWidth){var Tn=Math.ceil(fi/Kc(p.display));Tn>p.display.maxLineLength&&(p.display.maxLineLength=Tn,p.display.maxLine=At.line,p.display.maxLineChanged=!0)}}}Math.abs(fe)>2&&(C.scroller.scrollTop+=fe)}function Ws(p){if(p.widgets)for(var C=0;C=We&&(fe=wo(C,Un(Fn(C,bt))-p.wrapper.clientHeight),We=bt)}return{from:fe,to:Math.max(We,fe+1)}}function U(p,C){var N=p.display,Y=Qc(p.display);C.top<0&&(C.top=0);var X=p.curOp&&null!=p.curOp.scrollTop?p.curOp.scrollTop:N.scroller.scrollTop,fe=od(p),We={};C.bottom-C.top>fe&&(C.bottom=C.top+fe);var At=p.doc.height+Sa(N),Yt=C.bottom>At-Y;if(C.topX+fe){var fi=Math.min(C.top,(Yt?At:C.bottom)-fe);fi!=X&&(We.scrollTop=fi)}var bi=p.options.fixedGutter?0:N.gutters.offsetWidth,Hi=p.curOp&&null!=p.curOp.scrollLeft?p.curOp.scrollLeft:N.scroller.scrollLeft-bi,Pi=bs(p)-N.gutters.offsetWidth,dn=C.right-C.left>Pi;return dn&&(C.right=C.left+Pi),C.left<10?We.scrollLeft=0:C.leftPi+Hi-3&&(We.scrollLeft=C.right+(dn?0:10)-Pi),We}function le(p,C){null!=C&&(Mi(p),p.curOp.scrollTop=(null==p.curOp.scrollTop?p.doc.scrollTop:p.curOp.scrollTop)+C)}function Ue(p){Mi(p);var C=p.getCursor();p.curOp.scrollToPos={from:C,to:C,margin:p.options.cursorScrollMargin}}function Ct(p,C,N){(null!=C||null!=N)&&Mi(p),null!=C&&(p.curOp.scrollLeft=C),null!=N&&(p.curOp.scrollTop=N)}function Mi(p){var C=p.curOp.scrollToPos;C&&(p.curOp.scrollToPos=null,tn(p,ya(p,C.from),ya(p,C.to),C.margin))}function tn(p,C,N,Y){var X=U(p,{left:Math.min(C.left,N.left),top:Math.min(C.top,N.top)-Y,right:Math.max(C.right,N.right),bottom:Math.max(C.bottom,N.bottom)+Y});Ct(p,X.scrollLeft,X.scrollTop)}function cn(p,C){Math.abs(p.doc.scrollTop-C)<2||(V||Mu(p,{top:C}),zn(p,C,!0),V&&Mu(p),Co(p,100))}function zn(p,C,N){C=Math.max(0,Math.min(p.display.scroller.scrollHeight-p.display.scroller.clientHeight,C)),(p.display.scroller.scrollTop!=C||N)&&(p.doc.scrollTop=C,p.display.scrollbars.setScrollTop(C),p.display.scroller.scrollTop!=C&&(p.display.scroller.scrollTop=C))}function rr(p,C,N,Y){C=Math.max(0,Math.min(C,p.display.scroller.scrollWidth-p.display.scroller.clientWidth)),(!(N?C==p.doc.scrollLeft:Math.abs(p.doc.scrollLeft-C)<2)||Y)&&(p.doc.scrollLeft=C,Rl(p),p.display.scroller.scrollLeft!=C&&(p.display.scroller.scrollLeft=C),p.display.scrollbars.setScrollLeft(C))}function jr(p){var C=p.display,N=C.gutters.offsetWidth,Y=Math.round(p.doc.height+Sa(p.display));return{clientHeight:C.scroller.clientHeight,viewHeight:C.wrapper.clientHeight,scrollWidth:C.scroller.scrollWidth,clientWidth:C.scroller.clientWidth,viewWidth:C.wrapper.clientWidth,barLeft:p.options.fixedGutter?N:0,docHeight:Y,scrollHeight:Y+wl(p)+C.barHeight,nativeBarWidth:C.nativeBarWidth,gutterWidth:N}}var vo=function(p,C,N){this.cm=N;var Y=this.vert=P("div",[P("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),X=this.horiz=P("div",[P("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");Y.tabIndex=X.tabIndex=-1,p(Y),p(X),Qi(Y,"scroll",function(){Y.clientHeight&&C(Y.scrollTop,"vertical")}),Qi(X,"scroll",function(){X.clientWidth&&C(X.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,l&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};vo.prototype.update=function(p){var C=p.scrollWidth>p.clientWidth+1,N=p.scrollHeight>p.clientHeight+1,Y=p.nativeBarWidth;return N?(this.vert.style.display="block",this.vert.style.bottom=C?Y+"px":"0",this.vert.firstChild.style.height=Math.max(0,p.scrollHeight-p.clientHeight+(p.viewHeight-(C?Y:0)))+"px"):(this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0"),C?(this.horiz.style.display="block",this.horiz.style.right=N?Y+"px":"0",this.horiz.style.left=p.barLeft+"px",this.horiz.firstChild.style.width=Math.max(0,p.scrollWidth-p.clientWidth+(p.viewWidth-p.barLeft-(N?Y:0)))+"px"):(this.horiz.style.display="",this.horiz.firstChild.style.width="0"),!this.checkedZeroWidth&&p.clientHeight>0&&(0==Y&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:N?Y:0,bottom:C?Y:0}},vo.prototype.setScrollLeft=function(p){this.horiz.scrollLeft!=p&&(this.horiz.scrollLeft=p),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},vo.prototype.setScrollTop=function(p){this.vert.scrollTop!=p&&(this.vert.scrollTop=p),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},vo.prototype.zeroWidthHack=function(){this.horiz.style.height=this.vert.style.width=d&&!D?"12px":"18px",this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new Ee,this.disableVert=new Ee},vo.prototype.enableZeroWidthBar=function(p,C,N){p.style.visibility="",C.set(1e3,function Y(){var X=p.getBoundingClientRect();("vert"==N?document.elementFromPoint(X.right-1,(X.top+X.bottom)/2):document.elementFromPoint((X.right+X.left)/2,X.bottom-1))!=p?p.style.visibility="hidden":C.set(1e3,Y)})},vo.prototype.clear=function(){var p=this.horiz.parentNode;p.removeChild(this.horiz),p.removeChild(this.vert)};var Bs=function(){};function ns(p,C){C||(C=jr(p));var N=p.display.barWidth,Y=p.display.barHeight;Zl(p,C);for(var X=0;X<4&&N!=p.display.barWidth||Y!=p.display.barHeight;X++)N!=p.display.barWidth&&p.options.lineWrapping&&Pr(p),Zl(p,jr(p)),N=p.display.barWidth,Y=p.display.barHeight}function Zl(p,C){var N=p.display,Y=N.scrollbars.update(C);N.sizer.style.paddingRight=(N.barWidth=Y.right)+"px",N.sizer.style.paddingBottom=(N.barHeight=Y.bottom)+"px",N.heightForcer.style.borderBottom=Y.bottom+"px solid transparent",Y.right&&Y.bottom?(N.scrollbarFiller.style.display="block",N.scrollbarFiller.style.height=Y.bottom+"px",N.scrollbarFiller.style.width=Y.right+"px"):N.scrollbarFiller.style.display="",Y.bottom&&p.options.coverGutterNextToScrollbar&&p.options.fixedGutter?(N.gutterFiller.style.display="block",N.gutterFiller.style.height=Y.bottom+"px",N.gutterFiller.style.width=C.gutterWidth+"px"):N.gutterFiller.style.display=""}Bs.prototype.update=function(){return{bottom:0,right:0}},Bs.prototype.setScrollLeft=function(){},Bs.prototype.setScrollTop=function(){},Bs.prototype.clear=function(){};var Ll={native:vo,null:Bs};function Vr(p){p.display.scrollbars&&(p.display.scrollbars.clear(),p.display.scrollbars.addClass&&G(p.display.wrapper,p.display.scrollbars.addClass)),p.display.scrollbars=new Ll[p.options.scrollbarStyle](function(C){p.display.wrapper.insertBefore(C,p.display.scrollbarFiller),Qi(C,"mousedown",function(){p.state.focused&&setTimeout(function(){return p.display.input.focus()},0)}),C.setAttribute("cm-not-content","true")},function(C,N){"horizontal"==N?rr(p,C):cn(p,C)},p),p.display.scrollbars.addClass&&oe(p.display.wrapper,p.display.scrollbars.addClass)}var Ah=0;function ld(p){p.curOp={cm:p,viewChanged:!1,startHeight:p.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Ah,markArrays:null},function za(p){va?va.ops.push(p):p.ownsGroup=va={ops:[p],delayedCallbacks:[]}}(p.curOp)}function nc(p){var C=p.curOp;C&&function yl(p,C){var N=p.ownsGroup;if(N)try{!function vl(p){var C=p.delayedCallbacks,N=0;do{for(;N=N.viewTo)||N.maxLineChanged&&C.options.lineWrapping,p.update=p.mustUpdate&&new Au(C,p.mustUpdate&&{top:p.scrollTop,ensure:p.scrollToPos},p.forceUpdate)}function cd(p){p.updatedDisplay=p.mustUpdate&&qc(p.cm,p.update)}function wa(p){var C=p.cm,N=C.display;p.updatedDisplay&&Pr(C),p.barMeasure=jr(C),N.maxLineChanged&&!C.options.lineWrapping&&(p.adjustWidthTo=nl(C,N.maxLine,N.maxLine.text.length).left+3,C.display.sizerWidth=p.adjustWidthTo,p.barMeasure.scrollWidth=Math.max(N.scroller.clientWidth,N.sizer.offsetLeft+p.adjustWidthTo+wl(C)+C.display.barWidth),p.maxScrollLeft=Math.max(0,N.sizer.offsetLeft+p.adjustWidthTo-bs(C))),(p.updatedDisplay||p.selectionChanged)&&(p.preparedSelection=N.input.prepareSelection())}function Rd(p){var C=p.cm;null!=p.adjustWidthTo&&(C.display.sizer.style.minWidth=p.adjustWidthTo+"px",p.maxScrollLeft(fe.defaultView.innerHeight||fe.documentElement.clientHeight)&&(X=!1),null!=X&&!x){var We=P("div","\u200b",null,"position: absolute;\n top: "+(C.top-N.viewOffset-il(p.display))+"px;\n height: "+(C.bottom-C.top+wl(p)+N.barHeight)+"px;\n left: "+C.left+"px; width: "+Math.max(2,C.right-C.left)+"px;");p.display.lineSpace.appendChild(We),We.scrollIntoView(X),p.display.lineSpace.removeChild(We)}}}(C,function pa(p,C,N,Y){var X;null==Y&&(Y=0),!p.options.lineWrapping&&C==N&&(N="before"==C.sticky?Ai(C.line,C.ch+1,"before"):C,C=C.ch?Ai(C.line,"before"==C.sticky?C.ch-1:C.ch,"after"):C);for(var fe=0;fe<5;fe++){var We=!1,At=Ho(p,C),bt=N&&N!=C?Ho(p,N):At,Yt=U(p,X={left:Math.min(At.left,bt.left),top:Math.min(At.top,bt.top)-Y,right:Math.max(At.left,bt.left),bottom:Math.max(At.bottom,bt.bottom)+Y}),fi=p.doc.scrollTop,bi=p.doc.scrollLeft;if(null!=Yt.scrollTop&&(cn(p,Yt.scrollTop),Math.abs(p.doc.scrollTop-fi)>1&&(We=!0)),null!=Yt.scrollLeft&&(rr(p,Yt.scrollLeft),Math.abs(p.doc.scrollLeft-bi)>1&&(We=!0)),!We)break}return X}(C,xt(Y,p.scrollToPos.from),xt(Y,p.scrollToPos.to),p.scrollToPos.margin));var fe=p.maybeHiddenMarkers,We=p.maybeUnhiddenMarkers;if(fe)for(var At=0;At=p.display.viewTo)){var N=+new Date+p.options.workTime,Y=Ci(p,C.highlightFrontier),X=[];C.iter(Y.line,Math.min(C.first+C.size,p.display.viewTo+500),function(fe){if(Y.line>=p.display.viewFrom){var We=fe.styles,At=fe.text.length>p.options.maxHighlightLength?xn(C.mode,Y.state):null,bt=Gi(p,fe,Y,!0);At&&(Y.state=At),fe.styles=bt.styles;var Yt=fe.styleClasses,fi=bt.classes;fi?fe.styleClasses=fi:Yt&&(fe.styleClasses=null);for(var bi=!We||We.length!=fe.styles.length||Yt!=fi&&(!Yt||!fi||Yt.bgClass!=fi.bgClass||Yt.textClass!=fi.textClass),Hi=0;!bi&&HiN)return Co(p,p.options.workDelay),!0}),C.highlightFrontier=Y.line,C.modeFrontier=Math.max(C.modeFrontier,Y.line),X.length&&Jl(p,function(){for(var fe=0;fe=N.viewFrom&&C.visible.to<=N.viewTo&&(null==N.updateLineNumbers||N.updateLineNumbers>=N.viewTo)&&N.renderedView==N.view&&0==$o(p))return!1;FA(p)&&(rn(p),C.dims=Ld(p));var X=Y.first+Y.size,fe=Math.max(C.visible.from-p.options.viewportMargin,Y.first),We=Math.min(X,C.visible.to+p.options.viewportMargin);N.viewFromWe&&N.viewTo-We<20&&(We=Math.min(X,N.viewTo)),br&&(fe=en(p.doc,fe),We=an(p.doc,We));var At=fe!=N.viewFrom||We!=N.viewTo||N.lastWrapHeight!=C.wrapperHeight||N.lastWrapWidth!=C.wrapperWidth;(function Mr(p,C,N){var Y=p.display;0==Y.view.length||C>=Y.viewTo||N<=Y.viewFrom?(Y.view=tl(p,C,N),Y.viewFrom=C):(Y.viewFrom>C?Y.view=tl(p,C,Y.viewFrom).concat(Y.view):Y.viewFromN&&(Y.view=Y.view.slice(0,pt(p,N)))),Y.viewTo=N})(p,fe,We),N.viewOffset=Un(Fn(p.doc,N.viewFrom)),p.display.mover.style.top=N.viewOffset+"px";var bt=$o(p);if(!At&&0==bt&&!C.force&&N.renderedView==N.view&&(null==N.updateLineNumbers||N.updateLineNumbers>=N.viewTo))return!1;var Yt=function Eu(p){if(p.hasFocus())return null;var C=he(_e(p));if(!C||!re(p.display.lineDiv,C))return null;var N={activeElt:C};if(window.getSelection){var Y=ve(p).getSelection();Y.anchorNode&&Y.extend&&re(p.display.lineDiv,Y.anchorNode)&&(N.anchorNode=Y.anchorNode,N.anchorOffset=Y.anchorOffset,N.focusNode=Y.focusNode,N.focusOffset=Y.focusOffset)}return N}(p);return bt>4&&(N.lineDiv.style.display="none"),function Zg(p,C,N){var Y=p.display,X=p.options.lineNumbers,fe=Y.lineDiv,We=fe.firstChild;function At(dn){var Tn=dn.nextSibling;return h&&d&&p.display.currentWheelTarget==dn?dn.style.display="none":dn.parentNode.removeChild(dn),Tn}for(var bt=Y.view,Yt=Y.viewFrom,fi=0;fi-1&&(Pi=!1),Gl(p,bi,Yt,N)),Pi&&(W(bi.lineNumber),bi.lineNumber.appendChild(document.createTextNode(ci(p.options,Yt)))),We=bi.node.nextSibling}else{var Hi=Ha(p,bi,Yt,N);fe.insertBefore(Hi,We)}Yt+=bi.size}for(;We;)We=At(We)}(p,N.updateLineNumbers,C.dims),bt>4&&(N.lineDiv.style.display=""),N.renderedView=N.view,function Ad(p){if(p&&p.activeElt&&p.activeElt!=he(Ae(p.activeElt))&&(p.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(p.activeElt.nodeName)&&p.anchorNode&&re(document.body,p.anchorNode)&&re(document.body,p.focusNode))){var C=p.activeElt.ownerDocument,N=C.defaultView.getSelection(),Y=C.createRange();Y.setEnd(p.anchorNode,p.anchorOffset),Y.collapse(!1),N.removeAllRanges(),N.addRange(Y),N.extend(p.focusNode,p.focusOffset)}}(Yt),W(N.cursorDiv),W(N.selectionDiv),N.gutters.style.height=N.sizer.style.minHeight=0,At&&(N.lastWrapHeight=C.wrapperHeight,N.lastWrapWidth=C.wrapperWidth,Co(p,400)),N.updateLineNumbers=null,!0}function dd(p,C){for(var N=C.viewport,Y=!0;;Y=!1){if(Y&&p.options.lineWrapping&&C.oldDisplayWidth!=bs(p))Y&&(C.visible=bl(p.display,p.doc,N));else if(N&&null!=N.top&&(N={top:Math.min(p.doc.height+Sa(p.display)-od(p),N.top)}),C.visible=bl(p.display,p.doc,N),C.visible.from>=p.display.viewFrom&&C.visible.to<=p.display.viewTo)break;if(!qc(p,C))break;Pr(p);var X=jr(p);ua(p),ns(p,X),Du(p,X),C.force=!1}C.signal(p,"update",p),(p.display.viewFrom!=p.display.reportedViewFrom||p.display.viewTo!=p.display.reportedViewTo)&&(C.signal(p,"viewportChange",p,p.display.viewFrom,p.display.viewTo),p.display.reportedViewFrom=p.display.viewFrom,p.display.reportedViewTo=p.display.viewTo)}function Mu(p,C){var N=new Au(p,C);if(qc(p,N)){Pr(p),dd(p,N);var Y=jr(p);ua(p),ns(p,Y),Du(p,Y),N.finish()}}function Up(p){p.sizer.style.marginLeft=p.gutters.offsetWidth+"px",Bo(p,"gutterChanged",p)}function Du(p,C){p.display.sizer.style.minHeight=C.docHeight+"px",p.display.heightForcer.style.top=C.docHeight+"px",p.display.gutters.style.height=C.docHeight+p.display.barHeight+wl(p)+"px"}function Rl(p){var C=p.display,N=C.view;if(C.alignWidgets||C.gutters.firstChild&&p.options.fixedGutter){for(var Y=SA(C)-C.scroller.scrollLeft+p.doc.scrollLeft,X=C.gutters.offsetWidth,fe=Y+"px",We=0;WeAt.clientHeight;if(Y&&At.scrollWidth>At.clientWidth||X&&Yt){if(X&&d&&h)e:for(var fi=C.target,bi=We.view;fi!=At;fi=fi.parentNode)for(var Hi=0;Hi=0&&Vt(p,Y.to())<=0)return N}return-1};var En=function(p,C){this.anchor=p,this.head=C};function dA(p,C,N){var Y=p&&p.options.selectionsMayTouch,X=C[N];C.sort(function(Hi,Pi){return Vt(Hi.from(),Pi.from())}),N=Fe(C,X);for(var fe=1;fe0:bt>=0){var Yt=Me(At.from(),We.from()),fi=ue(At.to(),We.to()),bi=At.empty()?We.from()==We.head:At.from()==At.head;fe<=N&&--N,C.splice(--fe,2,new En(bi?fi:Yt,bi?Yt:fi))}}return new Ga(C,N)}function jA(p,C){return new Ga([new En(p,C||p)],0)}function uA(p){return p.text?Ai(p.from.line+p.text.length-1,_t(p.text).length+(1==p.text.length?p.from.ch:0)):p.to}function ga(p,C){if(Vt(p,C.from)<0)return p;if(Vt(p,C.to)<=0)return uA(C);var N=p.line+C.text.length-(C.to.line-C.from.line)-1,Y=p.ch;return p.line==C.to.line&&(Y+=uA(C).ch-C.to.ch),Ai(N,Y)}function Yd(p,C){for(var N=[],Y=0;Y1&&p.remove(At.line+1,dn-1),p.insert(At.line+1,er)}Bo(p,"change",p,C)}function Yo(p,C,N){!function Y(X,fe,We){if(X.linked)for(var At=0;Atfe-(p.cm?p.cm.options.historyEventDelay:500)||"*"==C.origin.charAt(0)))&&(We=function Zr(p,C){return C?($c(p.done),_t(p.done)):p.done.length&&!_t(p.done).ranges?_t(p.done):p.done.length>1&&!p.done[p.done.length-2].ranges?(p.done.pop(),_t(p.done)):void 0}(X,X.lastOp==Y)))At=_t(We.changes),0==Vt(C.from,C.to)&&0==Vt(C.from,At.to)?At.to=uA(C):We.changes.push(pl(p,C));else{var bt=_t(X.done);for((!bt||!bt.ranges)&&Bl(p.sel,X.done),We={changes:[pl(p,C)],generation:X.generation},X.done.push(We);X.done.length>X.undoDepth;)X.done.shift(),X.done[0].ranges||X.done.shift()}X.done.push(N),X.generation=++X.maxGeneration,X.lastModTime=X.lastSelTime=fe,X.lastOp=X.lastSelOp=Y,X.lastOrigin=X.lastSelOrigin=C.origin,At||ge(p,"historyAdded")}function yo(p,C,N,Y){var X=p.history,fe=Y&&Y.origin;N==X.lastSelOp||fe&&X.lastSelOrigin==fe&&(X.lastModTime==X.lastSelTime&&X.lastOrigin==fe||function Wr(p,C,N,Y){var X=C.charAt(0);return"*"==X||"+"==X&&N.ranges.length==Y.ranges.length&&N.somethingSelected()==Y.somethingSelected()&&new Date-p.history.lastSelTime<=(p.cm?p.cm.options.historyEventDelay:500)}(p,fe,_t(X.done),C))?X.done[X.done.length-1]=C:Bl(C,X.done),X.lastSelTime=+new Date,X.lastSelOrigin=fe,X.lastSelOp=N,Y&&!1!==Y.clearRedo&&$c(X.undone)}function Bl(p,C){var N=_t(C);N&&N.ranges&&N.equals(p)||C.push(p)}function eA(p,C,N,Y){var X=C["spans_"+p.id],fe=0;p.iter(Math.max(p.first,N),Math.min(p.first+p.size,Y),function(We){We.markedSpans&&((X||(X=C["spans_"+p.id]={}))[fe]=We.markedSpans),++fe})}function On(p){if(!p)return null;for(var C,N=0;N-1&&(_t(At)[bi]=Yt[bi],delete Yt[bi])}}}return Y}function hd(p,C,N,Y){if(Y){var X=p.anchor;if(N){var fe=Vt(C,X)<0;fe!=Vt(N,X)<0?(X=C,C=N):fe!=Vt(C,N)<0&&(C=N)}return new En(X,C)}return new En(N||C,C)}function Na(p,C,N,Y,X){null==X&&(X=p.cm&&(p.cm.display.shift||p.extend)),Ba(p,new Ga([hd(p.sel.primary(),C,N,X)],0),Y)}function El(p,C,N){for(var Y=[],X=p.cm&&(p.cm.display.shift||p.extend),fe=0;fe=C.ch:At.to>C.ch))){if(X&&(ge(bt,"beforeCursorEnter"),bt.explicitlyCleared)){if(fe.markedSpans){--We;continue}break}if(!bt.atomic)continue;if(N){var bi=bt.find(Y<0?1:-1),Hi=void 0;if((Y<0?fi:Yt)&&(bi=Vl(p,bi,-Y,bi&&bi.line==C.line?fe:null)),bi&&bi.line==C.line&&(Hi=Vt(bi,N))&&(Y<0?Hi<0:Hi>0))return pA(p,bi,C,Y,X)}var Pi=bt.find(Y<0?-1:1);return(Y<0?Yt:fi)&&(Pi=Vl(p,Pi,Y,Pi.line==C.line?fe:null)),Pi?pA(p,Pi,C,Y,X):null}}return C}function Su(p,C,N,Y,X){var fe=Y||1;return pA(p,C,N,fe,X)||!X&&pA(p,C,N,fe,!0)||pA(p,C,N,-fe,X)||!X&&pA(p,C,N,-fe,!0)||(p.cantEdit=!0,Ai(p.first,0))}function Vl(p,C,N,Y){return N<0&&0==C.ch?C.line>p.first?xt(p,Ai(C.line-1)):null:N>0&&C.ch==(Y||Fn(p,C.line)).text.length?C.line0)){var fi=[bt,1],bi=Vt(Yt.from,At.from),Hi=Vt(Yt.to,At.to);(bi<0||!We.inclusiveLeft&&!bi)&&fi.push({from:Yt.from,to:At.from}),(Hi>0||!We.inclusiveRight&&!Hi)&&fi.push({from:At.to,to:Yt.to}),X.splice.apply(X,fi),bt+=fi.length-3}}return X}(p,C.from,C.to);if(Y)for(var X=Y.length-1;X>=0;--X)na(p,{from:Y[X].from,to:Y[X].to,text:X?[""]:C.text,origin:C.origin});else na(p,C)}}function na(p,C){if(1!=C.text.length||""!=C.text[0]||0!=Vt(C.from,C.to)){var N=Yd(p,C);OA(p,C,N,p.cm?p.cm.curOp.id:NaN),Ks(p,C,N,Sr(p,C));var Y=[];Yo(p,function(X,fe){!fe&&-1==Fe(Y,X.history)&&(Oo(X.history,C),Y.push(X.history)),Ks(X,C,null,Sr(X,C))})}}function Fu(p,C,N){var Y=p.cm&&p.cm.state.suppressEdits;if(!Y||N){for(var fe,X=p.history,We=p.sel,At="undo"==C?X.done:X.undone,bt="undo"==C?X.undone:X.done,Yt=0;Yt=0;--Pi){var dn=Hi(Pi);if(dn)return dn.v}}}}function gh(p,C){if(0!=C&&(p.first+=C,p.sel=new Ga(Nt(p.sel.ranges,function(X){return new En(Ai(X.anchor.line+C,X.anchor.ch),Ai(X.head.line+C,X.head.ch))}),p.sel.primIndex),p.cm)){Lt(p.cm,p.first,p.first-C,C);for(var N=p.cm.display,Y=N.viewFrom;Yp.lastLine())){if(C.from.linefe&&(C={from:C.from,to:Ai(fe,Fn(p,fe).text.length),text:[C.text[0]],origin:C.origin}),C.removed=Wn(p,C.from,C.to),N||(N=Yd(p,C)),p.cm?function Gp(p,C,N){var Y=p.doc,X=p.display,fe=C.from,We=C.to,At=!1,bt=fe.line;p.options.lineWrapping||(bt=ar(kt(Fn(Y,fe.line))),Y.iter(bt,We.line+1,function(Pi){if(Pi==X.maxLine)return At=!0,!0})),Y.sel.contains(C.from,C.to)>-1&&ct(p),hl(Y,C,N,PA(p)),p.options.lineWrapping||(Y.iter(bt,fe.line+C.text.length,function(Pi){var dn=Jn(Pi);dn>X.maxLineLength&&(X.maxLine=Pi,X.maxLineLength=dn,X.maxLineChanged=!0,At=!1)}),At&&(p.curOp.updateMaxLine=!0)),function fr(p,C){if(p.modeFrontier=Math.min(p.modeFrontier,C),!(p.highlightFrontierN;Y--){var X=Fn(p,Y).stateAfter;if(X&&(!(X instanceof Ei)||Y+X.lookAhead1||!(this.children[0]instanceof xe))){var At=[];this.collapse(At),this.children=[new xe(At)],this.children[0].parent=this}},collapse:function(p){for(var C=0;C50){for(var We=X.lines.length%25+25,At=We;At10);p.parent.maybeSpill()}},iterN:function(p,C,N){for(var Y=0;Y0||0==We&&!1!==fe.clearWhenEmpty)return fe;if(fe.replacedWith&&(fe.collapsed=!0,fe.widgetNode=J("span",[fe.replacedWith],"CodeMirror-widget"),Y.handleMouseEvents||fe.widgetNode.setAttribute("cm-ignore-events","true"),Y.insertLeft&&(fe.widgetNode.insertLeft=!0)),fe.collapsed){if(ht(p,C.line,C,N,fe)||C.line!=N.line&&ht(p,N.line,C,N,fe))throw new Error("Inserting collapsed marker partially overlapping an existing one");!function Br(){br=!0}()}fe.addToHistory&&OA(p,{from:C,to:N,origin:"markText"},p.sel,NaN);var Yt,At=C.line,bt=p.cm;if(p.iter(At,N.line+1,function(bi){bt&&fe.collapsed&&!bt.options.lineWrapping&&kt(bi)==bt.display.maxLine&&(Yt=!0),fe.collapsed&&At!=C.line&&Or(bi,0),function To(p,C,N){var Y=N&&window.WeakSet&&(N.markedSpans||(N.markedSpans=new WeakSet));Y&&p.markedSpans&&Y.has(p.markedSpans)?p.markedSpans.push(C):(p.markedSpans=p.markedSpans?p.markedSpans.concat([C]):[C],Y&&Y.add(p.markedSpans)),C.marker.attachLine(p)}(bi,new Kn(fe,At==C.line?C.ch:null,At==N.line?N.ch:null),p.cm&&p.cm.curOp),++At}),fe.collapsed&&p.iter(C.line,N.line+1,function(bi){Ui(p,bi)&&Or(bi,0)}),fe.clearOnEnter&&Qi(fe,"beforeCursorEnter",function(){return fe.clear()}),fe.readOnly&&(function _o(){Gr=!0}(),(p.history.done.length||p.history.undone.length)&&p.clearHistory()),fe.collapsed&&(fe.id=++pn,fe.atomic=!0),bt){if(Yt&&(bt.curOp.updateMaxLine=!0),fe.collapsed)Lt(bt,C.line,N.line+1);else if(fe.className||fe.startStyle||fe.endStyle||fe.css||fe.attributes||fe.title)for(var fi=C.line;fi<=N.line;fi++)wi(bt,fi,"text");fe.atomic&&Kh(bt.doc),Bo(bt,"markerAdded",bt,fe)}return fe}sr.prototype.clear=function(){if(!this.explicitlyCleared){var p=this.doc.cm,C=p&&!p.curOp;if(C&&ld(p),Zt(this,"clear")){var N=this.find();N&&Bo(this,"clear",N.from,N.to)}for(var Y=null,X=null,fe=0;fep.display.maxLineLength&&(p.display.maxLine=Yt,p.display.maxLineLength=fi,p.display.maxLineChanged=!0)}null!=Y&&p&&this.collapsed&&Lt(p,Y,X+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,p&&Kh(p.doc)),p&&Bo(p,"markerCleared",p,this,Y,X),C&&nc(p),this.parent&&this.parent.clear()}},sr.prototype.find=function(p,C){null==p&&"bookmark"==this.type&&(p=1);for(var N,Y,X=0;X=0;bt--)oc(this,Y[bt]);At?Qu(this,At):this.cm&&Ue(this.cm)}),undo:_n(function(){Fu(this,"undo")}),redo:_n(function(){Fu(this,"redo")}),undoSelection:_n(function(){Fu(this,"undo",!0)}),redoSelection:_n(function(){Fu(this,"redo",!0)}),setExtending:function(p){this.extend=p},getExtending:function(){return this.extend},historySize:function(){for(var p=this.history,C=0,N=0,Y=0;Y=p.ch)&&C.push(X.marker.parent||X.marker)}return C},findMarks:function(p,C,N){p=xt(this,p),C=xt(this,C);var Y=[],X=p.line;return this.iter(p.line,C.line+1,function(fe){var We=fe.markedSpans;if(We)for(var At=0;At=bt.to||null==bt.from&&X!=p.line||null!=bt.from&&X==C.line&&bt.from>=C.ch)&&(!N||N(bt.marker))&&Y.push(bt.marker.parent||bt.marker)}++X}),Y},getAllMarks:function(){var p=[];return this.iter(function(C){var N=C.markedSpans;if(N)for(var Y=0;Yp)return C=p,!0;p-=fe,++N}),xt(this,Ai(N,C))},indexFromPos:function(p){var C=(p=xt(this,p)).ch;if(p.lineC&&(C=p.from),null!=p.to&&p.to-1)return C.state.draggingText(p),void setTimeout(function(){return C.display.input.focus()},20);try{var fi=p.dataTransfer.getData("Text");if(fi){var bi;if(C.state.draggingText&&!C.state.draggingText.copy&&(bi=C.listSelections()),VA(C.doc,jA(N,N)),bi)for(var Hi=0;Hi=0;At--)ac(p.doc,"",Y[At].from,Y[At].to,"+delete");Ue(p)})}function _d(p,C,N){var Y=it(p.text,C+N,N);return Y<0||Y>p.text.length?null:Y}function sc(p,C,N){var Y=_d(p,C.ch,N);return null==Y?null:new Ai(C.line,Y,N<0?"after":"before")}function mA(p,C,N,Y,X){if(p){"rtl"==C.doc.direction&&(X=-X);var fe=mi(N,C.doc.direction);if(fe){var Yt,We=X<0?_t(fe):fe[0],bt=X<0==(1==We.level)?"after":"before";if(We.level>0||"rtl"==C.doc.direction){var fi=rl(C,N),bi=ia(C,fi,Yt=X<0?N.text.length-1:0).top;Yt=gt(function(Hi){return ia(C,fi,Hi).top==bi},X<0==(1==We.level)?We.from:We.to-1,Yt),"before"==bt&&(Yt=_d(N,Yt,1))}else Yt=X<0?We.to:We.from;return new Ai(Y,Yt,bt)}}return new Ai(Y,X<0?N.text.length:0,X<0?"before":"after")}fA.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},fA.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},fA.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},fA.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},fA.default=d?fA.macDefault:fA.pcDefault;var WA={selectAll:Pu,singleSelection:function(p){return p.setSelection(p.getCursor("anchor"),p.getCursor("head"),St)},killLine:function(p){return us(p,function(C){if(C.empty()){var N=Fn(p.doc,C.head.line).text.length;return C.head.ch==N&&C.head.line0)X=new Ai(X.line,X.ch+1),p.replaceRange(fe.charAt(X.ch-1)+fe.charAt(X.ch-2),Ai(X.line,X.ch-2),X,"+transpose");else if(X.line>p.doc.first){var We=Fn(p.doc,X.line-1).text;We&&(X=new Ai(X.line,1),p.replaceRange(fe.charAt(0)+p.doc.lineSeparator()+We.charAt(We.length-1),Ai(X.line-1,We.length-1),X,"+transpose"))}N.push(new En(X,X))}p.setSelections(N)})},newlineAndIndent:function(p){return Jl(p,function(){for(var C=p.listSelections(),N=C.length-1;N>=0;N--)p.replaceRange(p.doc.lineSeparator(),C[N].anchor,C[N].head,"+input");C=p.listSelections();for(var Y=0;Y-1&&(Vt((We=fe.ranges[We]).from(),C)<0||C.xRel>0)&&(Vt(We.to(),C)>0||C.xRel<0)?function t_(p,C,N,Y){var X=p.display,fe=!1,We=Ys(p,function(Yt){h&&(X.scroller.draggable=!1),p.state.draggingText=!1,p.state.delayingBlurEvent&&(p.hasFocus()?p.state.delayingBlurEvent=!1:Ol(p)),dt(X.wrapper.ownerDocument,"mouseup",We),dt(X.wrapper.ownerDocument,"mousemove",At),dt(X.scroller,"dragstart",bt),dt(X.scroller,"drop",We),fe||(Kt(Yt),Y.addNew||Na(p.doc,N,null,null,Y.extend),h&&!M||l&&9==v?setTimeout(function(){X.wrapper.ownerDocument.body.focus({preventScroll:!0}),X.input.focus()},20):X.input.focus())}),At=function(Yt){fe=fe||Math.abs(C.clientX-Yt.clientX)+Math.abs(C.clientY-Yt.clientY)>=10},bt=function(){return fe=!0};h&&(X.scroller.draggable=!0),p.state.draggingText=We,We.copy=!Y.moveOnDrag,Qi(X.wrapper.ownerDocument,"mouseup",We),Qi(X.wrapper.ownerDocument,"mousemove",At),Qi(X.scroller,"dragstart",bt),Qi(X.scroller,"drop",We),p.state.delayingBlurEvent=!0,setTimeout(function(){return X.input.focus()},20),X.scroller.dragDrop&&X.scroller.dragDrop()}(p,Y,C,X):function Xg(p,C,N,Y){l&&Ol(p);var X=p.display,fe=p.doc;Kt(C);var We,At,bt=fe.sel,Yt=bt.ranges;if(Y.addNew&&!Y.extend?(At=fe.sel.contains(N),We=At>-1?Yt[At]:new En(N,N)):(We=fe.sel.primary(),At=fe.sel.primIndex),"rectangle"==Y.unit)Y.addNew||(We=new En(N,N)),N=jt(p,C,!0,!0),At=-1;else{var fi=Ru(p,N,Y.unit);We=Y.extend?hd(We,fi.anchor,fi.head,Y.extend):fi}Y.addNew?-1==At?(At=Yt.length,Ba(fe,dA(p,Yt.concat([We]),At),{scroll:!1,origin:"*mouse"})):Yt.length>1&&Yt[At].empty()&&"char"==Y.unit&&!Y.extend?(Ba(fe,dA(p,Yt.slice(0,At).concat(Yt.slice(At+1)),0),{scroll:!1,origin:"*mouse"}),bt=fe.sel):pd(fe,At,We,oi):(At=0,Ba(fe,new Ga([We],0),oi),bt=fe.sel);var bi=N;function Hi(Xn){if(0!=Vt(bi,Xn))if(bi=Xn,"rectangle"==Y.unit){for(var nr=[],Lr=p.options.tabSize,Rr=ae(Fn(fe,N.line).text,N.ch,Lr),Lo=ae(Fn(fe,Xn.line).text,Xn.ch,Lr),fa=Math.min(Rr,Lo),cl=Math.max(Rr,Lo),ps=Math.min(N.line,Xn.line),ql=Math.min(p.lastLine(),Math.max(N.line,Xn.line));ps<=ql;ps++){var lc=Fn(fe,ps).text,gs=be(lc,fa,Lr);fa==cl?nr.push(new En(Ai(ps,gs),Ai(ps,gs))):lc.length>gs&&nr.push(new En(Ai(ps,gs),Ai(ps,be(lc,cl,Lr))))}nr.length||nr.push(new En(N,N)),Ba(fe,dA(p,bt.ranges.slice(0,At).concat(nr),At),{origin:"*mouse",scroll:!1}),p.scrollIntoView(Xn)}else{var Ns,Xl=We,cs=Ru(p,Xn,Y.unit),qs=Xl.anchor;Vt(cs.anchor,qs)>0?(Ns=cs.head,qs=Me(Xl.from(),cs.anchor)):(Ns=cs.anchor,qs=ue(Xl.to(),cs.head));var Us=bt.ranges.slice(0);Us[At]=function yh(p,C){var N=C.anchor,Y=C.head,X=Fn(p.doc,N.line);if(0==Vt(N,Y)&&N.sticky==Y.sticky)return C;var fe=mi(X);if(!fe)return C;var We=Gt(fe,N.ch,N.sticky),At=fe[We];if(At.from!=N.ch&&At.to!=N.ch)return C;var Yt,bt=We+(At.from==N.ch==(1!=At.level)?0:1);if(0==bt||bt==fe.length)return C;if(Y.line!=N.line)Yt=(Y.line-N.line)*("ltr"==p.doc.direction?1:-1)>0;else{var fi=Gt(fe,Y.ch,Y.sticky),bi=fi-We||(Y.ch-N.ch)*(1==At.level?-1:1);Yt=fi==bt-1||fi==bt?bi<0:bi>0}var Hi=fe[bt+(Yt?-1:0)],Pi=Yt==(1==Hi.level),dn=Pi?Hi.from:Hi.to,Tn=Pi?"after":"before";return N.ch==dn&&N.sticky==Tn?C:new En(new Ai(N.line,dn,Tn),Y)}(p,new En(xt(fe,qs),Ns)),Ba(fe,dA(p,Us,At),oi)}}var Pi=X.wrapper.getBoundingClientRect(),dn=0;function Tn(Xn){var nr=++dn,Lr=jt(p,Xn,!0,"rectangle"==Y.unit);if(Lr)if(0!=Vt(Lr,bi)){p.curOp.focus=he(_e(p)),Hi(Lr);var Rr=bl(X,fe);(Lr.line>=Rr.to||Lr.linePi.bottom?20:0;Lo&&setTimeout(Ys(p,function(){dn==nr&&(X.scroller.scrollTop+=Lo,Tn(Xn))}),50)}}function Rn(Xn){p.state.selectingText=!1,dn=1/0,Xn&&(Kt(Xn),X.input.focus()),dt(X.wrapper.ownerDocument,"mousemove",er),dt(X.wrapper.ownerDocument,"mouseup",Ar),fe.history.lastSelOrigin=null}var er=Ys(p,function(Xn){0!==Xn.buttons&&tt(Xn)?Tn(Xn):Rn(Xn)}),Ar=Ys(p,Rn);p.state.selectingText=Ar,Qi(X.wrapper.ownerDocument,"mousemove",er),Qi(X.wrapper.ownerDocument,"mouseup",Ar)}(p,Y,C,X)}(C,Y,fe,p):qt(p)==N.scroller&&Kt(p):2==X?(Y&&Na(C.doc,Y),setTimeout(function(){return N.input.focus()},20)):3==X&&(Z?C.display.input.onContextMenu(p):Ol(C)))}}}function Ru(p,C,N){if("char"==N)return new En(C,C);if("word"==N)return p.findWordAt(C);if("line"==N)return new En(Ai(C.line,0),xt(p.doc,Ai(C.line+1,0)));var Y=N(p,C);return new En(Y.from,Y.to)}function qp(p,C,N,Y){var X,fe;if(C.touches)X=C.touches[0].clientX,fe=C.touches[0].clientY;else try{X=C.clientX,fe=C.clientY}catch{return!1}if(X>=Math.floor(p.display.gutters.getBoundingClientRect().right))return!1;Y&&Kt(C);var We=p.display,At=We.lineDiv.getBoundingClientRect();if(fe>At.bottom||!Zt(p,N))return Ge(C);fe-=At.top-We.viewOffset;for(var bt=0;bt=X)return ge(p,N,p,wo(p.doc,fe),p.display.gutterSpecs[bt].className,C),Ge(C)}}function $g(p,C){return qp(p,C,"gutterClick",!0)}function wh(p,C){Dc(p.display,C)||function hs(p,C){return!!Zt(p,"gutterContextMenu")&&qp(p,C,"gutterContextMenu",!1)}(p,C)||Se(p,C,"contextmenu")||Z||p.display.input.onContextMenu(C)}function wd(p){p.display.wrapper.className=p.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+p.options.theme.replace(/(^|\s)\s*/g," cm-s-"),kc(p)}Ou.prototype.compare=function(p,C,N){return this.time+400>p&&0==Vt(C,this.pos)&&N==this.button};var pu={toString:function(){return"CodeMirror.Init"}},Bm={},Ch={};function Ay(p,C,N){if(!C!=!(N&&N!=pu)){var X=p.display.dragFunctions,fe=C?Qi:dt;fe(p.display.scroller,"dragstart",X.start),fe(p.display.scroller,"dragenter",X.enter),fe(p.display.scroller,"dragover",X.over),fe(p.display.scroller,"dragleave",X.leave),fe(p.display.scroller,"drop",X.drop)}}function i_(p){p.options.lineWrapping?(oe(p.display.wrapper,"CodeMirror-wrap"),p.display.sizer.style.minWidth="",p.display.sizerWidth=null):(G(p.display.wrapper,"CodeMirror-wrap"),hr(p)),Re(p),Lt(p),kc(p),setTimeout(function(){return ns(p)},100)}function Ms(p,C){var N=this;if(!(this instanceof Ms))return new Ms(p,C);this.options=C=C?Oe(C):{},Oe(Bm,C,!1);var Y=C.value;"string"==typeof Y?Y=new Oc(Y,C.mode,null,C.lineSeparator,C.direction):C.mode&&(Y.modeOption=C.mode),this.doc=Y;var X=new Ms.inputStyles[C.inputStyle](this),fe=this.display=new zp(p,Y,X,C);for(var We in fe.wrapper.CodeMirror=this,wd(this),C.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Vr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Ee,keySeq:null,specialChars:null},C.autofocus&&!I&&fe.input.focus(),l&&v<11&&setTimeout(function(){return N.display.input.reset(!0)},20),function Lc(p){var C=p.display;Qi(C.scroller,"mousedown",Ys(p,Kg)),Qi(C.scroller,"dblclick",l&&v<11?Ys(p,function(bt){if(!Se(p,bt)){var Yt=jt(p,bt);if(Yt&&!$g(p,bt)&&!Dc(p.display,bt)){Kt(bt);var fi=p.findWordAt(Yt);Na(p.doc,fi.anchor,fi.head)}}}):function(bt){return Se(p,bt)||Kt(bt)}),Qi(C.scroller,"contextmenu",function(bt){return wh(p,bt)}),Qi(C.input.getField(),"contextmenu",function(bt){C.scroller.contains(bt.target)||wh(p,bt)});var N,Y={end:0};function X(){C.activeTouch&&(N=setTimeout(function(){return C.activeTouch=null},1e3),(Y=C.activeTouch).end=+new Date)}function fe(bt){if(1!=bt.touches.length)return!1;var Yt=bt.touches[0];return Yt.radiusX<=1&&Yt.radiusY<=1}function We(bt,Yt){if(null==Yt.left)return!0;var fi=Yt.left-bt.left,bi=Yt.top-bt.top;return fi*fi+bi*bi>400}Qi(C.scroller,"touchstart",function(bt){if(!Se(p,bt)&&!fe(bt)&&!$g(p,bt)){C.input.ensurePolled(),clearTimeout(N);var Yt=+new Date;C.activeTouch={start:Yt,moved:!1,prev:Yt-Y.end<=300?Y:null},1==bt.touches.length&&(C.activeTouch.left=bt.touches[0].pageX,C.activeTouch.top=bt.touches[0].pageY)}}),Qi(C.scroller,"touchmove",function(){C.activeTouch&&(C.activeTouch.moved=!0)}),Qi(C.scroller,"touchend",function(bt){var Yt=C.activeTouch;if(Yt&&!Dc(C,bt)&&null!=Yt.left&&!Yt.moved&&new Date-Yt.start<300){var bi,fi=p.coordsChar(C.activeTouch,"page");bi=!Yt.prev||We(Yt,Yt.prev)?new En(fi,fi):!Yt.prev.prev||We(Yt,Yt.prev.prev)?p.findWordAt(fi):new En(Ai(fi.line,0),xt(p.doc,Ai(fi.line+1,0))),p.setSelection(bi.anchor,bi.head),p.focus(),Kt(bt)}X()}),Qi(C.scroller,"touchcancel",X),Qi(C.scroller,"scroll",function(){C.scroller.clientHeight&&(cn(p,C.scroller.scrollTop),rr(p,C.scroller.scrollLeft,!0),ge(p,"scroll",p))}),Qi(C.scroller,"mousewheel",function(bt){return uh(p,bt)}),Qi(C.scroller,"DOMMouseScroll",function(bt){return uh(p,bt)}),Qi(C.wrapper,"scroll",function(){return C.wrapper.scrollTop=C.wrapper.scrollLeft=0}),C.dragFunctions={enter:function(bt){Se(p,bt)||_i(bt)},over:function(bt){Se(p,bt)||(function jg(p,C){var N=jt(p,C);if(N){var Y=document.createDocumentFragment();Ao(p,N,Y),p.display.dragCursor||(p.display.dragCursor=P("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),p.display.lineSpace.insertBefore(p.display.dragCursor,p.display.cursorDiv)),te(p.display.dragCursor,Y)}}(p,bt),_i(bt))},start:function(bt){return function bm(p,C){if(l&&(!p.state.draggingText||+new Date-du<100))_i(C);else if(!Se(p,C)&&!Dc(p.display,C)&&(C.dataTransfer.setData("Text",p.getSelection()),C.dataTransfer.effectAllowed="copyMove",C.dataTransfer.setDragImage&&!M)){var N=P("img",null,null,"position: fixed; left: 0; top: 0;");N.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",y&&(N.width=N.height=1,p.display.wrapper.appendChild(N),N._top=N.offsetTop),C.dataTransfer.setDragImage(N,0,0),y&&N.parentNode.removeChild(N)}}(p,bt)},drop:Ys(p,Zp),leave:function(bt){Se(p,bt)||qh(p)}};var At=C.input.getField();Qi(At,"keyup",function(bt){return Wp.call(p,bt)}),Qi(At,"keydown",Ys(p,_h)),Qi(At,"keypress",Ys(p,vh)),Qi(At,"focus",function(bt){return Sc(p,bt)}),Qi(At,"blur",function(bt){return xs(p,bt)})}(this),fd(),ld(this),this.curOp.forceUpdate=!0,No(this,Y),C.autofocus&&!I||this.hasFocus()?setTimeout(function(){N.hasFocus()&&!N.state.focused&&Sc(N)},20):xs(this),Ch)Ch.hasOwnProperty(We)&&Ch[We](this,C[We],pu);FA(this),C.finishInit&&C.finishInit(this);for(var At=0;At150)){if(!Y)return;N="prev"}}else fi=0,N="not";"prev"==N?fi=C>X.first?ae(Fn(X,C-1).text,null,We):0:"add"==N?fi=bt+p.options.indentUnit:"subtract"==N?fi=bt-p.options.indentUnit:"number"==typeof N&&(fi=bt+N),fi=Math.max(0,fi);var bi="",Hi=0;if(p.options.indentWithTabs)for(var Pi=Math.floor(fi/We);Pi;--Pi)Hi+=We,bi+="\t";if(HiWe,bt=Ji(C),Yt=null;if(At&&Y.ranges.length>1)if(Kl&&Kl.text.join("\n")==C){if(Y.ranges.length%Kl.text.length==0){Yt=[];for(var fi=0;fi=0;Hi--){var Pi=Y.ranges[Hi],dn=Pi.from(),Tn=Pi.to();Pi.empty()&&(N&&N>0?dn=Ai(dn.line,dn.ch-N):p.state.overwrite&&!At?Tn=Ai(Tn.line,Math.min(Fn(fe,Tn.line).text.length,Tn.ch+_t(bt).length)):At&&Kl&&Kl.lineWise&&Kl.text.join("\n")==bt.join("\n")&&(dn=Tn=Ai(dn.line,0)));var Rn={from:dn,to:Tn,text:Yt?Yt[Hi%Yt.length]:bt,origin:X||(At?"paste":p.state.cutIncoming>We?"cut":"+input")};oc(p.doc,Rn),Bo(p,"inputRead",p,Rn)}C&&!At&&Em(p,C),Ue(p),p.curOp.updateInput<2&&(p.curOp.updateInput=bi),p.curOp.typing=!0,p.state.pasteIncoming=p.state.cutIncoming=-1}function _A(p,C){var N=p.clipboardData&&p.clipboardData.getData("Text");if(N)return p.preventDefault(),!C.isReadOnly()&&!C.options.disableInput&&C.hasFocus()&&Jl(C,function(){return Xp(C,N,0,null,"paste")}),!0}function Em(p,C){if(p.options.electricChars&&p.options.smartIndent)for(var N=p.doc.sel,Y=N.ranges.length-1;Y>=0;Y--){var X=N.ranges[Y];if(!(X.head.ch>100||Y&&N.ranges[Y-1].head.line==X.head.line)){var fe=p.getModeAt(X.head),We=!1;if(fe.electricChars){for(var At=0;At-1){We=ll(p,X.head.line,"smart");break}}else fe.electricInput&&fe.electricInput.test(Fn(p.doc,X.head.line).text.slice(0,X.head.ch))&&(We=ll(p,X.head.line,"smart"));We&&Bo(p,"electricInput",p,X.head.line)}}}function ys(p){for(var C=[],N=[],Y=0;Y0?0:-1));Xn=isNaN(nr)?null:new Ai(C.line,Math.max(0,Math.min(At.text.length,C.ch+N*((N>0?nr>=55296&&nr<56320:nr>=56320&&nr<57343)?2:1))),-N)}else Xn=X?function vs(p,C,N,Y){var X=mi(C,p.doc.direction);if(!X)return sc(C,N,Y);N.ch>=C.text.length?(N.ch=C.text.length,N.sticky="before"):N.ch<=0&&(N.ch=0,N.sticky="after");var fe=Gt(X,N.ch,N.sticky),We=X[fe];if("ltr"==p.doc.direction&&We.level%2==0&&(Y>0?We.to>N.ch:We.from=We.from&&Hi>=fi.begin))return new Ai(N.line,Hi,bi?"before":"after")}var dn=function(er,Ar,Xn){for(;er>=0&&er0==(1!=Lr.level),Lo=Rr?Xn.begin:At(Xn.end,-1);if(Lr.from<=Lo&&Lo0?fi.end:At(fi.begin,-1);return null==Rn||Y>0&&Rn==C.text.length||!(Tn=dn(Y>0?0:X.length-1,Y,Yt(Rn)))?null:Tn}(p.cm,At,C,N):sc(At,C,N);if(null==Xn){if(Ar||!function Yt(){var Ar=C.line+bt;return!(Ar=p.first+p.size)&&(C=new Ai(Ar,C.ch,C.sticky),At=Fn(p,Ar))}())return!1;C=mA(X,p.cm,At,C.line,bt)}else C=Xn;return!0}if("char"==Y||"codepoint"==Y)fi();else if("column"==Y)fi(!0);else if("word"==Y||"group"==Y)for(var bi=null,Hi="group"==Y,Pi=p.cm&&p.cm.getHelper(C,"wordChars"),dn=!0;!(N<0)||fi(!dn);dn=!1){var Tn=At.text.charAt(C.ch)||"\n",Rn=vt(Tn,Pi)?"w":Hi&&"\n"==Tn?"n":!Hi||/\s/.test(Tn)?null:"p";if(Hi&&!dn&&!Rn&&(Rn="s"),bi&&bi!=Rn){N<0&&(N=1,fi(),C.sticky="after");break}if(Rn&&(bi=Rn),N>0&&!fi(!dn))break}var er=Su(p,C,fe,We,!0);return Le(fe,er)&&(er.hitSide=!0),er}function eg(p,C,N,Y){var We,Yt,X=p.doc,fe=C.left;if("page"==Y){var At=Math.min(p.display.wrapper.clientHeight,ve(p).innerHeight||X(p).documentElement.clientHeight),bt=Math.max(At-.5*Qc(p.display),3);We=(N>0?C.bottom:C.top)+N*bt}else"line"==Y&&(We=N>0?C.bottom+3:C.top-3);for(;(Yt=Vc(p,fe,We)).outside;){if(N<0?We<=0:We>=X.height){Yt.hitSide=!0;break}We+=5*N}return Yt}var rs=function(p){this.cm=p,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ee,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function n_(p,C){var N=Pl(p,C.line);if(!N||N.hidden)return null;var Y=Fn(p.doc,C.line),X=ad(N,Y,C.line),fe=mi(Y,p.doc.direction),We="left";fe&&(We=Gt(fe,C.ch)%2?"right":"left");var bt=Jr(X.map,C.ch,We);return bt.offset="right"==bt.collapse?bt.end:bt.start,bt}function Rc(p,C){return C&&(p.bad=!0),p}function Yu(p,C,N){var Y;if(C==p.display.lineDiv){if(!(Y=p.display.lineDiv.childNodes[N]))return Rc(p.clipPos(Ai(p.display.viewTo-1)),!0);C=null,N=0}else for(Y=C;;Y=Y.parentNode){if(!Y||Y==p.display.lineDiv)return null;if(Y.parentNode&&Y.parentNode==p.display.lineDiv)break}for(var X=0;X=C.display.viewTo||X.line=C.display.viewFrom&&n_(C,Y)||{node:At[0].measure.map[2],offset:0},Yt=X.linep.firstLine()&&(Y=Ai(Y.line-1,Fn(p.doc,Y.line-1).length)),X.ch==Fn(p.doc,X.line).text.length&&X.lineC.viewTo-1)return!1;Y.line==C.viewFrom||0==(fe=pt(p,Y.line))?(We=ar(C.view[0].line),At=C.view[0].node):(We=ar(C.view[fe].line),At=C.view[fe-1].node.nextSibling);var Yt,fi,bt=pt(p,X.line);if(bt==C.view.length-1?(Yt=C.viewTo-1,fi=C.lineDiv.lastChild):(Yt=ar(C.view[bt+1].line)-1,fi=C.view[bt+1].node.previousSibling),!At)return!1;for(var bi=p.doc.splitLines(function Mm(p,C,N,Y,X){var fe="",We=!1,At=p.doc.lineSeparator(),bt=!1;function fi(){We&&(fe+=At,bt&&(fe+=At),We=bt=!1)}function bi(Pi){Pi&&(fi(),fe+=Pi)}function Hi(Pi){if(1==Pi.nodeType){var dn=Pi.getAttribute("cm-text");if(dn)return void bi(dn);var Rn,Tn=Pi.getAttribute("cm-marker");if(Tn){var er=p.findMarks(Ai(Y,0),Ai(X+1,0),function Yt(Pi){return function(dn){return dn.id==Pi}}(+Tn));return void(er.length&&(Rn=er[0].find(0))&&bi(Wn(p.doc,Rn.from,Rn.to).join(At)))}if("false"==Pi.getAttribute("contenteditable"))return;var Ar=/^(pre|div|p|li|table|br)$/i.test(Pi.nodeName);if(!/^br$/i.test(Pi.nodeName)&&0==Pi.textContent.length)return;Ar&&fi();for(var Xn=0;Xn1&&Hi.length>1;)if(_t(bi)==_t(Hi))bi.pop(),Hi.pop(),Yt--;else{if(bi[0]!=Hi[0])break;bi.shift(),Hi.shift(),We++}for(var Pi=0,dn=0,Tn=bi[0],Rn=Hi[0],er=Math.min(Tn.length,Rn.length);PiY.ch&&Ar.charCodeAt(Ar.length-dn-1)==Xn.charCodeAt(Xn.length-dn-1);)Pi--,dn++;bi[bi.length-1]=Ar.slice(0,Ar.length-dn).replace(/^\u200b+/,""),bi[0]=bi[0].slice(Pi).replace(/\u200b+$/,"");var Lr=Ai(We,Pi),Rr=Ai(Yt,Hi.length?_t(Hi).length-dn:0);return bi.length>1||bi[0]||Vt(Lr,Rr)?(ac(p.doc,bi,Lr,Rr,"+input"),!0):void 0},rs.prototype.ensurePolled=function(){this.forceCompositionEnd()},rs.prototype.reset=function(){this.forceCompositionEnd()},rs.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},rs.prototype.readFromDOMSoon=function(){var p=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(p.readDOMTimeout=null,p.composing){if(!p.composing.done)return;p.composing=null}p.updateFromDOM()},80))},rs.prototype.updateFromDOM=function(){var p=this;(this.cm.isReadOnly()||!this.pollContent())&&Jl(this.cm,function(){return Lt(p.cm)})},rs.prototype.setUneditable=function(p){p.contentEditable="false"},rs.prototype.onKeyPress=function(p){0==p.charCode||this.composing||(p.preventDefault(),this.cm.isReadOnly()||Ys(this.cm,Xp)(this.cm,String.fromCharCode(null==p.charCode?p.keyCode:p.charCode),0))},rs.prototype.readOnlyChanged=function(p){this.div.contentEditable=String("nocursor"!=p)},rs.prototype.onContextMenu=function(){},rs.prototype.resetPosition=function(){},rs.prototype.needsContentAttribute=!0;var ja=function(p){this.cm=p,this.prevInput="",this.pollingFast=!1,this.polling=new Ee,this.hasSelection=!1,this.composing=null,this.resetting=!1};ja.prototype.init=function(p){var C=this,N=this,Y=this.cm;this.createField(p);var X=this.textarea;function fe(We){if(!Se(Y,We)){if(Y.somethingSelected())Gd({lineWise:!1,text:Y.getSelections()});else{if(!Y.options.lineWiseCopyCut)return;var At=ys(Y);Gd({lineWise:!0,text:At.text}),"cut"==We.type?Y.setSelections(At.ranges,null,St):(N.prevInput="",X.value=At.text.join("\n"),me(X))}"cut"==We.type&&(Y.state.cutIncoming=+new Date)}}p.wrapper.insertBefore(this.wrapper,p.wrapper.firstChild),k&&(X.style.width="0px"),Qi(X,"input",function(){l&&v>=9&&C.hasSelection&&(C.hasSelection=null),N.poll()}),Qi(X,"paste",function(We){Se(Y,We)||_A(We,Y)||(Y.state.pasteIncoming=+new Date,N.fastPoll())}),Qi(X,"cut",fe),Qi(X,"copy",fe),Qi(p.scroller,"paste",function(We){if(!Dc(p,We)&&!Se(Y,We)){if(!X.dispatchEvent)return Y.state.pasteIncoming=+new Date,void N.focus();var At=new Event("paste");At.clipboardData=We.clipboardData,X.dispatchEvent(At)}}),Qi(p.lineSpace,"selectstart",function(We){Dc(p,We)||Kt(We)}),Qi(X,"compositionstart",function(){var We=Y.getCursor("from");N.composing&&N.composing.range.clear(),N.composing={start:We,range:Y.markText(We,Y.getCursor("to"),{className:"CodeMirror-composing"})}}),Qi(X,"compositionend",function(){N.composing&&(N.poll(),N.composing.range.clear(),N.composing=null)})},ja.prototype.createField=function(p){this.wrapper=$p(),this.textarea=this.wrapper.firstChild;var C=this.cm.options;vA(this.textarea,C.spellcheck,C.autocorrect,C.autocapitalize)},ja.prototype.screenReaderLabelChanged=function(p){p?this.textarea.setAttribute("aria-label",p):this.textarea.removeAttribute("aria-label")},ja.prototype.prepareSelection=function(){var p=this.cm,C=p.display,N=p.doc,Y=Vo(p);if(p.options.moveInputWithCursor){var X=Ho(p,N.sel.primary().head,"div"),fe=C.wrapper.getBoundingClientRect(),We=C.lineDiv.getBoundingClientRect();Y.teTop=Math.max(0,Math.min(C.wrapper.clientHeight-10,X.top+We.top-fe.top)),Y.teLeft=Math.max(0,Math.min(C.wrapper.clientWidth-10,X.left+We.left-fe.left))}return Y},ja.prototype.showSelection=function(p){var N=this.cm.display;te(N.cursorDiv,p.cursors),te(N.selectionDiv,p.selection),null!=p.teTop&&(this.wrapper.style.top=p.teTop+"px",this.wrapper.style.left=p.teLeft+"px")},ja.prototype.reset=function(p){if(!(this.contextMenuPending||this.composing&&p)){var C=this.cm;if(this.resetting=!0,C.somethingSelected()){this.prevInput="";var N=C.getSelection();this.textarea.value=N,C.state.focused&&me(this.textarea),l&&v>=9&&(this.hasSelection=N)}else p||(this.prevInput=this.textarea.value="",l&&v>=9&&(this.hasSelection=null));this.resetting=!1}},ja.prototype.getField=function(){return this.textarea},ja.prototype.supportsTouch=function(){return!1},ja.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!I||he(Ae(this.textarea))!=this.textarea))try{this.textarea.focus()}catch{}},ja.prototype.blur=function(){this.textarea.blur()},ja.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ja.prototype.receivedFocus=function(){this.slowPoll()},ja.prototype.slowPoll=function(){var p=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){p.poll(),p.cm.state.focused&&p.slowPoll()})},ja.prototype.fastPoll=function(){var p=!1,C=this;C.pollingFast=!0,C.polling.set(20,function N(){C.poll()||p?(C.pollingFast=!1,C.slowPoll()):(p=!0,C.polling.set(60,N))})},ja.prototype.poll=function(){var p=this,C=this.cm,N=this.textarea,Y=this.prevInput;if(this.contextMenuPending||this.resetting||!C.state.focused||or(N)&&!Y&&!this.composing||C.isReadOnly()||C.options.disableInput||C.state.keySeq)return!1;var X=N.value;if(X==Y&&!C.somethingSelected())return!1;if(l&&v>=9&&this.hasSelection===X||d&&/[\uf700-\uf7ff]/.test(X))return C.display.input.reset(),!1;if(C.doc.sel==C.display.selForContextMenu){var fe=X.charCodeAt(0);if(8203==fe&&!Y&&(Y="\u200b"),8666==fe)return this.reset(),this.cm.execCommand("undo")}for(var We=0,At=Math.min(Y.length,X.length);We1e3||X.indexOf("\n")>-1?N.value=p.prevInput="":p.prevInput=X,p.composing&&(p.composing.range.clear(),p.composing.range=C.markText(p.composing.start,C.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},ja.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ja.prototype.onKeyPress=function(){l&&v>=9&&(this.hasSelection=null),this.fastPoll()},ja.prototype.onContextMenu=function(p){var C=this,N=C.cm,Y=N.display,X=C.textarea;C.contextMenuPending&&C.contextMenuPending();var fe=jt(N,p),We=Y.scroller.scrollTop;if(fe&&!y){N.options.resetSelectionOnContextMenu&&-1==N.doc.sel.contains(fe)&&Ys(N,Ba)(N.doc,jA(fe),St);var bi,bt=X.style.cssText,Yt=C.wrapper.style.cssText,fi=C.wrapper.offsetParent.getBoundingClientRect();if(C.wrapper.style.cssText="position: static",X.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(p.clientY-fi.top-5)+"px; left: "+(p.clientX-fi.left-5)+"px;\n z-index: 1000; background: "+(l?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",h&&(bi=X.ownerDocument.defaultView.scrollY),Y.input.focus(),h&&X.ownerDocument.defaultView.scrollTo(null,bi),Y.input.reset(),N.somethingSelected()||(X.value=C.prevInput=" "),C.contextMenuPending=Pi,Y.selForContextMenu=N.doc.sel,clearTimeout(Y.detectingSelectAll),l&&v>=9&&Hi(),Z){_i(p);var dn=function(){dt(window,"mouseup",dn),setTimeout(Pi,20)};Qi(window,"mouseup",dn)}else setTimeout(Pi,50)}function Hi(){if(null!=X.selectionStart){var Tn=N.somethingSelected(),Rn="\u200b"+(Tn?X.value:"");X.value="\u21da",X.value=Rn,C.prevInput=Tn?"":"\u200b",X.selectionStart=1,X.selectionEnd=Rn.length,Y.selForContextMenu=N.doc.sel}}function Pi(){if(C.contextMenuPending==Pi&&(C.contextMenuPending=!1,C.wrapper.style.cssText=Yt,X.style.cssText=bt,l&&v<9&&Y.scrollbars.setScrollTop(Y.scroller.scrollTop=We),null!=X.selectionStart)){(!l||l&&v<9)&&Hi();var Tn=0,Rn=function(){Y.selForContextMenu==N.doc.sel&&0==X.selectionStart&&X.selectionEnd>0&&"\u200b"==C.prevInput?Ys(N,Pu)(N):Tn++<10?Y.detectingSelectAll=setTimeout(Rn,500):(Y.selForContextMenu=null,Y.input.reset())};Y.detectingSelectAll=setTimeout(Rn,200)}}},ja.prototype.readOnlyChanged=function(p){p||this.reset(),this.textarea.disabled="nocursor"==p,this.textarea.readOnly=!!p},ja.prototype.setUneditable=function(){},ja.prototype.needsContentAttribute=!1,function Fr(p){var C=p.optionHandlers;function N(Y,X,fe,We){p.defaults[Y]=X,fe&&(C[Y]=We?function(At,bt,Yt){Yt!=pu&&fe(At,bt,Yt)}:fe)}p.defineOption=N,p.Init=pu,N("value","",function(Y,X){return Y.setValue(X)},!0),N("mode",null,function(Y,X){Y.doc.modeOption=X,Xc(Y)},!0),N("indentUnit",2,Xc,!0),N("indentWithTabs",!1),N("smartIndent",!0),N("tabSize",4,function(Y){Iu(Y),kc(Y),Lt(Y)},!0),N("lineSeparator",null,function(Y,X){if(Y.doc.lineSep=X,X){var fe=[],We=Y.doc.first;Y.doc.iter(function(bt){for(var Yt=0;;){var fi=bt.text.indexOf(X,Yt);if(-1==fi)break;Yt=fi+X.length,fe.push(Ai(We,fi))}We++});for(var At=fe.length-1;At>=0;At--)ac(Y.doc,X,fe[At],Ai(fe[At].line,fe[At].ch+X.length))}}),N("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(Y,X,fe){Y.state.specialChars=new RegExp(X.source+(X.test("\t")?"":"|\t"),"g"),fe!=pu&&Y.refresh()}),N("specialCharPlaceholder",ko,function(Y){return Y.refresh()},!0),N("electricChars",!0),N("inputStyle",I?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),N("spellcheck",!1,function(Y,X){return Y.getInputField().spellcheck=X},!0),N("autocorrect",!1,function(Y,X){return Y.getInputField().autocorrect=X},!0),N("autocapitalize",!1,function(Y,X){return Y.getInputField().autocapitalize=X},!0),N("rtlMoveVisually",!R),N("wholeLineUpdateBefore",!0),N("theme","default",function(Y){wd(Y),Pc(Y)},!0),N("keyMap","default",function(Y,X,fe){var We=md(X),At=fe!=pu&&md(fe);At&&At.detach&&At.detach(Y,We),We.attach&&We.attach(Y,At||null)}),N("extraKeys",null),N("configureMouse",null),N("lineWrapping",!1,i_,!0),N("gutters",[],function(Y,X){Y.display.gutterSpecs=dh(X,Y.options.lineNumbers),Pc(Y)},!0),N("fixedGutter",!0,function(Y,X){Y.display.gutters.style.left=X?SA(Y.display)+"px":"0",Y.refresh()},!0),N("coverGutterNextToScrollbar",!1,function(Y){return ns(Y)},!0),N("scrollbarStyle","native",function(Y){Vr(Y),ns(Y),Y.display.scrollbars.setScrollTop(Y.doc.scrollTop),Y.display.scrollbars.setScrollLeft(Y.doc.scrollLeft)},!0),N("lineNumbers",!1,function(Y,X){Y.display.gutterSpecs=dh(Y.options.gutters,X),Pc(Y)},!0),N("firstLineNumber",1,Pc,!0),N("lineNumberFormatter",function(Y){return Y},Pc,!0),N("showCursorWhenSelecting",!1,ua,!0),N("resetSelectionOnContextMenu",!0),N("lineWiseCopyCut",!0),N("pasteLinesPerSelection",!0),N("selectionsMayTouch",!1),N("readOnly",!1,function(Y,X){"nocursor"==X&&(xs(Y),Y.display.input.blur()),Y.display.input.readOnlyChanged(X)}),N("screenReaderLabel",null,function(Y,X){Y.display.input.screenReaderLabelChanged(X=""===X?null:X)}),N("disableInput",!1,function(Y,X){X||Y.display.input.reset()},!0),N("dragDrop",!0,Ay),N("allowDropFileTypes",null),N("cursorBlinkRate",530),N("cursorScrollMargin",0),N("cursorHeight",1,ua,!0),N("singleCursorHeightPerLine",!0,ua,!0),N("workTime",100),N("workDelay",100),N("flattenSpans",!0,Iu,!0),N("addModeClass",!1,Iu,!0),N("pollInterval",100),N("undoDepth",200,function(Y,X){return Y.doc.history.undoDepth=X}),N("historyEventDelay",1250),N("viewportMargin",10,function(Y){return Y.refresh()},!0),N("maxHighlightLength",1e4,Iu,!0),N("moveInputWithCursor",!0,function(Y,X){X||Y.display.input.resetPosition()}),N("tabindex",null,function(Y,X){return Y.display.input.getField().tabIndex=X||""}),N("autofocus",null),N("direction","ltr",function(Y,X){return Y.doc.setDirection(X)},!0),N("phrases",null)}(Ms),function dy(p){var C=p.optionHandlers,N=p.helpers={};p.prototype={constructor:p,focus:function(){ve(this).focus(),this.display.input.focus()},setOption:function(Y,X){var fe=this.options,We=fe[Y];fe[Y]==X&&"mode"!=Y||(fe[Y]=X,C.hasOwnProperty(Y)&&Ys(this,C[Y])(this,X,We),ge(this,"optionChange",this,Y))},getOption:function(Y){return this.options[Y]},getDoc:function(){return this.doc},addKeyMap:function(Y,X){this.state.keyMaps[X?"push":"unshift"](md(Y))},removeKeyMap:function(Y){for(var X=this.state.keyMaps,fe=0;fefe&&(ll(this,At.head.line,Y,!0),fe=At.head.line,We==this.doc.sel.primIndex&&Ue(this));else{var bt=At.from(),Yt=At.to(),fi=Math.max(fe,bt.line);fe=Math.min(this.lastLine(),Yt.line-(Yt.ch?0:1))+1;for(var bi=fi;bi0&&pd(this.doc,We,new En(bt,Hi[We].to()),St)}}}),getTokenAt:function(Y,X){return $i(this,Y,X)},getLineTokens:function(Y,X){return $i(this,Ai(Y),X,!0)},getTokenTypeAt:function(Y){Y=xt(this.doc,Y);var bt,X=hn(this,Fn(this.doc,Y.line)),fe=0,We=(X.length-1)/2,At=Y.ch;if(0==At)bt=X[2];else for(;;){var Yt=fe+We>>1;if((Yt?X[2*Yt-1]:0)>=At)We=Yt;else{if(!(X[2*Yt+1]bt&&(Y=bt,We=!0),At=Fn(this.doc,Y)}else At=Y;return fc(this,At,{top:0,left:0},X||"page",fe||We).top+(We?this.doc.height-Un(At):0)},defaultTextHeight:function(){return Qc(this.display)},defaultCharWidth:function(){return Kc(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(Y,X,fe,We,At){var bt=this.display,Yt=(Y=Ho(this,xt(this.doc,Y))).bottom,fi=Y.left;if(X.style.position="absolute",X.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(X),bt.sizer.appendChild(X),"over"==We)Yt=Y.top;else if("above"==We||"near"==We){var bi=Math.max(bt.wrapper.clientHeight,this.doc.height),Hi=Math.max(bt.sizer.clientWidth,bt.lineSpace.clientWidth);("above"==We||Y.bottom+X.offsetHeight>bi)&&Y.top>X.offsetHeight?Yt=Y.top-X.offsetHeight:Y.bottom+X.offsetHeight<=bi&&(Yt=Y.bottom),fi+X.offsetWidth>Hi&&(fi=Hi-X.offsetWidth)}X.style.top=Yt+"px",X.style.left=X.style.right="","right"==At?(fi=bt.sizer.clientWidth-X.offsetWidth,X.style.right="0px"):("left"==At?fi=0:"middle"==At&&(fi=(bt.sizer.clientWidth-X.offsetWidth)/2),X.style.left=fi+"px"),fe&&function w(p,C){var N=U(p,C);null!=N.scrollTop&&cn(p,N.scrollTop),null!=N.scrollLeft&&rr(p,N.scrollLeft)}(this,{left:fi,top:Yt,right:fi+X.offsetWidth,bottom:Yt+X.offsetHeight})},triggerOnKeyDown:al(_h),triggerOnKeyPress:al(vh),triggerOnKeyUp:Wp,triggerOnMouseDown:al(Kg),execCommand:function(Y){if(WA.hasOwnProperty(Y))return WA[Y].call(null,this)},triggerElectric:al(function(Y){Em(this,Y)}),findPosH:function(Y,X,fe,We){var At=1;X<0&&(At=-1,X=-X);for(var bt=xt(this.doc,Y),Yt=0;Yt0&&fi(fe.charAt(We-1));)--We;for(;At.5||this.options.lineWrapping)&&Re(this),ge(this,"refresh",this)}),swapDoc:al(function(Y){var X=this.doc;return X.cm=null,this.state.selectingText&&this.state.selectingText(),No(this,Y),kc(this),this.display.input.reset(),Ct(this,Y.scrollLeft,Y.scrollTop),this.curOp.forceScroll=!0,Bo(this,"swapDoc",this,X),X}),phrase:function(Y){var X=this.options.phrases;return X&&Object.prototype.hasOwnProperty.call(X,Y)?X[Y]:Y},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},rt(p),p.registerHelper=function(Y,X,fe){N.hasOwnProperty(Y)||(N[Y]=p[Y]={_global:[]}),N[Y][X]=fe},p.registerGlobalHelper=function(Y,X,fe,We){p.registerHelper(Y,X,We),N[Y]._global.push({pred:fe,val:We})}}(Ms);var nf="iter insert remove copy getEditor constructor".split(" ");for(var KA in Oc.prototype)Oc.prototype.hasOwnProperty(KA)&&Fe(nf,KA)<0&&(Ms.prototype[KA]=function(p){return function(){return p.apply(this.doc,arguments)}}(Oc.prototype[KA]));return rt(Oc),Ms.inputStyles={textarea:ja,contenteditable:rs},Ms.defineMode=function(p){!Ms.defaults.mode&&"null"!=p&&(Ms.defaults.mode=p),xi.apply(this,arguments)},Ms.defineMIME=function sn(p,C){di[p]=C},Ms.defineMode("null",function(){return{token:function(p){return p.skipToEnd()}}}),Ms.defineMIME("text/plain","null"),Ms.defineExtension=function(p,C){Ms.prototype[p]=C},Ms.defineDocExtension=function(p,C){Oc.prototype[p]=C},Ms.fromTextArea=function tf(p,C){if((C=C?Oe(C):{}).value=p.value,!C.tabindex&&p.tabIndex&&(C.tabindex=p.tabIndex),!C.placeholder&&p.placeholder&&(C.placeholder=p.placeholder),null==C.autofocus){var N=he(Ae(p));C.autofocus=N==p||null!=p.getAttribute("autofocus")&&N==document.body}function Y(){p.value=At.getValue()}var X;if(p.form&&(Qi(p.form,"submit",Y),!C.leaveSubmitMethodAlone)){var fe=p.form;X=fe.submit;try{var We=fe.submit=function(){Y(),fe.submit=X,fe.submit(),fe.submit=We}}catch{}}C.finishInit=function(bt){bt.save=Y,bt.getTextArea=function(){return p},bt.toTextArea=function(){bt.toTextArea=isNaN,Y(),p.parentNode.removeChild(bt.getWrapperElement()),p.style.display="",p.form&&(dt(p.form,"submit",Y),!C.leaveSubmitMethodAlone&&"function"==typeof p.form.submit&&(p.form.submit=X))}},p.style.display="none";var At=Ms(function(bt){return p.parentNode.insertBefore(bt,p.nextSibling)},C);return At},function tg(p){p.off=dt,p.on=Qi,p.wheelEventPixels=Vh,p.Doc=Oc,p.splitLines=Ji,p.countColumn=ae,p.findColumn=be,p.isWordChar=Dt,p.Pass=mt,p.signal=ge,p.Line=Er,p.changeEnd=uA,p.scrollbarModel=Ll,p.Pos=Ai,p.cmpPos=Vt,p.modes=ui,p.mimeModes=di,p.resolveMode=ji,p.getMode=Qn,p.modeExtensions=wn,p.extendMode=gr,p.copyState=xn,p.startState=Xo,p.innerMode=Hr,p.commands=WA,p.keyMap=fA,p.keyName=Vg,p.isModifierKey=Ml,p.lookupKey=Xh,p.normalizeKeyMap=$0,p.StringStream=qr,p.SharedTextMarker=Fo,p.TextMarker=sr,p.LineWidget=Et,p.e_preventDefault=Kt,p.e_stopPropagation=on,p.e_stop=_i,p.addClass=oe,p.contains=re,p.rmClass=G,p.keyNames=iA}(Ms),Ms.version="5.65.20",Ms}()},1305:(ni,Pt,ce)=>{!function(V){"use strict";function K(G){for(var W={},te=0;te*\/]/.test(Dt)?mt(null,"select-op"):"."==Dt&&Xe.match(/^-?[_a-z][_a-z0-9-]*/i)?mt("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(Dt)?mt(null,Dt):Xe.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(Xe.current())&&(It.tokenize=He),mt("variable callee","variable")):/[\w\\\-]/.test(Dt)?(Xe.eatWhile(/[\w\\\-]/),mt("property","word")):mt(null,null):/[\d.]/.test(Xe.peek())?(Xe.eatWhile(/[\w.%]/),mt("number","unit")):Xe.match(/^-[\w\\\-]*/)?(Xe.eatWhile(/[\w\\\-]/),Xe.match(/^\s*:/,!1)?mt("variable-2","variable-definition"):mt("variable-2","variable")):Xe.match(/^\w+-/)?mt("meta","meta"):void 0}function oi(Xe){return function(It,Dt){for(var Qt,vt=!1;null!=(Qt=It.next());){if(Qt==Xe&&!vt){")"==Xe&&It.backUp(1);break}vt=!vt&&"\\"==Qt}return(Qt==Xe||!vt&&")"!=Xe)&&(Dt.tokenize=null),mt("string","string")}}function He(Xe,It){return Xe.next(),It.tokenize=Xe.match(/^\s*[\"\')]/,!1)?null:oi(")"),mt(null,"(")}function be(Xe,It,Dt){this.type=Xe,this.indent=It,this.prev=Dt}function je(Xe,It,Dt,vt){return Xe.context=new be(Dt,It.indentation()+(!1===vt?0:P),Xe.context),Dt}function Ke(Xe){return Xe.context.prev&&(Xe.context=Xe.context.prev),Xe.context.type}function _t(Xe,It,Dt){return et[Dt.context.type](Xe,It,Dt)}function Nt(Xe,It,Dt,vt){for(var Qt=vt||1;Qt>0;Qt--)Dt.context=Dt.context.prev;return _t(Xe,It,Dt)}function ut(Xe){var It=Xe.current().toLowerCase();Ve=ve.hasOwnProperty(It)?"atom":Ae.hasOwnProperty(It)?"keyword":"variable"}var et={top:function(Xe,It,Dt){if("{"==Xe)return je(Dt,It,"block");if("}"==Xe&&Dt.context.prev)return Ke(Dt);if(ae&&/@component/i.test(Xe))return je(Dt,It,"atComponentBlock");if(/^@(-moz-)?document$/i.test(Xe))return je(Dt,It,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(Xe))return je(Dt,It,"atBlock");if(/^@(font-face|counter-style)/i.test(Xe))return Dt.stateArg=Xe,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(Xe))return"keyframes";if(Xe&&"@"==Xe.charAt(0))return je(Dt,It,"at");if("hash"==Xe)Ve="builtin";else if("word"==Xe)Ve="tag";else{if("variable-definition"==Xe)return"maybeprop";if("interpolation"==Xe)return je(Dt,It,"interpolation");if(":"==Xe)return"pseudo";if(ye&&"("==Xe)return je(Dt,It,"parens")}return Dt.context.type},block:function(Xe,It,Dt){if("word"==Xe){var vt=It.current().toLowerCase();return Ce.hasOwnProperty(vt)?(Ve="property","maybeprop"):me.hasOwnProperty(vt)?(Ve=Ee?"string-2":"property","maybeprop"):ye?(Ve=It.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(Ve+=" error","maybeprop")}return"meta"==Xe?"block":ye||"hash"!=Xe&&"qualifier"!=Xe?et.top(Xe,It,Dt):(Ve="error","block")},maybeprop:function(Xe,It,Dt){return":"==Xe?je(Dt,It,"prop"):_t(Xe,It,Dt)},prop:function(Xe,It,Dt){if(";"==Xe)return Ke(Dt);if("{"==Xe&&ye)return je(Dt,It,"propBlock");if("}"==Xe||"{"==Xe)return Nt(Xe,It,Dt);if("("==Xe)return je(Dt,It,"parens");if("hash"!=Xe||/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(It.current())){if("word"==Xe)ut(It);else if("interpolation"==Xe)return je(Dt,It,"interpolation")}else Ve+=" error";return"prop"},propBlock:function(Xe,It,Dt){return"}"==Xe?Ke(Dt):"word"==Xe?(Ve="property","maybeprop"):Dt.context.type},parens:function(Xe,It,Dt){return"{"==Xe||"}"==Xe?Nt(Xe,It,Dt):")"==Xe?Ke(Dt):"("==Xe?je(Dt,It,"parens"):"interpolation"==Xe?je(Dt,It,"interpolation"):("word"==Xe&&ut(It),"parens")},pseudo:function(Xe,It,Dt){return"meta"==Xe?"pseudo":"word"==Xe?(Ve="variable-3",Dt.context.type):_t(Xe,It,Dt)},documentTypes:function(Xe,It,Dt){return"word"==Xe&&j.hasOwnProperty(It.current())?(Ve="tag",Dt.context.type):et.atBlock(Xe,It,Dt)},atBlock:function(Xe,It,Dt){if("("==Xe)return je(Dt,It,"atBlock_parens");if("}"==Xe||";"==Xe)return Nt(Xe,It,Dt);if("{"==Xe)return Ke(Dt)&&je(Dt,It,ye?"block":"top");if("interpolation"==Xe)return je(Dt,It,"interpolation");if("word"==Xe){var vt=It.current().toLowerCase();Ve="only"==vt||"not"==vt||"and"==vt||"or"==vt?"keyword":re.hasOwnProperty(vt)?"attribute":he.hasOwnProperty(vt)?"property":oe.hasOwnProperty(vt)?"keyword":Ce.hasOwnProperty(vt)?"property":me.hasOwnProperty(vt)?Ee?"string-2":"property":ve.hasOwnProperty(vt)?"atom":Ae.hasOwnProperty(vt)?"keyword":"error"}return Dt.context.type},atComponentBlock:function(Xe,It,Dt){return"}"==Xe?Nt(Xe,It,Dt):"{"==Xe?Ke(Dt)&&je(Dt,It,ye?"block":"top",!1):("word"==Xe&&(Ve="error"),Dt.context.type)},atBlock_parens:function(Xe,It,Dt){return")"==Xe?Ke(Dt):"{"==Xe||"}"==Xe?Nt(Xe,It,Dt,2):et.atBlock(Xe,It,Dt)},restricted_atBlock_before:function(Xe,It,Dt){return"{"==Xe?je(Dt,It,"restricted_atBlock"):"word"==Xe&&"@counter-style"==Dt.stateArg?(Ve="variable","restricted_atBlock_before"):_t(Xe,It,Dt)},restricted_atBlock:function(Xe,It,Dt){return"}"==Xe?(Dt.stateArg=null,Ke(Dt)):"word"==Xe?(Ve="@font-face"==Dt.stateArg&&!ze.hasOwnProperty(It.current().toLowerCase())||"@counter-style"==Dt.stateArg&&!_e.hasOwnProperty(It.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(Xe,It,Dt){return"word"==Xe?(Ve="variable","keyframes"):"{"==Xe?je(Dt,It,"top"):_t(Xe,It,Dt)},at:function(Xe,It,Dt){return";"==Xe?Ke(Dt):"{"==Xe||"}"==Xe?Nt(Xe,It,Dt):("word"==Xe?Ve="tag":"hash"==Xe&&(Ve="builtin"),"at")},interpolation:function(Xe,It,Dt){return"}"==Xe?Ke(Dt):"{"==Xe||";"==Xe?Nt(Xe,It,Dt):("word"==Xe?Ve="variable":"variable"!=Xe&&"("!=Xe&&")"!=Xe&&(Ve="error"),"interpolation")}};return{startState:function(Xe){return{tokenize:null,state:te?"block":"top",stateArg:null,context:new be(te?"block":"top",Xe||0,null)}},token:function(Xe,It){if(!It.tokenize&&Xe.eatSpace())return null;var Dt=(It.tokenize||St)(Xe,It);return Dt&&"object"==typeof Dt&&(Fe=Dt[1],Dt=Dt[0]),Ve=Dt,"comment"!=Fe&&(It.state=et[It.state](Fe,Xe,It)),Ve},indent:function(Xe,It){var Dt=Xe.context,vt=It&&It.charAt(0),Qt=Dt.indent;return"prop"==Dt.type&&("}"==vt||")"==vt)&&(Dt=Dt.prev),Dt.prev&&("}"!=vt||"block"!=Dt.type&&"top"!=Dt.type&&"interpolation"!=Dt.type&&"restricted_atBlock"!=Dt.type?(")"==vt&&("parens"==Dt.type||"atBlock_parens"==Dt.type)||"{"==vt&&("at"==Dt.type||"atBlock"==Dt.type))&&(Qt=Math.max(0,Dt.indent-P)):Qt=(Dt=Dt.prev).indent),Qt},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:W.lineComment,fold:"brace"}});var T=["domain","regexp","url","url-prefix"],e=K(T),l=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],v=K(l),h=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme","dynamic-range","video-dynamic-range"],f=K(h),_=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light","standard","high"],b=K(_),y=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],M=K(y),D=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],x=K(D),Q=K(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),d=K(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),S=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],R=K(S),z=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],q=K(z),Z=T.concat(l).concat(h).concat(_).concat(y).concat(D).concat(S).concat(z);function H(G,W){for(var P,te=!1;null!=(P=G.next());){if(te&&"/"==P){W.tokenize=null;break}te="*"==P}return["comment","comment"]}V.registerHelper("hintWords","css",Z),V.defineMIME("text/css",{documentTypes:e,mediaTypes:v,mediaFeatures:f,mediaValueKeywords:b,propertyKeywords:M,nonStandardPropertyKeywords:x,fontProperties:Q,counterDescriptors:d,colorKeywords:R,valueKeywords:q,tokenHooks:{"/":function(G,W){return!!G.eat("*")&&(W.tokenize=H,H(G,W))}},name:"css"}),V.defineMIME("text/x-scss",{mediaTypes:v,mediaFeatures:f,mediaValueKeywords:b,propertyKeywords:M,nonStandardPropertyKeywords:x,colorKeywords:R,valueKeywords:q,fontProperties:Q,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(G,W){return G.eat("/")?(G.skipToEnd(),["comment","comment"]):G.eat("*")?(W.tokenize=H,H(G,W)):["operator","operator"]},":":function(G){return!!G.match(/^\s*\{/,!1)&&[null,null]},$:function(G){return G.match(/^[\w-]+/),G.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(G){return!!G.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),V.defineMIME("text/x-less",{mediaTypes:v,mediaFeatures:f,mediaValueKeywords:b,propertyKeywords:M,nonStandardPropertyKeywords:x,colorKeywords:R,valueKeywords:q,fontProperties:Q,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(G,W){return G.eat("/")?(G.skipToEnd(),["comment","comment"]):G.eat("*")?(W.tokenize=H,H(G,W)):["operator","operator"]},"@":function(G){return G.eat("{")?[null,"interpolation"]:!G.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(G.eatWhile(/[\w\\\-]/),G.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),V.defineMIME("text/x-gss",{documentTypes:e,mediaTypes:v,mediaFeatures:f,propertyKeywords:M,nonStandardPropertyKeywords:x,fontProperties:Q,counterDescriptors:d,colorKeywords:R,valueKeywords:q,supportsAtComponent:!0,tokenHooks:{"/":function(G,W){return!!G.eat("*")&&(W.tokenize=H,H(G,W))}},name:"css",helperType:"gss"})}(ce(656))},9460:(ni,Pt,ce)=>{!function(V){"use strict";V.defineMode("javascript",function(K,T){var k,Q,e=K.indentUnit,l=T.statementIndent,v=T.jsonld,h=T.json||v,f=!1!==T.trackScope,_=T.typescript,b=T.wordCharacters||/[\w$\xa1-\uffff]/,y=function(){function Jt(Me){return{type:Me,style:"keyword"}}var ci=Jt("keyword a"),Ai=Jt("keyword b"),Vt=Jt("keyword c"),Le=Jt("keyword d"),Pe=Jt("operator"),ue={type:"atom",style:"atom"};return{if:Jt("if"),while:ci,with:ci,else:Ai,do:Ai,try:Ai,finally:Ai,return:Le,break:Le,continue:Le,new:Jt("new"),delete:Vt,void:Vt,throw:Vt,debugger:Jt("debugger"),var:Jt("var"),const:Jt("var"),let:Jt("var"),function:Jt("function"),catch:Jt("catch"),for:Jt("for"),switch:Jt("switch"),case:Jt("case"),default:Jt("default"),in:Pe,typeof:Pe,instanceof:Pe,true:ue,false:ue,null:ue,undefined:ue,NaN:ue,Infinity:ue,this:Jt("this"),class:Jt("class"),super:Jt("atom"),yield:Vt,export:Jt("export"),import:Jt("import"),extends:Vt,await:Vt}}(),M=/[+\-*&%=<>!?|~^@]/,D=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function I(Jt,ci,Ai){return k=Jt,Q=Ai,ci}function d(Jt,ci){var Ai=Jt.next();if('"'==Ai||"'"==Ai)return ci.tokenize=function S(Jt){return function(ci,Ai){var Le,Vt=!1;if(v&&"@"==ci.peek()&&ci.match(D))return Ai.tokenize=d,I("jsonld-keyword","meta");for(;null!=(Le=ci.next())&&(Le!=Jt||Vt);)Vt=!Vt&&"\\"==Le;return Vt||(Ai.tokenize=d),I("string","string")}}(Ai),ci.tokenize(Jt,ci);if("."==Ai&&Jt.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return I("number","number");if("."==Ai&&Jt.match(".."))return I("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(Ai))return I(Ai);if("="==Ai&&Jt.eat(">"))return I("=>","operator");if("0"==Ai&&Jt.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return I("number","number");if(/\d/.test(Ai))return Jt.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),I("number","number");if("/"==Ai)return Jt.eat("*")?(ci.tokenize=R,R(Jt,ci)):Jt.eat("/")?(Jt.skipToEnd(),I("comment","comment")):wo(Jt,ci,1)?(function x(Jt){for(var Ai,ci=!1,Vt=!1;null!=(Ai=Jt.next());){if(!ci){if("/"==Ai&&!Vt)return;"["==Ai?Vt=!0:Vt&&"]"==Ai&&(Vt=!1)}ci=!ci&&"\\"==Ai}}(Jt),Jt.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),I("regexp","string-2")):(Jt.eat("="),I("operator","operator",Jt.current()));if("`"==Ai)return ci.tokenize=z,z(Jt,ci);if("#"==Ai&&"!"==Jt.peek())return Jt.skipToEnd(),I("meta","meta");if("#"==Ai&&Jt.eatWhile(b))return I("variable","property");if("<"==Ai&&Jt.match("!--")||"-"==Ai&&Jt.match("->")&&!/\S/.test(Jt.string.slice(0,Jt.start)))return Jt.skipToEnd(),I("comment","comment");if(M.test(Ai))return(">"!=Ai||!ci.lexical||">"!=ci.lexical.type)&&(Jt.eat("=")?("!"==Ai||"="==Ai)&&Jt.eat("="):/[<>*+\-|&?]/.test(Ai)&&(Jt.eat(Ai),">"==Ai&&Jt.eat(Ai))),"?"==Ai&&Jt.eat(".")?I("."):I("operator","operator",Jt.current());if(b.test(Ai)){Jt.eatWhile(b);var Vt=Jt.current();if("."!=ci.lastType){if(y.propertyIsEnumerable(Vt)){var Le=y[Vt];return I(Le.type,Le.style,Vt)}if("async"==Vt&&Jt.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return I("async","keyword",Vt)}return I("variable","variable",Vt)}}function R(Jt,ci){for(var Vt,Ai=!1;Vt=Jt.next();){if("/"==Vt&&Ai){ci.tokenize=d;break}Ai="*"==Vt}return I("comment","comment")}function z(Jt,ci){for(var Vt,Ai=!1;null!=(Vt=Jt.next());){if(!Ai&&("`"==Vt||"$"==Vt&&Jt.eat("{"))){ci.tokenize=d;break}Ai=!Ai&&"\\"==Vt}return I("quasi","string-2",Jt.current())}var q="([{}])";function Z(Jt,ci){ci.fatArrowAt&&(ci.fatArrowAt=null);var Ai=Jt.string.indexOf("=>",Jt.start);if(!(Ai<0)){if(_){var Vt=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(Jt.string.slice(Jt.start,Ai));Vt&&(Ai=Vt.index)}for(var Le=0,Pe=!1,ue=Ai-1;ue>=0;--ue){var Me=Jt.string.charAt(ue),lt=q.indexOf(Me);if(lt>=0&<<3){if(!Le){++ue;break}if(0==--Le){"("==Me&&(Pe=!0);break}}else if(lt>=3&<<6)++Le;else if(b.test(Me))Pe=!0;else if(/["'\/`]/.test(Me))for(;;--ue){if(0==ue)return;if(Jt.string.charAt(ue-1)==Me&&"\\"!=Jt.string.charAt(ue-2)){ue--;break}}else if(Pe&&!Le){++ue;break}}Pe&&!Le&&(ci.fatArrowAt=ue)}}var H={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function G(Jt,ci,Ai,Vt,Le,Pe){this.indented=Jt,this.column=ci,this.type=Ai,this.prev=Le,this.info=Pe,null!=Vt&&(this.align=Vt)}function W(Jt,ci){if(!f)return!1;for(var Ai=Jt.localVars;Ai;Ai=Ai.next)if(Ai.name==ci)return!0;for(var Vt=Jt.context;Vt;Vt=Vt.prev)for(Ai=Vt.vars;Ai;Ai=Ai.next)if(Ai.name==ci)return!0}function te(Jt,ci,Ai,Vt,Le){var Pe=Jt.cc;for(P.state=Jt,P.stream=Le,P.marked=null,P.cc=Pe,P.style=ci,Jt.lexical.hasOwnProperty("align")||(Jt.lexical.align=!0);;)if((Pe.length?Pe.pop():h?mt:Fe)(Ai,Vt)){for(;Pe.length&&Pe[Pe.length-1].lex;)Pe.pop()();return P.marked?P.marked:"variable"==Ai&&W(Jt,Vt)?"variable-2":ci}}var P={state:null,column:null,marked:null,cc:null};function J(){for(var Jt=arguments.length-1;Jt>=0;Jt--)P.cc.push(arguments[Jt])}function j(){return J.apply(null,arguments),!0}function re(Jt,ci){for(var Ai=ci;Ai;Ai=Ai.next)if(Ai.name==Jt)return!0;return!1}function he(Jt){var ci=P.state;if(P.marked="def",f){if(ci.context)if("var"==ci.lexical.info&&ci.context&&ci.context.block){var Ai=oe(Jt,ci.context);if(null!=Ai)return void(ci.context=Ai)}else if(!re(Jt,ci.localVars))return void(ci.localVars=new ze(Jt,ci.localVars));T.globalVars&&!re(Jt,ci.globalVars)&&(ci.globalVars=new ze(Jt,ci.globalVars))}}function oe(Jt,ci){if(ci){if(ci.block){var Ai=oe(Jt,ci.prev);return Ai?Ai==ci.prev?ci:new me(Ai,ci.vars,!0):null}return re(Jt,ci.vars)?ci:new me(ci.prev,new ze(Jt,ci.vars),!1)}return null}function Ce(Jt){return"public"==Jt||"private"==Jt||"protected"==Jt||"abstract"==Jt||"readonly"==Jt}function me(Jt,ci,Ai){this.prev=Jt,this.vars=ci,this.block=Ai}function ze(Jt,ci){this.name=Jt,this.next=ci}var _e=new ze("this",new ze("arguments",null));function Ae(){P.state.context=new me(P.state.context,P.state.localVars,!1),P.state.localVars=_e}function ve(){P.state.context=new me(P.state.context,P.state.localVars,!0),P.state.localVars=null}function ye(){P.state.localVars=P.state.context.vars,P.state.context=P.state.context.prev}function Oe(Jt,ci){var Ai=function(){var Vt=P.state,Le=Vt.indented;if("stat"==Vt.lexical.type)Le=Vt.lexical.indented;else for(var Pe=Vt.lexical;Pe&&")"==Pe.type&&Pe.align;Pe=Pe.prev)Le=Pe.indented;Vt.lexical=new G(Le,P.stream.column(),Jt,null,Vt.lexical,ci)};return Ai.lex=!0,Ai}function ae(){var Jt=P.state;Jt.lexical.prev&&(")"==Jt.lexical.type&&(Jt.indented=Jt.lexical.indented),Jt.lexical=Jt.lexical.prev)}function Ee(Jt){return function ci(Ai){return Ai==Jt?j():";"==Jt||"}"==Ai||")"==Ai||"]"==Ai?J():j(ci)}}function Fe(Jt,ci){return"var"==Jt?j(Oe("vardef",ci),_i,Ee(";"),ae):"keyword a"==Jt?j(Oe("form"),oi,Fe,ae):"keyword b"==Jt?j(Oe("form"),Fe,ae):"keyword d"==Jt?P.stream.match(/^\s*$/,!1)?j():j(Oe("stat"),be,Ee(";"),ae):"debugger"==Jt?j(Ee(";")):"{"==Jt?j(Oe("}"),ve,Rt,ae,ye):";"==Jt?j():"if"==Jt?("else"==P.state.lexical.info&&P.state.cc[P.state.cc.length-1]==ae&&P.state.cc.pop()(),j(Oe("form"),oi,Fe,ae,Ti)):"function"==Jt?j(fn):"for"==Jt?j(Oe("form"),ve,ln,Fe,ye,ae):"class"==Jt||_&&"interface"==ci?(P.marked="keyword",j(Oe("form","class"==Jt?Jt:ci),xi,ae)):"variable"==Jt?_&&"declare"==ci?(P.marked="keyword",j(Fe)):_&&("module"==ci||"enum"==ci||"type"==ci)&&P.stream.match(/^\s*\w/,!1)?(P.marked="keyword","enum"==ci?j(ro):"type"==ci?j(mn,Ee("operator"),Qi,Ee(";")):j(Oe("form"),qt,Ee("{"),Oe("}"),Rt,ae,ae)):_&&"namespace"==ci?(P.marked="keyword",j(Oe("form"),mt,Fe,ae)):_&&"abstract"==ci?(P.marked="keyword",j(Fe)):j(Oe("stat"),vt):"switch"==Jt?j(Oe("form"),oi,Ee("{"),Oe("}","switch"),ve,Rt,ae,ae,ye):"case"==Jt?j(mt,Ee(":")):"default"==Jt?j(Ee(":")):"catch"==Jt?j(Oe("form"),Ae,Ve,Fe,ae,ye):"export"==Jt?j(Oe("stat"),wn,ae):"import"==Jt?j(Oe("stat"),xn,ae):"async"==Jt?j(Fe):"@"==ci?j(mt,Fe):J(Oe("stat"),mt,Ee(";"),ae)}function Ve(Jt){if("("==Jt)return j(ui,Ee(")"))}function mt(Jt,ci){return He(Jt,ci,!1)}function St(Jt,ci){return He(Jt,ci,!0)}function oi(Jt){return"("!=Jt?J():j(Oe(")"),be,Ee(")"),ae)}function He(Jt,ci,Ai){if(P.state.fatArrowAt==P.stream.start){var Vt=Ai?et:ut;if("("==Jt)return j(Ae,Oe(")"),gt(ui,")"),ae,Ee("=>"),Vt,ye);if("variable"==Jt)return J(Ae,qt,Ee("=>"),Vt,ye)}var Le=Ai?Ke:je;return H.hasOwnProperty(Jt)?j(Le):"function"==Jt?j(fn,Le):"class"==Jt||_&&"interface"==ci?(P.marked="keyword",j(Oe("form"),di,ae)):"keyword c"==Jt||"async"==Jt?j(Ai?St:mt):"("==Jt?j(Oe(")"),be,Ee(")"),ae,Le):"operator"==Jt||"spread"==Jt?j(Ai?St:mt):"["==Jt?j(Oe("]"),Wn,ae,Le):"{"==Jt?ai(qe,"}",null,Le):"quasi"==Jt?J(_t,Le):"new"==Jt?j(function Xe(Jt){return function(ci){return"."==ci?j(Jt?Dt:It):"variable"==ci&&_?j(Kt,Jt?Ke:je):J(Jt?St:mt)}}(Ai)):j()}function be(Jt){return Jt.match(/[;\}\)\],]/)?J():J(mt)}function je(Jt,ci){return","==Jt?j(be):Ke(Jt,ci,!1)}function Ke(Jt,ci,Ai){var Vt=0==Ai?je:Ke,Le=0==Ai?mt:St;if("=>"==Jt)return j(Ae,Ai?et:ut,ye);if("operator"==Jt)return/\+\+|--/.test(ci)||_&&"!"==ci?j(Vt):_&&"<"==ci&&P.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?j(Oe(">"),gt(Qi,">"),ae,Vt):"?"==ci?j(mt,Ee(":"),Le):j(Le);if("quasi"==Jt)return J(_t,Vt);if(";"!=Jt){if("("==Jt)return ai(St,")","call",Vt);if("."==Jt)return j(Qt,Vt);if("["==Jt)return j(Oe("]"),be,Ee("]"),ae,Vt);if(_&&"as"==ci)return P.marked="keyword",j(Qi,Vt);if("regexp"==Jt)return P.state.lastType=P.marked="operator",P.stream.backUp(P.stream.pos-P.stream.start-1),j(Le)}}function _t(Jt,ci){return"quasi"!=Jt?J():"${"!=ci.slice(ci.length-2)?j(_t):j(be,Nt)}function Nt(Jt){if("}"==Jt)return P.marked="string-2",P.state.tokenize=z,j(_t)}function ut(Jt){return Z(P.stream,P.state),J("{"==Jt?Fe:mt)}function et(Jt){return Z(P.stream,P.state),J("{"==Jt?Fe:St)}function It(Jt,ci){if("target"==ci)return P.marked="keyword",j(je)}function Dt(Jt,ci){if("target"==ci)return P.marked="keyword",j(Ke)}function vt(Jt){return":"==Jt?j(ae,Fe):J(je,Ee(";"),ae)}function Qt(Jt){if("variable"==Jt)return P.marked="property",j()}function qe(Jt,ci){return"async"==Jt?(P.marked="property",j(qe)):"variable"==Jt||"keyword"==P.style?(P.marked="property","get"==ci||"set"==ci?j(ke):(_&&P.state.fatArrowAt==P.stream.start&&(Ai=P.stream.match(/^\s*:\s*/,!1))&&(P.state.fatArrowAt=P.stream.pos+Ai[0].length),j(it))):"number"==Jt||"string"==Jt?(P.marked=v?"property":P.style+" property",j(it)):"jsonld-keyword"==Jt?j(it):_&&Ce(ci)?(P.marked="keyword",j(qe)):"["==Jt?j(mt,Gt,Ee("]"),it):"spread"==Jt?j(St,it):"*"==ci?(P.marked="keyword",j(qe)):":"==Jt?J(it):void 0;var Ai}function ke(Jt){return"variable"!=Jt?J(it):(P.marked="property",j(fn))}function it(Jt){return":"==Jt?j(St):"("==Jt?J(fn):void 0}function gt(Jt,ci,Ai){function Vt(Le,Pe){if(Ai?Ai.indexOf(Le)>-1:","==Le){var ue=P.state.lexical;return"call"==ue.info&&(ue.pos=(ue.pos||0)+1),j(function(Me,lt){return Me==ci||lt==ci?J():J(Jt)},Vt)}return Le==ci||Pe==ci?j():Ai&&Ai.indexOf(";")>-1?J(Jt):j(Ee(ci))}return function(Le,Pe){return Le==ci||Pe==ci?j():J(Jt,Vt)}}function ai(Jt,ci,Ai){for(var Vt=3;Vt"),Qi):"quasi"==Jt?J(Se,rt):void 0}function Ht(Jt){if("=>"==Jt)return j(Qi)}function dt(Jt){return Jt.match(/[\}\)\]]/)?j():","==Jt||";"==Jt?j(dt):J(ge,dt)}function ge(Jt,ci){return"variable"==Jt||"keyword"==P.style?(P.marked="property",j(ge)):"?"==ci||"number"==Jt||"string"==Jt?j(ge):":"==Jt?j(Qi):"["==Jt?j(Ee("variable"),zt,Ee("]"),ge):"("==Jt?J(Pn,ge):Jt.match(/[;\}\)\],]/)?void 0:j()}function Se(Jt,ci){return"quasi"!=Jt?J():"${"!=ci.slice(ci.length-2)?j(Se):j(Qi,ct)}function ct(Jt){if("}"==Jt)return P.marked="string-2",P.state.tokenize=z,j(Se)}function Zt(Jt,ci){return"variable"==Jt&&P.stream.match(/^\s*[?:]/,!1)||"?"==ci?j(Zt):":"==Jt?j(Qi):"spread"==Jt?j(Zt):J(Qi)}function rt(Jt,ci){return"<"==ci?j(Oe(">"),gt(Qi,">"),ae,rt):"|"==ci||"."==Jt||"&"==ci?j(Qi):"["==Jt?j(Qi,Ee("]"),rt):"extends"==ci||"implements"==ci?(P.marked="keyword",j(Qi)):"?"==ci?j(Qi,Ee(":"),Qi):void 0}function Kt(Jt,ci){if("<"==ci)return j(Oe(">"),gt(Qi,">"),ae,rt)}function on(){return J(Qi,Ge)}function Ge(Jt,ci){if("="==ci)return j(Qi)}function _i(Jt,ci){return"enum"==ci?(P.marked="keyword",j(ro)):J(qt,Gt,Ut,Si)}function qt(Jt,ci){return _&&Ce(ci)?(P.marked="keyword",j(qt)):"variable"==Jt?(he(ci),j()):"spread"==Jt?j(qt):"["==Jt?ai(Bt,"]"):"{"==Jt?ai(tt,"}"):void 0}function tt(Jt,ci){return"variable"!=Jt||P.stream.match(/^\s*:/,!1)?("variable"==Jt&&(P.marked="property"),"spread"==Jt?j(qt):"}"==Jt?J():"["==Jt?j(mt,Ee("]"),Ee(":"),tt):j(Ee(":"),qt,Ut)):(he(ci),j(Ut))}function Bt(){return J(qt,Ut)}function Ut(Jt,ci){if("="==ci)return j(St)}function Si(Jt){if(","==Jt)return j(_i)}function Ti(Jt,ci){if("keyword b"==Jt&&"else"==ci)return j(Oe("form","else"),Fe,ae)}function ln(Jt,ci){return"await"==ci?j(ln):"("==Jt?j(Oe(")"),Ji,ae):void 0}function Ji(Jt){return"var"==Jt?j(_i,or):"variable"==Jt?j(or):J(or)}function or(Jt,ci){return")"==Jt?j():";"==Jt?j(or):"in"==ci||"of"==ci?(P.marked="keyword",j(mt,or)):J(mt,or)}function fn(Jt,ci){return"*"==ci?(P.marked="keyword",j(fn)):"variable"==Jt?(he(ci),j(fn)):"("==Jt?j(Ae,Oe(")"),gt(ui,")"),ae,mi,Fe,ye):_&&"<"==ci?j(Oe(">"),gt(on,">"),ae,fn):void 0}function Pn(Jt,ci){return"*"==ci?(P.marked="keyword",j(Pn)):"variable"==Jt?(he(ci),j(Pn)):"("==Jt?j(Ae,Oe(")"),gt(ui,")"),ae,mi,ye):_&&"<"==ci?j(Oe(">"),gt(on,">"),ae,Pn):void 0}function mn(Jt,ci){return"keyword"==Jt||"variable"==Jt?(P.marked="type",j(mn)):"<"==ci?j(Oe(">"),gt(on,">"),ae):void 0}function ui(Jt,ci){return"@"==ci&&j(mt,ui),"spread"==Jt?j(ui):_&&Ce(ci)?(P.marked="keyword",j(ui)):_&&"this"==Jt?j(Gt,Ut):J(qt,Gt,Ut)}function di(Jt,ci){return"variable"==Jt?xi(Jt,ci):sn(Jt,ci)}function xi(Jt,ci){if("variable"==Jt)return he(ci),j(sn)}function sn(Jt,ci){return"<"==ci?j(Oe(">"),gt(on,">"),ae,sn):"extends"==ci||"implements"==ci||_&&","==Jt?("implements"==ci&&(P.marked="keyword"),j(_?Qi:mt,sn)):"{"==Jt?j(Oe("}"),ji,ae):void 0}function ji(Jt,ci){return"async"==Jt||"variable"==Jt&&("static"==ci||"get"==ci||"set"==ci||_&&Ce(ci))&&P.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1)?(P.marked="keyword",j(ji)):"variable"==Jt||"keyword"==P.style?(P.marked="property",j(Qn,ji)):"number"==Jt||"string"==Jt?j(Qn,ji):"["==Jt?j(mt,Gt,Ee("]"),Qn,ji):"*"==ci?(P.marked="keyword",j(ji)):_&&"("==Jt?J(Pn,ji):";"==Jt||","==Jt?j(ji):"}"==Jt?j():"@"==ci?j(mt,ji):void 0}function Qn(Jt,ci){if("!"==ci||"?"==ci)return j(Qn);if(":"==Jt)return j(Qi,Ut);if("="==ci)return j(St);var Ai=P.state.lexical.prev;return J(Ai&&"interface"==Ai.info?Pn:fn)}function wn(Jt,ci){return"*"==ci?(P.marked="keyword",j(Fn,Ee(";"))):"default"==ci?(P.marked="keyword",j(mt,Ee(";"))):"{"==Jt?j(gt(gr,"}"),Fn,Ee(";")):J(Fe)}function gr(Jt,ci){return"as"==ci?(P.marked="keyword",j(Ee("variable"))):"variable"==Jt?J(St,gr):void 0}function xn(Jt){return"string"==Jt?j():"("==Jt?J(mt):"."==Jt?J(je):J(Hr,Xo,Fn)}function Hr(Jt,ci){return"{"==Jt?ai(Hr,"}"):("variable"==Jt&&he(ci),"*"==ci&&(P.marked="keyword"),j(qr))}function Xo(Jt){if(","==Jt)return j(Hr,Xo)}function qr(Jt,ci){if("as"==ci)return P.marked="keyword",j(Hr)}function Fn(Jt,ci){if("from"==ci)return P.marked="keyword",j(mt)}function Wn(Jt){return"]"==Jt?j():J(gt(St,"]"))}function ro(){return J(Oe("form"),qt,Ee("{"),Oe("}"),gt(Or,"}"),ae,ae)}function Or(){return J(qt,Ut)}function wo(Jt,ci,Ai){return ci.tokenize==d&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(ci.lastType)||"quasi"==ci.lastType&&/\{\s*$/.test(Jt.string.slice(0,Jt.pos-(Ai||0)))}return Ae.lex=ve.lex=!0,ye.lex=!0,ae.lex=!0,{startState:function(Jt){var ci={tokenize:d,lastType:"sof",cc:[],lexical:new G((Jt||0)-e,0,"block",!1),localVars:T.localVars,context:T.localVars&&new me(null,null,!1),indented:Jt||0};return T.globalVars&&"object"==typeof T.globalVars&&(ci.globalVars=T.globalVars),ci},token:function(Jt,ci){if(Jt.sol()&&(ci.lexical.hasOwnProperty("align")||(ci.lexical.align=!1),ci.indented=Jt.indentation(),Z(Jt,ci)),ci.tokenize!=R&&Jt.eatSpace())return null;var Ai=ci.tokenize(Jt,ci);return"comment"==k?Ai:(ci.lastType="operator"!=k||"++"!=Q&&"--"!=Q?k:"incdec",te(ci,Ai,k,Q,Jt))},indent:function(Jt,ci){if(Jt.tokenize==R||Jt.tokenize==z)return V.Pass;if(Jt.tokenize!=d)return 0;var Le,Ai=ci&&ci.charAt(0),Vt=Jt.lexical;if(!/^\s*else\b/.test(ci))for(var Pe=Jt.cc.length-1;Pe>=0;--Pe){var ue=Jt.cc[Pe];if(ue==ae)Vt=Vt.prev;else if(ue!=Ti&&ue!=ye)break}for(;("stat"==Vt.type||"form"==Vt.type)&&("}"==Ai||(Le=Jt.cc[Jt.cc.length-1])&&(Le==je||Le==Ke)&&!/^[,\.=+\-*:?[\(]/.test(ci));)Vt=Vt.prev;l&&")"==Vt.type&&"stat"==Vt.prev.type&&(Vt=Vt.prev);var Me=Vt.type,lt=Ai==Me;return"vardef"==Me?Vt.indented+("operator"==Jt.lastType||","==Jt.lastType?Vt.info.length+1:0):"form"==Me&&"{"==Ai?Vt.indented:"form"==Me?Vt.indented+e:"stat"==Me?Vt.indented+(function ar(Jt,ci){return"operator"==Jt.lastType||","==Jt.lastType||M.test(ci.charAt(0))||/[,.]/.test(ci.charAt(0))}(Jt,ci)?l||e:0):"switch"!=Vt.info||lt||0==T.doubleIndentSwitch?Vt.align?Vt.column+(lt?0:1):Vt.indented+(lt?0:e):Vt.indented+(/^(?:case|default)\b/.test(ci)?e:2*e)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:h?null:"/*",blockCommentEnd:h?null:"*/",blockCommentContinue:h?null:" * ",lineComment:h?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:h?"json":"javascript",jsonldMode:v,jsonMode:h,expressionAllowed:wo,skipExpression:function(Jt){te(Jt,"atom","atom","true",new V.StringStream("",2,null))}}}),V.registerHelper("wordChars","javascript",/[\w$]/),V.defineMIME("text/javascript","javascript"),V.defineMIME("text/ecmascript","javascript"),V.defineMIME("application/javascript","javascript"),V.defineMIME("application/x-javascript","javascript"),V.defineMIME("application/ecmascript","javascript"),V.defineMIME("application/json",{name:"javascript",json:!0}),V.defineMIME("application/x-json",{name:"javascript",json:!0}),V.defineMIME("application/manifest+json",{name:"javascript",json:!0}),V.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),V.defineMIME("text/typescript",{name:"javascript",typescript:!0}),V.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(ce(656))},9170:(ni,Pt,ce)=>{!function(V){"use strict";V.defineMode("markdown",function(K,T){var e=V.getMode(K,"text/html"),l="null"==e.name;void 0===T.highlightFormatting&&(T.highlightFormatting=!1),void 0===T.maxBlockquoteDepth&&(T.maxBlockquoteDepth=0),void 0===T.taskLists&&(T.taskLists=!1),void 0===T.strikethrough&&(T.strikethrough=!1),void 0===T.emoji&&(T.emoji=!1),void 0===T.fencedCodeBlockHighlighting&&(T.fencedCodeBlockHighlighting=!0),void 0===T.fencedCodeBlockDefaultMode&&(T.fencedCodeBlockDefaultMode="text/plain"),void 0===T.xml&&(T.xml=!0),void 0===T.tokenTypeOverrides&&(T.tokenTypeOverrides={});var h={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var f in h)h.hasOwnProperty(f)&&T.tokenTypeOverrides[f]&&(h[f]=T.tokenTypeOverrides[f]);var _=/^([*\-_])(?:\s*\1){2,}\s*$/,b=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,y=/^\[(x| )\](?=\s)/i,M=T.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,D=/^ {0,3}(?:\={1,}|-{2,})\s*$/,x=/^[^#!\[\]*_\\<>` "'(~:]+/,k=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,Q=/^\s*\[[^\]]+?\]:.*$/,I=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/;function S(_e,Ae,ve){return Ae.f=Ae.inline=ve,ve(_e,Ae)}function R(_e,Ae,ve){return Ae.f=Ae.block=ve,ve(_e,Ae)}function q(_e){if(_e.linkTitle=!1,_e.linkHref=!1,_e.linkText=!1,_e.em=!1,_e.strong=!1,_e.strikethrough=!1,_e.quote=0,_e.indentedCode=!1,_e.f==H){var Ae=l;if(!Ae){var ve=V.innerMode(e,_e.htmlState);Ae="xml"==ve.mode.name&&null===ve.state.tagStart&&!ve.state.context&&ve.state.tokenize.isInText}Ae&&(_e.f=P,_e.block=Z,_e.htmlState=null)}return _e.trailingSpace=0,_e.trailingSpaceNewLine=!1,_e.prevLine=_e.thisLine,_e.thisLine={stream:null},null}function Z(_e,Ae){var ve=_e.column()===Ae.indentation,ye=function z(_e){return!_e||!/\S/.test(_e.string)}(Ae.prevLine.stream),Oe=Ae.indentedCode,ae=Ae.prevLine.hr,Ee=!1!==Ae.list,Fe=(Ae.listStack[Ae.listStack.length-1]||0)+3;Ae.indentedCode=!1;var Ve=Ae.indentation;if(null===Ae.indentationDiff&&(Ae.indentationDiff=Ae.indentation,Ee)){for(Ae.list=null;Ve=4&&(Oe||Ae.prevLine.fencedCodeEnd||Ae.prevLine.header||ye))return _e.skipToEnd(),Ae.indentedCode=!0,h.code;if(_e.eatSpace())return null;if(ve&&Ae.indentation<=Fe&&(oi=_e.match(M))&&oi[1].length<=6)return Ae.quote=0,Ae.header=oi[1].length,Ae.thisLine.header=!0,T.highlightFormatting&&(Ae.formatting="header"),Ae.f=Ae.inline,W(Ae);if(Ae.indentation<=Fe&&_e.eat(">"))return Ae.quote=ve?1:Ae.quote+1,T.highlightFormatting&&(Ae.formatting="quote"),_e.eatSpace(),W(Ae);if(!St&&!Ae.setext&&ve&&Ae.indentation<=Fe&&(oi=_e.match(b))){var He=oi[1]?"ol":"ul";return Ae.indentation=Ve+_e.current().length,Ae.list=!0,Ae.quote=0,Ae.listStack.push(Ae.indentation),Ae.em=!1,Ae.strong=!1,Ae.code=!1,Ae.strikethrough=!1,T.taskLists&&_e.match(y,!1)&&(Ae.taskList=!0),Ae.f=Ae.inline,T.highlightFormatting&&(Ae.formatting=["list","list-"+He]),W(Ae)}return ve&&Ae.indentation<=Fe&&(oi=_e.match(k,!0))?(Ae.quote=0,Ae.fencedEndRE=new RegExp(oi[1]+"+ *$"),Ae.localMode=T.fencedCodeBlockHighlighting&&function v(_e){if(V.findModeByName){var Ae=V.findModeByName(_e);Ae&&(_e=Ae.mime||Ae.mimes[0])}var ve=V.getMode(K,_e);return"null"==ve.name?null:ve}(oi[2]||T.fencedCodeBlockDefaultMode),Ae.localMode&&(Ae.localState=V.startState(Ae.localMode)),Ae.f=Ae.block=G,T.highlightFormatting&&(Ae.formatting="code-block"),Ae.code=-1,W(Ae)):Ae.setext||!(mt&&Ee||Ae.quote||!1!==Ae.list||Ae.code||St||Q.test(_e.string))&&(oi=_e.lookAhead(1))&&(oi=oi.match(D))?(Ae.setext?(Ae.header=Ae.setext,Ae.setext=0,_e.skipToEnd(),T.highlightFormatting&&(Ae.formatting="header")):(Ae.header="="==oi[0].charAt(0)?1:2,Ae.setext=Ae.header),Ae.thisLine.header=!0,Ae.f=Ae.inline,W(Ae)):St?(_e.skipToEnd(),Ae.hr=!0,Ae.thisLine.hr=!0,h.hr):"["===_e.peek()?S(_e,Ae,oe):S(_e,Ae,Ae.inline)}function H(_e,Ae){var ve=e.token(_e,Ae.htmlState);if(!l){var ye=V.innerMode(e,Ae.htmlState);("xml"==ye.mode.name&&null===ye.state.tagStart&&!ye.state.context&&ye.state.tokenize.isInText||Ae.md_inside&&_e.current().indexOf(">")>-1)&&(Ae.f=P,Ae.block=Z,Ae.htmlState=null)}return ve}function G(_e,Ae){var ae,ve=Ae.listStack[Ae.listStack.length-1]||0,ye=Ae.indentation=_e.quote?h.formatting+"-"+_e.formatting[ve]+"-"+_e.quote:"error")}if(_e.taskOpen)return Ae.push("meta"),Ae.length?Ae.join(" "):null;if(_e.taskClosed)return Ae.push("property"),Ae.length?Ae.join(" "):null;if(_e.linkHref?Ae.push(h.linkHref,"url"):(_e.strong&&Ae.push(h.strong),_e.em&&Ae.push(h.em),_e.strikethrough&&Ae.push(h.strikethrough),_e.emoji&&Ae.push(h.emoji),_e.linkText&&Ae.push(h.linkText),_e.code&&Ae.push(h.code),_e.image&&Ae.push(h.image),_e.imageAltText&&Ae.push(h.imageAltText,"link"),_e.imageMarker&&Ae.push(h.imageMarker)),_e.header&&Ae.push(h.header,h.header+"-"+_e.header),_e.quote&&(Ae.push(h.quote),Ae.push(!T.maxBlockquoteDepth||T.maxBlockquoteDepth>=_e.quote?h.quote+"-"+_e.quote:h.quote+"-"+T.maxBlockquoteDepth)),!1!==_e.list){var ye=(_e.listStack.length-1)%3;Ae.push(ye?1===ye?h.list2:h.list3:h.list1)}return _e.trailingSpaceNewLine?Ae.push("trailing-space-new-line"):_e.trailingSpace&&Ae.push("trailing-space-"+(_e.trailingSpace%2?"a":"b")),Ae.length?Ae.join(" "):null}function te(_e,Ae){if(_e.match(x,!0))return W(Ae)}function P(_e,Ae){var ve=Ae.text(_e,Ae);if(typeof ve<"u")return ve;if(Ae.list)return Ae.list=null,W(Ae);if(Ae.taskList)return" "===_e.match(y,!0)[1]?Ae.taskOpen=!0:Ae.taskClosed=!0,T.highlightFormatting&&(Ae.formatting="task"),Ae.taskList=!1,W(Ae);if(Ae.taskOpen=!1,Ae.taskClosed=!1,Ae.header&&_e.match(/^#+$/,!0))return T.highlightFormatting&&(Ae.formatting="header"),W(Ae);var Oe=_e.next();if(Ae.linkTitle){Ae.linkTitle=!1;var ae=Oe;if("("===Oe&&(ae=")"),ae=(ae+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1"),_e.match(new RegExp("^\\s*(?:[^"+ae+"\\\\]+|\\\\\\\\|\\\\.)"+ae),!0))return h.linkHref}if("`"===Oe){var Fe=Ae.formatting;T.highlightFormatting&&(Ae.formatting="code"),_e.eatWhile("`");var Ve=_e.current().length;if(0==Ae.code&&(!Ae.quote||1==Ve))return Ae.code=Ve,W(Ae);if(Ve==Ae.code){var mt=W(Ae);return Ae.code=0,mt}return Ae.formatting=Fe,W(Ae)}if(Ae.code)return W(Ae);if("\\"===Oe&&(_e.next(),T.highlightFormatting)){var St=W(Ae),oi=h.formatting+"-escape";return St?St+" "+oi:oi}if("!"===Oe&&_e.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return Ae.imageMarker=!0,Ae.image=!0,T.highlightFormatting&&(Ae.formatting="image"),W(Ae);if("["===Oe&&Ae.imageMarker&&_e.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return Ae.imageMarker=!1,Ae.imageAltText=!0,T.highlightFormatting&&(Ae.formatting="image"),W(Ae);if("]"===Oe&&Ae.imageAltText){T.highlightFormatting&&(Ae.formatting="image");St=W(Ae);return Ae.imageAltText=!1,Ae.image=!1,Ae.inline=Ae.f=j,St}if("["===Oe&&!Ae.image)return Ae.linkText&&_e.match(/^.*?\]/)||(Ae.linkText=!0,T.highlightFormatting&&(Ae.formatting="link")),W(Ae);if("]"===Oe&&Ae.linkText){T.highlightFormatting&&(Ae.formatting="link");St=W(Ae);return Ae.linkText=!1,Ae.inline=Ae.f=_e.match(/\(.*?\)| ?\[.*?\]/,!1)?j:P,St}if("<"===Oe&&_e.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1))return Ae.f=Ae.inline=J,T.highlightFormatting&&(Ae.formatting="link"),(St=W(Ae))?St+=" ":St="",St+h.linkInline;if("<"===Oe&&_e.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1))return Ae.f=Ae.inline=J,T.highlightFormatting&&(Ae.formatting="link"),(St=W(Ae))?St+=" ":St="",St+h.linkEmail;if(T.xml&&"<"===Oe&&_e.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var He=_e.string.indexOf(">",_e.pos);if(-1!=He){var be=_e.string.substring(_e.start,He);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(be)&&(Ae.md_inside=!0)}return _e.backUp(1),Ae.htmlState=V.startState(e),R(_e,Ae,H)}if(T.xml&&"<"===Oe&&_e.match(/^\/\w*?>/))return Ae.md_inside=!1,"tag";if("*"===Oe||"_"===Oe){for(var je=1,Ke=1==_e.pos?" ":_e.string.charAt(_e.pos-2);je<3&&_e.eat(Oe);)je++;var _t=_e.peek()||" ",Nt=!/\s/.test(_t)&&(!I.test(_t)||/\s/.test(Ke)||I.test(Ke)),ut=!/\s/.test(Ke)&&(!I.test(Ke)||/\s/.test(_t)||I.test(_t)),et=null,Xe=null;if(je%2&&(Ae.em||!Nt||"*"!==Oe&&ut&&!I.test(Ke)?Ae.em==Oe&&ut&&("*"===Oe||!Nt||I.test(_t))&&(et=!1):et=!0),je>1&&(Ae.strong||!Nt||"*"!==Oe&&ut&&!I.test(Ke)?Ae.strong==Oe&&ut&&("*"===Oe||!Nt||I.test(_t))&&(Xe=!1):Xe=!0),null!=Xe||null!=et)return T.highlightFormatting&&(Ae.formatting=null==et?"strong":null==Xe?"em":"strong em"),!0===et&&(Ae.em=Oe),!0===Xe&&(Ae.strong=Oe),mt=W(Ae),!1===et&&(Ae.em=!1),!1===Xe&&(Ae.strong=!1),mt}else if(" "===Oe&&(_e.eat("*")||_e.eat("_"))){if(" "===_e.peek())return W(Ae);_e.backUp(1)}if(T.strikethrough)if("~"===Oe&&_e.eatWhile(Oe)){if(Ae.strikethrough)return T.highlightFormatting&&(Ae.formatting="strikethrough"),mt=W(Ae),Ae.strikethrough=!1,mt;if(_e.match(/^[^\s]/,!1))return Ae.strikethrough=!0,T.highlightFormatting&&(Ae.formatting="strikethrough"),W(Ae)}else if(" "===Oe&&_e.match("~~",!0)){if(" "===_e.peek())return W(Ae);_e.backUp(2)}if(T.emoji&&":"===Oe&&_e.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){Ae.emoji=!0,T.highlightFormatting&&(Ae.formatting="emoji");var It=W(Ae);return Ae.emoji=!1,It}return" "===Oe&&(_e.match(/^ +$/,!1)?Ae.trailingSpace++:Ae.trailingSpace&&(Ae.trailingSpaceNewLine=!0)),W(Ae)}function J(_e,Ae){if(">"===_e.next()){Ae.f=Ae.inline=P,T.highlightFormatting&&(Ae.formatting="link");var ye=W(Ae);return ye?ye+=" ":ye="",ye+h.linkInline}return _e.match(/^[^>]+/,!0),h.linkInline}function j(_e,Ae){if(_e.eatSpace())return null;var ve=_e.next();return"("===ve||"["===ve?(Ae.f=Ae.inline=function he(_e){return function(Ae,ve){if(Ae.next()===_e){ve.f=ve.inline=P,T.highlightFormatting&&(ve.formatting="link-string");var Oe=W(ve);return ve.linkHref=!1,Oe}return Ae.match(re[_e]),ve.linkHref=!0,W(ve)}}("("===ve?")":"]"),T.highlightFormatting&&(Ae.formatting="link-string"),Ae.linkHref=!0,W(Ae)):"error"}var re={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function oe(_e,Ae){return _e.match(/^([^\]\\]|\\.)*\]:/,!1)?(Ae.f=Ce,_e.next(),T.highlightFormatting&&(Ae.formatting="link"),Ae.linkText=!0,W(Ae)):S(_e,Ae,P)}function Ce(_e,Ae){if(_e.match("]:",!0)){Ae.f=Ae.inline=me,T.highlightFormatting&&(Ae.formatting="link");var ve=W(Ae);return Ae.linkText=!1,ve}return _e.match(/^([^\]\\]|\\.)+/,!0),h.linkText}function me(_e,Ae){return _e.eatSpace()?null:(_e.match(/^[^\s]+/,!0),void 0===_e.peek()?Ae.linkTitle=!0:_e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),Ae.f=Ae.inline=P,h.linkHref+" url")}var ze={startState:function(){return{f:Z,prevLine:{stream:null},thisLine:{stream:null},block:Z,htmlState:null,indentation:0,inline:P,text:te,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(_e){return{f:_e.f,prevLine:_e.prevLine,thisLine:_e.thisLine,block:_e.block,htmlState:_e.htmlState&&V.copyState(e,_e.htmlState),indentation:_e.indentation,localMode:_e.localMode,localState:_e.localMode?V.copyState(_e.localMode,_e.localState):null,inline:_e.inline,text:_e.text,formatting:!1,linkText:_e.linkText,linkTitle:_e.linkTitle,linkHref:_e.linkHref,code:_e.code,em:_e.em,strong:_e.strong,strikethrough:_e.strikethrough,emoji:_e.emoji,header:_e.header,setext:_e.setext,hr:_e.hr,taskList:_e.taskList,list:_e.list,listStack:_e.listStack.slice(0),quote:_e.quote,indentedCode:_e.indentedCode,trailingSpace:_e.trailingSpace,trailingSpaceNewLine:_e.trailingSpaceNewLine,md_inside:_e.md_inside,fencedEndRE:_e.fencedEndRE}},token:function(_e,Ae){if(Ae.formatting=!1,_e!=Ae.thisLine.stream){if(Ae.header=0,Ae.hr=!1,_e.match(/^\s*$/,!0))return q(Ae),null;if(Ae.prevLine=Ae.thisLine,Ae.thisLine={stream:_e},Ae.taskList=!1,Ae.trailingSpace=0,Ae.trailingSpaceNewLine=!1,!Ae.localState&&(Ae.f=Ae.block,Ae.f!=H)){var ve=_e.match(/^\s*/,!0)[0].replace(/\t/g," ").length;if(Ae.indentation=ve,Ae.indentationDiff=null,ve>0)return null}}return Ae.f(_e,Ae)},innerMode:function(_e){return _e.block==H?{state:_e.htmlState,mode:e}:_e.localState?{state:_e.localState,mode:_e.localMode}:{state:_e,mode:ze}},indent:function(_e,Ae,ve){return _e.block==H&&e.indent?e.indent(_e.htmlState,Ae,ve):_e.localState&&_e.localMode.indent?_e.localMode.indent(_e.localState,Ae,ve):V.Pass},blankLine:q,getType:W,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return ze},"xml"),V.defineMIME("text/markdown","markdown"),V.defineMIME("text/x-markdown","markdown")}(ce(656),ce(3480),ce(3676))},3676:(ni,Pt,ce)=>{!function(V){"use strict";V.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy","cbl"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var K=0;K-1&&e.substring(h+1,e.length);if(f)return V.findModeByExtension(f)},V.findModeByName=function(e){e=e.toLowerCase();for(var l=0;l{!function(V){"use strict";var K={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},T={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};V.defineMode("xml",function(e,l){var b,y,v=e.indentUnit,h={},f=l.htmlMode?K:T;for(var _ in f)h[_]=f[_];for(var _ in l)h[_]=l[_];function M(j,re){function he(me){return re.tokenize=me,me(j,re)}var oe=j.next();return"<"==oe?j.eat("!")?j.eat("[")?j.match("CDATA[")?he(k("atom","]]>")):null:j.match("--")?he(k("comment","--\x3e")):j.match("DOCTYPE",!0,!0)?(j.eatWhile(/[\w\._\-]/),he(Q(1))):null:j.eat("?")?(j.eatWhile(/[\w\._\-]/),re.tokenize=k("meta","?>"),"meta"):(b=j.eat("/")?"closeTag":"openTag",re.tokenize=D,"tag bracket"):"&"==oe?(j.eat("#")?j.eat("x")?j.eatWhile(/[a-fA-F\d]/)&&j.eat(";"):j.eatWhile(/[\d]/)&&j.eat(";"):j.eatWhile(/[\w\.\-:]/)&&j.eat(";"))?"atom":"error":(j.eatWhile(/[^&<]/),null)}function D(j,re){var he=j.next();if(">"==he||"/"==he&&j.eat(">"))return re.tokenize=M,b=">"==he?"endTag":"selfcloseTag","tag bracket";if("="==he)return b="equals",null;if("<"==he){re.tokenize=M,re.state=z,re.tagName=re.tagStart=null;var oe=re.tokenize(j,re);return oe?oe+" tag error":"tag error"}return/[\'\"]/.test(he)?(re.tokenize=function x(j){var re=function(he,oe){for(;!he.eol();)if(he.next()==j){oe.tokenize=D;break}return"string"};return re.isInAttribute=!0,re}(he),re.stringStartCol=j.column(),re.tokenize(j,re)):(j.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function k(j,re){return function(he,oe){for(;!he.eol();){if(he.match(re)){oe.tokenize=M;break}he.next()}return j}}function Q(j){return function(re,he){for(var oe;null!=(oe=re.next());){if("<"==oe)return he.tokenize=Q(j+1),he.tokenize(re,he);if(">"==oe){if(1==j){he.tokenize=M;break}return he.tokenize=Q(j-1),he.tokenize(re,he)}}return"meta"}}function I(j){return j&&j.toLowerCase()}function d(j,re,he){this.prev=j.context,this.tagName=re||"",this.indent=j.indented,this.startOfLine=he,(h.doNotIndent.hasOwnProperty(re)||j.context&&j.context.noIndent)&&(this.noIndent=!0)}function S(j){j.context&&(j.context=j.context.prev)}function R(j,re){for(var he;;){if(!j.context||!h.contextGrabbers.hasOwnProperty(I(he=j.context.tagName))||!h.contextGrabbers[I(he)].hasOwnProperty(I(re)))return;S(j)}}function z(j,re,he){return"openTag"==j?(he.tagStart=re.column(),q):"closeTag"==j?Z:z}function q(j,re,he){return"word"==j?(he.tagName=re.current(),y="tag",W):h.allowMissingTagName&&"endTag"==j?(y="tag bracket",W(j,0,he)):(y="error",q)}function Z(j,re,he){if("word"==j){var oe=re.current();return he.context&&he.context.tagName!=oe&&h.implicitlyClosed.hasOwnProperty(I(he.context.tagName))&&S(he),he.context&&he.context.tagName==oe||!1===h.matchClosing?(y="tag",H):(y="tag error",G)}return h.allowMissingTagName&&"endTag"==j?(y="tag bracket",H(j,0,he)):(y="error",G)}function H(j,re,he){return"endTag"!=j?(y="error",H):(S(he),z)}function G(j,re,he){return y="error",H(j,0,he)}function W(j,re,he){if("word"==j)return y="attribute",te;if("endTag"==j||"selfcloseTag"==j){var oe=he.tagName,Ce=he.tagStart;return he.tagName=he.tagStart=null,"selfcloseTag"==j||h.autoSelfClosers.hasOwnProperty(I(oe))?R(he,oe):(R(he,oe),he.context=new d(he,oe,Ce==he.indented)),z}return y="error",W}function te(j,re,he){return"equals"==j?P:(h.allowMissing||(y="error"),W(j,0,he))}function P(j,re,he){return"string"==j?J:"word"==j&&h.allowUnquoted?(y="string",W):(y="error",W(j,0,he))}function J(j,re,he){return"string"==j?J:W(j,0,he)}return M.isInText=!0,{startState:function(j){var re={tokenize:M,state:z,indented:j||0,tagName:null,tagStart:null,context:null};return null!=j&&(re.baseIndent=j),re},token:function(j,re){if(!re.tagName&&j.sol()&&(re.indented=j.indentation()),j.eatSpace())return null;b=null;var he=re.tokenize(j,re);return(he||b)&&"comment"!=he&&(y=null,re.state=re.state(b||he,j,re),y&&(he="error"==y?he+" error":y)),he},indent:function(j,re,he){var oe=j.context;if(j.tokenize.isInAttribute)return j.tagStart==j.indented?j.stringStartCol+1:j.indented+v;if(oe&&oe.noIndent)return V.Pass;if(j.tokenize!=D&&j.tokenize!=M)return he?he.match(/^(\s*)/)[0].length:0;if(j.tagName)return!1!==h.multilineTagIndentPastTag?j.tagStart+j.tagName.length+2:j.tagStart+v*(h.multilineTagIndentFactor||1);if(h.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:h.htmlMode?"html":"xml",helperType:h.htmlMode?"html":"xml",skipAttribute:function(j){j.state==P&&(j.state=W)},xmlCurrentTag:function(j){return j.tagName?{name:j.tagName,close:"closeTag"==j.type}:null},xmlCurrentContext:function(j){for(var re=[],he=j.context;he;he=he.prev)re.push(he.tagName);return re.reverse()}}}),V.defineMIME("text/xml","xml"),V.defineMIME("application/xml","xml"),V.mimeModes.hasOwnProperty("text/html")||V.defineMIME("text/html",{name:"xml",htmlMode:!0})}(ce(656))},2887:ni=>{if(typeof Element<"u"&&!Element.prototype.matches){var ce=Element.prototype;ce.matches=ce.matchesSelector||ce.mozMatchesSelector||ce.msMatchesSelector||ce.oMatchesSelector||ce.webkitMatchesSelector}ni.exports=function V(K,T){for(;K&&9!==K.nodeType;){if("function"==typeof K.matches&&K.matches(T))return K;K=K.parentNode}}},1527:(ni,Pt,ce)=>{var V=ce(2887);function K(l,v,h,f,_){var b=e.apply(this,arguments);return l.addEventListener(h,b,_),{destroy:function(){l.removeEventListener(h,b,_)}}}function e(l,v,h,f){return function(_){_.delegateTarget=V(_.target,v),_.delegateTarget&&f.call(l,_)}}ni.exports=function T(l,v,h,f,_){return"function"==typeof l.addEventListener?K.apply(null,arguments):"function"==typeof h?K.bind(null,document).apply(null,arguments):("string"==typeof l&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(b){return K(b,v,h,f,_)}))}},8107:function(ni,Pt){var ce,K;void 0!==(K="function"==typeof(ce=function(){return function T(e,l,v){var Q,I,h=window,f="application/octet-stream",_=v||f,b=e,y=!l&&!v&&b,M=document.createElement("a"),D=function(H){return String(H)},x=h.Blob||h.MozBlob||h.WebKitBlob||D,k=l||"download";if(x=x.call?x.bind(h):Blob,"true"===String(this)&&(_=(b=[b,_])[0],b=b[1]),y&&y.length<2048&&(k=y.split("/").pop().split("?")[0],M.href=y,-1!==M.href.indexOf(y))){var d=new XMLHttpRequest;return d.open("GET",y,!0),d.responseType="blob",d.onload=function(H){T(H.target.response,k,f)},setTimeout(function(){d.send()},0),d}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(b)){if(!(b.length>2096103.424&&x!==D))return navigator.msSaveBlob?navigator.msSaveBlob(q(b),k):Z(b);_=(b=q(b)).type||f}else if(/([\x80-\xff])/.test(b)){for(var S=0,R=new Uint8Array(b.length),z=R.length;S{"use strict";var Pt=Object.prototype.hasOwnProperty,ce="~";function V(){}function K(v,h,f){this.fn=v,this.context=h,this.once=f||!1}function T(v,h,f,_,b){if("function"!=typeof f)throw new TypeError("The listener must be a function");var y=new K(f,_||v,b),M=ce?ce+h:h;return v._events[M]?v._events[M].fn?v._events[M]=[v._events[M],y]:v._events[M].push(y):(v._events[M]=y,v._eventsCount++),v}function e(v,h){0==--v._eventsCount?v._events=new V:delete v._events[h]}function l(){this._events=new V,this._eventsCount=0}Object.create&&(V.prototype=Object.create(null),(new V).__proto__||(ce=!1)),l.prototype.eventNames=function(){var f,_,h=[];if(0===this._eventsCount)return h;for(_ in f=this._events)Pt.call(f,_)&&h.push(ce?_.slice(1):_);return Object.getOwnPropertySymbols?h.concat(Object.getOwnPropertySymbols(f)):h},l.prototype.listeners=function(h){var _=this._events[ce?ce+h:h];if(!_)return[];if(_.fn)return[_.fn];for(var b=0,y=_.length,M=new Array(y);b=y.status}function v(b){try{b.dispatchEvent(new MouseEvent("click"))}catch{var y=document.createEvent("MouseEvents");y.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),b.dispatchEvent(y)}}var h="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,f=h.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),_=h.saveAs||("object"!=typeof window||window!==h?function(){}:"download"in HTMLAnchorElement.prototype&&!f?function(b,y,M){var D=h.URL||h.webkitURL,x=document.createElement("a");x.download=y=y||b.name||"download",x.rel="noopener","string"==typeof b?(x.href=b,x.origin===location.origin?v(x):l(x.href)?e(b,y,M):v(x,x.target="_blank")):(x.href=D.createObjectURL(b),setTimeout(function(){D.revokeObjectURL(x.href)},4e4),setTimeout(function(){v(x)},0))}:"msSaveOrOpenBlob"in navigator?function(b,y,M){if(y=y||b.name||"download","string"!=typeof b)navigator.msSaveOrOpenBlob(function T(b,y){return typeof y>"u"?y={autoBom:!1}:"object"!=typeof y&&(console.warn("Deprecated: Expected third argument to be a object"),y={autoBom:!y}),y.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(b.type)?new Blob(["\ufeff",b],{type:b.type}):b}(b,M),y);else if(l(b))e(b,y,M);else{var D=document.createElement("a");D.href=b,D.target="_blank",setTimeout(function(){v(D)})}}:function(b,y,M,D){if((D=D||open("","_blank"))&&(D.document.title=D.document.body.innerText="downloading..."),"string"==typeof b)return e(b,y,M);var x="application/octet-stream"===b.type,k=/constructor/i.test(h.HTMLElement)||h.safari,Q=/CriOS\/[\d]+/.test(navigator.userAgent);if((Q||x&&k||f)&&typeof FileReader<"u"){var I=new FileReader;I.onloadend=function(){var R=I.result;R=Q?R:R.replace(/^data:[^;]*;/,"data:attachment/file;"),D?D.location.href=R:location=R,D=null},I.readAsDataURL(b)}else{var d=h.URL||h.webkitURL,S=d.createObjectURL(b);D?D.location=S:location.href=S,D=null,setTimeout(function(){d.revokeObjectURL(S)},4e4)}});h.saveAs=_.saveAs=_,ni.exports=_})?ce.apply(Pt,[]):ce)&&(ni.exports=K)},1348:ni=>{self,ni.exports=function(){var Pt={"./node_modules/es6-promise/dist/es6-promise.js": -/*!******************************************************!*\ - !*** ./node_modules/es6-promise/dist/es6-promise.js ***! - \******************************************************/function(T,e,l){var h;h=function(){"use strict";function h(ke){return"function"==typeof ke}var _=Array.isArray?Array.isArray:function(ke){return"[object Array]"===Object.prototype.toString.call(ke)},b=0,y=void 0,M=void 0,D=function(it,gt){W[b]=it,W[b+1]=gt,2===(b+=2)&&(M?M(te):J())};var Q=typeof window<"u"?window:void 0,I=Q||{},d=I.MutationObserver||I.WebKitMutationObserver,S=typeof self>"u"&&typeof process<"u"&&"[object process]"==={}.toString.call(process),R=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function G(){var ke=setTimeout;return function(){return ke(te,1)}}var W=new Array(1e3);function te(){for(var ke=0;ke0&&j.length>P&&!j.warned){j.warned=!0;var re=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(G)+" listeners added. Use emitter.setMaxListeners() to increase limit");re.name="MaxListenersExceededWarning",re.emitter=H,re.type=G,re.count=j.length,function h(H){console&&console.warn&&console.warn(H)}(re)}return H}function x(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function k(H,G,W){var te={fired:!1,wrapFn:void 0,target:H,type:G,listener:W},P=x.bind(te);return P.listener=W,te.wrapFn=P,P}function Q(H,G,W){var te=H._events;if(void 0===te)return[];var P=te[G];return void 0===P?[]:"function"==typeof P?W?[P.listener||P]:[P]:W?function R(H){for(var G=new Array(H.length),W=0;W0&&(j=W[0]),j instanceof Error)throw j;var re=new Error("Unhandled error."+(j?" ("+j.message+")":""));throw re.context=j,re}var he=J[G];if(void 0===he)return!1;if("function"==typeof he)l(he,this,W);else{var oe=he.length,Ce=d(he,oe);for(te=0;te=0;j--)if(te[j]===W||te[j].listener===W){re=te[j].listener,J=j;break}if(J<0)return this;0===J?te.shift():function S(H,G){for(;G+1=0;P--)this.removeListener(G,W[P]);return this},_.prototype.listeners=function(G){return Q(this,G,!0)},_.prototype.rawListeners=function(G){return Q(this,G,!1)},_.listenerCount=function(H,G){return"function"==typeof H.listenerCount?H.listenerCount(G):I.call(H,G)},_.prototype.listenerCount=I,_.prototype.eventNames=function(){return this._eventsCount>0?v(this._events):[]}},"./node_modules/webworkify-webpack/index.js": -/*!**************************************************!*\ - !*** ./node_modules/webworkify-webpack/index.js ***! - \**************************************************/function(T,e,l){function v(x){var k={};function Q(d){if(k[d])return k[d].exports;var S=k[d]={i:d,l:!1,exports:{}};return x[d].call(S.exports,S,S.exports,Q),S.l=!0,S.exports}Q.m=x,Q.c=k,Q.i=function(d){return d},Q.d=function(d,S,R){Q.o(d,S)||Object.defineProperty(d,S,{configurable:!1,enumerable:!0,get:R})},Q.r=function(d){Object.defineProperty(d,"__esModule",{value:!0})},Q.n=function(d){var S=d&&d.__esModule?function(){return d.default}:function(){return d};return Q.d(S,"a",S),S},Q.o=function(d,S){return Object.prototype.hasOwnProperty.call(d,S)},Q.p="/",Q.oe=function(d){throw console.error(d),d};var I=Q(Q.s=ENTRY_MODULE);return I.default||I}var h="[\\.|\\-|\\+|\\w|/|@]+",f="\\(\\s*(/\\*.*?\\*/)?\\s*.*?("+h+").*?\\)";function _(x){return(x+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function b(x){return!isNaN(1*x)}function y(x,k,Q){var I={};I[Q]=[];var d=k.toString(),S=d.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!S)return I;for(var q,R=S[1],z=new RegExp("(\\\\n|\\W)"+_(R)+f,"g");q=z.exec(d);)"dll-reference"!==q[3]&&I[Q].push(q[3]);for(z=new RegExp("\\("+_(R)+'\\("(dll-reference\\s('+h+'))"\\)\\)'+f,"g");q=z.exec(d);)x[q[2]]||(I[Q].push(q[1]),x[q[2]]=l(q[1]).m),I[q[2]]=I[q[2]]||[],I[q[2]].push(q[4]);for(var Z=Object.keys(I),H=0;H0},!1)}T.exports=function(x,k){var Q={main:l.m},I=(k=k||{}).all?{main:Object.keys(Q.main)}:function D(x,k){for(var Q={main:[k]},I={main:[]},d={main:{}};M(Q);)for(var S=Object.keys(Q),R=0;R=f[M]&&_0&&y[0].originalDts=M[k].dts&&yM[x].lastSample.originalDts&&y=M[x].lastSample.originalDts&&(x===M.length-1||x0&&(k=this._searchNearestSegmentBefore(D.originalBeginDts)+1),this._lastAppendLocation=k,this._list.splice(k,0,D)},b.prototype.getLastSegmentBefore=function(y){var M=this._searchNearestSegmentBefore(y);return M>=0?this._list[M]:null},b.prototype.getLastSampleBefore=function(y){var M=this.getLastSegmentBefore(y);return null!=M?M.lastSample:null},b.prototype.getLastSyncPointBefore=function(y){for(var M=this._searchNearestSegmentBefore(y),D=this._list[M].syncPoints;0===D.length&&M>0;)M--,D=this._list[M].syncPoints;return D.length>0?D[D.length-1]:null},b}()},"./src/core/mse-controller.js": -/*!************************************!*\ - !*** ./src/core/mse-controller.js ***! - \************************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! events */ -"./node_modules/events/events.js"),h=l.n(v),f=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),_=l( -/*! ../utils/browser.js */ -"./src/utils/browser.js"),b=l( -/*! ./mse-events.js */ -"./src/core/mse-events.js"),y=l( -/*! ./media-segment-info.js */ -"./src/core/media-segment-info.js"),M=l( -/*! ../utils/exception.js */ -"./src/utils/exception.js"),D=function(){function x(k){this.TAG="MSEController",this._config=k,this._emitter=new(h()),this._config.isLive&&null==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new y.IDRSampleList}return x.prototype.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},x.prototype.on=function(k,Q){this._emitter.addListener(k,Q)},x.prototype.off=function(k,Q){this._emitter.removeListener(k,Q)},x.prototype.attachMediaElement=function(k){if(this._mediaSource)throw new M.IllegalStateException("MediaSource has been attached to an HTMLMediaElement!");var Q=this._mediaSource=new window.MediaSource;Q.addEventListener("sourceopen",this.e.onSourceOpen),Q.addEventListener("sourceended",this.e.onSourceEnded),Q.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=k,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),k.src=this._mediaSourceObjectURL},x.prototype.detachMediaElement=function(){if(this._mediaSource){var k=this._mediaSource;for(var Q in this._sourceBuffers){var I=this._pendingSegments[Q];I.splice(0,I.length),this._pendingSegments[Q]=null,this._pendingRemoveRanges[Q]=null,this._lastInitSegments[Q]=null;var d=this._sourceBuffers[Q];if(d){if("closed"!==k.readyState){try{k.removeSourceBuffer(d)}catch(S){f.default.e(this.TAG,S.message)}d.removeEventListener("error",this.e.onSourceBufferError),d.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[Q]=null,this._sourceBuffers[Q]=null}}if("open"===k.readyState)try{k.endOfStream()}catch(S){f.default.e(this.TAG,S.message)}k.removeEventListener("sourceopen",this.e.onSourceOpen),k.removeEventListener("sourceended",this.e.onSourceEnded),k.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},x.prototype.appendInitSegment=function(k,Q){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(k),void this._pendingSegments[k.type].push(k);var I=k,d=""+I.container;I.codec&&I.codec.length>0&&(d+=";codecs="+I.codec);var S=!1;if(f.default.v(this.TAG,"Received Initialization Segment, mimeType: "+d),this._lastInitSegments[I.type]=I,d!==this._mimeTypes[I.type]){if(this._mimeTypes[I.type])f.default.v(this.TAG,"Notice: "+I.type+" mimeType changed, origin: "+this._mimeTypes[I.type]+", target: "+d);else{S=!0;try{var R=this._sourceBuffers[I.type]=this._mediaSource.addSourceBuffer(d);R.addEventListener("error",this.e.onSourceBufferError),R.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(z){return f.default.e(this.TAG,z.message),void this._emitter.emit(b.default.ERROR,{code:z.code,msg:z.message})}}this._mimeTypes[I.type]=d}Q||this._pendingSegments[I.type].push(I),S||this._sourceBuffers[I.type]&&!this._sourceBuffers[I.type].updating&&this._doAppendSegments(),_.default.safari&&"audio/mpeg"===I.container&&I.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=I.mediaDuration/1e3,this._updateMediaSourceDuration())},x.prototype.appendMediaSegment=function(k){var Q=k;this._pendingSegments[Q.type].push(Q),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var I=this._sourceBuffers[Q.type];I&&!I.updating&&!this._hasPendingRemoveRanges()&&this._doAppendSegments()},x.prototype.seek=function(k){for(var Q in this._sourceBuffers)if(this._sourceBuffers[Q]){var I=this._sourceBuffers[Q];if("open"===this._mediaSource.readyState)try{I.abort()}catch(Z){f.default.e(this.TAG,Z.message)}this._idrList.clear();var d=this._pendingSegments[Q];if(d.splice(0,d.length),"closed"!==this._mediaSource.readyState){for(var S=0;S=1&&k-d.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},x.prototype._doCleanupSourceBuffer=function(){var k=this._mediaElement.currentTime;for(var Q in this._sourceBuffers){var I=this._sourceBuffers[Q];if(I){for(var d=I.buffered,S=!1,R=0;R=this._config.autoCleanupMaxBackwardDuration&&(S=!0,this._pendingRemoveRanges[Q].push({start:z,end:k-this._config.autoCleanupMinBackwardDuration})):q0&&(isNaN(Q)||I>Q)&&(f.default.v(this.TAG,"Update MediaSource duration from "+Q+" to "+I),this._mediaSource.duration=I),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},x.prototype._doRemoveRanges=function(){for(var k in this._pendingRemoveRanges)if(this._sourceBuffers[k]&&!this._sourceBuffers[k].updating)for(var Q=this._sourceBuffers[k],I=this._pendingRemoveRanges[k];I.length&&!Q.updating;){var d=I.shift();Q.remove(d.start,d.end)}},x.prototype._doAppendSegments=function(){var k=this._pendingSegments;for(var Q in k)if(this._sourceBuffers[Q]&&!this._sourceBuffers[Q].updating&&k[Q].length>0){var I=k[Q].shift();if(I.timestampOffset){var d=this._sourceBuffers[Q].timestampOffset,S=I.timestampOffset/1e3;Math.abs(d-S)>.1&&(f.default.v(this.TAG,"Update MPEG audio timestampOffset from "+d+" to "+S),this._sourceBuffers[Q].timestampOffset=S),delete I.timestampOffset}if(!I.data||0===I.data.byteLength)continue;try{this._sourceBuffers[Q].appendBuffer(I.data),this._isBufferFull=!1,"video"===Q&&I.hasOwnProperty("info")&&this._idrList.appendArray(I.info.syncPoints)}catch(z){this._pendingSegments[Q].unshift(I),22===z.code?(this._isBufferFull||this._emitter.emit(b.default.BUFFER_FULL),this._isBufferFull=!0):(f.default.e(this.TAG,z.message),this._emitter.emit(b.default.ERROR,{code:z.code,msg:z.message}))}}},x.prototype._onSourceOpen=function(){if(f.default.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var k=this._pendingSourceBufferInit;k.length;){var Q=k.shift();this.appendInitSegment(Q,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(b.default.SOURCE_OPEN)},x.prototype._onSourceEnded=function(){f.default.v(this.TAG,"MediaSource onSourceEnded")},x.prototype._onSourceClose=function(){f.default.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},x.prototype._hasPendingSegments=function(){var k=this._pendingSegments;return k.video.length>0||k.audio.length>0},x.prototype._hasPendingRemoveRanges=function(){var k=this._pendingRemoveRanges;return k.video.length>0||k.audio.length>0},x.prototype._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(b.default.UPDATE_END)},x.prototype._onSourceBufferError=function(k){f.default.e(this.TAG,"SourceBuffer Error: "+k)},x}();e.default=D},"./src/core/mse-events.js": -/*!********************************!*\ - !*** ./src/core/mse-events.js ***! - \********************************/function(T,e,l){"use strict";l.r(e),e.default={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"}},"./src/core/transmuxer.js": -/*!********************************!*\ - !*** ./src/core/transmuxer.js ***! - \********************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! events */ -"./node_modules/events/events.js"),h=l.n(v),f=l( -/*! webworkify-webpack */ -"./node_modules/webworkify-webpack/index.js"),_=l.n(f),b=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),y=l( -/*! ../utils/logging-control.js */ -"./src/utils/logging-control.js"),M=l( -/*! ./transmuxing-controller.js */ -"./src/core/transmuxing-controller.js"),D=l( -/*! ./transmuxing-events.js */ -"./src/core/transmuxing-events.js"),x=l( -/*! ./media-info.js */ -"./src/core/media-info.js"),k=function(){function Q(I,d){if(this.TAG="Transmuxer",this._emitter=new(h()),d.enableWorker&&typeof Worker<"u")try{this._worker=_()( -/*! ./transmuxing-worker */ -"./src/core/transmuxing-worker.js"),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[I,d]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},y.default.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:y.default.getConfig()})}catch{b.default.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new M.default(I,d)}else this._controller=new M.default(I,d);if(this._controller){var S=this._controller;S.on(D.default.IO_ERROR,this._onIOError.bind(this)),S.on(D.default.DEMUX_ERROR,this._onDemuxError.bind(this)),S.on(D.default.INIT_SEGMENT,this._onInitSegment.bind(this)),S.on(D.default.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),S.on(D.default.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),S.on(D.default.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),S.on(D.default.MEDIA_INFO,this._onMediaInfo.bind(this)),S.on(D.default.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),S.on(D.default.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),S.on(D.default.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),S.on(D.default.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}return Q.prototype.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),y.default.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null},Q.prototype.on=function(I,d){this._emitter.addListener(I,d)},Q.prototype.off=function(I,d){this._emitter.removeListener(I,d)},Q.prototype.hasWorker=function(){return null!=this._worker},Q.prototype.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()},Q.prototype.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},Q.prototype.seek=function(I){this._worker?this._worker.postMessage({cmd:"seek",param:I}):this._controller.seek(I)},Q.prototype.pause=function(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},Q.prototype.resume=function(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},Q.prototype._onInitSegment=function(I,d){var S=this;Promise.resolve().then(function(){S._emitter.emit(D.default.INIT_SEGMENT,I,d)})},Q.prototype._onMediaSegment=function(I,d){var S=this;Promise.resolve().then(function(){S._emitter.emit(D.default.MEDIA_SEGMENT,I,d)})},Q.prototype._onLoadingComplete=function(){var I=this;Promise.resolve().then(function(){I._emitter.emit(D.default.LOADING_COMPLETE)})},Q.prototype._onRecoveredEarlyEof=function(){var I=this;Promise.resolve().then(function(){I._emitter.emit(D.default.RECOVERED_EARLY_EOF)})},Q.prototype._onMediaInfo=function(I){var d=this;Promise.resolve().then(function(){d._emitter.emit(D.default.MEDIA_INFO,I)})},Q.prototype._onMetaDataArrived=function(I){var d=this;Promise.resolve().then(function(){d._emitter.emit(D.default.METADATA_ARRIVED,I)})},Q.prototype._onScriptDataArrived=function(I){var d=this;Promise.resolve().then(function(){d._emitter.emit(D.default.SCRIPTDATA_ARRIVED,I)})},Q.prototype._onStatisticsInfo=function(I){var d=this;Promise.resolve().then(function(){d._emitter.emit(D.default.STATISTICS_INFO,I)})},Q.prototype._onIOError=function(I,d){var S=this;Promise.resolve().then(function(){S._emitter.emit(D.default.IO_ERROR,I,d)})},Q.prototype._onDemuxError=function(I,d){var S=this;Promise.resolve().then(function(){S._emitter.emit(D.default.DEMUX_ERROR,I,d)})},Q.prototype._onRecommendSeekpoint=function(I){var d=this;Promise.resolve().then(function(){d._emitter.emit(D.default.RECOMMEND_SEEKPOINT,I)})},Q.prototype._onLoggingConfigChanged=function(I){this._worker&&this._worker.postMessage({cmd:"logging_config",param:I})},Q.prototype._onWorkerMessage=function(I){var d=I.data,S=d.data;if("destroyed"===d.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(d.msg){case D.default.INIT_SEGMENT:case D.default.MEDIA_SEGMENT:this._emitter.emit(d.msg,S.type,S.data);break;case D.default.LOADING_COMPLETE:case D.default.RECOVERED_EARLY_EOF:this._emitter.emit(d.msg);break;case D.default.MEDIA_INFO:Object.setPrototypeOf(S,x.default.prototype),this._emitter.emit(d.msg,S);break;case D.default.METADATA_ARRIVED:case D.default.SCRIPTDATA_ARRIVED:case D.default.STATISTICS_INFO:this._emitter.emit(d.msg,S);break;case D.default.IO_ERROR:case D.default.DEMUX_ERROR:this._emitter.emit(d.msg,S.type,S.info);break;case D.default.RECOMMEND_SEEKPOINT:this._emitter.emit(d.msg,S);break;case"logcat_callback":b.default.emitter.emit("log",S.type,S.logcat)}},Q}();e.default=k},"./src/core/transmuxing-controller.js": -/*!********************************************!*\ - !*** ./src/core/transmuxing-controller.js ***! - \********************************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! events */ -"./node_modules/events/events.js"),h=l.n(v),f=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),_=l( -/*! ../utils/browser.js */ -"./src/utils/browser.js"),b=l( -/*! ./media-info.js */ -"./src/core/media-info.js"),y=l( -/*! ../demux/flv-demuxer.js */ -"./src/demux/flv-demuxer.js"),M=l( -/*! ../remux/mp4-remuxer.js */ -"./src/remux/mp4-remuxer.js"),D=l( -/*! ../demux/demux-errors.js */ -"./src/demux/demux-errors.js"),x=l( -/*! ../io/io-controller.js */ -"./src/io/io-controller.js"),k=l( -/*! ./transmuxing-events.js */ -"./src/core/transmuxing-events.js"),Q=function(){function I(d,S){this.TAG="TransmuxingController",this._emitter=new(h()),this._config=S,d.segments||(d.segments=[{duration:d.duration,filesize:d.filesize,url:d.url}]),"boolean"!=typeof d.cors&&(d.cors=!0),"boolean"!=typeof d.withCredentials&&(d.withCredentials=!1),this._mediaDataSource=d,this._currentSegmentIndex=0;var R=0;this._mediaDataSource.segments.forEach(function(z){z.timestampBase=R,R+=z.duration,z.cors=d.cors,z.withCredentials=d.withCredentials,S.referrerPolicy&&(z.referrerPolicy=S.referrerPolicy)}),!isNaN(R)&&this._mediaDataSource.duration!==R&&(this._mediaDataSource.duration=R),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}return I.prototype.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},I.prototype.on=function(d,S){this._emitter.addListener(d,S)},I.prototype.off=function(d,S){this._emitter.removeListener(d,S)},I.prototype.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},I.prototype._loadSegment=function(d,S){this._currentSegmentIndex=d;var z=this._ioctl=new x.default(this._mediaDataSource.segments[d],this._config,d);z.onError=this._onIOException.bind(this),z.onSeeked=this._onIOSeeked.bind(this),z.onComplete=this._onIOComplete.bind(this),z.onRedirect=this._onIORedirect.bind(this),z.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),S?this._demuxer.bindDataSource(this._ioctl):z.onDataArrival=this._onInitChunkArrival.bind(this),z.open(S)},I.prototype.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},I.prototype._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},I.prototype.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},I.prototype.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},I.prototype.seek=function(d){if(null!=this._mediaInfo&&this._mediaInfo.isSeekable()){var S=this._searchSegmentIndexContains(d);if(S===this._currentSegmentIndex){var R=this._mediaInfo.segments[S];if(null==R)this._pendingSeekTime=d;else{var z=R.getNearestKeyframe(d);this._remuxer.seek(z.milliseconds),this._ioctl.seek(z.fileposition),this._pendingResolveSeekPoint=z.milliseconds}}else{var q=this._mediaInfo.segments[S];null==q?(this._pendingSeekTime=d,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(S)):(z=q.getNearestKeyframe(d),this._internalAbort(),this._remuxer.seek(d),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[S].timestampBase,this._loadSegment(S,z.fileposition),this._pendingResolveSeekPoint=z.milliseconds,this._reportSegmentMediaInfo(S))}this._enableStatisticsReporter()}},I.prototype._searchSegmentIndexContains=function(d){for(var S=this._mediaDataSource.segments,R=S.length-1,z=0;z0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,q=this._demuxer.parseChunks(d,S);else if((z=y.default.probe(d)).match){this._demuxer=new y.default(z,this._config),this._remuxer||(this._remuxer=new M.default(this._config));var Z=this._mediaDataSource;null!=Z.duration&&!isNaN(Z.duration)&&(this._demuxer.overridedDuration=Z.duration),"boolean"==typeof Z.hasAudio&&(this._demuxer.overridedHasAudio=Z.hasAudio),"boolean"==typeof Z.hasVideo&&(this._demuxer.overridedHasVideo=Z.hasVideo),this._demuxer.timestampBase=Z.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),q=this._demuxer.parseChunks(d,S)}else z=null,f.default.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then(function(){R._internalAbort()}),this._emitter.emit(k.default.DEMUX_ERROR,D.default.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),q=0;return q},I.prototype._onMediaInfo=function(d){var S=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},d),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,b.default.prototype));var R=Object.assign({},d);Object.setPrototypeOf(R,b.default.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=R,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then(function(){var z=S._pendingSeekTime;S._pendingSeekTime=null,S.seek(z)})},I.prototype._onMetaDataArrived=function(d){this._emitter.emit(k.default.METADATA_ARRIVED,d)},I.prototype._onScriptDataArrived=function(d){this._emitter.emit(k.default.SCRIPTDATA_ARRIVED,d)},I.prototype._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},I.prototype._onIOComplete=function(d){var R=d+1;R0&&R[0].originalDts===z&&(z=R[0].pts),this._emitter.emit(k.default.RECOMMEND_SEEKPOINT,z)}},I.prototype._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},I.prototype._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},I.prototype._reportSegmentMediaInfo=function(d){var R=Object.assign({},this._mediaInfo.segments[d]);R.duration=this._mediaInfo.duration,R.segmentCount=this._mediaInfo.segmentCount,delete R.segments,delete R.keyframesIndex,this._emitter.emit(k.default.MEDIA_INFO,R)},I.prototype._reportStatisticsInfo=function(){var d={};d.url=this._ioctl.currentURL,d.hasRedirect=this._ioctl.hasRedirect,d.hasRedirect&&(d.redirectedURL=this._ioctl.currentRedirectedURL),d.speed=this._ioctl.currentSpeed,d.loaderType=this._ioctl.loaderType,d.currentSegmentIndex=this._currentSegmentIndex,d.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(k.default.STATISTICS_INFO,d)},I}();e.default=Q},"./src/core/transmuxing-events.js": -/*!****************************************!*\ - !*** ./src/core/transmuxing-events.js ***! - \****************************************/function(T,e,l){"use strict";l.r(e),e.default={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint"}},"./src/core/transmuxing-worker.js": -/*!****************************************!*\ - !*** ./src/core/transmuxing-worker.js ***! - \****************************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! ../utils/logging-control.js */ -"./src/utils/logging-control.js"),h=l( -/*! ../utils/polyfill.js */ -"./src/utils/polyfill.js"),f=l( -/*! ./transmuxing-controller.js */ -"./src/core/transmuxing-controller.js"),_=l( -/*! ./transmuxing-events.js */ -"./src/core/transmuxing-events.js");e.default=function(y){var D=null,x=function W(te,P){y.postMessage({msg:"logcat_callback",data:{type:te,logcat:P}})}.bind(this);function k(te,P){y.postMessage({msg:_.default.INIT_SEGMENT,data:{type:te,data:P}},[P.data])}function Q(te,P){y.postMessage({msg:_.default.MEDIA_SEGMENT,data:{type:te,data:P}},[P.data])}function I(){y.postMessage({msg:_.default.LOADING_COMPLETE})}function d(){y.postMessage({msg:_.default.RECOVERED_EARLY_EOF})}function S(te){y.postMessage({msg:_.default.MEDIA_INFO,data:te})}function R(te){y.postMessage({msg:_.default.METADATA_ARRIVED,data:te})}function z(te){y.postMessage({msg:_.default.SCRIPTDATA_ARRIVED,data:te})}function q(te){y.postMessage({msg:_.default.STATISTICS_INFO,data:te})}function Z(te,P){y.postMessage({msg:_.default.IO_ERROR,data:{type:te,info:P}})}function H(te,P){y.postMessage({msg:_.default.DEMUX_ERROR,data:{type:te,info:P}})}function G(te){y.postMessage({msg:_.default.RECOMMEND_SEEKPOINT,data:te})}h.default.install(),y.addEventListener("message",function(te){switch(te.data.cmd){case"init":(D=new f.default(te.data.param[0],te.data.param[1])).on(_.default.IO_ERROR,Z.bind(this)),D.on(_.default.DEMUX_ERROR,H.bind(this)),D.on(_.default.INIT_SEGMENT,k.bind(this)),D.on(_.default.MEDIA_SEGMENT,Q.bind(this)),D.on(_.default.LOADING_COMPLETE,I.bind(this)),D.on(_.default.RECOVERED_EARLY_EOF,d.bind(this)),D.on(_.default.MEDIA_INFO,S.bind(this)),D.on(_.default.METADATA_ARRIVED,R.bind(this)),D.on(_.default.SCRIPTDATA_ARRIVED,z.bind(this)),D.on(_.default.STATISTICS_INFO,q.bind(this)),D.on(_.default.RECOMMEND_SEEKPOINT,G.bind(this));break;case"destroy":D&&(D.destroy(),D=null),y.postMessage({msg:"destroyed"});break;case"start":D.start();break;case"stop":D.stop();break;case"seek":D.seek(te.data.param);break;case"pause":D.pause();break;case"resume":D.resume();break;case"logging_config":var P=te.data.param;v.default.applyConfig(P),!0===P.enableCallback?v.default.addLogListener(x):v.default.removeLogListener(x)}})}},"./src/demux/amf-parser.js": -/*!*********************************!*\ - !*** ./src/demux/amf-parser.js ***! - \*********************************/function(T,e,l){"use strict";l.r(e);var y,v=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),h=l( -/*! ../utils/utf8-conv.js */ -"./src/utils/utf8-conv.js"),f=l( -/*! ../utils/exception.js */ -"./src/utils/exception.js"),_=(y=new ArrayBuffer(2),new DataView(y).setInt16(0,256,!0),256===new Int16Array(y)[0]),b=function(){function y(){}return y.parseScriptData=function(M,D,x){var k={};try{var Q=y.parseValue(M,D,x),I=y.parseValue(M,D+Q.size,x-Q.size);k[Q.data]=I.data}catch(d){v.default.e("AMF",d.toString())}return k},y.parseObject=function(M,D,x){if(x<3)throw new f.IllegalStateException("Data not enough when parse ScriptDataObject");var k=y.parseString(M,D,x),Q=y.parseValue(M,D+k.size,x-k.size);return{data:{name:k.data,value:Q.data},size:k.size+Q.size,objectEnd:Q.objectEnd}},y.parseVariable=function(M,D,x){return y.parseObject(M,D,x)},y.parseString=function(M,D,x){if(x<2)throw new f.IllegalStateException("Data not enough when parse String");var Q=new DataView(M,D,x).getUint16(0,!_);return{data:Q>0?(0,h.default)(new Uint8Array(M,D+2,Q)):"",size:2+Q}},y.parseLongString=function(M,D,x){if(x<4)throw new f.IllegalStateException("Data not enough when parse LongString");var Q=new DataView(M,D,x).getUint32(0,!_);return{data:Q>0?(0,h.default)(new Uint8Array(M,D+4,Q)):"",size:4+Q}},y.parseDate=function(M,D,x){if(x<10)throw new f.IllegalStateException("Data size invalid when parse Date");var k=new DataView(M,D,x),Q=k.getFloat64(0,!_),I=k.getInt16(8,!_);return{data:new Date(Q+=60*I*1e3),size:10}},y.parseValue=function(M,D,x){if(x<1)throw new f.IllegalStateException("Data not enough when parse Value");var d,k=new DataView(M,D,x),Q=1,I=k.getUint8(0),S=!1;try{switch(I){case 0:d=k.getFloat64(1,!_),Q+=8;break;case 1:d=!!k.getUint8(1),Q+=1;break;case 2:var z=y.parseString(M,D+1,x-1);d=z.data,Q+=z.size;break;case 3:d={};var q=0;for(9==(16777215&k.getUint32(x-4,!_))&&(q=3);Q32)throw new v.InvalidArgumentException("ExpGolomb: readBits() bits exceeded max 32bits!");if(_<=this._current_word_bits_left){var b=this._current_word>>>32-_;return this._current_word<<=_,this._current_word_bits_left-=_,b}var y=this._current_word_bits_left?this._current_word:0;y>>>=32-this._current_word_bits_left;var M=_-this._current_word_bits_left;this._fillCurrentWord();var D=Math.min(M,this._current_word_bits_left),x=this._current_word>>>32-D;return this._current_word<<=D,this._current_word_bits_left-=D,y<>>_)return this._current_word<<=_,this._current_word_bits_left-=_,_;return this._fillCurrentWord(),_+this._skipLeadingZero()},f.prototype.readUEG=function(){var _=this._skipLeadingZero();return this.readBits(_+1)-1},f.prototype.readSEG=function(){var _=this.readUEG();return 1&_?_+1>>>1:-1*(_>>>1)},f}();e.default=h},"./src/demux/flv-demuxer.js": -/*!**********************************!*\ - !*** ./src/demux/flv-demuxer.js ***! - \**********************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),h=l( -/*! ./amf-parser.js */ -"./src/demux/amf-parser.js"),f=l( -/*! ./sps-parser.js */ -"./src/demux/sps-parser.js"),_=l( -/*! ./demux-errors.js */ -"./src/demux/demux-errors.js"),b=l( -/*! ../core/media-info.js */ -"./src/core/media-info.js"),y=l( -/*! ../utils/exception.js */ -"./src/utils/exception.js");var k=function(){function Q(I,d){var S;this.TAG="FLVDemuxer",this._config=d,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=I.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=I.hasAudioTrack,this._hasVideo=I.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new b.default,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=(S=new ArrayBuffer(2),new DataView(S).setInt16(0,256,!0),256===new Int16Array(S)[0])}return Q.prototype.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null},Q.probe=function(I){var d=new Uint8Array(I),S={match:!1};if(70!==d[0]||76!==d[1]||86!==d[2]||1!==d[3])return S;var R=(4&d[4])>>>2!=0,z=0!=(1&d[4]),q=function x(Q,I){return Q[I]<<24|Q[I+1]<<16|Q[I+2]<<8|Q[I+3]}(d,5);return q<9?S:{match:!0,consumed:q,dataOffset:q,hasAudioTrack:R,hasVideoTrack:z}},Q.prototype.bindDataSource=function(I){return I.onDataArrival=this.parseChunks.bind(this),this},Object.defineProperty(Q.prototype,"onTrackMetadata",{get:function(){return this._onTrackMetadata},set:function(I){this._onTrackMetadata=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"onMediaInfo",{get:function(){return this._onMediaInfo},set:function(I){this._onMediaInfo=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"onMetaDataArrived",{get:function(){return this._onMetaDataArrived},set:function(I){this._onMetaDataArrived=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"onScriptDataArrived",{get:function(){return this._onScriptDataArrived},set:function(I){this._onScriptDataArrived=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"onError",{get:function(){return this._onError},set:function(I){this._onError=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"onDataAvailable",{get:function(){return this._onDataAvailable},set:function(I){this._onDataAvailable=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"timestampBase",{get:function(){return this._timestampBase},set:function(I){this._timestampBase=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"overridedDuration",{get:function(){return this._duration},set:function(I){this._durationOverrided=!0,this._duration=I,this._mediaInfo.duration=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"overridedHasAudio",{set:function(I){this._hasAudioFlagOverrided=!0,this._hasAudio=I,this._mediaInfo.hasAudio=I},enumerable:!1,configurable:!0}),Object.defineProperty(Q.prototype,"overridedHasVideo",{set:function(I){this._hasVideoFlagOverrided=!0,this._hasVideo=I,this._mediaInfo.hasVideo=I},enumerable:!1,configurable:!0}),Q.prototype.resetMediaInfo=function(){this._mediaInfo=new b.default},Q.prototype._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},Q.prototype.parseChunks=function(I,d){if(!(this._onError&&this._onMediaInfo&&this._onTrackMetadata&&this._onDataAvailable))throw new y.IllegalStateException("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var S=0,R=this._littleEndian;if(0===d){if(!(I.byteLength>13))return 0;S=Q.probe(I).dataOffset}for(this._firstParse&&(this._firstParse=!1,d+S!==this._dataOffset&&v.default.w(this.TAG,"First time parsing but chunk byteStart invalid!"),0!==(q=new DataView(I,S)).getUint32(0,!R)&&v.default.w(this.TAG,"PrevTagSize0 !== 0 !!!"),S+=4);SI.byteLength)break;var H=q.getUint8(0),G=16777215&q.getUint32(0,!R);if(S+11+G+4>I.byteLength)break;if(8===H||9===H||18===H){var W=q.getUint8(4),te=q.getUint8(5),j=q.getUint8(6)|te<<8|W<<16|q.getUint8(7)<<24;0!=(16777215&q.getUint32(7,!R))&&v.default.w(this.TAG,"Meet tag which has StreamID != 0!");var he=S+11;switch(H){case 8:this._parseAudioData(I,he,G,j);break;case 9:this._parseVideoData(I,he,G,j,d+S);break;case 18:this._parseScriptData(I,he,G)}var oe=q.getUint32(11+G,!R);oe!==11+G&&v.default.w(this.TAG,"Invalid PrevTagSize "+oe),S+=11+G+4}else v.default.w(this.TAG,"Unsupported tag type "+H+", skipped"),S+=11+G+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),S},Q.prototype._parseScriptData=function(I,d,S){var R=h.default.parseScriptData(I,d,S);if(R.hasOwnProperty("onMetaData")){if(null==R.onMetaData||"object"!=typeof R.onMetaData)return void v.default.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&v.default.w(this.TAG,"Found another onMetaData tag!"),this._metadata=R;var z=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},z)),"boolean"==typeof z.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=z.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"==typeof z.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=z.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"==typeof z.audiodatarate&&(this._mediaInfo.audioDataRate=z.audiodatarate),"number"==typeof z.videodatarate&&(this._mediaInfo.videoDataRate=z.videodatarate),"number"==typeof z.width&&(this._mediaInfo.width=z.width),"number"==typeof z.height&&(this._mediaInfo.height=z.height),"number"==typeof z.duration){if(!this._durationOverrided){var q=Math.floor(z.duration*this._timescale);this._duration=q,this._mediaInfo.duration=q}}else this._mediaInfo.duration=0;if("number"==typeof z.framerate){var Z=Math.floor(1e3*z.framerate);if(Z>0){var H=Z/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=H,this._referenceFrameRate.fps_num=Z,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=H}}"object"==typeof z.keyframes?(this._mediaInfo.hasKeyframesIndex=!0,this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(z.keyframes),z.keyframes=null):this._mediaInfo.hasKeyframesIndex=!1,this._dispatch=!1,this._mediaInfo.metadata=z,v.default.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(R).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},R))},Q.prototype._parseKeyframesIndex=function(I){for(var d=[],S=[],R=1;R>>4;if(2!==H&&10!==H)return void this._onError(_.default.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+H);var G,W=(12&Z)>>>2;if(!(W>=0&&W<=4))return void this._onError(_.default.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+W);G=this._flvSoundRateTable[W];var P=1&Z,J=this._audioMetadata,j=this._audioTrack;if(J||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(J=this._audioMetadata={}).type="audio",J.id=j.id,J.timescale=this._timescale,J.duration=this._duration,J.audioSampleRate=G,J.channelCount=0===P?1:2),10===H){var re=this._parseAACAudioData(I,d+1,S-1);if(null==re)return;0===re.packetType?(J.config&&v.default.w(this.TAG,"Found another AudioSpecificConfig!"),J.audioSampleRate=(he=re.data).samplingRate,J.channelCount=he.channelCount,J.codec=he.codec,J.originalCodec=he.originalCodec,J.config=he.config,J.refSampleDuration=1024/J.audioSampleRate*J.timescale,v.default.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",J),(oe=this._mediaInfo).audioCodec=J.originalCodec,oe.audioSampleRate=J.audioSampleRate,oe.audioChannelCount=J.channelCount,oe.hasVideo?null!=oe.videoCodec&&(oe.mimeType='video/x-flv; codecs="'+oe.videoCodec+","+oe.audioCodec+'"'):oe.mimeType='video/x-flv; codecs="'+oe.audioCodec+'"',oe.isComplete()&&this._onMediaInfo(oe)):1===re.packetType?(j.samples.push({unit:re.data,length:re.data.byteLength,dts:Ce=this._timestampBase+R,pts:Ce}),j.length+=re.data.length):v.default.e(this.TAG,"Flv: Unsupported AAC data type "+re.packetType)}else if(2===H){if(!J.codec){var he,oe;if(null==(he=this._parseMP3AudioData(I,d+1,S-1,!0)))return;J.audioSampleRate=he.samplingRate,J.channelCount=he.channelCount,J.codec=he.codec,J.originalCodec=he.originalCodec,J.refSampleDuration=1152/J.audioSampleRate*J.timescale,v.default.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",J),(oe=this._mediaInfo).audioCodec=J.codec,oe.audioSampleRate=J.audioSampleRate,oe.audioChannelCount=J.channelCount,oe.audioDataRate=he.bitRate,oe.hasVideo?null!=oe.videoCodec&&(oe.mimeType='video/x-flv; codecs="'+oe.videoCodec+","+oe.audioCodec+'"'):oe.mimeType='video/x-flv; codecs="'+oe.audioCodec+'"',oe.isComplete()&&this._onMediaInfo(oe)}var Ce,ze=this._parseMP3AudioData(I,d+1,S-1,!1);if(null==ze)return;j.samples.push({unit:ze,length:ze.byteLength,dts:Ce=this._timestampBase+R,pts:Ce}),j.length+=ze.length}}},Q.prototype._parseAACAudioData=function(I,d,S){if(!(S<=1)){var R={},z=new Uint8Array(I,d,S);return R.packetType=z[0],R.data=0===z[0]?this._parseAACAudioSpecificConfig(I,d+1,S-1):z.subarray(1),R}v.default.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},Q.prototype._parseAACAudioSpecificConfig=function(I,d,S){var Z,G,R=new Uint8Array(I,d,S),z=null,q=0,W=null;if(q=Z=R[0]>>>3,(G=(7&R[0])<<1|R[1]>>>7)<0||G>=this._mpegSamplingRates.length)this._onError(_.default.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var te=this._mpegSamplingRates[G],P=(120&R[1])>>>3;if(!(P<0||P>=8)){5===q&&(W=(7&R[1])<<1|R[2]>>>7);var J=self.navigator.userAgent.toLowerCase();return-1!==J.indexOf("firefox")?G>=6?(q=5,z=new Array(4),W=G-3):(q=2,z=new Array(2),W=G):-1!==J.indexOf("android")?(q=2,z=new Array(2),W=G):(q=5,W=G,z=new Array(4),G>=6?W=G-3:1===P&&(q=2,z=new Array(2),W=G)),z[0]=q<<3,z[0]|=(15&G)>>>1,z[1]=(15&G)<<7,z[1]|=(15&P)<<3,5===q&&(z[1]|=(15&W)>>>1,z[2]=(1&W)<<7,z[2]|=8,z[3]=0),{config:z,samplingRate:te,channelCount:P,codec:"mp4a.40."+q,originalCodec:"mp4a.40."+Z}}this._onError(_.default.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},Q.prototype._parseMP3AudioData=function(I,d,S,R){if(!(S<4)){var q=new Uint8Array(I,d,S),Z=null;if(R){if(255!==q[0])return;var G=(6&q[1])>>1,W=(240&q[2])>>>4,te=(12&q[2])>>>2,J=3!=(q[3]>>>6&3)?2:1,j=0,re=0;switch(q[1]>>>3&3){case 0:j=this._mpegAudioV25SampleRateTable[te];break;case 2:j=this._mpegAudioV20SampleRateTable[te];break;case 3:j=this._mpegAudioV10SampleRateTable[te]}switch(G){case 1:W>>4,H=15&q;if(7!==H)return void this._onError(_.default.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+H);this._parseAVCVideoPacket(I,d+1,S-1,R,z,Z)}},Q.prototype._parseAVCVideoPacket=function(I,d,S,R,z,q){if(S<4)v.default.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var Z=this._littleEndian,H=new DataView(I,d,S),G=H.getUint8(0),te=(16777215&H.getUint32(0,!Z))<<8>>8;if(0===G)this._parseAVCDecoderConfigurationRecord(I,d+4,S-4);else if(1===G)this._parseAVCVideoData(I,d+4,S-4,R,z,q,te);else if(2!==G)return void this._onError(_.default.FORMAT_ERROR,"Flv: Invalid video packet type "+G)}},Q.prototype._parseAVCDecoderConfigurationRecord=function(I,d,S){if(S<7)v.default.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var R=this._videoMetadata,z=this._videoTrack,q=this._littleEndian,Z=new DataView(I,d,S);R?typeof R.avcc<"u"&&v.default.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(R=this._videoMetadata={}).type="video",R.id=z.id,R.timescale=this._timescale,R.duration=this._duration);var H=Z.getUint8(0),G=Z.getUint8(1);if(Z.getUint8(2),Z.getUint8(3),1===H&&0!==G)if(this._naluLengthSize=1+(3&Z.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var P=31&Z.getUint8(5);if(0!==P){P>1&&v.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+P);for(var J=6,j=0;j1&&v.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+Oe),J++,j=0;j=S){v.default.w(this.TAG,"Malformed Nalu near timestamp "+j+", offset = "+P+", dataSize = "+S);break}var he=G.getUint32(P,!H);if(3===J&&(he>>>=8),he>S-J)return void v.default.w(this.TAG,"Malformed Nalus near timestamp "+j+", NaluSize > DataSize!");var oe=31&G.getUint8(P+J);5===oe&&(re=!0);var Ce=new Uint8Array(I,d+P,J+he);W.push({type:oe,data:Ce}),te+=Ce.byteLength,P+=J+he}if(W.length){var ze=this._videoTrack,_e={units:W,length:te,isKeyframe:re,dts:j,cts:Z,pts:j+Z};re&&(_e.fileposition=z),ze.samples.push(_e),ze.length+=te}},Q}();e.default=k},"./src/demux/sps-parser.js": -/*!*********************************!*\ - !*** ./src/demux/sps-parser.js ***! - \*********************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! ./exp-golomb.js */ -"./src/demux/exp-golomb.js"),h=function(){function f(){}return f._ebsp2rbsp=function(_){for(var b=_,y=b.byteLength,M=new Uint8Array(y),D=0,x=0;x=2&&3===b[x]&&0===b[x-1]&&0===b[x-2]||(M[D]=b[x],D++);return new Uint8Array(M.buffer,0,D)},f.parseSPS=function(_){var b=f._ebsp2rbsp(_),y=new v.default(b);y.readByte();var M=y.readByte();y.readByte();var D=y.readByte();y.readUEG();var x=f.getProfileString(M),k=f.getLevelString(D),Q=1,I=420,S=8;if((100===M||110===M||122===M||244===M||44===M||83===M||86===M||118===M||128===M||138===M||144===M)&&(3===(Q=y.readUEG())&&y.readBits(1),Q<=3&&(I=[0,420,422,444][Q]),S=y.readUEG()+8,y.readUEG(),y.readBits(1),y.readBool()))for(var R=3!==Q?8:12,z=0;z0&&ye<16?(oe=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][ye-1],Ce=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][ye-1]):255===ye&&(oe=y.readByte()<<8|y.readByte(),Ce=y.readByte()<<8|y.readByte())}if(y.readBool()&&y.readBool(),y.readBool()&&(y.readBits(4),y.readBool()&&y.readBits(24)),y.readBool()&&(y.readUEG(),y.readUEG()),y.readBool()){var Ee=y.readBits(32),Fe=y.readBits(32);ze=y.readBool(),me=(_e=Fe)/(Ae=2*Ee)}}var Ve=1;(1!==oe||1!==Ce)&&(Ve=oe/Ce);var mt=0,St=0;0===Q?(mt=1,St=2-te):(mt=3===Q?1:2,St=(1===Q?2:1)*(2-te));var be=16*(G+1),je=16*(W+1)*(2-te);be-=(P+J)*mt,je-=(j+re)*St;var Ke=Math.ceil(be*Ve);return y.destroy(),y=null,{profile_string:x,level_string:k,bit_depth:S,ref_frames:H,chroma_format:I,chroma_format_string:f.getChromaFormatString(I),frame_rate:{fixed:ze,fps:me,fps_den:Ae,fps_num:_e},sar_ratio:{width:oe,height:Ce},codec_size:{width:be,height:je},present_size:{width:Ke,height:je}}},f._skipScalingList=function(_,b){for(var y=8,M=8,x=0;x=15048)}catch{return!1}},M.prototype.destroy=function(){this.isWorking()&&this.abort(),y.prototype.destroy.call(this)},M.prototype.open=function(D,x){var k=this;this._dataSource=D,this._range=x;var Q=D.url;this._config.reuseRedirectedURL&&null!=D.redirectedURL&&(Q=D.redirectedURL);var I=this._seekHandler.getConfig(Q,x),d=new self.Headers;if("object"==typeof I.headers){var S=I.headers;for(var R in S)S.hasOwnProperty(R)&&d.append(R,S[R])}var z={method:"GET",headers:d,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"==typeof this._config.headers)for(var R in this._config.headers)d.append(R,this._config.headers[R]);!1===D.cors&&(z.mode="same-origin"),D.withCredentials&&(z.credentials="include"),D.referrerPolicy&&(z.referrerPolicy=D.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,z.signal=this._abortController.signal),this._status=h.LoaderStatus.kConnecting,self.fetch(I.url,z).then(function(q){if(k._requestAbort)return k._status=h.LoaderStatus.kIdle,void q.body.cancel();if(q.ok&&q.status>=200&&q.status<=299){if(q.url!==I.url&&k._onURLRedirect){var Z=k._seekHandler.removeURLParameters(q.url);k._onURLRedirect(Z)}var H=q.headers.get("Content-Length");return null!=H&&(k._contentLength=parseInt(H),0!==k._contentLength&&k._onContentLengthKnown&&k._onContentLengthKnown(k._contentLength)),k._pump.call(k,q.body.getReader())}if(k._status=h.LoaderStatus.kError,!k._onError)throw new f.RuntimeException("FetchStreamLoader: Http code invalid, "+q.status+" "+q.statusText);k._onError(h.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:q.status,msg:q.statusText})}).catch(function(q){if(!k._abortController||!k._abortController.signal.aborted){if(k._status=h.LoaderStatus.kError,!k._onError)throw q;k._onError(h.LoaderErrors.EXCEPTION,{code:-1,msg:q.message})}})},M.prototype.abort=function(){if(this._requestAbort=!0,(this._status!==h.LoaderStatus.kBuffering||!v.default.chrome)&&this._abortController)try{this._abortController.abort()}catch{}},M.prototype._pump=function(D){var x=this;return D.read().then(function(k){if(k.done)if(null!==x._contentLength&&x._receivedLength0&&(this._stashInitialSize=S.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===S.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=d,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(d.url),this._refTotalLength=d.filesize?d.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new h.default,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}return I.prototype.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},I.prototype.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},I.prototype.isPaused=function(){return this._paused},Object.defineProperty(I.prototype,"status",{get:function(){return this._loader.status},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"extraData",{get:function(){return this._extraData},set:function(d){this._extraData=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(d){this._onDataArrival=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"onSeeked",{get:function(){return this._onSeeked},set:function(d){this._onSeeked=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"onError",{get:function(){return this._onError},set:function(d){this._onError=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"onComplete",{get:function(){return this._onComplete},set:function(d){this._onComplete=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"onRedirect",{get:function(){return this._onRedirect},set:function(d){this._onRedirect=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"onRecoveredEarlyEof",{get:function(){return this._onRecoveredEarlyEof},set:function(d){this._onRecoveredEarlyEof=d},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"currentURL",{get:function(){return this._dataSource.url},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"hasRedirect",{get:function(){return null!=this._redirectedURL||null!=this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"currentRedirectedURL",{get:function(){return this._redirectedURL||this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"currentSpeed",{get:function(){return this._loaderClass===y.default?this._loader.currentSpeed:this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"loaderType",{get:function(){return this._loader.type},enumerable:!1,configurable:!0}),I.prototype._selectSeekHandler=function(){var d=this._config;if("range"===d.seekType)this._seekHandler=new D.default(this._config.rangeLoadZeroStart);else if("param"===d.seekType)this._seekHandler=new x.default(d.seekParamStart||"bstart",d.seekParamEnd||"bend");else{if("custom"!==d.seekType)throw new k.InvalidArgumentException("Invalid seekType in config: "+d.seekType);if("function"!=typeof d.customSeekHandler)throw new k.InvalidArgumentException("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new d.customSeekHandler}},I.prototype._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=M.default;else if(_.default.isSupported())this._loaderClass=_.default;else if(b.default.isSupported())this._loaderClass=b.default;else{if(!y.default.isSupported())throw new k.RuntimeException("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=y.default}},I.prototype._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},I.prototype.open=function(d){this._currentRange={from:0,to:-1},d&&(this._currentRange.from=d),this._speedSampler.reset(),d||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},I.prototype.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},I.prototype.pause=function(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},I.prototype.resume=function(){if(this._paused){this._paused=!1;var d=this._resumeFrom;this._resumeFrom=0,this._internalSeek(d,!0)}},I.prototype.seek=function(d){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(d,!0)},I.prototype._internalSeek=function(d,S){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(S),this._loader.destroy(),this._loader=null;var R={from:d,to:-1};this._currentRange={from:R.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,R),this._onSeeked&&this._onSeeked()},I.prototype.updateUrl=function(d){if(!d||"string"!=typeof d||0===d.length)throw new k.InvalidArgumentException("Url must be a non-empty string!");this._dataSource.url=d},I.prototype._expandBuffer=function(d){for(var S=this._stashSize;S+10485760){var z=new Uint8Array(this._stashBuffer,0,this._stashUsed);new Uint8Array(R,0,S).set(z,0)}this._stashBuffer=R,this._bufferSize=S}},I.prototype._normalizeSpeed=function(d){var S=this._speedNormalizeList,R=S.length-1,z=0,q=0,Z=R;if(d=S[z]&&d=512&&d<=1024?Math.floor(1.5*d):2*d)>8192&&(S=8192);var R=1024*S+1048576;this._bufferSize0){var te=this._stashBuffer.slice(0,this._stashUsed);if((Z=this._dispatchChunks(te,this._stashByteStart))0){var W=new Uint8Array(te,Z);G.set(W,0),this._stashUsed=W.byteLength,this._stashByteStart+=Z}}else this._stashUsed=0,this._stashByteStart+=Z;this._stashUsed+d.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+d.byteLength),G=new Uint8Array(this._stashBuffer,0,this._bufferSize)),G.set(new Uint8Array(d),this._stashUsed),this._stashUsed+=d.byteLength}else(Z=this._dispatchChunks(d,S))this._bufferSize&&(this._expandBuffer(H),G=new Uint8Array(this._stashBuffer,0,this._bufferSize)),G.set(new Uint8Array(d,Z),0),this._stashUsed+=H,this._stashByteStart=S+Z)}else if(0===this._stashUsed){var H;(Z=this._dispatchChunks(d,S))this._bufferSize&&this._expandBuffer(H),(G=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(d,Z),0),this._stashUsed+=H,this._stashByteStart=S+Z)}else{var Z;this._stashUsed+d.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+d.byteLength),(G=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(d),this._stashUsed),this._stashUsed+=d.byteLength,(Z=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart))0&&(W=new Uint8Array(this._stashBuffer,Z),G.set(W,0)),this._stashUsed-=Z,this._stashByteStart+=Z}}},I.prototype._flushStashBuffer=function(d){if(this._stashUsed>0){var S=this._stashBuffer.slice(0,this._stashUsed),R=this._dispatchChunks(S,this._stashByteStart),z=S.byteLength-R;if(R0){var q=new Uint8Array(this._stashBuffer,0,this._bufferSize),Z=new Uint8Array(S,R);q.set(Z,0),this._stashUsed=Z.byteLength,this._stashByteStart+=R}return 0}v.default.w(this.TAG,z+" bytes unconsumed data remain when flush buffer, dropped")}return this._stashUsed=0,this._stashByteStart=0,z}return 0},I.prototype._onLoaderComplete=function(d,S){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)},I.prototype._onLoaderError=function(d,S){if(v.default.e(this.TAG,"Loader error, code = "+S.code+", msg = "+S.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,d=f.LoaderErrors.UNRECOVERABLE_EARLY_EOF),d===f.LoaderErrors.EARLY_EOF){if(!this._config.isLive&&this._totalLength){var R=this._currentRange.to+1;return void(R0)for(var D=b.split("&"),x=0;x0&&(M+="&"),M+=D[x])}return 0===M.length?_:_+"?"+M},h}();e.default=v},"./src/io/range-seek-handler.js": -/*!**************************************!*\ - !*** ./src/io/range-seek-handler.js ***! - \**************************************/function(T,e,l){"use strict";l.r(e);var v=function(){function h(f){this._zeroStart=f||!1}return h.prototype.getConfig=function(f,_){var b={};if(0!==_.from||-1!==_.to){var y;y=-1!==_.to?"bytes="+_.from.toString()+"-"+_.to.toString():"bytes="+_.from.toString()+"-",b.Range=y}else this._zeroStart&&(b.Range="bytes=0-");return{url:f,headers:b}},h.prototype.removeURLParameters=function(f){return f},h}();e.default=v},"./src/io/speed-sampler.js": -/*!*********************************!*\ - !*** ./src/io/speed-sampler.js ***! - \*********************************/function(T,e,l){"use strict";l.r(e);var v=function(){function h(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,this._now=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now}return h.prototype.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},h.prototype.addBytes=function(f){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=f,this._totalBytes+=f):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=f,this._totalBytes+=f):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=f,this._totalBytes+=f,this._lastCheckpoint=this._now())},Object.defineProperty(h.prototype,"currentKBps",{get:function(){this.addBytes(0);var f=(this._now()-this._lastCheckpoint)/1e3;return 0==f&&(f=1),this._intervalBytes/f/1024},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"lastSecondKBps",{get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"averageKBps",{get:function(){var f=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/f/1024},enumerable:!1,configurable:!0}),h}();e.default=v},"./src/io/websocket-loader.js": -/*!************************************!*\ - !*** ./src/io/websocket-loader.js ***! - \************************************/function(T,e,l){"use strict";l.r(e);var b,v=l( -/*! ./loader.js */ -"./src/io/loader.js"),h=l( -/*! ../utils/exception.js */ -"./src/utils/exception.js"),f=(b=function(y,M){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(D,x){D.__proto__=x}||function(D,x){for(var k in x)Object.prototype.hasOwnProperty.call(x,k)&&(D[k]=x[k])})(y,M)},function(y,M){if("function"!=typeof M&&null!==M)throw new TypeError("Class extends value "+String(M)+" is not a constructor or null");function D(){this.constructor=y}b(y,M),y.prototype=null===M?Object.create(M):(D.prototype=M.prototype,new D)}),_=function(b){function y(){var M=b.call(this,"websocket-loader")||this;return M.TAG="WebSocketLoader",M._needStash=!0,M._ws=null,M._requestAbort=!1,M._receivedLength=0,M}return f(y,b),y.isSupported=function(){try{return typeof self.WebSocket<"u"}catch{return!1}},y.prototype.destroy=function(){this._ws&&this.abort(),b.prototype.destroy.call(this)},y.prototype.open=function(M){try{var D=this._ws=new self.WebSocket(M.url);D.binaryType="arraybuffer",D.onopen=this._onWebSocketOpen.bind(this),D.onclose=this._onWebSocketClose.bind(this),D.onmessage=this._onWebSocketMessage.bind(this),D.onerror=this._onWebSocketError.bind(this),this._status=v.LoaderStatus.kConnecting}catch(k){this._status=v.LoaderStatus.kError;var x={code:k.code,msg:k.message};if(!this._onError)throw new h.RuntimeException(x.msg);this._onError(v.LoaderErrors.EXCEPTION,x)}},y.prototype.abort=function(){var M=this._ws;M&&(0===M.readyState||1===M.readyState)&&(this._requestAbort=!0,M.close()),this._ws=null,this._status=v.LoaderStatus.kComplete},y.prototype._onWebSocketOpen=function(M){this._status=v.LoaderStatus.kBuffering},y.prototype._onWebSocketClose=function(M){!0!==this._requestAbort?(this._status=v.LoaderStatus.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1)):this._requestAbort=!1},y.prototype._onWebSocketMessage=function(M){var D=this;if(M.data instanceof ArrayBuffer)this._dispatchArrayBuffer(M.data);else if(M.data instanceof Blob){var x=new FileReader;x.onload=function(){D._dispatchArrayBuffer(x.result)},x.readAsArrayBuffer(M.data)}else{this._status=v.LoaderStatus.kError;var k={code:-1,msg:"Unsupported WebSocket message type: "+M.data.constructor.name};if(!this._onError)throw new h.RuntimeException(k.msg);this._onError(v.LoaderErrors.EXCEPTION,k)}},y.prototype._dispatchArrayBuffer=function(M){var D=M,x=this._receivedLength;this._receivedLength+=D.byteLength,this._onDataArrival&&this._onDataArrival(D,x,this._receivedLength)},y.prototype._onWebSocketError=function(M){this._status=v.LoaderStatus.kError;var D={code:M.code,msg:M.message};if(!this._onError)throw new h.RuntimeException(D.msg);this._onError(v.LoaderErrors.EXCEPTION,D)},y}(v.BaseLoader);e.default=_},"./src/io/xhr-moz-chunked-loader.js": -/*!******************************************!*\ - !*** ./src/io/xhr-moz-chunked-loader.js ***! - \******************************************/function(T,e,l){"use strict";l.r(e);var y,v=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),h=l( -/*! ./loader.js */ -"./src/io/loader.js"),f=l( -/*! ../utils/exception.js */ -"./src/utils/exception.js"),_=(y=function(M,D){return(y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(x,k){x.__proto__=k}||function(x,k){for(var Q in k)Object.prototype.hasOwnProperty.call(k,Q)&&(x[Q]=k[Q])})(M,D)},function(M,D){if("function"!=typeof D&&null!==D)throw new TypeError("Class extends value "+String(D)+" is not a constructor or null");function x(){this.constructor=M}y(M,D),M.prototype=null===D?Object.create(D):(x.prototype=D.prototype,new x)}),b=function(y){function M(D,x){var k=y.call(this,"xhr-moz-chunked-loader")||this;return k.TAG="MozChunkedLoader",k._seekHandler=D,k._config=x,k._needStash=!0,k._xhr=null,k._requestAbort=!1,k._contentLength=null,k._receivedLength=0,k}return _(M,y),M.isSupported=function(){try{var D=new XMLHttpRequest;return D.open("GET","https://example.com",!0),D.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===D.responseType}catch(x){return v.default.w("MozChunkedLoader",x.message),!1}},M.prototype.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),y.prototype.destroy.call(this)},M.prototype.open=function(D,x){this._dataSource=D,this._range=x;var k=D.url;this._config.reuseRedirectedURL&&null!=D.redirectedURL&&(k=D.redirectedURL);var Q=this._seekHandler.getConfig(k,x);this._requestURL=Q.url;var I=this._xhr=new XMLHttpRequest;if(I.open("GET",Q.url,!0),I.responseType="moz-chunked-arraybuffer",I.onreadystatechange=this._onReadyStateChange.bind(this),I.onprogress=this._onProgress.bind(this),I.onloadend=this._onLoadEnd.bind(this),I.onerror=this._onXhrError.bind(this),D.withCredentials&&(I.withCredentials=!0),"object"==typeof Q.headers){var d=Q.headers;for(var S in d)d.hasOwnProperty(S)&&I.setRequestHeader(S,d[S])}if("object"==typeof this._config.headers)for(var S in d=this._config.headers)d.hasOwnProperty(S)&&I.setRequestHeader(S,d[S]);this._status=h.LoaderStatus.kConnecting,I.send()},M.prototype.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=h.LoaderStatus.kComplete},M.prototype._onReadyStateChange=function(D){var x=D.target;if(2===x.readyState){if(null!=x.responseURL&&x.responseURL!==this._requestURL&&this._onURLRedirect){var k=this._seekHandler.removeURLParameters(x.responseURL);this._onURLRedirect(k)}if(0!==x.status&&(x.status<200||x.status>299)){if(this._status=h.LoaderStatus.kError,!this._onError)throw new f.RuntimeException("MozChunkedLoader: Http code invalid, "+x.status+" "+x.statusText);this._onError(h.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:x.status,msg:x.statusText})}else this._status=h.LoaderStatus.kBuffering}},M.prototype._onProgress=function(D){if(this._status!==h.LoaderStatus.kError){null===this._contentLength&&null!==D.total&&0!==D.total&&(this._contentLength=D.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var x=D.target.response,k=this._range.from+this._receivedLength;this._receivedLength+=x.byteLength,this._onDataArrival&&this._onDataArrival(x,k,this._receivedLength)}},M.prototype._onLoadEnd=function(D){!0!==this._requestAbort?this._status!==h.LoaderStatus.kError&&(this._status=h.LoaderStatus.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},M.prototype._onXhrError=function(D){this._status=h.LoaderStatus.kError;var x=0,k=null;if(this._contentLength&&D.loaded=this._contentLength&&(Q=this._range.from+this._contentLength-1),this._currentRequestRange={from:k,to:Q},this._internalOpen(this._dataSource,this._currentRequestRange)},D.prototype._internalOpen=function(x,k){this._lastTimeLoaded=0;var Q=x.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?Q=this._currentRedirectedURL:null!=x.redirectedURL&&(Q=x.redirectedURL));var I=this._seekHandler.getConfig(Q,k);this._currentRequestURL=I.url;var d=this._xhr=new XMLHttpRequest;if(d.open("GET",I.url,!0),d.responseType="arraybuffer",d.onreadystatechange=this._onReadyStateChange.bind(this),d.onprogress=this._onProgress.bind(this),d.onload=this._onLoad.bind(this),d.onerror=this._onXhrError.bind(this),x.withCredentials&&(d.withCredentials=!0),"object"==typeof I.headers){var S=I.headers;for(var R in S)S.hasOwnProperty(R)&&d.setRequestHeader(R,S[R])}if("object"==typeof this._config.headers)for(var R in S=this._config.headers)S.hasOwnProperty(R)&&d.setRequestHeader(R,S[R]);d.send()},D.prototype.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=f.LoaderStatus.kComplete},D.prototype._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},D.prototype._onReadyStateChange=function(x){var k=x.target;if(2===k.readyState){if(null!=k.responseURL){var Q=this._seekHandler.removeURLParameters(k.responseURL);k.responseURL!==this._currentRequestURL&&Q!==this._currentRedirectedURL&&(this._currentRedirectedURL=Q,this._onURLRedirect&&this._onURLRedirect(Q))}if(k.status>=200&&k.status<=299){if(this._waitForTotalLength)return;this._status=f.LoaderStatus.kBuffering}else{if(this._status=f.LoaderStatus.kError,!this._onError)throw new _.RuntimeException("RangeLoader: Http code invalid, "+k.status+" "+k.statusText);this._onError(f.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:k.status,msg:k.statusText})}}},D.prototype._onProgress=function(x){if(this._status!==f.LoaderStatus.kError){if(null===this._contentLength){var k=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,k=!0;var Q=x.total;this._internalAbort(),null!=Q&0!==Q&&(this._totalLength=Q)}if(this._contentLength=-1===this._range.to?this._totalLength-this._range.from:this._range.to-this._range.from+1,k)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var I=x.loaded-this._lastTimeLoaded;this._lastTimeLoaded=x.loaded,this._speedSampler.addBytes(I)}},D.prototype._normalizeSpeed=function(x){var k=this._chunkSizeKBList,Q=k.length-1,I=0,d=0,S=Q;if(x=k[I]&&x=3&&(k=this._speedSampler.currentKBps)),0!==k){var Q=this._normalizeSpeed(k);this._currentSpeedNormalized!==Q&&(this._currentSpeedNormalized=Q,this._currentChunkSizeKB=Q)}var I=x.target.response,d=this._range.from+this._receivedLength;this._receivedLength+=I.byteLength;var S=!1;null!=this._contentLength&&this._receivedLength0&&this._receivedLength0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new y.default(this._mediaDataSource,this._config),this._transmuxer.on(M.default.INIT_SEGMENT,function(z,q){R._msectl.appendInitSegment(q)}),this._transmuxer.on(M.default.MEDIA_SEGMENT,function(z,q){R._msectl.appendMediaSegment(q),R._config.lazyLoad&&!R._config.isLive&&q.info.endDts>=1e3*(R._mediaElement.currentTime+R._config.lazyLoadMaxDuration)&&null==R._progressChecker&&(f.default.v(R.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),R._suspendTransmuxer())}),this._transmuxer.on(M.default.LOADING_COMPLETE,function(){R._msectl.endOfStream(),R._emitter.emit(b.default.LOADING_COMPLETE)}),this._transmuxer.on(M.default.RECOVERED_EARLY_EOF,function(){R._emitter.emit(b.default.RECOVERED_EARLY_EOF)}),this._transmuxer.on(M.default.IO_ERROR,function(z,q){R._emitter.emit(b.default.ERROR,k.ErrorTypes.NETWORK_ERROR,z,q)}),this._transmuxer.on(M.default.DEMUX_ERROR,function(z,q){R._emitter.emit(b.default.ERROR,k.ErrorTypes.MEDIA_ERROR,z,{code:-1,msg:q})}),this._transmuxer.on(M.default.MEDIA_INFO,function(z){R._mediaInfo=z,R._emitter.emit(b.default.MEDIA_INFO,Object.assign({},z))}),this._transmuxer.on(M.default.METADATA_ARRIVED,function(z){R._emitter.emit(b.default.METADATA_ARRIVED,z)}),this._transmuxer.on(M.default.SCRIPTDATA_ARRIVED,function(z){R._emitter.emit(b.default.SCRIPTDATA_ARRIVED,z)}),this._transmuxer.on(M.default.STATISTICS_INFO,function(z){R._statisticsInfo=R._fillStatisticsInfo(z),R._emitter.emit(b.default.STATISTICS_INFO,Object.assign({},R._statisticsInfo))}),this._transmuxer.on(M.default.RECOMMEND_SEEKPOINT,function(z){R._mediaElement&&!R._config.accurateSeek&&(R._requestSetTime=!0,R._mediaElement.currentTime=z/1e3)}),this._transmuxer.open()}},S.prototype.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},S.prototype.play=function(){return this._mediaElement.play()},S.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(S.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(R){this._mediaElement.volume=R},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(R){this._mediaElement.muted=R},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(R){this._mediaElement?this._internalSeek(R):this._pendingSeekTime=R},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"mediaInfo",{get:function(){return Object.assign({},this._mediaInfo)},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"statisticsInfo",{get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)},enumerable:!1,configurable:!0}),S.prototype._fillStatisticsInfo=function(R){if(R.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return R;var z=!0,q=0,Z=0;if(this._mediaElement.getVideoPlaybackQuality){var H=this._mediaElement.getVideoPlaybackQuality();q=H.totalVideoFrames,Z=H.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(q=this._mediaElement.webkitDecodedFrameCount,Z=this._mediaElement.webkitDroppedFrameCount):z=!1;return z&&(R.decodedFrames=q,R.droppedFrames=Z),R},S.prototype._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var R=this._mediaElement.buffered,z=this._mediaElement.currentTime,Z=0,H=0;H=z+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(f.default.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},S.prototype._onmseBufferFull=function(){f.default.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},S.prototype._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},S.prototype._checkProgressAndResume=function(){for(var R=this._mediaElement.currentTime,z=this._mediaElement.buffered,q=!1,Z=0;Z=H&&R=G-this._config.lazyLoadRecoverDuration&&(q=!0);break}}q&&(window.clearInterval(this._progressChecker),this._progressChecker=null,q&&(f.default.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},S.prototype._isTimepointBuffered=function(R){for(var z=this._mediaElement.buffered,q=0;q=Z&&R0){var H=this._mediaElement.buffered.start(0);(H<1&&R0&&z.currentTime0){var Z=q.start(0);if(Z<1&&z0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},M.prototype.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},M.prototype.play=function(){return this._mediaElement.play()},M.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(M.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(D){this._mediaElement.volume=D},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(D){this._mediaElement.muted=D},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(D){this._mediaElement?this._mediaElement.currentTime=D:this._pendingSeekTime=D},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"mediaInfo",{get:function(){var x={mimeType:(this._mediaElement instanceof HTMLAudioElement?"audio/":"video/")+this._mediaDataSource.type};return this._mediaElement&&(x.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(x.width=this._mediaElement.videoWidth,x.height=this._mediaElement.videoHeight)),x},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"statisticsInfo",{get:function(){var D={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return D;var x=!0,k=0,Q=0;if(this._mediaElement.getVideoPlaybackQuality){var I=this._mediaElement.getVideoPlaybackQuality();k=I.totalVideoFrames,Q=I.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(k=this._mediaElement.webkitDecodedFrameCount,Q=this._mediaElement.webkitDroppedFrameCount):x=!1;return x&&(D.decodedFrames=k,D.droppedFrames=Q),D},enumerable:!1,configurable:!0}),M.prototype._onvLoadedMetadata=function(D){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(f.default.MEDIA_INFO,this.mediaInfo)},M.prototype._reportStatisticsInfo=function(){this._emitter.emit(f.default.STATISTICS_INFO,this.statisticsInfo)},M}();e.default=y},"./src/player/player-errors.js": -/*!*************************************!*\ - !*** ./src/player/player-errors.js ***! - \*************************************/function(T,e,l){"use strict";l.r(e),l.d(e,{ErrorTypes:function(){return f},ErrorDetails:function(){return _}});var v=l( -/*! ../io/loader.js */ -"./src/io/loader.js"),h=l( -/*! ../demux/demux-errors.js */ -"./src/demux/demux-errors.js"),f={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},_={NETWORK_EXCEPTION:v.LoaderErrors.EXCEPTION,NETWORK_STATUS_CODE_INVALID:v.LoaderErrors.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:v.LoaderErrors.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:v.LoaderErrors.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:h.default.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:h.default.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:h.default.CODEC_UNSUPPORTED}},"./src/player/player-events.js": -/*!*************************************!*\ - !*** ./src/player/player-events.js ***! - \*************************************/function(T,e,l){"use strict";l.r(e),e.default={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"}},"./src/remux/aac-silent.js": -/*!*********************************!*\ - !*** ./src/remux/aac-silent.js ***! - \*********************************/function(T,e,l){"use strict";l.r(e);var v=function(){function h(){}return h.getSilentFrame=function(f,_){if("mp4a.40.2"===f){if(1===_)return new Uint8Array([0,200,0,128,35,128]);if(2===_)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===_)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===_)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===_)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===_)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===_)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===_)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===_)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},h}();e.default=v},"./src/remux/mp4-generator.js": -/*!************************************!*\ - !*** ./src/remux/mp4-generator.js ***! - \************************************/function(T,e,l){"use strict";l.r(e);var v=function(){function h(){}return h.init=function(){for(var f in h.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]})h.types.hasOwnProperty(f)&&(h.types[f]=[f.charCodeAt(0),f.charCodeAt(1),f.charCodeAt(2),f.charCodeAt(3)]);var _=h.constants={};_.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),_.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),_.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),_.STSC=_.STCO=_.STTS,_.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),_.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),_.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),_.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),_.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),_.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},h.box=function(f){for(var _=8,b=null,y=Array.prototype.slice.call(arguments,1),M=y.length,D=0;D>>24&255,b[1]=_>>>16&255,b[2]=_>>>8&255,b[3]=255&_,b.set(f,4);var x=8;for(D=0;D>>24&255,f>>>16&255,f>>>8&255,255&f,_>>>24&255,_>>>16&255,_>>>8&255,255&_,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},h.trak=function(f){return h.box(h.types.trak,h.tkhd(f),h.mdia(f))},h.tkhd=function(f){var _=f.id,b=f.duration,y=f.presentWidth,M=f.presentHeight;return h.box(h.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,_>>>24&255,_>>>16&255,_>>>8&255,255&_,0,0,0,0,b>>>24&255,b>>>16&255,b>>>8&255,255&b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,y>>>8&255,255&y,0,0,M>>>8&255,255&M,0,0]))},h.mdia=function(f){return h.box(h.types.mdia,h.mdhd(f),h.hdlr(f),h.minf(f))},h.mdhd=function(f){var _=f.timescale,b=f.duration;return h.box(h.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,_>>>24&255,_>>>16&255,_>>>8&255,255&_,b>>>24&255,b>>>16&255,b>>>8&255,255&b,85,196,0,0]))},h.hdlr=function(f){return h.box(h.types.hdlr,"audio"===f.type?h.constants.HDLR_AUDIO:h.constants.HDLR_VIDEO)},h.minf=function(f){var _;return _="audio"===f.type?h.box(h.types.smhd,h.constants.SMHD):h.box(h.types.vmhd,h.constants.VMHD),h.box(h.types.minf,_,h.dinf(),h.stbl(f))},h.dinf=function(){return h.box(h.types.dinf,h.box(h.types.dref,h.constants.DREF))},h.stbl=function(f){return h.box(h.types.stbl,h.stsd(f),h.box(h.types.stts,h.constants.STTS),h.box(h.types.stsc,h.constants.STSC),h.box(h.types.stsz,h.constants.STSZ),h.box(h.types.stco,h.constants.STCO))},h.stsd=function(f){return h.box(h.types.stsd,h.constants.STSD_PREFIX,"audio"===f.type?"mp3"===f.codec?h.mp3(f):h.mp4a(f):h.avc1(f))},h.mp3=function(f){var b=f.audioSampleRate,y=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,f.channelCount,0,16,0,0,0,0,b>>>8&255,255&b,0,0]);return h.box(h.types[".mp3"],y)},h.mp4a=function(f){var b=f.audioSampleRate,y=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,f.channelCount,0,16,0,0,0,0,b>>>8&255,255&b,0,0]);return h.box(h.types.mp4a,y,h.esds(f))},h.esds=function(f){var _=f.config||[],b=_.length,y=new Uint8Array([0,0,0,0,3,23+b,0,1,0,4,15+b,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([b]).concat(_).concat([6,1,2]));return h.box(h.types.esds,y)},h.avc1=function(f){var _=f.avcc,b=f.codecWidth,y=f.codecHeight,M=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b>>>8&255,255&b,y>>>8&255,255&y,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return h.box(h.types.avc1,M,h.box(h.types.avcC,_))},h.mvex=function(f){return h.box(h.types.mvex,h.trex(f))},h.trex=function(f){var _=f.id,b=new Uint8Array([0,0,0,0,_>>>24&255,_>>>16&255,_>>>8&255,255&_,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return h.box(h.types.trex,b)},h.moof=function(f,_){return h.box(h.types.moof,h.mfhd(f.sequenceNumber),h.traf(f,_))},h.mfhd=function(f){var _=new Uint8Array([0,0,0,0,f>>>24&255,f>>>16&255,f>>>8&255,255&f]);return h.box(h.types.mfhd,_)},h.traf=function(f,_){var b=f.id,y=h.box(h.types.tfhd,new Uint8Array([0,0,0,0,b>>>24&255,b>>>16&255,b>>>8&255,255&b])),M=h.box(h.types.tfdt,new Uint8Array([0,0,0,0,_>>>24&255,_>>>16&255,_>>>8&255,255&_])),D=h.sdtp(f),x=h.trun(f,D.byteLength+16+16+8+16+8+8);return h.box(h.types.traf,y,M,x,D)},h.sdtp=function(f){for(var _=f.samples||[],b=_.length,y=new Uint8Array(4+b),M=0;M>>24&255,y>>>16&255,y>>>8&255,255&y,(_+=8+M)>>>24&255,_>>>16&255,_>>>8&255,255&_],0);for(var x=0;x>>24&255,k>>>16&255,k>>>8&255,255&k,Q>>>24&255,Q>>>16&255,Q>>>8&255,255&Q,I.isLeading<<2|I.dependsOn,I.isDependedOn<<6|I.hasRedundancy<<4|I.isNonSync,0,0,d>>>24&255,d>>>16&255,d>>>8&255,255&d],12+16*x)}return h.box(h.types.trun,D)},h.mdat=function(f){return h.box(h.types.mdat,f)},h}();v.init(),e.default=v},"./src/remux/mp4-remuxer.js": -/*!**********************************!*\ - !*** ./src/remux/mp4-remuxer.js ***! - \**********************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! ../utils/logger.js */ -"./src/utils/logger.js"),h=l( -/*! ./mp4-generator.js */ -"./src/remux/mp4-generator.js"),f=l( -/*! ./aac-silent.js */ -"./src/remux/aac-silent.js"),_=l( -/*! ../utils/browser.js */ -"./src/utils/browser.js"),b=l( -/*! ../core/media-segment-info.js */ -"./src/core/media-segment-info.js"),y=l( -/*! ../utils/exception.js */ -"./src/utils/exception.js"),M=function(){function D(x){this.TAG="MP4Remuxer",this._config=x,this._isLive=!0===x.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new b.MediaSegmentInfoList("audio"),this._videoSegmentInfoList=new b.MediaSegmentInfoList("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!_.default.chrome||!(_.default.version.major<50||50===_.default.version.major&&_.default.version.build<2661)),this._fillSilentAfterSeek=_.default.msedge||_.default.msie,this._mp3UseMpegAudio=!_.default.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}return D.prototype.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},D.prototype.bindDataSource=function(x){return x.onDataAvailable=this.remux.bind(this),x.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},Object.defineProperty(D.prototype,"onInitSegment",{get:function(){return this._onInitSegment},set:function(x){this._onInitSegment=x},enumerable:!1,configurable:!0}),Object.defineProperty(D.prototype,"onMediaSegment",{get:function(){return this._onMediaSegment},set:function(x){this._onMediaSegment=x},enumerable:!1,configurable:!0}),D.prototype.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},D.prototype.seek=function(x){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},D.prototype.remux=function(x,k){if(!this._onMediaSegment)throw new y.IllegalStateException("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(x,k),this._remuxVideo(k),this._remuxAudio(x)},D.prototype._onTrackMetadataReceived=function(x,k){var Q=null,I="mp4",d=k.codec;if("audio"===x)this._audioMeta=k,"mp3"===k.codec&&this._mp3UseMpegAudio?(I="mpeg",d="",Q=new Uint8Array):Q=h.default.generateInitSegment(k);else{if("video"!==x)return;this._videoMeta=k,Q=h.default.generateInitSegment(k)}if(!this._onInitSegment)throw new y.IllegalStateException("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(x,{type:x,data:Q.buffer,codec:d,container:x+"/"+I,mediaDuration:k.duration})},D.prototype._calculateDtsBase=function(x,k){this._dtsBaseInited||(x.samples&&x.samples.length&&(this._audioDtsBase=x.samples[0].dts),k.samples&&k.samples.length&&(this._videoDtsBase=k.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},D.prototype.flushStashedSamples=function(){var x=this._videoStashedLastSample,k=this._audioStashedLastSample,Q={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=x&&(Q.samples.push(x),Q.length=x.length);var I={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=k&&(I.samples.push(k),I.length=k.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(Q,!0),this._remuxAudio(I,!0)},D.prototype._remuxAudio=function(x,k){if(null!=this._audioMeta){var Q=x,I=Q.samples,d=void 0,S=-1,R=-1,q=this._audioMeta.refSampleDuration,Z="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,H=this._dtsBaseInited&&void 0===this._audioNextDts,G=!1;if(I&&0!==I.length&&(1!==I.length||k)){var W=0,te=null,P=0;Z?(W=0,P=Q.length):(W=8,P=8+Q.length);var J=null;if(I.length>1&&(P-=(J=I.pop()).length),null!=this._audioStashedLastSample){var j=this._audioStashedLastSample;this._audioStashedLastSample=null,I.unshift(j),P+=j.length}null!=J&&(this._audioStashedLastSample=J);var re=I[0].dts-this._dtsBase;if(this._audioNextDts)d=re-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())d=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(G=!0);else{var he=this._audioSegmentInfoList.getLastSampleBefore(re);if(null!=he){var oe=re-(he.originalDts+he.duration);oe<=3&&(oe=0),d=re-(he.dts+he.duration+oe)}else d=0}if(G){var me=re-d,ze=this._videoSegmentInfoList.getLastSegmentBefore(re);null!=ze&&ze.beginDts=3*q&&this._fillAudioTimestampGap&&!_.default.safari){Fe=!0;var _e,He=Math.floor(d/q);v.default.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: "+Ee+" ms, curRefDts: "+St+" ms, dtsCorrection: "+Math.round(d)+" ms, generate: "+He+" frames"),Ae=Math.floor(St),mt=Math.floor(St+q)-Ae,null==(_e=f.default.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount))&&(v.default.w(this.TAG,"Unable to generate silent frame for "+this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame"),_e=ae),Ve=[];for(var be=0;be=1?ye[ye.length-1].duration:Math.floor(q),this._audioNextDts=Ae+mt;-1===S&&(S=Ae),ye.push({dts:Ae,pts:Ae,cts:0,unit:j.unit,size:j.unit.byteLength,duration:mt,originalDts:Ee,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),Fe&&ye.push.apply(ye,Ve)}}if(0===ye.length)return Q.samples=[],void(Q.length=0);for(Z?te=new Uint8Array(P):((te=new Uint8Array(P))[0]=P>>>24&255,te[1]=P>>>16&255,te[2]=P>>>8&255,te[3]=255&P,te.set(h.default.types.mdat,4)),Oe=0;Oe1&&(G-=(W=I.pop()).length),null!=this._videoStashedLastSample){var te=this._videoStashedLastSample;this._videoStashedLastSample=null,I.unshift(te),G+=te.length}null!=W&&(this._videoStashedLastSample=W);var P=I[0].dts-this._dtsBase;if(this._videoNextDts)d=P-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())d=0;else{var J=this._videoSegmentInfoList.getLastSampleBefore(P);if(null!=J){var j=P-(J.originalDts+J.duration);j<=3&&(j=0),d=P-(J.dts+J.duration+j)}else d=0}for(var he=new b.MediaSegmentInfo,oe=[],Ce=0;Ce=1?oe[oe.length-1].duration:Math.floor(this._videoMeta.refSampleDuration),ze){var ae=new b.SampleInfo(_e,ve,ye,te.dts,!0);ae.fileposition=te.fileposition,he.appendSyncPoint(ae)}oe.push({dts:_e,pts:ve,cts:Ae,units:te.units,size:te.length,isKeyframe:ze,duration:ye,originalDts:me,flags:{isLeading:0,dependsOn:ze?2:1,isDependedOn:ze?1:0,hasRedundancy:0,isNonSync:ze?0:1}})}for((H=new Uint8Array(G))[0]=G>>>24&255,H[1]=G>>>16&255,H[2]=G>>>8&255,H[3]=255&G,H.set(h.default.types.mdat,4),Ce=0;Ce=0&&/(rv)(?::| )([\w.]+)/.exec(f)||f.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(f)||[],b=/(ipad)/.exec(f)||/(ipod)/.exec(f)||/(windows phone)/.exec(f)||/(iphone)/.exec(f)||/(kindle)/.exec(f)||/(android)/.exec(f)||/(windows)/.exec(f)||/(mac)/.exec(f)||/(linux)/.exec(f)||/(cros)/.exec(f)||[],y={browser:_[5]||_[3]||_[1]||"",version:_[2]||_[4]||"0",majorVersion:_[4]||_[2]||"0",platform:b[0]||""},M={};if(y.browser){M[y.browser]=!0;var D=y.majorVersion.split(".");M.version={major:parseInt(y.majorVersion,10),string:y.version},D.length>1&&(M.version.minor=parseInt(D[1],10)),D.length>2&&(M.version.build=parseInt(D[2],10))}if(y.platform&&(M[y.platform]=!0),(M.chrome||M.opr||M.safari)&&(M.webkit=!0),M.rv||M.iemobile){M.rv&&delete M.rv;var x="msie";y.browser=x,M[x]=!0}if(M.edge){delete M.edge;var k="msedge";y.browser=k,M[k]=!0}if(M.opr){var Q="opera";y.browser=Q,M[Q]=!0}if(M.safari&&M.android){var I="android";y.browser=I,M[I]=!0}for(var d in M.name=y.browser,M.platform=y.platform,v)v.hasOwnProperty(d)&&delete v[d];Object.assign(v,M)})(),e.default=v},"./src/utils/exception.js": -/*!********************************!*\ - !*** ./src/utils/exception.js ***! - \********************************/function(T,e,l){"use strict";l.r(e),l.d(e,{RuntimeException:function(){return h},IllegalStateException:function(){return f},InvalidArgumentException:function(){return _},NotImplementedException:function(){return b}});var y,v=(y=function(M,D){return(y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(x,k){x.__proto__=k}||function(x,k){for(var Q in k)Object.prototype.hasOwnProperty.call(k,Q)&&(x[Q]=k[Q])})(M,D)},function(M,D){if("function"!=typeof D&&null!==D)throw new TypeError("Class extends value "+String(D)+" is not a constructor or null");function x(){this.constructor=M}y(M,D),M.prototype=null===D?Object.create(D):(x.prototype=D.prototype,new x)}),h=function(){function y(M){this._message=M}return Object.defineProperty(y.prototype,"name",{get:function(){return"RuntimeException"},enumerable:!1,configurable:!0}),Object.defineProperty(y.prototype,"message",{get:function(){return this._message},enumerable:!1,configurable:!0}),y.prototype.toString=function(){return this.name+": "+this.message},y}(),f=function(y){function M(D){return y.call(this,D)||this}return v(M,y),Object.defineProperty(M.prototype,"name",{get:function(){return"IllegalStateException"},enumerable:!1,configurable:!0}),M}(h),_=function(y){function M(D){return y.call(this,D)||this}return v(M,y),Object.defineProperty(M.prototype,"name",{get:function(){return"InvalidArgumentException"},enumerable:!1,configurable:!0}),M}(h),b=function(y){function M(D){return y.call(this,D)||this}return v(M,y),Object.defineProperty(M.prototype,"name",{get:function(){return"NotImplementedException"},enumerable:!1,configurable:!0}),M}(h)},"./src/utils/logger.js": -/*!*****************************!*\ - !*** ./src/utils/logger.js ***! - \*****************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! events */ -"./node_modules/events/events.js"),h=l.n(v),f=function(){function _(){}return _.e=function(b,y){(!b||_.FORCE_GLOBAL_TAG)&&(b=_.GLOBAL_TAG);var M="["+b+"] > "+y;_.ENABLE_CALLBACK&&_.emitter.emit("log","error",M),_.ENABLE_ERROR&&(console.error?console.error(M):console.warn?console.warn(M):console.log(M))},_.i=function(b,y){(!b||_.FORCE_GLOBAL_TAG)&&(b=_.GLOBAL_TAG);var M="["+b+"] > "+y;_.ENABLE_CALLBACK&&_.emitter.emit("log","info",M),_.ENABLE_INFO&&(console.info?console.info(M):console.log(M))},_.w=function(b,y){(!b||_.FORCE_GLOBAL_TAG)&&(b=_.GLOBAL_TAG);var M="["+b+"] > "+y;_.ENABLE_CALLBACK&&_.emitter.emit("log","warn",M),_.ENABLE_WARN&&(console.warn?console.warn(M):console.log(M))},_.d=function(b,y){(!b||_.FORCE_GLOBAL_TAG)&&(b=_.GLOBAL_TAG);var M="["+b+"] > "+y;_.ENABLE_CALLBACK&&_.emitter.emit("log","debug",M),_.ENABLE_DEBUG&&(console.debug?console.debug(M):console.log(M))},_.v=function(b,y){(!b||_.FORCE_GLOBAL_TAG)&&(b=_.GLOBAL_TAG);var M="["+b+"] > "+y;_.ENABLE_CALLBACK&&_.emitter.emit("log","verbose",M),_.ENABLE_VERBOSE&&console.log(M)},_}();f.GLOBAL_TAG="flv.js",f.FORCE_GLOBAL_TAG=!1,f.ENABLE_ERROR=!0,f.ENABLE_INFO=!0,f.ENABLE_WARN=!0,f.ENABLE_DEBUG=!0,f.ENABLE_VERBOSE=!0,f.ENABLE_CALLBACK=!1,f.emitter=new(h()),e.default=f},"./src/utils/logging-control.js": -/*!**************************************!*\ - !*** ./src/utils/logging-control.js ***! - \**************************************/function(T,e,l){"use strict";l.r(e);var v=l( -/*! events */ -"./node_modules/events/events.js"),h=l.n(v),f=l( -/*! ./logger.js */ -"./src/utils/logger.js"),_=function(){function b(){}return Object.defineProperty(b,"forceGlobalTag",{get:function(){return f.default.FORCE_GLOBAL_TAG},set:function(y){f.default.FORCE_GLOBAL_TAG=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"globalTag",{get:function(){return f.default.GLOBAL_TAG},set:function(y){f.default.GLOBAL_TAG=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"enableAll",{get:function(){return f.default.ENABLE_VERBOSE&&f.default.ENABLE_DEBUG&&f.default.ENABLE_INFO&&f.default.ENABLE_WARN&&f.default.ENABLE_ERROR},set:function(y){f.default.ENABLE_VERBOSE=y,f.default.ENABLE_DEBUG=y,f.default.ENABLE_INFO=y,f.default.ENABLE_WARN=y,f.default.ENABLE_ERROR=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"enableDebug",{get:function(){return f.default.ENABLE_DEBUG},set:function(y){f.default.ENABLE_DEBUG=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"enableVerbose",{get:function(){return f.default.ENABLE_VERBOSE},set:function(y){f.default.ENABLE_VERBOSE=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"enableInfo",{get:function(){return f.default.ENABLE_INFO},set:function(y){f.default.ENABLE_INFO=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"enableWarn",{get:function(){return f.default.ENABLE_WARN},set:function(y){f.default.ENABLE_WARN=y,b._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(b,"enableError",{get:function(){return f.default.ENABLE_ERROR},set:function(y){f.default.ENABLE_ERROR=y,b._notifyChange()},enumerable:!1,configurable:!0}),b.getConfig=function(){return{globalTag:f.default.GLOBAL_TAG,forceGlobalTag:f.default.FORCE_GLOBAL_TAG,enableVerbose:f.default.ENABLE_VERBOSE,enableDebug:f.default.ENABLE_DEBUG,enableInfo:f.default.ENABLE_INFO,enableWarn:f.default.ENABLE_WARN,enableError:f.default.ENABLE_ERROR,enableCallback:f.default.ENABLE_CALLBACK}},b.applyConfig=function(y){f.default.GLOBAL_TAG=y.globalTag,f.default.FORCE_GLOBAL_TAG=y.forceGlobalTag,f.default.ENABLE_VERBOSE=y.enableVerbose,f.default.ENABLE_DEBUG=y.enableDebug,f.default.ENABLE_INFO=y.enableInfo,f.default.ENABLE_WARN=y.enableWarn,f.default.ENABLE_ERROR=y.enableError,f.default.ENABLE_CALLBACK=y.enableCallback},b._notifyChange=function(){var y=b.emitter;if(y.listenerCount("change")>0){var M=b.getConfig();y.emit("change",M)}},b.registerListener=function(y){b.emitter.addListener("change",y)},b.removeListener=function(y){b.emitter.removeListener("change",y)},b.addLogListener=function(y){f.default.emitter.addListener("log",y),f.default.emitter.listenerCount("log")>0&&(f.default.ENABLE_CALLBACK=!0,b._notifyChange())},b.removeLogListener=function(y){f.default.emitter.removeListener("log",y),0===f.default.emitter.listenerCount("log")&&(f.default.ENABLE_CALLBACK=!1,b._notifyChange())},b}();_.emitter=new(h()),e.default=_},"./src/utils/polyfill.js": -/*!*******************************!*\ - !*** ./src/utils/polyfill.js ***! - \*******************************/function(T,e,l){"use strict";l.r(e);var v=function(){function h(){}return h.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(f,_){return f.__proto__=_,f},Object.assign=Object.assign||function(f){if(null==f)throw new TypeError("Cannot convert undefined or null to object");for(var _=Object(f),b=1;b=128){_.push(String.fromCharCode(65535&D)),y+=2;continue}}else if(b[y]<240){if(v(b,y,2)&&(D=(15&b[y])<<12|(63&b[y+1])<<6|63&b[y+2])>=2048&&55296!=(63488&D)){_.push(String.fromCharCode(65535&D)),y+=3;continue}}else if(b[y]<248&&v(b,y,3)){var D;if((D=(7&b[y])<<18|(63&b[y+1])<<12|(63&b[y+2])<<6|63&b[y+3])>65536&&D<1114112){D-=65536,_.push(String.fromCharCode(D>>>10|55296)),_.push(String.fromCharCode(1023&D|56320)),y+=4;continue}}_.push(String.fromCharCode(65533)),++y}return _.join("")}}},ce={};function V(T){var e=ce[T];if(void 0!==e)return e.exports;var l=ce[T]={exports:{}};return Pt[T].call(l.exports,l,l.exports,V),l.exports}return V.m=Pt,V.n=function(T){var e=T&&T.__esModule?function(){return T.default}:function(){return T};return V.d(e,{a:e}),e},V.d=function(T,e){for(var l in e)V.o(e,l)&&!V.o(T,l)&&Object.defineProperty(T,l,{enumerable:!0,get:e[l]})},V.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch{if("object"==typeof window)return window}}(),V.o=function(T,e){return Object.prototype.hasOwnProperty.call(T,e)},V.r=function(T){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(T,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(T,"__esModule",{value:!0})},V("./src/index.js")}()},8433:function(ni,Pt){!function(ce){"use strict";function K(w){var U,le,Ue,Ct;for(le=1,Ue=arguments.length;le"u")&&L&&L.Mixin){w=I(w)?w:[w];for(var U=0;U0?Math.floor(w):Math.ceil(w)};function Ce(w,U,le){return w instanceof he?w:I(w)?new he(w[0],w[1]):null==w?w:"object"==typeof w&&"x"in w&&"y"in w?new he(w.x,w.y):new he(w,U,le)}function me(w,U){if(w)for(var le=U?[w,U]:w,Ue=0,Ct=le.length;Ue=this.min.x&&le.x<=this.max.x&&U.y>=this.min.y&&le.y<=this.max.y},intersects:function(w){w=ze(w);var U=this.min,le=this.max,Ue=w.min,Ct=w.max;return Ct.x>=U.x&&Ue.x<=le.x&&Ct.y>=U.y&&Ue.y<=le.y},overlaps:function(w){w=ze(w);var U=this.min,le=this.max,Ue=w.min,Ct=w.max;return Ct.x>U.x&&Ue.xU.y&&Ue.y=U.lat&&Ct.lat<=le.lat&&Ue.lng>=U.lng&&Ct.lng<=le.lng},intersects:function(w){w=Ae(w);var U=this._southWest,le=this._northEast,Ue=w.getSouthWest(),Ct=w.getNorthEast();return Ct.lat>=U.lat&&Ue.lat<=le.lat&&Ct.lng>=U.lng&&Ue.lng<=le.lng},overlaps:function(w){w=Ae(w);var U=this._southWest,le=this._northEast,Ue=w.getSouthWest(),Ct=w.getNorthEast();return Ct.lat>U.lat&&Ue.latU.lng&&Ue.lng1,on=function(){var w=!1;try{var U=Object.defineProperty({},"passive",{get:function(){w=!0}});window.addEventListener("testPassiveEventSupport",_,U),window.removeEventListener("testPassiveEventSupport",_,U)}catch{}return w}(),Ge=!!document.createElement("canvas").getContext,_i=!(!document.createElementNS||!He("svg").createSVGRect),qt=!!_i&&function(){var w=document.createElement("div");return w.innerHTML="","http://www.w3.org/2000/svg"===(w.firstChild&&w.firstChild.namespaceURI)}(),tt=!_i&&function(){try{var w=document.createElement("div");w.innerHTML='';var U=w.firstChild;return U.style.behavior="url(#default#VML)",U&&"object"==typeof U.adj}catch{return!1}}();function Si(w){return navigator.userAgent.toLowerCase().indexOf(w)>=0}var Ti={ie:Ke,ielt9:_t,edge:Nt,webkit:ut,android:et,android23:Xe,androidStock:Dt,opera:vt,chrome:Qt,gecko:qe,safari:ke,phantom:it,opera12:gt,win:ai,ie3d:Rt,webkit3d:Gt,gecko3d:zt,any3d:mi,mobile:Zi,mobileWebkit:Qi,mobileWebkit3d:Ht,msPointer:dt,pointer:ge,touch:ct,touchNative:Se,mobileOpera:Zt,mobileGecko:rt,retina:Kt,passiveEvents:on,canvas:Ge,svg:_i,vml:tt,inlineSvg:qt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},ln=Ti.msPointer?"MSPointerDown":"pointerdown",Ji=Ti.msPointer?"MSPointerMove":"pointermove",or=Ti.msPointer?"MSPointerUp":"pointerup",fn=Ti.msPointer?"MSPointerCancel":"pointercancel",Pn={touchstart:ln,touchmove:Ji,touchend:or,touchcancel:fn},mn={touchstart:function Hr(w,U){U.MSPOINTER_TYPE_TOUCH&&U.pointerType===U.MSPOINTER_TYPE_TOUCH&&kn(U),xn(w,U)},touchmove:xn,touchend:xn,touchcancel:xn},ui={},di=!1;function xi(w,U,le){return"touchstart"===U&&function gr(){di||(document.addEventListener(ln,ji,!0),document.addEventListener(Ji,Qn,!0),document.addEventListener(or,wn,!0),document.addEventListener(fn,wn,!0),di=!0)}(),mn[U]?(le=mn[U].bind(this,le),w.addEventListener(Pn[U],le,!1),le):(console.warn("wrong event specified:",U),_)}function ji(w){ui[w.pointerId]=w}function Qn(w){ui[w.pointerId]&&(ui[w.pointerId]=w)}function wn(w){delete ui[w.pointerId]}function xn(w,U){if(U.pointerType!==(U.MSPOINTER_TYPE_MOUSE||"mouse")){for(var le in U.touches=[],ui)U.touches.push(ui[le]);U.changedTouches=[U],w(U)}}var qr=200;var Vi,nn,Cn,jn,qn,ro=gi(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Or=gi(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ar="webkitTransition"===Or||"OTransition"===Or?Or+"End":"transitionend";function wo(w){return"string"==typeof w?document.getElementById(w):w}function Jt(w,U){var le=w.style[U]||w.currentStyle&&w.currentStyle[U];if((!le||"auto"===le)&&document.defaultView){var Ue=document.defaultView.getComputedStyle(w,null);le=Ue?Ue[U]:null}return"auto"===le?null:le}function ci(w,U,le){var Ue=document.createElement(w);return Ue.className=U||"",le&&le.appendChild(Ue),Ue}function Ai(w){var U=w.parentNode;U&&U.removeChild(w)}function Vt(w){for(;w.firstChild;)w.removeChild(w.firstChild)}function Le(w){var U=w.parentNode;U&&U.lastChild!==w&&U.appendChild(w)}function Pe(w){var U=w.parentNode;U&&U.firstChild!==w&&U.insertBefore(w,U.firstChild)}function ue(w,U){if(void 0!==w.classList)return w.classList.contains(U);var le=li(w);return le.length>0&&new RegExp("(^|\\s)"+U+"(\\s|$)").test(le)}function Me(w,U){if(void 0!==w.classList)for(var le=M(U),Ue=0,Ct=le.length;Ue0?2*window.devicePixelRatio:1;function Ie(w){return Ti.edge?w.wheelDeltaY/2:w.deltaY&&0===w.deltaMode?-w.deltaY/Qe:w.deltaY&&1===w.deltaMode?20*-w.deltaY:w.deltaY&&2===w.deltaMode?60*-w.deltaY:w.deltaX||w.deltaZ?0:w.wheelDelta?(w.wheelDeltaY||w.wheelDelta)/2:w.detail&&Math.abs(w.detail)<32765?20*-w.detail:w.detail?w.detail/-32765*60:0}function Ne(w,U){var le=U.relatedTarget;if(!le)return!0;try{for(;le&&le!==w;)le=le.parentNode}catch{return!1}return le!==w}var Ye={__proto__:null,on:Kn,off:Dr,stopPropagation:qa,disableScrollPropagation:Aa,disableClickPropagation:lo,preventDefault:kn,stop:mr,getPropagationPath:zo,getMousePosition:Ot,getWheelDelta:Ie,isExternalTarget:Ne,addListener:Kn,removeListener:Dr},ht=re.extend({run:function(w,U,le,Ue){this.stop(),this._el=w,this._inProgress=!0,this._duration=le||.25,this._easeOutPower=1/Math.max(Ue||.5,.2),this._startPos=Ci(w),this._offset=U.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=G(this._animate,this),this._step()},_step:function(w){var U=+new Date-this._startTime,le=1e3*this._duration;Uthis.options.maxZoom)?this.setZoom(w):this},panInsideBounds:function(w,U){this._enforcingBounds=!0;var le=this.getCenter(),Ue=this._limitCenter(le,this._zoom,Ae(w));return le.equals(Ue)||this.panTo(Ue,U),this._enforcingBounds=!1,this},panInside:function(w,U){var le=Ce((U=U||{}).paddingTopLeft||U.padding||[0,0]),Ue=Ce(U.paddingBottomRight||U.padding||[0,0]),Ct=this.project(this.getCenter()),Xt=this.project(w),Mi=this.getPixelBounds(),tn=ze([Mi.min.add(le),Mi.max.subtract(Ue)]),cn=tn.getSize();if(!tn.contains(Xt)){this._enforcingBounds=!0;var zn=Xt.subtract(tn.getCenter()),rr=tn.extend(Xt).getSize().subtract(cn);Ct.x+=zn.x<0?-rr.x:rr.x,Ct.y+=zn.y<0?-rr.y:rr.y,this.panTo(this.unproject(Ct),U),this._enforcingBounds=!1}return this},invalidateSize:function(w){if(!this._loaded)return this;w=K({animate:!1,pan:!0},!0===w?{animate:!0}:w);var U=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var le=this.getSize(),Ue=U.divideBy(2).round(),Ct=le.divideBy(2).round(),Xt=Ue.subtract(Ct);return Xt.x||Xt.y?(w.animate&&w.pan?this.panBy(Xt):(w.pan&&this._rawPanBy(Xt),this.fire("move"),w.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:U,newSize:le})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(w){if(w=this._locateOptions=K({timeout:1e4,watch:!1},w),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var U=e(this._handleGeolocationResponse,this),le=e(this._handleGeolocationError,this);return w.watch?this._locationWatchId=navigator.geolocation.watchPosition(U,le,w):navigator.geolocation.getCurrentPosition(U,le,w),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(w){if(this._container._leaflet_id){var U=w.code,le=w.message||(1===U?"permission denied":2===U?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:U,message:"Geolocation error: "+le+"."})}},_handleGeolocationResponse:function(w){if(this._container._leaflet_id){var Ue=new ve(w.coords.latitude,w.coords.longitude),Ct=Ue.toBounds(2*w.coords.accuracy),Xt=this._locateOptions;if(Xt.setView){var Mi=this.getBoundsZoom(Ct);this.setView(Ue,Xt.maxZoom?Math.min(Mi,Xt.maxZoom):Mi)}var tn={latlng:Ue,bounds:Ct,timestamp:w.timestamp};for(var cn in w.coords)"number"==typeof w.coords[cn]&&(tn[cn]=w.coords[cn]);this.fire("locationfound",tn)}},addHandler:function(w,U){if(!U)return this;var le=this[w]=new U(this);return this._handlers.push(le),this.options[w]&&le.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}var w;for(w in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),Ai(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(W(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[w].remove();for(w in this._panes)Ai(this._panes[w]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(w,U){var Ue=ci("div","leaflet-pane"+(w?" leaflet-"+w.replace("Pane","")+"-pane":""),U||this._mapPane);return w&&(this._panes[w]=Ue),Ue},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var w=this.getPixelBounds();return new _e(this.unproject(w.getBottomLeft()),this.unproject(w.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(w,U,le){w=Ae(w),le=Ce(le||[0,0]);var Ue=this.getZoom()||0,Ct=this.getMinZoom(),Xt=this.getMaxZoom(),Mi=w.getNorthWest(),tn=w.getSouthEast(),cn=this.getSize().subtract(le),zn=ze(this.project(tn,Ue),this.project(Mi,Ue)).getSize(),rr=Ti.any3d?this.options.zoomSnap:1,jr=cn.x/zn.x,vo=cn.y/zn.y,Bs=U?Math.max(jr,vo):Math.min(jr,vo);return Ue=this.getScaleZoom(Bs,Ue),rr&&(Ue=Math.round(Ue/(rr/100))*(rr/100),Ue=U?Math.ceil(Ue/rr)*rr:Math.floor(Ue/rr)*rr),Math.max(Ct,Math.min(Xt,Ue))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new he(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(w,U){var le=this._getTopLeftPoint(w,U);return new me(le,le.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(w){return this.options.crs.getProjectedBounds(void 0===w?this.getZoom():w)},getPane:function(w){return"string"==typeof w?this._panes[w]:w},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(w,U){var le=this.options.crs;return U=void 0===U?this._zoom:U,le.scale(w)/le.scale(U)},getScaleZoom:function(w,U){var le=this.options.crs,Ue=le.zoom(w*le.scale(U=void 0===U?this._zoom:U));return isNaN(Ue)?1/0:Ue},project:function(w,U){return U=void 0===U?this._zoom:U,this.options.crs.latLngToPoint(ye(w),U)},unproject:function(w,U){return U=void 0===U?this._zoom:U,this.options.crs.pointToLatLng(Ce(w),U)},layerPointToLatLng:function(w){var U=Ce(w).add(this.getPixelOrigin());return this.unproject(U)},latLngToLayerPoint:function(w){return this.project(ye(w))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(w){return this.options.crs.wrapLatLng(ye(w))},wrapLatLngBounds:function(w){return this.options.crs.wrapLatLngBounds(Ae(w))},distance:function(w,U){return this.options.crs.distance(ye(w),ye(U))},containerPointToLayerPoint:function(w){return Ce(w).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(w){return Ce(w).add(this._getMapPanePos())},containerPointToLatLng:function(w){var U=this.containerPointToLayerPoint(Ce(w));return this.layerPointToLatLng(U)},latLngToContainerPoint:function(w){return this.layerPointToContainerPoint(this.latLngToLayerPoint(ye(w)))},mouseEventToContainerPoint:function(w){return Ot(w,this._container)},mouseEventToLayerPoint:function(w){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(w))},mouseEventToLatLng:function(w){return this.layerPointToLatLng(this.mouseEventToLayerPoint(w))},_initContainer:function(w){var U=this._container=wo(w);if(!U)throw new Error("Map container not found.");if(U._leaflet_id)throw new Error("Map container is already initialized.");Kn(U,"scroll",this._onScroll,this),this._containerId=v(U)},_initLayout:function(){var w=this._container;this._fadeAnimated=this.options.fadeAnimation&&Ti.any3d,Me(w,"leaflet-container"+(Ti.touch?" leaflet-touch":"")+(Ti.retina?" leaflet-retina":"")+(Ti.ielt9?" leaflet-oldie":"")+(Ti.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var U=Jt(w,"position");"absolute"!==U&&"relative"!==U&&"fixed"!==U&&"sticky"!==U&&(w.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var w=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),hn(this._mapPane,new he(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Me(w.markerPane,"leaflet-zoom-hide"),Me(w.shadowPane,"leaflet-zoom-hide"))},_resetView:function(w,U,le){hn(this._mapPane,new he(0,0));var Ue=!this._loaded;this._loaded=!0,U=this._limitZoom(U),this.fire("viewprereset");var Ct=this._zoom!==U;this._moveStart(Ct,le)._move(w,U)._moveEnd(Ct),this.fire("viewreset"),Ue&&this.fire("load")},_moveStart:function(w,U){return w&&this.fire("zoomstart"),U||this.fire("movestart"),this},_move:function(w,U,le,Ue){void 0===U&&(U=this._zoom);var Ct=this._zoom!==U;return this._zoom=U,this._lastCenter=w,this._pixelOrigin=this._getNewPixelOrigin(w),Ue?le&&le.pinch&&this.fire("zoom",le):((Ct||le&&le.pinch)&&this.fire("zoom",le),this.fire("move",le)),this},_moveEnd:function(w){return w&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return W(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(w){hn(this._mapPane,this._getMapPanePos().subtract(w))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(w){this._targets={},this._targets[v(this._container)]=this;var U=w?Dr:Kn;U(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&U(window,"resize",this._onResize,this),Ti.any3d&&this.options.transform3DLimit&&(w?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){W(this._resizeRequest),this._resizeRequest=G(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var w=this._getMapPanePos();Math.max(Math.abs(w.x),Math.abs(w.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(w,U){for(var Ue,le=[],Ct="mouseout"===U||"mouseover"===U,Xt=w.target||w.srcElement,Mi=!1;Xt;){if((Ue=this._targets[v(Xt)])&&("click"===U||"preclick"===U)&&this._draggableMoved(Ue)){Mi=!0;break}if(Ue&&Ue.listens(U,!0)&&(Ct&&!Ne(Xt,w)||(le.push(Ue),Ct))||Xt===this._container)break;Xt=Xt.parentNode}return!le.length&&!Mi&&!Ct&&this.listens(U,!0)&&(le=[this]),le},_isClickDisabled:function(w){for(;w&&w!==this._container;){if(w._leaflet_disable_click)return!0;w=w.parentNode}},_handleDOMEvent:function(w){var U=w.target||w.srcElement;if(!(!this._loaded||U._leaflet_disable_events||"click"===w.type&&this._isClickDisabled(U))){var le=w.type;"mousedown"===le&&fr(U),this._fireDOMEvent(w,le)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(w,U,le){if("click"===w.type){var Ue=K({},w);Ue.type="preclick",this._fireDOMEvent(Ue,Ue.type,le)}var Ct=this._findEventTargets(w,U);if(le){for(var Xt=[],Mi=0;Mi0?Math.round(w-U)/2:Math.max(0,Math.ceil(w))-Math.max(0,Math.floor(U))},_limitZoom:function(w){var U=this.getMinZoom(),le=this.getMaxZoom(),Ue=Ti.any3d?this.options.zoomSnap:1;return Ue&&(w=Math.round(w/Ue)*Ue),Math.max(U,Math.min(le,w))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){lt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(w,U){var le=this._getCenterOffset(w)._trunc();return!(!0!==(U&&U.animate)&&!this.getSize().contains(le)||(this.panBy(le,U),0))},_createAnimProxy:function(){var w=this._proxy=ci("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(w),this.on("zoomanim",function(U){var le=ro,Ue=this._proxy.style[le];Gi(this._proxy,this.project(U.center,U.zoom),this.getZoomScale(U.zoom,1)),Ue===this._proxy.style[le]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){Ai(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var w=this.getCenter(),U=this.getZoom();Gi(this._proxy,this.project(w,U),this.getZoomScale(U,1))},_catchTransitionEnd:function(w){this._animatingZoom&&w.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(w,U,le){if(this._animatingZoom)return!0;if(le=le||{},!this._zoomAnimated||!1===le.animate||this._nothingToAnimate()||Math.abs(U-this._zoom)>this.options.zoomAnimationThreshold)return!1;var Ue=this.getZoomScale(U),Ct=this._getCenterOffset(w)._divideBy(1-1/Ue);return!(!0!==le.animate&&!this.getSize().contains(Ct)||(G(function(){this._moveStart(!0,le.noMoveStart||!1)._animateZoom(w,U,!0)},this),0))},_animateZoom:function(w,U,le,Ue){this._mapPane&&(le&&(this._animatingZoom=!0,this._animateToCenter=w,this._animateToZoom=U,Me(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:w,zoom:U,noUpdate:Ue}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&<(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var Ii=P.extend({options:{position:"topright"},initialize:function(w){D(this,w)},getPosition:function(){return this.options.position},setPosition:function(w){var U=this._map;return U&&U.removeControl(this),this.options.position=w,U&&U.addControl(this),this},getContainer:function(){return this._container},addTo:function(w){this.remove(),this._map=w;var U=this._container=this.onAdd(w),le=this.getPosition(),Ue=w._controlCorners[le];return Me(U,"leaflet-control"),-1!==le.indexOf("bottom")?Ue.insertBefore(U,Ue.firstChild):Ue.appendChild(U),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(Ai(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(w){this._map&&w&&w.screenX>0&&w.screenY>0&&this._map.getContainer().focus()}}),en=function(w){return new Ii(w)};kt.include({addControl:function(w){return w.addTo(this),this},removeControl:function(w){return w.remove(),this},_initControlPos:function(){var w=this._controlCorners={},U="leaflet-",le=this._controlContainer=ci("div",U+"control-container",this._container);function Ue(Ct,Xt){w[Ct+Xt]=ci("div",U+Ct+" "+U+Xt,le)}Ue("top","left"),Ue("top","right"),Ue("bottom","left"),Ue("bottom","right")},_clearControlPos:function(){for(var w in this._controlCorners)Ai(this._controlCorners[w]);Ai(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var an=Ii.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(w,U,le,Ue){return le1)?"":"none"),this._separator.style.display=U&&w?"":"none",this},_onLayerChange:function(w){this._handlingClick||this._update();var U=this._getLayer(v(w.target)),le=U.overlay?"add"===w.type?"overlayadd":"overlayremove":"add"===w.type?"baselayerchange":null;le&&this._map.fire(le,U)},_createRadioElement:function(w,U){var le='",Ue=document.createElement("div");return Ue.innerHTML=le,Ue.firstChild},_addItem:function(w){var Ue,U=document.createElement("label"),le=this._map.hasLayer(w.layer);w.overlay?((Ue=document.createElement("input")).type="checkbox",Ue.className="leaflet-control-layers-selector",Ue.defaultChecked=le):Ue=this._createRadioElement("leaflet-base-layers_"+v(this),le),this._layerControlInputs.push(Ue),Ue.layerId=v(w.layer),Kn(Ue,"click",this._onInputClick,this);var Ct=document.createElement("span");Ct.innerHTML=" "+w.name;var Xt=document.createElement("span");return U.appendChild(Xt),Xt.appendChild(Ue),Xt.appendChild(Ct),(w.overlay?this._overlaysList:this._baseLayersList).appendChild(U),this._checkDisabledLayers(),U},_onInputClick:function(){if(!this._preventClick){var U,le,w=this._layerControlInputs,Ue=[],Ct=[];this._handlingClick=!0;for(var Xt=w.length-1;Xt>=0;Xt--)le=this._getLayer((U=w[Xt]).layerId).layer,U.checked?Ue.push(le):U.checked||Ct.push(le);for(Xt=0;Xt=0;Ct--)le=this._getLayer((U=w[Ct]).layerId).layer,U.disabled=void 0!==le.options.minZoom&&Uele.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var w=this._section;this._preventClick=!0,Kn(w,"click",kn),this.expand();var U=this;setTimeout(function(){Dr(w,"click",kn),U._preventClick=!1})}}),bn=Ii.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(w){var U="leaflet-control-zoom",le=ci("div",U+" leaflet-bar"),Ue=this.options;return this._zoomInButton=this._createButton(Ue.zoomInText,Ue.zoomInTitle,U+"-in",le,this._zoomIn),this._zoomOutButton=this._createButton(Ue.zoomOutText,Ue.zoomOutTitle,U+"-out",le,this._zoomOut),this._updateDisabled(),w.on("zoomend zoomlevelschange",this._updateDisabled,this),le},onRemove:function(w){w.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(w){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(w.shiftKey?3:1))},_createButton:function(w,U,le,Ue,Ct){var Xt=ci("a",le,Ue);return Xt.innerHTML=w,Xt.href="#",Xt.title=U,Xt.setAttribute("role","button"),Xt.setAttribute("aria-label",U),lo(Xt),Kn(Xt,"click",mr),Kn(Xt,"click",Ct,this),Kn(Xt,"click",this._refocusOnMap,this),Xt},_updateDisabled:function(){var w=this._map,U="leaflet-disabled";lt(this._zoomInButton,U),lt(this._zoomOutButton,U),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||w._zoom===w.getMinZoom())&&(Me(this._zoomOutButton,U),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||w._zoom===w.getMaxZoom())&&(Me(this._zoomInButton,U),this._zoomInButton.setAttribute("aria-disabled","true"))}});kt.mergeOptions({zoomControl:!0}),kt.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new bn,this.addControl(this.zoomControl))});var Jn=Ii.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(w){var U="leaflet-control-scale",le=ci("div",U),Ue=this.options;return this._addScales(Ue,U+"-line",le),w.on(Ue.updateWhenIdle?"moveend":"move",this._update,this),w.whenReady(this._update,this),le},onRemove:function(w){w.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(w,U,le){w.metric&&(this._mScale=ci("div",U,le)),w.imperial&&(this._iScale=ci("div",U,le))},_update:function(){var w=this._map,U=w.getSize().y/2,le=w.distance(w.containerPointToLatLng([0,U]),w.containerPointToLatLng([this.options.maxWidth,U]));this._updateScales(le)},_updateScales:function(w){this.options.metric&&w&&this._updateMetric(w),this.options.imperial&&w&&this._updateImperial(w)},_updateMetric:function(w){var U=this._getRoundNum(w);this._updateScale(this._mScale,U<1e3?U+" m":U/1e3+" km",U/w)},_updateImperial:function(w){var le,Ue,Ct,U=3.2808399*w;U>5280?(Ue=this._getRoundNum(le=U/5280),this._updateScale(this._iScale,Ue+" mi",Ue/le)):(Ct=this._getRoundNum(U),this._updateScale(this._iScale,Ct+" ft",Ct/U))},_updateScale:function(w,U,le){w.style.width=Math.round(this.options.maxWidth*le)+"px",w.innerHTML=U},_getRoundNum:function(w){var U=Math.pow(10,(Math.floor(w)+"").length-1),le=w/U;return U*(le>=10?10:le>=5?5:le>=3?3:le>=2?2:1)}}),vr=Ii.extend({options:{position:"bottomright",prefix:''+(Ti.inlineSvg?' ':"")+"Leaflet"},initialize:function(w){D(this,w),this._attributions={}},onAdd:function(w){for(var U in w.attributionControl=this,this._container=ci("div","leaflet-control-attribution"),lo(this._container),w._layers)w._layers[U].getAttribution&&this.addAttribution(w._layers[U].getAttribution());return this._update(),w.on("layeradd",this._addAttribution,this),this._container},onRemove:function(w){w.off("layeradd",this._addAttribution,this)},_addAttribution:function(w){w.layer.getAttribution&&(this.addAttribution(w.layer.getAttribution()),w.layer.once("remove",function(){this.removeAttribution(w.layer.getAttribution())},this))},setPrefix:function(w){return this.options.prefix=w,this._update(),this},addAttribution:function(w){return w?(this._attributions[w]||(this._attributions[w]=0),this._attributions[w]++,this._update(),this):this},removeAttribution:function(w){return w?(this._attributions[w]&&(this._attributions[w]--,this._update()),this):this},_update:function(){if(this._map){var w=[];for(var U in this._attributions)this._attributions[U]&&w.push(U);var le=[];this.options.prefix&&le.push(this.options.prefix),w.length&&le.push(w.join(", ")),this._container.innerHTML=le.join(' ')}}});kt.mergeOptions({attributionControl:!0}),kt.addInitHook(function(){this.options.attributionControl&&(new vr).addTo(this)});Ii.Layers=an,Ii.Zoom=bn,Ii.Scale=Jn,Ii.Attribution=vr,en.layers=function(w,U,le){return new an(w,U,le)},en.zoom=function(w){return new bn(w)},en.scale=function(w){return new Jn(w)},en.attribution=function(w){return new vr(w)};var Ur=P.extend({initialize:function(w){this._map=w},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ur.addTo=function(w,U){return w.addHandler(U,this),this};var Tr={Events:j},Ln=Ti.touch?"touchstart mousedown":"mousedown",Io=re.extend({options:{clickTolerance:3},initialize:function(w,U,le,Ue){D(this,Ue),this._element=w,this._dragStartTarget=U||w,this._preventOutline=le},enable:function(){this._enabled||(Kn(this._dragStartTarget,Ln,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Io._dragging===this&&this.finishDrag(!0),Dr(this._dragStartTarget,Ln,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(w){if(this._enabled&&(this._moved=!1,!ue(this._element,"leaflet-zoom-anim"))){if(w.touches&&1!==w.touches.length)return void(Io._dragging===this&&this.finishDrag());if(!(Io._dragging||w.shiftKey||1!==w.which&&1!==w.button&&!w.touches||(Io._dragging=this,this._preventOutline&&fr(this._element),$i(),Vi(),this._moving))){this.fire("down");var U=w.touches?w.touches[0]:w,le=br(this._element);this._startPoint=new he(U.clientX,U.clientY),this._startPos=Ci(this._element),this._parentScale=_o(le);var Ue="mousedown"===w.type;Kn(document,Ue?"mousemove":"touchmove",this._onMove,this),Kn(document,Ue?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(w){if(this._enabled){if(w.touches&&w.touches.length>1)return void(this._moved=!0);var U=w.touches&&1===w.touches.length?w.touches[0]:w,le=new he(U.clientX,U.clientY)._subtract(this._startPoint);!le.x&&!le.y||Math.abs(le.x)+Math.abs(le.y)U&&(le.push(w[Ue]),Ct=Ue);return CtXt&&(Mi=tn,Xt=cn);Xt>le&&(U[Mi]=1,va(w,U,le,Ue,Mi),va(w,U,le,Mi,Ct))}function yl(w,U,le,Ue,Ct){var tn,cn,zn,Xt=Ue?vl:Bo(w,le),Mi=Bo(U,le);for(vl=Mi;;){if(!(Xt|Mi))return[w,U];if(Xt&Mi)return!1;zn=Bo(cn=Ls(w,U,tn=Xt||Mi,le,Ct),le),tn===Xt?(w=cn,Xt=zn):(U=cn,Mi=zn)}}function Ls(w,U,le,Ue,Ct){var zn,rr,Xt=U.x-w.x,Mi=U.y-w.y,tn=Ue.min,cn=Ue.max;return 8&le?(zn=w.x+Xt*(cn.y-w.y)/Mi,rr=cn.y):4&le?(zn=w.x+Xt*(tn.y-w.y)/Mi,rr=tn.y):2&le?(zn=cn.x,rr=w.y+Mi*(cn.x-w.x)/Xt):1&le&&(zn=tn.x,rr=w.y+Mi*(tn.x-w.x)/Xt),new he(zn,rr,Ct)}function Bo(w,U){var le=0;return w.xU.max.x&&(le|=2),w.yU.max.y&&(le|=8),le}function sA(w,U){var le=U.x-w.x,Ue=U.y-w.y;return le*le+Ue*Ue}function Gl(w,U,le,Ue){var zn,Ct=U.x,Xt=U.y,Mi=le.x-Ct,tn=le.y-Xt,cn=Mi*Mi+tn*tn;return cn>0&&((zn=((w.x-Ct)*Mi+(w.y-Xt)*tn)/cn)>1?(Ct=le.x,Xt=le.y):zn>0&&(Ct+=Mi*zn,Xt+=tn*zn)),Mi=w.x-Ct,tn=w.y-Xt,Ue?Mi*Mi+tn*tn:new he(Ct,Xt)}function $a(w){return!I(w[0])||"object"!=typeof w[0][0]&&typeof w[0][0]<"u"}function rd(w){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),$a(w)}function co(w,U){var le,Ue,Ct,Xt,Mi,tn,cn,zn;if(!w||0===w.length)throw new Error("latlngs not passed");$a(w)||(console.warn("latlngs are not flat! Only the first ring will be used"),w=w[0]);var rr=ye([0,0]),jr=Ae(w);jr.getNorthWest().distanceTo(jr.getSouthWest())*jr.getNorthEast().distanceTo(jr.getNorthWest())<1700&&(rr=Ca(w));var Bs=w.length,ns=[];for(le=0;leUe){zn=[tn.x-(cn=(Xt-Ue)/Ct)*(tn.x-Mi.x),tn.y-cn*(tn.y-Mi.y)];break}var Ll=U.unproject(Ce(zn));return ye([Ll.lat+rr.lat,Ll.lng+rr.lng])}var Od={__proto__:null,simplify:da,pointToSegmentDistance:Xa,closestPointOnSegment:function Po(w,U,le){return Gl(w,U,le)},clipSegment:yl,_getEdgeIntersection:Ls,_getBitCode:Bo,_sqClosestPointOnSegment:Gl,isFlat:$a,_flat:rd,polylineCenter:co},js={project:function(w){return new he(w.lng,w.lat)},unproject:function(w){return new ve(w.y,w.x)},bounds:new me([-180,-90],[180,90])},QA={R:6378137,R_MINOR:6356752.314245179,bounds:new me([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(w){var U=Math.PI/180,le=this.R,Ue=w.lat*U,Ct=this.R_MINOR/le,Xt=Math.sqrt(1-Ct*Ct),Mi=Xt*Math.sin(Ue),tn=Math.tan(Math.PI/4-Ue/2)/Math.pow((1-Mi)/(1+Mi),Xt/2);return Ue=-le*Math.log(Math.max(tn,1e-10)),new he(w.lng*U*le,Ue)},unproject:function(w){for(var zn,U=180/Math.PI,le=this.R,Ue=this.R_MINOR/le,Ct=Math.sqrt(1-Ue*Ue),Xt=Math.exp(-w.y/le),Mi=Math.PI/2-2*Math.atan(Xt),tn=0,cn=.1;tn<15&&Math.abs(cn)>1e-7;tn++)zn=Ct*Math.sin(Mi),zn=Math.pow((1-zn)/(1+zn),Ct/2),Mi+=cn=Math.PI/2-2*Math.atan(Xt*zn)-Mi;return new ve(Mi*U,w.x*U/le)}},Ia={__proto__:null,LonLat:js,Mercator:QA,SphericalMercator:Fe},Ha=K({},ae,{code:"EPSG:3395",projection:QA,transformation:function(){var w=.5/(Math.PI*QA.R);return mt(w,.5,-w,.5)}()}),ta=K({},ae,{code:"EPSG:4326",projection:js,transformation:mt(1/180,1,-1/180,.5)}),ch=K({},Oe,{projection:js,transformation:mt(1,0,-1,0),scale:function(w){return Math.pow(2,w)},zoom:function(w){return Math.log(w)/Math.LN2},distance:function(w,U){var le=U.lng-w.lng,Ue=U.lat-w.lat;return Math.sqrt(le*le+Ue*Ue)},infinite:!0});Oe.Earth=ae,Oe.EPSG3395=Ha,Oe.EPSG3857=St,Oe.EPSG900913=oi,Oe.EPSG4326=ta,Oe.Simple=ch;var ul=re.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(w){return w.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(w){return w&&w.removeLayer(this),this},getPane:function(w){return this._map.getPane(w?this.options[w]||w:this.options.pane)},addInteractiveTarget:function(w){return this._map._targets[v(w)]=this,this},removeInteractiveTarget:function(w){return delete this._map._targets[v(w)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(w){var U=w.target;if(U.hasLayer(this)){if(this._map=U,this._zoomAnimated=U._zoomAnimated,this.getEvents){var le=this.getEvents();U.on(le,this),this.once("remove",function(){U.off(le,this)},this)}this.onAdd(U),this.fire("add"),U.fire("layeradd",{layer:this})}}});kt.include({addLayer:function(w){if(!w._layerAdd)throw new Error("The provided object is not a Layer.");var U=v(w);return this._layers[U]||(this._layers[U]=w,w._mapToAdd=this,w.beforeAdd&&w.beforeAdd(this),this.whenReady(w._layerAdd,w)),this},removeLayer:function(w){var U=v(w);return this._layers[U]?(this._loaded&&w.onRemove(this),delete this._layers[U],this._loaded&&(this.fire("layerremove",{layer:w}),w.fire("remove")),w._map=w._mapToAdd=null,this):this},hasLayer:function(w){return v(w)in this._layers},eachLayer:function(w,U){for(var le in this._layers)w.call(U,this._layers[le]);return this},_addLayers:function(w){for(var U=0,le=(w=w?I(w)?w:[w]:[]).length;Uthis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&U[0]instanceof ve&&U[0].equals(U[le-1])&&U.pop(),U},_setLatLngs:function(w){An.prototype._setLatLngs.call(this,w),$a(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return $a(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var w=this._renderer._bounds,U=this.options.weight,le=new he(U,U);if(w=new me(w.min.subtract(le),w.max.add(le)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(w)){if(this.options.noClip)return void(this._parts=this._rings);for(var Xt,Ue=0,Ct=this._rings.length;Uew.y!=(Ct=le[tn]).y>w.y&&w.x<(Ct.x-Ue.x)*(w.y-Ue.y)/(Ct.y-Ue.y)+Ue.x&&(U=!U);return U||An.prototype._containsPoint.call(this,w,!0)}});var gc=il.extend({initialize:function(w,U){D(this,U),this._layers={},w&&this.addData(w)},addData:function(w){var le,Ue,Ct,U=I(w)?w:w.features;if(U){for(le=0,Ue=U.length;le0&&Ct.push(Ct[0].slice()),Ct}function fc(w,U){return w.feature?K({},w.feature,{geometry:U}):ZA(U)}function ZA(w){return"Feature"===w.type||"FeatureCollection"===w.type?w:{type:"Feature",properties:{},geometry:w}}var jc={toGeoJSON:function(w){return fc(this,{type:"Point",coordinates:lA(this.getLatLng(),w)})}};function Ho(w,U){return new gc(w,U)}Tc.include(jc),rl.include(jc),nl.include(jc),An.include({toGeoJSON:function(w){var U=!$a(this._latlngs);return fc(this,{type:(U?"Multi":"")+"LineString",coordinates:cA(this._latlngs,U?1:0,!1,w)})}}),ba.include({toGeoJSON:function(w){var U=!$a(this._latlngs),le=U&&!$a(this._latlngs[0]),Ue=cA(this._latlngs,le?2:U?1:0,!0,w);return U||(Ue=[Ue]),fc(this,{type:(le?"Multi":"")+"Polygon",coordinates:Ue})}}),Sl.include({toMultiPoint:function(w){var U=[];return this.eachLayer(function(le){U.push(le.toGeoJSON(w).geometry.coordinates)}),fc(this,{type:"MultiPoint",coordinates:U})},toGeoJSON:function(w){var U=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===U)return this.toMultiPoint(w);var le="GeometryCollection"===U,Ue=[];return this.eachLayer(function(Ct){if(Ct.toGeoJSON){var Xt=Ct.toGeoJSON(w);if(le)Ue.push(Xt.geometry);else{var Mi=ZA(Xt);"FeatureCollection"===Mi.type?Ue.push.apply(Ue,Mi.features):Ue.push(Mi)}}}),le?fc(this,{geometries:Ue,type:"GeometryCollection"}):{type:"FeatureCollection",features:Ue}}});var ya=Ho,ol=ul.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(w,U,le){this._url=w,this._bounds=Ae(U),D(this,le)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(Me(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){Ai(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(w){return this.options.opacity=w,this._image&&this._updateOpacity(),this},setStyle:function(w){return w.opacity&&this.setOpacity(w.opacity),this},bringToFront:function(){return this._map&&Le(this._image),this},bringToBack:function(){return this._map&&Pe(this._image),this},setUrl:function(w){return this._url=w,this._image&&(this._image.src=w),this},setBounds:function(w){return this._bounds=Ae(w),this._map&&this._reset(),this},getEvents:function(){var w={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(w.zoomanim=this._animateZoom),w},setZIndex:function(w){return this.options.zIndex=w,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var w="IMG"===this._url.tagName,U=this._image=w?this._url:ci("img");Me(U,"leaflet-image-layer"),this._zoomAnimated&&Me(U,"leaflet-zoom-animated"),this.options.className&&Me(U,this.options.className),U.onselectstart=_,U.onmousemove=_,U.onload=e(this.fire,this,"load"),U.onerror=e(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(U.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),w?this._url=U.src:(U.src=this._url,U.alt=this.options.alt)},_animateZoom:function(w){var U=this._map.getZoomScale(w.zoom),le=this._map._latLngBoundsToNewLayerBounds(this._bounds,w.zoom,w.center).min;Gi(this._image,le,U)},_reset:function(){var w=this._image,U=new me(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),le=U.getSize();hn(w,U.min),w.style.width=le.x+"px",w.style.height=le.y+"px"},_updateOpacity:function(){$t(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&null!=this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var w=this.options.errorOverlayUrl;w&&this._url!==w&&(this._url=w,this._image.src=w)},getCenter:function(){return this._bounds.getCenter()}}),AA=ol.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var w="VIDEO"===this._url.tagName,U=this._image=w?this._url:ci("video");if(Me(U,"leaflet-image-layer"),this._zoomAnimated&&Me(U,"leaflet-zoom-animated"),this.options.className&&Me(U,this.options.className),U.onselectstart=_,U.onmousemove=_,U.onloadeddata=e(this.fire,this,"load"),w){for(var le=U.getElementsByTagName("source"),Ue=[],Ct=0;Ct0?Ue:[U.src]}else{I(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(U.style,"objectFit")&&(U.style.objectFit="fill"),U.autoplay=!!this.options.autoplay,U.loop=!!this.options.loop,U.muted=!!this.options.muted,U.playsInline=!!this.options.playsInline;for(var Xt=0;XtCt?(U.height=Ct+"px",Me(w,Xt)):lt(w,Xt),this._containerWidth=this._container.offsetWidth},_animateZoom:function(w){var U=this._map._latLngToNewLayerPoint(this._latlng,w.zoom,w.center),le=this._getAnchor();hn(this._container,U.add(le))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)return void(this._autopanning=!1);var w=this._map,U=parseInt(Jt(this._container,"marginBottom"),10)||0,le=this._container.offsetHeight+U,Ue=this._containerWidth,Ct=new he(this._containerLeft,-le-this._containerBottom);Ct._add(Ci(this._container));var Xt=w.layerPointToContainerPoint(Ct),Mi=Ce(this.options.autoPanPadding),tn=Ce(this.options.autoPanPaddingTopLeft||Mi),cn=Ce(this.options.autoPanPaddingBottomRight||Mi),zn=w.getSize(),rr=0,jr=0;Xt.x+Ue+cn.x>zn.x&&(rr=Xt.x+Ue-zn.x+cn.x),Xt.x-rr-tn.x<0&&(rr=Xt.x-tn.x),Xt.y+le+cn.y>zn.y&&(jr=Xt.y+le-zn.y+cn.y),Xt.y-jr-tn.y<0&&(jr=Xt.y-tn.y),(rr||jr)&&(this.options.keepInView&&(this._autopanning=!0),w.fire("autopanstart").panBy([rr,jr]))}},_getAnchor:function(){return Ce(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});kt.mergeOptions({closePopupOnClick:!0}),kt.include({openPopup:function(w,U,le){return this._initOverlay(Vs,w,U,le).openOn(this),this},closePopup:function(w){return(w=arguments.length?w:this._popup)&&w.close(),this}}),ul.include({bindPopup:function(w,U){return this._popup=this._initOverlay(Vs,this._popup,w,U),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(w){return this._popup&&(this instanceof il||(this._popup._source=this),this._popup._prepareOpen(w||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(w){return this._popup&&this._popup.setContent(w),this},getPopup:function(){return this._popup},_openPopup:function(w){if(this._popup&&this._map){mr(w);var U=w.layer||w.target;if(this._popup._source===U&&!(U instanceof _s))return void(this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(w.latlng));this._popup._source=U,this.openPopup(w.latlng)}},_movePopup:function(w){this._popup.setLatLng(w.latlng)},_onKeyPress:function(w){13===w.originalEvent.keyCode&&this._openPopup(w)}});var Qc=Ra.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(w){Ra.prototype.onAdd.call(this,w),this.setOpacity(this.options.opacity),w.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(w){Ra.prototype.onRemove.call(this,w),w.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var w=Ra.prototype.getEvents.call(this);return this.options.permanent||(w.preclick=this.close),w},_initLayout:function(){this._contentNode=this._container=ci("div","leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide")),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+v(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(w){var U,le,Ue=this._map,Ct=this._container,Xt=Ue.latLngToContainerPoint(Ue.getCenter()),Mi=Ue.layerPointToContainerPoint(w),tn=this.options.direction,cn=Ct.offsetWidth,zn=Ct.offsetHeight,rr=Ce(this.options.offset),jr=this._getAnchor();"top"===tn?(U=cn/2,le=zn):"bottom"===tn?(U=cn/2,le=0):"center"===tn?(U=cn/2,le=zn/2):"right"===tn?(U=0,le=zn/2):"left"===tn?(U=cn,le=zn/2):Mi.xthis.options.maxZoom||leUe&&this._retainParent(Ct,Xt,Mi,Ue))},_retainChildren:function(w,U,le,Ue){for(var Ct=2*w;Ct<2*w+2;Ct++)for(var Xt=2*U;Xt<2*U+2;Xt++){var Mi=new he(Ct,Xt);Mi.z=le+1;var tn=this._tileCoordsToKey(Mi),cn=this._tiles[tn];cn&&cn.active?cn.retain=!0:(cn&&cn.loaded&&(cn.retain=!0),le+1this.options.maxZoom||void 0!==this.options.minZoom&&Ct1)return void this._setView(w,le);for(var jr=Ct.min.y;jr<=Ct.max.y;jr++)for(var vo=Ct.min.x;vo<=Ct.max.x;vo++){var Bs=new he(vo,jr);if(Bs.z=this._tileZoom,this._isValidTile(Bs)){var ns=this._tiles[this._tileCoordsToKey(Bs)];ns?ns.current=!0:Mi.push(Bs)}}if(Mi.sort(function(Ll,Vr){return Ll.distanceTo(Xt)-Vr.distanceTo(Xt)}),0!==Mi.length){this._loading||(this._loading=!0,this.fire("loading"));var Zl=document.createDocumentFragment();for(vo=0;vole.max.x)||!U.wrapLat&&(w.yle.max.y))return!1}if(!this.options.bounds)return!0;var Ue=this._tileCoordsToBounds(w);return Ae(this.options.bounds).overlaps(Ue)},_keyToBounds:function(w){return this._tileCoordsToBounds(this._keyToTileCoords(w))},_tileCoordsToNwSe:function(w){var U=this._map,le=this.getTileSize(),Ue=w.scaleBy(le),Ct=Ue.add(le);return[U.unproject(Ue,w.z),U.unproject(Ct,w.z)]},_tileCoordsToBounds:function(w){var U=this._tileCoordsToNwSe(w),le=new _e(U[0],U[1]);return this.options.noWrap||(le=this._map.wrapLatLngBounds(le)),le},_tileCoordsToKey:function(w){return w.x+":"+w.y+":"+w.z},_keyToTileCoords:function(w){var U=w.split(":"),le=new he(+U[0],+U[1]);return le.z=+U[2],le},_removeTile:function(w){var U=this._tiles[w];U&&(Ai(U.el),delete this._tiles[w],this.fire("tileunload",{tile:U.el,coords:this._keyToTileCoords(w)}))},_initTile:function(w){Me(w,"leaflet-tile");var U=this.getTileSize();w.style.width=U.x+"px",w.style.height=U.y+"px",w.onselectstart=_,w.onmousemove=_,Ti.ielt9&&this.options.opacity<1&&$t(w,this.options.opacity)},_addTile:function(w,U){var le=this._getTilePos(w),Ue=this._tileCoordsToKey(w),Ct=this.createTile(this._wrapCoords(w),e(this._tileReady,this,w));this._initTile(Ct),this.createTile.length<2&&G(e(this._tileReady,this,w,null,Ct)),hn(Ct,le),this._tiles[Ue]={el:Ct,coords:w,current:!0},U.appendChild(Ct),this.fire("tileloadstart",{tile:Ct,coords:w})},_tileReady:function(w,U,le){U&&this.fire("tileerror",{error:U,tile:le,coords:w});var Ue=this._tileCoordsToKey(w);(le=this._tiles[Ue])&&(le.loaded=+new Date,this._map._fadeAnimated?($t(le.el,0),W(this._fadeFrame),this._fadeFrame=G(this._updateOpacity,this)):(le.active=!0,this._pruneTiles()),U||(Me(le.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:le.el,coords:w})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Ti.ielt9||!this._map._fadeAnimated?G(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))},_getTilePos:function(w){return w.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(w){var U=new he(this._wrapX?f(w.x,this._wrapX):w.x,this._wrapY?f(w.y,this._wrapY):w.y);return U.z=w.z,U},_pxBoundsToTileRange:function(w){var U=this.getTileSize();return new me(w.min.unscaleBy(U).floor(),w.max.unscaleBy(U).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var w in this._tiles)if(!this._tiles[w].loaded)return!1;return!0}});var jt=PA.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(w,U){this._url=w,(U=D(this,U)).detectRetina&&Ti.retina&&U.maxZoom>0?(U.tileSize=Math.floor(U.tileSize/2),U.zoomReverse?(U.zoomOffset--,U.minZoom=Math.min(U.maxZoom,U.minZoom+1)):(U.zoomOffset++,U.maxZoom=Math.max(U.minZoom,U.maxZoom-1)),U.minZoom=Math.max(0,U.minZoom)):U.zoomReverse?U.minZoom=Math.min(U.maxZoom,U.minZoom):U.maxZoom=Math.max(U.minZoom,U.maxZoom),"string"==typeof U.subdomains&&(U.subdomains=U.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(w,U){return this._url===w&&void 0===U&&(U=!0),this._url=w,U||this.redraw(),this},createTile:function(w,U){var le=document.createElement("img");return Kn(le,"load",e(this._tileOnLoad,this,U,le)),Kn(le,"error",e(this._tileOnError,this,U,le)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(le.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(le.referrerPolicy=this.options.referrerPolicy),le.alt="",le.src=this.getTileUrl(w),le},getTileUrl:function(w){var U={r:Ti.retina?"@2x":"",s:this._getSubdomain(w),x:w.x,y:w.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var le=this._globalTileRange.max.y-w.y;this.options.tms&&(U.y=le),U["-y"]=le}return Q(this._url,K(U,this.options))},_tileOnLoad:function(w,U){Ti.ielt9?setTimeout(e(w,this,null,U),0):w(null,U)},_tileOnError:function(w,U,le){var Ue=this.options.errorTileUrl;Ue&&U.getAttribute("src")!==Ue&&(U.src=Ue),w(le,U)},_onTileRemove:function(w){w.tile.onload=null},_getZoomForUrl:function(){var w=this._tileZoom;return this.options.zoomReverse&&(w=this.options.maxZoom-w),w+this.options.zoomOffset},_getSubdomain:function(w){var U=Math.abs(w.x+w.y)%this.options.subdomains.length;return this.options.subdomains[U]},_abortLoading:function(){var w,U;for(w in this._tiles)if(this._tiles[w].coords.z!==this._tileZoom&&((U=this._tiles[w].el).onload=_,U.onerror=_,!U.complete)){U.src=S;var le=this._tiles[w].coords;Ai(U),delete this._tiles[w],this.fire("tileabort",{tile:U,coords:le})}},_removeTile:function(w){var U=this._tiles[w];if(U)return U.el.setAttribute("src",S),PA.prototype._removeTile.call(this,w)},_tileReady:function(w,U,le){if(this._map&&(!le||le.getAttribute("src")!==S))return PA.prototype._tileReady.call(this,w,U,le)}});function pt(w,U){return new jt(w,U)}var Lt=jt.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(w,U){this._url=w;var le=K({},this.defaultWmsParams);for(var Ue in U)Ue in this.options||(le[Ue]=U[Ue]);var Ct=(U=D(this,U)).detectRetina&&Ti.retina?2:1,Xt=this.getTileSize();le.width=Xt.x*Ct,le.height=Xt.y*Ct,this.wmsParams=le},onAdd:function(w){this._crs=this.options.crs||w.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version),this.wmsParams[this._wmsVersion>=1.3?"crs":"srs"]=this._crs.code,jt.prototype.onAdd.call(this,w)},getTileUrl:function(w){var U=this._tileCoordsToNwSe(w),le=this._crs,Ue=ze(le.project(U[0]),le.project(U[1])),Ct=Ue.min,Xt=Ue.max,Mi=(this._wmsVersion>=1.3&&this._crs===ta?[Ct.y,Ct.x,Xt.y,Xt.x]:[Ct.x,Ct.y,Xt.x,Xt.y]).join(","),tn=jt.prototype.getTileUrl.call(this,w);return tn+x(this.wmsParams,tn,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+Mi},setParams:function(w,U){return K(this.wmsParams,w),U||this.redraw(),this}});jt.WMS=Lt,pt.wms=function wi(w,U){return new Lt(w,U)};var rn=ul.extend({options:{padding:.1},initialize:function(w){D(this,w),v(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),Me(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var w={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(w.zoomanim=this._onAnimZoom),w},_onAnimZoom:function(w){this._updateTransform(w.center,w.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(w,U){var le=this._map.getZoomScale(U,this._zoom),Ue=this._map.getSize().multiplyBy(.5+this.options.padding),Ct=this._map.project(this._center,U),Xt=Ue.multiplyBy(-le).add(Ct).subtract(this._map._getNewPixelOrigin(w,U));Ti.any3d?Gi(this._container,Xt,le):hn(this._container,Xt)},_reset:function(){for(var w in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[w]._reset()},_onZoomEnd:function(){for(var w in this._layers)this._layers[w]._project()},_updatePaths:function(){for(var w in this._layers)this._layers[w]._update()},_update:function(){var w=this.options.padding,U=this._map.getSize(),le=this._map.containerPointToLayerPoint(U.multiplyBy(-w)).round();this._bounds=new me(le,le.add(U.multiplyBy(1+2*w)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Bn=rn.extend({options:{tolerance:0},getEvents:function(){var w=rn.prototype.getEvents.call(this);return w.viewprereset=this._onViewPreReset,w},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){rn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var w=this._container=document.createElement("canvas");Kn(w,"mousemove",this._onMouseMove,this),Kn(w,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Kn(w,"mouseout",this._handleMouseOut,this),w._leaflet_disable_events=!0,this._ctx=w.getContext("2d")},_destroyContainer:function(){W(this._redrawRequest),delete this._ctx,Ai(this._container),Dr(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var U in this._redrawBounds=null,this._layers)this._layers[U]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){rn.prototype._update.call(this);var w=this._bounds,U=this._container,le=w.getSize(),Ue=Ti.retina?2:1;hn(U,w.min),U.width=Ue*le.x,U.height=Ue*le.y,U.style.width=le.x+"px",U.style.height=le.y+"px",Ti.retina&&this._ctx.scale(2,2),this._ctx.translate(-w.min.x,-w.min.y),this.fire("update")}},_reset:function(){rn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(w){this._updateDashArray(w),this._layers[v(w)]=w;var U=w._order={layer:w,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=U),this._drawLast=U,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(w){this._requestRedraw(w)},_removePath:function(w){var U=w._order,le=U.next,Ue=U.prev;le?le.prev=Ue:this._drawLast=Ue,Ue?Ue.next=le:this._drawFirst=le,delete w._order,delete this._layers[v(w)],this._requestRedraw(w)},_updatePath:function(w){this._extendRedrawBounds(w),w._project(),w._update(),this._requestRedraw(w)},_updateStyle:function(w){this._updateDashArray(w),this._requestRedraw(w)},_updateDashArray:function(w){if("string"==typeof w.options.dashArray){var Ue,Ct,U=w.options.dashArray.split(/[, ]+/),le=[];for(Ct=0;Ct')}}catch{}return function(w){return document.createElement("<"+w+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),ua={_initContainer:function(){this._container=ci("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(rn.prototype._update.call(this),this.fire("update"))},_initPath:function(w){var U=w._container=$o("shape");Me(U,"leaflet-vml-shape "+(this.options.className||"")),U.coordsize="1 1",w._path=$o("path"),U.appendChild(w._path),this._updateStyle(w),this._layers[v(w)]=w},_addPath:function(w){var U=w._container;this._container.appendChild(U),w.options.interactive&&w.addInteractiveTarget(U)},_removePath:function(w){var U=w._container;Ai(U),w.removeInteractiveTarget(U),delete this._layers[v(w)]},_updateStyle:function(w){var U=w._stroke,le=w._fill,Ue=w.options,Ct=w._container;Ct.stroked=!!Ue.stroke,Ct.filled=!!Ue.fill,Ue.stroke?(U||(U=w._stroke=$o("stroke")),Ct.appendChild(U),U.weight=Ue.weight+"px",U.color=Ue.color,U.opacity=Ue.opacity,U.dashStyle=Ue.dashArray?I(Ue.dashArray)?Ue.dashArray.join(" "):Ue.dashArray.replace(/( *, *)/g," "):"",U.endcap=Ue.lineCap.replace("butt","flat"),U.joinstyle=Ue.lineJoin):U&&(Ct.removeChild(U),w._stroke=null),Ue.fill?(le||(le=w._fill=$o("fill")),Ct.appendChild(le),le.color=Ue.fillColor||Ue.color,le.opacity=Ue.fillOpacity):le&&(Ct.removeChild(le),w._fill=null)},_updateCircle:function(w){var U=w._point.round(),le=Math.round(w._radius),Ue=Math.round(w._radiusY||le);this._setPath(w,w._empty()?"M0 0":"AL "+U.x+","+U.y+" "+le+","+Ue+" 0,23592600")},_setPath:function(w,U){w._path.v=U},_bringToFront:function(w){Le(w._container)},_bringToBack:function(w){Pe(w._container)}},Vo=Ti.vml?$o:He,Ao=rn.extend({_initContainer:function(){this._container=Vo("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Vo("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Ai(this._container),Dr(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){rn.prototype._update.call(this);var w=this._bounds,U=w.getSize(),le=this._container;(!this._svgSize||!this._svgSize.equals(U))&&(this._svgSize=U,le.setAttribute("width",U.x),le.setAttribute("height",U.y)),hn(le,w.min),le.setAttribute("viewBox",[w.min.x,w.min.y,U.x,U.y].join(" ")),this.fire("update")}},_initPath:function(w){var U=w._path=Vo("path");w.options.className&&Me(U,w.options.className),w.options.interactive&&Me(U,"leaflet-interactive"),this._updateStyle(w),this._layers[v(w)]=w},_addPath:function(w){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(w._path),w.addInteractiveTarget(w._path)},_removePath:function(w){Ai(w._path),w.removeInteractiveTarget(w._path),delete this._layers[v(w)]},_updatePath:function(w){w._project(),w._update()},_updateStyle:function(w){var U=w._path,le=w.options;U&&(le.stroke?(U.setAttribute("stroke",le.color),U.setAttribute("stroke-opacity",le.opacity),U.setAttribute("stroke-width",le.weight),U.setAttribute("stroke-linecap",le.lineCap),U.setAttribute("stroke-linejoin",le.lineJoin),le.dashArray?U.setAttribute("stroke-dasharray",le.dashArray):U.removeAttribute("stroke-dasharray"),le.dashOffset?U.setAttribute("stroke-dashoffset",le.dashOffset):U.removeAttribute("stroke-dashoffset")):U.setAttribute("stroke","none"),le.fill?(U.setAttribute("fill",le.fillColor||le.color),U.setAttribute("fill-opacity",le.fillOpacity),U.setAttribute("fill-rule",le.fillRule||"evenodd")):U.setAttribute("fill","none"))},_updatePoly:function(w,U){this._setPath(w,be(w._parts,U))},_updateCircle:function(w){var U=w._point,le=Math.max(Math.round(w._radius),1),Ct="a"+le+","+(Math.max(Math.round(w._radiusY),1)||le)+" 0 1,0 ",Xt=w._empty()?"M0 0":"M"+(U.x-le)+","+U.y+Ct+2*le+",0 "+Ct+2*-le+",0 ";this._setPath(w,Xt)},_setPath:function(w,U){w._path.setAttribute("d",U)},_bringToFront:function(w){Le(w._path)},_bringToBack:function(w){Pe(w._path)}});function ha(w){return Ti.svg||Ti.vml?new Ao(w):null}Ti.vml&&Ao.include(ua),kt.include({getRenderer:function(w){var U=w.options.renderer||this._getPaneRenderer(w.options.pane)||this.options.renderer||this._renderer;return U||(U=this._renderer=this._createRenderer()),this.hasLayer(U)||this.addLayer(U),U},_getPaneRenderer:function(w){if("overlayPane"===w||void 0===w)return!1;var U=this._paneRenderers[w];return void 0===U&&(U=this._createRenderer({pane:w}),this._paneRenderers[w]=U),U},_createRenderer:function(w){return this.options.preferCanvas&&Mr(w)||ha(w)}});var ka=ba.extend({initialize:function(w,U){ba.prototype.initialize.call(this,this._boundsToLatLngs(w),U)},setBounds:function(w){return this.setLatLngs(this._boundsToLatLngs(w))},_boundsToLatLngs:function(w){return[(w=Ae(w)).getSouthWest(),w.getNorthWest(),w.getNorthEast(),w.getSouthEast()]}});Ao.create=Vo,Ao.pointsToPath=be,gc.geometryToLayer=Fl,gc.coordsToLatLng=kc,gc.coordsToLatLngs=es,gc.latLngToCoords=lA,gc.latLngsToCoords=cA,gc.getFeature=fc,gc.asFeature=ZA,kt.mergeOptions({boxZoom:!0});var ic=Ur.extend({initialize:function(w){this._map=w,this._container=w._container,this._pane=w._panes.overlayPane,this._resetStateTimeout=0,w.on("unload",this._destroy,this)},addHooks:function(){Kn(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Dr(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Ai(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(w){if(!w.shiftKey||1!==w.which&&1!==w.button)return!1;this._clearDeferredResetState(),this._resetState(),Vi(),$i(),this._startPoint=this._map.mouseEventToContainerPoint(w),Kn(document,{contextmenu:mr,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(w){this._moved||(this._moved=!0,this._box=ci("div","leaflet-zoom-box",this._container),Me(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(w);var U=new me(this._point,this._startPoint),le=U.getSize();hn(this._box,U.min),this._box.style.width=le.x+"px",this._box.style.height=le.y+"px"},_finish:function(){this._moved&&(Ai(this._box),lt(this._container,"leaflet-crosshair")),nn(),In(),Dr(document,{contextmenu:mr,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(w){if((1===w.which||1===w.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var U=new _e(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(U).fire("boxzoomend",{boxZoomBounds:U})}},_onKeyDown:function(w){27===w.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});kt.addInitHook("addHandler","boxZoom",ic),kt.mergeOptions({doubleClickZoom:!0});var Ol=Ur.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(w){var U=this._map,le=U.getZoom(),Ue=U.options.zoomDelta,Ct=w.originalEvent.shiftKey?le-Ue:le+Ue;"center"===U.options.doubleClickZoom?U.setZoom(Ct):U.setZoomAround(w.containerPoint,Ct)}});kt.addInitHook("addHandler","doubleClickZoom",Ol),kt.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Sc=Ur.extend({addHooks:function(){if(!this._draggable){var w=this._map;this._draggable=new Io(w._mapPane,w._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),w.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),w.on("zoomend",this._onZoomEnd,this),w.whenReady(this._onZoomEnd,this))}Me(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){lt(this._map._container,"leaflet-grab"),lt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var w=this._map;if(w._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var U=Ae(this._map.options.maxBounds);this._offsetLimit=ze(this._map.latLngToContainerPoint(U.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(U.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;w.fire("movestart").fire("dragstart"),w.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(w){if(this._map.options.inertia){var U=this._lastTime=+new Date,le=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(le),this._times.push(U),this._prunePositions(U)}this._map.fire("move",w).fire("drag",w)},_prunePositions:function(w){for(;this._positions.length>1&&w-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var w=this._map.getSize().divideBy(2),U=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=U.subtract(w).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(w,U){return w-(w-U)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var w=this._draggable._newPos.subtract(this._draggable._startPos),U=this._offsetLimit;w.xU.max.x&&(w.x=this._viscousLimit(w.x,U.max.x)),w.y>U.max.y&&(w.y=this._viscousLimit(w.y,U.max.y)),this._draggable._newPos=this._draggable._startPos.add(w)}},_onPreDragWrap:function(){var w=this._worldWidth,U=Math.round(w/2),le=this._initialWorldOffset,Ue=this._draggable._newPos.x,Ct=(Ue-U+le)%w+U-le,Xt=(Ue+U+le)%w-U-le,Mi=Math.abs(Ct+le)0?Xt:-Xt))-U;this._delta=0,this._startTime=null,Mi&&("center"===w.options.scrollWheelZoom?w.setZoom(U+Mi):w.setZoomAround(this._lastMousePos,U+Mi))}});kt.addInitHook("addHandler","scrollWheelZoom",Pr);kt.mergeOptions({tapHold:Ti.touchNative&&Ti.safari&&Ti.mobile,tapTolerance:15});var bl=Ur.extend({addHooks:function(){Kn(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Dr(this._map._container,"touchstart",this._onDown,this)},_onDown:function(w){if(clearTimeout(this._holdTimeout),1===w.touches.length){var U=w.touches[0];this._startPos=this._newPos=new he(U.clientX,U.clientY),this._holdTimeout=setTimeout(e(function(){this._cancel(),this._isTapValid()&&(Kn(document,"touchend",kn),Kn(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",U))},this),600),Kn(document,"touchend touchcancel contextmenu",this._cancel,this),Kn(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function w(){Dr(document,"touchend",kn),Dr(document,"touchend touchcancel",w)},_cancel:function(){clearTimeout(this._holdTimeout),Dr(document,"touchend touchcancel contextmenu",this._cancel,this),Dr(document,"touchmove",this._onMove,this)},_onMove:function(w){var U=w.touches[0];this._newPos=new he(U.clientX,U.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(w,U){var le=new MouseEvent(w,{bubbles:!0,cancelable:!0,view:window,screenX:U.screenX,screenY:U.screenY,clientX:U.clientX,clientY:U.clientY});le._simulated=!0,U.target.dispatchEvent(le)}});kt.addInitHook("addHandler","tapHold",bl),kt.mergeOptions({touchZoom:Ti.touch,bounceAtZoomLimits:!0});var sd=Ur.extend({addHooks:function(){Me(this._map._container,"leaflet-touch-zoom"),Kn(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){lt(this._map._container,"leaflet-touch-zoom"),Dr(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(w){var U=this._map;if(w.touches&&2===w.touches.length&&!U._animatingZoom&&!this._zooming){var le=U.mouseEventToContainerPoint(w.touches[0]),Ue=U.mouseEventToContainerPoint(w.touches[1]);this._centerPoint=U.getSize()._divideBy(2),this._startLatLng=U.containerPointToLatLng(this._centerPoint),"center"!==U.options.touchZoom&&(this._pinchStartLatLng=U.containerPointToLatLng(le.add(Ue)._divideBy(2))),this._startDist=le.distanceTo(Ue),this._startZoom=U.getZoom(),this._moved=!1,this._zooming=!0,U._stop(),Kn(document,"touchmove",this._onTouchMove,this),Kn(document,"touchend touchcancel",this._onTouchEnd,this),kn(w)}},_onTouchMove:function(w){if(w.touches&&2===w.touches.length&&this._zooming){var U=this._map,le=U.mouseEventToContainerPoint(w.touches[0]),Ue=U.mouseEventToContainerPoint(w.touches[1]),Ct=le.distanceTo(Ue)/this._startDist;if(this._zoom=U.getScaleZoom(Ct,this._startZoom),!U.options.bounceAtZoomLimits&&(this._zoomU.getMaxZoom()&&Ct>1)&&(this._zoom=U._limitZoom(this._zoom)),"center"===U.options.touchZoom){if(this._center=this._startLatLng,1===Ct)return}else{var Xt=le._add(Ue)._divideBy(2)._subtract(this._centerPoint);if(1===Ct&&0===Xt.x&&0===Xt.y)return;this._center=U.unproject(U.project(this._pinchStartLatLng,this._zoom).subtract(Xt),this._zoom)}this._moved||(U._moveStart(!0,!1),this._moved=!0),W(this._animRequest);var Mi=e(U._move,U,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=G(Mi,this,!0),kn(w)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,W(this._animRequest),Dr(document,"touchmove",this._onTouchMove,this),Dr(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});kt.addInitHook("addHandler","touchZoom",sd),kt.BoxZoom=ic,kt.DoubleClickZoom=Ol,kt.Drag=Sc,kt.Keyboard=xs,kt.ScrollWheelZoom=Pr,kt.TapHold=bl,kt.TouchZoom=sd,ce.Bounds=me,ce.Browser=Ti,ce.CRS=Oe,ce.Canvas=Bn,ce.Circle=rl,ce.CircleMarker=nl,ce.Class=P,ce.Control=Ii,ce.DivIcon=Ld,ce.DivOverlay=Ra,ce.DomEvent=Ye,ce.DomUtil=Br,ce.Draggable=Io,ce.Evented=re,ce.FeatureGroup=il,ce.GeoJSON=gc,ce.GridLayer=PA,ce.Handler=Ur,ce.Icon=Rs,ce.ImageOverlay=ol,ce.LatLng=ve,ce.LatLngBounds=_e,ce.Layer=ul,ce.LayerGroup=Sl,ce.LineUtil=Od,ce.Map=kt,ce.Marker=Tc,ce.Mixin=Tr,ce.Path=_s,ce.Point=he,ce.PolyUtil=ds,ce.Polygon=ba,ce.Polyline=An,ce.Popup=Vs,ce.PosAnimation=ht,ce.Projection=Ia,ce.Rectangle=ka,ce.Renderer=rn,ce.SVG=Ao,ce.SVGOverlay=Cl,ce.TileLayer=jt,ce.Tooltip=Qc,ce.Transformation=Ve,ce.Util=te,ce.VideoOverlay=AA,ce.bind=e,ce.bounds=ze,ce.canvas=Mr,ce.circle=function ia(w,U,le){return new rl(w,U,le)},ce.circleMarker=function Pl(w,U){return new nl(w,U)},ce.control=en,ce.divIcon=function SA(w){return new Ld(w)},ce.extend=K,ce.featureGroup=function(w,U){return new il(w,U)},ce.geoJSON=Ho,ce.geoJson=ya,ce.gridLayer=function Re(w){return new PA(w)},ce.icon=function wl(w){return new Rs(w)},ce.imageOverlay=function(w,U,le){return new ol(w,U,le)},ce.latLng=ye,ce.latLngBounds=Ae,ce.layerGroup=function(w,U){return new Sl(w,U)},ce.map=function hi(w,U){return new kt(w,U)},ce.marker=function ad(w,U){return new Tc(w,U)},ce.point=Ce,ce.polygon=function lr(w,U){return new ba(w,U)},ce.polyline=function Jr(w,U){return new An(w,U)},ce.popup=function(w,U){return new Vs(w,U)},ce.rectangle=function is(w,U){return new ka(w,U)},ce.setOptions=D,ce.stamp=v,ce.svg=ha,ce.svgOverlay=function ts(w,U,le){return new Cl(w,U,le)},ce.tileLayer=pt,ce.tooltip=function(w,U){return new Qc(w,U)},ce.transformation=mt,ce.version="1.9.4",ce.videoOverlay=function JA(w,U,le){return new AA(w,U,le)};var pa=window.L;ce.noConflict=function(){return window.L=pa,this},window.L=ce}(Pt)},3274:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(T){return/^nm$/i.test(T)},meridiem:function(T,e,l){return T<12?l?"vm":"VM":l?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(T){return T+(1===T||8===T||T>=20?"ste":"de")},week:{dow:1,doy:4}})}(ce(6676))},1867:function(ni,Pt,ce){!function(V){"use strict";var K=function(h){return 0===h?0:1===h?1:2===h?2:h%100>=3&&h%100<=10?3:h%100>=11?4:5},T={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},e=function(h){return function(f,_,b,y){var M=K(f),D=T[h][K(f)];return 2===M&&(D=D[_?0:1]),D.replace(/%d/i,f)}},l=["\u062c\u0627\u0646\u0641\u064a","\u0641\u064a\u0641\u0631\u064a","\u0645\u0627\u0631\u0633","\u0623\u0641\u0631\u064a\u0644","\u0645\u0627\u064a","\u062c\u0648\u0627\u0646","\u062c\u0648\u064a\u0644\u064a\u0629","\u0623\u0648\u062a","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];V.defineLocale("ar-dz",{months:l,monthsShort:l,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(h){return"\u0645"===h},meridiem:function(h,f,_){return h<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:e("s"),ss:e("s"),m:e("m"),mm:e("m"),h:e("h"),hh:e("h"),d:e("d"),dd:e("d"),M:e("M"),MM:e("M"),y:e("y"),yy:e("y")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:0,doy:4}})}(ce(6676))},7078:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(ce(6676))},7776:function(ni,Pt,ce){!function(V){"use strict";var K={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},T=function(f){return 0===f?0:1===f?1:2===f?2:f%100>=3&&f%100<=10?3:f%100>=11?4:5},e={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},l=function(f){return function(_,b,y,M){var D=T(_),x=e[f][T(_)];return 2===D&&(x=x[b?0:1]),x.replace(/%d/i,_)}},v=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];V.defineLocale("ar-ly",{months:v,monthsShort:v,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(f){return"\u0645"===f},meridiem:function(f,_,b){return f<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:l("s"),ss:l("s"),m:l("m"),mm:l("m"),h:l("h"),hh:l("h"),d:l("d"),dd:l("d"),M:l("M"),MM:l("M"),y:l("y"),yy:l("y")},preparse:function(f){return f.replace(/\u060c/g,",")},postformat:function(f){return f.replace(/\d/g,function(_){return K[_]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(ce(6676))},6789:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(ce(6676))},3807:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},T={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};V.defineLocale("ar-ps",{months:"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0651\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0651\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0634\u0631\u064a \u0627\u0644\u0623\u0648\u0651\u0644_\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0651\u0644".split("_"),monthsShort:"\u0643\u0662_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0651\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0651\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0661_\u062a\u0662_\u0643\u0661".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(l){return"\u0645"===l},meridiem:function(l,v,h){return l<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(l){return l.replace(/[\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(v){return T[v]}).split("").reverse().join("").replace(/[\u0661\u0662](?![\u062a\u0643])/g,function(v){return T[v]}).split("").reverse().join("").replace(/\u060c/g,",")},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(ce(6676))},6897:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},T={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};V.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(l){return"\u0645"===l},meridiem:function(l,v,h){return l<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(l){return l.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(v){return T[v]}).replace(/\u060c/g,",")},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(ce(6676))},1585:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(ce(6676))},2097:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},T={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},e=function(_){return 0===_?0:1===_?1:2===_?2:_%100>=3&&_%100<=10?3:_%100>=11?4:5},l={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},v=function(_){return function(b,y,M,D){var x=e(b),k=l[_][e(b)];return 2===x&&(k=k[y?0:1]),k.replace(/%d/i,b)}},h=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];V.defineLocale("ar",{months:h,monthsShort:h,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(_){return"\u0645"===_},meridiem:function(_,b,y){return _<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:v("s"),ss:v("s"),m:v("m"),mm:v("m"),h:v("h"),hh:v("h"),d:v("d"),dd:v("d"),M:v("M"),MM:v("M"),y:v("y"),yy:v("y")},preparse:function(_){return _.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(b){return T[b]}).replace(/\u060c/g,",")},postformat:function(_){return _.replace(/\d/g,function(b){return K[b]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(ce(6676))},5611:function(ni,Pt,ce){!function(V){"use strict";var K={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};V.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"bir ne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,l,v){return e<4?"gec\u0259":e<12?"s\u0259h\u0259r":e<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-\u0131nc\u0131";var l=e%10;return e+(K[l]||K[e%100-l]||K[e>=100?100:null])},week:{dow:1,doy:7}})}(ce(6676))},2459:function(ni,Pt,ce){!function(V){"use strict";function T(l,v,h){return"m"===h?v?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===h?v?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":l+" "+function K(l,v){var h=l.split("_");return v%10==1&&v%100!=11?h[0]:v%10>=2&&v%10<=4&&(v%100<10||v%100>=20)?h[1]:h[2]}({ss:v?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:v?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:v?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[h],+l)}V.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:T,mm:T,h:T,hh:T,d:"\u0434\u0437\u0435\u043d\u044c",dd:T,M:"\u043c\u0435\u0441\u044f\u0446",MM:T,y:"\u0433\u043e\u0434",yy:T},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(l){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(l)},meridiem:function(l,v,h){return l<4?"\u043d\u043e\u0447\u044b":l<12?"\u0440\u0430\u043d\u0456\u0446\u044b":l<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(l,v){switch(v){case"M":case"d":case"DDD":case"w":case"W":return l%10!=2&&l%10!=3||l%100==12||l%100==13?l+"-\u044b":l+"-\u0456";case"D":return l+"-\u0433\u0430";default:return l}},week:{dow:1,doy:7}})}(ce(6676))},1825:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0443_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u041c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u041c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",w:"\u0441\u0435\u0434\u043c\u0438\u0446\u0430",ww:"%d \u0441\u0435\u0434\u043c\u0438\u0446\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(T){var e=T%10,l=T%100;return 0===T?T+"-\u0435\u0432":0===l?T+"-\u0435\u043d":l>10&&l<20?T+"-\u0442\u0438":1===e?T+"-\u0432\u0438":2===e?T+"-\u0440\u0438":7===e||8===e?T+"-\u043c\u0438":T+"-\u0442\u0438"},week:{dow:1,doy:7}})}(ce(6676))},5918:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(ce(6676))},9683:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},T={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};V.defineLocale("bn-bd",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(l){return l.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u09b0\u09be\u09a4|\u09ad\u09cb\u09b0|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be|\u09b0\u09be\u09a4/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u09b0\u09be\u09a4"===v?l<4?l:l+12:"\u09ad\u09cb\u09b0"===v||"\u09b8\u0995\u09be\u09b2"===v?l:"\u09a6\u09c1\u09aa\u09c1\u09b0"===v?l>=3?l:l+12:"\u09ac\u09bf\u0995\u09be\u09b2"===v||"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be"===v?l+12:void 0},meridiem:function(l,v,h){return l<4?"\u09b0\u09be\u09a4":l<6?"\u09ad\u09cb\u09b0":l<12?"\u09b8\u0995\u09be\u09b2":l<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":l<18?"\u09ac\u09bf\u0995\u09be\u09b2":l<20?"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(ce(6676))},4065:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},T={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};V.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(l){return l.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u09b0\u09be\u09a4"===v&&l>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===v&&l<5||"\u09ac\u09bf\u0995\u09be\u09b2"===v?l+12:l},meridiem:function(l,v,h){return l<4?"\u09b0\u09be\u09a4":l<10?"\u09b8\u0995\u09be\u09b2":l<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":l<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(ce(6676))},1034:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},T={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};V.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b1_\u0f5f\u0fb3\u0f0b2_\u0f5f\u0fb3\u0f0b3_\u0f5f\u0fb3\u0f0b4_\u0f5f\u0fb3\u0f0b5_\u0f5f\u0fb3\u0f0b6_\u0f5f\u0fb3\u0f0b7_\u0f5f\u0fb3\u0f0b8_\u0f5f\u0fb3\u0f0b9_\u0f5f\u0fb3\u0f0b10_\u0f5f\u0fb3\u0f0b11_\u0f5f\u0fb3\u0f0b12".split("_"),monthsShortRegex:/^(\u0f5f\u0fb3\u0f0b\d{1,2})/,monthsParseExact:!0,weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72_\u0f5f\u0fb3_\u0f58\u0f72\u0f42_\u0f63\u0fb7\u0f42_\u0f55\u0f74\u0f62_\u0f66\u0f44\u0f66_\u0f66\u0fa4\u0f7a\u0f53".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(l){return l.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===v&&l>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===v&&l<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===v?l+12:l},meridiem:function(l,v,h){return l<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":l<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":l<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":l<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(ce(6676))},7671:function(ni,Pt,ce){!function(V){"use strict";function K(k,Q,I){return k+" "+function l(k,Q){return 2===Q?function v(k){var Q={m:"v",b:"v",d:"z"};return void 0===Q[k.charAt(0)]?k:Q[k.charAt(0)]+k.substring(1)}(k):k}({mm:"munutenn",MM:"miz",dd:"devezh"}[I],k)}function e(k){return k>9?e(k%10):k}var h=[/^gen/i,/^c[\u02bc\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],f=/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,D=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];V.defineLocale("br",{months:"Genver_C\u02bchwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C\u02bchwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc\u02bcher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:D,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[\u02bc\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:D,monthsRegex:f,monthsShortRegex:f,monthsStrictRegex:/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:h,longMonthsParse:h,shortMonthsParse:h,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc\u02bchoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec\u02bch da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s \u02bczo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:K,h:"un eur",hh:"%d eur",d:"un devezh",dd:K,M:"ur miz",MM:K,y:"ur bloaz",yy:function T(k){switch(e(k)){case 1:case 3:case 4:case 5:case 9:return k+" bloaz";default:return k+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(k){return k+(1===k?"a\xf1":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(k){return"g.m."===k},meridiem:function(k,Q,I){return k<12?"a.m.":"g.m."}})}(ce(6676))},8153:function(ni,Pt,ce){!function(V){"use strict";function T(l,v,h){var f=l+" ";switch(h){case"ss":return f+(1===l?"sekunda":2===l||3===l||4===l?"sekunde":"sekundi");case"mm":return f+(1===l?"minuta":2===l||3===l||4===l?"minute":"minuta");case"h":return"jedan sat";case"hh":return f+(1===l?"sat":2===l||3===l||4===l?"sata":"sati");case"dd":return f+(1===l?"dan":"dana");case"MM":return f+(1===l?"mjesec":2===l||3===l||4===l?"mjeseca":"mjeseci");case"yy":return f+(1===l?"godina":2===l||3===l||4===l?"godine":"godina")}}V.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:T,m:function K(l,v,h,f){if("m"===h)return v?"jedna minuta":f?"jednu minutu":"jedne minute"},mm:T,h:T,hh:T,d:"dan",dd:T,M:"mjesec",MM:T,y:"godinu",yy:T},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},4287:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(T,e){var l=1===T?"r":2===T?"n":3===T?"r":4===T?"t":"\xe8";return("w"===e||"W"===e)&&(l="a"),T+l},week:{dow:1,doy:4}})}(ce(6676))},2616:function(ni,Pt,ce){!function(V){"use strict";var K={standalone:"leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),format:"ledna_\xfanora_b\u0159ezna_dubna_kv\u011btna_\u010dervna_\u010dervence_srpna_z\xe1\u0159\xed_\u0159\xedjna_listopadu_prosince".split("_"),isFormat:/DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/},T="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),e=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],l=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function v(_){return _>1&&_<5&&1!=~~(_/10)}function h(_,b,y,M){var D=_+" ";switch(y){case"s":return b||M?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return b||M?D+(v(_)?"sekundy":"sekund"):D+"sekundami";case"m":return b?"minuta":M?"minutu":"minutou";case"mm":return b||M?D+(v(_)?"minuty":"minut"):D+"minutami";case"h":return b?"hodina":M?"hodinu":"hodinou";case"hh":return b||M?D+(v(_)?"hodiny":"hodin"):D+"hodinami";case"d":return b||M?"den":"dnem";case"dd":return b||M?D+(v(_)?"dny":"dn\xed"):D+"dny";case"M":return b||M?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return b||M?D+(v(_)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):D+"m\u011bs\xedci";case"y":return b||M?"rok":"rokem";case"yy":return b||M?D+(v(_)?"roky":"let"):D+"lety"}}V.defineLocale("cs",{months:K,monthsShort:T,monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},7049:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(T){return T+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(T)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(T)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(ce(6676))},9172:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(T){var l="";return T>20?l=40===T||50===T||60===T||80===T||100===T?"fed":"ain":T>0&&(l=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][T]),T+l},week:{dow:1,doy:4}})}(ce(6676))},605:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},3395:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return l?f[v][0]:f[v][1]}V.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:K,mm:"%d Minuten",h:K,hh:"%d Stunden",d:K,dd:K,w:K,ww:"%d Wochen",M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},9835:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return l?f[v][0]:f[v][1]}V.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:K,mm:"%d Minuten",h:K,hh:"%d Stunden",d:K,dd:K,w:K,ww:"%d Wochen",M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},4013:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return l?f[v][0]:f[v][1]}V.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:K,mm:"%d Minuten",h:K,hh:"%d Stunden",d:K,dd:K,w:K,ww:"%d Wochen",M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},4570:function(ni,Pt,ce){!function(V){"use strict";var K=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],T=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];V.defineLocale("dv",{months:K,monthsShort:K,weekdays:T,weekdaysShort:T,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(l){return"\u0789\u078a"===l},meridiem:function(l,v,h){return l<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(l){return l.replace(/\u060c/g,",")},postformat:function(l){return l.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(ce(6676))},1859:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(e,l){return e?"string"==typeof l&&/D/.test(l.substring(0,l.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(e,l,v){return e>11?v?"\u03bc\u03bc":"\u039c\u039c":v?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(e){return"\u03bc"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){return 6===this.day()?"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT":"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"},sameElse:"L"},calendar:function(e,l){var v=this._calendarEl[e],h=l&&l.hours();return function K(e){return typeof Function<"u"&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}(v)&&(v=v.apply(l)),v.replace("{}",h%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(ce(6676))},5785:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:0,doy:4}})}(ce(6676))},3792:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(ce(6676))},7651:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(ce(6676))},1929:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(ce(6676))},9818:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(ce(6676))},6612:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:0,doy:6}})}(ce(6676))},4900:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(ce(6676))},2721:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(ce(6676))},5159:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_a\u016dg_sept_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(T){return"p"===T.charAt(0).toLowerCase()},meridiem:function(T,e,l){return T>11?l?"p.t.m.":"P.T.M.":l?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(ce(6676))},1780:function(ni,Pt,ce){!function(V){"use strict";var K="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),T="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),e=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],l=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;V.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,f){return h?/-MMM-/.test(f)?T[h.month()]:K[h.month()]:K},monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},3468:function(ni,Pt,ce){!function(V){"use strict";var K="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),T="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),e=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],l=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;V.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,f){return h?/-MMM-/.test(f)?T[h.month()]:K[h.month()]:K},monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:4},invalidDate:"Fecha inv\xe1lida"})}(ce(6676))},4938:function(ni,Pt,ce){!function(V){"use strict";var K="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),T="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),e=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],l=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;V.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,f){return h?/-MMM-/.test(f)?T[h.month()]:K[h.month()]:K},monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(ce(6676))},1954:function(ni,Pt,ce){!function(V){"use strict";var K="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),T="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),e=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],l=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;V.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,f){return h?/-MMM-/.test(f)?T[h.month()]:K[h.month()]:K},monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4},invalidDate:"Fecha inv\xe1lida"})}(ce(6676))},1453:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[e+" minuti",e+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[e+" tunni",e+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[e+" kuu",e+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[e+" aasta",e+" aastat"]};return l?f[v][2]?f[v][2]:f[v][1]:h?f[v][0]:f[v][1]}V.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:K,ss:K,m:K,mm:K,h:K,hh:K,d:K,dd:"%d p\xe4eva",M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},4697:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},2900:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},T={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};V.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(l){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(l)},meridiem:function(l,v,h){return l<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"%d \u062b\u0627\u0646\u06cc\u0647",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(l){return l.replace(/[\u06f0-\u06f9]/g,function(v){return T[v]}).replace(/\u060c/g,",")},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(ce(6676))},9775:function(ni,Pt,ce){!function(V){"use strict";var K="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),T=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",K[7],K[8],K[9]];function e(h,f,_,b){var y="";switch(_){case"s":return b?"muutaman sekunnin":"muutama sekunti";case"ss":y=b?"sekunnin":"sekuntia";break;case"m":return b?"minuutin":"minuutti";case"mm":y=b?"minuutin":"minuuttia";break;case"h":return b?"tunnin":"tunti";case"hh":y=b?"tunnin":"tuntia";break;case"d":return b?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":y=b?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return b?"kuukauden":"kuukausi";case"MM":y=b?"kuukauden":"kuukautta";break;case"y":return b?"vuoden":"vuosi";case"yy":y=b?"vuoden":"vuotta"}return function l(h,f){return h<10?f?T[h]:K[h]:h}(h,b)+" "+y}V.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},4282:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(T){return T},week:{dow:1,doy:4}})}(ce(6676))},4236:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},2830:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(T,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return T+(1===T?"er":"e");case"w":case"W":return T+(1===T?"re":"e")}}})}(ce(6676))},1412:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(T,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return T+(1===T?"er":"e");case"w":case"W":return T+(1===T?"re":"e")}},week:{dow:1,doy:4}})}(ce(6676))},9361:function(ni,Pt,ce){!function(V){"use strict";var e=/(janv\.?|f\xe9vr\.?|mars|avr\.?|mai|juin|juil\.?|ao\xfbt|sept\.?|oct\.?|nov\.?|d\xe9c\.?|janvier|f\xe9vrier|mars|avril|mai|juin|juillet|ao\xfbt|septembre|octobre|novembre|d\xe9cembre)/i,l=[/^janv/i,/^f\xe9vr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^ao\xfbt/i,/^sept/i,/^oct/i,/^nov/i,/^d\xe9c/i];V.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsRegex:e,monthsShortRegex:e,monthsStrictRegex:/^(janvier|f\xe9vrier|mars|avril|mai|juin|juillet|ao\xfbt|septembre|octobre|novembre|d\xe9cembre)/i,monthsShortStrictRegex:/(janv\.?|f\xe9vr\.?|mars|avr\.?|mai|juin|juil\.?|ao\xfbt|sept\.?|oct\.?|nov\.?|d\xe9c\.?)/i,monthsParse:l,longMonthsParse:l,shortMonthsParse:l,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(h,f){switch(f){case"D":return h+(1===h?"er":"");default:case"M":case"Q":case"DDD":case"d":return h+(1===h?"er":"e");case"w":case"W":return h+(1===h?"re":"e")}},week:{dow:1,doy:4}})}(ce(6676))},6984:function(ni,Pt,ce){!function(V){"use strict";var K="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),T="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");V.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(l,v){return l?/-MMM-/.test(v)?T[l.month()]:K[l.month()]:K},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(l){return l+(1===l||8===l||l>=20?"ste":"de")},week:{dow:1,doy:4}})}(ce(6676))},3961:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ga",{months:["Ean\xe1ir","Feabhra","M\xe1rta","Aibre\xe1n","Bealtaine","Meitheamh","I\xfail","L\xfanasa","Me\xe1n F\xf3mhair","Deireadh F\xf3mhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","M\xe1rt","Aib","Beal","Meith","I\xfail","L\xfan","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["D\xe9 Domhnaigh","D\xe9 Luain","D\xe9 M\xe1irt","D\xe9 C\xe9adaoin","D\xe9ardaoin","D\xe9 hAoine","D\xe9 Sathairn"],weekdaysShort:["Domh","Luan","M\xe1irt","C\xe9ad","D\xe9ar","Aoine","Sath"],weekdaysMin:["Do","Lu","M\xe1","C\xe9","D\xe9","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Am\xe1rach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inn\xe9 ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",ss:"%d soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xedonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(f){return f+(1===f?"d":f%10==2?"na":"mh")},week:{dow:1,doy:4}})}(ce(6676))},8849:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(f){return f+(1===f?"d":f%10==2?"na":"mh")},week:{dow:1,doy:4}})}(ce(6676))},4273:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(T){return 0===T.indexOf("un")?"n"+T:"en "+T},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},623:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f={s:["\u0925\u094b\u0921\u092f\u093e \u0938\u0945\u0915\u0902\u0921\u093e\u0902\u0928\u0940","\u0925\u094b\u0921\u0947 \u0938\u0945\u0915\u0902\u0921"],ss:[e+" \u0938\u0945\u0915\u0902\u0921\u093e\u0902\u0928\u0940",e+" \u0938\u0945\u0915\u0902\u0921"],m:["\u090f\u0915\u093e \u092e\u093f\u0923\u091f\u093e\u0928","\u090f\u0915 \u092e\u093f\u0928\u0942\u091f"],mm:[e+" \u092e\u093f\u0923\u091f\u093e\u0902\u0928\u0940",e+" \u092e\u093f\u0923\u091f\u093e\u0902"],h:["\u090f\u0915\u093e \u0935\u0930\u093e\u0928","\u090f\u0915 \u0935\u0930"],hh:[e+" \u0935\u0930\u093e\u0902\u0928\u0940",e+" \u0935\u0930\u093e\u0902"],d:["\u090f\u0915\u093e \u0926\u093f\u0938\u093e\u0928","\u090f\u0915 \u0926\u0940\u0938"],dd:[e+" \u0926\u093f\u0938\u093e\u0902\u0928\u0940",e+" \u0926\u0940\u0938"],M:["\u090f\u0915\u093e \u092e\u094d\u0939\u092f\u0928\u094d\u092f\u093e\u0928","\u090f\u0915 \u092e\u094d\u0939\u092f\u0928\u094b"],MM:[e+" \u092e\u094d\u0939\u092f\u0928\u094d\u092f\u093e\u0928\u0940",e+" \u092e\u094d\u0939\u092f\u0928\u0947"],y:["\u090f\u0915\u093e \u0935\u0930\u094d\u0938\u093e\u0928","\u090f\u0915 \u0935\u0930\u094d\u0938"],yy:[e+" \u0935\u0930\u094d\u0938\u093e\u0902\u0928\u0940",e+" \u0935\u0930\u094d\u0938\u093e\u0902"]};return h?f[v][0]:f[v][1]}V.defineLocale("gom-deva",{months:{standalone:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u0940\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u092f_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),format:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u091a\u094d\u092f\u093e_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u091a\u094d\u092f\u093e_\u092e\u093e\u0930\u094d\u091a\u093e\u091a\u094d\u092f\u093e_\u090f\u092a\u094d\u0930\u0940\u0932\u093e\u091a\u094d\u092f\u093e_\u092e\u0947\u092f\u093e\u091a\u094d\u092f\u093e_\u091c\u0942\u0928\u093e\u091a\u094d\u092f\u093e_\u091c\u0941\u0932\u092f\u093e\u091a\u094d\u092f\u093e_\u0911\u0917\u0938\u094d\u091f\u093e\u091a\u094d\u092f\u093e_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u093e\u091a\u094d\u092f\u093e_\u0911\u0915\u094d\u091f\u094b\u092c\u0930\u093e\u091a\u094d\u092f\u093e_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u093e\u091a\u094d\u092f\u093e_\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u093e\u091a\u094d\u092f\u093e".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u0940._\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u092f\u0924\u093e\u0930_\u0938\u094b\u092e\u093e\u0930_\u092e\u0902\u0917\u0933\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u092c\u093f\u0930\u0947\u0938\u094d\u0924\u093e\u0930_\u0938\u0941\u0915\u094d\u0930\u093e\u0930_\u0936\u0947\u0928\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0906\u092f\u0924._\u0938\u094b\u092e._\u092e\u0902\u0917\u0933._\u092c\u0941\u0927._\u092c\u094d\u0930\u0947\u0938\u094d\u0924._\u0938\u0941\u0915\u094d\u0930._\u0936\u0947\u0928.".split("_"),weekdaysMin:"\u0906_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u092c\u094d\u0930\u0947_\u0938\u0941_\u0936\u0947".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]",LTS:"A h:mm:ss [\u0935\u093e\u091c\u0924\u093e\u0902]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]",llll:"ddd, D MMM YYYY, A h:mm [\u0935\u093e\u091c\u0924\u093e\u0902]"},calendar:{sameDay:"[\u0906\u092f\u091c] LT",nextDay:"[\u092b\u093e\u0932\u094d\u092f\u093e\u0902] LT",nextWeek:"[\u092b\u0941\u0921\u0932\u094b] dddd[,] LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092b\u093e\u091f\u0932\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s \u0906\u0926\u0940\u0902",s:K,ss:K,m:K,mm:K,h:K,hh:K,d:K,dd:K,M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}(\u0935\u0947\u0930)/,ordinal:function(e,l){return"D"===l?e+"\u0935\u0947\u0930":e},week:{dow:0,doy:3},meridiemParse:/\u0930\u093e\u0924\u0940|\u0938\u0915\u093e\u0933\u0940\u0902|\u0926\u0928\u092a\u093e\u0930\u093e\u0902|\u0938\u093e\u0902\u091c\u0947/,meridiemHour:function(e,l){return 12===e&&(e=0),"\u0930\u093e\u0924\u0940"===l?e<4?e:e+12:"\u0938\u0915\u093e\u0933\u0940\u0902"===l?e:"\u0926\u0928\u092a\u093e\u0930\u093e\u0902"===l?e>12?e:e+12:"\u0938\u093e\u0902\u091c\u0947"===l?e+12:void 0},meridiem:function(e,l,v){return e<4?"\u0930\u093e\u0924\u0940":e<12?"\u0938\u0915\u093e\u0933\u0940\u0902":e<16?"\u0926\u0928\u092a\u093e\u0930\u093e\u0902":e<20?"\u0938\u093e\u0902\u091c\u0947":"\u0930\u093e\u0924\u0940"}})}(ce(6676))},2696:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return h?f[v][0]:f[v][1]}V.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:K,ss:K,m:K,mm:K,h:K,hh:K,d:K,dd:K,M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,l){return"D"===l?e+"er":e},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,l){return 12===e&&(e=0),"rati"===l?e<4?e:e+12:"sokallim"===l?e:"donparam"===l?e>12?e:e+12:"sanje"===l?e+12:void 0},meridiem:function(e,l,v){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(ce(6676))},6928:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},T={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};V.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ab9\u0ac7\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(l){return l.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u0ab0\u0abe\u0aa4"===v?l<4?l:l+12:"\u0ab8\u0ab5\u0abe\u0ab0"===v?l:"\u0aac\u0aaa\u0acb\u0ab0"===v?l>=10?l:l+12:"\u0ab8\u0abe\u0a82\u0a9c"===v?l+12:void 0},meridiem:function(l,v,h){return l<4?"\u0ab0\u0abe\u0aa4":l<10?"\u0ab8\u0ab5\u0abe\u0ab0":l<17?"\u0aac\u0aaa\u0acb\u0ab0":l<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(ce(6676))},4804:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(T){return 2===T?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":T+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(T){return 2===T?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":T+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(T){return 2===T?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":T+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(T){return 2===T?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":T%10==0&&10!==T?T+" \u05e9\u05e0\u05d4":T+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(T){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(T)},meridiem:function(T,e,l){return T<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":T<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":T<12?l?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":T<18?l?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(ce(6676))},3015:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},T={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"},e=[/^\u091c\u0928/i,/^\u092b\u093c\u0930|\u092b\u0930/i,/^\u092e\u093e\u0930\u094d\u091a/i,/^\u0905\u092a\u094d\u0930\u0948/i,/^\u092e\u0908/i,/^\u091c\u0942\u0928/i,/^\u091c\u0941\u0932/i,/^\u0905\u0917/i,/^\u0938\u093f\u0924\u0902|\u0938\u093f\u0924/i,/^\u0905\u0915\u094d\u091f\u0942/i,/^\u0928\u0935|\u0928\u0935\u0902/i,/^\u0926\u093f\u0938\u0902|\u0926\u093f\u0938/i];V.defineLocale("hi",{months:{format:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),standalone:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u0902\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u0902\u092c\u0930_\u0926\u093f\u0938\u0902\u092c\u0930".split("_")},monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},monthsParse:e,longMonthsParse:e,shortMonthsParse:[/^\u091c\u0928/i,/^\u092b\u093c\u0930/i,/^\u092e\u093e\u0930\u094d\u091a/i,/^\u0905\u092a\u094d\u0930\u0948/i,/^\u092e\u0908/i,/^\u091c\u0942\u0928/i,/^\u091c\u0941\u0932/i,/^\u0905\u0917/i,/^\u0938\u093f\u0924/i,/^\u0905\u0915\u094d\u091f\u0942/i,/^\u0928\u0935/i,/^\u0926\u093f\u0938/i],monthsRegex:/^(\u091c\u0928\u0935\u0930\u0940|\u091c\u0928\.?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908|\u091c\u0941\u0932\.?|\u0905\u0917\u0938\u094d\u0924|\u0905\u0917\.?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930|\u0928\u0935\.?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930|\u0926\u093f\u0938\.?)/i,monthsShortRegex:/^(\u091c\u0928\u0935\u0930\u0940|\u091c\u0928\.?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908|\u091c\u0941\u0932\.?|\u0905\u0917\u0938\u094d\u0924|\u0905\u0917\.?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930|\u0928\u0935\.?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930|\u0926\u093f\u0938\.?)/i,monthsStrictRegex:/^(\u091c\u0928\u0935\u0930\u0940?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908?|\u0905\u0917\u0938\u094d\u0924?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924?\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930?)/i,monthsShortStrictRegex:/^(\u091c\u0928\.?|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\.?|\u0905\u0917\.?|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\.?|\u0926\u093f\u0938\.?)/i,calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(f){return T[f]})},postformat:function(h){return h.replace(/\d/g,function(f){return K[f]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(h,f){return 12===h&&(h=0),"\u0930\u093e\u0924"===f?h<4?h:h+12:"\u0938\u0941\u092c\u0939"===f?h:"\u0926\u094b\u092a\u0939\u0930"===f?h>=10?h:h+12:"\u0936\u093e\u092e"===f?h+12:void 0},meridiem:function(h,f,_){return h<4?"\u0930\u093e\u0924":h<10?"\u0938\u0941\u092c\u0939":h<17?"\u0926\u094b\u092a\u0939\u0930":h<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(ce(6676))},7134:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v){var h=e+" ";switch(v){case"ss":return h+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return l?"jedna minuta":"jedne minute";case"mm":return h+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return l?"jedan sat":"jednog sata";case"hh":return h+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return h+(1===e?"dan":"dana");case"MM":return h+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return h+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}V.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:return"[pro\u0161lu] [nedjelju] [u] LT";case 3:return"[pro\u0161lu] [srijedu] [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:K,m:K,mm:K,h:K,hh:K,d:"dan",dd:K,M:"mjesec",MM:K,y:"godinu",yy:K},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},670:function(ni,Pt,ce){!function(V){"use strict";var K="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function T(v,h,f,_){var b=v;switch(f){case"s":return _||h?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return b+(_||h)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(_||h?" perc":" perce");case"mm":return b+(_||h?" perc":" perce");case"h":return"egy"+(_||h?" \xf3ra":" \xf3r\xe1ja");case"hh":return b+(_||h?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(_||h?" nap":" napja");case"dd":return b+(_||h?" nap":" napja");case"M":return"egy"+(_||h?" h\xf3nap":" h\xf3napja");case"MM":return b+(_||h?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(_||h?" \xe9v":" \xe9ve");case"yy":return b+(_||h?" \xe9v":" \xe9ve")}return""}function e(v){return(v?"":"[m\xfalt] ")+"["+K[this.day()]+"] LT[-kor]"}V.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan._feb._m\xe1rc._\xe1pr._m\xe1j._j\xfan._j\xfal._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(v){return"u"===v.charAt(1).toLowerCase()},meridiem:function(v,h,f){return v<12?!0===f?"de":"DE":!0===f?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return e.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return e.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:T,ss:T,m:T,mm:T,h:T,hh:T,d:T,dd:T,M:T,MM:T,y:T,yy:T},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},4523:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(T){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(T)},meridiem:function(T){return T<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":T<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":T<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(T,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===T?T+"-\u056b\u0576":T+"-\u0580\u0564";default:return T}},week:{dow:1,doy:7}})}(ce(6676))},9233:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(T,e){return 12===T&&(T=0),"pagi"===e?T:"siang"===e?T>=11?T:T+12:"sore"===e||"malam"===e?T+12:void 0},meridiem:function(T,e,l){return T<11?"pagi":T<15?"siang":T<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(ce(6676))},4693:function(ni,Pt,ce){!function(V){"use strict";function K(l){return l%100==11||l%10!=1}function T(l,v,h,f){var _=l+" ";switch(h){case"s":return v||f?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return K(l)?_+(v||f?"sek\xfandur":"sek\xfandum"):_+"sek\xfanda";case"m":return v?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return K(l)?_+(v||f?"m\xedn\xfatur":"m\xedn\xfatum"):v?_+"m\xedn\xfata":_+"m\xedn\xfatu";case"hh":return K(l)?_+(v||f?"klukkustundir":"klukkustundum"):_+"klukkustund";case"d":return v?"dagur":f?"dag":"degi";case"dd":return K(l)?v?_+"dagar":_+(f?"daga":"d\xf6gum"):v?_+"dagur":_+(f?"dag":"degi");case"M":return v?"m\xe1nu\xf0ur":f?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return K(l)?v?_+"m\xe1nu\xf0ir":_+(f?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):v?_+"m\xe1nu\xf0ur":_+(f?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return v||f?"\xe1r":"\xe1ri";case"yy":return K(l)?_+(v||f?"\xe1r":"\xe1rum"):_+(v||f?"\xe1r":"\xe1ri")}}V.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:T,ss:T,m:T,mm:T,h:"klukkustund",hh:T,d:T,dd:T,M:T,MM:T,y:T,yy:T},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},8118:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(T){return(/^[0-9].+$/.test(T)?"tra":"in")+" "+T},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},3936:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){return 0===this.day()?"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT":"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},6871:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"\u4ee4\u548c",narrow:"\u32ff",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"\u5e73\u6210",narrow:"\u337b",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"\u662d\u548c",narrow:"\u337c",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"\u5927\u6b63",narrow:"\u337d",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"\u660e\u6cbb",narrow:"\u337e",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"\u897f\u66a6",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"\u7d00\u5143\u524d",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(\u5143|\d+)\u5e74/,eraYearOrdinalParse:function(T,e){return"\u5143"===e[1]?1:parseInt(e[1]||T,10)},months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(T){return"\u5348\u5f8c"===T},meridiem:function(T,e,l){return T<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(T){return T.week()!==this.week()?"[\u6765\u9031]dddd LT":"dddd LT"},lastDay:"[\u6628\u65e5] LT",lastWeek:function(T){return this.week()!==T.week()?"[\u5148\u9031]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(T,e){switch(e){case"y":return 1===T?"\u5143\u5e74":T+"\u5e74";case"d":case"D":case"DDD":return T+"\u65e5";default:return T}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}})}(ce(6676))},8710:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(T,e){return 12===T&&(T=0),"enjing"===e?T:"siyang"===e?T>=11?T:T+12:"sonten"===e||"ndalu"===e?T+12:void 0},meridiem:function(T,e,l){return T<11?"enjing":T<15?"siyang":T<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(ce(6676))},7125:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ka",{months:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(T){return T.replace(/(\u10ec\u10d0\u10db|\u10ec\u10e3\u10d7|\u10e1\u10d0\u10d0\u10d7|\u10ec\u10d4\u10da|\u10d3\u10e6|\u10d7\u10d5)(\u10d8|\u10d4)/,function(e,l,v){return"\u10d8"===v?l+"\u10e8\u10d8":l+v+"\u10e8\u10d8"})},past:function(T){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(T)?T.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(T)?T.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):T},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(T){return 0===T?T:1===T?T+"-\u10da\u10d8":T<20||T<=100&&T%20==0||T%100==0?"\u10db\u10d4-"+T:T+"-\u10d4"},week:{dow:1,doy:7}})}(ce(6676))},2461:function(ni,Pt,ce){!function(V){"use strict";var K={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};V.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(K[e]||K[e%10]||K[e>=100?100:null])},week:{dow:1,doy:7}})}(ce(6676))},7399:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},T={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};V.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(l){return"\u179b\u17d2\u1784\u17b6\u1785"===l},meridiem:function(l,v,h){return l<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(l){return l.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},week:{dow:1,doy:4}})}(ce(6676))},8720:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},T={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};V.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(l){return l.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===v?l<4?l:l+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===v?l:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===v?l>=10?l:l+12:"\u0cb8\u0c82\u0c9c\u0cc6"===v?l+12:void 0},meridiem:function(l,v,h){return l<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":l<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":l<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":l<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(l){return l+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(ce(6676))},5306:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(T,e){switch(e){case"d":case"D":case"DDD":return T+"\uc77c";case"M":return T+"\uc6d4";case"w":case"W":return T+"\uc8fc";default:return T}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(T){return"\uc624\ud6c4"===T},meridiem:function(T,e,l){return T<12?"\uc624\uc804":"\uc624\ud6c4"}})}(ce(6676))},4852:function(ni,Pt,ce){!function(V){"use strict";function K(l,v,h,f){var _={s:["\xe7end san\xeeye","\xe7end san\xeeyeyan"],ss:[l+" san\xeeye",l+" san\xeeyeyan"],m:["deq\xeeqeyek","deq\xeeqeyek\xea"],mm:[l+" deq\xeeqe",l+" deq\xeeqeyan"],h:["saetek","saetek\xea"],hh:[l+" saet",l+" saetan"],d:["rojek","rojek\xea"],dd:[l+" roj",l+" rojan"],w:["hefteyek","hefteyek\xea"],ww:[l+" hefte",l+" hefteyan"],M:["mehek","mehek\xea"],MM:[l+" meh",l+" mehan"],y:["salek","salek\xea"],yy:[l+" sal",l+" salan"]};return v?_[h][0]:_[h][1]}V.defineLocale("ku-kmr",{months:"R\xeabendan_Sibat_Adar_N\xeesan_Gulan_Hez\xeeran_T\xeermeh_Tebax_\xcelon_Cotmeh_Mijdar_Berfanbar".split("_"),monthsShort:"R\xeab_Sib_Ada_N\xees_Gul_Hez_T\xeer_Teb_\xcelo_Cot_Mij_Ber".split("_"),monthsParseExact:!0,weekdays:"Yek\u015fem_Du\u015fem_S\xea\u015fem_\xc7ar\u015fem_P\xeanc\u015fem_\xcen_\u015eem\xee".split("_"),weekdaysShort:"Yek_Du_S\xea_\xc7ar_P\xean_\xcen_\u015eem".split("_"),weekdaysMin:"Ye_Du_S\xea_\xc7a_P\xea_\xcen_\u015ee".split("_"),meridiem:function(l,v,h){return l<12?h?"bn":"BN":h?"pn":"PN"},meridiemParse:/bn|BN|pn|PN/,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM[a] YYYY[an]",LLL:"Do MMMM[a] YYYY[an] HH:mm",LLLL:"dddd, Do MMMM[a] YYYY[an] HH:mm",ll:"Do MMM[.] YYYY[an]",lll:"Do MMM[.] YYYY[an] HH:mm",llll:"ddd[.], Do MMM[.] YYYY[an] HH:mm"},calendar:{sameDay:"[\xcero di saet] LT [de]",nextDay:"[Sib\xea di saet] LT [de]",nextWeek:"dddd [di saet] LT [de]",lastDay:"[Duh di saet] LT [de]",lastWeek:"dddd[a bor\xee di saet] LT [de]",sameElse:"L"},relativeTime:{future:"di %s de",past:"ber\xee %s",s:K,ss:K,m:K,mm:K,h:K,hh:K,d:K,dd:K,w:K,ww:K,M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}(?:y\xea|\xea|\.)/,ordinal:function(l,v){var h=v.toLowerCase();return h.includes("w")||h.includes("m")?l+".":l+function T(l){var v=(l=""+l).substring(l.length-1),h=l.length>1?l.substring(l.length-2):"";return 12==h||13==h||"2"!=v&&"3"!=v&&"50"!=h&&"70"!=v&&"80"!=v?"\xea":"y\xea"}(l)},week:{dow:1,doy:4}})}(ce(6676))},2995:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},T={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},e=["\u06a9\u0627\u0646\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u0632\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u0643\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0643\u0627\u0646\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"];V.defineLocale("ku",{months:e,monthsShort:e,weekdays:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u062f\u0648\u0648\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0633\u06ce\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysShort:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645_\u062f\u0648\u0648\u0634\u0647\u200c\u0645_\u0633\u06ce\u0634\u0647\u200c\u0645_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(v){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(v)},meridiem:function(v,h,f){return v<12?"\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc":"\u0626\u06ce\u0648\u0627\u0631\u0647\u200c"},calendar:{sameDay:"[\u0626\u0647\u200c\u0645\u0631\u06c6 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextDay:"[\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastDay:"[\u062f\u0648\u06ce\u0646\u06ce \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",sameElse:"L"},relativeTime:{future:"\u0644\u0647\u200c %s",past:"%s",s:"\u0686\u0647\u200c\u0646\u062f \u0686\u0631\u0643\u0647\u200c\u06cc\u0647\u200c\u0643",ss:"\u0686\u0631\u0643\u0647\u200c %d",m:"\u06cc\u0647\u200c\u0643 \u062e\u0648\u0644\u0647\u200c\u0643",mm:"%d \u062e\u0648\u0644\u0647\u200c\u0643",h:"\u06cc\u0647\u200c\u0643 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u0647\u200c\u0643 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u0647\u200c\u0643 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u0647\u200c\u0643 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"},preparse:function(v){return v.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(h){return T[h]}).replace(/\u060c/g,",")},postformat:function(v){return v.replace(/\d/g,function(h){return K[h]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(ce(6676))},8779:function(ni,Pt,ce){!function(V){"use strict";var K={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};V.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(K[e]||K[e%10]||K[e>=100?100:null])},week:{dow:1,doy:7}})}(ce(6676))},2057:function(ni,Pt,ce){!function(V){"use strict";function K(h,f,_,b){var y={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return f?y[_][0]:y[_][1]}function l(h){if(h=parseInt(h,10),isNaN(h))return!1;if(h<0)return!0;if(h<10)return 4<=h&&h<=7;if(h<100){var f=h%10;return l(0===f?h/10:f)}if(h<1e4){for(;h>=10;)h/=10;return l(h)}return l(h/=1e3)}V.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function T(h){return l(h.substr(0,h.indexOf(" ")))?"a "+h:"an "+h},past:function e(h){return l(h.substr(0,h.indexOf(" ")))?"viru "+h:"virun "+h},s:"e puer Sekonnen",ss:"%d Sekonnen",m:K,mm:"%d Minutten",h:K,hh:"%d Stonnen",d:K,dd:"%d Deeg",M:K,MM:"%d M\xe9int",y:K,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},7192:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(T){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===T},meridiem:function(T,e,l){return T<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(T){return"\u0e97\u0eb5\u0ec8"+T}})}(ce(6676))},5430:function(ni,Pt,ce){!function(V){"use strict";var K={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function e(_,b,y,M){return b?v(y)[0]:M?v(y)[1]:v(y)[2]}function l(_){return _%10==0||_>10&&_<20}function v(_){return K[_].split("_")}function h(_,b,y,M){var D=_+" ";return 1===_?D+e(0,b,y[0],M):b?D+(l(_)?v(y)[1]:v(y)[0]):M?D+v(y)[1]:D+(l(_)?v(y)[1]:v(y)[2])}V.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function T(_,b,y,M){return b?"kelios sekund\u0117s":M?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:h,m:e,mm:h,h:e,hh:h,d:e,dd:h,M:e,MM:h,y:e,yy:h},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(_){return _+"-oji"},week:{dow:1,doy:4}})}(ce(6676))},3363:function(ni,Pt,ce){!function(V){"use strict";var K={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function T(f,_,b){return b?_%10==1&&_%100!=11?f[2]:f[3]:_%10==1&&_%100!=11?f[0]:f[1]}function e(f,_,b){return f+" "+T(K[b],f,_)}function l(f,_,b){return T(K[b],f,_)}V.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function v(f,_){return _?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:e,m:l,mm:e,h:l,hh:e,d:l,dd:e,M:l,MM:e,y:l,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},2939:function(ni,Pt,ce){!function(V){"use strict";var K={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,l){return 1===e?l[0]:e>=2&&e<=4?l[1]:l[2]},translate:function(e,l,v){var h=K.words[v];return 1===v.length?l?h[0]:h[1]:e+" "+K.correctGrammaticalCase(e,h)}};V.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:K.translate,m:K.translate,mm:K.translate,h:K.translate,hh:K.translate,d:"dan",dd:K.translate,M:"mjesec",MM:K.translate,y:"godinu",yy:K.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},8212:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},9718:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u0435\u0434\u043d\u0430 \u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0435\u0434\u0435\u043d \u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0435\u0434\u0435\u043d \u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u0435\u0434\u0435\u043d \u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(T){var e=T%10,l=T%100;return 0===T?T+"-\u0435\u0432":0===l?T+"-\u0435\u043d":l>10&&l<20?T+"-\u0442\u0438":1===e?T+"-\u0432\u0438":2===e?T+"-\u0440\u0438":7===e||8===e?T+"-\u043c\u0438":T+"-\u0442\u0438"},week:{dow:1,doy:7}})}(ce(6676))},561:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(T,e){return 12===T&&(T=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===e&&T>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===e||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===e?T+12:T},meridiem:function(T,e,l){return T<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":T<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":T<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":T<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(ce(6676))},8929:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){switch(v){case"s":return l?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return e+(l?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return e+(l?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return e+(l?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return e+(l?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return e+(l?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return e+(l?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return e}}V.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"\u04ae\u0425"===e},meridiem:function(e,l,v){return e<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:K,ss:K,m:K,mm:K,h:K,hh:K,d:K,dd:K,M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,l){switch(l){case"d":case"D":case"DDD":return e+" \u04e9\u0434\u04e9\u0440";default:return e}}})}(ce(6676))},4880:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},T={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function e(v,h,f,_){var b="";if(h)switch(f){case"s":b="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":b="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":b="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":b="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":b="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":b="%d \u0924\u093e\u0938";break;case"d":b="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":b="%d \u0926\u093f\u0935\u0938";break;case"M":b="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":b="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":b="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":b="%d \u0935\u0930\u094d\u0937\u0947"}else switch(f){case"s":b="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":b="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":b="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":b="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":b="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":b="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":b="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":b="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":b="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":b="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":b="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":b="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return b.replace(/%d/i,v)}V.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},preparse:function(v){return v.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(h){return T[h]})},postformat:function(v){return v.replace(/\d/g,function(h){return K[h]})},meridiemParse:/\u092a\u0939\u093e\u091f\u0947|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940|\u0930\u093e\u0924\u094d\u0930\u0940/,meridiemHour:function(v,h){return 12===v&&(v=0),"\u092a\u0939\u093e\u091f\u0947"===h||"\u0938\u0915\u093e\u0933\u0940"===h?v:"\u0926\u0941\u092a\u093e\u0930\u0940"===h||"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===h||"\u0930\u093e\u0924\u094d\u0930\u0940"===h?v>=12?v:v+12:void 0},meridiem:function(v,h,f){return v>=0&&v<6?"\u092a\u0939\u093e\u091f\u0947":v<12?"\u0938\u0915\u093e\u0933\u0940":v<17?"\u0926\u0941\u092a\u093e\u0930\u0940":v<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(ce(6676))},2074:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(T,e){return 12===T&&(T=0),"pagi"===e?T:"tengahari"===e?T>=11?T:T+12:"petang"===e||"malam"===e?T+12:void 0},meridiem:function(T,e,l){return T<11?"pagi":T<15?"tengahari":T<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(ce(6676))},3193:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(T,e){return 12===T&&(T=0),"pagi"===e?T:"tengahari"===e?T>=11?T:T+12:"petang"===e||"malam"===e?T+12:void 0},meridiem:function(T,e,l){return T<11?"pagi":T<15?"tengahari":T<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(ce(6676))},4082:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},2261:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},T={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};V.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(l){return l.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},week:{dow:1,doy:4}})}(ce(6676))},5273:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"\xe9n time",hh:"%d timer",d:"\xe9n dag",dd:"%d dager",w:"\xe9n uke",ww:"%d uker",M:"\xe9n m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},9874:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},T={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};V.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(l){return l.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u0930\u093e\u0924\u093f"===v?l<4?l:l+12:"\u092c\u093f\u0939\u093e\u0928"===v?l:"\u0926\u093f\u0909\u0901\u0938\u094b"===v?l>=10?l:l+12:"\u0938\u093e\u0901\u091d"===v?l+12:void 0},meridiem:function(l,v,h){return l<3?"\u0930\u093e\u0924\u093f":l<12?"\u092c\u093f\u0939\u093e\u0928":l<16?"\u0926\u093f\u0909\u0901\u0938\u094b":l<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(ce(6676))},1484:function(ni,Pt,ce){!function(V){"use strict";var K="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),T="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),e=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],l=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;V.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(h,f){return h?/-MMM-/.test(f)?T[h.month()]:K[h.month()]:K},monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(ce(6676))},1667:function(ni,Pt,ce){!function(V){"use strict";var K="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),T="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),e=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],l=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;V.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(h,f){return h?/-MMM-/.test(f)?T[h.month()]:K[h.month()]:K},monthsRegex:l,monthsShortRegex:l,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",w:"\xe9\xe9n week",ww:"%d weken",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(ce(6676))},7262:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._m\xe5._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},9679:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("oc-lnc",{months:{standalone:"geni\xe8r_febri\xe8r_mar\xe7_abril_mai_junh_julhet_agost_setembre_oct\xf2bre_novembre_decembre".split("_"),format:"de geni\xe8r_de febri\xe8r_de mar\xe7_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct\xf2bre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dim\xe8cres_dij\xf2us_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[u\xe8i a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[i\xe8r a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(T,e){var l=1===T?"r":2===T?"n":3===T?"r":4===T?"t":"\xe8";return("w"===e||"W"===e)&&(l="a"),T+l},week:{dow:1,doy:4}})}(ce(6676))},6830:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},T={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};V.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(l){return l.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(l,v){return 12===l&&(l=0),"\u0a30\u0a3e\u0a24"===v?l<4?l:l+12:"\u0a38\u0a35\u0a47\u0a30"===v?l:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===v?l>=10?l:l+12:"\u0a38\u0a3c\u0a3e\u0a2e"===v?l+12:void 0},meridiem:function(l,v,h){return l<4?"\u0a30\u0a3e\u0a24":l<10?"\u0a38\u0a35\u0a47\u0a30":l<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":l<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(ce(6676))},3616:function(ni,Pt,ce){!function(V){"use strict";var K="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),T="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_"),e=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^pa\u017a/i,/^lis/i,/^gru/i];function l(f){return f%10<5&&f%10>1&&~~(f/10)%10!=1}function v(f,_,b){var y=f+" ";switch(b){case"ss":return y+(l(f)?"sekundy":"sekund");case"m":return _?"minuta":"minut\u0119";case"mm":return y+(l(f)?"minuty":"minut");case"h":return _?"godzina":"godzin\u0119";case"hh":return y+(l(f)?"godziny":"godzin");case"ww":return y+(l(f)?"tygodnie":"tygodni");case"MM":return y+(l(f)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return y+(l(f)?"lata":"lat")}}V.defineLocale("pl",{months:function(f,_){return f?/D MMMM/.test(_)?T[f.month()]:K[f.month()]:K},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),monthsParse:e,longMonthsParse:e,shortMonthsParse:e,weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:v,m:v,mm:v,h:v,hh:v,d:"1 dzie\u0144",dd:"%d dni",w:"tydzie\u0144",ww:v,M:"miesi\u0105c",MM:v,y:"rok",yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},2751:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_ter\xe7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xe1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_s\xe1b".split("_"),weekdaysMin:"do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",invalidDate:"Data inv\xe1lida"})}(ce(6676))},5138:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(ce(6676))},7968:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v){var f=" ";return(e%100>=20||e>=100&&e%100==0)&&(f=" de "),e+f+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"s\u0103pt\u0103m\xe2ni",MM:"luni",yy:"ani"}[v]}V.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:K,m:"un minut",mm:K,h:"o or\u0103",hh:K,d:"o zi",dd:K,w:"o s\u0103pt\u0103m\xe2n\u0103",ww:K,M:"o lun\u0103",MM:K,y:"un an",yy:K},week:{dow:1,doy:7}})}(ce(6676))},1828:function(ni,Pt,ce){!function(V){"use strict";function T(v,h,f){return"m"===f?h?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":v+" "+function K(v,h){var f=v.split("_");return h%10==1&&h%100!=11?f[0]:h%10>=2&&h%10<=4&&(h%100<10||h%100>=20)?f[1]:f[2]}({ss:h?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:h?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",ww:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043d\u0435\u0434\u0435\u043b\u0438_\u043d\u0435\u0434\u0435\u043b\u044c",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[f],+v)}var e=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];V.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:e,longMonthsParse:e,shortMonthsParse:e,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(v){if(v.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(v){if(v.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:T,m:T,mm:T,h:"\u0447\u0430\u0441",hh:T,d:"\u0434\u0435\u043d\u044c",dd:T,w:"\u043d\u0435\u0434\u0435\u043b\u044f",ww:T,M:"\u043c\u0435\u0441\u044f\u0446",MM:T,y:"\u0433\u043e\u0434",yy:T},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(v){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(v)},meridiem:function(v,h,f){return v<4?"\u043d\u043e\u0447\u0438":v<12?"\u0443\u0442\u0440\u0430":v<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(v,h){switch(h){case"M":case"d":case"DDD":return v+"-\u0439";case"D":return v+"-\u0433\u043e";case"w":case"W":return v+"-\u044f";default:return v}},week:{dow:1,doy:4}})}(ce(6676))},2188:function(ni,Pt,ce){!function(V){"use strict";var K=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],T=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];V.defineLocale("sd",{months:K,monthsShort:K,weekdays:T,weekdaysShort:T,weekdaysMin:T,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(l){return"\u0634\u0627\u0645"===l},meridiem:function(l,v,h){return l<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(l){return l.replace(/\u060c/g,",")},postformat:function(l){return l.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(ce(6676))},6562:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},7172:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(T){return T+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(T){return"\u0db4.\u0dc0."===T||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===T},meridiem:function(T,e,l){return T>11?l?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":l?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(ce(6676))},9966:function(ni,Pt,ce){!function(V){"use strict";var K="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),T="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function e(h){return h>1&&h<5}function l(h,f,_,b){var y=h+" ";switch(_){case"s":return f||b?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return f||b?y+(e(h)?"sekundy":"sek\xfand"):y+"sekundami";case"m":return f?"min\xfata":b?"min\xfatu":"min\xfatou";case"mm":return f||b?y+(e(h)?"min\xfaty":"min\xfat"):y+"min\xfatami";case"h":return f?"hodina":b?"hodinu":"hodinou";case"hh":return f||b?y+(e(h)?"hodiny":"hod\xedn"):y+"hodinami";case"d":return f||b?"de\u0148":"d\u0148om";case"dd":return f||b?y+(e(h)?"dni":"dn\xed"):y+"d\u0148ami";case"M":return f||b?"mesiac":"mesiacom";case"MM":return f||b?y+(e(h)?"mesiace":"mesiacov"):y+"mesiacmi";case"y":return f||b?"rok":"rokom";case"yy":return f||b?y+(e(h)?"roky":"rokov"):y+"rokmi"}}V.defineLocale("sk",{months:K,monthsShort:T,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:case 4:case 5:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:l,ss:l,m:l,mm:l,h:l,hh:l,d:l,dd:l,M:l,MM:l,y:l,yy:l},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},7520:function(ni,Pt,ce){!function(V){"use strict";function K(e,l,v,h){var f=e+" ";switch(v){case"s":return l||h?"nekaj sekund":"nekaj sekundami";case"ss":return f+(1===e?l?"sekundo":"sekundi":2===e?l||h?"sekundi":"sekundah":e<5?l||h?"sekunde":"sekundah":"sekund");case"m":return l?"ena minuta":"eno minuto";case"mm":return f+(1===e?l?"minuta":"minuto":2===e?l||h?"minuti":"minutama":e<5?l||h?"minute":"minutami":l||h?"minut":"minutami");case"h":return l?"ena ura":"eno uro";case"hh":return f+(1===e?l?"ura":"uro":2===e?l||h?"uri":"urama":e<5?l||h?"ure":"urami":l||h?"ur":"urami");case"d":return l||h?"en dan":"enim dnem";case"dd":return f+(1===e?l||h?"dan":"dnem":2===e?l||h?"dni":"dnevoma":l||h?"dni":"dnevi");case"M":return l||h?"en mesec":"enim mesecem";case"MM":return f+(1===e?l||h?"mesec":"mesecem":2===e?l||h?"meseca":"mesecema":e<5?l||h?"mesece":"meseci":l||h?"mesecev":"meseci");case"y":return l||h?"eno leto":"enim letom";case"yy":return f+(1===e?l||h?"leto":"letom":2===e?l||h?"leti":"letoma":e<5?l||h?"leta":"leti":l||h?"let":"leti")}}V.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:K,ss:K,m:K,mm:K,h:K,hh:K,d:K,dd:K,M:K,MM:K,y:K,yy:K},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},5291:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(T){return"M"===T.charAt(0)},meridiem:function(T,e,l){return T<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},7603:function(ni,Pt,ce){!function(V){"use strict";var K={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u043c\u0438\u043d\u0443\u0442\u0430"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0430","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],d:["\u0458\u0435\u0434\u0430\u043d \u0434\u0430\u043d","\u0458\u0435\u0434\u043d\u043e\u0433 \u0434\u0430\u043d\u0430"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],M:["\u0458\u0435\u0434\u0430\u043d \u043c\u0435\u0441\u0435\u0446","\u0458\u0435\u0434\u043d\u043e\u0433 \u043c\u0435\u0441\u0435\u0446\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],y:["\u0458\u0435\u0434\u043d\u0443 \u0433\u043e\u0434\u0438\u043d\u0443","\u0458\u0435\u0434\u043d\u0435 \u0433\u043e\u0434\u0438\u043d\u0435"],yy:["\u0433\u043e\u0434\u0438\u043d\u0443","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(e,l){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?l[0]:l[1]:l[2]},translate:function(e,l,v,h){var _,f=K.words[v];return 1===v.length?"y"===v&&l?"\u0458\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430":h||l?f[0]:f[1]:(_=K.correctGrammaticalCase(e,f),"yy"===v&&l&&"\u0433\u043e\u0434\u0438\u043d\u0443"===_?e+" \u0433\u043e\u0434\u0438\u043d\u0430":e+" "+_)}};V.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:K.translate,m:K.translate,mm:K.translate,h:K.translate,hh:K.translate,d:K.translate,dd:K.translate,M:K.translate,MM:K.translate,y:K.translate,yy:K.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},450:function(ni,Pt,ce){!function(V){"use strict";var K={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],d:["jedan dan","jednog dana"],dd:["dan","dana","dana"],M:["jedan mesec","jednog meseca"],MM:["mesec","meseca","meseci"],y:["jednu godinu","jedne godine"],yy:["godinu","godine","godina"]},correctGrammaticalCase:function(e,l){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?l[0]:l[1]:l[2]},translate:function(e,l,v,h){var _,f=K.words[v];return 1===v.length?"y"===v&&l?"jedna godina":h||l?f[0]:f[1]:(_=K.correctGrammaticalCase(e,f),"yy"===v&&l&&"godinu"===_?e+" godina":e+" "+_)}};V.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:K.translate,m:K.translate,mm:K.translate,h:K.translate,hh:K.translate,d:K.translate,dd:K.translate,M:K.translate,MM:K.translate,y:K.translate,yy:K.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(ce(6676))},383:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(T,e,l){return T<11?"ekuseni":T<15?"emini":T<19?"entsambama":"ebusuku"},meridiemHour:function(T,e){return 12===T&&(T=0),"ekuseni"===e?T:"emini"===e?T>=11?T:T+12:"entsambama"===e||"ebusuku"===e?0===T?0:T+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(ce(6676))},7221:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?":e":1===e||2===e?":a":":e")},week:{dow:1,doy:4}})}(ce(6676))},1743:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(ce(6676))},6351:function(ni,Pt,ce){!function(V){"use strict";var K={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},T={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};V.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(l){return l+"\u0bb5\u0ba4\u0bc1"},preparse:function(l){return l.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(v){return T[v]})},postformat:function(l){return l.replace(/\d/g,function(v){return K[v]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(l,v,h){return l<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":l<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":l<10?" \u0b95\u0bbe\u0bb2\u0bc8":l<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":l<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":l<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(l,v){return 12===l&&(l=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===v?l<2?l:l+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===v||"\u0b95\u0bbe\u0bb2\u0bc8"===v||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===v&&l>=10?l:l+12},week:{dow:0,doy:6}})}(ce(6676))},9620:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(T,e){return 12===T&&(T=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===e?T<4?T:T+12:"\u0c09\u0c26\u0c2f\u0c02"===e?T:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===e?T>=10?T:T+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===e?T+12:void 0},meridiem:function(T,e,l){return T<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":T<10?"\u0c09\u0c26\u0c2f\u0c02":T<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":T<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(ce(6676))},6278:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(ce(6676))},6987:function(ni,Pt,ce){!function(V){"use strict";var K={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};V.defineLocale("tg",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0430\u043b\u0438_\u043c\u0430\u0440\u0442\u0438_\u0430\u043f\u0440\u0435\u043b\u0438_\u043c\u0430\u0439\u0438_\u0438\u044e\u043d\u0438_\u0438\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442\u0438_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u0438_\u043e\u043a\u0442\u044f\u0431\u0440\u0438_\u043d\u043e\u044f\u0431\u0440\u0438_\u0434\u0435\u043a\u0430\u0431\u0440\u0438".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_")},monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u0424\u0430\u0440\u0434\u043e \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,l){return 12===e&&(e=0),"\u0448\u0430\u0431"===l?e<4?e:e+12:"\u0441\u0443\u0431\u04b3"===l?e:"\u0440\u04ef\u0437"===l?e>=11?e:e+12:"\u0431\u0435\u0433\u043e\u04b3"===l?e+12:void 0},meridiem:function(e,l,v){return e<4?"\u0448\u0430\u0431":e<11?"\u0441\u0443\u0431\u04b3":e<16?"\u0440\u04ef\u0437":e<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(K[e]||K[e%10]||K[e>=100?100:null])},week:{dow:1,doy:7}})}(ce(6676))},9325:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(T){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===T},meridiem:function(T,e,l){return T<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",w:"1 \u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c",ww:"%d \u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(ce(6676))},3485:function(ni,Pt,ce){!function(V){"use strict";var K={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'\xfcnji",4:"'\xfcnji",100:"'\xfcnji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};V.defineLocale("tk",{months:"\xddanwar_Fewral_Mart_Aprel_Ma\xfd_I\xfdun_I\xfdul_Awgust_Sent\xfdabr_Okt\xfdabr_No\xfdabr_Dekabr".split("_"),monthsShort:"\xddan_Few_Mar_Apr_Ma\xfd_I\xfdn_I\xfdl_Awg_Sen_Okt_No\xfd_Dek".split("_"),weekdays:"\xddek\u015fenbe_Du\u015fenbe_Si\u015fenbe_\xc7ar\u015fenbe_Pen\u015fenbe_Anna_\u015eenbe".split("_"),weekdaysShort:"\xddek_Du\u015f_Si\u015f_\xc7ar_Pen_Ann_\u015een".split("_"),weekdaysMin:"\xddk_D\u015f_S\u015f_\xc7r_Pn_An_\u015en".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[d\xfc\xfdn] LT",lastWeek:"[ge\xe7en] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s so\u0148",past:"%s \xf6\u0148",s:"birn\xe4\xe7e sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir a\xfd",MM:"%d a\xfd",y:"bir \xfdyl",yy:"%d \xfdyl"},ordinal:function(e,l){switch(l){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var v=e%10;return e+(K[v]||K[e%100-v]||K[e>=100?100:null])}},week:{dow:1,doy:7}})}(ce(6676))},8148:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(T){return T},week:{dow:1,doy:4}})}(ce(6676))},9616:function(ni,Pt,ce){!function(V){"use strict";var K="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function l(f,_,b,y){var M=function v(f){var _=Math.floor(f%1e3/100),b=Math.floor(f%100/10),y=f%10,M="";return _>0&&(M+=K[_]+"vatlh"),b>0&&(M+=(""!==M?" ":"")+K[b]+"maH"),y>0&&(M+=(""!==M?" ":"")+K[y]),""===M?"pagh":M}(f);switch(b){case"ss":return M+" lup";case"mm":return M+" tup";case"hh":return M+" rep";case"dd":return M+" jaj";case"MM":return M+" jar";case"yy":return M+" DIS"}}V.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function T(f){var _=f;return-1!==f.indexOf("jaj")?_.slice(0,-3)+"leS":-1!==f.indexOf("jar")?_.slice(0,-3)+"waQ":-1!==f.indexOf("DIS")?_.slice(0,-3)+"nem":_+" pIq"},past:function e(f){var _=f;return-1!==f.indexOf("jaj")?_.slice(0,-3)+"Hu\u2019":-1!==f.indexOf("jar")?_.slice(0,-3)+"wen":-1!==f.indexOf("DIS")?_.slice(0,-3)+"ben":_+" ret"},s:"puS lup",ss:l,m:"wa\u2019 tup",mm:l,h:"wa\u2019 rep",hh:l,d:"wa\u2019 jaj",dd:l,M:"wa\u2019 jar",MM:l,y:"wa\u2019 DIS",yy:l},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},4040:function(ni,Pt,ce){!function(V){"use strict";var K={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};V.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pzt_Sal_\xc7ar_Per_Cum_Cmt".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),meridiem:function(e,l,v){return e<12?v?"\xf6\xf6":"\xd6\xd6":v?"\xf6s":"\xd6S"},meridiemParse:/\xf6\xf6|\xd6\xd6|\xf6s|\xd6S/,isPM:function(e){return"\xf6s"===e||"\xd6S"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e,l){switch(l){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'\u0131nc\u0131";var v=e%10;return e+(K[v]||K[e%100-v]||K[e>=100?100:null])}},week:{dow:1,doy:7}})}(ce(6676))},594:function(ni,Pt,ce){!function(V){"use strict";function T(e,l,v,h){var f={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[e+" m\xeduts",e+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[e+" \xfeoras",e+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return h||l?f[v][0]:f[v][1]}V.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,l,v){return e>11?v?"d'o":"D'O":v?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:T,ss:T,m:T,mm:T,h:T,hh:T,d:T,dd:T,M:T,MM:T,y:T,yy:T},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(ce(6676))},3226:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(ce(6676))},673:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(ce(6676))},9580:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(T,e){return 12===T&&(T=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===e||"\u0633\u06d5\u06be\u06d5\u0631"===e||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===e?T:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===e||"\u0643\u06d5\u0686"===e?T+12:T>=11?T:T+12},meridiem:function(T,e,l){var v=100*T+e;return v<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":v<900?"\u0633\u06d5\u06be\u06d5\u0631":v<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":v<1230?"\u0686\u06c8\u0634":v<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(T,e){switch(e){case"d":case"D":case"DDD":return T+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return T+"-\u06be\u06d5\u067e\u062a\u06d5";default:return T}},preparse:function(T){return T.replace(/\u060c/g,",")},postformat:function(T){return T.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(ce(6676))},7270:function(ni,Pt,ce){!function(V){"use strict";function T(h,f,_){return"m"===_?f?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===_?f?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":h+" "+function K(h,f){var _=h.split("_");return f%10==1&&f%100!=11?_[0]:f%10>=2&&f%10<=4&&(f%100<10||f%100>=20)?_[1]:_[2]}({ss:f?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:f?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:f?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[_],+h)}function l(h){return function(){return h+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}V.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function e(h,f){var _={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return!0===h?_.nominative.slice(1,7).concat(_.nominative.slice(0,1)):h?_[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(f)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(f)?"genitive":"nominative"][h.day()]:_.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:l("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:l("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:l("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:l("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return l("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return l("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:T,m:T,mm:T,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:T,d:"\u0434\u0435\u043d\u044c",dd:T,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:T,y:"\u0440\u0456\u043a",yy:T},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(h){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(h)},meridiem:function(h,f,_){return h<4?"\u043d\u043e\u0447\u0456":h<12?"\u0440\u0430\u043d\u043a\u0443":h<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(h,f){switch(f){case"M":case"d":case"DDD":case"w":case"W":return h+"-\u0439";case"D":return h+"-\u0433\u043e";default:return h}},week:{dow:1,doy:7}})}(ce(6676))},1656:function(ni,Pt,ce){!function(V){"use strict";var K=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],T=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];V.defineLocale("ur",{months:K,monthsShort:K,weekdays:T,weekdaysShort:T,weekdaysMin:T,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(l){return"\u0634\u0627\u0645"===l},meridiem:function(l,v,h){return l<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(l){return l.replace(/\u060c/g,",")},postformat:function(l){return l.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(ce(6676))},8744:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(ce(6676))},8364:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(ce(6676))},5049:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(T){return/^ch$/i.test(T)},meridiem:function(T,e,l){return T<12?l?"sa":"SA":l?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n tr\u01b0\u1edbc l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",w:"m\u1ed9t tu\u1ea7n",ww:"%d tu\u1ea7n",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(T){return T},week:{dow:1,doy:4}})}(ce(6676))},5106:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(T){var e=T%10;return T+(1==~~(T%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(ce(6676))},6199:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(ce(6676))},7280:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(T,e){return 12===T&&(T=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?T:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?T+12:T>=11?T:T+12},meridiem:function(T,e,l){var v=100*T+e;return v<600?"\u51cc\u6668":v<900?"\u65e9\u4e0a":v<1130?"\u4e0a\u5348":v<1230?"\u4e2d\u5348":v<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:function(T){return T.week()!==this.week()?"[\u4e0b]dddLT":"[\u672c]dddLT"},lastDay:"[\u6628\u5929]LT",lastWeek:function(T){return this.week()!==T.week()?"[\u4e0a]dddLT":"[\u672c]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(T,e){switch(e){case"d":case"D":case"DDD":return T+"\u65e5";case"M":return T+"\u6708";case"w":case"W":return T+"\u5468";default:return T}},relativeTime:{future:"%s\u540e",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",w:"1 \u5468",ww:"%d \u5468",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(ce(6676))},6860:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(T,e){return 12===T&&(T=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?T:"\u4e2d\u5348"===e?T>=11?T:T+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?T+12:void 0},meridiem:function(T,e,l){var v=100*T+e;return v<600?"\u51cc\u6668":v<900?"\u65e9\u4e0a":v<1200?"\u4e0a\u5348":1200===v?"\u4e2d\u5348":v<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(T,e){switch(e){case"d":case"D":case"DDD":return T+"\u65e5";case"M":return T+"\u6708";case"w":case"W":return T+"\u9031";default:return T}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(ce(6676))},2335:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("zh-mo",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"D/M/YYYY",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(T,e){return 12===T&&(T=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?T:"\u4e2d\u5348"===e?T>=11?T:T+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?T+12:void 0},meridiem:function(T,e,l){var v=100*T+e;return v<600?"\u51cc\u6668":v<900?"\u65e9\u4e0a":v<1130?"\u4e0a\u5348":v<1230?"\u4e2d\u5348":v<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(T,e){switch(e){case"d":case"D":case"DDD":return T+"\u65e5";case"M":return T+"\u6708";case"w":case"W":return T+"\u9031";default:return T}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(ce(6676))},482:function(ni,Pt,ce){!function(V){"use strict";V.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(T,e){return 12===T&&(T=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?T:"\u4e2d\u5348"===e?T>=11?T:T+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?T+12:void 0},meridiem:function(T,e,l){var v=100*T+e;return v<600?"\u51cc\u6668":v<900?"\u65e9\u4e0a":v<1130?"\u4e0a\u5348":v<1230?"\u4e2d\u5348":v<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(T,e){switch(e){case"d":case"D":case"DDD":return T+"\u65e5";case"M":return T+"\u6708";case"w":case"W":return T+"\u9031";default:return T}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(ce(6676))},6676:function(ni,Pt,ce){(ni=ce.nmd(ni)).exports=function(){"use strict";var V,Q;function K(){return V.apply(null,arguments)}function e(ie){return ie instanceof Array||"[object Array]"===Object.prototype.toString.call(ie)}function l(ie){return null!=ie&&"[object Object]"===Object.prototype.toString.call(ie)}function v(ie,xe){return Object.prototype.hasOwnProperty.call(ie,xe)}function h(ie){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(ie).length;var xe;for(xe in ie)if(v(ie,xe))return!1;return!0}function f(ie){return void 0===ie}function _(ie){return"number"==typeof ie||"[object Number]"===Object.prototype.toString.call(ie)}function b(ie){return ie instanceof Date||"[object Date]"===Object.prototype.toString.call(ie)}function y(ie,xe){var Et,ot=[],ri=ie.length;for(Et=0;Et>>0;for(Et=0;Et0)for(ot=0;ot=0?ot?"+":"":"-")+Math.pow(10,Math.max(0,xe-Et.length)).toString().substr(1)+Et}var ze=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,_e=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ae={},ve={};function ye(ie,xe,ot,Et){var ri=Et;"string"==typeof Et&&(ri=function(){return this[Et]()}),ie&&(ve[ie]=ri),xe&&(ve[xe[0]]=function(){return me(ri.apply(this,arguments),xe[1],xe[2])}),ot&&(ve[ot]=function(){return this.localeData().ordinal(ri.apply(this,arguments),ie)})}function Oe(ie){return ie.match(/\[[\s\S]/)?ie.replace(/^\[|\]$/g,""):ie.replace(/\\/g,"")}function Ee(ie,xe){return ie.isValid()?(xe=Fe(xe,ie.localeData()),Ae[xe]=Ae[xe]||function ae(ie){var ot,Et,xe=ie.match(ze);for(ot=0,Et=xe.length;ot=0&&_e.test(ie);)ie=ie.replace(_e,Et),_e.lastIndex=0,ot-=1;return ie}var ut={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function et(ie){return"string"==typeof ie?ut[ie]||ut[ie.toLowerCase()]:void 0}function Xe(ie){var ot,Et,xe={};for(Et in ie)v(ie,Et)&&(ot=et(Et))&&(xe[ot]=ie[Et]);return xe}var It={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};var rt,vt=/\d/,Qt=/\d\d/,qe=/\d{3}/,ke=/\d{4}/,it=/[+-]?\d{6}/,gt=/\d\d?/,ai=/\d\d\d\d?/,Rt=/\d\d\d\d\d\d?/,Gt=/\d{1,3}/,zt=/\d{1,4}/,mi=/[+-]?\d{1,6}/,Zi=/\d+/,Qi=/[+-]?\d+/,Ht=/Z|[+-]\d\d:?\d\d/gi,dt=/Z|[+-]\d\d(?::?\d\d)?/gi,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct=/^[1-9]\d?/,Zt=/^([1-9]\d|\d)/;function Kt(ie,xe,ot){rt[ie]=P(xe)?xe:function(Et,ri){return Et&&ot?ot:xe}}function on(ie,xe){return v(rt,ie)?rt[ie](xe._strict,xe._locale):new RegExp(function Ge(ie){return _i(ie.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(xe,ot,Et,ri,Fi){return ot||Et||ri||Fi}))}(ie))}function _i(ie){return ie.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function qt(ie){return ie<0?Math.ceil(ie)||0:Math.floor(ie)}function tt(ie){var xe=+ie,ot=0;return 0!==xe&&isFinite(xe)&&(ot=qt(xe)),ot}rt={};var Bt={};function Ut(ie,xe){var ot,ri,Et=xe;for("string"==typeof ie&&(ie=[ie]),_(xe)&&(Et=function(Fi,pn){pn[xe]=tt(Fi)}),ri=ie.length,ot=0;ot68?1900:2e3)};var Wn,Qn=gr("FullYear",!0);function gr(ie,xe){return function(ot){return null!=ot?(Hr(this,ie,ot),K.updateOffset(this,xe),this):xn(this,ie)}}function xn(ie,xe){if(!ie.isValid())return NaN;var ot=ie._d,Et=ie._isUTC;switch(xe){case"Milliseconds":return Et?ot.getUTCMilliseconds():ot.getMilliseconds();case"Seconds":return Et?ot.getUTCSeconds():ot.getSeconds();case"Minutes":return Et?ot.getUTCMinutes():ot.getMinutes();case"Hours":return Et?ot.getUTCHours():ot.getHours();case"Date":return Et?ot.getUTCDate():ot.getDate();case"Day":return Et?ot.getUTCDay():ot.getDay();case"Month":return Et?ot.getUTCMonth():ot.getMonth();case"FullYear":return Et?ot.getUTCFullYear():ot.getFullYear();default:return NaN}}function Hr(ie,xe,ot){var Et,ri,Fi,pn,sr;if(ie.isValid()&&!isNaN(ot)){switch(Et=ie._d,ri=ie._isUTC,xe){case"Milliseconds":return void(ri?Et.setUTCMilliseconds(ot):Et.setMilliseconds(ot));case"Seconds":return void(ri?Et.setUTCSeconds(ot):Et.setSeconds(ot));case"Minutes":return void(ri?Et.setUTCMinutes(ot):Et.setMinutes(ot));case"Hours":return void(ri?Et.setUTCHours(ot):Et.setHours(ot));case"Date":return void(ri?Et.setUTCDate(ot):Et.setDate(ot));case"FullYear":break;default:return}Fi=ot,pn=ie.month(),sr=29!==(sr=ie.date())||1!==pn||ln(Fi)?sr:28,ri?Et.setUTCFullYear(Fi,pn,sr):Et.setFullYear(Fi,pn,sr)}}function ro(ie,xe){if(isNaN(ie)||isNaN(xe))return NaN;var ot=function Fn(ie,xe){return(ie%xe+xe)%xe}(xe,12);return ie+=(xe-ot)/12,1===ot?ln(ie)?29:28:31-ot%7%2}Wn=Array.prototype.indexOf?Array.prototype.indexOf:function(ie){var xe;for(xe=0;xe=0?(sr=new Date(ie+400,xe,ot,Et,ri,Fi,pn),isFinite(sr.getFullYear())&&sr.setFullYear(ie)):sr=new Date(ie,xe,ot,Et,ri,Fi,pn),sr}function gi(ie){var xe,ot;return ie<100&&ie>=0?((ot=Array.prototype.slice.call(arguments))[0]=ie+400,xe=new Date(Date.UTC.apply(null,ot)),isFinite(xe.getUTCFullYear())&&xe.setUTCFullYear(ie)):xe=new Date(Date.UTC.apply(null,arguments)),xe}function Gi(ie,xe,ot){var Et=7+xe-ot;return-(7+gi(ie,0,Et).getUTCDay()-xe)%7+Et-1}function hn(ie,xe,ot,Et,ri){var kr,Fo,sr=1+7*(xe-1)+(7+ot-Et)%7+Gi(ie,Et,ri);return sr<=0?Fo=ji(kr=ie-1)+sr:sr>ji(ie)?(kr=ie+1,Fo=sr-ji(ie)):(kr=ie,Fo=sr),{year:kr,dayOfYear:Fo}}function Ci(ie,xe,ot){var Fi,pn,Et=Gi(ie.year(),xe,ot),ri=Math.floor((ie.dayOfYear()-Et-1)/7)+1;return ri<1?Fi=ri+Vi(pn=ie.year()-1,xe,ot):ri>Vi(ie.year(),xe,ot)?(Fi=ri-Vi(ie.year(),xe,ot),pn=ie.year()+1):(pn=ie.year(),Fi=ri),{week:Fi,year:pn}}function Vi(ie,xe,ot){var Et=Gi(ie,xe,ot),ri=Gi(ie+1,xe,ot);return(ji(ie)-Et+ri)/7}ye("w",["ww",2],"wo","week"),ye("W",["WW",2],"Wo","isoWeek"),Kt("w",gt,ct),Kt("ww",gt,Qt),Kt("W",gt,ct),Kt("WW",gt,Qt),Si(["w","ww","W","WW"],function(ie,xe,ot,Et){xe[Et.substr(0,1)]=tt(ie)});function Gr(ie,xe){return ie.slice(xe,7).concat(ie.slice(0,xe))}ye("d",0,"do","day"),ye("dd",0,0,function(ie){return this.localeData().weekdaysMin(this,ie)}),ye("ddd",0,0,function(ie){return this.localeData().weekdaysShort(this,ie)}),ye("dddd",0,0,function(ie){return this.localeData().weekdays(this,ie)}),ye("e",0,0,"weekday"),ye("E",0,0,"isoWeekday"),Kt("d",gt),Kt("e",gt),Kt("E",gt),Kt("dd",function(ie,xe){return xe.weekdaysMinRegex(ie)}),Kt("ddd",function(ie,xe){return xe.weekdaysShortRegex(ie)}),Kt("dddd",function(ie,xe){return xe.weekdaysRegex(ie)}),Si(["dd","ddd","dddd"],function(ie,xe,ot,Et){var ri=ot._locale.weekdaysParse(ie,Et,ot._strict);null!=ri?xe.d=ri:k(ot).invalidWeekday=ie}),Si(["d","e","E"],function(ie,xe,ot,Et){xe[Et]=tt(ie)});var br="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),_o="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Br="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Kn=Se,xr=Se,Dr=Se;function Sr(ie,xe,ot){var Et,ri,Fi,pn=ie.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],Et=0;Et<7;++Et)Fi=D([2e3,1]).day(Et),this._minWeekdaysParse[Et]=this.weekdaysMin(Fi,"").toLocaleLowerCase(),this._shortWeekdaysParse[Et]=this.weekdaysShort(Fi,"").toLocaleLowerCase(),this._weekdaysParse[Et]=this.weekdays(Fi,"").toLocaleLowerCase();return ot?"dddd"===xe?-1!==(ri=Wn.call(this._weekdaysParse,pn))?ri:null:"ddd"===xe?-1!==(ri=Wn.call(this._shortWeekdaysParse,pn))?ri:null:-1!==(ri=Wn.call(this._minWeekdaysParse,pn))?ri:null:"dddd"===xe?-1!==(ri=Wn.call(this._weekdaysParse,pn))||-1!==(ri=Wn.call(this._shortWeekdaysParse,pn))||-1!==(ri=Wn.call(this._minWeekdaysParse,pn))?ri:null:"ddd"===xe?-1!==(ri=Wn.call(this._shortWeekdaysParse,pn))||-1!==(ri=Wn.call(this._weekdaysParse,pn))||-1!==(ri=Wn.call(this._minWeekdaysParse,pn))?ri:null:-1!==(ri=Wn.call(this._minWeekdaysParse,pn))||-1!==(ri=Wn.call(this._weekdaysParse,pn))||-1!==(ri=Wn.call(this._shortWeekdaysParse,pn))?ri:null}function Qe(){function ie(gl,Fc){return Fc.length-gl.length}var Fi,pn,sr,kr,Fo,xe=[],ot=[],Et=[],ri=[];for(Fi=0;Fi<7;Fi++)pn=D([2e3,1]).day(Fi),sr=_i(this.weekdaysMin(pn,"")),kr=_i(this.weekdaysShort(pn,"")),Fo=_i(this.weekdays(pn,"")),xe.push(sr),ot.push(kr),Et.push(Fo),ri.push(sr),ri.push(kr),ri.push(Fo);xe.sort(ie),ot.sort(ie),Et.sort(ie),ri.sort(ie),this._weekdaysRegex=new RegExp("^("+ri.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+Et.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+ot.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+xe.join("|")+")","i")}function Ie(){return this.hours()%12||12}function Ye(ie,xe){ye(ie,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),xe)})}function ht(ie,xe){return xe._meridiemParse}ye("H",["HH",2],0,"hour"),ye("h",["hh",2],0,Ie),ye("k",["kk",2],0,function Ne(){return this.hours()||24}),ye("hmm",0,0,function(){return""+Ie.apply(this)+me(this.minutes(),2)}),ye("hmmss",0,0,function(){return""+Ie.apply(this)+me(this.minutes(),2)+me(this.seconds(),2)}),ye("Hmm",0,0,function(){return""+this.hours()+me(this.minutes(),2)}),ye("Hmmss",0,0,function(){return""+this.hours()+me(this.minutes(),2)+me(this.seconds(),2)}),Ye("a",!0),Ye("A",!1),Kt("a",ht),Kt("A",ht),Kt("H",gt,Zt),Kt("h",gt,ct),Kt("k",gt,ct),Kt("HH",gt,Qt),Kt("hh",gt,Qt),Kt("kk",gt,Qt),Kt("hmm",ai),Kt("hmmss",Rt),Kt("Hmm",ai),Kt("Hmmss",Rt),Ut(["H","HH"],Pn),Ut(["k","kk"],function(ie,xe,ot){var Et=tt(ie);xe[Pn]=24===Et?0:Et}),Ut(["a","A"],function(ie,xe,ot){ot._isPm=ot._locale.isPM(ie),ot._meridiem=ie}),Ut(["h","hh"],function(ie,xe,ot){xe[Pn]=tt(ie),k(ot).bigHour=!0}),Ut("hmm",function(ie,xe,ot){var Et=ie.length-2;xe[Pn]=tt(ie.substr(0,Et)),xe[mn]=tt(ie.substr(Et)),k(ot).bigHour=!0}),Ut("hmmss",function(ie,xe,ot){var Et=ie.length-4,ri=ie.length-2;xe[Pn]=tt(ie.substr(0,Et)),xe[mn]=tt(ie.substr(Et,2)),xe[ui]=tt(ie.substr(ri)),k(ot).bigHour=!0}),Ut("Hmm",function(ie,xe,ot){var Et=ie.length-2;xe[Pn]=tt(ie.substr(0,Et)),xe[mn]=tt(ie.substr(Et))}),Ut("Hmmss",function(ie,xe,ot){var Et=ie.length-4,ri=ie.length-2;xe[Pn]=tt(ie.substr(0,Et)),xe[mn]=tt(ie.substr(Et,2)),xe[ui]=tt(ie.substr(ri))});var Ii=gr("Hours",!0);var Un,an={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Or,monthsShort:ar,week:{dow:0,doy:6},weekdays:br,weekdaysMin:Br,weekdaysShort:_o,meridiemParse:/[ap]\.?m?\.?/i},Ui={},bn={};function Jn(ie,xe){var ot,Et=Math.min(ie.length,xe.length);for(ot=0;ot0;){if(ri=$n(Fi.slice(0,ot).join("-")))return ri;if(Et&&Et.length>=ot&&Jn(Fi,Et)>=ot-1)break;ot--}xe++}return Un}(ie)}function ao(ie){var xe,ot=ie._a;return ot&&-2===k(ie).overflow&&(xe=ot[or]<0||ot[or]>11?or:ot[fn]<1||ot[fn]>ro(ot[Ji],ot[or])?fn:ot[Pn]<0||ot[Pn]>24||24===ot[Pn]&&(0!==ot[mn]||0!==ot[ui]||0!==ot[di])?Pn:ot[mn]<0||ot[mn]>59?mn:ot[ui]<0||ot[ui]>59?ui:ot[di]<0||ot[di]>999?di:-1,k(ie)._overflowDayOfYear&&(xefn)&&(xe=fn),k(ie)._overflowWeeks&&-1===xe&&(xe=xi),k(ie)._overflowWeekday&&-1===xe&&(xe=sn),k(ie).overflow=xe),ie}var Ca=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ds=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,da=/Z|[+-]\d\d(?::?\d\d)?/,Xa=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Po=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],tl=/^\/?Date\((-?\d+)/i,va=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,za={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function vl(ie){var xe,ot,Fi,pn,sr,kr,Et=ie._i,ri=Ca.exec(Et)||ds.exec(Et),Fo=Xa.length,gl=Po.length;if(ri){for(k(ie).iso=!0,xe=0,ot=Fo;xe7)&&(kr=!0)):(Fi=ie._locale._week.dow,pn=ie._locale._week.doy,Fo=Ci(Sa(),Fi,pn),ot=co(xe.gg,ie._a[Ji],Fo.year),Et=co(xe.w,Fo.week),null!=xe.d?((ri=xe.d)<0||ri>6)&&(kr=!0):null!=xe.e?(ri=xe.e+Fi,(xe.e<0||xe.e>6)&&(kr=!0)):ri=Fi),Et<1||Et>Vi(ot,Fi,pn)?k(ie)._overflowWeeks=!0:null!=kr?k(ie)._overflowWeekday=!0:(sr=hn(ot,Et,ri,Fi,pn),ie._a[Ji]=sr.year,ie._dayOfYear=sr.dayOfYear)}(ie),null!=ie._dayOfYear&&(pn=co(ie._a[Ji],ri[Ji]),(ie._dayOfYear>ji(pn)||0===ie._dayOfYear)&&(k(ie)._overflowDayOfYear=!0),ot=gi(pn,0,ie._dayOfYear),ie._a[or]=ot.getUTCMonth(),ie._a[fn]=ot.getUTCDate()),xe=0;xe<3&&null==ie._a[xe];++xe)ie._a[xe]=Et[xe]=ri[xe];for(;xe<7;xe++)ie._a[xe]=Et[xe]=null==ie._a[xe]?2===xe?1:0:ie._a[xe];24===ie._a[Pn]&&0===ie._a[mn]&&0===ie._a[ui]&&0===ie._a[di]&&(ie._nextDay=!0,ie._a[Pn]=0),ie._d=(ie._useUTC?gi:Ei).apply(null,Et),Fi=ie._useUTC?ie._d.getUTCDay():ie._d.getDay(),null!=ie._tzm&&ie._d.setUTCMinutes(ie._d.getUTCMinutes()-ie._tzm),ie._nextDay&&(ie._a[Pn]=24),ie._w&&typeof ie._w.d<"u"&&ie._w.d!==Fi&&(k(ie).weekdayMismatch=!0)}}function Ia(ie){if(ie._f!==K.ISO_8601)if(ie._f!==K.RFC_2822){ie._a=[],k(ie).empty=!0;var ot,Et,ri,Fi,pn,Fo,gl,xe=""+ie._i,sr=xe.length,kr=0;for(gl=(ri=Fe(ie._f,ie._locale).match(ze)||[]).length,ot=0;ot0&&k(ie).unusedInput.push(pn),xe=xe.slice(xe.indexOf(Et)+Et.length),kr+=Et.length),ve[Fi]?(Et?k(ie).empty=!1:k(ie).unusedTokens.push(Fi),Ti(Fi,Et,ie)):ie._strict&&!Et&&k(ie).unusedTokens.push(Fi);k(ie).charsLeftOver=sr-kr,xe.length>0&&k(ie).unusedInput.push(xe),ie._a[Pn]<=12&&!0===k(ie).bigHour&&ie._a[Pn]>0&&(k(ie).bigHour=void 0),k(ie).parsedDateParts=ie._a.slice(0),k(ie).meridiem=ie._meridiem,ie._a[Pn]=function Ha(ie,xe,ot){var Et;return null==ot?xe:null!=ie.meridiemHour?ie.meridiemHour(xe,ot):(null!=ie.isPM&&((Et=ie.isPM(ot))&&xe<12&&(xe+=12),!Et&&12===xe&&(xe=0)),xe)}(ie._locale,ie._a[Pn],ie._meridiem),null!==(Fo=k(ie).era)&&(ie._a[Ji]=ie._locale.erasConvertYear(Fo,ie._a[Ji])),js(ie),ao(ie)}else $a(ie);else vl(ie)}function Sl(ie){var xe=ie._i,ot=ie._f;return ie._locale=ie._locale||Io(ie._l),null===xe||void 0===ot&&""===xe?d({nullInput:!0}):("string"==typeof xe&&(ie._i=xe=ie._locale.preparse(xe)),Z(xe)?new q(ao(xe)):(b(xe)?ie._d=xe:e(ot)?function ta(ie){var xe,ot,Et,ri,Fi,pn,sr=!1,kr=ie._f.length;if(0===kr)return k(ie).invalidFormat=!0,void(ie._d=new Date(NaN));for(ri=0;rithis?this:ie:d()});function bs(ie,xe){var ot,Et;if(1===xe.length&&e(xe[0])&&(xe=xe[0]),!xe.length)return Sa();for(ot=xe[0],Et=1;Et=0?new Date(ie+400,xe,ot)-Xt:new Date(ie,xe,ot).valueOf()}function cn(ie,xe,ot){return ie<100&&ie>=0?Date.UTC(ie+400,xe,ot)-Xt:Date.UTC(ie,xe,ot)}function Co(ie,xe){return xe.erasAbbrRegex(ie)}function Eu(){var ri,Fi,pn,sr,kr,ie=[],xe=[],ot=[],Et=[],Fo=this.eras();for(ri=0,Fi=Fo.length;ri(Fi=Vi(ie,Et,ri))&&(xe=Fi),FA.call(this,ie,xe,ot,Et,ri))}function FA(ie,xe,ot,Et,ri){var Fi=hn(ie,xe,ot,Et,ri),pn=gi(Fi.year,0,Fi.dayOfYear);return this.year(pn.getUTCFullYear()),this.month(pn.getUTCMonth()),this.date(pn.getUTCDate()),this}ye("N",0,0,"eraAbbr"),ye("NN",0,0,"eraAbbr"),ye("NNN",0,0,"eraAbbr"),ye("NNNN",0,0,"eraName"),ye("NNNNN",0,0,"eraNarrow"),ye("y",["y",1],"yo","eraYear"),ye("y",["yy",2],0,"eraYear"),ye("y",["yyy",3],0,"eraYear"),ye("y",["yyyy",4],0,"eraYear"),Kt("N",Co),Kt("NN",Co),Kt("NNN",Co),Kt("NNNN",function Np(ie,xe){return xe.erasNameRegex(ie)}),Kt("NNNNN",function Au(ie,xe){return xe.erasNarrowRegex(ie)}),Ut(["N","NN","NNN","NNNN","NNNNN"],function(ie,xe,ot,Et){var ri=ot._locale.erasParse(ie,Et,ot._strict);ri?k(ot).era=ri:k(ot).invalidEra=ie}),Kt("y",Zi),Kt("yy",Zi),Kt("yyy",Zi),Kt("yyyy",Zi),Kt("yo",function xl(ie,xe){return xe._eraYearOrdinalRegex||Zi}),Ut(["y","yy","yyy","yyyy"],Ji),Ut(["yo"],function(ie,xe,ot,Et){var ri;ot._locale._eraYearOrdinalRegex&&(ri=ie.match(ot._locale._eraYearOrdinalRegex)),xe[Ji]=ot._locale.eraYearOrdinalParse?ot._locale.eraYearOrdinalParse(ie,ri):parseInt(ie,10)}),ye(0,["gg",2],0,function(){return this.weekYear()%100}),ye(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ad("gggg","weekYear"),Ad("ggggg","weekYear"),Ad("GGGG","isoWeekYear"),Ad("GGGGG","isoWeekYear"),Kt("G",Qi),Kt("g",Qi),Kt("GG",gt,Qt),Kt("gg",gt,Qt),Kt("GGGG",zt,ke),Kt("gggg",zt,ke),Kt("GGGGG",mi,it),Kt("ggggg",mi,it),Si(["gggg","ggggg","GGGG","GGGGG"],function(ie,xe,ot,Et){xe[Et.substr(0,2)]=tt(ie)}),Si(["gg","GG"],function(ie,xe,ot,Et){xe[Et]=K.parseTwoDigitYear(ie)}),ye("Q",0,"Qo","quarter"),Kt("Q",vt),Ut("Q",function(ie,xe){xe[or]=3*(tt(ie)-1)}),ye("D",["DD",2],"Do","date"),Kt("D",gt,ct),Kt("DD",gt,Qt),Kt("Do",function(ie,xe){return ie?xe._dayOfMonthOrdinalParse||xe._ordinalParse:xe._dayOfMonthOrdinalParseLenient}),Ut(["D","DD"],fn),Ut("Do",function(ie,xe){xe[fn]=tt(ie.match(gt)[0])});var ud=gr("Date",!0);ye("DDD",["DDDD",3],"DDDo","dayOfYear"),Kt("DDD",Gt),Kt("DDDD",qe),Ut(["DDD","DDDD"],function(ie,xe,ot){ot._dayOfYear=tt(ie)}),ye("m",["mm",2],0,"minute"),Kt("m",gt,Zt),Kt("mm",gt,Qt),Ut(["m","mm"],mn);var zp=gr("Minutes",!1);ye("s",["ss",2],0,"second"),Kt("s",gt,Zt),Kt("ss",gt,Qt),Ut(["s","ss"],ui);var jl,jh,Tu=gr("Seconds",!1);for(ye("S",0,0,function(){return~~(this.millisecond()/100)}),ye(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),ye(0,["SSS",3],0,"millisecond"),ye(0,["SSSS",4],0,function(){return 10*this.millisecond()}),ye(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),ye(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),ye(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),ye(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),ye(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Kt("S",Gt,vt),Kt("SS",Gt,Qt),Kt("SSS",Gt,qe),jl="SSSS";jl.length<=9;jl+="S")Kt(jl,Zi);function Vh(ie,xe){xe[di]=tt(1e3*("0."+ie))}for(jl="S";jl.length<=9;jl+="S")Ut(jl,Vh);jh=gr("Milliseconds",!1),ye("z",0,0,"zoneAbbr"),ye("zz",0,0,"zoneName");var En=q.prototype;function uA(ie){return ie}En.add=Ld,En.calendar=function rn(ie,xe){1===arguments.length&&(arguments[0]?Re(arguments[0])?(ie=arguments[0],xe=void 0):function Lt(ie){var ri,xe=l(ie)&&!h(ie),ot=!1,Et=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(ri=0;riot.valueOf():ot.valueOf()9999?Ee(ot,xe?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):P(Date.prototype.toISOString)?xe?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",Ee(ot,"Z")):Ee(ot,xe?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},En.inspect=function Sc(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var ot,Et,ie="moment",xe="";return this.isLocal()||(ie=0===this.utcOffset()?"moment.utc":"moment.parseZone",xe="Z"),ot="["+ie+'("]',Et=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",this.format(ot+Et+"-MM-DD[T]HH:mm:ss.SSS"+xe+'[")]')},typeof Symbol<"u"&&null!=Symbol.for&&(En[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),En.toJSON=function Ll(){return this.isValid()?this.toISOString():null},En.toString=function ic(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},En.unix=function vo(){return Math.floor(this.valueOf()/1e3)},En.valueOf=function jr(){return this._d.valueOf()-6e4*(this._offset||0)},En.creationData=function nc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},En.eraName=function wa(){var ie,xe,ot,Et=this.localeData().eras();for(ie=0,xe=Et.length;iethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},En.isLocal=function ol(){return!!this.isValid()&&!this._isUTC},En.isUtcOffset=function Vc(){return!!this.isValid()&&this._isUTC},En.isUtc=AA,En.isUTC=AA,En.zoneAbbr=function uh(){return this._isUTC?"UTC":""},En.zoneName=function Ga(){return this._isUTC?"Coordinated Universal Time":""},En.dates=G("dates accessor is deprecated. Use date instead.",ud),En.months=G("months accessor is deprecated. Use month instead",Me),En.years=G("years accessor is deprecated. Use year instead",Qn),En.zone=G("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function lA(ie,xe){return null!=ie?("string"!=typeof ie&&(ie=-ie),this.utcOffset(ie,xe),this):-this.utcOffset()}),En.isDSTShifted=G("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function ya(){if(!f(this._isDSTShifted))return this._isDSTShifted;var xe,ie={};return z(ie,this),(ie=Sl(ie))._a?(xe=ie._isUTC?D(ie._a):Sa(ie._a),this._isDSTShifted=this.isValid()&&function ba(ie,xe,ot){var pn,Et=Math.min(ie.length,xe.length),ri=Math.abs(ie.length-xe.length),Fi=0;for(pn=0;pn0):this._isDSTShifted=!1,this._isDSTShifted});var ga=re.prototype;function Yd(ie,xe,ot,Et){var ri=Io(),Fi=D().set(Et,xe);return ri[ot](Fi,ie)}function hh(ie,xe,ot){if(_(ie)&&(xe=ie,ie=void 0),ie=ie||"",null!=xe)return Yd(ie,xe,ot,"month");var Et,ri=[];for(Et=0;Et<12;Et++)ri[Et]=Yd(ie,Et,ot,"month");return ri}function ph(ie,xe,ot,Et){"boolean"==typeof ie?(_(xe)&&(ot=xe,xe=void 0),xe=xe||""):(ot=xe=ie,ie=!1,_(xe)&&(ot=xe,xe=void 0),xe=xe||"");var pn,ri=Io(),Fi=ie?ri._week.dow:0,sr=[];if(null!=ot)return Yd(xe,(ot+Fi)%7,Et,"day");for(pn=0;pn<7;pn++)sr[pn]=Yd(xe,(pn+Fi)%7,Et,"day");return sr}ga.calendar=function Ce(ie,xe,ot){var Et=this._calendar[ie]||this._calendar.sameElse;return P(Et)?Et.call(xe,ot):Et},ga.longDateFormat=function mt(ie){var xe=this._longDateFormat[ie],ot=this._longDateFormat[ie.toUpperCase()];return xe||!ot?xe:(this._longDateFormat[ie]=ot.match(ze).map(function(Et){return"MMMM"===Et||"MM"===Et||"DD"===Et||"dddd"===Et?Et.slice(1):Et}).join(""),this._longDateFormat[ie])},ga.invalidDate=function oi(){return this._invalidDate},ga.ordinal=function je(ie){return this._ordinal.replace("%d",ie)},ga.preparse=uA,ga.postformat=uA,ga.relativeTime=function _t(ie,xe,ot,Et){var ri=this._relativeTime[ot];return P(ri)?ri(ie,xe,ot,Et):ri.replace(/%d/i,ie)},ga.pastFuture=function Nt(ie,xe){var ot=this._relativeTime[ie>0?"future":"past"];return P(ot)?ot(xe):ot.replace(/%s/i,xe)},ga.set=function J(ie){var xe,ot;for(ot in ie)v(ie,ot)&&(P(xe=ie[ot])?this[ot]=xe:this["_"+ot]=xe);this._config=ie,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},ga.eras=function ir(ie,xe){var ot,Et,ri,Fi=this._eras||Io("en")._eras;for(ot=0,Et=Fi.length;ot=0)return Fi[Et]},ga.erasConvertYear=function cd(ie,xe){var ot=ie.since<=ie.until?1:-1;return void 0===xe?K(ie.since).year():K(ie.since).year()+(xe-ie.offset)*ot},ga.erasAbbrRegex=function al(ie){return v(this,"_erasAbbrRegex")||Eu.call(this),ie?this._erasAbbrRegex:this._erasRegex},ga.erasNameRegex=function Ys(ie){return v(this,"_erasNameRegex")||Eu.call(this),ie?this._erasNameRegex:this._erasRegex},ga.erasNarrowRegex=function _n(ie){return v(this,"_erasNarrowRegex")||Eu.call(this),ie?this._erasNarrowRegex:this._erasRegex},ga.months=function Ai(ie,xe){return ie?e(this._months)?this._months[ie.month()]:this._months[(this._months.isFormat||wo).test(xe)?"format":"standalone"][ie.month()]:e(this._months)?this._months:this._months.standalone},ga.monthsShort=function Vt(ie,xe){return ie?e(this._monthsShort)?this._monthsShort[ie.month()]:this._monthsShort[wo.test(xe)?"format":"standalone"][ie.month()]:e(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},ga.monthsParse=function Pe(ie,xe,ot){var Et,ri,Fi;if(this._monthsParseExact)return Le.call(this,ie,xe,ot);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),Et=0;Et<12;Et++){if(ri=D([2e3,Et]),ot&&!this._longMonthsParse[Et]&&(this._longMonthsParse[Et]=new RegExp("^"+this.months(ri,"").replace(".","")+"$","i"),this._shortMonthsParse[Et]=new RegExp("^"+this.monthsShort(ri,"").replace(".","")+"$","i")),!ot&&!this._monthsParse[Et]&&(Fi="^"+this.months(ri,"")+"|^"+this.monthsShort(ri,""),this._monthsParse[Et]=new RegExp(Fi.replace(".",""),"i")),ot&&"MMMM"===xe&&this._longMonthsParse[Et].test(ie))return Et;if(ot&&"MMM"===xe&&this._shortMonthsParse[Et].test(ie))return Et;if(!ot&&this._monthsParse[Et].test(ie))return Et}},ga.monthsRegex=function li(ie){return this._monthsParseExact?(v(this,"_monthsRegex")||$t.call(this),ie?this._monthsStrictRegex:this._monthsRegex):(v(this,"_monthsRegex")||(this._monthsRegex=ci),this._monthsStrictRegex&&ie?this._monthsStrictRegex:this._monthsRegex)},ga.monthsShortRegex=function xt(ie){return this._monthsParseExact?(v(this,"_monthsRegex")||$t.call(this),ie?this._monthsShortStrictRegex:this._monthsShortRegex):(v(this,"_monthsShortRegex")||(this._monthsShortRegex=Jt),this._monthsShortStrictRegex&&ie?this._monthsShortStrictRegex:this._monthsShortRegex)},ga.week=function nn(ie){return Ci(ie,this._week.dow,this._week.doy).week},ga.firstDayOfYear=function $i(){return this._week.doy},ga.firstDayOfWeek=function Oi(){return this._week.dow},ga.weekdays=function To(ie,xe){var ot=e(this._weekdays)?this._weekdays:this._weekdays[ie&&!0!==ie&&this._weekdays.isFormat.test(xe)?"format":"standalone"];return!0===ie?Gr(ot,this._week.dow):ie?ot[ie.day()]:ot},ga.weekdaysMin=function Ta(ie){return!0===ie?Gr(this._weekdaysMin,this._week.dow):ie?this._weekdaysMin[ie.day()]:this._weekdaysMin},ga.weekdaysShort=function ca(ie){return!0===ie?Gr(this._weekdaysShort,this._week.dow):ie?this._weekdaysShort[ie.day()]:this._weekdaysShort},ga.weekdaysParse=function qa(ie,xe,ot){var Et,ri,Fi;if(this._weekdaysParseExact)return Sr.call(this,ie,xe,ot);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),Et=0;Et<7;Et++){if(ri=D([2e3,1]).day(Et),ot&&!this._fullWeekdaysParse[Et]&&(this._fullWeekdaysParse[Et]=new RegExp("^"+this.weekdays(ri,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[Et]=new RegExp("^"+this.weekdaysShort(ri,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[Et]=new RegExp("^"+this.weekdaysMin(ri,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[Et]||(Fi="^"+this.weekdays(ri,"")+"|^"+this.weekdaysShort(ri,"")+"|^"+this.weekdaysMin(ri,""),this._weekdaysParse[Et]=new RegExp(Fi.replace(".",""),"i")),ot&&"dddd"===xe&&this._fullWeekdaysParse[Et].test(ie))return Et;if(ot&&"ddd"===xe&&this._shortWeekdaysParse[Et].test(ie))return Et;if(ot&&"dd"===xe&&this._minWeekdaysParse[Et].test(ie))return Et;if(!ot&&this._weekdaysParse[Et].test(ie))return Et}},ga.weekdaysRegex=function mr(ie){return this._weekdaysParseExact?(v(this,"_weekdaysRegex")||Qe.call(this),ie?this._weekdaysStrictRegex:this._weekdaysRegex):(v(this,"_weekdaysRegex")||(this._weekdaysRegex=Kn),this._weekdaysStrictRegex&&ie?this._weekdaysStrictRegex:this._weekdaysRegex)},ga.weekdaysShortRegex=function zo(ie){return this._weekdaysParseExact?(v(this,"_weekdaysRegex")||Qe.call(this),ie?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(v(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=xr),this._weekdaysShortStrictRegex&&ie?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},ga.weekdaysMinRegex=function Ot(ie){return this._weekdaysParseExact?(v(this,"_weekdaysRegex")||Qe.call(this),ie?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(v(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Dr),this._weekdaysMinStrictRegex&&ie?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},ga.isPM=function kt(ie){return"p"===(ie+"").toLowerCase().charAt(0)},ga.meridiem=function en(ie,xe,ot){return ie>11?ot?"pm":"PM":ot?"am":"AM"},Ur("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(ie){var xe=ie%10;return ie+(1===tt(ie%100/10)?"th":1===xe?"st":2===xe?"nd":3===xe?"rd":"th")}}),K.lang=G("moment.lang is deprecated. Use moment.locale instead.",Ur),K.langData=G("moment.langData is deprecated. Use moment.localeData instead.",Io);var No=Math.abs;function hA(ie,xe,ot,Et){var ri=ts(xe,ot);return ie._milliseconds+=Et*ri._milliseconds,ie._days+=Et*ri._days,ie._months+=Et*ri._months,ie._bubble()}function $c(ie){return ie<0?Math.floor(ie):Math.ceil(ie)}function OA(ie){return 4800*ie/146097}function Wr(ie){return 146097*ie/4800}function Bl(ie){return function(){return this.as(ie)}}var eA=Bl("ms"),On=Bl("s"),Sn=Bl("m"),Ya=Bl("h"),mc=Bl("d"),hd=Bl("w"),Na=Bl("M"),El=Bl("Q"),pd=Bl("y"),Za=eA;function Ba(ie){return function(){return this.isValid()?this._data[ie]:NaN}}var VA=Ba("milliseconds"),Hp=Ba("seconds"),Kh=Ba("minutes"),gd=Ba("hours"),pA=Ba("days"),Su=Ba("months"),Vl=Ba("years");var rc=Math.round,oc={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function na(ie,xe,ot,Et,ri){return ri.relativeTime(xe||1,!!ot,ie,Et)}var ac=Math.abs;function tA(ie){return(ie>0)-(ie<0)||+ie}function gA(){if(!this.isValid())return this.localeData().invalidDate();var Et,ri,Fi,pn,kr,Fo,gl,Fc,ie=ac(this._milliseconds)/1e3,xe=ac(this._days),ot=ac(this._months),sr=this.asSeconds();return sr?(Et=qt(ie/60),ri=qt(Et/60),ie%=60,Et%=60,Fi=qt(ot/12),ot%=12,pn=ie?ie.toFixed(3).replace(/\.?0+$/,""):"",kr=sr<0?"-":"",Fo=tA(this._months)!==tA(sr)?"-":"",gl=tA(this._days)!==tA(sr)?"-":"",Fc=tA(this._milliseconds)!==tA(sr)?"-":"",kr+"P"+(Fi?Fo+Fi+"Y":"")+(ot?Fo+ot+"M":"")+(xe?gl+xe+"D":"")+(ri||Et||ie?"T":"")+(ri?Fc+ri+"H":"")+(Et?Fc+Et+"M":"")+(ie?Fc+pn+"S":"")):"P0D"}var Oo=ia.prototype;return Oo.isValid=function Pl(){return this._isValid},Oo.abs=function xa(){var ie=this._data;return this._milliseconds=No(this._milliseconds),this._days=No(this._days),this._months=No(this._months),ie.milliseconds=No(ie.milliseconds),ie.seconds=No(ie.seconds),ie.minutes=No(ie.minutes),ie.hours=No(ie.hours),ie.months=No(ie.months),ie.years=No(ie.years),this},Oo.add=function sl(ie,xe){return hA(this,ie,xe,1)},Oo.subtract=function pl(ie,xe){return hA(this,ie,xe,-1)},Oo.as=function yo(ie){if(!this.isValid())return NaN;var xe,ot,Et=this._milliseconds;if("month"===(ie=et(ie))||"quarter"===ie||"year"===ie)switch(xe=this._days+Et/864e5,ot=this._months+OA(xe),ie){case"month":return ot;case"quarter":return ot/3;case"year":return ot/12}else switch(xe=this._days+Math.round(Wr(this._months)),ie){case"week":return xe/7+Et/6048e5;case"day":return xe+Et/864e5;case"hour":return 24*xe+Et/36e5;case"minute":return 1440*xe+Et/6e4;case"second":return 86400*xe+Et/1e3;case"millisecond":return Math.floor(864e5*xe)+Et;default:throw new Error("Unknown unit "+ie)}},Oo.asMilliseconds=eA,Oo.asSeconds=On,Oo.asMinutes=Sn,Oo.asHours=Ya,Oo.asDays=mc,Oo.asWeeks=hd,Oo.asMonths=Na,Oo.asQuarters=El,Oo.asYears=pd,Oo.valueOf=Za,Oo._bubble=function Zr(){var ri,Fi,pn,sr,kr,ie=this._milliseconds,xe=this._days,ot=this._months,Et=this._data;return ie>=0&&xe>=0&&ot>=0||ie<=0&&xe<=0&&ot<=0||(ie+=864e5*$c(Wr(ot)+xe),xe=0,ot=0),Et.milliseconds=ie%1e3,ri=qt(ie/1e3),Et.seconds=ri%60,Fi=qt(ri/60),Et.minutes=Fi%60,pn=qt(Fi/60),Et.hours=pn%24,xe+=qt(pn/24),ot+=kr=qt(OA(xe)),xe-=$c(Wr(kr)),sr=qt(ot/12),ot%=12,Et.days=xe,Et.months=ot,Et.years=sr,this},Oo.clone=function ku(){return ts(this)},Oo.get=function Qu(ie){return ie=et(ie),this.isValid()?this[ie+"s"]():NaN},Oo.milliseconds=VA,Oo.seconds=Hp,Oo.minutes=Kh,Oo.hours=gd,Oo.days=pA,Oo.weeks=function Pu(){return qt(this.days()/7)},Oo.months=Su,Oo.years=Vl,Oo.humanize=function Gp(ie,xe){if(!this.isValid())return this.localeData().invalidDate();var ri,Fi,ot=!1,Et=oc;return"object"==typeof ie&&(xe=ie,ie=!1),"boolean"==typeof ie&&(ot=ie),"object"==typeof xe&&(Et=Object.assign({},oc,xe),null!=xe.s&&null==xe.ss&&(Et.ss=xe.s-1)),Fi=function Fu(ie,xe,ot,Et){var ri=ts(ie).abs(),Fi=rc(ri.as("s")),pn=rc(ri.as("m")),sr=rc(ri.as("h")),kr=rc(ri.as("d")),Fo=rc(ri.as("M")),gl=rc(ri.as("w")),Fc=rc(ri.as("y")),_c=Fi<=ot.ss&&["s",Fi]||Fi0,_c[4]=Et,na.apply(null,_c)}(this,!ot,Et,ri=this.localeData()),ot&&(Fi=ri.pastFuture(+this,Fi)),ri.postformat(Fi)},Oo.toISOString=gA,Oo.toString=gA,Oo.toJSON=gA,Oo.locale=pa,Oo.localeData=U,Oo.toIsoString=G("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",gA),Oo.lang=w,ye("X",0,0,"unix"),ye("x",0,0,"valueOf"),Kt("x",Qi),Kt("X",/[+-]?\d+(\.\d{1,3})?/),Ut("X",function(ie,xe,ot){ot._d=new Date(1e3*parseFloat(ie))}),Ut("x",function(ie,xe,ot){ot._d=new Date(tt(ie))}),K.version="2.30.1",function T(ie){V=ie}(Sa),K.fn=En,K.min=function od(){return bs("isBefore",[].slice.call(arguments,0))},K.max=function Tc(){return bs("isAfter",[].slice.call(arguments,0))},K.now=function(){return Date.now?Date.now():+new Date},K.utc=D,K.unix=function dA(ie){return Sa(1e3*ie)},K.months=function Xc(ie,xe){return hh(ie,xe,"months")},K.isDate=b,K.locale=Ur,K.invalid=d,K.duration=ts,K.isMoment=Z,K.weekdays=function Wh(ie,xe,ot){return ph(ie,xe,ot,"weekdays")},K.parseZone=function jA(){return Sa.apply(null,arguments).parseZone()},K.localeData=Io,K.isDuration=An,K.monthsShort=function Iu(ie,xe){return hh(ie,xe,"monthsShort")},K.weekdaysMin=function Yo(ie,xe,ot){return ph(ie,xe,ot,"weekdaysMin")},K.defineLocale=Tr,K.updateLocale=function Ln(ie,xe){if(null!=xe){var ot,Et,ri=an;null!=Ui[ie]&&null!=Ui[ie].parentLocale?Ui[ie].set(j(Ui[ie]._config,xe)):(null!=(Et=$n(ie))&&(ri=Et._config),xe=j(ri,xe),null==Et&&(xe.abbr=ie),(ot=new re(xe)).parentLocale=Ui[ie],Ui[ie]=ot),Ur(ie)}else null!=Ui[ie]&&(null!=Ui[ie].parentLocale?(Ui[ie]=Ui[ie].parentLocale,ie===Ur()&&Ur(ie)):null!=Ui[ie]&&delete Ui[ie]);return Ui[ie]},K.locales=function ko(){return he(Ui)},K.weekdaysShort=function hl(ie,xe,ot){return ph(ie,xe,ot,"weekdaysShort")},K.normalizeUnits=et,K.relativeTimeRounding=function gh(ie){return void 0===ie?rc:"function"==typeof ie&&(rc=ie,!0)},K.relativeTimeThreshold=function Ks(ie,xe){return void 0!==oc[ie]&&(void 0===xe?oc[ie]:(oc[ie]=xe,"s"===ie&&(oc.ss=xe-1),!0))},K.calendarFormat=function wi(ie,xe){var ot=ie.diff(xe,"days",!0);return ot<-6?"sameElse":ot<-1?"lastWeek":ot<0?"lastDay":ot<1?"sameDay":ot<2?"nextDay":ot<7?"nextWeek":"sameElse"},K.prototype=En,K.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},K}()},1549:(ni,Pt,ce)=>{"use strict";var V=ce(1471),K=ce(9685),T=ce(3101),e=ce(1160),l=ce(1605),v=l(),h=l(!0),f=ce(3357),_=ce(721),b=ce(8577);function k(H,G){var W=(G=G||{}).controller;if(W||(_.canAttach(H)?W=_(H,G):b.canAttach(H)&&(W=b(H,G))),!W)throw new Error("Cannot create panzoom for the current type of dom element");var te=W.getOwner(),P={x:0,y:0},J=!1,j=new f;W.initTransform&&W.initTransform(j);var re="function"==typeof G.filterKey?G.filterKey:d,he="number"==typeof G.pinchSpeed?G.pinchSpeed:1,oe=G.bounds,Ce="number"==typeof G.maxZoom?G.maxZoom:Number.POSITIVE_INFINITY,me="number"==typeof G.minZoom?G.minZoom:0,ze="number"==typeof G.boundsPadding?G.boundsPadding:.05,_e="number"==typeof G.zoomDoubleClickSpeed?G.zoomDoubleClickSpeed:1.75,Ae=G.beforeWheel||d,ve=G.beforeMouseDown||d,ye="number"==typeof G.zoomSpeed?G.zoomSpeed:1,Oe=Q(G.transformOrigin),ae=G.enableTextSelection?h:v;(function S(H){var G=typeof H;if("undefined"!==G&&"boolean"!==G&&!(R(H.left)&&R(H.top)&&R(H.bottom)&&R(H.right)))throw new Error("Bounds object is not valid. It can be: undefined, boolean (true|false) or an object {left, top, right, bottom}")})(oe),G.autocenter&&function Zi(){var Ci,Vi,nn=0,Cn=0,Oi=tt();if(Oi)nn=Oi.left,Cn=Oi.top,Ci=Oi.right-Oi.left,Vi=Oi.bottom-Oi.top;else{var $i=te.getBoundingClientRect();Ci=$i.width,Vi=$i.height}var In=W.getBBox();if(0!==In.width&&0!==In.height){var fr=Math.min(Ci/In.width,Vi/In.height);j.x=-(In.left+In.width/2)*fr+Ci/2+nn,j.y=-(In.top+In.height/2)*fr+Vi/2+Cn,j.scale=fr}}();var Ee,He,Ke,_t,Nt,ut,et,Xe,Fe=0,Ve=0,mt=0,St=null,oi=new Date,be=!1,je=!1;Xe="smoothScroll"in G&&!G.smoothScroll?function q(){return{start:d,stop:d,cancel:d}}():e(function on(){return{x:j.x,y:j.y}},function Pn(Ci,Vi){li(),Ge(Ci,Vi)},G.smoothScroll);var It,Dt,vt,Qt=!1;ui();var qe={dispose:function mn(){di()},moveBy:fn,moveTo:Ge,smoothMoveTo:function or(Ci,Vi){fn(Ci-j.x,Vi-j.y,!0)},centerOn:function Ji(Ci){var Vi=Ci.ownerSVGElement;if(!Vi)throw new Error("ui element is required to be within the scene");var nn=Ci.getBoundingClientRect(),Cn=nn.left+nn.width/2,Oi=nn.top+nn.height/2,$i=Vi.getBoundingClientRect();fn($i.width/2-Cn,$i.height/2-Oi,!0)},zoomTo:xt,zoomAbs:ln,smoothZoom:ue,smoothZoomAbs:function Me(Ci,Vi,nn){var Oi={scale:j.scale},$i={scale:nn};Xe.cancel(),li(),Dt=K(Oi,$i,{step:function(In){ln(Ci,Vi,In.scale)}})},showRectangle:function zt(Ci){var Vi=te.getBoundingClientRect(),nn=mi(Vi.width,Vi.height),Cn=Ci.right-Ci.left,Oi=Ci.bottom-Ci.top;if(!Number.isFinite(Cn)||!Number.isFinite(Oi))throw new Error("Invalid rectangle");var jn=Math.min(nn.x/Cn,nn.y/Oi);j.x=-(Ci.left+Cn/2)*jn+nn.x/2,j.y=-(Ci.top+Oi/2)*jn+nn.y/2,j.scale=jn},pause:function ai(){di(),Qt=!0},resume:function Rt(){Qt&&(ui(),Qt=!1)},isPaused:function Gt(){return Qt},getTransform:function Qi(){return j},getMinZoom:function Ht(){return me},setMinZoom:function dt(Ci){me=Ci},getMaxZoom:function ge(){return Ce},setMaxZoom:function Se(Ci){Ce=Ci},getTransformOrigin:function ct(){return Oe},setTransformOrigin:function Zt(Ci){Oe=Q(Ci)},getZoomSpeed:function rt(){return ye},setZoomSpeed:function Kt(Ci){if(!Number.isFinite(Ci))throw new Error("Zoom speed should be a number");ye=Ci}};T(qe);var ke="number"==typeof G.initialX?G.initialX:j.x,it="number"==typeof G.initialY?G.initialY:j.y,gt="number"==typeof G.initialZoom?G.initialZoom:j.scale;return(ke!=j.x||it!=j.y||gt!=j.scale)&&ln(ke,it,gt),qe;function mi(Ci,Vi){if(W.getScreenCTM){var nn=W.getScreenCTM(),Oi=nn.d,In=nn.f;P.x=Ci*nn.a-nn.e,P.y=Vi*Oi-In}else P.x=Ci,P.y=Vi;return P}function Ge(Ci,Vi){j.x=Ci,j.y=Vi,qt(),hn("pan"),Si()}function _i(Ci,Vi){Ge(j.x+Ci,j.y+Vi)}function qt(){var Ci=tt();if(Ci){var Vi=!1,nn=function Bt(){var Ci=W.getBBox(),Vi=function Ut(Ci,Vi){return{x:Ci*j.scale+j.x,y:Vi*j.scale+j.y}}(Ci.left,Ci.top);return{left:Vi.x,top:Vi.y,right:Ci.width*j.scale+Vi.x,bottom:Ci.height*j.scale+Vi.y}}(),Cn=Ci.left-nn.right;return Cn>0&&(j.x+=Cn,Vi=!0),(Cn=Ci.right-nn.left)<0&&(j.x+=Cn,Vi=!0),(Cn=Ci.top-nn.bottom)>0&&(j.y+=Cn,Vi=!0),(Cn=Ci.bottom-nn.top)<0&&(j.y+=Cn,Vi=!0),Vi}}function tt(){if(oe){if("boolean"==typeof oe){var Ci=te.getBoundingClientRect(),Vi=Ci.width,nn=Ci.height;return{left:Vi*ze,top:nn*ze,right:Vi*(1-ze),bottom:nn*(1-ze)}}return oe}}function Si(){J=!0,Ee=window.requestAnimationFrame(xi)}function Ti(Ci,Vi,nn){if(z(Ci)||z(Vi)||z(nn))throw new Error("zoom requires valid numbers");var Cn=j.scale*nn;if(CnCe){if(j.scale===Ce)return;nn=Ce/j.scale}var Oi=mi(Ci,Vi);j.x=Oi.x-nn*(Oi.x-j.x),j.y=Oi.y-nn*(Oi.y-j.y),oe&&1===ze&&1===me?(j.scale*=nn,qt()):qt()||(j.scale*=nn),hn("zoom"),Si()}function ln(Ci,Vi,nn){Ti(Ci,Vi,nn/j.scale)}function fn(Ci,Vi,nn){if(!nn)return _i(Ci,Vi);It&&It.cancel();var $i=0,In=0;It=K({x:0,y:0},{x:Ci,y:Vi},{step:function(jn){_i(jn.x-$i,jn.y-In),$i=jn.x,In=jn.y}})}function ui(){te.addEventListener("mousedown",wo,{passive:!1}),te.addEventListener("dblclick",ar,{passive:!1}),te.addEventListener("touchstart",wn,{passive:!1}),te.addEventListener("keydown",ji,{passive:!1}),V.addWheelListener(te,Le,{passive:!1}),Si()}function di(){V.removeWheelListener(te,Le),te.removeEventListener("mousedown",wo),te.removeEventListener("keydown",ji),te.removeEventListener("dblclick",ar),te.removeEventListener("touchstart",wn),Ee&&(window.cancelAnimationFrame(Ee),Ee=0),Xe.cancel(),Ai(),Vt(),ae.release(),gi()}function xi(){J&&function sn(){J=!1,W.applyTransform(j),hn("transform"),Ee=0}()}function ji(Ci){var Vi=0,nn=0,Cn=0;if(38===Ci.keyCode?nn=1:40===Ci.keyCode?nn=-1:37===Ci.keyCode?Vi=1:39===Ci.keyCode?Vi=-1:189===Ci.keyCode||109===Ci.keyCode?Cn=1:(187===Ci.keyCode||107===Ci.keyCode)&&(Cn=-1),!re(Ci,Vi,nn,Cn)){if(Vi||nn){Ci.preventDefault(),Ci.stopPropagation();var Oi=te.getBoundingClientRect();fn(.05*($i=Math.min(Oi.width,Oi.height))*Vi,.05*$i*nn)}if(Cn){var fr=$t(100*Cn),$i=Oe?lt():function Qn(){var Ci=te.getBoundingClientRect();return{x:Ci.width/2,y:Ci.height/2}}();xt($i.x,$i.y,fr)}}}function wn(Ci){if(function gr(Ci){G.onTouch&&!G.onTouch(Ci)||(Ci.stopPropagation(),Ci.preventDefault())}(Ci),Fn(),1===Ci.touches.length)return function Hr(Ci){Ve=new Date;var nn=Pe(Ci.touches[0]);He=nn;var Cn=mi(nn.x,nn.y);Nt=Ke=Cn.x,ut=_t=Cn.y,Xe.cancel(),Xo()}(Ci);2===Ci.touches.length&&(et=Or(Ci.touches[0],Ci.touches[1]),vt=!0,Xo())}function Xo(){be||(be=!0,document.addEventListener("touchmove",qr),document.addEventListener("touchend",ro),document.addEventListener("touchcancel",ro))}function qr(Ci){if(1===Ci.touches.length){Ci.stopPropagation();var Cn=mi((nn=Pe(Ci.touches[0])).x,nn.y),Oi=Cn.x-Ke,$i=Cn.y-_t;0!==Oi&&0!==$i&&Ei(),Ke=Cn.x,_t=Cn.y,fn(Oi,$i)}else if(2===Ci.touches.length){vt=!0;var In=Ci.touches[0],jn=Ci.touches[1],qn=Or(In,jn),fr=1+(qn/et-1)*he,Gr=Pe(In),br=Pe(jn);if(Ke=(Gr.x+br.x)/2,_t=(Gr.y+br.y)/2,Oe){var nn=lt();Ke=nn.x,_t=nn.y}xt(Ke,_t,fr),et=qn,Ci.stopPropagation(),Ci.preventDefault()}}function Fn(){mt&&(clearTimeout(mt),mt=0)}function Wn(Ci){if(G.onClick){Fn();var Vi=Ke-Nt,nn=_t-ut;Math.sqrt(Vi*Vi+nn*nn)>5||(mt=setTimeout(function(){mt=0,G.onClick(Ci)},300))}}function ro(Ci){if(Fn(),Ci.touches.length>0){var nn=mi((Vi=Pe(Ci.touches[0])).x,Vi.y);Ke=nn.x,_t=nn.y}else{var Cn=new Date;if(Cn-Fe<300)if(Oe){var Vi;ue((Vi=lt()).x,Vi.y,_e)}else ue(He.x,He.y,_e);else Cn-Ve<200&&Wn(Ci);Fe=Cn,gi(),Vt()}}function Or(Ci,Vi){var nn=Ci.clientX-Vi.clientX,Cn=Ci.clientY-Vi.clientY;return Math.sqrt(nn*nn+Cn*Cn)}function ar(Ci){!function xn(Ci){Fn(),(!G.onDoubleClick||G.onDoubleClick(Ci))&&(Ci.preventDefault(),Ci.stopPropagation())}(Ci);var Vi=Pe(Ci);Oe&&(Vi=lt()),ue(Vi.x,Vi.y,_e)}function wo(Ci){if(Fn(),!ve(Ci)){if(St=Ci,oi=new Date,be)return Ci.stopPropagation(),!1;if(1===Ci.button&&null!==window.event||0===Ci.button){Xe.cancel();var nn=Pe(Ci),Cn=mi(nn.x,nn.y);return Nt=Ke=Cn.x,ut=_t=Cn.y,document.addEventListener("mousemove",Jt),document.addEventListener("mouseup",ci),ae.capture(Ci.target||Ci.srcElement),!1}}}function Jt(Ci){if(!be){Ei();var Vi=Pe(Ci),nn=mi(Vi.x,Vi.y),Cn=nn.x-Ke,Oi=nn.y-_t;Ke=nn.x,_t=nn.y,fn(Cn,Oi)}}function ci(){new Date-oi<200&&Wn(St),ae.release(),gi(),Ai()}function Ai(){document.removeEventListener("mousemove",Jt),document.removeEventListener("mouseup",ci),je=!1}function Vt(){document.removeEventListener("touchmove",qr),document.removeEventListener("touchend",ro),document.removeEventListener("touchcancel",ro),je=!1,vt=!1,be=!1}function Le(Ci){if(!Ae(Ci)){Xe.cancel();var Vi=Ci.deltaY;Ci.deltaMode>0&&(Vi*=100);var nn=$t(Vi);if(1!==nn){var Cn=Oe?lt():Pe(Ci);xt(Cn.x,Cn.y,nn),Ci.preventDefault()}}}function Pe(Ci){var Cn=te.getBoundingClientRect();return{x:Ci.clientX-Cn.left,y:Ci.clientY-Cn.top}}function ue(Ci,Vi,nn){var Cn=j.scale,Oi={scale:Cn},$i={scale:nn*Cn};Xe.cancel(),li(),Dt=K(Oi,$i,{step:function(In){ln(Ci,Vi,In.scale)},done:Gi})}function lt(){var Ci=te.getBoundingClientRect();return{x:Ci.width*Oe.x,y:Ci.height*Oe.y}}function xt(Ci,Vi,nn){return Xe.cancel(),li(),Ti(Ci,Vi,nn)}function li(){Dt&&(Dt.cancel(),Dt=null)}function $t(Ci){return 1-Math.sign(Ci)*Math.min(.25,Math.abs(ye*Ci/128))}function Ei(){je||(hn("panstart"),je=!0,Xe.start())}function gi(){je&&(vt||Xe.stop(),hn("panend"))}function Gi(){hn("zoomend")}function hn(Ci){qe.fire(Ci,qe)}}function Q(H){if(H){if("object"==typeof H)return(!R(H.x)||!R(H.y))&&I(H),H;I()}}function I(H){throw console.error(H),new Error(["Cannot parse transform origin.","Some good examples:",' "center center" can be achieved with {x: 0.5, y: 0.5}',' "top center" can be achieved with {x: 0.5, y: 0}',' "bottom right" can be achieved with {x: 1, y: 1}'].join("\n"))}function d(){}function R(H){return Number.isFinite(H)}function z(H){return Number.isNaN?Number.isNaN(H):H!=H}ni.exports=k,function Z(){if(!(typeof document>"u")){var H=document.getElementsByTagName("script");if(H){for(var G,W=0;W{function ce(K){return K.stopPropagation(),!1}function V(){}ni.exports=function Pt(K){if(K)return{capture:V,release:V};var T,e,l,v=!1;return{capture:function h(_){v=!0,e=window.document.onselectstart,l=window.document.ondragstart,window.document.onselectstart=ce,(T=_).ondragstart=ce},release:function f(){v&&(v=!1,window.document.onselectstart=e,T&&(T.ondragstart=l))}}}},8577:ni=>{function ce(V){return V&&V.parentElement&&V.style}ni.exports=function Pt(V,K){if(!ce(V))throw new Error("panzoom requires DOM element to be attached to the DOM tree");var e=V.parentElement;return V.scrollTop=0,K.disableKeyboardInteraction||e.setAttribute("tabindex",0),{getBBox:function h(){return{left:0,top:0,width:V.clientWidth,height:V.clientHeight}},getOwner:function v(){return e},applyTransform:function f(_){V.style.transformOrigin="0 0 0",V.style.transform="matrix("+_.scale+", 0, 0, "+_.scale+", "+_.x+", "+_.y+")"}}},ni.exports.canAttach=ce},1160:ni=>{ni.exports=function Pt(K,T,e){"object"!=typeof e&&(e={});var _,b,M,D,x,k,Q,I,d,S,l="number"==typeof e.minVelocity?e.minVelocity:5,v="number"==typeof e.amplitude?e.amplitude:.25,h="function"==typeof e.cancelAnimationFrame?e.cancelAnimationFrame:function ce(){return"function"==typeof cancelAnimationFrame?cancelAnimationFrame:clearTimeout}(),f="function"==typeof e.requestAnimationFrame?e.requestAnimationFrame:function V(){return"function"==typeof requestAnimationFrame?requestAnimationFrame:function(K){return setTimeout(K,16)}}();return{start:function z(){_=K(),k=d=D=Q=0,b=new Date,h(M),h(S),M=f(q)},stop:function Z(){h(M),h(S);var G=K();x=G.x,I=G.y,b=Date.now(),(D<-l||D>l)&&(x+=k=v*D),(Q<-l||Q>l)&&(I+=d=v*Q),S=f(H)},cancel:function R(){h(M),h(S)}};function q(){var G=Date.now(),W=G-b;b=G;var te=K(),P=te.x-_.x,J=te.y-_.y;_=te;var j=1e3/(1+W);D=.8*P*j+.2*D,Q=.8*J*j+.2*Q,M=f(q)}function H(){var G=Date.now()-b,W=!1,te=0,P=0;k&&((te=-k*Math.exp(-G/342))>.5||te<-.5?W=!0:te=k=0),d&&((P=-d*Math.exp(-G/342))>.5||P<-.5?W=!0:P=d=0),W&&(T(x+te,I+P),S=f(H))}}},721:ni=>{function ce(V){return V&&V.ownerSVGElement&&V.getCTM}ni.exports=function Pt(V,K){if(!ce(V))throw new Error("svg element is required for svg.panzoom to work");var T=V.ownerSVGElement;if(!T)throw new Error("Do not apply panzoom to the root element. Use its child instead (e.g. ). As of March 2016 only FireFox supported transform on the root element");return K.disableKeyboardInteraction||T.setAttribute("tabindex",0),{getBBox:function v(){var b=V.getBBox();return{left:b.x,top:b.y,width:b.width,height:b.height}},getScreenCTM:function h(){return T.getCTM()||T.getScreenCTM()},getOwner:function l(){return T},applyTransform:function _(b){V.setAttribute("transform","matrix("+b.scale+" 0 0 "+b.scale+" "+b.x+" "+b.y+")")},initTransform:function f(b){var y=V.getCTM();null===y&&(y=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix()),b.x=y.e,b.y=y.f,b.scale=y.a,T.removeAttributeNS(null,"viewBox")}}},ni.exports.canAttach=ce},3357:ni=>{ni.exports=function Pt(){this.x=0,this.y=0,this.scale=1}},7069:function(ni){typeof self<"u"&&self,ni.exports=function(){var Pt={464:function(T,e,l){var v=l(63432),h=l(55480);(T.exports=function(f,_){return h[f]||(h[f]=void 0!==_?_:{})})("versions",[]).push({version:"3.19.0",mode:v?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},520:function(T,e,l){var v=l(38486);T.exports=v("document","documentElement")},664:function(T,e,l){var v=l(40715);T.exports=/web0s(?!.*chrome)/i.test(v)},1083:function(T,e,l){l(71768)},1239:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),function(h){var f=v,_=f.lib,b=_.WordArray,y=_.Hasher,M=f.algo,D=b.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),x=b.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),k=b.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),Q=b.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),I=b.create([0,1518500249,1859775393,2400959708,2840853838]),d=b.create([1352829926,1548603684,1836072691,2053994217,0]),S=M.RIPEMD160=y.extend({_doReset:function(){this._hash=b.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(te,P){for(var J=0;J<16;J++){var j=P+J,re=te[j];te[j]=16711935&(re<<8|re>>>24)|4278255360&(re<<24|re>>>8)}var ve,ye,Oe,ae,Ee,Fe,Ve,mt,St,oi,He,he=this._hash.words,oe=I.words,Ce=d.words,me=D.words,ze=x.words,_e=k.words,Ae=Q.words;for(Fe=ve=he[0],Ve=ye=he[1],mt=Oe=he[2],St=ae=he[3],oi=Ee=he[4],J=0;J<80;J+=1)He=ve+te[P+me[J]]|0,He+=J<16?R(ye,Oe,ae)+oe[0]:J<32?z(ye,Oe,ae)+oe[1]:J<48?q(ye,Oe,ae)+oe[2]:J<64?Z(ye,Oe,ae)+oe[3]:H(ye,Oe,ae)+oe[4],He=(He=G(He|=0,_e[J]))+Ee|0,ve=Ee,Ee=ae,ae=G(Oe,10),Oe=ye,ye=He,He=Fe+te[P+ze[J]]|0,He+=J<16?H(Ve,mt,St)+Ce[0]:J<32?Z(Ve,mt,St)+Ce[1]:J<48?q(Ve,mt,St)+Ce[2]:J<64?z(Ve,mt,St)+Ce[3]:R(Ve,mt,St)+Ce[4],He=(He=G(He|=0,Ae[J]))+oi|0,Fe=oi,oi=St,St=G(mt,10),mt=Ve,Ve=He;He=he[1]+Oe+St|0,he[1]=he[2]+ae+oi|0,he[2]=he[3]+Ee+Fe|0,he[3]=he[4]+ve+Ve|0,he[4]=he[0]+ye+mt|0,he[0]=He},_doFinalize:function(){var te=this._data,P=te.words,J=8*this._nDataBytes,j=8*te.sigBytes;P[j>>>5]|=128<<24-j%32,P[14+(j+64>>>9<<4)]=16711935&(J<<8|J>>>24)|4278255360&(J<<24|J>>>8),te.sigBytes=4*(P.length+1),this._process();for(var re=this._hash,he=re.words,oe=0;oe<5;oe++){var Ce=he[oe];he[oe]=16711935&(Ce<<8|Ce>>>24)|4278255360&(Ce<<24|Ce>>>8)}return re},clone:function(){var te=y.clone.call(this);return te._hash=this._hash.clone(),te}});function R(W,te,P){return W^te^P}function z(W,te,P){return W&te|~W&P}function q(W,te,P){return(W|~te)^P}function Z(W,te,P){return W&P|te&~P}function H(W,te,P){return W^(te|~P)}function G(W,te){return W<>>32-te}f.RIPEMD160=y._createHelper(S),f.HmacRIPEMD160=y._createHmacHelper(S)}(Math),v.RIPEMD160)},1593:function(T,e,l){"use strict";var v=l(56475),h=l(32010),f=l(2834),_=l(38347),b=l(83943),y=l(94578),M=l(28831),D=l(25096),x=l(51839),k=l(21182),Q=l(29519),I=l(38688),d=l(63432),S=I("replace"),R=RegExp.prototype,z=h.TypeError,q=_(k),Z=_("".indexOf),H=_("".replace),G=_("".slice),W=Math.max,te=function(P,J,j){return j>P.length?-1:""===J?j:Z(P,J,j)};v({target:"String",proto:!0},{replaceAll:function(J,j){var he,oe,Ce,me,ze,_e,Ae,ve,ye,re=b(this),Oe=0,ae=0,Ee="";if(null!=J){if((he=M(J))&&(oe=D(b("flags"in R?J.flags:q(J))),!~Z(oe,"g")))throw z("`.replaceAll` does not allow non-global regexes");if(Ce=x(J,S))return f(Ce,J,re,j);if(d&&he)return H(D(re),J,j)}for(me=D(re),ze=D(J),(_e=y(j))||(j=D(j)),ve=W(1,Ae=ze.length),Oe=te(me,ze,0);-1!==Oe;)ye=_e?D(j(ze,Oe,me)):Q(ze,me,Oe,[],void 0,j),Ee+=G(me,ae,Oe)+ye,ae=Oe+Ae,Oe=te(me,ze,Oe+ve);return ae>>8&16711935}b.Utf16=b.Utf16BE={stringify:function(x){for(var k=x.words,Q=x.sigBytes,I=[],d=0;d>>2]>>>16-d%4*8&65535));return I.join("")},parse:function(x){for(var k=x.length,Q=[],I=0;I>>1]|=x.charCodeAt(I)<<16-I%2*16;return _.create(Q,2*k)}},b.Utf16LE={stringify:function(x){for(var k=x.words,Q=x.sigBytes,I=[],d=0;d>>2]>>>16-d%4*8&65535);I.push(String.fromCharCode(S))}return I.join("")},parse:function(x){for(var k=x.length,Q=[],I=0;I>>1]|=M(x.charCodeAt(I)<<16-I%2*16);return _.create(Q,2*k)}}}(),v.enc.Utf16)},2269:function(T,e,l){"use strict";var v=l(72519),h=l(46911),f=l(99049),_=l(96395),b=l(92920),M=1,D=2,I=0,R=-2,G=1,Xe=852,It=592;function Qt(ct){return(ct>>>24&255)+(ct>>>8&65280)+((65280&ct)<<8)+((255&ct)<<24)}function qe(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new v.Buf16(320),this.work=new v.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ke(ct){var Zt;return ct&&ct.state?(ct.total_in=ct.total_out=(Zt=ct.state).total=0,ct.msg="",Zt.wrap&&(ct.adler=1&Zt.wrap),Zt.mode=G,Zt.last=0,Zt.havedict=0,Zt.dmax=32768,Zt.head=null,Zt.hold=0,Zt.bits=0,Zt.lencode=Zt.lendyn=new v.Buf32(Xe),Zt.distcode=Zt.distdyn=new v.Buf32(It),Zt.sane=1,Zt.back=-1,I):R}function it(ct){var Zt;return ct&&ct.state?((Zt=ct.state).wsize=0,Zt.whave=0,Zt.wnext=0,ke(ct)):R}function gt(ct,Zt){var rt,Kt;return!ct||!ct.state||(Kt=ct.state,Zt<0?(rt=0,Zt=-Zt):(rt=1+(Zt>>4),Zt<48&&(Zt&=15)),Zt&&(Zt<8||Zt>15))?R:(null!==Kt.window&&Kt.wbits!==Zt&&(Kt.window=null),Kt.wrap=rt,Kt.wbits=Zt,it(ct))}function ai(ct,Zt){var rt,Kt;return ct?(Kt=new qe,ct.state=Kt,Kt.window=null,(rt=gt(ct,Zt))!==I&&(ct.state=null),rt):R}var zt,mi,Gt=!0;function Zi(ct){if(Gt){var Zt;for(zt=new v.Buf32(512),mi=new v.Buf32(32),Zt=0;Zt<144;)ct.lens[Zt++]=8;for(;Zt<256;)ct.lens[Zt++]=9;for(;Zt<280;)ct.lens[Zt++]=7;for(;Zt<288;)ct.lens[Zt++]=8;for(b(M,ct.lens,0,288,zt,0,ct.work,{bits:9}),Zt=0;Zt<32;)ct.lens[Zt++]=5;b(D,ct.lens,0,32,mi,0,ct.work,{bits:5}),Gt=!1}ct.lencode=zt,ct.lenbits=9,ct.distcode=mi,ct.distbits=5}function Qi(ct,Zt,rt,Kt){var on,Ge=ct.state;return null===Ge.window&&(Ge.wsize=1<=Ge.wsize?(v.arraySet(Ge.window,Zt,rt-Ge.wsize,Ge.wsize,0),Ge.wnext=0,Ge.whave=Ge.wsize):((on=Ge.wsize-Ge.wnext)>Kt&&(on=Kt),v.arraySet(Ge.window,Zt,rt-Kt,on,Ge.wnext),(Kt-=on)?(v.arraySet(Ge.window,Zt,rt-Kt,Kt,0),Ge.wnext=Kt,Ge.whave=Ge.wsize):(Ge.wnext+=on,Ge.wnext===Ge.wsize&&(Ge.wnext=0),Ge.whave>>8&255,rt.check=f(rt.check,wn,2,0),Bt=0,Ut=0,rt.mode=2;break}if(rt.flags=0,rt.head&&(rt.head.done=!1),!(1&rt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){ct.msg="incorrect header check",rt.mode=30;break}if(8!=(15&Bt)){ct.msg="unknown compression method",rt.mode=30;break}if(Ut-=4,ji=8+(15&(Bt>>>=4)),0===rt.wbits)rt.wbits=ji;else if(ji>rt.wbits){ct.msg="invalid window size",rt.mode=30;break}rt.dmax=1<>8&1),512&rt.flags&&(wn[0]=255&Bt,wn[1]=Bt>>>8&255,rt.check=f(rt.check,wn,2,0)),Bt=0,Ut=0,rt.mode=3;case 3:for(;Ut<32;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>8&255,wn[2]=Bt>>>16&255,wn[3]=Bt>>>24&255,rt.check=f(rt.check,wn,4,0)),Bt=0,Ut=0,rt.mode=4;case 4:for(;Ut<16;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>8),512&rt.flags&&(wn[0]=255&Bt,wn[1]=Bt>>>8&255,rt.check=f(rt.check,wn,2,0)),Bt=0,Ut=0,rt.mode=5;case 5:if(1024&rt.flags){for(;Ut<16;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>8&255,rt.check=f(rt.check,wn,2,0)),Bt=0,Ut=0}else rt.head&&(rt.head.extra=null);rt.mode=6;case 6:if(1024&rt.flags&&((ln=rt.length)>qt&&(ln=qt),ln&&(rt.head&&(ji=rt.head.extra_len-rt.length,rt.head.extra||(rt.head.extra=new Array(rt.head.extra_len)),v.arraySet(rt.head.extra,Kt,Ge,ln,ji)),512&rt.flags&&(rt.check=f(rt.check,Kt,ln,Ge)),qt-=ln,Ge+=ln,rt.length-=ln),rt.length))break e;rt.length=0,rt.mode=7;case 7:if(2048&rt.flags){if(0===qt)break e;ln=0;do{ji=Kt[Ge+ln++],rt.head&&ji&&rt.length<65536&&(rt.head.name+=String.fromCharCode(ji))}while(ji&&ln>9&1,rt.head.done=!0),ct.adler=rt.check=0,rt.mode=12;break;case 10:for(;Ut<32;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>=7&Ut,Ut-=7&Ut,rt.mode=27;break}for(;Ut<3;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>=1)){case 0:rt.mode=14;break;case 1:if(Zi(rt),rt.mode=20,6===Zt){Bt>>>=2,Ut-=2;break e}break;case 2:rt.mode=17;break;case 3:ct.msg="invalid block type",rt.mode=30}Bt>>>=2,Ut-=2;break;case 14:for(Bt>>>=7&Ut,Ut-=7&Ut;Ut<32;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>16^65535)){ct.msg="invalid stored block lengths",rt.mode=30;break}if(rt.length=65535&Bt,Bt=0,Ut=0,rt.mode=15,6===Zt)break e;case 15:rt.mode=16;case 16:if(ln=rt.length){if(ln>qt&&(ln=qt),ln>tt&&(ln=tt),0===ln)break e;v.arraySet(on,Kt,Ge,ln,_i),qt-=ln,Ge+=ln,tt-=ln,_i+=ln,rt.length-=ln;break}rt.mode=12;break;case 17:for(;Ut<14;){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>=5)),Ut-=5,rt.ncode=4+(15&(Bt>>>=5)),Bt>>>=4,Ut-=4,rt.nlen>286||rt.ndist>30){ct.msg="too many length or distance symbols",rt.mode=30;break}rt.have=0,rt.mode=18;case 18:for(;rt.have>>=3,Ut-=3}for(;rt.have<19;)rt.lens[Hr[rt.have++]]=0;if(rt.lencode=rt.lendyn,rt.lenbits=7,Qn=b(0,rt.lens,0,19,rt.lencode,0,rt.work,gr={bits:rt.lenbits}),rt.lenbits=gr.bits,Qn){ct.msg="invalid code lengths set",rt.mode=30;break}rt.have=0,rt.mode=19;case 19:for(;rt.have>>16&255,ui=65535&fn,!((Pn=fn>>>24)<=Ut);){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>=Pn,Ut-=Pn,rt.lens[rt.have++]=ui;else{if(16===ui){for(xn=Pn+2;Ut>>=Pn,Ut-=Pn,0===rt.have){ct.msg="invalid bit length repeat",rt.mode=30;break}ji=rt.lens[rt.have-1],ln=3+(3&Bt),Bt>>>=2,Ut-=2}else if(17===ui){for(xn=Pn+3;Ut>>=Pn)),Bt>>>=3,Ut-=3}else{for(xn=Pn+7;Ut>>=Pn)),Bt>>>=7,Ut-=7}if(rt.have+ln>rt.nlen+rt.ndist){ct.msg="invalid bit length repeat",rt.mode=30;break}for(;ln--;)rt.lens[rt.have++]=ji}}if(30===rt.mode)break;if(0===rt.lens[256]){ct.msg="invalid code -- missing end-of-block",rt.mode=30;break}if(rt.lenbits=9,Qn=b(M,rt.lens,0,rt.nlen,rt.lencode,0,rt.work,gr={bits:rt.lenbits}),rt.lenbits=gr.bits,Qn){ct.msg="invalid literal/lengths set",rt.mode=30;break}if(rt.distbits=6,rt.distcode=rt.distdyn,Qn=b(D,rt.lens,rt.nlen,rt.ndist,rt.distcode,0,rt.work,gr={bits:rt.distbits}),rt.distbits=gr.bits,Qn){ct.msg="invalid distances set",rt.mode=30;break}if(rt.mode=20,6===Zt)break e;case 20:rt.mode=21;case 21:if(qt>=6&&tt>=258){ct.next_out=_i,ct.avail_out=tt,ct.next_in=Ge,ct.avail_in=qt,rt.hold=Bt,rt.bits=Ut,_(ct,Ti),_i=ct.next_out,on=ct.output,tt=ct.avail_out,Ge=ct.next_in,Kt=ct.input,qt=ct.avail_in,Bt=rt.hold,Ut=rt.bits,12===rt.mode&&(rt.back=-1);break}for(rt.back=0;mn=(fn=rt.lencode[Bt&(1<>>16&255,ui=65535&fn,!((Pn=fn>>>24)<=Ut);){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>di)])>>>16&255,ui=65535&fn,!(di+(Pn=fn>>>24)<=Ut);){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>=di,Ut-=di,rt.back+=di}if(Bt>>>=Pn,Ut-=Pn,rt.back+=Pn,rt.length=ui,0===mn){rt.mode=26;break}if(32&mn){rt.back=-1,rt.mode=12;break}if(64&mn){ct.msg="invalid literal/length code",rt.mode=30;break}rt.extra=15&mn,rt.mode=22;case 22:if(rt.extra){for(xn=rt.extra;Ut>>=rt.extra,Ut-=rt.extra,rt.back+=rt.extra}rt.was=rt.length,rt.mode=23;case 23:for(;mn=(fn=rt.distcode[Bt&(1<>>16&255,ui=65535&fn,!((Pn=fn>>>24)<=Ut);){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>di)])>>>16&255,ui=65535&fn,!(di+(Pn=fn>>>24)<=Ut);){if(0===qt)break e;qt--,Bt+=Kt[Ge++]<>>=di,Ut-=di,rt.back+=di}if(Bt>>>=Pn,Ut-=Pn,rt.back+=Pn,64&mn){ct.msg="invalid distance code",rt.mode=30;break}rt.offset=ui,rt.extra=15&mn,rt.mode=24;case 24:if(rt.extra){for(xn=rt.extra;Ut>>=rt.extra,Ut-=rt.extra,rt.back+=rt.extra}if(rt.offset>rt.dmax){ct.msg="invalid distance too far back",rt.mode=30;break}rt.mode=25;case 25:if(0===tt)break e;if(rt.offset>(ln=Ti-tt)){if((ln=rt.offset-ln)>rt.whave&&rt.sane){ct.msg="invalid distance too far back",rt.mode=30;break}Ji=ln>rt.wnext?rt.wsize-(ln-=rt.wnext):rt.wnext-ln,ln>rt.length&&(ln=rt.length),or=rt.window}else or=on,Ji=_i-rt.offset,ln=rt.length;ln>tt&&(ln=tt),tt-=ln,rt.length-=ln;do{on[_i++]=or[Ji++]}while(--ln);0===rt.length&&(rt.mode=21);break;case 26:if(0===tt)break e;on[_i++]=rt.length,tt--,rt.mode=21;break;case 27:if(rt.wrap){for(;Ut<32;){if(0===qt)break e;qt--,Bt|=Kt[Ge++]<=0&&h.splice(f,1)}},e.prototype.emit=function(l){var v=Array.prototype.slice.call(arguments,1),h=this.events[l];h&&h.forEach(function(f){f.apply(this,v)})},e.prototype.auto=function(l,v,h){this.startTracking(l,v),h(),this.stopTracking(l,v)},T.exports=e},2416:function(T){T.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2644:function(T,e,l){var v=l(32010),h=l(2834),f=l(24517),_=l(46290),b=l(51839),y=l(39629),M=l(38688),D=v.TypeError,x=M("toPrimitive");T.exports=function(k,Q){if(!f(k)||_(k))return k;var d,I=b(k,x);if(I){if(void 0===Q&&(Q="default"),d=h(I,k,Q),!f(d)||_(d))return d;throw D("Can't convert object to primitive value")}return void 0===Q&&(Q="number"),y(k,Q)}},2675:function(T,e,l){var v=l(20340),h=l(21594),f=l(72062),_=l(95892);T.exports=function(b,y){for(var M=h(y),D=_.f,x=f.f,k=0;k1?arguments[1]:void 0)})},2868:function(T,e,l){var v=l(32010),h=l(70176),f=v.TypeError;T.exports=function(_,b){if(h(b,_))return _;throw f("Incorrect invocation")}},2876:function(T,e,l){l(56475)({target:"Number",stat:!0},{isInteger:l(17506)})},3131:function(T,e,l){l(98828)("Float32",function(h){return function(_,b,y){return h(this,_,b,y)}})},3157:function(T){T.exports="object"==typeof window},3483:function(T){var e=0,l=-3;function v(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function h(P,J){this.source=P,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=J,this.destLen=0,this.ltree=new v,this.dtree=new v}var f=new v,_=new v,b=new Uint8Array(30),y=new Uint16Array(30),M=new Uint8Array(30),D=new Uint16Array(30),x=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),k=new v,Q=new Uint8Array(320);function I(P,J,j,re){var he,oe;for(he=0;he>>=1,J}function q(P,J,j){if(!J)return j;for(;P.bitcount<24;)P.tag|=P.source[P.sourceIndex++]<>>16-J;return P.tag>>>=J,P.bitcount-=J,re+j}function Z(P,J){for(;P.bitcount<24;)P.tag|=P.source[P.sourceIndex++]<>>=1,++he,j+=J.table[he],re-=J.table[he]}while(re>=0);return P.tag=oe,P.bitcount-=he,J.trans[j+re]}function H(P,J,j){var re,he,oe,Ce,me,ze;for(re=q(P,5,257),he=q(P,5,1),oe=q(P,4,4),Ce=0;Ce<19;++Ce)Q[Ce]=0;for(Ce=0;Ce8;)P.sourceIndex--,P.bitcount-=8;if((J=256*(J=P.source[P.sourceIndex+1])+P.source[P.sourceIndex])!==(65535&~(256*P.source[P.sourceIndex+3]+P.source[P.sourceIndex+2])))return l;for(P.sourceIndex+=4,re=J;re;--re)P.dest[P.destLen++]=P.source[P.sourceIndex++];return P.bitcount=0,e}(function d(P,J){var j;for(j=0;j<7;++j)P.table[j]=0;for(P.table[7]=24,P.table[8]=152,P.table[9]=112,j=0;j<24;++j)P.trans[j]=256+j;for(j=0;j<144;++j)P.trans[24+j]=j;for(j=0;j<8;++j)P.trans[168+j]=280+j;for(j=0;j<112;++j)P.trans[176+j]=144+j;for(j=0;j<5;++j)J.table[j]=0;for(J.table[5]=32,j=0;j<32;++j)J.trans[j]=j})(f,_),I(b,y,4,3),I(M,D,2,1),b[28]=0,y[28]=258,T.exports=function te(P,J){var re,oe,j=new h(P,J);do{switch(re=z(j),q(j,2,0)){case 0:oe=W(j);break;case 1:oe=G(j,f,_);break;case 2:H(j,j.ltree,j.dtree),oe=G(j,j.ltree,j.dtree);break;default:oe=l}if(oe!==e)throw new Error("Data error")}while(!re);return j.destLen"u"||"object"==typeof Z))try{var H=y.call(Z);return("[object HTMLAllCollection]"===H||"[object HTML document.all class]"===H||"[object HTMLCollection]"===H||"[object Object]"===H)&&null==Z("")}catch{}return!1})}T.exports=l?function(Z){if(R(Z))return!0;if(!Z||"function"!=typeof Z&&"object"!=typeof Z)return!1;try{l(Z,null,v)}catch(H){if(H!==h)return!1}return!_(Z)&&b(Z)}:function(Z){if(R(Z))return!0;if(!Z||"function"!=typeof Z&&"object"!=typeof Z)return!1;if(d)return b(Z);if(_(Z))return!1;var H=y.call(Z);return!("[object Function]"!==H&&"[object GeneratorFunction]"!==H&&!/^\[object HTML/.test(H))&&b(Z)}},3774:function(T){"use strict";T.exports=Math.max},3809:function(T,e,l){var h=l(40715).match(/firefox\/(\d+)/i);T.exports=!!h&&+h[1]},3840:function(T,e,l){var v=l(38347),h=l(34984),f=l(58659);T.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var y,_=!1,b={};try{(y=v(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(b,[]),_=b instanceof Array}catch{}return function(D,x){return h(D),f(x),_?y(D,x):D.__proto__=x,D}}():void 0)},3858:function(T,e,l){"use strict";var v=l(59754),h=l(91102).some,f=v.aTypedArray;(0,v.exportTypedArrayMethod)("some",function(y){return h(f(this),y,arguments.length>1?arguments[1]:void 0)})},4420:function(T,e,l){"use strict";var v,y;l(39081),T.exports=(v=l(48352),y=v.enc.Utf8,void(v.algo.HMAC=v.lib.Base.extend({init:function(k,Q){k=this._hasher=new k.init,"string"==typeof Q&&(Q=y.parse(Q));var I=k.blockSize,d=4*I;Q.sigBytes>d&&(Q=k.finalize(Q)),Q.clamp();for(var S=this._oKey=Q.clone(),R=this._iKey=Q.clone(),z=S.words,q=R.words,Z=0;Z1?arguments[1]:void 0)})},5049:function(T,e,l){"use strict";var v=l(12719);T.exports=Function.prototype.bind||v},5155:function(T,e,l){var v=l(32010);T.exports=v.Promise},5303:function(T,e){"use strict";e.DI_BRK=0,e.IN_BRK=1,e.CI_BRK=2,e.CP_BRK=3,e.PR_BRK=4,e.pairTable=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]]},5417:function(T,e,l){"use strict";var v=l(59006),h=l(32504),f=l(84490),_=f.BK,b=f.CR,y=f.LF,M=f.NL,D=f.SG,x=f.WJ,k=f.SP,Q=f.ZWJ,I=f.BA,d=f.HY,S=f.NS,R=f.AI,z=f.AL,q=f.CJ,Z=f.HL,H=f.RI,G=f.SA,W=f.XX,te=l(5303),P=te.DI_BRK,J=te.IN_BRK,j=te.CI_BRK,re=te.CP_BRK,oe=te.pairTable,me=new v(h.toByteArray("AAgOAAAAAACA3QAAAe0OEvHtnXuMXUUdx+d2d2/33r237V3YSoFC11r6IGgbRFBEfFF5KCVCMYKFaKn8AYqmwUeqECFabUGQipUiNCkgSRElUkKwJRWtwSpJrZpCI4E2NQqiBsFGwWL8Tu6Md3Z23o9zbund5JM5c+b1m9/85nnOuXtTHyFrwXpwL9gBngTPgj+Dv4H9Ae4B0N9PSAMcDqaB0X57urmIs8AQ72SEnQ4+ABaBxWAJWAquENJ9BtdfANeCleBGcCv4NvgeuBv8AGwCm8FWlpbzOPw7wC7wFNgDngMvgpfAq2DCACF10ACHgaPAzIF2+PFwT2Th1P8OuO8FZ4MPggvAxWAp+A6VHe5ysILFvx7u6oF2+Wvg3g7uYvlT+TbC/TH4CdgCtoGtfW3/E2An8++Gu5eleR7uP8B+8BoLf4LFH6i23Vp1rB5a1Q7TGMeCUYYY18RcxF0gxT8H5b3dIw8X3iPkdxauPwQWgyVgWbVT30/h+mrwZan8r8L/FcEWVsJ/E1grpKXcwdLdI9y/H9cPgUerbbun0PadCHcbjQd+D55mafcx9y9wXwKvCLJUJiLdRH09ef4xupqE/KeCY8Bx4M3gbeBdYCE4G3wYXASWgGXgSibTcuaugHs9WA3WgNvBBha2Ee4D4GFNPTYL9x/D9XaJXwnXvwW7wDPgTzQd2A9eAwODhDTBCJgOZoETwEngtEFmF3DPAouY/0K4Swb9dbaMpbkS7nKP9CsCyrpOSrNK8K9kNnYL7q0DGwbb/XnjoDv3gQfBZvBz8GvwO/AHdr3Pkv4F4fplj3J79OgRBx8HypajR48ePXr06NGjx8HFv7pABhX/HRx7HqKjr9Y+y6PXg7X2WRoPm1Kzpz8CcWaweLPhHt/fPq95C65PZnmfDnchOLfWPo/7OLgQ15ewdJ+E++na2PMhyudw72bDGc01CP8aWAm+Dr4BVoHV4IZeWC+sF9YL64UlD1sD1oE7au0z0zK5p1YuZde/R49uJnYdez/62EPgkVr4c7pHkfYXivTbcW8n2A32gOekOH+F/5/gAOivE9IArXpbrmlwR+vljz9bJrV552RCvgQ2GXgRzJ9CyGVTxofdLd17Gv6jW4RcAG5ote/9FO4B8NZhQs4DN4O9kOFY6OFSsB48C/qGCFkAyERCzh9q+0WuA2sqHX4m+Smv4t6RjXYelItwvQ7sBtOahHwU3NYcn+5Q4pFmRz89evTocajxStM898/FfLSgrg8/sT5+zcLDTkXY+6S0C+E/l907SXO+Rt/Lujrxe1kmztPU70JDvSmXILwJWS9TxLuC3VtuycPGCoV+VfD41yvKW6W4d1O9/S5YtZ+Qtbi+k/m/D/eHYBPzb4G7DfyS+enZ42/qnXPFp+pjZdgD/yX0XcV6+93DF+H+G5AhtcxPIs/BoY5cg0g7RRGXx/8Ewo8Y6vhp/Bnwz2F5zId7CgunZ6Dv1uTF0585pNY7P9NdhPCPDI1Ncyn8l4OrwHKwguVB12WrNPnpoPW5BWluA3eCuxRl3cfyfFCom43NBjkeQ9h2Tzlzs7PL5CmD3UwHew26+KMm7AVHu8hJaL1fTtj29L3E/wi6oPvWvkY7bAjucKOYtpymKWdGo/3e5KxGR8YTGvmfZ4XW46RGmnMIG6excs6Ae46nPuh7pGXbvm/fOB91vLhRXvkmlkKuK8BnFTb8xYL6TyqugbzXJZCZ9tlVrO9+C+53G5134A8G1htsjdbvXoT/KEBPmwq04dS2v6UxNnxbAXV5gul4Z6J+tMtBZtv4+Qzy2Ndof+fwPHP/zsbg/QFz02tIM4B9ZRO0mp379NxxBpgD5gv3T8H16eAMcCZYxMIWw/2YEG8pri9n/qvgfr45fm67VtjPzmbpVrJ7NzL3VrjvF/Jdh+sN3M/cB+A+LOV/bVNdX13b0G9KtmrSHCo8jvqfGjFu7WiWP37E8s2+yv8ZwVbYRgvMAm9kvMkhjStzAZbIBGIR+ngAy2NSZ9f0Hv2bIIShCckU5k5sb+OdGGQ0BKqSPzeE1WFCgWXK5dO2rDD/COn9zTvEUfXJ4zT3c9DP2oH2+ZoAtc9RBr/mY0SLdGyap+Nxh6W0In2Sn5C8/W00c/7dXn63we1DtAHud9WZbFNimmFL2iIoqt8eDPQHptERIkNoO8prFVvblm13OaG6oGM+n7P4/RrRz2HdTktotxHFdZW5tvm72UWEtm9dQF6n++hU1FmVFL++L2Nsdt3/1IVrWaacda4Se91t+pHDVXF5HFd9pG7X14NNyePr6wkfPTRI+H6qDPvLqRM5DR2beZ8W95Divq0IWXXyy/d18Yq09ZhyY/fyPjafY37yta8ybD9l3W15+crXYhQ5rsj2Wkb7iDadon1c+tKI4p5NR6HjPl/vqvLm92uK8lTjWNntkwJTu9hkiJmHVf3S1V5UOii6PWL1nVqOkP5QI/b2L2o+Kqr/h9i0bHNl9HudnKn0btKBbZzItQ7n47Drmutg6P+ubZK7/5va0PU8XZS56DP4Isci07gUo3/fscdlfMyp6xR6dy0vt/275K1bJ8qkHI99bdK3v4vt4Gtzs7sEWa5aZH4NDz3yfWG368bXLlQ6GZYQ7/UL1y3mryroZ+nkZwK28SD1vlt+7sNd+lcR3Ji1RKq1WcvhftFzousYxftH7Ngu2pZubcGfD8eMizp5Y/uha/m69NNK5siSOapkcq2lTOOGvE4y9aPclFl20eXTvwoZO374ymob90Jx3Zfk2h/I849q7VNE+WXsj+ZFlJ96Xcd1PyD4ue2J69/Q9V+u9uPrQC7/sHRftjE+n+eQP2Ztl5Kc+0TX/WND8vP2iF23xO7lfO3XtKfLhUm/PE6Ze78RD/3Fknr8i907yWsoUx+M3S+0SNjcHyu7qg6+aYvqF671TLXfTzU+2uaTnOOzbFc+7yHoZE59npIL175kay/ZxlKMH6a+NSJdl90XKXytpbMpTr/kP5zJfqxQDzneYWTstxh9pPPdYJ/CL8alTBag+fFvHFXtQMutWxBloOUMMHS6GWSyVYS4pvgmexXtVjc/TFWk9ZnnZLt3+caI10/8Xkb+hsYlfeh+QOyPNQN1S7hv2nqivEVSj/Ex+1lu73Ib1olbu4jpfN4ddbWbHN+/mcpWfUem+g7RhK4833SuepHbN0d5PjKF1kUll3xPFc5d+btTW9uqdCHXwaQ7kw252ENIW9vKTdEfTLox+VPYT6r8XXUWq7tYuXyZnEAG+ic+pwyVdRLDp8wcOp0kEZNXzLyqw3f+yEkjMI1sFznk8ulDKcoKlcFVlz75qPyu9+U8YuvnqnfXNDn6t6neNr3xfHj4JEU500ma8SSkjjodptBlTLurbI7rTxUnhcxF6d9W76KRbd6G3DdVNj2qia/qD3KY2O90elLJocpHJc90Q7kqVLqaLlGUjYj+Pg00jD8Xk+Wnf5UAN8c8HGrvXKYi+4irnsoo09ctU29Fll2UraSyaxnTOar8DFw+w60St+cRNlzfm9E9y9CNUTZM5/7iOTWR6imOgaKf/pn6hJw/f8dDdS6u0tNhDN1ZOlGUoauTrqyQNvCd21Mjy8N/T7AixBkQrm3tRKS0tngDwrWYzobuLFwXV3WfP5uR9TGTXdvc3BRVjq18l3rbwmaS8c9QByR4m3Sb/lPVX2V/M4naDkV79GFmJDad2NaLOdpBpxsbvs+/YubgVPO5bn3h+75BahnEOU/EVb+yTL7vQeTQp04GH/twfTYaCv9ehe8XXdZ0Ic+IY94Hcik/9h0Zk35c7MdWXo737HM/y6dllPENj9zeuvq7vMMYam88fZnfU7nOHznf6/AdP+W8ffXv2q6uelDlE1N/Wx+Prb/MG8ARBVJ0eb7rz5Tf6sl5l/G9nizDnJLJudZoaNqU/hbsCPH73dhu+03aWPiZhW9/yLHf8IGvT1OtzwZJ56yG/7YvX5sSdn+yof6x5av2ebxcV1dOZ9pDVgSXys/36uLzG1s5Nvj7pKo9axm2zsueylxeT1lWlQ4rkuuzx5f3+VXPPGIhgbLnKp/rtiJdcz2lOtMpAtMZV27E/kRttyaF83dFbf3NdYwXx6sZpH0uVkZ/VslmOrspa24V1+O56u3TdmXpQdaJy36wLPm4LZVR7jyp/CLOmULtzeWZoqstuLS9rhzTmqwIe3LVia0f2OSP3c/71Ec8V0itv6JtONbOXdb3Oc5YdcTaQVFzRWg7+z6HydnHy+qPoWO+j1yq8anofifWl7ri97chNiq/z6KyM37t8333sJR/SF/3bUvd+z+8nV3KNPWfIvt3mfNZijFAZT8xfXSekLfOtl3rHCuPzxrEdT7U9UvRjn3HKV5/XTuo2i3n+E3L5L+3yN+TkH+z07ZGDlkviuXLcX3aL7b+8m+duhCzJonp/yF9wabPItZhJmJ/N8pVfvn31Fok7PeiYsalFON4bPnyuOO7Ru2G+S52fqB5DAt55bJtXf2LtJdQParCVevHlqcufduvKJuQ5yxxvA/Zw6W0l5D3+nz7a4wdieXxd+FS2SjPN7Z9XXDRp62/dMv4GTM22uwx1/iTe7zTUSfjf1Mqld36EHv2xvPoprMnGfGvIiDHk+/x+EQTP7fMOjl928f0/855OTnaJ5XeQsevVHNojO5147ePXLH681mDqOBhqef/Ivp+7PMF1Vxs02kMITLK30zp/k+FbX1RdP/w1b2OMt9hiR1bKLHfZ+XWT+4+ahqzVM8iUug81r5tfTf3+JB6DPFpk1zllLUu9523cpPLdlR6zTVP+bShGFd1lh/Td33rVdT44WqTtjqktOtc87osc8x5hM9vyLrK49v+Pvmp7De0/vyvLJvk1C3+1OOyLyG/aSSud1L/TlLq/BoZ5M2xNj66IFRlT9fcT4GqDYosQ3df/G0zlR5U4UVzjAJZPpW8NlLI5lOejzwq+eS4rnWZbsjTx7ZUrq4sXdrQPmAa82Pb0HVuyZl3rrrZ7Nal/ULzdy0zBUXrMaQcU18v6ncmxd9eM/1fkdQ24Tvu+paZ2q5S6z13+anlTyVfrv4aWz/desfFfn3WEj727rNGKHJdlqsM1VompjzT+shXv7F75dj3J3K3qY7QM7DcZ2L/Aw==")),ze=function(Oe){switch(Oe){case R:case G:case D:case W:return z;case q:return S;default:return Oe}},_e=function(Oe){switch(Oe){case y:case M:return _;case k:return x;default:return Oe}},Ae=function(Oe,ae){void 0===ae&&(ae=!1),this.position=Oe,this.required=ae};T.exports=function(){function ye(ae){this.string=ae,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}var Oe=ye.prototype;return Oe.nextCodePoint=function(){var Ee=this.string.charCodeAt(this.pos++),Fe=this.string.charCodeAt(this.pos);return 55296<=Ee&&Ee<=56319&&56320<=Fe&&Fe<=57343?(this.pos++,1024*(Ee-55296)+(Fe-56320)+65536):Ee},Oe.nextCharClass=function(){return ze(me.get(this.nextCodePoint()))},Oe.getSimpleBreak=function(){switch(this.nextClass){case k:return!1;case _:case y:case M:return this.curClass=_,!1;case b:return this.curClass=b,!1}return null},Oe.getPairTableBreak=function(Ee){var Fe=!1;switch(oe[this.curClass][this.nextClass]){case P:Fe=!0;break;case J:Fe=Ee===k;break;case j:if(!(Fe=Ee===k))return!1;break;case re:if(Ee!==k)return Fe}return this.LB8a&&(Fe=!1),!this.LB21a||this.curClass!==d&&this.curClass!==I?this.LB21a=this.curClass===Z:(Fe=!1,this.LB21a=!1),this.curClass===H?(this.LB30a++,2==this.LB30a&&this.nextClass===H&&(Fe=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,Fe},Oe.nextBreak=function(){if(null==this.curClass){var Ee=this.nextCharClass();this.curClass=_e(Ee),this.nextClass=Ee,this.LB8a=Ee===Q,this.LB30a=0}for(;this.pos=M?Ee=new RangeError(D):ae=h.concat(_e,Ae),_e=[],Ce.close(),ze(Ee,ae)}Ce.on("error",function ye(ae){Ce.removeListener("end",Oe),Ce.removeListener("readable",ve),ze(ae)}),Ce.on("end",Oe),Ce.end(me),ve()}function q(Ce,me){if("string"==typeof me&&(me=h.from(me)),!h.isBuffer(me))throw new TypeError("Not a string or buffer");return Ce._processChunk(me,Ce._finishFlushFlag)}function Z(Ce){if(!(this instanceof Z))return new Z(Ce);re.call(this,Ce,_.DEFLATE)}function H(Ce){if(!(this instanceof H))return new H(Ce);re.call(this,Ce,_.INFLATE)}function G(Ce){if(!(this instanceof G))return new G(Ce);re.call(this,Ce,_.GZIP)}function W(Ce){if(!(this instanceof W))return new W(Ce);re.call(this,Ce,_.GUNZIP)}function te(Ce){if(!(this instanceof te))return new te(Ce);re.call(this,Ce,_.DEFLATERAW)}function P(Ce){if(!(this instanceof P))return new P(Ce);re.call(this,Ce,_.INFLATERAW)}function J(Ce){if(!(this instanceof J))return new J(Ce);re.call(this,Ce,_.UNZIP)}function j(Ce){return Ce===_.Z_NO_FLUSH||Ce===_.Z_PARTIAL_FLUSH||Ce===_.Z_SYNC_FLUSH||Ce===_.Z_FULL_FLUSH||Ce===_.Z_FINISH||Ce===_.Z_BLOCK}function re(Ce,me){var ze=this;if(this._opts=Ce=Ce||{},this._chunkSize=Ce.chunkSize||e.Z_DEFAULT_CHUNK,f.call(this,Ce),Ce.flush&&!j(Ce.flush))throw new Error("Invalid flush flag: "+Ce.flush);if(Ce.finishFlush&&!j(Ce.finishFlush))throw new Error("Invalid flush flag: "+Ce.finishFlush);if(this._flushFlag=Ce.flush||_.Z_NO_FLUSH,this._finishFlushFlag=typeof Ce.finishFlush<"u"?Ce.finishFlush:_.Z_FINISH,Ce.chunkSize&&(Ce.chunkSizee.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+Ce.chunkSize);if(Ce.windowBits&&(Ce.windowBitse.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+Ce.windowBits);if(Ce.level&&(Ce.levele.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+Ce.level);if(Ce.memLevel&&(Ce.memLevele.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+Ce.memLevel);if(Ce.strategy&&Ce.strategy!=e.Z_FILTERED&&Ce.strategy!=e.Z_HUFFMAN_ONLY&&Ce.strategy!=e.Z_RLE&&Ce.strategy!=e.Z_FIXED&&Ce.strategy!=e.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+Ce.strategy);if(Ce.dictionary&&!h.isBuffer(Ce.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new _.Zlib(me);var _e=this;this._hadError=!1,this._handle.onerror=function(ye,Oe){he(_e),_e._hadError=!0;var ae=new Error(ye);ae.errno=Oe,ae.code=e.codes[Oe],_e.emit("error",ae)};var Ae=e.Z_DEFAULT_COMPRESSION;"number"==typeof Ce.level&&(Ae=Ce.level);var ve=e.Z_DEFAULT_STRATEGY;"number"==typeof Ce.strategy&&(ve=Ce.strategy),this._handle.init(Ce.windowBits||e.Z_DEFAULT_WINDOWBITS,Ae,Ce.memLevel||e.Z_DEFAULT_MEMLEVEL,ve,Ce.dictionary),this._buffer=h.allocUnsafe(this._chunkSize),this._offset=0,this._level=Ae,this._strategy=ve,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!ze._handle},configurable:!0,enumerable:!0})}function he(Ce,me){me&&v.nextTick(me),Ce._handle&&(Ce._handle.close(),Ce._handle=null)}function oe(Ce){Ce.emit("close")}Object.defineProperty(e,"codes",{enumerable:!0,value:Object.freeze(I),writable:!1}),e.Deflate=Z,e.Inflate=H,e.Gzip=G,e.Gunzip=W,e.DeflateRaw=te,e.InflateRaw=P,e.Unzip=J,e.createDeflate=function(Ce){return new Z(Ce)},e.createInflate=function(Ce){return new H(Ce)},e.createDeflateRaw=function(Ce){return new te(Ce)},e.createInflateRaw=function(Ce){return new P(Ce)},e.createGzip=function(Ce){return new G(Ce)},e.createGunzip=function(Ce){return new W(Ce)},e.createUnzip=function(Ce){return new J(Ce)},e.deflate=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new Z(me),Ce,ze)},e.deflateSync=function(Ce,me){return q(new Z(me),Ce)},e.gzip=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new G(me),Ce,ze)},e.gzipSync=function(Ce,me){return q(new G(me),Ce)},e.deflateRaw=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new te(me),Ce,ze)},e.deflateRawSync=function(Ce,me){return q(new te(me),Ce)},e.unzip=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new J(me),Ce,ze)},e.unzipSync=function(Ce,me){return q(new J(me),Ce)},e.inflate=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new H(me),Ce,ze)},e.inflateSync=function(Ce,me){return q(new H(me),Ce)},e.gunzip=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new W(me),Ce,ze)},e.gunzipSync=function(Ce,me){return q(new W(me),Ce)},e.inflateRaw=function(Ce,me,ze){return"function"==typeof me&&(ze=me,me={}),z(new P(me),Ce,ze)},e.inflateRawSync=function(Ce,me){return q(new P(me),Ce)},b.inherits(re,f),re.prototype.params=function(Ce,me,ze){if(Cee.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+Ce);if(me!=e.Z_FILTERED&&me!=e.Z_HUFFMAN_ONLY&&me!=e.Z_RLE&&me!=e.Z_FIXED&&me!=e.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+me);if(this._level!==Ce||this._strategy!==me){var _e=this;this.flush(_.Z_SYNC_FLUSH,function(){y(_e._handle,"zlib binding closed"),_e._handle.params(Ce,me),_e._hadError||(_e._level=Ce,_e._strategy=me,ze&&ze())})}else v.nextTick(ze)},re.prototype.reset=function(){return y(this._handle,"zlib binding closed"),this._handle.reset()},re.prototype._flush=function(Ce){this._transform(h.alloc(0),"",Ce)},re.prototype.flush=function(Ce,me){var ze=this,_e=this._writableState;("function"==typeof Ce||void 0===Ce&&!me)&&(me=Ce,Ce=_.Z_FULL_FLUSH),_e.ended?me&&v.nextTick(me):_e.ending?me&&this.once("end",me):_e.needDrain?me&&this.once("drain",function(){return ze.flush(Ce,me)}):(this._flushFlag=Ce,this.write(h.alloc(0),"",me))},re.prototype.close=function(Ce){he(this,Ce),v.nextTick(oe,this)},re.prototype._transform=function(Ce,me,ze){var _e,Ae=this._writableState,ye=(Ae.ending||Ae.ended)&&(!Ce||Ae.length===Ce.length);return null===Ce||h.isBuffer(Ce)?this._handle?(ye?_e=this._finishFlushFlag:(_e=this._flushFlag,Ce.length>=Ae.length&&(this._flushFlag=this._opts.flush||_.Z_NO_FLUSH)),void this._processChunk(Ce,_e,ze)):ze(new Error("zlib binding closed")):ze(new Error("invalid input"))},re.prototype._processChunk=function(Ce,me,ze){var _e=Ce&&Ce.length,Ae=this._chunkSize-this._offset,ve=0,ye=this,Oe="function"==typeof ze;if(!Oe){var Fe,ae=[],Ee=0;this.on("error",function(He){Fe=He}),y(this._handle,"zlib binding closed");do{var Ve=this._handle.writeSync(me,Ce,ve,_e,this._buffer,this._offset,Ae)}while(!this._hadError&&oi(Ve[0],Ve[1]));if(this._hadError)throw Fe;if(Ee>=M)throw he(this),new RangeError(D);var mt=h.concat(ae,Ee);return he(this),mt}y(this._handle,"zlib binding closed");var St=this._handle.write(me,Ce,ve,_e,this._buffer,this._offset,Ae);function oi(He,be){if(this&&(this.buffer=null,this.callback=null),!ye._hadError){var je=Ae-be;if(y(je>=0,"have should not go down"),je>0){var Ke=ye._buffer.slice(ye._offset,ye._offset+je);ye._offset+=je,Oe?ye.push(Ke):(ae.push(Ke),Ee+=Ke.length)}if((0===be||ye._offset>=ye._chunkSize)&&(Ae=ye._chunkSize,ye._offset=0,ye._buffer=h.allocUnsafe(ye._chunkSize)),0===be){if(ve+=_e-He,_e=He,!Oe)return!0;var _t=ye._handle.write(me,Ce,ve,_e,ye._buffer,ye._offset,ye._chunkSize);return _t.callback=oi,void(_t.buffer=Ce)}if(!Oe)return!1;ze()}}St.buffer=Ce,St.callback=oi},b.inherits(Z,re),b.inherits(H,re),b.inherits(G,re),b.inherits(W,re),b.inherits(te,re),b.inherits(P,re),b.inherits(J,re)},6819:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(66947),l(68319),l(82747),l(51270),function(){var h=v,_=h.lib.StreamCipher,y=[],M=[],D=[],x=h.algo.Rabbit=_.extend({_doReset:function(){for(var I=this._key.words,d=this.cfg.iv,S=0;S<4;S++)I[S]=16711935&(I[S]<<8|I[S]>>>24)|4278255360&(I[S]<<24|I[S]>>>8);var R=this._X=[I[0],I[3]<<16|I[2]>>>16,I[1],I[0]<<16|I[3]>>>16,I[2],I[1]<<16|I[0]>>>16,I[3],I[2]<<16|I[1]>>>16],z=this._C=[I[2]<<16|I[2]>>>16,4294901760&I[0]|65535&I[1],I[3]<<16|I[3]>>>16,4294901760&I[1]|65535&I[2],I[0]<<16|I[0]>>>16,4294901760&I[2]|65535&I[3],I[1]<<16|I[1]>>>16,4294901760&I[3]|65535&I[0]];for(this._b=0,S=0;S<4;S++)k.call(this);for(S=0;S<8;S++)z[S]^=R[S+4&7];if(d){var q=d.words,Z=q[0],H=q[1],G=16711935&(Z<<8|Z>>>24)|4278255360&(Z<<24|Z>>>8),W=16711935&(H<<8|H>>>24)|4278255360&(H<<24|H>>>8),te=G>>>16|4294901760&W,P=W<<16|65535&G;for(z[0]^=G,z[1]^=te,z[2]^=W,z[3]^=P,z[4]^=G,z[5]^=te,z[6]^=W,z[7]^=P,S=0;S<4;S++)k.call(this)}},_doProcessBlock:function(I,d){var S=this._X;k.call(this),y[0]=S[0]^S[5]>>>16^S[3]<<16,y[1]=S[2]^S[7]>>>16^S[5]<<16,y[2]=S[4]^S[1]>>>16^S[7]<<16,y[3]=S[6]^S[3]>>>16^S[1]<<16;for(var R=0;R<4;R++)y[R]=16711935&(y[R]<<8|y[R]>>>24)|4278255360&(y[R]<<24|y[R]>>>8),I[d+R]^=y[R]},blockSize:4,ivSize:2});function k(){for(var Q=this._X,I=this._C,d=0;d<8;d++)M[d]=I[d];for(I[0]=I[0]+1295307597+this._b|0,I[1]=I[1]+3545052371+(I[0]>>>0>>0?1:0)|0,I[2]=I[2]+886263092+(I[1]>>>0>>0?1:0)|0,I[3]=I[3]+1295307597+(I[2]>>>0>>0?1:0)|0,I[4]=I[4]+3545052371+(I[3]>>>0>>0?1:0)|0,I[5]=I[5]+886263092+(I[4]>>>0>>0?1:0)|0,I[6]=I[6]+1295307597+(I[5]>>>0>>0?1:0)|0,I[7]=I[7]+3545052371+(I[6]>>>0>>0?1:0)|0,this._b=I[7]>>>0>>0?1:0,d=0;d<8;d++){var S=Q[d]+I[d],R=65535&S,z=S>>>16;D[d]=((R*R>>>17)+R*z>>>15)+z*z^((4294901760&S)*S|0)+((65535&S)*S|0)}Q[0]=D[0]+(D[7]<<16|D[7]>>>16)+(D[6]<<16|D[6]>>>16)|0,Q[1]=D[1]+(D[0]<<8|D[0]>>>24)+D[7]|0,Q[2]=D[2]+(D[1]<<16|D[1]>>>16)+(D[0]<<16|D[0]>>>16)|0,Q[3]=D[3]+(D[2]<<8|D[2]>>>24)+D[1]|0,Q[4]=D[4]+(D[3]<<16|D[3]>>>16)+(D[2]<<16|D[2]>>>16)|0,Q[5]=D[5]+(D[4]<<8|D[4]>>>24)+D[3]|0,Q[6]=D[6]+(D[5]<<16|D[5]>>>16)+(D[4]<<16|D[4]>>>16)|0,Q[7]=D[7]+(D[6]<<8|D[6]>>>24)+D[5]|0}h.Rabbit=_._createHelper(x)}(),v.Rabbit)},7043:function(T,e){e.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),e.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512])},7051:function(T,e,l){"use strict";var v=l(26601),h=l(77802),f=l(82621),_=l(61320),b=l(35074),y=v(_(),Number);h(y,{getPolyfill:_,implementation:f,shim:b}),T.exports=y},7081:function(T,e,l){var v=l(15567),h=l(20340),f=Function.prototype,_=v&&Object.getOwnPropertyDescriptor,b=h(f,"name"),y=b&&"something"===function(){}.name,M=b&&(!v||v&&_(f,"name").configurable);T.exports={EXISTS:b,PROPER:y,CONFIGURABLE:M}},7187:function(T,e,l){var v=l(9964),h=Object.getOwnPropertyDescriptors||function(Ve){for(var mt=Object.keys(Ve),St={},oi=0;oi=oi)return je;switch(je){case"%s":return String(St[mt++]);case"%d":return Number(St[mt++]);case"%j":try{return JSON.stringify(St[mt++])}catch{return"[Circular]"}default:return je}}),be=St[mt];mt"u")return function(){return e.deprecate(Fe,Ve).apply(this,arguments)};var mt=!1;return function St(){if(!mt){if(v.throwDeprecation)throw new Error(Ve);v.traceDeprecation?console.trace(Ve):console.error(Ve),mt=!0}return Fe.apply(this,arguments)}};var _={},b=/^$/;if(v.env.NODE_DEBUG){var y=v.env.NODE_DEBUG;y=y.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),b=new RegExp("^"+y+"$","i")}function M(Fe,Ve){var mt={seen:[],stylize:x};return arguments.length>=3&&(mt.depth=arguments[2]),arguments.length>=4&&(mt.colors=arguments[3]),Z(Ve)?mt.showHidden=Ve:Ve&&e._extend(mt,Ve),J(mt.showHidden)&&(mt.showHidden=!1),J(mt.depth)&&(mt.depth=2),J(mt.colors)&&(mt.colors=!1),J(mt.customInspect)&&(mt.customInspect=!0),mt.colors&&(mt.stylize=D),Q(mt,Fe,mt.depth)}function D(Fe,Ve){var mt=M.styles[Ve];return mt?"\x1b["+M.colors[mt][0]+"m"+Fe+"\x1b["+M.colors[mt][1]+"m":Fe}function x(Fe,Ve){return Fe}function Q(Fe,Ve,mt){if(Fe.customInspect&&Ve&&Ce(Ve.inspect)&&Ve.inspect!==e.inspect&&(!Ve.constructor||Ve.constructor.prototype!==Ve)){var St=Ve.inspect(mt,Fe);return te(St)||(St=Q(Fe,St,mt)),St}var oi=function I(Fe,Ve){if(J(Ve))return Fe.stylize("undefined","undefined");if(te(Ve)){var mt="'"+JSON.stringify(Ve).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Fe.stylize(mt,"string")}return W(Ve)?Fe.stylize(""+Ve,"number"):Z(Ve)?Fe.stylize(""+Ve,"boolean"):H(Ve)?Fe.stylize("null","null"):void 0}(Fe,Ve);if(oi)return oi;var He=Object.keys(Ve),be=function k(Fe){var Ve={};return Fe.forEach(function(mt,St){Ve[mt]=!0}),Ve}(He);if(Fe.showHidden&&(He=Object.getOwnPropertyNames(Ve)),oe(Ve)&&(He.indexOf("message")>=0||He.indexOf("description")>=0))return d(Ve);if(0===He.length){if(Ce(Ve))return Fe.stylize("[Function"+(Ve.name?": "+Ve.name:"")+"]","special");if(j(Ve))return Fe.stylize(RegExp.prototype.toString.call(Ve),"regexp");if(he(Ve))return Fe.stylize(Date.prototype.toString.call(Ve),"date");if(oe(Ve))return d(Ve)}var et,Ke="",_t=!1,Nt=["{","}"];return q(Ve)&&(_t=!0,Nt=["[","]"]),Ce(Ve)&&(Ke=" [Function"+(Ve.name?": "+Ve.name:"")+"]"),j(Ve)&&(Ke=" "+RegExp.prototype.toString.call(Ve)),he(Ve)&&(Ke=" "+Date.prototype.toUTCString.call(Ve)),oe(Ve)&&(Ke=" "+d(Ve)),0!==He.length||_t&&0!=Ve.length?mt<0?j(Ve)?Fe.stylize(RegExp.prototype.toString.call(Ve),"regexp"):Fe.stylize("[Object]","special"):(Fe.seen.push(Ve),et=_t?function S(Fe,Ve,mt,St,oi){for(var He=[],be=0,je=Ve.length;be60?mt[0]+(""===Ve?"":Ve+"\n ")+" "+Fe.join(",\n ")+" "+mt[1]:mt[0]+Ve+" "+Fe.join(", ")+" "+mt[1]}(et,Ke,Nt)):Nt[0]+Ke+Nt[1]}function d(Fe){return"["+Error.prototype.toString.call(Fe)+"]"}function R(Fe,Ve,mt,St,oi,He){var be,je,Ke;if((Ke=Object.getOwnPropertyDescriptor(Ve,oi)||{value:Ve[oi]}).get?je=Fe.stylize(Ke.set?"[Getter/Setter]":"[Getter]","special"):Ke.set&&(je=Fe.stylize("[Setter]","special")),ye(St,oi)||(be="["+oi+"]"),je||(Fe.seen.indexOf(Ke.value)<0?(je=H(mt)?Q(Fe,Ke.value,null):Q(Fe,Ke.value,mt-1)).indexOf("\n")>-1&&(je=He?je.split("\n").map(function(_t){return" "+_t}).join("\n").slice(2):"\n"+je.split("\n").map(function(_t){return" "+_t}).join("\n")):je=Fe.stylize("[Circular]","special")),J(be)){if(He&&oi.match(/^\d+$/))return je;(be=JSON.stringify(""+oi)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(be=be.slice(1,-1),be=Fe.stylize(be,"name")):(be=be.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),be=Fe.stylize(be,"string"))}return be+": "+je}function q(Fe){return Array.isArray(Fe)}function Z(Fe){return"boolean"==typeof Fe}function H(Fe){return null===Fe}function W(Fe){return"number"==typeof Fe}function te(Fe){return"string"==typeof Fe}function J(Fe){return void 0===Fe}function j(Fe){return re(Fe)&&"[object RegExp]"===ze(Fe)}function re(Fe){return"object"==typeof Fe&&null!==Fe}function he(Fe){return re(Fe)&&"[object Date]"===ze(Fe)}function oe(Fe){return re(Fe)&&("[object Error]"===ze(Fe)||Fe instanceof Error)}function Ce(Fe){return"function"==typeof Fe}function ze(Fe){return Object.prototype.toString.call(Fe)}function _e(Fe){return Fe<10?"0"+Fe.toString(10):Fe.toString(10)}e.debuglog=function(Fe){if(Fe=Fe.toUpperCase(),!_[Fe])if(b.test(Fe)){var Ve=v.pid;_[Fe]=function(){var mt=e.format.apply(e,arguments);console.error("%s %d: %s",Fe,Ve,mt)}}else _[Fe]=function(){};return _[Fe]},e.inspect=M,M.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},M.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=l(29490),e.isArray=q,e.isBoolean=Z,e.isNull=H,e.isNullOrUndefined=function G(Fe){return null==Fe},e.isNumber=W,e.isString=te,e.isSymbol=function P(Fe){return"symbol"==typeof Fe},e.isUndefined=J,e.isRegExp=j,e.types.isRegExp=j,e.isObject=re,e.isDate=he,e.types.isDate=he,e.isError=oe,e.types.isNativeError=oe,e.isFunction=Ce,e.isPrimitive=function me(Fe){return null===Fe||"boolean"==typeof Fe||"number"==typeof Fe||"string"==typeof Fe||"symbol"==typeof Fe||typeof Fe>"u"},e.isBuffer=l(41201);var Ae=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ye(Fe,Ve){return Object.prototype.hasOwnProperty.call(Fe,Ve)}e.log=function(){console.log("%s - %s",function ve(){var Fe=new Date,Ve=[_e(Fe.getHours()),_e(Fe.getMinutes()),_e(Fe.getSeconds())].join(":");return[Fe.getDate(),Ae[Fe.getMonth()],Ve].join(" ")}(),e.format.apply(e,arguments))},e.inherits=l(89784),e._extend=function(Fe,Ve){if(!Ve||!re(Ve))return Fe;for(var mt=Object.keys(Ve),St=mt.length;St--;)Fe[mt[St]]=Ve[mt[St]];return Fe};var Oe=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function ae(Fe,Ve){if(!Fe){var mt=new Error("Promise was rejected with a falsy value");mt.reason=Fe,Fe=mt}return Ve(Fe)}e.promisify=function(Ve){if("function"!=typeof Ve)throw new TypeError('The "original" argument must be of type Function');if(Oe&&Ve[Oe]){var mt;if("function"!=typeof(mt=Ve[Oe]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(mt,Oe,{value:mt,enumerable:!1,writable:!1,configurable:!0}),mt}function mt(){for(var St,oi,He=new Promise(function(Ke,_t){St=Ke,oi=_t}),be=[],je=0;je2)if(me=z(me),43===(ze=te(me,0))||45===ze){if(88===(_e=te(me,2))||120===_e)return NaN}else if(48===ze){switch(te(me,1)){case 66:case 98:Ae=2,ve=49;break;case 79:case 111:Ae=8,ve=55;break;default:return+me}for(Oe=(ye=W(me,2)).length,ae=0;aeve)return NaN;return parseInt(ye,Ae)}return+me};if(_(q,!Z(" 0o1")||!Z("0b1")||Z("+0x1"))){for(var oe,j=function(me){var ze=arguments.length<1?0:Z(function(Ce){var me=k(Ce,"number");return"bigint"==typeof me?me:J(me)}(me)),_e=this;return D(H,_e)&&Q(function(){R(_e)})?M(Object(ze),_e,j):ze},re=v?I(Z):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),he=0;re.length>he;he++)y(Z,oe=re[he])&&!y(j,oe)&&S(j,oe,d(Z,oe));j.prototype=H,H.constructor=j,b(h,q,j)}},7421:function(T,e,l){var v=l(32010),h=Object.defineProperty;T.exports=function(f,_){try{h(v,f,{value:_,configurable:!0,writable:!0})}catch{v[f]=_}return _}},7452:function(T,e,l){var v=l(47044);T.exports=function(h){return v(function(){var f=""[h]('"');return f!==f.toLowerCase()||f.split('"').length>3})}},7514:function(T,e,l){var v=l(32010),h=l(38347),f=l(47044),_=l(93975),b=v.Object,y=h("".split);T.exports=f(function(){return!b("z").propertyIsEnumerable(0)})?function(M){return"String"==_(M)?y(M,""):b(M)}:b},7585:function(T,e,l){var v=l(20340),h=l(13711),f=l(53087),b=l(38688)("toPrimitive"),y=Date.prototype;v(y,b)||h(y,b,f)},7785:function(T,e,l){"use strict";typeof window<"u"&&!window.Promise&&l(98168),l(83043);function h(f){this.fs=f,this.resolving={}}h.prototype.resolve=function(f,_){if(!this.resolving[f]){var b=this;this.resolving[f]=new Promise(function(y,M){0===f.toLowerCase().indexOf("https://")||0===f.toLowerCase().indexOf("http://")?b.fs.existsSync(f)?y():function(f,_){return new Promise(function(b,y){var M=new XMLHttpRequest;for(var D in M.open("GET",f,!0),_)M.setRequestHeader(D,_[D]);M.responseType="arraybuffer",M.onreadystatechange=function(){4===M.readyState&&(M.status>=200&&M.status<300||setTimeout(function(){y(new TypeError('Failed to fetch (url: "'+f+'")'))},0))},M.onload=function(){M.status>=200&&M.status<300&&b(M.response)},M.onerror=function(){setTimeout(function(){y(new TypeError('Network request failed (url: "'+f+'")'))},0)},M.ontimeout=function(){setTimeout(function(){y(new TypeError('Network request failed (url: "'+f+'")'))},0)},M.send()})}(f,_).then(function(D){b.fs.writeFileSync(f,D),y()},function(D){M(D)}):y()})}return this.resolving[f]},h.prototype.resolved=function(){var f=this;return new Promise(function(_,b){Promise.all(Object.values(f.resolving)).then(function(){_()},function(y){b(y)})})},T.exports=h},7844:function(T,e,l){"use strict";var v=l(83089),h=l(77802).supportsDescriptors,f=Object.getOwnPropertyDescriptor;T.exports=function(){if(h&&"gim"===/a/gim.flags){var b=f(RegExp.prototype,"flags");if(b&&"function"==typeof b.get&&"dotAll"in RegExp.prototype&&"hasIndices"in RegExp.prototype){var y="",M={};if(Object.defineProperty(M,"hasIndices",{get:function(){y+="d"}}),Object.defineProperty(M,"sticky",{get:function(){y+="y"}}),b.get.call(M),"dy"===y)return b.get}}return v}},7851:function(T,e,l){"use strict";var v=l(58448),h=l(2834),f=l(38347),_=l(11813),b=l(28831),y=l(34984),M=l(83943),D=l(27754),x=l(36352),k=l(23417),Q=l(25096),I=l(51839),d=l(73163),S=l(66723),R=l(49820),z=l(74846),q=l(47044),Z=z.UNSUPPORTED_Y,H=4294967295,G=Math.min,W=[].push,te=f(/./.exec),P=f(W),J=f("".slice),j=!q(function(){var re=/(?:)/,he=re.exec;re.exec=function(){return he.apply(this,arguments)};var oe="ab".split(re);return 2!==oe.length||"a"!==oe[0]||"b"!==oe[1]});_("split",function(re,he,oe){var Ce;return Ce="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(me,ze){var _e=Q(M(this)),Ae=void 0===ze?H:ze>>>0;if(0===Ae)return[];if(void 0===me)return[_e];if(!b(me))return h(he,_e,me,Ae);for(var Ee,Fe,Ve,ve=[],Oe=0,ae=new RegExp(me.source,(me.ignoreCase?"i":"")+(me.multiline?"m":"")+(me.unicode?"u":"")+(me.sticky?"y":"")+"g");(Ee=h(R,ae,_e))&&!((Fe=ae.lastIndex)>Oe&&(P(ve,J(_e,Oe,Ee.index)),Ee.length>1&&Ee.index<_e.length&&v(W,ve,d(Ee,1)),Ve=Ee[0].length,Oe=Fe,ve.length>=Ae));)ae.lastIndex===Ee.index&&ae.lastIndex++;return Oe===_e.length?(Ve||!te(ae,""))&&P(ve,""):P(ve,J(_e,Oe)),ve.length>Ae?d(ve,0,Ae):ve}:"0".split(void 0,0).length?function(me,ze){return void 0===me&&0===ze?[]:h(he,this,me,ze)}:he,[function(ze,_e){var Ae=M(this),ve=null==ze?void 0:I(ze,re);return ve?h(ve,ze,Ae,_e):h(Ce,Q(Ae),ze,_e)},function(me,ze){var _e=y(this),Ae=Q(me),ve=oe(Ce,_e,Ae,ze,Ce!==he);if(ve.done)return ve.value;var ye=D(_e,RegExp),Oe=_e.unicode,Ee=new ye(Z?"^(?:"+_e.source+")":_e,(_e.ignoreCase?"i":"")+(_e.multiline?"m":"")+(_e.unicode?"u":"")+(Z?"g":"y")),Fe=void 0===ze?H:ze>>>0;if(0===Fe)return[];if(0===Ae.length)return null===S(Ee,Ae)?[Ae]:[];for(var Ve=0,mt=0,St=[];mt1?arguments[1]:void 0);he=he?he.next:j.first;)for(re(he.value,he.key,this);he&&he.removed;)he=he.previous},has:function(J){return!!te(this,J)}}),f(H,z?{get:function(J){var j=te(this,J);return j&&j.value},set:function(J,j){return W(this,0===J?0:J,j)}}:{add:function(J){return W(this,J=0===J?0:J,J)}}),x&&v(H,"size",{get:function(){return G(this).size}}),Z},setStrong:function(S,R,z){var q=R+" Iterator",Z=d(R),H=d(q);M(S,R,function(G,W){I(this,{type:q,target:G,state:Z(G),kind:W,last:void 0})},function(){for(var G=H(this),W=G.kind,te=G.last;te&&te.removed;)te=te.previous;return G.target&&(G.last=te=te?te.next:G.state.first)?"keys"==W?{value:te.key,done:!1}:"values"==W?{value:te.value,done:!1}:{value:[te.key,te.value],done:!1}:(G.target=void 0,{value:void 0,done:!0})},z?"entries":"values",!z,!0),D(R)}}},9760:function(T,e,l){T.exports=f;var v=l(64785).EventEmitter;function f(){v.call(this)}l(89784)(f,v),f.Readable=l(88261),f.Writable=l(29781),f.Duplex=l(14903),f.Transform=l(48569),f.PassThrough=l(17723),f.finished=l(12167),f.pipeline=l(43765),f.Stream=f,f.prototype.pipe=function(_,b){var y=this;function M(S){_.writable&&!1===_.write(S)&&y.pause&&y.pause()}function D(){y.readable&&y.resume&&y.resume()}y.on("data",M),_.on("drain",D),!_._isStdio&&(!b||!1!==b.end)&&(y.on("end",k),y.on("close",Q));var x=!1;function k(){x||(x=!0,_.end())}function Q(){x||(x=!0,"function"==typeof _.destroy&&_.destroy())}function I(S){if(d(),0===v.listenerCount(this,"error"))throw S}function d(){y.removeListener("data",M),_.removeListener("drain",D),y.removeListener("end",k),y.removeListener("close",Q),y.removeListener("error",I),_.removeListener("error",I),y.removeListener("end",d),y.removeListener("close",d),_.removeListener("close",d)}return y.on("error",I),_.on("error",I),y.on("end",d),y.on("close",d),_.on("close",d),_.emit("pipe",y),_}},9964:function(T){var l,v,e=T.exports={};function h(){throw new Error("setTimeout has not been defined")}function f(){throw new Error("clearTimeout has not been defined")}function _(S){if(l===setTimeout)return setTimeout(S,0);if((l===h||!l)&&setTimeout)return l=setTimeout,setTimeout(S,0);try{return l(S,0)}catch{try{return l.call(null,S,0)}catch{return l.call(this,S,0)}}}!function(){try{l="function"==typeof setTimeout?setTimeout:h}catch{l=h}try{v="function"==typeof clearTimeout?clearTimeout:f}catch{v=f}}();var D,y=[],M=!1,x=-1;function k(){!M||!D||(M=!1,D.length?y=D.concat(y):x=-1,y.length&&Q())}function Q(){if(!M){var S=_(k);M=!0;for(var R=y.length;R;){for(D=y,y=[];++x1)for(var z=1;zI;)h.f(M,d=k[I++],x[d]);return M}},10447:function(T,e,l){var v=l(38347),h=l(94578),f=l(55480),_=v(Function.toString);h(f.inspectSource)||(f.inspectSource=function(b){return _(b)}),T.exports=f.inspectSource},10713:function(T){"use strict";T.exports=Number.isNaN||function(l){return l!=l}},10740:function(T,e,l){"use strict";var h,v=l(14598).Buffer;function f(at,Te){for(var Je=0;Je=at.length?{done:!0}:{done:!1,value:at[se++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Q(at,Te){(null==Te||Te>at.length)&&(Te=at.length);for(var Je=0,se=Array(Te);Je0?ft[0]:"value";if(st.has(Bi))return st.get(Bi);var zi=pe.apply(this,ft);return st.set(Bi,zi),zi}return Object.defineProperty(this,Te,{value:wt}),wt}}}}P.registerFormat=function(at){J.push(at)},P.openSync=function(at,Te){var Je=te.readFileSync(at);return P.create(Je,Te)},P.open=function(at,Te,Je){"function"==typeof Te&&(Je=Te,Te=null),te.readFile(at,function(se,pe){if(se)return Je(se);try{var De=P.create(pe,Te)}catch(st){return Je(st)}return Je(null,De)})},P.create=function(at,Te){for(var Je=0;Je>1},searchRange:d.uint16,entrySelector:d.uint16,rangeShift:d.uint16,endCode:new d.LazyArray(d.uint16,"segCount"),reservedPad:new d.Reserved(d.uint16),startCode:new d.LazyArray(d.uint16,"segCount"),idDelta:new d.LazyArray(d.int16,"segCount"),idRangeOffset:new d.LazyArray(d.uint16,"segCount"),glyphIndexArray:new d.LazyArray(d.uint16,function(at){return(at.length-at._currentOffset)/2})},6:{length:d.uint16,language:d.uint16,firstCode:d.uint16,entryCount:d.uint16,glyphIndices:new d.LazyArray(d.uint16,"entryCount")},8:{reserved:new d.Reserved(d.uint16),length:d.uint32,language:d.uint16,is32:new d.LazyArray(d.uint8,8192),nGroups:d.uint32,groups:new d.LazyArray(Ce,"nGroups")},10:{reserved:new d.Reserved(d.uint16),length:d.uint32,language:d.uint32,firstCode:d.uint32,entryCount:d.uint32,glyphIndices:new d.LazyArray(d.uint16,"numChars")},12:{reserved:new d.Reserved(d.uint16),length:d.uint32,language:d.uint32,nGroups:d.uint32,groups:new d.LazyArray(Ce,"nGroups")},13:{reserved:new d.Reserved(d.uint16),length:d.uint32,language:d.uint32,nGroups:d.uint32,groups:new d.LazyArray(Ce,"nGroups")},14:{length:d.uint32,numRecords:d.uint32,varSelectors:new d.LazyArray(ve,"numRecords")}}),Oe=new d.Struct({platformID:d.uint16,encodingID:d.uint16,table:new d.Pointer(d.uint32,ye,{type:"parent",lazy:!0})}),ae=new d.Struct({version:d.uint16,numSubtables:d.uint16,tables:new d.Array(Oe,"numSubtables")}),Ee=new d.Struct({version:d.int32,revision:d.int32,checkSumAdjustment:d.uint32,magicNumber:d.uint32,flags:d.uint16,unitsPerEm:d.uint16,created:new d.Array(d.int32,2),modified:new d.Array(d.int32,2),xMin:d.int16,yMin:d.int16,xMax:d.int16,yMax:d.int16,macStyle:new d.Bitfield(d.uint16,["bold","italic","underline","outline","shadow","condensed","extended"]),lowestRecPPEM:d.uint16,fontDirectionHint:d.int16,indexToLocFormat:d.int16,glyphDataFormat:d.int16}),Fe=new d.Struct({version:d.int32,ascent:d.int16,descent:d.int16,lineGap:d.int16,advanceWidthMax:d.uint16,minLeftSideBearing:d.int16,minRightSideBearing:d.int16,xMaxExtent:d.int16,caretSlopeRise:d.int16,caretSlopeRun:d.int16,caretOffset:d.int16,reserved:new d.Reserved(d.int16,4),metricDataFormat:d.int16,numberOfMetrics:d.uint16}),Ve=new d.Struct({advance:d.uint16,bearing:d.int16}),mt=new d.Struct({metrics:new d.LazyArray(Ve,function(at){return at.parent.hhea.numberOfMetrics}),bearings:new d.LazyArray(d.int16,function(at){return at.parent.maxp.numGlyphs-at.parent.hhea.numberOfMetrics})}),St=new d.Struct({version:d.int32,numGlyphs:d.uint16,maxPoints:d.uint16,maxContours:d.uint16,maxComponentPoints:d.uint16,maxComponentContours:d.uint16,maxZones:d.uint16,maxTwilightPoints:d.uint16,maxStorage:d.uint16,maxFunctionDefs:d.uint16,maxInstructionDefs:d.uint16,maxStackElements:d.uint16,maxSizeOfInstructions:d.uint16,maxComponentElements:d.uint16,maxComponentDepth:d.uint16});function oi(at,Te,Je){return void 0===Je&&(Je=0),1===at&&be[Je]?be[Je]:He[at][Te]}var He=[["utf16be","utf16be","utf16be","utf16be","utf16be","utf16be"],["macroman","shift-jis","big5","euc-kr","iso-8859-6","iso-8859-8","macgreek","maccyrillic","symbol","Devanagari","Gurmukhi","Gujarati","Oriya","Bengali","Tamil","Telugu","Kannada","Malayalam","Sinhalese","Burmese","Khmer","macthai","Laotian","Georgian","Armenian","gb-2312-80","Tibetan","Mongolian","Geez","maccenteuro","Vietnamese","Sindhi"],["ascii"],["symbol","utf16be","shift-jis","gb18030","big5","wansung","johab",null,null,null,"utf16be"]],be={15:"maciceland",17:"macturkish",18:"maccroatian",24:"maccenteuro",25:"maccenteuro",26:"maccenteuro",27:"maccenteuro",28:"maccenteuro",30:"maciceland",37:"macromania",38:"maccenteuro",39:"maccenteuro",40:"maccenteuro",143:"macinuit",146:"macgaelic"},je=[[],{0:"en",30:"fo",60:"ks",90:"rw",1:"fr",31:"fa",61:"ku",91:"rn",2:"de",32:"ru",62:"sd",92:"ny",3:"it",33:"zh",63:"bo",93:"mg",4:"nl",34:"nl-BE",64:"ne",94:"eo",5:"sv",35:"ga",65:"sa",128:"cy",6:"es",36:"sq",66:"mr",129:"eu",7:"da",37:"ro",67:"bn",130:"ca",8:"pt",38:"cz",68:"as",131:"la",9:"no",39:"sk",69:"gu",132:"qu",10:"he",40:"si",70:"pa",133:"gn",11:"ja",41:"yi",71:"or",134:"ay",12:"ar",42:"sr",72:"ml",135:"tt",13:"fi",43:"mk",73:"kn",136:"ug",14:"el",44:"bg",74:"ta",137:"dz",15:"is",45:"uk",75:"te",138:"jv",16:"mt",46:"be",76:"si",139:"su",17:"tr",47:"uz",77:"my",140:"gl",18:"hr",48:"kk",78:"km",141:"af",19:"zh-Hant",49:"az-Cyrl",79:"lo",142:"br",20:"ur",50:"az-Arab",80:"vi",143:"iu",21:"hi",51:"hy",81:"id",144:"gd",22:"th",52:"ka",82:"tl",145:"gv",23:"ko",53:"mo",83:"ms",146:"ga",24:"lt",54:"ky",84:"ms-Arab",147:"to",25:"pl",55:"tg",85:"am",148:"el-polyton",26:"hu",56:"tk",86:"ti",149:"kl",27:"es",57:"mn-CN",87:"om",150:"az",28:"lv",58:"mn",88:"so",151:"nn",29:"se",59:"ps",89:"sw"},[],{1078:"af",16393:"en-IN",1159:"rw",1074:"tn",1052:"sq",6153:"en-IE",1089:"sw",1115:"si",1156:"gsw",8201:"en-JM",1111:"kok",1051:"sk",1118:"am",17417:"en-MY",1042:"ko",1060:"sl",5121:"ar-DZ",5129:"en-NZ",1088:"ky",11274:"es-AR",15361:"ar-BH",13321:"en-PH",1108:"lo",16394:"es-BO",3073:"ar",18441:"en-SG",1062:"lv",13322:"es-CL",2049:"ar-IQ",7177:"en-ZA",1063:"lt",9226:"es-CO",11265:"ar-JO",11273:"en-TT",2094:"dsb",5130:"es-CR",13313:"ar-KW",2057:"en-GB",1134:"lb",7178:"es-DO",12289:"ar-LB",1033:"en",1071:"mk",12298:"es-EC",4097:"ar-LY",12297:"en-ZW",2110:"ms-BN",17418:"es-SV",6145:"ary",1061:"et",1086:"ms",4106:"es-GT",8193:"ar-OM",1080:"fo",1100:"ml",18442:"es-HN",16385:"ar-QA",1124:"fil",1082:"mt",2058:"es-MX",1025:"ar-SA",1035:"fi",1153:"mi",19466:"es-NI",10241:"ar-SY",2060:"fr-BE",1146:"arn",6154:"es-PA",7169:"aeb",3084:"fr-CA",1102:"mr",15370:"es-PY",14337:"ar-AE",1036:"fr",1148:"moh",10250:"es-PE",9217:"ar-YE",5132:"fr-LU",1104:"mn",20490:"es-PR",1067:"hy",6156:"fr-MC",2128:"mn-CN",3082:"es",1101:"as",4108:"fr-CH",1121:"ne",1034:"es",2092:"az-Cyrl",1122:"fy",1044:"nb",21514:"es-US",1068:"az",1110:"gl",2068:"nn",14346:"es-UY",1133:"ba",1079:"ka",1154:"oc",8202:"es-VE",1069:"eu",3079:"de-AT",1096:"or",2077:"sv-FI",1059:"be",1031:"de",1123:"ps",1053:"sv",2117:"bn",5127:"de-LI",1045:"pl",1114:"syr",1093:"bn-IN",4103:"de-LU",1046:"pt",1064:"tg",8218:"bs-Cyrl",2055:"de-CH",2070:"pt-PT",2143:"tzm",5146:"bs",1032:"el",1094:"pa",1097:"ta",1150:"br",1135:"kl",1131:"qu-BO",1092:"tt",1026:"bg",1095:"gu",2155:"qu-EC",1098:"te",1027:"ca",1128:"ha",3179:"qu",1054:"th",3076:"zh-HK",1037:"he",1048:"ro",1105:"bo",5124:"zh-MO",1081:"hi",1047:"rm",1055:"tr",2052:"zh",1038:"hu",1049:"ru",1090:"tk",4100:"zh-SG",1039:"is",9275:"smn",1152:"ug",1028:"zh-TW",1136:"ig",4155:"smj-NO",1058:"uk",1155:"co",1057:"id",5179:"smj",1070:"hsb",1050:"hr",1117:"iu",3131:"se-FI",1056:"ur",4122:"hr-BA",2141:"iu-Latn",1083:"se",2115:"uz-Cyrl",1029:"cs",2108:"ga",2107:"se-SE",1091:"uz",1030:"da",1076:"xh",8251:"sms",1066:"vi",1164:"prs",1077:"zu",6203:"sma-NO",1106:"cy",1125:"dv",1040:"it",7227:"sms",1160:"wo",2067:"nl-BE",2064:"it-CH",1103:"sa",1157:"sah",1043:"nl",1041:"ja",7194:"sr-Cyrl-BA",1144:"ii",3081:"en-AU",1099:"kn",3098:"sr",1130:"yo",10249:"en-BZ",1087:"kk",6170:"sr-Latn-BA",4105:"en-CA",1107:"km",2074:"sr-Latn",9225:"en-029",1158:"quc",1132:"nso"}],Ke=new d.Struct({platformID:d.uint16,encodingID:d.uint16,languageID:d.uint16,nameID:d.uint16,length:d.uint16,string:new d.Pointer(d.uint16,new d.String("length",function(at){return oi(at.platformID,at.encodingID,at.languageID)}),{type:"parent",relativeTo:function(Te){return Te.parent.stringOffset},allowNull:!1})}),_t=new d.Struct({length:d.uint16,tag:new d.Pointer(d.uint16,new d.String("length","utf16be"),{type:"parent",relativeTo:function(Te){return Te.stringOffset}})}),Nt=new d.VersionedStruct(d.uint16,{0:{count:d.uint16,stringOffset:d.uint16,records:new d.Array(Ke,"count")},1:{count:d.uint16,stringOffset:d.uint16,records:new d.Array(Ke,"count"),langTagCount:d.uint16,langTags:new d.Array(_t,"langTagCount")}}),ut=["copyright","fontFamily","fontSubfamily","uniqueSubfamily","fullName","version","postscriptName","trademark","manufacturer","designer","description","vendorURL","designerURL","license","licenseURL",null,"preferredFamily","preferredSubfamily","compatibleFull","sampleText","postscriptCIDFontName","wwsFamilyName","wwsSubfamilyName"];Nt.process=function(at){for(var se,Te={},Je=x(this.records);!(se=Je()).done;){var pe=se.value,De=je[pe.platformID][pe.languageID];null==De&&null!=this.langTags&&pe.languageID>=32768&&(De=this.langTags[pe.languageID-32768].tag),null==De&&(De=pe.platformID+"-"+pe.languageID);var st=pe.nameID>=256?"fontFeatures":ut[pe.nameID]||pe.nameID;null==Te[st]&&(Te[st]={});var wt=Te[st];pe.nameID>=256&&(wt=wt[pe.nameID]||(wt[pe.nameID]={})),("string"==typeof pe.string||"string"!=typeof wt[De])&&(wt[De]=pe.string)}this.records=Te},Nt.preEncode=function(){if(!Array.isArray(this.records)){this.version=0;var at=[];for(var Te in this.records){var Je=this.records[Te];"fontFeatures"!==Te&&(at.push({platformID:3,encodingID:1,languageID:1033,nameID:ut.indexOf(Te),length:v.byteLength(Je.en,"utf16le"),string:Je.en}),"postscriptName"===Te&&at.push({platformID:1,encodingID:0,languageID:0,nameID:ut.indexOf(Te),length:Je.en.length,string:Je.en}))}this.records=at,this.count=at.length,this.stringOffset=Nt.size(this,null,!1)}};var et=new d.VersionedStruct(d.uint16,{header:{xAvgCharWidth:d.int16,usWeightClass:d.uint16,usWidthClass:d.uint16,fsType:new d.Bitfield(d.uint16,[null,"noEmbedding","viewOnly","editable",null,null,null,null,"noSubsetting","bitmapOnly"]),ySubscriptXSize:d.int16,ySubscriptYSize:d.int16,ySubscriptXOffset:d.int16,ySubscriptYOffset:d.int16,ySuperscriptXSize:d.int16,ySuperscriptYSize:d.int16,ySuperscriptXOffset:d.int16,ySuperscriptYOffset:d.int16,yStrikeoutSize:d.int16,yStrikeoutPosition:d.int16,sFamilyClass:d.int16,panose:new d.Array(d.uint8,10),ulCharRange:new d.Array(d.uint32,4),vendorID:new d.String(4),fsSelection:new d.Bitfield(d.uint16,["italic","underscore","negative","outlined","strikeout","bold","regular","useTypoMetrics","wws","oblique"]),usFirstCharIndex:d.uint16,usLastCharIndex:d.uint16},0:{},1:{typoAscender:d.int16,typoDescender:d.int16,typoLineGap:d.int16,winAscent:d.uint16,winDescent:d.uint16,codePageRange:new d.Array(d.uint32,2)},2:{typoAscender:d.int16,typoDescender:d.int16,typoLineGap:d.int16,winAscent:d.uint16,winDescent:d.uint16,codePageRange:new d.Array(d.uint32,2),xHeight:d.int16,capHeight:d.int16,defaultChar:d.uint16,breakChar:d.uint16,maxContent:d.uint16},5:{typoAscender:d.int16,typoDescender:d.int16,typoLineGap:d.int16,winAscent:d.uint16,winDescent:d.uint16,codePageRange:new d.Array(d.uint32,2),xHeight:d.int16,capHeight:d.int16,defaultChar:d.uint16,breakChar:d.uint16,maxContent:d.uint16,usLowerOpticalPointSize:d.uint16,usUpperOpticalPointSize:d.uint16}}),Xe=et.versions;Xe[3]=Xe[4]=Xe[2];var It=new d.VersionedStruct(d.fixed32,{header:{italicAngle:d.fixed32,underlinePosition:d.int16,underlineThickness:d.int16,isFixedPitch:d.uint32,minMemType42:d.uint32,maxMemType42:d.uint32,minMemType1:d.uint32,maxMemType1:d.uint32},1:{},2:{numberOfGlyphs:d.uint16,glyphNameIndex:new d.Array(d.uint16,"numberOfGlyphs"),names:new d.Array(new d.String(d.uint8))},2.5:{numberOfGlyphs:d.uint16,offsets:new d.Array(d.uint8,"numberOfGlyphs")},3:{},4:{map:new d.Array(d.uint32,function(at){return at.parent.maxp.numGlyphs})}}),Dt=new d.Struct({controlValues:new d.Array(d.int16)}),vt=new d.Struct({instructions:new d.Array(d.uint8)}),Qt=new d.VersionedStruct("head.indexToLocFormat",{0:{offsets:new d.Array(d.uint16)},1:{offsets:new d.Array(d.uint32)}});Qt.process=function(){if(0===this.version)for(var at=0;at>>=1};var qe=new d.Struct({controlValueProgram:new d.Array(d.uint8)}),ke=new d.Array(new d.Buffer),it=function(){function at(Je){this.type=Je}var Te=at.prototype;return Te.getCFFVersion=function(se){for(;se&&!se.hdrSize;)se=se.parent;return se?se.version:-1},Te.decode=function(se,pe){var st=this.getCFFVersion(pe)>=2?se.readUInt32BE():se.readUInt16BE();if(0===st)return[];var yt,wt=se.readUInt8();if(1===wt)yt=d.uint8;else if(2===wt)yt=d.uint16;else if(3===wt)yt=d.uint24;else{if(4!==wt)throw new Error("Bad offset size in CFFIndex: ".concat(wt," ").concat(se.pos));yt=d.uint32}for(var ft=[],si=se.pos+(st+1)*wt-1,Bi=yt.decode(se),zi=0;zi>4;if(15===st)break;pe+=ai[st];var wt=15&De;if(15===wt)break;pe+=ai[wt]}return parseFloat(pe)}return null},at.size=function(Je){return Je.forceLarge&&(Je=32768),(0|Je)!==Je?1+Math.ceil(((""+Je).length+1)/2):-107<=Je&&Je<=107?1:108<=Je&&Je<=1131||-1131<=Je&&Je<=-108?2:-32768<=Je&&Je<=32767?3:5},at.encode=function(Je,se){var pe=Number(se);if(se.forceLarge)return Je.writeUInt8(29),Je.writeInt32BE(pe);if((0|pe)===pe)return-107<=pe&&pe<=107?Je.writeUInt8(pe+139):108<=pe&&pe<=1131?(Je.writeUInt8(247+((pe-=108)>>8)),Je.writeUInt8(255&pe)):-1131<=pe&&pe<=-108?(Je.writeUInt8(251+((pe=-pe-108)>>8)),Je.writeUInt8(255&pe)):-32768<=pe&&pe<=32767?(Je.writeUInt8(28),Je.writeInt16BE(pe)):(Je.writeUInt8(29),Je.writeInt32BE(pe));Je.writeUInt8(30);for(var De=""+pe,st=0;stDe;)pe.pop()},at}(),null],[19,"Subrs",new mi(new it,{type:"local"}),null]]),dt=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],ge=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],ct=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],Kt=new d.Struct({reserved:new d.Reserved(d.uint16),reqFeatureIndex:d.uint16,featureCount:d.uint16,featureIndexes:new d.Array(d.uint16,"featureCount")}),on=new d.Struct({tag:new d.String(4),langSys:new d.Pointer(d.uint16,Kt,{type:"parent"})}),Ge=new d.Struct({defaultLangSys:new d.Pointer(d.uint16,Kt),count:d.uint16,langSysRecords:new d.Array(on,"count")}),_i=new d.Struct({tag:new d.String(4),script:new d.Pointer(d.uint16,Ge,{type:"parent"})}),qt=new d.Array(_i,d.uint16),tt=new d.Struct({featureParams:d.uint16,lookupCount:d.uint16,lookupListIndexes:new d.Array(d.uint16,"lookupCount")}),Bt=new d.Struct({tag:new d.String(4),feature:new d.Pointer(d.uint16,tt,{type:"parent"})}),Ut=new d.Array(Bt,d.uint16),Si=new d.Struct({markAttachmentType:d.uint8,flags:new d.Bitfield(d.uint8,["rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet"])});function Ti(at){var Te=new d.Struct({lookupType:d.uint16,flags:Si,subTableCount:d.uint16,subTables:new d.Array(new d.Pointer(d.uint16,at),"subTableCount"),markFilteringSet:new d.Optional(d.uint16,function(Je){return Je.flags.flags.useMarkFilteringSet})});return new d.LazyArray(new d.Pointer(d.uint16,Te),d.uint16)}var ln=new d.Struct({start:d.uint16,end:d.uint16,startCoverageIndex:d.uint16}),Ji=new d.VersionedStruct(d.uint16,{1:{glyphCount:d.uint16,glyphs:new d.Array(d.uint16,"glyphCount")},2:{rangeCount:d.uint16,rangeRecords:new d.Array(ln,"rangeCount")}}),or=new d.Struct({start:d.uint16,end:d.uint16,class:d.uint16}),fn=new d.VersionedStruct(d.uint16,{1:{startGlyph:d.uint16,glyphCount:d.uint16,classValueArray:new d.Array(d.uint16,"glyphCount")},2:{classRangeCount:d.uint16,classRangeRecord:new d.Array(or,"classRangeCount")}}),Pn=new d.Struct({a:d.uint16,b:d.uint16,deltaFormat:d.uint16}),mn=new d.Struct({sequenceIndex:d.uint16,lookupListIndex:d.uint16}),ui=new d.Struct({glyphCount:d.uint16,lookupCount:d.uint16,input:new d.Array(d.uint16,function(at){return at.glyphCount-1}),lookupRecords:new d.Array(mn,"lookupCount")}),di=new d.Array(new d.Pointer(d.uint16,ui),d.uint16),xi=new d.Struct({glyphCount:d.uint16,lookupCount:d.uint16,classes:new d.Array(d.uint16,function(at){return at.glyphCount-1}),lookupRecords:new d.Array(mn,"lookupCount")}),sn=new d.Array(new d.Pointer(d.uint16,xi),d.uint16),ji=new d.VersionedStruct(d.uint16,{1:{coverage:new d.Pointer(d.uint16,Ji),ruleSetCount:d.uint16,ruleSets:new d.Array(new d.Pointer(d.uint16,di),"ruleSetCount")},2:{coverage:new d.Pointer(d.uint16,Ji),classDef:new d.Pointer(d.uint16,fn),classSetCnt:d.uint16,classSet:new d.Array(new d.Pointer(d.uint16,sn),"classSetCnt")},3:{glyphCount:d.uint16,lookupCount:d.uint16,coverages:new d.Array(new d.Pointer(d.uint16,Ji),"glyphCount"),lookupRecords:new d.Array(mn,"lookupCount")}}),Qn=new d.Struct({backtrackGlyphCount:d.uint16,backtrack:new d.Array(d.uint16,"backtrackGlyphCount"),inputGlyphCount:d.uint16,input:new d.Array(d.uint16,function(at){return at.inputGlyphCount-1}),lookaheadGlyphCount:d.uint16,lookahead:new d.Array(d.uint16,"lookaheadGlyphCount"),lookupCount:d.uint16,lookupRecords:new d.Array(mn,"lookupCount")}),wn=new d.Array(new d.Pointer(d.uint16,Qn),d.uint16),gr=new d.VersionedStruct(d.uint16,{1:{coverage:new d.Pointer(d.uint16,Ji),chainCount:d.uint16,chainRuleSets:new d.Array(new d.Pointer(d.uint16,wn),"chainCount")},2:{coverage:new d.Pointer(d.uint16,Ji),backtrackClassDef:new d.Pointer(d.uint16,fn),inputClassDef:new d.Pointer(d.uint16,fn),lookaheadClassDef:new d.Pointer(d.uint16,fn),chainCount:d.uint16,chainClassSet:new d.Array(new d.Pointer(d.uint16,wn),"chainCount")},3:{backtrackGlyphCount:d.uint16,backtrackCoverage:new d.Array(new d.Pointer(d.uint16,Ji),"backtrackGlyphCount"),inputGlyphCount:d.uint16,inputCoverage:new d.Array(new d.Pointer(d.uint16,Ji),"inputGlyphCount"),lookaheadGlyphCount:d.uint16,lookaheadCoverage:new d.Array(new d.Pointer(d.uint16,Ji),"lookaheadGlyphCount"),lookupCount:d.uint16,lookupRecords:new d.Array(mn,"lookupCount")}}),xn=new d.Fixed(16,"BE",14),Hr=new d.Struct({startCoord:xn,peakCoord:xn,endCoord:xn}),Xo=new d.Struct({axisCount:d.uint16,regionCount:d.uint16,variationRegions:new d.Array(new d.Array(Hr,"axisCount"),"regionCount")}),qr=new d.Struct({shortDeltas:new d.Array(d.int16,function(at){return at.parent.shortDeltaCount}),regionDeltas:new d.Array(d.int8,function(at){return at.parent.regionIndexCount-at.parent.shortDeltaCount}),deltas:function(Te){return Te.shortDeltas.concat(Te.regionDeltas)}}),Fn=new d.Struct({itemCount:d.uint16,shortDeltaCount:d.uint16,regionIndexCount:d.uint16,regionIndexes:new d.Array(d.uint16,"regionIndexCount"),deltaSets:new d.Array(qr,"itemCount")}),Wn=new d.Struct({format:d.uint16,variationRegionList:new d.Pointer(d.uint32,Xo),variationDataCount:d.uint16,itemVariationData:new d.Array(new d.Pointer(d.uint32,Fn),"variationDataCount")}),ro=new d.VersionedStruct(d.uint16,{1:(h={axisIndex:d.uint16},h.axisIndex=d.uint16,h.filterRangeMinValue=xn,h.filterRangeMaxValue=xn,h)}),Or=new d.Struct({conditionCount:d.uint16,conditionTable:new d.Array(new d.Pointer(d.uint32,ro),"conditionCount")}),ar=new d.Struct({featureIndex:d.uint16,alternateFeatureTable:new d.Pointer(d.uint32,tt,{type:"parent"})}),wo=new d.Struct({version:d.fixed32,substitutionCount:d.uint16,substitutions:new d.Array(ar,"substitutionCount")}),Jt=new d.Struct({conditionSet:new d.Pointer(d.uint32,Or,{type:"parent"}),featureTableSubstitution:new d.Pointer(d.uint32,wo,{type:"parent"})}),ci=new d.Struct({majorVersion:d.uint16,minorVersion:d.uint16,featureVariationRecordCount:d.uint32,featureVariationRecords:new d.Array(Jt,"featureVariationRecordCount")}),Ai=function(){function at(Je,se){this.predefinedOps=Je,this.type=se}var Te=at.prototype;return Te.decode=function(se,pe,De){return this.predefinedOps[De[0]]?this.predefinedOps[De[0]]:this.type.decode(se,pe,De)},Te.size=function(se,pe){return this.type.size(se,pe)},Te.encode=function(se,pe,De){var st=this.predefinedOps.indexOf(pe);return-1!==st?st:this.type.encode(se,pe,De)},at}(),Vt=function(at){function Te(){return at.call(this,"UInt8")||this}return M(Te,at),Te.prototype.decode=function(pe){return 127&d.uint8.decode(pe)},Te}(d.Number),Le=new d.Struct({first:d.uint16,nLeft:d.uint8}),Pe=new d.Struct({first:d.uint16,nLeft:d.uint16}),Me=new Ai([ge,["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"]],new mi(new d.VersionedStruct(new Vt,{0:{nCodes:d.uint8,codes:new d.Array(d.uint8,"nCodes")},1:{nRanges:d.uint8,ranges:new d.Array(Le,"nRanges")}}),{lazy:!0})),lt=function(at){function Te(){return at.apply(this,arguments)||this}return M(Te,at),Te.prototype.decode=function(pe,De){for(var st=S.resolveLength(this.length,pe,De),wt=0,yt=[];wt=2?null:se=2||this.isCIDFont)return null;var pe=this.topDict.charset;if(Array.isArray(pe))return pe[se];if(0===se)return".notdef";switch(se-=1,pe.version){case 0:return this.string(pe.glyphs[se]);case 1:case 2:for(var De=0;De>1;if(se=pe[wt+1].first))return pe[wt].fd;De=wt+1}}default:throw new Error("Unknown FDSelect version: ".concat(this.topDict.FDSelect.version))}},Te.privateDictForGlyph=function(se){if(this.topDict.FDSelect){var pe=this.fdForGlyph(se);return this.topDict.FDArray[pe]?this.topDict.FDArray[pe].Private:null}return this.version<2?this.topDict.Private:this.topDict.FDArray[0].Private},_(at,[{key:"postscriptName",get:function(){return this.version<2?this.nameIndex[0]:null}},{key:"fullName",get:function(){return this.string(this.topDict.FullName)}},{key:"familyName",get:function(){return this.string(this.topDict.FamilyName)}}])}(),In=new d.Struct({glyphIndex:d.uint16,vertOriginY:d.int16}),jn=new d.Struct({majorVersion:d.uint16,minorVersion:d.uint16,defaultVertOriginY:d.int16,numVertOriginYMetrics:d.uint16,metrics:new d.Array(In,"numVertOriginYMetrics")}),qn=new d.Struct({height:d.uint8,width:d.uint8,horiBearingX:d.int8,horiBearingY:d.int8,horiAdvance:d.uint8,vertBearingX:d.int8,vertBearingY:d.int8,vertAdvance:d.uint8}),fr=new d.Struct({height:d.uint8,width:d.uint8,bearingX:d.int8,bearingY:d.int8,advance:d.uint8}),Gr=new d.Struct({glyph:d.uint16,xOffset:d.int8,yOffset:d.int8}),br=function(){},_o=function(){},Kn=(new d.VersionedStruct("version",{1:{metrics:fr,data:br},2:{metrics:fr,data:_o},5:{data:_o},6:{metrics:qn,data:br},7:{metrics:qn,data:_o},8:{metrics:fr,pad:new d.Reserved(d.uint8),numComponents:d.uint16,components:new d.Array(Gr,"numComponents")},9:{metrics:qn,pad:new d.Reserved(d.uint8),numComponents:d.uint16,components:new d.Array(Gr,"numComponents")},17:{metrics:fr,dataLen:d.uint32,data:new d.Buffer("dataLen")},18:{metrics:qn,dataLen:d.uint32,data:new d.Buffer("dataLen")},19:{dataLen:d.uint32,data:new d.Buffer("dataLen")}}),new d.Struct({ascender:d.int8,descender:d.int8,widthMax:d.uint8,caretSlopeNumerator:d.int8,caretSlopeDenominator:d.int8,caretOffset:d.int8,minOriginSB:d.int8,minAdvanceSB:d.int8,maxBeforeBL:d.int8,minAfterBL:d.int8,pad:new d.Reserved(d.int8,2)})),xr=new d.Struct({glyphCode:d.uint16,offset:d.uint16}),Dr=new d.VersionedStruct(d.uint16,{header:{imageFormat:d.uint16,imageDataOffset:d.uint32},1:{offsetArray:new d.Array(d.uint32,function(at){return at.parent.lastGlyphIndex-at.parent.firstGlyphIndex+1})},2:{imageSize:d.uint32,bigMetrics:qn},3:{offsetArray:new d.Array(d.uint16,function(at){return at.parent.lastGlyphIndex-at.parent.firstGlyphIndex+1})},4:{numGlyphs:d.uint32,glyphArray:new d.Array(xr,function(at){return at.numGlyphs+1})},5:{imageSize:d.uint32,bigMetrics:qn,numGlyphs:d.uint32,glyphCodeArray:new d.Array(d.uint16,"numGlyphs")}}),To=new d.Struct({firstGlyphIndex:d.uint16,lastGlyphIndex:d.uint16,subtable:new d.Pointer(d.uint32,Dr)}),ca=new d.Struct({indexSubTableArray:new d.Pointer(d.uint32,new d.Array(To,1),{type:"parent"}),indexTablesSize:d.uint32,numberOfIndexSubTables:d.uint32,colorRef:d.uint32,hori:Kn,vert:Kn,startGlyphIndex:d.uint16,endGlyphIndex:d.uint16,ppemX:d.uint8,ppemY:d.uint8,bitDepth:d.uint8,flags:new d.Bitfield(d.uint8,["horizontal","vertical"])}),Ta=new d.Struct({version:d.uint32,numSizes:d.uint32,sizes:new d.Array(ca,"numSizes")}),Sr=new d.Struct({ppem:d.uint16,resolution:d.uint16,imageOffsets:new d.Array(new d.Pointer(d.uint32,"void"),function(at){return at.parent.parent.maxp.numGlyphs+1})}),qa=new d.Struct({version:d.uint16,flags:new d.Bitfield(d.uint16,["renderOutlines"]),numImgTables:d.uint32,imageTables:new d.Array(new d.Pointer(d.uint32,Sr),"numImgTables")}),Aa=new d.Struct({gid:d.uint16,paletteIndex:d.uint16}),lo=new d.Struct({gid:d.uint16,firstLayerIndex:d.uint16,numLayers:d.uint16}),kn=new d.Struct({version:d.uint16,numBaseGlyphRecords:d.uint16,baseGlyphRecord:new d.Pointer(d.uint32,new d.Array(lo,"numBaseGlyphRecords")),layerRecords:new d.Pointer(d.uint32,new d.Array(Aa,"numLayerRecords"),{lazy:!0}),numLayerRecords:d.uint16}),mr=new d.Struct({blue:d.uint8,green:d.uint8,red:d.uint8,alpha:d.uint8}),zo=new d.VersionedStruct(d.uint16,{header:{numPaletteEntries:d.uint16,numPalettes:d.uint16,numColorRecords:d.uint16,colorRecords:new d.Pointer(d.uint32,new d.Array(mr,"numColorRecords")),colorRecordIndices:new d.Array(d.uint16,"numPalettes")},0:{},1:{offsetPaletteTypeArray:new d.Pointer(d.uint32,new d.Array(d.uint32,"numPalettes")),offsetPaletteLabelArray:new d.Pointer(d.uint32,new d.Array(d.uint16,"numPalettes")),offsetPaletteEntryLabelArray:new d.Pointer(d.uint32,new d.Array(d.uint16,"numPaletteEntries"))}}),Ot=new d.VersionedStruct(d.uint16,{1:{coordinate:d.int16},2:{coordinate:d.int16,referenceGlyph:d.uint16,baseCoordPoint:d.uint16},3:{coordinate:d.int16,deviceTable:new d.Pointer(d.uint16,Pn)}}),Qe=new d.Struct({defaultIndex:d.uint16,baseCoordCount:d.uint16,baseCoords:new d.Array(new d.Pointer(d.uint16,Ot),"baseCoordCount")}),Ie=new d.Struct({tag:new d.String(4),minCoord:new d.Pointer(d.uint16,Ot,{type:"parent"}),maxCoord:new d.Pointer(d.uint16,Ot,{type:"parent"})}),Ne=new d.Struct({minCoord:new d.Pointer(d.uint16,Ot),maxCoord:new d.Pointer(d.uint16,Ot),featMinMaxCount:d.uint16,featMinMaxRecords:new d.Array(Ie,"featMinMaxCount")}),Ye=new d.Struct({tag:new d.String(4),minMax:new d.Pointer(d.uint16,Ne,{type:"parent"})}),ht=new d.Struct({baseValues:new d.Pointer(d.uint16,Qe),defaultMinMax:new d.Pointer(d.uint16,Ne),baseLangSysCount:d.uint16,baseLangSysRecords:new d.Array(Ye,"baseLangSysCount")}),kt=new d.Struct({tag:new d.String(4),script:new d.Pointer(d.uint16,ht,{type:"parent"})}),hi=new d.Array(kt,d.uint16),Ii=new d.Array(new d.String(4),d.uint16),en=new d.Struct({baseTagList:new d.Pointer(d.uint16,Ii),baseScriptList:new d.Pointer(d.uint16,hi)}),an=new d.VersionedStruct(d.uint32,{header:{horizAxis:new d.Pointer(d.uint16,en),vertAxis:new d.Pointer(d.uint16,en)},65536:{},65537:{itemVariationStore:new d.Pointer(d.uint32,Wn)}}),Ui=new d.Array(d.uint16,d.uint16),bn=new d.Struct({coverage:new d.Pointer(d.uint16,Ji),glyphCount:d.uint16,attachPoints:new d.Array(new d.Pointer(d.uint16,Ui),"glyphCount")}),Un=new d.VersionedStruct(d.uint16,{1:{coordinate:d.int16},2:{caretValuePoint:d.uint16},3:{coordinate:d.int16,deviceTable:new d.Pointer(d.uint16,Pn)}}),Jn=new d.Array(new d.Pointer(d.uint16,Un),d.uint16),hr=new d.Struct({coverage:new d.Pointer(d.uint16,Ji),ligGlyphCount:d.uint16,ligGlyphs:new d.Array(new d.Pointer(d.uint16,Jn),"ligGlyphCount")}),Er=new d.Struct({markSetTableFormat:d.uint16,markSetCount:d.uint16,coverage:new d.Array(new d.Pointer(d.uint32,Ji),"markSetCount")}),vr=new d.VersionedStruct(d.uint32,{header:{glyphClassDef:new d.Pointer(d.uint16,fn),attachList:new d.Pointer(d.uint16,bn),ligCaretList:new d.Pointer(d.uint16,hr),markAttachClassDef:new d.Pointer(d.uint16,fn)},65536:{},65538:{markGlyphSetsDef:new d.Pointer(d.uint16,Er)},65539:{markGlyphSetsDef:new d.Pointer(d.uint16,Er),itemVariationStore:new d.Pointer(d.uint32,Wn)}}),$n=new d.Bitfield(d.uint16,["xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice"]),Ur={xPlacement:d.int16,yPlacement:d.int16,xAdvance:d.int16,yAdvance:d.int16,xPlaDevice:new d.Pointer(d.uint16,Pn,{type:"global",relativeTo:function(Te){return Te.rel}}),yPlaDevice:new d.Pointer(d.uint16,Pn,{type:"global",relativeTo:function(Te){return Te.rel}}),xAdvDevice:new d.Pointer(d.uint16,Pn,{type:"global",relativeTo:function(Te){return Te.rel}}),yAdvDevice:new d.Pointer(d.uint16,Pn,{type:"global",relativeTo:function(Te){return Te.rel}})},Tr=function(){function at(Je){void 0===Je&&(Je="valueFormat"),this.key=Je}var Te=at.prototype;return Te.buildStruct=function(se){for(var pe=se;!pe[this.key]&&pe.parent;)pe=pe.parent;if(pe[this.key]){var De={rel:function(){return pe._startOffset}},st=pe[this.key];for(var wt in st)st[wt]&&(De[wt]=Ur[wt]);return new d.Struct(De)}},Te.size=function(se,pe){return this.buildStruct(pe).size(se,pe)},Te.decode=function(se,pe){var De=this.buildStruct(pe).decode(se,pe);return delete De.rel,De},at}(),Ln=new d.Struct({secondGlyph:d.uint16,value1:new Tr("valueFormat1"),value2:new Tr("valueFormat2")}),Io=new d.Array(Ln,d.uint16),ko=new d.Struct({value1:new Tr("valueFormat1"),value2:new Tr("valueFormat2")}),ao=new d.VersionedStruct(d.uint16,{1:{xCoordinate:d.int16,yCoordinate:d.int16},2:{xCoordinate:d.int16,yCoordinate:d.int16,anchorPoint:d.uint16},3:{xCoordinate:d.int16,yCoordinate:d.int16,xDeviceTable:new d.Pointer(d.uint16,Pn),yDeviceTable:new d.Pointer(d.uint16,Pn)}}),Ca=new d.Struct({entryAnchor:new d.Pointer(d.uint16,ao,{type:"parent"}),exitAnchor:new d.Pointer(d.uint16,ao,{type:"parent"})}),ds=new d.Struct({class:d.uint16,markAnchor:new d.Pointer(d.uint16,ao,{type:"parent"})}),da=new d.Array(ds,d.uint16),Xa=new d.Array(new d.Pointer(d.uint16,ao),function(at){return at.parent.classCount}),Po=new d.Array(Xa,d.uint16),tl=new d.Array(new d.Pointer(d.uint16,ao),function(at){return at.parent.parent.classCount}),va=new d.Array(tl,d.uint16),za=new d.Array(new d.Pointer(d.uint16,va),d.uint16),vl=new d.VersionedStruct("lookupType",{1:new d.VersionedStruct(d.uint16,{1:{coverage:new d.Pointer(d.uint16,Ji),valueFormat:$n,value:new Tr},2:{coverage:new d.Pointer(d.uint16,Ji),valueFormat:$n,valueCount:d.uint16,values:new d.LazyArray(new Tr,"valueCount")}}),2:new d.VersionedStruct(d.uint16,{1:{coverage:new d.Pointer(d.uint16,Ji),valueFormat1:$n,valueFormat2:$n,pairSetCount:d.uint16,pairSets:new d.LazyArray(new d.Pointer(d.uint16,Io),"pairSetCount")},2:{coverage:new d.Pointer(d.uint16,Ji),valueFormat1:$n,valueFormat2:$n,classDef1:new d.Pointer(d.uint16,fn),classDef2:new d.Pointer(d.uint16,fn),class1Count:d.uint16,class2Count:d.uint16,classRecords:new d.LazyArray(new d.LazyArray(ko,"class2Count"),"class1Count")}}),3:{format:d.uint16,coverage:new d.Pointer(d.uint16,Ji),entryExitCount:d.uint16,entryExitRecords:new d.Array(Ca,"entryExitCount")},4:{format:d.uint16,markCoverage:new d.Pointer(d.uint16,Ji),baseCoverage:new d.Pointer(d.uint16,Ji),classCount:d.uint16,markArray:new d.Pointer(d.uint16,da),baseArray:new d.Pointer(d.uint16,Po)},5:{format:d.uint16,markCoverage:new d.Pointer(d.uint16,Ji),ligatureCoverage:new d.Pointer(d.uint16,Ji),classCount:d.uint16,markArray:new d.Pointer(d.uint16,da),ligatureArray:new d.Pointer(d.uint16,za)},6:{format:d.uint16,mark1Coverage:new d.Pointer(d.uint16,Ji),mark2Coverage:new d.Pointer(d.uint16,Ji),classCount:d.uint16,mark1Array:new d.Pointer(d.uint16,da),mark2Array:new d.Pointer(d.uint16,Po)},7:ji,8:gr,9:{posFormat:d.uint16,lookupType:d.uint16,extension:new d.Pointer(d.uint32,vl)}});vl.versions[9].extension.type=vl;var yl=new d.VersionedStruct(d.uint32,{header:{scriptList:new d.Pointer(d.uint16,qt),featureList:new d.Pointer(d.uint16,Ut),lookupList:new d.Pointer(d.uint16,new Ti(vl))},65536:{},65537:{featureVariations:new d.Pointer(d.uint32,ci)}}),Ls=new d.Array(d.uint16,d.uint16),Bo=Ls,sA=new d.Struct({glyph:d.uint16,compCount:d.uint16,components:new d.Array(d.uint16,function(at){return at.compCount-1})}),Gl=new d.Array(new d.Pointer(d.uint16,sA),d.uint16),$a=new d.VersionedStruct("lookupType",{1:new d.VersionedStruct(d.uint16,{1:{coverage:new d.Pointer(d.uint16,Ji),deltaGlyphID:d.int16},2:{coverage:new d.Pointer(d.uint16,Ji),glyphCount:d.uint16,substitute:new d.LazyArray(d.uint16,"glyphCount")}}),2:{substFormat:d.uint16,coverage:new d.Pointer(d.uint16,Ji),count:d.uint16,sequences:new d.LazyArray(new d.Pointer(d.uint16,Ls),"count")},3:{substFormat:d.uint16,coverage:new d.Pointer(d.uint16,Ji),count:d.uint16,alternateSet:new d.LazyArray(new d.Pointer(d.uint16,Bo),"count")},4:{substFormat:d.uint16,coverage:new d.Pointer(d.uint16,Ji),count:d.uint16,ligatureSets:new d.LazyArray(new d.Pointer(d.uint16,Gl),"count")},5:ji,6:gr,7:{substFormat:d.uint16,lookupType:d.uint16,extension:new d.Pointer(d.uint32,$a)},8:{substFormat:d.uint16,coverage:new d.Pointer(d.uint16,Ji),backtrackCoverage:new d.Array(new d.Pointer(d.uint16,Ji),"backtrackGlyphCount"),lookaheadGlyphCount:d.uint16,lookaheadCoverage:new d.Array(new d.Pointer(d.uint16,Ji),"lookaheadGlyphCount"),glyphCount:d.uint16,substitutes:new d.Array(d.uint16,"glyphCount")}});$a.versions[7].extension.type=$a;var rd=new d.VersionedStruct(d.uint32,{header:{scriptList:new d.Pointer(d.uint16,qt),featureList:new d.Pointer(d.uint16,Ut),lookupList:new d.Pointer(d.uint16,new Ti($a))},65536:{},65537:{featureVariations:new d.Pointer(d.uint32,ci)}}),co=new d.Array(d.uint16,d.uint16),Od=new d.Struct({shrinkageEnableGSUB:new d.Pointer(d.uint16,co),shrinkageDisableGSUB:new d.Pointer(d.uint16,co),shrinkageEnableGPOS:new d.Pointer(d.uint16,co),shrinkageDisableGPOS:new d.Pointer(d.uint16,co),shrinkageJstfMax:new d.Pointer(d.uint16,new Ti(vl)),extensionEnableGSUB:new d.Pointer(d.uint16,co),extensionDisableGSUB:new d.Pointer(d.uint16,co),extensionEnableGPOS:new d.Pointer(d.uint16,co),extensionDisableGPOS:new d.Pointer(d.uint16,co),extensionJstfMax:new d.Pointer(d.uint16,new Ti(vl))}),js=new d.Array(new d.Pointer(d.uint16,Od),d.uint16),QA=new d.Struct({tag:new d.String(4),jstfLangSys:new d.Pointer(d.uint16,js)}),Ia=new d.Struct({extenderGlyphs:new d.Pointer(d.uint16,new d.Array(d.uint16,d.uint16)),defaultLangSys:new d.Pointer(d.uint16,js),langSysCount:d.uint16,langSysRecords:new d.Array(QA,"langSysCount")}),Ha=new d.Struct({tag:new d.String(4),script:new d.Pointer(d.uint16,Ia,{type:"parent"})}),ta=new d.Struct({version:d.uint32,scriptCount:d.uint16,scriptList:new d.Array(Ha,"scriptCount")}),ul=new d.Struct({entry:new(function(){function at(Je){this._size=Je}var Te=at.prototype;return Te.decode=function(se,pe){switch(this.size(0,pe)){case 1:return se.readUInt8();case 2:return se.readUInt16BE();case 3:return se.readUInt24BE();case 4:return se.readUInt32BE()}},Te.size=function(se,pe){return S.resolveLength(this._size,null,pe)},at}())(function(at){return 1+((48&at.parent.entryFormat)>>4)}),outerIndex:function(Te){return Te.entry>>1+(15&Te.parent.entryFormat)},innerIndex:function(Te){return Te.entry&(1<<1+(15&Te.parent.entryFormat))-1}}),Sl=new d.Struct({entryFormat:d.uint16,mapCount:d.uint16,mapData:new d.Array(ul,"mapCount")}),Dc=new d.Struct({majorVersion:d.uint16,minorVersion:d.uint16,itemVariationStore:new d.Pointer(d.uint32,Wn),advanceWidthMapping:new d.Pointer(d.uint32,Sl),LSBMapping:new d.Pointer(d.uint32,Sl),RSBMapping:new d.Pointer(d.uint32,Sl)}),il=new d.Struct({format:d.uint32,length:d.uint32,offset:d.uint32}),Sa=new d.Struct({reserved:new d.Reserved(d.uint16,2),cbSignature:d.uint32,signature:new d.Buffer("cbSignature")}),Rs=new d.Struct({ulVersion:d.uint32,usNumSigs:d.uint16,usFlag:d.uint16,signatures:new d.Array(il,"usNumSigs"),signatureBlocks:new d.Array(Sa,"usNumSigs")}),wl=new d.Struct({rangeMaxPPEM:d.uint16,rangeGaspBehavior:new d.Bitfield(d.uint16,["grayscale","gridfit","symmetricSmoothing","symmetricGridfit"])}),bs=new d.Struct({version:d.uint16,numRanges:d.uint16,gaspRanges:new d.Array(wl,"numRanges")}),od=new d.Struct({pixelSize:d.uint8,maximumWidth:d.uint8,widths:new d.Array(d.uint8,function(at){return at.parent.parent.maxp.numGlyphs})}),Tc=new d.Struct({version:d.uint16,numRecords:d.int16,sizeDeviceRecord:d.int32,records:new d.Array(od,"numRecords")}),ad=new d.Struct({left:d.uint16,right:d.uint16,value:d.int16}),_s=new d.Struct({firstGlyph:d.uint16,nGlyphs:d.uint16,offsets:new d.Array(d.uint16,"nGlyphs"),max:function(Te){return Te.offsets.length&&Math.max.apply(Math,Te.offsets)}}),nl=new d.Struct({off:function(Te){return Te._startOffset-Te.parent.parent._startOffset},len:function(Te){return Te.parent.rowWidth/2*((Te.parent.leftTable.max-Te.off)/Te.parent.rowWidth+1)},values:new d.LazyArray(d.int16,"len")}),Pl=new d.VersionedStruct("format",{0:{nPairs:d.uint16,searchRange:d.uint16,entrySelector:d.uint16,rangeShift:d.uint16,pairs:new d.Array(ad,"nPairs")},2:{rowWidth:d.uint16,leftTable:new d.Pointer(d.uint16,_s,{type:"parent"}),rightTable:new d.Pointer(d.uint16,_s,{type:"parent"}),array:new d.Pointer(d.uint16,nl,{type:"parent"})},3:{glyphCount:d.uint16,kernValueCount:d.uint8,leftClassCount:d.uint8,rightClassCount:d.uint8,flags:d.uint8,kernValue:new d.Array(d.int16,"kernValueCount"),leftClass:new d.Array(d.uint8,"glyphCount"),rightClass:new d.Array(d.uint8,"glyphCount"),kernIndex:new d.Array(d.uint8,function(at){return at.leftClassCount*at.rightClassCount})}}),rl=new d.VersionedStruct("version",{0:{subVersion:d.uint16,length:d.uint16,format:d.uint8,coverage:new d.Bitfield(d.uint8,["horizontal","minimum","crossStream","override"]),subtable:Pl,padding:new d.Reserved(d.uint8,function(at){return at.length-at._currentOffset})},1:{length:d.uint32,coverage:new d.Bitfield(d.uint8,[null,null,null,null,null,"variation","crossStream","vertical"]),format:d.uint8,tupleIndex:d.uint16,subtable:Pl,padding:new d.Reserved(d.uint8,function(at){return at.length-at._currentOffset})}}),ia=new d.VersionedStruct(d.uint16,{0:{nTables:d.uint16,tables:new d.Array(rl,"nTables")},1:{reserved:new d.Reserved(d.uint16),nTables:d.uint32,tables:new d.Array(rl,"nTables")}}),An=new d.Struct({version:d.uint16,numGlyphs:d.uint16,yPels:new d.Array(d.uint8,"numGlyphs")}),Jr=new d.Struct({version:d.uint16,fontNumber:d.uint32,pitch:d.uint16,xHeight:d.uint16,style:d.uint16,typeFamily:d.uint16,capHeight:d.uint16,symbolSet:d.uint16,typeface:new d.String(16),characterComplement:new d.String(8),fileName:new d.String(6),strokeWeight:new d.String(1),widthType:new d.String(1),serifStyle:d.uint8,reserved:new d.Reserved(d.uint8)}),ba=new d.Struct({bCharSet:d.uint8,xRatio:d.uint8,yStartRatio:d.uint8,yEndRatio:d.uint8}),lr=new d.Struct({yPelHeight:d.uint16,yMax:d.int16,yMin:d.int16}),gc=new d.Struct({recs:d.uint16,startsz:d.uint8,endsz:d.uint8,entries:new d.Array(lr,"recs")}),Fl=new d.Struct({version:d.uint16,numRecs:d.uint16,numRatios:d.uint16,ratioRanges:new d.Array(ba,"numRatios"),offsets:new d.Array(d.uint16,"numRatios"),groups:new d.Array(gc,"numRecs")}),Ic=new d.Struct({version:d.uint16,ascent:d.int16,descent:d.int16,lineGap:d.int16,advanceHeightMax:d.int16,minTopSideBearing:d.int16,minBottomSideBearing:d.int16,yMaxExtent:d.int16,caretSlopeRise:d.int16,caretSlopeRun:d.int16,caretOffset:d.int16,reserved:new d.Reserved(d.int16,4),metricDataFormat:d.int16,numberOfMetrics:d.uint16}),kc=new d.Struct({advance:d.uint16,bearing:d.int16}),es=new d.Struct({metrics:new d.LazyArray(kc,function(at){return at.parent.vhea.numberOfMetrics}),bearings:new d.LazyArray(d.int16,function(at){return at.parent.maxp.numGlyphs-at.parent.vhea.numberOfMetrics})}),lA=new d.Fixed(16,"BE",14),cA=new d.Struct({fromCoord:lA,toCoord:lA}),fc=new d.Struct({pairCount:d.uint16,correspondence:new d.Array(cA,"pairCount")}),ZA=new d.Struct({version:d.fixed32,axisCount:d.uint32,segment:new d.Array(fc,"axisCount")}),jc=function(){function at(Je,se,pe){this.type=Je,this.stream=se,this.parent=pe,this.base=this.stream.pos,this._items=[]}var Te=at.prototype;return Te.getItem=function(se){if(null==this._items[se]){var pe=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.parent)*se,this._items[se]=this.type.decode(this.stream,this.parent),this.stream.pos=pe}return this._items[se]},Te.inspect=function(){return"[UnboundedArray ".concat(this.type.constructor.name,"]")},at}(),Ho=function(at){function Te(se){return at.call(this,se,0)||this}return M(Te,at),Te.prototype.decode=function(pe,De){return new jc(this.type,pe,De)},Te}(d.Array),ya=function(Te){void 0===Te&&(Te=d.uint16),Te=new(function(){function wt(ft){this.type=ft}var yt=wt.prototype;return yt.decode=function(si,Bi){return this.type.decode(si,Bi=Bi.parent.parent)},yt.size=function(si,Bi){return this.type.size(si,Bi=Bi.parent.parent)},yt.encode=function(si,Bi,zi){return this.type.encode(si,Bi,zi=zi.parent.parent)},wt}())(Te);var se=new d.Struct({unitSize:d.uint16,nUnits:d.uint16,searchRange:d.uint16,entrySelector:d.uint16,rangeShift:d.uint16}),pe=new d.Struct({lastGlyph:d.uint16,firstGlyph:d.uint16,value:Te}),De=new d.Struct({lastGlyph:d.uint16,firstGlyph:d.uint16,values:new d.Pointer(d.uint16,new d.Array(Te,function(wt){return wt.lastGlyph-wt.firstGlyph+1}),{type:"parent"})}),st=new d.Struct({glyph:d.uint16,value:Te});return new d.VersionedStruct(d.uint16,{0:{values:new Ho(Te)},2:{binarySearchHeader:se,segments:new d.Array(pe,function(wt){return wt.binarySearchHeader.nUnits})},4:{binarySearchHeader:se,segments:new d.Array(De,function(wt){return wt.binarySearchHeader.nUnits})},6:{binarySearchHeader:se,segments:new d.Array(st,function(wt){return wt.binarySearchHeader.nUnits})},8:{firstGlyph:d.uint16,count:d.uint16,values:new d.Array(Te,"count")}})};function ol(at,Te){void 0===at&&(at={}),void 0===Te&&(Te=d.uint16);var Je=Object.assign({newState:d.uint16,flags:d.uint16},at),se=new d.Struct(Je),pe=new Ho(new d.Array(d.uint16,function(st){return st.nClasses}));return new d.Struct({nClasses:d.uint32,classTable:new d.Pointer(d.uint32,new ya(Te)),stateArray:new d.Pointer(d.uint32,pe),entryTable:new d.Pointer(d.uint32,new Ho(se))})}var AA=new d.VersionedStruct("format",{0:{deltas:new d.Array(d.int16,32)},1:{deltas:new d.Array(d.int16,32),mappingData:new ya(d.uint16)},2:{standardGlyph:d.uint16,controlPoints:new d.Array(d.uint16,32)},3:{standardGlyph:d.uint16,controlPoints:new d.Array(d.uint16,32),mappingData:new ya(d.uint16)}}),JA=new d.Struct({version:d.fixed32,format:d.uint16,defaultBaseline:d.uint16,subtable:AA}),Cl=new d.Struct({setting:d.uint16,nameIndex:d.int16,name:function(Te){return Te.parent.parent.parent.name.records.fontFeatures[Te.nameIndex]}}),ts=new d.Struct({feature:d.uint16,nSettings:d.uint16,settingTable:new d.Pointer(d.uint32,new d.Array(Cl,"nSettings"),{type:"parent"}),featureFlags:new d.Bitfield(d.uint8,[null,null,null,null,null,null,"hasDefault","exclusive"]),defaultSetting:d.uint8,nameIndex:d.int16,name:function(Te){return Te.parent.parent.name.records.fontFeatures[Te.nameIndex]}}),Ra=new d.Struct({version:d.fixed32,featureNameCount:d.uint16,reserved1:new d.Reserved(d.uint16),reserved2:new d.Reserved(d.uint32),featureNames:new d.Array(ts,"featureNameCount")}),Vs=new d.Struct({axisTag:new d.String(4),minValue:d.fixed32,defaultValue:d.fixed32,maxValue:d.fixed32,flags:d.uint16,nameID:d.uint16,name:function(Te){return Te.parent.parent.name.records.fontFeatures[Te.nameID]}}),Wc=new d.Struct({nameID:d.uint16,name:function(Te){return Te.parent.parent.name.records.fontFeatures[Te.nameID]},flags:d.uint16,coord:new d.Array(d.fixed32,function(at){return at.parent.axisCount}),postscriptNameID:new d.Optional(d.uint16,function(at){return at.parent.instanceSize-at._currentOffset>0})}),Qc=new d.Struct({version:d.fixed32,offsetToData:d.uint16,countSizePairs:d.uint16,axisCount:d.uint16,axisSize:d.uint16,instanceCount:d.uint16,instanceSize:d.uint16,axis:new d.Array(Vs,"axisCount"),instance:new d.Array(Wc,"instanceCount")}),Kc=new d.Fixed(16,"BE",14),Ld=function(){function at(){}return at.decode=function(Je,se){return se.flags?Je.readUInt32BE():2*Je.readUInt16BE()},at}(),SA=new d.Struct({version:d.uint16,reserved:new d.Reserved(d.uint16),axisCount:d.uint16,globalCoordCount:d.uint16,globalCoords:new d.Pointer(d.uint32,new d.Array(new d.Array(Kc,"axisCount"),"globalCoordCount")),glyphCount:d.uint16,flags:d.uint16,offsetToData:d.uint32,offsets:new d.Array(new d.Pointer(Ld,"void",{relativeTo:function(Te){return Te.offsetToData},allowNull:!1}),function(at){return at.glyphCount+1})}),PA=new d.Struct({length:d.uint16,coverage:d.uint16,subFeatureFlags:d.uint32,stateTable:new function Vc(at,Te){void 0===at&&(at={}),void 0===Te&&(Te=d.uint16);var Je=new d.Struct({version:function(){return 8},firstGlyph:d.uint16,values:new d.Array(d.uint8,d.uint16)}),se=Object.assign({newStateOffset:d.uint16,newState:function(yt){return(yt.newStateOffset-(yt.parent.stateArray.base-yt.parent._startOffset))/yt.parent.nClasses},flags:d.uint16},at),pe=new d.Struct(se),De=new Ho(new d.Array(d.uint8,function(wt){return wt.nClasses}));return new d.Struct({nClasses:d.uint16,classTable:new d.Pointer(d.uint16,Je),stateArray:new d.Pointer(d.uint16,De),entryTable:new d.Pointer(d.uint16,new Ho(pe))})}}),Re=new d.Struct({justClass:d.uint32,beforeGrowLimit:d.fixed32,beforeShrinkLimit:d.fixed32,afterGrowLimit:d.fixed32,afterShrinkLimit:d.fixed32,growFlags:d.uint16,shrinkFlags:d.uint16}),jt=new d.Array(Re,d.uint32),pt=new d.VersionedStruct("actionType",{0:{lowerLimit:d.fixed32,upperLimit:d.fixed32,order:d.uint16,glyphs:new d.Array(d.uint16,d.uint16)},1:{addGlyph:d.uint16},2:{substThreshold:d.fixed32,addGlyph:d.uint16,substGlyph:d.uint16},3:{},4:{variationAxis:d.uint32,minimumLimit:d.fixed32,noStretchValue:d.fixed32,maximumLimit:d.fixed32},5:{flags:d.uint16,glyph:d.uint16}}),Lt=new d.Struct({actionClass:d.uint16,actionType:d.uint16,actionLength:d.uint32,actionData:pt,padding:new d.Reserved(d.uint8,function(at){return at.actionLength-at._currentOffset})}),wi=new d.Array(Lt,d.uint32),rn=new d.Struct({lookupTable:new ya(new d.Pointer(d.uint16,wi))}),Bn=new d.Struct({classTable:new d.Pointer(d.uint16,PA,{type:"parent"}),wdcOffset:d.uint16,postCompensationTable:new d.Pointer(d.uint16,rn,{type:"parent"}),widthDeltaClusters:new ya(new d.Pointer(d.uint16,jt,{type:"parent",relativeTo:function(Te){return Te.wdcOffset}}))}),Mr=new d.Struct({version:d.uint32,format:d.uint16,horizontal:new d.Pointer(d.uint16,Bn),vertical:new d.Pointer(d.uint16,Bn)}),$o={action:d.uint16},ua={markIndex:d.uint16,currentIndex:d.uint16},Vo={currentInsertIndex:d.uint16,markedInsertIndex:d.uint16},Ao=new d.Struct({items:new Ho(new d.Pointer(d.uint32,new ya))}),ha=new d.VersionedStruct("type",{0:{stateTable:new ol},1:{stateTable:new ol(ua),substitutionTable:new d.Pointer(d.uint32,Ao)},2:{stateTable:new ol($o),ligatureActions:new d.Pointer(d.uint32,new Ho(d.uint32)),components:new d.Pointer(d.uint32,new Ho(d.uint16)),ligatureList:new d.Pointer(d.uint32,new Ho(d.uint16))},4:{lookupTable:new ya},5:{stateTable:new ol(Vo),insertionActions:new d.Pointer(d.uint32,new Ho(d.uint16))}}),ka=new d.Struct({length:d.uint32,coverage:d.uint24,type:d.uint8,subFeatureFlags:d.uint32,table:ha,padding:new d.Reserved(d.uint8,function(at){return at.length-at._currentOffset})}),is=new d.Struct({featureType:d.uint16,featureSetting:d.uint16,enableFlags:d.uint32,disableFlags:d.uint32}),ic=new d.Struct({defaultFlags:d.uint32,chainLength:d.uint32,nFeatureEntries:d.uint32,nSubtables:d.uint32,features:new d.Array(is,"nFeatureEntries"),subtables:new d.Array(ka,"nSubtables")}),Ol=new d.Struct({version:d.uint16,unused:new d.Reserved(d.uint16),nChains:d.uint32,chains:new d.Array(ic,"nChains")}),Sc=new d.Struct({left:d.int16,top:d.int16,right:d.int16,bottom:d.int16}),xs=new d.Struct({version:d.fixed32,format:d.uint16,lookupTable:new ya(Sc)}),Pr={};Pr.cmap=ae,Pr.head=Ee,Pr.hhea=Fe,Pr.hmtx=mt,Pr.maxp=St,Pr.name=Nt,Pr["OS/2"]=et,Pr.post=It,Pr.fpgm=vt,Pr.loca=Qt,Pr.prep=qe,Pr["cvt "]=Dt,Pr.glyf=ke,Pr["CFF "]=$i,Pr.CFF2=$i,Pr.VORG=jn,Pr.EBLC=Ta,Pr.CBLC=Pr.EBLC,Pr.sbix=qa,Pr.COLR=kn,Pr.CPAL=zo,Pr.BASE=an,Pr.GDEF=vr,Pr.GPOS=yl,Pr.GSUB=rd,Pr.JSTF=ta,Pr.HVAR=Dc,Pr.DSIG=Rs,Pr.gasp=bs,Pr.hdmx=Tc,Pr.kern=ia,Pr.LTSH=An,Pr.PCLT=Jr,Pr.VDMX=Fl,Pr.vhea=Ic,Pr.vmtx=es,Pr.avar=ZA,Pr.bsln=JA,Pr.feat=Ra,Pr.fvar=Qc,Pr.gvar=SA,Pr.just=Mr,Pr.morx=Ol,Pr.opbd=xs;var w,Ws=new d.Struct({tag:new d.String(4),checkSum:d.uint32,offset:new d.Pointer(d.uint32,"void",{type:"global"}),length:d.uint32}),bl=new d.Struct({tag:new d.String(4),numTables:d.uint16,searchRange:d.uint16,entrySelector:d.uint16,rangeShift:d.uint16,tables:new d.Array(Ws,"numTables")});function sd(at,Te){for(var Je=0,se=at.length-1;Je<=se;){var pe=Je+se>>1,De=Te(at[pe]);if(De<0)se=pe-1;else{if(!(De>0))return pe;Je=pe+1}}return-1}function pa(at,Te){for(var Je=[];at>1;if(seyt.endCode.get(Bi))){var zi=yt.idRangeOffset.get(Bi),ki=void 0;if(0===zi)ki=se+yt.idDelta.get(Bi);else{var qi=zi/2+(se-yt.startCode.get(Bi))-(yt.segCount-Bi);0!==(ki=yt.glyphIndexArray.get(qi)||0)&&(ki+=yt.idDelta.get(Bi))}return 65535&ki}ft=Bi+1}}return 0;case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return yt.glyphIndices.get(se-yt.firstCode)||0;case 12:case 13:for(var un=0,Dn=yt.nGroups-1;un<=Dn;){var dr=un+Dn>>1,eo=yt.groups.get(dr);if(seeo.endCharCode))return 12===yt.version?eo.glyphID+(se-eo.startCharCode):eo.glyphID;un=dr+1}}return 0;case 14:throw new Error("TODO: cmap format 14");default:throw new Error("Unknown cmap format ".concat(yt.version))}},Te.getVariationSelector=function(se,pe){if(!this.uvs)return 0;var De=this.uvs.varSelectors.toArray(),st=sd(De,function(yt){return pe-yt.varSelector}),wt=De[st];return-1!==st&&wt.defaultUVS&&(st=sd(wt.defaultUVS,function(yt){return seyt.startUnicodeValue+yt.additionalCount?1:0})),-1!==st&&wt.nonDefaultUVS&&-1!==(st=sd(wt.nonDefaultUVS,function(yt){return se-yt.unicodeValue}))?wt.nonDefaultUVS[st].glyphID:0},Te.getCharacterSet=function(){var se=this.cmap;switch(se.version){case 0:return pa(0,se.codeMap.length);case 4:for(var pe=[],De=se.endCode.toArray(),st=0;st=to.glyphID&&se<=to.glyphID+(to.endCharCode-to.startCharCode)&&Dn.push(to.startCharCode+(se-to.glyphID))}return Dn;case 13:for(var Eo,mo=[],Qo=x(pe.groups.toArray());!(Eo=Qo()).done;){var Ko=Eo.value;se===Ko.glyphID&&mo.push.apply(mo,pa(Ko.startCharCode,Ko.endCharCode+1))}return mo;default:throw new Error("Unknown cmap format ".concat(pe.version))}},at}()).prototype,"getCharacterSet",[he],Object.getOwnPropertyDescriptor(w.prototype,"getCharacterSet"),w.prototype),re(w.prototype,"codePointsForGlyph",[he],Object.getOwnPropertyDescriptor(w.prototype,"codePointsForGlyph"),w.prototype),w),Ue=function(){function at(Je){this.kern=Je.kern}var Te=at.prototype;return Te.process=function(se,pe){for(var De=0;De=0&&(ft=si.pairs[Bi].value);break;case 2:var ki=0;pe>=si.rightTable.firstGlyph&&pe=si.leftTable.firstGlyph&&se=si.glyphCount||pe>=si.glyphCount)return 0;ft=si.kernValue[si.kernIndex[si.leftClass[se]*si.rightClassCount+si.rightClass[pe]]];break;default:throw new Error("Unsupported kerning sub-table format ".concat(yt.format))}yt.coverage.override?De=ft:De+=ft}}return De},at}(),Ct=function(){function at(Je){this.font=Je}var Te=at.prototype;return Te.positionGlyphs=function(se,pe){for(var De=0,st=0,wt=0;wt1&&(yt.minX+=(wt.codePoints.length-1)*yt.width/wt.codePoints.length);for(var ft=-pe[De].xAdvance,si=0,Bi=this.font.unitsPerEm/16,zi=De+1;zi<=st;zi++){var ki=se[zi],qi=ki.cbox,un=pe[zi],Dn=this.getCombiningClass(ki.codePoints[0]);if("Not_Reordered"!==Dn){switch(un.xOffset=un.yOffset=0,Dn){case"Double_Above":case"Double_Below":un.xOffset+=yt.minX-qi.width/2-qi.minX;break;case"Attached_Below_Left":case"Below_Left":case"Above_Left":un.xOffset+=yt.minX-qi.minX;break;case"Attached_Above_Right":case"Below_Right":case"Above_Right":un.xOffset+=yt.maxX-qi.width-qi.minX;break;default:un.xOffset+=yt.minX+(yt.width-qi.width)/2-qi.minX}switch(Dn){case"Double_Below":case"Below_Left":case"Below":case"Below_Right":case"Attached_Below_Left":case"Attached_Below":("Attached_Below_Left"===Dn||"Attached_Below"===Dn)&&(yt.minY+=Bi),un.yOffset=-yt.minY-qi.maxY,yt.minY+=qi.height;break;case"Double_Above":case"Above_Left":case"Above":case"Above_Right":case"Attached_Above":case"Attached_Above_Right":("Attached_Above"===Dn||"Attached_Above_Right"===Dn)&&(yt.maxY+=Bi),un.yOffset=yt.maxY-qi.minY,yt.maxY+=qi.height}un.xAdvance=un.yAdvance=0,un.xOffset+=ft,un.yOffset+=si}else ft-=un.xAdvance,si-=un.yAdvance}},Te.getCombiningClass=function(se){var pe=z.getCombiningClass(se);if(3584==(-256&se))if("Not_Reordered"===pe)switch(se){case 3633:case 3636:case 3637:case 3638:case 3639:case 3655:case 3660:case 3645:case 3662:return"Above_Right";case 3761:case 3764:case 3765:case 3766:case 3767:case 3771:case 3788:case 3789:return"Above";case 3772:return"Below"}else if(3642===se)return"Below_Right";switch(pe){case"CCC10":case"CCC11":case"CCC12":case"CCC13":case"CCC14":case"CCC15":case"CCC16":case"CCC17":case"CCC18":case"CCC20":case"CCC22":case"CCC29":case"CCC32":case"CCC118":case"CCC129":case"CCC132":return"Below";case"CCC23":return"Attached_Above";case"CCC24":case"CCC107":return"Above_Right";case"CCC25":case"CCC19":return"Above_Left";case"CCC26":case"CCC27":case"CCC28":case"CCC30":case"CCC31":case"CCC33":case"CCC34":case"CCC35":case"CCC36":case"CCC122":case"CCC130":return"Above";case"CCC21":break;case"CCC103":return"Below_Right"}return pe},at}(),Xt=function(){function at(Je,se,pe,De){void 0===Je&&(Je=1/0),void 0===se&&(se=1/0),void 0===pe&&(pe=-1/0),void 0===De&&(De=-1/0),this.minX=Je,this.minY=se,this.maxX=pe,this.maxY=De}var Te=at.prototype;return Te.addPoint=function(se,pe){Math.abs(se)!==1/0&&(sethis.maxX&&(this.maxX=se)),Math.abs(pe)!==1/0&&(pethis.maxY&&(this.maxY=pe))},Te.copy=function(){return new at(this.minX,this.minY,this.maxX,this.maxY)},_(at,[{key:"width",get:function(){return this.maxX-this.minX}},{key:"height",get:function(){return this.maxY-this.minY}}])}(),Mi={Caucasian_Albanian:"aghb",Arabic:"arab",Imperial_Aramaic:"armi",Armenian:"armn",Avestan:"avst",Balinese:"bali",Bamum:"bamu",Bassa_Vah:"bass",Batak:"batk",Bengali:["bng2","beng"],Bopomofo:"bopo",Brahmi:"brah",Braille:"brai",Buginese:"bugi",Buhid:"buhd",Chakma:"cakm",Canadian_Aboriginal:"cans",Carian:"cari",Cham:"cham",Cherokee:"cher",Coptic:"copt",Cypriot:"cprt",Cyrillic:"cyrl",Devanagari:["dev2","deva"],Deseret:"dsrt",Duployan:"dupl",Egyptian_Hieroglyphs:"egyp",Elbasan:"elba",Ethiopic:"ethi",Georgian:"geor",Glagolitic:"glag",Gothic:"goth",Grantha:"gran",Greek:"grek",Gujarati:["gjr2","gujr"],Gurmukhi:["gur2","guru"],Hangul:"hang",Han:"hani",Hanunoo:"hano",Hebrew:"hebr",Hiragana:"hira",Pahawh_Hmong:"hmng",Katakana_Or_Hiragana:"hrkt",Old_Italic:"ital",Javanese:"java",Kayah_Li:"kali",Katakana:"kana",Kharoshthi:"khar",Khmer:"khmr",Khojki:"khoj",Kannada:["knd2","knda"],Kaithi:"kthi",Tai_Tham:"lana",Lao:"lao ",Latin:"latn",Lepcha:"lepc",Limbu:"limb",Linear_A:"lina",Linear_B:"linb",Lisu:"lisu",Lycian:"lyci",Lydian:"lydi",Mahajani:"mahj",Mandaic:"mand",Manichaean:"mani",Mende_Kikakui:"mend",Meroitic_Cursive:"merc",Meroitic_Hieroglyphs:"mero",Malayalam:["mlm2","mlym"],Modi:"modi",Mongolian:"mong",Mro:"mroo",Meetei_Mayek:"mtei",Myanmar:["mym2","mymr"],Old_North_Arabian:"narb",Nabataean:"nbat",Nko:"nko ",Ogham:"ogam",Ol_Chiki:"olck",Old_Turkic:"orkh",Oriya:["ory2","orya"],Osmanya:"osma",Palmyrene:"palm",Pau_Cin_Hau:"pauc",Old_Permic:"perm",Phags_Pa:"phag",Inscriptional_Pahlavi:"phli",Psalter_Pahlavi:"phlp",Phoenician:"phnx",Miao:"plrd",Inscriptional_Parthian:"prti",Rejang:"rjng",Runic:"runr",Samaritan:"samr",Old_South_Arabian:"sarb",Saurashtra:"saur",Shavian:"shaw",Sharada:"shrd",Siddham:"sidd",Khudawadi:"sind",Sinhala:"sinh",Sora_Sompeng:"sora",Sundanese:"sund",Syloti_Nagri:"sylo",Syriac:"syrc",Tagbanwa:"tagb",Takri:"takr",Tai_Le:"tale",New_Tai_Lue:"talu",Tamil:["tml2","taml"],Tai_Viet:"tavt",Telugu:["tel2","telu"],Tifinagh:"tfng",Tagalog:"tglg",Thaana:"thaa",Thai:"thai",Tibetan:"tibt",Tirhuta:"tirh",Ugaritic:"ugar",Vai:"vai ",Warang_Citi:"wara",Old_Persian:"xpeo",Cuneiform:"xsux",Yi:"yi ",Inherited:"zinh",Common:"zyyy",Unknown:"zzzz"},tn={};for(var cn in Mi){var zn=Mi[cn];if(Array.isArray(zn))for(var jr,rr=x(zn);!(jr=rr()).done;)tn[jr.value]=cn;else tn[zn]=cn}var Ll={arab:!0,hebr:!0,syrc:!0,thaa:!0,cprt:!0,khar:!0,phnx:!0,"nko ":!0,lydi:!0,avst:!0,armi:!0,phli:!0,prti:!0,sarb:!0,orkh:!0,samr:!0,mand:!0,merc:!0,mero:!0,mani:!0,mend:!0,nbat:!0,narb:!0,palm:!0,phlp:!0};function Vr(at){return Ll[at]?"rtl":"ltr"}for(var Ah=function(){return _(function at(Te,Je,se,pe,De){if(this.glyphs=Te,this.positions=null,this.script=se,this.language=pe||null,this.direction=De||Vr(se),this.features={},Array.isArray(Je))for(var wt,st=x(Je);!(wt=st()).done;)this.features[wt.value]=!0;else"object"==typeof Je&&(this.features=Je)},[{key:"advanceWidth",get:function(){for(var pe,Je=0,se=x(this.positions);!(pe=se()).done;)Je+=pe.value.xAdvance;return Je}},{key:"advanceHeight",get:function(){for(var pe,Je=0,se=x(this.positions);!(pe=se()).done;)Je+=pe.value.yAdvance;return Je}},{key:"bbox",get:function(){for(var Je=new Xt,se=0,pe=0,De=0;De>1]).firstGlyph)return null;if(sewt.lastGlyph))return 2===this.table.version?wt.value:wt.values[se-wt.firstGlyph];pe=st+1}}return null;case 6:for(var yt=0,ft=this.table.binarySearchHeader.nUnits-1;yt<=ft;){var st,wt;if(65535===(wt=this.table.segments[st=yt+ft>>1]).glyph)return null;if(sewt.glyph))return wt.value;yt=st+1}}return null;case 8:return this.table.values[se-this.table.firstGlyph];default:throw new Error("Unknown lookup table format: ".concat(this.table.version))}},Te.glyphsForValue=function(se){var pe=[];switch(this.table.version){case 2:case 4:for(var st,De=x(this.table.segments);!(st=De()).done;){var wt=st.value;if(2===this.table.version&&wt.value===se)pe.push.apply(pe,pa(wt.firstGlyph,wt.lastGlyph+1));else for(var yt=0;yt=-1;){var ft=null,si=1,Bi=!0;wt===se.length||-1===wt?si=0:65535===(ft=se[wt]).id?si=2:null==(si=this.lookupTable.lookup(ft.id))&&(si=1);var zi=this.stateTable.stateArray.getItem(st),qi=this.stateTable.entryTable.getItem(zi[si]);0!==si&&2!==si&&(De(ft,qi,wt),Bi=!(16384&qi.flags)),st=qi.newState,Bi&&(wt+=yt)}return se},Te.traverse=function(se,pe,De){if(void 0===pe&&(pe=0),void 0===De&&(De=new Set),!De.has(pe)){De.add(pe);for(var st=this.stateTable,wt=st.nClasses,ft=st.entryTable,si=st.stateArray.getItem(pe),Bi=4;Bi=0;)65535===se[Dn].id&&se.splice(Dn,1),Dn--;return se},Te.processSubtable=function(se,pe){if(this.subtable=se,this.glyphs=pe,4!==this.subtable.type){this.ligatureStack=[],this.markedGlyph=null,this.firstGlyph=null,this.lastGlyph=null,this.markedIndex=null;var De=this.getStateMachine(se),st=this.getProcessor();return De.process(this.glyphs,!!(4194304&this.subtable.coverage),st)}this.processNoncontextualSubstitutions(this.subtable,this.glyphs)},Te.getStateMachine=function(se){return new qc(se.table.stateTable)},Te.getProcessor=function(){switch(this.subtable.type){case 0:return this.processIndicRearragement;case 1:return this.processContextualSubstitution;case 2:return this.processLigature;case 4:return this.processNoncontextualSubstitutions;case 5:return this.processGlyphInsertion;default:throw new Error("Invalid morx subtable type: ".concat(this.subtable.type))}},Te.processIndicRearragement=function(se,pe,De){32768&pe.flags&&(this.firstGlyph=De),8192&pe.flags&&(this.lastGlyph=De),function En(at,Te,Je,se){switch(Te){case 0:return at;case 1:return Ga(at,[Je,1],[se,0]);case 2:return Ga(at,[Je,0],[se,1]);case 3:return Ga(at,[Je,1],[se,1]);case 4:return Ga(at,[Je,2],[se,0]);case 5:return Ga(at,[Je,2],[se,0],!0,!1);case 6:return Ga(at,[Je,0],[se,2]);case 7:return Ga(at,[Je,0],[se,2],!1,!0);case 8:return Ga(at,[Je,1],[se,2]);case 9:return Ga(at,[Je,1],[se,2],!1,!0);case 10:return Ga(at,[Je,2],[se,1]);case 11:return Ga(at,[Je,2],[se,1],!0,!1);case 12:return Ga(at,[Je,2],[se,2]);case 13:return Ga(at,[Je,2],[se,2],!0,!1);case 14:return Ga(at,[Je,2],[se,2],!1,!0);case 15:return Ga(at,[Je,2],[se,2],!0,!0);default:throw new Error("Unknown verb: ".concat(Te))}}(this.glyphs,15&pe.flags,this.firstGlyph,this.lastGlyph)},Te.processContextualSubstitution=function(se,pe,De){var st=this.subtable.table.substitutionTable.items;if(65535!==pe.markIndex){var wt=st.getItem(pe.markIndex);(ft=new Co(wt).lookup((se=this.glyphs[this.markedGlyph]).id))&&(this.glyphs[this.markedGlyph]=this.font.getGlyph(ft,se.codePoints))}if(65535!==pe.currentIndex){var ft,si=st.getItem(pe.currentIndex);(ft=new Co(si).lookup((se=this.glyphs[De]).id))&&(this.glyphs[De]=this.font.getGlyph(ft,se.codePoints))}32768&pe.flags&&(this.markedGlyph=De)},Te.processLigature=function(se,pe,De){if(32768&pe.flags&&this.ligatureStack.push(De),8192&pe.flags){for(var st,wt=this.subtable.table.ligatureActions,yt=this.subtable.table.components,ft=this.subtable.table.ligatureList,si=pe.action,Bi=!1,zi=0,ki=[],qi=[];!Bi;){var un,Dn=this.ligatureStack.pop();(un=ki).unshift.apply(un,this.glyphs[Dn].codePoints);var dr=wt.getItem(si++);Bi=!!(2147483648&dr);var eo=!!(1073741824&dr),to=(1073741823&dr)<<2>>2;if(zi+=yt.getItem(to+=this.glyphs[Dn].id),Bi||eo){var Qo=ft.getItem(zi);this.glyphs[Dn]=this.font.getGlyph(Qo,ki),qi.push(Dn),zi=0,ki=[]}else this.glyphs[Dn]=this.font.getGlyph(65535)}(st=this.ligatureStack).push.apply(st,qi)}},Te.processNoncontextualSubstitutions=function(se,pe,De){var st=new Co(se.table.lookupTable);for(De=0;De>>5,!!(1024&pe.flags)),65535!==pe.currentInsertIndex&&this._insertGlyphs(De,pe.currentInsertIndex,(992&pe.flags)>>>5,!!(2048&pe.flags))},Te.getSupportedFeatures=function(){for(var De,se=[],pe=x(this.morx.chains);!(De=pe()).done;)for(var yt,wt=x(De.value.features);!(yt=wt()).done;){var ft=yt.value;se.push([ft.featureType,ft.featureSetting])}return se},Te.generateInputs=function(se){return this.inputCache||this.generateInputCache(),this.inputCache[se]||[]},Te.generateInputCache=function(){this.inputCache={};for(var pe,se=x(this.morx.chains);!(pe=se()).done;)for(var yt,De=pe.value,st=De.defaultFlags,wt=x(De.subtables);!(yt=wt()).done;){var ft=yt.value;ft.subFeatureFlags&st&&this.generateInputsForSubtable(ft)}},Te.generateInputsForSubtable=function(se){var pe=this;if(2===se.type){if(4194304&se.coverage)throw new Error("Reverse subtable, not supported.");this.subtable=se,this.ligatureStack=[];var st=this.getStateMachine(se),wt=this.getProcessor(),yt=[],ft=[];this.glyphs=[],st.traverse({enter:function(Bi,zi){var ki=pe.glyphs;ft.push({glyphs:ki.slice(),ligatureStack:pe.ligatureStack.slice()});var qi=pe.font.getGlyph(Bi);yt.push(qi),ki.push(yt[yt.length-1]),wt(ki[ki.length-1],zi,ki.length-1);for(var un=0,Dn=0,dr=0;dr0&&se.applyFeatures(yt,pe,De)}},at}(),uA=["rvrn"],ga=["ccmp","locl","rlig","mark","mkmk"],Yd=["frac","numr","dnom"],hh=["calt","clig","liga","rclt","curs","kern"],ph={ltr:["ltra","ltrm"],rtl:["rtla","rtlm"]},Xc=function(){function at(){}return at.plan=function(Je,se,pe){this.planPreprocessing(Je),this.planFeatures(Je),this.planPostprocessing(Je,pe),Je.assignGlobalFeatures(se),this.assignFeatures(Je,se)},at.planPreprocessing=function(Je){Je.add({global:[].concat(uA,ph[Je.direction]),local:Yd})},at.planFeatures=function(Je){},at.planPostprocessing=function(Je,se){Je.add([].concat(ga,hh)),Je.setFeatureOverrides(se)},at.assignFeatures=function(Je,se){for(var pe=0;pe0&&z.isDigit(se[st-1].codePoints[0]);)se[st-1].features.numr=!0,se[st-1].features.frac=!0,st--;for(;wtthis.index||this.index>=this.glyphs.length?null:this.glyphs[this.index]},Te.next=function(){return this.move(1)},Te.prev=function(){return this.move(-1)},Te.peek=function(se){void 0===se&&(se=1);var pe=this.index,De=this.increment(se);return this.index=pe,De},Te.peekIndex=function(se){void 0===se&&(se=1);var pe=this.index;this.increment(se);var De=this.index;return this.index=pe,De},Te.increment=function(se){void 0===se&&(se=1);var pe=se<0?-1:1;for(se=Math.abs(se);se--;)this.move(pe);return this.glyphs[this.index]},_(at,[{key:"cur",get:function(){return this.glyphs[this.index]||null}}])}(),eA=["DFLT","dflt","latn"],On=function(){function at(Je,se){this.font=Je,this.table=se,this.script=null,this.scriptTag=null,this.language=null,this.languageTag=null,this.features={},this.lookups={},this.variationsIndex=Je._variationProcessor?this.findVariationsIndex(Je._variationProcessor.normalizedCoords):-1,this.selectScript(),this.glyphs=[],this.positions=[],this.ligatureID=1,this.currentFeature=null}var Te=at.prototype;return Te.findScript=function(se){if(null==this.table.scriptList)return null;Array.isArray(se)||(se=[se]);for(var De,pe=x(se);!(De=pe()).done;)for(var yt,st=De.value,wt=x(this.table.scriptList);!(yt=wt()).done;){var ft=yt.value;if(ft.tag===st)return ft}return null},Te.selectScript=function(se,pe,De){var wt,st=!1;if(!this.script||se!==this.scriptTag){if((wt=this.findScript(se))||(wt=this.findScript(eA)),!wt)return this.scriptTag;this.scriptTag=wt.tag,this.script=wt.script,this.language=null,this.languageTag=null,st=!0}if((!De||De!==this.direction)&&(this.direction=De||Vr(se)),pe&&pe.length<4&&(pe+=" ".repeat(4-pe.length)),!pe||pe!==this.languageTag){this.language=null;for(var ft,yt=x(this.script.langSysRecords);!(ft=yt()).done;){var si=ft.value;if(si.tag===pe){this.language=si.langSys,this.languageTag=si.tag;break}}this.language||(this.language=this.script.defaultLangSys,this.languageTag=null),st=!0}if(st&&(this.features={},this.language))for(var zi,Bi=x(this.language.featureIndexes);!(zi=Bi()).done;){var ki=zi.value,qi=this.table.featureList[ki],un=this.substituteFeatureForVariations(ki);this.features[qi.tag]=un||qi.feature}return this.scriptTag},Te.lookupsForFeatures=function(se,pe){void 0===se&&(se=[]);for(var wt,De=[],st=x(se);!(wt=st()).done;){var yt=wt.value,ft=this.features[yt];if(ft)for(var Bi,si=x(ft.lookupListIndexes);!(Bi=si()).done;){var zi=Bi.value;pe&&-1!==pe.indexOf(zi)||De.push({feature:yt,index:zi,lookup:this.table.lookupList.get(zi)})}}return De.sort(function(ki,qi){return ki.index-qi.index}),De},Te.substituteFeatureForVariations=function(se){if(-1===this.variationsIndex)return null;for(var wt,st=x(this.table.featureVariations.featureVariationRecords[this.variationsIndex].featureTableSubstitution.substitutions);!(wt=st()).done;){var yt=wt.value;if(yt.featureIndex===se)return yt.alternateFeatureTable}return null},Te.findVariationsIndex=function(se){var pe=this.table.featureVariations;if(!pe)return-1;for(var De=pe.featureVariationRecords,st=0;st=0})},Te.getClassID=function(se,pe){switch(pe.version){case 1:var De=se-pe.startGlyph;if(De>=0&&De0&&this.codePoints.every(z.isMark),this.isBase=!this.isMark,this.isLigature=this.codePoints.length>1,this.markAttachmentType=0}}])}(),Ya=function(at){function Te(){return at.apply(this,arguments)||this}return M(Te,at),Te.planFeatures=function(se){se.add(["ljmo","vjmo","tjmo"],!1)},Te.assignFeatures=function(se,pe){for(var De=0,st=0;stZa){var zi=kr(Je,st,se.features);zi.features.tjmo=!0,Bi.push(zi)}return at.splice.apply(at,[Te,1].concat(Bi)),Te+Bi.length-1}function gl(at,Te,Je){var yt,ft,si,Bi,se=at[Te],De=xe(at[Te].codePoints[0]),st=at[Te-1].codePoints[0],wt=xe(st);if(wt===gA&&De===tA)yt=st,Bi=se;else{De===ac?(ft=at[Te-1],si=se):(ft=at[Te-2],si=at[Te-1],Bi=se);var zi=ft.codePoints[0],ki=si.codePoints[0];na(zi)&&Fu(ki)&&(yt=mc+((zi-El)*Qu+(ki-pd))*Ba)}var qi=Bi&&Bi.codePoints[0]||Za;if(null!=yt&&(qi===Za||gh(qi))){var un=yt+(qi-Za);if(Je.hasGlyphForCodePoint(un)){var Dn=wt===ac?3:2;return at.splice(Te-Dn+1,Dn,kr(Je,un,se.features)),Te-Dn+1}}return ft&&(ft.features.ljmo=!0),si&&(si.features.vjmo=!0),Bi&&(Bi.features.tjmo=!0),wt===gA?(Fo(at,Te-1,Je),Te+1):Te}function _c(at,Te,Je){var se=at[Te];if(0!==Je.glyphForCodePoint(at[Te].codePoints[0]).advanceWidth){var st=function Fc(at){switch(xe(at)){case gA:case Oo:return 1;case ac:return 2;case tA:return 3}}(at[Te-1].codePoints[0]);return at.splice(Te,1),at.splice(Te-st,0,se)}}function Jg(at,Te,Je){var se=at[Te],pe=at[Te].codePoints[0];if(Je.hasGlyphForCodePoint(gd)){var De=kr(Je,gd,se.features),st=0===Je.glyphForCodePoint(pe).advanceWidth?Te:Te+1;at.splice(st,0,De),Te++}return Te}var fd={categories:["O","IND","S","GB","B","FM","CGJ","VMAbv","VMPst","VAbv","VPst","CMBlw","VPre","VBlw","H","VMBlw","CMAbv","MBlw","CS","R","SUB","MPst","MPre","FAbv","FPst","FBlw","null","SMAbv","SMBlw","VMPre","ZWNJ","ZWJ","WJ","M","VS","N","HN","MAbv"],decompositions:{2507:[2503,2494],2508:[2503,2519],2888:[2887,2902],2891:[2887,2878],2892:[2887,2903],3018:[3014,3006],3019:[3015,3006],3020:[3014,3031],3144:[3142,3158],3264:[3263,3285],3271:[3270,3285],3272:[3270,3286],3274:[3270,3266],3275:[3270,3266,3285],3402:[3398,3390],3403:[3399,3390],3404:[3398,3415],3546:[3545,3530],3548:[3545,3535],3549:[3545,3535,3530],3550:[3545,3551],3635:[3661,3634],3763:[3789,3762],3955:[3953,3954],3957:[3953,3956],3958:[4018,3968],3959:[4018,3953,3968],3960:[4019,3968],3961:[4019,3953,3968],3969:[3953,3968],6971:[6970,6965],6973:[6972,6965],6976:[6974,6965],6977:[6975,6965],6979:[6978,6965],69934:[69937,69927],69935:[69938,69927],70475:[70471,70462],70476:[70471,70487],70843:[70841,70842],70844:[70841,70832],70846:[70841,70845],71098:[71096,71087],71099:[71097,71087]},stateTable:[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],accepting:[!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0],tags:[[],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["symbol_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["virama_terminated_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["number_joiner_terminated_cluster"],["standard_cluster"],["standard_cluster"],["numeral_cluster"]]},Go_X=1,Go_N=8,Go_H=16,Go_ZWNJ=32,Go_ZWJ=64,Go_M=128,Go_RS=8192,Go_Repha=32768,Go_Ra=65536,Go_CM=1<<17,$r={Start:1,Ra_To_Become_Reph:2,Pre_M:4,Pre_C:8,Base_C:16,After_Main:32,Above_C:64,Before_Sub:128,Below_C:256,After_Sub:512,Before_Post:1024,Post_C:2048,After_Post:4096,Final_C:8192,SMVD:16384,End:32768},iA=2|Go_Ra|Go_CM|4|2048|4096,fh=Go_ZWJ|Go_ZWNJ,Nd=Go_H|16384,mh={Default:{hasOldSpec:!1,virama:0,basePos:"Last",rephPos:$r.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Devanagari:{hasOldSpec:!0,virama:2381,basePos:"Last",rephPos:$r.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Bengali:{hasOldSpec:!0,virama:2509,basePos:"Last",rephPos:$r.After_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gurmukhi:{hasOldSpec:!0,virama:2637,basePos:"Last",rephPos:$r.Before_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gujarati:{hasOldSpec:!0,virama:2765,basePos:"Last",rephPos:$r.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Oriya:{hasOldSpec:!0,virama:2893,basePos:"Last",rephPos:$r.After_Main,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Tamil:{hasOldSpec:!0,virama:3021,basePos:"Last",rephPos:$r.After_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Telugu:{hasOldSpec:!0,virama:3149,basePos:"Last",rephPos:$r.After_Post,rephMode:"Explicit",blwfMode:"Post_Only"},Kannada:{hasOldSpec:!0,virama:3277,basePos:"Last",rephPos:$r.After_Post,rephMode:"Implicit",blwfMode:"Post_Only"},Malayalam:{hasOldSpec:!0,virama:3405,basePos:"Last",rephPos:$r.After_Main,rephMode:"Log_Repha",blwfMode:"Pre_And_Post"},Khmer:{hasOldSpec:!1,virama:6098,basePos:"First",rephPos:$r.Ra_To_Become_Reph,rephMode:"Vis_Repha",blwfMode:"Pre_And_Post"}},fA={6078:[6081,6078],6079:[6081,6079],6080:[6081,6080],6084:[6081,6084],6085:[6081,6085]},X0=fd.decompositions,$0=new q(v("AAARAAAAAABg2AAAAWYPmfDtnXuMXFUdx+/uzs7M7szudAtECGJRIMRQbUAithQWkGAKiVhNpFVRRAmIQVCDkDYICGotIA9BTCz8IeUviv7BQ2PBtBIRLBBQIWAUsKg1BKxRAqIgfs/cc+aeOXPej3tnZX7JJ/dxzj3nd36/8753Z5fUsuxgsAwcAU4Gp4BPgM+Cd4P3RjieDs4GXwLrHJ5bDy4DG8A14LvgZrAZbAF3gns0z18ALgY/B78C94NHwBPgabAE/AX8DbwM5sF/QX0yD5vFcU/wVnAgWAoOAyvAceBE8CGwBpwGzgJfAF8BXwXfAFeC68EmsBlsAXeCreA+8CB4DDwF/gh2gd3gFfAGmKxn2QzYC+wHDgRLweFgJTgWrKrnuq/GcQ04jV6fheN54EJwEbgcXAG+Q8O/j+Mt4DZwB9haz8t9Hz3a8iCN/xiOvwRP0evH6fE68AzOH+Ke2eWYhw3PcGnuxvkr4A3QaGRZB7wFLAEHg2XgiEZ/fHKcp/ceBh/A+cngFPCpRm6vM3E8l8a5gN67GMdvgqsbeX2ap9yI601gM7gN3AG20mfuo8cdOP6GpvdUg9oKxz839GV90RDO2/glxN1B790NXsN1rZll7WYRdw+c70uvTwIHNAfTO0RyL5TDmnnbc3lmRQI9UnM0dD5eovfz4FpJ/BNpXNYWV+N6Lfg0hY97JK1vn+Pur9DoQur2F7m436bHDUK8C5t5/8vruo4+97WmXG+GLmzEiBF+PDwEOowYMWLEiBEjRoxYeBw5BDqIPEfXut9yWN+vVNxfrnnmWqR/PdgENoMt4E5wD9gOHgCPgifBs2BXM99b2o3jP8F/wMRUlrXAHNgHvH0q3895J46HguXgWHAGLctmLv9VuL96qnp7jxgxYsSbCbJvuRZ97/tqxT59VVRtixEjRsThBG7OSt5zzoPT0M+cBc4T5noXOs79TqLHeZrHUeCSqeJ96gacXy2kecNU8V6Hh7yXuQlhtw7B/PO1RTkr52Aj8JNFZjYg3gOKuC/g/v6Ls2wNuAY8urg//PcIb+6RZXuDNeCS6SzbBrJWlh0DLiFHco8ed9IjzzvaWfa9sZzTcf6D9mCcnbg3PlNcH4fzS8F2MDaLdQG4dLZIJxbbaZqv4ri8k58f3+mPs66T6/TTzqDeI0aMGDGiHP5dcR8ce/xxYcWi6vOfr725uRzcjnngXVOD61Hync+9uL+Nmyfej/NHpvL56A5Jeuz7uyfo+pqcPz2Vf1NH0ttJ03pekt8SmuY/EPYy9zzbN319ym/9TL6ZIt9MHCXRdxJtoAkWTRdz472n87D9cTwYLJvuz++I6WIePo/zE8AHp4v8WLyP0nufnM6/+zoDx8+DL08P6r9+urheRtO+jD6/cdrsx3mqu8w+xH4PScKIXa5D2jeCm8Et4DbwI/BjcC/4BXgI/Bb8DuwEu8Bu8Ap4A9RaRZptnO8J9gUHgEPAoWA5OLY1qMO90GEV7q+mYWtxPBWcIYnL4p+DsPNbxfVFOP86uAr8DNc34HgTDb8Vx9sVaRFI/LtagzYjnCqpb908EX87eBA8Bh4Hf2jle/9/wvGFVv787rrZZy8h7qtgDOuFOmiBuXYRvg/O9wMHgXeB97SLspk4sq0OI/q9v13+ek+sh3zYSRp9jrYorw9ll1/GRzR+KotYZSHf8laVP2lvpA/8OGdPMk59hqtXZ+L8nHbxvWwqO65ryu+fT3VZz+l4dET7L0R072ljsMyzTpaJqQxsbL8M9WajY789DO85XMp/Dcp3Qztdn+9qf/a97ZWK8PXc3G+TpC/nv8Mncy7ZvICF302P5O+aNiOtLdTXd+D4Q7DVwfcvWvx9zTEJ/o5iG3R8YAjGNFseha5PGuZKz7b7xxXbOrXMcu5eJSo//rXdH/73Enz6L1q/X+fyIu8wZGtNBmkjkzNZNgP2AvuBg2bysKUzduXn/66JtNeN4PCZvO0/x7Ujdn4VnYOvRJzjZ/I+9sQZeftX2Tc1RPcPz/Tf4/si0g+t5Mq+kfZjZL34Mc5ul3PPnE7TOxvHK2qDaZ+L++db2HyYqMo/qVnb/P8uH8/rmnFxR0k6DCu/rjj/RxT7KGUSWgbd+LMQuEgYB1zsk2qtvJD8v5AhdfdttbEunSxbcJD9Zf7chqp1Hlbe7FK1/aPVTfp7FgtC1yGGiSncFK/DhZvi+epZta0WWjlsfDZMyPRdSPrryqSSKnXx1bkq/Ye9TlRpk7Lrjq1UrfdC9X+MtKqwP6+3a/4pJFUZF0pZZpv91MYjMBaRRXbxpho5zQmUY3F+Pt4o7rvQrBXPdm00TaE24uMadaM2meLSI7iu071t3er3b6ZLi8JEde3qw+6zGv+ycF5kaRBh/m1T/7Yl/mMyTuMwadP4xL9ifjJpNwbvDZRJ8G8vnqV/Wf12aa/kyOdl69+BspTsXzGueE6E+JfZnvmXIfNPW+FfXkjb1YmqPNpnLP3b61fHCj/X5tzGANf2y3yqvC7Jv7btV4TVbdammI9l/g0dS5lNxLrk2j9r8xjjxhBQnygg0lgg/bOrfyct+udJi/Yrk0lFnxC7f+5kRbsNmcexfrubt0X/rGvLqrGSnYv3ZPHEe8r7lvMvUfi2LOu/2dg8LrRtQt2yfcv8r5IU70VkIs6nbebUXf0M/o7Znl39Sdoz+X1oEb5N8ffF67qhPfPP6eoUbxf+GRf/6sRnvaSdmw+Bf1VxmbD+2sa//DU7t/Gv2PfKpKdrBP92Ojk+IvqX16ks/2qxbL8EZnc2HqsgYuqPuzZV+I3RbujbDm+T0PmWCVO/5jqftp1zy+wSA6s0JWtp2z5e1oZV+yMsjB3ZXolsv0Ulrv01v3/iKrF94Qtbt9siCnmeb6fjjf59KnLk1xaEbvtvFnFirGvEOqmycQrbm/IMsXd3P28uh4nM3swXRER717OiX8kc7K2qqyn2p3maFGU/aruP5VCv+PraoTYU8yUmmbDwcYo6pusnM486xdoga4dkPCb1pK7Sfc6ebvkd4qeAtQcd/N63bB3lU3dlUnUf38VyvqCqK7JxlNSd7lydrDlm+/uqHiRvl30Nrp/n9zpkZRjoJ3V1diyP05rIYXHYs+w+D5+WMS8b5gZtKcuX0KT5d/WwtB97VnyvY6rjMukI56HI0rFJPwt8PjT/1OXzSbcMeEmdh294qvKK4rNu7j4n3LNZg8TKXwafv025U+XvKjHsT8Q7/7LGaJt9lAh7Asz3uv0XEX6t0duDoWN/93wmh92XpUHmCKb9GALbG+rZP3AfNbQPKKv/jpF/bP0JXfuW1QYk7dhljcyvk5mw+933Hpo1g26PQ2ZP6zVmTJt47P25jncD9vPwGS+q9QS/V6RaY8j8K8LmvUr9HfYCpH5OWL9lZY+Sv6pesHCJHbtrf9k6etZvf0G1L0ja4cAe1UT/s3zdCe3/Q5/n372wMc97/E1Qh0Tbmfwh3m/V9On72tNnrCF1sJkVe1EyXMdBa7+lHMsk44zMF6St9e2djNnbm8ybpHkq+gbbemMaH0UZmD8obKGrk7r+nt+3bE7o83YZp/vqOKdv6PzJNN6mTJsI/51XR7i2ZrGA5B6zFwnjzxmqPjaGfW3tZNrz1eljq29mOOqeCfF/irRt87PNw0uXSVAvrmOMNT569MptsYaV0sic/wbY13e8hPrb9K2ySUJ0j6G/Lu0U4qpTrR23jMp6m5hU+YTaWCeh9aIsm/rqUHV4bFv42kgnZdfH1PUj1D7DVH9d8khRN1zFRl/+/TW//qxL1uH83+mk3H+SvRtS2TDU90nX2TpM6/1xzZpZtoYdK763dqlz0f6uNeFehcs+H/nbGP77MpX06n/ofpzP+tVmTUvRtVuX/cjS67OE5kRBrxyJ+w/dPo7r+9cO1160e3gqu0S2uW7PjN/L6ns/UfMf10Lai87frJ+3KndAfc8yTf1M3T4s6qm4/yh7/2GSkG8UMw//DvRLgbYZSEOxr0LCWvRdjfh9XGzfqN4NivfZd7rsmFp08zmbssrKJEuTfVMZopdpbuwSrhNv3/N2s+0PDG3KNB6RMrFvJHv6B85HXObAoWsd3zm3i+6uZYytv+5+pohbpo6+tpZJFfmGlrcMf4c8b1Pe2OUIsaXJrinCTfaxtZOt+NYnU3hIfQlN20Z/1+dt7JaqLsbIzycNWZmrlNg2Dc2/LJ1T+T6WrrYSml4Ku7ik7yIx2opJD51vU9UfVRmrqL8u/olZj0PyCLV5irxcdKoi/6rKb8qTrHsnhW9jyZH/nSpeWDzxd9769uQ016lgUuf2pAfKPhu2FpfZL2Yb9snLNl/fNIepXaUsj4vNXCXUZ75px8ojNP8UPvAta2g6fb+F1ckZuneshv1vGXXDeyRRrN/bBPS1Jul+l+7zW86R7Wv63WXyDpt/RxraRjvC+TC3O61/Sqj/prag8x372yQivn+XwudrI2X2E2KdtJEov52e0L+uv4FO3p/rvssgsL8F4d/z9PzlWS94m8fqS3361Fi+6qaVYHwi9Yz4iH2fobIj+45cpz/TUaarr/4+z+vaWtVtyAX2d1LG8W9C3f+F1mnf36/k4w3YPrLv+XBVXCJs3cr+n4MKJuLv/fN9GhNdXVP5pJMN9vFi3rpv3/r8Ywg3SYp66zNOsO8QGcxPpnmRS/1mvmJjju3v7absI2xspQrvs1dNbjOj/wP7h1RlZyKGy8occ408UL8En4v6xfC/K3z52XzJd62T8vuZGGsxo/6O46ntmNqqFb/jps2/hHV4rPKH0svT4pstU7t2tZ9u/ZdqbJL1MwP6O86Fyt4jYaIrGz9mjEt8lFL4PtVE6votG2P6fpdf/GZRse7s3bf4BtSl/DIbKMctx++Z+8o6K6z9FPOwKsRmXiaNl7C+6NYRpjlbqG1j72f49qsuY4brd/amb4ZVc8TQ+sSH985LrEe8iPWJnfPrJRbWbb+dwn4x6o+r/aS2S7w3qWt//LnYz2ntE0vH1uDcyKatx1rH+EiMPEN1SZG/iz6+9o01Rob6O7Q+xLZ1jHobK61U+pWVvo2EpuWqzzD6Poa+pvhli0wn8Zq/72Mzm2d90o5VN1x9ZKuzbTgvqWwUIin8FSpl1CXXvFRxU0iozVPYJDRtF3uFphn6XAyJUUdD7SjTJ8v6n9fVbVObkKWp001lc9VRlqdOf5v0ZM+bymdbfp1NfG0bq27Y5JMyfxeJkU6o/inKH8O2Zfgidb6h/g3VJ7QcVbWL0Pxt6rlrPqa4KfQ25a2zl4/E8GdM/4fK/wA=","base64")),Xh=new Z({stateTable:[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],accepting:[!1,!0,!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!1,!1,!0,!1,!0,!0,!1,!0,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!1,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!1,!0,!0,!1,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0],tags:[[],["broken_cluster"],["consonant_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],[],["broken_cluster"],["symbol_cluster"],[],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["symbol_cluster"],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],[],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],[],[],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],["consonant_syllable"],["vowel_syllable"],["standalone_cluster"]]}),Ml=function(at){function Te(){return at.apply(this,arguments)||this}return M(Te,at),Te.planFeatures=function(se){se.addStage(us),se.addStage(["locl","ccmp"]),se.addStage(Jp),se.addStage("nukt"),se.addStage("akhn"),se.addStage("rphf",!1),se.addStage("rkrf"),se.addStage("pref",!1),se.addStage("blwf",!1),se.addStage("abvf",!1),se.addStage("half",!1),se.addStage("pstf",!1),se.addStage("vatu"),se.addStage("cjct"),se.addStage("cfar",!1),se.addStage($h),se.addStage({local:["init"],global:["pres","abvs","blws","psts","haln","dist","abvm","blwm","calt","clig"]}),se.unicodeScript=function Bs(at){return tn[at]}(se.script),se.indicConfig=mh[se.unicodeScript]||mh.Default,se.isOldSpec=se.indicConfig.hasOldSpec&&"2"!==se.script[se.script.length-1]},Te.assignFeatures=function(se,pe){for(var De=function(yt){var ft=pe[yt].codePoints[0],si=fA[ft]||X0[ft];if(si){var Bi=si.map(function(zi){var ki=se.font.glyphForCodePoint(zi);return new Sn(se.font,ki.id,[zi],pe[yt].features)});pe.splice.apply(pe,[yt,1].concat(Bi))}},st=pe.length-1;st>=0;st--)De(st)},Te}(Xc);function Ud(at){return $0.get(at.codePoints[0])>>8}function Vg(at){return 1<<(255&$0.get(at.codePoints[0]))}j(Ml,"zeroMarkWidths","NONE");var md=function(Te,Je,se,pe){this.category=Te,this.position=Je,this.syllableType=se,this.syllable=pe};function us(at,Te){for(var De,Je=0,se=0,pe=x(Xh.match(Te.map(Ud)));!(De=pe()).done;){var st=De.value,wt=st[0],yt=st[1],ft=st[2];if(wt>se){++Je;for(var si=se;sidr);break;case"First":for(var Ko=(Dn=ft)+1;KoMo&&!(_d(Te[Ua])||Hs&&Te[Ua].shaperInfo.category===Go_H);Ua--);if(Te[Ua].shaperInfo.category!==Go_H&&Ua>Mo){var ea=Te[Mo];Te.splice.apply(Te,[Mo,0].concat(Te.splice(Mo+1,Ua-Mo))),Te[Ua]=ea}break}for(var Va=$r.Start,Ts=ft;Tsft;Gs--)if(Te[Gs-1].shaperInfo.position!==$r.Pre_M){Uo.position=Te[Gs-1].shaperInfo.position;break}}else Uo.position!==$r.SMVD&&(Va=Uo.position)}for(var vc=Dn,Yl=Dn+1;Ylft&&!_d(Te[Nc]))}}}}function $h(at,Te,Je){for(var se=Je.indicConfig,pe=at._layoutEngine.engine.GSUBProcessor.features,De=0,st=vd(Te,0);De=$r.Base_C){if(wt&&yt+1$r.Base_C&&yt--;break}if(yt===st&&DeDe&&!(Te[Bi].shaperInfo.category&(Go_M|Nd));)Bi--;mA(Te[Bi])&&Te[Bi].shaperInfo.position!==$r.Pre_M?Bi+1De;zi--)if(Te[zi-1].shaperInfo.position===$r.Pre_M){var ki=zi-1;kiDe&&Te[un].shaperInfo.position===$r.SMVD;)un--;if(mA(Te[un]))for(var eo=yt+1;eoDe&&!(Te[Qo-1].shaperInfo.category&(Go_M|Nd));)Qo--;if(Qo>De&&Te[Qo-1].shaperInfo.category===Go_M)for(var Eo=mo,Ko=yt+1;KoDe&&mA(Te[Qo-1])&&Qo=at.length)return Te;for(var Je=at[Te].shaperInfo.syllable;++Te=0;st--)De(st)},Te}(Xc);function Es(at){return e_.get(at.codePoints[0])}j(Xr,"zeroMarkWidths","BEFORE_GPOS");var zd=function(Te,Je,se){this.category=Te,this.syllableType=Je,this.syllable=se};function jp(at,Te){for(var pe,Je=0,se=x(tp.match(Te.map(Es)));!(pe=se()).done;){var De=pe.value,st=De[0],wt=De[1],yt=De[2];++Je;for(var ft=st;ft<=wt;ft++)Te[ft].shaperInfo=new zd(ep[Es(Te[ft])],yt[0],Je);for(var si="R"===Te[st].shaperInfo.category?1:Math.min(3,wt-st),Bi=st;Bi1)for(De=se+1;De=at.length)return Te;for(var Je=at[Te].shaperInfo.syllable;++Te=0;wA--)this.glyphs.splice(Qo[wA],1);return this.glyphs[this.glyphIterator.index]=Hs,!0}}return!1;case 5:return this.applyContext(De);case 6:return this.applyChainingContext(De);case 7:return this.applyLookup(De.lookupType,De.extension);default:throw new Error("GSUB lookupType ".concat(pe," is not supported"))}},Te}(On),yd=function(at){function Te(){return at.apply(this,arguments)||this}M(Te,at);var Je=Te.prototype;return Je.applyPositionValue=function(pe,De){var st=this.positions[this.glyphIterator.peekIndex(pe)];null!=De.xAdvance&&(st.xAdvance+=De.xAdvance),null!=De.yAdvance&&(st.yAdvance+=De.yAdvance),null!=De.xPlacement&&(st.xOffset+=De.xPlacement),null!=De.yPlacement&&(st.yOffset+=De.yPlacement);var wt=this.font._variationProcessor,yt=this.font.GDEF&&this.font.GDEF.itemVariationStore;wt&&yt&&(De.xPlaDevice&&(st.xOffset+=wt.getDelta(yt,De.xPlaDevice.a,De.xPlaDevice.b)),De.yPlaDevice&&(st.yOffset+=wt.getDelta(yt,De.yPlaDevice.a,De.yPlaDevice.b)),De.xAdvDevice&&(st.xAdvance+=wt.getDelta(yt,De.xAdvDevice.a,De.xAdvDevice.b)),De.yAdvDevice&&(st.yAdvance+=wt.getDelta(yt,De.yAdvDevice.a,De.yAdvDevice.b)))},Je.applyLookup=function(pe,De){switch(pe){case 1:var st=this.coverageIndex(De.coverage);if(-1===st)return!1;switch(De.version){case 1:this.applyPositionValue(0,De.value);break;case 2:this.applyPositionValue(0,De.values.get(st))}return!0;case 2:var wt=this.glyphIterator.peek();if(!wt)return!1;var yt=this.coverageIndex(De.coverage);if(-1===yt)return!1;switch(De.version){case 1:for(var Bi,si=x(De.pairSets.get(yt));!(Bi=si()).done;){var zi=Bi.value;if(zi.secondGlyph===wt.id)return this.applyPositionValue(0,zi.value1),this.applyPositionValue(1,zi.value2),!0}return!1;case 2:var ki=this.getClassID(this.glyphIterator.cur.id,De.classDef1),qi=this.getClassID(wt.id,De.classDef2);if(-1===ki||-1===qi)return!1;var un=De.classRecords.get(ki).get(qi);return this.applyPositionValue(0,un.value1),this.applyPositionValue(1,un.value2),!0}case 3:var Dn=this.glyphIterator.peekIndex(),dr=this.glyphs[Dn];if(!dr)return!1;var eo=De.entryExitRecords[this.coverageIndex(De.coverage)];if(!eo||!eo.exitAnchor)return!1;var to=De.entryExitRecords[this.coverageIndex(De.coverage,dr.id)];if(!to||!to.entryAnchor)return!1;var mo=this.getAnchor(to.entryAnchor),Qo=this.getAnchor(eo.exitAnchor),Eo=this.positions[this.glyphIterator.index],Ko=this.positions[Dn];switch(this.direction){case"ltr":Eo.xAdvance=Qo.x+Eo.xOffset;var os=mo.x+Ko.xOffset;Ko.xAdvance-=os,Ko.xOffset-=os;break;case"rtl":Eo.xAdvance-=os=Qo.x+Eo.xOffset,Eo.xOffset-=os,Ko.xAdvance=mo.x+Ko.xOffset}return this.glyphIterator.flags.rightToLeft?(this.glyphIterator.cur.cursiveAttachment=Dn,Eo.yOffset=mo.y-Qo.y):(dr.cursiveAttachment=this.glyphIterator.index,Eo.yOffset=Qo.y-mo.y),!0;case 4:var Ds=this.coverageIndex(De.markCoverage);if(-1===Ds)return!1;for(var as=this.glyphIterator.index;--as>=0&&(this.glyphs[as].isMark||this.glyphs[as].ligatureComponent>0););if(as<0)return!1;var bo=this.coverageIndex(De.baseCoverage,this.glyphs[as].id);if(-1===bo)return!1;var Hs=De.markArray[Ds];return this.applyAnchor(Hs,De.baseArray[bo][Hs.class],as),!0;case 5:var Ua=this.coverageIndex(De.markCoverage);if(-1===Ua)return!1;for(var ea=this.glyphIterator.index;--ea>=0&&this.glyphs[ea].isMark;);if(ea<0)return!1;var Va=this.coverageIndex(De.ligatureCoverage,this.glyphs[ea].id);if(-1===Va)return!1;var Ts=De.ligatureArray[Va],Uo=this.glyphIterator.cur,Gs=this.glyphs[ea],vc=Gs.ligatureID&&Gs.ligatureID===Uo.ligatureID&&Uo.ligatureComponent>0?Math.min(Uo.ligatureComponent,Gs.codePoints.length)-1:Gs.codePoints.length-1,Yl=De.markArray[Ua];return this.applyAnchor(Yl,Ts[vc][Yl.class],ea),!0;case 6:var $l=this.coverageIndex(De.mark1Coverage);if(-1===$l)return!1;var wA=this.glyphIterator.peekIndex(-1),Is=this.glyphs[wA];if(!Is||!Is.isMark)return!1;var CA=this.glyphIterator.cur,ec=!1;if(CA.ligatureID===Is.ligatureID?CA.ligatureID?CA.ligatureComponent===Is.ligatureComponent&&(ec=!0):ec=!0:(CA.ligatureID&&!CA.ligatureComponent||Is.ligatureID&&!Is.ligatureComponent)&&(ec=!0),!ec)return!1;var bA=this.coverageIndex(De.mark2Coverage,Is.id);if(-1===bA)return!1;var ra=De.mark1Array[$l];return this.applyAnchor(ra,De.mark2Array[bA][ra.class],wA),!0;case 7:return this.applyContext(De);case 8:return this.applyChainingContext(De);case 9:return this.applyLookup(De.lookupType,De.extension);default:throw new Error("Unsupported GPOS table: ".concat(pe))}},Je.applyAnchor=function(pe,De,st){var wt=this.getAnchor(De),yt=this.getAnchor(pe.markAnchor),si=this.positions[this.glyphIterator.index];si.xOffset=wt.x-yt.x,si.yOffset=wt.y-yt.y,this.glyphIterator.cur.markAttachment=st},Je.getAnchor=function(pe){var De=pe.xCoordinate,st=pe.yCoordinate,wt=this.font._variationProcessor,yt=this.font.GDEF&&this.font.GDEF.itemVariationStore;return wt&&yt&&(pe.xDeviceTable&&(De+=wt.getDelta(yt,pe.xDeviceTable.a,pe.xDeviceTable.b)),pe.yDeviceTable&&(st+=wt.getDelta(yt,pe.yDeviceTable.a,pe.yDeviceTable.b))),{x:De,y:st}},Je.applyFeatures=function(pe,De,st){at.prototype.applyFeatures.call(this,pe,De,st);for(var wt=0;wt>16;if(0===pe)switch(se>>8){case 0:return 173===se;case 3:return 847===se;case 6:return 1564===se;case 23:return 6068<=se&&se<=6069;case 24:return 6155<=se&&se<=6158;case 32:return 8203<=se&&se<=8207||8234<=se&&se<=8238||8288<=se&&se<=8303;case 254:return 65024<=se&&se<=65039||65279===se;case 255:return 65520<=se&&se<=65528;default:return!1}else switch(pe){case 1:return 113824<=se&&se<=113827||119155<=se&&se<=119162;case 14:return 917504<=se&&se<=921599;default:return!1}},Te.getAvailableFeatures=function(se,pe){var De=[];return this.engine&&De.push.apply(De,this.engine.getAvailableFeatures(se,pe)),this.font.kern&&-1===De.indexOf("kern")&&De.push("kern"),De},Te.stringsForGlyph=function(se){for(var wt,pe=new Set,st=x(this.font._cmapProcessor.codePointsForGlyph(se));!(wt=st()).done;)pe.add(String.fromCodePoint(wt.value));if(this.engine&&this.engine.stringsForGlyph)for(var si,ft=x(this.engine.stringsForGlyph(se));!(si=ft()).done;)pe.add(si.value);return Array.from(pe)},at}(),t_={moveTo:"M",lineTo:"L",quadraticCurveTo:"Q",bezierCurveTo:"C",closePath:"Z"},Ru=function(){function at(){this.commands=[],this._bbox=null,this._cbox=null}var Te=at.prototype;return Te.toFunction=function(){var se=this;return function(pe){se.commands.forEach(function(De){return pe[De.command].apply(pe,De.args)})}},Te.toSVG=function(){return this.commands.map(function(pe){var De=pe.args.map(function(st){return Math.round(100*st)/100});return"".concat(t_[pe.command]).concat(De.join(" "))}).join("")},Te.mapPoints=function(se){for(var st,pe=new at,De=x(this.commands);!(st=De()).done;){for(var wt=st.value,yt=[],ft=0;ft0&&this.codePoints.every(z.isMark),this.isLigature=this.codePoints.length>1}var Te=at.prototype;return Te._getPath=function(){return new Ru},Te._getCBox=function(){return this.path.cbox},Te._getBBox=function(){return this.path.bbox},Te._getTableMetrics=function(se){if(this.id"u"||null===se)&&(se=this.cbox),(si=this._font["OS/2"])&&si.version>0)yt=Math.abs(si.typoAscender-si.typoDescender),ft=si.typoAscender-se.maxY;else{var Bi=this._font.hhea;yt=Math.abs(Bi.ascent-Bi.descent),ft=Bi.ascent-se.maxY}return this._font._variationProcessor&&this._font.HVAR&&(De+=this._font._variationProcessor.getAdvanceAdjustment(this.id,this._font.HVAR)),this._metrics={advanceWidth:De,advanceHeight:yt,leftBearing:st,topBearing:ft}},Te.getScaledPath=function(se){return this.path.scale(1/this._font.unitsPerEm*se)},Te._getName=function(){var se=this._font.post;if(!se)return null;switch(se.version){case 1:return wh[this.id];case 2:var pe=se.glyphNameIndex[this.id];return pe0?this._decodeSimple(yt,st):yt.numberOfContours<0&&this._decodeComposite(yt,st,wt),yt},Je._decodeSimple=function(pe,De){pe.points=[];var st=new d.Array(d.uint16,pe.numberOfContours).decode(De);pe.instructions=new d.Array(d.uint8,d.uint16).decode(De);for(var wt=[],yt=st[st.length-1]+1;wt.length=0,0,0);pe.points.push(ki)}var qi=0;for(zi=0;zi>1,ft.length=0}function Hs(Ua,ea){dr&&yt.closePath(),yt.moveTo(Ua,ea),dr=!0}var Mo=function(){for(;De.pos1&&as(),qi+=ft.shift(),Hs(ki,qi);break;case 5:for(;ft.length>=2;)ki+=ft.shift(),qi+=ft.shift(),yt.lineTo(ki,qi);break;case 6:case 7:for(var Va=6===ea;ft.length>=1;)Va?ki+=ft.shift():qi+=ft.shift(),yt.lineTo(ki,qi),Va=!Va;break;case 8:for(;ft.length>0;){var ra=ki+ft.shift(),Ea=qi+ft.shift(),Pa=ra+ft.shift(),ks=Ea+ft.shift();ki=Pa+ft.shift(),qi=ks+ft.shift(),yt.bezierCurveTo(ra,Ea,Pa,ks,ki,qi)}break;case 10:var Ts=ft.pop()+Eo,Uo=Qo[Ts];if(Uo){Dn[Ts]=!0;var Gs=De.pos,vc=wt;De.pos=Uo.offset,wt=Uo.offset+Uo.length,Mo(),De.pos=Gs,wt=vc}break;case 11:if(pe.version>=2)break;return;case 14:if(pe.version>=2)break;ft.length>0&&as(),dr&&(yt.closePath(),dr=!1);break;case 15:if(pe.version<2)throw new Error("vsindex operator not supported in CFF v1");os=ft.pop();break;case 16:if(pe.version<2)throw new Error("blend operator not supported in CFF v1");if(!Ds)throw new Error("blend operator in non-variation font");for(var Yl=Ds.getBlendVector(Ko,os),Tl=ft.pop(),$l=Tl*Yl.length,wA=ft.length-$l,Is=wA-Tl,CA=0;CA>3;break;case 21:ft.length>2&&as(),ki+=ft.shift(),qi+=ft.shift(),Hs(ki,qi);break;case 22:ft.length>1&&as(),Hs(ki+=ft.shift(),qi);break;case 24:for(;ft.length>=8;)ra=ki+ft.shift(),Ea=qi+ft.shift(),Pa=ra+ft.shift(),ks=Ea+ft.shift(),ki=Pa+ft.shift(),qi=ks+ft.shift(),yt.bezierCurveTo(ra,Ea,Pa,ks,ki,qi);ki+=ft.shift(),qi+=ft.shift(),yt.lineTo(ki,qi);break;case 25:for(;ft.length>=8;)ki+=ft.shift(),qi+=ft.shift(),yt.lineTo(ki,qi);ra=ki+ft.shift(),Ea=qi+ft.shift(),Pa=ra+ft.shift(),ks=Ea+ft.shift(),ki=Pa+ft.shift(),qi=ks+ft.shift(),yt.bezierCurveTo(ra,Ea,Pa,ks,ki,qi);break;case 26:for(ft.length%2&&(ki+=ft.shift());ft.length>=4;)ra=ki,Ea=qi+ft.shift(),Pa=ra+ft.shift(),ks=Ea+ft.shift(),ki=Pa,qi=ks+ft.shift(),yt.bezierCurveTo(ra,Ea,Pa,ks,ki,qi);break;case 27:for(ft.length%2&&(qi+=ft.shift());ft.length>=4;)ra=ki+ft.shift(),Ea=qi,Pa=ra+ft.shift(),ks=Ea+ft.shift(),ki=Pa+ft.shift(),yt.bezierCurveTo(ra,Ea,Pa,ks,ki,qi=ks);break;case 28:ft.push(De.readInt16BE());break;case 29:Ts=ft.pop()+to,(Uo=eo[Ts])&&(un[Ts]=!0,Gs=De.pos,vc=wt,De.pos=Uo.offset,wt=Uo.offset+Uo.length,Mo(),De.pos=Gs,wt=vc);break;case 30:case 31:for(Va=31===ea;ft.length>=4;)Va?(ra=ki+ft.shift(),Ea=qi,Pa=ra+ft.shift(),ks=Ea+ft.shift(),qi=ks+ft.shift(),ki=Pa+(1===ft.length?ft.shift():0)):(ra=ki,Ea=qi+ft.shift(),Pa=ra+ft.shift(),ks=Ea+ft.shift(),ki=Pa+ft.shift(),qi=ks+(1===ft.length?ft.shift():0)),yt.bezierCurveTo(ra,Ea,Pa,ks,ki,qi),Va=!Va;break;case 12:switch(ea=De.readUInt8()){case 3:var ws=ft.pop(),Nl=ft.pop();ft.push(ws&&Nl?1:0);break;case 4:ws=ft.pop(),Nl=ft.pop(),ft.push(ws||Nl?1:0);break;case 5:ws=ft.pop(),ft.push(ws?0:1);break;case 9:ws=ft.pop(),ft.push(Math.abs(ws));break;case 10:ws=ft.pop(),Nl=ft.pop(),ft.push(ws+Nl);break;case 11:ws=ft.pop(),Nl=ft.pop(),ft.push(ws-Nl);break;case 12:ws=ft.pop(),Nl=ft.pop(),ft.push(ws/Nl);break;case 14:ws=ft.pop(),ft.push(-ws);break;case 15:ws=ft.pop(),Nl=ft.pop(),ft.push(ws===Nl?1:0);break;case 18:ft.pop();break;case 20:var LA=ft.pop(),Nc=ft.pop();si[Nc]=LA;break;case 21:Nc=ft.pop(),ft.push(si[Nc]||0);break;case 22:var Uu=ft.pop(),ig=ft.pop(),r_=ft.pop(),hy=ft.pop();ft.push(r_<=hy?Uu:ig);break;case 23:ft.push(Math.random());break;case 24:ws=ft.pop(),Nl=ft.pop(),ft.push(ws*Nl);break;case 26:ws=ft.pop(),ft.push(Math.sqrt(ws));break;case 27:ws=ft.pop(),ft.push(ws,ws);break;case 28:ws=ft.pop(),Nl=ft.pop(),ft.push(Nl,ws);break;case 29:(Nc=ft.pop())<0?Nc=0:Nc>ft.length-1&&(Nc=ft.length-1),ft.push(ft[Nc]);break;case 30:var rf=ft.pop(),ng=ft.pop();if(ng>=0)for(;ng>0;){for(var zu=ft[rf-1],ip=rf-2;ip>=0;ip--)ft[ip+1]=ft[ip];ft[0]=zu,ng--}else for(;ng<0;){zu=ft[0];for(var Zd=0;Zd<=rf;Zd++)ft[Zd]=ft[Zd+1];ft[rf-1]=zu,ng++}break;case 34:ra=ki+ft.shift(),Ea=qi,Pa=ra+ft.shift(),ks=Ea+ft.shift();var qA=Pa+ft.shift(),rg=ks,bh=qA+ft.shift(),XA=rg,Jd=bh+ft.shift(),af=XA,sf=Jd+ft.shift(),lf=af;ki=sf,qi=lf,yt.bezierCurveTo(ra,Ea,Pa,ks,qA,rg),yt.bezierCurveTo(bh,XA,Jd,af,sf,lf);break;case 35:for(var yc=[],py=0;py<=5;py++)ki+=ft.shift(),qi+=ft.shift(),yc.push(ki,qi);yt.bezierCurveTo.apply(yt,yc.slice(0,6)),yt.bezierCurveTo.apply(yt,yc.slice(6)),ft.shift();break;case 36:ra=ki+ft.shift(),Ea=qi+ft.shift(),Pa=ra+ft.shift(),XA=rg=ks=Ea+ft.shift(),Jd=(bh=(qA=Pa+ft.shift())+ft.shift())+ft.shift(),af=XA+ft.shift(),sf=Jd+ft.shift(),ki=sf,qi=lf=af,yt.bezierCurveTo(ra,Ea,Pa,ks,qA,rg),yt.bezierCurveTo(bh,XA,Jd,af,sf,lf);break;case 37:var xd=ki,o_=qi;yc=[];for(var Wa=0;Wa<=4;Wa++)ki+=ft.shift(),qi+=ft.shift(),yc.push(ki,qi);Math.abs(ki-xd)>Math.abs(qi-o_)?(ki+=ft.shift(),qi=o_):(ki=xd,qi+=ft.shift()),yc.push(ki,qi),yt.bezierCurveTo.apply(yt,yc.slice(0,6)),yt.bezierCurveTo.apply(yt,yc.slice(6));break;default:throw new Error("Unknown op: 12 ".concat(ea))}break;default:throw new Error("Unknown op: ".concat(ea))}else if(ea<247)ft.push(ea-139);else if(ea<251){var cf=De.readUInt8();ft.push(256*(ea-247)+cf+108)}else ea<255?(cf=De.readUInt8(),ft.push(256*-(ea-251)-cf-108)):ft.push(De.readInt32BE()/65536)}};return Mo(),dr&&yt.closePath(),yt},Te}(wd),$p=new d.Struct({originX:d.uint16,originY:d.uint16,type:new d.String(4),data:new d.Buffer(function(at){return at.parent.buflen-at._currentOffset})}),dy=function(at){function Te(){return at.apply(this,arguments)||this}M(Te,at);var Je=Te.prototype;return Je.getImageForSize=function(pe){for(var De=0;De=pe)break}var wt=st.imageOffsets,yt=wt[this.id],ft=wt[this.id+1];return yt===ft?null:(this._font.stream.pos=yt,$p.decode(this._font.stream,{buflen:ft-yt}))},Je.render=function(pe,De){var st=this.getImageForSize(De);null!=st&&pe.image(st.data,{height:De,x:st.originX,y:De/this._font.unitsPerEm*(this.bbox.minY-st.originY)}),this._font.sbix.flags.renderOutlines&&at.prototype.render.call(this,pe,De)},Te}(ys),ef=function(Te,Je){this.glyph=Te,this.color=Je},eg=function(at){function Te(){return at.apply(this,arguments)||this}M(Te,at);var Je=Te.prototype;return Je._getBBox=function(){for(var pe=new Xt,De=0;De>1;if(this.id<(ft=De.baseGlyphRecord[yt]).gid)wt=yt-1;else{if(!(this.id>ft.gid)){var si=ft;break}st=yt+1}}if(null==si){var Bi=this._font._getBaseGlyph(this.id);return[new ef(Bi,zi={red:0,green:0,blue:0,alpha:255})]}for(var ki=[],qi=si.firstLayerIndex;qi=1&&pe[De]=De.glyphCount)){var st=De.offsets[se];if(st!==De.offsets[se+1]){var wt=this.font.stream;if(wt.pos=st,!(wt.pos>=wt.length)){var yt=wt.readUInt16BE(),ft=st+wt.readUInt16BE();if(32768&yt){var si=wt.pos;wt.pos=ft;var Bi=this.decodePoints();ft=wt.pos,wt.pos=si}var zi=pe.map(function(Yl){return Yl.copy()});yt&=4095;for(var ki=0;ki=De.globalCoordCount)throw new Error("Invalid gvar table");Dn=De.globalCoords[4095&un]}if(16384&un){for(var eo=[],to=0;tost[si])return 0;ft=wt[si]Math.max(0,pe[si]))return 0;ft=(ft*wt[si]+Number.EPSILON)/(pe[si]+Number.EPSILON)}}return ft},Te.interpolateMissingDeltas=function(se,pe,De){if(0!==se.length)for(var st=0;styt)){var si=st,Bi=st;for(st++;st<=yt;)De[st]&&(this.deltaInterpolate(Bi+1,st-1,Bi,st,pe,se),Bi=st),st++;Bi===si?this.deltaShift(wt,yt,Bi,pe,se):(this.deltaInterpolate(Bi+1,yt,Bi,si,pe,se),si>0&&this.deltaInterpolate(wt,si-1,Bi,si,pe,se)),st=yt+1}}},Te.deltaInterpolate=function(se,pe,De,st,wt,yt){if(!(se>pe))for(var ft=["x","y"],si=0;siwt[st][Bi]){var zi=De;De=st,st=zi}var ki=wt[De][Bi],qi=wt[st][Bi],un=yt[De][Bi],Dn=yt[st][Bi];if(ki!==qi||un===Dn)for(var dr=ki===qi?0:(Dn-un)/(qi-ki),eo=se;eo<=pe;eo++){var to=wt[eo][Bi];to<=ki?to+=un-ki:to>=qi?to+=Dn-qi:to=un+(to-ki)*dr,yt[eo][Bi]=to}}},Te.deltaShift=function(se,pe,De,st,wt){var yt=wt[De].x-st[De].x,ft=wt[De].y-st[De].y;if(0!==yt||0!==ft)for(var si=se;si<=pe;si++)si!==De&&(wt[si].x+=yt,wt[si].y+=ft)},Te.getAdvanceAdjustment=function(se,pe){var De,st;if(pe.advanceWidthMapping){var wt=se;wt>=pe.advanceWidthMapping.mapCount&&(wt=pe.advanceWidthMapping.mapCount-1);var ft=pe.advanceWidthMapping.mapData[wt];De=ft.outerIndex,st=ft.innerIndex}else De=0,st=se;return this.getDelta(pe.itemVariationStore,De,st)},Te.getDelta=function(se,pe,De){if(pe>=se.itemVariationData.length)return 0;var st=se.itemVariationData[pe];if(De>=st.deltaSets.length)return 0;for(var wt=st.deltaSets[De],yt=this.getBlendVector(se,pe),ft=0,si=0;siki.peakCoord||ki.peakCoord>ki.endCoord||ki.startCoord<0&&ki.endCoord>0&&0!==ki.peakCoord||0===ki.peakCoord?1:st[zi]ki.endCoord?0:st[zi]===ki.peakCoord?1:st[zi]=0&&Je<=255?1:2},at.encode=function(Je,se){se>=0&&se<=255?Je.writeUInt8(se):Je.writeInt16BE(se)},at}(),Yt=new d.Struct({numberOfContours:d.int16,xMin:d.int16,yMin:d.int16,xMax:d.int16,yMax:d.int16,endPtsOfContours:new d.Array(d.uint16,"numberOfContours"),instructions:new d.Array(d.uint8,d.uint16),flags:new d.Array(d.uint8,0),xPoints:new d.Array(bt,0),yPoints:new d.Array(bt,0)}),fi=function(){function at(){}var Te=at.prototype;return Te.encodeSimple=function(se,pe){void 0===pe&&(pe=[]);for(var De=[],st=[],wt=[],yt=[],ft=0,si=0,Bi=0,zi=0,ki=0,qi=0;qi0&&(yt.push(ft),ft=0),yt.push(to),zi=to),si=dr,Bi=eo,ki++}"closePath"===un.command&&De.push(ki-1)}se.commands.length>1&&"closePath"!==se.commands[se.commands.length-1].command&&De.push(ki-1);var Ko=se.bbox,os={numberOfContours:De.length,xMin:Ko.minX,yMin:Ko.minY,xMax:Ko.maxX,yMax:Ko.maxY,endPtsOfContours:De,instructions:pe,flags:yt,xPoints:st,yPoints:wt},Ds=Yt.size(os),as=4-Ds%4,bo=new d.EncodeStream(Ds+as);return Yt.encode(bo,os),0!==as&&bo.fill(0,as),bo.buffer},Te._encodePoint=function(se,pe,De,st,wt,yt){var ft=se-pe;return se===pe?st|=yt:(-255<=ft&&ft<=255&&(st|=wt,ft<0?ft=-ft:st|=yt),De.push(ft)),st},at}(),bi=function(at){function Te(se){var pe;return(pe=at.call(this,se)||this).glyphEncoder=new fi,pe}M(Te,at);var Je=Te.prototype;return Je._addGlyph=function(pe){var De=this.font.getGlyph(pe),st=De._decode(),wt=this.font.loca.offsets[pe],yt=this.font.loca.offsets[pe+1],ft=this.font._getTableStream("glyf");ft.pos+=wt;var si=ft.readBuffer(yt-wt);if(st&&st.numberOfContours<0){si=v.from(si);for(var zi,Bi=x(st.components);!(zi=Bi()).done;){var ki=zi.value;pe=this.includeGlyph(ki.glyphID),si.writeUInt16BE(pe,ki.pos)}}else st&&this.font._variationProcessor&&(si=this.glyphEncoder.encodeSimple(De.path,st.instructions));return this.glyf.push(si),this.loca.offsets.push(this.offset),this.hmtx.metrics.push({advance:De.advanceWidth,bearing:De._getMetrics().leftBearing}),this.offset+=si.length,this.glyf.length-1},Je.encode=function(pe){this.glyf=[],this.offset=0,this.loca={offsets:[],version:this.font.loca.version},this.hmtx={metrics:[],bearings:[]};for(var De=0;De255?2:1,ranges:[{first:1,nLeft:this.charstrings.length-2}]},st=Object.assign({},this.cff.topDict);st.Private=null,st.charset=De,st.Encoding=null,st.CharStrings=this.charstrings;for(var wt=0,yt=["version","Notice","Copyright","FullName","FamilyName","Weight","PostScript","BaseFontName","FontName"];wt0&&Object.defineProperty(this,pe,{get:this._getTable.bind(this,De)})}}at.probe=function(se){var pe=se.toString("ascii",0,4);return"true"===pe||"OTTO"===pe||pe===String.fromCharCode(0,1,0,0)};var Te=at.prototype;return Te.setDefaultLanguage=function(se){void 0===se&&(se=null),this.defaultLanguage=se},Te._getTable=function(se){if(!(se.tag in this._tables))try{this._tables[se.tag]=this._decodeTable(se)}catch(pe){P.logErrors&&(console.error("Error decoding table ".concat(se.tag)),console.error(pe.stack))}return this._tables[se.tag]},Te._getTableStream=function(se){var pe=this.directory.tables[se];return pe?(this.stream.pos=pe.offset,this.stream):null},Te._decodeDirectory=function(){return this.directory=bl.decode(this.stream,{_startOffset:0})},Te._decodeTable=function(se){var pe=this.stream.pos,De=this._getTableStream(se.tag),st=Pr[se.tag].decode(De,this,se.length);return this.stream.pos=pe,st},Te.getName=function(se,pe){void 0===pe&&(pe=this.defaultLanguage||P.defaultLanguage);var De=this.name&&this.name.records[se];return De&&(De[pe]||De[this.defaultLanguage]||De[P.defaultLanguage]||De.en||De[Object.keys(De)[0]])||null},Te.hasGlyphForCodePoint=function(se){return!!this._cmapProcessor.lookup(se)},Te.glyphForCodePoint=function(se){return this.getGlyph(this._cmapProcessor.lookup(se),[se])},Te.glyphsForString=function(se){for(var pe=[],De=se.length,st=0,wt=-1,yt=-1;st<=De;){var ft=0,si=0;if(st>>6&3},transformed:function(Te){return"glyf"===Te.tag||"loca"===Te.tag?0===Te.transformVersion:0!==Te.transformVersion},transformLength:new d.Optional(Xn,function(at){return at.transformed})}),Rr=new d.Struct({tag:new d.String(4),flavor:d.uint32,length:d.uint32,numTables:d.uint16,reserved:new d.Reserved(d.uint16),totalSfntSize:d.uint32,totalCompressedSize:d.uint32,majorVersion:d.uint16,minorVersion:d.uint16,metaOffset:d.uint32,metaLength:d.uint32,metaOrigLength:d.uint32,privOffset:d.uint32,privLength:d.uint32,tables:new d.Array(Lr,"numTables")});Rr.process=function(){for(var at={},Te=0;Te0){for(var ft=[],si=0,Bi=0;Bi>7);if((ft&=127)<10)wt=0,yt=cs(ft,((14&ft)<<7)+Te.readUInt8());else if(ft<20)wt=cs(ft,((ft-10&14)<<7)+Te.readUInt8()),yt=0;else if(ft<84)wt=cs(ft,1+(48&(Bi=ft-20))+((zi=Te.readUInt8())>>4)),yt=cs(ft>>1,1+((12&Bi)<<2)+(15&zi));else if(ft<120){var Bi;wt=cs(ft,1+((Bi=ft-84)/12<<8)+Te.readUInt8()),yt=cs(ft>>1,1+(Bi%12>>2<<8)+Te.readUInt8())}else if(ft<124){var zi=Te.readUInt8(),ki=Te.readUInt8();wt=cs(ft,(zi<<4)+(ki>>4)),yt=cs(ft>>1,((15&ki)<<8)+Te.readUInt8())}else wt=cs(ft,Te.readUInt16BE()),yt=cs(ft>>1,Te.readUInt16BE());De.push(new _A(si,!1,pe+=wt,se+=yt))}return De}var Ns=new d.VersionedStruct(d.uint32,{65536:{numFonts:d.uint32,offsets:new d.Array(d.uint32,"numFonts")},131072:{numFonts:d.uint32,offsets:new d.Array(d.uint32,"numFonts"),dsigTag:d.uint32,dsigLength:d.uint32,dsigOffset:d.uint32}}),Us=function(){function at(Je){if(this.stream=Je,"ttcf"!==Je.readString(4))throw new Error("Not a TrueType collection");this.header=Ns.decode(Je)}return at.probe=function(se){return"ttcf"===se.toString("ascii",0,4)},at.prototype.getFont=function(se){for(var De,pe=x(this.header.offsets);!(De=pe()).done;){var st=De.value,wt=new d.DecodeStream(this.stream.buffer);wt.pos=st;var yt=new dn(wt);if(yt.postscriptName===se)return yt}return null},_(at,[{key:"fonts",get:function(){for(var De,se=[],pe=x(this.header.offsets);!(De=pe()).done;){var st=De.value,wt=new d.DecodeStream(this.stream.buffer);wt.pos=st,se.push(new dn(wt))}return se}}])}(),Dl=new d.String(d.uint8),Nr=(new d.Struct({len:d.uint32,buf:new d.Buffer("len")}),new d.Struct({id:d.uint16,nameOffset:d.int16,attr:d.uint8,dataOffset:d.uint24,handle:d.uint32})),zs=new d.Struct({name:new d.String(4),maxTypeIndex:d.uint16,refList:new d.Pointer(d.uint16,new d.Array(Nr,function(at){return at.maxTypeIndex+1}),{type:"parent"})}),Yc=new d.Struct({length:d.uint16,types:new d.Array(zs,function(at){return at.length+1})}),ma=new d.Struct({reserved:new d.Reserved(d.uint8,24),typeList:new d.Pointer(d.uint16,Yc),nameListOffset:new d.Pointer(d.uint16,"void")}),bd=new d.Struct({dataOffset:d.uint32,map:new d.Pointer(d.uint32,ma),dataLength:d.uint32,mapLength:d.uint32}),yA=function(){function at(Je){this.stream=Je,this.header=bd.decode(this.stream);for(var pe,se=x(this.header.map.typeList.types);!(pe=se()).done;){for(var wt,De=pe.value,st=x(De.refList);!(wt=st()).done;){var yt=wt.value;yt.nameOffset>=0?(this.stream.pos=yt.nameOffset+this.header.map.nameListOffset,yt.name=Dl.decode(this.stream)):yt.name=null}"sfnt"===De.name&&(this.sfnt=De)}}return at.probe=function(se){var pe=new d.DecodeStream(se);try{var De=bd.decode(pe)}catch{return!1}for(var wt,st=x(De.map.typeList.types);!(wt=st()).done;)if("sfnt"===wt.value.name)return!0;return!1},at.prototype.getFont=function(se){if(!this.sfnt)return null;for(var De,pe=x(this.sfnt.refList);!(De=pe()).done;){var yt=new d.DecodeStream(this.stream.buffer.slice(this.header.dataOffset+De.value.dataOffset+4)),ft=new dn(yt);if(ft.postscriptName===se)return ft}return null},_(at,[{key:"fonts",get:function(){for(var De,se=[],pe=x(this.sfnt.refList);!(De=pe()).done;){var yt=new d.DecodeStream(this.stream.buffer.slice(this.header.dataOffset+De.value.dataOffset+4));se.push(new dn(yt))}return se}}])}();P.registerFormat(dn),P.registerFormat(er),P.registerFormat(Lo),P.registerFormat(Us),P.registerFormat(yA),T.exports=P},10819:function(T,e,l){var q,v=l(34984),h=l(10196),f=l(2416),_=l(90682),b=l(520),y=l(12072),M=l(82194),k="prototype",Q="script",I=M("IE_PROTO"),d=function(){},S=function(H){return"<"+Q+">"+H+""},R=function(H){H.write(S("")),H.close();var G=H.parentWindow.Object;return H=null,G},Z=function(){try{q=new ActiveXObject("htmlfile")}catch{}Z=typeof document<"u"?document.domain&&q?R(q):function(){var W,H=y("iframe"),G="java"+Q+":";return H.style.display="none",b.appendChild(H),H.src=String(G),(W=H.contentWindow.document).open(),W.write(S("document.F=Object")),W.close(),W.F}():R(q);for(var H=f.length;H--;)delete Z[k][f[H]];return Z()};_[I]=!0,T.exports=Object.create||function(G,W){var te;return null!==G?(d[k]=v(G),te=new d,d[k]=null,te[I]=G):te=Z(),void 0===W?te:h(te,W)}},10821:function(T,e,l){"use strict";var v=l(10884),h=typeof globalThis>"u"?l.g:globalThis;T.exports=function(){for(var _=[],b=0;b=0;)G[te]=k((P+=G[te])/W),P=P%W*1e7},Z=function(G){for(var W=6,te="";--W>=0;)if(""!==te||0===W||0!==G[W]){var P=x(G[W]);te=""===te?P:te+Q("0",7-P.length)+P}return te};v({target:"Number",proto:!0,forced:M(function(){return"0.000"!==d(8e-5,3)||"1"!==d(.9,0)||"1.25"!==d(1.255,2)||"1000000000000000128"!==d(0xde0b6b3a7640080,0)})||!M(function(){d({})})},{toFixed:function(W){var he,oe,Ce,me,te=b(this),P=_(W),J=[0,0,0,0,0,0],j="",re="0";if(P<0||P>20)throw D("Incorrect fraction digits");if(te!=te)return"NaN";if(te<=-1e21||te>=1e21)return x(te);if(te<0&&(j="-",te=-te),te>1e-21)if(oe=(he=function(G){for(var W=0,te=G;te>=4096;)W+=12,te/=4096;for(;te>=2;)W+=1,te/=2;return W}(te*S(2,69,1))-69)<0?te*S(2,-he,1):te/S(2,he,1),oe*=4503599627370496,(he=52-he)>0){for(z(J,0,oe),Ce=P;Ce>=7;)z(J,1e7,0),Ce-=7;for(z(J,S(10,Ce,1),0),Ce=he-1;Ce>=23;)q(J,8388608),Ce-=23;q(J,1<0?j+((me=re.length)<=P?"0."+Q("0",P-me)+re:I(re,0,me-P)+"."+I(re,me-P)):j+re}})},10884:function(T){"use strict";T.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},11206:function(T,e,l){var v=l(32010);T.exports=v},11220:function(T,e,l){"use strict";var v=l(91867).isUndefined,h=l(54861);function f(b,y){this.transactionLevel=0,this.repeatables=[],this.tracker=y,this.writer=new h(b,y)}function _(b,y){var M=y(b);return M||(b.moveToNextPage(),M=y(b)),M}f.prototype.addLine=function(b,y,M){return _(this,function(D){return D.writer.addLine(b,y,M)})},f.prototype.addImage=function(b,y){return _(this,function(M){return M.writer.addImage(b,y)})},f.prototype.addSVG=function(b,y){return _(this,function(M){return M.writer.addSVG(b,y)})},f.prototype.addQr=function(b,y){return _(this,function(M){return M.writer.addQr(b,y)})},f.prototype.addVector=function(b,y,M,D,x){return this.writer.addVector(b,y,M,D,x)},f.prototype.beginClip=function(b,y){return this.writer.beginClip(b,y)},f.prototype.endClip=function(){return this.writer.endClip()},f.prototype.alignCanvas=function(b){this.writer.alignCanvas(b)},f.prototype.addFragment=function(b,y,M,D){this.writer.addFragment(b,y,M,D)||(this.moveToNextPage(),this.writer.addFragment(b,y,M,D))},f.prototype.moveToNextPage=function(b){var y=this.writer.context.moveToNextPage(b);this.repeatables.forEach(function(M){v(M.insertedOnPages[this.writer.context.page])?(M.insertedOnPages[this.writer.context.page]=!0,this.writer.addFragment(M,!0)):this.writer.context.moveDown(M.height)},this),this.writer.tracker.emit("pageChanged",{prevPage:y.prevPage,prevY:y.prevY,y:this.writer.context.y})},f.prototype.beginUnbreakableBlock=function(b,y){0==this.transactionLevel++&&(this.originalX=this.writer.context.x,this.writer.pushContext(b,y))},f.prototype.commitUnbreakableBlock=function(b,y){if(0==--this.transactionLevel){var M=this.writer.context;this.writer.popContext();var D=M.pages.length;if(D>0){var x=M.pages[0];if(x.xOffset=b,x.yOffset=y,D>1)if(void 0!==b||void 0!==y)x.height=M.getCurrentPage().pageSize.height-M.pageMargins.top-M.pageMargins.bottom;else{x.height=this.writer.context.getCurrentPage().pageSize.height-this.writer.context.pageMargins.top-this.writer.context.pageMargins.bottom;for(var k=0,Q=this.repeatables.length;k0&&(z=this.iconv.decode(v.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",z},e.utf7imap=I,I.prototype.encoder=d,I.prototype.decoder=S,I.prototype.bomAware=!0,d.prototype.write=function(z){for(var q=this.inBase64,Z=this.base64Accum,H=this.base64AccumIdx,G=v.alloc(5*z.length+10),W=0,te=0;te0&&(W+=G.write(Z.slice(0,H).toString("base64").replace(/\//g,",").replace(/=+$/,""),W),H=0),G[W++]=k,q=!1),q||(G[W++]=P,P===Q&&(G[W++]=k))):(q||(G[W++]=Q,q=!0),q&&(Z[H++]=P>>8,Z[H++]=255&P,H==Z.length&&(W+=G.write(Z.toString("base64").replace(/\//g,","),W),H=0)))}return this.inBase64=q,this.base64AccumIdx=H,G.slice(0,W)},d.prototype.end=function(){var z=v.alloc(10),q=0;return this.inBase64&&(this.base64AccumIdx>0&&(q+=z.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),q),this.base64AccumIdx=0),z[q++]=k,this.inBase64=!1),z.slice(0,q)};var R=M.slice();R[",".charCodeAt(0)]=!0,S.prototype.write=function(z){for(var q="",Z=0,H=this.inBase64,G=this.base64Accum,W=0;W0&&(z=this.iconv.decode(v.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",z}},11432:function(T,e,l){"use strict";l(41584);var v=l(14598),h=v.Buffer;function f(b,y){for(var M in b)y[M]=b[M]}function _(b,y,M){return h(b,y,M)}h.from&&h.alloc&&h.allocUnsafe&&h.allocUnsafeSlow?T.exports=v:(f(v,e),e.Buffer=_),f(h,_),_.from=function(b,y,M){if("number"==typeof b)throw new TypeError("Argument must not be a number");return h(b,y,M)},_.alloc=function(b,y,M){if("number"!=typeof b)throw new TypeError("Argument must be a number");var D=h(b);return void 0!==y?"string"==typeof M?D.fill(y,M):D.fill(y):D.fill(0),D},_.allocUnsafe=function(b){if("number"!=typeof b)throw new TypeError("Argument must be a number");return h(b)},_.allocUnsafeSlow=function(b){if("number"!=typeof b)throw new TypeError("Argument must be a number");return v.SlowBuffer(b)}},11548:function(T,e,l){"use strict";var v=l(91867).isString,h=l(91867).isNumber,f=l(91867).isObject,_=l(91867).isArray,b=l(91867).isUndefined,y=l(5417),M=/^(\s)+/g,D=/(\s)+$/g;function x(q){this.fontProvider=q}function k(q,Z){var H=[];if(q=q.replace(/\t/g," "),Z)return H.push({text:q}),H;for(var te,G=new y(q),W=0;te=G.nextBreak();){var P=q.slice(W,te.position);te.required||P.match(/\r?\n$|\r$/)?(P=P.replace(/\r?\n$|\r$/,""),H.push({text:P,lineEnd:!0})):H.push({text:P}),W=te.position}return H}function Q(q,Z){for(var H in Z=Z||{},q=q||{})"text"!=H&&q.hasOwnProperty(H)&&(Z[H]=q[H]);return Z}function d(q){return null==q?"":h(q)?q.toString():v(q)?q:q.toString()}function S(q,Z,H,G){var W;return null!=q[H]?q[H]:Z?(Z.auto(q,function(){W=Z.getProperty(H)}),W??G):G}function R(q,Z,H){var G=function I(q,Z){function G(ve,ye,Oe){if(b(ye[ve])||ye[ve].lineEnd)return null;var ae=ye[ve].text;if(Oe){var Ee=k(d(ae),!1);if(b(Ee[Ee.length-1]))return null;ae=Ee[Ee.length-1].text}return ae}var W=[];_(q)||(q=[q]);for(var te=null,P=0,J=(q=function H(ve){return ve.reduce(function(ye,Oe){var ae=_(Oe.text)?H(Oe.text):Oe,Ee=[].concat(ae).some(Array.isArray);return ye.concat(Ee?H(ae):ae)},[])}(q)).length;P=this.length)){if(null==this.items[S]){var R=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.ctx)*S,this.items[S]=this.type.decode(this.stream,this.ctx),this.stream.pos=R}return this.items[S]}},I.toArray=function(){for(var S=[],R=0,z=this.length;RQ;)if((I=x[Q++])!=I)return!0}else for(;k>Q;Q++)if((b||Q in x)&&x[Q]===M)return b||Q||0;return!b&&-1}};T.exports={includes:_(!0),indexOf:_(!1)}},12719:function(T){"use strict";var l=Object.prototype.toString,v=Math.max,f=function(M,D){for(var x=[],k=0;kd;)R[d]=Q[d++];return R},f(function(){new Int8Array(1).slice()}))},13501:function(T){T.exports="W5/fcQLn5gKf2XUbAiQ1XULX+TZz6ADToDsgqk6qVfeC0e4m6OO2wcQ1J76ZBVRV1fRkEsdu//62zQsFEZWSTCnMhcsQKlS2qOhuVYYMGCkV0fXWEoMFbESXrKEZ9wdUEsyw9g4bJlEt1Y6oVMxMRTEVbCIwZzJzboK5j8m4YH02qgXYhv1V+PM435sLVxyHJihaJREEhZGqL03txGFQLm76caGO/ovxKvzCby/3vMTtX/459f0igi7WutnKiMQ6wODSoRh/8Lx1V3Q99MvKtwB6bHdERYRY0hStJoMjNeTsNX7bn+Y7e4EQ3bf8xBc7L0BsyfFPK43dGSXpL6clYC/I328h54/VYrQ5i0648FgbGtl837svJ35L3Mot/+nPlNpWgKx1gGXQYqX6n+bbZ7wuyCHKcUok12Xjqub7NXZGzqBx0SD+uziNf87t7ve42jxSKQoW3nyxVrWIGlFShhCKxjpZZ5MeGna0+lBkk+kaN8F9qFBAFgEogyMBdcX/T1W/WnMOi/7ycWUQloEBKGeC48MkiwqJkJO+12eQiOFHMmck6q/IjWW3RZlany23TBm+cNr/84/oi5GGmGBZWrZ6j+zykVozz5fT/QH/Da6WTbZYYPynVNO7kxzuNN2kxKKWche5WveitPKAecB8YcAHz/+zXLjcLzkdDSktNIDwZE9J9X+tto43oJy65wApM3mDzYtCwX9lM+N5VR3kXYo0Z3t0TtXfgBFg7gU8oN0Dgl7fZlUbhNll+0uuohRVKjrEd8egrSndy5/Tgd2gqjA4CAVuC7ESUmL3DZoGnfhQV8uwnpi8EGvAVVsowNRxPudck7+oqAUDkwZopWqFnW1riss0t1z6iCISVKreYGNvQcXv+1L9+jbP8cd/dPUiqBso2q+7ZyFBvENCkkVr44iyPbtOoOoCecWsiuqMSML5lv+vN5MzUr+Dnh73G7Q1YnRYJVYXHRJaNAOByiaK6CusgFdBPE40r0rvqXV7tksKO2DrHYXBTv8P5ysqxEx8VDXUDDqkPH6NNOV/a2WH8zlkXRELSa8P+heNyJBBP7PgsG1EtWtNef6/i+lcayzQwQCsduidpbKfhWUDgAEmyhGu/zVTacI6RS0zTABrOYueemnVa19u9fT23N/Ta6RvTpof5DWygqreCqrDAgM4LID1+1T/taU6yTFVLqXOv+/MuQOFnaF8vLMKD7tKWDoBdALgxF33zQccCcdHx8fKIVdW69O7qHtXpeGr9jbbpFA+qRMWr5hp0s67FPc7HAiLV0g0/peZlW7hJPYEhZyhpSwahnf93/tZgfqZWXFdmdXBzqxGHLrQKxoAY6fRoBhgCRPmmGueYZ5JexTVDKUIXzkG/fqp/0U3hAgQdJ9zumutK6nqWbaqvm1pgu03IYR+G+8s0jDBBz8cApZFSBeuWasyqo2OMDKAZCozS+GWSvL/HsE9rHxooe17U3s/lTE+VZAk4j3dp6uIGaC0JMiqR5CUsabPyM0dOYDR7Ea7ip4USZlya38YfPtvrX/tBlhHilj55nZ1nfN24AOAi9BVtz/Mbn8AEDJCqJgsVUa6nQnSxv2Fs7l/NlCzpfYEjmPrNyib/+t0ei2eEMjvNhLkHCZlci4WhBe7ePZTmzYqlY9+1pxtS4GB+5lM1BHT9tS270EWUDYFq1I0yY/fNiAk4bk9yBgmef/f2k6AlYQZHsNFnW8wBQxCd68iWv7/35bXfz3JZmfGligWAKRjIs3IpzxQ27vAglHSiOzCYzJ9L9A1CdiyFvyR66ucA4jKifu5ehwER26yV7HjKqn5Mfozo7Coxxt8LWWPT47BeMxX8p0Pjb7hZn+6bw7z3Lw+7653j5sI8CLu5kThpMlj1m4c2ch3jGcP1FsT13vuK3qjecKTZk2kHcOZY40UX+qdaxstZqsqQqgXz+QGF99ZJLqr3VYu4aecl1Ab5GmqS8k/GV5b95zxQ5d4EfXUJ6kTS/CXF/aiqKDOT1T7Jz5z0PwDUcwr9clLN1OJGCiKfqvah+h3XzrBOiLOW8wvn8gW6qE8vPxi+Efv+UH55T7PQFVMh6cZ1pZQlzJpKZ7P7uWvwPGJ6DTlR6wbyj3Iv2HyefnRo/dv7dNx+qaa0N38iBsR++Uil7Wd4afwDNsrzDAK4fXZwvEY/jdKuIKXlfrQd2C39dW7ntnRbIp9OtGy9pPBn/V2ASoi/2UJZfS+xuGLH8bnLuPlzdTNS6zdyk8Dt/h6sfOW5myxh1f+zf3zZ3MX/mO9cQPp5pOx967ZA6/pqHvclNfnUFF+rq+Vd7alKr6KWPcIDhpn6v2K6NlUu6LrKo8b/pYpU/Gazfvtwhn7tEOUuXht5rUJdSf6sLjYf0VTYDgwJ81yaqKTUYej/tbHckSRb/HZicwGJqh1mAHB/IuNs9dc9yuvF3D5Xocm3elWFdq5oEy70dYFit79yaLiNjPj5UUcVmZUVhQEhW5V2Z6Cm4HVH/R8qlamRYwBileuh07CbEce3TXa2JmXWBf+ozt319psboobeZhVnwhMZzOeQJzhpTDbP71Tv8HuZxxUI/+ma3XW6DFDDs4+qmpERwHGBd2edxwUKlODRdUWZ/g0GOezrbzOZauFMai4QU6GVHV6aPNBiBndHSsV4IzpvUiiYyg6OyyrL4Dj5q/Lw3N5kAwftEVl9rNd7Jk5PDij2hTH6wIXnsyXkKePxbmHYgC8A6an5Fob/KH5GtC0l4eFso+VpxedtJHdHpNm+Bvy4C79yVOkrZsLrQ3OHCeB0Ra+kBIRldUGlDCEmq2RwXnfyh6Dz+alk6eftI2n6sastRrGwbwszBeDRS/Fa/KwRJkCzTsLr/JCs5hOPE/MPLYdZ1F1fv7D+VmysX6NpOC8aU9F4Qs6HvDyUy9PvFGDKZ/P5101TYHFl8pjj6wm/qyS75etZhhfg0UEL4OYmHk6m6dO192AzoIyPSV9QedDA4Ml23rRbqxMPMxf7FJnDc5FTElVS/PyqgePzmwVZ26NWhRDQ+oaT7ly7ell4s3DypS1s0g+tOr7XHrrkZj9+x/mJBttrLx98lFIaRZzHz4aC7r52/JQ4VjHahY2/YVXZn/QC2ztQb/sY3uRlyc5vQS8nLPGT/n27495i8HPA152z7Fh5aFpyn1GPJKHuPL8Iw94DuW3KjkURAWZXn4EQy89xiKEHN1mk/tkM4gYDBxwNoYvRfE6LFqsxWJtPrDGbsnLMap3Ka3MUoytW0cvieozOmdERmhcqzG+3HmZv2yZeiIeQTKGdRT4HHNxekm1tY+/n06rGmFleqLscSERzctTKM6G9P0Pc1RmVvrascIxaO1CQCiYPE15bD7c3xSeW7gXxYjgxcrUlcbIvO0r+Yplhx0kTt3qafDOmFyMjgGxXu73rddMHpV1wMubyAGcf/v5dLr5P72Ta9lBF+fzMJrMycwv+9vnU3ANIl1cH9tfW7af8u0/HG0vV47jNFXzFTtaha1xvze/s8KMtCYucXc1nzfd/MQydUXn/b72RBt5wO/3jRcMH9BdhC/yctKBIveRYPrNpDWqBsO8VMmP+WvRaOcA4zRMR1PvSoO92rS7pYEv+fZfEfTMzEdM+6X5tLlyxExhqLRkms5EuLovLfx66de5fL2/yX02H52FPVwahrPqmN/E0oVXnsCKhbi/yRxX83nRbUKWhzYceXOntfuXn51NszJ6MO73pQf5Pl4in3ec4JU8hF7ppV34+mm9r1LY0ee/i1O1wpd8+zfLztE0cqBxggiBi5Bu95v9l3r9r/U5hweLn+TbfxowrWDqdJauKd8+q/dH8sbPkc9ttuyO94f7/XK/nHX46MPFLEb5qQlNPvhJ50/59t9ft3LXu7uVaWaO2bDrDCnRSzZyWvFKxO1+vT8MwwunR3bX0CkfPjqb4K9O19tn5X50PvmYpEwHtiW9WtzuV/s76B1zvLLNkViNd8ySxIl/3orfqP90TyTGaf7/rx8jQzeHJXdmh/N6YDvbvmTBwCdxfEQ1NcL6wNMdSIXNq7b1EUzRy1/Axsyk5p22GMG1b+GxFgbHErZh92wuvco0AuOLXct9hvw2nw/LqIcDRRmJmmZzcgUa7JpM/WV/S9IUfbF56TL2orzqwebdRD8nIYNJ41D/hz37Fo11p2Y21wzPcn713qVGhqtevStYfGH4n69OEJtPvbbLYWvscDqc3Hgnu166+tAyLnxrX0Y5zoYjV++1sI7t5kMr02KT/+uwtkc+rZLOf/qn/s3nYCf13Dg8/sB2diJgjGqjQ+TLhxbzyue2Ob7X6/9lUwW7a+lbznHzOYy8LKW1C/uRPbQY3KW/0gO9LXunHLvPL97afba9bFtc9hmz7GAttjVYlCvQAiOwAk/gC5+hkLEs6tr3AZKxLJtOEwk2dLxTYWsIB/j/ToWtIWzo906FrSG8iaqqqqqqiIiIiAgzMzMzNz+AyK+01/zi8n8S+Y1MjoRaQ80WU/G8MBlO+53VPXANrWm4wzGUVZUjjBJZVdhpcfkjsmcWaO+UEldXi1e+zq+HOsCpknYshuh8pOLISJun7TN0EIGW2xTnlOImeecnoGW4raxe2G1T3HEvfYUYMhG+gAFOAwh5nK8mZhwJMmN7r224QVsNFvZ87Z0qatvknklyPDK3Hy45PgVKXji52Wen4d4PlFVVYGnNap+fSpFbK90rYnhUc6n91Q3AY9E0tJOFrcfZtm/491XbcG/jsViUPPX76qmeuiz+qY1Hk7/1VPM405zWVuoheLUimpWYdVzCmUdKHebMdzgrYrb8mL2eeLSnRWHdonfZa8RsOU9F37w+591l5FLYHiOqWeHtE/lWrBHcRKp3uhtr8yXm8LU/5ms+NM6ZKsqu90cFZ4o58+k4rdrtB97NADFbwmEG7lXqvirhOTOqU14xuUF2myIjURcPHrPOQ4lmM3PeMg7bUuk0nnZi67bXsU6H8lhqIo8TaOrEafCO1ARK9PjC0QOoq2BxmMdgYB9G/lIb9++fqNJ2s7BHGFyBNmZAR8J3KCo012ikaSP8BCrf6VI0X5xdnbhHIO+B5rbOyB54zXkzfObyJ4ecwxfqBJMLFc7m59rNcw7hoHnFZ0b00zee+gTqvjm61Pb4xn0kcDX4jvHM0rBXZypG3DCKnD/Waa/ZtHmtFPgO5eETx+k7RrVg3aSwm2YoNXnCs3XPQDhNn+Fia6IlOOuIG6VJH7TP6ava26ehKHQa2T4N0tcZ9dPCGo3ZdnNltsHQbeYt5vPnJezV/cAeNypdml1vCHI8M81nSRP5Qi2+mI8v/sxiZru9187nRtp3f/42NemcONa+4eVC3PCZzc88aZh851CqSsshe70uPxeN/dmYwlwb3trwMrN1Gq8jbnApcVDx/yDPeYs5/7r62tsQ6lLg+DiFXTEhzR9dHqv0iT4tgj825W+H3XiRUNUZT2kR9Ri0+lp+UM3iQtS8uOE23Ly4KYtvqH13jghUntJRAewuzNLDXp8RxdcaA3cMY6TO2IeSFRXezeWIjCqyhsUdMYuCgYTZSKpBype1zRfq8FshvfBPc6BAQWl7/QxIDp3VGo1J3vn42OEs3qznws+YLRXbymyB19a9XBx6n/owcyxlEYyFWCi+kG9F+EyD/4yn80+agaZ9P7ay2Dny99aK2o91FkfEOY8hBwyfi5uwx2y5SaHmG+oq/zl1FX/8irOf8Y3vAcX/6uLP6A6nvMO24edSGPjQc827Rw2atX+z2bKq0CmW9mOtYnr5/AfDa1ZfPaXnKtlWborup7QYx+Or2uWb+N3N//2+yDcXMqIJdf55xl7/vsj4WoPPlxLxtVrkJ4w/tTe3mLdATOOYwxcq52w5Wxz5MbPdVs5O8/lhfE7dPj0bIiPQ3QV0iqm4m3YX8hRfc6jQ3fWepevMqUDJd86Z4vwM40CWHnn+WphsGHfieF02D3tmZvpWD+kBpNCFcLnZhcmmrhpGzzbdA+sQ1ar18OJD87IOKOFoRNznaHPNHUfUNhvY1iU+uhvEvpKHaUn3qK3exVVyX4joipp3um7FmYJWmA+WbIDshRpbVRx5/nqstCgy87FGbfVB8yDGCqS+2qCsnRwnSAN6zgzxfdB2nBT/vZ4/6uxb6oH8b4VBRxiIB93wLa47hG3w2SL/2Z27yOXJFwZpSJaBYyvajA7vRRYNKqljXKpt/CFD/tSMr18DKKbwB0xggBePatl1nki0yvqW5zchlyZmJ0OTxJ3D+fsYJs/mxYN5+Le5oagtcl+YsVvy8kSjI2YGvGjvmpkRS9W2dtXqWnVuxUhURm1lKtou/hdEq19VBp9OjGvHEQSmrpuf2R24mXGheil8KeiANY8fW1VERUfBImb64j12caBZmRViZHbeVMjCrPDg9A90IXrtnsYCuZtRQ0PyrKDjBNOsPfKsg1pA02gHlVr0OXiFhtp6nJqXVzcbfM0KnzC3ggOENPE9VBdmHKN6LYaijb4wXxJn5A0FSDF5j+h1ooZx885Jt3ZKzO5n7Z5WfNEOtyyPqQEnn7WLv5Fis3PdgMshjF1FRydbNyeBbyKI1oN1TRVrVK7kgsb/zjX4NDPIRMctVeaxVB38Vh1x5KbeJbU138AM5KzmZu3uny0ErygxiJF7GVXUrPzFxrlx1uFdAaZFDN9cvIb74qD9tzBMo7L7WIEYK+sla1DVMHpF0F7b3+Y6S+zjvLeDMCpapmJo1weBWuxKF3rOocih1gun4BoJh1kWnV/Jmiq6uOhK3VfKxEHEkafjLgK3oujaPzY6SXg8phhL4TNR1xvJd1Wa0aYFfPUMLrNBDCh4AuGRTbtKMc6Z1Udj8evY/ZpCuMAUefdo69DZUngoqE1P9A3PJfOf7WixCEj+Y6t7fYeHbbxUAoFV3M89cCKfma3fc1+jKRe7MFWEbQqEfyzO2x/wrO2VYH7iYdQ9BkPyI8/3kXBpLaCpU7eC0Yv/am/tEDu7HZpqg0EvHo0nf/R/gRzUWy33/HXMJQeu1GylKmOkXzlCfGFruAcPPhaGqZOtu19zsJ1SO2Jz4Ztth5cBX6mRQwWmDwryG9FUMlZzNckMdK+IoMJv1rOWnBamS2w2KHiaPMPLC15hCZm4KTpoZyj4E2TqC/P6r7/EhnDMhKicZZ1ZwxuC7DPzDGs53q8gXaI9kFTK+2LTq7bhwsTbrMV8Rsfua5lMS0FwbTitUVnVa1yTb5IX51mmYnUcP9wPr8Ji1tiYJeJV9GZTrQhF7vvdU2OTU42ogJ9FDwhmycI2LIg++03C6scYhUyUuMV5tkw6kGUoL+mjNC38+wMdWNljn6tGPpRES7veqrSn5TRuv+dh6JVL/iDHU1db4c9WK3++OrH3PqziF916UMUKn8G67nN60GfWiHrXYhUG3yVWmyYak59NHj8t1smG4UDiWz2rPHNrKnN4Zo1LBbr2/eF9YZ0n0blx2nG4X+EKFxvS3W28JESD+FWk61VCD3z/URGHiJl++7TdBwkCj6tGOH3qDb0QqcOF9Kzpj0HUb/KyFW3Yhj2VMKJqGZleFBH7vqvf7WqLC3XMuHV8q8a4sTFuxUtkD/6JIBvKaVjv96ndgruKZ1k/BHzqf2K9fLk7HGXANyLDd1vxkK/i055pnzl+zw6zLnwXlVYVtfmacJgEpRP1hbGgrYPVN6v2lG+idQNGmwcKXu/8xEj/P6qe/sB2WmwNp6pp8jaISMkwdleFXYK55NHWLTTbutSUqjBfDGWo/Yg918qQ+8BRZSAHZbfuNZz2O0sov1Ue4CWlVg3rFhM3Kljj9ksGd/NUhk4nH+a5UN2+1i8+NM3vRNp7uQ6sqexSCukEVlVZriHNqFi5rLm9TMWa4qm3idJqppQACol2l4VSuvWLfta4JcXy3bROPNbXOgdOhG47LC0CwW/dMlSx4Jf17aEU3yA1x9p+Yc0jupXgcMuYNku64iYOkGToVDuJvlbEKlJqsmiHbvNrIVZEH+yFdF8DbleZ6iNiWwMqvtMp/mSpwx5KxRrT9p3MAPTHGtMbfvdFhyj9vhaKcn3At8Lc16Ai+vBcSp1ztXi7rCJZx/ql7TXcclq6Q76UeKWDy9boS0WHIjUuWhPG8LBmW5y2rhuTpM5vsLt+HOLh1Yf0DqXa9tsfC+kaKt2htA0ai/L2i7RKoNjEwztkmRU0GfgW1TxUvPFhg0V7DdfWJk5gfrccpYv+MA9M0dkGTLECeYwUixRzjRFdmjG7zdZIl3XKB9YliNKI31lfa7i2JG5C8Ss+rHe0D7Z696/V3DEAOWHnQ9yNahMUl5kENWS6pHKKp2D1BaSrrHdE1w2qNxIztpXgUIrF0bm15YML4b6V1k+GpNysTahKMVrrS85lTVo9OGJ96I47eAy5rYWpRf/mIzeoYU1DKaQCTUVwrhHeyNoDqHel+lLxr9WKzhSYw7vrR6+V5q0pfi2k3L1zqkubY6rrd9ZLvSuWNf0uqnkY+FpTvFzSW9Fp0b9l8JA7THV9eCi/PY/SCZIUYx3BU2alj7Cm3VV6eYpios4b6WuNOJdYXUK3zTqj5CVG2FqYM4Z7CuIU0qO05XR0d71FHM0YhZmJmTRfLlXEumN82BGtzdX0S19t1e+bUieK8zRmqpa4Qc5TSjifmaQsY2ETLjhI36gMR1+7qpjdXXHiceUekfBaucHShAOiFXmv3sNmGQyU5iVgnoocuonQXEPTFwslHtS8R+A47StI9wj0iSrtbi5rMysczFiImsQ+bdFClnFjjpXXwMy6O7qfjOr8Fb0a7ODItisjnn3EQO16+ypd1cwyaAW5Yzxz5QknfMO7643fXW/I9y3U2xH27Oapqr56Z/tEzglj6IbT6HEHjopiXqeRbe5mQQvxtcbDOVverN0ZgMdzqRYRjaXtMRd56Q4cZSmdPvZJdSrhJ1D9zNXPqAEqPIavPdfubt5oke2kmv0dztIszSv2VYuoyf1UuopbsYb+uX9h6WpwjpgtZ6fNNawNJ4q8O3CFoSbioAaOSZMx2GYaPYB+rEb6qjQiNRFQ76TvwNFVKD+BhH9VhcKGsXzmMI7BptU/CNWolM7YzROvpFAntsiWJp6eR2d3GarcYShVYSUqhmYOWj5E96NK2WvmYNTeY7Zs4RUEdv9h9QT4EseKt6LzLrqEOs3hxAY1MaNWpSa6zZx8F3YOVeCYMS88W+CYHDuWe4yoc6YK+djDuEOrBR5lvh0r+Q9uM88lrjx9x9AtgpQVNE8r+3O6Gvw59D+kBF/UMXyhliYUtPjmvXGY6Dk3x+kEOW+GtdMVC4EZTqoS/jmR0P0LS75DOc/w2vnri97M4SdbZ8qeU7gg8DVbERkU5geaMQO3mYrSYyAngeUQqrN0C0/vsFmcgWNXNeidsTAj7/4MncJR0caaBUpbLK1yBCBNRjEv6KvuVSdpPnEMJdsRRtqJ+U8tN1gXA4ePHc6ZT0eviI73UOJF0fEZ8YaneAQqQdGphNvwM4nIqPnXxV0xA0fnCT+oAhJuyw/q8jO0y8CjSteZExwBpIN6SvNp6A5G/abi6egeND/1GTguhuNjaUbbnSbGd4L8937Ezm34Eyi6n1maeOBxh3PI0jzJDf5mh/BsLD7F2GOKvlA/5gtvxI3/eV4sLfKW5Wy+oio+es/u6T8UU+nsofy57Icb/JlZHPFtCgd/x+bwt3ZT+xXTtTtTrGAb4QehC6X9G+8YT+ozcLxDsdCjsuOqwPFnrdLYaFc92Ui0m4fr39lYmlCaqTit7G6O/3kWDkgtXjNH4BiEm/+jegQnihOtfffn33WxsFjhfMd48HT+f6o6X65j7XR8WLSHMFkxbvOYsrRsF1bowDuSQ18Mkxk4qz2zoGPL5fu9h2Hqmt1asl3Q3Yu3szOc+spiCmX4AETBM3pLoTYSp3sVxahyhL8eC4mPN9k2x3o0xkiixIzM3CZFzf5oR4mecQ5+ax2wCah3/crmnHoqR0+KMaOPxRif1oEFRFOO/kTPPmtww+NfMXxEK6gn6iU32U6fFruIz8Q4WgljtnaCVTBgWx7diUdshC9ZEa5yKpRBBeW12r/iNc/+EgNqmhswNB8SBoihHXeDF7rrWDLcmt3V8GYYN7pXRy4DZjj4DJuUBL5iC3DQAaoo4vkftqVTYRGLS3mHZ7gdmdTTqbgNN/PTdTCOTgXolc88MhXAEUMdX0iy1JMuk5wLsgeu0QUYlz2S4skTWwJz6pOm/8ihrmgGfFgri+ZWUK2gAPHgbWa8jaocdSuM4FJYoKicYX/ZSENkg9Q1ZzJfwScfVnR2DegOGwCvmogaWJCLQepv9WNlU6QgsmOwICquU28Mlk3d9W5E81lU/5Ez0LcX6lwKMWDNluNKfBDUy/phJgBcMnfkh9iRxrdOzgs08JdPB85Lwo+GUSb4t3nC+0byqMZtO2fQJ4U2zGIr49t/28qmmGv2RanDD7a3FEcdtutkW8twwwlUSpb8QalodddbBfNHKDQ828BdE7OBgFdiKYohLawFYqpybQoxATZrheLhdI7+0Zlu9Q1myRcd15r9UIm8K2LGJxqTegntqNVMKnf1a8zQiyUR1rxoqjiFxeHxqFcYUTHfDu7rhbWng6qOxOsI+5A1p9mRyEPdVkTlE24vY54W7bWc6jMgZvNXdfC9/9q7408KDsbdL7Utz7QFSDetz2picArzrdpL8OaCHC9V26RroemtDZ5yNM/KGkWMyTmfnInEvwtSD23UcFcjhaE3VKzkoaEMKGBft4XbIO6forTY1lmGQwVmKicBCiArDzE+1oIxE08fWeviIOD5TznqH+OoHadvoOP20drMPe5Irg3XBQziW2XDuHYzjqQQ4wySssjXUs5H+t3FWYMHppUnBHMx/nYIT5d7OmjDbgD9F6na3m4l7KdkeSO3kTEPXafiWinogag7b52taiZhL1TSvBFmEZafFq2H8khQaZXuitCewT5FBgVtPK0j4xUHPfUz3Q28eac1Z139DAP23dgki94EC8vbDPTQC97HPPSWjUNG5tWKMsaxAEMKC0665Xvo1Ntd07wCLNf8Q56mrEPVpCxlIMVlQlWRxM3oAfpgIc+8KC3rEXUog5g06vt7zgXY8grH7hhwVSaeuvC06YYRAwpbyk/Unzj9hLEZNs2oxPQB9yc+GnL6zTgq7rI++KDJwX2SP8Sd6YzTuw5lV/kU6eQxRD12omfQAW6caTR4LikYkBB1CMOrvgRr/VY75+NSB40Cni6bADAtaK+vyxVWpf9NeKJxN2KYQ8Q2xPB3K1s7fuhvWbr2XpgW044VD6DRs0qXoqKf1NFsaGvKJc47leUV3pppP/5VTKFhaGuol4Esfjf5zyCyUHmHthChcYh4hYLQF+AFWsuq4t0wJyWgdwQVOZiV0efRHPoK5+E1vjz9wTJmVkITC9oEstAsyZSgE/dbicwKr89YUxKZI+owD205Tm5lnnmDRuP/JnzxX3gMtlrcX0UesZdxyQqYQuEW4R51vmQ5xOZteUd8SJruMlTUzhtVw/Nq7eUBcqN2/HVotgfngif60yKEtoUx3WYOZlVJuJOh8u59fzSDPFYtQgqDUAGyGhQOAvKroXMcOYY0qjnStJR/G3aP+Jt1sLVlGV8POwr/6OGsqetnyF3TmTqZjENfnXh51oxe9qVUw2M78EzAJ+IM8lZ1MBPQ9ZWSVc4J3mWSrLKrMHReA5qdGoz0ODRsaA+vwxXA2cAM4qlfzBJA6581m4hzxItQw5dxrrBL3Y6kCbUcFxo1S8jyV44q//+7ASNNudZ6xeaNOSIUffqMn4A9lIjFctYn2gpEPAb3f7p3iIBN8H14FUGQ9ct2hPsL+cEsTgUrR47uJVN4n4wt/wgfwwHuOnLd4yobkofy8JvxSQTA7rMpDIc608SlZFJfZYcmbT0tAHpPE8MrtQ42siTUNWxqvWZOmvu9f0JPoQmg+6l7sZWwyfi6PXkxJnwBraUG0MYG4zYHQz3igy/XsFkx5tNQxw43qvI9dU3f0DdhOUlHKjmi1VAr2Kiy0HZwD8VeEbhh0OiDdMYspolQsYdSwjCcjeowIXNZVUPmL2wwIkYhmXKhGozdCJ4lRKbsf4NBh/XnQoS92NJEWOVOFs2YhN8c5QZFeK0pRdAG40hqvLbmoSA8xQmzOOEc7wLcme9JOsjPCEgpCwUs9E2DohMHRhUeyGIN6TFvrbny8nDuilsDpzrH5mS76APoIEJmItS67sQJ+nfwddzmjPxcBEBBCw0kWDwd0EZCkNeOD7NNQhtBm7KHL9mRxj6U1yWU2puzlIDtpYxdH4ZPeXBJkTGAJfUr/oTCz/iypY6uXaR2V1doPxJYlrw2ghH0D5gbrhFcIxzYwi4a/4hqVdf2DdxBp6vGYDjavxMAAoy+1+3aiO6S3W/QAKNVXagDtvsNtx7Ks+HKgo6U21B+QSZgIogV5Bt+BnXisdVfy9VyXV+2P5fMuvdpAjM1o/K9Z+XnE4EOCrue+kcdYHqAQ0/Y/OmNlQ6OI33jH/uD1RalPaHpJAm2av0/xtpqdXVKNDrc9F2izo23Wu7firgbURFDNX9eGGeYBhiypyXZft2j3hTvzE6PMWKsod//rEILDkzBXfi7xh0eFkfb3/1zzPK/PI5Nk3FbZyTl4mq5BfBoVoqiPHO4Q4QKZAlrQ3MdNfi3oxIjvsM3kAFv3fdufurqYR3PSwX/mpGy/GFI/B2MNPiNdOppWVbs/gjF3YH+QA9jMhlAbhvasAHstB0IJew09iAkmXHl1/TEj+jvHOpOGrPRQXbPADM+Ig2/OEcUcpgPTItMtW4DdqgfYVI/+4hAFWYjUGpOP/UwNuB7+BbKOcALbjobdgzeBQfjgNSp2GOpxzGLj70Vvq5cw2AoYENwKLUtJUX8sGRox4dVa/TN4xKwaKcl9XawQR/uNus700Hf17pyNnezrUgaY9e4MADhEDBpsJT6y1gDJs1q6wlwGhuUzGR7C8kgpjPyHWwsvrf3yn1zJEIRa5eSxoLAZOCR9xbuztxFRJW9ZmMYfCFJ0evm9F2fVnuje92Rc4Pl6A8bluN8MZyyJGZ0+sNSb//DvAFxC2BqlEsFwccWeAl6CyBcQV1bx4mQMBP1Jxqk1EUADNLeieS2dUFbQ/c/kvwItbZ7tx0st16viqd53WsRmPTKv2AD8CUnhtPWg5aUegNpsYgasaw2+EVooeNKmrW3MFtj76bYHJm5K9gpAXZXsE5U8DM8XmVOSJ1F1WnLy6nQup+jx52bAb+rCq6y9WXl2B2oZDhfDkW7H3oYfT/4xx5VncBuxMXP2lNfhUVQjSSzSRbuZFE4vFawlzveXxaYKVs8LpvAb8IRYF3ZHiRnm0ADeNPWocwxSzNseG7NrSEVZoHdKWqaGEBz1N8Pt7kFbqh3LYmAbm9i1IChIpLpM5AS6mr6OAPHMwwznVy61YpBYX8xZDN/a+lt7n+x5j4bNOVteZ8lj3hpAHSx1VR8vZHec4AHO9XFCdjZ9eRkSV65ljMmZVzaej2qFn/qt1lvWzNZEfHxK3qOJrHL6crr0CRzMox5f2e8ALBB4UGFZKA3tN6F6IXd32GTJXGQ7DTi9j/dNcLF9jCbDcWGKxoKTYblIwbLDReL00LRcDPMcQuXLMh5YzgtfjkFK1DP1iDzzYYVZz5M/kWYRlRpig1htVRjVCknm+h1M5LiEDXOyHREhvzCGpFZjHS0RsK27o2avgdilrJkalWqPW3D9gmwV37HKmfM3F8YZj2ar+vHFvf3B8CRoH4kDHIK9mrAg+owiEwNjjd9V+FsQKYR8czJrUkf7Qoi2YaW6EVDZp5zYlqiYtuXOTHk4fAcZ7qBbdLDiJq0WNV1l2+Hntk1mMWvxrYmc8kIx8G3rW36J6Ra4lLrTOCgiOihmow+YnzUT19jbV2B3RWqSHyxkhmgsBqMYWvOcUom1jDQ436+fcbu3xf2bbeqU/ca+C4DOKE+e3qvmeMqW3AxejfzBRFVcwVYPq4L0APSWWoJu+5UYX4qg5U6YTioqQGPG9XrnuZ/BkxuYpe6Li87+18EskyQW/uA+uk2rpHpr6hut2TlVbKgWkFpx+AZffweiw2+VittkEyf/ifinS/0ItRL2Jq3tQOcxPaWO2xrG68GdFoUpZgFXaP2wYVtRc6xYCfI1CaBqyWpg4bx8OHBQwsV4XWMibZZ0LYjWEy2IxQ1mZrf1/UNbYCJplWu3nZ4WpodIGVA05d+RWSS+ET9tH3RfGGmNI1cIY7evZZq7o+a0bjjygpmR3mVfalkT/SZGT27Q8QGalwGlDOS9VHCyFAIL0a1Q7JiW3saz9gqY8lqKynFrPCzxkU4SIfLc9VfCI5edgRhDXs0edO992nhTKHriREP1NJC6SROMgQ0xO5kNNZOhMOIT99AUElbxqeZF8A3xrfDJsWtDnUenAHdYWSwAbYjFqQZ+D5gi3hNK8CSxU9i6f6ClL9IGlj1OPMQAsr84YG6ijsJpCaGWj75c3yOZKBB9mNpQNPUKkK0D6wgLH8MGoyRxTX6Y05Q4AnYNXMZwXM4eij/9WpsM/9CoRnFQXGR6MEaY+FXvXEO3RO0JaStk6OXuHVATHJE+1W+TU3bSZ2ksMtqjO0zfSJCdBv7y2d8DMx6TfVme3q0ZpTKMMu4YL/t7ciTNtdDkwPogh3Cnjx7qk08SHwf+dksZ7M2vCOlfsF0hQ6J4ehPCaHTNrM/zBSOqD83dBEBCW/F/LEmeh0nOHd7oVl3/Qo/9GUDkkbj7yz+9cvvu+dDAtx8NzCDTP4iKdZvk9MWiizvtILLepysflSvTLFBZ37RLwiriqyRxYv/zrgFd/9XVHh/OmzBvDX4mitMR/lUavs2Vx6cR94lzAkplm3IRNy4TFfu47tuYs9EQPIPVta4P64tV+sZ7n3ued3cgEx2YK+QL5+xms6osk8qQbTyuKVGdaX9FQqk6qfDnT5ykxk0VK7KZ62b6DNDUfQlqGHxSMKv1P0XN5BqMeKG1P4Wp5QfZDUCEldppoX0U6ss2jIko2XpURKCIhfaOqLPfShdtS37ZrT+jFRSH2xYVV1rmT/MBtRQhxiO4MQ3iAGlaZi+9PWBEIXOVnu9jN1f921lWLZky9bqbM3J2MAAI9jmuAx3gyoEUa6P2ivs0EeNv/OR+AX6q5SW6l5HaoFuS6jr6yg9limu+P0KYKzfMXWcQSfTXzpOzKEKpwI3YGXZpSSy2LTlMgfmFA3CF6R5c9xWEtRuCg2ZPUQ2Nb6dRFTNd4TfGHrnEWSKHPuRyiJSDAZ+KX0VxmSHjGPbQTLVpqixia2uyhQ394gBMt7C3ZAmxn/DJS+l1fBsAo2Eir/C0jG9csd4+/tp12pPc/BVJGaK9mfvr7M/CeztrmCO5qY06Edi4xAGtiEhnWAbzLy2VEyazE1J5nPmgU4RpW4Sa0TnOT6w5lgt3/tMpROigHHmexBGAMY0mdcDbDxWIz41NgdD6oxgHsJRgr5RnT6wZAkTOcStU4NMOQNemSO7gxGahdEsC+NRVGxMUhQmmM0llWRbbmFGHzEqLM4Iw0H7577Kyo+Zf+2cUFIOw93gEY171vQaM0HLwpjpdRR6Jz7V0ckE7XzYJ0TmY9znLdzkva0vNrAGGT5SUZ5uaHDkcGvI0ySpwkasEgZPMseYcu85w8HPdSNi+4T6A83iAwDbxgeFcB1ZM2iGXzFcEOUlYVrEckaOyodfvaYSQ7GuB4ISE0nYJc15X/1ciDTPbPCgYJK55VkEor4LvzL9S2WDy4xj+6FOqVyTAC2ZNowheeeSI5hA/02l8UYkv4nk9iaVn+kCVEUstgk5Hyq+gJm6R9vG3rhuM904he/hFmNQaUIATB1y3vw+OmxP4X5Yi6A5I5jJufHCjF9+AGNwnEllZjUco6XhsO5T5+R3yxz5yLVOnAn0zuS+6zdj0nTJbEZCbXJdtpfYZfCeCOqJHoE2vPPFS6eRLjIJlG69X93nfR0mxSFXzp1Zc0lt/VafDaImhUMtbnqWVb9M4nGNQLN68BHP7AR8Il9dkcxzmBv8PCZlw9guY0lurbBsmNYlwJZsA/B15/HfkbjbwPddaVecls/elmDHNW2r4crAx43feNkfRwsaNq/yyJ0d/p5hZ6AZajz7DBfUok0ZU62gCzz7x8eVfJTKA8IWn45vINLSM1q+HF9CV9qF3zP6Ml21kPPL3CXzkuYUlnSqT+Ij4tI/od5KwIs+tDajDs64owN7tOAd6eucGz+KfO26iNcBFpbWA5732bBNWO4kHNpr9D955L61bvHCF/mwSrz6eQaDjfDEANqGMkFc+NGxpKZzCD2sj/JrHd+zlPQ8Iz7Q+2JVIiVCuCKoK/hlAEHzvk/Piq3mRL1rT/fEh9hoT5GJmeYswg1otiKydizJ/fS2SeKHVu6Z3JEHjiW8NaTQgP5xdBli8nC57XiN9hrquBu99hn9zqwo92+PM2JXtpeVZS0PdqR5mDyDreMMtEws+CpwaRyyzoYtfcvt9PJIW0fJVNNi/FFyRsea7peLvJrL+5b4GOXJ8tAr+ATk9f8KmiIsRhqRy0vFzwRV3Z5dZ3QqIU8JQ/uQpkJbjMUMFj2F9sCFeaBjI4+fL/oN3+LQgjI4zuAfQ+3IPIPFQBccf0clJpsfpnBxD84atwtupkGqKvrH7cGNl/QcWcSi6wcVDML6ljOgYbo+2BOAWNNjlUBPiyitUAwbnhFvLbnqw42kR3Yp2kv2dMeDdcGOX5kT4S6M44KHEB/SpCfl7xgsUvs+JNY9G3O2X/6FEt9FyAn57lrbiu+tl83sCymSvq9eZbe9mchL7MTf/Ta78e80zSf0hYY5eUU7+ff14jv7Xy8qjzfzzzvaJnrIdvFb5BLWKcWGy5/w7+vV2cvIfwHqdTB+RuJK5oj9mbt0Hy94AmjMjjwYNZlNS6uiyxNnwNyt3gdreLb64p/3+08nXkb92LTkkRgFOwk1oGEVllcOj5lv1hfAZywDows0944U8vUFw+A/nuVq/UCygsrmWIBnHyU01d0XJPwriEOvx/ISK6Pk4y2w0gmojZs7lU8TtakBAdne4v/aNxmMpK4VcGMp7si0yqsiolXRuOi1Z1P7SqD3Zmp0CWcyK4Ubmp2SXiXuI5nGLCieFHKHNRIlcY3Pys2dwMTYCaqlyWSITwr2oGXvyU3h1Pf8eQ3w1bnD7ilocVjYDkcXR3Oo1BXgMLTUjNw2xMVwjtp99NhSVc5aIWrDQT5DHPKtCtheBP4zHcw4dz2eRdTMamhlHhtfgqJJHI7NGDUw1XL8vsSeSHyKqDtqoAmrQqsYwvwi7HW3ojWyhIa5oz5xJTaq14NAzFLjVLR12rRNUQ6xohDnrWFb5bG9yf8aCD8d5phoackcNJp+Dw3Due3RM+5Rid7EuIgsnwgpX0rUWh/nqPtByMhMZZ69NpgvRTKZ62ViZ+Q7Dp5r4K0d7EfJuiy06KuIYauRh5Ecrhdt2QpTS1k1AscEHvapNbU3HL1F2TFyR33Wxb5MvH5iZsrn3SDcsxlnnshO8PLwmdGN+paWnQuORtZGX37uhFT64SeuPsx8UOokY6ON85WdQ1dki5zErsJGazcBOddWJEKqNPiJpsMD1GrVLrVY+AOdPWQneTyyP1hRX/lMM4ZogGGOhYuAdr7F/DOiAoc++cn5vlf0zkMUJ40Z1rlgv9BelPqVOpxKeOpzKdF8maK+1Vv23MO9k/8+qpLoxrIGH2EDQlnGmH8CD31G8QqlyQIcpmR5bwmSVw9/Ns6IHgulCRehvZ/+VrM60Cu/r3AontFfrljew74skYe2uyn7JKQtFQBQRJ9ryGic/zQOsbS4scUBctA8cPToQ3x6ZBQu6DPu5m1bnCtP8TllLYA0UTQNVqza5nfew3Mopy1GPUwG5jsl0OVXniPmAcmLqO5HG8Hv3nSLecE9oOjPDXcsTxoCBxYyzBdj4wmnyEV4kvFDunipS8SSkvdaMnTBN9brHUR8xdmmEAp/Pdqk9uextp1t+JrtXwpN/MG2w/qhRMpSNxQ1uhg/kKO30eQ/FyHUDkWHT8V6gGRU4DhDMxZu7xXij9Ui6jlpWmQCqJg3FkOTq3WKneCRYZxBXMNAVLQgHXSCGSqNdjebY94oyIpVjMYehAiFx/tqzBXFHZaL5PeeD74rW5OysFoUXY8sebUZleFTUa/+zBKVTFDopTReXNuZq47QjkWnxjirCommO4L/GrFtVV21EpMyw8wyThL5Y59d88xtlx1g1ttSICDwnof6lt/6zliPzgVUL8jWBjC0o2D6Kg+jNuThkAlaDJsq/AG2aKA//A76avw2KNqtv223P+Wq3StRDDNKFFgtsFukYt1GFDWooFVXitaNhb3RCyJi4cMeNjROiPEDb4k+G3+hD8tsg+5hhmSc/8t2JTSwYoCzAI75doq8QTHe+E/Tw0RQSUDlU+6uBeNN3h6jJGX/mH8oj0i3caCNsjvTnoh73BtyZpsflHLq6AfwJNCDX4S98h4+pCOhGKDhV3rtkKHMa3EG4J9y8zFWI4UsfNzC/Rl5midNn7gwoN9j23HGCQQ+OAZpTTPMdiVow740gIyuEtd0qVxMyNXhHcnuXRKdw5wDUSL358ktjMXmAkvIB73BLa1vfF9BAUZInPYJiwxqFWQQBVk7gQH4ojfUQ/KEjn+A/WR6EEe4CtbpoLe1mzHkajgTIoE0SLDHVauKhrq12zrAXBGbPPWKCt4DGedq3JyGRbmPFW32bE7T20+73BatV/qQhhBWfWBFHfhYWXjALts38FemnoT+9bn1jDBMcUMmYgSc0e7GQjv2MUBwLU8ionCpgV+Qrhg7iUIfUY6JFxR0Y+ZTCPM+rVuq0GNLyJXX6nrUTt8HzFBRY1E/FIm2EeVA9NcXrj7S6YYIChVQCWr/m2fYUjC4j0XLkzZ8GCSLfmkW3PB/xq+nlXsKVBOj7vTvqKCOMq7Ztqr3cQ+N8gBnPaAps+oGwWOkbuxnRYj/x/WjiDclVrs22xMK4qArE1Ztk1456kiJriw6abkNeRHogaPRBgbgF9Z8i/tbzWELN4CvbqtrqV9TtGSnmPS2F9kqOIBaazHYaJ9bi3AoDBvlZasMluxt0BDXfhp02Jn411aVt6S4TUB8ZgFDkI6TP6gwPY85w+oUQSsjIeXVminrwIdK2ZAawb8Se6XOJbOaliQxHSrnAeONDLuCnFejIbp4YDtBcQCwMsYiRZfHefuEJqJcwKTTJ8sx5hjHmJI1sPFHOr6W9AhZ2NAod38mnLQk1gOz2LCAohoQbgMbUK9RMEA3LkiF7Sr9tLZp6lkciIGhE2V546w3Mam53VtVkGbB9w0Yk2XiRnCmbpxmHr2k4eSC0RuNbjNsUfDIfc8DZvRvgUDe1IlKdZTzcT4ZGEb53dp8VtsoZlyXzLHOdAbsp1LPTVaHvLA0GYDFMbAW/WUBfUAdHwqLFAV+3uHvYWrCfhUOR2i89qvCBoOb48usAGdcF2M4aKn79k/43WzBZ+xR1L0uZfia70XP9soQReeuhZiUnXFDG1T8/OXNmssTSnYO+3kVLAgeiY719uDwL9FQycgLPessNihMZbAKG7qwPZyG11G1+ZA3jAX2yddpYfmaKBlmfcK/V0mwIRUDC0nJSOPUl2KB8h13F4dlVZiRhdGY5farwN+f9hEb1cRi41ZcGDn6Xe9MMSTOY81ULJyXIHSWFIQHstVYLiJEiUjktlHiGjntN5/btB8Fu+vp28zl2fZXN+dJDyN6EXhS+0yzqpl/LSJNEUVxmu7BsNdjAY0jVsAhkNuuY0E1G48ej25mSt+00yPbQ4SRCVkIwb6ISvYtmJRPz9Zt5dk76blf+lJwAPH5KDF+vHAmACLoCdG2Adii6dOHnNJnTmZtoOGO8Q1jy1veMw6gbLFToQmfJa7nT7Al89mRbRkZZQxJTKgK5Kc9INzmTJFp0tpAPzNmyL/F08bX3nhCumM/cR/2RPn9emZ3VljokttZD1zVWXlUIqEU7SLk5I0lFRU0AcENXBYazNaVzsVHA/sD3o9hm42wbHIRb/BBQTKzAi8s3+bMtpOOZgLdQzCYPfX3UUxKd1WYVkGH7lh/RBBgMZZwXzU9+GYxdBqlGs0LP+DZ5g2BWNh6FAcR944B+K/JTWI3t9YyVyRhlP4CCoUk/mmF7+r2pilVBjxXBHFaBfBtr9hbVn2zDuI0kEOG3kBx8CGdPOjX1ph1POOZJUO1JEGG0jzUy2tK4X0CgVNYhmkqqQysRNtKuPdCJqK3WW57kaV17vXgiyPrl4KEEWgiGF1euI4QkSFHFf0TDroQiLNKJiLbdhH0YBhriRNCHPxSqJmNNoketaioohqMglh6wLtEGWSM1EZbQg72h0UJAIPVFCAJOThpQGGdKfFovcwEeiBuZHN2Ob4uVM7+gwZLz1D9E7ta4RmMZ24OBBAg7Eh6dLXGofZ4U2TFOCQMKjwhVckjrydRS+YaqCw1kYt6UexuzbNEDyYLTZnrY1PzsHZJT4U+awO2xlqTSYu6n/U29O2wPXgGOEKDMSq+zTUtyc8+6iLp0ivav4FKx+xxVy4FxhIF/pucVDqpsVe2jFOfdZhTzLz2QjtzvsTCvDPU7bzDH2eXVKUV9TZ+qFtaSSxnYgYdXKwVreIgvWhT9eGDB2OvnWyPLfIIIfNnfIxU8nW7MbcH05nhlsYtaW9EZRsxWcKdEqInq1DiZPKCz7iGmAU9/ccnnQud2pNgIGFYOTAWjhIrd63aPDgfj8/sdlD4l+UTlcxTI9jbaMqqN0gQxSHs60IAcW3cH4p3V1aSciTKB29L1tz2eUQhRiTgTvmqc+sGtBNh4ky0mQJGsdycBREP+fAaSs1EREDVo5gvgi5+aCN7NECw30owbCc1mSpjiahyNVwJd1jiGgzSwfTpzf2c5XJvG/g1n0fH88KHNnf+u7ZiRMlXueSIsloJBUtW9ezvsx9grfsX/FNxnbxU1Lvg0hLxixypHKGFAaPu0xCD8oDTeFSyfRT6s8109GMUZL8m2xXp8X2dpPCWWdX84iga4BrTlOfqox4shqEgh/Ht4qRst52cA1xOIUuOxgfUivp6v5f8IVyaryEdpVk72ERAwdT4aoY1usBgmP+0m06Q216H/nubtNYxHaOIYjcach3A8Ez/zc0KcShhel0HCYjFsA0FjYqyJ5ZUH1aZw3+zWC0hLpM6GDfcAdn9fq2orPmZbW6XXrf+Krc9RtvII5jeD3dFoT1KwZJwxfUMvc5KLfn8rROW23Jw89sJ2a5dpB3qWDUBWF2iX8OCuKprHosJ2mflBR+Wqs86VvgI/XMnsqb97+VlKdPVysczPj8Jhzf+WCvGBHijAqYlavbF60soMWlHbvKT+ScvhprgeTln51xX0sF+Eadc/l2s2a5BgkVbHYyz0E85p0LstqH+gEGiR84nBRRFIn8hLSZrGwqjZ3E29cuGi+5Z5bp7EM8MWFa9ssS/vy4VrDfECSv7DSU84DaP0sXI3Ap4lWznQ65nQoTKRWU30gd7Nn8ZowUvGIx4aqyXGwmA/PB4qN8msJUODezUHEl0VP9uo+cZ8vPFodSIB4C7lQYjEFj8yu49C2KIV3qxMFYTevG8KqAr0TPlkbzHHnTpDpvpzziAiNFh8xiT7C/TiyH0EguUw4vxAgpnE27WIypV+uFN2zW7xniF/n75trs9IJ5amB1zXXZ1LFkJ6GbS/dFokzl4cc2mamVwhL4XU0Av5gDWAl+aEWhAP7t2VIwU+EpvfOPDcLASX7H7lZpXA2XQfbSlD4qU18NffNPoAKMNSccBfO9YVVgmlW4RydBqfHAV7+hrZ84WJGho6bNT0YMhxxLdOx/dwGj0oyak9aAkNJ8lRJzUuA8sR+fPyiyTgUHio5+Pp+YaKlHrhR41jY5NESPS3x+zTMe0S2HnLOKCOQPpdxKyviBvdHrCDRqO+l96HhhNBLXWv4yEMuEUYo8kXnYJM8oIgVM4XJ+xXOev4YbWeqsvgq0lmw4/PiYr9sYLt+W5EAuYSFnJEan8CwJwbtASBfLBBpJZiRPor/aCJBZsM+MhvS7ZepyHvU8m5WSmaZnxuLts8ojl6KkS8oSAHkq5GWlCB/NgJ5W3rO2Cj1MK7ahxsCrbTT3a0V/QQH+sErxV4XUWDHx0kkFy25bPmBMBQ6BU3HoHhhYcJB9JhP6NXUWKxnE0raXHB6U9KHpWdQCQI72qevp5fMzcm+AvC85rsynVQhruDA9fp9COe7N56cg1UKGSas89vrN+WlGLYTwi5W+0xYdKEGtGCeNJwXKDU0XqU5uQYnWsMwTENLGtbQMvoGjIFIEMzCRal4rnBAg7D/CSn8MsCvS+FDJJAzoiioJEhZJgAp9n2+1Yznr7H+6eT4YkJ9Mpj60ImcW4i4iHDLn9RydB8dx3QYm3rsX6n4VRrZDsYK6DCGwkwd5n3/INFEpk16fYpP6JtMQpqEMzcOfQGAHXBTEGzuLJ03GYQL9bmV2/7ExDlRf+Uvf1sM2frRtCWmal12pMgtonvSCtR4n1CLUZRdTHDHP1Otwqd+rcdlavnKjUB/OYXQHUJzpNyFoKpQK+2OgrEKpGyIgIBgn2y9QHnTJihZOpEvOKIoHAMGAXHmj21Lym39Mbiow4IF+77xNuewziNVBxr6KD5e+9HzZSBIlUa/AmsDFJFXeyrQakR3FwowTGcADJHcEfhGkXYNGSYo4dh4bxwLM+28xjiqkdn0/3R4UEkvcBrBfn/SzBc1XhKM2VPlJgKSorjDac96V2UnQYXl1/yZPT4DVelgO+soMjexXwYO58VLl5xInQUZI8jc3H2CPnCNb9X05nOxIy4MlecasTqGK6s2az4RjpF2cQP2G28R+7wDPsZDZC/kWtjdoHC7SpdPmqQrUAhMwKVuxCmYTiD9q/O7GHtZvPSN0CAUQN/rymXZNniYLlJDE70bsk6Xxsh4kDOdxe7A2wo7P9F5YvqqRDI6brf79yPCSp4I0jVoO4YnLYtX5nzspR5WB4AKOYtR1ujXbOQpPyYDvfRE3FN5zw0i7reehdi7yV0YDRKRllGCGRk5Yz+Uv1fYl2ZwrnGsqsjgAVo0xEUba8ohjaNMJNwTwZA/wBDWFSCpg1eUH8MYL2zdioxRTqgGQrDZxQyNzyBJPXZF0+oxITJAbj7oNC5JwgDMUJaM5GqlGCWc//KCIrI+aclEe4IA0uzv7cuj6GCdaJONpi13O544vbtIHBF+A+JeDFUQNy61Gki3rtyQ4aUywn6ru314/dkGiP8Iwjo0J/2Txs49ZkwEl4mx+iYUUO55I6pJzU4P+7RRs+DXZkyKUYZqVWrPF4I94m4Wx1tXeE74o9GuX977yvJ/jkdak8+AmoHVjI15V+WwBdARFV2IPirJgVMdsg1Pez2VNHqa7EHWdTkl3XTcyjG9BiueWFvQfXI8aWSkuuRmqi/HUuzqyvLJfNfs0txMqldYYflWB1BS31WkuPJGGwXUCpjiQSktkuBMWwHjSkQxeehqw1Kgz0Trzm7QbtgxiEPDVmWCNCAeCfROTphd1ZNOhzLy6XfJyG6Xgd5MCAZw4xie0Sj5AnY1/akDgNS9YFl3Y06vd6FAsg2gVQJtzG7LVq1OH2frbXNHWH/NY89NNZ4QUSJqL2yEcGADbT38X0bGdukqYlSoliKOcsSTuqhcaemUeYLLoI8+MZor2RxXTRThF1LrHfqf/5LcLAjdl4EERgUysYS2geE+yFdasU91UgUDsc2cSQ1ZoT9+uLOwdgAmifwQqF028INc2IQEDfTmUw3eZxvz7Ud1z3xc1PQfeCvfKsB9jOhRj7rFyb9XcDWLcYj0bByosychMezMLVkFiYcdBBQtvI6K0KRuOZQH2kBsYHJaXTkup8F0eIhO1/GcIwWKpr2mouB7g5TUDJNvORXPXa/mU8bh27TAZYBe2sKx4NSv5OjnHIWD2RuysCzBlUfeNXhDd2jxnHoUlheJ3jBApzURy0fwm2FwwsSU0caQGl0Kv8hopRQE211NnvtLRsmCNrhhpEDoNiZEzD2QdJWKbRRWnaFedXHAELSN0t0bfsCsMf0ktfBoXBoNA+nZN9+pSlmuzspFevmsqqcMllzzvkyXrzoA+Ryo1ePXpdGOoJvhyru+EBRsmOp7MXZ0vNUMUqHLUoKglg1p73sWeZmPc+KAw0pE2zIsFFE5H4192KwDvDxdxEYoDBDNZjbg2bmADTeUKK57IPD4fTYF4c6EnXx/teYMORBDtIhPJneiZny7Nv/zG+YmekIKCoxr6kauE2bZtBLufetNG0BtBY7f+/ImUypMBvdWu/Q7vTMRzw5aQGZWuc1V0HEsItFYMIBnoKGZ0xcarba/TYZq50kCaflFysYjA4EDKHqGdpYWdKYmm+a7TADmW35yfnOYpZYrkpVEtiqF0EujI00aeplNs2k+qyFZNeE3CDPL9P6b4PQ/kataHkVpLSEVGK7EX6rAa7IVNrvZtFvOA6okKvBgMtFDAGZOx88MeBcJ8AR3AgUUeIznAN6tjCUipGDZONm1FjWJp4A3QIzSaIOmZ7DvF/ysYYbM/fFDOV0jntAjRdapxJxL0eThpEhKOjCDDq2ks+3GrwxqIFKLe1WdOzII8XIOPGnwy6LKXVfpSDOTEfaRsGujhpS4hBIsMOqHbl16PJxc4EkaVu9wpEYlF/84NSv5Zum4drMfp9yXbzzAOJqqS4YkI4cBrFrC7bMPiCfgI3nNZAqkk3QOZqR+yyqx+nDQKBBBZ7QKrfGMCL+XpqFaBJU0wpkBdAhbR4hJsmT5aynlvkouoxm/NjD5oe6BzVIO9uktM+/5dEC5P7vZvarmuO/lKXz4sBabVPIATuKTrwbJP8XUkdM6uEctHKXICUJGjaZIWRbZp8czquQYfY6ynBUCfIU+gG6wqSIBmYIm9pZpXdaL121V7q0VjDjmQnXvMe7ysoEZnZL15B0SpxS1jjd83uNIOKZwu5MPzg2NhOx3xMOPYwEn2CUzbSrwAs5OAtrz3GAaUkJOU74XwjaYUmGJdZBS1NJVkGYrToINLKDjxcuIlyfVsKQSG/G4DyiO2SlQvJ0d0Ot1uOG5IFSAkq+PRVMgVMDvOIJMdqjeCFKUGRWBW9wigYvcbU7CQL/7meF2KZAaWl+4y9uhowAX7elogAvItAAxo2+SFxGRsHGEW9BnhlTuWigYxRcnVUBRQHV41LV+Fr5CJYV7sHfeywswx4XMtUx6EkBhR+q8AXXUA8uPJ73Pb49i9KG9fOljvXeyFj9ixgbo6CcbAJ7WHWqKHy/h+YjBwp6VcN7M89FGzQ04qbrQtgrOFybg3gQRTYG5xn73ArkfQWjCJROwy3J38Dx/D7jOa6BBNsitEw1wGq780EEioOeD+ZGp2J66ADiVGMayiHYucMk8nTK2zzT9CnEraAk95kQjy4k0GRElLL5YAKLQErJ5rp1eay9O4Fb6yJGm9U4FaMwPGxtKD6odIIHKoWnhKo1U8KIpFC+MVn59ZXmc7ZTBZfsg6FQ8W10YfTr4u0nYrpHZbZ1jXiLmooF0cOm0+mPnJBXQtepc7n0BqOipNCqI6yyloTeRShNKH04FIo0gcMk0H/xThyN4pPAWjDDkEp3lNNPRNVfpMI44CWRlRgViP64eK0JSRp0WUvCWYumlW/c58Vcz/yMwVcW5oYb9+26TEhwvbxiNg48hl1VI1UXTU//Eta+BMKnGUivctfL5wINDD0giQL1ipt6U7C9cd4+lgqY2lMUZ02Uv6Prs+ZEZer7ZfWBXVghlfOOrClwsoOFKzWEfz6RZu1eCs+K8fLvkts5+BX0gyrFYve0C3qHrn5U/Oh6D/CihmWIrY7HUZRhJaxde+tldu6adYJ+LeXupQw0XExC36RETdNFxcq9glMu4cNQSX9cqR/GQYp+IxUkIcNGWVU7ZtGa6P3XAyodRt0XeS3Tp01AnCh0ZbUh4VrSZeV9RWfSoWyxnY3hzcZ30G/InDq4wxRrEejreBxnhIQbkxenxkaxl+k7eLUQkUR6vKJ2iDFNGX3WmVA1yaOH+mvhBd+sE6vacQzFobwY5BqEAFmejwW5ne7HtVNolOUgJc8CsUxmc/LBi8N5mu9VsIA5HyErnS6zeCz7VLI9+n/hbT6hTokMXTVyXJRKSG2hd2labXTbtmK4fNH3IZBPreSA4FMeVouVN3zG5x9CiGpLw/3pceo4qGqp+rVp+z+7yQ98oEf+nyH4F3+J9IheDBa94Wi63zJbLBCIZm7P0asHGpIJt3PzE3m0S4YIWyXBCVXGikj8MudDPB/6Nm2v4IxJ5gU0ii0guy5SUHqGUYzTP0jIJU5E82RHUXtX4lDdrihBLdP1YaG1AGUC12rQKuIaGvCpMjZC9bWSCYnjDlvpWbkdXMTNeBHLKiuoozMGIvkczmP0aRJSJ8PYnLCVNhKHXBNckH79e8Z8Kc2wUej4sQZoH8qDRGkg86maW/ZQWGNnLcXmq3FlXM6ssR/3P6E/bHMvm6HLrv1yRixit25JsH3/IOr2UV4BWJhxXW5BJ6Xdr07n9kF3ZNAk6/Xpc5MSFmYJ2R7bdL8Kk7q1OU9Elg/tCxJ8giT27wSTySF0GOxg4PbYJdi/Nyia9Nn89CGDulfJemm1aiEr/eleGSN+5MRrVJ4K6lgyTTIW3i9cQ0dAi6FHt0YMbH3wDSAtGLSAccezzxHitt1QdhW36CQgPcA8vIIBh3/JNjf/Obmc2yzpk8edSlS4lVdwgW5vzbYEyFoF4GCBBby1keVNueHAH+evi+H7oOVfS3XuPQSNTXOONAbzJeSb5stwdQHl1ZjrGoE49I8+A9j3t+ahhQj74FCSWpZrj7wRSFJJnnwi1T9HL5qrCFW/JZq6P62XkMWTb+u4lGpKfmmwiJWx178GOG7KbrZGqyWwmuyKWPkNswkZ1q8uptUlviIi+AXh2bOOTOLsrtNkfqbQJeh24reebkINLkjut5r4d9GR/r8CBa9SU0UQhsnZp5cP+RqWCixRm7i4YRFbtZ4EAkhtNa6jHb6gPYQv7MKqkPLRmX3dFsK8XsRLVZ6IEVrCbmNDc8o5mqsogjAQfoC9Bc7R6gfw03m+lQpv6kTfhxscDIX6s0w+fBxtkhjXAXr10UouWCx3C/p/FYwJRS/AXRKkjOb5CLmK4XRe0+xeDDwVkJPZau52bzLEDHCqV0f44pPgKOkYKgTZJ33fmk3Tu8SdxJ02SHM8Fem5SMsWqRyi2F1ynfRJszcFKykdWlNqgDA/L9lKYBmc7Zu/q9ii1FPF47VJkqhirUob53zoiJtVVRVwMR34gV9iqcBaHbRu9kkvqk3yMpfRFG49pKKjIiq7h/VpRwPGTHoY4cg05X5028iHsLvUW/uz+kjPyIEhhcKUwCkJAwbR9pIEGOn8z6svAO8i89sJ3dL5qDWFYbS+HGPRMxYwJItFQN86YESeJQhn2urGiLRffQeLptDl8dAgb+Tp47UQPxWOw17OeChLN1WnzlkPL1T5O+O3Menpn4C3IY5LEepHpnPeZHbvuWfeVtPlkH4LZjPbBrkJT3NoRJzBt86CO0Xq59oQ+8dsm0ymRcmQyn8w71mhmcuEI5byuF+C88VPYly2sEzjlzAQ3vdn/1+Hzguw6qFNNbqenhZGbdiG6RwZaTG7jTA2X9RdXjDN9yj1uQpyO4Lx8KRAcZcbZMafp4wPOd5MdXoFY52V1A8M9hi3sso93+uprE0qYNMjkE22CvK4HuUxqN7oIz5pWuETq1lQAjqlSlqdD2Rnr/ggp/TVkQYjn9lMfYelk2sH5HPdopYo7MHwlV1or9Bxf+QCyLzm92vzG2wjiIjC/ZHEJzeroJl6bdFPTpZho5MV2U86fLQqxNlGIMqCGy+9WYhJ8ob1r0+Whxde9L2PdysETv97O+xVw+VNN1TZSQN5I6l9m5Ip6pLIqLm4a1B1ffH6gHyqT9p82NOjntRWGIofO3bJz5GhkvSWbsXueTAMaJDou99kGLqDlhwBZNEQ4mKPuDvVwSK4WmLluHyhA97pZiVe8g+JxmnJF8IkV/tCs4Jq/HgOoAEGR9tCDsDbDmi3OviUQpG5D8XmKcSAUaFLRXb2lmJTNYdhtYyfjBYZQmN5qT5CNuaD3BVnlkCk7bsMW3AtXkNMMTuW4HjUERSJnVQ0vsBGa1wo3Qh7115XGeTF3NTz8w0440AgU7c3bSXO/KMINaIWXd0oLpoq/0/QJxCQSJ9XnYy1W7TYLBJpHsVWD1ahsA7FjNvRd6mxCiHsm8g6Z0pnzqIpF1dHUtP2ITU5Z1hZHbu+L3BEEStBbL9XYvGfEakv1bmf+bOZGnoiuHEdlBnaChxYKNzB23b8sw8YyT7Ajxfk49eJIAvdbVkdFCe2J0gMefhQ0bIZxhx3fzMIysQNiN8PgOUKxOMur10LduigREDRMZyP4oGWrP1GFY4t6groASsZ421os48wAdnrbovNhLt7ScNULkwZ5AIZJTrbaKYTLjA1oJ3sIuN/aYocm/9uoQHEIlacF1s/TM1fLcPTL38O9fOsjMEIwoPKfvt7opuI9G2Hf/PR4aCLDQ7wNmIdEuXJ/QNL72k5q4NejAldPfe3UVVqzkys8YZ/jYOGOp6c+YzRCrCuq0M11y7TiN6qk7YXRMn/gukxrEimbMQjr3jwRM6dKVZ4RUfWQr8noPXLJq6yh5R3EH1IVOHESst/LItbG2D2vRsZRkAObzvQAAD3mb3/G4NzopI0FAiHfbpq0X72adg6SRj+8OHMShtFxxLZlf/nLgRLbClwl5WmaYSs+yEjkq48tY7Z2bE0N91mJwt+ua0NlRJIDh0HikF4UvSVorFj2YVu9YeS5tfvlVjPSoNu/Zu6dEUfBOT555hahBdN3Sa5Xuj2Rvau1lQNIaC944y0RWj9UiNDskAK1WoL+EfXcC6IbBXFRyVfX/WKXxPAwUyIAGW8ggZ08hcijKTt1YKnUO6QPvcrmDVAb0FCLIXn5id4fD/Jx4tw/gbXs7WF9b2RgXtPhLBG9vF5FEkdHAKrQHZAJC/HWvk7nvzzDzIXZlfFTJoC3JpGgLPBY7SQTjGlUvG577yNutZ1hTfs9/1nkSXK9zzKLRZ3VODeKUovJe0WCq1zVMYxCJMenmNzPIU2S8TA4E7wWmbNkxq9rI2dd6v0VpcAPVMxnDsvWTWFayyqvKZO7Z08a62i/oH2/jxf8rpmfO64in3FLiL1GX8IGtVE9M23yGsIqJbxDTy+LtaMWDaPqkymb5VrQdzOvqldeU0SUi6IirG8UZ3jcpRbwHa1C0Dww9G/SFX3gPvTJQE+kyz+g1BeMILKKO+olcHzctOWgzxYHnOD7dpCRtuZEXACjgqesZMasoPgnuDC4nUviAAxDc5pngjoAITIkvhKwg5d608pdrZcA+qn5TMT6Uo/QzBaOxBCLTJX3Mgk85rMfsnWx86oLxf7p2PX5ONqieTa/qM3tPw4ZXvlAp83NSD8F7+ZgctK1TpoYwtiU2h02HCGioH5tkVCqNVTMH5p00sRy2JU1qyDBP2CII/Dg4WDsIl+zgeX7589srx6YORRQMBfKbodbB743Tl4WLKOEnwWUVBsm94SOlCracU72MSyj068wdpYjyz1FwC2bjQnxnB6Mp/pZ+yyZXtguEaYB+kqhjQ6UUmwSFazOb+rhYjLaoiM+aN9/8KKn0zaCTFpN9eKwWy7/u4EHzO46TdFSNjMfn2iPSJwDPCFHc0I1+vjdAZw5ZjqR/uzi9Zn20oAa5JnLEk/EA3VRWE7J/XrupfFJPtCUuqHPpnlL7ISJtRpSVcB8qsZCm2QEkWoROtCKKxUh3yEcMbWYJwk6DlEBG0bZP6eg06FL3v6RPb7odGuwm7FN8fG4woqtB8e7M5klPpo97GoObNwt+ludTAmxyC5hmcFx+dIvEZKI6igFKHqLH01iY1o7903VzG9QGetyVx5RNmBYUU+zIuSva/yIcECUi4pRmE3VkF2avqulQEUY4yZ/wmNboBzPmAPey3+dSYtBZUjeWWT0pPwCz4Vozxp9xeClIU60qvEFMQCaPvPaA70WlOP9f/ey39macvpGCVa+zfa8gO44wbxpJUlC8GN/pRMTQtzY8Z8/hiNrU+Zq64ZfFGIkdj7m7abcK1EBtws1X4J/hnqvasPvvDSDYWN+QcQVGMqXalkDtTad5rYY0TIR1Eqox3czwPMjKPvF5sFv17Thujr1IZ1Ytl4VX1J0vjXKmLY4lmXipRAro0qVGEcXxEVMMEl54jQMd4J7RjgomU0j1ptjyxY+cLiSyXPfiEcIS2lWDK3ISAy6UZ3Hb5vnPncA94411jcy75ay6B6DSTzK6UTCZR9uDANtPBrvIDgjsfarMiwoax2OlLxaSoYn4iRgkpEGqEkwox5tyI8aKkLlfZ12lO11TxsqRMY89j5JaO55XfPJPDL1LGSnC88Re9Ai+Nu5bZjtwRrvFITUFHPR4ZmxGslQMecgbZO7nHk32qHxYkdvWpup07ojcMCaVrpFAyFZJJbNvBpZfdf39Hdo2kPtT7v0/f8R/B5Nz4f1t9/3zNM/7n6SUHfcWk5dfQFJvcJMgPolGCpOFb/WC0FGWU2asuQyT+rm88ZKZ78Cei/CAh939CH0JYbpZIPtxc2ufXqjS3pHH9lnWK4iJ7OjR/EESpCo2R3MYKyE7rHfhTvWho4cL1QdN4jFTyR6syMwFm124TVDDRXMNveI1Dp/ntwdz8k8kxw7iFSx6+Yx6O+1LzMVrN0BBzziZi9kneZSzgollBnVwBh6oSOPHXrglrOj+QmR/AESrhDpKrWT+8/AiMDxS/5wwRNuGQPLlJ9ovomhJWn8sMLVItQ8N/7IXvtD8kdOoHaw+vBSbFImQsv/OCAIui99E+YSIOMlMvBXkAt+NAZK8wB9Jf8CPtB+TOUOR+z71d/AFXpPBT6+A5FLjxMjLIEoJzrQfquvxEIi+WoUzGR1IzQFNvbYOnxb2PyQ0kGdyXKzW2axQL8lNAXPk6NEjqrRD1oZtKLlFoofrXw0dCNWASHzy+7PSzOUJ3XtaPZsxLDjr+o41fKuKWNmjiZtfkOzItvlV2MDGSheGF0ma04qE3TUEfqJMrXFm7DpK+27DSvCUVf7rbNoljPhha5W7KBqVq0ShUSTbRmuqPtQreVWH4JET5yMhuqMoSd4r/N8sDmeQiQQvi1tcZv7Moc7dT5X5AtCD6kNEGZOzVcNYlpX4AbTsLgSYYliiPyVoniuYYySxsBy5cgb3pD+EK0Gpb0wJg031dPgaL8JZt6sIvzNPEHfVPOjXmaXj4bd4voXzpZ5GApMhILgMbCEWZ2zwgdeQgjNHLbPIt+KqxRwWPLTN6HwZ0Ouijj4UF+Sg0Au8XuIKW0WxlexdrFrDcZJ8Shauat3X0XmHygqgL1nAu2hrJFb4wZXkcS+i36KMyU1yFvYv23bQUJi/3yQpqr/naUOoiEWOxckyq/gq43dFou1DVDaYMZK9tho7+IXXokBCs5GRfOcBK7g3A+jXQ39K4YA8PBRW4m5+yR0ZAxWJncjRVbITvIAPHYRt1EJ3YLiUbqIvoKHtzHKtUy1ddRUQ0AUO41vonZDUOW+mrszw+SW/6Q/IUgNpcXFjkM7F4CSSQ2ExZg85otsMs7kqsQD4OxYeBNDcSpifjMoLb7GEbGWTwasVObmB/bfPcUlq0wYhXCYEDWRW02TP5bBrYsKTGWjnWDDJ1F7zWai0zW/2XsCuvBQjPFcTYaQX3tSXRSm8hsAoDdjArK/OFp6vcWYOE7lizP0Yc+8p16i7/NiXIiiQTp7c7Xus925VEtlKAjUdFhyaiLT7VxDagprMFwix4wZ05u0qj7cDWFd0W9OYHIu3JbJKMXRJ1aYNovugg+QqRN7fNHSi26VSgBpn+JfMuPo3aeqPWik/wI5Rz3BWarPQX4i5+dM0npwVOsX+KsOhC7vDg+OJsz4Q5zlnIeflUWL6QYMbf9WDfLmosLF4Qev3mJiOuHjoor/dMeBpA9iKDkMjYBNbRo414HCxjsHrB4EXNbHzNMDHCLuNBG6Sf+J4MZ/ElVsDSLxjIiGsTPhw8BPjxbfQtskj+dyNMKOOcUYIRBEIqbazz3lmjlRQhplxq673VklMMY6597vu+d89ec/zq7Mi4gQvh87ehYbpOuZEXj5g/Q7S7BFDAAB9DzG35SC853xtWVcnZQoH54jeOqYLR9NDuwxsVthTV7V99n/B7HSbAytbEyVTz/5NhJ8gGIjG0E5j3griULUd5Rg7tQR+90hJgNQKQH2btbSfPcaTOfIexc1db1BxUOhM1vWCpLaYuKr3FdNTt/T3PWCpEUWDKEtzYrjpzlL/wri3MITKsFvtF8QVV/NhVo97aKIBgdliNc10dWdXVDpVtsNn+2UIolrgqdWA4EY8so0YvB4a+aLzMXiMAuOHQrXY0tr+CL10JbvZzgjJJuB1cRkdT7DUqTvnswVUp5kkUSFVtIIFYK05+tQxT6992HHNWVhWxUsD1PkceIrlXuUVRogwmfdhyrf6zzaL8+c0L7GXMZOteAhAVQVwdJh+7nrX7x4LaIIfz2F2v7Dg/uDfz2Fa+4gFm2zHAor8UqimJG3VTJtZEoFXhnDYXvxMJFc6ku2bhbCxzij2z5UNuK0jmp1mnvkVNUfR+SEmj1Lr94Lym75PO7Fs0MIr3GdsWXRXSfgLTVY0FLqba97u1In8NAcY7IC6TjWLigwKEIm43NxTdaVTv9mcKkzuzBkKd8x/xt1p/9BbP7Wyb4bpo1K1gnOpbLvKz58pWl3B55RJ/Z5mRDLPtNQg14jdOEs9+h/V5UVpwrAI8kGbX8KPVPDIMfIqKDjJD9UyDOPhjZ3vFAyecwyq4akUE9mDOtJEK1hpDyi6Ae87sWAClXGTiwPwN7PXWwjxaR79ArHRIPeYKTunVW24sPr/3HPz2IwH8oKH4OlWEmt4BLM6W5g4kMcYbLwj2usodD1088stZA7VOsUSpEVl4w7NMb1EUHMRxAxLF0CIV+0L3iZb+ekB1vSDSFjAZ3hfLJf7gFaXrOKn+mhR+rWw/eTXIcAgl4HvFuBg1LOmOAwJH3eoVEjjwheKA4icbrQCmvAtpQ0mXG0agYp5mj4Rb6mdQ+RV4QBPbxMqh9C7o8nP0Wko2ocnCHeRGhN1XVyT2b9ACsL+6ylUy+yC3QEnaKRIJK91YtaoSrcWZMMwxuM0E9J68Z+YyjA0g8p1PfHAAIROy6Sa04VXOuT6A351FOWhKfTGsFJ3RTJGWYPoLk5FVK4OaYR9hkJvezwF9vQN1126r6isMGXWTqFW+3HL3I/jurlIdDWIVvYY+s6yq7lrFSPAGRdnU7PVwY/SvWbZGpXzy3BQ2LmAJlrONUsZs4oGkly0V267xbD5KMY8woNNsmWG1VVgLCra8aQBBcI4DP2BlNwxhiCtHlaz6OWFoCW0vMR3ErrG7JyMjTSCnvRcsEHgmPnwA6iNpJ2DrFb4gLlhKJyZGaWkA97H6FFdwEcLT6DRQQL++fOkVC4cYGW1TG/3iK5dShRSuiBulmihqgjR45Vi03o2RbQbP3sxt90VxQ6vzdlGfkXmmKmjOi080JSHkLntjvsBJnv7gKscOaTOkEaRQqAnCA4HWtB4XnMtOhpRmH2FH8tTXrIjAGNWEmudQLCkcVlGTQ965Kh0H6ixXbgImQP6b42B49sO5C8pc7iRlgyvSYvcnH9FgQ3azLbQG2cUW96SDojTQStxkOJyOuDGTHAnnWkz29aEwN9FT8EJ4yhXOg+jLTrCPKeEoJ9a7lDXOjEr8AgX4BmnMQ668oW0zYPyQiVMPxKRHtpfnEEyaKhdzNVThlxxDQNdrHeZiUFb6NoY2KwvSb7BnRcpJy+/g/zAYx3fYSN5QEaVD2Y1VsNWxB0BSO12MRsRY8JLfAezRMz5lURuLUnG1ToKk6Q30FughqWN6gBNcFxP/nY/iv+iaUQOa+2Nuym46wtI/DvSfzSp1jEi4SdYBE7YhTiVV5cX9gwboVDMVgZp5YBQlHOQvaDNfcCoCJuYhf5kz5kwiIKPjzgpcRJHPbOhJajeoeRL53cuMahhV8Z7IRr6M4hW0JzT7mzaMUzQpm866zwM7Cs07fJYXuWvjAMkbe5O6V4bu71sOG6JQ4oL8zIeXHheFVavzxmlIyBkgc9IZlEDplMPr8xlcyss4pVUdwK1e7CK2kTsSdq7g5SHRAl3pYUB9Ko4fsh4qleOyJv1z3KFSTSvwEcRO/Ew8ozEDYZSqpfoVW9uhJfYrNAXR0Z3VmeoAD+rVWtwP/13sE/3ICX3HhDG3CMc476dEEC0K3umSAD4j+ZQLVdFOsWL2C1TH5+4KiSWH+lMibo+B55hR3Gq40G1n25sGcN0mEcoU2wN9FCVyQLBhYOu9aHVLWjEKx2JIUZi5ySoHUAI9b8hGzaLMxCZDMLhv8MkcpTqEwz9KFDpCpqQhVmsGQN8m24wyB82FAKNmjgfKRsXRmsSESovAwXjBIoMKSG51p6Um8b3i7GISs7kjTq/PZoioCfJzfKdJTN0Q45kQEQuh9H88M3yEs3DbtRTKALraM0YC8laiMiOOe6ADmTcCiREeAWZelBaEXRaSuj2lx0xHaRYqF65O0Lo5OCFU18A8cMDE4MLYm9w2QSr9NgQAIcRxZsNpA7UJR0e71JL+VU+ISWFk5I97lra8uGg7GlQYhGd4Gc6rxsLFRiIeGO4abP4S4ekQ1fiqDCy87GZHd52fn5aaDGuvOmIofrzpVwMvtbreZ/855OaXTRcNiNE0wzGZSxbjg26v8ko8L537v/XCCWP2MFaArJpvnkep0pA+O86MWjRAZPQRfznZiSIaTppy6m3p6HrNSsY7fDtz7Cl4V/DJAjQDoyiL2uwf1UHVd2AIrzBUSlJaTj4k6NL97a/GqhWKU9RUmjnYKpm2r+JYUcrkCuZKvcYvrg8pDoUKQywY9GDWg03DUFSirlUXBS5SWn/KAntnf0IdHGL/7mwXqDG+LZYjbEdQmqUqq4y54TNmWUP7IgcAw5816YBzwiNIJiE9M4lPCzeI/FGBeYy3p6IAmH4AjXXmvQ4Iy0Y82NTobcAggT2Cdqz6Mx4TdGoq9fn2etrWKUNFyatAHydQTVUQ2S5OWVUlugcNvoUrlA8cJJz9MqOa/W3iVno4zDHfE7zhoY5f5lRTVZDhrQbR8LS4eRLz8iPMyBL6o4PiLlp89FjdokQLaSBmKHUwWp0na5fE3v9zny2YcDXG/jfI9sctulHRbdkI5a4GOPJx4oAJQzVZ/yYAado8KNZUdEFs9ZPiBsausotXMNebEgr0dyopuqfScFJ3ODNPHgclACPdccwv0YJGQdsN2lhoV4HVGBxcEUeUX/alr4nqpcc1CCR3vR7g40zteQg/JvWmFlUE4mAiTpHlYGrB7w+U2KdSwQz2QJKBe/5eiixWipmfP15AFWrK8Sh1GBBYLgzki1wTMhGQmagXqJ2+FuqJ8f0XzXCVJFHQdMAw8xco11HhM347alrAu+wmX3pDFABOvkC+WPX0Uhg1Z5MVHKNROxaR84YV3s12UcM+70cJ460SzEaKLyh472vOMD3XnaK7zxZcXlWqenEvcjmgGNR2OKbI1s8U+iwiW+HotHalp3e1MGDy6BMVIvajnAzkFHbeVsgjmJUkrP9OAwnEHYXVBqYx3q7LvXjoVR0mY8h+ZaOnh053pdsGkmbqhyryN01eVHySr+CkDYkSMeZ1xjPNVM+gVLTDKu2VGsMUJqWO4TwPDP0VOg2/8ITbAUaMGb4LjL7L+Pi11lEVMXTYIlAZ/QHmTENjyx3kDkBdfcvvQt6tKk6jYFM4EG5UXDTaF5+1ZjRz6W7MdJPC+wTkbDUim4p5QQH3b9kGk2Bkilyeur8Bc20wm5uJSBO95GfYDI1EZipoRaH7uVveneqz43tlTZGRQ4a7CNmMHgXyOQQOL6WQkgMUTQDT8vh21aSdz7ERiZT1jK9F+v6wgFvuEmGngSvIUR2CJkc5tx1QygfZnAruONobB1idCLB1FCfO7N1ZdRocT8/Wye+EnDiO9pzqIpnLDl4bkaRKW+ekBVwHn46Shw1X0tclt/0ROijuUB4kIInrVJU4buWf4YITJtjOJ6iKdr1u+flgQeFH70GxKjhdgt/MrwfB4K/sXczQ+9zYcrD4dhY6qZhZ010rrxggWA8JaZyg2pYij8ieYEg1aZJkZK9O1Re7sB0iouf60rK0Gd+AYlp7soqCBCDGwfKeUQhCBn0E0o0GS6PdmjLi0TtCYZeqazqwN+yNINIA8Lk3iPDnWUiIPLGNcHmZDxfeK0iAdxm/T7LnN+gemRL61hHIc0NCAZaiYJR+OHnLWSe8sLrK905B5eEJHNlWq4RmEXIaFTmo49f8w61+NwfEUyuJAwVqZCLFcyHBKAcIVj3sNzfEOXzVKIndxHw+AR93owhbCxUZf6Gs8cz6/1VdrFEPrv330+9s6BtMVPJ3zl/Uf9rUi0Z/opexfdL3ykF76e999GPfVv8fJv/Y/+/5hEMon1tqNFyVRevV9y9/uIvsG3dbB8GRRrgaEXfhx+2xeOFt+cEn3RZanNxdEe2+B6MHpNbrRE53PlDifPvFcp4kO78ILR0T4xyW/WGPyBsqGdoA7zJJCu1TKbGfhnqgnRbxbB2B3UZoeQ2bz2sTVnUwokTcTU21RxN1PYPS3Sar7T0eRIsyCNowr9amwoMU/od9s2APtiKNL6ENOlyKADstAEWKA+sdKDhrJ6BOhRJmZ+QJbAaZ3/5Fq0/lumCgEzGEbu3yi0Y4I4EgVAjqxh4HbuQn0GrRhOWyAfsglQJAVL1y/6yezS2k8RE2MstJLh92NOB3GCYgFXznF4d25qiP4ZCyI4RYGesut6FXK6GwPpKK8WHEkhYui0AyEmr5Ml3uBFtPFdnioI8RiCooa7Z1G1WuyIi3nSNglutc+xY8BkeW3JJXPK6jd2VIMpaSxpVtFq+R+ySK9J6WG5Qvt+C+QH1hyYUOVK7857nFmyDBYgZ/o+AnibzNVqyYCJQvyDXDTK+iXdkA71bY7TL3bvuLxLBQ8kbTvTEY9aqkQ3+MiLWbEgjLzOH+lXgco1ERgzd80rDCymlpaRQbOYnKG/ODoFl46lzT0cjM5FYVvv0qLUbD5lyJtMUaC1pFlTkNONx6lliaX9o0i/1vws5bNKn5OuENQEKmLlcP4o2ZmJjD4zzd3Fk32uQ4uRWkPSUqb4LBe3EXHdORNB2BWsws5daRnMfNVX7isPSb1hMQdAJi1/qmDMfRUlCU74pmnzjbXfL8PVG8NsW6IQM2Ne23iCPIpryJjYbVnm5hCvKpMa7HLViNiNc+xTfDIaKm3jctViD8A1M9YPJNk003VVr4Zo2MuGW8vil8SLaGpPXqG7I4DLdtl8a4Rbx1Lt4w5Huqaa1XzZBtj208EJVGcmKYEuaeN27zT9EE6a09JerXdEbpaNgNqYJdhP1NdqiPKsbDRUi86XvvNC7rME5mrSQtrzAZVndtSjCMqd8BmaeGR4l4YFULGRBeXIV9Y4yxLFdyoUNpiy2IhePSWzBofYPP0eIa2q5JP4j9G8at/AqoSsLAUuRXtvgsqX/zYwsE+of6oSDbUOo4RMJw+DOUTJq+hnqwKim9Yy/napyZNTc2rCq6V9jHtJbxGPDwlzWj/Sk3zF/BHOlT/fSjSq7FqlPI1q6J+ru8Aku008SFINXZfOfnZNOvGPMtEmn2gLPt+H4QLA+/SYe4j398auzhKIp2Pok3mPC5q1IN1HgR+mnEfc4NeeHYwd2/kpszR3cBn7ni9NbIqhtSWFW8xbUJuUPVOeeXu3j0IGZmFNiwaNZ6rH4/zQ2ODz6tFxRLsUYZu1bfd1uIvfQDt4YD/efKYv8VF8bHGDgK22w2Wqwpi43vNCOXFJZCGMqWiPbL8mil6tsmOTXAWCyMCw73e2rADZj2IK6rqksM3EXF2cbLb4vjB14wa/yXK5vwU+05MzERJ5nXsXsW21o7M+gO0js2OyKciP5uF2iXyb2DiptwQeHeqygkrNsqVCSlldxBMpwHi1vfc8RKpP/4L3Lmpq6DZcvhDDfxTCE3splacTcOtXdK2g303dIWBVe2wD/Gvja1cClFQ67gw0t1ZUttsUgQ1Veky8oOpS6ksYEc4bqseCbZy766SvL3FodmnahlWJRgVCNjPxhL/fk2wyvlKhITH/VQCipOI0dNcRa5B1M5HmOBjTLeZQJy237e2mobwmDyJNHePhdDmiknvLKaDbShL+Is1XTCJuLQd2wmdJL7+mKvs294whXQD+vtd88KKk0DXP8B1Xu9J+xo69VOuFgexgTrcvI6SyltuLix9OPuE6/iRJYoBMEXxU4shQMf4Fjqwf1PtnJ/wWSZd29rhZjRmTGgiGTAUQqRz+nCdjeMfYhsBD5Lv60KILWEvNEHfmsDs2L0A252351eUoYxAysVaCJVLdH9QFWAmqJDCODUcdoo12+gd6bW2boY0pBVHWL6LQDK5bYWh1V8vFvi0cRpfwv7cJiMX3AZNJuTddHehTIdU0YQ/sQ1dLoF2xQPcCuHKiuCWOY30DHe1OwcClLAhqAKyqlnIbH/8u9ScJpcS4kgp6HKDUdiOgRaRGSiUCRBjzI5gSksMZKqy7Sd51aeg0tgJ+x0TH9YH2Mgsap9N7ENZdEB0bey2DMTrBA1hn56SErNHf3tKtqyL9b6yXEP97/rc+jgD2N1LNUH6RM9AzP3kSipr06RkKOolR7HO768jjWiH1X92jA7dkg7gcNcjqsZCgfqWw0tPXdLg20cF6vnQypg7gLtkazrHAodyYfENPQZsdfnjMZiNu4nJO97D1/sQE+3vNFzrSDOKw+keLECYf7RJwVHeP/j79833oZ0egonYB2FlFE5qj02B/LVOMJQlsB8uNg3Leg4qtZwntsOSNidR0abbZmAK4sCzvt8Yiuz2yrNCJoH5O8XvX/vLeR/BBYTWj0sOPYM/jyxRd5+/JziKAABaPcw/34UA3aj/gLZxZgRCWN6m4m3demanNgsx0P237/Q+Ew5VYnJPkyCY0cIVHoFn2Ay/e7U4P19APbPFXEHX94N6KhEMPG7iwB3+I+O1jd5n6VSgHegxgaSawO6iQCYFgDsPSMsNOcUj4q3sF6KzGaH/0u5PQoAj/8zq6Uc9MoNrGqhYeb2jQo0WlGlXjxtanZLS24/OIN5Gx/2g684BPDQpwlqnkFcxpmP/osnOXrFuu4PqifouQH0eF5qCkvITQbJw/Zvy5mAHWC9oU+cTiYhJmSfKsCyt1cGVxisKu+NymEQIAyaCgud/V09qT3nk/9s/SWsYtha7yNpzBIMM40rCSGaJ9u6lEkl00vXBiEt7p9P5IBCiavynEOv7FgLqPdeqxRiCwuFVMolSIUBcoyfUC2e2FJSAUgYdVGFf0b0Kn2EZlK97yyxrT2MVgvtRikfdaAW8RwEEfN+B7/eK8bBdp7URpbqn1xcrC6d2UjdsKbzCjBFqkKkoZt7Mrhg6YagE7spkqj0jOrWM+UGQ0MUlG2evP1uE1p2xSv4dMK0dna6ENcNUF+xkaJ7B764NdxLCpuvhblltVRAf7vK5qPttJ/9RYFUUSGcLdibnz6mf7WkPO3MkUUhR2mAOuGv8IWw5XG1ZvoVMnjSAZe6T7WYA99GENxoHkMiKxHlCuK5Gd0INrISImHQrQmv6F4mqU/TTQ8nHMDzCRivKySQ8dqkpQgnUMnwIkaAuc6/FGq1hw3b2Sba398BhUwUZSAIO8XZvnuLdY2n6hOXws+gq9BHUKcKFA6kz6FDnpxLPICa3qGhnc97bo1FT/XJk48LrkHJ2CAtBv0RtN97N21plfpXHvZ8gMJb7Zc4cfI6MbPwsW7AilCSXMFIEUEmir8XLEklA0ztYbGpTTGqttp5hpFTTIqUyaAIqvMT9A/x+Ji5ejA4Bhxb/cl1pUdOD6epd3yilIdO6j297xInoiBPuEDW2/UfslDyhGkQs7Wy253bVnlT+SWg89zYIK/9KXFl5fe+jow2rd5FXv8zDPrmfMXiUPt9QBO/iK4QGbX5j/7Rx1c1vzsY8ONbP3lVIaPrhL4+1QrECTN3nyKavGG0gBBtHvTKhGoBHgMXHStFowN+HKrPriYu+OZ05Frn8okQrPaaxoKP1ULCS/cmKFN3gcH7HQlVjraCeQmtjg1pSQxeuqXiSKgLpxc/1OiZsU4+n4lz4hpahGyWBURLi4642n1gn9qz9bIsaCeEPJ0uJmenMWp2tJmIwLQ6VSgDYErOeBCfSj9P4G/vI7oIF+l/n5fp956QgxGvur77ynawAu3G9MdFbJbu49NZnWnnFcQHjxRuhUYvg1U/e84N4JTecciDAKb/KYIFXzloyuE1eYXf54MmhjTq7B/yBToDzzpx3tJCTo3HCmVPYfmtBRe3mPYEE/6RlTIxbf4fSOcaKFGk4gbaUWe44hVk9SZzhW80yfW5QWBHxmtUzvMhfVQli4gZTktIOZd9mjJ5hsbmzttaHQB29Am3dZkmx3g/qvYocyhZ2PXAWsNQiIaf+Q8W/MWPIK7/TjvCx5q2XRp4lVWydMc2wIQkhadDB0xsnw/kSEyGjLKjI4coVIwtubTF3E7MJ6LS6UOsJKj82XVAVPJJcepfewbzE91ivXZvOvYfsmMevwtPpfMzGmC7WJlyW2j0jh7AF1JLmwEJSKYwIvu6DHc3YnyLH9ZdIBnQ+nOVDRiP+REpqv++typYHIvoJyICGA40d8bR7HR2k7do6UQTHF4oriYeIQbxKe4Th6+/l1BjUtS9hqORh3MbgvYrStXTfSwaBOmAVQZzpYNqsAmQyjY56MUqty3c/xH6GuhNvNaG9vGbG6cPtBM8UA3e8r51D0AR9kozKuGGSMgLz3nAHxDNnc7GTwpLj7/6HeWp1iksDeTjwCLpxejuMtpMnGJgsiku1sOACwQ9ukzESiDRN77YNESxR5LphOlcASXA5uIts1LnBIcn1J7BLWs49DMALSnuz95gdOrTZr0u1SeYHinno/pE58xYoXbVO/S+FEMMs5qyWkMnp8Q3ClyTlZP52Y9nq7b8fITPuVXUk9ohG5EFHw4gAEcjFxfKb3xuAsEjx2z1wxNbSZMcgS9GKyW3R6KwJONgtA64LTyxWm8Bvudp0M1FdJPEGopM4Fvg7G/hsptkhCfHFegv4ENwxPeXmYhxwZy7js+BeM27t9ODBMynVCLJ7RWcBMteZJtvjOYHb5lOnCLYWNEMKC59BA7covu1cANa2PXL05iGdufOzkgFqqHBOrgQVUmLEc+Mkz4Rq8O6WkNr7atNkH4M8d+SD1t/tSzt3oFql+neVs+AwEI5JaBJaxARtY2Z4mKoUqxds4UpZ0sv3zIbNoo0J4fihldQTX3XNcuNcZmcrB5LTWMdzeRuAtBk3cZHYQF6gTi3PNuDJ0nmR+4LPLoHvxQIxRgJ9iNNXqf2SYJhcvCtJiVWo85TsyFOuq7EyBPJrAdhEgE0cTq16FQXhYPJFqSfiVn0IQnPOy0LbU4BeG94QjdYNB0CiQ3QaxQqD2ebSMiNjaVaw8WaM4Z5WnzcVDsr4eGweSLa2DE3BWViaxhZFIcSTjgxNCAfelg+hznVOYoe5VqTYs1g7WtfTm3e4/WduC6p+qqAM8H4ZyrJCGpewThTDPe6H7CzX/zQ8Tm+r65HeZn+MsmxUciEWPlAVaK/VBaQBWfoG/aRL/jSZIQfep/89GjasWmbaWzeEZ2R1FOjvyJT37O9B8046SRSKVEnXWlBqbkb5XCS3qFeuE9xb9+frEknxWB5h1D/hruz2iVDEAS7+qkEz5Ot5agHJc7WCdY94Ws61sURcX5nG8UELGBAHZ3i+3VulAyT0nKNNz4K2LBHBWJcTBX1wzf+//u/j/9+//v87+9/l9Lbh/L/uyNYiTsWV2LwsjaA6MxTuzFMqmxW8Jw/+IppdX8t/Clgi1rI1SN0UC/r6tX/4lUc2VV1OQReSeCsjUpKZchw4XUcjHfw6ryCV3R8s6VXm67vp4n+lcPV9gJwmbKQEsmrJi9c2vkwrm8HFbVYNTaRGq8D91t9n5+U+aD/hNtN3HjC/nC/vUoGFSCkXP+NlRcmLUqLbiUBl4LYf1U/CCvwtd3ryCH8gUmGITAxiH1O5rnGTz7y1LuFjmnFGQ1UWuM7HwfXtWl2fPFKklYwNUpF2IL/TmaRETjQiM5SJacI+3Gv5MBU8lP5Io6gWkawpyzNEVGqOdx4YlO1dCvjbWFZWbCmeiFKPSlMKtKcMFLs/KQxtgAHi7NZNCQ32bBAW2mbHflVZ8wXKi1JKVHkW20bnYnl3dKWJeWJOiX3oKPBD6Zbi0ZvSIuWktUHB8qDR8DMMh1ZfkBL9FS9x5r0hBGLJ8pUCJv3NYH+Ae8p40mZWd5m5fhobFjQeQvqTT4VKWIYfRL0tfaXKiVl75hHReuTJEcqVlug+eOIIc4bdIydtn2K0iNZPsYWQvQio2qbO3OqAlPHDDOB7DfjGEfVF51FqqNacd6QmgFKJpMfLp5DHTv4wXlONKVXF9zTJpDV4m1sYZqJPhotcsliZM8yksKkCkzpiXt+EcRQvSQqmBS9WdWkxMTJXPSw94jqI3varCjQxTazjlMH8jTS8ilaW8014/vwA/LNa+YiFoyyx3s/KswP3O8QW1jtq45yTM/DX9a8M4voTVaO2ebvw1EooDw/yg6Y1faY+WwrdVs5Yt0hQ5EwRfYXSFxray1YvSM+kYmlpLG2/9mm1MfmbKHXr44Ih8nVKb1M537ZANUkCtdsPZ80JVKVKabVHCadaLXg+IV8i5GSwpZti0h6diTaKs9sdpUKEpd7jDUpYmHtiX33SKiO3tuydkaxA7pEc9XIQEOfWJlszj5YpL5bKeQyT7aZSBOamvSHl8xsWvgo26IP/bqk+0EJUz+gkkcvlUlyPp2kdKFtt7y5aCdks9ZJJcFp5ZWeaWKgtnXMN3ORwGLBE0PtkEIek5FY2aVssUZHtsWIvnljMVJtuVIjpZup/5VL1yPOHWWHkOMc6YySWMckczD5jUj2mlLVquFaMU8leGVaqeXis+aRRL8zm4WuBk6cyWfGMxgtr8useQEx7k/PvRoZyd9nde1GUCV84gMX8Ogu/BWezYPSR27llzQnA97oo0pYyxobYUJfsj+ysTm9zJ+S4pk0TGo9VTG0KjqYhTmALfoDZVKla2b5yhv241PxFaLJs3i05K0AAIdcGxCJZmT3ZdT7CliR7q+kur7WdQjygYtOWRL9B8E4s4LI8KpAj7bE0dg7DLOaX+MGeAi0hMMSSWZEz+RudXbZCsGYS0QqiXjH9XQbd8sCB+nIVTq7/T/FDS+zWY9q7Z2fdq1tdLb6v3hKKVDAw5gjj6o9r1wHFROdHc18MJp4SJ2Ucvu+iQ9EgkekW8VCM+psM6y+/2SBy8tNN4a3L1MzP+OLsyvESo5gS7IQOnIqMmviJBVc6zbVG1n8eXiA3j46kmvvtJlewwNDrxk4SbJOtP/TV/lIVK9ueShNbbMHfwnLTLLhbZuO79ec5XvfgRwLFK+w1r5ZWW15rVFZrE+wKqNRv5KqsLNfpGgnoUU6Y71NxEmN7MyqwqAQqoIULOw/LbuUB2+uE75gJt+kq1qY4LoxV+qR/zalupea3D5+WMeaRIn0sAI6DDWDh158fqUb4YhAxhREbUN0qyyJYkBU4V2KARXDT65gW3gRsiv7xSPYEKLwzgriWcWgPr0sbZnv7m1XHNFW6xPdGNZUdxFiUYlmXNjDVWuu7LCkX/nVkrXaJhiYktBISC2xgBXQnNEP+cptWl1eG62a7CPXrnrkTQ5BQASbEqUZWMDiZUisKyHDeLFOaJILUo5f6iDt4ZO8MlqaKLto0AmTHVVbkGuyPa1R/ywZsWRoRDoRdNMMHwYTsklMVnlAd2S0282bgMI8fiJpDh69OSL6K3qbo20KfpNMurnYGQSr/stFqZ7hYsxKlLnKAKhsmB8AIpEQ4bd/NrTLTXefsE6ChRmKWjXKVgpGoPs8GAicgKVw4K0qgDgy1A6hFq1WRat3fHF+FkU+b6H4NWpOU3KXTxrIb2qSHAb+qhm8hiSROi/9ofapjxhyKxxntPpge6KL5Z4+WBMYkAcE6+0Hd3Yh2zBsK2MV3iW0Y6cvOCroXlRb2MMJtdWx+3dkFzGh2Pe3DZ9QpSqpaR/rE1ImOrHqYYyccpiLC22amJIjRWVAherTfpQLmo6/K2pna85GrDuQPlH1Tsar8isAJbXLafSwOof4gg9RkAGm/oYpBQQiPUoyDk2BCQ1k+KILq48ErFo4WSRhHLq/y7mgw3+L85PpP6xWr6cgp9sOjYjKagOrxF148uhuaWtjet953fh1IQiEzgC+d2IgBCcUZqgTAICm2bR8oCjDLBsmg+ThyhfD+zBalsKBY1Ce54Y/t9cwfbLu9SFwEgphfopNA3yNxgyDafUM3mYTovZNgPGdd4ZFFOj1vtfFW3u7N+iHEN1HkeesDMXKPyoCDCGVMo4GCCD6PBhQ3dRZIHy0Y/3MaE5zU9mTCrwwnZojtE+qNpMSkJSpmGe0EzLyFelMJqhfFQ7a50uXxZ8pCc2wxtAKWgHoeamR2O7R+bq7IbPYItO0esdRgoTaY38hZLJ5y02oIVwoPokGIzxAMDuanQ1vn2WDQ00Rh6o5QOaCRu99fwDbQcN0XAuqkFpxT/cfz3slGRVokrNU0iqiMAJFEbKScZdmSkTUznC0U+MfwFOGdLgsewRyPKwBZYSmy6U325iUhBQNxbAC3FLKDV9VSOuQpOOukJ/GAmu/tyEbX9DgEp6dv1zoU0IqzpG6gssSjIYRVPGgU1QAQYRgIT8gEV0EXr1sqeh2I6rXjtmoCYyEDCe/PkFEi/Q48FuT29p557iN+LCwk5CK/CZ2WdAdfQZh2Z9QGrzPLSNRj5igUWzl9Vi0rCqH8G1Kp4QMLkuwMCAypdviDXyOIk0AHTM8HBYKh3b0/F+DxoNj4ZdoZfCpQVdnZarqoMaHWnMLNVcyevytGsrXQEoIbubqWYNo7NRHzdc0zvT21fWVirj7g36iy6pxogfvgHp1xH1Turbz8QyyHnXeBJicpYUctbzApwzZ1HT+FPEXMAgUZetgeGMwt4G+DHiDT2Lu+PT21fjJCAfV16a/Wu1PqOkUHSTKYhWW6PhhHUlNtWzFnA7MbY+r64vkwdpfNB2JfWgWXAvkzd42K4lN9x7Wrg4kIKgXCb4mcW595MCPJ/cTfPAMQMFWwnqwde4w8HZYJFpQwcSMhjVz4B8p6ncSCN1X4klxoIH4BN2J6taBMj6lHkAOs8JJAmXq5xsQtrPIPIIp/HG6i21xMGcFgqDXSRF0xQg14d2uy6HgKE13LSvQe52oShF5Jx1R6avyL4thhXQZHfC94oZzuPUBKFYf1VvDaxIrtV6dNGSx7DO0i1p6CzBkuAmEqyWceQY7F9+U0ObYDzoa1iKao/cOD/v6Q9gHrrr1uCeOk8fST9MG23Ul0KmM3r+Wn6Hi6WAcL7gEeaykicvgjzkjSwFsAXIR81Zx4QJ6oosVyJkCcT+4xAldCcihqvTf94HHUPXYp3REIaR4dhpQF6+FK1H0i9i7Pvh8owu3lO4PT1iuqu+DkL2Bj9+kdfGAg2TXw03iNHyobxofLE2ibjsYDPgeEQlRMR7afXbSGQcnPjI2D+sdtmuQ771dbASUsDndU7t58jrrNGRzISvwioAlHs5FA+cBE5Ccznkd8NMV6BR6ksnKLPZnMUawRDU1MZ/ib3xCdkTblHKu4blNiylH5n213yM0zubEie0o4JhzcfAy3H5qh2l17uLooBNLaO+gzonTH2uF8PQu9EyH+pjGsACTMy4cHzsPdymUSXYJOMP3yTkXqvO/lpvt0cX5ekDEu9PUfBeZODkFuAjXCaGdi6ew4qxJ8PmFfwmPpkgQjQlWqomFY6UkjmcnAtJG75EVR+NpzGpP1Ef5qUUbfowrC3zcSLX3BxgWEgEx/v9cP8H8u1Mvt9/rMDYf6sjwU1xSOPBgzFEeJLMRVFtKo5QHsUYT8ZRLCah27599EuqoC9PYjYO6aoAMHB8X1OHwEAYouHfHB3nyb2B+SnZxM/vw/bCtORjLMSy5aZoEpvgdGvlJfNPFUu/p7Z4VVK1hiI0/UTuB3ZPq4ohEbm7Mntgc1evEtknaosgZSwnDC2BdMmibpeg48X8Ixl+/8+xXdbshQXUPPvx8jT3fkELivHSmqbhblfNFShWAyQnJ3WBU6SMYSIpTDmHjdLVAdlADdz9gCplZw6mTiHqDwIsxbm9ErGusiVpg2w8Q3khKV/R9Oj8PFeF43hmW/nSd99nZzhyjCX3QOZkkB6BsH4H866WGyv9E0hVAzPYah2tkRfQZMmP2rinfOeQalge0ovhduBjJs9a1GBwReerceify49ctOh5/65ATYuMsAkVltmvTLBk4oHpdl6i+p8DoNj4Fb2vhdFYer2JSEilEwPd5n5zNoGBXEjreg/wh2NFnNRaIUHSOXa4eJRwygZoX6vnWnqVdCRT1ARxeFrNBJ+tsdooMwqnYhE7zIxnD8pZH+P0Nu1wWxCPTADfNWmqx626IBJJq6NeapcGeOmbtXvl0TeWG0Y7OGGV4+EHTtNBIT5Wd0Bujl7inXgZgfXTM5efD3qDTJ54O9v3Bkv+tdIRlq1kXcVD0BEMirmFxglNPt5pedb1AnxuCYMChUykwsTIWqT23XDpvTiKEru1cTcEMeniB+HQDehxPXNmkotFdwUPnilB/u4Nx5Xc6l8J9jH1EgKZUUt8t8cyoZleDBEt8oibDmJRAoMKJ5Oe9CSWS5ZMEJvacsGVdXDWjp/Ype5x0p9PXB2PAwt2LRD3d+ftNgpuyvxlP8pB84oB1i73vAVpwyrmXW72hfW6Dzn9Jkj4++0VQ4d0KSx1AsDA4OtXXDo63/w+GD+zC7w5SJaxsmnlYRQ4dgdjA7tTl2KNLnpJ+mvkoDxtt1a4oPaX3EVqj96o9sRKBQqU7ZOiupeAIyLMD+Y3YwHx30XWHB5CQiw7q3mj1EDlP2eBsZbz79ayUMbyHQ7s8gu4Lgip1LiGJj7NQj905/+rgUYKAA5qdrlHKIknWmqfuR+PB8RdBkDg/NgnlT89G72h2NvySnj7UyBwD+mi/IWs1xWbxuVwUIVXun5cMqBtFbrccI+DILjsVQg6eeq0itiRfedn89CvyFtpkxaauEvSANuZmB1p8FGPbU94J9medwsZ9HkUYjmI7OH5HuxendLbxTaYrPuIfE2ffXFKhoNBUp33HsFAXmCV/Vxpq5AYgFoRr5Ay93ZLRlgaIPjhZjXZZChT+aE5iWAXMX0oSFQEtwjiuhQQItTQX5IYrKfKB+queTNplR1Hoflo5/I6aPPmACwQCE2jTOYo5Dz1cs7Sod0KTG/3kEDGk3kUaUCON19xSJCab3kNpWZhSWkO8l+SpW70Wn3g0ciOIJO5JXma6dbos6jyisuxXwUUhj2+1uGhcvuliKtWwsUTw4gi1c/diEEpZHoKoxTBeMDmhPhKTx7TXWRakV8imJR355DcIHkR9IREHxohP4TbyR5LtFU24umRPRmEYHbpe1LghyxPx7YgUHjNbbQFRQhh4KeU1EabXx8FS3JAxp2rwRDoeWkJgWRUSKw6gGP5U2PuO9V4ZuiKXGGzFQuRuf+tkSSsbBtRJKhCi3ENuLlXhPbjTKD4djXVnfXFds6Zb+1XiUrRfyayGxJq1+SYBEfbKlgjiSmk0orgTqzSS+DZ5rTqsJbttiNtp+KMqGE2AHGFw6jQqM5vD6vMptmXV9OAjq49Uf/Lx9Opam+Hn5O9p8qoBBAQixzQZ4eNVkO9sPzJAMyR1y4/RCQQ1s0pV5KAU5sKLw3tkcFbI/JqrjCsK4Mw+W8aod4lioYuawUiCyVWBE/qPaFi5bnkgpfu/ae47174rI1fqQoTbW0HrU6FAejq7ByM0V4zkZTg02/YJK2N7hUQRCeZ4BIgSEqgD8XsjzG6LIsSbuHoIdz/LhFzbNn1clci1NHWJ0/6/O8HJMdIpEZbqi1RrrFfoo/rI/7ufm2MPG5lUI0IYJ4MAiHRTSOFJ2oTverFHYXThkYFIoyFx6rMYFgaOKM4xNWdlOnIcKb/suptptgTOTdVIf4YgdaAjJnIAm4qNNHNQqqAzvi53GkyRCEoseUBrHohZsjUbkR8gfKtc/+Oa72lwxJ8Mq6HDfDATbfbJhzeIuFQJSiw1uZprHlzUf90WgqG76zO0eCB1WdPv1IT6sNxxh91GEL2YpgC97ikFHyoaH92ndwduqZ6IYjkg20DX33MWdoZk7QkcKUCgisIYslOaaLyvIIqRKWQj16jE1DlQWJJaPopWTJjXfixEjRJJo8g4++wuQjbq+WVYjsqCuNIQW3YjnxKe2M5ZKEqq+cX7ZVgnkbsU3RWIyXA1rxv4kGersYJjD//auldXGmcEbcfTeF16Y1708FB1HIfmWv6dSFi6oD4E+RIjCsEZ+kY7dKnwReJJw3xCjKvi3kGN42rvyhUlIz0Bp+fNSV5xwFiuBzG296e5s/oHoFtUyUplmPulIPl+e1CQIQVtjlzLzzzbV+D/OVQtYzo5ixtMi5BmHuG4N/uKfJk5UIREp7+12oZlKtPBomXSzAY0KgtbPzzZoHQxujnREUgBU+O/jKKhgxVhRPtbqyHiUaRwRpHv7pgRPyUrnE7fYkVblGmfTY28tFCvlILC04Tz3ivkNWVazA+OsYrxvRM/hiNn8Fc4bQBeUZABGx5S/xFf9Lbbmk298X7iFg2yeimvsQqqJ+hYbt6uq+Zf9jC+Jcwiccd61NKQtFvGWrgJiHB5lwi6fR8KzYS7EaEHf/ka9EC7H8D+WEa3TEACHBkNSj/cXxFeq4RllC+fUFm2xtstYLL2nos1DfzsC9vqDDdRVcPA3Ho95aEQHvExVThXPqym65llkKlfRXbPTRiDepdylHjmV9YTWAEjlD9DdQnCem7Aj/ml58On366392214B5zrmQz/9ySG2mFqEwjq5sFl5tYJPw5hNz8lyZPUTsr5E0F2C9VMPnZckWP7+mbwp/BiN7f4kf7vtGnZF2JGvjK/sDX1RtcFY5oPQnE4lIAYV49U3C9SP0LCY/9i/WIFK9ORjzM9kG/KGrAuwFmgdEpdLaiqQNpCTGZVuAO65afkY1h33hrqyLjZy92JK3/twdj9pafFcwfXONmPQWldPlMe7jlP24Js0v9m8bIJ9TgS2IuRvE9ZVRaCwSJYOtAfL5H/YS4FfzKWKbek+GFulheyKtDNlBtrdmr+KU+ibHTdalzFUmMfxw3f36x+3cQbJLItSilW9cuvZEMjKw987jykZRlsH/UI+HlKfo2tLwemBEeBFtmxF2xmItA/dAIfQ+rXnm88dqvXa+GapOYVt/2waFimXFx3TC2MUiOi5/Ml+3rj/YU6Ihx2hXgiDXFsUeQkRAD6wF3SCPi2flk7XwKAA4zboqynuELD312EJ88lmDEVOMa1W/K/a8tGylZRMrMoILyoMQzzbDJHNZrhH77L9qSC42HVmKiZ5S0016UTp83gOhCwz9XItK9fgXfK3F5d7nZCBUekoLxrutQaPHa16Rjsa0gTrzyjqTnmcIcrxg6X6dkKiucudc0DD5W4pJPf0vuDW8r5/uw24YfMuxFRpD2ovT2mFX79xH6Jf+MVdv2TYqR6/955QgVPe3JCD/WjAYcLA9tpXgFiEjge2J5ljeI/iUzg91KQuHkII4mmHZxC3XQORLAC6G7uFn5LOmlnXkjFdoO976moNTxElS8HdxWoPAkjjocDR136m2l+f5t6xaaNgdodOvTu0rievnhNAB79WNrVs6EsPgkgfahF9gSFzzAd+rJSraw5Mllit7vUP5YxA843lUpu6/5jAR0RvH4rRXkSg3nE+O5GFyfe+L0s5r3k05FyghSFnKo4TTgs07qj4nTLqOYj6qaW9knJTDkF5OFMYbmCP+8H16Ty482OjvERV6OFyw043L9w3hoJi408sR+SGo1WviXUu8d7qS+ehKjpKwxeCthsm2LBFSFeetx0x4AaKPxtp3CxdWqCsLrB1s/j5TAhc1jNZsXWl6tjo/WDoewxzg8T8NnhZ1niUwL/nhfygLanCnRwaFGDyLw+sfZhyZ1UtYTp8TYB6dE7R3VsKKH95CUxJ8u8N+9u2/9HUNKHW3x3w5GQrfOPafk2w5qZq8MaHT0ebeY3wIsp3rN9lrpIsW9c1ws3VNV+JwNz0Lo9+V7zZr6GD56We6gWVIvtmam5GPPkVAbr74r6SwhuL+TRXtW/0pgyX16VNl4/EAD50TnUPuwrW6OcUO2VlWXS0inq872kk7GUlW6o/ozFKq+Sip6LcTtSDfDrPTcCHhx75H8BeRon+KG2wRwzfDgWhALmiWOMO6h3pm1UCZEPEjScyk7tdLx6WrdA2N1QTPENvNnhCQjW6kl057/qv7IwRryHrZBCwVSbLLnFRiHdTwk8mlYixFt1slEcPD7FVht13HyqVeyD55HOXrh2ElAxJyinGeoFzwKA91zfrdLvDxJSjzmImfvTisreI25EDcVfGsmxLVbfU8PGe/7NmWWKjXcdTJ11jAlVIY/Bv/mcxg/Q10vCHwKG1GW/XbJq5nxDhyLqiorn7Wd7VEVL8UgVzpHMjQ+Z8DUgSukiVwWAKkeTlVVeZ7t1DGnCgJVIdBPZAEK5f8CDyDNo7tK4/5DBjdD5MPV86TaEhGsLVFPQSI68KlBYy84FievdU9gWh6XZrugvtCZmi9vfd6db6V7FmoEcRHnG36VZH8N4aZaldq9zZawt1uBFgxYYx+Gs/qW1jwANeFy+LCoymyM6zgG7j8bGzUyLhvrbJkTYAEdICEb4kMKusKT9V3eIwMLsjdUdgijMc+7iKrr+TxrVWG0U+W95SGrxnxGrE4eaJFfgvAjUM4SAy8UaRwE9j6ZQH5qYAWGtXByvDiLSDfOD0yFA3UCMKSyQ30fyy1mIRg4ZcgZHLNHWl+c9SeijOvbOJxoQy7lTN2r3Y8p6ovxvUY74aOYbuVezryqXA6U+fcp6wSV9X5/OZKP18tB56Ua0gMyxJI7XyNT7IrqN8GsB9rL/kP5KMrjXxgqKLDa+V5OCH6a5hmOWemMUsea9vQl9t5Oce76PrTyTv50ExOqngE3PHPfSL//AItPdB7kGnyTRhVUUFNdJJ2z7RtktZwgmQzhBG/G7QsjZmJfCE7k75EmdIKH7xlnmDrNM/XbTT6FzldcH/rcRGxlPrv4qDScqE7JSmQABJWqRT/TUcJSwoQM+1jvDigvrjjH8oeK2in1S+/yO1j8xAws/T5u0VnIvAPqaE1atNuN0cuRliLcH2j0nTL4JpcR7w9Qya0JoaHgsOiALLCCzRkl1UUESz+ze/gIXHGtDwgYrK6pCFKJ1webSDog4zTlPkgXZqxlQDiYMjhDpwTtBW2WxthWbov9dt2X9XFLFmcF+eEc1UaQ74gqZiZsdj63pH1qcv3Vy8JYciogIVKsJ8Yy3J9w/GhjWVSQAmrS0BPOWK+RKV+0lWqXgYMnIFwpcZVD7zPSp547i9HlflB8gVnSTGmmq1ClO081OW/UH11pEQMfkEdDFzjLC1Cdo/BdL3s7cXb8J++Hzz1rhOUVZFIPehRiZ8VYu6+7Er7j5PSZu9g/GBdmNzJmyCD9wiswj9BZw+T3iBrg81re36ihMLjoVLoWc+62a1U/7qVX5CpvTVF7rocSAKwv4cBVqZm7lLDS/qoXs4fMs/VQi6BtVbNA3uSzKpQfjH1o3x4LrvkOn40zhm6hjduDglzJUwA0POabgdXIndp9fzhOo23Pe+Rk9GSLX0d71Poqry8NQDTzNlsa+JTNG9+UrEf+ngxCjGEsDCc0bz+udVRyHQI1jmEO3S+IOQycEq7XwB6z3wfMfa73m8PVRp+iOgtZfeSBl01xn03vMaQJkyj7vnhGCklsCWVRUl4y+5oNUzQ63B2dbjDF3vikd/3RUMifPYnX5Glfuk2FsV/7RqjI9yKTbE8wJY+74p7qXO8+dIYgjtLD/N8TJtRh04N9tXJA4H59IkMmLElgvr0Q5OCeVfdAt+5hkh4pQgfRMHpL74XatLQpPiOyHRs/OdmHtBf8nOZcxVKzdGclIN16lE7kJ+pVMjspOI+5+TqLRO6m0ZpNXJoZRv9MPDRcAfJUtNZHyig/s2wwReakFgPPJwCQmu1I30/tcBbji+Na53i1W1N+BqoY7Zxo+U/M9XyJ4Ok2SSkBtoOrwuhAY3a03Eu6l8wFdIG1cN+e8hopTkiKF093KuH/BcB39rMiGDLn6XVhGKEaaT/vqb/lufuAdpGExevF1+J9itkFhCfymWr9vGb3BTK4j598zRH7+e+MU9maruZqb0pkGxRDRE1CD4Z8LV4vhgPidk5w2Bq816g3nHw1//j3JStz7NR9HIWELO8TMn3QrP/zZp//+Dv9p429/ogv+GATR+n/UdF+ns9xNkXZQJXY4t9jMkJNUFygAtzndXwjss+yWH9HAnLQQfhAskdZS2l01HLWv7L7us5uTH409pqitvfSOQg/c+Zt7k879P3K9+WV68n7+3cZfuRd/dDPP/03rn+d+/nBvWfgDlt8+LzjqJ/vx3CnNOwiXhho778C96iD+1TBvRZYeP+EH81LE0vVwOOrmCLB3iKzI1x+vJEsrPH4uF0UB4TJ4X3uDfOCo3PYpYe0MF4bouh0DQ/l43fxUF7Y+dpWuvTSffB0yO2UQUETI/LwCZE3BvnevJ7c9zUlY3H58xzke6DNFDQG8n0WtDN4LAYN4nogKav1ezOfK/z+t6tsCTp+dhx4ymjWuCJk1dEUifDP+HyS4iP/Vg9B2jTo9L4NbiBuDS4nuuHW6H+JDQn2JtqRKGkEQPEYE7uzazXIkcxIAqUq1esasZBETlEZY7y7Jo+RoV/IsjY9eIMkUvr42Hc0xqtsavZvhz1OLwSxMOTuqzlhb0WbdOwBH9EYiyBjatz40bUxTHbiWxqJ0uma19qhPruvcWJlbiSSH48OLDDpaHPszvyct41ZfTu10+vjox6kOqK6v0K/gEPphEvMl/vwSv+A4Hhm36JSP9IXTyCZDm4kKsqD5ay8b1Sad/vaiyO5N/sDfEV6Z4q95E+yfjxpqBoBETW2C7xl4pIO2bDODDFurUPwE7EWC2Uplq+AHmBHvir2PSgkR12/Ry65O0aZtQPeXi9mTlF/Wj5GQ+vFkYyhXsLTjrBSP9hwk4GPqDP5rBn5/l8b0mLRAvRSzXHc293bs3s8EsdE3m2exxidWVB4joHR+S+dz5/W+v00K3TqN14CDBth8eWcsTbiwXPsygHdGid0PEdy6HHm2v/IUuV5RVapYmzGsX90mpnIdNGcOOq64Dbc5GUbYpD9M7S+6cLY//QmjxFLP5cuTFRm3vA5rkFZroFnO3bjHF35uU3s8mvL7Tp9nyTc4mymTJ5sLIp7umSnGkO23faehtz3mmTS7fbVx5rP7x3HXIjRNeq/A3xCs9JNB08c9S9BF2O3bOur0ItslFxXgRPdaapBIi4dRpKGxVz7ir69t/bc9qTxjvtOyGOfiLGDhR4fYywHv1WdOplxIV87TpLBy3Wc0QP0P9s4G7FBNOdITS/tep3o3h1TEa5XDDii7fWtqRzUEReP2fbxz7bHWWJdbIOxOUJZtItNZpTFRfj6vm9sYjRxQVO+WTdiOhdPeTJ+8YirPvoeL88l5iLYOHd3b/Imkq+1ZN1El3UikhftuteEYxf1Wujof8Pr4ICTu5ezZyZ4tHQMxlzUHLYO2VMOoNMGL/20S5i2o2obfk+8qqdR7xzbRDbgU0lnuIgz4LelQ5XS7xbLuSQtNS95v3ZUOdaUx/Qd8qxCt6xf2E62yb/HukLO6RyorV8KgYl5YNc75y+KvefrxY+lc/64y9kvWP0a0bDz/rojq+RWjO06WeruWqNFU7r3HPIcLWRql8ICZsz2Ls/qOm/CLn6++X+Qf7mGspYCrZod/lpl6Rw4xN/yuq8gqV4B6aHk1hVE1SfILxWu5gvXqbfARYQpspcxKp1F/c8XOPzkZvmoSw+vEqBLdrq1fr3wAPv5NnM9i8F+jdAuxkP5Z71c6uhK3enlnGymr7UsWZKC12qgUiG8XXGQ9mxnqz4GSIlybF9eXmbqj2sHX+a1jf0gRoONHRdRSrIq03Ty89eQ1GbV/Bk+du4+V15zls+vvERvZ4E7ZbnxWTVjDjb4o/k8jlw44pTIrUGxxuJvBeO+heuhOjpFsO6lVJ/aXnJDa/bM0Ql1cLbXE/Pbv3EZ3vj3iVrB5irjupZTzlnv677NrI9UNYNqbPgp/HZXS+lJmk87wec+7YOxTDo2aw2l3NfDr34VNlvqWJBknuK7oSlZ6/T10zuOoPZOeoIk81N+sL843WJ2Q4Z0fZ3scsqC/JV2fuhWi1jGURSKZV637lf53Xnnx16/vKEXY89aVJ0fv91jGdfG+G4+sniwHes4hS+udOr4RfhFhG/F5gUG35QaU+McuLmclb5ZWmR+sG5V6nf+PxYzlrnFGxpZaK8eqqVo0NfmAWoGfXDiT/FnUbWvzGDOTr8aktOZWg4BYvz5YH12ZbfCcGtNk+dDAZNGWvHov+PIOnY9Prjg8h/wLRrT69suaMVZ5bNuK00lSVpnqSX1NON/81FoP92rYndionwgOiA8WMf4vc8l15KqEEG4yAm2+WAN5Brfu1sq9suWYqgoajgOYt/JCk1gC8wPkK+XKCtRX6TAtgvrnuBgNRmn6I8lVDipOVB9kX6Oxkp4ZKyd1M6Gj8/v2U7k+YQBL95Kb9PQENucJb0JlW3b5tObN7m/Z1j1ev388d7o15zgXsI9CikAGAViR6lkJv7nb4Ak40M2G8TJ447kN+pvfHiOFjSUSP6PM+QfbAywKJCBaxSVxpizHseZUyUBhq59vFwrkyGoRiHbo0apweEZeSLuNiQ+HAekOnarFg00dZNXaPeoHPTRR0FmEyqYExOVaaaO8c0uFUh7U4e/UxdBmthlBDgg257Q33j1hA7HTxSeTTSuVnPZbgW1nodwmG16aKBDKxEetv7D9OjO0JhrbJTnoe+kcGoDJazFSO8/fUN9Jy/g4XK5PUkw2dgPDGpJqBfhe7GA+cjzfE/EGsMM+FV9nj9IAhrSfT/J3QE5TEIYyk5UjsI6ZZcCPr6A8FZUF4g9nnpVmjX90MLSQysIPD0nFzqwCcSJmIb5mYv2Cmk+C1MDFkZQyCBq4c/Yai9LJ6xYkGS/x2s5/frIW2vmG2Wrv0APpCdgCA9snFvfpe8uc0OwdRs4G9973PGEBnQB5qKrCQ6m6X/H7NInZ7y/1674/ZXOVp7OeuCRk8JFS516VHrnH1HkIUIlTIljjHaQtEtkJtosYul77cVwjk3gW1Ajaa6zWeyHGLlpk3VHE2VFzT2yI/EvlGUSz2H9zYE1s4nsKMtMqNyKNtL/59CpFJki5Fou6VXGm8vWATEPwrUVOLvoA8jLuwOzVBCgHB2Cr5V6OwEWtJEKokJkfc87h+sNHTvMb0KVTp5284QTPupoWvQVUwUeogZR3kBMESYo0mfukewRVPKh5+rzLQb7HKjFFIgWhj1w3yN/qCNoPI8XFiUgBNT1hCHBsAz8L7Oyt8wQWUFj92ONn/APyJFg8hzueqoJdNj57ROrFbffuS/XxrSXLTRgj5uxZjpgQYceeMc2wJrahReSKpm3QjHfqExTLAB2ipVumE8pqcZv8LYXQiPHHsgb5BMW8zM5pvQit+mQx8XGaVDcfVbLyMTlY8xcfmm/RSAT/H09UQol5gIz7rESDmnrQ4bURIB4iRXMDQwxgex1GgtDxKp2HayIkR+E/aDmCttNm2C6lytWdfOVzD6X2SpDWjQDlMRvAp1symWv4my1bPCD+E1EmGnMGWhNwmycJnDV2WrQNxO45ukEb08AAffizYKVULp15I4vbNK5DzWwCSUADfmKhfGSUqii1L2UsE8rB7mLuHuUJZOx4+WiizHBJ/hwboaBzhpNOVvgFTf5cJsHef7L1HCI9dOUUbb+YxUJWn6dYOLz+THi91kzY5dtO5c+grX7v0jEbsuoOGnoIreDIg/sFMyG+TyCLIcAWd1IZ1UNFxE8Uie13ucm40U2fcxC0u3WLvLOxwu+F7MWUsHsdtFQZ7W+nlfCASiAKyh8rnP3EyDByvtJb6Kax6/HkLzT9SyEyTMVM1zPtM0MJY14DmsWh4MgD15Ea9Hd00AdkTZ0EiG5NAGuIBzQJJ0JR0na+OB7lQA6UKxMfihIQ7GCCnVz694QvykWXTxpS2soDu+smru1UdIxSvAszBFD1c8c6ZOobA8bJiJIvuycgIXBQIXWwhyTgZDQxJTRXgEwRNAawGSXO0a1DKjdihLVNp/taE/xYhsgwe+VpKEEB4LlraQyE84gEihxCnbfoyOuJIEXy2FIYw+JjRusybKlU2g/vhTSGTydvCvXhYBdtAXtS2v7LkHtmXh/8fly1do8FI/D0f8UbzVb5h+KRhMGSAmR2mhi0YG/uj7wgxcfzCrMvdjitUIpXDX8ae2JcF/36qUWIMwN6JsjaRGNj+jEteGDcFyTUb8X/NHSucKMJp7pduxtD6KuxVlyxxwaeiC1FbGBESO84lbyrAugYxdl+2N8/6AgWpo/IeoAOcsG35IA/b3AuSyoa55L7llBLlaWlEWvuCFd8f8NfcTUgzJv6CbB+6ohWwodlk9nGWFpBAOaz5uEW5xBvmjnHFeDsb0mXwayj3mdYq5gxxNf3H3/tnCgHwjSrpSgVxLmiTtuszdRUFIsn6LiMPjL808vL1uQhDbM7aA43mISXReqjSskynIRcHCJ9qeFopJfx9tqyUoGbSwJex/0aDE3plBPGtNBYgWbdLom3+Q/bjdizR2/AS/c/dH/d3G7pyl1qDXgtOFtEqidwLqxPYtrNEveasWq3vPUUtqTeu8gpov4bdOQRI2kneFvRNMrShyVeEupK1PoLDPMSfWMIJcs267mGB8X9CehQCF0gIyhpP10mbyM7lwW1e6TGvHBV1sg/UyTghHPGRqMyaebC6pbB1WKNCQtlai1GGvmq9zUKaUzLaXsXEBYtHxmFbEZ2kJhR164LhWW2Tlp1dhsGE7ZgIWRBOx3Zcu2DxgH+G83WTPceKG0TgQKKiiNNOlWgvqNEbnrk6fVD+AqRam2OguZb0YWSTX88N+i/ELSxbaUUpPx4vJUzYg/WonSeA8xUK6u7DPHgpqWpEe6D4cXg5uK9FIYVba47V/nb+wyOtk+zG8RrS4EA0ouwa04iByRLSvoJA2FzaobbZtXnq8GdbfqEp5I2dpfpj59TCVif6+E75p665faiX8gS213RqBxTZqfHP46nF6NSenOneuT+vgbLUbdTH2/t0REFXZJOEB6DHvx6N6g9956CYrY/AYcm9gELJXYkrSi+0F0geKDZgOCIYkLU/+GOW5aGj8mvLFgtFH5+XC8hvAE3CvHRfl4ofM/Qwk4x2A+R+nyc9gNu/9Tem7XW4XRnyRymf52z09cTOdr+PG6+P/Vb4QiXlwauc5WB1z3o+IJjlbxI8MyWtSzT+k4sKVbhF3xa+vDts3NxXa87iiu+xRH9cAprnOL2h6vV54iQRXuOAj1s8nLFK8gZ70ThIQcWdF19/2xaJmT0efrkNDkWbpAQPdo92Z8+Hn/aLjbOzB9AI/k12fPs9HhUNDJ1u6ax2VxD3R6PywN7BrLJ26z6s3QoMp76qzzwetrDABKSGkfW5PwS1GvYNUbK6uRqxfyVGNyFB0E+OugMM8kKwmJmupuRWO8XkXXXQECyRVw9UyIrtCtcc4oNqXqr7AURBmKn6Khz3eBN96LwIJrAGP9mr/59uTOSx631suyT+QujDd4beUFpZ0kJEEnjlP+X/Kr2kCKhnENTg4BsMTOmMqlj2WMFLRUlVG0fzdCBgUta9odrJfpVdFomTi6ak0tFjXTcdqqvWBAzjY6hVrH9sbt3Z9gn+AVDpTcQImefbB4edirjzrsNievve4ZT4EUZWV3TxEsIW+9MT/RJoKfZZYSRGfC1CwPG/9rdMOM8qR/LUYvw5f/emUSoD7YSFuOoqchdUg2UePd1eCtFSKgxLSZ764oy4lvRCIH6bowPxZWwxNFctksLeil47pfevcBipkkBIc4ngZG+kxGZ71a72KQ7VaZ6MZOZkQJZXM6kb/Ac0/XkJx8dvyfJcWbI3zONEaEPIW8GbkYjsZcwy+eMoKrYjDmvEEixHzkCSCRPRzhOfJZuLdcbx19EL23MA8rnjTZZ787FGMnkqnpuzB5/90w1gtUSRaWcb0eta8198VEeZMUSfIhyuc4/nywFQ9uqn7jdqXh+5wwv+RK9XouNPbYdoEelNGo34KyySwigsrfCe0v/PlWPvQvQg8R0KgHO18mTVThhQrlbEQ0Kp/JxPdjHyR7E1QPw/ut0r+HDDG7BwZFm9IqEUZRpv2WpzlMkOemeLcAt5CsrzskLGaVOAxyySzZV/D2EY7ydNZMf8e8VhHcKGHAWNszf1EOq8fNstijMY4JXyATwTdncFFqcNDfDo+mWFvxJJpc4sEZtjXyBdoFcxbUmniCoKq5jydUHNjYJxMqN1KzYV62MugcELVhS3Bnd+TLLOh7dws/zSXWzxEb4Nj4aFun5x4kDWLK5TUF/yCXB/cZYvI9kPgVsG2jShtXkxfgT+xzjJofXqPEnIXIQ1lnIdmVzBOM90EXvJUW6a0nZ/7XjJGl8ToO3H/fdxnxmTNKBZxnkpXLVgLXCZywGT3YyS75w/PAH5I/jMuRspej8xZObU9kREbRA+kqjmKRFaKGWAmFQspC+QLbKPf0RaK3OXvBSWqo46p70ws/eZpu6jCtZUgQy6r4tHMPUdAgWGGUYNbuv/1a6K+MVFsd3T183+T8capSo6m0+Sh57fEeG/95dykGJBQMj09DSW2bY0mUonDy9a8trLnnL5B5LW3Nl8rJZNysO8Zb+80zXxqUGFpud3Qzwb7bf+8mq6x0TAnJU9pDQR9YQmZhlna2xuxJt0aCO/f1SU8gblOrbIyMsxTlVUW69VJPzYU2HlRXcqE2lLLxnObZuz2tT9CivfTAUYfmzJlt/lOPgsR6VN64/xQd4Jlk/RV7UKVv2Gx/AWsmTAuCWKhdwC+4HmKEKYZh2Xis4KsUR1BeObs1c13wqFRnocdmuheaTV30gvVXZcouzHKK5zwrN52jXJEuX6dGx3BCpV/++4f3hyaW/cQJLFKqasjsMuO3B3WlMq2gyYfdK1e7L2pO/tRye2mwzwZPfdUMrl5wdLqdd2Kv/wVtnpyWYhd49L6rsOV+8HXPrWH2Kup89l2tz6bf80iYSd+V4LROSOHeamvexR524q4r43rTmtFzQvArpvWfLYFZrbFspBsXNUqqenjxNNsFXatZvlIhk7teUPfK+YL32F8McTnjv0BZNppb+vshoCrtLXjIWq3EJXpVXIlG6ZNL0dh6qEm2WMwDjD3LfOfkGh1/czYc/0qhiD2ozNnH4882MVVt3JbVFkbwowNCO3KL5IoYW5wlVeGCViOuv1svZx7FbzxKzA4zGqBlRRaRWCobXaVq4yYCWbZf8eiJwt3OY+MFiSJengcFP2t0JMfzOiJ7cECvpx7neg1Rc5x+7myPJOXt2FohVRyXtD+/rDoTOyGYInJelZMjolecVHUhUNqvdZWg2J2t0jPmiLFeRD/8fOT4o+NGILb+TufCo9ceBBm3JLVn+MO2675n7qiEX/6W+188cYg3Zn5NSTjgOKfWFSAANa6raCxSoVU851oJLY11WIoYK0du0ec5E4tCnAPoKh71riTsjVIp3gKvBbEYQiNYrmH22oLQWA2AdwMnID6PX9b58dR2QKo4qag1D1Z+L/FwEKTR7osOZPWECPJIHQqPUsM5i/CH5YupVPfFA5pHUBcsesh8eO5YhyWnaVRPZn/BmdXVumZWPxMP5e28zm2uqHgFoT9CymHYNNrzrrjlXZM06HnzDxYNlI5b/QosxLmmrqDFqmogQdqk0WLkUceoAvQxHgkIyvWU69BPFr24VB6+lx75Rna6dGtrmOxDnvBojvi1/4dHjVeg8owofPe1cOnxU1ioh016s/Vudv9mhV9f35At+Sh28h1bpp8xhr09+vf47Elx3Ms6hyp6QvB3t0vnLbOhwo660cp7K0vvepabK7YJfxEWWfrC2YzJfYOjygPwfwd/1amTqa0hZ5ueebhWYVMubRTwIjj+0Oq0ohU3zfRfuL8gt59XsHdwKtxTQQ4Y2qz6gisxnm2UdlmpEkgOsZz7iEk6QOt8BuPwr+NR01LTqXmJo1C76o1N274twJvl+I069TiLpenK/miRxhyY8jvYV6W1WuSwhH9q7kuwnJMtm7IWcqs7HsnyHSqWXLSpYtZGaR1V3t0gauninFPZGtWskF65rtti48UV9uV9KM8kfDYs0pgB00S+TlzTXV6P8mxq15b9En8sz3jWSszcifZa/NuufPNnNTb031pptt0+sRSH/7UG8pzbsgtt3OG3ut7B9JzDMt2mTZuyRNIV8D54TuTrpNcHtgmMlYJeiY9XS83NYJicjRjtJSf9BZLsQv629QdDsKQhTK5CnXhpk7vMNkHzPhm0ExW/VCGApHfPyBagtZQTQmPHx7g5IXXsrQDPzIVhv2LB6Ih138iSDww1JNHrDvzUxvp73MsQBVhW8EbrReaVUcLB1R3PUXyaYG4HpJUcLVxMgDxcPkVRQpL7VTAGabDzbKcvg12t5P8TSGQkrj/gOrpnbiDHwluA73xbXts/L7u468cRWSWRtgTwlQnA47EKg0OiZDgFxAKQQUcsbGomITgeXUAAyKe03eA7Mp4gnyKQmm0LXJtEk6ddksMJCuxDmmHzmVhO+XaN2A54MIh3niw5CF7PwiXFZrnA8wOdeHLvvhdoqIDG9PDI7UnWWHq526T8y6ixJPhkuVKZnoUruOpUgOOp3iIKBjk+yi1vHo5cItHXb1PIKzGaZlRS0g5d3MV2pD8FQdGYLZ73aae/eEIUePMc4NFz8pIUfLCrrF4jVWH5gQneN3S8vANBmUXrEcKGn6hIUN95y1vpsvLwbGpzV9L0ZKTan6TDXM05236uLJcIEMKVAxKNT0K8WljuwNny3BNQRfzovA85beI9zr1AGNYnYCVkR1aGngWURUrgqR+gRrQhxW81l3CHevjvGEPzPMTxdsIfB9dfGRbZU0cg/1mcubtECX4tvaedmNAvTxCJtc2QaoUalGfENCGK7IS/O8CRpdOVca8EWCRwv2sSWE8CJPW5PCugjCXPd3h6U60cPD+bdhtXZuYB6stcoveE7Sm5MM2yvfUHXFSW7KzLmi7/EeEWL0wqcOH9MOSKjhCHHmw+JGLcYE/7SBZQCRggox0ZZTAxrlzNNXYXL5fNIjkdT4YMqVUz6p8YDt049v4OXGdg3qTrtLBUXOZf7ahPlZAY/O+7Sp0bvGSHdyQ8B1LOsplqMb9Se8VAE7gIdSZvxbRSrfl+Lk5Qaqi5QJceqjitdErcHXg/3MryljPSIAMaaloFm1cVwBJ8DNmkDqoGROSHFetrgjQ5CahuKkdH5pRPigMrgTtlFI8ufJPJSUlGgTjbBSvpRc0zypiUn6U5KZqcRoyrtzhmJ7/caeZkmVRwJQeLOG8LY6vP5ChpKhc8Js0El+n6FXqbx9ItdtLtYP92kKfaTLtCi8StLZdENJa9Ex1nOoz1kQ7qxoiZFKRyLf4O4CHRT0T/0W9F8epNKVoeyxUXhy3sQMMsJjQJEyMOjmOhMFgOmmlscV4eFi1CldU92yjwleirEKPW3bPAuEhRZV7JsKV3Lr5cETAiFuX5Nw5UlF7d2HZ96Bh0sgFIL5KGaKSoVYVlvdKpZJVP5+NZ7xDEkQhmDgsDKciazJCXJ6ZN2B3FY2f6VZyGl/t4aunGIAk/BHaS+i+SpdRfnB/OktOvyjinWNfM9Ksr6WwtCa1hCmeRI6icpFM4o8quCLsikU0tMoZI/9EqXRMpKGaWzofl4nQuVQm17d5fU5qXCQeCDqVaL9XJ9qJ08n3G3EFZS28SHEb3cdRBdtO0YcTzil3QknNKEe/smQ1fTb0XbpyNB5xAeuIlf+5KWlEY0DqJbsnzJlQxJPOVyHiKMx5Xu9FcEv1Fbg6Fhm4t+Jyy5JC1W3YO8dYLsO0PXPbxodBgttTbH3rt9Cp1lJIk2r3O1Zqu94eRbnIz2f50lWolYzuKsj4PMok4abHLO8NAC884hiXx5Fy5pWKO0bWL7uEGXaJCtznhP67SlQ4xjWIfgq6EpZ28QMtuZK7JC0RGbl9nA4XtFLug/NLMoH1pGt9IonAJqcEDLyH6TDROcbsmGPaGIxMo41IUAnQVPMPGByp4mOmh9ZQMkBAcksUK55LsZj7E5z5XuZoyWCKu6nHmDq22xI/9Z8YdxJy4kWpD16jLVrpwGLWfyOD0Wd+cBzFBxVaGv7S5k9qwh/5t/LQEXsRqI3Q9Rm3QIoaZW9GlsDaKOUyykyWuhNOprSEi0s1G4rgoiX1V743EELti+pJu5og6X0g6oTynUqlhH9k6ezyRi05NGZHz0nvp3HOJr7ebrAUFrDjbkFBObEvdQWkkUbL0pEvMU46X58vF9j9F3j6kpyetNUBItrEubW9ZvMPM4qNqLlsSBJqOH3XbNwv/cXDXNxN8iFLzUhteisYY+RlHYOuP29/Cb+L+xv+35Rv7xudnZ6ohK4cMPfCG8KI7dNmjNk/H4e84pOxn/sZHK9psfvj8ncA8qJz7O8xqbxESDivGJOZzF7o5PJLQ7g34qAWoyuA+x3btU98LT6ZyGyceIXjrqob2CAVql4VOTQPUQYvHV/g4zAuCZGvYQBtf0wmd5lilrvuEn1BXLny01B4h4SMDlYsnNpm9d7m9h578ufpef9Z4WplqWQvqo52fyUA7J24eZD5av6SyGIV9kpmHNqyvdfzcpEMw97BvknV2fq+MFHun9BT3Lsf8pbzvisWiIQvYkng+8Vxk1V+dli1u56kY50LRjaPdotvT5BwqtwyF+emo/z9J3yVUVGfKrxQtJMOAQWoQii/4dp9wgybSa5mkucmRLtEQZ/pz0tL/NVcgWAd95nEQ3Tg6tNbuyn3Iepz65L3huMUUBntllWuu4DbtOFSMSbpILV4fy6wlM0SOvi6CpLh81c1LreIvKd61uEWBcDw1lUBUW1I0Z+m/PaRlX+PQ/oxg0Ye6KUiIiTF4ADNk59Ydpt5/rkxmq9tV5Kcp/eQLUVVmBzQNVuytQCP6Ezd0G8eLxWyHpmZWJ3bAzkWTtg4lZlw42SQezEmiUPaJUuR/qklVA/87S4ArFCpALdY3QRdUw3G3XbWUp6aq9z0zUizcPa7351p9JXOZyfdZBFnqt90VzQndXB/mwf8LC9STj5kenVpNuqOQQP3mIRJj7eV21FxG8VAxKrEn3c+XfmZ800EPb9/5lIlijscUbB6da0RQaMook0zug1G0tKi/JBC4rw7/D3m4ARzAkzMcVrDcT2SyFtUdWAsFlsPDFqV3N+EjyXaoEePwroaZCiLqEzb8MW+PNE9TmTC01EzWli51PzZvUqkmyuROU+V6ik+Le/9qT6nwzUzf9tP68tYei0YaDGx6kAd7jn1cKqOCuYbiELH9zYqcc4MnRJjkeGiqaGwLImhyeKs+xKJMBlOJ05ow9gGCKZ1VpnMKoSCTbMS+X+23y042zOb5MtcY/6oBeAo1Vy89OTyhpavFP78jXCcFH0t7Gx24hMEOm2gsEfGabVpQgvFqbQKMsknFRRmuPHcZu0Su/WMFphZvB2r/EGbG72rpGGho3h+Msz0uGzJ7hNK2uqQiE1qmn0zgacKYYZBCqsxV+sjbpoVdSilW/b94n2xNb648VmNIoizqEWhBnsen+d0kbCPmRItfWqSBeOd9Wne3c6bcd6uvXOJ6WdiSsuXq0ndhqrQ4QoWUjCjYtZ0EAhnSOP1m44xkf0O7jXghrzSJWxP4a/t72jU29Vu2rvu4n7HfHkkmQOMGSS+NPeLGO5I73mC2B7+lMiBQQZRM9/9liLIfowupUFAbPBbR+lxDM6M8Ptgh1paJq5Rvs7yEuLQv/7d1oU2woFSb3FMPWQOKMuCuJ7pDDjpIclus5TeEoMBy2YdVB4fxmesaCeMNsEgTHKS5WDSGyNUOoEpcC2OFWtIRf0w27ck34/DjxRTVIcc9+kqZE6iMSiVDsiKdP/Xz5XfEhm/sBhO50p1rvJDlkyyxuJ9SPgs7YeUJBjXdeAkE+P9OQJm6SZnn1svcduI78dYmbkE2mtziPrcjVisXG78spLvbZaSFx/Rks9zP4LKn0Cdz/3JsetkT06A8f/yCgMO6Mb1Hme0JJ7b2wZz1qleqTuKBGokhPVUZ0dVu+tnQYNEY1fmkZSz6+EGZ5EzL7657mreZGR3jUfaEk458PDniBzsSmBKhDRzfXameryJv9/D5m6HIqZ0R+ouCE54Dzp4IJuuD1e4Dc5i+PpSORJfG23uVgqixAMDvchMR0nZdH5brclYwRoJRWv/rlxGRI5ffD5NPGmIDt7vDE1434pYdVZIFh89Bs94HGGJbTwrN8T6lh1HZFTOB4lWzWj6EVqxSMvC0/ljWBQ3F2kc/mO2b6tWonT2JEqEwFts8rz2h+oWNds9ceR2cb7zZvJTDppHaEhK5avWqsseWa2Dt5BBhabdWSktS80oMQrL4TvAM9b5HMmyDnO+OkkbMXfUJG7eXqTIG6lqSOEbqVR+qYdP7uWb57WEJqzyh411GAVsDinPs7KvUeXItlcMdOUWzXBH6zscymV1LLVCtc8IePojzXHF9m5b5zGwBRdzcyUJkiu938ApmAayRdJrX1PmVguWUvt2ThQ62czItTyWJMW2An/hdDfMK7SiFQlGIdAbltHz3ycoh7j9V7GxNWBpbtcSdqm4XxRwTawc3cbZ+xfSv9qQfEkDKfZTwCkqWGI/ur250ItXlMlh6vUNWEYIg9A3GzbgmbqvTN8js2YMo87CU5y6nZ4dbJLDQJj9fc7yM7tZzJDZFtqOcU8+mZjYlq4VmifI23iHb1ZoT9E+kT2dolnP1AfiOkt7PQCSykBiXy5mv637IegWSKj9IKrYZf4Lu9+I7ub+mkRdlvYzehh/jaJ9n7HUH5b2IbgeNdkY7wx1yVzxS7pbvky6+nmVUtRllEFfweUQ0/nG017WoUYSxs+j2B4FV/F62EtHlMWZXYrjGHpthnNb1x66LKZ0Qe92INWHdfR/vqp02wMS8r1G4dJqHok8KmQ7947G13a4YXbsGgHcBvRuVu1eAi4/A5+ZixmdSXM73LupB/LH7O9yxLTVXJTyBbI1S49TIROrfVCOb/czZ9pM4JsZx8kUz8dQGv7gUWKxXvTH7QM/3J2OuXXgciUhqY+cgtaOliQQVOYthBLV3xpESZT3rmfEYNZxmpBbb24CRao86prn+i9TNOh8VxRJGXJfXHATJHs1T5txgc/opYrY8XjlGQQbRcoxIBcnVsMjmU1ymmIUL4dviJXndMAJ0Yet+c7O52/p98ytlmAsGBaTAmMhimAnvp1TWNGM9BpuitGj+t810CU2UhorrjPKGtThVC8WaXw04WFnT5fTjqmPyrQ0tN3CkLsctVy2xr0ZWgiWVZ1OrlFjjxJYsOiZv2cAoOvE+7sY0I/TwWcZqMoyIKNOftwP7w++Rfg67ljfovKYa50if3fzE/8aPYVey/Nq35+nH2sLPh/fP5TsylSKGOZ4k69d2PnH43+kq++sRXHQqGArWdwhx+hpwQC6JgT2uxehYU4Zbw7oNb6/HLikPyJROGK2ouyr+vzseESp9G50T4AyFrSqOQ0rroCYP4sMDFBrHn342EyZTMlSyk47rHSq89Y9/nI3zG5lX16Z5lxphguLOcZUndL8wNcrkyjH82jqg8Bo8OYkynrxZvbFno5lUS3OPr8Ko3mX9NoRPdYOKKjD07bvgFgpZ/RF+YzkWvJ/Hs/tUbfeGzGWLxNAjfDzHHMVSDwB5SabQLsIZHiBp43FjGkaienYoDd18hu2BGwOK7U3o70K/WY/kuuKdmdrykIBUdG2mvE91L1JtTbh20mOLbk1vCAamu7utlXeGU2ooVikbU/actcgmsC1FKk2qmj3GWeIWbj4tGIxE7BLcBWUvvcnd/lYxsMV4F917fWeFB/XbINN3qGvIyTpCalz1lVewdIGqeAS/gB8Mi+sA+BqDiX3VGD2eUunTRbSY+AuDy4E3Qx3hAhwnSXX+B0zuj3eQ1miS8Vux2z/l6/BkWtjKGU72aJkOCWhGcSf3+kFkkB15vGOsQrSdFr6qTj0gBYiOlnBO41170gOWHSUoBVRU2JjwppYdhIFDfu7tIRHccSNM5KZOFDPz0TGMAjzzEpeLwTWp+kn201kU6NjbiMQJx83+LX1e1tZ10kuChJZ/XBUQ1dwaBHjTDJDqOympEk8X2M3VtVw21JksChA8w1tTefO3RJ1FMbqZ01bHHkudDB/OhLfe7P5GOHaI28ZXKTMuqo0hLWQ4HabBsGG7NbP1RiXtETz074er6w/OerJWEqjmkq2y51q1BVI+JUudnVa3ogBpzdhFE7fC7kybrAt2Z6RqDjATAUEYeYK45WMupBKQRtQlU+uNsjnzj6ZmGrezA+ASrWxQ6LMkHRXqXwNq7ftv28dUx/ZSJciDXP2SWJsWaN0FjPX9Yko6LobZ7aYW/IdUktI9apTLyHS8DyWPyuoZyxN1TK/vtfxk3HwWh6JczZC8Ftn0bIJay2g+n5wd7lm9rEsKO+svqVmi+c1j88hSCxbzrg4+HEP0Nt1/B6YW1XVm09T1CpAKjc9n18hjqsaFGdfyva1ZG0Xu3ip6N6JGpyTSqY5h4BOlpLPaOnyw45PdXTN+DtAKg7DLrLFTnWusoSBHk3s0d7YouJHq85/R09Tfc37ENXZF48eAYLnq9GLioNcwDZrC6FW6godB8JnqYUPvn0pWLfQz0lM0Yy8Mybgn84Ds3Q9bDP10bLyOV+qzxa4Rd9Dhu7cju8mMaONXK3UqmBQ9qIg7etIwEqM/kECk/Dzja4Bs1xR+Q/tCbc8IKrSGsTdJJ0vge7IG20W687uVmK6icWQ6cD3lwFzgNMGtFvO5qyJeKflGLAAcQZOrkxVwy3cWvqlGpvjmf9Qe6Ap20MPbV92DPV0OhFM4kz8Yr0ffC2zLWSQ1kqY6QdQrttR3kh1YLtQd1kCEv5hVoPIRWl5ERcUTttBIrWp6Xs5Ehh5OUUwI5aEBvuiDmUoENmnVw1FohCrbRp1A1E+XSlWVOTi7ADW+5Ohb9z1vK4qx5R5lPdGCPBJZ00mC+Ssp8VUbgpGAvXWMuWQQRbCqI6Rr2jtxZxtfP7W/8onz+yz0Gs76LaT5HX9ecyiZCB/ZR/gFtMxPsDwohoeCRtiuLxE1GM1vUEUgBv86+eehL58/P56QFGQ/MqOe/vC76L63jzmeax4exd/OKTUvkXg+fOJUHych9xt/9goJMrapSgvXrj8+8vk/N80f22Sewj6cyGqt1B6mztoeklVHHraouhvHJaG/OuBz6DHKMpFmQULU1bRWlyYE0RPXYYkUycIemN7TLtgNCJX6BqdyxDKkegO7nJK5xQ7OVYDZTMf9bVHidtk6DQX9Et+V9M7esgbsYBdEeUpsB0Xvw2kd9+rI7V+m47u+O/tq7mw7262HU1WlS9uFzsV6JxIHNmUCy0QS9e077JGRFbG65z3/dOKB/Zk+yDdKpUmdXjn/aS3N5nv4fK7bMHHmPlHd4E2+iTbV5rpzScRnxk6KARuDTJ8Q1LpK2mP8gj1EbuJ9RIyY+EWK4hCiIDBAS1Tm2IEXAFfgKPgdL9O6mAa06wjCcUAL6EsxPQWO9VNegBPm/0GgkZbDxCynxujX/92vmGcjZRMAY45puak2sFLCLSwXpEsyy5fnF0jGJBhm+fNSHKKUUfy+276A7/feLOFxxUuHRNJI2Osenxyvf8DAGObT60pfTTlhEg9u/KKkhJqm5U1/+BEcSkpFDA5XeCqxwXmPac1jcuZ3JWQ+p0NdWzb/5v1ZvF8GtMTFFEdQjpLO0bwPb0BHNWnip3liDXI2fXf05jjvfJ0NpjLCUgfTh9CMFYVFKEd4Z/OG/2C+N435mnK+9t1gvCiVcaaH7rK4+PjCvpVNiz+t2QyqH1O8x3JKZVl6Q+Lp/XK8wMjVMslOq9FdSw5FtUs/CptXH9PW+wbWHgrV17R5jTVOtGtKFu3nb80T+E0tv9QkzW3J2dbaw/8ddAKZ0pxIaEqLjlPrji3VgJ3GvdFvlqD8075woxh4fVt0JZE0KVFsAvqhe0dqN9b35jtSpnYMXkU+vZq+IAHad3IHc2s/LYrnD1anfG46IFiMIr9oNbZDWvwthqYNqOigaKd/XlLU4XHfk/PXIjPsLy/9/kAtQ+/wKH+hI/IROWj5FPvTZAT9f7j4ZXQyG4M0TujMAFXYkKvEHv1xhySekgXGGqNxWeWKlf8dDAlLuB1cb/qOD+rk7cmwt+1yKpk9cudqBanTi6zTbXRtV8qylNtjyOVKy1HTz0GW9rjt6sSjAZcT5R+KdtyYb0zyqG9pSLuCw5WBwAn7fjBjKLLoxLXMI+52L9cLwIR2B6OllJZLHJ8vDxmWdtF+QJnmt1rsHPIWY20lftk8fYePkAIg6Hgn532QoIpegMxiWgAOfe5/U44APR8Ac0NeZrVh3gEhs12W+tVSiWiUQekf/YBECUy5fdYbA08dd7VzPAP9aiVcIB9k6tY7WdJ1wNV+bHeydNtmC6G5ICtFC1ZwmJU/j8hf0I8TRVKSiz5oYIa93EpUI78X8GYIAZabx47/n8LDAAJ0nNtP1rpROprqKMBRecShca6qXuTSI3jZBLOB3Vp381B5rCGhjSvh/NSVkYp2qIdP/Bg="},13549:function(T,e,l){"use strict";l(41584);var v=l(18128);T.exports=function(){function f(b,y){void 0===y&&(y=1),this.type=b,this.count=y}var _=f.prototype;return _.decode=function(y,M){y.pos+=this.size(null,M)},_.size=function(y,M){var D=v.resolveLength(this.count,null,M);return this.type.size()*D},_.encode=function(y,M,D){return y.fill(0,this.size(M,D))},f}()},13624:function(T,e,l){"use strict";var v=l(59754),h=l(12636).indexOf,f=v.aTypedArray;(0,v.exportTypedArrayMethod)("indexOf",function(y){return h(f(this),y,arguments.length>1?arguments[1]:void 0)})},13711:function(T,e,l){var v=l(32010),h=l(94578),f=l(20340),_=l(48914),b=l(7421),y=l(10447),M=l(70172),D=l(7081).CONFIGURABLE,x=M.get,k=M.enforce,Q=String(String).split("String");(T.exports=function(I,d,S,R){var G,z=!!R&&!!R.unsafe,q=!!R&&!!R.enumerable,Z=!!R&&!!R.noTargetGet,H=R&&void 0!==R.name?R.name:d;h(S)&&("Symbol("===String(H).slice(0,7)&&(H="["+String(H).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!f(S,"name")||D&&S.name!==H)&&_(S,"name",H),(G=k(S)).source||(G.source=Q.join("string"==typeof H?H:""))),I!==v?(z?!Z&&I[d]&&(q=!0):delete I[d],q?I[d]=S:_(I,d,S)):q?I[d]=S:b(d,S)})(Function.prototype,"toString",function(){return h(this)&&x(this).source||y(this)})},13872:function(T,e,l){var v=l(52564),h=l(51839),f=l(15366),b=l(38688)("iterator");T.exports=function(y){if(null!=y)return h(y,b)||h(y,"@@iterator")||f[v(y)]}},13945:function(T,e,l){"use strict";var v=l(5844).IteratorPrototype,h=l(10819),f=l(97841),_=l(15216),b=l(15366),y=function(){return this};T.exports=function(M,D,x){var k=D+" Iterator";return M.prototype=h(v,{next:f(1,x)}),_(M,k,!1,!0),b[k]=y,M}},14032:function(T,e,l){var v=l(24663),h=l(13711),f=l(52598);v||h(Object.prototype,"toString",f,{unsafe:!0})},14287:function(T,e,l){"use strict";var h;l(81755),l(8953),l(14032),l(3131),l(90868),l(65553),l(75626),l(95756),l(56912),l(58099),l(47969),l(59735),l(73663),l(29883),l(35471),l(21012),l(88997),l(97464),l(2857),l(94715),l(13624),l(91132),l(62514),l(24597),l(88042),l(4660),l(92451),l(44206),l(66288),l(13250),l(3858),l(84538),l(64793),l(74202),l(52529),h=function(v){return function(){if("function"==typeof ArrayBuffer){var _=v.lib.WordArray,b=_.init,y=_.init=function(M){if(M instanceof ArrayBuffer&&(M=new Uint8Array(M)),(M instanceof Int8Array||typeof Uint8ClampedArray<"u"&&M instanceof Uint8ClampedArray||M instanceof Int16Array||M instanceof Uint16Array||M instanceof Int32Array||M instanceof Uint32Array||M instanceof Float32Array||M instanceof Float64Array)&&(M=new Uint8Array(M.buffer,M.byteOffset,M.byteLength)),M instanceof Uint8Array){for(var D=M.byteLength,x=[],k=0;k>>2]|=M[k]<<24-k%4*8;b.call(this,x,D)}else b.apply(this,arguments)};y.prototype=_}}(),v.lib.WordArray},T.exports=h(l(48352))},14598:function(T,e,l){"use strict";function v(dt,ge){for(var Se=0;Sek)throw new RangeError('The value "'+dt+'" is invalid for option "size"');var ge=new Uint8Array(dt);return Object.setPrototypeOf(ge,d.prototype),ge}function d(dt,ge,Se){if("number"==typeof dt){if("string"==typeof ge)throw new TypeError('The "string" argument must be of type string. Received type number');return q(dt)}return S(dt,ge,Se)}function S(dt,ge,Se){if("string"==typeof dt)return function Z(dt,ge){if(("string"!=typeof ge||""===ge)&&(ge="utf8"),!d.isEncoding(ge))throw new TypeError("Unknown encoding: "+ge);var Se=0|j(dt,ge),ct=I(Se),Zt=ct.write(dt,ge);return Zt!==Se&&(ct=ct.slice(0,Zt)),ct}(dt,ge);if(ArrayBuffer.isView(dt))return function G(dt){if(zt(dt,Uint8Array)){var ge=new Uint8Array(dt);return W(ge.buffer,ge.byteOffset,ge.byteLength)}return H(dt)}(dt);if(null==dt)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof dt);if(zt(dt,ArrayBuffer)||dt&&zt(dt.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(zt(dt,SharedArrayBuffer)||dt&&zt(dt.buffer,SharedArrayBuffer)))return W(dt,ge,Se);if("number"==typeof dt)throw new TypeError('The "value" argument must not be of type number. Received type number');var ct=dt.valueOf&&dt.valueOf();if(null!=ct&&ct!==dt)return d.from(ct,ge,Se);var Zt=function te(dt){if(d.isBuffer(dt)){var ge=0|P(dt.length),Se=I(ge);return 0===Se.length||dt.copy(Se,0,0,ge),Se}return void 0!==dt.length?"number"!=typeof dt.length||mi(dt.length)?I(0):H(dt):"Buffer"===dt.type&&Array.isArray(dt.data)?H(dt.data):void 0}(dt);if(Zt)return Zt;if(typeof Symbol<"u"&&null!=Symbol.toPrimitive&&"function"==typeof dt[Symbol.toPrimitive])return d.from(dt[Symbol.toPrimitive]("string"),ge,Se);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof dt)}function R(dt){if("number"!=typeof dt)throw new TypeError('"size" argument must be of type number');if(dt<0)throw new RangeError('The value "'+dt+'" is invalid for option "size"')}function q(dt){return R(dt),I(dt<0?0:0|P(dt))}function H(dt){for(var ge=dt.length<0?0:0|P(dt.length),Se=I(ge),ct=0;ct=k)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+k.toString(16)+" bytes");return 0|dt}function j(dt,ge){if(d.isBuffer(dt))return dt.length;if(ArrayBuffer.isView(dt)||zt(dt,ArrayBuffer))return dt.byteLength;if("string"!=typeof dt)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof dt);var Se=dt.length,ct=arguments.length>2&&!0===arguments[2];if(!ct&&0===Se)return 0;for(var Zt=!1;;)switch(ge){case"ascii":case"latin1":case"binary":return Se;case"utf8":case"utf-8":return it(dt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*Se;case"hex":return Se>>>1;case"base64":return Rt(dt).length;default:if(Zt)return ct?-1:it(dt).length;ge=(""+ge).toLowerCase(),Zt=!0}}function re(dt,ge,Se){var ct=!1;if((void 0===ge||ge<0)&&(ge=0),ge>this.length||((void 0===Se||Se>this.length)&&(Se=this.length),Se<=0)||(Se>>>=0)<=(ge>>>=0))return"";for(dt||(dt="utf8");;)switch(dt){case"hex":return mt(this,ge,Se);case"utf8":case"utf-8":return Oe(this,ge,Se);case"ascii":return Fe(this,ge,Se);case"latin1":case"binary":return Ve(this,ge,Se);case"base64":return ye(this,ge,Se);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return St(this,ge,Se);default:if(ct)throw new TypeError("Unknown encoding: "+dt);dt=(dt+"").toLowerCase(),ct=!0}}function he(dt,ge,Se){var ct=dt[ge];dt[ge]=dt[Se],dt[Se]=ct}function oe(dt,ge,Se,ct,Zt){if(0===dt.length)return-1;if("string"==typeof Se?(ct=Se,Se=0):Se>2147483647?Se=2147483647:Se<-2147483648&&(Se=-2147483648),mi(Se=+Se)&&(Se=Zt?0:dt.length-1),Se<0&&(Se=dt.length+Se),Se>=dt.length){if(Zt)return-1;Se=dt.length-1}else if(Se<0){if(!Zt)return-1;Se=0}if("string"==typeof ge&&(ge=d.from(ge,ct)),d.isBuffer(ge))return 0===ge.length?-1:Ce(dt,ge,Se,ct,Zt);if("number"==typeof ge)return ge&=255,"function"==typeof Uint8Array.prototype.indexOf?Zt?Uint8Array.prototype.indexOf.call(dt,ge,Se):Uint8Array.prototype.lastIndexOf.call(dt,ge,Se):Ce(dt,[ge],Se,ct,Zt);throw new TypeError("val must be string, number or Buffer")}function Ce(dt,ge,Se,ct,Zt){var _i,rt=1,Kt=dt.length,on=ge.length;if(void 0!==ct&&("ucs2"===(ct=String(ct).toLowerCase())||"ucs-2"===ct||"utf16le"===ct||"utf-16le"===ct)){if(dt.length<2||ge.length<2)return-1;rt=2,Kt/=2,on/=2,Se/=2}function Ge(Ut,Si){return 1===rt?Ut[Si]:Ut.readUInt16BE(Si*rt)}if(Zt){var qt=-1;for(_i=Se;_iKt&&(Se=Kt-on),_i=Se;_i>=0;_i--){for(var tt=!0,Bt=0;BtZt&&(ct=Zt):ct=Zt;var Kt,rt=ge.length;for(ct>rt/2&&(ct=rt/2),Kt=0;Kt>8,rt.push(Se%256),rt.push(ct);return rt}(ge,dt.length-Se),dt,Se,ct)}function ye(dt,ge,Se){return M.fromByteArray(0===ge&&Se===dt.length?dt:dt.slice(ge,Se))}function Oe(dt,ge,Se){Se=Math.min(dt.length,Se);for(var ct=[],Zt=ge;Zt239?4:rt>223?3:rt>191?2:1;if(Zt+on<=Se){var Ge=void 0,_i=void 0,qt=void 0,tt=void 0;switch(on){case 1:rt<128&&(Kt=rt);break;case 2:128==(192&(Ge=dt[Zt+1]))&&(tt=(31&rt)<<6|63&Ge)>127&&(Kt=tt);break;case 3:_i=dt[Zt+2],128==(192&(Ge=dt[Zt+1]))&&128==(192&_i)&&(tt=(15&rt)<<12|(63&Ge)<<6|63&_i)>2047&&(tt<55296||tt>57343)&&(Kt=tt);break;case 4:_i=dt[Zt+2],qt=dt[Zt+3],128==(192&(Ge=dt[Zt+1]))&&128==(192&_i)&&128==(192&qt)&&(tt=(15&rt)<<18|(63&Ge)<<12|(63&_i)<<6|63&qt)>65535&&tt<1114112&&(Kt=tt)}}null===Kt?(Kt=65533,on=1):Kt>65535&&(ct.push((Kt-=65536)>>>10&1023|55296),Kt=56320|1023&Kt),ct.push(Kt),Zt+=on}return function Ee(dt){var ge=dt.length;if(ge<=ae)return String.fromCharCode.apply(String,dt);for(var Se="",ct=0;ctZt.length?(d.isBuffer(Kt)||(Kt=d.from(Kt)),Kt.copy(Zt,rt)):Uint8Array.prototype.set.call(Zt,Kt,rt);else{if(!d.isBuffer(Kt))throw new TypeError('"list" argument must be an Array of Buffers');Kt.copy(Zt,rt)}rt+=Kt.length}return Zt},d.byteLength=j,d.prototype._isBuffer=!0,d.prototype.swap16=function(){var ge=this.length;if(ge%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var Se=0;SeSe&&(ge+=" ... "),""},x&&(d.prototype[x]=d.prototype.inspect),d.prototype.compare=function(ge,Se,ct,Zt,rt){if(zt(ge,Uint8Array)&&(ge=d.from(ge,ge.offset,ge.byteLength)),!d.isBuffer(ge))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof ge);if(void 0===Se&&(Se=0),void 0===ct&&(ct=ge?ge.length:0),void 0===Zt&&(Zt=0),void 0===rt&&(rt=this.length),Se<0||ct>ge.length||Zt<0||rt>this.length)throw new RangeError("out of range index");if(Zt>=rt&&Se>=ct)return 0;if(Zt>=rt)return-1;if(Se>=ct)return 1;if(this===ge)return 0;for(var Kt=(rt>>>=0)-(Zt>>>=0),on=(ct>>>=0)-(Se>>>=0),Ge=Math.min(Kt,on),_i=this.slice(Zt,rt),qt=ge.slice(Se,ct),tt=0;tt>>=0,isFinite(ct)?(ct>>>=0,void 0===Zt&&(Zt="utf8")):(Zt=ct,ct=void 0)}var rt=this.length-Se;if((void 0===ct||ct>rt)&&(ct=rt),ge.length>0&&(ct<0||Se<0)||Se>this.length)throw new RangeError("Attempt to write outside buffer bounds");Zt||(Zt="utf8");for(var Kt=!1;;)switch(Zt){case"hex":return me(this,ge,Se,ct);case"utf8":case"utf-8":return ze(this,ge,Se,ct);case"ascii":case"latin1":case"binary":return _e(this,ge,Se,ct);case"base64":return Ae(this,ge,Se,ct);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ve(this,ge,Se,ct);default:if(Kt)throw new TypeError("Unknown encoding: "+Zt);Zt=(""+Zt).toLowerCase(),Kt=!0}},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ae=4096;function Fe(dt,ge,Se){var ct="";Se=Math.min(dt.length,Se);for(var Zt=ge;Ztct)&&(Se=ct);for(var Zt="",rt=ge;rtSe)throw new RangeError("Trying to access beyond buffer length")}function He(dt,ge,Se,ct,Zt,rt){if(!d.isBuffer(dt))throw new TypeError('"buffer" argument must be a Buffer instance');if(ge>Zt||gedt.length)throw new RangeError("Index out of range")}function be(dt,ge,Se,ct,Zt){Dt(ge,ct,Zt,dt,Se,7);var rt=Number(ge&BigInt(4294967295));dt[Se++]=rt,dt[Se++]=rt>>=8,dt[Se++]=rt>>=8,dt[Se++]=rt>>=8;var Kt=Number(ge>>BigInt(32)&BigInt(4294967295));return dt[Se++]=Kt,dt[Se++]=Kt>>=8,dt[Se++]=Kt>>=8,dt[Se++]=Kt>>=8,Se}function je(dt,ge,Se,ct,Zt){Dt(ge,ct,Zt,dt,Se,7);var rt=Number(ge&BigInt(4294967295));dt[Se+7]=rt,dt[Se+6]=rt>>=8,dt[Se+5]=rt>>=8,dt[Se+4]=rt>>=8;var Kt=Number(ge>>BigInt(32)&BigInt(4294967295));return dt[Se+3]=Kt,dt[Se+2]=Kt>>=8,dt[Se+1]=Kt>>=8,dt[Se]=Kt>>=8,Se+8}function Ke(dt,ge,Se,ct,Zt,rt){if(Se+ct>dt.length)throw new RangeError("Index out of range");if(Se<0)throw new RangeError("Index out of range")}function _t(dt,ge,Se,ct,Zt){return ge=+ge,Se>>>=0,Zt||Ke(dt,0,Se,4),D.write(dt,ge,Se,ct,23,4),Se+4}function Nt(dt,ge,Se,ct,Zt){return ge=+ge,Se>>>=0,Zt||Ke(dt,0,Se,8),D.write(dt,ge,Se,ct,52,8),Se+8}d.prototype.slice=function(ge,Se){var ct=this.length;(ge=~~ge)<0?(ge+=ct)<0&&(ge=0):ge>ct&&(ge=ct),(Se=void 0===Se?ct:~~Se)<0?(Se+=ct)<0&&(Se=0):Se>ct&&(Se=ct),Se>>=0,Se>>>=0,ct||oi(ge,Se,this.length);for(var Zt=this[ge],rt=1,Kt=0;++Kt>>=0,Se>>>=0,ct||oi(ge,Se,this.length);for(var Zt=this[ge+--Se],rt=1;Se>0&&(rt*=256);)Zt+=this[ge+--Se]*rt;return Zt},d.prototype.readUint8=d.prototype.readUInt8=function(ge,Se){return ge>>>=0,Se||oi(ge,1,this.length),this[ge]},d.prototype.readUint16LE=d.prototype.readUInt16LE=function(ge,Se){return ge>>>=0,Se||oi(ge,2,this.length),this[ge]|this[ge+1]<<8},d.prototype.readUint16BE=d.prototype.readUInt16BE=function(ge,Se){return ge>>>=0,Se||oi(ge,2,this.length),this[ge]<<8|this[ge+1]},d.prototype.readUint32LE=d.prototype.readUInt32LE=function(ge,Se){return ge>>>=0,Se||oi(ge,4,this.length),(this[ge]|this[ge+1]<<8|this[ge+2]<<16)+16777216*this[ge+3]},d.prototype.readUint32BE=d.prototype.readUInt32BE=function(ge,Se){return ge>>>=0,Se||oi(ge,4,this.length),16777216*this[ge]+(this[ge+1]<<16|this[ge+2]<<8|this[ge+3])},d.prototype.readBigUInt64LE=Qi(function(ge){vt(ge>>>=0,"offset");var Se=this[ge],ct=this[ge+7];(void 0===Se||void 0===ct)&&Qt(ge,this.length-8);var Zt=Se+this[++ge]*Math.pow(2,8)+this[++ge]*Math.pow(2,16)+this[++ge]*Math.pow(2,24),rt=this[++ge]+this[++ge]*Math.pow(2,8)+this[++ge]*Math.pow(2,16)+ct*Math.pow(2,24);return BigInt(Zt)+(BigInt(rt)<>>=0,"offset");var Se=this[ge],ct=this[ge+7];(void 0===Se||void 0===ct)&&Qt(ge,this.length-8);var Zt=Se*Math.pow(2,24)+this[++ge]*Math.pow(2,16)+this[++ge]*Math.pow(2,8)+this[++ge],rt=this[++ge]*Math.pow(2,24)+this[++ge]*Math.pow(2,16)+this[++ge]*Math.pow(2,8)+ct;return(BigInt(Zt)<>>=0,Se>>>=0,ct||oi(ge,Se,this.length);for(var Zt=this[ge],rt=1,Kt=0;++Kt=(rt*=128)&&(Zt-=Math.pow(2,8*Se)),Zt},d.prototype.readIntBE=function(ge,Se,ct){ge>>>=0,Se>>>=0,ct||oi(ge,Se,this.length);for(var Zt=Se,rt=1,Kt=this[ge+--Zt];Zt>0&&(rt*=256);)Kt+=this[ge+--Zt]*rt;return Kt>=(rt*=128)&&(Kt-=Math.pow(2,8*Se)),Kt},d.prototype.readInt8=function(ge,Se){return ge>>>=0,Se||oi(ge,1,this.length),128&this[ge]?-1*(255-this[ge]+1):this[ge]},d.prototype.readInt16LE=function(ge,Se){ge>>>=0,Se||oi(ge,2,this.length);var ct=this[ge]|this[ge+1]<<8;return 32768&ct?4294901760|ct:ct},d.prototype.readInt16BE=function(ge,Se){ge>>>=0,Se||oi(ge,2,this.length);var ct=this[ge+1]|this[ge]<<8;return 32768&ct?4294901760|ct:ct},d.prototype.readInt32LE=function(ge,Se){return ge>>>=0,Se||oi(ge,4,this.length),this[ge]|this[ge+1]<<8|this[ge+2]<<16|this[ge+3]<<24},d.prototype.readInt32BE=function(ge,Se){return ge>>>=0,Se||oi(ge,4,this.length),this[ge]<<24|this[ge+1]<<16|this[ge+2]<<8|this[ge+3]},d.prototype.readBigInt64LE=Qi(function(ge){vt(ge>>>=0,"offset");var Se=this[ge],ct=this[ge+7];(void 0===Se||void 0===ct)&&Qt(ge,this.length-8);var Zt=this[ge+4]+this[ge+5]*Math.pow(2,8)+this[ge+6]*Math.pow(2,16)+(ct<<24);return(BigInt(Zt)<>>=0,"offset");var Se=this[ge],ct=this[ge+7];(void 0===Se||void 0===ct)&&Qt(ge,this.length-8);var Zt=(Se<<24)+this[++ge]*Math.pow(2,16)+this[++ge]*Math.pow(2,8)+this[++ge];return(BigInt(Zt)<>>=0,Se||oi(ge,4,this.length),D.read(this,ge,!0,23,4)},d.prototype.readFloatBE=function(ge,Se){return ge>>>=0,Se||oi(ge,4,this.length),D.read(this,ge,!1,23,4)},d.prototype.readDoubleLE=function(ge,Se){return ge>>>=0,Se||oi(ge,8,this.length),D.read(this,ge,!0,52,8)},d.prototype.readDoubleBE=function(ge,Se){return ge>>>=0,Se||oi(ge,8,this.length),D.read(this,ge,!1,52,8)},d.prototype.writeUintLE=d.prototype.writeUIntLE=function(ge,Se,ct,Zt){ge=+ge,Se>>>=0,ct>>>=0,Zt||He(this,ge,Se,ct,Math.pow(2,8*ct)-1,0);var Kt=1,on=0;for(this[Se]=255≥++on>>=0,ct>>>=0,Zt||He(this,ge,Se,ct,Math.pow(2,8*ct)-1,0);var Kt=ct-1,on=1;for(this[Se+Kt]=255≥--Kt>=0&&(on*=256);)this[Se+Kt]=ge/on&255;return Se+ct},d.prototype.writeUint8=d.prototype.writeUInt8=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,1,255,0),this[Se]=255&ge,Se+1},d.prototype.writeUint16LE=d.prototype.writeUInt16LE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,2,65535,0),this[Se]=255&ge,this[Se+1]=ge>>>8,Se+2},d.prototype.writeUint16BE=d.prototype.writeUInt16BE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,2,65535,0),this[Se]=ge>>>8,this[Se+1]=255&ge,Se+2},d.prototype.writeUint32LE=d.prototype.writeUInt32LE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,4,4294967295,0),this[Se+3]=ge>>>24,this[Se+2]=ge>>>16,this[Se+1]=ge>>>8,this[Se]=255&ge,Se+4},d.prototype.writeUint32BE=d.prototype.writeUInt32BE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,4,4294967295,0),this[Se]=ge>>>24,this[Se+1]=ge>>>16,this[Se+2]=ge>>>8,this[Se+3]=255&ge,Se+4},d.prototype.writeBigUInt64LE=Qi(function(ge,Se){return void 0===Se&&(Se=0),be(this,ge,Se,BigInt(0),BigInt("0xffffffffffffffff"))}),d.prototype.writeBigUInt64BE=Qi(function(ge,Se){return void 0===Se&&(Se=0),je(this,ge,Se,BigInt(0),BigInt("0xffffffffffffffff"))}),d.prototype.writeIntLE=function(ge,Se,ct,Zt){if(ge=+ge,Se>>>=0,!Zt){var rt=Math.pow(2,8*ct-1);He(this,ge,Se,ct,rt-1,-rt)}var Kt=0,on=1,Ge=0;for(this[Se]=255≥++Kt>0)-Ge&255;return Se+ct},d.prototype.writeIntBE=function(ge,Se,ct,Zt){if(ge=+ge,Se>>>=0,!Zt){var rt=Math.pow(2,8*ct-1);He(this,ge,Se,ct,rt-1,-rt)}var Kt=ct-1,on=1,Ge=0;for(this[Se+Kt]=255≥--Kt>=0&&(on*=256);)ge<0&&0===Ge&&0!==this[Se+Kt+1]&&(Ge=1),this[Se+Kt]=(ge/on>>0)-Ge&255;return Se+ct},d.prototype.writeInt8=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,1,127,-128),ge<0&&(ge=255+ge+1),this[Se]=255&ge,Se+1},d.prototype.writeInt16LE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,2,32767,-32768),this[Se]=255&ge,this[Se+1]=ge>>>8,Se+2},d.prototype.writeInt16BE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,2,32767,-32768),this[Se]=ge>>>8,this[Se+1]=255&ge,Se+2},d.prototype.writeInt32LE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,4,2147483647,-2147483648),this[Se]=255&ge,this[Se+1]=ge>>>8,this[Se+2]=ge>>>16,this[Se+3]=ge>>>24,Se+4},d.prototype.writeInt32BE=function(ge,Se,ct){return ge=+ge,Se>>>=0,ct||He(this,ge,Se,4,2147483647,-2147483648),ge<0&&(ge=4294967295+ge+1),this[Se]=ge>>>24,this[Se+1]=ge>>>16,this[Se+2]=ge>>>8,this[Se+3]=255&ge,Se+4},d.prototype.writeBigInt64LE=Qi(function(ge,Se){return void 0===Se&&(Se=0),be(this,ge,Se,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),d.prototype.writeBigInt64BE=Qi(function(ge,Se){return void 0===Se&&(Se=0),je(this,ge,Se,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),d.prototype.writeFloatLE=function(ge,Se,ct){return _t(this,ge,Se,!0,ct)},d.prototype.writeFloatBE=function(ge,Se,ct){return _t(this,ge,Se,!1,ct)},d.prototype.writeDoubleLE=function(ge,Se,ct){return Nt(this,ge,Se,!0,ct)},d.prototype.writeDoubleBE=function(ge,Se,ct){return Nt(this,ge,Se,!1,ct)},d.prototype.copy=function(ge,Se,ct,Zt){if(!d.isBuffer(ge))throw new TypeError("argument should be a Buffer");if(ct||(ct=0),!Zt&&0!==Zt&&(Zt=this.length),Se>=ge.length&&(Se=ge.length),Se||(Se=0),Zt>0&&Zt=this.length)throw new RangeError("Index out of range");if(Zt<0)throw new RangeError("sourceEnd out of bounds");Zt>this.length&&(Zt=this.length),ge.length-Se>>=0,ct=void 0===ct?this.length:ct>>>0,ge||(ge=0),"number"==typeof ge)for(Kt=Se;Kt=ct+4;Se-=3)ge="_"+dt.slice(Se-3,Se)+ge;return""+dt.slice(0,Se)+ge}function Dt(dt,ge,Se,ct,Zt,rt){if(dt>Se||dt3?0===ge||ge===BigInt(0)?">= 0"+Kt+" and < 2"+Kt+" ** "+8*(rt+1)+Kt:">= -(2"+Kt+" ** "+(8*(rt+1)-1)+Kt+") and < 2 ** "+(8*(rt+1)-1)+Kt:">= "+ge+Kt+" and <= "+Se+Kt,new ut.ERR_OUT_OF_RANGE("value",on,dt)}!function It(dt,ge,Se){vt(ge,"offset"),(void 0===dt[ge]||void 0===dt[ge+Se])&&Qt(ge,dt.length-(Se+1))}(ct,Zt,rt)}function vt(dt,ge){if("number"!=typeof dt)throw new ut.ERR_INVALID_ARG_TYPE(ge,"number",dt)}function Qt(dt,ge,Se){throw Math.floor(dt)!==dt?(vt(dt,Se),new ut.ERR_OUT_OF_RANGE(Se||"offset","an integer",dt)):ge<0?new ut.ERR_BUFFER_OUT_OF_BOUNDS:new ut.ERR_OUT_OF_RANGE(Se||"offset",">= "+(Se?1:0)+" and <= "+ge,dt)}et("ERR_BUFFER_OUT_OF_BOUNDS",function(dt){return dt?dt+" is outside of buffer bounds":"Attempt to access memory outside buffer bounds"},RangeError),et("ERR_INVALID_ARG_TYPE",function(dt,ge){return'The "'+dt+'" argument must be of type number. Received type '+typeof ge},TypeError),et("ERR_OUT_OF_RANGE",function(dt,ge,Se){var ct='The value of "'+dt+'" is out of range.',Zt=Se;return Number.isInteger(Se)&&Math.abs(Se)>Math.pow(2,32)?Zt=Xe(String(Se)):"bigint"==typeof Se&&(Zt=String(Se),(Se>Math.pow(BigInt(2),BigInt(32))||Se<-Math.pow(BigInt(2),BigInt(32)))&&(Zt=Xe(Zt)),Zt+="n"),ct+" It must be "+ge+". Received "+Zt},RangeError);var qe=/[^+/0-9A-Za-z-_]/g;function it(dt,ge){ge=ge||1/0;for(var Se,ct=dt.length,Zt=null,rt=[],Kt=0;Kt55295&&Se<57344){if(!Zt){if(Se>56319){(ge-=3)>-1&&rt.push(239,191,189);continue}if(Kt+1===ct){(ge-=3)>-1&&rt.push(239,191,189);continue}Zt=Se;continue}if(Se<56320){(ge-=3)>-1&&rt.push(239,191,189),Zt=Se;continue}Se=65536+(Zt-55296<<10|Se-56320)}else Zt&&(ge-=3)>-1&&rt.push(239,191,189);if(Zt=null,Se<128){if((ge-=1)<0)break;rt.push(Se)}else if(Se<2048){if((ge-=2)<0)break;rt.push(Se>>6|192,63&Se|128)}else if(Se<65536){if((ge-=3)<0)break;rt.push(Se>>12|224,Se>>6&63|128,63&Se|128)}else{if(!(Se<1114112))throw new Error("Invalid code point");if((ge-=4)<0)break;rt.push(Se>>18|240,Se>>12&63|128,Se>>6&63|128,63&Se|128)}}return rt}function Rt(dt){return M.toByteArray(function ke(dt){if((dt=(dt=dt.split("=")[0]).trim().replace(qe,"")).length<2)return"";for(;dt.length%4!=0;)dt+="=";return dt}(dt))}function Gt(dt,ge,Se,ct){var Zt;for(Zt=0;Zt=ge.length||Zt>=dt.length);++Zt)ge[Zt+Se]=dt[Zt];return Zt}function zt(dt,ge){return dt instanceof ge||null!=dt&&null!=dt.constructor&&null!=dt.constructor.name&&dt.constructor.name===ge.name}function mi(dt){return dt!=dt}var Zi=function(){for(var dt="0123456789abcdef",ge=new Array(256),Se=0;Se<16;++Se)for(var ct=16*Se,Zt=0;Zt<16;++Zt)ge[ct+Zt]=dt[Se]+dt[Zt];return ge}();function Qi(dt){return typeof BigInt>"u"?Ht:dt}function Ht(){throw new Error("BigInt not supported")}},14623:function(T,e,l){"use strict";var v;l(39081),T.exports=(v=l(48352),l(51270),v.pad.Iso97971={pad:function(f,_){f.concat(v.lib.WordArray.create([2147483648],1)),v.pad.ZeroPadding.pad(f,_)},unpad:function(f){v.pad.ZeroPadding.unpad(f),f.sigBytes--}},v.pad.Iso97971)},14903:function(T,e,l){"use strict";var v=l(9964),h=Object.keys||function(Q){var I=[];for(var d in Q)I.push(d);return I};T.exports=D;var f=l(88261),_=l(29781);l(89784)(D,f);for(var b=h(_.prototype),y=0;y=I.status}function M(Q){try{Q.dispatchEvent(new MouseEvent("click"))}catch{var I=document.createEvent("MouseEvents");I.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),Q.dispatchEvent(I)}}var D="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof l.g&&l.g.global===l.g?l.g:void 0,x=D.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),k=D.saveAs||("object"!=typeof window||window!==D?function(){}:typeof HTMLAnchorElement<"u"&&"download"in HTMLAnchorElement.prototype&&!x?function(Q,I,d){var S=D.URL||D.webkitURL,R=document.createElement("a");R.download=I=I||Q.name||"download",R.rel="noopener","string"==typeof Q?(R.href=Q,R.origin===location.origin?M(R):y(R.href)?b(Q,I,d):M(R,R.target="_blank")):(R.href=S.createObjectURL(Q),setTimeout(function(){S.revokeObjectURL(R.href)},4e4),setTimeout(function(){M(R)},0))}:"msSaveOrOpenBlob"in navigator?function(Q,I,d){if(I=I||Q.name||"download","string"!=typeof Q)navigator.msSaveOrOpenBlob(function _(Q,I){return typeof I>"u"?I={autoBom:!1}:"object"!=typeof I&&(console.warn("Deprecated: Expected third argument to be a object"),I={autoBom:!I}),I.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(Q.type)?new Blob(["\ufeff",Q],{type:Q.type}):Q}(Q,d),I);else if(y(Q))b(Q,I,d);else{var S=document.createElement("a");S.href=Q,S.target="_blank",setTimeout(function(){M(S)})}}:function(Q,I,d,S){if((S=S||open("","_blank"))&&(S.document.title=S.document.body.innerText="downloading..."),"string"==typeof Q)return b(Q,I,d);var R="application/octet-stream"===Q.type,z=/constructor/i.test(D.HTMLElement)||D.safari,q=/CriOS\/[\d]+/.test(navigator.userAgent);if((q||R&&z||x)&&typeof FileReader<"u"){var Z=new FileReader;Z.onloadend=function(){var W=Z.result;W=q?W:W.replace(/^data:[^;]*;/,"data:attachment/file;"),S?S.location.href=W:location=W,S=null},Z.readAsDataURL(Q)}else{var H=D.URL||D.webkitURL,G=H.createObjectURL(Q);S?S.location=G:location.href=G,S=null,setTimeout(function(){H.revokeObjectURL(G)},4e4)}});D.saveAs=k.saveAs=k,T.exports=k})?v.apply(e,[]):v)&&(T.exports=f)},15567:function(T,e,l){var v=l(47044);T.exports=!v(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},15892:function(T,e,l){var v=l(32010),h=l(2834),f=l(32631),_=l(34984),b=l(68664),y=l(13872),M=v.TypeError;T.exports=function(D,x){var k=arguments.length<2?y(D):x;if(f(k))return _(h(k,D));throw M(b(D)+" is not iterable")}},16190:function(T,e,l){"use strict";var v,_;l(94845),T.exports=(v=l(48352),_=v.lib.WordArray,v.enc.Base64url={stringify:function(x,k){void 0===k&&(k=!0);var Q=x.words,I=x.sigBytes,d=k?this._safe_map:this._map;x.clamp();for(var S=[],R=0;R>>2]>>>24-R%4*8&255)<<16|(Q[R+1>>>2]>>>24-(R+1)%4*8&255)<<8|Q[R+2>>>2]>>>24-(R+2)%4*8&255,G=0;G<4&&R+.75*G>>6*(3-G)&63));var W=d.charAt(64);if(W)for(;S.length%4;)S.push(W);return S.join("")},parse:function(x,k){void 0===k&&(k=!0);var Q=x.length,I=k?this._safe_map:this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var S=0;S>>6-d%4*2;Q[I>>>2]|=(S|R)<<24-I%4*8,I++}return _.create(Q,I)}(x,Q,d)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},v.enc.Base64url)},16403:function(){},16465:function(T,e,l){function h(f){try{if(!l.g.localStorage)return!1}catch{return!1}var _=l.g.localStorage[f];return null!=_&&"true"===String(_).toLowerCase()}T.exports=function v(f,_){if(h("noDeprecation"))return f;var b=!1;return function y(){if(!b){if(h("throwDeprecation"))throw new Error(_);h("traceDeprecation")?console.trace(_):console.warn(_),b=!0}return f.apply(this,arguments)}}},16679:function(T,e,l){var v=l(38347);T.exports=v(1..valueOf)},16720:function(T,e,l){"use strict";var v;l(20731),T.exports=(v=l(48352),l(18909),function(h){var f=v,_=f.lib,b=_.WordArray,y=_.Hasher,D=f.x64.Word,x=f.algo,k=[],Q=[],I=[];!function(){for(var R=1,z=0,q=0;q<24;q++){k[R+5*z]=(q+1)*(q+2)/2%64;var H=(2*R+3*z)%5;R=z%5,z=H}for(R=0;R<5;R++)for(z=0;z<5;z++)Q[R+5*z]=z+(2*R+3*z)%5*5;for(var G=1,W=0;W<24;W++){for(var te=0,P=0,J=0;J<7;J++){if(1&G){var j=(1<>>24)|4278255360&(W<<24|W>>>8),(P=Z[G]).high^=te=16711935&(te<<8|te>>>24)|4278255360&(te<<24|te>>>8),P.low^=W}for(var J=0;J<24;J++){for(var j=0;j<5;j++){for(var re=0,he=0,oe=0;oe<5;oe++)re^=(P=Z[j+5*oe]).high,he^=P.low;var Ce=d[j];Ce.high=re,Ce.low=he}for(j=0;j<5;j++){var me=d[(j+4)%5],ze=d[(j+1)%5],_e=ze.high,Ae=ze.low;for(re=me.high^(_e<<1|Ae>>>31),he=me.low^(Ae<<1|_e>>>31),oe=0;oe<5;oe++)(P=Z[j+5*oe]).high^=re,P.low^=he}for(var ve=1;ve<25;ve++){var ye=(P=Z[ve]).high,Oe=P.low,ae=k[ve];ae<32?(re=ye<>>32-ae,he=Oe<>>32-ae):(re=Oe<>>64-ae,he=ye<>>64-ae);var Ee=d[Q[ve]];Ee.high=re,Ee.low=he}var Fe=d[0],Ve=Z[0];for(Fe.high=Ve.high,Fe.low=Ve.low,j=0;j<5;j++)for(oe=0;oe<5;oe++){var mt=d[ve=j+5*oe],St=d[(j+1)%5+5*oe],oi=d[(j+2)%5+5*oe];(P=Z[ve]).high=mt.high^~St.high&oi.high,P.low=mt.low^~St.low&oi.low}var P,He=I[J];(P=Z[0]).high^=He.high,P.low^=He.low}},_doFinalize:function(){var z=this._data,q=z.words,H=8*z.sigBytes,G=32*this.blockSize;q[H>>>5]|=1<<24-H%32,q[(h.ceil((H+1)/G)*G>>>5)-1]|=128,z.sigBytes=4*q.length,this._process();for(var W=this._state,te=this.cfg.outputLength/8,P=te/8,J=[],j=0;j>>24)|4278255360&(he<<24|he>>>8),J.push(oe=16711935&(oe<<8|oe>>>24)|4278255360&(oe<<24|oe>>>8)),J.push(he)}return new b.init(J,te)},clone:function(){for(var z=y.clone.call(this),q=z._state=this._state.slice(0),Z=0;Z<25;Z++)q[Z]=q[Z].clone();return z}});f.SHA3=y._createHelper(S),f.HmacSHA3=y._createHmacHelper(S)}(Math),v.SHA3)},16793:function(T,e,l){"use strict";var v=l(93143).Buffer;function h(x,k){this.enc=x.encodingName,this.bomAware=x.bomAware,"base64"===this.enc?this.encoder=y:"cesu8"===this.enc&&(this.enc="utf8",this.encoder=M,"\u{1f4a9}"!==v.from("eda0bdedb2a9","hex").toString()&&(this.decoder=D,this.defaultCharUnicode=k.defaultCharUnicode))}T.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:h},h.prototype.encoder=b,h.prototype.decoder=_;var f=l(43143).I;function _(x,k){this.decoder=new f(k.enc)}function b(x,k){this.enc=k.enc}function y(x,k){this.prevStr=""}function M(x,k){}function D(x,k){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=k.defaultCharUnicode}f.prototype.end||(f.prototype.end=function(){}),_.prototype.write=function(x){return v.isBuffer(x)||(x=v.from(x)),this.decoder.write(x)},_.prototype.end=function(){return this.decoder.end()},b.prototype.write=function(x){return v.from(x,this.enc)},b.prototype.end=function(){},y.prototype.write=function(x){var k=(x=this.prevStr+x).length-x.length%4;return this.prevStr=x.slice(k),x=x.slice(0,k),v.from(x,"base64")},y.prototype.end=function(){return v.from(this.prevStr,"base64")},M.prototype.write=function(x){for(var k=v.alloc(3*x.length),Q=0,I=0;I>>6),k[Q++]=128+(63&d)):(k[Q++]=224+(d>>>12),k[Q++]=128+(d>>>6&63),k[Q++]=128+(63&d))}return k.slice(0,Q)},M.prototype.end=function(){},D.prototype.write=function(x){for(var k=this.acc,Q=this.contBytes,I=this.accBytes,d="",S=0;S0&&(d+=this.defaultCharUnicode,Q=0),R<128?d+=String.fromCharCode(R):R<224?(k=31&R,Q=1,I=1):R<240?(k=15&R,Q=2,I=1):d+=this.defaultCharUnicode):Q>0?(k=k<<6|63&R,I++,0==--Q&&(d+=2===I&&k<128&&k>0||3===I&&k<2048?this.defaultCharUnicode:String.fromCharCode(k))):d+=this.defaultCharUnicode}return this.acc=k,this.contBytes=Q,this.accBytes=I,d},D.prototype.end=function(){var x=0;return this.contBytes>0&&(x+=this.defaultCharUnicode),x}},17100:function(T,e,l){"use strict";var v=l(93143).Buffer;function h(){}function f(){}function _(){this.overflowByte=-1}function b(x,k){this.iconv=k}function y(x,k){void 0===(x=x||{}).addBOM&&(x.addBOM=!0),this.encoder=k.iconv.getEncoder("utf-16le",x)}function M(x,k){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=x||{},this.iconv=k.iconv}function D(x,k){var Q=[],I=0,d=0,S=0;e:for(var R=0;R=100)break e}return S>d?"utf-16be":S=D.length?{done:!0}:{done:!1,value:D[Q++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(D,x){(null==x||x>D.length)&&(x=D.length);for(var k=0,Q=Array(x);k=0;--Ee){var Fe=this.tryEntries[Ee],Ve=Fe[4],mt=this.prev,St=Fe[1],oi=Fe[2];if(-1===Fe[0])return ae("end"),!1;if(!St&&!oi)throw Error("try statement without catch or finally");if(null!=Fe[0]&&Fe[0]<=mt){if(mt=0;--ae){var Ee=this.tryEntries[ae];if(Ee[0]>-1&&Ee[0]<=this.prev&&this.prev=0;--Oe){var ae=this.tryEntries[Oe];if(ae[2]===ye)return this.complete(ae[4],ae[3]),ze(ae),H}},catch:function(ye){for(var Oe=this.tryEntries.length-1;Oe>=0;--Oe){var ae=this.tryEntries[Oe];if(ae[0]===ye){var Ee=ae[4];if("throw"===Ee.type){var Fe=Ee.arg;ze(ae)}return Fe}}throw Error("illegal catch attempt")},delegateYield:function(ye,Oe,ae){return this.delegate={i:Ae(ye),r:Oe,n:ae},"next"===this.method&&(this.arg=D),H}},x}l(65292),l(73844),l(11765),l(24863),l(71950),l(68067),l(57114),l(42437),l(69330),l(81755),l(20731),l(14032),l(61726),l(58281),l(6422),l(94712);T.exports=function(){function D(k){this.stateTable=k.stateTable,this.accepting=k.accepting,this.tags=k.tags}var x=D.prototype;return x.match=function(Q){var I,d=this;return(I={})[Symbol.iterator]=_().mark(function S(){var R,z,q,Z,H,G;return _().wrap(function(te){for(;;)switch(te.prev=te.next){case 0:R=1,z=null,q=null,Z=null,H=0;case 5:if(!(H=z)){te.next=13;break}return te.next=13,[z,q,d.tags[Z]];case 13:R=d.stateTable[1][G],z=null;case 15:0!==R&&null==z&&(z=H),d.accepting[R]&&(q=H),0===R&&(R=1);case 18:H++,te.next=5;break;case 21:if(!(null!=z&&null!=q&&q>=z)){te.next=24;break}return te.next=24,[z,q,d.tags[R]];case 24:case"end":return te.stop()}},S)}),I},x.apply=function(Q,I){for(var S,d=v(this.match(Q));!(S=d()).done;)for(var G,R=S.value,z=R[0],q=R[1],H=v(R[2]);!(G=H()).done;){var W=G.value;"function"==typeof I[W]&&I[W](z,q,Q.slice(z,q+1))}},D}()},18756:function(T,e,l){var v=l(56475),h=l(87146);v({target:"Object",stat:!0,forced:Object.assign!==h},{assign:h})},18828:function(T,e,l){"use strict";l(36673)("Map",function(f){return function(){return f(this,arguments.length?arguments[0]:void 0)}},l(9649))},18888:function(T){"use strict";T.exports=RangeError},18890:function(T,e,l){"use strict";var v=l(56649),h=function(){return!!v};h.hasArrayLengthDefineBug=function(){if(!v)return null;try{return 1!==v([],"length",{value:1}).length}catch{return!0}},T.exports=h},18904:function(T,e,l){var v=l(15567),h=l(47044),f=l(12072);T.exports=!v&&!h(function(){return 7!=Object.defineProperty(f("div"),"a",{get:function(){return 7}}).a})},18909:function(T,e,l){"use strict";var v,_,b,y,M;l(20731),T.exports=(v=l(48352),b=(_=v.lib).Base,y=_.WordArray,(M=v.x64={}).Word=b.extend({init:function(Q,I){this.high=Q,this.low=I}}),M.WordArray=b.extend({init:function(Q,I){Q=this.words=Q||[],this.sigBytes=null!=I?I:8*Q.length},toX32:function(){for(var Q=this.words,I=Q.length,d=[],S=0;S0?17+Ke:(Ke=je.readBits(3))>0?8+Ke:17}function oe(je){if(je.readBits(1)){var Ke=je.readBits(3);return 0===Ke?1:je.readBits(Ke)+(1<1&&0===et)throw new Error("Invalid size byte");Ke.meta_block_length|=et<<8*ut}}else for(ut=0;ut<_t;++ut){var Xe=je.readBits(4);if(ut+1===_t&&_t>4&&0===Xe)throw new Error("Invalid size nibble");Ke.meta_block_length|=Xe<<4*ut}return++Ke.meta_block_length,!Ke.input_end&&!Ke.is_metadata&&(Ke.is_uncompressed=je.readBits(1)),Ke}function ze(je,Ke,_t){var ut;return _t.fillBitWindow(),(ut=je[Ke+=_t.val_>>>_t.bit_pos_&H].bits-Z)>0&&(_t.bit_pos_+=Z,Ke+=je[Ke].value,Ke+=_t.val_>>>_t.bit_pos_&(1<>=1,++vt;for(It=0;It0;++It){var zt,Rt=te[It],Gt=0;Nt.fillBitWindow(),Nt.bit_pos_+=ai[Gt+=Nt.val_>>>Nt.bit_pos_&15].bits,ke[Rt]=zt=ai[Gt].value,0!==zt&&(it-=32>>zt,++gt)}if(1!==gt&&0!==it)throw new Error("[ReadHuffmanCode] invalid num_codes or space");!function _e(je,Ke,_t,Nt){for(var ut=0,et=Q,Xe=0,It=0,Dt=32768,vt=[],Qt=0;Qt<32;Qt++)vt.push(new y(0,0));for(M(vt,0,5,je,W);ut0;){var ke,qe=0;if(Nt.readMoreInput(),Nt.fillBitWindow(),Nt.bit_pos_+=vt[qe+=Nt.val_>>>Nt.bit_pos_&31].bits,(ke=255&vt[qe].value)>ke);else{var gt,ai,it=ke-14,Rt=0;if(ke===I&&(Rt=et),It!==Rt&&(Xe=0,It=Rt),gt=Xe,Xe>0&&(Xe-=2,Xe<<=it),ut+(ai=(Xe+=Nt.readBits(it)+3)-gt)>Ke)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var Gt=0;Gt>>5]),this.htrees=new Uint32Array(Ke)}function Fe(je,Ke){var et,Xe,_t={num_htrees:null,context_map:null},ut=0;Ke.readMoreInput();var It=_t.num_htrees=oe(Ke)+1,Dt=_t.context_map=new Uint8Array(je);if(It<=1)return _t;for(Ke.readBits(1)&&(ut=Ke.readBits(4)+1),et=[],Xe=0;Xe=je)throw new Error("[DecodeContextMap] i >= context_map_size");Dt[Xe]=0,++Xe}else Dt[Xe]=vt-ut,++Xe}return Ke.readBits(1)&&function ae(je,Ke){var Nt,_t=new Uint8Array(256);for(Nt=0;Nt<256;++Nt)_t[Nt]=Nt;for(Nt=0;Nt=je&&(Qt-=je),Nt[_t]=Qt,ut[It+(1&et[Dt])]=Qt,++et[Dt]}function mt(je,Ke,_t,Nt,ut,et){var vt,Xe=ut+1,It=_t&ut,Dt=et.pos_&_.IBUF_MASK;if(Ke<8||et.bit_pos_+(Ke<<3)0;)et.readMoreInput(),Nt[It++]=et.readBits(8),It===Xe&&(je.write(Nt,Xe),It=0);else{if(et.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;et.bit_pos_<32;)Nt[It]=et.val_>>>et.bit_pos_,et.bit_pos_+=8,++It,--Ke;if(Dt+(vt=et.bit_end_pos_-et.bit_pos_>>3)>_.IBUF_MASK){for(var Qt=_.IBUF_MASK+1-Dt,qe=0;qe=Xe)for(je.write(Nt,Xe),It-=Xe,qe=0;qe=Xe;){if(et.input_.read(Nt,It,vt=Xe-It)Ke.buffer.length){var ji=new Uint8Array(Nt+Ht);ji.set(Ke.buffer),Ke.buffer=ji}if(ut=sn.input_end,dt=sn.is_uncompressed,sn.is_metadata)for(St(mi);Ht>0;--Ht)mi.readMoreInput(),mi.readBits(8);else if(0!==Ht){if(dt){mi.bit_pos_=mi.bit_pos_+7&-8,mt(Ke,Ht,Nt,Qt,vt,mi),Nt+=Ht;continue}for(_t=0;_t<3;++_t)ct[_t]=oe(mi)+1,ct[_t]>=2&&(Ae(ct[_t]+2,Gt,_t*G,mi),Ae(R,zt,_t*G,mi),ge[_t]=ve(zt,_t*G,mi),rt[_t]=1);for(mi.readMoreInput(),Ge=(1<<(Kt=mi.readBits(2)))-1,_i=(on=P+(mi.readBits(4)<0;){var gr,xn,Hr,Xo,qr,Fn,Wn,ro,ar,wo,Jt,ci;for(mi.readMoreInput(),0===ge[1]&&(Ve(ct[1],Gt,1,Se,Zt,rt,mi),ge[1]=ve(zt,G,mi),xi=Rt[1].htrees[Se[1]]),--ge[1],(xn=(gr=ze(Rt[1].codes,xi,mi))>>6)>=2?(xn-=2,Wn=-1):Wn=0,Xo=x.kCopyRangeLut[xn]+(7&gr),qr=x.kInsertLengthPrefixCode[Hr=x.kInsertRangeLut[xn]+(gr>>3&7)].offset+mi.readBits(x.kInsertLengthPrefixCode[Hr].nbits),Fn=x.kCopyLengthPrefixCode[Xo].offset+mi.readBits(x.kCopyLengthPrefixCode[Xo].nbits),gt=Qt[Nt-1&vt],ai=Qt[Nt-2&vt],ar=0;ar4?3:Fn-2))]],mi))>=on&&(ci=(Wn-=on)&Ge,Wn=on+((Ai=(2+(1&(Wn>>=Kt))<<(Jt=1+(Wn>>1)))-4)+mi.readBits(Jt)<(It=Nt=b.minDictionaryWordLength&&Fn<=b.maxDictionaryWordLength))throw new Error("Invalid backward reference. pos: "+Nt+" distance: "+ro+" len: "+Fn+" bytes left: "+Ht);var Ai=b.offsetsByLength[Fn],Vt=ro-It-1,Le=b.sizeBitsByLength[Fn],Me=Vt>>Le;if(Ai+=(Vt&(1<=qe){Ke.write(Qt,Dt);for(var xt=0;xt0&&(ke[3&it]=ro,++it),Fn>Ht)throw new Error("Invalid backward reference. pos: "+Nt+" distance: "+ro+" len: "+Fn+" bytes left: "+Ht);for(ar=0;ar1?arguments[1]:void 0);return f(this,D)})},21166:function(T){"use strict";T.exports=JSON.parse('[["0","\\u0000",127],["8141","\uac02\uac03\uac05\uac06\uac0b",4,"\uac18\uac1e\uac1f\uac21\uac22\uac23\uac25",6,"\uac2e\uac32\uac33\uac34"],["8161","\uac35\uac36\uac37\uac3a\uac3b\uac3d\uac3e\uac3f\uac41",9,"\uac4c\uac4e",5,"\uac55"],["8181","\uac56\uac57\uac59\uac5a\uac5b\uac5d",18,"\uac72\uac73\uac75\uac76\uac79\uac7b",4,"\uac82\uac87\uac88\uac8d\uac8e\uac8f\uac91\uac92\uac93\uac95",6,"\uac9e\uaca2",5,"\uacab\uacad\uacae\uacb1",6,"\uacba\uacbe\uacbf\uacc0\uacc2\uacc3\uacc5\uacc6\uacc7\uacc9\uacca\uaccb\uaccd",7,"\uacd6\uacd8",7,"\uace2\uace3\uace5\uace6\uace9\uaceb\uaced\uacee\uacf2\uacf4\uacf7",4,"\uacfe\uacff\uad01\uad02\uad03\uad05\uad07",4,"\uad0e\uad10\uad12\uad13"],["8241","\uad14\uad15\uad16\uad17\uad19\uad1a\uad1b\uad1d\uad1e\uad1f\uad21",7,"\uad2a\uad2b\uad2e",5],["8261","\uad36\uad37\uad39\uad3a\uad3b\uad3d",6,"\uad46\uad48\uad4a",5,"\uad51\uad52\uad53\uad55\uad56\uad57"],["8281","\uad59",7,"\uad62\uad64",7,"\uad6e\uad6f\uad71\uad72\uad77\uad78\uad79\uad7a\uad7e\uad80\uad83",4,"\uad8a\uad8b\uad8d\uad8e\uad8f\uad91",10,"\uad9e",5,"\uada5",17,"\uadb8",7,"\uadc2\uadc3\uadc5\uadc6\uadc7\uadc9",6,"\uadd2\uadd4",7,"\uaddd\uadde\uaddf\uade1\uade2\uade3\uade5",18],["8341","\uadfa\uadfb\uadfd\uadfe\uae02",5,"\uae0a\uae0c\uae0e",5,"\uae15",7],["8361","\uae1d",18,"\uae32\uae33\uae35\uae36\uae39\uae3b\uae3c"],["8381","\uae3d\uae3e\uae3f\uae42\uae44\uae47\uae48\uae49\uae4b\uae4f\uae51\uae52\uae53\uae55\uae57",4,"\uae5e\uae62\uae63\uae64\uae66\uae67\uae6a\uae6b\uae6d\uae6e\uae6f\uae71",6,"\uae7a\uae7e",5,"\uae86",5,"\uae8d",46,"\uaebf\uaec1\uaec2\uaec3\uaec5",6,"\uaece\uaed2",5,"\uaeda\uaedb\uaedd",8],["8441","\uaee6\uaee7\uaee9\uaeea\uaeec\uaeee",5,"\uaef5\uaef6\uaef7\uaef9\uaefa\uaefb\uaefd",8],["8461","\uaf06\uaf09\uaf0a\uaf0b\uaf0c\uaf0e\uaf0f\uaf11",18],["8481","\uaf24",7,"\uaf2e\uaf2f\uaf31\uaf33\uaf35",6,"\uaf3e\uaf40\uaf44\uaf45\uaf46\uaf47\uaf4a",5,"\uaf51",10,"\uaf5e",5,"\uaf66",18,"\uaf7a",5,"\uaf81\uaf82\uaf83\uaf85\uaf86\uaf87\uaf89",6,"\uaf92\uaf93\uaf94\uaf96",5,"\uaf9d",26,"\uafba\uafbb\uafbd\uafbe"],["8541","\uafbf\uafc1",5,"\uafca\uafcc\uafcf",4,"\uafd5",6,"\uafdd",4],["8561","\uafe2",5,"\uafea",5,"\uaff2\uaff3\uaff5\uaff6\uaff7\uaff9",6,"\ub002\ub003"],["8581","\ub005",6,"\ub00d\ub00e\ub00f\ub011\ub012\ub013\ub015",6,"\ub01e",9,"\ub029",26,"\ub046\ub047\ub049\ub04b\ub04d\ub04f\ub050\ub051\ub052\ub056\ub058\ub05a\ub05b\ub05c\ub05e",29,"\ub07e\ub07f\ub081\ub082\ub083\ub085",6,"\ub08e\ub090\ub092",5,"\ub09b\ub09d\ub09e\ub0a3\ub0a4"],["8641","\ub0a5\ub0a6\ub0a7\ub0aa\ub0b0\ub0b2\ub0b6\ub0b7\ub0b9\ub0ba\ub0bb\ub0bd",6,"\ub0c6\ub0ca",5,"\ub0d2"],["8661","\ub0d3\ub0d5\ub0d6\ub0d7\ub0d9",6,"\ub0e1\ub0e2\ub0e3\ub0e4\ub0e6",10],["8681","\ub0f1",22,"\ub10a\ub10d\ub10e\ub10f\ub111\ub114\ub115\ub116\ub117\ub11a\ub11e",4,"\ub126\ub127\ub129\ub12a\ub12b\ub12d",6,"\ub136\ub13a",5,"\ub142\ub143\ub145\ub146\ub147\ub149",6,"\ub152\ub153\ub156\ub157\ub159\ub15a\ub15b\ub15d\ub15e\ub15f\ub161",22,"\ub17a\ub17b\ub17d\ub17e\ub17f\ub181\ub183",4,"\ub18a\ub18c\ub18e\ub18f\ub190\ub191\ub195\ub196\ub197\ub199\ub19a\ub19b\ub19d"],["8741","\ub19e",9,"\ub1a9",15],["8761","\ub1b9",18,"\ub1cd\ub1ce\ub1cf\ub1d1\ub1d2\ub1d3\ub1d5"],["8781","\ub1d6",5,"\ub1de\ub1e0",7,"\ub1ea\ub1eb\ub1ed\ub1ee\ub1ef\ub1f1",7,"\ub1fa\ub1fc\ub1fe",5,"\ub206\ub207\ub209\ub20a\ub20d",6,"\ub216\ub218\ub21a",5,"\ub221",18,"\ub235",6,"\ub23d",26,"\ub259\ub25a\ub25b\ub25d\ub25e\ub25f\ub261",6,"\ub26a",4],["8841","\ub26f",4,"\ub276",5,"\ub27d",6,"\ub286\ub287\ub288\ub28a",4],["8861","\ub28f\ub292\ub293\ub295\ub296\ub297\ub29b",4,"\ub2a2\ub2a4\ub2a7\ub2a8\ub2a9\ub2ab\ub2ad\ub2ae\ub2af\ub2b1\ub2b2\ub2b3\ub2b5\ub2b6\ub2b7"],["8881","\ub2b8",15,"\ub2ca\ub2cb\ub2cd\ub2ce\ub2cf\ub2d1\ub2d3",4,"\ub2da\ub2dc\ub2de\ub2df\ub2e0\ub2e1\ub2e3\ub2e7\ub2e9\ub2ea\ub2f0\ub2f1\ub2f2\ub2f6\ub2fc\ub2fd\ub2fe\ub302\ub303\ub305\ub306\ub307\ub309",6,"\ub312\ub316",5,"\ub31d",54,"\ub357\ub359\ub35a\ub35d\ub360\ub361\ub362\ub363"],["8941","\ub366\ub368\ub36a\ub36c\ub36d\ub36f\ub372\ub373\ub375\ub376\ub377\ub379",6,"\ub382\ub386",5,"\ub38d"],["8961","\ub38e\ub38f\ub391\ub392\ub393\ub395",10,"\ub3a2",5,"\ub3a9\ub3aa\ub3ab\ub3ad"],["8981","\ub3ae",21,"\ub3c6\ub3c7\ub3c9\ub3ca\ub3cd\ub3cf\ub3d1\ub3d2\ub3d3\ub3d6\ub3d8\ub3da\ub3dc\ub3de\ub3df\ub3e1\ub3e2\ub3e3\ub3e5\ub3e6\ub3e7\ub3e9",18,"\ub3fd",18,"\ub411",6,"\ub419\ub41a\ub41b\ub41d\ub41e\ub41f\ub421",6,"\ub42a\ub42c",7,"\ub435",15],["8a41","\ub445",10,"\ub452\ub453\ub455\ub456\ub457\ub459",6,"\ub462\ub464\ub466"],["8a61","\ub467",4,"\ub46d",18,"\ub481\ub482"],["8a81","\ub483",4,"\ub489",19,"\ub49e",5,"\ub4a5\ub4a6\ub4a7\ub4a9\ub4aa\ub4ab\ub4ad",7,"\ub4b6\ub4b8\ub4ba",5,"\ub4c1\ub4c2\ub4c3\ub4c5\ub4c6\ub4c7\ub4c9",6,"\ub4d1\ub4d2\ub4d3\ub4d4\ub4d6",5,"\ub4de\ub4df\ub4e1\ub4e2\ub4e5\ub4e7",4,"\ub4ee\ub4f0\ub4f2",5,"\ub4f9",26,"\ub516\ub517\ub519\ub51a\ub51d"],["8b41","\ub51e",5,"\ub526\ub52b",4,"\ub532\ub533\ub535\ub536\ub537\ub539",6,"\ub542\ub546"],["8b61","\ub547\ub548\ub549\ub54a\ub54e\ub54f\ub551\ub552\ub553\ub555",6,"\ub55e\ub562",8],["8b81","\ub56b",52,"\ub5a2\ub5a3\ub5a5\ub5a6\ub5a7\ub5a9\ub5ac\ub5ad\ub5ae\ub5af\ub5b2\ub5b6",4,"\ub5be\ub5bf\ub5c1\ub5c2\ub5c3\ub5c5",6,"\ub5ce\ub5d2",5,"\ub5d9",18,"\ub5ed",18],["8c41","\ub600",15,"\ub612\ub613\ub615\ub616\ub617\ub619",4],["8c61","\ub61e",6,"\ub626",5,"\ub62d",6,"\ub635",5],["8c81","\ub63b",12,"\ub649",26,"\ub665\ub666\ub667\ub669",50,"\ub69e\ub69f\ub6a1\ub6a2\ub6a3\ub6a5",5,"\ub6ad\ub6ae\ub6af\ub6b0\ub6b2",16],["8d41","\ub6c3",16,"\ub6d5",8],["8d61","\ub6de",17,"\ub6f1\ub6f2\ub6f3\ub6f5\ub6f6\ub6f7\ub6f9\ub6fa"],["8d81","\ub6fb",4,"\ub702\ub703\ub704\ub706",33,"\ub72a\ub72b\ub72d\ub72e\ub731",6,"\ub73a\ub73c",7,"\ub745\ub746\ub747\ub749\ub74a\ub74b\ub74d",6,"\ub756",9,"\ub761\ub762\ub763\ub765\ub766\ub767\ub769",6,"\ub772\ub774\ub776",5,"\ub77e\ub77f\ub781\ub782\ub783\ub785",6,"\ub78e\ub793\ub794\ub795\ub79a\ub79b\ub79d\ub79e"],["8e41","\ub79f\ub7a1",6,"\ub7aa\ub7ae",5,"\ub7b6\ub7b7\ub7b9",8],["8e61","\ub7c2",4,"\ub7c8\ub7ca",19],["8e81","\ub7de",13,"\ub7ee\ub7ef\ub7f1\ub7f2\ub7f3\ub7f5",6,"\ub7fe\ub802",4,"\ub80a\ub80b\ub80d\ub80e\ub80f\ub811",6,"\ub81a\ub81c\ub81e",5,"\ub826\ub827\ub829\ub82a\ub82b\ub82d",6,"\ub836\ub83a",5,"\ub841\ub842\ub843\ub845",11,"\ub852\ub854",7,"\ub85e\ub85f\ub861\ub862\ub863\ub865",6,"\ub86e\ub870\ub872",5,"\ub879\ub87a\ub87b\ub87d",7],["8f41","\ub885",7,"\ub88e",17],["8f61","\ub8a0",7,"\ub8a9",6,"\ub8b1\ub8b2\ub8b3\ub8b5\ub8b6\ub8b7\ub8b9",4],["8f81","\ub8be\ub8bf\ub8c2\ub8c4\ub8c6",5,"\ub8cd\ub8ce\ub8cf\ub8d1\ub8d2\ub8d3\ub8d5",7,"\ub8de\ub8e0\ub8e2",5,"\ub8ea\ub8eb\ub8ed\ub8ee\ub8ef\ub8f1",6,"\ub8fa\ub8fc\ub8fe",5,"\ub905",18,"\ub919",6,"\ub921",26,"\ub93e\ub93f\ub941\ub942\ub943\ub945",6,"\ub94d\ub94e\ub950\ub952",5],["9041","\ub95a\ub95b\ub95d\ub95e\ub95f\ub961",6,"\ub96a\ub96c\ub96e",5,"\ub976\ub977\ub979\ub97a\ub97b\ub97d"],["9061","\ub97e",5,"\ub986\ub988\ub98b\ub98c\ub98f",15],["9081","\ub99f",12,"\ub9ae\ub9af\ub9b1\ub9b2\ub9b3\ub9b5",6,"\ub9be\ub9c0\ub9c2",5,"\ub9ca\ub9cb\ub9cd\ub9d3",4,"\ub9da\ub9dc\ub9df\ub9e0\ub9e2\ub9e6\ub9e7\ub9e9\ub9ea\ub9eb\ub9ed",6,"\ub9f6\ub9fb",4,"\uba02",5,"\uba09",11,"\uba16",33,"\uba3a\uba3b\uba3d\uba3e\uba3f\uba41\uba43\uba44\uba45\uba46"],["9141","\uba47\uba4a\uba4c\uba4f\uba50\uba51\uba52\uba56\uba57\uba59\uba5a\uba5b\uba5d",6,"\uba66\uba6a",5],["9161","\uba72\uba73\uba75\uba76\uba77\uba79",9,"\uba86\uba88\uba89\uba8a\uba8b\uba8d",5],["9181","\uba93",20,"\ubaaa\ubaad\ubaae\ubaaf\ubab1\ubab3",4,"\ubaba\ubabc\ubabe",5,"\ubac5\ubac6\ubac7\ubac9",14,"\ubada",33,"\ubafd\ubafe\ubaff\ubb01\ubb02\ubb03\ubb05",7,"\ubb0e\ubb10\ubb12",5,"\ubb19\ubb1a\ubb1b\ubb1d\ubb1e\ubb1f\ubb21",6],["9241","\ubb28\ubb2a\ubb2c",7,"\ubb37\ubb39\ubb3a\ubb3f",4,"\ubb46\ubb48\ubb4a\ubb4b\ubb4c\ubb4e\ubb51\ubb52"],["9261","\ubb53\ubb55\ubb56\ubb57\ubb59",7,"\ubb62\ubb64",7,"\ubb6d",4],["9281","\ubb72",21,"\ubb89\ubb8a\ubb8b\ubb8d\ubb8e\ubb8f\ubb91",18,"\ubba5\ubba6\ubba7\ubba9\ubbaa\ubbab\ubbad",6,"\ubbb5\ubbb6\ubbb8",7,"\ubbc1\ubbc2\ubbc3\ubbc5\ubbc6\ubbc7\ubbc9",6,"\ubbd1\ubbd2\ubbd4",35,"\ubbfa\ubbfb\ubbfd\ubbfe\ubc01"],["9341","\ubc03",4,"\ubc0a\ubc0e\ubc10\ubc12\ubc13\ubc19\ubc1a\ubc20\ubc21\ubc22\ubc23\ubc26\ubc28\ubc2a\ubc2b\ubc2c\ubc2e\ubc2f\ubc32\ubc33\ubc35"],["9361","\ubc36\ubc37\ubc39",6,"\ubc42\ubc46\ubc47\ubc48\ubc4a\ubc4b\ubc4e\ubc4f\ubc51",8],["9381","\ubc5a\ubc5b\ubc5c\ubc5e",37,"\ubc86\ubc87\ubc89\ubc8a\ubc8d\ubc8f",4,"\ubc96\ubc98\ubc9b",4,"\ubca2\ubca3\ubca5\ubca6\ubca9",6,"\ubcb2\ubcb6",5,"\ubcbe\ubcbf\ubcc1\ubcc2\ubcc3\ubcc5",7,"\ubcce\ubcd2\ubcd3\ubcd4\ubcd6\ubcd7\ubcd9\ubcda\ubcdb\ubcdd",22,"\ubcf7\ubcf9\ubcfa\ubcfb\ubcfd"],["9441","\ubcfe",5,"\ubd06\ubd08\ubd0a",5,"\ubd11\ubd12\ubd13\ubd15",8],["9461","\ubd1e",5,"\ubd25",6,"\ubd2d",12],["9481","\ubd3a",5,"\ubd41",6,"\ubd4a\ubd4b\ubd4d\ubd4e\ubd4f\ubd51",6,"\ubd5a",9,"\ubd65\ubd66\ubd67\ubd69",22,"\ubd82\ubd83\ubd85\ubd86\ubd8b",4,"\ubd92\ubd94\ubd96\ubd97\ubd98\ubd9b\ubd9d",6,"\ubda5",10,"\ubdb1",6,"\ubdb9",24],["9541","\ubdd2\ubdd3\ubdd6\ubdd7\ubdd9\ubdda\ubddb\ubddd",11,"\ubdea",5,"\ubdf1"],["9561","\ubdf2\ubdf3\ubdf5\ubdf6\ubdf7\ubdf9",6,"\ube01\ube02\ube04\ube06",5,"\ube0e\ube0f\ube11\ube12\ube13"],["9581","\ube15",6,"\ube1e\ube20",35,"\ube46\ube47\ube49\ube4a\ube4b\ube4d\ube4f",4,"\ube56\ube58\ube5c\ube5d\ube5e\ube5f\ube62\ube63\ube65\ube66\ube67\ube69\ube6b",4,"\ube72\ube76",4,"\ube7e\ube7f\ube81\ube82\ube83\ube85",6,"\ube8e\ube92",5,"\ube9a",13,"\ubea9",14],["9641","\ubeb8",23,"\ubed2\ubed3"],["9661","\ubed5\ubed6\ubed9",6,"\ubee1\ubee2\ubee6",5,"\ubeed",8],["9681","\ubef6",10,"\ubf02",5,"\ubf0a",13,"\ubf1a\ubf1e",33,"\ubf42\ubf43\ubf45\ubf46\ubf47\ubf49",6,"\ubf52\ubf53\ubf54\ubf56",44],["9741","\ubf83",16,"\ubf95",8],["9761","\ubf9e",17,"\ubfb1",7],["9781","\ubfb9",11,"\ubfc6",5,"\ubfce\ubfcf\ubfd1\ubfd2\ubfd3\ubfd5",6,"\ubfdd\ubfde\ubfe0\ubfe2",89,"\uc03d\uc03e\uc03f"],["9841","\uc040",16,"\uc052",5,"\uc059\uc05a\uc05b"],["9861","\uc05d\uc05e\uc05f\uc061",6,"\uc06a",15],["9881","\uc07a",21,"\uc092\uc093\uc095\uc096\uc097\uc099",6,"\uc0a2\uc0a4\uc0a6",5,"\uc0ae\uc0b1\uc0b2\uc0b7",4,"\uc0be\uc0c2\uc0c3\uc0c4\uc0c6\uc0c7\uc0ca\uc0cb\uc0cd\uc0ce\uc0cf\uc0d1",6,"\uc0da\uc0de",5,"\uc0e6\uc0e7\uc0e9\uc0ea\uc0eb\uc0ed",6,"\uc0f6\uc0f8\uc0fa",5,"\uc101\uc102\uc103\uc105\uc106\uc107\uc109",6,"\uc111\uc112\uc113\uc114\uc116",5,"\uc121\uc122\uc125\uc128\uc129\uc12a\uc12b\uc12e"],["9941","\uc132\uc133\uc134\uc135\uc137\uc13a\uc13b\uc13d\uc13e\uc13f\uc141",6,"\uc14a\uc14e",5,"\uc156\uc157"],["9961","\uc159\uc15a\uc15b\uc15d",6,"\uc166\uc16a",5,"\uc171\uc172\uc173\uc175\uc176\uc177\uc179\uc17a\uc17b"],["9981","\uc17c",8,"\uc186",5,"\uc18f\uc191\uc192\uc193\uc195\uc197",4,"\uc19e\uc1a0\uc1a2\uc1a3\uc1a4\uc1a6\uc1a7\uc1aa\uc1ab\uc1ad\uc1ae\uc1af\uc1b1",11,"\uc1be",5,"\uc1c5\uc1c6\uc1c7\uc1c9\uc1ca\uc1cb\uc1cd",6,"\uc1d5\uc1d6\uc1d9",6,"\uc1e1\uc1e2\uc1e3\uc1e5\uc1e6\uc1e7\uc1e9",6,"\uc1f2\uc1f4",7,"\uc1fe\uc1ff\uc201\uc202\uc203\uc205",6,"\uc20e\uc210\uc212",5,"\uc21a\uc21b\uc21d\uc21e\uc221\uc222\uc223"],["9a41","\uc224\uc225\uc226\uc227\uc22a\uc22c\uc22e\uc230\uc233\uc235",16],["9a61","\uc246\uc247\uc249",6,"\uc252\uc253\uc255\uc256\uc257\uc259",6,"\uc261\uc262\uc263\uc264\uc266"],["9a81","\uc267",4,"\uc26e\uc26f\uc271\uc272\uc273\uc275",6,"\uc27e\uc280\uc282",5,"\uc28a",5,"\uc291",6,"\uc299\uc29a\uc29c\uc29e",5,"\uc2a6\uc2a7\uc2a9\uc2aa\uc2ab\uc2ae",5,"\uc2b6\uc2b8\uc2ba",33,"\uc2de\uc2df\uc2e1\uc2e2\uc2e5",5,"\uc2ee\uc2f0\uc2f2\uc2f3\uc2f4\uc2f5\uc2f7\uc2fa\uc2fd\uc2fe\uc2ff\uc301",6,"\uc30a\uc30b\uc30e\uc30f"],["9b41","\uc310\uc311\uc312\uc316\uc317\uc319\uc31a\uc31b\uc31d",6,"\uc326\uc327\uc32a",8],["9b61","\uc333",17,"\uc346",7],["9b81","\uc34e",25,"\uc36a\uc36b\uc36d\uc36e\uc36f\uc371\uc373",4,"\uc37a\uc37b\uc37e",5,"\uc385\uc386\uc387\uc389\uc38a\uc38b\uc38d",50,"\uc3c1",22,"\uc3da"],["9c41","\uc3db\uc3dd\uc3de\uc3e1\uc3e3",4,"\uc3ea\uc3eb\uc3ec\uc3ee",5,"\uc3f6\uc3f7\uc3f9",5],["9c61","\uc3ff",8,"\uc409",6,"\uc411",9],["9c81","\uc41b",8,"\uc425",6,"\uc42d\uc42e\uc42f\uc431\uc432\uc433\uc435",6,"\uc43e",9,"\uc449",26,"\uc466\uc467\uc469\uc46a\uc46b\uc46d",6,"\uc476\uc477\uc478\uc47a",5,"\uc481",18,"\uc495",6,"\uc49d",12],["9d41","\uc4aa",13,"\uc4b9\uc4ba\uc4bb\uc4bd",8],["9d61","\uc4c6",25],["9d81","\uc4e0",8,"\uc4ea",5,"\uc4f2\uc4f3\uc4f5\uc4f6\uc4f7\uc4f9\uc4fb\uc4fc\uc4fd\uc4fe\uc502",9,"\uc50d\uc50e\uc50f\uc511\uc512\uc513\uc515",6,"\uc51d",10,"\uc52a\uc52b\uc52d\uc52e\uc52f\uc531",6,"\uc53a\uc53c\uc53e",5,"\uc546\uc547\uc54b\uc54f\uc550\uc551\uc552\uc556\uc55a\uc55b\uc55c\uc55f\uc562\uc563\uc565\uc566\uc567\uc569",6,"\uc572\uc576",5,"\uc57e\uc57f\uc581\uc582\uc583\uc585\uc586\uc588\uc589\uc58a\uc58b\uc58e\uc590\uc592\uc593\uc594"],["9e41","\uc596\uc599\uc59a\uc59b\uc59d\uc59e\uc59f\uc5a1",7,"\uc5aa",9,"\uc5b6"],["9e61","\uc5b7\uc5ba\uc5bf",4,"\uc5cb\uc5cd\uc5cf\uc5d2\uc5d3\uc5d5\uc5d6\uc5d7\uc5d9",6,"\uc5e2\uc5e4\uc5e6\uc5e7"],["9e81","\uc5e8\uc5e9\uc5ea\uc5eb\uc5ef\uc5f1\uc5f2\uc5f3\uc5f5\uc5f8\uc5f9\uc5fa\uc5fb\uc602\uc603\uc604\uc609\uc60a\uc60b\uc60d\uc60e\uc60f\uc611",6,"\uc61a\uc61d",6,"\uc626\uc627\uc629\uc62a\uc62b\uc62f\uc631\uc632\uc636\uc638\uc63a\uc63c\uc63d\uc63e\uc63f\uc642\uc643\uc645\uc646\uc647\uc649",6,"\uc652\uc656",5,"\uc65e\uc65f\uc661",10,"\uc66d\uc66e\uc670\uc672",5,"\uc67a\uc67b\uc67d\uc67e\uc67f\uc681",6,"\uc68a\uc68c\uc68e",5,"\uc696\uc697\uc699\uc69a\uc69b\uc69d",6,"\uc6a6"],["9f41","\uc6a8\uc6aa",5,"\uc6b2\uc6b3\uc6b5\uc6b6\uc6b7\uc6bb",4,"\uc6c2\uc6c4\uc6c6",5,"\uc6ce"],["9f61","\uc6cf\uc6d1\uc6d2\uc6d3\uc6d5",6,"\uc6de\uc6df\uc6e2",5,"\uc6ea\uc6eb\uc6ed\uc6ee\uc6ef\uc6f1\uc6f2"],["9f81","\uc6f3",4,"\uc6fa\uc6fb\uc6fc\uc6fe",5,"\uc706\uc707\uc709\uc70a\uc70b\uc70d",6,"\uc716\uc718\uc71a",5,"\uc722\uc723\uc725\uc726\uc727\uc729",6,"\uc732\uc734\uc736\uc738\uc739\uc73a\uc73b\uc73e\uc73f\uc741\uc742\uc743\uc745",4,"\uc74b\uc74e\uc750\uc759\uc75a\uc75b\uc75d\uc75e\uc75f\uc761",6,"\uc769\uc76a\uc76c",7,"\uc776\uc777\uc779\uc77a\uc77b\uc77f\uc780\uc781\uc782\uc786\uc78b\uc78c\uc78d\uc78f\uc792\uc793\uc795\uc799\uc79b",4,"\uc7a2\uc7a7",4,"\uc7ae\uc7af\uc7b1\uc7b2\uc7b3\uc7b5\uc7b6\uc7b7"],["a041","\uc7b8\uc7b9\uc7ba\uc7bb\uc7be\uc7c2",5,"\uc7ca\uc7cb\uc7cd\uc7cf\uc7d1",6,"\uc7d9\uc7da\uc7db\uc7dc"],["a061","\uc7de",5,"\uc7e5\uc7e6\uc7e7\uc7e9\uc7ea\uc7eb\uc7ed",13],["a081","\uc7fb",4,"\uc802\uc803\uc805\uc806\uc807\uc809\uc80b",4,"\uc812\uc814\uc817",4,"\uc81e\uc81f\uc821\uc822\uc823\uc825",6,"\uc82e\uc830\uc832",5,"\uc839\uc83a\uc83b\uc83d\uc83e\uc83f\uc841",6,"\uc84a\uc84b\uc84e",5,"\uc855",26,"\uc872\uc873\uc875\uc876\uc877\uc879\uc87b",4,"\uc882\uc884\uc888\uc889\uc88a\uc88e",5,"\uc895",7,"\uc89e\uc8a0\uc8a2\uc8a3\uc8a4"],["a141","\uc8a5\uc8a6\uc8a7\uc8a9",18,"\uc8be\uc8bf\uc8c0\uc8c1"],["a161","\uc8c2\uc8c3\uc8c5\uc8c6\uc8c7\uc8c9\uc8ca\uc8cb\uc8cd",6,"\uc8d6\uc8d8\uc8da",5,"\uc8e2\uc8e3\uc8e5"],["a181","\uc8e6",14,"\uc8f6",5,"\uc8fe\uc8ff\uc901\uc902\uc903\uc907",4,"\uc90e\u3000\u3001\u3002\xb7\u2025\u2026\xa8\u3003\xad\u2015\u2225\uff3c\u223c\u2018\u2019\u201c\u201d\u3014\u3015\u3008",9,"\xb1\xd7\xf7\u2260\u2264\u2265\u221e\u2234\xb0\u2032\u2033\u2103\u212b\uffe0\uffe1\uffe5\u2642\u2640\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\xa7\u203b\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u2192\u2190\u2191\u2193\u2194\u3013\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229\u2227\u2228\uffe2"],["a241","\uc910\uc912",5,"\uc919",18],["a261","\uc92d",6,"\uc935",18],["a281","\uc948",7,"\uc952\uc953\uc955\uc956\uc957\uc959",6,"\uc962\uc964",7,"\uc96d\uc96e\uc96f\u21d2\u21d4\u2200\u2203\xb4\uff5e\u02c7\u02d8\u02dd\u02da\u02d9\xb8\u02db\xa1\xbf\u02d0\u222e\u2211\u220f\xa4\u2109\u2030\u25c1\u25c0\u25b7\u25b6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25c8\u25a3\u25d0\u25d1\u2592\u25a4\u25a5\u25a8\u25a7\u25a6\u25a9\u2668\u260f\u260e\u261c\u261e\xb6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266d\u2669\u266a\u266c\u327f\u321c\u2116\u33c7\u2122\u33c2\u33d8\u2121\u20ac\xae"],["a341","\uc971\uc972\uc973\uc975",6,"\uc97d",10,"\uc98a\uc98b\uc98d\uc98e\uc98f"],["a361","\uc991",6,"\uc99a\uc99c\uc99e",16],["a381","\uc9af",16,"\uc9c2\uc9c3\uc9c5\uc9c6\uc9c9\uc9cb",4,"\uc9d2\uc9d4\uc9d7\uc9d8\uc9db\uff01",58,"\uffe6\uff3d",32,"\uffe3"],["a441","\uc9de\uc9df\uc9e1\uc9e3\uc9e5\uc9e6\uc9e8\uc9e9\uc9ea\uc9eb\uc9ee\uc9f2",5,"\uc9fa\uc9fb\uc9fd\uc9fe\uc9ff\uca01\uca02\uca03\uca04"],["a461","\uca05\uca06\uca07\uca0a\uca0e",5,"\uca15\uca16\uca17\uca19",12],["a481","\uca26\uca27\uca28\uca2a",28,"\u3131",93],["a541","\uca47",4,"\uca4e\uca4f\uca51\uca52\uca53\uca55",6,"\uca5e\uca62",5,"\uca69\uca6a"],["a561","\uca6b",17,"\uca7e",5,"\uca85\uca86"],["a581","\uca87",16,"\uca99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03a3",6],["a5e1","\u03b1",16,"\u03c3",6],["a641","\ucaa8",19,"\ucabe\ucabf\ucac1\ucac2\ucac3\ucac5"],["a661","\ucac6",5,"\ucace\ucad0\ucad2\ucad4\ucad5\ucad6\ucad7\ucada",5,"\ucae1",6],["a681","\ucae8\ucae9\ucaea\ucaeb\ucaed",6,"\ucaf5",18,"\ucb09\ucb0a\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542\u2512\u2511\u251a\u2519\u2516\u2515\u250e\u250d\u251e\u251f\u2521\u2522\u2526\u2527\u2529\u252a\u252d\u252e\u2531\u2532\u2535\u2536\u2539\u253a\u253d\u253e\u2540\u2541\u2543",7],["a741","\ucb0b",4,"\ucb11\ucb12\ucb13\ucb15\ucb16\ucb17\ucb19",6,"\ucb22",7],["a761","\ucb2a",22,"\ucb42\ucb43\ucb44"],["a781","\ucb45\ucb46\ucb47\ucb4a\ucb4b\ucb4d\ucb4e\ucb4f\ucb51",6,"\ucb5a\ucb5b\ucb5c\ucb5e",5,"\ucb65",7,"\u3395\u3396\u3397\u2113\u3398\u33c4\u33a3\u33a4\u33a5\u33a6\u3399",9,"\u33ca\u338d\u338e\u338f\u33cf\u3388\u3389\u33c8\u33a7\u33a8\u33b0",9,"\u3380",4,"\u33ba",5,"\u3390",4,"\u2126\u33c0\u33c1\u338a\u338b\u338c\u33d6\u33c5\u33ad\u33ae\u33af\u33db\u33a9\u33aa\u33ab\u33ac\u33dd\u33d0\u33d3\u33c3\u33c9\u33dc\u33c6"],["a841","\ucb6d",10,"\ucb7a",14],["a861","\ucb89",18,"\ucb9d",6],["a881","\ucba4",19,"\ucbb9",11,"\xc6\xd0\xaa\u0126"],["a8a6","\u0132"],["a8a8","\u013f\u0141\xd8\u0152\xba\xde\u0166\u014a"],["a8b1","\u3260",27,"\u24d0",25,"\u2460",14,"\xbd\u2153\u2154\xbc\xbe\u215b\u215c\u215d\u215e"],["a941","\ucbc5",14,"\ucbd5",10],["a961","\ucbe0\ucbe1\ucbe2\ucbe3\ucbe5\ucbe6\ucbe8\ucbea",18],["a981","\ucbfd",14,"\ucc0e\ucc0f\ucc11\ucc12\ucc13\ucc15",6,"\ucc1e\ucc1f\ucc20\ucc23\ucc24\xe6\u0111\xf0\u0127\u0131\u0133\u0138\u0140\u0142\xf8\u0153\xdf\xfe\u0167\u014b\u0149\u3200",27,"\u249c",25,"\u2474",14,"\xb9\xb2\xb3\u2074\u207f\u2081\u2082\u2083\u2084"],["aa41","\ucc25\ucc26\ucc2a\ucc2b\ucc2d\ucc2f\ucc31",6,"\ucc3a\ucc3f",4,"\ucc46\ucc47\ucc49\ucc4a\ucc4b\ucc4d\ucc4e"],["aa61","\ucc4f",4,"\ucc56\ucc5a",5,"\ucc61\ucc62\ucc63\ucc65\ucc67\ucc69",6,"\ucc71\ucc72"],["aa81","\ucc73\ucc74\ucc76",29,"\u3041",82],["ab41","\ucc94\ucc95\ucc96\ucc97\ucc9a\ucc9b\ucc9d\ucc9e\ucc9f\ucca1",6,"\uccaa\uccae",5,"\uccb6\uccb7\uccb9"],["ab61","\uccba\uccbb\uccbd",6,"\uccc6\uccc8\uccca",5,"\uccd1\uccd2\uccd3\uccd5",5],["ab81","\uccdb",8,"\ucce5",6,"\ucced\uccee\uccef\uccf1",12,"\u30a1",85],["ac41","\uccfe\uccff\ucd00\ucd02",5,"\ucd0a\ucd0b\ucd0d\ucd0e\ucd0f\ucd11",6,"\ucd1a\ucd1c\ucd1e\ucd1f\ucd20"],["ac61","\ucd21\ucd22\ucd23\ucd25\ucd26\ucd27\ucd29\ucd2a\ucd2b\ucd2d",11,"\ucd3a",4],["ac81","\ucd3f",28,"\ucd5d\ucd5e\ucd5f\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\ucd61\ucd62\ucd63\ucd65",6,"\ucd6e\ucd70\ucd72",5,"\ucd79",7],["ad61","\ucd81",6,"\ucd89",10,"\ucd96\ucd97\ucd99\ucd9a\ucd9b\ucd9d\ucd9e\ucd9f"],["ad81","\ucda0\ucda1\ucda2\ucda3\ucda6\ucda8\ucdaa",5,"\ucdb1",18,"\ucdc5"],["ae41","\ucdc6",5,"\ucdcd\ucdce\ucdcf\ucdd1",16],["ae61","\ucde2",5,"\ucde9\ucdea\ucdeb\ucded\ucdee\ucdef\ucdf1",6,"\ucdfa\ucdfc\ucdfe",4],["ae81","\uce03\uce05\uce06\uce07\uce09\uce0a\uce0b\uce0d",6,"\uce15\uce16\uce17\uce18\uce1a",5,"\uce22\uce23\uce25\uce26\uce27\uce29\uce2a\uce2b"],["af41","\uce2c\uce2d\uce2e\uce2f\uce32\uce34\uce36",19],["af61","\uce4a",13,"\uce5a\uce5b\uce5d\uce5e\uce62",5,"\uce6a\uce6c"],["af81","\uce6e",5,"\uce76\uce77\uce79\uce7a\uce7b\uce7d",6,"\uce86\uce88\uce8a",5,"\uce92\uce93\uce95\uce96\uce97\uce99"],["b041","\uce9a",5,"\ucea2\ucea6",5,"\uceae",12],["b061","\ucebb",5,"\ucec2",19],["b081","\uced6",13,"\ucee6\ucee7\ucee9\uceea\uceed",6,"\ucef6\ucefa",5,"\uac00\uac01\uac04\uac07\uac08\uac09\uac0a\uac10",7,"\uac19",4,"\uac20\uac24\uac2c\uac2d\uac2f\uac30\uac31\uac38\uac39\uac3c\uac40\uac4b\uac4d\uac54\uac58\uac5c\uac70\uac71\uac74\uac77\uac78\uac7a\uac80\uac81\uac83\uac84\uac85\uac86\uac89\uac8a\uac8b\uac8c\uac90\uac94\uac9c\uac9d\uac9f\uaca0\uaca1\uaca8\uaca9\uacaa\uacac\uacaf\uacb0\uacb8\uacb9\uacbb\uacbc\uacbd\uacc1\uacc4\uacc8\uaccc\uacd5\uacd7\uace0\uace1\uace4\uace7\uace8\uacea\uacec\uacef\uacf0\uacf1\uacf3\uacf5\uacf6\uacfc\uacfd\uad00\uad04\uad06"],["b141","\ucf02\ucf03\ucf05\ucf06\ucf07\ucf09",6,"\ucf12\ucf14\ucf16",5,"\ucf1d\ucf1e\ucf1f\ucf21\ucf22\ucf23"],["b161","\ucf25",6,"\ucf2e\ucf32",5,"\ucf39",11],["b181","\ucf45",14,"\ucf56\ucf57\ucf59\ucf5a\ucf5b\ucf5d",6,"\ucf66\ucf68\ucf6a\ucf6b\ucf6c\uad0c\uad0d\uad0f\uad11\uad18\uad1c\uad20\uad29\uad2c\uad2d\uad34\uad35\uad38\uad3c\uad44\uad45\uad47\uad49\uad50\uad54\uad58\uad61\uad63\uad6c\uad6d\uad70\uad73\uad74\uad75\uad76\uad7b\uad7c\uad7d\uad7f\uad81\uad82\uad88\uad89\uad8c\uad90\uad9c\uad9d\uada4\uadb7\uadc0\uadc1\uadc4\uadc8\uadd0\uadd1\uadd3\uaddc\uade0\uade4\uadf8\uadf9\uadfc\uadff\uae00\uae01\uae08\uae09\uae0b\uae0d\uae14\uae30\uae31\uae34\uae37\uae38\uae3a\uae40\uae41\uae43\uae45\uae46\uae4a\uae4c\uae4d\uae4e\uae50\uae54\uae56\uae5c\uae5d\uae5f\uae60\uae61\uae65\uae68\uae69\uae6c\uae70\uae78"],["b241","\ucf6d\ucf6e\ucf6f\ucf72\ucf73\ucf75\ucf76\ucf77\ucf79",6,"\ucf81\ucf82\ucf83\ucf84\ucf86",5,"\ucf8d"],["b261","\ucf8e",18,"\ucfa2",5,"\ucfa9"],["b281","\ucfaa",5,"\ucfb1",18,"\ucfc5",6,"\uae79\uae7b\uae7c\uae7d\uae84\uae85\uae8c\uaebc\uaebd\uaebe\uaec0\uaec4\uaecc\uaecd\uaecf\uaed0\uaed1\uaed8\uaed9\uaedc\uaee8\uaeeb\uaeed\uaef4\uaef8\uaefc\uaf07\uaf08\uaf0d\uaf10\uaf2c\uaf2d\uaf30\uaf32\uaf34\uaf3c\uaf3d\uaf3f\uaf41\uaf42\uaf43\uaf48\uaf49\uaf50\uaf5c\uaf5d\uaf64\uaf65\uaf79\uaf80\uaf84\uaf88\uaf90\uaf91\uaf95\uaf9c\uafb8\uafb9\uafbc\uafc0\uafc7\uafc8\uafc9\uafcb\uafcd\uafce\uafd4\uafdc\uafe8\uafe9\uaff0\uaff1\uaff4\uaff8\ub000\ub001\ub004\ub00c\ub010\ub014\ub01c\ub01d\ub028\ub044\ub045\ub048\ub04a\ub04c\ub04e\ub053\ub054\ub055\ub057\ub059"],["b341","\ucfcc",19,"\ucfe2\ucfe3\ucfe5\ucfe6\ucfe7\ucfe9"],["b361","\ucfea",5,"\ucff2\ucff4\ucff6",5,"\ucffd\ucffe\ucfff\ud001\ud002\ud003\ud005",5],["b381","\ud00b",5,"\ud012",5,"\ud019",19,"\ub05d\ub07c\ub07d\ub080\ub084\ub08c\ub08d\ub08f\ub091\ub098\ub099\ub09a\ub09c\ub09f\ub0a0\ub0a1\ub0a2\ub0a8\ub0a9\ub0ab",4,"\ub0b1\ub0b3\ub0b4\ub0b5\ub0b8\ub0bc\ub0c4\ub0c5\ub0c7\ub0c8\ub0c9\ub0d0\ub0d1\ub0d4\ub0d8\ub0e0\ub0e5\ub108\ub109\ub10b\ub10c\ub110\ub112\ub113\ub118\ub119\ub11b\ub11c\ub11d\ub123\ub124\ub125\ub128\ub12c\ub134\ub135\ub137\ub138\ub139\ub140\ub141\ub144\ub148\ub150\ub151\ub154\ub155\ub158\ub15c\ub160\ub178\ub179\ub17c\ub180\ub182\ub188\ub189\ub18b\ub18d\ub192\ub193\ub194\ub198\ub19c\ub1a8\ub1cc\ub1d0\ub1d4\ub1dc\ub1dd"],["b441","\ud02e",5,"\ud036\ud037\ud039\ud03a\ud03b\ud03d",6,"\ud046\ud048\ud04a",5],["b461","\ud051\ud052\ud053\ud055\ud056\ud057\ud059",6,"\ud061",10,"\ud06e\ud06f"],["b481","\ud071\ud072\ud073\ud075",6,"\ud07e\ud07f\ud080\ud082",18,"\ub1df\ub1e8\ub1e9\ub1ec\ub1f0\ub1f9\ub1fb\ub1fd\ub204\ub205\ub208\ub20b\ub20c\ub214\ub215\ub217\ub219\ub220\ub234\ub23c\ub258\ub25c\ub260\ub268\ub269\ub274\ub275\ub27c\ub284\ub285\ub289\ub290\ub291\ub294\ub298\ub299\ub29a\ub2a0\ub2a1\ub2a3\ub2a5\ub2a6\ub2aa\ub2ac\ub2b0\ub2b4\ub2c8\ub2c9\ub2cc\ub2d0\ub2d2\ub2d8\ub2d9\ub2db\ub2dd\ub2e2\ub2e4\ub2e5\ub2e6\ub2e8\ub2eb",4,"\ub2f3\ub2f4\ub2f5\ub2f7",4,"\ub2ff\ub300\ub301\ub304\ub308\ub310\ub311\ub313\ub314\ub315\ub31c\ub354\ub355\ub356\ub358\ub35b\ub35c\ub35e\ub35f\ub364\ub365"],["b541","\ud095",14,"\ud0a6\ud0a7\ud0a9\ud0aa\ud0ab\ud0ad",5],["b561","\ud0b3\ud0b6\ud0b8\ud0ba",5,"\ud0c2\ud0c3\ud0c5\ud0c6\ud0c7\ud0ca",5,"\ud0d2\ud0d6",4],["b581","\ud0db\ud0de\ud0df\ud0e1\ud0e2\ud0e3\ud0e5",6,"\ud0ee\ud0f2",5,"\ud0f9",11,"\ub367\ub369\ub36b\ub36e\ub370\ub371\ub374\ub378\ub380\ub381\ub383\ub384\ub385\ub38c\ub390\ub394\ub3a0\ub3a1\ub3a8\ub3ac\ub3c4\ub3c5\ub3c8\ub3cb\ub3cc\ub3ce\ub3d0\ub3d4\ub3d5\ub3d7\ub3d9\ub3db\ub3dd\ub3e0\ub3e4\ub3e8\ub3fc\ub410\ub418\ub41c\ub420\ub428\ub429\ub42b\ub434\ub450\ub451\ub454\ub458\ub460\ub461\ub463\ub465\ub46c\ub480\ub488\ub49d\ub4a4\ub4a8\ub4ac\ub4b5\ub4b7\ub4b9\ub4c0\ub4c4\ub4c8\ub4d0\ub4d5\ub4dc\ub4dd\ub4e0\ub4e3\ub4e4\ub4e6\ub4ec\ub4ed\ub4ef\ub4f1\ub4f8\ub514\ub515\ub518\ub51b\ub51c\ub524\ub525\ub527\ub528\ub529\ub52a\ub530\ub531\ub534\ub538"],["b641","\ud105",7,"\ud10e",17],["b661","\ud120",15,"\ud132\ud133\ud135\ud136\ud137\ud139\ud13b\ud13c\ud13d\ud13e"],["b681","\ud13f\ud142\ud146",5,"\ud14e\ud14f\ud151\ud152\ud153\ud155",6,"\ud15e\ud160\ud162",5,"\ud169\ud16a\ud16b\ud16d\ub540\ub541\ub543\ub544\ub545\ub54b\ub54c\ub54d\ub550\ub554\ub55c\ub55d\ub55f\ub560\ub561\ub5a0\ub5a1\ub5a4\ub5a8\ub5aa\ub5ab\ub5b0\ub5b1\ub5b3\ub5b4\ub5b5\ub5bb\ub5bc\ub5bd\ub5c0\ub5c4\ub5cc\ub5cd\ub5cf\ub5d0\ub5d1\ub5d8\ub5ec\ub610\ub611\ub614\ub618\ub625\ub62c\ub634\ub648\ub664\ub668\ub69c\ub69d\ub6a0\ub6a4\ub6ab\ub6ac\ub6b1\ub6d4\ub6f0\ub6f4\ub6f8\ub700\ub701\ub705\ub728\ub729\ub72c\ub72f\ub730\ub738\ub739\ub73b\ub744\ub748\ub74c\ub754\ub755\ub760\ub764\ub768\ub770\ub771\ub773\ub775\ub77c\ub77d\ub780\ub784\ub78c\ub78d\ub78f\ub790\ub791\ub792\ub796\ub797"],["b741","\ud16e",13,"\ud17d",6,"\ud185\ud186\ud187\ud189\ud18a"],["b761","\ud18b",20,"\ud1a2\ud1a3\ud1a5\ud1a6\ud1a7"],["b781","\ud1a9",6,"\ud1b2\ud1b4\ud1b6\ud1b7\ud1b8\ud1b9\ud1bb\ud1bd\ud1be\ud1bf\ud1c1",14,"\ub798\ub799\ub79c\ub7a0\ub7a8\ub7a9\ub7ab\ub7ac\ub7ad\ub7b4\ub7b5\ub7b8\ub7c7\ub7c9\ub7ec\ub7ed\ub7f0\ub7f4\ub7fc\ub7fd\ub7ff\ub800\ub801\ub807\ub808\ub809\ub80c\ub810\ub818\ub819\ub81b\ub81d\ub824\ub825\ub828\ub82c\ub834\ub835\ub837\ub838\ub839\ub840\ub844\ub851\ub853\ub85c\ub85d\ub860\ub864\ub86c\ub86d\ub86f\ub871\ub878\ub87c\ub88d\ub8a8\ub8b0\ub8b4\ub8b8\ub8c0\ub8c1\ub8c3\ub8c5\ub8cc\ub8d0\ub8d4\ub8dd\ub8df\ub8e1\ub8e8\ub8e9\ub8ec\ub8f0\ub8f8\ub8f9\ub8fb\ub8fd\ub904\ub918\ub920\ub93c\ub93d\ub940\ub944\ub94c\ub94f\ub951\ub958\ub959\ub95c\ub960\ub968\ub969"],["b841","\ud1d0",7,"\ud1d9",17],["b861","\ud1eb",8,"\ud1f5\ud1f6\ud1f7\ud1f9",13],["b881","\ud208\ud20a",5,"\ud211",24,"\ub96b\ub96d\ub974\ub975\ub978\ub97c\ub984\ub985\ub987\ub989\ub98a\ub98d\ub98e\ub9ac\ub9ad\ub9b0\ub9b4\ub9bc\ub9bd\ub9bf\ub9c1\ub9c8\ub9c9\ub9cc\ub9ce",4,"\ub9d8\ub9d9\ub9db\ub9dd\ub9de\ub9e1\ub9e3\ub9e4\ub9e5\ub9e8\ub9ec\ub9f4\ub9f5\ub9f7\ub9f8\ub9f9\ub9fa\uba00\uba01\uba08\uba15\uba38\uba39\uba3c\uba40\uba42\uba48\uba49\uba4b\uba4d\uba4e\uba53\uba54\uba55\uba58\uba5c\uba64\uba65\uba67\uba68\uba69\uba70\uba71\uba74\uba78\uba83\uba84\uba85\uba87\uba8c\ubaa8\ubaa9\ubaab\ubaac\ubab0\ubab2\ubab8\ubab9\ubabb\ubabd\ubac4\ubac8\ubad8\ubad9\ubafc"],["b941","\ud22a\ud22b\ud22e\ud22f\ud231\ud232\ud233\ud235",6,"\ud23e\ud240\ud242",5,"\ud249\ud24a\ud24b\ud24c"],["b961","\ud24d",14,"\ud25d",6,"\ud265\ud266\ud267\ud268"],["b981","\ud269",22,"\ud282\ud283\ud285\ud286\ud287\ud289\ud28a\ud28b\ud28c\ubb00\ubb04\ubb0d\ubb0f\ubb11\ubb18\ubb1c\ubb20\ubb29\ubb2b\ubb34\ubb35\ubb36\ubb38\ubb3b\ubb3c\ubb3d\ubb3e\ubb44\ubb45\ubb47\ubb49\ubb4d\ubb4f\ubb50\ubb54\ubb58\ubb61\ubb63\ubb6c\ubb88\ubb8c\ubb90\ubba4\ubba8\ubbac\ubbb4\ubbb7\ubbc0\ubbc4\ubbc8\ubbd0\ubbd3\ubbf8\ubbf9\ubbfc\ubbff\ubc00\ubc02\ubc08\ubc09\ubc0b\ubc0c\ubc0d\ubc0f\ubc11\ubc14",4,"\ubc1b",4,"\ubc24\ubc25\ubc27\ubc29\ubc2d\ubc30\ubc31\ubc34\ubc38\ubc40\ubc41\ubc43\ubc44\ubc45\ubc49\ubc4c\ubc4d\ubc50\ubc5d\ubc84\ubc85\ubc88\ubc8b\ubc8c\ubc8e\ubc94\ubc95\ubc97"],["ba41","\ud28d\ud28e\ud28f\ud292\ud293\ud294\ud296",5,"\ud29d\ud29e\ud29f\ud2a1\ud2a2\ud2a3\ud2a5",6,"\ud2ad"],["ba61","\ud2ae\ud2af\ud2b0\ud2b2",5,"\ud2ba\ud2bb\ud2bd\ud2be\ud2c1\ud2c3",4,"\ud2ca\ud2cc",5],["ba81","\ud2d2\ud2d3\ud2d5\ud2d6\ud2d7\ud2d9\ud2da\ud2db\ud2dd",6,"\ud2e6",9,"\ud2f2\ud2f3\ud2f5\ud2f6\ud2f7\ud2f9\ud2fa\ubc99\ubc9a\ubca0\ubca1\ubca4\ubca7\ubca8\ubcb0\ubcb1\ubcb3\ubcb4\ubcb5\ubcbc\ubcbd\ubcc0\ubcc4\ubccd\ubccf\ubcd0\ubcd1\ubcd5\ubcd8\ubcdc\ubcf4\ubcf5\ubcf6\ubcf8\ubcfc\ubd04\ubd05\ubd07\ubd09\ubd10\ubd14\ubd24\ubd2c\ubd40\ubd48\ubd49\ubd4c\ubd50\ubd58\ubd59\ubd64\ubd68\ubd80\ubd81\ubd84\ubd87\ubd88\ubd89\ubd8a\ubd90\ubd91\ubd93\ubd95\ubd99\ubd9a\ubd9c\ubda4\ubdb0\ubdb8\ubdd4\ubdd5\ubdd8\ubddc\ubde9\ubdf0\ubdf4\ubdf8\ube00\ube03\ube05\ube0c\ube0d\ube10\ube14\ube1c\ube1d\ube1f\ube44\ube45\ube48\ube4c\ube4e\ube54\ube55\ube57\ube59\ube5a\ube5b\ube60\ube61\ube64"],["bb41","\ud2fb",4,"\ud302\ud304\ud306",5,"\ud30f\ud311\ud312\ud313\ud315\ud317",4,"\ud31e\ud322\ud323"],["bb61","\ud324\ud326\ud327\ud32a\ud32b\ud32d\ud32e\ud32f\ud331",6,"\ud33a\ud33e",5,"\ud346\ud347\ud348\ud349"],["bb81","\ud34a",31,"\ube68\ube6a\ube70\ube71\ube73\ube74\ube75\ube7b\ube7c\ube7d\ube80\ube84\ube8c\ube8d\ube8f\ube90\ube91\ube98\ube99\ubea8\ubed0\ubed1\ubed4\ubed7\ubed8\ubee0\ubee3\ubee4\ubee5\ubeec\ubf01\ubf08\ubf09\ubf18\ubf19\ubf1b\ubf1c\ubf1d\ubf40\ubf41\ubf44\ubf48\ubf50\ubf51\ubf55\ubf94\ubfb0\ubfc5\ubfcc\ubfcd\ubfd0\ubfd4\ubfdc\ubfdf\ubfe1\uc03c\uc051\uc058\uc05c\uc060\uc068\uc069\uc090\uc091\uc094\uc098\uc0a0\uc0a1\uc0a3\uc0a5\uc0ac\uc0ad\uc0af\uc0b0\uc0b3\uc0b4\uc0b5\uc0b6\uc0bc\uc0bd\uc0bf\uc0c0\uc0c1\uc0c5\uc0c8\uc0c9\uc0cc\uc0d0\uc0d8\uc0d9\uc0db\uc0dc\uc0dd\uc0e4"],["bc41","\ud36a",17,"\ud37e\ud37f\ud381\ud382\ud383\ud385\ud386\ud387"],["bc61","\ud388\ud389\ud38a\ud38b\ud38e\ud392",5,"\ud39a\ud39b\ud39d\ud39e\ud39f\ud3a1",6,"\ud3aa\ud3ac\ud3ae"],["bc81","\ud3af",4,"\ud3b5\ud3b6\ud3b7\ud3b9\ud3ba\ud3bb\ud3bd",6,"\ud3c6\ud3c7\ud3ca",5,"\ud3d1",5,"\uc0e5\uc0e8\uc0ec\uc0f4\uc0f5\uc0f7\uc0f9\uc100\uc104\uc108\uc110\uc115\uc11c",4,"\uc123\uc124\uc126\uc127\uc12c\uc12d\uc12f\uc130\uc131\uc136\uc138\uc139\uc13c\uc140\uc148\uc149\uc14b\uc14c\uc14d\uc154\uc155\uc158\uc15c\uc164\uc165\uc167\uc168\uc169\uc170\uc174\uc178\uc185\uc18c\uc18d\uc18e\uc190\uc194\uc196\uc19c\uc19d\uc19f\uc1a1\uc1a5\uc1a8\uc1a9\uc1ac\uc1b0\uc1bd\uc1c4\uc1c8\uc1cc\uc1d4\uc1d7\uc1d8\uc1e0\uc1e4\uc1e8\uc1f0\uc1f1\uc1f3\uc1fc\uc1fd\uc200\uc204\uc20c\uc20d\uc20f\uc211\uc218\uc219\uc21c\uc21f\uc220\uc228\uc229\uc22b\uc22d"],["bd41","\ud3d7\ud3d9",7,"\ud3e2\ud3e4",7,"\ud3ee\ud3ef\ud3f1\ud3f2\ud3f3\ud3f5\ud3f6\ud3f7"],["bd61","\ud3f8\ud3f9\ud3fa\ud3fb\ud3fe\ud400\ud402",5,"\ud409",13],["bd81","\ud417",5,"\ud41e",25,"\uc22f\uc231\uc232\uc234\uc248\uc250\uc251\uc254\uc258\uc260\uc265\uc26c\uc26d\uc270\uc274\uc27c\uc27d\uc27f\uc281\uc288\uc289\uc290\uc298\uc29b\uc29d\uc2a4\uc2a5\uc2a8\uc2ac\uc2ad\uc2b4\uc2b5\uc2b7\uc2b9\uc2dc\uc2dd\uc2e0\uc2e3\uc2e4\uc2eb\uc2ec\uc2ed\uc2ef\uc2f1\uc2f6\uc2f8\uc2f9\uc2fb\uc2fc\uc300\uc308\uc309\uc30c\uc30d\uc313\uc314\uc315\uc318\uc31c\uc324\uc325\uc328\uc329\uc345\uc368\uc369\uc36c\uc370\uc372\uc378\uc379\uc37c\uc37d\uc384\uc388\uc38c\uc3c0\uc3d8\uc3d9\uc3dc\uc3df\uc3e0\uc3e2\uc3e8\uc3e9\uc3ed\uc3f4\uc3f5\uc3f8\uc408\uc410\uc424\uc42c\uc430"],["be41","\ud438",7,"\ud441\ud442\ud443\ud445",14],["be61","\ud454",7,"\ud45d\ud45e\ud45f\ud461\ud462\ud463\ud465",7,"\ud46e\ud470\ud471\ud472"],["be81","\ud473",4,"\ud47a\ud47b\ud47d\ud47e\ud481\ud483",4,"\ud48a\ud48c\ud48e",5,"\ud495",8,"\uc434\uc43c\uc43d\uc448\uc464\uc465\uc468\uc46c\uc474\uc475\uc479\uc480\uc494\uc49c\uc4b8\uc4bc\uc4e9\uc4f0\uc4f1\uc4f4\uc4f8\uc4fa\uc4ff\uc500\uc501\uc50c\uc510\uc514\uc51c\uc528\uc529\uc52c\uc530\uc538\uc539\uc53b\uc53d\uc544\uc545\uc548\uc549\uc54a\uc54c\uc54d\uc54e\uc553\uc554\uc555\uc557\uc558\uc559\uc55d\uc55e\uc560\uc561\uc564\uc568\uc570\uc571\uc573\uc574\uc575\uc57c\uc57d\uc580\uc584\uc587\uc58c\uc58d\uc58f\uc591\uc595\uc597\uc598\uc59c\uc5a0\uc5a9\uc5b4\uc5b5\uc5b8\uc5b9\uc5bb\uc5bc\uc5bd\uc5be\uc5c4",6,"\uc5cc\uc5ce"],["bf41","\ud49e",10,"\ud4aa",14],["bf61","\ud4b9",18,"\ud4cd\ud4ce\ud4cf\ud4d1\ud4d2\ud4d3\ud4d5"],["bf81","\ud4d6",5,"\ud4dd\ud4de\ud4e0",7,"\ud4e9\ud4ea\ud4eb\ud4ed\ud4ee\ud4ef\ud4f1",6,"\ud4f9\ud4fa\ud4fc\uc5d0\uc5d1\uc5d4\uc5d8\uc5e0\uc5e1\uc5e3\uc5e5\uc5ec\uc5ed\uc5ee\uc5f0\uc5f4\uc5f6\uc5f7\uc5fc",5,"\uc605\uc606\uc607\uc608\uc60c\uc610\uc618\uc619\uc61b\uc61c\uc624\uc625\uc628\uc62c\uc62d\uc62e\uc630\uc633\uc634\uc635\uc637\uc639\uc63b\uc640\uc641\uc644\uc648\uc650\uc651\uc653\uc654\uc655\uc65c\uc65d\uc660\uc66c\uc66f\uc671\uc678\uc679\uc67c\uc680\uc688\uc689\uc68b\uc68d\uc694\uc695\uc698\uc69c\uc6a4\uc6a5\uc6a7\uc6a9\uc6b0\uc6b1\uc6b4\uc6b8\uc6b9\uc6ba\uc6c0\uc6c1\uc6c3\uc6c5\uc6cc\uc6cd\uc6d0\uc6d4\uc6dc\uc6dd\uc6e0\uc6e1\uc6e8"],["c041","\ud4fe",5,"\ud505\ud506\ud507\ud509\ud50a\ud50b\ud50d",6,"\ud516\ud518",5],["c061","\ud51e",25],["c081","\ud538\ud539\ud53a\ud53b\ud53e\ud53f\ud541\ud542\ud543\ud545",6,"\ud54e\ud550\ud552",5,"\ud55a\ud55b\ud55d\ud55e\ud55f\ud561\ud562\ud563\uc6e9\uc6ec\uc6f0\uc6f8\uc6f9\uc6fd\uc704\uc705\uc708\uc70c\uc714\uc715\uc717\uc719\uc720\uc721\uc724\uc728\uc730\uc731\uc733\uc735\uc737\uc73c\uc73d\uc740\uc744\uc74a\uc74c\uc74d\uc74f\uc751",7,"\uc75c\uc760\uc768\uc76b\uc774\uc775\uc778\uc77c\uc77d\uc77e\uc783\uc784\uc785\uc787\uc788\uc789\uc78a\uc78e\uc790\uc791\uc794\uc796\uc797\uc798\uc79a\uc7a0\uc7a1\uc7a3\uc7a4\uc7a5\uc7a6\uc7ac\uc7ad\uc7b0\uc7b4\uc7bc\uc7bd\uc7bf\uc7c0\uc7c1\uc7c8\uc7c9\uc7cc\uc7ce\uc7d0\uc7d8\uc7dd\uc7e4\uc7e8\uc7ec\uc800\uc801\uc804\uc808\uc80a"],["c141","\ud564\ud566\ud567\ud56a\ud56c\ud56e",5,"\ud576\ud577\ud579\ud57a\ud57b\ud57d",6,"\ud586\ud58a\ud58b"],["c161","\ud58c\ud58d\ud58e\ud58f\ud591",19,"\ud5a6\ud5a7"],["c181","\ud5a8",31,"\uc810\uc811\uc813\uc815\uc816\uc81c\uc81d\uc820\uc824\uc82c\uc82d\uc82f\uc831\uc838\uc83c\uc840\uc848\uc849\uc84c\uc84d\uc854\uc870\uc871\uc874\uc878\uc87a\uc880\uc881\uc883\uc885\uc886\uc887\uc88b\uc88c\uc88d\uc894\uc89d\uc89f\uc8a1\uc8a8\uc8bc\uc8bd\uc8c4\uc8c8\uc8cc\uc8d4\uc8d5\uc8d7\uc8d9\uc8e0\uc8e1\uc8e4\uc8f5\uc8fc\uc8fd\uc900\uc904\uc905\uc906\uc90c\uc90d\uc90f\uc911\uc918\uc92c\uc934\uc950\uc951\uc954\uc958\uc960\uc961\uc963\uc96c\uc970\uc974\uc97c\uc988\uc989\uc98c\uc990\uc998\uc999\uc99b\uc99d\uc9c0\uc9c1\uc9c4\uc9c7\uc9c8\uc9ca\uc9d0\uc9d1\uc9d3"],["c241","\ud5ca\ud5cb\ud5cd\ud5ce\ud5cf\ud5d1\ud5d3",4,"\ud5da\ud5dc\ud5de",5,"\ud5e6\ud5e7\ud5e9\ud5ea\ud5eb\ud5ed\ud5ee"],["c261","\ud5ef",4,"\ud5f6\ud5f8\ud5fa",5,"\ud602\ud603\ud605\ud606\ud607\ud609",6,"\ud612"],["c281","\ud616",5,"\ud61d\ud61e\ud61f\ud621\ud622\ud623\ud625",7,"\ud62e",9,"\ud63a\ud63b\uc9d5\uc9d6\uc9d9\uc9da\uc9dc\uc9dd\uc9e0\uc9e2\uc9e4\uc9e7\uc9ec\uc9ed\uc9ef\uc9f0\uc9f1\uc9f8\uc9f9\uc9fc\uca00\uca08\uca09\uca0b\uca0c\uca0d\uca14\uca18\uca29\uca4c\uca4d\uca50\uca54\uca5c\uca5d\uca5f\uca60\uca61\uca68\uca7d\uca84\uca98\ucabc\ucabd\ucac0\ucac4\ucacc\ucacd\ucacf\ucad1\ucad3\ucad8\ucad9\ucae0\ucaec\ucaf4\ucb08\ucb10\ucb14\ucb18\ucb20\ucb21\ucb41\ucb48\ucb49\ucb4c\ucb50\ucb58\ucb59\ucb5d\ucb64\ucb78\ucb79\ucb9c\ucbb8\ucbd4\ucbe4\ucbe7\ucbe9\ucc0c\ucc0d\ucc10\ucc14\ucc1c\ucc1d\ucc21\ucc22\ucc27\ucc28\ucc29\ucc2c\ucc2e\ucc30\ucc38\ucc39\ucc3b"],["c341","\ud63d\ud63e\ud63f\ud641\ud642\ud643\ud644\ud646\ud647\ud64a\ud64c\ud64e\ud64f\ud650\ud652\ud653\ud656\ud657\ud659\ud65a\ud65b\ud65d",4],["c361","\ud662",4,"\ud668\ud66a",5,"\ud672\ud673\ud675",11],["c381","\ud681\ud682\ud684\ud686",5,"\ud68e\ud68f\ud691\ud692\ud693\ud695",7,"\ud69e\ud6a0\ud6a2",5,"\ud6a9\ud6aa\ucc3c\ucc3d\ucc3e\ucc44\ucc45\ucc48\ucc4c\ucc54\ucc55\ucc57\ucc58\ucc59\ucc60\ucc64\ucc66\ucc68\ucc70\ucc75\ucc98\ucc99\ucc9c\ucca0\ucca8\ucca9\uccab\uccac\uccad\uccb4\uccb5\uccb8\uccbc\uccc4\uccc5\uccc7\uccc9\uccd0\uccd4\ucce4\uccec\uccf0\ucd01\ucd08\ucd09\ucd0c\ucd10\ucd18\ucd19\ucd1b\ucd1d\ucd24\ucd28\ucd2c\ucd39\ucd5c\ucd60\ucd64\ucd6c\ucd6d\ucd6f\ucd71\ucd78\ucd88\ucd94\ucd95\ucd98\ucd9c\ucda4\ucda5\ucda7\ucda9\ucdb0\ucdc4\ucdcc\ucdd0\ucde8\ucdec\ucdf0\ucdf8\ucdf9\ucdfb\ucdfd\uce04\uce08\uce0c\uce14\uce19\uce20\uce21\uce24\uce28\uce30\uce31\uce33\uce35"],["c441","\ud6ab\ud6ad\ud6ae\ud6af\ud6b1",7,"\ud6ba\ud6bc",7,"\ud6c6\ud6c7\ud6c9\ud6ca\ud6cb"],["c461","\ud6cd\ud6ce\ud6cf\ud6d0\ud6d2\ud6d3\ud6d5\ud6d6\ud6d8\ud6da",5,"\ud6e1\ud6e2\ud6e3\ud6e5\ud6e6\ud6e7\ud6e9",4],["c481","\ud6ee\ud6ef\ud6f1\ud6f2\ud6f3\ud6f4\ud6f6",5,"\ud6fe\ud6ff\ud701\ud702\ud703\ud705",11,"\ud712\ud713\ud714\uce58\uce59\uce5c\uce5f\uce60\uce61\uce68\uce69\uce6b\uce6d\uce74\uce75\uce78\uce7c\uce84\uce85\uce87\uce89\uce90\uce91\uce94\uce98\ucea0\ucea1\ucea3\ucea4\ucea5\uceac\ucead\ucec1\ucee4\ucee5\ucee8\uceeb\uceec\ucef4\ucef5\ucef7\ucef8\ucef9\ucf00\ucf01\ucf04\ucf08\ucf10\ucf11\ucf13\ucf15\ucf1c\ucf20\ucf24\ucf2c\ucf2d\ucf2f\ucf30\ucf31\ucf38\ucf54\ucf55\ucf58\ucf5c\ucf64\ucf65\ucf67\ucf69\ucf70\ucf71\ucf74\ucf78\ucf80\ucf85\ucf8c\ucfa1\ucfa8\ucfb0\ucfc4\ucfe0\ucfe1\ucfe4\ucfe8\ucff0\ucff1\ucff3\ucff5\ucffc\ud000\ud004\ud011\ud018\ud02d\ud034\ud035\ud038\ud03c"],["c541","\ud715\ud716\ud717\ud71a\ud71b\ud71d\ud71e\ud71f\ud721",6,"\ud72a\ud72c\ud72e",5,"\ud736\ud737\ud739"],["c561","\ud73a\ud73b\ud73d",6,"\ud745\ud746\ud748\ud74a",5,"\ud752\ud753\ud755\ud75a",4],["c581","\ud75f\ud762\ud764\ud766\ud767\ud768\ud76a\ud76b\ud76d\ud76e\ud76f\ud771\ud772\ud773\ud775",6,"\ud77e\ud77f\ud780\ud782",5,"\ud78a\ud78b\ud044\ud045\ud047\ud049\ud050\ud054\ud058\ud060\ud06c\ud06d\ud070\ud074\ud07c\ud07d\ud081\ud0a4\ud0a5\ud0a8\ud0ac\ud0b4\ud0b5\ud0b7\ud0b9\ud0c0\ud0c1\ud0c4\ud0c8\ud0c9\ud0d0\ud0d1\ud0d3\ud0d4\ud0d5\ud0dc\ud0dd\ud0e0\ud0e4\ud0ec\ud0ed\ud0ef\ud0f0\ud0f1\ud0f8\ud10d\ud130\ud131\ud134\ud138\ud13a\ud140\ud141\ud143\ud144\ud145\ud14c\ud14d\ud150\ud154\ud15c\ud15d\ud15f\ud161\ud168\ud16c\ud17c\ud184\ud188\ud1a0\ud1a1\ud1a4\ud1a8\ud1b0\ud1b1\ud1b3\ud1b5\ud1ba\ud1bc\ud1c0\ud1d8\ud1f4\ud1f8\ud207\ud209\ud210\ud22c\ud22d\ud230\ud234\ud23c\ud23d\ud23f\ud241\ud248\ud25c"],["c641","\ud78d\ud78e\ud78f\ud791",6,"\ud79a\ud79c\ud79e",5],["c6a1","\ud264\ud280\ud281\ud284\ud288\ud290\ud291\ud295\ud29c\ud2a0\ud2a4\ud2ac\ud2b1\ud2b8\ud2b9\ud2bc\ud2bf\ud2c0\ud2c2\ud2c8\ud2c9\ud2cb\ud2d4\ud2d8\ud2dc\ud2e4\ud2e5\ud2f0\ud2f1\ud2f4\ud2f8\ud300\ud301\ud303\ud305\ud30c\ud30d\ud30e\ud310\ud314\ud316\ud31c\ud31d\ud31f\ud320\ud321\ud325\ud328\ud329\ud32c\ud330\ud338\ud339\ud33b\ud33c\ud33d\ud344\ud345\ud37c\ud37d\ud380\ud384\ud38c\ud38d\ud38f\ud390\ud391\ud398\ud399\ud39c\ud3a0\ud3a8\ud3a9\ud3ab\ud3ad\ud3b4\ud3b8\ud3bc\ud3c4\ud3c5\ud3c8\ud3c9\ud3d0\ud3d8\ud3e1\ud3e3\ud3ec\ud3ed\ud3f0\ud3f4\ud3fc\ud3fd\ud3ff\ud401"],["c7a1","\ud408\ud41d\ud440\ud444\ud45c\ud460\ud464\ud46d\ud46f\ud478\ud479\ud47c\ud47f\ud480\ud482\ud488\ud489\ud48b\ud48d\ud494\ud4a9\ud4cc\ud4d0\ud4d4\ud4dc\ud4df\ud4e8\ud4ec\ud4f0\ud4f8\ud4fb\ud4fd\ud504\ud508\ud50c\ud514\ud515\ud517\ud53c\ud53d\ud540\ud544\ud54c\ud54d\ud54f\ud551\ud558\ud559\ud55c\ud560\ud565\ud568\ud569\ud56b\ud56d\ud574\ud575\ud578\ud57c\ud584\ud585\ud587\ud588\ud589\ud590\ud5a5\ud5c8\ud5c9\ud5cc\ud5d0\ud5d2\ud5d8\ud5d9\ud5db\ud5dd\ud5e4\ud5e5\ud5e8\ud5ec\ud5f4\ud5f5\ud5f7\ud5f9\ud600\ud601\ud604\ud608\ud610\ud611\ud613\ud614\ud615\ud61c\ud620"],["c8a1","\ud624\ud62d\ud638\ud639\ud63c\ud640\ud645\ud648\ud649\ud64b\ud64d\ud651\ud654\ud655\ud658\ud65c\ud667\ud669\ud670\ud671\ud674\ud683\ud685\ud68c\ud68d\ud690\ud694\ud69d\ud69f\ud6a1\ud6a8\ud6ac\ud6b0\ud6b9\ud6bb\ud6c4\ud6c5\ud6c8\ud6cc\ud6d1\ud6d4\ud6d7\ud6d9\ud6e0\ud6e4\ud6e8\ud6f0\ud6f5\ud6fc\ud6fd\ud700\ud704\ud711\ud718\ud719\ud71c\ud720\ud728\ud729\ud72b\ud72d\ud734\ud735\ud738\ud73c\ud744\ud747\ud749\ud750\ud751\ud754\ud756\ud757\ud758\ud759\ud760\ud761\ud763\ud765\ud769\ud76c\ud770\ud774\ud77c\ud77d\ud781\ud788\ud789\ud78c\ud790\ud798\ud799\ud79b\ud79d"],["caa1","\u4f3d\u4f73\u5047\u50f9\u52a0\u53ef\u5475\u54e5\u5609\u5ac1\u5bb6\u6687\u67b6\u67b7\u67ef\u6b4c\u73c2\u75c2\u7a3c\u82db\u8304\u8857\u8888\u8a36\u8cc8\u8dcf\u8efb\u8fe6\u99d5\u523b\u5374\u5404\u606a\u6164\u6bbc\u73cf\u811a\u89ba\u89d2\u95a3\u4f83\u520a\u58be\u5978\u59e6\u5e72\u5e79\u61c7\u63c0\u6746\u67ec\u687f\u6f97\u764e\u770b\u78f5\u7a08\u7aff\u7c21\u809d\u826e\u8271\u8aeb\u9593\u4e6b\u559d\u66f7\u6e34\u78a3\u7aed\u845b\u8910\u874e\u97a8\u52d8\u574e\u582a\u5d4c\u611f\u61be\u6221\u6562\u67d1\u6a44\u6e1b\u7518\u75b3\u76e3\u77b0\u7d3a\u90af\u9451\u9452\u9f95"],["cba1","\u5323\u5cac\u7532\u80db\u9240\u9598\u525b\u5808\u59dc\u5ca1\u5d17\u5eb7\u5f3a\u5f4a\u6177\u6c5f\u757a\u7586\u7ce0\u7d73\u7db1\u7f8c\u8154\u8221\u8591\u8941\u8b1b\u92fc\u964d\u9c47\u4ecb\u4ef7\u500b\u51f1\u584f\u6137\u613e\u6168\u6539\u69ea\u6f11\u75a5\u7686\u76d6\u7b87\u82a5\u84cb\uf900\u93a7\u958b\u5580\u5ba2\u5751\uf901\u7cb3\u7fb9\u91b5\u5028\u53bb\u5c45\u5de8\u62d2\u636e\u64da\u64e7\u6e20\u70ac\u795b\u8ddd\u8e1e\uf902\u907d\u9245\u92f8\u4e7e\u4ef6\u5065\u5dfe\u5efa\u6106\u6957\u8171\u8654\u8e47\u9375\u9a2b\u4e5e\u5091\u6770\u6840\u5109\u528d\u5292\u6aa2"],["cca1","\u77bc\u9210\u9ed4\u52ab\u602f\u8ff2\u5048\u61a9\u63ed\u64ca\u683c\u6a84\u6fc0\u8188\u89a1\u9694\u5805\u727d\u72ac\u7504\u7d79\u7e6d\u80a9\u898b\u8b74\u9063\u9d51\u6289\u6c7a\u6f54\u7d50\u7f3a\u8a23\u517c\u614a\u7b9d\u8b19\u9257\u938c\u4eac\u4fd3\u501e\u50be\u5106\u52c1\u52cd\u537f\u5770\u5883\u5e9a\u5f91\u6176\u61ac\u64ce\u656c\u666f\u66bb\u66f4\u6897\u6d87\u7085\u70f1\u749f\u74a5\u74ca\u75d9\u786c\u78ec\u7adf\u7af6\u7d45\u7d93\u8015\u803f\u811b\u8396\u8b66\u8f15\u9015\u93e1\u9803\u9838\u9a5a\u9be8\u4fc2\u5553\u583a\u5951\u5b63\u5c46\u60b8\u6212\u6842\u68b0"],["cda1","\u68e8\u6eaa\u754c\u7678\u78ce\u7a3d\u7cfb\u7e6b\u7e7c\u8a08\u8aa1\u8c3f\u968e\u9dc4\u53e4\u53e9\u544a\u5471\u56fa\u59d1\u5b64\u5c3b\u5eab\u62f7\u6537\u6545\u6572\u66a0\u67af\u69c1\u6cbd\u75fc\u7690\u777e\u7a3f\u7f94\u8003\u80a1\u818f\u82e6\u82fd\u83f0\u85c1\u8831\u88b4\u8aa5\uf903\u8f9c\u932e\u96c7\u9867\u9ad8\u9f13\u54ed\u659b\u66f2\u688f\u7a40\u8c37\u9d60\u56f0\u5764\u5d11\u6606\u68b1\u68cd\u6efe\u7428\u889e\u9be4\u6c68\uf904\u9aa8\u4f9b\u516c\u5171\u529f\u5b54\u5de5\u6050\u606d\u62f1\u63a7\u653b\u73d9\u7a7a\u86a3\u8ca2\u978f\u4e32\u5be1\u6208\u679c\u74dc"],["cea1","\u79d1\u83d3\u8a87\u8ab2\u8de8\u904e\u934b\u9846\u5ed3\u69e8\u85ff\u90ed\uf905\u51a0\u5b98\u5bec\u6163\u68fa\u6b3e\u704c\u742f\u74d8\u7ba1\u7f50\u83c5\u89c0\u8cab\u95dc\u9928\u522e\u605d\u62ec\u9002\u4f8a\u5149\u5321\u58d9\u5ee3\u66e0\u6d38\u709a\u72c2\u73d6\u7b50\u80f1\u945b\u5366\u639b\u7f6b\u4e56\u5080\u584a\u58de\u602a\u6127\u62d0\u69d0\u9b41\u5b8f\u7d18\u80b1\u8f5f\u4ea4\u50d1\u54ac\u55ac\u5b0c\u5da0\u5de7\u652a\u654e\u6821\u6a4b\u72e1\u768e\u77ef\u7d5e\u7ff9\u81a0\u854e\u86df\u8f03\u8f4e\u90ca\u9903\u9a55\u9bab\u4e18\u4e45\u4e5d\u4ec7\u4ff1\u5177\u52fe"],["cfa1","\u5340\u53e3\u53e5\u548e\u5614\u5775\u57a2\u5bc7\u5d87\u5ed0\u61fc\u62d8\u6551\u67b8\u67e9\u69cb\u6b50\u6bc6\u6bec\u6c42\u6e9d\u7078\u72d7\u7396\u7403\u77bf\u77e9\u7a76\u7d7f\u8009\u81fc\u8205\u820a\u82df\u8862\u8b33\u8cfc\u8ec0\u9011\u90b1\u9264\u92b6\u99d2\u9a45\u9ce9\u9dd7\u9f9c\u570b\u5c40\u83ca\u97a0\u97ab\u9eb4\u541b\u7a98\u7fa4\u88d9\u8ecd\u90e1\u5800\u5c48\u6398\u7a9f\u5bae\u5f13\u7a79\u7aae\u828e\u8eac\u5026\u5238\u52f8\u5377\u5708\u62f3\u6372\u6b0a\u6dc3\u7737\u53a5\u7357\u8568\u8e76\u95d5\u673a\u6ac3\u6f70\u8a6d\u8ecc\u994b\uf906\u6677\u6b78\u8cb4"],["d0a1","\u9b3c\uf907\u53eb\u572d\u594e\u63c6\u69fb\u73ea\u7845\u7aba\u7ac5\u7cfe\u8475\u898f\u8d73\u9035\u95a8\u52fb\u5747\u7547\u7b60\u83cc\u921e\uf908\u6a58\u514b\u524b\u5287\u621f\u68d8\u6975\u9699\u50c5\u52a4\u52e4\u61c3\u65a4\u6839\u69ff\u747e\u7b4b\u82b9\u83eb\u89b2\u8b39\u8fd1\u9949\uf909\u4eca\u5997\u64d2\u6611\u6a8e\u7434\u7981\u79bd\u82a9\u887e\u887f\u895f\uf90a\u9326\u4f0b\u53ca\u6025\u6271\u6c72\u7d1a\u7d66\u4e98\u5162\u77dc\u80af\u4f01\u4f0e\u5176\u5180\u55dc\u5668\u573b\u57fa\u57fc\u5914\u5947\u5993\u5bc4\u5c90\u5d0e\u5df1\u5e7e\u5fcc\u6280\u65d7\u65e3"],["d1a1","\u671e\u671f\u675e\u68cb\u68c4\u6a5f\u6b3a\u6c23\u6c7d\u6c82\u6dc7\u7398\u7426\u742a\u7482\u74a3\u7578\u757f\u7881\u78ef\u7941\u7947\u7948\u797a\u7b95\u7d00\u7dba\u7f88\u8006\u802d\u808c\u8a18\u8b4f\u8c48\u8d77\u9321\u9324\u98e2\u9951\u9a0e\u9a0f\u9a65\u9e92\u7dca\u4f76\u5409\u62ee\u6854\u91d1\u55ab\u513a\uf90b\uf90c\u5a1c\u61e6\uf90d\u62cf\u62ff\uf90e",5,"\u90a3\uf914",4,"\u8afe\uf919\uf91a\uf91b\uf91c\u6696\uf91d\u7156\uf91e\uf91f\u96e3\uf920\u634f\u637a\u5357\uf921\u678f\u6960\u6e73\uf922\u7537\uf923\uf924\uf925"],["d2a1","\u7d0d\uf926\uf927\u8872\u56ca\u5a18\uf928",4,"\u4e43\uf92d\u5167\u5948\u67f0\u8010\uf92e\u5973\u5e74\u649a\u79ca\u5ff5\u606c\u62c8\u637b\u5be7\u5bd7\u52aa\uf92f\u5974\u5f29\u6012\uf930\uf931\uf932\u7459\uf933",5,"\u99d1\uf939",10,"\u6fc3\uf944\uf945\u81bf\u8fb2\u60f1\uf946\uf947\u8166\uf948\uf949\u5c3f\uf94a",7,"\u5ae9\u8a25\u677b\u7d10\uf952",5,"\u80fd\uf958\uf959\u5c3c\u6ce5\u533f\u6eba\u591a\u8336"],["d3a1","\u4e39\u4eb6\u4f46\u55ae\u5718\u58c7\u5f56\u65b7\u65e6\u6a80\u6bb5\u6e4d\u77ed\u7aef\u7c1e\u7dde\u86cb\u8892\u9132\u935b\u64bb\u6fbe\u737a\u75b8\u9054\u5556\u574d\u61ba\u64d4\u66c7\u6de1\u6e5b\u6f6d\u6fb9\u75f0\u8043\u81bd\u8541\u8983\u8ac7\u8b5a\u931f\u6c93\u7553\u7b54\u8e0f\u905d\u5510\u5802\u5858\u5e62\u6207\u649e\u68e0\u7576\u7cd6\u87b3\u9ee8\u4ee3\u5788\u576e\u5927\u5c0d\u5cb1\u5e36\u5f85\u6234\u64e1\u73b3\u81fa\u888b\u8cb8\u968a\u9edb\u5b85\u5fb7\u60b3\u5012\u5200\u5230\u5716\u5835\u5857\u5c0e\u5c60\u5cf6\u5d8b\u5ea6\u5f92\u60bc\u6311\u6389\u6417\u6843"],["d4a1","\u68f9\u6ac2\u6dd8\u6e21\u6ed4\u6fe4\u71fe\u76dc\u7779\u79b1\u7a3b\u8404\u89a9\u8ced\u8df3\u8e48\u9003\u9014\u9053\u90fd\u934d\u9676\u97dc\u6bd2\u7006\u7258\u72a2\u7368\u7763\u79bf\u7be4\u7e9b\u8b80\u58a9\u60c7\u6566\u65fd\u66be\u6c8c\u711e\u71c9\u8c5a\u9813\u4e6d\u7a81\u4edd\u51ac\u51cd\u52d5\u540c\u61a7\u6771\u6850\u68df\u6d1e\u6f7c\u75bc\u77b3\u7ae5\u80f4\u8463\u9285\u515c\u6597\u675c\u6793\u75d8\u7ac7\u8373\uf95a\u8c46\u9017\u982d\u5c6f\u81c0\u829a\u9041\u906f\u920d\u5f97\u5d9d\u6a59\u71c8\u767b\u7b49\u85e4\u8b04\u9127\u9a30\u5587\u61f6\uf95b\u7669\u7f85"],["d5a1","\u863f\u87ba\u88f8\u908f\uf95c\u6d1b\u70d9\u73de\u7d61\u843d\uf95d\u916a\u99f1\uf95e\u4e82\u5375\u6b04\u6b12\u703e\u721b\u862d\u9e1e\u524c\u8fa3\u5d50\u64e5\u652c\u6b16\u6feb\u7c43\u7e9c\u85cd\u8964\u89bd\u62c9\u81d8\u881f\u5eca\u6717\u6d6a\u72fc\u7405\u746f\u8782\u90de\u4f86\u5d0d\u5fa0\u840a\u51b7\u63a0\u7565\u4eae\u5006\u5169\u51c9\u6881\u6a11\u7cae\u7cb1\u7ce7\u826f\u8ad2\u8f1b\u91cf\u4fb6\u5137\u52f5\u5442\u5eec\u616e\u623e\u65c5\u6ada\u6ffe\u792a\u85dc\u8823\u95ad\u9a62\u9a6a\u9e97\u9ece\u529b\u66c6\u6b77\u701d\u792b\u8f62\u9742\u6190\u6200\u6523\u6f23"],["d6a1","\u7149\u7489\u7df4\u806f\u84ee\u8f26\u9023\u934a\u51bd\u5217\u52a3\u6d0c\u70c8\u88c2\u5ec9\u6582\u6bae\u6fc2\u7c3e\u7375\u4ee4\u4f36\u56f9\uf95f\u5cba\u5dba\u601c\u73b2\u7b2d\u7f9a\u7fce\u8046\u901e\u9234\u96f6\u9748\u9818\u9f61\u4f8b\u6fa7\u79ae\u91b4\u96b7\u52de\uf960\u6488\u64c4\u6ad3\u6f5e\u7018\u7210\u76e7\u8001\u8606\u865c\u8def\u8f05\u9732\u9b6f\u9dfa\u9e75\u788c\u797f\u7da0\u83c9\u9304\u9e7f\u9e93\u8ad6\u58df\u5f04\u6727\u7027\u74cf\u7c60\u807e\u5121\u7028\u7262\u78ca\u8cc2\u8cda\u8cf4\u96f7\u4e86\u50da\u5bee\u5ed6\u6599\u71ce\u7642\u77ad\u804a\u84fc"],["d7a1","\u907c\u9b27\u9f8d\u58d8\u5a41\u5c62\u6a13\u6dda\u6f0f\u763b\u7d2f\u7e37\u851e\u8938\u93e4\u964b\u5289\u65d2\u67f3\u69b4\u6d41\u6e9c\u700f\u7409\u7460\u7559\u7624\u786b\u8b2c\u985e\u516d\u622e\u9678\u4f96\u502b\u5d19\u6dea\u7db8\u8f2a\u5f8b\u6144\u6817\uf961\u9686\u52d2\u808b\u51dc\u51cc\u695e\u7a1c\u7dbe\u83f1\u9675\u4fda\u5229\u5398\u540f\u550e\u5c65\u60a7\u674e\u68a8\u6d6c\u7281\u72f8\u7406\u7483\uf962\u75e2\u7c6c\u7f79\u7fb8\u8389\u88cf\u88e1\u91cc\u91d0\u96e2\u9bc9\u541d\u6f7e\u71d0\u7498\u85fa\u8eaa\u96a3\u9c57\u9e9f\u6797\u6dcb\u7433\u81e8\u9716\u782c"],["d8a1","\u7acb\u7b20\u7c92\u6469\u746a\u75f2\u78bc\u78e8\u99ac\u9b54\u9ebb\u5bde\u5e55\u6f20\u819c\u83ab\u9088\u4e07\u534d\u5a29\u5dd2\u5f4e\u6162\u633d\u6669\u66fc\u6eff\u6f2b\u7063\u779e\u842c\u8513\u883b\u8f13\u9945\u9c3b\u551c\u62b9\u672b\u6cab\u8309\u896a\u977a\u4ea1\u5984\u5fd8\u5fd9\u671b\u7db2\u7f54\u8292\u832b\u83bd\u8f1e\u9099\u57cb\u59b9\u5a92\u5bd0\u6627\u679a\u6885\u6bcf\u7164\u7f75\u8cb7\u8ce3\u9081\u9b45\u8108\u8c8a\u964c\u9a40\u9ea5\u5b5f\u6c13\u731b\u76f2\u76df\u840c\u51aa\u8993\u514d\u5195\u52c9\u68c9\u6c94\u7704\u7720\u7dbf\u7dec\u9762\u9eb5\u6ec5"],["d9a1","\u8511\u51a5\u540d\u547d\u660e\u669d\u6927\u6e9f\u76bf\u7791\u8317\u84c2\u879f\u9169\u9298\u9cf4\u8882\u4fae\u5192\u52df\u59c6\u5e3d\u6155\u6478\u6479\u66ae\u67d0\u6a21\u6bcd\u6bdb\u725f\u7261\u7441\u7738\u77db\u8017\u82bc\u8305\u8b00\u8b28\u8c8c\u6728\u6c90\u7267\u76ee\u7766\u7a46\u9da9\u6b7f\u6c92\u5922\u6726\u8499\u536f\u5893\u5999\u5edf\u63cf\u6634\u6773\u6e3a\u732b\u7ad7\u82d7\u9328\u52d9\u5deb\u61ae\u61cb\u620a\u62c7\u64ab\u65e0\u6959\u6b66\u6bcb\u7121\u73f7\u755d\u7e46\u821e\u8302\u856a\u8aa3\u8cbf\u9727\u9d61\u58a8\u9ed8\u5011\u520e\u543b\u554f\u6587"],["daa1","\u6c76\u7d0a\u7d0b\u805e\u868a\u9580\u96ef\u52ff\u6c95\u7269\u5473\u5a9a\u5c3e\u5d4b\u5f4c\u5fae\u672a\u68b6\u6963\u6e3c\u6e44\u7709\u7c73\u7f8e\u8587\u8b0e\u8ff7\u9761\u9ef4\u5cb7\u60b6\u610d\u61ab\u654f\u65fb\u65fc\u6c11\u6cef\u739f\u73c9\u7de1\u9594\u5bc6\u871c\u8b10\u525d\u535a\u62cd\u640f\u64b2\u6734\u6a38\u6cca\u73c0\u749e\u7b94\u7c95\u7e1b\u818a\u8236\u8584\u8feb\u96f9\u99c1\u4f34\u534a\u53cd\u53db\u62cc\u642c\u6500\u6591\u69c3\u6cee\u6f58\u73ed\u7554\u7622\u76e4\u76fc\u78d0\u78fb\u792c\u7d46\u822c\u87e0\u8fd4\u9812\u98ef\u52c3\u62d4\u64a5\u6e24\u6f51"],["dba1","\u767c\u8dcb\u91b1\u9262\u9aee\u9b43\u5023\u508d\u574a\u59a8\u5c28\u5e47\u5f77\u623f\u653e\u65b9\u65c1\u6609\u678b\u699c\u6ec2\u78c5\u7d21\u80aa\u8180\u822b\u82b3\u84a1\u868c\u8a2a\u8b17\u90a6\u9632\u9f90\u500d\u4ff3\uf963\u57f9\u5f98\u62dc\u6392\u676f\u6e43\u7119\u76c3\u80cc\u80da\u88f4\u88f5\u8919\u8ce0\u8f29\u914d\u966a\u4f2f\u4f70\u5e1b\u67cf\u6822\u767d\u767e\u9b44\u5e61\u6a0a\u7169\u71d4\u756a\uf964\u7e41\u8543\u85e9\u98dc\u4f10\u7b4f\u7f70\u95a5\u51e1\u5e06\u68b5\u6c3e\u6c4e\u6cdb\u72af\u7bc4\u8303\u6cd5\u743a\u50fb\u5288\u58c1\u64d8\u6a97\u74a7\u7656"],["dca1","\u78a7\u8617\u95e2\u9739\uf965\u535e\u5f01\u8b8a\u8fa8\u8faf\u908a\u5225\u77a5\u9c49\u9f08\u4e19\u5002\u5175\u5c5b\u5e77\u661e\u663a\u67c4\u68c5\u70b3\u7501\u75c5\u79c9\u7add\u8f27\u9920\u9a08\u4fdd\u5821\u5831\u5bf6\u666e\u6b65\u6d11\u6e7a\u6f7d\u73e4\u752b\u83e9\u88dc\u8913\u8b5c\u8f14\u4f0f\u50d5\u5310\u535c\u5b93\u5fa9\u670d\u798f\u8179\u832f\u8514\u8907\u8986\u8f39\u8f3b\u99a5\u9c12\u672c\u4e76\u4ff8\u5949\u5c01\u5cef\u5cf0\u6367\u68d2\u70fd\u71a2\u742b\u7e2b\u84ec\u8702\u9022\u92d2\u9cf3\u4e0d\u4ed8\u4fef\u5085\u5256\u526f\u5426\u5490\u57e0\u592b\u5a66"],["dda1","\u5b5a\u5b75\u5bcc\u5e9c\uf966\u6276\u6577\u65a7\u6d6e\u6ea5\u7236\u7b26\u7c3f\u7f36\u8150\u8151\u819a\u8240\u8299\u83a9\u8a03\u8ca0\u8ce6\u8cfb\u8d74\u8dba\u90e8\u91dc\u961c\u9644\u99d9\u9ce7\u5317\u5206\u5429\u5674\u58b3\u5954\u596e\u5fff\u61a4\u626e\u6610\u6c7e\u711a\u76c6\u7c89\u7cde\u7d1b\u82ac\u8cc1\u96f0\uf967\u4f5b\u5f17\u5f7f\u62c2\u5d29\u670b\u68da\u787c\u7e43\u9d6c\u4e15\u5099\u5315\u532a\u5351\u5983\u5a62\u5e87\u60b2\u618a\u6249\u6279\u6590\u6787\u69a7\u6bd4\u6bd6\u6bd7\u6bd8\u6cb8\uf968\u7435\u75fa\u7812\u7891\u79d5\u79d8\u7c83\u7dcb\u7fe1\u80a5"],["dea1","\u813e\u81c2\u83f2\u871a\u88e8\u8ab9\u8b6c\u8cbb\u9119\u975e\u98db\u9f3b\u56ac\u5b2a\u5f6c\u658c\u6ab3\u6baf\u6d5c\u6ff1\u7015\u725d\u73ad\u8ca7\u8cd3\u983b\u6191\u6c37\u8058\u9a01\u4e4d\u4e8b\u4e9b\u4ed5\u4f3a\u4f3c\u4f7f\u4fdf\u50ff\u53f2\u53f8\u5506\u55e3\u56db\u58eb\u5962\u5a11\u5beb\u5bfa\u5c04\u5df3\u5e2b\u5f99\u601d\u6368\u659c\u65af\u67f6\u67fb\u68ad\u6b7b\u6c99\u6cd7\u6e23\u7009\u7345\u7802\u793e\u7940\u7960\u79c1\u7be9\u7d17\u7d72\u8086\u820d\u838e\u84d1\u86c7\u88df\u8a50\u8a5e\u8b1d\u8cdc\u8d66\u8fad\u90aa\u98fc\u99df\u9e9d\u524a\uf969\u6714\uf96a"],["dfa1","\u5098\u522a\u5c71\u6563\u6c55\u73ca\u7523\u759d\u7b97\u849c\u9178\u9730\u4e77\u6492\u6bba\u715e\u85a9\u4e09\uf96b\u6749\u68ee\u6e17\u829f\u8518\u886b\u63f7\u6f81\u9212\u98af\u4e0a\u50b7\u50cf\u511f\u5546\u55aa\u5617\u5b40\u5c19\u5ce0\u5e38\u5e8a\u5ea0\u5ec2\u60f3\u6851\u6a61\u6e58\u723d\u7240\u72c0\u76f8\u7965\u7bb1\u7fd4\u88f3\u89f4\u8a73\u8c61\u8cde\u971c\u585e\u74bd\u8cfd\u55c7\uf96c\u7a61\u7d22\u8272\u7272\u751f\u7525\uf96d\u7b19\u5885\u58fb\u5dbc\u5e8f\u5eb6\u5f90\u6055\u6292\u637f\u654d\u6691\u66d9\u66f8\u6816\u68f2\u7280\u745e\u7b6e\u7d6e\u7dd6\u7f72"],["e0a1","\u80e5\u8212\u85af\u897f\u8a93\u901d\u92e4\u9ecd\u9f20\u5915\u596d\u5e2d\u60dc\u6614\u6673\u6790\u6c50\u6dc5\u6f5f\u77f3\u78a9\u84c6\u91cb\u932b\u4ed9\u50ca\u5148\u5584\u5b0b\u5ba3\u6247\u657e\u65cb\u6e32\u717d\u7401\u7444\u7487\u74bf\u766c\u79aa\u7dda\u7e55\u7fa8\u817a\u81b3\u8239\u861a\u87ec\u8a75\u8de3\u9078\u9291\u9425\u994d\u9bae\u5368\u5c51\u6954\u6cc4\u6d29\u6e2b\u820c\u859b\u893b\u8a2d\u8aaa\u96ea\u9f67\u5261\u66b9\u6bb2\u7e96\u87fe\u8d0d\u9583\u965d\u651d\u6d89\u71ee\uf96e\u57ce\u59d3\u5bac\u6027\u60fa\u6210\u661f\u665f\u7329\u73f9\u76db\u7701\u7b6c"],["e1a1","\u8056\u8072\u8165\u8aa0\u9192\u4e16\u52e2\u6b72\u6d17\u7a05\u7b39\u7d30\uf96f\u8cb0\u53ec\u562f\u5851\u5bb5\u5c0f\u5c11\u5de2\u6240\u6383\u6414\u662d\u68b3\u6cbc\u6d88\u6eaf\u701f\u70a4\u71d2\u7526\u758f\u758e\u7619\u7b11\u7be0\u7c2b\u7d20\u7d39\u852c\u856d\u8607\u8a34\u900d\u9061\u90b5\u92b7\u97f6\u9a37\u4fd7\u5c6c\u675f\u6d91\u7c9f\u7e8c\u8b16\u8d16\u901f\u5b6b\u5dfd\u640d\u84c0\u905c\u98e1\u7387\u5b8b\u609a\u677e\u6dde\u8a1f\u8aa6\u9001\u980c\u5237\uf970\u7051\u788e\u9396\u8870\u91d7\u4fee\u53d7\u55fd\u56da\u5782\u58fd\u5ac2\u5b88\u5cab\u5cc0\u5e25\u6101"],["e2a1","\u620d\u624b\u6388\u641c\u6536\u6578\u6a39\u6b8a\u6c34\u6d19\u6f31\u71e7\u72e9\u7378\u7407\u74b2\u7626\u7761\u79c0\u7a57\u7aea\u7cb9\u7d8f\u7dac\u7e61\u7f9e\u8129\u8331\u8490\u84da\u85ea\u8896\u8ab0\u8b90\u8f38\u9042\u9083\u916c\u9296\u92b9\u968b\u96a7\u96a8\u96d6\u9700\u9808\u9996\u9ad3\u9b1a\u53d4\u587e\u5919\u5b70\u5bbf\u6dd1\u6f5a\u719f\u7421\u74b9\u8085\u83fd\u5de1\u5f87\u5faa\u6042\u65ec\u6812\u696f\u6a53\u6b89\u6d35\u6df3\u73e3\u76fe\u77ac\u7b4d\u7d14\u8123\u821c\u8340\u84f4\u8563\u8a62\u8ac4\u9187\u931e\u9806\u99b4\u620c\u8853\u8ff0\u9265\u5d07\u5d27"],["e3a1","\u5d69\u745f\u819d\u8768\u6fd5\u62fe\u7fd2\u8936\u8972\u4e1e\u4e58\u50e7\u52dd\u5347\u627f\u6607\u7e69\u8805\u965e\u4f8d\u5319\u5636\u59cb\u5aa4\u5c38\u5c4e\u5c4d\u5e02\u5f11\u6043\u65bd\u662f\u6642\u67be\u67f4\u731c\u77e2\u793a\u7fc5\u8494\u84cd\u8996\u8a66\u8a69\u8ae1\u8c55\u8c7a\u57f4\u5bd4\u5f0f\u606f\u62ed\u690d\u6b96\u6e5c\u7184\u7bd2\u8755\u8b58\u8efe\u98df\u98fe\u4f38\u4f81\u4fe1\u547b\u5a20\u5bb8\u613c\u65b0\u6668\u71fc\u7533\u795e\u7d33\u814e\u81e3\u8398\u85aa\u85ce\u8703\u8a0a\u8eab\u8f9b\uf971\u8fc5\u5931\u5ba4\u5be6\u6089\u5be9\u5c0b\u5fc3\u6c81"],["e4a1","\uf972\u6df1\u700b\u751a\u82af\u8af6\u4ec0\u5341\uf973\u96d9\u6c0f\u4e9e\u4fc4\u5152\u555e\u5a25\u5ce8\u6211\u7259\u82bd\u83aa\u86fe\u8859\u8a1d\u963f\u96c5\u9913\u9d09\u9d5d\u580a\u5cb3\u5dbd\u5e44\u60e1\u6115\u63e1\u6a02\u6e25\u9102\u9354\u984e\u9c10\u9f77\u5b89\u5cb8\u6309\u664f\u6848\u773c\u96c1\u978d\u9854\u9b9f\u65a1\u8b01\u8ecb\u95bc\u5535\u5ca9\u5dd6\u5eb5\u6697\u764c\u83f4\u95c7\u58d3\u62bc\u72ce\u9d28\u4ef0\u592e\u600f\u663b\u6b83\u79e7\u9d26\u5393\u54c0\u57c3\u5d16\u611b\u66d6\u6daf\u788d\u827e\u9698\u9744\u5384\u627c\u6396\u6db2\u7e0a\u814b\u984d"],["e5a1","\u6afb\u7f4c\u9daf\u9e1a\u4e5f\u503b\u51b6\u591c\u60f9\u63f6\u6930\u723a\u8036\uf974\u91ce\u5f31\uf975\uf976\u7d04\u82e5\u846f\u84bb\u85e5\u8e8d\uf977\u4f6f\uf978\uf979\u58e4\u5b43\u6059\u63da\u6518\u656d\u6698\uf97a\u694a\u6a23\u6d0b\u7001\u716c\u75d2\u760d\u79b3\u7a70\uf97b\u7f8a\uf97c\u8944\uf97d\u8b93\u91c0\u967d\uf97e\u990a\u5704\u5fa1\u65bc\u6f01\u7600\u79a6\u8a9e\u99ad\u9b5a\u9f6c\u5104\u61b6\u6291\u6a8d\u81c6\u5043\u5830\u5f66\u7109\u8a00\u8afa\u5b7c\u8616\u4ffa\u513c\u56b4\u5944\u63a9\u6df9\u5daa\u696d\u5186\u4e88\u4f59\uf97f\uf980\uf981\u5982\uf982"],["e6a1","\uf983\u6b5f\u6c5d\uf984\u74b5\u7916\uf985\u8207\u8245\u8339\u8f3f\u8f5d\uf986\u9918\uf987\uf988\uf989\u4ea6\uf98a\u57df\u5f79\u6613\uf98b\uf98c\u75ab\u7e79\u8b6f\uf98d\u9006\u9a5b\u56a5\u5827\u59f8\u5a1f\u5bb4\uf98e\u5ef6\uf98f\uf990\u6350\u633b\uf991\u693d\u6c87\u6cbf\u6d8e\u6d93\u6df5\u6f14\uf992\u70df\u7136\u7159\uf993\u71c3\u71d5\uf994\u784f\u786f\uf995\u7b75\u7de3\uf996\u7e2f\uf997\u884d\u8edf\uf998\uf999\uf99a\u925b\uf99b\u9cf6\uf99c\uf99d\uf99e\u6085\u6d85\uf99f\u71b1\uf9a0\uf9a1\u95b1\u53ad\uf9a2\uf9a3\uf9a4\u67d3\uf9a5\u708e\u7130\u7430\u8276\u82d2"],["e7a1","\uf9a6\u95bb\u9ae5\u9e7d\u66c4\uf9a7\u71c1\u8449\uf9a8\uf9a9\u584b\uf9aa\uf9ab\u5db8\u5f71\uf9ac\u6620\u668e\u6979\u69ae\u6c38\u6cf3\u6e36\u6f41\u6fda\u701b\u702f\u7150\u71df\u7370\uf9ad\u745b\uf9ae\u74d4\u76c8\u7a4e\u7e93\uf9af\uf9b0\u82f1\u8a60\u8fce\uf9b1\u9348\uf9b2\u9719\uf9b3\uf9b4\u4e42\u502a\uf9b5\u5208\u53e1\u66f3\u6c6d\u6fca\u730a\u777f\u7a62\u82ae\u85dd\u8602\uf9b6\u88d4\u8a63\u8b7d\u8c6b\uf9b7\u92b3\uf9b8\u9713\u9810\u4e94\u4f0d\u4fc9\u50b2\u5348\u543e\u5433\u55da\u5862\u58ba\u5967\u5a1b\u5be4\u609f\uf9b9\u61ca\u6556\u65ff\u6664\u68a7\u6c5a\u6fb3"],["e8a1","\u70cf\u71ac\u7352\u7b7d\u8708\u8aa4\u9c32\u9f07\u5c4b\u6c83\u7344\u7389\u923a\u6eab\u7465\u761f\u7a69\u7e15\u860a\u5140\u58c5\u64c1\u74ee\u7515\u7670\u7fc1\u9095\u96cd\u9954\u6e26\u74e6\u7aa9\u7aaa\u81e5\u86d9\u8778\u8a1b\u5a49\u5b8c\u5b9b\u68a1\u6900\u6d63\u73a9\u7413\u742c\u7897\u7de9\u7feb\u8118\u8155\u839e\u8c4c\u962e\u9811\u66f0\u5f80\u65fa\u6789\u6c6a\u738b\u502d\u5a03\u6b6a\u77ee\u5916\u5d6c\u5dcd\u7325\u754f\uf9ba\uf9bb\u50e5\u51f9\u582f\u592d\u5996\u59da\u5be5\uf9bc\uf9bd\u5da2\u62d7\u6416\u6493\u64fe\uf9be\u66dc\uf9bf\u6a48\uf9c0\u71ff\u7464\uf9c1"],["e9a1","\u7a88\u7aaf\u7e47\u7e5e\u8000\u8170\uf9c2\u87ef\u8981\u8b20\u9059\uf9c3\u9080\u9952\u617e\u6b32\u6d74\u7e1f\u8925\u8fb1\u4fd1\u50ad\u5197\u52c7\u57c7\u5889\u5bb9\u5eb8\u6142\u6995\u6d8c\u6e67\u6eb6\u7194\u7462\u7528\u752c\u8073\u8338\u84c9\u8e0a\u9394\u93de\uf9c4\u4e8e\u4f51\u5076\u512a\u53c8\u53cb\u53f3\u5b87\u5bd3\u5c24\u611a\u6182\u65f4\u725b\u7397\u7440\u76c2\u7950\u7991\u79b9\u7d06\u7fbd\u828b\u85d5\u865e\u8fc2\u9047\u90f5\u91ea\u9685\u96e8\u96e9\u52d6\u5f67\u65ed\u6631\u682f\u715c\u7a36\u90c1\u980a\u4e91\uf9c5\u6a52\u6b9e\u6f90\u7189\u8018\u82b8\u8553"],["eaa1","\u904b\u9695\u96f2\u97fb\u851a\u9b31\u4e90\u718a\u96c4\u5143\u539f\u54e1\u5713\u5712\u57a3\u5a9b\u5ac4\u5bc3\u6028\u613f\u63f4\u6c85\u6d39\u6e72\u6e90\u7230\u733f\u7457\u82d1\u8881\u8f45\u9060\uf9c6\u9662\u9858\u9d1b\u6708\u8d8a\u925e\u4f4d\u5049\u50de\u5371\u570d\u59d4\u5a01\u5c09\u6170\u6690\u6e2d\u7232\u744b\u7def\u80c3\u840e\u8466\u853f\u875f\u885b\u8918\u8b02\u9055\u97cb\u9b4f\u4e73\u4f91\u5112\u516a\uf9c7\u552f\u55a9\u5b7a\u5ba5\u5e7c\u5e7d\u5ebe\u60a0\u60df\u6108\u6109\u63c4\u6538\u6709\uf9c8\u67d4\u67da\uf9c9\u6961\u6962\u6cb9\u6d27\uf9ca\u6e38\uf9cb"],["eba1","\u6fe1\u7336\u7337\uf9cc\u745c\u7531\uf9cd\u7652\uf9ce\uf9cf\u7dad\u81fe\u8438\u88d5\u8a98\u8adb\u8aed\u8e30\u8e42\u904a\u903e\u907a\u9149\u91c9\u936e\uf9d0\uf9d1\u5809\uf9d2\u6bd3\u8089\u80b2\uf9d3\uf9d4\u5141\u596b\u5c39\uf9d5\uf9d6\u6f64\u73a7\u80e4\u8d07\uf9d7\u9217\u958f\uf9d8\uf9d9\uf9da\uf9db\u807f\u620e\u701c\u7d68\u878d\uf9dc\u57a0\u6069\u6147\u6bb7\u8abe\u9280\u96b1\u4e59\u541f\u6deb\u852d\u9670\u97f3\u98ee\u63d6\u6ce3\u9091\u51dd\u61c9\u81ba\u9df9\u4f9d\u501a\u5100\u5b9c\u610f\u61ff\u64ec\u6905\u6bc5\u7591\u77e3\u7fa9\u8264\u858f\u87fb\u8863\u8abc"],["eca1","\u8b70\u91ab\u4e8c\u4ee5\u4f0a\uf9dd\uf9de\u5937\u59e8\uf9df\u5df2\u5f1b\u5f5b\u6021\uf9e0\uf9e1\uf9e2\uf9e3\u723e\u73e5\uf9e4\u7570\u75cd\uf9e5\u79fb\uf9e6\u800c\u8033\u8084\u82e1\u8351\uf9e7\uf9e8\u8cbd\u8cb3\u9087\uf9e9\uf9ea\u98f4\u990c\uf9eb\uf9ec\u7037\u76ca\u7fca\u7fcc\u7ffc\u8b1a\u4eba\u4ec1\u5203\u5370\uf9ed\u54bd\u56e0\u59fb\u5bc5\u5f15\u5fcd\u6e6e\uf9ee\uf9ef\u7d6a\u8335\uf9f0\u8693\u8a8d\uf9f1\u976d\u9777\uf9f2\uf9f3\u4e00\u4f5a\u4f7e\u58f9\u65e5\u6ea2\u9038\u93b0\u99b9\u4efb\u58ec\u598a\u59d9\u6041\uf9f4\uf9f5\u7a14\uf9f6\u834f\u8cc3\u5165\u5344"],["eda1","\uf9f7\uf9f8\uf9f9\u4ecd\u5269\u5b55\u82bf\u4ed4\u523a\u54a8\u59c9\u59ff\u5b50\u5b57\u5b5c\u6063\u6148\u6ecb\u7099\u716e\u7386\u74f7\u75b5\u78c1\u7d2b\u8005\u81ea\u8328\u8517\u85c9\u8aee\u8cc7\u96cc\u4f5c\u52fa\u56bc\u65ab\u6628\u707c\u70b8\u7235\u7dbd\u828d\u914c\u96c0\u9d72\u5b71\u68e7\u6b98\u6f7a\u76de\u5c91\u66ab\u6f5b\u7bb4\u7c2a\u8836\u96dc\u4e08\u4ed7\u5320\u5834\u58bb\u58ef\u596c\u5c07\u5e33\u5e84\u5f35\u638c\u66b2\u6756\u6a1f\u6aa3\u6b0c\u6f3f\u7246\uf9fa\u7350\u748b\u7ae0\u7ca7\u8178\u81df\u81e7\u838a\u846c\u8523\u8594\u85cf\u88dd\u8d13\u91ac\u9577"],["eea1","\u969c\u518d\u54c9\u5728\u5bb0\u624d\u6750\u683d\u6893\u6e3d\u6ed3\u707d\u7e21\u88c1\u8ca1\u8f09\u9f4b\u9f4e\u722d\u7b8f\u8acd\u931a\u4f47\u4f4e\u5132\u5480\u59d0\u5e95\u62b5\u6775\u696e\u6a17\u6cae\u6e1a\u72d9\u732a\u75bd\u7bb8\u7d35\u82e7\u83f9\u8457\u85f7\u8a5b\u8caf\u8e87\u9019\u90b8\u96ce\u9f5f\u52e3\u540a\u5ae1\u5bc2\u6458\u6575\u6ef4\u72c4\uf9fb\u7684\u7a4d\u7b1b\u7c4d\u7e3e\u7fdf\u837b\u8b2b\u8cca\u8d64\u8de1\u8e5f\u8fea\u8ff9\u9069\u93d1\u4f43\u4f7a\u50b3\u5168\u5178\u524d\u526a\u5861\u587c\u5960\u5c08\u5c55\u5edb\u609b\u6230\u6813\u6bbf\u6c08\u6fb1"],["efa1","\u714e\u7420\u7530\u7538\u7551\u7672\u7b4c\u7b8b\u7bad\u7bc6\u7e8f\u8a6e\u8f3e\u8f49\u923f\u9293\u9322\u942b\u96fb\u985a\u986b\u991e\u5207\u622a\u6298\u6d59\u7664\u7aca\u7bc0\u7d76\u5360\u5cbe\u5e97\u6f38\u70b9\u7c98\u9711\u9b8e\u9ede\u63a5\u647a\u8776\u4e01\u4e95\u4ead\u505c\u5075\u5448\u59c3\u5b9a\u5e40\u5ead\u5ef7\u5f81\u60c5\u633a\u653f\u6574\u65cc\u6676\u6678\u67fe\u6968\u6a89\u6b63\u6c40\u6dc0\u6de8\u6e1f\u6e5e\u701e\u70a1\u738e\u73fd\u753a\u775b\u7887\u798e\u7a0b\u7a7d\u7cbe\u7d8e\u8247\u8a02\u8aea\u8c9e\u912d\u914a\u91d8\u9266\u92cc\u9320\u9706\u9756"],["f0a1","\u975c\u9802\u9f0e\u5236\u5291\u557c\u5824\u5e1d\u5f1f\u608c\u63d0\u68af\u6fdf\u796d\u7b2c\u81cd\u85ba\u88fd\u8af8\u8e44\u918d\u9664\u969b\u973d\u984c\u9f4a\u4fce\u5146\u51cb\u52a9\u5632\u5f14\u5f6b\u63aa\u64cd\u65e9\u6641\u66fa\u66f9\u671d\u689d\u68d7\u69fd\u6f15\u6f6e\u7167\u71e5\u722a\u74aa\u773a\u7956\u795a\u79df\u7a20\u7a95\u7c97\u7cdf\u7d44\u7e70\u8087\u85fb\u86a4\u8a54\u8abf\u8d99\u8e81\u9020\u906d\u91e3\u963b\u96d5\u9ce5\u65cf\u7c07\u8db3\u93c3\u5b58\u5c0a\u5352\u62d9\u731d\u5027\u5b97\u5f9e\u60b0\u616b\u68d5\u6dd9\u742e\u7a2e\u7d42\u7d9c\u7e31\u816b"],["f1a1","\u8e2a\u8e35\u937e\u9418\u4f50\u5750\u5de6\u5ea7\u632b\u7f6a\u4e3b\u4f4f\u4f8f\u505a\u59dd\u80c4\u546a\u5468\u55fe\u594f\u5b99\u5dde\u5eda\u665d\u6731\u67f1\u682a\u6ce8\u6d32\u6e4a\u6f8d\u70b7\u73e0\u7587\u7c4c\u7d02\u7d2c\u7da2\u821f\u86db\u8a3b\u8a85\u8d70\u8e8a\u8f33\u9031\u914e\u9152\u9444\u99d0\u7af9\u7ca5\u4fca\u5101\u51c6\u57c8\u5bef\u5cfb\u6659\u6a3d\u6d5a\u6e96\u6fec\u710c\u756f\u7ae3\u8822\u9021\u9075\u96cb\u99ff\u8301\u4e2d\u4ef2\u8846\u91cd\u537d\u6adb\u696b\u6c41\u847a\u589e\u618e\u66fe\u62ef\u70dd\u7511\u75c7\u7e52\u84b8\u8b49\u8d08\u4e4b\u53ea"],["f2a1","\u54ab\u5730\u5740\u5fd7\u6301\u6307\u646f\u652f\u65e8\u667a\u679d\u67b3\u6b62\u6c60\u6c9a\u6f2c\u77e5\u7825\u7949\u7957\u7d19\u80a2\u8102\u81f3\u829d\u82b7\u8718\u8a8c\uf9fc\u8d04\u8dbe\u9072\u76f4\u7a19\u7a37\u7e54\u8077\u5507\u55d4\u5875\u632f\u6422\u6649\u664b\u686d\u699b\u6b84\u6d25\u6eb1\u73cd\u7468\u74a1\u755b\u75b9\u76e1\u771e\u778b\u79e6\u7e09\u7e1d\u81fb\u852f\u8897\u8a3a\u8cd1\u8eeb\u8fb0\u9032\u93ad\u9663\u9673\u9707\u4f84\u53f1\u59ea\u5ac9\u5e19\u684e\u74c6\u75be\u79e9\u7a92\u81a3\u86ed\u8cea\u8dcc\u8fed\u659f\u6715\uf9fd\u57f7\u6f57\u7ddd\u8f2f"],["f3a1","\u93f6\u96c6\u5fb5\u61f2\u6f84\u4e14\u4f98\u501f\u53c9\u55df\u5d6f\u5dee\u6b21\u6b64\u78cb\u7b9a\uf9fe\u8e49\u8eca\u906e\u6349\u643e\u7740\u7a84\u932f\u947f\u9f6a\u64b0\u6faf\u71e6\u74a8\u74da\u7ac4\u7c12\u7e82\u7cb2\u7e98\u8b9a\u8d0a\u947d\u9910\u994c\u5239\u5bdf\u64e6\u672d\u7d2e\u50ed\u53c3\u5879\u6158\u6159\u61fa\u65ac\u7ad9\u8b92\u8b96\u5009\u5021\u5275\u5531\u5a3c\u5ee0\u5f70\u6134\u655e\u660c\u6636\u66a2\u69cd\u6ec4\u6f32\u7316\u7621\u7a93\u8139\u8259\u83d6\u84bc\u50b5\u57f0\u5bc0\u5be8\u5f69\u63a1\u7826\u7db5\u83dc\u8521\u91c7\u91f5\u518a\u67f5\u7b56"],["f4a1","\u8cac\u51c4\u59bb\u60bd\u8655\u501c\uf9ff\u5254\u5c3a\u617d\u621a\u62d3\u64f2\u65a5\u6ecc\u7620\u810a\u8e60\u965f\u96bb\u4edf\u5343\u5598\u5929\u5ddd\u64c5\u6cc9\u6dfa\u7394\u7a7f\u821b\u85a6\u8ce4\u8e10\u9077\u91e7\u95e1\u9621\u97c6\u51f8\u54f2\u5586\u5fb9\u64a4\u6f88\u7db4\u8f1f\u8f4d\u9435\u50c9\u5c16\u6cbe\u6dfb\u751b\u77bb\u7c3d\u7c64\u8a79\u8ac2\u581e\u59be\u5e16\u6377\u7252\u758a\u776b\u8adc\u8cbc\u8f12\u5ef3\u6674\u6df8\u807d\u83c1\u8acb\u9751\u9bd6\ufa00\u5243\u66ff\u6d95\u6eef\u7de0\u8ae6\u902e\u905e\u9ad4\u521d\u527f\u54e8\u6194\u6284\u62db\u68a2"],["f5a1","\u6912\u695a\u6a35\u7092\u7126\u785d\u7901\u790e\u79d2\u7a0d\u8096\u8278\u82d5\u8349\u8549\u8c82\u8d85\u9162\u918b\u91ae\u4fc3\u56d1\u71ed\u77d7\u8700\u89f8\u5bf8\u5fd6\u6751\u90a8\u53e2\u585a\u5bf5\u60a4\u6181\u6460\u7e3d\u8070\u8525\u9283\u64ae\u50ac\u5d14\u6700\u589c\u62bd\u63a8\u690e\u6978\u6a1e\u6e6b\u76ba\u79cb\u82bb\u8429\u8acf\u8da8\u8ffd\u9112\u914b\u919c\u9310\u9318\u939a\u96db\u9a36\u9c0d\u4e11\u755c\u795d\u7afa\u7b51\u7bc9\u7e2e\u84c4\u8e59\u8e74\u8ef8\u9010\u6625\u693f\u7443\u51fa\u672e\u9edc\u5145\u5fe0\u6c96\u87f2\u885d\u8877\u60b4\u81b5\u8403"],["f6a1","\u8d05\u53d6\u5439\u5634\u5a36\u5c31\u708a\u7fe0\u805a\u8106\u81ed\u8da3\u9189\u9a5f\u9df2\u5074\u4ec4\u53a0\u60fb\u6e2c\u5c64\u4f88\u5024\u55e4\u5cd9\u5e5f\u6065\u6894\u6cbb\u6dc4\u71be\u75d4\u75f4\u7661\u7a1a\u7a49\u7dc7\u7dfb\u7f6e\u81f4\u86a9\u8f1c\u96c9\u99b3\u9f52\u5247\u52c5\u98ed\u89aa\u4e03\u67d2\u6f06\u4fb5\u5be2\u6795\u6c88\u6d78\u741b\u7827\u91dd\u937c\u87c4\u79e4\u7a31\u5feb\u4ed6\u54a4\u553e\u58ae\u59a5\u60f0\u6253\u62d6\u6736\u6955\u8235\u9640\u99b1\u99dd\u502c\u5353\u5544\u577c\ufa01\u6258\ufa02\u64e2\u666b\u67dd\u6fc1\u6fef\u7422\u7438\u8a17"],["f7a1","\u9438\u5451\u5606\u5766\u5f48\u619a\u6b4e\u7058\u70ad\u7dbb\u8a95\u596a\u812b\u63a2\u7708\u803d\u8caa\u5854\u642d\u69bb\u5b95\u5e11\u6e6f\ufa03\u8569\u514c\u53f0\u592a\u6020\u614b\u6b86\u6c70\u6cf0\u7b1e\u80ce\u82d4\u8dc6\u90b0\u98b1\ufa04\u64c7\u6fa4\u6491\u6504\u514e\u5410\u571f\u8a0e\u615f\u6876\ufa05\u75db\u7b52\u7d71\u901a\u5806\u69cc\u817f\u892a\u9000\u9839\u5078\u5957\u59ac\u6295\u900f\u9b2a\u615d\u7279\u95d6\u5761\u5a46\u5df4\u628a\u64ad\u64fa\u6777\u6ce2\u6d3e\u722c\u7436\u7834\u7f77\u82ad\u8ddb\u9817\u5224\u5742\u677f\u7248\u74e3\u8ca9\u8fa6\u9211"],["f8a1","\u962a\u516b\u53ed\u634c\u4f69\u5504\u6096\u6557\u6c9b\u6d7f\u724c\u72fd\u7a17\u8987\u8c9d\u5f6d\u6f8e\u70f9\u81a8\u610e\u4fbf\u504f\u6241\u7247\u7bc7\u7de8\u7fe9\u904d\u97ad\u9a19\u8cb6\u576a\u5e73\u67b0\u840d\u8a55\u5420\u5b16\u5e63\u5ee2\u5f0a\u6583\u80ba\u853d\u9589\u965b\u4f48\u5305\u530d\u530f\u5486\u54fa\u5703\u5e03\u6016\u629b\u62b1\u6355\ufa06\u6ce1\u6d66\u75b1\u7832\u80de\u812f\u82de\u8461\u84b2\u888d\u8912\u900b\u92ea\u98fd\u9b91\u5e45\u66b4\u66dd\u7011\u7206\ufa07\u4ff5\u527d\u5f6a\u6153\u6753\u6a19\u6f02\u74e2\u7968\u8868\u8c79\u98c7\u98c4\u9a43"],["f9a1","\u54c1\u7a1f\u6953\u8af7\u8c4a\u98a8\u99ae\u5f7c\u62ab\u75b2\u76ae\u88ab\u907f\u9642\u5339\u5f3c\u5fc5\u6ccc\u73cc\u7562\u758b\u7b46\u82fe\u999d\u4e4f\u903c\u4e0b\u4f55\u53a6\u590f\u5ec8\u6630\u6cb3\u7455\u8377\u8766\u8cc0\u9050\u971e\u9c15\u58d1\u5b78\u8650\u8b14\u9db4\u5bd2\u6068\u608d\u65f1\u6c57\u6f22\u6fa3\u701a\u7f55\u7ff0\u9591\u9592\u9650\u97d3\u5272\u8f44\u51fd\u542b\u54b8\u5563\u558a\u6abb\u6db5\u7dd8\u8266\u929c\u9677\u9e79\u5408\u54c8\u76d2\u86e4\u95a4\u95d4\u965c\u4ea2\u4f09\u59ee\u5ae6\u5df7\u6052\u6297\u676d\u6841\u6c86\u6e2f\u7f38\u809b\u822a"],["faa1","\ufa08\ufa09\u9805\u4ea5\u5055\u54b3\u5793\u595a\u5b69\u5bb3\u61c8\u6977\u6d77\u7023\u87f9\u89e3\u8a72\u8ae7\u9082\u99ed\u9ab8\u52be\u6838\u5016\u5e78\u674f\u8347\u884c\u4eab\u5411\u56ae\u73e6\u9115\u97ff\u9909\u9957\u9999\u5653\u589f\u865b\u8a31\u61b2\u6af6\u737b\u8ed2\u6b47\u96aa\u9a57\u5955\u7200\u8d6b\u9769\u4fd4\u5cf4\u5f26\u61f8\u665b\u6ceb\u70ab\u7384\u73b9\u73fe\u7729\u774d\u7d43\u7d62\u7e23\u8237\u8852\ufa0a\u8ce2\u9249\u986f\u5b51\u7a74\u8840\u9801\u5acc\u4fe0\u5354\u593e\u5cfd\u633e\u6d79\u72f9\u8105\u8107\u83a2\u92cf\u9830\u4ea8\u5144\u5211\u578b"],["fba1","\u5f62\u6cc2\u6ece\u7005\u7050\u70af\u7192\u73e9\u7469\u834a\u87a2\u8861\u9008\u90a2\u93a3\u99a8\u516e\u5f57\u60e0\u6167\u66b3\u8559\u8e4a\u91af\u978b\u4e4e\u4e92\u547c\u58d5\u58fa\u597d\u5cb5\u5f27\u6236\u6248\u660a\u6667\u6beb\u6d69\u6dcf\u6e56\u6ef8\u6f94\u6fe0\u6fe9\u705d\u72d0\u7425\u745a\u74e0\u7693\u795c\u7cca\u7e1e\u80e1\u82a6\u846b\u84bf\u864e\u865f\u8774\u8b77\u8c6a\u93ac\u9800\u9865\u60d1\u6216\u9177\u5a5a\u660f\u6df7\u6e3e\u743f\u9b42\u5ffd\u60da\u7b0f\u54c4\u5f18\u6c5e\u6cd3\u6d2a\u70d8\u7d05\u8679\u8a0c\u9d3b\u5316\u548c\u5b05\u6a3a\u706b\u7575"],["fca1","\u798d\u79be\u82b1\u83ef\u8a71\u8b41\u8ca8\u9774\ufa0b\u64f4\u652b\u78ba\u78bb\u7a6b\u4e38\u559a\u5950\u5ba6\u5e7b\u60a3\u63db\u6b61\u6665\u6853\u6e19\u7165\u74b0\u7d08\u9084\u9a69\u9c25\u6d3b\u6ed1\u733e\u8c41\u95ca\u51f0\u5e4c\u5fa8\u604d\u60f6\u6130\u614c\u6643\u6644\u69a5\u6cc1\u6e5f\u6ec9\u6f62\u714c\u749c\u7687\u7bc1\u7c27\u8352\u8757\u9051\u968d\u9ec3\u532f\u56de\u5efb\u5f8a\u6062\u6094\u61f7\u6666\u6703\u6a9c\u6dee\u6fae\u7070\u736a\u7e6a\u81be\u8334\u86d4\u8aa8\u8cc4\u5283\u7372\u5b96\u6a6b\u9404\u54ee\u5686\u5b5d\u6548\u6585\u66c9\u689f\u6d8d\u6dc6"],["fda1","\u723b\u80b4\u9175\u9a4d\u4faf\u5019\u539a\u540e\u543c\u5589\u55c5\u5e3f\u5f8c\u673d\u7166\u73dd\u9005\u52db\u52f3\u5864\u58ce\u7104\u718f\u71fb\u85b0\u8a13\u6688\u85a8\u55a7\u6684\u714a\u8431\u5349\u5599\u6bc1\u5f59\u5fbd\u63ee\u6689\u7147\u8af1\u8f1d\u9ebe\u4f11\u643a\u70cb\u7566\u8667\u6064\u8b4e\u9df8\u5147\u51f6\u5308\u6d36\u80f8\u9ed1\u6615\u6b23\u7098\u75d5\u5403\u5c79\u7d07\u8a16\u6b20\u6b3d\u6b46\u5438\u6070\u6d3d\u7fd5\u8208\u50d6\u51de\u559c\u566b\u56cd\u59ec\u5b09\u5e0c\u6199\u6198\u6231\u665e\u66e6\u7199\u71b9\u71ba\u72a7\u79a7\u7a00\u7fb2\u8a70"]]')},21182:function(T,e,l){"use strict";var v=l(34984);T.exports=function(){var h=v(this),f="";return h.global&&(f+="g"),h.ignoreCase&&(f+="i"),h.multiline&&(f+="m"),h.dotAll&&(f+="s"),h.unicode&&(f+="u"),h.sticky&&(f+="y"),f}},21594:function(T,e,l){var v=l(38486),h=l(38347),f=l(6611),_=l(61146),b=l(34984),y=h([].concat);T.exports=v("Reflect","ownKeys")||function(D){var x=f.f(b(D)),k=_.f;return k?y(x,k(D)):x}},21983:function(T,e,l){var v=l(40715);T.exports=/MSIE|Trident/.test(v)},22367:function(T,e,l){"use strict";var v=l(72519),f=0,_=1;function y(Ht){for(var dt=Ht.length;--dt>=0;)Ht[dt]=0}var M=0,I=29,d=256,S=d+1+I,R=30,z=19,q=2*S+1,Z=15,H=16,G=7,W=256,te=16,P=17,J=18,j=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],re=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],he=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],oe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],me=new Array(2*(S+2));y(me);var ze=new Array(2*R);y(ze);var _e=new Array(512);y(_e);var Ae=new Array(256);y(Ae);var ve=new Array(I);y(ve);var ae,Ee,Fe,ye=new Array(R);function Oe(Ht,dt,ge,Se,ct){this.static_tree=Ht,this.extra_bits=dt,this.extra_base=ge,this.elems=Se,this.max_length=ct,this.has_stree=Ht&&Ht.length}function Ve(Ht,dt){this.dyn_tree=Ht,this.max_code=0,this.stat_desc=dt}function mt(Ht){return Ht<256?_e[Ht]:_e[256+(Ht>>>7)]}function St(Ht,dt){Ht.pending_buf[Ht.pending++]=255&dt,Ht.pending_buf[Ht.pending++]=dt>>>8&255}function oi(Ht,dt,ge){Ht.bi_valid>H-ge?(Ht.bi_buf|=dt<>H-Ht.bi_valid,Ht.bi_valid+=ge-H):(Ht.bi_buf|=dt<>>=1,ge<<=1}while(--dt>0);return ge>>>1}function _t(Ht,dt,ge){var Zt,rt,Se=new Array(Z+1),ct=0;for(Zt=1;Zt<=Z;Zt++)Se[Zt]=ct=ct+ge[Zt-1]<<1;for(rt=0;rt<=dt;rt++){var Kt=Ht[2*rt+1];0!==Kt&&(Ht[2*rt]=be(Se[Kt]++,Kt))}}function ut(Ht){var dt;for(dt=0;dt8?St(Ht,Ht.bi_buf):Ht.bi_valid>0&&(Ht.pending_buf[Ht.pending++]=Ht.bi_buf),Ht.bi_buf=0,Ht.bi_valid=0}function It(Ht,dt,ge,Se){var ct=2*dt,Zt=2*ge;return Ht[ct]>1;rt>=1;rt--)Dt(Ht,ge,rt);Ge=Zt;do{rt=Ht.heap[1],Ht.heap[1]=Ht.heap[Ht.heap_len--],Dt(Ht,ge,1),Kt=Ht.heap[1],Ht.heap[--Ht.heap_max]=rt,Ht.heap[--Ht.heap_max]=Kt,ge[2*Ge]=ge[2*rt]+ge[2*Kt],Ht.depth[Ge]=(Ht.depth[rt]>=Ht.depth[Kt]?Ht.depth[rt]:Ht.depth[Kt])+1,ge[2*rt+1]=ge[2*Kt+1]=Ge,Ht.heap[1]=Ge++,Dt(Ht,ge,1)}while(Ht.heap_len>=2);Ht.heap[--Ht.heap_max]=Ht.heap[1],function Ke(Ht,dt){var Ge,_i,qt,tt,Bt,Ut,ge=dt.dyn_tree,Se=dt.max_code,ct=dt.stat_desc.static_tree,Zt=dt.stat_desc.has_stree,rt=dt.stat_desc.extra_bits,Kt=dt.stat_desc.extra_base,on=dt.stat_desc.max_length,Si=0;for(tt=0;tt<=Z;tt++)Ht.bl_count[tt]=0;for(ge[2*Ht.heap[Ht.heap_max]+1]=0,Ge=Ht.heap_max+1;Geon&&(tt=on,Si++),ge[2*_i+1]=tt,!(_i>Se)&&(Ht.bl_count[tt]++,Bt=0,_i>=Kt&&(Bt=rt[_i-Kt]),Ht.opt_len+=(Ut=ge[2*_i])*(tt+Bt),Zt&&(Ht.static_len+=Ut*(ct[2*_i+1]+Bt)));if(0!==Si){do{for(tt=on-1;0===Ht.bl_count[tt];)tt--;Ht.bl_count[tt]--,Ht.bl_count[tt+1]+=2,Ht.bl_count[on]--,Si-=2}while(Si>0);for(tt=on;0!==tt;tt--)for(_i=Ht.bl_count[tt];0!==_i;)!((qt=Ht.heap[--Ge])>Se)&&(ge[2*qt+1]!==tt&&(Ht.opt_len+=(tt-ge[2*qt+1])*ge[2*qt],ge[2*qt+1]=tt),_i--)}}(Ht,dt),_t(ge,on,Ht.bl_count)}function qe(Ht,dt,ge){var Se,Zt,ct=-1,rt=dt[1],Kt=0,on=7,Ge=4;for(0===rt&&(on=138,Ge=3),dt[2*(ge+1)+1]=65535,Se=0;Se<=ge;Se++)Zt=rt,rt=dt[2*(Se+1)+1],!(++Kt>=7;Se0?(2===Ht.strm.data_type&&(Ht.strm.data_type=function ai(Ht){var ge,dt=4093624447;for(ge=0;ge<=31;ge++,dt>>>=1)if(1&dt&&0!==Ht.dyn_ltree[2*ge])return f;if(0!==Ht.dyn_ltree[18]||0!==Ht.dyn_ltree[20]||0!==Ht.dyn_ltree[26])return _;for(ge=32;ge=3&&0===Ht.bl_tree[2*oe[dt]+1];dt--);return Ht.opt_len+=3*(dt+1)+5+5+4,dt}(Ht),(Zt=Ht.static_len+3+7>>>3)<=(ct=Ht.opt_len+3+7>>>3)&&(ct=Zt)):ct=Zt=ge+5,ge+4<=ct&&-1!==dt?zt(Ht,dt,ge,Se):4===Ht.strategy||Zt===ct?(oi(Ht,2+(Se?1:0),3),vt(Ht,me,ze)):(oi(Ht,4+(Se?1:0),3),function gt(Ht,dt,ge,Se){var ct;for(oi(Ht,dt-257,5),oi(Ht,ge-1,5),oi(Ht,Se-4,4),ct=0;ct>>8&255,Ht.pending_buf[Ht.d_buf+2*Ht.last_lit+1]=255&dt,Ht.pending_buf[Ht.l_buf+Ht.last_lit]=255&ge,Ht.last_lit++,0===dt?Ht.dyn_ltree[2*ge]++:(Ht.matches++,dt--,Ht.dyn_ltree[2*(Ae[ge]+d+1)]++,Ht.dyn_dtree[2*mt(dt)]++),Ht.last_lit===Ht.lit_bufsize-1},e._tr_align=function mi(Ht){oi(Ht,2,3),He(Ht,W,me),function je(Ht){16===Ht.bi_valid?(St(Ht,Ht.bi_buf),Ht.bi_buf=0,Ht.bi_valid=0):Ht.bi_valid>=8&&(Ht.pending_buf[Ht.pending++]=255&Ht.bi_buf,Ht.bi_buf>>=8,Ht.bi_valid-=8)}(Ht)}},22774:function(T,e,l){"use strict";var v=l(28651),h=l(36688),f=h([v("%String.prototype.indexOf%")]);T.exports=function(b,y){var M=v(b,!!y);return"function"==typeof M&&f(b,".prototype.")>-1?h([M]):M}},22925:function(T,e,l){"use strict";var Zi,v=l(72519),h=l(22367),f=l(46911),_=l(99049),b=l(56228),y=0,x=4,Q=0,d=-2,z=-1,G=4,te=2,P=8,J=9,Ce=286,me=30,ze=19,_e=2*Ce+1,Ae=15,ve=3,ye=258,Oe=ye+ve+1,Ee=42,oi=113,be=1,je=2,Ke=3,_t=4;function ut(Ge,_i){return Ge.msg=b[_i],_i}function et(Ge){return(Ge<<1)-(Ge>4?9:0)}function Xe(Ge){for(var _i=Ge.length;--_i>=0;)Ge[_i]=0}function It(Ge){var _i=Ge.state,qt=_i.pending;qt>Ge.avail_out&&(qt=Ge.avail_out),0!==qt&&(v.arraySet(Ge.output,_i.pending_buf,_i.pending_out,qt,Ge.next_out),Ge.next_out+=qt,_i.pending_out+=qt,Ge.total_out+=qt,Ge.avail_out-=qt,_i.pending-=qt,0===_i.pending&&(_i.pending_out=0))}function Dt(Ge,_i){h._tr_flush_block(Ge,Ge.block_start>=0?Ge.block_start:-1,Ge.strstart-Ge.block_start,_i),Ge.block_start=Ge.strstart,It(Ge.strm)}function vt(Ge,_i){Ge.pending_buf[Ge.pending++]=_i}function Qt(Ge,_i){Ge.pending_buf[Ge.pending++]=_i>>>8&255,Ge.pending_buf[Ge.pending++]=255&_i}function qe(Ge,_i,qt,tt){var Bt=Ge.avail_in;return Bt>tt&&(Bt=tt),0===Bt?0:(Ge.avail_in-=Bt,v.arraySet(_i,Ge.input,Ge.next_in,Bt,qt),1===Ge.state.wrap?Ge.adler=f(Ge.adler,_i,Bt,qt):2===Ge.state.wrap&&(Ge.adler=_(Ge.adler,_i,Bt,qt)),Ge.next_in+=Bt,Ge.total_in+=Bt,Bt)}function ke(Ge,_i){var Bt,Ut,qt=Ge.max_chain_length,tt=Ge.strstart,Si=Ge.prev_length,Ti=Ge.nice_match,ln=Ge.strstart>Ge.w_size-Oe?Ge.strstart-(Ge.w_size-Oe):0,Ji=Ge.window,or=Ge.w_mask,fn=Ge.prev,Pn=Ge.strstart+ye,mn=Ji[tt+Si-1],ui=Ji[tt+Si];Ge.prev_length>=Ge.good_match&&(qt>>=2),Ti>Ge.lookahead&&(Ti=Ge.lookahead);do{if(Ji[(Bt=_i)+Si]===ui&&Ji[Bt+Si-1]===mn&&Ji[Bt]===Ji[tt]&&Ji[++Bt]===Ji[tt+1]){tt+=2,Bt++;do{}while(Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&Ji[++tt]===Ji[++Bt]&&ttSi){if(Ge.match_start=_i,Si=Ut,Ut>=Ti)break;mn=Ji[tt+Si-1],ui=Ji[tt+Si]}}}while((_i=fn[_i&or])>ln&&0!=--qt);return Si<=Ge.lookahead?Si:Ge.lookahead}function it(Ge){var qt,tt,Bt,Ut,Si,_i=Ge.w_size;do{if(Ut=Ge.window_size-Ge.lookahead-Ge.strstart,Ge.strstart>=_i+(_i-Oe)){v.arraySet(Ge.window,Ge.window,_i,_i,0),Ge.match_start-=_i,Ge.strstart-=_i,Ge.block_start-=_i,qt=tt=Ge.hash_size;do{Bt=Ge.head[--qt],Ge.head[qt]=Bt>=_i?Bt-_i:0}while(--tt);qt=tt=_i;do{Bt=Ge.prev[--qt],Ge.prev[qt]=Bt>=_i?Bt-_i:0}while(--tt);Ut+=_i}if(0===Ge.strm.avail_in)break;if(tt=qe(Ge.strm,Ge.window,Ge.strstart+Ge.lookahead,Ut),Ge.lookahead+=tt,Ge.lookahead+Ge.insert>=ve)for(Ge.ins_h=Ge.window[Si=Ge.strstart-Ge.insert],Ge.ins_h=(Ge.ins_h<=ve&&(Ge.ins_h=(Ge.ins_h<=ve)if(tt=h._tr_tally(Ge,Ge.strstart-Ge.match_start,Ge.match_length-ve),Ge.lookahead-=Ge.match_length,Ge.match_length<=Ge.max_lazy_match&&Ge.lookahead>=ve){Ge.match_length--;do{Ge.strstart++,Ge.ins_h=(Ge.ins_h<=ve&&(Ge.ins_h=(Ge.ins_h<4096)&&(Ge.match_length=ve-1)),Ge.prev_length>=ve&&Ge.match_length<=Ge.prev_length){Bt=Ge.strstart+Ge.lookahead-ve,tt=h._tr_tally(Ge,Ge.strstart-1-Ge.prev_match,Ge.prev_length-ve),Ge.lookahead-=Ge.prev_length-1,Ge.prev_length-=2;do{++Ge.strstart<=Bt&&(Ge.ins_h=(Ge.ins_h<15&&(Si=2,tt-=16),Bt<1||Bt>J||qt!==P||tt<8||tt>15||_i<0||_i>9||Ut<0||Ut>G)return ut(Ge,d);8===tt&&(tt=9);var Ti=new Ht;return Ge.state=Ti,Ti.strm=Ge,Ti.wrap=Si,Ti.gzhead=null,Ti.w_bits=tt,Ti.w_size=1<Ge.pending_buf_size-5&&(qt=Ge.pending_buf_size-5);;){if(Ge.lookahead<=1){if(it(Ge),0===Ge.lookahead&&_i===y)return be;if(0===Ge.lookahead)break}Ge.strstart+=Ge.lookahead,Ge.lookahead=0;var tt=Ge.block_start+qt;if((0===Ge.strstart||Ge.strstart>=tt)&&(Ge.lookahead=Ge.strstart-tt,Ge.strstart=tt,Dt(Ge,!1),0===Ge.strm.avail_out)||Ge.strstart-Ge.block_start>=Ge.w_size-Oe&&(Dt(Ge,!1),0===Ge.strm.avail_out))return be}return Ge.insert=0,_i===x?(Dt(Ge,!0),0===Ge.strm.avail_out?Ke:_t):(Ge.strstart>Ge.block_start&&Dt(Ge,!1),be)}),new mi(4,4,8,4,ai),new mi(4,5,16,8,ai),new mi(4,6,32,32,ai),new mi(4,4,16,16,Rt),new mi(8,16,32,32,Rt),new mi(8,16,128,128,Rt),new mi(8,32,128,256,Rt),new mi(32,128,258,1024,Rt),new mi(32,258,258,4096,Rt)],e.deflateInit=function Zt(Ge,_i){return ct(Ge,_i,P,15,8,0)},e.deflateInit2=ct,e.deflateReset=ge,e.deflateResetKeep=dt,e.deflateSetHeader=function Se(Ge,_i){return Ge&&Ge.state&&2===Ge.state.wrap?(Ge.state.gzhead=_i,Q):d},e.deflate=function rt(Ge,_i){var qt,tt,Bt,Ut;if(!Ge||!Ge.state||_i>5||_i<0)return Ge?ut(Ge,d):d;if(tt=Ge.state,!Ge.output||!Ge.input&&0!==Ge.avail_in||666===tt.status&&_i!==x)return ut(Ge,0===Ge.avail_out?-5:d);if(tt.strm=Ge,qt=tt.last_flush,tt.last_flush=_i,tt.status===Ee)if(2===tt.wrap)Ge.adler=0,vt(tt,31),vt(tt,139),vt(tt,8),tt.gzhead?(vt(tt,(tt.gzhead.text?1:0)+(tt.gzhead.hcrc?2:0)+(tt.gzhead.extra?4:0)+(tt.gzhead.name?8:0)+(tt.gzhead.comment?16:0)),vt(tt,255&tt.gzhead.time),vt(tt,tt.gzhead.time>>8&255),vt(tt,tt.gzhead.time>>16&255),vt(tt,tt.gzhead.time>>24&255),vt(tt,9===tt.level?2:tt.strategy>=2||tt.level<2?4:0),vt(tt,255&tt.gzhead.os),tt.gzhead.extra&&tt.gzhead.extra.length&&(vt(tt,255&tt.gzhead.extra.length),vt(tt,tt.gzhead.extra.length>>8&255)),tt.gzhead.hcrc&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending,0)),tt.gzindex=0,tt.status=69):(vt(tt,0),vt(tt,0),vt(tt,0),vt(tt,0),vt(tt,0),vt(tt,9===tt.level?2:tt.strategy>=2||tt.level<2?4:0),vt(tt,3),tt.status=oi);else{var Si=P+(tt.w_bits-8<<4)<<8;Si|=(tt.strategy>=2||tt.level<2?0:tt.level<6?1:6===tt.level?2:3)<<6,0!==tt.strstart&&(Si|=32),Si+=31-Si%31,tt.status=oi,Qt(tt,Si),0!==tt.strstart&&(Qt(tt,Ge.adler>>>16),Qt(tt,65535&Ge.adler)),Ge.adler=1}if(69===tt.status)if(tt.gzhead.extra){for(Bt=tt.pending;tt.gzindex<(65535&tt.gzhead.extra.length)&&(tt.pending!==tt.pending_buf_size||(tt.gzhead.hcrc&&tt.pending>Bt&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending-Bt,Bt)),It(Ge),Bt=tt.pending,tt.pending!==tt.pending_buf_size));)vt(tt,255&tt.gzhead.extra[tt.gzindex]),tt.gzindex++;tt.gzhead.hcrc&&tt.pending>Bt&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending-Bt,Bt)),tt.gzindex===tt.gzhead.extra.length&&(tt.gzindex=0,tt.status=73)}else tt.status=73;if(73===tt.status)if(tt.gzhead.name){Bt=tt.pending;do{if(tt.pending===tt.pending_buf_size&&(tt.gzhead.hcrc&&tt.pending>Bt&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending-Bt,Bt)),It(Ge),Bt=tt.pending,tt.pending===tt.pending_buf_size)){Ut=1;break}Ut=tt.gzindexBt&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending-Bt,Bt)),0===Ut&&(tt.gzindex=0,tt.status=91)}else tt.status=91;if(91===tt.status)if(tt.gzhead.comment){Bt=tt.pending;do{if(tt.pending===tt.pending_buf_size&&(tt.gzhead.hcrc&&tt.pending>Bt&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending-Bt,Bt)),It(Ge),Bt=tt.pending,tt.pending===tt.pending_buf_size)){Ut=1;break}Ut=tt.gzindexBt&&(Ge.adler=_(Ge.adler,tt.pending_buf,tt.pending-Bt,Bt)),0===Ut&&(tt.status=103)}else tt.status=103;if(103===tt.status&&(tt.gzhead.hcrc?(tt.pending+2>tt.pending_buf_size&&It(Ge),tt.pending+2<=tt.pending_buf_size&&(vt(tt,255&Ge.adler),vt(tt,Ge.adler>>8&255),Ge.adler=0,tt.status=oi)):tt.status=oi),0!==tt.pending){if(It(Ge),0===Ge.avail_out)return tt.last_flush=-1,Q}else if(0===Ge.avail_in&&et(_i)<=et(qt)&&_i!==x)return ut(Ge,-5);if(666===tt.status&&0!==Ge.avail_in)return ut(Ge,-5);if(0!==Ge.avail_in||0!==tt.lookahead||_i!==y&&666!==tt.status){var ln=2===tt.strategy?function zt(Ge,_i){for(var qt;;){if(0===Ge.lookahead&&(it(Ge),0===Ge.lookahead)){if(_i===y)return be;break}if(Ge.match_length=0,qt=h._tr_tally(Ge,0,Ge.window[Ge.strstart]),Ge.lookahead--,Ge.strstart++,qt&&(Dt(Ge,!1),0===Ge.strm.avail_out))return be}return Ge.insert=0,_i===x?(Dt(Ge,!0),0===Ge.strm.avail_out?Ke:_t):Ge.last_lit&&(Dt(Ge,!1),0===Ge.strm.avail_out)?be:je}(tt,_i):3===tt.strategy?function Gt(Ge,_i){for(var qt,tt,Bt,Ut,Si=Ge.window;;){if(Ge.lookahead<=ye){if(it(Ge),Ge.lookahead<=ye&&_i===y)return be;if(0===Ge.lookahead)break}if(Ge.match_length=0,Ge.lookahead>=ve&&Ge.strstart>0&&(tt=Si[Bt=Ge.strstart-1])===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]){Ut=Ge.strstart+ye;do{}while(tt===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]&&tt===Si[++Bt]&&BtGe.lookahead&&(Ge.match_length=Ge.lookahead)}if(Ge.match_length>=ve?(qt=h._tr_tally(Ge,1,Ge.match_length-ve),Ge.lookahead-=Ge.match_length,Ge.strstart+=Ge.match_length,Ge.match_length=0):(qt=h._tr_tally(Ge,0,Ge.window[Ge.strstart]),Ge.lookahead--,Ge.strstart++),qt&&(Dt(Ge,!1),0===Ge.strm.avail_out))return be}return Ge.insert=0,_i===x?(Dt(Ge,!0),0===Ge.strm.avail_out?Ke:_t):Ge.last_lit&&(Dt(Ge,!1),0===Ge.strm.avail_out)?be:je}(tt,_i):Zi[tt.level].func(tt,_i);if((ln===Ke||ln===_t)&&(tt.status=666),ln===be||ln===Ke)return 0===Ge.avail_out&&(tt.last_flush=-1),Q;if(ln===je&&(1===_i?h._tr_align(tt):5!==_i&&(h._tr_stored_block(tt,0,0,!1),3===_i&&(Xe(tt.head),0===tt.lookahead&&(tt.strstart=0,tt.block_start=0,tt.insert=0))),It(Ge),0===Ge.avail_out))return tt.last_flush=-1,Q}return _i!==x?Q:tt.wrap<=0?1:(2===tt.wrap?(vt(tt,255&Ge.adler),vt(tt,Ge.adler>>8&255),vt(tt,Ge.adler>>16&255),vt(tt,Ge.adler>>24&255),vt(tt,255&Ge.total_in),vt(tt,Ge.total_in>>8&255),vt(tt,Ge.total_in>>16&255),vt(tt,Ge.total_in>>24&255)):(Qt(tt,Ge.adler>>>16),Qt(tt,65535&Ge.adler)),It(Ge),tt.wrap>0&&(tt.wrap=-tt.wrap),0!==tt.pending?Q:1)},e.deflateEnd=function Kt(Ge){var _i;return Ge&&Ge.state?(_i=Ge.state.status)!==Ee&&69!==_i&&73!==_i&&91!==_i&&103!==_i&&_i!==oi&&666!==_i?ut(Ge,d):(Ge.state=null,_i===oi?ut(Ge,-3):Q):d},e.deflateSetDictionary=function on(Ge,_i){var tt,Bt,Ut,Si,Ti,ln,Ji,or,qt=_i.length;if(!Ge||!Ge.state||2===(Si=(tt=Ge.state).wrap)||1===Si&&tt.status!==Ee||tt.lookahead)return d;for(1===Si&&(Ge.adler=f(Ge.adler,_i,qt,0)),tt.wrap=0,qt>=tt.w_size&&(0===Si&&(Xe(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0),or=new v.Buf8(tt.w_size),v.arraySet(or,_i,qt-tt.w_size,tt.w_size,0),_i=or,qt=tt.w_size),Ti=Ge.avail_in,ln=Ge.next_in,Ji=Ge.input,Ge.avail_in=qt,Ge.next_in=0,Ge.input=_i,it(tt);tt.lookahead>=ve;){Bt=tt.strstart,Ut=tt.lookahead-(ve-1);do{tt.ins_h=(tt.ins_h<>>8^255&te^99,M[te]=G;var re,P=Z[G],J=Z[P],j=Z[J];D[G]=(re=257*Z[te]^16843008*te)<<24|re>>>8,x[G]=re<<16|re>>>16,k[G]=re<<8|re>>>24,Q[G]=re,I[te]=(re=16843009*j^65537*J^257*P^16843008*G)<<24|re>>>8,d[te]=re<<16|re>>>16,S[te]=re<<8|re>>>24,R[te]=re,G?(G=P^Z[Z[Z[j^P]]],W^=Z[Z[W]]):G=W=1}}();var z=[0,1,2,4,8,16,32,64,128,27,54],q=b.AES=_.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var G=this._keyPriorReset=this._key,W=G.words,te=G.sigBytes/4,J=4*((this._nRounds=te+6)+1),j=this._keySchedule=[],re=0;re6&&re%te==4&&(H=y[H>>>24]<<24|y[H>>>16&255]<<16|y[H>>>8&255]<<8|y[255&H]):(H=y[(H=H<<8|H>>>24)>>>24]<<24|y[H>>>16&255]<<16|y[H>>>8&255]<<8|y[255&H],H^=z[re/te|0]<<24),j[re]=j[re-te]^H);for(var he=this._invKeySchedule=[],oe=0;oe>>24]]^d[y[H>>>16&255]]^S[y[H>>>8&255]]^R[y[255&H]]}}},encryptBlock:function(H,G){this._doCryptBlock(H,G,this._keySchedule,D,x,k,Q,y)},decryptBlock:function(H,G){var W=H[G+1];H[G+1]=H[G+3],H[G+3]=W,this._doCryptBlock(H,G,this._invKeySchedule,I,d,S,R,M),W=H[G+1],H[G+1]=H[G+3],H[G+3]=W},_doCryptBlock:function(H,G,W,te,P,J,j,re){for(var he=this._nRounds,oe=H[G]^W[0],Ce=H[G+1]^W[1],me=H[G+2]^W[2],ze=H[G+3]^W[3],_e=4,Ae=1;Ae>>24]^P[Ce>>>16&255]^J[me>>>8&255]^j[255&ze]^W[_e++],ye=te[Ce>>>24]^P[me>>>16&255]^J[ze>>>8&255]^j[255&oe]^W[_e++],Oe=te[me>>>24]^P[ze>>>16&255]^J[oe>>>8&255]^j[255&Ce]^W[_e++],ae=te[ze>>>24]^P[oe>>>16&255]^J[Ce>>>8&255]^j[255&me]^W[_e++];oe=ve,Ce=ye,me=Oe,ze=ae}ve=(re[oe>>>24]<<24|re[Ce>>>16&255]<<16|re[me>>>8&255]<<8|re[255&ze])^W[_e++],ye=(re[Ce>>>24]<<24|re[me>>>16&255]<<16|re[ze>>>8&255]<<8|re[255&oe])^W[_e++],Oe=(re[me>>>24]<<24|re[ze>>>16&255]<<16|re[oe>>>8&255]<<8|re[255&Ce])^W[_e++],ae=(re[ze>>>24]<<24|re[oe>>>16&255]<<16|re[Ce>>>8&255]<<8|re[255&me])^W[_e++],H[G]=ve,H[G+1]=ye,H[G+2]=Oe,H[G+3]=ae},keySize:8});h.AES=_._createHelper(q)}(),v.AES)},23327:function(T){T.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},23417:function(T,e,l){var v=l(26882),h=Math.min;T.exports=function(f){return f>0?h(v(f),9007199254740991):0}},23913:function(T,e,l){"use strict";var v=l(56475),h=l(32010),f=l(74841),_=l(26882),b=l(45495),y=l(43162),M=l(45744),D=l(38639),k=l(56280)("splice"),Q=h.TypeError,I=Math.max,d=Math.min;v({target:"Array",proto:!0,forced:!k},{splice:function(q,Z){var P,J,j,re,he,oe,H=y(this),G=b(H),W=f(q,G),te=arguments.length;if(0===te?P=J=0:1===te?(P=0,J=G-W):(P=te-2,J=d(I(_(Z),0),G-W)),G+P-J>9007199254740991)throw Q("Maximum allowed length exceeded");for(j=M(H,J),re=0;reG-J+P;re--)delete H[re-1]}else if(P>J)for(re=G-J;re>W;re--)oe=re+P-1,(he=re+J-1)in H?H[oe]=H[he]:delete H[oe];for(re=0;re>>5]>>>31-W%32&1}for(var te=this._subKeys=[],P=0;P<16;P++){var J=te[P]=[],j=x[P];for(G=0;G<24;G++)J[G/6|0]|=H[(D[G]-1+j)%28]<<31-G%6,J[4+(G/6|0)]|=H[28+(D[G+24]-1+j)%28]<<31-G%6;for(J[0]=J[0]<<1|J[0]>>>31,G=1;G<7;G++)J[G]=J[G]>>>4*(G-1)+3;J[7]=J[7]<<5|J[7]>>>27}var re=this._invSubKeys=[];for(G=0;G<16;G++)re[G]=te[15-G]},encryptBlock:function(q,Z){this._doCryptBlock(q,Z,this._subKeys)},decryptBlock:function(q,Z){this._doCryptBlock(q,Z,this._invSubKeys)},_doCryptBlock:function(q,Z,H){this._lBlock=q[Z],this._rBlock=q[Z+1],d.call(this,4,252645135),d.call(this,16,65535),S.call(this,2,858993459),S.call(this,8,16711935),d.call(this,1,1431655765);for(var G=0;G<16;G++){for(var W=H[G],te=this._lBlock,P=this._rBlock,J=0,j=0;j<8;j++)J|=k[j][((P^W[j])&Q[j])>>>0];this._lBlock=P,this._rBlock=te^J}var re=this._lBlock;this._lBlock=this._rBlock,this._rBlock=re,d.call(this,1,1431655765),S.call(this,8,16711935),S.call(this,2,858993459),d.call(this,16,65535),d.call(this,4,252645135),q[Z]=this._lBlock,q[Z+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function d(z,q){var Z=(this._lBlock>>>z^this._rBlock)&q;this._rBlock^=Z,this._lBlock^=Z<>>z^this._lBlock)&q;this._lBlock^=Z,this._rBlock^=Z<192.");var H=Z.slice(0,2),G=Z.length<4?Z.slice(0,2):Z.slice(2,4),W=Z.length<6?Z.slice(0,2):Z.slice(4,6);this._des1=I.createEncryptor(_.create(H)),this._des2=I.createEncryptor(_.create(G)),this._des3=I.createEncryptor(_.create(W))},encryptBlock:function(q,Z){this._des1.encryptBlock(q,Z),this._des2.decryptBlock(q,Z),this._des3.encryptBlock(q,Z)},decryptBlock:function(q,Z){this._des3.decryptBlock(q,Z),this._des2.encryptBlock(q,Z),this._des1.decryptBlock(q,Z)},keySize:6,ivSize:2,blockSize:2});h.TripleDES=b._createHelper(R)}(),v.TripleDES)},24162:function(T,e,l){"use strict";var v=l(93143).Buffer;function h(k,Q){this.iconv=Q,this.bomAware=!0,this.isLE=k.isLE}function f(k,Q){this.isLE=Q.isLE,this.highSurrogate=0}function _(k,Q){this.isLE=Q.isLE,this.badChar=Q.iconv.defaultCharUnicode.charCodeAt(0),this.overflow=[]}function b(k,Q,I,d){if((I<0||I>1114111)&&(I=d),I>=65536){var S=55296|(I-=65536)>>10;k[Q++]=255&S,k[Q++]=S>>8,I=56320|1023&I}return k[Q++]=255&I,k[Q++]=I>>8,Q}function y(k,Q){this.iconv=Q}function M(k,Q){void 0===(k=k||{}).addBOM&&(k.addBOM=!0),this.encoder=Q.iconv.getEncoder(k.defaultEncoding||"utf-32le",k)}function D(k,Q){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=k||{},this.iconv=Q.iconv}function x(k,Q){var I=[],d=0,S=0,R=0,z=0,q=0;e:for(var Z=0;Z16)&&R++,(0!==I[3]||I[2]>16)&&S++,0===I[0]&&0===I[1]&&(0!==I[2]||0!==I[3])&&q++,(0!==I[0]||0!==I[1])&&0===I[2]&&0===I[3]&&z++,I.length=0,++d>=100)break e}return q-R>z-S?"utf-32be":q-R0){for(;Q0?this.tail.next=Z:this.head=Z,this.tail=Z,++this.length}},{key:"unshift",value:function(q){var Z={data:q,next:this.head};0===this.length&&(this.tail=Z),this.head=Z,++this.length}},{key:"shift",value:function(){if(0!==this.length){var q=this.head.data;return this.head=1===this.length?this.tail=null:this.head.next,--this.length,q}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(q){if(0===this.length)return"";for(var Z=this.head,H=""+Z.data;Z=Z.next;)H+=q+Z.data;return H}},{key:"concat",value:function(q){if(0===this.length)return k.alloc(0);for(var Z=k.allocUnsafe(q>>>0),H=this.head,G=0;H;)S(H.data,Z,G),G+=H.data.length,H=H.next;return Z}},{key:"consume",value:function(q,Z){var H;return qW.length?W.length:q;if(G+=te===W.length?W:W.slice(0,q),0==(q-=te)){te===W.length?(++H,this.head=Z.next?Z.next:this.tail=null):(this.head=Z,Z.data=W.slice(te));break}++H}return this.length-=H,G}},{key:"_getBuffer",value:function(q){var Z=k.allocUnsafe(q),H=this.head,G=1;for(H.data.copy(Z),q-=H.data.length;H=H.next;){var W=H.data,te=q>W.length?W.length:q;if(W.copy(Z,Z.length-q,0,te),0==(q-=te)){te===W.length?(++G,this.head=H.next?H.next:this.tail=null):(this.head=H,H.data=W.slice(te));break}++G}return this.length-=G,Z}},{key:d,value:function(q,Z){return I(this,h(h({},Z),{},{depth:0,customInspect:!1}))}}]),R}()},24517:function(T,e,l){var v=l(94578);T.exports=function(h){return"object"==typeof h?null!==h:v(h)}},24597:function(T,e,l){"use strict";var v=l(59754),h=l(58448),f=l(84320),_=v.aTypedArray;(0,v.exportTypedArrayMethod)("lastIndexOf",function(M){var D=arguments.length;return h(f,_(this),D>1?[M,arguments[1]]:[M])})},24663:function(T,e,l){var f={};f[l(38688)("toStringTag")]="z",T.exports="[object z]"===String(f)},24766:function(T,e,l){var v=l(32504),h=l(59006);function f(Fe){return Fe&&Fe.__esModule?Fe.default:Fe}function b(Fe,Ve,mt,St){Object.defineProperty(Fe,Ve,{get:mt,set:St,enumerable:!0,configurable:!0})}(function _(Fe){Object.defineProperty(Fe,"__esModule",{value:!0,configurable:!0})})(T.exports),b(T.exports,"getCategory",()=>J),b(T.exports,"getCombiningClass",()=>j),b(T.exports,"getScript",()=>re),b(T.exports,"getEastAsianWidth",()=>he),b(T.exports,"getNumericValue",()=>oe),b(T.exports,"isAlphabetic",()=>Ce),b(T.exports,"isDigit",()=>me),b(T.exports,"isPunctuation",()=>ze),b(T.exports,"isLowerCase",()=>_e),b(T.exports,"isUpperCase",()=>Ae),b(T.exports,"isTitleCase",()=>ve),b(T.exports,"isWhiteSpace",()=>ye),b(T.exports,"isBaseForm",()=>Oe),b(T.exports,"isMark",()=>ae),b(T.exports,"default",()=>Ee);var y={};y=JSON.parse('{"categories":["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Me","Mc","Nl","Zl","Zp","Cs","Co"],"combiningClasses":["Not_Reordered","Above","Above_Right","Below","Attached_Above_Right","Attached_Below","Overlay","Iota_Subscript","Double_Below","Double_Above","Below_Right","Above_Left","CCC10","CCC11","CCC12","CCC13","CCC14","CCC15","CCC16","CCC17","CCC18","CCC19","CCC20","CCC21","CCC22","CCC23","CCC24","CCC25","CCC30","CCC31","CCC32","CCC27","CCC28","CCC29","CCC33","CCC34","CCC35","CCC36","Nukta","Virama","CCC84","CCC91","CCC103","CCC107","CCC118","CCC122","CCC129","CCC130","CCC132","Attached_Above","Below_Left","Left","Kana_Voicing","CCC26","Right"],"scripts":["Common","Latin","Bopomofo","Inherited","Greek","Coptic","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Nko","Samaritan","Mandaic","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul","Ethiopic","Cherokee","Canadian_Aboriginal","Ogham","Runic","Tagalog","Hanunoo","Buhid","Tagbanwa","Khmer","Mongolian","Limbu","Tai_Le","New_Tai_Lue","Buginese","Tai_Tham","Balinese","Sundanese","Batak","Lepcha","Ol_Chiki","Braille","Glagolitic","Tifinagh","Han","Hiragana","Katakana","Yi","Lisu","Vai","Bamum","Syloti_Nagri","Phags_Pa","Saurashtra","Kayah_Li","Rejang","Javanese","Cham","Tai_Viet","Meetei_Mayek","null","Linear_B","Lycian","Carian","Old_Italic","Gothic","Old_Permic","Ugaritic","Old_Persian","Deseret","Shavian","Osmanya","Osage","Elbasan","Caucasian_Albanian","Linear_A","Cypriot","Imperial_Aramaic","Palmyrene","Nabataean","Hatran","Phoenician","Lydian","Meroitic_Hieroglyphs","Meroitic_Cursive","Kharoshthi","Old_South_Arabian","Old_North_Arabian","Manichaean","Avestan","Inscriptional_Parthian","Inscriptional_Pahlavi","Psalter_Pahlavi","Old_Turkic","Old_Hungarian","Hanifi_Rohingya","Old_Sogdian","Sogdian","Elymaic","Brahmi","Kaithi","Sora_Sompeng","Chakma","Mahajani","Sharada","Khojki","Multani","Khudawadi","Grantha","Newa","Tirhuta","Siddham","Modi","Takri","Ahom","Dogra","Warang_Citi","Nandinagari","Zanabazar_Square","Soyombo","Pau_Cin_Hau","Bhaiksuki","Marchen","Masaram_Gondi","Gunjala_Gondi","Makasar","Cuneiform","Egyptian_Hieroglyphs","Anatolian_Hieroglyphs","Mro","Bassa_Vah","Pahawh_Hmong","Medefaidrin","Miao","Tangut","Nushu","Duployan","SignWriting","Nyiakeng_Puachue_Hmong","Wancho","Mende_Kikakui","Adlam"],"eaw":["N","Na","A","W","H","F"]}');const M=new(f(h))(f(v).toByteArray("AAARAAAAAADwfAEAZXl5ONRt+/5bPVFZimRfKoTQJNm37CGE7Iw0j3UsTWKsoyI7kwyyTiEUzSD7NiEzhWYijH0wMVkHE4Mx49fzfo+3nuP4/fdZjvv+XNd5n/d9nef1WZvmKhTxiZndzDQBSEYQqxqKwnsKvGQucFh+6t6cJ792ePQBZv5S9yXSwkyjf/P4T7mTNnIAv1dOVhMlR9lflbUL9JeJguqsjvG9NTj/wLb566VAURnLo2vvRi89S3gW/33ihh2eXpDn40BIW7REl/7coRKIhAFlAiOtbLDTt6mMb4GzMF1gNnvX/sBxtbsAIjfztCNcQjcNDtLThRvuXu5M5g/CBjaLBE4lJm4qy/oZD97+IJryApcXfgWYlkvWbhfXgujOJKVu8B+ozqTLbxyJ5kNiR75CxDqfBM9eOlDMmGeoZ0iQbbS5VUplIwI+ZNXEKQVJxlwqjhOY7w3XwPesbLK5JZE+Tt4X8q8km0dzInsPPzbscrjBMVjF5mOHSeRdJVgKUjLTHiHqXSPkep8N/zFk8167KLp75f6RndkvzdfB6Uz3MmqvRArzdCbs1/iRZjYPLLF3U8Qs+H+Rb8iK51a6NIV2V9+07uJsTGFWpPz8J++7iRu2B6eAKlK/kujrLthwaD/7a6J5w90TusnH1JMAc+gNrql4aspOUG/RrsxUKmPzhHgP4Bleru+6Vfc/MBjgXVx7who94nPn7MPFrnwQP7g0k0Dq0h2GSKO6fTZ8nLodN1SiOUj/5EL/Xo1DBvRm0wmrh3x6phcJ20/9CuMr5h8WPqXMSasLoLHoufTmE7mzYrs6B0dY7KjuCogKqsvxnxAwXWvd9Puc9PnE8DOHT2INHxRlIyVHrqZahtfV2E/A2PDdtA3ewlRHMtFIBKO/T4IozWTQZ+mb+gdKuk/ZHrqloucKdsOSJmlWTSntWjcxVMjUmroXLM10I6TwDLnBq4LP69TxgVeyGsd8yHvhF8ydPlrNRSNs9EP7WmeuSE7Lu10JbOuQcJw/63sDp68wB9iwP5AO+mBpV0R5VDDeyQUFCel1G+4KHBgEVFS0YK+m2sXLWLuGTlkVAd97WwKKdacjWElRCuDRauf33l/yVcDF6sVPKeTes99FC1NpNWcpieGSV/IbO8PCTy5pbUR1U8lxzf4T+y6fZMxOz3LshkQLeeDSd0WmUrQgajmbktrxsb2AZ0ACw2Vgni+gV/m+KvCRWLg08Clx7uhql+v9XySGcjjOHlsp8vBw/e8HS7dtiqF6T/XcSXuaMW66GF1g4q9YyBadHqy3Y5jin1c7yZos6BBr6dsomSHxiUHanYtcYQwnMMZhRhOnaYJeyJzaRuukyCUh48+e/BUvk/aEfDp8ag+jD64BHxNnQ5v/E7WRk7eLjGV13I3oqy45YNONi/1op1oDr7rPjkhPsTXgUpQtGDPlIs55KhQaic9kSGs/UrZ2QKQOflB8MTEQxRF9pullToWO7Eplan6mcMRFnUu2441yxi23x+KqKlr7RWWsi9ZXMWlr8vfP3llk1m2PRj0yudccxBuoa7VfIgRmnFPGX6Pm1WIfMm/Rm4n/xTn8IGqA0GWuqgu48pEUO0U9nN+ZdIvFpPb7VDPphIfRZxznlHeVFebkd9l+raXy9BpTMcIUIvBfgHEb6ndGo8VUkxpief14KjzFOcaANfgvFpvyY8lE8lE4raHizLpluPzMks1hx/e1Hok5yV0p7qQH7GaYeMzzZTFvRpv6k6iaJ4yNqzBvN8J7B430h2wFm1IBPcqbou33G7/NWPgopl4Mllla6e24L3TOTVNkza2zv3QKuDWTeDpClCEYgTQ+5vEBSQZs/rMF50+sm4jofTgWLqgX1x3TkrDEVaRqfY/xZizFZ3Y8/DFEFD31VSfBQ5raEB6nHnZh6ddehtclQJ8fBrldyIh99LNnV32HzKEej04hk6SYjdauCa4aYW0ru/QxvQRGzLKOAQszf3ixJypTW3WWL6BLSF2EMCMIw7OUvWBC6A/gDc2D1jvBapMCc7ztx6jYczwTKsRLL6dMNXb83HS8kdD0pTMMj161zbVHkU0mhSHo9SlBDDXdN6hDvRGizmohtIyR3ot8tF5iUG4GLNcXeGvBudSFrHu+bVZb9jirNVG+rQPI51A7Hu8/b0UeaIaZ4UgDO68PkYx3PE2HWpKapJ764Kxt5TFYpywMy4DLQqVRy11I7SOLhxUFmqiEK52NaijWArIfCg6qG8q5eSiwRCJb1R7GDJG74TrYgx/lVq7w9++Kh929xSJEaoSse5fUOQg9nMAnIZv+7fwVRcNv3gOHI46Vb5jYUC66PYHO6lS+TOmvEQjuYmx4RkffYGxqZIp/DPWNHAixbRBc+XKE3JEOgs4jIwu/dSAwhydruOGF39co91aTs85JJ3Z/LpXoF43hUwJsb/M1Chzdn8HX8vLXnqWUKvRhNLpfAF4PTFqva1sBQG0J+59HyYfmQ3oa4/sxZdapVLlo/fooxSXi/dOEQWIWq8E0FkttEyTFXR2aNMPINMIzZwCNEheYTVltsdaLkMyKoEUluPNAYCM2IG3br0DLy0fVNWKHtbSKbBjfiw7Lu06gQFalC7RC9BwRMSpLYDUo9pDtDfzwUiPJKLJ2LGcSphWBadOI/iJjNqUHV7ucG8yC6+iNM9QYElqBR7ECFXrcTgWQ3eG/tCWacT9bxIkfmxPmi3vOd36KxihAJA73vWNJ+Y9oapXNscVSVqS5g15xOWND/WuUCcA9YAAg6WFbjHamrblZ5c0L6Zx1X58ZittGcfDKU697QRSqW/g+RofNRyvrWMrBn44cPvkRe2HdTu/Cq01C5/riWPHZyXPKHuSDDdW8c1XPgd6ogvLh20qEIu8c19sqr4ufyHrwh37ZN5MkvY1dsGmEz9pUBTxWrvvhNyODyX2Q1k/fbX/T/vbHNcBrmjgDtvBdtZrVtiIg5iXQuzO/DEMvRX8Mi1zymSlt92BGILeKItjoShJXE/H7xwnf0Iewb8BFieJ9MflEBCQYEDm8eZniiEPfGoaYiiEdhQxHQNr2AuRdmbL9mcl18Kumh+HEZLp6z+j35ML9zTbUwahUZCyQQOgQrGfdfQtaR/OYJ/9dYXb2TWZFMijfCA8Nov4sa5FFDUe1T68h4q08WDE7JbbDiej4utRMR9ontevxlXv6LuJTXt1YEv8bDzEt683PuSsIN0afvu0rcBu9AbXZbkOG3K3AhtqQ28N23lXm7S3Yn6KXmAhBhz+GeorJJ4XxO/b3vZk2LXp42+QvsVxGSNVpfSctIFMTR1bD9t70i6sfNF3WKz/uKDEDCpzzztwhL45lsw89H2IpWN10sXHRlhDse9KCdpP5qNNpU84cTY+aiqswqR8XZ9ea0KbVRwRuOGQU3csAtV2fSbnq47U6es6rKlWLWhg3s/B9C9g+oTyp6RtIldR51OOkP5/6nSy6itUVPcMNOp4M/hDdKOz3uK6srbdxOrc2cJgr1Sg02oBxxSky6V7JaG+ziNwlfqnjnvh2/uq1lKfbp+qpwq/D/5OI5gkFl5CejKGxfc2YVJfGqc4E0x5e9PHK2ukbHNI7/RZV6LNe65apbTGjoCaQls0txPPbmQbCQn+/upCoXRZy9yzorWJvZ0KWcbXlBxU/d5I4ERUTxMuVWhSMmF677LNN7NnLwsmKawXkCgbrpcluOl0WChR1qhtSrxGXHu251dEItYhYX3snvn1gS2uXuzdTxCJjZtjsip0iT2sDC0qMS7Bk9su2NyXjFK5/f5ZoWwofg3DtTyjaFqspnOOTSh8xK/CKUFS57guVEkw9xoQuRCwwEO9Lu9z2vYxSa9NFV8DvSxv2C4WYLYF8Nrc4DzWkzNsk81JJOlZ/LYJrGCoj4MmZpnf3AXmzxT4rtl9jsqljEyedz468SGKdBiQzyz/qWKEhFg45ZczlZZ3KGL3l6sn+3TTa3zMVMhPa1obGp/z+fvY0QXTrJTf1XAT3EtQdUfYYlmWZyvPZ/6rWwU7UOQei7pVE0osgN94Iy+T1+omE6z4Rh2O20FjgBeK2y1mcoFiMDOJvuZPn5Moy9fmFH3wyfKvn4+TwfLvt/lHTTVnvrtoUWRBiQXhiNM8nE6ZoWeux/Z0b2unRcdUzdDpmL7CAgd1ToRXwgmHTZOgiGtVT+xr1QH9ObebRTT4NzL+XSpLuuWp62GqQvJVTPoZOeJCb6gIwd9XHMftQ+Kc08IKKdKQANSJ1a2gve3JdRhO0+tNiYzWAZfd7isoeBu67W7xuK8WX7nhJURld98Inb0t/dWOSau/kDvV4DJo/cImw9AO2Gvq0F2n0M7yIZKL8amMbjYld+qFls7hq8Acvq97K2PrCaomuUiesu7qNanGupEl6J/iem8lyr/NMnsTr6o41PO0yhQh3hPFN0wJP7S830je9iTBLzUNgYH+gUZpROo3rN2qgCI+6GewpX8w8CH+ro6QrWiStqmcMzVa3vEel+3/dDxMp0rDv1Q6wTMS3K64zTT6RWzK1y643im25Ja7X2ePCV2mTswd/4jshZPo4bLnerqIosq/hy2bKUAmVn9n4oun1+a0DIZ56UhVwmZHdUNpLa8gmPvxS1eNvCF1T0wo1wKPdCJi0qOrWz7oYRTzgTtkzEzZn308XSLwUog4OWGKJzCn/3FfF9iA32dZHSv30pRCM3KBY9WZoRhtdK/ChHk6DEQBsfV6tN2o1Cn0mLtPBfnkS+qy1L2xfFe9TQPtDE1Be44RTl82E9hPT2rS2+93LFbzhQQO3C/hD2jRFH3BWWbasAfuMhRJFcTri73eE835y016s22DjoFJ862WvLj69fu2TgSF3RHia9D5DSitlQAXYCnbdqjPkR287Lh6dCHDapos+eFDvcZPP2edPmTFxznJE/EBLoQQ0Qmn9EkZOyJmHxMbvKYb8o21ZHmv5YLqgsEPk9gWZwYQY9wLqGXuax/8QlV5qDaPbq9pLPT1yp+zOWKmraEy1OUJI7zdEcEmvBpbdwLrDCgEb2xX8S/nxZgjK4bRi+pbOmbh8bEeoPvU/L9ndx9kntlDALbdAvp0O8ZC3zSUnFg4cePsw7jxewWvL7HRSBLUn6J7vTH9uld5N76JFPgBCdXGF221oEJk++XfRwXplLSyrVO7HFWBEs99nTazKveW3HpbD4dH/YmdAl+lwbSt8BQWyTG7jAsACI7bPPUU9hI9XUHWqQOuezHzUjnx5Qqs6T1qNHfTTHleDtmqK7flA9a0gz2nycIpz1FHBuWxKNtUeTdqP29Fb3tv+tl5JyBqXoR+vCsdzZwZUhf6Lu8bvkB9yQP4x7GGegB0ym0Lpl03Q7e+C0cDsm9GSDepCDji7nUslLyYyluPfvLyKaDSX4xpR+nVYQjQQn5F8KbY1gbIVLiK1J3mW90zTyR1bqApX2BlWh7KG8LAY9/S9nWC0XXh9pZZo6xuir12T43rkaGfQssbQyIslA7uJnSHOV22NhlNtUo0czxPAsXhh8tIQYaTM4l/yAlZlydTcXhlG22Gs/n3BxKBd/3ZjYwg3NaUurVXhNB+afVnFfNr9TbC9ksNdvwpNfeHanyJ8M6GrIVfLlYAPv0ILe4dn0Z+BJSbJkN7eZY/c6+6ttDYcIDeUKIDXqUSE42Xdh5nRbuaObozjht0HJ5H1e+em+NJi/+8kQlyjCbJpPckwThZeIF9/u7lrVIKNeJLCN/TpPAeXxvd31/CUDWHK9MuP1V1TJgngzi4V0qzS3SW3Qy5UiGHqg02wQa5tsEl9s/X9nNMosgLlUgZSfCBj1DiypLfhr9/r0nR0XY2tmhDOcUS4E7cqa4EJBhzqvpbZa35Q5Iz5EqmhYiOGDAYk606Tv74+KGfPjKVuP15rIzgW0I7/niOu9el/sn2bRye0gV+GrePDRDMHjwO1lEdeXH8N+UTO3IoN18kpI3tPxz+fY+n2MGMSGFHAx/83tKeJOl+2i+f1O9v6FfEDBbqrw+lpM8Anav7zHNr7hE78nXUtPNodMbCnITWA7Ma/IHlZ50F9hWge/wzOvSbtqFVFtkS8Of2nssjZwbSFdU+VO8z6tCEc9UA9ACxT5zIUeSrkBB/v1krOpm7bVMrGxEKfI6LcnpB4D8bvn2hDKGqKrJaVAJuDaBEY3F7eXyqnFWlOoFV/8ZLspZiZd7orXLhd4mhHQgbuKbHjJWUzrnm0Dxw/LJLzXCkh7slMxKo8uxZIWZfdKHlfI7uj3LP6ARAuWdF7ZmZ7daOKqKGbz5LxOggTgS39oEioYmrqkCeUDvbxkBYKeHhcLmMN8dMF01ZMb32IpL/cH8R7VHQSI5I0YfL14g9d7P/6cjB1JXXxbozEDbsrPdmL8ph7QW10jio+v7YsqHKQ6xrBbOVtxU0/nFfzUGZwIBLwyUvg49ii+54nv9FyECBpURnQK4Ox6N7lw5fsjdd5l/2SwBcAHMJoyjO1Pifye2dagaOwCVMqdJWAo77pvBe0zdJcTWu5fdzPNfV2p1pc7/JKQ8zhKkwsOELUDhXygPJ5oR8Vpk2lsCen3D3QOQp2zdrSZHjVBstDF/wWO98rrkQ6/7zt/Drip7OHIug1lomNdmRaHRrjmqeodn22sesQQPgzimPOMqC60a5+i/UYh51uZm+ijWkkaI2xjrBO2558DZNZMiuDQlaVAvBy2wLn/bR3FrNzfnO/9oDztYqxZrr7JMIhqmrochbqmQnKowxW29bpqTaJu7kW1VotC72QkYX8OoDDdMDwV1kJRk3mufgJBzf+iwFRJ7XWQwO5ujVglgFgHtycWiMLx5N+6XU+TulLabWjOzoao03fniUW0xvIJNPbk7CQlFZd/RCOPvgQbLjh5ITE8NVJeKt3HGr6JTnFdIzcVOlEtwqbIIX0IM7saC+4N5047MTJ9+Wn11EhyEPIlwsHE5utCeXRjQzlrR+R1Cf/qDzcNbqLXdk3J7gQ39VUrrEkS/VMWjjg+t2oYrqB0tUZClcUF6+LBC3EQ7KnGIwm/qjZX4GKPtjTX1zQKV6nPAb2t/Rza5IqKRf8i2DFEhV/YSifX0YwsiF6TQnp48Gr65TFq0zUe6LGjiY7fq0LSGKL1VnC6ESI2yxvt3XqBx53B3gSlGFeJcPbUbonW1E9E9m4NfuwPh+t5QjRxX34lvBPVxwQd7aeTd+r9dw5CiP1pt8wMZoMdni7GapYdo6KPgeQKcmlFfq4UYhvV0IBgeiR3RnTMBaqDqpZrTRyLdsp4l0IXZTdErfH0sN3dqBG5vRIx3VgCYcHmmkqJ8Hyu3s9K9uBD1d8cZUEx3qYcF5vsqeRpF1GOg8emeWM2OmBlWPdZ6qAXwm3nENFyh+kvXk132PfWAlN0kb7yh4fz2T7VWUY/hEXX5DvxGABC03XRpyOG8t/u3Gh5tZdpsSV9AWaxJN7zwhVglgII1gV28tUViyqn4UMdIh5t+Ea2zo7PO48oba0TwQbiSZOH4YhD578kPF3reuaP7LujPMsjHmaDuId9XEaZBCJhbXJbRg5VCk3KJpryH/+8S3wdhR47pdFcmpZG2p0Bpjp/VbvalgIZMllYX5L31aMPdt1J7r/7wbixt0Mnz2ZvNGTARHPVD+2O1D8SGpWXlVnP2ekgon55YiinADDynyaXtZDXueVqbuTi8z8cHHK325pgqM+mWZwzHeEreMvhZopAScXM14SJHpGwZyRljMlDvcMm9FZ/1e9+r/puOnpXOtc9Iu2fmgBfEP9cGW1Fzb1rGlfJ08pACtq1ZW18bf2cevebzVeHbaA50G9qoUp39JWdPHbYkPCRXjt4gzlq3Cxge28Mky8MoS/+On72kc+ZI2xBtgJytpAQHQ1zrEddMIVyR5urX6yBNu8v5lKC8eLdGKTJtbgIZ3ZyTzSfWmx9f+cvcJe8yM39K/djkp2aUTE/9m2Lj5jg7b8vdRAer7DO3SyLNHs1CAm5x5iAdh2yGJYivArZbCBNY88Tw+w+C1Tbt7wK3zl2rzTHo/D8/gb3c3mYrnEIEipYqPUcdWjnTsSw471O3EUN7Gtg4NOAs9PJrxm03VuZKa5xwXAYCjt7Gs01Km6T2DhOYUMoFcCSu7Hk1p3yP1eG+M3v3Q5luAze6WwBnZIYO0TCucPWK+UJ36KoJ8Y+vpavhLO8g5ed704IjlQdfemrMu//EvPYXTQSGIPPfiagJS9nMqP5IvkxN9pvuJz7h8carPXTKMq8jnTeL0STan6dnLTAqwIswcIwWDR2KwbGddAVN8SYWRB7kfBfBRkSXzvHlIF8D6jo64kUzYk5o/n8oLjKqat0rdXvQ86MkwQGMnnlcasqPPT2+mVtUGb32KuH6cyZQenrRG11TArcAl27+nvOMBDe++EKHf4YdyGf7mznzOz33cFFGEcv329p4qG2hoaQ8ULiMyVz6ENcxhoqGnFIdupcn7GICQWuw3yO3W8S33mzCcMYJ8ywc7U7rmaQf/W5K63Gr4bVTpXOyOp4tbaPyIaatBNpXqlmQUTSZXjxPr19+73PSaT+QnI35YsWn6WpfJjRtK8vlJZoTSgjaRU39AGCkWOZtifJrnefCrqwTKDFmuWUCukEsYcRrMzCoit28wYpP7kSVjMD8WJYQiNc2blMjuqYegmf6SsfC1jqz8XzghMlOX+gn/MKZmgljszrmehEa4V98VreJDxYvHr3j7IeJB9/sBZV41BWT/AZAjuC5XorlIPnZgBAniBEhanp0/0+qZmEWDpu8ige1hUPIyTo6T6gDEcFhWSoduNh8YSu65KgMOGBw7VlNYzNIgwHtq9KP2yyTVysqX5v12sf7D+vQUdR2dRDvCV40rIInXSLWT/yrC6ExOQxBJwIDbeZcl3z1yR5Rj3l8IGpxspapnvBL+fwupA3b6fkFceID9wgiM1ILB0cHVdvo/R4xg8yqKXT8efl0GnGX1/27FUYeUW2L/GNRGGWVGp3i91oaJkb4rybENHre9a2P5viz/yqk8ngWUUS+Kv+fu+9BLFnfLiLXOFcIeBJLhnayCiuDRSqcx0Qu68gVsGYc6EHD500Fkt+gpDj6gvr884n8wZ5o6q7xtL5wA0beXQnffWYkZrs2NGIRgQbsc5NB302SVx+R4ROvmgZaR8wBcji128BMfJ9kcvJ4DC+bQ57kRmv5yxgU4ngZfn0/JNZ8JBwxjTqS+s9kjJFG1unGUGLwMiIuXUD9EFhNIJuyCEAmVZSIGKH4G6v1gRR1LyzQKH2ZqiI1DnHMoDEZspbDjTeaFIAbSvjSq3A+n46y9hhVM8wIpnARSXyzmOD96d9UXvFroSPgGw1dq2vdEqDq9fJN1EbL2WulNmHkFDvxSO9ZT/RX/Bw2gA/BrF90XrJACereVfbV/YXaKfp77Nmx5NjEIUlxojsy7iN7nBHSZigfsbFyVOX1ZTeCCxvqnRSExP4lk5ZeYlRu9caaa743TWNdchRIhEWwadsBIe245C8clpaZ4zrPsk+OwXzxWCvRRumyNSLW5KWaSJyJU95cwheK76gr7228spZ3hmTtLyrfM2QRFqZFMR8/Q6yWfVgwTdfX2Ry4w3+eAO/5VT5nFb5NlzXPvBEAWrNZ6Q3jbH0RF4vcbp+fDngf/ywpoyNQtjrfvcq93AVb1RDWRghvyqgI2BkMr1rwYi8gizZ0G9GmPpMeqPerAQ0dJbzx+KAFM4IBq6iSLpZHUroeyfd9o5o+4fR2EtsZBoJORQEA4SW0CmeXSnblx2e9QkCHIodyqV6+g5ETEpZsLqnd/Na60EKPX/tQpPEcO+COIBPcQdszDzSiHGyQFPly/7KciUh1u+mFfxTCHGv9nn2WqndGgeGjQ/kr02qmTBX7Hc1qiEvgiSz1Tz/sy7Es29wvn6FrDGPP7asXlhOaiHxOctPvTptFA1kHFUk8bME7SsTSnGbFbUrssxrq70LhoSh5OwvQna+w84XdXhZb2sloJ4ZsCg3j+PrjJL08/JBi5zGd6ud/ZxhmcGKLOXPcNunQq5ESW92iJvfsuRrNYtawWwSmNhPYoFj2QqWNF0ffLpGt/ad24RJ8vkb5sXkpyKXmvFG5Vcdzf/44k3PBL/ojJ52+kWGzOArnyp5f969oV3J2c4Li27Nkova9VwRNVKqN0V+gV+mTHitgkXV30aWd3A1RSildEleiNPA+5cp+3+T7X+xfHiRZXQ1s4FA9TxIcnveQs9JSZ5r5qNmgqlW4zMtZ6rYNvgmyVcywKtu8ZxnSbS5vXlBV+NXdIfi3+xzrnJ0TkFL+Un8v1PWOC2PPFCjVPq7qTH7mOpzOYj/b4h0ceT+eHgr97Jqhb1ziVfeANzfN8bFUhPKBi7hJBCukQnB0aGjFTYLJPXL26lQ2b80xrOD5cFWgA8hz3St0e69kwNnD3+nX3gy12FjrjO+ddRvvvfyV3SWbXcxqNHfmsb9u1TV+wHTb9B07/L2sB8WUHJ9eeNomDyysEWZ0deqEhH/oWI2oiEh526gvAK1Nx2kIhNvkYR+tPYHEa9j+nd1VBpQP1uzSjIDO+fDDB7uy029rRjDC5Sk6aKczyz1D5uA9Lu+Rrrapl8JXNL3VRllNQH2K1ZFxOpX8LprttfqQ56MbPM0IttUheXWD/mROOeFqGUbL+kUOVlXLTFX/525g4faLEFO4qWWdmOXMNvVjpIVTWt650HfQjX9oT3Dg5Au6+v1/Ci78La6ZOngYCFPT1AUwxQuZ0yt5xKdNXLaDTISMTeCj16XTryhM36K2mfGRIgot71voWs8tTpL/f1rvcwv3LSDf+/G8THCT7NpfHWcW+lsF/ol8q9Bi6MezNTqp0rpp/kJRiVfNrX/w27cRRTu8RIIqtUblBMkxy4jwAVqCjUJkiPBj2cAoVloG8B2/N5deLdMhDb7xs5nhd3dubJhuj8WbaFRyu1L678DHhhA+rMimNo4C1kGpp0tD/qnCfCFHejpf0LJX43OTr578PY0tnIIrlWyNYyuR/ie6j2xNb1OV6u0dOX/1Dtcd7+ya9W+rY2LmnyQMtk8SMLTon8RAdwOaN2tNg5zVnDKlmVeOxPV2vhHIo9QEPV7jc3f+zVDquiNg1OaHX3cZXJDRY5MJpo+VanAcmqp4oasYLG+wrXUL5vJU0kqk2hGEskhP+Jjigrz1l6QnEwp6n8PMVeJp70Ii6ppeaK9GhF6fJE00ceLyxv08tKiPat4QdxZFgSbQknnEiCLD8Qc1rjazVKM3r3gXnnMeONgdz/yFV1q+haaN+wnF3Fn4uYCI9XsKOuVwDD0LsCO/f0gj5cmxCFcr7sclIcefWjvore+3aSU474cyqDVxH7w1RX3CHsaqsMRX17ZLgjsDXws3kLm2XJdM3Ku383UXqaHqsywzPhx7NFir0Fqjym/w6cxD2U9ypa3dx7Z12w/fi3Jps8sqJ8f8Ah8aZAvkHXvIRyrsxK7rrFaNNdNvjI8+3Emri195DCNa858anj2Qdny6Czshkn4N2+1m+k5S8sunX3Ja7I+JutRzg1mc2e9Yc0Zv9PZn1SwhxIdU9sXwZRTd/J5FoUm0e+PYREeHg3oc2YYzGf2xfJxXExt4pT3RfDRHvMXLUmoXOy63xv5pLuhOEax0dRgSywZ/GH+YBXFgCeTU0hZ8SPEFsn8punp1Kurd1KgXxUZ+la3R5+4ePGR4ZF5UQtOa83+Vj8zh80dfzbhxWCeoJnQ4dkZJM4drzknZOOKx2n3WrvJnzFIS8p0xeic+M3ZRVXIp10tV2DyYKwRxLzulPwzHcLlYTxl4PF7v8l106Azr+6wBFejbq/3P72C/0j78cepY9990/d4eAurn2lqdGKLU8FffnMw7cY7pVeXJRMU73Oxwi2g2vh/+4gX8dvbjfojn/eLVhhYl8GthwCQ50KcZq4z2JeW5eeOnJWFQEnVxDoG459TaC4zXybECEoJ0V5q1tXrQbDMtUxeTV6Pdt1/zJuc7TJoV/9YZFWxUtCf6Ou3Vd/vR/vG0138hJQrHkNeoep5dLe+6umcSquKvMaFpm3EZHDBOvCi0XYyIFHMgX7Cqp3JVXlxJFwQfHSaIUEbI2u1lBVUdlNw4Qa9UsLPEK94Qiln3pyKxQVCeNlx8yd7EegVNQBkFLabKvnietYVB4IPZ1fSor82arbgYec8aSdFMaIluYTYuNx32SxfrjKUdPGq+UNp5YpydoEG3xVLixtmHO9zXxKAnHnPuH2fPGrjx0GcuCDEU+yXUtXh6nfUL+cykws1gJ5vkfYFaFBr9PdCXvVf35OJQxzUMmWjv0W6uGJK11uAGDqSpOwCf6rouSIjPVgw57cJCOQ4b9tkI/Y5WNon9Swe72aZryKo8d+HyHBEdWJKrkary0LIGczA4Irq353Wc0Zga3om7UQiAGCvIl8GGyaqz5zH+1gMP5phWUCpKtttWIyicz09vXg76GxkmiGSMQ06Z9X8BUwqOtauDbPIf4rpK/yYoeAHxJ9soXS9VDe1Aw+awOOxaN8foLrif0TXBvQ55dtRtulRq9emFDBxlQcqKCaD8NeTSE7FOHvcjf/+oKbbtRqz9gbofoc2EzQ3pL6W5JdfJzAWmOk8oeoECe90lVMruwl/ltM015P/zIPazqvdvFmLNVHMIZrwiQ2tIKtGh6PDVH+85ew3caqVt2BsDv5rOcu3G9srQWd7NmgtzCRUXLYknYRSwtH9oUtkqyN3CfP20xQ1faXQl4MEmjQehWR6GmGnkdpYNQYeIG408yAX7uCZmYUic9juOfb+Re28+OVOB+scYK4DaPcBe+5wmji9gymtkMpKo4UKqCz7yxzuN8VIlx9yNozpRJpNaWHtaZVEqP45n2JemTlYBSmNIK1FuSYAUQ1yBLnKxevrjayd+h2i8PjdB3YY6b0nr3JuOXGpPMyh4V2dslpR3DFEvgpsBLqhqLDOWP4yEvIL6f21PpA7/8B")),D=Math.log2||(Fe=>Math.log(Fe)/Math.LN2),x=Fe=>D(Fe)+1|0,k=x(f(y).categories.length-1),Q=x(f(y).combiningClasses.length-1),I=x(f(y).scripts.length-1),d=x(f(y).eaw.length-1),R=Q+I+d+10,z=I+d+10,q=d+10,Z=10,H=(1<>R&H]}function j(Fe){const Ve=M.get(Fe);return f(y).combiningClasses[Ve>>z&G]}function re(Fe){const Ve=M.get(Fe);return f(y).scripts[Ve>>q&W]}function he(Fe){const Ve=M.get(Fe);return f(y).eaw[Ve>>Z&te]}function oe(Fe){let Ve=M.get(Fe),mt=Ve&P;if(0===mt)return null;if(mt<=50)return mt-1;if(mt<480)return((mt>>4)-12)/(1+(15&mt));if(mt<768){Ve=(mt>>5)-14;let St=2+(31&mt);for(;St>0;)Ve*=10,St--;return Ve}{Ve=(mt>>2)-191;let St=1+(3&mt);for(;St>0;)Ve*=60,St--;return Ve}}function Ce(Fe){const Ve=J(Fe);return"Lu"===Ve||"Ll"===Ve||"Lt"===Ve||"Lm"===Ve||"Lo"===Ve||"Nl"===Ve}function me(Fe){return"Nd"===J(Fe)}function ze(Fe){const Ve=J(Fe);return"Pc"===Ve||"Pd"===Ve||"Pe"===Ve||"Pf"===Ve||"Pi"===Ve||"Po"===Ve||"Ps"===Ve}function _e(Fe){return"Ll"===J(Fe)}function Ae(Fe){return"Lu"===J(Fe)}function ve(Fe){return"Lt"===J(Fe)}function ye(Fe){const Ve=J(Fe);return"Zs"===Ve||"Zl"===Ve||"Zp"===Ve}function Oe(Fe){const Ve=J(Fe);return"Nd"===Ve||"No"===Ve||"Nl"===Ve||"Lu"===Ve||"Ll"===Ve||"Lt"===Ve||"Lm"===Ve||"Lo"===Ve||"Me"===Ve||"Mc"===Ve}function ae(Fe){const Ve=J(Fe);return"Mn"===Ve||"Me"===Ve||"Mc"===Ve}var Ee={getCategory:J,getCombiningClass:j,getScript:re,getEastAsianWidth:he,getNumericValue:oe,isAlphabetic:Ce,isDigit:me,isPunctuation:ze,isLowerCase:_e,isUpperCase:Ae,isTitleCase:ve,isWhiteSpace:ye,isBaseForm:Oe,isMark:ae}},24863:function(T,e,l){var v=l(15567),h=l(7081).EXISTS,f=l(38347),_=l(95892).f,b=Function.prototype,y=f(b.toString),M=/^\s*function ([^ (]*)/,D=f(M.exec);v&&!h&&_(b,"name",{configurable:!0,get:function(){try{return D(M,y(this))[1]}catch{return""}}})},25096:function(T,e,l){var v=l(32010),h=l(52564),f=v.String;T.exports=function(_){if("Symbol"===h(_))throw TypeError("Cannot convert a Symbol value to a string");return f(_)}},25567:function(T,e,l){var v=l(38347),h=l(32631),f=v(v.bind);T.exports=function(_,b){return h(_),void 0===b?_:f?f(_,b):function(){return _.apply(b,arguments)}}},26168:function(T,e,l){var v=l(32010),h=l(94578),f=l(10447),_=v.WeakMap;T.exports=h(_)&&/native code/.test(f(_))},26326:function(T,e,l){"use strict";for(var v=[l(16793),l(24162),l(17100),l(11326),l(99948),l(99900),l(81492),l(35143),l(90481)],h=0;h0?D:0),!0)},h?h(T.exports,"apply",{value:_}):T.exports.apply=_},26626:function(T,e,l){"use strict";var v=l(12843);T.exports=function(){return v()&&!!Symbol.toStringTag}},26663:function(T,e,l){"use strict";var v=l(56475),h=l(69510).codeAt;v({target:"String",proto:!0},{codePointAt:function(_){return h(this,_)}})},26882:function(T){var e=Math.ceil,l=Math.floor;T.exports=function(v){var h=+v;return h!=h||0===h?0:(h>0?l:e)(h)}},27754:function(T,e,l){var v=l(34984),h=l(69075),_=l(38688)("species");T.exports=function(b,y){var D,M=v(b).constructor;return void 0===M||null==(D=v(M)[_])?y:h(D)}},27772:function(T,e,l){"use strict";var v,h,f,_,b,y,M,D;T.exports=(v=l(48352),l(18909),l(51965),_=(f=(h=v).x64).Word,b=f.WordArray,D=(y=h.algo).SHA384=(M=y.SHA512).extend({_doReset:function(){this._hash=new b.init([new _.init(3418070365,3238371032),new _.init(1654270250,914150663),new _.init(2438529370,812702999),new _.init(355462360,4144912697),new _.init(1731405415,4290775857),new _.init(2394180231,1750603025),new _.init(3675008525,1694076839),new _.init(1203062813,3204075428)])},_doFinalize:function(){var k=M._doFinalize.call(this);return k.sigBytes-=16,k}}),h.SHA384=M._createHelper(D),h.HmacSHA384=M._createHmacHelper(D),v.SHA384)},28164:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(51270),v.pad.AnsiX923={pad:function(f,_){var b=f.sigBytes,y=4*_,M=y-b%y,D=b+M-1;f.clamp(),f.words[D>>>2]|=M<<24-D%4*8,f.sigBytes+=M},unpad:function(f){f.sigBytes-=255&f.words[f.sigBytes-1>>>2]}},v.pad.Ansix923)},28264:function(T,e,l){l(56475)({target:"String",proto:!0},{repeat:l(34858)})},28284:function(T,e,l){"use strict";var v=l(91867).isArray;function f(_,b){for(var y in this.fonts={},this.pdfKitDoc=b,this.fontCache={},_)if(_.hasOwnProperty(y)){var M=_[y];this.fonts[y]={normal:M.normal,bold:M.bold,italics:M.italics,bolditalics:M.bolditalics}}}f.prototype.getFontType=function(_,b){return function h(_,b){var y="normal";return _&&b?y="bolditalics":_?y="bold":b&&(y="italics"),y}(_,b)},f.prototype.getFontFile=function(_,b,y){var M=this.getFontType(b,y);return this.fonts[_]&&this.fonts[_][M]?this.fonts[_][M]:null},f.prototype.provideFont=function(_,b,y){var M=this.getFontType(b,y);if(null===this.getFontFile(_,b,y))throw new Error("Font '"+_+"' in style '"+M+"' is not defined in the font section of the document definition.");if(this.fontCache[_]=this.fontCache[_]||{},!this.fontCache[_][M]){var D=this.fonts[_][M];v(D)||(D=[D]),this.fontCache[_][M]=this.pdfKitDoc.font.apply(this.pdfKitDoc,D)._font}return this.fontCache[_][M]},T.exports=f},28331:function(T,e,l){var v=l(56475),h=l(15567),f=l(21594),_=l(98086),b=l(72062),y=l(38639);v({target:"Object",stat:!0,sham:!h},{getOwnPropertyDescriptors:function(D){for(var S,R,x=_(D),k=b.f,Q=f(x),I={},d=0;Q.length>d;)void 0!==(R=k(x,S=Q[d++]))&&y(I,S,R);return I}})},28356:function(T,e,l){"use strict";var v=l(56475),h=l(91159);v({target:"String",proto:!0,forced:l(7452)("bold")},{bold:function(){return h(this,"b","","")}})},28617:function(T,e,l){var v=l(34984),h=l(24517),f=l(56614);T.exports=function(_,b){if(v(_),h(b)&&b.constructor===_)return b;var y=f.f(_);return(0,y.resolve)(b),y.promise}},28619:function(T,e,l){"use strict";var v=l(5049),h=l(73036),f=l(17802);T.exports=function(){return f(v,h,arguments)}},28651:function(T,e,l){"use strict";var v,h=l(75846),f=l(15293),_=l(29055),b=l(18888),y=l(47900),M=l(57770),D=l(96785),x=l(54055),k=l(50716),Q=l(77450),I=l(3774),d=l(47552),S=l(75874),R=l(19292),z=l(46071),q=Function,Z=function(je){try{return q('"use strict"; return ('+je+").constructor;")()}catch{}},H=l(68109),G=l(56649),W=function(){throw new D},te=H?function(){try{return W}catch{try{return H(arguments,"callee").get}catch{return W}}}():W,P=l(73257)(),J=l(87106),j=l(33766),re=l(86822),he=l(73036),oe=l(10078),Ce={},me=typeof Uint8Array>"u"||!J?v:J(Uint8Array),ze={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?v:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?v:ArrayBuffer,"%ArrayIteratorPrototype%":P&&J?J([][Symbol.iterator]()):v,"%AsyncFromSyncIteratorPrototype%":v,"%AsyncFunction%":Ce,"%AsyncGenerator%":Ce,"%AsyncGeneratorFunction%":Ce,"%AsyncIteratorPrototype%":Ce,"%Atomics%":typeof Atomics>"u"?v:Atomics,"%BigInt%":typeof BigInt>"u"?v:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?v:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?v:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?v:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":f,"%eval%":eval,"%EvalError%":_,"%Float16Array%":typeof Float16Array>"u"?v:Float16Array,"%Float32Array%":typeof Float32Array>"u"?v:Float32Array,"%Float64Array%":typeof Float64Array>"u"?v:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?v:FinalizationRegistry,"%Function%":q,"%GeneratorFunction%":Ce,"%Int8Array%":typeof Int8Array>"u"?v:Int8Array,"%Int16Array%":typeof Int16Array>"u"?v:Int16Array,"%Int32Array%":typeof Int32Array>"u"?v:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":P&&J?J(J([][Symbol.iterator]())):v,"%JSON%":"object"==typeof JSON?JSON:v,"%Map%":typeof Map>"u"?v:Map,"%MapIteratorPrototype%":typeof Map>"u"||!P||!J?v:J((new Map)[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":h,"%Object.getOwnPropertyDescriptor%":H,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?v:Promise,"%Proxy%":typeof Proxy>"u"?v:Proxy,"%RangeError%":b,"%ReferenceError%":y,"%Reflect%":typeof Reflect>"u"?v:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?v:Set,"%SetIteratorPrototype%":typeof Set>"u"||!P||!J?v:J((new Set)[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?v:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":P&&J?J(""[Symbol.iterator]()):v,"%Symbol%":P?Symbol:v,"%SyntaxError%":M,"%ThrowTypeError%":te,"%TypedArray%":me,"%TypeError%":D,"%Uint8Array%":typeof Uint8Array>"u"?v:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?v:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?v:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?v:Uint32Array,"%URIError%":x,"%WeakMap%":typeof WeakMap>"u"?v:WeakMap,"%WeakRef%":typeof WeakRef>"u"?v:WeakRef,"%WeakSet%":typeof WeakSet>"u"?v:WeakSet,"%Function.prototype.call%":oe,"%Function.prototype.apply%":he,"%Object.defineProperty%":G,"%Object.getPrototypeOf%":j,"%Math.abs%":k,"%Math.floor%":Q,"%Math.max%":I,"%Math.min%":d,"%Math.pow%":S,"%Math.round%":R,"%Math.sign%":z,"%Reflect.getPrototypeOf%":re};if(J)try{null.error}catch(je){var _e=J(J(je));ze["%Error.prototype%"]=_e}var Ae=function je(Ke){var _t;if("%AsyncFunction%"===Ke)_t=Z("async function () {}");else if("%GeneratorFunction%"===Ke)_t=Z("function* () {}");else if("%AsyncGeneratorFunction%"===Ke)_t=Z("async function* () {}");else if("%AsyncGenerator%"===Ke){var Nt=je("%AsyncGeneratorFunction%");Nt&&(_t=Nt.prototype)}else if("%AsyncIteratorPrototype%"===Ke){var ut=je("%AsyncGenerator%");ut&&J&&(_t=J(ut.prototype))}return ze[Ke]=_t,_t},ve={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},ye=l(5049),Oe=l(55215),ae=ye.call(oe,Array.prototype.concat),Ee=ye.call(he,Array.prototype.splice),Fe=ye.call(oe,String.prototype.replace),Ve=ye.call(oe,String.prototype.slice),mt=ye.call(oe,RegExp.prototype.exec),St=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,oi=/\\(\\)?/g,be=function(Ke,_t){var ut,Nt=Ke;if(Oe(ve,Nt)&&(Nt="%"+(ut=ve[Nt])[0]+"%"),Oe(ze,Nt)){var et=ze[Nt];if(et===Ce&&(et=Ae(Nt)),typeof et>"u"&&!_t)throw new D("intrinsic "+Ke+" exists, but is not available. Please file an issue!");return{alias:ut,name:Nt,value:et}}throw new M("intrinsic "+Ke+" does not exist!")};T.exports=function(Ke,_t){if("string"!=typeof Ke||0===Ke.length)throw new D("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof _t)throw new D('"allowMissing" argument must be a boolean');if(null===mt(/^%?[^%]*%?$/,Ke))throw new M("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var Nt=function(Ke){var _t=Ve(Ke,0,1),Nt=Ve(Ke,-1);if("%"===_t&&"%"!==Nt)throw new M("invalid intrinsic syntax, expected closing `%`");if("%"===Nt&&"%"!==_t)throw new M("invalid intrinsic syntax, expected opening `%`");var ut=[];return Fe(Ke,St,function(et,Xe,It,Dt){ut[ut.length]=It?Fe(Dt,oi,"$1"):Xe||et}),ut}(Ke),ut=Nt.length>0?Nt[0]:"",et=be("%"+ut+"%",_t),Xe=et.name,It=et.value,Dt=!1,vt=et.alias;vt&&(ut=vt[0],Ee(Nt,ae([0,1],vt)));for(var Qt=1,qe=!0;Qt=Nt.length){var ai=H(It,ke);It=(qe=!!ai)&&"get"in ai&&!("originalValue"in ai.get)?ai.get:It[ke]}else qe=Oe(It,ke),It=It[ke];qe&&!Dt&&(ze[Xe]=It)}}return It}},28831:function(T,e,l){var v=l(24517),h=l(93975),_=l(38688)("match");T.exports=function(b){var y;return v(b)&&(void 0!==(y=b[_])?!!y:"RegExp"==h(b))}},28834:function(T,e,l){var v=l(32010),h=l(47044),f=l(46769),_=l(59754).NATIVE_ARRAY_BUFFER_VIEWS,b=v.ArrayBuffer,y=v.Int8Array;T.exports=!_||!h(function(){y(1)})||!h(function(){new y(-1)})||!f(function(M){new y,new y(null),new y(1.5),new y(M)},!0)||h(function(){return 1!==new y(new b(2),1,void 0).length})},29055:function(T){"use strict";T.exports=EvalError},29490:function(T,e,l){"use strict";var v=l(67906),h=l(44610),f=l(43381),_=l(46094);function b(vt){return vt.call.bind(vt)}var y=typeof BigInt<"u",M=typeof Symbol<"u",D=b(Object.prototype.toString),x=b(Number.prototype.valueOf),k=b(String.prototype.valueOf),Q=b(Boolean.prototype.valueOf);if(y)var I=b(BigInt.prototype.valueOf);if(M)var d=b(Symbol.prototype.valueOf);function S(vt,Qt){if("object"!=typeof vt)return!1;try{return Qt(vt),!0}catch{return!1}}function oe(vt){return"[object Map]"===D(vt)}function me(vt){return"[object Set]"===D(vt)}function _e(vt){return"[object WeakMap]"===D(vt)}function ve(vt){return"[object WeakSet]"===D(vt)}function Oe(vt){return"[object ArrayBuffer]"===D(vt)}function ae(vt){return!(typeof ArrayBuffer>"u")&&(Oe.working?Oe(vt):vt instanceof ArrayBuffer)}function Ee(vt){return"[object DataView]"===D(vt)}function Fe(vt){return!(typeof DataView>"u")&&(Ee.working?Ee(vt):vt instanceof DataView)}e.isArgumentsObject=v,e.isGeneratorFunction=h,e.isTypedArray=_,e.isPromise=function R(vt){return typeof Promise<"u"&&vt instanceof Promise||null!==vt&&"object"==typeof vt&&"function"==typeof vt.then&&"function"==typeof vt.catch},e.isArrayBufferView=function z(vt){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(vt):_(vt)||Fe(vt)},e.isUint8Array=function q(vt){return"Uint8Array"===f(vt)},e.isUint8ClampedArray=function Z(vt){return"Uint8ClampedArray"===f(vt)},e.isUint16Array=function H(vt){return"Uint16Array"===f(vt)},e.isUint32Array=function G(vt){return"Uint32Array"===f(vt)},e.isInt8Array=function W(vt){return"Int8Array"===f(vt)},e.isInt16Array=function te(vt){return"Int16Array"===f(vt)},e.isInt32Array=function P(vt){return"Int32Array"===f(vt)},e.isFloat32Array=function J(vt){return"Float32Array"===f(vt)},e.isFloat64Array=function j(vt){return"Float64Array"===f(vt)},e.isBigInt64Array=function re(vt){return"BigInt64Array"===f(vt)},e.isBigUint64Array=function he(vt){return"BigUint64Array"===f(vt)},oe.working=typeof Map<"u"&&oe(new Map),e.isMap=function Ce(vt){return!(typeof Map>"u")&&(oe.working?oe(vt):vt instanceof Map)},me.working=typeof Set<"u"&&me(new Set),e.isSet=function ze(vt){return!(typeof Set>"u")&&(me.working?me(vt):vt instanceof Set)},_e.working=typeof WeakMap<"u"&&_e(new WeakMap),e.isWeakMap=function Ae(vt){return!(typeof WeakMap>"u")&&(_e.working?_e(vt):vt instanceof WeakMap)},ve.working=typeof WeakSet<"u"&&ve(new WeakSet),e.isWeakSet=function ye(vt){return ve(vt)},Oe.working=typeof ArrayBuffer<"u"&&Oe(new ArrayBuffer),e.isArrayBuffer=ae,Ee.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&Ee(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=Fe;var Ve=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function mt(vt){return"[object SharedArrayBuffer]"===D(vt)}function St(vt){return!(typeof Ve>"u")&&(typeof mt.working>"u"&&(mt.working=mt(new Ve)),mt.working?mt(vt):vt instanceof Ve)}function _t(vt){return S(vt,x)}function Nt(vt){return S(vt,k)}function ut(vt){return S(vt,Q)}function et(vt){return y&&S(vt,I)}function Xe(vt){return M&&S(vt,d)}e.isSharedArrayBuffer=St,e.isAsyncFunction=function oi(vt){return"[object AsyncFunction]"===D(vt)},e.isMapIterator=function He(vt){return"[object Map Iterator]"===D(vt)},e.isSetIterator=function be(vt){return"[object Set Iterator]"===D(vt)},e.isGeneratorObject=function je(vt){return"[object Generator]"===D(vt)},e.isWebAssemblyCompiledModule=function Ke(vt){return"[object WebAssembly.Module]"===D(vt)},e.isNumberObject=_t,e.isStringObject=Nt,e.isBooleanObject=ut,e.isBigIntObject=et,e.isSymbolObject=Xe,e.isBoxedPrimitive=function It(vt){return _t(vt)||Nt(vt)||ut(vt)||et(vt)||Xe(vt)},e.isAnyArrayBuffer=function Dt(vt){return typeof Uint8Array<"u"&&(ae(vt)||St(vt))},["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(vt){Object.defineProperty(e,vt,{enumerable:!1,value:function(){throw new Error(vt+" is not supported in userland")}})})},29519:function(T,e,l){var v=l(38347),h=l(43162),f=Math.floor,_=v("".charAt),b=v("".replace),y=v("".slice),M=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,D=/\$([$&'`]|\d{1,2})/g;T.exports=function(x,k,Q,I,d,S){var R=Q+x.length,z=I.length,q=D;return void 0!==d&&(d=h(d),q=M),b(S,q,function(Z,H){var G;switch(_(H,0)){case"$":return"$";case"&":return x;case"`":return y(k,0,Q);case"'":return y(k,R);case"<":G=d[y(H,1,-1)];break;default:var W=+H;if(0===W)return Z;if(W>z){var te=f(W/10);return 0===te?Z:te<=z?void 0===I[te-1]?_(H,1):I[te-1]+_(H,1):Z}G=I[W-1]}return void 0===G?"":G})}},29781:function(T,e,l){"use strict";var _,v=l(9964);function f(be){var je=this;this.next=null,this.entry=null,this.finish=function(){!function He(be,je,Ke){var _t=be.entry;for(be.entry=null;_t;){var Nt=_t.callback;je.pendingcb--,Nt(Ke),_t=_t.next}je.corkedRequestsFree.next=be}(je,be)}}T.exports=he,he.WritableState=j;var b={deprecate:l(16465)},y=l(99018),M=l(14598).Buffer,D=(typeof l.g<"u"?l.g:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};var re,Q=l(37385),d=l(68130).getHighWaterMark,S=l(83797).F,R=S.ERR_INVALID_ARG_TYPE,z=S.ERR_METHOD_NOT_IMPLEMENTED,q=S.ERR_MULTIPLE_CALLBACK,Z=S.ERR_STREAM_CANNOT_PIPE,H=S.ERR_STREAM_DESTROYED,G=S.ERR_STREAM_NULL_VALUES,W=S.ERR_STREAM_WRITE_AFTER_END,te=S.ERR_UNKNOWN_ENCODING,P=Q.errorOrDestroy;function J(){}function j(be,je,Ke){_=_||l(14903),"boolean"!=typeof Ke&&(Ke=je instanceof _),this.objectMode=!!(be=be||{}).objectMode,Ke&&(this.objectMode=this.objectMode||!!be.writableObjectMode),this.highWaterMark=d(this,be,"writableHighWaterMark",Ke),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1,this.decodeStrings=!(!1===be.decodeStrings),this.defaultEncoding=be.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Nt){!function ye(be,je){var Ke=be._writableState,_t=Ke.sync,Nt=Ke.writecb;if("function"!=typeof Nt)throw new q;if(function ve(be){be.writing=!1,be.writecb=null,be.length-=be.writelen,be.writelen=0}(Ke),je)!function Ae(be,je,Ke,_t,Nt){--je.pendingcb,Ke?(v.nextTick(Nt,_t),v.nextTick(St,be,je),be._writableState.errorEmitted=!0,P(be,_t)):(Nt(_t),be._writableState.errorEmitted=!0,P(be,_t),St(be,je))}(be,Ke,_t,je,Nt);else{var ut=Fe(Ke)||be.destroyed;!ut&&!Ke.corked&&!Ke.bufferProcessing&&Ke.bufferedRequest&&Ee(be,Ke),_t?v.nextTick(Oe,be,Ke,ut,Nt):Oe(be,Ke,ut,Nt)}}(je,Nt)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==be.emitClose,this.autoDestroy=!!be.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new f(this)}function he(be){var je=this instanceof(_=_||l(14903));if(!je&&!re.call(he,this))return new he(be);this._writableState=new j(be,this,je),this.writable=!0,be&&("function"==typeof be.write&&(this._write=be.write),"function"==typeof be.writev&&(this._writev=be.writev),"function"==typeof be.destroy&&(this._destroy=be.destroy),"function"==typeof be.final&&(this._final=be.final)),y.call(this)}function ze(be,je,Ke,_t,Nt,ut){if(!Ke){var et=function me(be,je,Ke){return!be.objectMode&&!1!==be.decodeStrings&&"string"==typeof je&&(je=M.from(je,Ke)),je}(je,_t,Nt);_t!==et&&(Ke=!0,Nt="buffer",_t=et)}var Xe=je.objectMode?1:_t.length;je.length+=Xe;var It=je.length-1))throw new te(je);return this._writableState.defaultEncoding=je,this},Object.defineProperty(he.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(he.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),he.prototype._write=function(be,je,Ke){Ke(new z("_write()"))},he.prototype._writev=null,he.prototype.end=function(be,je,Ke){var _t=this._writableState;return"function"==typeof be?(Ke=be,be=null,je=null):"function"==typeof je&&(Ke=je,je=null),null!=be&&this.write(be,je),_t.corked&&(_t.corked=1,this.uncork()),_t.ending||function oi(be,je,Ke){je.ending=!0,St(be,je),Ke&&(je.finished?v.nextTick(Ke):be.once("finish",Ke)),je.ended=!0,be.writable=!1}(this,_t,Ke),this},Object.defineProperty(he.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(he.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(je){this._writableState&&(this._writableState.destroyed=je)}}),he.prototype.destroy=Q.destroy,he.prototype._undestroy=Q.undestroy,he.prototype._destroy=function(be,je){je(be)}},29819:function(T,e,l){"use strict";var v,h;T.exports=(v=l(48352),l(51270),v.mode.ECB=((h=v.lib.BlockCipherMode.extend()).Encryptor=h.extend({processBlock:function(_,b){this._cipher.encryptBlock(_,b)}}),h.Decryptor=h.extend({processBlock:function(_,b){this._cipher.decryptBlock(_,b)}}),h),v.mode.ECB)},29841:function(T,e,l){var v=l(38347),h=l(83943),f=l(25096),_=l(43187),b=v("".replace),y="["+_+"]",M=RegExp("^"+y+y+"*"),D=RegExp(y+y+"*$"),x=function(k){return function(Q){var I=f(h(Q));return 1&k&&(I=b(I,M,"")),2&k&&(I=b(I,D,"")),I}};T.exports={start:x(1),end:x(2),trim:x(3)}},29883:function(T,e,l){"use strict";var v=l(59754),h=l(91102).every,f=v.aTypedArray;(0,v.exportTypedArrayMethod)("every",function(y){return h(f(this),y,arguments.length>1?arguments[1]:void 0)})},30450:function(T,e,l){"use strict";l(8953),l(14032),T.exports=typeof ArrayBuffer<"u"&&typeof DataView<"u"},32010:function(T,e,l){var v=function(h){return h&&h.Math==Math&&h};T.exports=v("object"==typeof globalThis&&globalThis)||v("object"==typeof window&&window)||v("object"==typeof self&&self)||v("object"==typeof l.g&&l.g)||function(){return this}()||Function("return this")()},32504:function(T,e){"use strict";e.byteLength=function M(d){var S=y(d),z=S[1];return 3*(S[0]+z)/4-z},e.toByteArray=function x(d){var S,W,R=y(d),z=R[0],q=R[1],Z=new h(function D(d,S,R){return 3*(S+R)/4-R}(0,z,q)),H=0,G=q>0?z-4:z;for(W=0;W>16&255,Z[H++]=S>>8&255,Z[H++]=255&S;return 2===q&&(S=v[d.charCodeAt(W)]<<2|v[d.charCodeAt(W+1)]>>4,Z[H++]=255&S),1===q&&(S=v[d.charCodeAt(W)]<<10|v[d.charCodeAt(W+1)]<<4|v[d.charCodeAt(W+2)]>>2,Z[H++]=S>>8&255,Z[H++]=255&S),Z},e.fromByteArray=function I(d){for(var S,R=d.length,z=R%3,q=[],Z=16383,H=0,G=R-z;HG?G:H+Z));return 1===z?q.push(l[(S=d[R-1])>>2]+l[S<<4&63]+"=="):2===z&&q.push(l[(S=(d[R-2]<<8)+d[R-1])>>10]+l[S>>4&63]+l[S<<2&63]+"="),q.join("")};for(var l=[],v=[],h=typeof Uint8Array<"u"?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_=0;_<64;++_)l[_]=f[_],v[f.charCodeAt(_)]=_;function y(d){var S=d.length;if(S%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var R=d.indexOf("=");return-1===R&&(R=S),[R,R===S?0:4-R%4]}function k(d){return l[d>>18&63]+l[d>>12&63]+l[d>>6&63]+l[63&d]}function Q(d,S,R){for(var q=[],Z=S;Z=0:R>z;z+=q)z in S&&(I=k(I,S[z],z,d));return I}};T.exports={left:M(!1),right:M(!0)}},33766:function(T,e,l){"use strict";var v=l(75846);T.exports=v.getPrototypeOf||null},34074:function(T,e,l){var v=l(38347),h=l(73163),f=v("".replace),_=v("".split),b=v([].join),y=String(Error("zxcasd").stack),M=/\n\s*at [^:]*:[^\n]*/,D=M.test(y),x=/@[^\n]*\n/.test(y)&&!/zxcasd/.test(y);T.exports=function(k,Q){if("string"!=typeof k)return k;if(D)for(;Q--;)k=f(k,M,"");else if(x)return b(h(_(k,"\n"),Q),"\n");return k}},34097:function(T){var e=4096,h=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);function f(_){this.buf_=new Uint8Array(8224),this.input_=_,this.reset()}f.READ_SIZE=e,f.IBUF_MASK=8191,f.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var _=0;_<4;_++)this.val_|=this.buf_[this.pos_]<<8*_,++this.pos_;return this.bit_end_pos_>0},f.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var _=this.buf_ptr_,b=this.input_.read(this.buf_,_,e);if(b<0)throw new Error("Unexpected end of input");if(b=8;)this.val_>>>=8,this.val_|=this.buf_[8191&this.pos_]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},f.prototype.readBits=function(_){32-this.bit_pos_<_&&this.fillBitWindow();var b=this.val_>>>this.bit_pos_&h[_];return this.bit_pos_+=_,b},T.exports=f},34269:function(T){T.exports=function(e,l){for(var v=0,h=l.length,f=new e(h);h>v;)f[v]=l[v++];return f}},34460:function(T,e,l){T.exports=l(20980).BrotliDecompressBuffer},34506:function(T,e,l){"use strict";var v=l(93143).Buffer;T.exports=function(h){var f=h.Transform;function _(y,M){this.conv=y,(M=M||{}).decodeStrings=!1,f.call(this,M)}function b(y,M){this.conv=y,(M=M||{}).encoding=this.encoding="utf8",f.call(this,M)}return(_.prototype=Object.create(f.prototype,{constructor:{value:_}}))._transform=function(y,M,D){if("string"!=typeof y)return D(new Error("Iconv encoding stream needs strings as its input."));try{var x=this.conv.write(y);x&&x.length&&this.push(x),D()}catch(k){D(k)}},_.prototype._flush=function(y){try{var M=this.conv.end();M&&M.length&&this.push(M),y()}catch(D){y(D)}},_.prototype.collect=function(y){var M=[];return this.on("error",y),this.on("data",function(D){M.push(D)}),this.on("end",function(){y(null,v.concat(M))}),this},(b.prototype=Object.create(f.prototype,{constructor:{value:b}}))._transform=function(y,M,D){if(!(v.isBuffer(y)||y instanceof Uint8Array))return D(new Error("Iconv decoding stream needs buffers as its input."));try{var x=this.conv.write(y);x&&x.length&&this.push(x,this.encoding),D()}catch(k){D(k)}},b.prototype._flush=function(y){try{var M=this.conv.end();M&&M.length&&this.push(M,this.encoding),y()}catch(D){y(D)}},b.prototype.collect=function(y){var M="";return this.on("error",y),this.on("data",function(D){M+=D}),this.on("end",function(){y(null,M)}),this},{IconvLiteEncoderStream:_,IconvLiteDecoderStream:b}}},34815:function(T,e,l){var v=l(59754),h=l(27754),f=v.TYPED_ARRAY_CONSTRUCTOR,_=v.aTypedArrayConstructor;T.exports=function(b){return _(h(b,b[f]))}},34858:function(T,e,l){"use strict";var v=l(32010),h=l(26882),f=l(25096),_=l(83943),b=v.RangeError;T.exports=function(M){var D=f(_(this)),x="",k=h(M);if(k<0||k==1/0)throw b("Wrong number of repetitions");for(;k>0;(k>>>=1)&&(D+=D))1&k&&(x+=D);return x}},34984:function(T,e,l){var v=l(32010),h=l(24517),f=v.String,_=v.TypeError;T.exports=function(b){if(h(b))return b;throw _(f(b)+" is not an object")}},35074:function(T,e,l){"use strict";var v=l(77802),h=l(61320);T.exports=function(){var _=h();return v(Number,{isNaN:_},{isNaN:function(){return Number.isNaN!==_}}),_}},35143:function(T,e,l){"use strict";var v=l(93143).Buffer;e._dbcs=x;for(var h=-1,f=-2,_=-10,b=-1e3,y=new Array(256),D=0;D<256;D++)y[D]=h;function x(d,S){if(this.encodingName=d.encodingName,!d)throw new Error("DBCS codec is called without the data.");if(!d.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var R=d.table();this.decodeTables=[],this.decodeTables[0]=y.slice(0),this.decodeTableSeq=[];for(var z=0;zb)throw new Error("gb18030 decode tables conflict at byte 2");for(var te=this.decodeTables[b-G[W]],P=129;P<=254;P++){if(te[P]===h)te[P]=b-Z;else{if(te[P]===b-Z)continue;if(te[P]>b)throw new Error("gb18030 decode tables conflict at byte 3")}for(var J=this.decodeTables[b-te[P]],j=48;j<=57;j++)J[j]===h&&(J[j]=f)}}}this.defaultCharUnicode=S.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var re={};if(d.encodeSkipVals)for(z=0;zS)return-1;for(var R=0,z=d.length;R>1);d[q]<=S?R=q:z=q}return R}x.prototype.encoder=k,x.prototype.decoder=Q,x.prototype._getDecodeTrieNode=function(d){for(var S=[];d>0;d>>>=8)S.push(255&d);0==S.length&&S.push(0);for(var R=this.decodeTables[0],z=S.length-1;z>0;z--){var q=R[S[z]];if(q==h)R[S[z]]=b-this.decodeTables.length,this.decodeTables.push(R=y.slice(0));else{if(!(q<=b))throw new Error("Overwrite byte in "+this.encodingName+", addr: "+d.toString(16));R=this.decodeTables[b-q]}}return R},x.prototype._addDecodeChunk=function(d){var S=parseInt(d[0],16),R=this._getDecodeTrieNode(S);S&=255;for(var z=1;z255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+d[0]+": too long"+S)},x.prototype._getEncodeBucket=function(d){var S=d>>8;return void 0===this.encodeTable[S]&&(this.encodeTable[S]=y.slice(0)),this.encodeTable[S]},x.prototype._setEncodeChar=function(d,S){var R=this._getEncodeBucket(d),z=255&d;R[z]<=_?this.encodeTableSeq[_-R[z]][-1]=S:R[z]==h&&(R[z]=S)},x.prototype._setEncodeSequence=function(d,S){var Z,R=d[0],z=this._getEncodeBucket(R),q=255&R;z[q]<=_?Z=this.encodeTableSeq[_-z[q]]:(Z={},z[q]!==h&&(Z[-1]=z[q]),z[q]=_-this.encodeTableSeq.length,this.encodeTableSeq.push(Z));for(var H=1;H=0)this._setEncodeChar(G,W),q=!0;else if(G<=b){var te=b-G;Z[te]||(this._fillEncodeTable(te,W<<8>>>0,R)?q=!0:Z[te]=!0)}else G<=_&&(this._setEncodeSequence(this.decodeTableSeq[_-G],W),q=!0)}return q},k.prototype.write=function(d){for(var S=v.alloc(d.length*(this.gb18030?4:3)),R=this.leadSurrogate,z=this.seqObj,q=-1,Z=0,H=0;;){if(-1===q){if(Z==d.length)break;var G=d.charCodeAt(Z++)}else G=q,q=-1;if(55296<=G&&G<57344)if(G<56320){if(-1===R){R=G;continue}R=G,G=h}else-1!==R?(G=65536+1024*(R-55296)+(G-56320),R=-1):G=h;else-1!==R&&(q=G,G=h,R=-1);var W=h;if(void 0!==z&&G!=h){var te=z[G];if("object"==typeof te){z=te;continue}"number"==typeof te?W=te:null==te&&void 0!==(te=z[-1])&&(W=te,q=G),z=void 0}else if(G>=0){var P=this.encodeTable[G>>8];if(void 0!==P&&(W=P[255&G]),W<=_){z=this.encodeTableSeq[_-W];continue}if(W==h&&this.gb18030){var J=I(this.gb18030.uChars,G);if(-1!=J){W=this.gb18030.gbChars[J]+(G-this.gb18030.uChars[J]),S[H++]=129+Math.floor(W/12600),W%=12600,S[H++]=48+Math.floor(W/1260),W%=1260,S[H++]=129+Math.floor(W/10),S[H++]=48+(W%=10);continue}}}W===h&&(W=this.defaultCharSingleByte),W<256?S[H++]=W:W<65536?(S[H++]=W>>8,S[H++]=255&W):W<16777216?(S[H++]=W>>16,S[H++]=W>>8&255,S[H++]=255&W):(S[H++]=W>>>24,S[H++]=W>>>16&255,S[H++]=W>>>8&255,S[H++]=255&W)}return this.seqObj=z,this.leadSurrogate=R,S.slice(0,H)},k.prototype.end=function(){if(-1!==this.leadSurrogate||void 0!==this.seqObj){var d=v.alloc(10),S=0;if(this.seqObj){var R=this.seqObj[-1];void 0!==R&&(R<256?d[S++]=R:(d[S++]=R>>8,d[S++]=255&R)),this.seqObj=void 0}return-1!==this.leadSurrogate&&(d[S++]=this.defaultCharSingleByte,this.leadSurrogate=-1),d.slice(0,S)}},k.prototype.findIdx=I,Q.prototype.write=function(d){for(var S=v.alloc(2*d.length),R=this.nodeIdx,z=this.prevBytes,q=this.prevBytes.length,Z=-this.prevBytes.length,G=0,W=0;G=0?d[G]:z[G+q];if(!((H=this.decodeTables[R][te])>=0))if(H===h)H=this.defaultCharUnicode.charCodeAt(0),G=Z;else if(H===f){if(G>=3)var P=12600*(d[G-3]-129)+1260*(d[G-2]-48)+10*(d[G-1]-129)+(te-48);else P=12600*(z[G-3+q]-129)+1260*((G-2>=0?d[G-2]:z[G-2+q])-48)+10*((G-1>=0?d[G-1]:z[G-1+q])-129)+(te-48);var J=I(this.gb18030.gbChars,P);H=this.gb18030.uChars[J]+P-this.gb18030.gbChars[J]}else{if(H<=b){R=b-H;continue}if(!(H<=_))throw new Error("iconv-lite internal error: invalid decoding table value "+H+" at "+R+"/"+te);for(var j=this.decodeTableSeq[_-H],re=0;re>8;H=j[j.length-1]}if(H>=65536){var he=55296|(H-=65536)>>10;S[W++]=255&he,S[W++]=he>>8,H=56320|1023&H}S[W++]=255&H,S[W++]=H>>8,R=0,Z=G+1}return this.nodeIdx=R,this.prevBytes=Z>=0?Array.prototype.slice.call(d,Z):z.slice(Z+q).concat(Array.prototype.slice.call(d)),S.slice(0,W).toString("ucs2")},Q.prototype.end=function(){for(var d="";this.prevBytes.length>0;){d+=this.defaultCharUnicode;var S=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,S.length>0&&(d+=this.write(S))}return this.prevBytes=[],this.nodeIdx=0,d}},35403:function(T,e,l){"use strict";function v(te){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(P){return typeof P}:function(P){return P&&"function"==typeof Symbol&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P})(te)}function h(te,P){for(var J=0;J"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var re,j=d(te);if(P){var he=d(this).constructor;re=Reflect.construct(j,arguments,he)}else re=j.apply(this,arguments);return function k(te,P){if(P&&("object"===v(P)||"function"==typeof P))return P;if(void 0!==P)throw new TypeError("Derived constructors may only return object or undefined");return function Q(te){if(void 0===te)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return te}(te)}(this,re)}}function d(te){return(d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(J){return J.__proto__||Object.getPrototypeOf(J)})(te)}var R,z,S={};function q(te,P,J){J||(J=Error),S[te]=function(he){!function M(te,P){if("function"!=typeof P&&null!==P)throw new TypeError("Super expression must either be null or a function");te.prototype=Object.create(P&&P.prototype,{constructor:{value:te,writable:!0,configurable:!0}}),Object.defineProperty(te,"prototype",{writable:!1}),P&&D(te,P)}(Ce,he);var oe=x(Ce);function Ce(me,ze,_e){var Ae;return function y(te,P){if(!(te instanceof P))throw new TypeError("Cannot call a class as a function")}(this,Ce),(Ae=oe.call(this,function j(he,oe,Ce){return"string"==typeof P?P:P(he,oe,Ce)}(me,ze,_e))).code=te,Ae}return function f(te,P,J){return P&&h(te.prototype,P),J&&h(te,J),Object.defineProperty(te,"prototype",{writable:!1}),te}(Ce)}(J)}function Z(te,P){if(Array.isArray(te)){var J=te.length;return te=te.map(function(j){return String(j)}),J>2?"one of ".concat(P," ").concat(te.slice(0,J-1).join(", "),", or ")+te[J-1]:2===J?"one of ".concat(P," ").concat(te[0]," or ").concat(te[1]):"of ".concat(P," ").concat(te[0])}return"of ".concat(P," ").concat(String(te))}q("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),q("ERR_INVALID_ARG_TYPE",function(te,P,J){var j,re;if(void 0===R&&(R=l(80182)),R("string"==typeof te,"'name' must be a string"),"string"==typeof P&&function H(te,P,J){return te.substr(!J||J<0?0:+J,P.length)===P}(P,"not ")?(j="must not be",P=P.replace(/^not /,"")):j="must be",function G(te,P,J){return(void 0===J||J>te.length)&&(J=te.length),te.substring(J-P.length,J)===P}(te," argument"))re="The ".concat(te," ").concat(j," ").concat(Z(P,"type"));else{var he=function W(te,P,J){return"number"!=typeof J&&(J=0),!(J+P.length>te.length)&&-1!==te.indexOf(P,J)}(te,".")?"property":"argument";re='The "'.concat(te,'" ').concat(he," ").concat(j," ").concat(Z(P,"type"))}return re+". Received type ".concat(v(J))},TypeError),q("ERR_INVALID_ARG_VALUE",function(te,P){var J=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===z&&(z=l(7187));var j=z.inspect(P);return j.length>128&&(j="".concat(j.slice(0,128),"...")),"The argument '".concat(te,"' ").concat(J,". Received ").concat(j)},TypeError,RangeError),q("ERR_INVALID_RETURN_VALUE",function(te,P,J){var j;return j=J&&J.constructor&&J.constructor.name?"instance of ".concat(J.constructor.name):"type ".concat(v(J)),"Expected ".concat(te,' to be returned from the "').concat(P,'"')+" function but got ".concat(j,".")},TypeError),q("ERR_MISSING_ARGS",function(){for(var te=arguments.length,P=new Array(te),J=0;J0,"At least one arg needs to be specified");var j="The ",re=P.length;switch(P=P.map(function(he){return'"'.concat(he,'"')}),re){case 1:j+="".concat(P[0]," argument");break;case 2:j+="".concat(P[0]," and ").concat(P[1]," arguments");break;default:j+=P.slice(0,re-1).join(", "),j+=", and ".concat(P[re-1]," arguments")}return"".concat(j," must be specified")},TypeError),T.exports.codes=S},35471:function(T,e,l){"use strict";var v=l(59754),h=l(2834),f=l(72864),_=v.aTypedArray;(0,v.exportTypedArrayMethod)("fill",function(M){var D=arguments.length;return h(f,_(this),M,D>1?arguments[1]:void 0,D>2?arguments[2]:void 0)})},35643:function(T,e,l){"use strict";var v=Array.prototype.slice,h=l(76515),f=Object.keys,_=f?function(M){return f(M)}:l(48461),b=Object.keys;_.shim=function(){if(Object.keys){var M=function(){var D=Object.keys(arguments);return D&&D.length===arguments.length}(1,2);M||(Object.keys=function(x){return h(x)?b(v.call(x)):b(x)})}else Object.keys=_;return Object.keys||_},T.exports=_},36316:function(T){"use strict";T.exports=function(){function l(h,f){void 0===f&&(f=[]),this.type=h,this.options=f}var v=l.prototype;return v.decode=function(f){var _=this.type.decode(f);return this.options[_]||_},v.size=function(){return this.type.size()},v.encode=function(f,_){var b=this.options.indexOf(_);if(-1===b)throw new Error("Unknown option in enum: "+_);return this.type.encode(f,b)},l}()},36352:function(T,e,l){"use strict";var v=l(69510).charAt;T.exports=function(h,f,_){return f+(_?v(h,f).length:1)}},36521:function(T,e,l){"use strict";var v=l(35643),h=l(12843)(),f=l(22774),_=l(75846),b=f("Array.prototype.push"),y=f("Object.prototype.propertyIsEnumerable"),M=h?_.getOwnPropertySymbols:null;T.exports=function(x,k){if(null==x)throw new TypeError("target must be an object");var Q=_(x);if(1===arguments.length)return Q;for(var I=1;I>>31}var G=(d<<5|d>>>27)+q+M[Z];G+=Z<20?1518500249+(S&R|~S&z):Z<40?1859775393+(S^R^z):Z<60?(S&R|S&z|R&z)-1894007588:(S^R^z)-899497514,q=z,z=R,R=S<<30|S>>>2,S=d,d=G}I[0]=I[0]+d|0,I[1]=I[1]+S|0,I[2]=I[2]+R|0,I[3]=I[3]+z|0,I[4]=I[4]+q|0},_doFinalize:function(){var k=this._data,Q=k.words,I=8*this._nDataBytes,d=8*k.sigBytes;return Q[d>>>5]|=128<<24-d%32,Q[14+(d+64>>>9<<4)]=Math.floor(I/4294967296),Q[15+(d+64>>>9<<4)]=I,k.sigBytes=4*Q.length,this._process(),this._hash},clone:function(){var k=b.clone.call(this);return k._hash=this._hash.clone(),k}}),h.SHA1=b._createHelper(D),h.HmacSHA1=b._createHmacHelper(D),v.SHA1)},37309:function(T,e,l){var v=l(56475),h=l(43162),f=l(84675);v({target:"Object",stat:!0,forced:l(47044)(function(){f(1)})},{keys:function(M){return f(h(M))}})},37385:function(T,e,l){"use strict";var v=l(9964);function f(D,x){y(D,x),_(D)}function _(D){D._writableState&&!D._writableState.emitClose||D._readableState&&!D._readableState.emitClose||D.emit("close")}function y(D,x){D.emit("error",x)}T.exports={destroy:function h(D,x){var k=this;return this._readableState&&this._readableState.destroyed||this._writableState&&this._writableState.destroyed?(x?x(D):D&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,v.nextTick(y,this,D)):v.nextTick(y,this,D)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(D||null,function(d){!x&&d?k._writableState?k._writableState.errorEmitted?v.nextTick(_,k):(k._writableState.errorEmitted=!0,v.nextTick(f,k,d)):v.nextTick(f,k,d):x?(v.nextTick(_,k),x(d)):v.nextTick(_,k)}),this)},undestroy:function b(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function M(D,x){var k=D._readableState,Q=D._writableState;k&&k.autoDestroy||Q&&Q.autoDestroy?D.destroy(x):D.emit("error",x)}}},37468:function(T){"use strict";T.exports=function e(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},37596:function(T,e,l){"use strict";var v=l(36521);T.exports=function(){return!Object.assign||function(){if(!Object.assign)return!1;for(var _="abcdefghijklmnopqrst",b=_.split(""),y={},M=0;M4){var Qt=(re?vt.readUInt32BE(0):vt.readUInt32LE(0))-he;vt=J.slice(Qt,Qt+Dt)}var qe=void 0;if(je){switch(Nt){case 1:qe=vt.readUInt8(0);break;case 2:qe=vt.toString("ascii").replace(/\0+$/,"");break;case 3:qe=re?vt.readUInt16BE(0):vt.readUInt16LE(0);break;case 4:qe=re?vt.readUInt32BE(0):vt.readUInt32LE(0);break;case 5:qe=[];for(var ke=0;ke1&&void 0!==arguments[1])||arguments[1]){var he=(re=J.slice(2)).readUInt16BE(0);re=(re=(re=(re=re.slice(0,he)).slice(2)).slice(5)).slice(1)}var _e="MM"===re.toString("ascii",0,2),ye=re.readUInt32BE(4),Oe=re.readUInt32LE(4),ae=_e?ye:Oe;if((re=re.slice(ae)).length>0&&((d=q(re,_.ifd,_e,ae)).ExifIFDPointer&&(re=re.slice(d.ExifIFDPointer-ae),d.SubExif=q(re,_.ifd,_e,d.ExifIFDPointer)),d.GPSInfoIFDPointer)){var Ee=d.GPSInfoIFDPointer;re=re.slice(d.ExifIFDPointer?Ee-d.ExifIFDPointer:Ee-ae),d.GPSInfo=q(re,_.gps,_e,Ee)}},H=function P(J){var j=function(J){try{var j=J.readUInt16BE(0);return!!(j>=65504&&j<=65519)&&j-65504}catch{throw new Error("Invalid APP Tag.")}}(J);if(!1!==j){var re=J.readUInt16BE(2);1===j?Z(J):P(J.slice(2+re))}},G=function(J){if(!J)throw new Error("buffer not found");return d=void 0,S(J)?(J=J.slice(2),d={},H(J)):R(J)&&(d={},Z(J,!1)),d};e.fromBuffer=G,e.parse=function(J,j){d=void 0,new Promise(function(re,he){J||he(new Error("\u2753File not found.")),h.default.readFile(J,function(oe,Ce){if(oe)he(oe);else try{if(S(Ce)){var me=Ce.slice(2);d={},H(me),re(d)}else R(Ce)?(d={},Z(Ce,!1),re(d)):he(new Error("\u{1f631}Unsupport file type."))}catch(ze){he(ze)}})},function(re){j(re,void 0)}).then(function(re){j(void 0,re)}).catch(function(re){j(re,void 0)})},e.parseSync=function(J){if(!J)throw new Error("File not found");var j=h.default.readFileSync(J);return G(j)}},39081:function(T,e,l){"use strict";var v=l(56475),h=l(32010),f=l(47044),_=l(59113),b=l(24517),y=l(43162),M=l(45495),D=l(38639),x=l(45744),k=l(56280),Q=l(38688),I=l(70091),d=Q("isConcatSpreadable"),S=9007199254740991,R="Maximum allowed index exceeded",z=h.TypeError,q=I>=51||!f(function(){var W=[];return W[d]=!1,W.concat()[0]!==W}),Z=k("concat"),H=function(W){if(!b(W))return!1;var te=W[d];return void 0!==te?!!te:_(W)};v({target:"Array",proto:!0,forced:!q||!Z},{concat:function(te){var re,he,oe,Ce,me,P=y(this),J=x(P,0),j=0;for(re=-1,oe=arguments.length;reS)throw z(R);for(he=0;he=S)throw z(R);D(J,j++,me)}return J.length=j,J}})},39599:function(T,e,l){var v=l(47044),h=l(94578),f=/#|\.prototype\./,_=function(x,k){var Q=y[b(x)];return Q==D||Q!=M&&(h(k)?v(k):!!k)},b=_.normalize=function(x){return String(x).replace(f,".").toLowerCase()},y=_.data={},M=_.NATIVE="N",D=_.POLYFILL="P";T.exports=_},39629:function(T,e,l){var v=l(32010),h=l(2834),f=l(94578),_=l(24517),b=v.TypeError;T.exports=function(y,M){var D,x;if("string"===M&&f(D=y.toString)&&!_(x=h(D,y))||f(D=y.valueOf)&&!_(x=h(D,y))||"string"!==M&&f(D=y.toString)&&!_(x=h(D,y)))return x;throw b("Can't convert object to primitive value")}},40679:function(T){"use strict";T.exports=JSON.parse('[["0","\\u0000",128],["a1","\uff61",62],["8140","\u3000\u3001\u3002\uff0c\uff0e\u30fb\uff1a\uff1b\uff1f\uff01\u309b\u309c\xb4\uff40\xa8\uff3e\uffe3\uff3f\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\u2015\u2010\uff0f\uff3c\uff5e\u2225\uff5c\u2026\u2025\u2018\u2019\u201c\u201d\uff08\uff09\u3014\u3015\uff3b\uff3d\uff5b\uff5d\u3008",9,"\uff0b\uff0d\xb1\xd7"],["8180","\xf7\uff1d\u2260\uff1c\uff1e\u2266\u2267\u221e\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uffe5\uff04\uffe0\uffe1\uff05\uff03\uff06\uff0a\uff20\xa7\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u203b\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229"],["81c8","\u2227\u2228\uffe2\u21d2\u21d4\u2200\u2203"],["81da","\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c"],["81f0","\u212b\u2030\u266f\u266d\u266a\u2020\u2021\xb6"],["81fc","\u25ef"],["824f","\uff10",9],["8260","\uff21",25],["8281","\uff41",25],["829f","\u3041",82],["8340","\u30a1",62],["8380","\u30e0",22],["839f","\u0391",16,"\u03a3",6],["83bf","\u03b1",16,"\u03c3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043e",17],["849f","\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334d\u3318\u3327\u3303\u3336\u3351\u3357\u330d\u3326\u3323\u332b\u334a\u333b\u339c\u339d\u339e\u338e\u338f\u33c4\u33a1"],["877e","\u337b"],["8780","\u301d\u301f\u2116\u33cd\u2121\u32a4",4,"\u3231\u3232\u3239\u337e\u337d\u337c\u2252\u2261\u222b\u222e\u2211\u221a\u22a5\u2220\u221f\u22bf\u2235\u2229\u222a"],["889f","\u4e9c\u5516\u5a03\u963f\u54c0\u611b\u6328\u59f6\u9022\u8475\u831c\u7a50\u60aa\u63e1\u6e25\u65ed\u8466\u82a6\u9bf5\u6893\u5727\u65a1\u6271\u5b9b\u59d0\u867b\u98f4\u7d62\u7dbe\u9b8e\u6216\u7c9f\u88b7\u5b89\u5eb5\u6309\u6697\u6848\u95c7\u978d\u674f\u4ee5\u4f0a\u4f4d\u4f9d\u5049\u56f2\u5937\u59d4\u5a01\u5c09\u60df\u610f\u6170\u6613\u6905\u70ba\u754f\u7570\u79fb\u7dad\u7def\u80c3\u840e\u8863\u8b02\u9055\u907a\u533b\u4e95\u4ea5\u57df\u80b2\u90c1\u78ef\u4e00\u58f1\u6ea2\u9038\u7a32\u8328\u828b\u9c2f\u5141\u5370\u54bd\u54e1\u56e0\u59fb\u5f15\u98f2\u6deb\u80e4\u852d"],["8940","\u9662\u9670\u96a0\u97fb\u540b\u53f3\u5b87\u70cf\u7fbd\u8fc2\u96e8\u536f\u9d5c\u7aba\u4e11\u7893\u81fc\u6e26\u5618\u5504\u6b1d\u851a\u9c3b\u59e5\u53a9\u6d66\u74dc\u958f\u5642\u4e91\u904b\u96f2\u834f\u990c\u53e1\u55b6\u5b30\u5f71\u6620\u66f3\u6804\u6c38\u6cf3\u6d29\u745b\u76c8\u7a4e\u9834\u82f1\u885b\u8a60\u92ed\u6db2\u75ab\u76ca\u99c5\u60a6\u8b01\u8d8a\u95b2\u698e\u53ad\u5186"],["8980","\u5712\u5830\u5944\u5bb4\u5ef6\u6028\u63a9\u63f4\u6cbf\u6f14\u708e\u7114\u7159\u71d5\u733f\u7e01\u8276\u82d1\u8597\u9060\u925b\u9d1b\u5869\u65bc\u6c5a\u7525\u51f9\u592e\u5965\u5f80\u5fdc\u62bc\u65fa\u6a2a\u6b27\u6bb4\u738b\u7fc1\u8956\u9d2c\u9d0e\u9ec4\u5ca1\u6c96\u837b\u5104\u5c4b\u61b6\u81c6\u6876\u7261\u4e59\u4ffa\u5378\u6069\u6e29\u7a4f\u97f3\u4e0b\u5316\u4eee\u4f55\u4f3d\u4fa1\u4f73\u52a0\u53ef\u5609\u590f\u5ac1\u5bb6\u5be1\u79d1\u6687\u679c\u67b6\u6b4c\u6cb3\u706b\u73c2\u798d\u79be\u7a3c\u7b87\u82b1\u82db\u8304\u8377\u83ef\u83d3\u8766\u8ab2\u5629\u8ca8\u8fe6\u904e\u971e\u868a\u4fc4\u5ce8\u6211\u7259\u753b\u81e5\u82bd\u86fe\u8cc0\u96c5\u9913\u99d5\u4ecb\u4f1a\u89e3\u56de\u584a\u58ca\u5efb\u5feb\u602a\u6094\u6062\u61d0\u6212\u62d0\u6539"],["8a40","\u9b41\u6666\u68b0\u6d77\u7070\u754c\u7686\u7d75\u82a5\u87f9\u958b\u968e\u8c9d\u51f1\u52be\u5916\u54b3\u5bb3\u5d16\u6168\u6982\u6daf\u788d\u84cb\u8857\u8a72\u93a7\u9ab8\u6d6c\u99a8\u86d9\u57a3\u67ff\u86ce\u920e\u5283\u5687\u5404\u5ed3\u62e1\u64b9\u683c\u6838\u6bbb\u7372\u78ba\u7a6b\u899a\u89d2\u8d6b\u8f03\u90ed\u95a3\u9694\u9769\u5b66\u5cb3\u697d\u984d\u984e\u639b\u7b20\u6a2b"],["8a80","\u6a7f\u68b6\u9c0d\u6f5f\u5272\u559d\u6070\u62ec\u6d3b\u6e07\u6ed1\u845b\u8910\u8f44\u4e14\u9c39\u53f6\u691b\u6a3a\u9784\u682a\u515c\u7ac3\u84b2\u91dc\u938c\u565b\u9d28\u6822\u8305\u8431\u7ca5\u5208\u82c5\u74e6\u4e7e\u4f83\u51a0\u5bd2\u520a\u52d8\u52e7\u5dfb\u559a\u582a\u59e6\u5b8c\u5b98\u5bdb\u5e72\u5e79\u60a3\u611f\u6163\u61be\u63db\u6562\u67d1\u6853\u68fa\u6b3e\u6b53\u6c57\u6f22\u6f97\u6f45\u74b0\u7518\u76e3\u770b\u7aff\u7ba1\u7c21\u7de9\u7f36\u7ff0\u809d\u8266\u839e\u89b3\u8acc\u8cab\u9084\u9451\u9593\u9591\u95a2\u9665\u97d3\u9928\u8218\u4e38\u542b\u5cb8\u5dcc\u73a9\u764c\u773c\u5ca9\u7feb\u8d0b\u96c1\u9811\u9854\u9858\u4f01\u4f0e\u5371\u559c\u5668\u57fa\u5947\u5b09\u5bc4\u5c90\u5e0c\u5e7e\u5fcc\u63ee\u673a\u65d7\u65e2\u671f\u68cb\u68c4"],["8b40","\u6a5f\u5e30\u6bc5\u6c17\u6c7d\u757f\u7948\u5b63\u7a00\u7d00\u5fbd\u898f\u8a18\u8cb4\u8d77\u8ecc\u8f1d\u98e2\u9a0e\u9b3c\u4e80\u507d\u5100\u5993\u5b9c\u622f\u6280\u64ec\u6b3a\u72a0\u7591\u7947\u7fa9\u87fb\u8abc\u8b70\u63ac\u83ca\u97a0\u5409\u5403\u55ab\u6854\u6a58\u8a70\u7827\u6775\u9ecd\u5374\u5ba2\u811a\u8650\u9006\u4e18\u4e45\u4ec7\u4f11\u53ca\u5438\u5bae\u5f13\u6025\u6551"],["8b80","\u673d\u6c42\u6c72\u6ce3\u7078\u7403\u7a76\u7aae\u7b08\u7d1a\u7cfe\u7d66\u65e7\u725b\u53bb\u5c45\u5de8\u62d2\u62e0\u6319\u6e20\u865a\u8a31\u8ddd\u92f8\u6f01\u79a6\u9b5a\u4ea8\u4eab\u4eac\u4f9b\u4fa0\u50d1\u5147\u7af6\u5171\u51f6\u5354\u5321\u537f\u53eb\u55ac\u5883\u5ce1\u5f37\u5f4a\u602f\u6050\u606d\u631f\u6559\u6a4b\u6cc1\u72c2\u72ed\u77ef\u80f8\u8105\u8208\u854e\u90f7\u93e1\u97ff\u9957\u9a5a\u4ef0\u51dd\u5c2d\u6681\u696d\u5c40\u66f2\u6975\u7389\u6850\u7c81\u50c5\u52e4\u5747\u5dfe\u9326\u65a4\u6b23\u6b3d\u7434\u7981\u79bd\u7b4b\u7dca\u82b9\u83cc\u887f\u895f\u8b39\u8fd1\u91d1\u541f\u9280\u4e5d\u5036\u53e5\u533a\u72d7\u7396\u77e9\u82e6\u8eaf\u99c6\u99c8\u99d2\u5177\u611a\u865e\u55b0\u7a7a\u5076\u5bd3\u9047\u9685\u4e32\u6adb\u91e7\u5c51\u5c48"],["8c40","\u6398\u7a9f\u6c93\u9774\u8f61\u7aaa\u718a\u9688\u7c82\u6817\u7e70\u6851\u936c\u52f2\u541b\u85ab\u8a13\u7fa4\u8ecd\u90e1\u5366\u8888\u7941\u4fc2\u50be\u5211\u5144\u5553\u572d\u73ea\u578b\u5951\u5f62\u5f84\u6075\u6176\u6167\u61a9\u63b2\u643a\u656c\u666f\u6842\u6e13\u7566\u7a3d\u7cfb\u7d4c\u7d99\u7e4b\u7f6b\u830e\u834a\u86cd\u8a08\u8a63\u8b66\u8efd\u981a\u9d8f\u82b8\u8fce\u9be8"],["8c80","\u5287\u621f\u6483\u6fc0\u9699\u6841\u5091\u6b20\u6c7a\u6f54\u7a74\u7d50\u8840\u8a23\u6708\u4ef6\u5039\u5026\u5065\u517c\u5238\u5263\u55a7\u570f\u5805\u5acc\u5efa\u61b2\u61f8\u62f3\u6372\u691c\u6a29\u727d\u72ac\u732e\u7814\u786f\u7d79\u770c\u80a9\u898b\u8b19\u8ce2\u8ed2\u9063\u9375\u967a\u9855\u9a13\u9e78\u5143\u539f\u53b3\u5e7b\u5f26\u6e1b\u6e90\u7384\u73fe\u7d43\u8237\u8a00\u8afa\u9650\u4e4e\u500b\u53e4\u547c\u56fa\u59d1\u5b64\u5df1\u5eab\u5f27\u6238\u6545\u67af\u6e56\u72d0\u7cca\u88b4\u80a1\u80e1\u83f0\u864e\u8a87\u8de8\u9237\u96c7\u9867\u9f13\u4e94\u4e92\u4f0d\u5348\u5449\u543e\u5a2f\u5f8c\u5fa1\u609f\u68a7\u6a8e\u745a\u7881\u8a9e\u8aa4\u8b77\u9190\u4e5e\u9bc9\u4ea4\u4f7c\u4faf\u5019\u5016\u5149\u516c\u529f\u52b9\u52fe\u539a\u53e3\u5411"],["8d40","\u540e\u5589\u5751\u57a2\u597d\u5b54\u5b5d\u5b8f\u5de5\u5de7\u5df7\u5e78\u5e83\u5e9a\u5eb7\u5f18\u6052\u614c\u6297\u62d8\u63a7\u653b\u6602\u6643\u66f4\u676d\u6821\u6897\u69cb\u6c5f\u6d2a\u6d69\u6e2f\u6e9d\u7532\u7687\u786c\u7a3f\u7ce0\u7d05\u7d18\u7d5e\u7db1\u8015\u8003\u80af\u80b1\u8154\u818f\u822a\u8352\u884c\u8861\u8b1b\u8ca2\u8cfc\u90ca\u9175\u9271\u783f\u92fc\u95a4\u964d"],["8d80","\u9805\u9999\u9ad8\u9d3b\u525b\u52ab\u53f7\u5408\u58d5\u62f7\u6fe0\u8c6a\u8f5f\u9eb9\u514b\u523b\u544a\u56fd\u7a40\u9177\u9d60\u9ed2\u7344\u6f09\u8170\u7511\u5ffd\u60da\u9aa8\u72db\u8fbc\u6b64\u9803\u4eca\u56f0\u5764\u58be\u5a5a\u6068\u61c7\u660f\u6606\u6839\u68b1\u6df7\u75d5\u7d3a\u826e\u9b42\u4e9b\u4f50\u53c9\u5506\u5d6f\u5de6\u5dee\u67fb\u6c99\u7473\u7802\u8a50\u9396\u88df\u5750\u5ea7\u632b\u50b5\u50ac\u518d\u6700\u54c9\u585e\u59bb\u5bb0\u5f69\u624d\u63a1\u683d\u6b73\u6e08\u707d\u91c7\u7280\u7815\u7826\u796d\u658e\u7d30\u83dc\u88c1\u8f09\u969b\u5264\u5728\u6750\u7f6a\u8ca1\u51b4\u5742\u962a\u583a\u698a\u80b4\u54b2\u5d0e\u57fc\u7895\u9dfa\u4f5c\u524a\u548b\u643e\u6628\u6714\u67f5\u7a84\u7b56\u7d22\u932f\u685c\u9bad\u7b39\u5319\u518a\u5237"],["8e40","\u5bdf\u62f6\u64ae\u64e6\u672d\u6bba\u85a9\u96d1\u7690\u9bd6\u634c\u9306\u9bab\u76bf\u6652\u4e09\u5098\u53c2\u5c71\u60e8\u6492\u6563\u685f\u71e6\u73ca\u7523\u7b97\u7e82\u8695\u8b83\u8cdb\u9178\u9910\u65ac\u66ab\u6b8b\u4ed5\u4ed4\u4f3a\u4f7f\u523a\u53f8\u53f2\u55e3\u56db\u58eb\u59cb\u59c9\u59ff\u5b50\u5c4d\u5e02\u5e2b\u5fd7\u601d\u6307\u652f\u5b5c\u65af\u65bd\u65e8\u679d\u6b62"],["8e80","\u6b7b\u6c0f\u7345\u7949\u79c1\u7cf8\u7d19\u7d2b\u80a2\u8102\u81f3\u8996\u8a5e\u8a69\u8a66\u8a8c\u8aee\u8cc7\u8cdc\u96cc\u98fc\u6b6f\u4e8b\u4f3c\u4f8d\u5150\u5b57\u5bfa\u6148\u6301\u6642\u6b21\u6ecb\u6cbb\u723e\u74bd\u75d4\u78c1\u793a\u800c\u8033\u81ea\u8494\u8f9e\u6c50\u9e7f\u5f0f\u8b58\u9d2b\u7afa\u8ef8\u5b8d\u96eb\u4e03\u53f1\u57f7\u5931\u5ac9\u5ba4\u6089\u6e7f\u6f06\u75be\u8cea\u5b9f\u8500\u7be0\u5072\u67f4\u829d\u5c61\u854a\u7e1e\u820e\u5199\u5c04\u6368\u8d66\u659c\u716e\u793e\u7d17\u8005\u8b1d\u8eca\u906e\u86c7\u90aa\u501f\u52fa\u5c3a\u6753\u707c\u7235\u914c\u91c8\u932b\u82e5\u5bc2\u5f31\u60f9\u4e3b\u53d6\u5b88\u624b\u6731\u6b8a\u72e9\u73e0\u7a2e\u816b\u8da3\u9152\u9996\u5112\u53d7\u546a\u5bff\u6388\u6a39\u7dac\u9700\u56da\u53ce\u5468"],["8f40","\u5b97\u5c31\u5dde\u4fee\u6101\u62fe\u6d32\u79c0\u79cb\u7d42\u7e4d\u7fd2\u81ed\u821f\u8490\u8846\u8972\u8b90\u8e74\u8f2f\u9031\u914b\u916c\u96c6\u919c\u4ec0\u4f4f\u5145\u5341\u5f93\u620e\u67d4\u6c41\u6e0b\u7363\u7e26\u91cd\u9283\u53d4\u5919\u5bbf\u6dd1\u795d\u7e2e\u7c9b\u587e\u719f\u51fa\u8853\u8ff0\u4fca\u5cfb\u6625\u77ac\u7ae3\u821c\u99ff\u51c6\u5faa\u65ec\u696f\u6b89\u6df3"],["8f80","\u6e96\u6f64\u76fe\u7d14\u5de1\u9075\u9187\u9806\u51e6\u521d\u6240\u6691\u66d9\u6e1a\u5eb6\u7dd2\u7f72\u66f8\u85af\u85f7\u8af8\u52a9\u53d9\u5973\u5e8f\u5f90\u6055\u92e4\u9664\u50b7\u511f\u52dd\u5320\u5347\u53ec\u54e8\u5546\u5531\u5617\u5968\u59be\u5a3c\u5bb5\u5c06\u5c0f\u5c11\u5c1a\u5e84\u5e8a\u5ee0\u5f70\u627f\u6284\u62db\u638c\u6377\u6607\u660c\u662d\u6676\u677e\u68a2\u6a1f\u6a35\u6cbc\u6d88\u6e09\u6e58\u713c\u7126\u7167\u75c7\u7701\u785d\u7901\u7965\u79f0\u7ae0\u7b11\u7ca7\u7d39\u8096\u83d6\u848b\u8549\u885d\u88f3\u8a1f\u8a3c\u8a54\u8a73\u8c61\u8cde\u91a4\u9266\u937e\u9418\u969c\u9798\u4e0a\u4e08\u4e1e\u4e57\u5197\u5270\u57ce\u5834\u58cc\u5b22\u5e38\u60c5\u64fe\u6761\u6756\u6d44\u72b6\u7573\u7a63\u84b8\u8b72\u91b8\u9320\u5631\u57f4\u98fe"],["9040","\u62ed\u690d\u6b96\u71ed\u7e54\u8077\u8272\u89e6\u98df\u8755\u8fb1\u5c3b\u4f38\u4fe1\u4fb5\u5507\u5a20\u5bdd\u5be9\u5fc3\u614e\u632f\u65b0\u664b\u68ee\u699b\u6d78\u6df1\u7533\u75b9\u771f\u795e\u79e6\u7d33\u81e3\u82af\u85aa\u89aa\u8a3a\u8eab\u8f9b\u9032\u91dd\u9707\u4eba\u4ec1\u5203\u5875\u58ec\u5c0b\u751a\u5c3d\u814e\u8a0a\u8fc5\u9663\u976d\u7b25\u8acf\u9808\u9162\u56f3\u53a8"],["9080","\u9017\u5439\u5782\u5e25\u63a8\u6c34\u708a\u7761\u7c8b\u7fe0\u8870\u9042\u9154\u9310\u9318\u968f\u745e\u9ac4\u5d07\u5d69\u6570\u67a2\u8da8\u96db\u636e\u6749\u6919\u83c5\u9817\u96c0\u88fe\u6f84\u647a\u5bf8\u4e16\u702c\u755d\u662f\u51c4\u5236\u52e2\u59d3\u5f81\u6027\u6210\u653f\u6574\u661f\u6674\u68f2\u6816\u6b63\u6e05\u7272\u751f\u76db\u7cbe\u8056\u58f0\u88fd\u897f\u8aa0\u8a93\u8acb\u901d\u9192\u9752\u9759\u6589\u7a0e\u8106\u96bb\u5e2d\u60dc\u621a\u65a5\u6614\u6790\u77f3\u7a4d\u7c4d\u7e3e\u810a\u8cac\u8d64\u8de1\u8e5f\u78a9\u5207\u62d9\u63a5\u6442\u6298\u8a2d\u7a83\u7bc0\u8aac\u96ea\u7d76\u820c\u8749\u4ed9\u5148\u5343\u5360\u5ba3\u5c02\u5c16\u5ddd\u6226\u6247\u64b0\u6813\u6834\u6cc9\u6d45\u6d17\u67d3\u6f5c\u714e\u717d\u65cb\u7a7f\u7bad\u7dda"],["9140","\u7e4a\u7fa8\u817a\u821b\u8239\u85a6\u8a6e\u8cce\u8df5\u9078\u9077\u92ad\u9291\u9583\u9bae\u524d\u5584\u6f38\u7136\u5168\u7985\u7e55\u81b3\u7cce\u564c\u5851\u5ca8\u63aa\u66fe\u66fd\u695a\u72d9\u758f\u758e\u790e\u7956\u79df\u7c97\u7d20\u7d44\u8607\u8a34\u963b\u9061\u9f20\u50e7\u5275\u53cc\u53e2\u5009\u55aa\u58ee\u594f\u723d\u5b8b\u5c64\u531d\u60e3\u60f3\u635c\u6383\u633f\u63bb"],["9180","\u64cd\u65e9\u66f9\u5de3\u69cd\u69fd\u6f15\u71e5\u4e89\u75e9\u76f8\u7a93\u7cdf\u7dcf\u7d9c\u8061\u8349\u8358\u846c\u84bc\u85fb\u88c5\u8d70\u9001\u906d\u9397\u971c\u9a12\u50cf\u5897\u618e\u81d3\u8535\u8d08\u9020\u4fc3\u5074\u5247\u5373\u606f\u6349\u675f\u6e2c\u8db3\u901f\u4fd7\u5c5e\u8cca\u65cf\u7d9a\u5352\u8896\u5176\u63c3\u5b58\u5b6b\u5c0a\u640d\u6751\u905c\u4ed6\u591a\u592a\u6c70\u8a51\u553e\u5815\u59a5\u60f0\u6253\u67c1\u8235\u6955\u9640\u99c4\u9a28\u4f53\u5806\u5bfe\u8010\u5cb1\u5e2f\u5f85\u6020\u614b\u6234\u66ff\u6cf0\u6ede\u80ce\u817f\u82d4\u888b\u8cb8\u9000\u902e\u968a\u9edb\u9bdb\u4ee3\u53f0\u5927\u7b2c\u918d\u984c\u9df9\u6edd\u7027\u5353\u5544\u5b85\u6258\u629e\u62d3\u6ca2\u6fef\u7422\u8a17\u9438\u6fc1\u8afe\u8338\u51e7\u86f8\u53ea"],["9240","\u53e9\u4f46\u9054\u8fb0\u596a\u8131\u5dfd\u7aea\u8fbf\u68da\u8c37\u72f8\u9c48\u6a3d\u8ab0\u4e39\u5358\u5606\u5766\u62c5\u63a2\u65e6\u6b4e\u6de1\u6e5b\u70ad\u77ed\u7aef\u7baa\u7dbb\u803d\u80c6\u86cb\u8a95\u935b\u56e3\u58c7\u5f3e\u65ad\u6696\u6a80\u6bb5\u7537\u8ac7\u5024\u77e5\u5730\u5f1b\u6065\u667a\u6c60\u75f4\u7a1a\u7f6e\u81f4\u8718\u9045\u99b3\u7bc9\u755c\u7af9\u7b51\u84c4"],["9280","\u9010\u79e9\u7a92\u8336\u5ae1\u7740\u4e2d\u4ef2\u5b99\u5fe0\u62bd\u663c\u67f1\u6ce8\u866b\u8877\u8a3b\u914e\u92f3\u99d0\u6a17\u7026\u732a\u82e7\u8457\u8caf\u4e01\u5146\u51cb\u558b\u5bf5\u5e16\u5e33\u5e81\u5f14\u5f35\u5f6b\u5fb4\u61f2\u6311\u66a2\u671d\u6f6e\u7252\u753a\u773a\u8074\u8139\u8178\u8776\u8abf\u8adc\u8d85\u8df3\u929a\u9577\u9802\u9ce5\u52c5\u6357\u76f4\u6715\u6c88\u73cd\u8cc3\u93ae\u9673\u6d25\u589c\u690e\u69cc\u8ffd\u939a\u75db\u901a\u585a\u6802\u63b4\u69fb\u4f43\u6f2c\u67d8\u8fbb\u8526\u7db4\u9354\u693f\u6f70\u576a\u58f7\u5b2c\u7d2c\u722a\u540a\u91e3\u9db4\u4ead\u4f4e\u505c\u5075\u5243\u8c9e\u5448\u5824\u5b9a\u5e1d\u5e95\u5ead\u5ef7\u5f1f\u608c\u62b5\u633a\u63d0\u68af\u6c40\u7887\u798e\u7a0b\u7de0\u8247\u8a02\u8ae6\u8e44\u9013"],["9340","\u90b8\u912d\u91d8\u9f0e\u6ce5\u6458\u64e2\u6575\u6ef4\u7684\u7b1b\u9069\u93d1\u6eba\u54f2\u5fb9\u64a4\u8f4d\u8fed\u9244\u5178\u586b\u5929\u5c55\u5e97\u6dfb\u7e8f\u751c\u8cbc\u8ee2\u985b\u70b9\u4f1d\u6bbf\u6fb1\u7530\u96fb\u514e\u5410\u5835\u5857\u59ac\u5c60\u5f92\u6597\u675c\u6e21\u767b\u83df\u8ced\u9014\u90fd\u934d\u7825\u783a\u52aa\u5ea6\u571f\u5974\u6012\u5012\u515a\u51ac"],["9380","\u51cd\u5200\u5510\u5854\u5858\u5957\u5b95\u5cf6\u5d8b\u60bc\u6295\u642d\u6771\u6843\u68bc\u68df\u76d7\u6dd8\u6e6f\u6d9b\u706f\u71c8\u5f53\u75d8\u7977\u7b49\u7b54\u7b52\u7cd6\u7d71\u5230\u8463\u8569\u85e4\u8a0e\u8b04\u8c46\u8e0f\u9003\u900f\u9419\u9676\u982d\u9a30\u95d8\u50cd\u52d5\u540c\u5802\u5c0e\u61a7\u649e\u6d1e\u77b3\u7ae5\u80f4\u8404\u9053\u9285\u5ce0\u9d07\u533f\u5f97\u5fb3\u6d9c\u7279\u7763\u79bf\u7be4\u6bd2\u72ec\u8aad\u6803\u6a61\u51f8\u7a81\u6934\u5c4a\u9cf6\u82eb\u5bc5\u9149\u701e\u5678\u5c6f\u60c7\u6566\u6c8c\u8c5a\u9041\u9813\u5451\u66c7\u920d\u5948\u90a3\u5185\u4e4d\u51ea\u8599\u8b0e\u7058\u637a\u934b\u6962\u99b4\u7e04\u7577\u5357\u6960\u8edf\u96e3\u6c5d\u4e8c\u5c3c\u5f10\u8fe9\u5302\u8cd1\u8089\u8679\u5eff\u65e5\u4e73\u5165"],["9440","\u5982\u5c3f\u97ee\u4efb\u598a\u5fcd\u8a8d\u6fe1\u79b0\u7962\u5be7\u8471\u732b\u71b1\u5e74\u5ff5\u637b\u649a\u71c3\u7c98\u4e43\u5efc\u4e4b\u57dc\u56a2\u60a9\u6fc3\u7d0d\u80fd\u8133\u81bf\u8fb2\u8997\u86a4\u5df4\u628a\u64ad\u8987\u6777\u6ce2\u6d3e\u7436\u7834\u5a46\u7f75\u82ad\u99ac\u4ff3\u5ec3\u62dd\u6392\u6557\u676f\u76c3\u724c\u80cc\u80ba\u8f29\u914d\u500d\u57f9\u5a92\u6885"],["9480","\u6973\u7164\u72fd\u8cb7\u58f2\u8ce0\u966a\u9019\u877f\u79e4\u77e7\u8429\u4f2f\u5265\u535a\u62cd\u67cf\u6cca\u767d\u7b94\u7c95\u8236\u8584\u8feb\u66dd\u6f20\u7206\u7e1b\u83ab\u99c1\u9ea6\u51fd\u7bb1\u7872\u7bb8\u8087\u7b48\u6ae8\u5e61\u808c\u7551\u7560\u516b\u9262\u6e8c\u767a\u9197\u9aea\u4f10\u7f70\u629c\u7b4f\u95a5\u9ce9\u567a\u5859\u86e4\u96bc\u4f34\u5224\u534a\u53cd\u53db\u5e06\u642c\u6591\u677f\u6c3e\u6c4e\u7248\u72af\u73ed\u7554\u7e41\u822c\u85e9\u8ca9\u7bc4\u91c6\u7169\u9812\u98ef\u633d\u6669\u756a\u76e4\u78d0\u8543\u86ee\u532a\u5351\u5426\u5983\u5e87\u5f7c\u60b2\u6249\u6279\u62ab\u6590\u6bd4\u6ccc\u75b2\u76ae\u7891\u79d8\u7dcb\u7f77\u80a5\u88ab\u8ab9\u8cbb\u907f\u975e\u98db\u6a0b\u7c38\u5099\u5c3e\u5fae\u6787\u6bd8\u7435\u7709\u7f8e"],["9540","\u9f3b\u67ca\u7a17\u5339\u758b\u9aed\u5f66\u819d\u83f1\u8098\u5f3c\u5fc5\u7562\u7b46\u903c\u6867\u59eb\u5a9b\u7d10\u767e\u8b2c\u4ff5\u5f6a\u6a19\u6c37\u6f02\u74e2\u7968\u8868\u8a55\u8c79\u5edf\u63cf\u75c5\u79d2\u82d7\u9328\u92f2\u849c\u86ed\u9c2d\u54c1\u5f6c\u658c\u6d5c\u7015\u8ca7\u8cd3\u983b\u654f\u74f6\u4e0d\u4ed8\u57e0\u592b\u5a66\u5bcc\u51a8\u5e03\u5e9c\u6016\u6276\u6577"],["9580","\u65a7\u666e\u6d6e\u7236\u7b26\u8150\u819a\u8299\u8b5c\u8ca0\u8ce6\u8d74\u961c\u9644\u4fae\u64ab\u6b66\u821e\u8461\u856a\u90e8\u5c01\u6953\u98a8\u847a\u8557\u4f0f\u526f\u5fa9\u5e45\u670d\u798f\u8179\u8907\u8986\u6df5\u5f17\u6255\u6cb8\u4ecf\u7269\u9b92\u5206\u543b\u5674\u58b3\u61a4\u626e\u711a\u596e\u7c89\u7cde\u7d1b\u96f0\u6587\u805e\u4e19\u4f75\u5175\u5840\u5e63\u5e73\u5f0a\u67c4\u4e26\u853d\u9589\u965b\u7c73\u9801\u50fb\u58c1\u7656\u78a7\u5225\u77a5\u8511\u7b86\u504f\u5909\u7247\u7bc7\u7de8\u8fba\u8fd4\u904d\u4fbf\u52c9\u5a29\u5f01\u97ad\u4fdd\u8217\u92ea\u5703\u6355\u6b69\u752b\u88dc\u8f14\u7a42\u52df\u5893\u6155\u620a\u66ae\u6bcd\u7c3f\u83e9\u5023\u4ff8\u5305\u5446\u5831\u5949\u5b9d\u5cf0\u5cef\u5d29\u5e96\u62b1\u6367\u653e\u65b9\u670b"],["9640","\u6cd5\u6ce1\u70f9\u7832\u7e2b\u80de\u82b3\u840c\u84ec\u8702\u8912\u8a2a\u8c4a\u90a6\u92d2\u98fd\u9cf3\u9d6c\u4e4f\u4ea1\u508d\u5256\u574a\u59a8\u5e3d\u5fd8\u5fd9\u623f\u66b4\u671b\u67d0\u68d2\u5192\u7d21\u80aa\u81a8\u8b00\u8c8c\u8cbf\u927e\u9632\u5420\u982c\u5317\u50d5\u535c\u58a8\u64b2\u6734\u7267\u7766\u7a46\u91e6\u52c3\u6ca1\u6b86\u5800\u5e4c\u5954\u672c\u7ffb\u51e1\u76c6"],["9680","\u6469\u78e8\u9b54\u9ebb\u57cb\u59b9\u6627\u679a\u6bce\u54e9\u69d9\u5e55\u819c\u6795\u9baa\u67fe\u9c52\u685d\u4ea6\u4fe3\u53c8\u62b9\u672b\u6cab\u8fc4\u4fad\u7e6d\u9ebf\u4e07\u6162\u6e80\u6f2b\u8513\u5473\u672a\u9b45\u5df3\u7b95\u5cac\u5bc6\u871c\u6e4a\u84d1\u7a14\u8108\u5999\u7c8d\u6c11\u7720\u52d9\u5922\u7121\u725f\u77db\u9727\u9d61\u690b\u5a7f\u5a18\u51a5\u540d\u547d\u660e\u76df\u8ff7\u9298\u9cf4\u59ea\u725d\u6ec5\u514d\u68c9\u7dbf\u7dec\u9762\u9eba\u6478\u6a21\u8302\u5984\u5b5f\u6bdb\u731b\u76f2\u7db2\u8017\u8499\u5132\u6728\u9ed9\u76ee\u6762\u52ff\u9905\u5c24\u623b\u7c7e\u8cb0\u554f\u60b6\u7d0b\u9580\u5301\u4e5f\u51b6\u591c\u723a\u8036\u91ce\u5f25\u77e2\u5384\u5f79\u7d04\u85ac\u8a33\u8e8d\u9756\u67f3\u85ae\u9453\u6109\u6108\u6cb9\u7652"],["9740","\u8aed\u8f38\u552f\u4f51\u512a\u52c7\u53cb\u5ba5\u5e7d\u60a0\u6182\u63d6\u6709\u67da\u6e67\u6d8c\u7336\u7337\u7531\u7950\u88d5\u8a98\u904a\u9091\u90f5\u96c4\u878d\u5915\u4e88\u4f59\u4e0e\u8a89\u8f3f\u9810\u50ad\u5e7c\u5996\u5bb9\u5eb8\u63da\u63fa\u64c1\u66dc\u694a\u69d8\u6d0b\u6eb6\u7194\u7528\u7aaf\u7f8a\u8000\u8449\u84c9\u8981\u8b21\u8e0a\u9065\u967d\u990a\u617e\u6291\u6b32"],["9780","\u6c83\u6d74\u7fcc\u7ffc\u6dc0\u7f85\u87ba\u88f8\u6765\u83b1\u983c\u96f7\u6d1b\u7d61\u843d\u916a\u4e71\u5375\u5d50\u6b04\u6feb\u85cd\u862d\u89a7\u5229\u540f\u5c65\u674e\u68a8\u7406\u7483\u75e2\u88cf\u88e1\u91cc\u96e2\u9678\u5f8b\u7387\u7acb\u844e\u63a0\u7565\u5289\u6d41\u6e9c\u7409\u7559\u786b\u7c92\u9686\u7adc\u9f8d\u4fb6\u616e\u65c5\u865c\u4e86\u4eae\u50da\u4e21\u51cc\u5bee\u6599\u6881\u6dbc\u731f\u7642\u77ad\u7a1c\u7ce7\u826f\u8ad2\u907c\u91cf\u9675\u9818\u529b\u7dd1\u502b\u5398\u6797\u6dcb\u71d0\u7433\u81e8\u8f2a\u96a3\u9c57\u9e9f\u7460\u5841\u6d99\u7d2f\u985e\u4ee4\u4f36\u4f8b\u51b7\u52b1\u5dba\u601c\u73b2\u793c\u82d3\u9234\u96b7\u96f6\u970a\u9e97\u9f62\u66a6\u6b74\u5217\u52a3\u70c8\u88c2\u5ec9\u604b\u6190\u6f23\u7149\u7c3e\u7df4\u806f"],["9840","\u84ee\u9023\u932c\u5442\u9b6f\u6ad3\u7089\u8cc2\u8def\u9732\u52b4\u5a41\u5eca\u5f04\u6717\u697c\u6994\u6d6a\u6f0f\u7262\u72fc\u7bed\u8001\u807e\u874b\u90ce\u516d\u9e93\u7984\u808b\u9332\u8ad6\u502d\u548c\u8a71\u6b6a\u8cc4\u8107\u60d1\u67a0\u9df2\u4e99\u4e98\u9c10\u8a6b\u85c1\u8568\u6900\u6e7e\u7897\u8155"],["989f","\u5f0c\u4e10\u4e15\u4e2a\u4e31\u4e36\u4e3c\u4e3f\u4e42\u4e56\u4e58\u4e82\u4e85\u8c6b\u4e8a\u8212\u5f0d\u4e8e\u4e9e\u4e9f\u4ea0\u4ea2\u4eb0\u4eb3\u4eb6\u4ece\u4ecd\u4ec4\u4ec6\u4ec2\u4ed7\u4ede\u4eed\u4edf\u4ef7\u4f09\u4f5a\u4f30\u4f5b\u4f5d\u4f57\u4f47\u4f76\u4f88\u4f8f\u4f98\u4f7b\u4f69\u4f70\u4f91\u4f6f\u4f86\u4f96\u5118\u4fd4\u4fdf\u4fce\u4fd8\u4fdb\u4fd1\u4fda\u4fd0\u4fe4\u4fe5\u501a\u5028\u5014\u502a\u5025\u5005\u4f1c\u4ff6\u5021\u5029\u502c\u4ffe\u4fef\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505a\u5056\u506c\u5078\u5080\u509a\u5085\u50b4\u50b2"],["9940","\u50c9\u50ca\u50b3\u50c2\u50d6\u50de\u50e5\u50ed\u50e3\u50ee\u50f9\u50f5\u5109\u5101\u5102\u5116\u5115\u5114\u511a\u5121\u513a\u5137\u513c\u513b\u513f\u5140\u5152\u514c\u5154\u5162\u7af8\u5169\u516a\u516e\u5180\u5182\u56d8\u518c\u5189\u518f\u5191\u5193\u5195\u5196\u51a4\u51a6\u51a2\u51a9\u51aa\u51ab\u51b3\u51b1\u51b2\u51b0\u51b5\u51bd\u51c5\u51c9\u51db\u51e0\u8655\u51e9\u51ed"],["9980","\u51f0\u51f5\u51fe\u5204\u520b\u5214\u520e\u5227\u522a\u522e\u5233\u5239\u524f\u5244\u524b\u524c\u525e\u5254\u526a\u5274\u5269\u5273\u527f\u527d\u528d\u5294\u5292\u5271\u5288\u5291\u8fa8\u8fa7\u52ac\u52ad\u52bc\u52b5\u52c1\u52cd\u52d7\u52de\u52e3\u52e6\u98ed\u52e0\u52f3\u52f5\u52f8\u52f9\u5306\u5308\u7538\u530d\u5310\u530f\u5315\u531a\u5323\u532f\u5331\u5333\u5338\u5340\u5346\u5345\u4e17\u5349\u534d\u51d6\u535e\u5369\u536e\u5918\u537b\u5377\u5382\u5396\u53a0\u53a6\u53a5\u53ae\u53b0\u53b6\u53c3\u7c12\u96d9\u53df\u66fc\u71ee\u53ee\u53e8\u53ed\u53fa\u5401\u543d\u5440\u542c\u542d\u543c\u542e\u5436\u5429\u541d\u544e\u548f\u5475\u548e\u545f\u5471\u5477\u5470\u5492\u547b\u5480\u5476\u5484\u5490\u5486\u54c7\u54a2\u54b8\u54a5\u54ac\u54c4\u54c8\u54a8"],["9a40","\u54ab\u54c2\u54a4\u54be\u54bc\u54d8\u54e5\u54e6\u550f\u5514\u54fd\u54ee\u54ed\u54fa\u54e2\u5539\u5540\u5563\u554c\u552e\u555c\u5545\u5556\u5557\u5538\u5533\u555d\u5599\u5580\u54af\u558a\u559f\u557b\u557e\u5598\u559e\u55ae\u557c\u5583\u55a9\u5587\u55a8\u55da\u55c5\u55df\u55c4\u55dc\u55e4\u55d4\u5614\u55f7\u5616\u55fe\u55fd\u561b\u55f9\u564e\u5650\u71df\u5634\u5636\u5632\u5638"],["9a80","\u566b\u5664\u562f\u566c\u566a\u5686\u5680\u568a\u56a0\u5694\u568f\u56a5\u56ae\u56b6\u56b4\u56c2\u56bc\u56c1\u56c3\u56c0\u56c8\u56ce\u56d1\u56d3\u56d7\u56ee\u56f9\u5700\u56ff\u5704\u5709\u5708\u570b\u570d\u5713\u5718\u5716\u55c7\u571c\u5726\u5737\u5738\u574e\u573b\u5740\u574f\u5769\u57c0\u5788\u5761\u577f\u5789\u5793\u57a0\u57b3\u57a4\u57aa\u57b0\u57c3\u57c6\u57d4\u57d2\u57d3\u580a\u57d6\u57e3\u580b\u5819\u581d\u5872\u5821\u5862\u584b\u5870\u6bc0\u5852\u583d\u5879\u5885\u58b9\u589f\u58ab\u58ba\u58de\u58bb\u58b8\u58ae\u58c5\u58d3\u58d1\u58d7\u58d9\u58d8\u58e5\u58dc\u58e4\u58df\u58ef\u58fa\u58f9\u58fb\u58fc\u58fd\u5902\u590a\u5910\u591b\u68a6\u5925\u592c\u592d\u5932\u5938\u593e\u7ad2\u5955\u5950\u594e\u595a\u5958\u5962\u5960\u5967\u596c\u5969"],["9b40","\u5978\u5981\u599d\u4f5e\u4fab\u59a3\u59b2\u59c6\u59e8\u59dc\u598d\u59d9\u59da\u5a25\u5a1f\u5a11\u5a1c\u5a09\u5a1a\u5a40\u5a6c\u5a49\u5a35\u5a36\u5a62\u5a6a\u5a9a\u5abc\u5abe\u5acb\u5ac2\u5abd\u5ae3\u5ad7\u5ae6\u5ae9\u5ad6\u5afa\u5afb\u5b0c\u5b0b\u5b16\u5b32\u5ad0\u5b2a\u5b36\u5b3e\u5b43\u5b45\u5b40\u5b51\u5b55\u5b5a\u5b5b\u5b65\u5b69\u5b70\u5b73\u5b75\u5b78\u6588\u5b7a\u5b80"],["9b80","\u5b83\u5ba6\u5bb8\u5bc3\u5bc7\u5bc9\u5bd4\u5bd0\u5be4\u5be6\u5be2\u5bde\u5be5\u5beb\u5bf0\u5bf6\u5bf3\u5c05\u5c07\u5c08\u5c0d\u5c13\u5c20\u5c22\u5c28\u5c38\u5c39\u5c41\u5c46\u5c4e\u5c53\u5c50\u5c4f\u5b71\u5c6c\u5c6e\u4e62\u5c76\u5c79\u5c8c\u5c91\u5c94\u599b\u5cab\u5cbb\u5cb6\u5cbc\u5cb7\u5cc5\u5cbe\u5cc7\u5cd9\u5ce9\u5cfd\u5cfa\u5ced\u5d8c\u5cea\u5d0b\u5d15\u5d17\u5d5c\u5d1f\u5d1b\u5d11\u5d14\u5d22\u5d1a\u5d19\u5d18\u5d4c\u5d52\u5d4e\u5d4b\u5d6c\u5d73\u5d76\u5d87\u5d84\u5d82\u5da2\u5d9d\u5dac\u5dae\u5dbd\u5d90\u5db7\u5dbc\u5dc9\u5dcd\u5dd3\u5dd2\u5dd6\u5ddb\u5deb\u5df2\u5df5\u5e0b\u5e1a\u5e19\u5e11\u5e1b\u5e36\u5e37\u5e44\u5e43\u5e40\u5e4e\u5e57\u5e54\u5e5f\u5e62\u5e64\u5e47\u5e75\u5e76\u5e7a\u9ebc\u5e7f\u5ea0\u5ec1\u5ec2\u5ec8\u5ed0\u5ecf"],["9c40","\u5ed6\u5ee3\u5edd\u5eda\u5edb\u5ee2\u5ee1\u5ee8\u5ee9\u5eec\u5ef1\u5ef3\u5ef0\u5ef4\u5ef8\u5efe\u5f03\u5f09\u5f5d\u5f5c\u5f0b\u5f11\u5f16\u5f29\u5f2d\u5f38\u5f41\u5f48\u5f4c\u5f4e\u5f2f\u5f51\u5f56\u5f57\u5f59\u5f61\u5f6d\u5f73\u5f77\u5f83\u5f82\u5f7f\u5f8a\u5f88\u5f91\u5f87\u5f9e\u5f99\u5f98\u5fa0\u5fa8\u5fad\u5fbc\u5fd6\u5ffb\u5fe4\u5ff8\u5ff1\u5fdd\u60b3\u5fff\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600e\u6031\u601b\u6015\u602b\u6026\u600f\u603a\u605a\u6041\u606a\u6077\u605f\u604a\u6046\u604d\u6063\u6043\u6064\u6042\u606c\u606b\u6059\u6081\u608d\u60e7\u6083\u609a\u6084\u609b\u6096\u6097\u6092\u60a7\u608b\u60e1\u60b8\u60e0\u60d3\u60b4\u5ff0\u60bd\u60c6\u60b5\u60d8\u614d\u6115\u6106\u60f6\u60f7\u6100\u60f4\u60fa\u6103\u6121\u60fb\u60f1\u610d\u610e\u6147\u613e\u6128\u6127\u614a\u613f\u613c\u612c\u6134\u613d\u6142\u6144\u6173\u6177\u6158\u6159\u615a\u616b\u6174\u616f\u6165\u6171\u615f\u615d\u6153\u6175\u6199\u6196\u6187\u61ac\u6194\u619a\u618a\u6191\u61ab\u61ae\u61cc\u61ca\u61c9\u61f7\u61c8\u61c3\u61c6\u61ba\u61cb\u7f79\u61cd\u61e6\u61e3\u61f6\u61fa\u61f4\u61ff\u61fd\u61fc\u61fe\u6200\u6208\u6209\u620d\u620c\u6214\u621b"],["9d40","\u621e\u6221\u622a\u622e\u6230\u6232\u6233\u6241\u624e\u625e\u6263\u625b\u6260\u6268\u627c\u6282\u6289\u627e\u6292\u6293\u6296\u62d4\u6283\u6294\u62d7\u62d1\u62bb\u62cf\u62ff\u62c6\u64d4\u62c8\u62dc\u62cc\u62ca\u62c2\u62c7\u629b\u62c9\u630c\u62ee\u62f1\u6327\u6302\u6308\u62ef\u62f5\u6350\u633e\u634d\u641c\u634f\u6396\u638e\u6380\u63ab\u6376\u63a3\u638f\u6389\u639f\u63b5\u636b"],["9d80","\u6369\u63be\u63e9\u63c0\u63c6\u63e3\u63c9\u63d2\u63f6\u63c4\u6416\u6434\u6406\u6413\u6426\u6436\u651d\u6417\u6428\u640f\u6467\u646f\u6476\u644e\u652a\u6495\u6493\u64a5\u64a9\u6488\u64bc\u64da\u64d2\u64c5\u64c7\u64bb\u64d8\u64c2\u64f1\u64e7\u8209\u64e0\u64e1\u62ac\u64e3\u64ef\u652c\u64f6\u64f4\u64f2\u64fa\u6500\u64fd\u6518\u651c\u6505\u6524\u6523\u652b\u6534\u6535\u6537\u6536\u6538\u754b\u6548\u6556\u6555\u654d\u6558\u655e\u655d\u6572\u6578\u6582\u6583\u8b8a\u659b\u659f\u65ab\u65b7\u65c3\u65c6\u65c1\u65c4\u65cc\u65d2\u65db\u65d9\u65e0\u65e1\u65f1\u6772\u660a\u6603\u65fb\u6773\u6635\u6636\u6634\u661c\u664f\u6644\u6649\u6641\u665e\u665d\u6664\u6667\u6668\u665f\u6662\u6670\u6683\u6688\u668e\u6689\u6684\u6698\u669d\u66c1\u66b9\u66c9\u66be\u66bc"],["9e40","\u66c4\u66b8\u66d6\u66da\u66e0\u663f\u66e6\u66e9\u66f0\u66f5\u66f7\u670f\u6716\u671e\u6726\u6727\u9738\u672e\u673f\u6736\u6741\u6738\u6737\u6746\u675e\u6760\u6759\u6763\u6764\u6789\u6770\u67a9\u677c\u676a\u678c\u678b\u67a6\u67a1\u6785\u67b7\u67ef\u67b4\u67ec\u67b3\u67e9\u67b8\u67e4\u67de\u67dd\u67e2\u67ee\u67b9\u67ce\u67c6\u67e7\u6a9c\u681e\u6846\u6829\u6840\u684d\u6832\u684e"],["9e80","\u68b3\u682b\u6859\u6863\u6877\u687f\u689f\u688f\u68ad\u6894\u689d\u689b\u6883\u6aae\u68b9\u6874\u68b5\u68a0\u68ba\u690f\u688d\u687e\u6901\u68ca\u6908\u68d8\u6922\u6926\u68e1\u690c\u68cd\u68d4\u68e7\u68d5\u6936\u6912\u6904\u68d7\u68e3\u6925\u68f9\u68e0\u68ef\u6928\u692a\u691a\u6923\u6921\u68c6\u6979\u6977\u695c\u6978\u696b\u6954\u697e\u696e\u6939\u6974\u693d\u6959\u6930\u6961\u695e\u695d\u6981\u696a\u69b2\u69ae\u69d0\u69bf\u69c1\u69d3\u69be\u69ce\u5be8\u69ca\u69dd\u69bb\u69c3\u69a7\u6a2e\u6991\u69a0\u699c\u6995\u69b4\u69de\u69e8\u6a02\u6a1b\u69ff\u6b0a\u69f9\u69f2\u69e7\u6a05\u69b1\u6a1e\u69ed\u6a14\u69eb\u6a0a\u6a12\u6ac1\u6a23\u6a13\u6a44\u6a0c\u6a72\u6a36\u6a78\u6a47\u6a62\u6a59\u6a66\u6a48\u6a38\u6a22\u6a90\u6a8d\u6aa0\u6a84\u6aa2\u6aa3"],["9f40","\u6a97\u8617\u6abb\u6ac3\u6ac2\u6ab8\u6ab3\u6aac\u6ade\u6ad1\u6adf\u6aaa\u6ada\u6aea\u6afb\u6b05\u8616\u6afa\u6b12\u6b16\u9b31\u6b1f\u6b38\u6b37\u76dc\u6b39\u98ee\u6b47\u6b43\u6b49\u6b50\u6b59\u6b54\u6b5b\u6b5f\u6b61\u6b78\u6b79\u6b7f\u6b80\u6b84\u6b83\u6b8d\u6b98\u6b95\u6b9e\u6ba4\u6baa\u6bab\u6baf\u6bb2\u6bb1\u6bb3\u6bb7\u6bbc\u6bc6\u6bcb\u6bd3\u6bdf\u6bec\u6beb\u6bf3\u6bef"],["9f80","\u9ebe\u6c08\u6c13\u6c14\u6c1b\u6c24\u6c23\u6c5e\u6c55\u6c62\u6c6a\u6c82\u6c8d\u6c9a\u6c81\u6c9b\u6c7e\u6c68\u6c73\u6c92\u6c90\u6cc4\u6cf1\u6cd3\u6cbd\u6cd7\u6cc5\u6cdd\u6cae\u6cb1\u6cbe\u6cba\u6cdb\u6cef\u6cd9\u6cea\u6d1f\u884d\u6d36\u6d2b\u6d3d\u6d38\u6d19\u6d35\u6d33\u6d12\u6d0c\u6d63\u6d93\u6d64\u6d5a\u6d79\u6d59\u6d8e\u6d95\u6fe4\u6d85\u6df9\u6e15\u6e0a\u6db5\u6dc7\u6de6\u6db8\u6dc6\u6dec\u6dde\u6dcc\u6de8\u6dd2\u6dc5\u6dfa\u6dd9\u6de4\u6dd5\u6dea\u6dee\u6e2d\u6e6e\u6e2e\u6e19\u6e72\u6e5f\u6e3e\u6e23\u6e6b\u6e2b\u6e76\u6e4d\u6e1f\u6e43\u6e3a\u6e4e\u6e24\u6eff\u6e1d\u6e38\u6e82\u6eaa\u6e98\u6ec9\u6eb7\u6ed3\u6ebd\u6eaf\u6ec4\u6eb2\u6ed4\u6ed5\u6e8f\u6ea5\u6ec2\u6e9f\u6f41\u6f11\u704c\u6eec\u6ef8\u6efe\u6f3f\u6ef2\u6f31\u6eef\u6f32\u6ecc"],["e040","\u6f3e\u6f13\u6ef7\u6f86\u6f7a\u6f78\u6f81\u6f80\u6f6f\u6f5b\u6ff3\u6f6d\u6f82\u6f7c\u6f58\u6f8e\u6f91\u6fc2\u6f66\u6fb3\u6fa3\u6fa1\u6fa4\u6fb9\u6fc6\u6faa\u6fdf\u6fd5\u6fec\u6fd4\u6fd8\u6ff1\u6fee\u6fdb\u7009\u700b\u6ffa\u7011\u7001\u700f\u6ffe\u701b\u701a\u6f74\u701d\u7018\u701f\u7030\u703e\u7032\u7051\u7063\u7099\u7092\u70af\u70f1\u70ac\u70b8\u70b3\u70ae\u70df\u70cb\u70dd"],["e080","\u70d9\u7109\u70fd\u711c\u7119\u7165\u7155\u7188\u7166\u7162\u714c\u7156\u716c\u718f\u71fb\u7184\u7195\u71a8\u71ac\u71d7\u71b9\u71be\u71d2\u71c9\u71d4\u71ce\u71e0\u71ec\u71e7\u71f5\u71fc\u71f9\u71ff\u720d\u7210\u721b\u7228\u722d\u722c\u7230\u7232\u723b\u723c\u723f\u7240\u7246\u724b\u7258\u7274\u727e\u7282\u7281\u7287\u7292\u7296\u72a2\u72a7\u72b9\u72b2\u72c3\u72c6\u72c4\u72ce\u72d2\u72e2\u72e0\u72e1\u72f9\u72f7\u500f\u7317\u730a\u731c\u7316\u731d\u7334\u732f\u7329\u7325\u733e\u734e\u734f\u9ed8\u7357\u736a\u7368\u7370\u7378\u7375\u737b\u737a\u73c8\u73b3\u73ce\u73bb\u73c0\u73e5\u73ee\u73de\u74a2\u7405\u746f\u7425\u73f8\u7432\u743a\u7455\u743f\u745f\u7459\u7441\u745c\u7469\u7470\u7463\u746a\u7476\u747e\u748b\u749e\u74a7\u74ca\u74cf\u74d4\u73f1"],["e140","\u74e0\u74e3\u74e7\u74e9\u74ee\u74f2\u74f0\u74f1\u74f8\u74f7\u7504\u7503\u7505\u750c\u750e\u750d\u7515\u7513\u751e\u7526\u752c\u753c\u7544\u754d\u754a\u7549\u755b\u7546\u755a\u7569\u7564\u7567\u756b\u756d\u7578\u7576\u7586\u7587\u7574\u758a\u7589\u7582\u7594\u759a\u759d\u75a5\u75a3\u75c2\u75b3\u75c3\u75b5\u75bd\u75b8\u75bc\u75b1\u75cd\u75ca\u75d2\u75d9\u75e3\u75de\u75fe\u75ff"],["e180","\u75fc\u7601\u75f0\u75fa\u75f2\u75f3\u760b\u760d\u7609\u761f\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763b\u7647\u7648\u7646\u765c\u7658\u7661\u7662\u7668\u7669\u766a\u7667\u766c\u7670\u7672\u7676\u7678\u767c\u7680\u7683\u7688\u768b\u768e\u7696\u7693\u7699\u769a\u76b0\u76b4\u76b8\u76b9\u76ba\u76c2\u76cd\u76d6\u76d2\u76de\u76e1\u76e5\u76e7\u76ea\u862f\u76fb\u7708\u7707\u7704\u7729\u7724\u771e\u7725\u7726\u771b\u7737\u7738\u7747\u775a\u7768\u776b\u775b\u7765\u777f\u777e\u7779\u778e\u778b\u7791\u77a0\u779e\u77b0\u77b6\u77b9\u77bf\u77bc\u77bd\u77bb\u77c7\u77cd\u77d7\u77da\u77dc\u77e3\u77ee\u77fc\u780c\u7812\u7926\u7820\u792a\u7845\u788e\u7874\u7886\u787c\u789a\u788c\u78a3\u78b5\u78aa\u78af\u78d1\u78c6\u78cb\u78d4\u78be\u78bc\u78c5\u78ca\u78ec"],["e240","\u78e7\u78da\u78fd\u78f4\u7907\u7912\u7911\u7919\u792c\u792b\u7940\u7960\u7957\u795f\u795a\u7955\u7953\u797a\u797f\u798a\u799d\u79a7\u9f4b\u79aa\u79ae\u79b3\u79b9\u79ba\u79c9\u79d5\u79e7\u79ec\u79e1\u79e3\u7a08\u7a0d\u7a18\u7a19\u7a20\u7a1f\u7980\u7a31\u7a3b\u7a3e\u7a37\u7a43\u7a57\u7a49\u7a61\u7a62\u7a69\u9f9d\u7a70\u7a79\u7a7d\u7a88\u7a97\u7a95\u7a98\u7a96\u7aa9\u7ac8\u7ab0"],["e280","\u7ab6\u7ac5\u7ac4\u7abf\u9083\u7ac7\u7aca\u7acd\u7acf\u7ad5\u7ad3\u7ad9\u7ada\u7add\u7ae1\u7ae2\u7ae6\u7aed\u7af0\u7b02\u7b0f\u7b0a\u7b06\u7b33\u7b18\u7b19\u7b1e\u7b35\u7b28\u7b36\u7b50\u7b7a\u7b04\u7b4d\u7b0b\u7b4c\u7b45\u7b75\u7b65\u7b74\u7b67\u7b70\u7b71\u7b6c\u7b6e\u7b9d\u7b98\u7b9f\u7b8d\u7b9c\u7b9a\u7b8b\u7b92\u7b8f\u7b5d\u7b99\u7bcb\u7bc1\u7bcc\u7bcf\u7bb4\u7bc6\u7bdd\u7be9\u7c11\u7c14\u7be6\u7be5\u7c60\u7c00\u7c07\u7c13\u7bf3\u7bf7\u7c17\u7c0d\u7bf6\u7c23\u7c27\u7c2a\u7c1f\u7c37\u7c2b\u7c3d\u7c4c\u7c43\u7c54\u7c4f\u7c40\u7c50\u7c58\u7c5f\u7c64\u7c56\u7c65\u7c6c\u7c75\u7c83\u7c90\u7ca4\u7cad\u7ca2\u7cab\u7ca1\u7ca8\u7cb3\u7cb2\u7cb1\u7cae\u7cb9\u7cbd\u7cc0\u7cc5\u7cc2\u7cd8\u7cd2\u7cdc\u7ce2\u9b3b\u7cef\u7cf2\u7cf4\u7cf6\u7cfa\u7d06"],["e340","\u7d02\u7d1c\u7d15\u7d0a\u7d45\u7d4b\u7d2e\u7d32\u7d3f\u7d35\u7d46\u7d73\u7d56\u7d4e\u7d72\u7d68\u7d6e\u7d4f\u7d63\u7d93\u7d89\u7d5b\u7d8f\u7d7d\u7d9b\u7dba\u7dae\u7da3\u7db5\u7dc7\u7dbd\u7dab\u7e3d\u7da2\u7daf\u7ddc\u7db8\u7d9f\u7db0\u7dd8\u7ddd\u7de4\u7dde\u7dfb\u7df2\u7de1\u7e05\u7e0a\u7e23\u7e21\u7e12\u7e31\u7e1f\u7e09\u7e0b\u7e22\u7e46\u7e66\u7e3b\u7e35\u7e39\u7e43\u7e37"],["e380","\u7e32\u7e3a\u7e67\u7e5d\u7e56\u7e5e\u7e59\u7e5a\u7e79\u7e6a\u7e69\u7e7c\u7e7b\u7e83\u7dd5\u7e7d\u8fae\u7e7f\u7e88\u7e89\u7e8c\u7e92\u7e90\u7e93\u7e94\u7e96\u7e8e\u7e9b\u7e9c\u7f38\u7f3a\u7f45\u7f4c\u7f4d\u7f4e\u7f50\u7f51\u7f55\u7f54\u7f58\u7f5f\u7f60\u7f68\u7f69\u7f67\u7f78\u7f82\u7f86\u7f83\u7f88\u7f87\u7f8c\u7f94\u7f9e\u7f9d\u7f9a\u7fa3\u7faf\u7fb2\u7fb9\u7fae\u7fb6\u7fb8\u8b71\u7fc5\u7fc6\u7fca\u7fd5\u7fd4\u7fe1\u7fe6\u7fe9\u7ff3\u7ff9\u98dc\u8006\u8004\u800b\u8012\u8018\u8019\u801c\u8021\u8028\u803f\u803b\u804a\u8046\u8052\u8058\u805a\u805f\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807d\u807f\u8084\u8086\u8085\u809b\u8093\u809a\u80ad\u5190\u80ac\u80db\u80e5\u80d9\u80dd\u80c4\u80da\u80d6\u8109\u80ef\u80f1\u811b\u8129\u8123\u812f\u814b"],["e440","\u968b\u8146\u813e\u8153\u8151\u80fc\u8171\u816e\u8165\u8166\u8174\u8183\u8188\u818a\u8180\u8182\u81a0\u8195\u81a4\u81a3\u815f\u8193\u81a9\u81b0\u81b5\u81be\u81b8\u81bd\u81c0\u81c2\u81ba\u81c9\u81cd\u81d1\u81d9\u81d8\u81c8\u81da\u81df\u81e0\u81e7\u81fa\u81fb\u81fe\u8201\u8202\u8205\u8207\u820a\u820d\u8210\u8216\u8229\u822b\u8238\u8233\u8240\u8259\u8258\u825d\u825a\u825f\u8264"],["e480","\u8262\u8268\u826a\u826b\u822e\u8271\u8277\u8278\u827e\u828d\u8292\u82ab\u829f\u82bb\u82ac\u82e1\u82e3\u82df\u82d2\u82f4\u82f3\u82fa\u8393\u8303\u82fb\u82f9\u82de\u8306\u82dc\u8309\u82d9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832f\u832b\u8317\u8318\u8385\u839a\u83aa\u839f\u83a2\u8396\u8323\u838e\u8387\u838a\u837c\u83b5\u8373\u8375\u83a0\u8389\u83a8\u83f4\u8413\u83eb\u83ce\u83fd\u8403\u83d8\u840b\u83c1\u83f7\u8407\u83e0\u83f2\u840d\u8422\u8420\u83bd\u8438\u8506\u83fb\u846d\u842a\u843c\u855a\u8484\u8477\u846b\u84ad\u846e\u8482\u8469\u8446\u842c\u846f\u8479\u8435\u84ca\u8462\u84b9\u84bf\u849f\u84d9\u84cd\u84bb\u84da\u84d0\u84c1\u84c6\u84d6\u84a1\u8521\u84ff\u84f4\u8517\u8518\u852c\u851f\u8515\u8514\u84fc\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854b\u8555\u8580\u85a4\u8588\u8591\u858a\u85a8\u856d\u8594\u859b\u85ea\u8587\u859c\u8577\u857e\u8590\u85c9\u85ba\u85cf\u85b9\u85d0\u85d5\u85dd\u85e5\u85dc\u85f9\u860a\u8613\u860b\u85fe\u85fa\u8606\u8622\u861a\u8630\u863f\u864d\u4e55\u8654\u865f\u8667\u8671\u8693\u86a3\u86a9\u86aa\u868b\u868c\u86b6\u86af\u86c4\u86c6\u86b0\u86c9\u8823\u86ab\u86d4\u86de\u86e9\u86ec"],["e580","\u86df\u86db\u86ef\u8712\u8706\u8708\u8700\u8703\u86fb\u8711\u8709\u870d\u86f9\u870a\u8734\u873f\u8737\u873b\u8725\u8729\u871a\u8760\u875f\u8778\u874c\u874e\u8774\u8757\u8768\u876e\u8759\u8753\u8763\u876a\u8805\u87a2\u879f\u8782\u87af\u87cb\u87bd\u87c0\u87d0\u96d6\u87ab\u87c4\u87b3\u87c7\u87c6\u87bb\u87ef\u87f2\u87e0\u880f\u880d\u87fe\u87f6\u87f7\u880e\u87d2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883b\u8844\u8842\u8852\u8859\u885e\u8862\u886b\u8881\u887e\u889e\u8875\u887d\u88b5\u8872\u8882\u8897\u8892\u88ae\u8899\u88a2\u888d\u88a4\u88b0\u88bf\u88b1\u88c3\u88c4\u88d4\u88d8\u88d9\u88dd\u88f9\u8902\u88fc\u88f4\u88e8\u88f2\u8904\u890c\u890a\u8913\u8943\u891e\u8925\u892a\u892b\u8941\u8944\u893b\u8936\u8938\u894c\u891d\u8960\u895e"],["e640","\u8966\u8964\u896d\u896a\u896f\u8974\u8977\u897e\u8983\u8988\u898a\u8993\u8998\u89a1\u89a9\u89a6\u89ac\u89af\u89b2\u89ba\u89bd\u89bf\u89c0\u89da\u89dc\u89dd\u89e7\u89f4\u89f8\u8a03\u8a16\u8a10\u8a0c\u8a1b\u8a1d\u8a25\u8a36\u8a41\u8a5b\u8a52\u8a46\u8a48\u8a7c\u8a6d\u8a6c\u8a62\u8a85\u8a82\u8a84\u8aa8\u8aa1\u8a91\u8aa5\u8aa6\u8a9a\u8aa3\u8ac4\u8acd\u8ac2\u8ada\u8aeb\u8af3\u8ae7"],["e680","\u8ae4\u8af1\u8b14\u8ae0\u8ae2\u8af7\u8ade\u8adb\u8b0c\u8b07\u8b1a\u8ae1\u8b16\u8b10\u8b17\u8b20\u8b33\u97ab\u8b26\u8b2b\u8b3e\u8b28\u8b41\u8b4c\u8b4f\u8b4e\u8b49\u8b56\u8b5b\u8b5a\u8b6b\u8b5f\u8b6c\u8b6f\u8b74\u8b7d\u8b80\u8b8c\u8b8e\u8b92\u8b93\u8b96\u8b99\u8b9a\u8c3a\u8c41\u8c3f\u8c48\u8c4c\u8c4e\u8c50\u8c55\u8c62\u8c6c\u8c78\u8c7a\u8c82\u8c89\u8c85\u8c8a\u8c8d\u8c8e\u8c94\u8c7c\u8c98\u621d\u8cad\u8caa\u8cbd\u8cb2\u8cb3\u8cae\u8cb6\u8cc8\u8cc1\u8ce4\u8ce3\u8cda\u8cfd\u8cfa\u8cfb\u8d04\u8d05\u8d0a\u8d07\u8d0f\u8d0d\u8d10\u9f4e\u8d13\u8ccd\u8d14\u8d16\u8d67\u8d6d\u8d71\u8d73\u8d81\u8d99\u8dc2\u8dbe\u8dba\u8dcf\u8dda\u8dd6\u8dcc\u8ddb\u8dcb\u8dea\u8deb\u8ddf\u8de3\u8dfc\u8e08\u8e09\u8dff\u8e1d\u8e1e\u8e10\u8e1f\u8e42\u8e35\u8e30\u8e34\u8e4a"],["e740","\u8e47\u8e49\u8e4c\u8e50\u8e48\u8e59\u8e64\u8e60\u8e2a\u8e63\u8e55\u8e76\u8e72\u8e7c\u8e81\u8e87\u8e85\u8e84\u8e8b\u8e8a\u8e93\u8e91\u8e94\u8e99\u8eaa\u8ea1\u8eac\u8eb0\u8ec6\u8eb1\u8ebe\u8ec5\u8ec8\u8ecb\u8edb\u8ee3\u8efc\u8efb\u8eeb\u8efe\u8f0a\u8f05\u8f15\u8f12\u8f19\u8f13\u8f1c\u8f1f\u8f1b\u8f0c\u8f26\u8f33\u8f3b\u8f39\u8f45\u8f42\u8f3e\u8f4c\u8f49\u8f46\u8f4e\u8f57\u8f5c"],["e780","\u8f62\u8f63\u8f64\u8f9c\u8f9f\u8fa3\u8fad\u8faf\u8fb7\u8fda\u8fe5\u8fe2\u8fea\u8fef\u9087\u8ff4\u9005\u8ff9\u8ffa\u9011\u9015\u9021\u900d\u901e\u9016\u900b\u9027\u9036\u9035\u9039\u8ff8\u904f\u9050\u9051\u9052\u900e\u9049\u903e\u9056\u9058\u905e\u9068\u906f\u9076\u96a8\u9072\u9082\u907d\u9081\u9080\u908a\u9089\u908f\u90a8\u90af\u90b1\u90b5\u90e2\u90e4\u6248\u90db\u9102\u9112\u9119\u9132\u9130\u914a\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918b\u9189\u9182\u91a2\u91ab\u91af\u91aa\u91b5\u91b4\u91ba\u91c0\u91c1\u91c9\u91cb\u91d0\u91d6\u91df\u91e1\u91db\u91fc\u91f5\u91f6\u921e\u91ff\u9214\u922c\u9215\u9211\u925e\u9257\u9245\u9249\u9264\u9248\u9295\u923f\u924b\u9250\u929c\u9296\u9293\u929b\u925a\u92cf\u92b9\u92b7\u92e9\u930f\u92fa\u9344\u932e"],["e840","\u9319\u9322\u931a\u9323\u933a\u9335\u933b\u935c\u9360\u937c\u936e\u9356\u93b0\u93ac\u93ad\u9394\u93b9\u93d6\u93d7\u93e8\u93e5\u93d8\u93c3\u93dd\u93d0\u93c8\u93e4\u941a\u9414\u9413\u9403\u9407\u9410\u9436\u942b\u9435\u9421\u943a\u9441\u9452\u9444\u945b\u9460\u9462\u945e\u946a\u9229\u9470\u9475\u9477\u947d\u945a\u947c\u947e\u9481\u947f\u9582\u9587\u958a\u9594\u9596\u9598\u9599"],["e880","\u95a0\u95a8\u95a7\u95ad\u95bc\u95bb\u95b9\u95be\u95ca\u6ff6\u95c3\u95cd\u95cc\u95d5\u95d4\u95d6\u95dc\u95e1\u95e5\u95e2\u9621\u9628\u962e\u962f\u9642\u964c\u964f\u964b\u9677\u965c\u965e\u965d\u965f\u9666\u9672\u966c\u968d\u9698\u9695\u9697\u96aa\u96a7\u96b1\u96b2\u96b0\u96b4\u96b6\u96b8\u96b9\u96ce\u96cb\u96c9\u96cd\u894d\u96dc\u970d\u96d5\u96f9\u9704\u9706\u9708\u9713\u970e\u9711\u970f\u9716\u9719\u9724\u972a\u9730\u9739\u973d\u973e\u9744\u9746\u9748\u9742\u9749\u975c\u9760\u9764\u9766\u9768\u52d2\u976b\u9771\u9779\u9785\u977c\u9781\u977a\u9786\u978b\u978f\u9790\u979c\u97a8\u97a6\u97a3\u97b3\u97b4\u97c3\u97c6\u97c8\u97cb\u97dc\u97ed\u9f4f\u97f2\u7adf\u97f6\u97f5\u980f\u980c\u9838\u9824\u9821\u9837\u983d\u9846\u984f\u984b\u986b\u986f\u9870"],["e940","\u9871\u9874\u9873\u98aa\u98af\u98b1\u98b6\u98c4\u98c3\u98c6\u98e9\u98eb\u9903\u9909\u9912\u9914\u9918\u9921\u991d\u991e\u9924\u9920\u992c\u992e\u993d\u993e\u9942\u9949\u9945\u9950\u994b\u9951\u9952\u994c\u9955\u9997\u9998\u99a5\u99ad\u99ae\u99bc\u99df\u99db\u99dd\u99d8\u99d1\u99ed\u99ee\u99f1\u99f2\u99fb\u99f8\u9a01\u9a0f\u9a05\u99e2\u9a19\u9a2b\u9a37\u9a45\u9a42\u9a40\u9a43"],["e980","\u9a3e\u9a55\u9a4d\u9a5b\u9a57\u9a5f\u9a62\u9a65\u9a64\u9a69\u9a6b\u9a6a\u9aad\u9ab0\u9abc\u9ac0\u9acf\u9ad1\u9ad3\u9ad4\u9ade\u9adf\u9ae2\u9ae3\u9ae6\u9aef\u9aeb\u9aee\u9af4\u9af1\u9af7\u9afb\u9b06\u9b18\u9b1a\u9b1f\u9b22\u9b23\u9b25\u9b27\u9b28\u9b29\u9b2a\u9b2e\u9b2f\u9b32\u9b44\u9b43\u9b4f\u9b4d\u9b4e\u9b51\u9b58\u9b74\u9b93\u9b83\u9b91\u9b96\u9b97\u9b9f\u9ba0\u9ba8\u9bb4\u9bc0\u9bca\u9bb9\u9bc6\u9bcf\u9bd1\u9bd2\u9be3\u9be2\u9be4\u9bd4\u9be1\u9c3a\u9bf2\u9bf1\u9bf0\u9c15\u9c14\u9c09\u9c13\u9c0c\u9c06\u9c08\u9c12\u9c0a\u9c04\u9c2e\u9c1b\u9c25\u9c24\u9c21\u9c30\u9c47\u9c32\u9c46\u9c3e\u9c5a\u9c60\u9c67\u9c76\u9c78\u9ce7\u9cec\u9cf0\u9d09\u9d08\u9ceb\u9d03\u9d06\u9d2a\u9d26\u9daf\u9d23\u9d1f\u9d44\u9d15\u9d12\u9d41\u9d3f\u9d3e\u9d46\u9d48"],["ea40","\u9d5d\u9d5e\u9d64\u9d51\u9d50\u9d59\u9d72\u9d89\u9d87\u9dab\u9d6f\u9d7a\u9d9a\u9da4\u9da9\u9db2\u9dc4\u9dc1\u9dbb\u9db8\u9dba\u9dc6\u9dcf\u9dc2\u9dd9\u9dd3\u9df8\u9de6\u9ded\u9def\u9dfd\u9e1a\u9e1b\u9e1e\u9e75\u9e79\u9e7d\u9e81\u9e88\u9e8b\u9e8c\u9e92\u9e95\u9e91\u9e9d\u9ea5\u9ea9\u9eb8\u9eaa\u9ead\u9761\u9ecc\u9ece\u9ecf\u9ed0\u9ed4\u9edc\u9ede\u9edd\u9ee0\u9ee5\u9ee8\u9eef"],["ea80","\u9ef4\u9ef6\u9ef7\u9ef9\u9efb\u9efc\u9efd\u9f07\u9f08\u76b7\u9f15\u9f21\u9f2c\u9f3e\u9f4a\u9f52\u9f54\u9f63\u9f5f\u9f60\u9f61\u9f66\u9f67\u9f6c\u9f6a\u9f77\u9f72\u9f76\u9f95\u9f9c\u9fa0\u582f\u69c7\u9059\u7464\u51dc\u7199"],["ed40","\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f"],["ed80","\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1"],["ee40","\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559"],["ee80","\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"],["eeef","\u2170",9,"\uffe2\uffe4\uff07\uff02"],["f040","\ue000",62],["f080","\ue03f",124],["f140","\ue0bc",62],["f180","\ue0fb",124],["f240","\ue178",62],["f280","\ue1b7",124],["f340","\ue234",62],["f380","\ue273",124],["f440","\ue2f0",62],["f480","\ue32f",124],["f540","\ue3ac",62],["f580","\ue3eb",124],["f640","\ue468",62],["f680","\ue4a7",124],["f740","\ue524",62],["f780","\ue563",124],["f840","\ue5e0",62],["f880","\ue61f",124],["f940","\ue69c"],["fa40","\u2170",9,"\u2160",9,"\uffe2\uffe4\uff07\uff02\u3231\u2116\u2121\u2235\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a"],["fa80","\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f"],["fb40","\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19"],["fb80","\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9"],["fc40","\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"]]')},40715:function(T,e,l){var v=l(38486);T.exports=v("navigator","userAgent")||""},41201:function(T){T.exports=function(l){return l&&"object"==typeof l&&"function"==typeof l.copy&&"function"==typeof l.fill&&"function"==typeof l.readUInt8}},41584:function(T,e,l){var v=l(56475),h=l(72864),f=l(71156);v({target:"Array",proto:!0},{fill:h}),f("fill")},41613:function(T,e,l){var v=l(14598).Buffer,h=function(){"use strict";function f(x,k,Q,I){"object"==typeof k&&(Q=k.depth,I=k.prototype,k=k.circular);var S=[],R=[],z=typeof v<"u";return typeof k>"u"&&(k=!0),typeof Q>"u"&&(Q=1/0),function q(Z,H){if(null===Z)return null;if(0==H)return Z;var G,W;if("object"!=typeof Z)return Z;if(f.__isArray(Z))G=[];else if(f.__isRegExp(Z))G=new RegExp(Z.source,D(Z)),Z.lastIndex&&(G.lastIndex=Z.lastIndex);else if(f.__isDate(Z))G=new Date(Z.getTime());else{if(z&&v.isBuffer(Z))return G=v.allocUnsafe?v.allocUnsafe(Z.length):new v(Z.length),Z.copy(G),G;typeof I>"u"?(W=Object.getPrototypeOf(Z),G=Object.create(W)):(G=Object.create(I),W=I)}if(k){var te=S.indexOf(Z);if(-1!=te)return R[te];S.push(Z),R.push(G)}for(var P in Z){var J;W&&(J=Object.getOwnPropertyDescriptor(W,P)),(!J||null!=J.set)&&(G[P]=q(Z[P],H-1))}return G}(x,Q)}function _(x){return Object.prototype.toString.call(x)}function D(x){var k="";return x.global&&(k+="g"),x.ignoreCase&&(k+="i"),x.multiline&&(k+="m"),k}return f.clonePrototype=function(k){if(null===k)return null;var Q=function(){};return Q.prototype=k,new Q},f.__objToStr=_,f.__isDate=function b(x){return"object"==typeof x&&"[object Date]"===_(x)},f.__isArray=function y(x){return"object"==typeof x&&"[object Array]"===_(x)},f.__isRegExp=function M(x){return"object"==typeof x&&"[object RegExp]"===_(x)},f.__getRegExpFlags=D,f}();T.exports&&(T.exports=h)},41731:function(T,e,l){var h=l(40715).match(/AppleWebKit\/(\d+)\./);T.exports=!!h&&+h[1]},42075:function(T,e,l){l(94910),l(81755),l(14032),l(68067),l(77074),l(44455),l(80986),l(58281);var v=l(11206);T.exports=v.Promise},42210:function(T,e){function l(v,h){this.offset=v,this.nbits=h}e.kBlockLengthPrefixCode=[new l(1,2),new l(5,2),new l(9,2),new l(13,2),new l(17,3),new l(25,3),new l(33,3),new l(41,3),new l(49,4),new l(65,4),new l(81,4),new l(97,4),new l(113,5),new l(145,5),new l(177,5),new l(209,5),new l(241,6),new l(305,6),new l(369,7),new l(497,8),new l(753,9),new l(1265,10),new l(2289,11),new l(4337,12),new l(8433,13),new l(16625,24)],e.kInsertLengthPrefixCode=[new l(0,0),new l(1,0),new l(2,0),new l(3,0),new l(4,0),new l(5,0),new l(6,1),new l(8,1),new l(10,2),new l(14,2),new l(18,3),new l(26,3),new l(34,4),new l(50,4),new l(66,5),new l(98,5),new l(130,6),new l(194,7),new l(322,8),new l(578,9),new l(1090,10),new l(2114,12),new l(6210,14),new l(22594,24)],e.kCopyLengthPrefixCode=[new l(2,0),new l(3,0),new l(4,0),new l(5,0),new l(6,0),new l(7,0),new l(8,0),new l(9,0),new l(10,1),new l(12,1),new l(14,2),new l(18,2),new l(22,3),new l(30,3),new l(38,4),new l(54,4),new l(70,5),new l(102,5),new l(134,6),new l(198,7),new l(326,8),new l(582,9),new l(1094,10),new l(2118,24)],e.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],e.kCopyRangeLut=[0,8,0,8,16,0,16,8,16]},42437:function(T,e,l){var v=l(32010),h=l(23327),f=l(67797),_=l(82938),b=l(48914),y=function(D){if(D&&D.forEach!==_)try{b(D,"forEach",_)}catch{D.forEach=_}};for(var M in h)h[M]&&y(v[M]&&v[M].prototype);y(f)},42526:function(T,e,l){"use strict";var v=l(11548),h=l(76442),f=l(77530),_=l(91867).isString,b=l(91867).isNumber,y=l(91867).isObject,M=l(91867).isArray,D=l(91867).fontStringify,x=l(91867).getNodeId,k=l(91867).pack,Q=l(72155);function I(d,S,R,z,q,Z,H){this.textTools=new v(d),this.styleStack=new h(S,R),this.imageMeasure=z,this.svgMeasure=q,this.tableLayouts=Z,this.images=H,this.autoImageIndex=1}I.prototype.measureDocument=function(d){return this.measureNode(d)},I.prototype.measureNode=function(d){var S=this;return this.styleStack.auto(d,function(){if(d._margin=function z(){function q(P,J){return P.marginLeft||P.marginTop||P.marginRight||P.marginBottom?[P.marginLeft||J[0]||0,P.marginTop||J[1]||0,P.marginRight||J[2]||0,P.marginBottom||J[3]||0]:J}function Z(P){for(var J={},j=P.length-1;j>=0;j--){var he=S.styleStack.styleDictionary[P[j]];for(var oe in he)he.hasOwnProperty(oe)&&(J[oe]=he[oe])}return J}function H(P){return b(P)?P=[P,P,P,P]:M(P)&&2===P.length&&(P=[P[0],P[1],P[0],P[1]]),P}var G=[void 0,void 0,void 0,void 0];if(d.style){var te=Z(M(d.style)?d.style:[d.style]);te&&(G=q(te,G)),te.margin&&(G=H(te.margin))}return G=q(d,G),d.margin&&(G=H(d.margin)),void 0===G[0]&&void 0===G[1]&&void 0===G[2]&&void 0===G[3]?null:G}(),d.columns)return R(S.measureColumns(d));if(d.stack)return R(S.measureVerticalContainer(d));if(d.ul)return R(S.measureUnorderedList(d));if(d.ol)return R(S.measureOrderedList(d));if(d.table)return R(S.measureTable(d));if(void 0!==d.text)return R(S.measureLeaf(d));if(d.toc)return R(S.measureToc(d));if(d.image)return R(S.measureImage(d));if(d.svg)return R(S.measureSVG(d));if(d.canvas)return R(S.measureCanvas(d));if(d.qr)return R(S.measureQr(d));throw"Unrecognized document structure: "+JSON.stringify(d,D)});function R(q){var Z=q._margin;return Z&&(q._minWidth+=Z[0]+Z[2],q._maxWidth+=Z[0]+Z[2]),q}},I.prototype.convertIfBase64Image=function(d){if(/^data:image\/(jpeg|jpg|png);base64,/.test(d.image)){var S="$$pdfmake$$"+this.autoImageIndex++;this.images[S]=d.image,d.image=S}},I.prototype.measureImageWithDimensions=function(d,S){if(d.fit){var R=S.width/S.height>d.fit[0]/d.fit[1]?d.fit[0]/S.width:d.fit[1]/S.height;d._width=d._minWidth=d._maxWidth=S.width*R,d._height=S.height*R}else d.cover?(d._width=d._minWidth=d._maxWidth=d.cover.width,d._height=d._minHeight=d._maxHeight=d.cover.height):(d._width=d._minWidth=d._maxWidth=d.width||S.width,d._height=d.height||S.height*d._width/S.width,b(d.maxWidth)&&d.maxWidthd._width&&(d._width=d._minWidth=d._maxWidth=d.minWidth,d._height=d._width*S.height/S.width),b(d.minHeight)&&d.minHeight>d._height&&(d._height=d.minHeight,d._width=d._minWidth=d._maxWidth=d._height*S.width/S.height));d._alignment=this.styleStack.getProperty("alignment")},I.prototype.measureImage=function(d){this.images&&this.convertIfBase64Image(d);var S=this.imageMeasure.measureImage(d.image);return this.measureImageWithDimensions(d,S),d},I.prototype.measureSVG=function(d){var S=this.svgMeasure.measureSVG(d.svg);return this.measureImageWithDimensions(d,S),d.font=this.styleStack.getProperty("font"),d.svg=this.svgMeasure.writeDimensions(d.svg,{width:d._width,height:d._height}),d},I.prototype.measureLeaf=function(d){d._textRef&&d._textRef._textNodeRef.text&&(d.text=d._textRef._textNodeRef.text);var S=this.styleStack.clone();S.push(d);var R=this.textTools.buildInlines(d.text,S);return d._inlines=R.items,d._minWidth=R.minWidth,d._maxWidth=R.maxWidth,d},I.prototype.measureToc=function(d){if(d.toc.title&&(d.toc.title=this.measureNode(d.toc.title)),d.toc._items.length>0){for(var S=[],R=d.toc.textStyle||{},z=d.toc.numberStyle||R,q=d.toc.textMargin||[0,0,0,0],Z=0,H=d.toc._items.length;Z=26?J((j/26>>0)-1):"")+"abcdefghijklmnopqrstuvwxyz"[j%26>>0]}(P-1)}function Z(P){if(P<1||P>4999)return P.toString();var he,J=P,j={M:1e3,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1},re="";for(he in j)for(;J>=j[he];)re+=he,J-=j[he];return re}var G;switch(R){case"none":G=null;break;case"upper-alpha":G=q(d).toUpperCase();break;case"lower-alpha":G=q(d);break;case"upper-roman":G=Z(d);break;case"lower-roman":G=Z(d).toLowerCase();break;default:G=function H(P){return P.toString()}(d)}if(null===G)return{};z&&(M(z)?(z[0]&&(G=z[0]+G),z[1]&&(G+=z[1]),G+=" "):G+=z+" ");var W={text:G},te=S.getProperty("markerColor");return te&&(W.color=te),{_inlines:this.textTools.buildInlines(W,S).items}},I.prototype.measureUnorderedList=function(d){var S=this.styleStack.clone(),R=d.ul;d.type=d.type||"disc",d._gapSize=this.gapSizeForList(),d._minWidth=0,d._maxWidth=0;for(var z=0,q=R.length;z0?S.length-1:0;return d._minWidth=q.min+d._gap*Z,d._maxWidth=q.max+d._gap*Z,d},I.prototype.measureTable=function(d){(function me(ze){if(ze.table.widths||(ze.table.widths="auto"),_(ze.table.widths))for(ze.table.widths=[ze.table.widths];ze.table.widths.length1?(oe(G,R,W.colSpan),S.push({col:R,span:W.colSpan,minWidth:W._minWidth,maxWidth:W._maxWidth})):(H._minWidth=Math.max(H._minWidth,W._minWidth),H._maxWidth=Math.max(H._maxWidth,W._maxWidth))),W.rowSpan&&W.rowSpan>1&&Ce(d.table,z,R,W.rowSpan)}}!function re(){for(var ze,_e,Ae=0,ve=S.length;Ae0)for(ze=ae/ye.span,_e=0;_e0)for(ze=Ee/ye.span,_e=0;_e>5==6?2:Z>>4==14?3:Z>>3==30?4:Z>>6==2?-1:-2}function x(Z){var H=this.lastTotal-this.lastNeed,G=function D(Z,H,G){if(128!=(192&H[0]))return Z.lastNeed=0,"\ufffd";if(Z.lastNeed>1&&H.length>1){if(128!=(192&H[1]))return Z.lastNeed=1,"\ufffd";if(Z.lastNeed>2&&H.length>2&&128!=(192&H[2]))return Z.lastNeed=2,"\ufffd"}}(this,Z);return void 0!==G?G:this.lastNeed<=Z.length?(Z.copy(this.lastChar,H,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(Z.copy(this.lastChar,H,0,Z.length),void(this.lastNeed-=Z.length))}function I(Z,H){if((Z.length-H)%2==0){var G=Z.toString("utf16le",H);if(G){var W=G.charCodeAt(G.length-1);if(W>=55296&&W<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=Z[Z.length-2],this.lastChar[1]=Z[Z.length-1],G.slice(0,-1)}return G}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=Z[Z.length-1],Z.toString("utf16le",H,Z.length-1)}function d(Z){var H=Z&&Z.length?this.write(Z):"";return this.lastNeed?H+this.lastChar.toString("utf16le",0,this.lastTotal-this.lastNeed):H}function S(Z,H){var G=(Z.length-H)%3;return 0===G?Z.toString("base64",H):(this.lastNeed=3-G,this.lastTotal=3,1===G?this.lastChar[0]=Z[Z.length-1]:(this.lastChar[0]=Z[Z.length-2],this.lastChar[1]=Z[Z.length-1]),Z.toString("base64",H,Z.length-G))}function R(Z){var H=Z&&Z.length?this.write(Z):"";return this.lastNeed?H+this.lastChar.toString("base64",0,3-this.lastNeed):H}function z(Z){return Z.toString(this.encoding)}function q(Z){return Z&&Z.length?this.write(Z):""}e.I=b,b.prototype.write=function(Z){if(0===Z.length)return"";var H,G;if(this.lastNeed){if(void 0===(H=this.fillLast(Z)))return"";G=this.lastNeed,this.lastNeed=0}else G=0;return G=0?(te>0&&(Z.lastNeed=te-1),te):--W=0?(te>0&&(Z.lastNeed=te-2),te):--W=0?(te>0&&(2===te?te=0:Z.lastNeed=te-3),te):0}(this,Z,H);if(!this.lastNeed)return Z.toString("utf8",H);this.lastTotal=G;var W=Z.length-(G-this.lastNeed);return Z.copy(this.lastChar,0,W),Z.toString("utf8",H,W)},b.prototype.fillLast=function(Z){if(this.lastNeed<=Z.length)return Z.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);Z.copy(this.lastChar,this.lastTotal-this.lastNeed,0,Z.length),this.lastNeed-=Z.length}},43162:function(T,e,l){var v=l(32010),h=l(83943),f=v.Object;T.exports=function(_){return f(h(_))}},43187:function(T){T.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},43267:function(T){"use strict";T.exports=JSON.parse('[["8740","\u43f0\u4c32\u4603\u45a6\u4578\u{27267}\u4d77\u45b3\u{27cb1}\u4ce2\u{27cc5}\u3b95\u4736\u4744\u4c47\u4c40\u{242bf}\u{23617}\u{27352}\u{26e8b}\u{270d2}\u4c57\u{2a351}\u474f\u45da\u4c85\u{27c6c}\u4d07\u4aa4\u46a1\u{26b23}\u7225\u{25a54}\u{21a63}\u{23e06}\u{23f61}\u664d\u56fb"],["8767","\u7d95\u591d\u{28bb9}\u3df4\u9734\u{27bef}\u5bdb\u{21d5e}\u5aa4\u3625\u{29eb0}\u5ad1\u5bb7\u5cfc\u676e\u8593\u{29945}\u7461\u749d\u3875\u{21d53}\u{2369e}\u{26021}\u3eec"],["87a1","\u{258de}\u3af5\u7afc\u9f97\u{24161}\u{2890d}\u{231ea}\u{20a8a}\u{2325e}\u430a\u8484\u9f96\u942f\u4930\u8613\u5896\u974a\u9218\u79d0\u7a32\u6660\u6a29\u889d\u744c\u7bc5\u6782\u7a2c\u524f\u9046\u34e6\u73c4\u{25db9}\u74c6\u9fc7\u57b3\u492f\u544c\u4131\u{2368e}\u5818\u7a72\u{27b65}\u8b8f\u46ae\u{26e88}\u4181\u{25d99}\u7bae\u{224bc}\u9fc8\u{224c1}\u{224c9}\u{224cc}\u9fc9\u8504\u{235bb}\u40b4\u9fca\u44e1\u{2adff}\u62c1\u706e\u9fcb"],["8840","\u31c0",4,"\u{2010c}\u31c5\u{200d1}\u{200cd}\u31c6\u31c7\u{200cb}\u{21fe8}\u31c8\u{200ca}\u31c9\u31ca\u31cb\u31cc\u{2010e}\u31cd\u31ce\u0100\xc1\u01cd\xc0\u0112\xc9\u011a\xc8\u014c\xd3\u01d1\xd2\u0fff\xca\u0304\u1ebe\u0fff\xca\u030c\u1ec0\xca\u0101\xe1\u01ce\xe0\u0251\u0113\xe9\u011b\xe8\u012b\xed\u01d0\xec\u014d\xf3\u01d2\xf2\u016b\xfa\u01d4\xf9\u01d6\u01d8\u01da"],["88a1","\u01dc\xfc\u0fff\xea\u0304\u1ebf\u0fff\xea\u030c\u1ec1\xea\u0261\u23da\u23db"],["8940","\u{2a3a9}\u{21145}"],["8943","\u650a"],["8946","\u4e3d\u6edd\u9d4e\u91df"],["894c","\u{27735}\u6491\u4f1a\u4f28\u4fa8\u5156\u5174\u519c\u51e4\u52a1\u52a8\u533b\u534e\u53d1\u53d8\u56e2\u58f0\u5904\u5907\u5932\u5934\u5b66\u5b9e\u5b9f\u5c9a\u5e86\u603b\u6589\u67fe\u6804\u6865\u6d4e\u70bc\u7535\u7ea4\u7eac\u7eba\u7ec7\u7ecf\u7edf\u7f06\u7f37\u827a\u82cf\u836f\u89c6\u8bbe\u8be2\u8f66\u8f67\u8f6e"],["89a1","\u7411\u7cfc\u7dcd\u6946\u7ac9\u5227"],["89ab","\u918c\u78b8\u915e\u80bc"],["89b0","\u8d0b\u80f6\u{209e7}"],["89b5","\u809f\u9ec7\u4ccd\u9dc9\u9e0c\u4c3e\u{29df6}\u{2700e}\u9e0a\u{2a133}\u35c1"],["89c1","\u6e9a\u823e\u7519"],["89c5","\u4911\u9a6c\u9a8f\u9f99\u7987\u{2846c}\u{21dca}\u{205d0}\u{22ae6}\u4e24\u4e81\u4e80\u4e87\u4ebf\u4eeb\u4f37\u344c\u4fbd\u3e48\u5003\u5088\u347d\u3493\u34a5\u5186\u5905\u51db\u51fc\u5205\u4e89\u5279\u5290\u5327\u35c7\u53a9\u3551\u53b0\u3553\u53c2\u5423\u356d\u3572\u3681\u5493\u54a3\u54b4\u54b9\u54d0\u54ef\u5518\u5523\u5528\u3598\u553f\u35a5\u35bf\u55d7\u35c5"],["8a40","\u{27d84}\u5525"],["8a43","\u{20c42}\u{20d15}\u{2512b}\u5590\u{22cc6}\u39ec\u{20341}\u8e46\u{24db8}\u{294e5}\u4053\u{280be}\u777a\u{22c38}\u3a34\u47d5\u{2815d}\u{269f2}\u{24dea}\u64dd\u{20d7c}\u{20fb4}\u{20cd5}\u{210f4}\u648d\u8e7e\u{20e96}\u{20c0b}\u{20f64}\u{22ca9}\u{28256}\u{244d3}"],["8a64","\u{20d46}\u{29a4d}\u{280e9}\u47f4\u{24ea7}\u{22cc2}\u9ab2\u3a67\u{295f4}\u3fed\u3506\u{252c7}\u{297d4}\u{278c8}\u{22d44}\u9d6e\u9815"],["8a76","\u43d9\u{260a5}\u64b4\u54e3\u{22d4c}\u{22bca}\u{21077}\u39fb\u{2106f}"],["8aa1","\u{266da}\u{26716}\u{279a0}\u64ea\u{25052}\u{20c43}\u8e68\u{221a1}\u{28b4c}\u{20731}"],["8aac","\u480b\u{201a9}\u3ffa\u5873\u{22d8d}"],["8ab2","\u{245c8}\u{204fc}\u{26097}\u{20f4c}\u{20d96}\u5579\u40bb\u43ba"],["8abb","\u4ab4\u{22a66}\u{2109d}\u81aa\u98f5\u{20d9c}\u6379\u39fe\u{22775}\u8dc0\u56a1\u647c\u3e43"],["8ac9","\u{2a601}\u{20e09}\u{22acf}\u{22cc9}"],["8ace","\u{210c8}\u{239c2}\u3992\u3a06\u{2829b}\u3578\u{25e49}\u{220c7}\u5652\u{20f31}\u{22cb2}\u{29720}\u34bc\u6c3d\u{24e3b}"],["8adf","\u{27574}\u{22e8b}\u{22208}\u{2a65b}\u{28ccd}\u{20e7a}\u{20c34}\u{2681c}\u7f93\u{210cf}\u{22803}\u{22939}\u35fb\u{251e3}\u{20e8c}\u{20f8d}\u{20eaa}\u3f93\u{20f30}\u{20d47}\u{2114f}\u{20e4c}"],["8af6","\u{20eab}\u{20ba9}\u{20d48}\u{210c0}\u{2113d}\u3ff9\u{22696}\u6432\u{20fad}"],["8b40","\u{233f4}\u{27639}\u{22bce}\u{20d7e}\u{20d7f}\u{22c51}\u{22c55}\u3a18\u{20e98}\u{210c7}\u{20f2e}\u{2a632}\u{26b50}\u{28cd2}\u{28d99}\u{28cca}\u95aa\u54cc\u82c4\u55b9"],["8b55","\u{29ec3}\u9c26\u9ab6\u{2775e}\u{22dee}\u7140\u816d\u80ec\u5c1c\u{26572}\u8134\u3797\u535f\u{280bd}\u91b6\u{20efa}\u{20e0f}\u{20e77}\u{20efb}\u35dd\u{24deb}\u3609\u{20cd6}\u56af\u{227b5}\u{210c9}\u{20e10}\u{20e78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20e79}\u{24e50}\u{22da4}\u5a54\u{2101d}\u{2101e}\u{210f5}\u{210f6}\u579c\u{20e11}"],["8ba1","\u{27694}\u{282cd}\u{20fb5}\u{20e7b}\u{2517e}\u3703\u{20fb6}\u{21180}\u{252d8}\u{2a2bd}\u{249da}\u{2183a}\u{24177}\u{2827c}\u5899\u5268\u361a\u{2573d}\u7bb2\u5b68\u4800\u4b2c\u9f27\u49e7\u9c1f\u9b8d\u{25b74}\u{2313d}\u55fb\u35f2\u5689\u4e28\u5902\u{21bc1}\u{2f878}\u9751\u{20086}\u4e5b\u4ebb\u353e\u5c23\u5f51\u5fc4\u38fa\u624c\u6535\u6b7a\u6c35\u6c3a\u706c\u722b\u4e2c\u72ad\u{248e9}\u7f52\u793b\u7cf9\u7f53\u{2626a}\u34c1"],["8bde","\u{2634b}\u8002\u8080\u{26612}\u{26951}\u535d\u8864\u89c1\u{278b2}\u8ba0\u8d1d\u9485\u9578\u957f\u95e8\u{28e0f}\u97e6\u9875\u98ce\u98de\u9963\u{29810}\u9c7c\u9e1f\u9ec4\u6b6f\uf907\u4e37\u{20087}\u961d\u6237\u94a2"],["8c40","\u503b\u6dfe\u{29c73}\u9fa6\u3dc9\u888f\u{2414e}\u7077\u5cf5\u4b20\u{251cd}\u3559\u{25d30}\u6122\u{28a32}\u8fa7\u91f6\u7191\u6719\u73ba\u{23281}\u{2a107}\u3c8b\u{21980}\u4b10\u78e4\u7402\u51ae\u{2870f}\u4009\u6a63\u{2a2ba}\u4223\u860f\u{20a6f}\u7a2a\u{29947}\u{28aea}\u9755\u704d\u5324\u{2207e}\u93f4\u76d9\u{289e3}\u9fa7\u77dd\u4ea3\u4ff0\u50bc\u4e2f\u4f17\u9fa8\u5434\u7d8b\u5892\u58d0\u{21db6}\u5e92\u5e99\u5fc2\u{22712}\u658b"],["8ca1","\u{233f9}\u6919\u6a43\u{23c63}\u6cff"],["8ca7","\u7200\u{24505}\u738c\u3edb\u{24a13}\u5b15\u74b9\u8b83\u{25ca4}\u{25695}\u7a93\u7bec\u7cc3\u7e6c\u82f8\u8597\u9fa9\u8890\u9faa\u8eb9\u9fab\u8fcf\u855f\u99e0\u9221\u9fac\u{28db9}\u{2143f}\u4071\u42a2\u5a1a"],["8cc9","\u9868\u676b\u4276\u573d"],["8cce","\u85d6\u{2497b}\u82bf\u{2710d}\u4c81\u{26d74}\u5d7b\u{26b15}\u{26fbe}\u9fad\u9fae\u5b96\u9faf\u66e7\u7e5b\u6e57\u79ca\u3d88\u44c3\u{23256}\u{22796}\u439a\u4536"],["8ce6","\u5cd5\u{23b1a}\u8af9\u5c78\u3d12\u{23551}\u5d78\u9fb2\u7157\u4558\u{240ec}\u{21e23}\u4c77\u3978\u344a\u{201a4}\u{26c41}\u8acc\u4fb4\u{20239}\u59bf\u816c\u9856\u{298fa}\u5f3b"],["8d40","\u{20b9f}"],["8d42","\u{221c1}\u{2896d}\u4102\u46bb\u{29079}\u3f07\u9fb3\u{2a1b5}\u40f8\u37d6\u46f7\u{26c46}\u417c\u{286b2}\u{273ff}\u456d\u38d4\u{2549a}\u4561\u451b\u4d89\u4c7b\u4d76\u45ea\u3fc8\u{24b0f}\u3661\u44de\u44bd\u41ed\u5d3e\u5d48\u5d56\u3dfc\u380f\u5da4\u5db9\u3820\u3838\u5e42\u5ebd\u5f25\u5f83\u3908\u3914\u393f\u394d\u60d7\u613d\u5ce5\u3989\u61b7\u61b9\u61cf\u39b8\u622c\u6290\u62e5\u6318\u39f8\u56b1"],["8da1","\u3a03\u63e2\u63fb\u6407\u645a\u3a4b\u64c0\u5d15\u5621\u9f9f\u3a97\u6586\u3abd\u65ff\u6653\u3af2\u6692\u3b22\u6716\u3b42\u67a4\u6800\u3b58\u684a\u6884\u3b72\u3b71\u3b7b\u6909\u6943\u725c\u6964\u699f\u6985\u3bbc\u69d6\u3bdd\u6a65\u6a74\u6a71\u6a82\u3bec\u6a99\u3bf2\u6aab\u6ab5\u6ad4\u6af6\u6b81\u6bc1\u6bea\u6c75\u6caa\u3ccb\u6d02\u6d06\u6d26\u6d81\u3cef\u6da4\u6db1\u6e15\u6e18\u6e29\u6e86\u{289c0}\u6ebb\u6ee2\u6eda\u9f7f\u6ee8\u6ee9\u6f24\u6f34\u3d46\u{23f41}\u6f81\u6fbe\u3d6a\u3d75\u71b7\u5c99\u3d8a\u702c\u3d91\u7050\u7054\u706f\u707f\u7089\u{20325}\u43c1\u35f1\u{20ed8}"],["8e40","\u{23ed7}\u57be\u{26ed3}\u713e\u{257e0}\u364e\u69a2\u{28be9}\u5b74\u7a49\u{258e1}\u{294d9}\u7a65\u7a7d\u{259ac}\u7abb\u7ab0\u7ac2\u7ac3\u71d1\u{2648d}\u41ca\u7ada\u7add\u7aea\u41ef\u54b2\u{25c01}\u7b0b\u7b55\u7b29\u{2530e}\u{25cfe}\u7ba2\u7b6f\u839c\u{25bb4}\u{26c7f}\u7bd0\u8421\u7b92\u7bb8\u{25d20}\u3dad\u{25c65}\u8492\u7bfa\u7c06\u7c35\u{25cc1}\u7c44\u7c83\u{24882}\u7ca6\u667d\u{24578}\u7cc9\u7cc7\u7ce6\u7c74\u7cf3\u7cf5\u7cce"],["8ea1","\u7e67\u451d\u{26e44}\u7d5d\u{26ed6}\u748d\u7d89\u7dab\u7135\u7db3\u7dd2\u{24057}\u{26029}\u7de4\u3d13\u7df5\u{217f9}\u7de5\u{2836d}\u7e1d\u{26121}\u{2615a}\u7e6e\u7e92\u432b\u946c\u7e27\u7f40\u7f41\u7f47\u7936\u{262d0}\u99e1\u7f97\u{26351}\u7fa3\u{21661}\u{20068}\u455c\u{23766}\u4503\u{2833a}\u7ffa\u{26489}\u8005\u8008\u801d\u8028\u802f\u{2a087}\u{26cc3}\u803b\u803c\u8061\u{22714}\u4989\u{26626}\u{23de3}\u{266e8}\u6725\u80a7\u{28a48}\u8107\u811a\u58b0\u{226f6}\u6c7f\u{26498}\u{24fb8}\u64e7\u{2148a}\u8218\u{2185e}\u6a53\u{24a65}\u{24a95}\u447a\u8229\u{20b0d}\u{26a52}\u{23d7e}\u4ff9\u{214fd}\u84e2\u8362\u{26b0a}\u{249a7}\u{23530}\u{21773}\u{23df8}\u82aa\u691b\u{2f994}\u41db"],["8f40","\u854b\u82d0\u831a\u{20e16}\u{217b4}\u36c1\u{2317d}\u{2355a}\u827b\u82e2\u8318\u{23e8b}\u{26da3}\u{26b05}\u{26b97}\u{235ce}\u3dbf\u831d\u55ec\u8385\u450b\u{26da5}\u83ac\u83c1\u83d3\u347e\u{26ed4}\u6a57\u855a\u3496\u{26e42}\u{22eef}\u8458\u{25be4}\u8471\u3dd3\u44e4\u6aa7\u844a\u{23cb5}\u7958\u84a8\u{26b96}\u{26e77}\u{26e43}\u84de\u840f\u8391\u44a0\u8493\u84e4\u{25c91}\u4240\u{25cc0}\u4543\u8534\u5af2\u{26e99}\u4527\u8573\u4516\u67bf\u8616"],["8fa1","\u{28625}\u{2863b}\u85c1\u{27088}\u8602\u{21582}\u{270cd}\u{2f9b2}\u456a\u8628\u3648\u{218a2}\u53f7\u{2739a}\u867e\u8771\u{2a0f8}\u87ee\u{22c27}\u87b1\u87da\u880f\u5661\u866c\u6856\u460f\u8845\u8846\u{275e0}\u{23db9}\u{275e4}\u885e\u889c\u465b\u88b4\u88b5\u63c1\u88c5\u7777\u{2770f}\u8987\u898a\u89a6\u89a9\u89a7\u89bc\u{28a25}\u89e7\u{27924}\u{27abd}\u8a9c\u7793\u91fe\u8a90\u{27a59}\u7ae9\u{27b3a}\u{23f8f}\u4713\u{27b38}\u717c\u8b0c\u8b1f\u{25430}\u{25565}\u8b3f\u8b4c\u8b4d\u8aa9\u{24a7a}\u8b90\u8b9b\u8aaf\u{216df}\u4615\u884f\u8c9b\u{27d54}\u{27d8f}\u{2f9d4}\u3725\u{27d53}\u8cd6\u{27d98}\u{27dbd}\u8d12\u8d03\u{21910}\u8cdb\u705c\u8d11\u{24cc9}\u3ed0\u8d77"],["9040","\u8da9\u{28002}\u{21014}\u{2498a}\u3b7c\u{281bc}\u{2710c}\u7ae7\u8ead\u8eb6\u8ec3\u92d4\u8f19\u8f2d\u{28365}\u{28412}\u8fa5\u9303\u{2a29f}\u{20a50}\u8fb3\u492a\u{289de}\u{2853d}\u{23dbb}\u5ef8\u{23262}\u8ff9\u{2a014}\u{286bc}\u{28501}\u{22325}\u3980\u{26ed7}\u9037\u{2853c}\u{27abe}\u9061\u{2856c}\u{2860b}\u90a8\u{28713}\u90c4\u{286e6}\u90ae\u90fd\u9167\u3af0\u91a9\u91c4\u7cac\u{28933}\u{21e89}\u920e\u6c9f\u9241\u9262\u{255b9}\u92b9\u{28ac6}\u{23c9b}\u{28b0c}\u{255db}"],["90a1","\u{20d31}\u932c\u936b\u{28ae1}\u{28beb}\u708f\u5ac3\u{28ae2}\u{28ae5}\u4965\u9244\u{28bec}\u{28c39}\u{28bff}\u9373\u945b\u8ebc\u9585\u95a6\u9426\u95a0\u6ff6\u42b9\u{2267a}\u{286d8}\u{2127c}\u{23e2e}\u49df\u6c1c\u967b\u9696\u416c\u96a3\u{26ed5}\u61da\u96b6\u78f5\u{28ae0}\u96bd\u53cc\u49a1\u{26cb8}\u{20274}\u{26410}\u{290af}\u{290e5}\u{24ad1}\u{21915}\u{2330a}\u9731\u8642\u9736\u4a0f\u453d\u4585\u{24ae9}\u7075\u5b41\u971b\u975c\u{291d5}\u9757\u5b4a\u{291eb}\u975f\u9425\u50d0\u{230b7}\u{230bc}\u9789\u979f\u97b1\u97be\u97c0\u97d2\u97e0\u{2546c}\u97ee\u741c\u{29433}\u97ff\u97f5\u{2941d}\u{2797a}\u4ad1\u9834\u9833\u984b\u9866\u3b0e\u{27175}\u3d51\u{20630}\u{2415c}"],["9140","\u{25706}\u98ca\u98b7\u98c8\u98c7\u4aff\u{26d27}\u{216d3}\u55b0\u98e1\u98e6\u98ec\u9378\u9939\u{24a29}\u4b72\u{29857}\u{29905}\u99f5\u9a0c\u9a3b\u9a10\u9a58\u{25725}\u36c4\u{290b1}\u{29bd5}\u9ae0\u9ae2\u{29b05}\u9af4\u4c0e\u9b14\u9b2d\u{28600}\u5034\u9b34\u{269a8}\u38c3\u{2307d}\u9b50\u9b40\u{29d3e}\u5a45\u{21863}\u9b8e\u{2424b}\u9c02\u9bff\u9c0c\u{29e68}\u9dd4\u{29fb7}\u{2a192}\u{2a1ab}\u{2a0e1}\u{2a123}\u{2a1df}\u9d7e\u9d83\u{2a134}\u9e0e\u6888"],["91a1","\u9dc4\u{2215b}\u{2a193}\u{2a220}\u{2193b}\u{2a233}\u9d39\u{2a0b9}\u{2a2b4}\u9e90\u9e95\u9e9e\u9ea2\u4d34\u9eaa\u9eaf\u{24364}\u9ec1\u3b60\u39e5\u3d1d\u4f32\u37be\u{28c2b}\u9f02\u9f08\u4b96\u9424\u{26da2}\u9f17\u9f16\u9f39\u569f\u568a\u9f45\u99b8\u{2908b}\u97f2\u847f\u9f62\u9f69\u7adc\u9f8e\u7216\u4bbe\u{24975}\u{249bb}\u7177\u{249f8}\u{24348}\u{24a51}\u739e\u{28bda}\u{218fa}\u799f\u{2897e}\u{28e36}\u9369\u93f3\u{28a44}\u92ec\u9381\u93cb\u{2896c}\u{244b9}\u7217\u3eeb\u7772\u7a43\u70d0\u{24473}\u{243f8}\u717e\u{217ef}\u70a3\u{218be}\u{23599}\u3ec7\u{21885}\u{2542f}\u{217f8}\u3722\u{216fb}\u{21839}\u36e1\u{21774}\u{218d1}\u{25f4b}\u3723\u{216c0}\u575b\u{24a25}\u{213fe}\u{212a8}"],["9240","\u{213c6}\u{214b6}\u8503\u{236a6}\u8503\u8455\u{24994}\u{27165}\u{23e31}\u{2555c}\u{23efb}\u{27052}\u44f4\u{236ee}\u{2999d}\u{26f26}\u67f9\u3733\u3c15\u3de7\u586c\u{21922}\u6810\u4057\u{2373f}\u{240e1}\u{2408b}\u{2410f}\u{26c21}\u54cb\u569e\u{266b1}\u5692\u{20fdf}\u{20ba8}\u{20e0d}\u93c6\u{28b13}\u939c\u4ef8\u512b\u3819\u{24436}\u4ebc\u{20465}\u{2037f}\u4f4b\u4f8a\u{25651}\u5a68\u{201ab}\u{203cb}\u3999\u{2030a}\u{20414}\u3435\u4f29\u{202c0}\u{28eb3}\u{20275}\u8ada\u{2020c}\u4e98"],["92a1","\u50cd\u510d\u4fa2\u4f03\u{24a0e}\u{23e8a}\u4f42\u502e\u506c\u5081\u4fcc\u4fe5\u5058\u50fc\u5159\u515b\u515d\u515e\u6e76\u{23595}\u{23e39}\u{23ebf}\u6d72\u{21884}\u{23e89}\u51a8\u51c3\u{205e0}\u44dd\u{204a3}\u{20492}\u{20491}\u8d7a\u{28a9c}\u{2070e}\u5259\u52a4\u{20873}\u52e1\u936e\u467a\u718c\u{2438c}\u{20c20}\u{249ac}\u{210e4}\u69d1\u{20e1d}\u7479\u3ede\u7499\u7414\u7456\u7398\u4b8e\u{24abc}\u{2408d}\u53d0\u3584\u720f\u{240c9}\u55b4\u{20345}\u54cd\u{20bc6}\u571d\u925d\u96f4\u9366\u57dd\u578d\u577f\u363e\u58cb\u5a99\u{28a46}\u{216fa}\u{2176f}\u{21710}\u5a2c\u59b8\u928f\u5a7e\u5acf\u5a12\u{25946}\u{219f3}\u{21861}\u{24295}\u36f5\u6d05\u7443\u5a21\u{25e83}"],["9340","\u5a81\u{28bd7}\u{20413}\u93e0\u748c\u{21303}\u7105\u4972\u9408\u{289fb}\u93bd\u37a0\u5c1e\u5c9e\u5e5e\u5e48\u{21996}\u{2197c}\u{23aee}\u5ecd\u5b4f\u{21903}\u{21904}\u3701\u{218a0}\u36dd\u{216fe}\u36d3\u812a\u{28a47}\u{21dba}\u{23472}\u{289a8}\u5f0c\u5f0e\u{21927}\u{217ab}\u5a6b\u{2173b}\u5b44\u8614\u{275fd}\u8860\u607e\u{22860}\u{2262b}\u5fdb\u3eb8\u{225af}\u{225be}\u{29088}\u{26f73}\u61c0\u{2003e}\u{20046}\u{2261b}\u6199\u6198\u6075\u{22c9b}\u{22d07}\u{246d4}\u{2914d}"],["93a1","\u6471\u{24665}\u{22b6a}\u3a29\u{22b22}\u{23450}\u{298ea}\u{22e78}\u6337\u{2a45b}\u64b6\u6331\u63d1\u{249e3}\u{22d67}\u62a4\u{22ca1}\u643b\u656b\u6972\u3bf4\u{2308e}\u{232ad}\u{24989}\u{232ab}\u550d\u{232e0}\u{218d9}\u{2943f}\u66ce\u{23289}\u{231b3}\u3ae0\u4190\u{25584}\u{28b22}\u{2558f}\u{216fc}\u{2555b}\u{25425}\u78ee\u{23103}\u{2182a}\u{23234}\u3464\u{2320f}\u{23182}\u{242c9}\u668e\u{26d24}\u666b\u4b93\u6630\u{27870}\u{21deb}\u6663\u{232d2}\u{232e1}\u661e\u{25872}\u38d1\u{2383a}\u{237bc}\u3b99\u{237a2}\u{233fe}\u74d0\u3b96\u678f\u{2462a}\u68b6\u681e\u3bc4\u6abe\u3863\u{237d5}\u{24487}\u6a33\u6a52\u6ac9\u6b05\u{21912}\u6511\u6898\u6a4c\u3bd7\u6a7a\u6b57\u{23fc0}\u{23c9a}\u93a0\u92f2\u{28bea}\u{28acb}"],["9440","\u9289\u{2801e}\u{289dc}\u9467\u6da5\u6f0b\u{249ec}\u6d67\u{23f7f}\u3d8f\u6e04\u{2403c}\u5a3d\u6e0a\u5847\u6d24\u7842\u713b\u{2431a}\u{24276}\u70f1\u7250\u7287\u7294\u{2478f}\u{24725}\u5179\u{24aa4}\u{205eb}\u747a\u{23ef8}\u{2365f}\u{24a4a}\u{24917}\u{25fe1}\u3f06\u3eb1\u{24adf}\u{28c23}\u{23f35}\u60a7\u3ef3\u74cc\u743c\u9387\u7437\u449f\u{26dea}\u4551\u7583\u3f63\u{24cd9}\u{24d06}\u3f58\u7555\u7673\u{2a5c6}\u3b19\u7468\u{28acc}\u{249ab}\u{2498e}\u3afb"],["94a1","\u3dcd\u{24a4e}\u3eff\u{249c5}\u{248f3}\u91fa\u5732\u9342\u{28ae3}\u{21864}\u50df\u{25221}\u{251e7}\u7778\u{23232}\u770e\u770f\u777b\u{24697}\u{23781}\u3a5e\u{248f0}\u7438\u749b\u3ebf\u{24aba}\u{24ac7}\u40c8\u{24a96}\u{261ae}\u9307\u{25581}\u781e\u788d\u7888\u78d2\u73d0\u7959\u{27741}\u{256e3}\u410e\u799b\u8496\u79a5\u6a2d\u{23efa}\u7a3a\u79f4\u416e\u{216e6}\u4132\u9235\u79f1\u{20d4c}\u{2498c}\u{20299}\u{23dba}\u{2176e}\u3597\u556b\u3570\u36aa\u{201d4}\u{20c0d}\u7ae2\u5a59\u{226f5}\u{25aaf}\u{25a9c}\u5a0d\u{2025b}\u78f0\u5a2a\u{25bc6}\u7afe\u41f9\u7c5d\u7c6d\u4211\u{25bb3}\u{25ebc}\u{25ea6}\u7ccd\u{249f9}\u{217b0}\u7c8e\u7c7c\u7cae\u6ab2\u7ddc\u7e07\u7dd3\u7f4e\u{26261}"],["9540","\u{2615c}\u{27b48}\u7d97\u{25e82}\u426a\u{26b75}\u{20916}\u67d6\u{2004e}\u{235cf}\u57c4\u{26412}\u{263f8}\u{24962}\u7fdd\u7b27\u{2082c}\u{25ae9}\u{25d43}\u7b0c\u{25e0e}\u99e6\u8645\u9a63\u6a1c\u{2343f}\u39e2\u{249f7}\u{265ad}\u9a1f\u{265a0}\u8480\u{27127}\u{26cd1}\u44ea\u8137\u4402\u80c6\u8109\u8142\u{267b4}\u98c3\u{26a42}\u8262\u8265\u{26a51}\u8453\u{26da7}\u8610\u{2721b}\u5a86\u417f\u{21840}\u5b2b\u{218a1}\u5ae4\u{218d8}\u86a0\u{2f9bc}\u{23d8f}\u882d\u{27422}\u5a02"],["95a1","\u886e\u4f45\u8887\u88bf\u88e6\u8965\u894d\u{25683}\u8954\u{27785}\u{27784}\u{28bf5}\u{28bd9}\u{28b9c}\u{289f9}\u3ead\u84a3\u46f5\u46cf\u37f2\u8a3d\u8a1c\u{29448}\u5f4d\u922b\u{24284}\u65d4\u7129\u70c4\u{21845}\u9d6d\u8c9f\u8ce9\u{27ddc}\u599a\u77c3\u59f0\u436e\u36d4\u8e2a\u8ea7\u{24c09}\u8f30\u8f4a\u42f4\u6c58\u6fbb\u{22321}\u489b\u6f79\u6e8b\u{217da}\u9be9\u36b5\u{2492f}\u90bb\u9097\u5571\u4906\u91bb\u9404\u{28a4b}\u4062\u{28afc}\u9427\u{28c1d}\u{28c3b}\u84e5\u8a2b\u9599\u95a7\u9597\u9596\u{28d34}\u7445\u3ec2\u{248ff}\u{24a42}\u{243ea}\u3ee7\u{23225}\u968f\u{28ee7}\u{28e66}\u{28e65}\u3ecc\u{249ed}\u{24a78}\u{23fee}\u7412\u746b\u3efc\u9741\u{290b0}"],["9640","\u6847\u4a1d\u{29093}\u{257df}\u975d\u9368\u{28989}\u{28c26}\u{28b2f}\u{263be}\u92ba\u5b11\u8b69\u493c\u73f9\u{2421b}\u979b\u9771\u9938\u{20f26}\u5dc1\u{28bc5}\u{24ab2}\u981f\u{294da}\u92f6\u{295d7}\u91e5\u44c0\u{28b50}\u{24a67}\u{28b64}\u98dc\u{28a45}\u3f00\u922a\u4925\u8414\u993b\u994d\u{27b06}\u3dfd\u999b\u4b6f\u99aa\u9a5c\u{28b65}\u{258c8}\u6a8f\u9a21\u5afe\u9a2f\u{298f1}\u4b90\u{29948}\u99bc\u4bbd\u4b97\u937d\u5872\u{21302}\u5822\u{249b8}"],["96a1","\u{214e8}\u7844\u{2271f}\u{23db8}\u68c5\u3d7d\u9458\u3927\u6150\u{22781}\u{2296b}\u6107\u9c4f\u9c53\u9c7b\u9c35\u9c10\u9b7f\u9bcf\u{29e2d}\u9b9f\u{2a1f5}\u{2a0fe}\u9d21\u4cae\u{24104}\u9e18\u4cb0\u9d0c\u{2a1b4}\u{2a0ed}\u{2a0f3}\u{2992f}\u9da5\u84bd\u{26e12}\u{26fdf}\u{26b82}\u85fc\u4533\u{26da4}\u{26e84}\u{26df0}\u8420\u85ee\u{26e00}\u{237d7}\u{26064}\u79e2\u{2359c}\u{23640}\u492d\u{249de}\u3d62\u93db\u92be\u9348\u{202bf}\u78b9\u9277\u944d\u4fe4\u3440\u9064\u{2555d}\u783d\u7854\u78b6\u784b\u{21757}\u{231c9}\u{24941}\u369a\u4f72\u6fda\u6fd9\u701e\u701e\u5414\u{241b5}\u57bb\u58f3\u578a\u9d16\u57d7\u7134\u34af\u{241ac}\u71eb\u{26c40}\u{24f97}\u5b28\u{217b5}\u{28a49}"],["9740","\u610c\u5ace\u5a0b\u42bc\u{24488}\u372c\u4b7b\u{289fc}\u93bb\u93b8\u{218d6}\u{20f1d}\u8472\u{26cc0}\u{21413}\u{242fa}\u{22c26}\u{243c1}\u5994\u{23db7}\u{26741}\u7da8\u{2615b}\u{260a4}\u{249b9}\u{2498b}\u{289fa}\u92e5\u73e2\u3ee9\u74b4\u{28b63}\u{2189f}\u3ee1\u{24ab3}\u6ad8\u73f3\u73fb\u3ed6\u{24a3e}\u{24a94}\u{217d9}\u{24a66}\u{203a7}\u{21424}\u{249e5}\u7448\u{24916}\u70a5\u{24976}\u9284\u73e6\u935f\u{204fe}\u9331\u{28ace}\u{28a16}\u9386\u{28be7}\u{255d5}\u4935\u{28a82}\u716b"],["97a1","\u{24943}\u{20cff}\u56a4\u{2061a}\u{20beb}\u{20cb8}\u5502\u79c4\u{217fa}\u7dfe\u{216c2}\u{24a50}\u{21852}\u452e\u9401\u370a\u{28ac0}\u{249ad}\u59b0\u{218bf}\u{21883}\u{27484}\u5aa1\u36e2\u{23d5b}\u36b0\u925f\u5a79\u{28a81}\u{21862}\u9374\u3ccd\u{20ab4}\u4a96\u398a\u50f4\u3d69\u3d4c\u{2139c}\u7175\u42fb\u{28218}\u6e0f\u{290e4}\u44eb\u6d57\u{27e4f}\u7067\u6caf\u3cd6\u{23fed}\u{23e2d}\u6e02\u6f0c\u3d6f\u{203f5}\u7551\u36bc\u34c8\u4680\u3eda\u4871\u59c4\u926e\u493e\u8f41\u{28c1c}\u{26bc0}\u5812\u57c8\u36d6\u{21452}\u70fe\u{24362}\u{24a71}\u{22fe3}\u{212b0}\u{223bd}\u68b9\u6967\u{21398}\u{234e5}\u{27bf4}\u{236df}\u{28a83}\u{237d6}\u{233fa}\u{24c9f}\u6a1a\u{236ad}\u{26cb7}\u843e\u44df\u44ce"],["9840","\u{26d26}\u{26d51}\u{26c82}\u{26fde}\u6f17\u{27109}\u833d\u{2173a}\u83ed\u{26c80}\u{27053}\u{217db}\u5989\u5a82\u{217b3}\u5a61\u5a71\u{21905}\u{241fc}\u372d\u59ef\u{2173c}\u36c7\u718e\u9390\u669a\u{242a5}\u5a6e\u5a2b\u{24293}\u6a2b\u{23ef9}\u{27736}\u{2445b}\u{242ca}\u711d\u{24259}\u{289e1}\u4fb0\u{26d28}\u5cc2\u{244ce}\u{27e4d}\u{243bd}\u6a0c\u{24256}\u{21304}\u70a6\u7133\u{243e9}\u3da5\u6cdf\u{2f825}\u{24a4f}\u7e65\u59eb\u5d2f\u3df3\u5f5c\u{24a5d}\u{217df}\u7da4\u8426"],["98a1","\u5485\u{23afa}\u{23300}\u{20214}\u577e\u{208d5}\u{20619}\u3fe5\u{21f9e}\u{2a2b6}\u7003\u{2915b}\u5d70\u738f\u7cd3\u{28a59}\u{29420}\u4fc8\u7fe7\u72cd\u7310\u{27af4}\u7338\u7339\u{256f6}\u7341\u7348\u3ea9\u{27b18}\u906c\u71f5\u{248f2}\u73e1\u81f6\u3eca\u770c\u3ed1\u6ca2\u56fd\u7419\u741e\u741f\u3ee2\u3ef0\u3ef4\u3efa\u74d3\u3f0e\u3f53\u7542\u756d\u7572\u758d\u3f7c\u75c8\u75dc\u3fc0\u764d\u3fd7\u7674\u3fdc\u767a\u{24f5c}\u7188\u5623\u8980\u5869\u401d\u7743\u4039\u6761\u4045\u35db\u7798\u406a\u406f\u5c5e\u77be\u77cb\u58f2\u7818\u70b9\u781c\u40a8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8fbb\u7a06\u8fbc\u4167\u7a91\u41b2\u7abc\u8279\u41c4\u7acf\u7adb\u41cf\u4e21\u7b62\u7b6c\u7b7b\u7c12\u7c1b\u4260\u427a\u7c7b\u7c9c\u428c\u7cb8\u4294\u7ced\u8f93\u70c0\u{20ccf}\u7dcf\u7dd4\u7dd0\u7dfd\u7fae\u7fb4\u729f\u4397\u8020\u8025\u7b39\u802e\u8031\u8054\u3dcc\u57b4\u70a0\u80b7\u80e9\u43ed\u810c\u732a\u810e\u8112\u7560\u8114\u4401\u3b39\u8156\u8159\u815a"],["99a1","\u4413\u583a\u817c\u8184\u4425\u8193\u442d\u81a5\u57ef\u81c1\u81e4\u8254\u448f\u82a6\u8276\u82ca\u82d8\u82ff\u44b0\u8357\u9669\u698a\u8405\u70f5\u8464\u60e3\u8488\u4504\u84be\u84e1\u84f8\u8510\u8538\u8552\u453b\u856f\u8570\u85e0\u4577\u8672\u8692\u86b2\u86ef\u9645\u878b\u4606\u4617\u88ae\u88ff\u8924\u8947\u8991\u{27967}\u8a29\u8a38\u8a94\u8ab4\u8c51\u8cd4\u8cf2\u8d1c\u4798\u585f\u8dc3\u47ed\u4eee\u8e3a\u55d8\u5754\u8e71\u55f5\u8eb0\u4837\u8ece\u8ee2\u8ee4\u8eed\u8ef2\u8fb7\u8fc1\u8fca\u8fcc\u9033\u99c4\u48ad\u98e0\u9213\u491e\u9228\u9258\u926b\u92b1\u92ae\u92bf"],["9a40","\u92e3\u92eb\u92f3\u92f4\u92fd\u9343\u9384\u93ad\u4945\u4951\u9ebf\u9417\u5301\u941d\u942d\u943e\u496a\u9454\u9479\u952d\u95a2\u49a7\u95f4\u9633\u49e5\u67a0\u4a24\u9740\u4a35\u97b2\u97c2\u5654\u4ae4\u60e8\u98b9\u4b19\u98f1\u5844\u990e\u9919\u51b4\u991c\u9937\u9942\u995d\u9962\u4b70\u99c5\u4b9d\u9a3c\u9b0f\u7a83\u9b69\u9b81\u9bdd\u9bf1\u9bf4\u4c6d\u9c20\u376f\u{21bc2}\u9d49\u9c3a"],["9aa1","\u9efe\u5650\u9d93\u9dbd\u9dc0\u9dfc\u94f6\u8fb6\u9e7b\u9eac\u9eb1\u9ebd\u9ec6\u94dc\u9ee2\u9ef1\u9ef8\u7ac8\u9f44\u{20094}\u{202b7}\u{203a0}\u691a\u94c3\u59ac\u{204d7}\u5840\u94c1\u37b9\u{205d5}\u{20615}\u{20676}\u{216ba}\u5757\u7173\u{20ac2}\u{20acd}\u{20bbf}\u546a\u{2f83b}\u{20bcb}\u549e\u{20bfb}\u{20c3b}\u{20c53}\u{20c65}\u{20c7c}\u60e7\u{20c8d}\u567a\u{20cb5}\u{20cdd}\u{20ced}\u{20d6f}\u{20db2}\u{20dc8}\u6955\u9c2f\u87a5\u{20e04}\u{20e0e}\u{20ed7}\u{20f90}\u{20f2d}\u{20e73}\u5c20\u{20fbc}\u5e0b\u{2105c}\u{2104f}\u{21076}\u671e\u{2107b}\u{21088}\u{21096}\u3647\u{210bf}\u{210d3}\u{2112f}\u{2113b}\u5364\u84ad\u{212e3}\u{21375}\u{21336}\u8b81\u{21577}\u{21619}\u{217c3}\u{217c7}\u4e78\u70bb\u{2182d}\u{2196a}"],["9b40","\u{21a2d}\u{21a45}\u{21c2a}\u{21c70}\u{21cac}\u{21ec8}\u62c3\u{21ed5}\u{21f15}\u7198\u6855\u{22045}\u69e9\u36c8\u{2227c}\u{223d7}\u{223fa}\u{2272a}\u{22871}\u{2294f}\u82fd\u{22967}\u{22993}\u{22ad5}\u89a5\u{22ae8}\u8fa0\u{22b0e}\u97b8\u{22b3f}\u9847\u9abd\u{22c4c}"],["9b62","\u{22c88}\u{22cb7}\u{25be8}\u{22d08}\u{22d12}\u{22db7}\u{22d95}\u{22e42}\u{22f74}\u{22fcc}\u{23033}\u{23066}\u{2331f}\u{233de}\u5fb1\u6648\u66bf\u{27a79}\u{23567}\u{235f3}\u7201\u{249ba}\u77d7\u{2361a}\u{23716}\u7e87\u{20346}\u58b5\u670e"],["9ba1","\u6918\u{23aa7}\u{27657}\u{25fe2}\u{23e11}\u{23eb9}\u{275fe}\u{2209a}\u48d0\u4ab8\u{24119}\u{28a9a}\u{242ee}\u{2430d}\u{2403b}\u{24334}\u{24396}\u{24a45}\u{205ca}\u51d2\u{20611}\u599f\u{21ea8}\u3bbe\u{23cff}\u{24404}\u{244d6}\u5788\u{24674}\u399b\u{2472f}\u{285e8}\u{299c9}\u3762\u{221c3}\u8b5e\u{28b4e}\u99d6\u{24812}\u{248fb}\u{24a15}\u7209\u{24ac0}\u{20c78}\u5965\u{24ea5}\u{24f86}\u{20779}\u8eda\u{2502c}\u528f\u573f\u7171\u{25299}\u{25419}\u{23f4a}\u{24aa7}\u55bc\u{25446}\u{2546e}\u{26b52}\u91d4\u3473\u{2553f}\u{27632}\u{2555e}\u4718\u{25562}\u{25566}\u{257c7}\u{2493f}\u{2585d}\u5066\u34fb\u{233cc}\u60de\u{25903}\u477c\u{28948}\u{25aae}\u{25b89}\u{25c06}\u{21d90}\u57a1\u7151\u6fb6\u{26102}\u{27c12}\u9056\u{261b2}\u{24f9a}\u8b62\u{26402}\u{2644a}"],["9c40","\u5d5b\u{26bf7}\u8f36\u{26484}\u{2191c}\u8aea\u{249f6}\u{26488}\u{23fef}\u{26512}\u4bc0\u{265bf}\u{266b5}\u{2271b}\u9465\u{257e1}\u6195\u5a27\u{2f8cd}\u4fbb\u56b9\u{24521}\u{266fc}\u4e6a\u{24934}\u9656\u6d8f\u{26cbd}\u3618\u8977\u{26799}\u{2686e}\u{26411}\u{2685e}\u71df\u{268c7}\u7b42\u{290c0}\u{20a11}\u{26926}\u9104\u{26939}\u7a45\u9df0\u{269fa}\u9a26\u{26a2d}\u365f\u{26469}\u{20021}\u7983\u{26a34}\u{26b5b}\u5d2c\u{23519}\u83cf\u{26b9d}\u46d0\u{26ca4}\u753b\u8865\u{26dae}\u58b6"],["9ca1","\u371c\u{2258d}\u{2704b}\u{271cd}\u3c54\u{27280}\u{27285}\u9281\u{2217a}\u{2728b}\u9330\u{272e6}\u{249d0}\u6c39\u949f\u{27450}\u{20ef8}\u8827\u88f5\u{22926}\u{28473}\u{217b1}\u6eb8\u{24a2a}\u{21820}\u39a4\u36b9\u5c10\u79e3\u453f\u66b6\u{29cad}\u{298a4}\u8943\u{277cc}\u{27858}\u56d6\u40df\u{2160a}\u39a1\u{2372f}\u{280e8}\u{213c5}\u71ad\u8366\u{279dd}\u{291a8}\u5a67\u4cb7\u{270af}\u{289ab}\u{279fd}\u{27a0a}\u{27b0b}\u{27d66}\u{2417a}\u7b43\u797e\u{28009}\u6fb5\u{2a2df}\u6a03\u{28318}\u53a2\u{26e07}\u93bf\u6836\u975d\u{2816f}\u{28023}\u{269b5}\u{213ed}\u{2322f}\u{28048}\u5d85\u{28c30}\u{28083}\u5715\u9823\u{28949}\u5dab\u{24988}\u65be\u69d5\u53d2\u{24aa5}\u{23f81}\u3c11\u6736\u{28090}\u{280f4}\u{2812e}\u{21fa1}\u{2814f}"],["9d40","\u{28189}\u{281af}\u{2821a}\u{28306}\u{2832f}\u{2838a}\u35ca\u{28468}\u{286aa}\u48fa\u63e6\u{28956}\u7808\u9255\u{289b8}\u43f2\u{289e7}\u43df\u{289e8}\u{28b46}\u{28bd4}\u59f8\u{28c09}\u8f0b\u{28fc5}\u{290ec}\u7b51\u{29110}\u{2913c}\u3df7\u{2915e}\u{24aca}\u8fd0\u728f\u568b\u{294e7}\u{295e9}\u{295b0}\u{295b8}\u{29732}\u{298d1}\u{29949}\u{2996a}\u{299c3}\u{29a28}\u{29b0e}\u{29d5a}\u{29d9b}\u7e9f\u{29ef8}\u{29f23}\u4ca4\u9547\u{2a293}\u71a2\u{2a2ff}\u4d91\u9012\u{2a5cb}\u4d9c\u{20c9c}\u8fbe\u55c1"],["9da1","\u8fba\u{224b0}\u8fb9\u{24a93}\u4509\u7e7f\u6f56\u6ab1\u4eea\u34e4\u{28b2c}\u{2789d}\u373a\u8e80\u{217f5}\u{28024}\u{28b6c}\u{28b99}\u{27a3e}\u{266af}\u3deb\u{27655}\u{23cb7}\u{25635}\u{25956}\u4e9a\u{25e81}\u{26258}\u56bf\u{20e6d}\u8e0e\u5b6d\u{23e88}\u{24c9e}\u63de\u62d0\u{217f6}\u{2187b}\u6530\u562d\u{25c4a}\u541a\u{25311}\u3dc6\u{29d98}\u4c7d\u5622\u561e\u7f49\u{25ed8}\u5975\u{23d40}\u8770\u4e1c\u{20fea}\u{20d49}\u{236ba}\u8117\u9d5e\u8d18\u763b\u9c45\u764e\u77b9\u9345\u5432\u8148\u82f7\u5625\u8132\u8418\u80bd\u55ea\u7962\u5643\u5416\u{20e9d}\u35ce\u5605\u55f1\u66f1\u{282e2}\u362d\u7534\u55f0\u55ba\u5497\u5572\u{20c41}\u{20c96}\u5ed0\u{25148}\u{20e76}\u{22c62}"],["9e40","\u{20ea2}\u9eab\u7d5a\u55de\u{21075}\u629d\u976d\u5494\u8ccd\u71f6\u9176\u63fc\u63b9\u63fe\u5569\u{22b43}\u9c72\u{22eb3}\u519a\u34df\u{20da7}\u51a7\u544d\u551e\u5513\u7666\u8e2d\u{2688a}\u75b1\u80b6\u8804\u8786\u88c7\u81b6\u841c\u{210c1}\u44ec\u7304\u{24706}\u5b90\u830b\u{26893}\u567b\u{226f4}\u{27d2f}\u{241a3}\u{27d73}\u{26ed0}\u{272b6}\u9170\u{211d9}\u9208\u{23cfc}\u{2a6a9}\u{20eac}\u{20ef9}\u7266\u{21ca2}\u474e\u{24fc2}\u{27ff9}\u{20feb}\u40fa"],["9ea1","\u9c5d\u651f\u{22da0}\u48f3\u{247e0}\u{29d7c}\u{20fec}\u{20e0a}\u6062\u{275a3}\u{20fed}"],["9ead","\u{26048}\u{21187}\u71a3\u7e8e\u9d50\u4e1a\u4e04\u3577\u5b0d\u6cb2\u5367\u36ac\u39dc\u537d\u36a5\u{24618}\u589a\u{24b6e}\u822d\u544b\u57aa\u{25a95}\u{20979}"],["9ec5","\u3a52\u{22465}\u7374\u{29eac}\u4d09\u9bed\u{23cfe}\u{29f30}\u4c5b\u{24fa9}\u{2959e}\u{29fde}\u845c\u{23db6}\u{272b2}\u{267b3}\u{23720}\u632e\u7d25\u{23ef7}\u{23e2c}\u3a2a\u9008\u52cc\u3e74\u367a\u45e9\u{2048e}\u7640\u5af0\u{20eb6}\u787a\u{27f2e}\u58a7\u40bf\u567c\u9b8b\u5d74\u7654\u{2a434}\u9e85\u4ce1\u75f9\u37fb\u6119\u{230da}\u{243f2}"],["9ef5","\u565d\u{212a9}\u57a7\u{24963}\u{29e06}\u5234\u{270ae}\u35ad\u6c4a\u9d7c"],["9f40","\u7c56\u9b39\u57de\u{2176c}\u5c53\u64d3\u{294d0}\u{26335}\u{27164}\u86ad\u{20d28}\u{26d22}\u{24ae2}\u{20d71}"],["9f4f","\u51fe\u{21f0f}\u5d8e\u9703\u{21dd1}\u9e81\u904c\u7b1f\u9b02\u5cd1\u7ba3\u6268\u6335\u9aff\u7bcf\u9b2a\u7c7e\u9b2e\u7c42\u7c86\u9c15\u7bfc\u9b09\u9f17\u9c1b\u{2493e}\u9f5a\u5573\u5bc3\u4ffd\u9e98\u4ff2\u5260\u3e06\u52d1\u5767\u5056\u59b7\u5e12\u97c8\u9dab\u8f5c\u5469\u97b4\u9940\u97ba\u532c\u6130"],["9fa1","\u692c\u53da\u9c0a\u9d02\u4c3b\u9641\u6980\u50a6\u7546\u{2176d}\u99da\u5273"],["9fae","\u9159\u9681\u915c"],["9fb2","\u9151\u{28e97}\u637f\u{26d23}\u6aca\u5611\u918e\u757a\u6285\u{203fc}\u734f\u7c70\u{25c21}\u{23cfd}"],["9fc1","\u{24919}\u76d6\u9b9d\u4e2a\u{20cd4}\u83be\u8842"],["9fc9","\u5c4a\u69c0\u50ed\u577a\u521f\u5df5\u4ece\u6c31\u{201f2}\u4f39\u549c\u54da\u529a\u8d82\u35fe\u5f0c\u35f3"],["9fdb","\u6b52\u917c\u9fa5\u9b97\u982e\u98b4\u9aba\u9ea8\u9e84\u717a\u7b14"],["9fe7","\u6bfa\u8818\u7f78"],["9feb","\u5620\u{2a64a}\u8e77\u9f53"],["9ff0","\u8dd4\u8e4f\u9e1c\u8e01\u6282\u{2837d}\u8e28\u8e75\u7ad3\u{24a77}\u7a3e\u78d8\u6cea\u8a67\u7607"],["a040","\u{28a5a}\u9f26\u6cce\u87d6\u75c3\u{2a2b2}\u7853\u{2f840}\u8d0c\u72e2\u7371\u8b2d\u7302\u74f1\u8ceb\u{24abb}\u862f\u5fba\u88a0\u44b7"],["a055","\u{2183b}\u{26e05}"],["a058","\u8a7e\u{2251b}"],["a05b","\u60fd\u7667\u9ad7\u9d44\u936e\u9b8f\u87f5"],["a063","\u880f\u8cf7\u732c\u9721\u9bb0\u35d6\u72b2\u4c07\u7c51\u994a\u{26159}\u6159\u4c04\u9e96\u617d"],["a073","\u575f\u616f\u62a6\u6239\u62ce\u3a5c\u61e2\u53aa\u{233f5}\u6364\u6802\u35d2"],["a0a1","\u5d57\u{28bc2}\u8fda\u{28e39}"],["a0a6","\u50d9\u{21d46}\u7906\u5332\u9638\u{20f3b}\u4065"],["a0ae","\u77fe"],["a0b0","\u7cc2\u{25f1a}\u7cda\u7a2d\u8066\u8063\u7d4d\u7505\u74f2\u8994\u821a\u670c\u8062\u{27486}\u805b\u74f0\u8103\u7724\u8989\u{267cc}\u7553\u{26ed1}\u87a9\u87ce\u81c8\u878c\u8a49\u8cad\u8b43\u772b\u74f8\u84da\u3635\u69b2\u8da6"],["a0d4","\u89a9\u7468\u6db9\u87c1\u{24011}\u74e7\u3ddb\u7176\u60a4\u619c\u3cd1\u7162\u6077"],["a0e2","\u7f71\u{28b2d}\u7250\u60e9\u4b7e\u5220\u3c18\u{23cc7}\u{25ed7}\u{27656}\u{25531}\u{21944}\u{212fe}\u{29903}\u{26ddc}\u{270ad}\u5cc1\u{261ad}\u{28a0f}\u{23677}\u{200ee}\u{26846}\u{24f0e}\u4562\u5b1f\u{2634c}\u9f50\u9ea6\u{2626b}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4e36\u4e3f\u4e85\u4ea0\u5182\u5196\u51ab\u52f9\u5338\u5369\u53b6\u590a\u5b80\u5ddb\u2f33\u5e7f\u5ef4\u5f50\u5f61\u6534\u65e0\u7592\u7676\u8fb5\u96b6\xa8\u02c6\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\uff3b\uff3d\u273d\u3041",23],["c740","\u3059",58,"\u30a1\u30a2\u30a3\u30a4"],["c7a1","\u30a5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041b",26,"\u0451\u0436",25,"\u21e7\u21b8\u21b9\u31cf\u{200cc}\u4e5a\u{2008a}\u5202\u4491"],["c8a1","\u9fb0\u5188\u9fb1\u{27607}"],["c8cd","\uffe2\uffe4\uff07\uff02\u3231\u2116\u2121\u309b\u309c\u2e80\u2e84\u2e86\u2e87\u2e88\u2e8a\u2e8c\u2e8d\u2e95\u2e9c\u2e9d\u2ea5\u2ea7\u2eaa\u2eac\u2eae\u2eb6\u2ebc\u2ebe\u2ec6\u2eca\u2ecc\u2ecd\u2ecf\u2ed6\u2ed7\u2ede\u2ee3"],["c8f5","\u0283\u0250\u025b\u0254\u0275\u0153\xf8\u014b\u028a\u026a"],["f9fe","\uffed"],["fa40","\u{20547}\u92db\u{205df}\u{23fc5}\u854c\u42b5\u73ef\u51b5\u3649\u{24942}\u{289e4}\u9344\u{219db}\u82ee\u{23cc8}\u783c\u6744\u62df\u{24933}\u{289aa}\u{202a0}\u{26bb3}\u{21305}\u4fab\u{224ed}\u5008\u{26d29}\u{27a84}\u{23600}\u{24ab1}\u{22513}\u5029\u{2037e}\u5fa4\u{20380}\u{20347}\u6edb\u{2041f}\u507d\u5101\u347a\u510e\u986c\u3743\u8416\u{249a4}\u{20487}\u5160\u{233b4}\u516a\u{20bff}\u{220fc}\u{202e5}\u{22530}\u{2058e}\u{23233}\u{21983}\u5b82\u877d\u{205b3}\u{23c99}\u51b2\u51b8"],["faa1","\u9d34\u51c9\u51cf\u51d1\u3cdc\u51d3\u{24aa6}\u51b3\u51e2\u5342\u51ed\u83cd\u693e\u{2372d}\u5f7b\u520b\u5226\u523c\u52b5\u5257\u5294\u52b9\u52c5\u7c15\u8542\u52e0\u860d\u{26b13}\u5305\u{28ade}\u5549\u6ed9\u{23f80}\u{20954}\u{23fec}\u5333\u5344\u{20be2}\u6ccb\u{21726}\u681b\u73d5\u604a\u3eaa\u38cc\u{216e8}\u71dd\u44a2\u536d\u5374\u{286ab}\u537e\u537f\u{21596}\u{21613}\u77e6\u5393\u{28a9b}\u53a0\u53ab\u53ae\u73a7\u{25772}\u3f59\u739c\u53c1\u53c5\u6c49\u4e49\u57fe\u53d9\u3aab\u{20b8f}\u53e0\u{23feb}\u{22da3}\u53f6\u{20c77}\u5413\u7079\u552b\u6657\u6d5b\u546d\u{26b53}\u{20d74}\u555d\u548f\u54a4\u47a6\u{2170d}\u{20edd}\u3db4\u{20d4d}"],["fb40","\u{289bc}\u{22698}\u5547\u4ced\u542f\u7417\u5586\u55a9\u5605\u{218d7}\u{2403a}\u4552\u{24435}\u66b3\u{210b4}\u5637\u66cd\u{2328a}\u66a4\u66ad\u564d\u564f\u78f1\u56f1\u9787\u53fe\u5700\u56ef\u56ed\u{28b66}\u3623\u{2124f}\u5746\u{241a5}\u6c6e\u708b\u5742\u36b1\u{26c7e}\u57e6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24bf5}\u585c\u58aa\u3561\u58e0\u58dc\u{2123c}\u58fb\u5bff\u5743\u{2a150}\u{24278}\u93d3\u35a1\u591f\u68a6\u36c3\u6e59"],["fba1","\u{2163e}\u5a24\u5553\u{21692}\u8505\u59c9\u{20d4e}\u{26c81}\u{26d2a}\u{217dc}\u59d9\u{217fb}\u{217b2}\u{26da6}\u6d71\u{21828}\u{216d5}\u59f9\u{26e45}\u5aab\u5a63\u36e6\u{249a9}\u5a77\u3708\u5a96\u7465\u5ad3\u{26fa1}\u{22554}\u3d85\u{21911}\u3732\u{216b8}\u5e83\u52d0\u5b76\u6588\u5b7c\u{27a0e}\u4004\u485d\u{20204}\u5bd5\u6160\u{21a34}\u{259cc}\u{205a5}\u5bf3\u5b9d\u4d10\u5c05\u{21b44}\u5c13\u73ce\u5c14\u{21ca5}\u{26b28}\u5c49\u48dd\u5c85\u5ce9\u5cef\u5d8b\u{21df9}\u{21e37}\u5d10\u5d18\u5d46\u{21ea4}\u5cba\u5dd7\u82fc\u382d\u{24901}\u{22049}\u{22173}\u8287\u3836\u3bc2\u5e2e\u6a8a\u5e75\u5e7a\u{244bc}\u{20cd3}\u53a6\u4eb7\u5ed0\u53a8\u{21771}\u5e09\u5ef4\u{28482}"],["fc40","\u5ef9\u5efb\u38a0\u5efc\u683e\u941b\u5f0d\u{201c1}\u{2f894}\u3ade\u48ae\u{2133a}\u5f3a\u{26888}\u{223d0}\u5f58\u{22471}\u5f63\u97bd\u{26e6e}\u5f72\u9340\u{28a36}\u5fa7\u5db6\u3d5f\u{25250}\u{21f6a}\u{270f8}\u{22668}\u91d6\u{2029e}\u{28a29}\u6031\u6685\u{21877}\u3963\u3dc7\u3639\u5790\u{227b4}\u7971\u3e40\u609e\u60a4\u60b3\u{24982}\u{2498f}\u{27a53}\u74a4\u50e1\u5aa0\u6164\u8424\u6142\u{2f8a6}\u{26ed2}\u6181\u51f4\u{20656}\u6187\u5baa\u{23fb7}"],["fca1","\u{2285f}\u61d3\u{28b9d}\u{2995d}\u61d0\u3932\u{22980}\u{228c1}\u6023\u615c\u651e\u638b\u{20118}\u62c5\u{21770}\u62d5\u{22e0d}\u636c\u{249df}\u3a17\u6438\u63f8\u{2138e}\u{217fc}\u6490\u6f8a\u{22e36}\u9814\u{2408c}\u{2571d}\u64e1\u64e5\u947b\u3a66\u643a\u3a57\u654d\u6f16\u{24a28}\u{24a23}\u6585\u656d\u655f\u{2307e}\u65b5\u{24940}\u4b37\u65d1\u40d8\u{21829}\u65e0\u65e3\u5fdf\u{23400}\u6618\u{231f7}\u{231f8}\u6644\u{231a4}\u{231a5}\u664b\u{20e75}\u6667\u{251e6}\u6673\u6674\u{21e3d}\u{23231}\u{285f4}\u{231c8}\u{25313}\u77c5\u{228f7}\u99a4\u6702\u{2439c}\u{24a21}\u3b2b\u69fa\u{237c2}\u675e\u6767\u6762\u{241cd}\u{290ed}\u67d7\u44e9\u6822\u6e50\u923c\u6801\u{233e6}\u{26da0}\u685d"],["fd40","\u{2346f}\u69e1\u6a0b\u{28adf}\u6973\u68c3\u{235cd}\u6901\u6900\u3d32\u3a01\u{2363c}\u3b80\u67ac\u6961\u{28a4a}\u42fc\u6936\u6998\u3ba1\u{203c9}\u8363\u5090\u69f9\u{23659}\u{2212a}\u6a45\u{23703}\u6a9d\u3bf3\u67b1\u6ac8\u{2919c}\u3c0d\u6b1d\u{20923}\u60de\u6b35\u6b74\u{227cd}\u6eb5\u{23adb}\u{203b5}\u{21958}\u3740\u5421\u{23b5a}\u6be1\u{23efc}\u6bdc\u6c37\u{2248b}\u{248f1}\u{26b51}\u6c5a\u8226\u6c79\u{23dbc}\u44c5\u{23dbd}\u{241a4}\u{2490c}\u{24900}"],["fda1","\u{23cc9}\u36e5\u3ceb\u{20d32}\u9b83\u{231f9}\u{22491}\u7f8f\u6837\u{26d25}\u{26da1}\u{26deb}\u6d96\u6d5c\u6e7c\u6f04\u{2497f}\u{24085}\u{26e72}\u8533\u{26f74}\u51c7\u6c9c\u6e1d\u842e\u{28b21}\u6e2f\u{23e2f}\u7453\u{23f82}\u79cc\u6e4f\u5a91\u{2304b}\u6ff8\u370d\u6f9d\u{23e30}\u6efa\u{21497}\u{2403d}\u4555\u93f0\u6f44\u6f5c\u3d4e\u6f74\u{29170}\u3d3b\u6f9f\u{24144}\u6fd3\u{24091}\u{24155}\u{24039}\u{23ff0}\u{23fb4}\u{2413f}\u51df\u{24156}\u{24157}\u{24140}\u{261dd}\u704b\u707e\u70a7\u7081\u70cc\u70d5\u70d6\u70df\u4104\u3de8\u71b4\u7196\u{24277}\u712b\u7145\u5a88\u714a\u716e\u5c9c\u{24365}\u714f\u9362\u{242c1}\u712c\u{2445a}\u{24a27}\u{24a22}\u71ba\u{28be8}\u70bd\u720e"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722e\u7240\u{24974}\u68bd\u7255\u7257\u3e55\u{23044}\u680d\u6f3d\u7282\u732a\u732b\u{24823}\u{2882b}\u48ed\u{28804}\u7328\u732e\u73cf\u73aa\u{20c3a}\u{26a2e}\u73c9\u7449\u{241e2}\u{216e7}\u{24a24}\u6623\u36c5\u{249b7}\u{2498d}\u{249fb}\u73f7\u7415\u6903\u{24a26}\u7439\u{205c3}\u3ed7\u745c\u{228ad}\u7460\u{28eb2}\u7447\u73e4\u7476\u83b9\u746c\u3730\u7474\u93f1\u6a2c\u7482\u4953\u{24a8c}"],["fea1","\u{2415f}\u{24a79}\u{28b8f}\u5b46\u{28c03}\u{2189e}\u74c8\u{21988}\u750e\u74e9\u751e\u{28ed9}\u{21a4b}\u5bd7\u{28eac}\u9385\u754d\u754a\u7567\u756e\u{24f82}\u3f04\u{24d13}\u758e\u745d\u759e\u75b4\u7602\u762c\u7651\u764f\u766f\u7676\u{263f5}\u7690\u81ef\u37f8\u{26911}\u{2690e}\u76a1\u76a5\u76b7\u76cc\u{26f9f}\u8462\u{2509d}\u{2517d}\u{21e1c}\u771e\u7726\u7740\u64af\u{25220}\u7758\u{232ac}\u77af\u{28964}\u{28968}\u{216c1}\u77f4\u7809\u{21376}\u{24a12}\u68ca\u78af\u78c7\u78d3\u96a5\u792e\u{255e0}\u78d7\u7934\u78b1\u{2760c}\u8fb8\u8884\u{28b2b}\u{26083}\u{2261c}\u7986\u8900\u6902\u7980\u{25857}\u799d\u{27b39}\u793c\u79a9\u6e2a\u{27126}\u3ea8\u79c6\u{2910d}\u79d4"]]')},43381:function(T,e,l){"use strict";var v=l(68404),h=l(10821),f=l(26601),_=l(22774),b=l(68109),y=l(87106),M=_("Object.prototype.toString"),D=l(26626)(),x=typeof globalThis>"u"?l.g:globalThis,k=h(),Q=_("String.prototype.slice"),I=_("Array.prototype.indexOf",!0)||function(q,Z){for(var H=0;H-1?Z:"Object"===Z&&function(q){var Z=!1;return v(d,function(H,G){if(!Z)try{H(q),Z=Q(G,1)}catch{}}),Z}(q)}return b?function(q){var Z=!1;return v(d,function(H,G){if(!Z)try{"$"+H(q)===G&&(Z=Q(G,1))}catch{}}),Z}(q):null}},43765:function(T,e,l){"use strict";var v;var f=l(83797).F,_=f.ERR_MISSING_ARGS,b=f.ERR_STREAM_DESTROYED;function y(d){if(d)throw d}function x(d){d()}function k(d,S){return d.pipe(S)}T.exports=function I(){for(var d=arguments.length,S=new Array(d),R=0;R0,function(P){q||(q=P),P&&Z.forEach(x),!W&&(Z.forEach(x),z(q))})});return S.reduce(k)}},43977:function(T,e,l){var v=l(73163),h=Math.floor,f=function(y,M){var D=y.length,x=h(D/2);return D<8?_(y,M):b(y,f(v(y,0,x),M),f(v(y,x),M),M)},_=function(y,M){for(var k,Q,D=y.length,x=1;x0;)y[Q]=y[--Q];Q!==x++&&(y[Q]=k)}return y},b=function(y,M,D,x){for(var k=M.length,Q=D.length,I=0,d=0;I"u"){var d=function(){if(!_)return!1;try{return Function("return function*() {}")()}catch{}}();x=!!d&&b(d)}return b(Q)===x}},45144:function(T,e,l){var v=l(47044),h=l(97841);T.exports=!v(function(){var f=Error("a");return!("stack"in f)||(Object.defineProperty(f,"stack",h(1,7)),7!==f.stack)})},45314:function(T,e,l){"use strict";var D,x,k,v=l(14598).Buffer,h=l(91867).isFunction,f=l(91867).isUndefined,_=l(91867).pack,y=l(15548).saveAs,M={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-MediumItalic.ttf"}};function Q(d,S,R,z){this.docDefinition=d,this.tableLayouts=S||null,this.fonts=R||M,this.vfs=z}Q.prototype._createDoc=function(d,S){var R=function(j){return"object"==typeof j?{url:j.url,headers:j.headers}:{url:j,headers:{}}};d=d||{},this.tableLayouts&&(d.tableLayouts=this.tableLayouts);var q=new(l(81566))(this.fonts);if(l(48181).bindFS(this.vfs),!h(S))return q.createPdfKitDocument(this.docDefinition,d);var G=new(l(7785))(l(48181));for(var W in this.fonts)if(this.fonts.hasOwnProperty(W)){if(this.fonts[W].normal)if(Array.isArray(this.fonts[W].normal)){var te=R(this.fonts[W].normal[0]);G.resolve(te.url,te.headers),this.fonts[W].normal[0]=te.url}else te=R(this.fonts[W].normal),G.resolve(te.url,te.headers),this.fonts[W].normal=te.url;this.fonts[W].bold&&(Array.isArray(this.fonts[W].bold)?(te=R(this.fonts[W].bold[0]),G.resolve(te.url,te.headers),this.fonts[W].bold[0]=te.url):(te=R(this.fonts[W].bold),G.resolve(te.url,te.headers),this.fonts[W].bold=te.url)),this.fonts[W].italics&&(Array.isArray(this.fonts[W].italics)?(te=R(this.fonts[W].italics[0]),G.resolve(te.url,te.headers),this.fonts[W].italics[0]=te.url):(te=R(this.fonts[W].italics),G.resolve(te.url,te.headers),this.fonts[W].italics=te.url)),this.fonts[W].bolditalics&&(Array.isArray(this.fonts[W].bolditalics)?(te=R(this.fonts[W].bolditalics[0]),G.resolve(te.url,te.headers),this.fonts[W].bolditalics[0]=te.url):(te=R(this.fonts[W].bolditalics),G.resolve(te.url,te.headers),this.fonts[W].bolditalics=te.url))}if(this.docDefinition.images)for(var P in this.docDefinition.images)this.docDefinition.images.hasOwnProperty(P)&&(te=R(this.docDefinition.images[P]),G.resolve(te.url,te.headers),this.docDefinition.images[P]=te.url);var J=this;G.resolved().then(function(){var j=q.createPdfKitDocument(J.docDefinition,d);S(j)},function(j){throw j})},Q.prototype._flushDoc=function(d,S){var z,R=[];d.on("readable",function(){for(var q;null!==(q=d.read(9007199254740991));)R.push(q)}),d.on("end",function(){z=v.concat(R),S(z,d._pdfMakePages)}),d.end()},Q.prototype._getPages=function(d,S){if(!S)throw"_getPages is an async method and needs a callback argument";var R=this;this._createDoc(d,function(z){R._flushDoc(z,function(q,Z){S(Z)})})},Q.prototype._bufferToBlob=function(d){var S;try{S=new Blob([d],{type:"application/pdf"})}catch(z){if("InvalidStateError"===z.name){var R=new Uint8Array(d);S=new Blob([R.buffer],{type:"application/pdf"})}}if(!S)throw"Could not generate blob";return S},Q.prototype._openWindow=function(){var d=window.open("","_blank");if(null===d)throw"Open PDF in new window blocked by browser";return d},Q.prototype._openPdf=function(d,S){S||(S=this._openWindow());try{this.getBlob(function(R){var q=(window.URL||window.webkitURL).createObjectURL(R);S.location.href=q},d)}catch(R){throw S.close(),R}},Q.prototype.open=function(d,S){(d=d||{}).autoPrint=!1,this._openPdf(d,S=S||null)},Q.prototype.print=function(d,S){(d=d||{}).autoPrint=!0,this._openPdf(d,S=S||null)},Q.prototype.download=function(d,S,R){h(d)&&(f(S)||(R=S),S=d,d=null),d=d||"file.pdf",this.getBlob(function(z){y(z,d),h(S)&&S()},R)},Q.prototype.getBase64=function(d,S){if(!d)throw"getBase64 is an async method and needs a callback argument";this.getBuffer(function(R){d(R.toString("base64"))},S)},Q.prototype.getDataUrl=function(d,S){if(!d)throw"getDataUrl is an async method and needs a callback argument";this.getBuffer(function(R){d("data:application/pdf;base64,"+R.toString("base64"))},S)},Q.prototype.getBlob=function(d,S){if(!d)throw"getBlob is an async method and needs a callback argument";var R=this;this.getBuffer(function(z){var q=R._bufferToBlob(z);d(q)},S)},Q.prototype.getBuffer=function(d,S){if(!d)throw"getBuffer is an async method and needs a callback argument";var R=this;this._createDoc(S,function(z){R._flushDoc(z,function(q){d(q)})})},Q.prototype.getStream=function(d,S){if(!h(S))return this._createDoc(d);this._createDoc(d,function(z){S(z)})},T.exports={createPdf:function(d,S,R,z){if(!function I(){try{var d=new Uint8Array(1),S={foo:function(){return 42}};return Object.setPrototypeOf(S,Uint8Array.prototype),Object.setPrototypeOf(d,S),42===d.foo()}catch{return!1}}())throw"Your browser does not provide the level of support needed";return new Q(d,S||k||l.g.pdfMake.tableLayouts,R||x||l.g.pdfMake.fonts,z||D||l.g.pdfMake.vfs)},addVirtualFileSystem:function(d){D=d},addFonts:function(d){x=_(x,d)},setFonts:function(d){x=d},clearFonts:function(){x=void 0},addTableLayouts:function(d){k=_(k,d)},setTableLayouts:function(d){k=d},clearTableLayouts:function(){k=void 0}}},45337:function(T,e,l){"use strict";var v=l(56475),h=l(38347),f=l(32631),_=l(43162),b=l(45495),y=l(25096),M=l(47044),D=l(43977),x=l(81007),k=l(3809),Q=l(21983),I=l(70091),d=l(41731),S=[],R=h(S.sort),z=h(S.push),q=M(function(){S.sort(void 0)}),Z=M(function(){S.sort(null)}),H=x("sort"),G=!M(function(){if(I)return I<70;if(!(k&&k>3)){if(Q)return!0;if(d)return d<603;var J,j,re,he,P="";for(J=65;J<76;J++){switch(j=String.fromCharCode(J),J){case 66:case 69:case 70:case 72:re=3;break;case 68:case 71:re=4;break;default:re=2}for(he=0;he<47;he++)S.push({k:j+he,v:re})}for(S.sort(function(oe,Ce){return Ce.v-oe.v}),he=0;hey(j)?1:-1}}(J)),oe=re.length,Ce=0;Ce=0;R--)if(W[R]!=te[R])return!1;for(R=W.length-1;R>=0;R--)if(!D(I[z=W[R]],d[z],S))return!1;return!0}(I,d,R))}function x(I){return null==I}function k(I){return!(!I||"object"!=typeof I||"number"!=typeof I.length||"function"!=typeof I.copy||"function"!=typeof I.slice||I.length>0&&"number"!=typeof I[0])}T.exports=D},45744:function(T,e,l){var v=l(98578);T.exports=function(h,f){return new(v(h))(0===f?0:f)}},46042:function(T,e,l){var v=l(11206),h=l(20340),f=l(75960),_=l(95892).f;T.exports=function(b){var y=v.Symbol||(v.Symbol={});h(y,b)||_(y,b,{value:f.f(b)})}},46071:function(T,e,l){"use strict";var v=l(10713);T.exports=function(f){return v(f)||0===f?f:f<0?-1:1}},46094:function(T,e,l){"use strict";var v=l(43381);T.exports=function(f){return!!v(f)}},46290:function(T,e,l){var v=l(32010),h=l(38486),f=l(94578),_=l(70176),b=l(9567),y=v.Object;T.exports=b?function(M){return"symbol"==typeof M}:function(M){var D=h("Symbol");return f(D)&&_(D.prototype,y(M))}},46467:function(T,e,l){"use strict";var v=l(58448),h=l(2834),f=l(38347),_=l(11813),b=l(47044),y=l(34984),M=l(94578),D=l(26882),x=l(23417),k=l(25096),Q=l(83943),I=l(36352),d=l(51839),S=l(29519),R=l(66723),q=l(38688)("replace"),Z=Math.max,H=Math.min,G=f([].concat),W=f([].push),te=f("".indexOf),P=f("".slice),J=function(oe){return void 0===oe?oe:String(oe)},j="$0"==="a".replace(/./,"$0"),re=!!/./[q]&&""===/./[q]("a","$0");_("replace",function(oe,Ce,me){var ze=re?"$":"$0";return[function(Ae,ve){var ye=Q(this),Oe=null==Ae?void 0:d(Ae,q);return Oe?h(Oe,Ae,ye,ve):h(Ce,k(ye),Ae,ve)},function(_e,Ae){var ve=y(this),ye=k(_e);if("string"==typeof Ae&&-1===te(Ae,ze)&&-1===te(Ae,"$<")){var Oe=me(Ce,ve,ye,Ae);if(Oe.done)return Oe.value}var ae=M(Ae);ae||(Ae=k(Ae));var Ee=ve.global;if(Ee){var Fe=ve.unicode;ve.lastIndex=0}for(var Ve=[];;){var mt=R(ve,ye);if(null===mt||(W(Ve,mt),!Ee))break;""===k(mt[0])&&(ve.lastIndex=I(ye,x(ve.lastIndex),Fe))}for(var oi="",He=0,be=0;be=He&&(oi+=P(ye,He,Ke)+Xe,He=Ke+je.length)}return oi+P(ye,He)}]},!!b(function(){var oe=/./;return oe.exec=function(){var Ce=[];return Ce.groups={a:"7"},Ce},"7"!=="".replace(oe,"$")})||!j||re)},46769:function(T,e,l){var h=l(38688)("iterator"),f=!1;try{var _=0,b={next:function(){return{done:!!_++}},return:function(){f=!0}};b[h]=function(){return this},Array.from(b,function(){throw 2})}catch{}T.exports=function(y,M){if(!M&&!f)return!1;var D=!1;try{var x={};x[h]=function(){return{next:function(){return{done:D=!0}}}},y(x)}catch{}return D}},46859:function(T,e,l){var v=l(38347),h=0,f=Math.random(),_=v(1..toString);T.exports=function(b){return"Symbol("+(void 0===b?"":b)+")_"+_(++h+f,36)}},46887:function(T,e,l){var v=l(70091),h=l(47044);T.exports=!!Object.getOwnPropertySymbols&&!h(function(){var f=Symbol();return!String(f)||!(Object(f)instanceof Symbol)||!Symbol.sham&&v&&v<41})},46911:function(T){"use strict";T.exports=function e(l,v,h,f){for(var _=65535&l|0,b=l>>>16&65535|0,y=0;0!==h;){h-=y=h>2e3?2e3:h;do{b=b+(_=_+v[f++]|0)|0}while(--y);_%=65521,b%=65521}return _|b<<16|0}},47044:function(T){T.exports=function(e){try{return!!e()}catch{return!0}}},47259:function(T,e,l){"use strict";var v=l(56475),h=l(91159);v({target:"String",proto:!0,forced:l(7452)("link")},{link:function(b){return h(this,"a","href",b)}})},47458:function(T,e,l){"use strict";var v=l(56475),h=l(38347),f=l(93666),_=l(83943),b=l(25096),y=l(91151),M=h("".indexOf);v({target:"String",proto:!0,forced:!y("includes")},{includes:function(x){return!!~M(b(_(this)),b(f(x)),arguments.length>1?arguments[1]:void 0)}})},47552:function(T){"use strict";T.exports=Math.min},47900:function(T){"use strict";T.exports=ReferenceError},47969:function(T,e,l){l(98828)("Uint16",function(h){return function(_,b,y){return h(this,_,b,y)}})},48181:function(T,e,l){"use strict";var h=l(14598).Buffer;function f(){this.fileSystem={},this.dataSystem={}}function _(b){return 0===b.indexOf("/")&&(b=b.substring(1)),0===b.indexOf("/")&&(b=b.substring(1)),b}f.prototype.existsSync=function(b){return b=_(b),typeof this.fileSystem[b]<"u"||typeof this.dataSystem[b]<"u"},f.prototype.readFileSync=function(b,y){b=_(b);var M=this.dataSystem[b];if("string"==typeof M&&"utf8"===y)return M;if(M)return new h(M,"string"==typeof M?"base64":void 0);var D=this.fileSystem[b];if(D)return D;throw"File '"+b+"' not found in virtual file system"},f.prototype.writeFileSync=function(b,y){this.fileSystem[_(b)]=y},f.prototype.bindFS=function(b){this.dataSystem=b||{}},T.exports=new f},48306:function(T,e,l){"use strict";var v,h,f;l(20731),T.exports=(v=l(48352),l(51270),v.mode.CTR=(f=(h=v.lib.BlockCipherMode.extend()).Encryptor=h.extend({processBlock:function(b,y){var M=this._cipher,D=M.blockSize,x=this._iv,k=this._counter;x&&(k=this._counter=x.slice(0),this._iv=void 0);var Q=k.slice(0);M.encryptBlock(Q,0),k[D-1]=k[D-1]+1|0;for(var I=0;I>>2]|=(W[J>>>2]>>>24-J%4*8&255)<<24-(te+J)%4*8;else for(var re=0;re>>2]=W[re>>>2];return this.sigBytes+=P,this},clamp:function(){var H=this.words,G=this.sigBytes;H[G>>>2]&=4294967295<<32-G%4*8,H.length=h.ceil(G/4)},clone:function(){var H=x.clone.call(this);return H.words=this.words.slice(0),H},random:function(H){for(var G=[],W=0;W>>2]>>>24-P%4*8&255;te.push((J>>>4).toString(16)),te.push((15&J).toString(16))}return te.join("")},parse:function(H){for(var G=H.length,W=[],te=0;te>>3]|=parseInt(H.substr(te,2),16)<<24-te%8*4;return new k.init(W,G/2)}},d=Q.Latin1={stringify:function(H){for(var G=H.words,W=H.sigBytes,te=[],P=0;P>>2]>>>24-P%4*8&255));return te.join("")},parse:function(H){for(var G=H.length,W=[],te=0;te>>2]|=(255&H.charCodeAt(te))<<24-te%4*8;return new k.init(W,G)}},S=Q.Utf8={stringify:function(H){try{return decodeURIComponent(escape(d.stringify(H)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(H){return d.parse(unescape(encodeURIComponent(H)))}},R=D.BufferedBlockAlgorithm=x.extend({reset:function(){this._data=new k.init,this._nDataBytes=0},_append:function(H){"string"==typeof H&&(H=S.parse(H)),this._data.concat(H),this._nDataBytes+=H.sigBytes},_process:function(H){var G,W=this._data,te=W.words,P=W.sigBytes,J=this.blockSize,re=P/(4*J),he=(re=H?h.ceil(re):h.max((0|re)-this._minBufferSize,0))*J,oe=h.min(4*he,P);if(he){for(var Ce=0;Ce"u")return!1;for(var d in window)try{if(!k["$"+d]&&h.call(window,d)&&null!==window[d]&&"object"==typeof window[d])try{x(window[d])}catch{return!0}}catch{return!0}return!1}();v=function(S){var R=null!==S&&"object"==typeof S,z="[object Function]"===f.call(S),q=_(S),Z=R&&"[object String]"===f.call(S),H=[];if(!R&&!z&&!q)throw new TypeError("Object.keys called on a non-object");var G=M&&z;if(Z&&S.length>0&&!h.call(S,0))for(var W=0;W0)for(var te=0;te"u"||!Q)return x(d);try{return x(d)}catch{return!1}}(S),j=0;j1?arguments[1]:void 0)}})},49109:function(T,e,l){l(64384)},49261:function(T,e,l){"use strict";var v=l(56475),h=l(56614),f=l(61900);v({target:"Promise",stat:!0},{try:function(_){var b=h.f(this),y=f(_);return(y.error?b.reject:b.resolve)(y.value),b.promise}})},49820:function(T,e,l){"use strict";var te,P,v=l(2834),h=l(38347),f=l(25096),_=l(21182),b=l(74846),y=l(464),M=l(10819),D=l(70172).get,x=l(84030),k=l(97739),Q=y("native-string-replace",String.prototype.replace),I=RegExp.prototype.exec,d=I,S=h("".charAt),R=h("".indexOf),z=h("".replace),q=h("".slice),Z=(P=/b*/g,v(I,te=/a/,"a"),v(I,P,"a"),0!==te.lastIndex||0!==P.lastIndex),H=b.UNSUPPORTED_Y||b.BROKEN_CARET,G=void 0!==/()??/.exec("")[1];(Z||G||H||x||k)&&(d=function(P){var oe,Ce,me,ze,_e,Ae,ve,J=this,j=D(J),re=f(P),he=j.raw;if(he)return he.lastIndex=J.lastIndex,oe=v(d,he,re),J.lastIndex=he.lastIndex,oe;var ye=j.groups,Oe=H&&J.sticky,ae=v(_,J),Ee=J.source,Fe=0,Ve=re;if(Oe&&(ae=z(ae,"y",""),-1===R(ae,"g")&&(ae+="g"),Ve=q(re,J.lastIndex),J.lastIndex>0&&(!J.multiline||J.multiline&&"\n"!==S(re,J.lastIndex-1))&&(Ee="(?: "+Ee+")",Ve=" "+Ve,Fe++),Ce=new RegExp("^(?:"+Ee+")",ae)),G&&(Ce=new RegExp("^"+Ee+"$(?!\\s)",ae)),Z&&(me=J.lastIndex),ze=v(I,Oe?Ce:J,Ve),Oe?ze?(ze.input=q(ze.input,Fe),ze[0]=q(ze[0],Fe),ze.index=J.lastIndex,J.lastIndex+=ze[0].length):J.lastIndex=0:Z&&ze&&(J.lastIndex=J.global?ze.index+ze[0].length:me),G&&ze&&ze.length>1&&v(Q,ze[0],Ce,function(){for(_e=1;_e>>2]}},_.BlockCipher=d.extend({cfg:d.cfg.extend({mode:q,padding:H}),reset:function(){var Ce;d.reset.call(this);var me=this.cfg,ze=me.iv,_e=me.mode;this._xformMode==this._ENC_XFORM_MODE?Ce=_e.createEncryptor:(Ce=_e.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==Ce?this._mode.init(this,ze&&ze.words):(this._mode=Ce.call(_e,this,ze&&ze.words),this._mode.__creator=Ce)},_doProcessBlock:function(Ce,me){this._mode.processBlock(Ce,me)},_doFinalize:function(){var Ce,me=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(me.pad(this._data,this.blockSize),Ce=this._process(!0)):(Ce=this._process(!0),me.unpad(Ce)),Ce},blockSize:4}),W=_.CipherParams=b.extend({init:function(Ce){this.mixIn(Ce)},toString:function(Ce){return(Ce||this.formatter).stringify(this)}}),P=(f.format={}).OpenSSL={stringify:function(Ce){var ze=Ce.ciphertext,_e=Ce.salt;return(_e?y.create([1398893684,1701076831]).concat(_e).concat(ze):ze).toString(k)},parse:function(Ce){var me,ze=k.parse(Ce),_e=ze.words;return 1398893684==_e[0]&&1701076831==_e[1]&&(me=y.create(_e.slice(2,4)),_e.splice(0,4),ze.sigBytes-=16),W.create({ciphertext:ze,salt:me})}},J=_.SerializableCipher=b.extend({cfg:b.extend({format:P}),encrypt:function(Ce,me,ze,_e){_e=this.cfg.extend(_e);var Ae=Ce.createEncryptor(ze,_e),ve=Ae.finalize(me),ye=Ae.cfg;return W.create({ciphertext:ve,key:ze,iv:ye.iv,algorithm:Ce,mode:ye.mode,padding:ye.padding,blockSize:Ce.blockSize,formatter:_e.format})},decrypt:function(Ce,me,ze,_e){return _e=this.cfg.extend(_e),me=this._parse(me,_e.format),Ce.createDecryptor(ze,_e).finalize(me.ciphertext)},_parse:function(Ce,me){return"string"==typeof Ce?me.parse(Ce,this):Ce}}),re=(f.kdf={}).OpenSSL={execute:function(Ce,me,ze,_e,Ae){if(_e||(_e=y.random(8)),Ae)var ve=I.create({keySize:me+ze,hasher:Ae}).compute(Ce,_e);else ve=I.create({keySize:me+ze}).compute(Ce,_e);var ye=y.create(ve.words.slice(me),4*ze);return ve.sigBytes=4*me,W.create({key:ve,iv:ye,salt:_e})}},he=_.PasswordBasedCipher=J.extend({cfg:J.cfg.extend({kdf:re}),encrypt:function(Ce,me,ze,_e){var Ae=(_e=this.cfg.extend(_e)).kdf.execute(ze,Ce.keySize,Ce.ivSize,_e.salt,_e.hasher);_e.iv=Ae.iv;var ve=J.encrypt.call(this,Ce,me,Ae.key,_e);return ve.mixIn(Ae),ve},decrypt:function(Ce,me,ze,_e){_e=this.cfg.extend(_e),me=this._parse(me,_e.format);var Ae=_e.kdf.execute(ze,Ce.keySize,Ce.ivSize,me.salt,_e.hasher);return _e.iv=Ae.iv,J.decrypt.call(this,Ce,me,Ae.key,_e)}}))))},51334:function(T,e,l){"use strict";var v=l(38486),h=l(95892),f=l(38688),_=l(15567),b=f("species");T.exports=function(y){var M=v(y);_&&M&&!M[b]&&(0,h.f)(M,b,{configurable:!0,get:function(){return this}})}},51374:function(T,e,l){"use strict";var v=l(77802).supportsDescriptors,h=l(7844),f=l(68109),_=Object.defineProperty,b=l(15293),y=l(87106),M=/a/;T.exports=function(){if(!v||!y)throw new b("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var x=h(),k=y(M),Q=f(k,"flags");return(!Q||Q.get!==x)&&_(k,"flags",{configurable:!0,enumerable:!1,get:x}),x}},51839:function(T,e,l){var v=l(32631);T.exports=function(h,f){var _=h[f];return null==_?void 0:v(_)}},51868:function(T,e,l){var v=l(94578),h=l(24517),f=l(3840);T.exports=function(_,b,y){var M,D;return f&&v(M=b.constructor)&&M!==y&&h(D=M.prototype)&&D!==y.prototype&&f(_,D),_}},51965:function(T,e,l){"use strict";var h;h=function(v){return function(){var h=v,_=h.lib.Hasher,b=h.x64,y=b.Word,M=b.WordArray,D=h.algo;function x(){return y.create.apply(y,arguments)}var k=[x(1116352408,3609767458),x(1899447441,602891725),x(3049323471,3964484399),x(3921009573,2173295548),x(961987163,4081628472),x(1508970993,3053834265),x(2453635748,2937671579),x(2870763221,3664609560),x(3624381080,2734883394),x(310598401,1164996542),x(607225278,1323610764),x(1426881987,3590304994),x(1925078388,4068182383),x(2162078206,991336113),x(2614888103,633803317),x(3248222580,3479774868),x(3835390401,2666613458),x(4022224774,944711139),x(264347078,2341262773),x(604807628,2007800933),x(770255983,1495990901),x(1249150122,1856431235),x(1555081692,3175218132),x(1996064986,2198950837),x(2554220882,3999719339),x(2821834349,766784016),x(2952996808,2566594879),x(3210313671,3203337956),x(3336571891,1034457026),x(3584528711,2466948901),x(113926993,3758326383),x(338241895,168717936),x(666307205,1188179964),x(773529912,1546045734),x(1294757372,1522805485),x(1396182291,2643833823),x(1695183700,2343527390),x(1986661051,1014477480),x(2177026350,1206759142),x(2456956037,344077627),x(2730485921,1290863460),x(2820302411,3158454273),x(3259730800,3505952657),x(3345764771,106217008),x(3516065817,3606008344),x(3600352804,1432725776),x(4094571909,1467031594),x(275423344,851169720),x(430227734,3100823752),x(506948616,1363258195),x(659060556,3750685593),x(883997877,3785050280),x(958139571,3318307427),x(1322822218,3812723403),x(1537002063,2003034995),x(1747873779,3602036899),x(1955562222,1575990012),x(2024104815,1125592928),x(2227730452,2716904306),x(2361852424,442776044),x(2428436474,593698344),x(2756734187,3733110249),x(3204031479,2999351573),x(3329325298,3815920427),x(3391569614,3928383900),x(3515267271,566280711),x(3940187606,3454069534),x(4118630271,4000239992),x(116418474,1914138554),x(174292421,2731055270),x(289380356,3203993006),x(460393269,320620315),x(685471733,587496836),x(852142971,1086792851),x(1017036298,365543100),x(1126000580,2618297676),x(1288033470,3409855158),x(1501505948,4234509866),x(1607167915,987167468),x(1816402316,1246189591)],Q=[];!function(){for(var d=0;d<80;d++)Q[d]=x()}();var I=D.SHA512=_.extend({_doReset:function(){this._hash=new M.init([new y.init(1779033703,4089235720),new y.init(3144134277,2227873595),new y.init(1013904242,4271175723),new y.init(2773480762,1595750129),new y.init(1359893119,2917565137),new y.init(2600822924,725511199),new y.init(528734635,4215389547),new y.init(1541459225,327033209)])},_doProcessBlock:function(S,R){for(var z=this._hash.words,q=z[0],Z=z[1],H=z[2],G=z[3],W=z[4],te=z[5],P=z[6],J=z[7],j=q.high,re=q.low,he=Z.high,oe=Z.low,Ce=H.high,me=H.low,ze=G.high,_e=G.low,Ae=W.high,ve=W.low,ye=te.high,Oe=te.low,ae=P.high,Ee=P.low,Fe=J.high,Ve=J.low,mt=j,St=re,oi=he,He=oe,be=Ce,je=me,Ke=ze,_t=_e,Nt=Ae,ut=ve,et=ye,Xe=Oe,It=ae,Dt=Ee,vt=Fe,Qt=Ve,qe=0;qe<80;qe++){var ke,it,gt=Q[qe];if(qe<16)it=gt.high=0|S[R+2*qe],ke=gt.low=0|S[R+2*qe+1];else{var ai=Q[qe-15],Rt=ai.high,Gt=ai.low,mi=(Gt>>>1|Rt<<31)^(Gt>>>8|Rt<<24)^(Gt>>>7|Rt<<25),Zi=Q[qe-2],Qi=Zi.high,Ht=Zi.low,ge=(Ht>>>19|Qi<<13)^(Ht<<3|Qi>>>29)^(Ht>>>6|Qi<<26),Se=Q[qe-7],rt=Q[qe-16],on=rt.low;gt.high=it=(it=(it=((Rt>>>1|Gt<<31)^(Rt>>>8|Gt<<24)^Rt>>>7)+Se.high+((ke=mi+Se.low)>>>0>>0?1:0))+((Qi>>>19|Ht<<13)^(Qi<<3|Ht>>>29)^Qi>>>6)+((ke+=ge)>>>0>>0?1:0))+rt.high+((ke+=on)>>>0>>0?1:0),gt.low=ke}var fn,Ge=Nt&et^~Nt&It,_i=ut&Xe^~ut&Dt,qt=mt&oi^mt&be^oi&be,Ut=(St>>>28|mt<<4)^(St<<30|mt>>>2)^(St<<25|mt>>>7),ln=k[qe],or=ln.low,Pn=vt+((Nt>>>14|ut<<18)^(Nt>>>18|ut<<14)^(Nt<<23|ut>>>9))+((fn=Qt+((ut>>>14|Nt<<18)^(ut>>>18|Nt<<14)^(ut<<23|Nt>>>9)))>>>0>>0?1:0),mn=Ut+(St&He^St&je^He&je);vt=It,Qt=Dt,It=et,Dt=Xe,et=Nt,Xe=ut,Nt=Ke+(Pn=(Pn=(Pn=Pn+Ge+((fn+=_i)>>>0<_i>>>0?1:0))+ln.high+((fn+=or)>>>0>>0?1:0))+it+((fn+=ke)>>>0>>0?1:0))+((ut=_t+fn|0)>>>0<_t>>>0?1:0)|0,Ke=be,_t=je,be=oi,je=He,oi=mt,He=St,mt=Pn+(((mt>>>28|St<<4)^(mt<<30|St>>>2)^(mt<<25|St>>>7))+qt+(mn>>>0>>0?1:0))+((St=fn+mn|0)>>>0>>0?1:0)|0}re=q.low=re+St,q.high=j+mt+(re>>>0>>0?1:0),oe=Z.low=oe+He,Z.high=he+oi+(oe>>>0>>0?1:0),me=H.low=me+je,H.high=Ce+be+(me>>>0>>0?1:0),_e=G.low=_e+_t,G.high=ze+Ke+(_e>>>0<_t>>>0?1:0),ve=W.low=ve+ut,W.high=Ae+Nt+(ve>>>0>>0?1:0),Oe=te.low=Oe+Xe,te.high=ye+et+(Oe>>>0>>0?1:0),Ee=P.low=Ee+Dt,P.high=ae+It+(Ee>>>0
>>0?1:0),Ve=J.low=Ve+Qt,J.high=Fe+vt+(Ve>>>0>>0?1:0)},_doFinalize:function(){var S=this._data,R=S.words,z=8*this._nDataBytes,q=8*S.sigBytes;return R[q>>>5]|=128<<24-q%32,R[30+(q+128>>>10<<5)]=Math.floor(z/4294967296),R[31+(q+128>>>10<<5)]=z,S.sigBytes=4*R.length,this._process(),this._hash.toX32()},clone:function(){var S=_.clone.call(this);return S._hash=this._hash.clone(),S},blockSize:32});h.SHA512=_._createHelper(I),h.HmacSHA512=_._createHmacHelper(I)}(),v.SHA512},T.exports=h(l(48352),l(18909))},52331:function(T,e){"use strict";function v(f,_){this.encoder=f,this.addBOM=!0}function h(f,_){this.decoder=f,this.pass=!1,this.options=_||{}}e.PrependBOM=v,v.prototype.write=function(f){return this.addBOM&&(f="\ufeff"+f,this.addBOM=!1),this.encoder.write(f)},v.prototype.end=function(){return this.encoder.end()},e.StripBOM=h,h.prototype.write=function(f){var _=this.decoder.write(f);return this.pass||!_||("\ufeff"===_[0]&&(_=_.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),_},h.prototype.end=function(){return this.decoder.end()}},52529:function(T,e,l){"use strict";var v=l(59754).exportTypedArrayMethod,h=l(47044),f=l(32010),_=l(38347),b=f.Uint8Array,y=b&&b.prototype||{},M=[].toString,D=_([].join);h(function(){M.call({})})&&(M=function(){return D(this)}),v("toString",M,y.toString!=M)},52564:function(T,e,l){var v=l(32010),h=l(24663),f=l(94578),_=l(93975),y=l(38688)("toStringTag"),M=v.Object,D="Arguments"==_(function(){return arguments}());T.exports=h?_:function(k){var Q,I,d;return void 0===k?"Undefined":null===k?"Null":"string"==typeof(I=function(k,Q){try{return k[Q]}catch{}}(Q=M(k),y))?I:D?_(Q):"Object"==(d=_(Q))&&f(Q.callee)?"Arguments":d}},52598:function(T,e,l){"use strict";var v=l(24663),h=l(52564);T.exports=v?{}.toString:function(){return"[object "+h(this)+"]"}},52676:function(T,e,l){"use strict";var v=l(14598).Buffer,f=l(56128).Number,_=l(18128);T.exports=function(){function y(D,x){void 0===x&&(x="ascii"),this.length=D,this.encoding=x}var M=y.prototype;return M.decode=function(x,k){var Q,I;if(null!=this.length)Q=_.resolveLength(this.length,x,k);else{var d;for(d=x.buffer,Q=x.length,I=x.pos;I0?v.concat([k,Q]):k},f.decode=function(y,M,D){"string"==typeof y&&(f.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),f.skipDecodeWarning=!0),y=v.from(""+(y||""),"binary"));var x=f.getDecoder(M,D),k=x.write(y),Q=x.end();return Q?k+Q:k},f.encodingExists=function(y){try{return f.getCodec(y),!0}catch{return!1}},f.toEncoding=f.encode,f.fromEncoding=f.decode,f._codecDataCache={},f.getCodec=function(y){f.encodings||(f.encodings=l(26326));for(var M=f._canonicalizeEncoding(y),D={};;){var x=f._codecDataCache[M];if(x)return x;var k=f.encodings[M];switch(typeof k){case"string":M=k;break;case"object":for(var Q in k)D[Q]=k[Q];D.encodingName||(D.encodingName=M),M=k.type;break;case"function":return D.encodingName||(D.encodingName=M),x=new k(D,f),f._codecDataCache[D.encodingName]=x,x;default:throw new Error("Encoding not recognized: '"+y+"' (searched as: '"+M+"')")}}},f._canonicalizeEncoding=function(b){return(""+b).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")},f.getEncoder=function(y,M){var D=f.getCodec(y),x=new D.encoder(M,D);return D.bomAware&&M&&M.addBOM&&(x=new h.PrependBOM(x,M)),x},f.getDecoder=function(y,M){var D=f.getCodec(y),x=new D.decoder(M,D);return D.bomAware&&!(M&&!1===M.stripBOM)&&(x=new h.StripBOM(x,M)),x},f.enableStreamingAPI=function(y){if(!f.supportsStreams){var M=l(34506)(y);f.IconvLiteEncoderStream=M.IconvLiteEncoderStream,f.IconvLiteDecoderStream=M.IconvLiteDecoderStream,f.encodeStream=function(x,k){return new f.IconvLiteEncoderStream(f.getEncoder(x,k),k)},f.decodeStream=function(x,k){return new f.IconvLiteDecoderStream(f.getDecoder(x,k),k)},f.supportsStreams=!0}};try{_=l(16403)}catch{}_&&_.Transform?f.enableStreamingAPI(_):f.encodeStream=f.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}},54861:function(T,e,l){"use strict";var v=l(70770),h=l(91867).isNumber,f=l(91867).pack,_=l(91867).offsetVector,b=l(79178);function y(x,k){this.context=x,this.contextStack=[],this.tracker=k}function M(x,k,Q){null==Q||Q<0||Q>x.items.length?x.items.push(k):x.items.splice(Q,0,k)}y.prototype.addLine=function(x,k,Q){var I=x.getHeight(),d=this.context,S=d.getCurrentPage(),R=this.getCurrentPositionOnPage();return!(d.availableHeight0&&x.inlines[0].alignment,d=0;switch(I){case"right":d=k-Q;break;case"center":d=(k-Q)/2}if(d&&(x.x=(x.x||0)+d),"justify"===I&&!x.newLineForced&&!x.lastLineInParagraph&&x.inlines.length>1)for(var S=(k-Q)/(x.inlines.length-1),R=1,z=x.inlines.length;R0)&&(void 0===x._x&&(x._x=x.x||0),x.x=I.x+x._x,x.y=I.y,this.alignImage(x),M(d,{type:Q||"image",item:x},k),I.moveDown(x._height),S)},y.prototype.addSVG=function(x,k){return this.addImage(x,k,"svg")},y.prototype.addQr=function(x,k){var Q=this.context,I=Q.getCurrentPage(),d=this.getCurrentPositionOnPage();if(!I||void 0===x.absolutePosition&&Q.availableHeightd.availableHeight||(x.items.forEach(function(R){switch(R.type){case"line":var z=function D(x){var k=new v(x.maxWidth);for(var Q in x)x.hasOwnProperty(Q)&&(k[Q]=x[Q]);return k}(R.item);z._node&&(z._node.positions[0].pageNumber=d.page+1),z.x=(z.x||0)+(k?x.xOffset||0:d.x),z.y=(z.y||0)+(Q?x.yOffset||0:d.y),S.items.push({type:"line",item:z});break;case"vector":var q=f(R.item);_(q,k?x.xOffset||0:d.x,Q?x.yOffset||0:d.y),q._isFillColorFromUnbreakable?(delete q._isFillColorFromUnbreakable,S.items.splice(d.backgroundLength[d.page],0,{type:"vector",item:q})):S.items.push({type:"vector",item:q});break;case"image":case"svg":var Z=f(R.item);Z.x=(Z.x||0)+(k?x.xOffset||0:d.x),Z.y=(Z.y||0)+(Q?x.yOffset||0:d.y),S.items.push({type:R.type,item:Z})}}),I||d.moveDown(x.height),0))},y.prototype.pushContext=function(x,k){void 0===x&&(k=this.context.getCurrentPage().height-this.context.pageMargins.top-this.context.pageMargins.bottom,x=this.context.availableWidth),h(x)&&(x=new b({width:x,height:k},{left:0,right:0,top:0,bottom:0})),this.contextStack.push(this.context),this.context=x},y.prototype.popContext=function(){this.context=this.contextStack.pop()},y.prototype.getCurrentPositionOnPage=function(){return(this.contextStack[0]||this.context).getCurrentPosition()},T.exports=y},55215:function(T,e,l){"use strict";var v=Function.prototype.call,h=Object.prototype.hasOwnProperty,f=l(5049);T.exports=f.call(v,h)},55480:function(T,e,l){var v=l(32010),h=l(7421),f="__core-js_shared__",_=v[f]||h(f,{});T.exports=_},55481:function(T,e,l){var v=l(47044);T.exports=!v(function(){return Object.isExtensible(Object.preventExtensions({}))})},55574:function(T,e){"use strict";var l={}.propertyIsEnumerable,v=Object.getOwnPropertyDescriptor,h=v&&!l.call({1:2},1);e.f=h?function(_){var b=v(this,_);return!!b&&b.enumerable}:l},55914:function(T){"use strict";T.exports=JSON.parse('[["a140","\ue4c6",62],["a180","\ue505",32],["a240","\ue526",62],["a280","\ue565",32],["a2ab","\ue766",5],["a2e3","\u20ac\ue76d"],["a2ef","\ue76e\ue76f"],["a2fd","\ue770\ue771"],["a340","\ue586",62],["a380","\ue5c5",31,"\u3000"],["a440","\ue5e6",62],["a480","\ue625",32],["a4f4","\ue772",10],["a540","\ue646",62],["a580","\ue685",32],["a5f7","\ue77d",7],["a640","\ue6a6",62],["a680","\ue6e5",32],["a6b9","\ue785",7],["a6d9","\ue78d",6],["a6ec","\ue794\ue795"],["a6f3","\ue796"],["a6f6","\ue797",8],["a740","\ue706",62],["a780","\ue745",32],["a7c2","\ue7a0",14],["a7f2","\ue7af",12],["a896","\ue7bc",10],["a8bc","\u1e3f"],["a8bf","\u01f9"],["a8c1","\ue7c9\ue7ca\ue7cb\ue7cc"],["a8ea","\ue7cd",20],["a958","\ue7e2"],["a95b","\ue7e3"],["a95d","\ue7e4\ue7e5\ue7e6"],["a989","\u303e\u2ff0",11],["a997","\ue7f4",12],["a9f0","\ue801",14],["aaa1","\ue000",93],["aba1","\ue05e",93],["aca1","\ue0bc",93],["ada1","\ue11a",93],["aea1","\ue178",93],["afa1","\ue1d6",93],["d7fa","\ue810",4],["f8a1","\ue234",93],["f9a1","\ue292",93],["faa1","\ue2f0",93],["fba1","\ue34e",93],["fca1","\ue3ac",93],["fda1","\ue40a",93],["fe50","\u2e81\ue816\ue817\ue818\u2e84\u3473\u3447\u2e88\u2e8b\ue81e\u359e\u361a\u360e\u2e8c\u2e97\u396e\u3918\ue826\u39cf\u39df\u3a73\u39d0\ue82b\ue82c\u3b4e\u3c6e\u3ce0\u2ea7\ue831\ue832\u2eaa\u4056\u415f\u2eae\u4337\u2eb3\u2eb6\u2eb7\ue83b\u43b1\u43ac\u2ebb\u43dd\u44d6\u4661\u464c\ue843"],["fe80","\u4723\u4729\u477c\u478d\u2eca\u4947\u497a\u497d\u4982\u4983\u4985\u4986\u499f\u499b\u49b7\u49b6\ue854\ue855\u4ca3\u4c9f\u4ca0\u4ca1\u4c77\u4ca2\u4d13",6,"\u4dae\ue864\ue468",93],["8135f437","\ue7c7"]]')},56128:function(T,e,l){"use strict";function v(y,M){y.prototype=Object.create(M.prototype),y.prototype.constructor=y,h(y,M)}function h(y,M){return(h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(D,x){return D.__proto__=x,D})(y,M)}var f=l(69591),_=function(){function y(D,x){void 0===x&&(x="BE"),this.type=D,this.endian=x,this.fn=this.type,"8"!==this.type[this.type.length-1]&&(this.fn+=this.endian)}var M=y.prototype;return M.size=function(){return f.TYPES[this.type]},M.decode=function(x){return x["read"+this.fn]()},M.encode=function(x,k){return x["write"+this.fn](k)},y}();e.Number=_,e.uint8=new _("UInt8"),e.uint16be=e.uint16=new _("UInt16","BE"),e.uint16le=new _("UInt16","LE"),e.uint24be=e.uint24=new _("UInt24","BE"),e.uint24le=new _("UInt24","LE"),e.uint32be=e.uint32=new _("UInt32","BE"),e.uint32le=new _("UInt32","LE"),e.int8=new _("Int8"),e.int16be=e.int16=new _("Int16","BE"),e.int16le=new _("Int16","LE"),e.int24be=e.int24=new _("Int24","BE"),e.int24le=new _("Int24","LE"),e.int32be=e.int32=new _("Int32","BE"),e.int32le=new _("Int32","LE"),e.floatbe=e.float=new _("Float","BE"),e.floatle=new _("Float","LE"),e.doublebe=e.double=new _("Double","BE"),e.doublele=new _("Double","LE");var b=function(y){function M(x,k,Q){var I;return void 0===Q&&(Q=x>>1),(I=y.call(this,"Int"+x,k)||this)._point=1<=51||!v(function(){var y=[];return(y.constructor={})[_]=function(){return{foo:1}},1!==y[b](Boolean).foo})}},56406:function(T){"use strict";T.exports=JSON.parse('[["0","\\u0000",127],["8ea1","\uff61",62],["a1a1","\u3000\u3001\u3002\uff0c\uff0e\u30fb\uff1a\uff1b\uff1f\uff01\u309b\u309c\xb4\uff40\xa8\uff3e\uffe3\uff3f\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\u2015\u2010\uff0f\uff3c\uff5e\u2225\uff5c\u2026\u2025\u2018\u2019\u201c\u201d\uff08\uff09\u3014\u3015\uff3b\uff3d\uff5b\uff5d\u3008",9,"\uff0b\uff0d\xb1\xd7\xf7\uff1d\u2260\uff1c\uff1e\u2266\u2267\u221e\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uffe5\uff04\uffe0\uffe1\uff05\uff03\uff06\uff0a\uff20\xa7\u2606\u2605\u25cb\u25cf\u25ce\u25c7"],["a2a1","\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u203b\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229"],["a2ca","\u2227\u2228\uffe2\u21d2\u21d4\u2200\u2203"],["a2dc","\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c"],["a2f2","\u212b\u2030\u266f\u266d\u266a\u2020\u2021\xb6"],["a2fe","\u25ef"],["a3b0","\uff10",9],["a3c1","\uff21",25],["a3e1","\uff41",25],["a4a1","\u3041",82],["a5a1","\u30a1",85],["a6a1","\u0391",16,"\u03a3",6],["a6c1","\u03b1",16,"\u03c3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334d\u3318\u3327\u3303\u3336\u3351\u3357\u330d\u3326\u3323\u332b\u334a\u333b\u339c\u339d\u339e\u338e\u338f\u33c4\u33a1"],["addf","\u337b\u301d\u301f\u2116\u33cd\u2121\u32a4",4,"\u3231\u3232\u3239\u337e\u337d\u337c\u2252\u2261\u222b\u222e\u2211\u221a\u22a5\u2220\u221f\u22bf\u2235\u2229\u222a"],["b0a1","\u4e9c\u5516\u5a03\u963f\u54c0\u611b\u6328\u59f6\u9022\u8475\u831c\u7a50\u60aa\u63e1\u6e25\u65ed\u8466\u82a6\u9bf5\u6893\u5727\u65a1\u6271\u5b9b\u59d0\u867b\u98f4\u7d62\u7dbe\u9b8e\u6216\u7c9f\u88b7\u5b89\u5eb5\u6309\u6697\u6848\u95c7\u978d\u674f\u4ee5\u4f0a\u4f4d\u4f9d\u5049\u56f2\u5937\u59d4\u5a01\u5c09\u60df\u610f\u6170\u6613\u6905\u70ba\u754f\u7570\u79fb\u7dad\u7def\u80c3\u840e\u8863\u8b02\u9055\u907a\u533b\u4e95\u4ea5\u57df\u80b2\u90c1\u78ef\u4e00\u58f1\u6ea2\u9038\u7a32\u8328\u828b\u9c2f\u5141\u5370\u54bd\u54e1\u56e0\u59fb\u5f15\u98f2\u6deb\u80e4\u852d"],["b1a1","\u9662\u9670\u96a0\u97fb\u540b\u53f3\u5b87\u70cf\u7fbd\u8fc2\u96e8\u536f\u9d5c\u7aba\u4e11\u7893\u81fc\u6e26\u5618\u5504\u6b1d\u851a\u9c3b\u59e5\u53a9\u6d66\u74dc\u958f\u5642\u4e91\u904b\u96f2\u834f\u990c\u53e1\u55b6\u5b30\u5f71\u6620\u66f3\u6804\u6c38\u6cf3\u6d29\u745b\u76c8\u7a4e\u9834\u82f1\u885b\u8a60\u92ed\u6db2\u75ab\u76ca\u99c5\u60a6\u8b01\u8d8a\u95b2\u698e\u53ad\u5186\u5712\u5830\u5944\u5bb4\u5ef6\u6028\u63a9\u63f4\u6cbf\u6f14\u708e\u7114\u7159\u71d5\u733f\u7e01\u8276\u82d1\u8597\u9060\u925b\u9d1b\u5869\u65bc\u6c5a\u7525\u51f9\u592e\u5965\u5f80\u5fdc"],["b2a1","\u62bc\u65fa\u6a2a\u6b27\u6bb4\u738b\u7fc1\u8956\u9d2c\u9d0e\u9ec4\u5ca1\u6c96\u837b\u5104\u5c4b\u61b6\u81c6\u6876\u7261\u4e59\u4ffa\u5378\u6069\u6e29\u7a4f\u97f3\u4e0b\u5316\u4eee\u4f55\u4f3d\u4fa1\u4f73\u52a0\u53ef\u5609\u590f\u5ac1\u5bb6\u5be1\u79d1\u6687\u679c\u67b6\u6b4c\u6cb3\u706b\u73c2\u798d\u79be\u7a3c\u7b87\u82b1\u82db\u8304\u8377\u83ef\u83d3\u8766\u8ab2\u5629\u8ca8\u8fe6\u904e\u971e\u868a\u4fc4\u5ce8\u6211\u7259\u753b\u81e5\u82bd\u86fe\u8cc0\u96c5\u9913\u99d5\u4ecb\u4f1a\u89e3\u56de\u584a\u58ca\u5efb\u5feb\u602a\u6094\u6062\u61d0\u6212\u62d0\u6539"],["b3a1","\u9b41\u6666\u68b0\u6d77\u7070\u754c\u7686\u7d75\u82a5\u87f9\u958b\u968e\u8c9d\u51f1\u52be\u5916\u54b3\u5bb3\u5d16\u6168\u6982\u6daf\u788d\u84cb\u8857\u8a72\u93a7\u9ab8\u6d6c\u99a8\u86d9\u57a3\u67ff\u86ce\u920e\u5283\u5687\u5404\u5ed3\u62e1\u64b9\u683c\u6838\u6bbb\u7372\u78ba\u7a6b\u899a\u89d2\u8d6b\u8f03\u90ed\u95a3\u9694\u9769\u5b66\u5cb3\u697d\u984d\u984e\u639b\u7b20\u6a2b\u6a7f\u68b6\u9c0d\u6f5f\u5272\u559d\u6070\u62ec\u6d3b\u6e07\u6ed1\u845b\u8910\u8f44\u4e14\u9c39\u53f6\u691b\u6a3a\u9784\u682a\u515c\u7ac3\u84b2\u91dc\u938c\u565b\u9d28\u6822\u8305\u8431"],["b4a1","\u7ca5\u5208\u82c5\u74e6\u4e7e\u4f83\u51a0\u5bd2\u520a\u52d8\u52e7\u5dfb\u559a\u582a\u59e6\u5b8c\u5b98\u5bdb\u5e72\u5e79\u60a3\u611f\u6163\u61be\u63db\u6562\u67d1\u6853\u68fa\u6b3e\u6b53\u6c57\u6f22\u6f97\u6f45\u74b0\u7518\u76e3\u770b\u7aff\u7ba1\u7c21\u7de9\u7f36\u7ff0\u809d\u8266\u839e\u89b3\u8acc\u8cab\u9084\u9451\u9593\u9591\u95a2\u9665\u97d3\u9928\u8218\u4e38\u542b\u5cb8\u5dcc\u73a9\u764c\u773c\u5ca9\u7feb\u8d0b\u96c1\u9811\u9854\u9858\u4f01\u4f0e\u5371\u559c\u5668\u57fa\u5947\u5b09\u5bc4\u5c90\u5e0c\u5e7e\u5fcc\u63ee\u673a\u65d7\u65e2\u671f\u68cb\u68c4"],["b5a1","\u6a5f\u5e30\u6bc5\u6c17\u6c7d\u757f\u7948\u5b63\u7a00\u7d00\u5fbd\u898f\u8a18\u8cb4\u8d77\u8ecc\u8f1d\u98e2\u9a0e\u9b3c\u4e80\u507d\u5100\u5993\u5b9c\u622f\u6280\u64ec\u6b3a\u72a0\u7591\u7947\u7fa9\u87fb\u8abc\u8b70\u63ac\u83ca\u97a0\u5409\u5403\u55ab\u6854\u6a58\u8a70\u7827\u6775\u9ecd\u5374\u5ba2\u811a\u8650\u9006\u4e18\u4e45\u4ec7\u4f11\u53ca\u5438\u5bae\u5f13\u6025\u6551\u673d\u6c42\u6c72\u6ce3\u7078\u7403\u7a76\u7aae\u7b08\u7d1a\u7cfe\u7d66\u65e7\u725b\u53bb\u5c45\u5de8\u62d2\u62e0\u6319\u6e20\u865a\u8a31\u8ddd\u92f8\u6f01\u79a6\u9b5a\u4ea8\u4eab\u4eac"],["b6a1","\u4f9b\u4fa0\u50d1\u5147\u7af6\u5171\u51f6\u5354\u5321\u537f\u53eb\u55ac\u5883\u5ce1\u5f37\u5f4a\u602f\u6050\u606d\u631f\u6559\u6a4b\u6cc1\u72c2\u72ed\u77ef\u80f8\u8105\u8208\u854e\u90f7\u93e1\u97ff\u9957\u9a5a\u4ef0\u51dd\u5c2d\u6681\u696d\u5c40\u66f2\u6975\u7389\u6850\u7c81\u50c5\u52e4\u5747\u5dfe\u9326\u65a4\u6b23\u6b3d\u7434\u7981\u79bd\u7b4b\u7dca\u82b9\u83cc\u887f\u895f\u8b39\u8fd1\u91d1\u541f\u9280\u4e5d\u5036\u53e5\u533a\u72d7\u7396\u77e9\u82e6\u8eaf\u99c6\u99c8\u99d2\u5177\u611a\u865e\u55b0\u7a7a\u5076\u5bd3\u9047\u9685\u4e32\u6adb\u91e7\u5c51\u5c48"],["b7a1","\u6398\u7a9f\u6c93\u9774\u8f61\u7aaa\u718a\u9688\u7c82\u6817\u7e70\u6851\u936c\u52f2\u541b\u85ab\u8a13\u7fa4\u8ecd\u90e1\u5366\u8888\u7941\u4fc2\u50be\u5211\u5144\u5553\u572d\u73ea\u578b\u5951\u5f62\u5f84\u6075\u6176\u6167\u61a9\u63b2\u643a\u656c\u666f\u6842\u6e13\u7566\u7a3d\u7cfb\u7d4c\u7d99\u7e4b\u7f6b\u830e\u834a\u86cd\u8a08\u8a63\u8b66\u8efd\u981a\u9d8f\u82b8\u8fce\u9be8\u5287\u621f\u6483\u6fc0\u9699\u6841\u5091\u6b20\u6c7a\u6f54\u7a74\u7d50\u8840\u8a23\u6708\u4ef6\u5039\u5026\u5065\u517c\u5238\u5263\u55a7\u570f\u5805\u5acc\u5efa\u61b2\u61f8\u62f3\u6372"],["b8a1","\u691c\u6a29\u727d\u72ac\u732e\u7814\u786f\u7d79\u770c\u80a9\u898b\u8b19\u8ce2\u8ed2\u9063\u9375\u967a\u9855\u9a13\u9e78\u5143\u539f\u53b3\u5e7b\u5f26\u6e1b\u6e90\u7384\u73fe\u7d43\u8237\u8a00\u8afa\u9650\u4e4e\u500b\u53e4\u547c\u56fa\u59d1\u5b64\u5df1\u5eab\u5f27\u6238\u6545\u67af\u6e56\u72d0\u7cca\u88b4\u80a1\u80e1\u83f0\u864e\u8a87\u8de8\u9237\u96c7\u9867\u9f13\u4e94\u4e92\u4f0d\u5348\u5449\u543e\u5a2f\u5f8c\u5fa1\u609f\u68a7\u6a8e\u745a\u7881\u8a9e\u8aa4\u8b77\u9190\u4e5e\u9bc9\u4ea4\u4f7c\u4faf\u5019\u5016\u5149\u516c\u529f\u52b9\u52fe\u539a\u53e3\u5411"],["b9a1","\u540e\u5589\u5751\u57a2\u597d\u5b54\u5b5d\u5b8f\u5de5\u5de7\u5df7\u5e78\u5e83\u5e9a\u5eb7\u5f18\u6052\u614c\u6297\u62d8\u63a7\u653b\u6602\u6643\u66f4\u676d\u6821\u6897\u69cb\u6c5f\u6d2a\u6d69\u6e2f\u6e9d\u7532\u7687\u786c\u7a3f\u7ce0\u7d05\u7d18\u7d5e\u7db1\u8015\u8003\u80af\u80b1\u8154\u818f\u822a\u8352\u884c\u8861\u8b1b\u8ca2\u8cfc\u90ca\u9175\u9271\u783f\u92fc\u95a4\u964d\u9805\u9999\u9ad8\u9d3b\u525b\u52ab\u53f7\u5408\u58d5\u62f7\u6fe0\u8c6a\u8f5f\u9eb9\u514b\u523b\u544a\u56fd\u7a40\u9177\u9d60\u9ed2\u7344\u6f09\u8170\u7511\u5ffd\u60da\u9aa8\u72db\u8fbc"],["baa1","\u6b64\u9803\u4eca\u56f0\u5764\u58be\u5a5a\u6068\u61c7\u660f\u6606\u6839\u68b1\u6df7\u75d5\u7d3a\u826e\u9b42\u4e9b\u4f50\u53c9\u5506\u5d6f\u5de6\u5dee\u67fb\u6c99\u7473\u7802\u8a50\u9396\u88df\u5750\u5ea7\u632b\u50b5\u50ac\u518d\u6700\u54c9\u585e\u59bb\u5bb0\u5f69\u624d\u63a1\u683d\u6b73\u6e08\u707d\u91c7\u7280\u7815\u7826\u796d\u658e\u7d30\u83dc\u88c1\u8f09\u969b\u5264\u5728\u6750\u7f6a\u8ca1\u51b4\u5742\u962a\u583a\u698a\u80b4\u54b2\u5d0e\u57fc\u7895\u9dfa\u4f5c\u524a\u548b\u643e\u6628\u6714\u67f5\u7a84\u7b56\u7d22\u932f\u685c\u9bad\u7b39\u5319\u518a\u5237"],["bba1","\u5bdf\u62f6\u64ae\u64e6\u672d\u6bba\u85a9\u96d1\u7690\u9bd6\u634c\u9306\u9bab\u76bf\u6652\u4e09\u5098\u53c2\u5c71\u60e8\u6492\u6563\u685f\u71e6\u73ca\u7523\u7b97\u7e82\u8695\u8b83\u8cdb\u9178\u9910\u65ac\u66ab\u6b8b\u4ed5\u4ed4\u4f3a\u4f7f\u523a\u53f8\u53f2\u55e3\u56db\u58eb\u59cb\u59c9\u59ff\u5b50\u5c4d\u5e02\u5e2b\u5fd7\u601d\u6307\u652f\u5b5c\u65af\u65bd\u65e8\u679d\u6b62\u6b7b\u6c0f\u7345\u7949\u79c1\u7cf8\u7d19\u7d2b\u80a2\u8102\u81f3\u8996\u8a5e\u8a69\u8a66\u8a8c\u8aee\u8cc7\u8cdc\u96cc\u98fc\u6b6f\u4e8b\u4f3c\u4f8d\u5150\u5b57\u5bfa\u6148\u6301\u6642"],["bca1","\u6b21\u6ecb\u6cbb\u723e\u74bd\u75d4\u78c1\u793a\u800c\u8033\u81ea\u8494\u8f9e\u6c50\u9e7f\u5f0f\u8b58\u9d2b\u7afa\u8ef8\u5b8d\u96eb\u4e03\u53f1\u57f7\u5931\u5ac9\u5ba4\u6089\u6e7f\u6f06\u75be\u8cea\u5b9f\u8500\u7be0\u5072\u67f4\u829d\u5c61\u854a\u7e1e\u820e\u5199\u5c04\u6368\u8d66\u659c\u716e\u793e\u7d17\u8005\u8b1d\u8eca\u906e\u86c7\u90aa\u501f\u52fa\u5c3a\u6753\u707c\u7235\u914c\u91c8\u932b\u82e5\u5bc2\u5f31\u60f9\u4e3b\u53d6\u5b88\u624b\u6731\u6b8a\u72e9\u73e0\u7a2e\u816b\u8da3\u9152\u9996\u5112\u53d7\u546a\u5bff\u6388\u6a39\u7dac\u9700\u56da\u53ce\u5468"],["bda1","\u5b97\u5c31\u5dde\u4fee\u6101\u62fe\u6d32\u79c0\u79cb\u7d42\u7e4d\u7fd2\u81ed\u821f\u8490\u8846\u8972\u8b90\u8e74\u8f2f\u9031\u914b\u916c\u96c6\u919c\u4ec0\u4f4f\u5145\u5341\u5f93\u620e\u67d4\u6c41\u6e0b\u7363\u7e26\u91cd\u9283\u53d4\u5919\u5bbf\u6dd1\u795d\u7e2e\u7c9b\u587e\u719f\u51fa\u8853\u8ff0\u4fca\u5cfb\u6625\u77ac\u7ae3\u821c\u99ff\u51c6\u5faa\u65ec\u696f\u6b89\u6df3\u6e96\u6f64\u76fe\u7d14\u5de1\u9075\u9187\u9806\u51e6\u521d\u6240\u6691\u66d9\u6e1a\u5eb6\u7dd2\u7f72\u66f8\u85af\u85f7\u8af8\u52a9\u53d9\u5973\u5e8f\u5f90\u6055\u92e4\u9664\u50b7\u511f"],["bea1","\u52dd\u5320\u5347\u53ec\u54e8\u5546\u5531\u5617\u5968\u59be\u5a3c\u5bb5\u5c06\u5c0f\u5c11\u5c1a\u5e84\u5e8a\u5ee0\u5f70\u627f\u6284\u62db\u638c\u6377\u6607\u660c\u662d\u6676\u677e\u68a2\u6a1f\u6a35\u6cbc\u6d88\u6e09\u6e58\u713c\u7126\u7167\u75c7\u7701\u785d\u7901\u7965\u79f0\u7ae0\u7b11\u7ca7\u7d39\u8096\u83d6\u848b\u8549\u885d\u88f3\u8a1f\u8a3c\u8a54\u8a73\u8c61\u8cde\u91a4\u9266\u937e\u9418\u969c\u9798\u4e0a\u4e08\u4e1e\u4e57\u5197\u5270\u57ce\u5834\u58cc\u5b22\u5e38\u60c5\u64fe\u6761\u6756\u6d44\u72b6\u7573\u7a63\u84b8\u8b72\u91b8\u9320\u5631\u57f4\u98fe"],["bfa1","\u62ed\u690d\u6b96\u71ed\u7e54\u8077\u8272\u89e6\u98df\u8755\u8fb1\u5c3b\u4f38\u4fe1\u4fb5\u5507\u5a20\u5bdd\u5be9\u5fc3\u614e\u632f\u65b0\u664b\u68ee\u699b\u6d78\u6df1\u7533\u75b9\u771f\u795e\u79e6\u7d33\u81e3\u82af\u85aa\u89aa\u8a3a\u8eab\u8f9b\u9032\u91dd\u9707\u4eba\u4ec1\u5203\u5875\u58ec\u5c0b\u751a\u5c3d\u814e\u8a0a\u8fc5\u9663\u976d\u7b25\u8acf\u9808\u9162\u56f3\u53a8\u9017\u5439\u5782\u5e25\u63a8\u6c34\u708a\u7761\u7c8b\u7fe0\u8870\u9042\u9154\u9310\u9318\u968f\u745e\u9ac4\u5d07\u5d69\u6570\u67a2\u8da8\u96db\u636e\u6749\u6919\u83c5\u9817\u96c0\u88fe"],["c0a1","\u6f84\u647a\u5bf8\u4e16\u702c\u755d\u662f\u51c4\u5236\u52e2\u59d3\u5f81\u6027\u6210\u653f\u6574\u661f\u6674\u68f2\u6816\u6b63\u6e05\u7272\u751f\u76db\u7cbe\u8056\u58f0\u88fd\u897f\u8aa0\u8a93\u8acb\u901d\u9192\u9752\u9759\u6589\u7a0e\u8106\u96bb\u5e2d\u60dc\u621a\u65a5\u6614\u6790\u77f3\u7a4d\u7c4d\u7e3e\u810a\u8cac\u8d64\u8de1\u8e5f\u78a9\u5207\u62d9\u63a5\u6442\u6298\u8a2d\u7a83\u7bc0\u8aac\u96ea\u7d76\u820c\u8749\u4ed9\u5148\u5343\u5360\u5ba3\u5c02\u5c16\u5ddd\u6226\u6247\u64b0\u6813\u6834\u6cc9\u6d45\u6d17\u67d3\u6f5c\u714e\u717d\u65cb\u7a7f\u7bad\u7dda"],["c1a1","\u7e4a\u7fa8\u817a\u821b\u8239\u85a6\u8a6e\u8cce\u8df5\u9078\u9077\u92ad\u9291\u9583\u9bae\u524d\u5584\u6f38\u7136\u5168\u7985\u7e55\u81b3\u7cce\u564c\u5851\u5ca8\u63aa\u66fe\u66fd\u695a\u72d9\u758f\u758e\u790e\u7956\u79df\u7c97\u7d20\u7d44\u8607\u8a34\u963b\u9061\u9f20\u50e7\u5275\u53cc\u53e2\u5009\u55aa\u58ee\u594f\u723d\u5b8b\u5c64\u531d\u60e3\u60f3\u635c\u6383\u633f\u63bb\u64cd\u65e9\u66f9\u5de3\u69cd\u69fd\u6f15\u71e5\u4e89\u75e9\u76f8\u7a93\u7cdf\u7dcf\u7d9c\u8061\u8349\u8358\u846c\u84bc\u85fb\u88c5\u8d70\u9001\u906d\u9397\u971c\u9a12\u50cf\u5897\u618e"],["c2a1","\u81d3\u8535\u8d08\u9020\u4fc3\u5074\u5247\u5373\u606f\u6349\u675f\u6e2c\u8db3\u901f\u4fd7\u5c5e\u8cca\u65cf\u7d9a\u5352\u8896\u5176\u63c3\u5b58\u5b6b\u5c0a\u640d\u6751\u905c\u4ed6\u591a\u592a\u6c70\u8a51\u553e\u5815\u59a5\u60f0\u6253\u67c1\u8235\u6955\u9640\u99c4\u9a28\u4f53\u5806\u5bfe\u8010\u5cb1\u5e2f\u5f85\u6020\u614b\u6234\u66ff\u6cf0\u6ede\u80ce\u817f\u82d4\u888b\u8cb8\u9000\u902e\u968a\u9edb\u9bdb\u4ee3\u53f0\u5927\u7b2c\u918d\u984c\u9df9\u6edd\u7027\u5353\u5544\u5b85\u6258\u629e\u62d3\u6ca2\u6fef\u7422\u8a17\u9438\u6fc1\u8afe\u8338\u51e7\u86f8\u53ea"],["c3a1","\u53e9\u4f46\u9054\u8fb0\u596a\u8131\u5dfd\u7aea\u8fbf\u68da\u8c37\u72f8\u9c48\u6a3d\u8ab0\u4e39\u5358\u5606\u5766\u62c5\u63a2\u65e6\u6b4e\u6de1\u6e5b\u70ad\u77ed\u7aef\u7baa\u7dbb\u803d\u80c6\u86cb\u8a95\u935b\u56e3\u58c7\u5f3e\u65ad\u6696\u6a80\u6bb5\u7537\u8ac7\u5024\u77e5\u5730\u5f1b\u6065\u667a\u6c60\u75f4\u7a1a\u7f6e\u81f4\u8718\u9045\u99b3\u7bc9\u755c\u7af9\u7b51\u84c4\u9010\u79e9\u7a92\u8336\u5ae1\u7740\u4e2d\u4ef2\u5b99\u5fe0\u62bd\u663c\u67f1\u6ce8\u866b\u8877\u8a3b\u914e\u92f3\u99d0\u6a17\u7026\u732a\u82e7\u8457\u8caf\u4e01\u5146\u51cb\u558b\u5bf5"],["c4a1","\u5e16\u5e33\u5e81\u5f14\u5f35\u5f6b\u5fb4\u61f2\u6311\u66a2\u671d\u6f6e\u7252\u753a\u773a\u8074\u8139\u8178\u8776\u8abf\u8adc\u8d85\u8df3\u929a\u9577\u9802\u9ce5\u52c5\u6357\u76f4\u6715\u6c88\u73cd\u8cc3\u93ae\u9673\u6d25\u589c\u690e\u69cc\u8ffd\u939a\u75db\u901a\u585a\u6802\u63b4\u69fb\u4f43\u6f2c\u67d8\u8fbb\u8526\u7db4\u9354\u693f\u6f70\u576a\u58f7\u5b2c\u7d2c\u722a\u540a\u91e3\u9db4\u4ead\u4f4e\u505c\u5075\u5243\u8c9e\u5448\u5824\u5b9a\u5e1d\u5e95\u5ead\u5ef7\u5f1f\u608c\u62b5\u633a\u63d0\u68af\u6c40\u7887\u798e\u7a0b\u7de0\u8247\u8a02\u8ae6\u8e44\u9013"],["c5a1","\u90b8\u912d\u91d8\u9f0e\u6ce5\u6458\u64e2\u6575\u6ef4\u7684\u7b1b\u9069\u93d1\u6eba\u54f2\u5fb9\u64a4\u8f4d\u8fed\u9244\u5178\u586b\u5929\u5c55\u5e97\u6dfb\u7e8f\u751c\u8cbc\u8ee2\u985b\u70b9\u4f1d\u6bbf\u6fb1\u7530\u96fb\u514e\u5410\u5835\u5857\u59ac\u5c60\u5f92\u6597\u675c\u6e21\u767b\u83df\u8ced\u9014\u90fd\u934d\u7825\u783a\u52aa\u5ea6\u571f\u5974\u6012\u5012\u515a\u51ac\u51cd\u5200\u5510\u5854\u5858\u5957\u5b95\u5cf6\u5d8b\u60bc\u6295\u642d\u6771\u6843\u68bc\u68df\u76d7\u6dd8\u6e6f\u6d9b\u706f\u71c8\u5f53\u75d8\u7977\u7b49\u7b54\u7b52\u7cd6\u7d71\u5230"],["c6a1","\u8463\u8569\u85e4\u8a0e\u8b04\u8c46\u8e0f\u9003\u900f\u9419\u9676\u982d\u9a30\u95d8\u50cd\u52d5\u540c\u5802\u5c0e\u61a7\u649e\u6d1e\u77b3\u7ae5\u80f4\u8404\u9053\u9285\u5ce0\u9d07\u533f\u5f97\u5fb3\u6d9c\u7279\u7763\u79bf\u7be4\u6bd2\u72ec\u8aad\u6803\u6a61\u51f8\u7a81\u6934\u5c4a\u9cf6\u82eb\u5bc5\u9149\u701e\u5678\u5c6f\u60c7\u6566\u6c8c\u8c5a\u9041\u9813\u5451\u66c7\u920d\u5948\u90a3\u5185\u4e4d\u51ea\u8599\u8b0e\u7058\u637a\u934b\u6962\u99b4\u7e04\u7577\u5357\u6960\u8edf\u96e3\u6c5d\u4e8c\u5c3c\u5f10\u8fe9\u5302\u8cd1\u8089\u8679\u5eff\u65e5\u4e73\u5165"],["c7a1","\u5982\u5c3f\u97ee\u4efb\u598a\u5fcd\u8a8d\u6fe1\u79b0\u7962\u5be7\u8471\u732b\u71b1\u5e74\u5ff5\u637b\u649a\u71c3\u7c98\u4e43\u5efc\u4e4b\u57dc\u56a2\u60a9\u6fc3\u7d0d\u80fd\u8133\u81bf\u8fb2\u8997\u86a4\u5df4\u628a\u64ad\u8987\u6777\u6ce2\u6d3e\u7436\u7834\u5a46\u7f75\u82ad\u99ac\u4ff3\u5ec3\u62dd\u6392\u6557\u676f\u76c3\u724c\u80cc\u80ba\u8f29\u914d\u500d\u57f9\u5a92\u6885\u6973\u7164\u72fd\u8cb7\u58f2\u8ce0\u966a\u9019\u877f\u79e4\u77e7\u8429\u4f2f\u5265\u535a\u62cd\u67cf\u6cca\u767d\u7b94\u7c95\u8236\u8584\u8feb\u66dd\u6f20\u7206\u7e1b\u83ab\u99c1\u9ea6"],["c8a1","\u51fd\u7bb1\u7872\u7bb8\u8087\u7b48\u6ae8\u5e61\u808c\u7551\u7560\u516b\u9262\u6e8c\u767a\u9197\u9aea\u4f10\u7f70\u629c\u7b4f\u95a5\u9ce9\u567a\u5859\u86e4\u96bc\u4f34\u5224\u534a\u53cd\u53db\u5e06\u642c\u6591\u677f\u6c3e\u6c4e\u7248\u72af\u73ed\u7554\u7e41\u822c\u85e9\u8ca9\u7bc4\u91c6\u7169\u9812\u98ef\u633d\u6669\u756a\u76e4\u78d0\u8543\u86ee\u532a\u5351\u5426\u5983\u5e87\u5f7c\u60b2\u6249\u6279\u62ab\u6590\u6bd4\u6ccc\u75b2\u76ae\u7891\u79d8\u7dcb\u7f77\u80a5\u88ab\u8ab9\u8cbb\u907f\u975e\u98db\u6a0b\u7c38\u5099\u5c3e\u5fae\u6787\u6bd8\u7435\u7709\u7f8e"],["c9a1","\u9f3b\u67ca\u7a17\u5339\u758b\u9aed\u5f66\u819d\u83f1\u8098\u5f3c\u5fc5\u7562\u7b46\u903c\u6867\u59eb\u5a9b\u7d10\u767e\u8b2c\u4ff5\u5f6a\u6a19\u6c37\u6f02\u74e2\u7968\u8868\u8a55\u8c79\u5edf\u63cf\u75c5\u79d2\u82d7\u9328\u92f2\u849c\u86ed\u9c2d\u54c1\u5f6c\u658c\u6d5c\u7015\u8ca7\u8cd3\u983b\u654f\u74f6\u4e0d\u4ed8\u57e0\u592b\u5a66\u5bcc\u51a8\u5e03\u5e9c\u6016\u6276\u6577\u65a7\u666e\u6d6e\u7236\u7b26\u8150\u819a\u8299\u8b5c\u8ca0\u8ce6\u8d74\u961c\u9644\u4fae\u64ab\u6b66\u821e\u8461\u856a\u90e8\u5c01\u6953\u98a8\u847a\u8557\u4f0f\u526f\u5fa9\u5e45\u670d"],["caa1","\u798f\u8179\u8907\u8986\u6df5\u5f17\u6255\u6cb8\u4ecf\u7269\u9b92\u5206\u543b\u5674\u58b3\u61a4\u626e\u711a\u596e\u7c89\u7cde\u7d1b\u96f0\u6587\u805e\u4e19\u4f75\u5175\u5840\u5e63\u5e73\u5f0a\u67c4\u4e26\u853d\u9589\u965b\u7c73\u9801\u50fb\u58c1\u7656\u78a7\u5225\u77a5\u8511\u7b86\u504f\u5909\u7247\u7bc7\u7de8\u8fba\u8fd4\u904d\u4fbf\u52c9\u5a29\u5f01\u97ad\u4fdd\u8217\u92ea\u5703\u6355\u6b69\u752b\u88dc\u8f14\u7a42\u52df\u5893\u6155\u620a\u66ae\u6bcd\u7c3f\u83e9\u5023\u4ff8\u5305\u5446\u5831\u5949\u5b9d\u5cf0\u5cef\u5d29\u5e96\u62b1\u6367\u653e\u65b9\u670b"],["cba1","\u6cd5\u6ce1\u70f9\u7832\u7e2b\u80de\u82b3\u840c\u84ec\u8702\u8912\u8a2a\u8c4a\u90a6\u92d2\u98fd\u9cf3\u9d6c\u4e4f\u4ea1\u508d\u5256\u574a\u59a8\u5e3d\u5fd8\u5fd9\u623f\u66b4\u671b\u67d0\u68d2\u5192\u7d21\u80aa\u81a8\u8b00\u8c8c\u8cbf\u927e\u9632\u5420\u982c\u5317\u50d5\u535c\u58a8\u64b2\u6734\u7267\u7766\u7a46\u91e6\u52c3\u6ca1\u6b86\u5800\u5e4c\u5954\u672c\u7ffb\u51e1\u76c6\u6469\u78e8\u9b54\u9ebb\u57cb\u59b9\u6627\u679a\u6bce\u54e9\u69d9\u5e55\u819c\u6795\u9baa\u67fe\u9c52\u685d\u4ea6\u4fe3\u53c8\u62b9\u672b\u6cab\u8fc4\u4fad\u7e6d\u9ebf\u4e07\u6162\u6e80"],["cca1","\u6f2b\u8513\u5473\u672a\u9b45\u5df3\u7b95\u5cac\u5bc6\u871c\u6e4a\u84d1\u7a14\u8108\u5999\u7c8d\u6c11\u7720\u52d9\u5922\u7121\u725f\u77db\u9727\u9d61\u690b\u5a7f\u5a18\u51a5\u540d\u547d\u660e\u76df\u8ff7\u9298\u9cf4\u59ea\u725d\u6ec5\u514d\u68c9\u7dbf\u7dec\u9762\u9eba\u6478\u6a21\u8302\u5984\u5b5f\u6bdb\u731b\u76f2\u7db2\u8017\u8499\u5132\u6728\u9ed9\u76ee\u6762\u52ff\u9905\u5c24\u623b\u7c7e\u8cb0\u554f\u60b6\u7d0b\u9580\u5301\u4e5f\u51b6\u591c\u723a\u8036\u91ce\u5f25\u77e2\u5384\u5f79\u7d04\u85ac\u8a33\u8e8d\u9756\u67f3\u85ae\u9453\u6109\u6108\u6cb9\u7652"],["cda1","\u8aed\u8f38\u552f\u4f51\u512a\u52c7\u53cb\u5ba5\u5e7d\u60a0\u6182\u63d6\u6709\u67da\u6e67\u6d8c\u7336\u7337\u7531\u7950\u88d5\u8a98\u904a\u9091\u90f5\u96c4\u878d\u5915\u4e88\u4f59\u4e0e\u8a89\u8f3f\u9810\u50ad\u5e7c\u5996\u5bb9\u5eb8\u63da\u63fa\u64c1\u66dc\u694a\u69d8\u6d0b\u6eb6\u7194\u7528\u7aaf\u7f8a\u8000\u8449\u84c9\u8981\u8b21\u8e0a\u9065\u967d\u990a\u617e\u6291\u6b32\u6c83\u6d74\u7fcc\u7ffc\u6dc0\u7f85\u87ba\u88f8\u6765\u83b1\u983c\u96f7\u6d1b\u7d61\u843d\u916a\u4e71\u5375\u5d50\u6b04\u6feb\u85cd\u862d\u89a7\u5229\u540f\u5c65\u674e\u68a8\u7406\u7483"],["cea1","\u75e2\u88cf\u88e1\u91cc\u96e2\u9678\u5f8b\u7387\u7acb\u844e\u63a0\u7565\u5289\u6d41\u6e9c\u7409\u7559\u786b\u7c92\u9686\u7adc\u9f8d\u4fb6\u616e\u65c5\u865c\u4e86\u4eae\u50da\u4e21\u51cc\u5bee\u6599\u6881\u6dbc\u731f\u7642\u77ad\u7a1c\u7ce7\u826f\u8ad2\u907c\u91cf\u9675\u9818\u529b\u7dd1\u502b\u5398\u6797\u6dcb\u71d0\u7433\u81e8\u8f2a\u96a3\u9c57\u9e9f\u7460\u5841\u6d99\u7d2f\u985e\u4ee4\u4f36\u4f8b\u51b7\u52b1\u5dba\u601c\u73b2\u793c\u82d3\u9234\u96b7\u96f6\u970a\u9e97\u9f62\u66a6\u6b74\u5217\u52a3\u70c8\u88c2\u5ec9\u604b\u6190\u6f23\u7149\u7c3e\u7df4\u806f"],["cfa1","\u84ee\u9023\u932c\u5442\u9b6f\u6ad3\u7089\u8cc2\u8def\u9732\u52b4\u5a41\u5eca\u5f04\u6717\u697c\u6994\u6d6a\u6f0f\u7262\u72fc\u7bed\u8001\u807e\u874b\u90ce\u516d\u9e93\u7984\u808b\u9332\u8ad6\u502d\u548c\u8a71\u6b6a\u8cc4\u8107\u60d1\u67a0\u9df2\u4e99\u4e98\u9c10\u8a6b\u85c1\u8568\u6900\u6e7e\u7897\u8155"],["d0a1","\u5f0c\u4e10\u4e15\u4e2a\u4e31\u4e36\u4e3c\u4e3f\u4e42\u4e56\u4e58\u4e82\u4e85\u8c6b\u4e8a\u8212\u5f0d\u4e8e\u4e9e\u4e9f\u4ea0\u4ea2\u4eb0\u4eb3\u4eb6\u4ece\u4ecd\u4ec4\u4ec6\u4ec2\u4ed7\u4ede\u4eed\u4edf\u4ef7\u4f09\u4f5a\u4f30\u4f5b\u4f5d\u4f57\u4f47\u4f76\u4f88\u4f8f\u4f98\u4f7b\u4f69\u4f70\u4f91\u4f6f\u4f86\u4f96\u5118\u4fd4\u4fdf\u4fce\u4fd8\u4fdb\u4fd1\u4fda\u4fd0\u4fe4\u4fe5\u501a\u5028\u5014\u502a\u5025\u5005\u4f1c\u4ff6\u5021\u5029\u502c\u4ffe\u4fef\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505a\u5056\u506c\u5078\u5080\u509a\u5085\u50b4\u50b2"],["d1a1","\u50c9\u50ca\u50b3\u50c2\u50d6\u50de\u50e5\u50ed\u50e3\u50ee\u50f9\u50f5\u5109\u5101\u5102\u5116\u5115\u5114\u511a\u5121\u513a\u5137\u513c\u513b\u513f\u5140\u5152\u514c\u5154\u5162\u7af8\u5169\u516a\u516e\u5180\u5182\u56d8\u518c\u5189\u518f\u5191\u5193\u5195\u5196\u51a4\u51a6\u51a2\u51a9\u51aa\u51ab\u51b3\u51b1\u51b2\u51b0\u51b5\u51bd\u51c5\u51c9\u51db\u51e0\u8655\u51e9\u51ed\u51f0\u51f5\u51fe\u5204\u520b\u5214\u520e\u5227\u522a\u522e\u5233\u5239\u524f\u5244\u524b\u524c\u525e\u5254\u526a\u5274\u5269\u5273\u527f\u527d\u528d\u5294\u5292\u5271\u5288\u5291\u8fa8"],["d2a1","\u8fa7\u52ac\u52ad\u52bc\u52b5\u52c1\u52cd\u52d7\u52de\u52e3\u52e6\u98ed\u52e0\u52f3\u52f5\u52f8\u52f9\u5306\u5308\u7538\u530d\u5310\u530f\u5315\u531a\u5323\u532f\u5331\u5333\u5338\u5340\u5346\u5345\u4e17\u5349\u534d\u51d6\u535e\u5369\u536e\u5918\u537b\u5377\u5382\u5396\u53a0\u53a6\u53a5\u53ae\u53b0\u53b6\u53c3\u7c12\u96d9\u53df\u66fc\u71ee\u53ee\u53e8\u53ed\u53fa\u5401\u543d\u5440\u542c\u542d\u543c\u542e\u5436\u5429\u541d\u544e\u548f\u5475\u548e\u545f\u5471\u5477\u5470\u5492\u547b\u5480\u5476\u5484\u5490\u5486\u54c7\u54a2\u54b8\u54a5\u54ac\u54c4\u54c8\u54a8"],["d3a1","\u54ab\u54c2\u54a4\u54be\u54bc\u54d8\u54e5\u54e6\u550f\u5514\u54fd\u54ee\u54ed\u54fa\u54e2\u5539\u5540\u5563\u554c\u552e\u555c\u5545\u5556\u5557\u5538\u5533\u555d\u5599\u5580\u54af\u558a\u559f\u557b\u557e\u5598\u559e\u55ae\u557c\u5583\u55a9\u5587\u55a8\u55da\u55c5\u55df\u55c4\u55dc\u55e4\u55d4\u5614\u55f7\u5616\u55fe\u55fd\u561b\u55f9\u564e\u5650\u71df\u5634\u5636\u5632\u5638\u566b\u5664\u562f\u566c\u566a\u5686\u5680\u568a\u56a0\u5694\u568f\u56a5\u56ae\u56b6\u56b4\u56c2\u56bc\u56c1\u56c3\u56c0\u56c8\u56ce\u56d1\u56d3\u56d7\u56ee\u56f9\u5700\u56ff\u5704\u5709"],["d4a1","\u5708\u570b\u570d\u5713\u5718\u5716\u55c7\u571c\u5726\u5737\u5738\u574e\u573b\u5740\u574f\u5769\u57c0\u5788\u5761\u577f\u5789\u5793\u57a0\u57b3\u57a4\u57aa\u57b0\u57c3\u57c6\u57d4\u57d2\u57d3\u580a\u57d6\u57e3\u580b\u5819\u581d\u5872\u5821\u5862\u584b\u5870\u6bc0\u5852\u583d\u5879\u5885\u58b9\u589f\u58ab\u58ba\u58de\u58bb\u58b8\u58ae\u58c5\u58d3\u58d1\u58d7\u58d9\u58d8\u58e5\u58dc\u58e4\u58df\u58ef\u58fa\u58f9\u58fb\u58fc\u58fd\u5902\u590a\u5910\u591b\u68a6\u5925\u592c\u592d\u5932\u5938\u593e\u7ad2\u5955\u5950\u594e\u595a\u5958\u5962\u5960\u5967\u596c\u5969"],["d5a1","\u5978\u5981\u599d\u4f5e\u4fab\u59a3\u59b2\u59c6\u59e8\u59dc\u598d\u59d9\u59da\u5a25\u5a1f\u5a11\u5a1c\u5a09\u5a1a\u5a40\u5a6c\u5a49\u5a35\u5a36\u5a62\u5a6a\u5a9a\u5abc\u5abe\u5acb\u5ac2\u5abd\u5ae3\u5ad7\u5ae6\u5ae9\u5ad6\u5afa\u5afb\u5b0c\u5b0b\u5b16\u5b32\u5ad0\u5b2a\u5b36\u5b3e\u5b43\u5b45\u5b40\u5b51\u5b55\u5b5a\u5b5b\u5b65\u5b69\u5b70\u5b73\u5b75\u5b78\u6588\u5b7a\u5b80\u5b83\u5ba6\u5bb8\u5bc3\u5bc7\u5bc9\u5bd4\u5bd0\u5be4\u5be6\u5be2\u5bde\u5be5\u5beb\u5bf0\u5bf6\u5bf3\u5c05\u5c07\u5c08\u5c0d\u5c13\u5c20\u5c22\u5c28\u5c38\u5c39\u5c41\u5c46\u5c4e\u5c53"],["d6a1","\u5c50\u5c4f\u5b71\u5c6c\u5c6e\u4e62\u5c76\u5c79\u5c8c\u5c91\u5c94\u599b\u5cab\u5cbb\u5cb6\u5cbc\u5cb7\u5cc5\u5cbe\u5cc7\u5cd9\u5ce9\u5cfd\u5cfa\u5ced\u5d8c\u5cea\u5d0b\u5d15\u5d17\u5d5c\u5d1f\u5d1b\u5d11\u5d14\u5d22\u5d1a\u5d19\u5d18\u5d4c\u5d52\u5d4e\u5d4b\u5d6c\u5d73\u5d76\u5d87\u5d84\u5d82\u5da2\u5d9d\u5dac\u5dae\u5dbd\u5d90\u5db7\u5dbc\u5dc9\u5dcd\u5dd3\u5dd2\u5dd6\u5ddb\u5deb\u5df2\u5df5\u5e0b\u5e1a\u5e19\u5e11\u5e1b\u5e36\u5e37\u5e44\u5e43\u5e40\u5e4e\u5e57\u5e54\u5e5f\u5e62\u5e64\u5e47\u5e75\u5e76\u5e7a\u9ebc\u5e7f\u5ea0\u5ec1\u5ec2\u5ec8\u5ed0\u5ecf"],["d7a1","\u5ed6\u5ee3\u5edd\u5eda\u5edb\u5ee2\u5ee1\u5ee8\u5ee9\u5eec\u5ef1\u5ef3\u5ef0\u5ef4\u5ef8\u5efe\u5f03\u5f09\u5f5d\u5f5c\u5f0b\u5f11\u5f16\u5f29\u5f2d\u5f38\u5f41\u5f48\u5f4c\u5f4e\u5f2f\u5f51\u5f56\u5f57\u5f59\u5f61\u5f6d\u5f73\u5f77\u5f83\u5f82\u5f7f\u5f8a\u5f88\u5f91\u5f87\u5f9e\u5f99\u5f98\u5fa0\u5fa8\u5fad\u5fbc\u5fd6\u5ffb\u5fe4\u5ff8\u5ff1\u5fdd\u60b3\u5fff\u6021\u6060\u6019\u6010\u6029\u600e\u6031\u601b\u6015\u602b\u6026\u600f\u603a\u605a\u6041\u606a\u6077\u605f\u604a\u6046\u604d\u6063\u6043\u6064\u6042\u606c\u606b\u6059\u6081\u608d\u60e7\u6083\u609a"],["d8a1","\u6084\u609b\u6096\u6097\u6092\u60a7\u608b\u60e1\u60b8\u60e0\u60d3\u60b4\u5ff0\u60bd\u60c6\u60b5\u60d8\u614d\u6115\u6106\u60f6\u60f7\u6100\u60f4\u60fa\u6103\u6121\u60fb\u60f1\u610d\u610e\u6147\u613e\u6128\u6127\u614a\u613f\u613c\u612c\u6134\u613d\u6142\u6144\u6173\u6177\u6158\u6159\u615a\u616b\u6174\u616f\u6165\u6171\u615f\u615d\u6153\u6175\u6199\u6196\u6187\u61ac\u6194\u619a\u618a\u6191\u61ab\u61ae\u61cc\u61ca\u61c9\u61f7\u61c8\u61c3\u61c6\u61ba\u61cb\u7f79\u61cd\u61e6\u61e3\u61f6\u61fa\u61f4\u61ff\u61fd\u61fc\u61fe\u6200\u6208\u6209\u620d\u620c\u6214\u621b"],["d9a1","\u621e\u6221\u622a\u622e\u6230\u6232\u6233\u6241\u624e\u625e\u6263\u625b\u6260\u6268\u627c\u6282\u6289\u627e\u6292\u6293\u6296\u62d4\u6283\u6294\u62d7\u62d1\u62bb\u62cf\u62ff\u62c6\u64d4\u62c8\u62dc\u62cc\u62ca\u62c2\u62c7\u629b\u62c9\u630c\u62ee\u62f1\u6327\u6302\u6308\u62ef\u62f5\u6350\u633e\u634d\u641c\u634f\u6396\u638e\u6380\u63ab\u6376\u63a3\u638f\u6389\u639f\u63b5\u636b\u6369\u63be\u63e9\u63c0\u63c6\u63e3\u63c9\u63d2\u63f6\u63c4\u6416\u6434\u6406\u6413\u6426\u6436\u651d\u6417\u6428\u640f\u6467\u646f\u6476\u644e\u652a\u6495\u6493\u64a5\u64a9\u6488\u64bc"],["daa1","\u64da\u64d2\u64c5\u64c7\u64bb\u64d8\u64c2\u64f1\u64e7\u8209\u64e0\u64e1\u62ac\u64e3\u64ef\u652c\u64f6\u64f4\u64f2\u64fa\u6500\u64fd\u6518\u651c\u6505\u6524\u6523\u652b\u6534\u6535\u6537\u6536\u6538\u754b\u6548\u6556\u6555\u654d\u6558\u655e\u655d\u6572\u6578\u6582\u6583\u8b8a\u659b\u659f\u65ab\u65b7\u65c3\u65c6\u65c1\u65c4\u65cc\u65d2\u65db\u65d9\u65e0\u65e1\u65f1\u6772\u660a\u6603\u65fb\u6773\u6635\u6636\u6634\u661c\u664f\u6644\u6649\u6641\u665e\u665d\u6664\u6667\u6668\u665f\u6662\u6670\u6683\u6688\u668e\u6689\u6684\u6698\u669d\u66c1\u66b9\u66c9\u66be\u66bc"],["dba1","\u66c4\u66b8\u66d6\u66da\u66e0\u663f\u66e6\u66e9\u66f0\u66f5\u66f7\u670f\u6716\u671e\u6726\u6727\u9738\u672e\u673f\u6736\u6741\u6738\u6737\u6746\u675e\u6760\u6759\u6763\u6764\u6789\u6770\u67a9\u677c\u676a\u678c\u678b\u67a6\u67a1\u6785\u67b7\u67ef\u67b4\u67ec\u67b3\u67e9\u67b8\u67e4\u67de\u67dd\u67e2\u67ee\u67b9\u67ce\u67c6\u67e7\u6a9c\u681e\u6846\u6829\u6840\u684d\u6832\u684e\u68b3\u682b\u6859\u6863\u6877\u687f\u689f\u688f\u68ad\u6894\u689d\u689b\u6883\u6aae\u68b9\u6874\u68b5\u68a0\u68ba\u690f\u688d\u687e\u6901\u68ca\u6908\u68d8\u6922\u6926\u68e1\u690c\u68cd"],["dca1","\u68d4\u68e7\u68d5\u6936\u6912\u6904\u68d7\u68e3\u6925\u68f9\u68e0\u68ef\u6928\u692a\u691a\u6923\u6921\u68c6\u6979\u6977\u695c\u6978\u696b\u6954\u697e\u696e\u6939\u6974\u693d\u6959\u6930\u6961\u695e\u695d\u6981\u696a\u69b2\u69ae\u69d0\u69bf\u69c1\u69d3\u69be\u69ce\u5be8\u69ca\u69dd\u69bb\u69c3\u69a7\u6a2e\u6991\u69a0\u699c\u6995\u69b4\u69de\u69e8\u6a02\u6a1b\u69ff\u6b0a\u69f9\u69f2\u69e7\u6a05\u69b1\u6a1e\u69ed\u6a14\u69eb\u6a0a\u6a12\u6ac1\u6a23\u6a13\u6a44\u6a0c\u6a72\u6a36\u6a78\u6a47\u6a62\u6a59\u6a66\u6a48\u6a38\u6a22\u6a90\u6a8d\u6aa0\u6a84\u6aa2\u6aa3"],["dda1","\u6a97\u8617\u6abb\u6ac3\u6ac2\u6ab8\u6ab3\u6aac\u6ade\u6ad1\u6adf\u6aaa\u6ada\u6aea\u6afb\u6b05\u8616\u6afa\u6b12\u6b16\u9b31\u6b1f\u6b38\u6b37\u76dc\u6b39\u98ee\u6b47\u6b43\u6b49\u6b50\u6b59\u6b54\u6b5b\u6b5f\u6b61\u6b78\u6b79\u6b7f\u6b80\u6b84\u6b83\u6b8d\u6b98\u6b95\u6b9e\u6ba4\u6baa\u6bab\u6baf\u6bb2\u6bb1\u6bb3\u6bb7\u6bbc\u6bc6\u6bcb\u6bd3\u6bdf\u6bec\u6beb\u6bf3\u6bef\u9ebe\u6c08\u6c13\u6c14\u6c1b\u6c24\u6c23\u6c5e\u6c55\u6c62\u6c6a\u6c82\u6c8d\u6c9a\u6c81\u6c9b\u6c7e\u6c68\u6c73\u6c92\u6c90\u6cc4\u6cf1\u6cd3\u6cbd\u6cd7\u6cc5\u6cdd\u6cae\u6cb1\u6cbe"],["dea1","\u6cba\u6cdb\u6cef\u6cd9\u6cea\u6d1f\u884d\u6d36\u6d2b\u6d3d\u6d38\u6d19\u6d35\u6d33\u6d12\u6d0c\u6d63\u6d93\u6d64\u6d5a\u6d79\u6d59\u6d8e\u6d95\u6fe4\u6d85\u6df9\u6e15\u6e0a\u6db5\u6dc7\u6de6\u6db8\u6dc6\u6dec\u6dde\u6dcc\u6de8\u6dd2\u6dc5\u6dfa\u6dd9\u6de4\u6dd5\u6dea\u6dee\u6e2d\u6e6e\u6e2e\u6e19\u6e72\u6e5f\u6e3e\u6e23\u6e6b\u6e2b\u6e76\u6e4d\u6e1f\u6e43\u6e3a\u6e4e\u6e24\u6eff\u6e1d\u6e38\u6e82\u6eaa\u6e98\u6ec9\u6eb7\u6ed3\u6ebd\u6eaf\u6ec4\u6eb2\u6ed4\u6ed5\u6e8f\u6ea5\u6ec2\u6e9f\u6f41\u6f11\u704c\u6eec\u6ef8\u6efe\u6f3f\u6ef2\u6f31\u6eef\u6f32\u6ecc"],["dfa1","\u6f3e\u6f13\u6ef7\u6f86\u6f7a\u6f78\u6f81\u6f80\u6f6f\u6f5b\u6ff3\u6f6d\u6f82\u6f7c\u6f58\u6f8e\u6f91\u6fc2\u6f66\u6fb3\u6fa3\u6fa1\u6fa4\u6fb9\u6fc6\u6faa\u6fdf\u6fd5\u6fec\u6fd4\u6fd8\u6ff1\u6fee\u6fdb\u7009\u700b\u6ffa\u7011\u7001\u700f\u6ffe\u701b\u701a\u6f74\u701d\u7018\u701f\u7030\u703e\u7032\u7051\u7063\u7099\u7092\u70af\u70f1\u70ac\u70b8\u70b3\u70ae\u70df\u70cb\u70dd\u70d9\u7109\u70fd\u711c\u7119\u7165\u7155\u7188\u7166\u7162\u714c\u7156\u716c\u718f\u71fb\u7184\u7195\u71a8\u71ac\u71d7\u71b9\u71be\u71d2\u71c9\u71d4\u71ce\u71e0\u71ec\u71e7\u71f5\u71fc"],["e0a1","\u71f9\u71ff\u720d\u7210\u721b\u7228\u722d\u722c\u7230\u7232\u723b\u723c\u723f\u7240\u7246\u724b\u7258\u7274\u727e\u7282\u7281\u7287\u7292\u7296\u72a2\u72a7\u72b9\u72b2\u72c3\u72c6\u72c4\u72ce\u72d2\u72e2\u72e0\u72e1\u72f9\u72f7\u500f\u7317\u730a\u731c\u7316\u731d\u7334\u732f\u7329\u7325\u733e\u734e\u734f\u9ed8\u7357\u736a\u7368\u7370\u7378\u7375\u737b\u737a\u73c8\u73b3\u73ce\u73bb\u73c0\u73e5\u73ee\u73de\u74a2\u7405\u746f\u7425\u73f8\u7432\u743a\u7455\u743f\u745f\u7459\u7441\u745c\u7469\u7470\u7463\u746a\u7476\u747e\u748b\u749e\u74a7\u74ca\u74cf\u74d4\u73f1"],["e1a1","\u74e0\u74e3\u74e7\u74e9\u74ee\u74f2\u74f0\u74f1\u74f8\u74f7\u7504\u7503\u7505\u750c\u750e\u750d\u7515\u7513\u751e\u7526\u752c\u753c\u7544\u754d\u754a\u7549\u755b\u7546\u755a\u7569\u7564\u7567\u756b\u756d\u7578\u7576\u7586\u7587\u7574\u758a\u7589\u7582\u7594\u759a\u759d\u75a5\u75a3\u75c2\u75b3\u75c3\u75b5\u75bd\u75b8\u75bc\u75b1\u75cd\u75ca\u75d2\u75d9\u75e3\u75de\u75fe\u75ff\u75fc\u7601\u75f0\u75fa\u75f2\u75f3\u760b\u760d\u7609\u761f\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763b\u7647\u7648\u7646\u765c\u7658\u7661\u7662\u7668\u7669\u766a\u7667\u766c\u7670"],["e2a1","\u7672\u7676\u7678\u767c\u7680\u7683\u7688\u768b\u768e\u7696\u7693\u7699\u769a\u76b0\u76b4\u76b8\u76b9\u76ba\u76c2\u76cd\u76d6\u76d2\u76de\u76e1\u76e5\u76e7\u76ea\u862f\u76fb\u7708\u7707\u7704\u7729\u7724\u771e\u7725\u7726\u771b\u7737\u7738\u7747\u775a\u7768\u776b\u775b\u7765\u777f\u777e\u7779\u778e\u778b\u7791\u77a0\u779e\u77b0\u77b6\u77b9\u77bf\u77bc\u77bd\u77bb\u77c7\u77cd\u77d7\u77da\u77dc\u77e3\u77ee\u77fc\u780c\u7812\u7926\u7820\u792a\u7845\u788e\u7874\u7886\u787c\u789a\u788c\u78a3\u78b5\u78aa\u78af\u78d1\u78c6\u78cb\u78d4\u78be\u78bc\u78c5\u78ca\u78ec"],["e3a1","\u78e7\u78da\u78fd\u78f4\u7907\u7912\u7911\u7919\u792c\u792b\u7940\u7960\u7957\u795f\u795a\u7955\u7953\u797a\u797f\u798a\u799d\u79a7\u9f4b\u79aa\u79ae\u79b3\u79b9\u79ba\u79c9\u79d5\u79e7\u79ec\u79e1\u79e3\u7a08\u7a0d\u7a18\u7a19\u7a20\u7a1f\u7980\u7a31\u7a3b\u7a3e\u7a37\u7a43\u7a57\u7a49\u7a61\u7a62\u7a69\u9f9d\u7a70\u7a79\u7a7d\u7a88\u7a97\u7a95\u7a98\u7a96\u7aa9\u7ac8\u7ab0\u7ab6\u7ac5\u7ac4\u7abf\u9083\u7ac7\u7aca\u7acd\u7acf\u7ad5\u7ad3\u7ad9\u7ada\u7add\u7ae1\u7ae2\u7ae6\u7aed\u7af0\u7b02\u7b0f\u7b0a\u7b06\u7b33\u7b18\u7b19\u7b1e\u7b35\u7b28\u7b36\u7b50"],["e4a1","\u7b7a\u7b04\u7b4d\u7b0b\u7b4c\u7b45\u7b75\u7b65\u7b74\u7b67\u7b70\u7b71\u7b6c\u7b6e\u7b9d\u7b98\u7b9f\u7b8d\u7b9c\u7b9a\u7b8b\u7b92\u7b8f\u7b5d\u7b99\u7bcb\u7bc1\u7bcc\u7bcf\u7bb4\u7bc6\u7bdd\u7be9\u7c11\u7c14\u7be6\u7be5\u7c60\u7c00\u7c07\u7c13\u7bf3\u7bf7\u7c17\u7c0d\u7bf6\u7c23\u7c27\u7c2a\u7c1f\u7c37\u7c2b\u7c3d\u7c4c\u7c43\u7c54\u7c4f\u7c40\u7c50\u7c58\u7c5f\u7c64\u7c56\u7c65\u7c6c\u7c75\u7c83\u7c90\u7ca4\u7cad\u7ca2\u7cab\u7ca1\u7ca8\u7cb3\u7cb2\u7cb1\u7cae\u7cb9\u7cbd\u7cc0\u7cc5\u7cc2\u7cd8\u7cd2\u7cdc\u7ce2\u9b3b\u7cef\u7cf2\u7cf4\u7cf6\u7cfa\u7d06"],["e5a1","\u7d02\u7d1c\u7d15\u7d0a\u7d45\u7d4b\u7d2e\u7d32\u7d3f\u7d35\u7d46\u7d73\u7d56\u7d4e\u7d72\u7d68\u7d6e\u7d4f\u7d63\u7d93\u7d89\u7d5b\u7d8f\u7d7d\u7d9b\u7dba\u7dae\u7da3\u7db5\u7dc7\u7dbd\u7dab\u7e3d\u7da2\u7daf\u7ddc\u7db8\u7d9f\u7db0\u7dd8\u7ddd\u7de4\u7dde\u7dfb\u7df2\u7de1\u7e05\u7e0a\u7e23\u7e21\u7e12\u7e31\u7e1f\u7e09\u7e0b\u7e22\u7e46\u7e66\u7e3b\u7e35\u7e39\u7e43\u7e37\u7e32\u7e3a\u7e67\u7e5d\u7e56\u7e5e\u7e59\u7e5a\u7e79\u7e6a\u7e69\u7e7c\u7e7b\u7e83\u7dd5\u7e7d\u8fae\u7e7f\u7e88\u7e89\u7e8c\u7e92\u7e90\u7e93\u7e94\u7e96\u7e8e\u7e9b\u7e9c\u7f38\u7f3a"],["e6a1","\u7f45\u7f4c\u7f4d\u7f4e\u7f50\u7f51\u7f55\u7f54\u7f58\u7f5f\u7f60\u7f68\u7f69\u7f67\u7f78\u7f82\u7f86\u7f83\u7f88\u7f87\u7f8c\u7f94\u7f9e\u7f9d\u7f9a\u7fa3\u7faf\u7fb2\u7fb9\u7fae\u7fb6\u7fb8\u8b71\u7fc5\u7fc6\u7fca\u7fd5\u7fd4\u7fe1\u7fe6\u7fe9\u7ff3\u7ff9\u98dc\u8006\u8004\u800b\u8012\u8018\u8019\u801c\u8021\u8028\u803f\u803b\u804a\u8046\u8052\u8058\u805a\u805f\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807d\u807f\u8084\u8086\u8085\u809b\u8093\u809a\u80ad\u5190\u80ac\u80db\u80e5\u80d9\u80dd\u80c4\u80da\u80d6\u8109\u80ef\u80f1\u811b\u8129\u8123\u812f\u814b"],["e7a1","\u968b\u8146\u813e\u8153\u8151\u80fc\u8171\u816e\u8165\u8166\u8174\u8183\u8188\u818a\u8180\u8182\u81a0\u8195\u81a4\u81a3\u815f\u8193\u81a9\u81b0\u81b5\u81be\u81b8\u81bd\u81c0\u81c2\u81ba\u81c9\u81cd\u81d1\u81d9\u81d8\u81c8\u81da\u81df\u81e0\u81e7\u81fa\u81fb\u81fe\u8201\u8202\u8205\u8207\u820a\u820d\u8210\u8216\u8229\u822b\u8238\u8233\u8240\u8259\u8258\u825d\u825a\u825f\u8264\u8262\u8268\u826a\u826b\u822e\u8271\u8277\u8278\u827e\u828d\u8292\u82ab\u829f\u82bb\u82ac\u82e1\u82e3\u82df\u82d2\u82f4\u82f3\u82fa\u8393\u8303\u82fb\u82f9\u82de\u8306\u82dc\u8309\u82d9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832f\u832b\u8317\u8318\u8385\u839a\u83aa\u839f\u83a2\u8396\u8323\u838e\u8387\u838a\u837c\u83b5\u8373\u8375\u83a0\u8389\u83a8\u83f4\u8413\u83eb\u83ce\u83fd\u8403\u83d8\u840b\u83c1\u83f7\u8407\u83e0\u83f2\u840d\u8422\u8420\u83bd\u8438\u8506\u83fb\u846d\u842a\u843c\u855a\u8484\u8477\u846b\u84ad\u846e\u8482\u8469\u8446\u842c\u846f\u8479\u8435\u84ca\u8462\u84b9\u84bf\u849f\u84d9\u84cd\u84bb\u84da\u84d0\u84c1\u84c6\u84d6\u84a1\u8521\u84ff\u84f4\u8517\u8518\u852c\u851f\u8515\u8514\u84fc\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854b\u8555\u8580\u85a4\u8588\u8591\u858a\u85a8\u856d\u8594\u859b\u85ea\u8587\u859c\u8577\u857e\u8590\u85c9\u85ba\u85cf\u85b9\u85d0\u85d5\u85dd\u85e5\u85dc\u85f9\u860a\u8613\u860b\u85fe\u85fa\u8606\u8622\u861a\u8630\u863f\u864d\u4e55\u8654\u865f\u8667\u8671\u8693\u86a3\u86a9\u86aa\u868b\u868c\u86b6\u86af\u86c4\u86c6\u86b0\u86c9\u8823\u86ab\u86d4\u86de\u86e9\u86ec\u86df\u86db\u86ef\u8712\u8706\u8708\u8700\u8703\u86fb\u8711\u8709\u870d\u86f9\u870a\u8734\u873f\u8737\u873b\u8725\u8729\u871a\u8760\u875f\u8778\u874c\u874e\u8774\u8757\u8768\u876e\u8759"],["eaa1","\u8753\u8763\u876a\u8805\u87a2\u879f\u8782\u87af\u87cb\u87bd\u87c0\u87d0\u96d6\u87ab\u87c4\u87b3\u87c7\u87c6\u87bb\u87ef\u87f2\u87e0\u880f\u880d\u87fe\u87f6\u87f7\u880e\u87d2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883b\u8844\u8842\u8852\u8859\u885e\u8862\u886b\u8881\u887e\u889e\u8875\u887d\u88b5\u8872\u8882\u8897\u8892\u88ae\u8899\u88a2\u888d\u88a4\u88b0\u88bf\u88b1\u88c3\u88c4\u88d4\u88d8\u88d9\u88dd\u88f9\u8902\u88fc\u88f4\u88e8\u88f2\u8904\u890c\u890a\u8913\u8943\u891e\u8925\u892a\u892b\u8941\u8944\u893b\u8936\u8938\u894c\u891d\u8960\u895e"],["eba1","\u8966\u8964\u896d\u896a\u896f\u8974\u8977\u897e\u8983\u8988\u898a\u8993\u8998\u89a1\u89a9\u89a6\u89ac\u89af\u89b2\u89ba\u89bd\u89bf\u89c0\u89da\u89dc\u89dd\u89e7\u89f4\u89f8\u8a03\u8a16\u8a10\u8a0c\u8a1b\u8a1d\u8a25\u8a36\u8a41\u8a5b\u8a52\u8a46\u8a48\u8a7c\u8a6d\u8a6c\u8a62\u8a85\u8a82\u8a84\u8aa8\u8aa1\u8a91\u8aa5\u8aa6\u8a9a\u8aa3\u8ac4\u8acd\u8ac2\u8ada\u8aeb\u8af3\u8ae7\u8ae4\u8af1\u8b14\u8ae0\u8ae2\u8af7\u8ade\u8adb\u8b0c\u8b07\u8b1a\u8ae1\u8b16\u8b10\u8b17\u8b20\u8b33\u97ab\u8b26\u8b2b\u8b3e\u8b28\u8b41\u8b4c\u8b4f\u8b4e\u8b49\u8b56\u8b5b\u8b5a\u8b6b"],["eca1","\u8b5f\u8b6c\u8b6f\u8b74\u8b7d\u8b80\u8b8c\u8b8e\u8b92\u8b93\u8b96\u8b99\u8b9a\u8c3a\u8c41\u8c3f\u8c48\u8c4c\u8c4e\u8c50\u8c55\u8c62\u8c6c\u8c78\u8c7a\u8c82\u8c89\u8c85\u8c8a\u8c8d\u8c8e\u8c94\u8c7c\u8c98\u621d\u8cad\u8caa\u8cbd\u8cb2\u8cb3\u8cae\u8cb6\u8cc8\u8cc1\u8ce4\u8ce3\u8cda\u8cfd\u8cfa\u8cfb\u8d04\u8d05\u8d0a\u8d07\u8d0f\u8d0d\u8d10\u9f4e\u8d13\u8ccd\u8d14\u8d16\u8d67\u8d6d\u8d71\u8d73\u8d81\u8d99\u8dc2\u8dbe\u8dba\u8dcf\u8dda\u8dd6\u8dcc\u8ddb\u8dcb\u8dea\u8deb\u8ddf\u8de3\u8dfc\u8e08\u8e09\u8dff\u8e1d\u8e1e\u8e10\u8e1f\u8e42\u8e35\u8e30\u8e34\u8e4a"],["eda1","\u8e47\u8e49\u8e4c\u8e50\u8e48\u8e59\u8e64\u8e60\u8e2a\u8e63\u8e55\u8e76\u8e72\u8e7c\u8e81\u8e87\u8e85\u8e84\u8e8b\u8e8a\u8e93\u8e91\u8e94\u8e99\u8eaa\u8ea1\u8eac\u8eb0\u8ec6\u8eb1\u8ebe\u8ec5\u8ec8\u8ecb\u8edb\u8ee3\u8efc\u8efb\u8eeb\u8efe\u8f0a\u8f05\u8f15\u8f12\u8f19\u8f13\u8f1c\u8f1f\u8f1b\u8f0c\u8f26\u8f33\u8f3b\u8f39\u8f45\u8f42\u8f3e\u8f4c\u8f49\u8f46\u8f4e\u8f57\u8f5c\u8f62\u8f63\u8f64\u8f9c\u8f9f\u8fa3\u8fad\u8faf\u8fb7\u8fda\u8fe5\u8fe2\u8fea\u8fef\u9087\u8ff4\u9005\u8ff9\u8ffa\u9011\u9015\u9021\u900d\u901e\u9016\u900b\u9027\u9036\u9035\u9039\u8ff8"],["eea1","\u904f\u9050\u9051\u9052\u900e\u9049\u903e\u9056\u9058\u905e\u9068\u906f\u9076\u96a8\u9072\u9082\u907d\u9081\u9080\u908a\u9089\u908f\u90a8\u90af\u90b1\u90b5\u90e2\u90e4\u6248\u90db\u9102\u9112\u9119\u9132\u9130\u914a\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918b\u9189\u9182\u91a2\u91ab\u91af\u91aa\u91b5\u91b4\u91ba\u91c0\u91c1\u91c9\u91cb\u91d0\u91d6\u91df\u91e1\u91db\u91fc\u91f5\u91f6\u921e\u91ff\u9214\u922c\u9215\u9211\u925e\u9257\u9245\u9249\u9264\u9248\u9295\u923f\u924b\u9250\u929c\u9296\u9293\u929b\u925a\u92cf\u92b9\u92b7\u92e9\u930f\u92fa\u9344\u932e"],["efa1","\u9319\u9322\u931a\u9323\u933a\u9335\u933b\u935c\u9360\u937c\u936e\u9356\u93b0\u93ac\u93ad\u9394\u93b9\u93d6\u93d7\u93e8\u93e5\u93d8\u93c3\u93dd\u93d0\u93c8\u93e4\u941a\u9414\u9413\u9403\u9407\u9410\u9436\u942b\u9435\u9421\u943a\u9441\u9452\u9444\u945b\u9460\u9462\u945e\u946a\u9229\u9470\u9475\u9477\u947d\u945a\u947c\u947e\u9481\u947f\u9582\u9587\u958a\u9594\u9596\u9598\u9599\u95a0\u95a8\u95a7\u95ad\u95bc\u95bb\u95b9\u95be\u95ca\u6ff6\u95c3\u95cd\u95cc\u95d5\u95d4\u95d6\u95dc\u95e1\u95e5\u95e2\u9621\u9628\u962e\u962f\u9642\u964c\u964f\u964b\u9677\u965c\u965e"],["f0a1","\u965d\u965f\u9666\u9672\u966c\u968d\u9698\u9695\u9697\u96aa\u96a7\u96b1\u96b2\u96b0\u96b4\u96b6\u96b8\u96b9\u96ce\u96cb\u96c9\u96cd\u894d\u96dc\u970d\u96d5\u96f9\u9704\u9706\u9708\u9713\u970e\u9711\u970f\u9716\u9719\u9724\u972a\u9730\u9739\u973d\u973e\u9744\u9746\u9748\u9742\u9749\u975c\u9760\u9764\u9766\u9768\u52d2\u976b\u9771\u9779\u9785\u977c\u9781\u977a\u9786\u978b\u978f\u9790\u979c\u97a8\u97a6\u97a3\u97b3\u97b4\u97c3\u97c6\u97c8\u97cb\u97dc\u97ed\u9f4f\u97f2\u7adf\u97f6\u97f5\u980f\u980c\u9838\u9824\u9821\u9837\u983d\u9846\u984f\u984b\u986b\u986f\u9870"],["f1a1","\u9871\u9874\u9873\u98aa\u98af\u98b1\u98b6\u98c4\u98c3\u98c6\u98e9\u98eb\u9903\u9909\u9912\u9914\u9918\u9921\u991d\u991e\u9924\u9920\u992c\u992e\u993d\u993e\u9942\u9949\u9945\u9950\u994b\u9951\u9952\u994c\u9955\u9997\u9998\u99a5\u99ad\u99ae\u99bc\u99df\u99db\u99dd\u99d8\u99d1\u99ed\u99ee\u99f1\u99f2\u99fb\u99f8\u9a01\u9a0f\u9a05\u99e2\u9a19\u9a2b\u9a37\u9a45\u9a42\u9a40\u9a43\u9a3e\u9a55\u9a4d\u9a5b\u9a57\u9a5f\u9a62\u9a65\u9a64\u9a69\u9a6b\u9a6a\u9aad\u9ab0\u9abc\u9ac0\u9acf\u9ad1\u9ad3\u9ad4\u9ade\u9adf\u9ae2\u9ae3\u9ae6\u9aef\u9aeb\u9aee\u9af4\u9af1\u9af7"],["f2a1","\u9afb\u9b06\u9b18\u9b1a\u9b1f\u9b22\u9b23\u9b25\u9b27\u9b28\u9b29\u9b2a\u9b2e\u9b2f\u9b32\u9b44\u9b43\u9b4f\u9b4d\u9b4e\u9b51\u9b58\u9b74\u9b93\u9b83\u9b91\u9b96\u9b97\u9b9f\u9ba0\u9ba8\u9bb4\u9bc0\u9bca\u9bb9\u9bc6\u9bcf\u9bd1\u9bd2\u9be3\u9be2\u9be4\u9bd4\u9be1\u9c3a\u9bf2\u9bf1\u9bf0\u9c15\u9c14\u9c09\u9c13\u9c0c\u9c06\u9c08\u9c12\u9c0a\u9c04\u9c2e\u9c1b\u9c25\u9c24\u9c21\u9c30\u9c47\u9c32\u9c46\u9c3e\u9c5a\u9c60\u9c67\u9c76\u9c78\u9ce7\u9cec\u9cf0\u9d09\u9d08\u9ceb\u9d03\u9d06\u9d2a\u9d26\u9daf\u9d23\u9d1f\u9d44\u9d15\u9d12\u9d41\u9d3f\u9d3e\u9d46\u9d48"],["f3a1","\u9d5d\u9d5e\u9d64\u9d51\u9d50\u9d59\u9d72\u9d89\u9d87\u9dab\u9d6f\u9d7a\u9d9a\u9da4\u9da9\u9db2\u9dc4\u9dc1\u9dbb\u9db8\u9dba\u9dc6\u9dcf\u9dc2\u9dd9\u9dd3\u9df8\u9de6\u9ded\u9def\u9dfd\u9e1a\u9e1b\u9e1e\u9e75\u9e79\u9e7d\u9e81\u9e88\u9e8b\u9e8c\u9e92\u9e95\u9e91\u9e9d\u9ea5\u9ea9\u9eb8\u9eaa\u9ead\u9761\u9ecc\u9ece\u9ecf\u9ed0\u9ed4\u9edc\u9ede\u9edd\u9ee0\u9ee5\u9ee8\u9eef\u9ef4\u9ef6\u9ef7\u9ef9\u9efb\u9efc\u9efd\u9f07\u9f08\u76b7\u9f15\u9f21\u9f2c\u9f3e\u9f4a\u9f52\u9f54\u9f63\u9f5f\u9f60\u9f61\u9f66\u9f67\u9f6c\u9f6a\u9f77\u9f72\u9f76\u9f95\u9f9c\u9fa0"],["f4a1","\u582f\u69c7\u9059\u7464\u51dc\u7199"],["f9a1","\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7"],["faa1","\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1"],["fba1","\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da"],["fca1","\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"],["fcf1","\u2170",9,"\uffe2\uffe4\uff07\uff02"],["8fa2af","\u02d8\u02c7\xb8\u02d9\u02dd\xaf\u02db\u02da\uff5e\u0384\u0385"],["8fa2c2","\xa1\xa6\xbf"],["8fa2eb","\xba\xaa\xa9\xae\u2122\xa4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038a\u03aa"],["8fa6e7","\u038c"],["8fa6e9","\u038e\u03ab"],["8fa6ec","\u038f"],["8fa6f1","\u03ac\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03c2\u03cd\u03cb\u03b0\u03ce"],["8fa7c2","\u0402",10,"\u040e\u040f"],["8fa7f2","\u0452",10,"\u045e\u045f"],["8fa9a1","\xc6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013f"],["8fa9ab","\u014a\xd8\u0152"],["8fa9af","\u0166\xde"],["8fa9c1","\xe6\u0111\xf0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014b\xf8\u0153\xdf\u0167\xfe"],["8faaa1","\xc1\xc0\xc4\xc2\u0102\u01cd\u0100\u0104\xc5\xc3\u0106\u0108\u010c\xc7\u010a\u010e\xc9\xc8\xcb\xca\u011a\u0116\u0112\u0118"],["8faaba","\u011c\u011e\u0122\u0120\u0124\xcd\xcc\xcf\xce\u01cf\u0130\u012a\u012e\u0128\u0134\u0136\u0139\u013d\u013b\u0143\u0147\u0145\xd1\xd3\xd2\xd6\xd4\u01d1\u0150\u014c\xd5\u0154\u0158\u0156\u015a\u015c\u0160\u015e\u0164\u0162\xda\xd9\xdc\xdb\u016c\u01d3\u0170\u016a\u0172\u016e\u0168\u01d7\u01db\u01d9\u01d5\u0174\xdd\u0178\u0176\u0179\u017d\u017b"],["8faba1","\xe1\xe0\xe4\xe2\u0103\u01ce\u0101\u0105\xe5\xe3\u0107\u0109\u010d\xe7\u010b\u010f\xe9\xe8\xeb\xea\u011b\u0117\u0113\u0119\u01f5\u011d\u011f"],["8fabbd","\u0121\u0125\xed\xec\xef\xee\u01d0"],["8fabc5","\u012b\u012f\u0129\u0135\u0137\u013a\u013e\u013c\u0144\u0148\u0146\xf1\xf3\xf2\xf6\xf4\u01d2\u0151\u014d\xf5\u0155\u0159\u0157\u015b\u015d\u0161\u015f\u0165\u0163\xfa\xf9\xfc\xfb\u016d\u01d4\u0171\u016b\u0173\u016f\u0169\u01d8\u01dc\u01da\u01d6\u0175\xfd\xff\u0177\u017a\u017e\u017c"],["8fb0a1","\u4e02\u4e04\u4e05\u4e0c\u4e12\u4e1f\u4e23\u4e24\u4e28\u4e2b\u4e2e\u4e2f\u4e30\u4e35\u4e40\u4e41\u4e44\u4e47\u4e51\u4e5a\u4e5c\u4e63\u4e68\u4e69\u4e74\u4e75\u4e79\u4e7f\u4e8d\u4e96\u4e97\u4e9d\u4eaf\u4eb9\u4ec3\u4ed0\u4eda\u4edb\u4ee0\u4ee1\u4ee2\u4ee8\u4eef\u4ef1\u4ef3\u4ef5\u4efd\u4efe\u4eff\u4f00\u4f02\u4f03\u4f08\u4f0b\u4f0c\u4f12\u4f15\u4f16\u4f17\u4f19\u4f2e\u4f31\u4f60\u4f33\u4f35\u4f37\u4f39\u4f3b\u4f3e\u4f40\u4f42\u4f48\u4f49\u4f4b\u4f4c\u4f52\u4f54\u4f56\u4f58\u4f5f\u4f63\u4f6a\u4f6c\u4f6e\u4f71\u4f77\u4f78\u4f79\u4f7a\u4f7d\u4f7e\u4f81\u4f82\u4f84"],["8fb1a1","\u4f85\u4f89\u4f8a\u4f8c\u4f8e\u4f90\u4f92\u4f93\u4f94\u4f97\u4f99\u4f9a\u4f9e\u4f9f\u4fb2\u4fb7\u4fb9\u4fbb\u4fbc\u4fbd\u4fbe\u4fc0\u4fc1\u4fc5\u4fc6\u4fc8\u4fc9\u4fcb\u4fcc\u4fcd\u4fcf\u4fd2\u4fdc\u4fe0\u4fe2\u4ff0\u4ff2\u4ffc\u4ffd\u4fff\u5000\u5001\u5004\u5007\u500a\u500c\u500e\u5010\u5013\u5017\u5018\u501b\u501c\u501d\u501e\u5022\u5027\u502e\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504a\u504c\u504e\u5051\u5052\u5053\u5057\u5059\u505f\u5060\u5062\u5063\u5066\u5067\u506a\u506d\u5070\u5071\u503b\u5081\u5083\u5084\u5086\u508a\u508e\u508f\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509b\u509c\u509e",4,"\u50aa\u50af\u50b0\u50b9\u50ba\u50bd\u50c0\u50c3\u50c4\u50c7\u50cc\u50ce\u50d0\u50d3\u50d4\u50d8\u50dc\u50dd\u50df\u50e2\u50e4\u50e6\u50e8\u50e9\u50ef\u50f1\u50f6\u50fa\u50fe\u5103\u5106\u5107\u5108\u510b\u510c\u510d\u510e\u50f2\u5110\u5117\u5119\u511b\u511c\u511d\u511e\u5123\u5127\u5128\u512c\u512d\u512f\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514a\u514f\u5153\u5155\u5157\u5158\u515f\u5164\u5166\u517e\u5183\u5184\u518b\u518e\u5198\u519d\u51a1\u51a3\u51ad\u51b8\u51ba\u51bc\u51be\u51bf\u51c2"],["8fb3a1","\u51c8\u51cf\u51d1\u51d2\u51d3\u51d5\u51d8\u51de\u51e2\u51e5\u51ee\u51f2\u51f3\u51f4\u51f7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523c\u5245\u5249\u5255\u5257\u5258\u525a\u525c\u525f\u5260\u5261\u5266\u526e\u5277\u5278\u5279\u5280\u5282\u5285\u528a\u528c\u5293\u5295\u5296\u5297\u5298\u529a\u529c\u52a4\u52a5\u52a6\u52a7\u52af\u52b0\u52b6\u52b7\u52b8\u52ba\u52bb\u52bd\u52c0\u52c4\u52c6\u52c8\u52cc\u52cf\u52d1\u52d4\u52d6\u52db\u52dc\u52e1\u52e5\u52e8\u52e9\u52ea\u52ec\u52f0\u52f1\u52f4\u52f6\u52f7\u5300\u5303\u530a\u530b"],["8fb4a1","\u530c\u5311\u5313\u5318\u531b\u531c\u531e\u531f\u5325\u5327\u5328\u5329\u532b\u532c\u532d\u5330\u5332\u5335\u533c\u533d\u533e\u5342\u534c\u534b\u5359\u535b\u5361\u5363\u5365\u536c\u536d\u5372\u5379\u537e\u5383\u5387\u5388\u538e\u5393\u5394\u5399\u539d\u53a1\u53a4\u53aa\u53ab\u53af\u53b2\u53b4\u53b5\u53b7\u53b8\u53ba\u53bd\u53c0\u53c5\u53cf\u53d2\u53d3\u53d5\u53da\u53dd\u53de\u53e0\u53e6\u53e7\u53f5\u5402\u5413\u541a\u5421\u5427\u5428\u542a\u542f\u5431\u5434\u5435\u5443\u5444\u5447\u544d\u544f\u545e\u5462\u5464\u5466\u5467\u5469\u546b\u546d\u546e\u5474\u547f"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548d\u5491\u5495\u5496\u549c\u549f\u54a1\u54a6\u54a7\u54a9\u54aa\u54ad\u54ae\u54b1\u54b7\u54b9\u54ba\u54bb\u54bf\u54c6\u54ca\u54cd\u54ce\u54e0\u54ea\u54ec\u54ef\u54f6\u54fc\u54fe\u54ff\u5500\u5501\u5505\u5508\u5509\u550c\u550d\u550e\u5515\u552a\u552b\u5532\u5535\u5536\u553b\u553c\u553d\u5541\u5547\u5549\u554a\u554d\u5550\u5551\u5558\u555a\u555b\u555e\u5560\u5561\u5564\u5566\u557f\u5581\u5582\u5586\u5588\u558e\u558f\u5591\u5592\u5593\u5594\u5597\u55a3\u55a4\u55ad\u55b2\u55bf\u55c1\u55c3\u55c6\u55c9\u55cb\u55cc\u55ce\u55d1\u55d2"],["8fb6a1","\u55d3\u55d7\u55d8\u55db\u55de\u55e2\u55e9\u55f6\u55ff\u5605\u5608\u560a\u560d",5,"\u5619\u562c\u5630\u5633\u5635\u5637\u5639\u563b\u563c\u563d\u563f\u5640\u5641\u5643\u5644\u5646\u5649\u564b\u564d\u564f\u5654\u565e\u5660\u5661\u5662\u5663\u5666\u5669\u566d\u566f\u5671\u5672\u5675\u5684\u5685\u5688\u568b\u568c\u5695\u5699\u569a\u569d\u569e\u569f\u56a6\u56a7\u56a8\u56a9\u56ab\u56ac\u56ad\u56b1\u56b3\u56b7\u56be\u56c5\u56c9\u56ca\u56cb\u56cf\u56d0\u56cc\u56cd\u56d9\u56dc\u56dd\u56df\u56e1\u56e4",4,"\u56f1\u56eb\u56ed"],["8fb7a1","\u56f6\u56f7\u5701\u5702\u5707\u570a\u570c\u5711\u5715\u571a\u571b\u571d\u5720\u5722\u5723\u5724\u5725\u5729\u572a\u572c\u572e\u572f\u5733\u5734\u573d\u573e\u573f\u5745\u5746\u574c\u574d\u5752\u5762\u5765\u5767\u5768\u576b\u576d",4,"\u5773\u5774\u5775\u5777\u5779\u577a\u577b\u577c\u577e\u5781\u5783\u578c\u5794\u5797\u5799\u579a\u579c\u579d\u579e\u579f\u57a1\u5795\u57a7\u57a8\u57a9\u57ac\u57b8\u57bd\u57c7\u57c8\u57cc\u57cf\u57d5\u57dd\u57de\u57e4\u57e6\u57e7\u57e9\u57ed\u57f0\u57f5\u57f6\u57f8\u57fd\u57fe\u57ff\u5803\u5804\u5808\u5809\u57e1"],["8fb8a1","\u580c\u580d\u581b\u581e\u581f\u5820\u5826\u5827\u582d\u5832\u5839\u583f\u5849\u584c\u584d\u584f\u5850\u5855\u585f\u5861\u5864\u5867\u5868\u5878\u587c\u587f\u5880\u5881\u5887\u5888\u5889\u588a\u588c\u588d\u588f\u5890\u5894\u5896\u589d\u58a0\u58a1\u58a2\u58a6\u58a9\u58b1\u58b2\u58c4\u58bc\u58c2\u58c8\u58cd\u58ce\u58d0\u58d2\u58d4\u58d6\u58da\u58dd\u58e1\u58e2\u58e9\u58f3\u5905\u5906\u590b\u590c\u5912\u5913\u5914\u8641\u591d\u5921\u5923\u5924\u5928\u592f\u5930\u5933\u5935\u5936\u593f\u5943\u5946\u5952\u5953\u5959\u595b\u595d\u595e\u595f\u5961\u5963\u596b\u596d"],["8fb9a1","\u596f\u5972\u5975\u5976\u5979\u597b\u597c\u598b\u598c\u598e\u5992\u5995\u5997\u599f\u59a4\u59a7\u59ad\u59ae\u59af\u59b0\u59b3\u59b7\u59ba\u59bc\u59c1\u59c3\u59c4\u59c8\u59ca\u59cd\u59d2\u59dd\u59de\u59df\u59e3\u59e4\u59e7\u59ee\u59ef\u59f1\u59f2\u59f4\u59f7\u5a00\u5a04\u5a0c\u5a0d\u5a0e\u5a12\u5a13\u5a1e\u5a23\u5a24\u5a27\u5a28\u5a2a\u5a2d\u5a30\u5a44\u5a45\u5a47\u5a48\u5a4c\u5a50\u5a55\u5a5e\u5a63\u5a65\u5a67\u5a6d\u5a77\u5a7a\u5a7b\u5a7e\u5a8b\u5a90\u5a93\u5a96\u5a99\u5a9c\u5a9e\u5a9f\u5aa0\u5aa2\u5aa7\u5aac\u5ab1\u5ab2\u5ab3\u5ab5\u5ab8\u5aba\u5abb\u5abf"],["8fbaa1","\u5ac4\u5ac6\u5ac8\u5acf\u5ada\u5adc\u5ae0\u5ae5\u5aea\u5aee\u5af5\u5af6\u5afd\u5b00\u5b01\u5b08\u5b17\u5b34\u5b19\u5b1b\u5b1d\u5b21\u5b25\u5b2d\u5b38\u5b41\u5b4b\u5b4c\u5b52\u5b56\u5b5e\u5b68\u5b6e\u5b6f\u5b7c\u5b7d\u5b7e\u5b7f\u5b81\u5b84\u5b86\u5b8a\u5b8e\u5b90\u5b91\u5b93\u5b94\u5b96\u5ba8\u5ba9\u5bac\u5bad\u5baf\u5bb1\u5bb2\u5bb7\u5bba\u5bbc\u5bc0\u5bc1\u5bcd\u5bcf\u5bd6",4,"\u5be0\u5bef\u5bf1\u5bf4\u5bfd\u5c0c\u5c17\u5c1e\u5c1f\u5c23\u5c26\u5c29\u5c2b\u5c2c\u5c2e\u5c30\u5c32\u5c35\u5c36\u5c59\u5c5a\u5c5c\u5c62\u5c63\u5c67\u5c68\u5c69"],["8fbba1","\u5c6d\u5c70\u5c74\u5c75\u5c7a\u5c7b\u5c7c\u5c7d\u5c87\u5c88\u5c8a\u5c8f\u5c92\u5c9d\u5c9f\u5ca0\u5ca2\u5ca3\u5ca6\u5caa\u5cb2\u5cb4\u5cb5\u5cba\u5cc9\u5ccb\u5cd2\u5cdd\u5cd7\u5cee\u5cf1\u5cf2\u5cf4\u5d01\u5d06\u5d0d\u5d12\u5d2b\u5d23\u5d24\u5d26\u5d27\u5d31\u5d34\u5d39\u5d3d\u5d3f\u5d42\u5d43\u5d46\u5d48\u5d55\u5d51\u5d59\u5d4a\u5d5f\u5d60\u5d61\u5d62\u5d64\u5d6a\u5d6d\u5d70\u5d79\u5d7a\u5d7e\u5d7f\u5d81\u5d83\u5d88\u5d8a\u5d92\u5d93\u5d94\u5d95\u5d99\u5d9b\u5d9f\u5da0\u5da7\u5dab\u5db0\u5db4\u5db8\u5db9\u5dc3\u5dc7\u5dcb\u5dd0\u5dce\u5dd8\u5dd9\u5de0\u5de4"],["8fbca1","\u5de9\u5df8\u5df9\u5e00\u5e07\u5e0d\u5e12\u5e14\u5e15\u5e18\u5e1f\u5e20\u5e2e\u5e28\u5e32\u5e35\u5e3e\u5e4b\u5e50\u5e49\u5e51\u5e56\u5e58\u5e5b\u5e5c\u5e5e\u5e68\u5e6a",4,"\u5e70\u5e80\u5e8b\u5e8e\u5ea2\u5ea4\u5ea5\u5ea8\u5eaa\u5eac\u5eb1\u5eb3\u5ebd\u5ebe\u5ebf\u5ec6\u5ecc\u5ecb\u5ece\u5ed1\u5ed2\u5ed4\u5ed5\u5edc\u5ede\u5ee5\u5eeb\u5f02\u5f06\u5f07\u5f08\u5f0e\u5f19\u5f1c\u5f1d\u5f21\u5f22\u5f23\u5f24\u5f28\u5f2b\u5f2c\u5f2e\u5f30\u5f34\u5f36\u5f3b\u5f3d\u5f3f\u5f40\u5f44\u5f45\u5f47\u5f4d\u5f50\u5f54\u5f58\u5f5b\u5f60\u5f63\u5f64\u5f67"],["8fbda1","\u5f6f\u5f72\u5f74\u5f75\u5f78\u5f7a\u5f7d\u5f7e\u5f89\u5f8d\u5f8f\u5f96\u5f9c\u5f9d\u5fa2\u5fa7\u5fab\u5fa4\u5fac\u5faf\u5fb0\u5fb1\u5fb8\u5fc4\u5fc7\u5fc8\u5fc9\u5fcb\u5fd0",4,"\u5fde\u5fe1\u5fe2\u5fe8\u5fe9\u5fea\u5fec\u5fed\u5fee\u5fef\u5ff2\u5ff3\u5ff6\u5ffa\u5ffc\u6007\u600a\u600d\u6013\u6014\u6017\u6018\u601a\u601f\u6024\u602d\u6033\u6035\u6040\u6047\u6048\u6049\u604c\u6051\u6054\u6056\u6057\u605d\u6061\u6067\u6071\u607e\u607f\u6082\u6086\u6088\u608a\u608e\u6091\u6093\u6095\u6098\u609d\u609e\u60a2\u60a4\u60a5\u60a8\u60b0\u60b1\u60b7"],["8fbea1","\u60bb\u60be\u60c2\u60c4\u60c8\u60c9\u60ca\u60cb\u60ce\u60cf\u60d4\u60d5\u60d9\u60db\u60dd\u60de\u60e2\u60e5\u60f2\u60f5\u60f8\u60fc\u60fd\u6102\u6107\u610a\u610c\u6110",4,"\u6116\u6117\u6119\u611c\u611e\u6122\u612a\u612b\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615e\u6160\u616c\u6172\u6178\u617b\u617c\u617f\u6180\u6181\u6183\u6184\u618b\u618d\u6192\u6193\u6197\u6198\u619c\u619d\u619f\u61a0\u61a5\u61a8\u61aa\u61ad\u61b8\u61b9\u61bc\u61c0\u61c1\u61c2\u61ce\u61cf\u61d5\u61dc\u61dd\u61de\u61df\u61e1\u61e2\u61e7\u61e9\u61e5"],["8fbfa1","\u61ec\u61ed\u61ef\u6201\u6203\u6204\u6207\u6213\u6215\u621c\u6220\u6222\u6223\u6227\u6229\u622b\u6239\u623d\u6242\u6243\u6244\u6246\u624c\u6250\u6251\u6252\u6254\u6256\u625a\u625c\u6264\u626d\u626f\u6273\u627a\u627d\u628d\u628e\u628f\u6290\u62a6\u62a8\u62b3\u62b6\u62b7\u62ba\u62be\u62bf\u62c4\u62ce\u62d5\u62d6\u62da\u62ea\u62f2\u62f4\u62fc\u62fd\u6303\u6304\u630a\u630b\u630d\u6310\u6313\u6316\u6318\u6329\u632a\u632d\u6335\u6336\u6339\u633c\u6341\u6342\u6343\u6344\u6346\u634a\u634b\u634e\u6352\u6353\u6354\u6358\u635b\u6365\u6366\u636c\u636d\u6371\u6374\u6375"],["8fc0a1","\u6378\u637c\u637d\u637f\u6382\u6384\u6387\u638a\u6390\u6394\u6395\u6399\u639a\u639e\u63a4\u63a6\u63ad\u63ae\u63af\u63bd\u63c1\u63c5\u63c8\u63ce\u63d1\u63d3\u63d4\u63d5\u63dc\u63e0\u63e5\u63ea\u63ec\u63f2\u63f3\u63f5\u63f8\u63f9\u6409\u640a\u6410\u6412\u6414\u6418\u641e\u6420\u6422\u6424\u6425\u6429\u642a\u642f\u6430\u6435\u643d\u643f\u644b\u644f\u6451\u6452\u6453\u6454\u645a\u645b\u645c\u645d\u645f\u6460\u6461\u6463\u646d\u6473\u6474\u647b\u647d\u6485\u6487\u648f\u6490\u6491\u6498\u6499\u649b\u649d\u649f\u64a1\u64a3\u64a6\u64a8\u64ac\u64b3\u64bd\u64be\u64bf"],["8fc1a1","\u64c4\u64c9\u64ca\u64cb\u64cc\u64ce\u64d0\u64d1\u64d5\u64d7\u64e4\u64e5\u64e9\u64ea\u64ed\u64f0\u64f5\u64f7\u64fb\u64ff\u6501\u6504\u6508\u6509\u650a\u650f\u6513\u6514\u6516\u6519\u651b\u651e\u651f\u6522\u6526\u6529\u652e\u6531\u653a\u653c\u653d\u6543\u6547\u6549\u6550\u6552\u6554\u655f\u6560\u6567\u656b\u657a\u657d\u6581\u6585\u658a\u6592\u6595\u6598\u659d\u65a0\u65a3\u65a6\u65ae\u65b2\u65b3\u65b4\u65bf\u65c2\u65c8\u65c9\u65ce\u65d0\u65d4\u65d6\u65d8\u65df\u65f0\u65f2\u65f4\u65f5\u65f9\u65fe\u65ff\u6600\u6604\u6608\u6609\u660d\u6611\u6612\u6615\u6616\u661d"],["8fc2a1","\u661e\u6621\u6622\u6623\u6624\u6626\u6629\u662a\u662b\u662c\u662e\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664a\u664c\u6651\u664e\u6657\u6658\u6659\u665b\u665c\u6660\u6661\u66fb\u666a\u666b\u666c\u667e\u6673\u6675\u667f\u6677\u6678\u6679\u667b\u6680\u667c\u668b\u668c\u668d\u6690\u6692\u6699\u669a\u669b\u669c\u669f\u66a0\u66a4\u66ad\u66b1\u66b2\u66b5\u66bb\u66bf\u66c0\u66c2\u66c3\u66c8\u66cc\u66ce\u66cf\u66d4\u66db\u66df\u66e8\u66eb\u66ec\u66ee\u66fa\u6705\u6707\u670e\u6713\u6719\u671c\u6720\u6722\u6733\u673e\u6745\u6747\u6748\u674c\u6754\u6755\u675d"],["8fc3a1","\u6766\u676c\u676e\u6774\u6776\u677b\u6781\u6784\u678e\u678f\u6791\u6793\u6796\u6798\u6799\u679b\u67b0\u67b1\u67b2\u67b5\u67bb\u67bc\u67bd\u67f9\u67c0\u67c2\u67c3\u67c5\u67c8\u67c9\u67d2\u67d7\u67d9\u67dc\u67e1\u67e6\u67f0\u67f2\u67f6\u67f7\u6852\u6814\u6819\u681d\u681f\u6828\u6827\u682c\u682d\u682f\u6830\u6831\u6833\u683b\u683f\u6844\u6845\u684a\u684c\u6855\u6857\u6858\u685b\u686b\u686e",4,"\u6875\u6879\u687a\u687b\u687c\u6882\u6884\u6886\u6888\u6896\u6898\u689a\u689c\u68a1\u68a3\u68a5\u68a9\u68aa\u68ae\u68b2\u68bb\u68c5\u68c8\u68cc\u68cf"],["8fc4a1","\u68d0\u68d1\u68d3\u68d6\u68d9\u68dc\u68dd\u68e5\u68e8\u68ea\u68eb\u68ec\u68ed\u68f0\u68f1\u68f5\u68f6\u68fb\u68fc\u68fd\u6906\u6909\u690a\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693b\u6942\u6945\u6949\u694e\u6957\u695b\u6963\u6964\u6965\u6966\u6968\u6969\u696c\u6970\u6971\u6972\u697a\u697b\u697f\u6980\u698d\u6992\u6996\u6998\u69a1\u69a5\u69a6\u69a8\u69ab\u69ad\u69af\u69b7\u69b8\u69ba\u69bc\u69c5\u69c8\u69d1\u69d6\u69d7\u69e2\u69e5\u69ee\u69ef\u69f1\u69f3\u69f5\u69fe\u6a00\u6a01\u6a03\u6a0f\u6a11\u6a15\u6a1a\u6a1d\u6a20\u6a24\u6a28\u6a30\u6a32"],["8fc5a1","\u6a34\u6a37\u6a3b\u6a3e\u6a3f\u6a45\u6a46\u6a49\u6a4a\u6a4e\u6a50\u6a51\u6a52\u6a55\u6a56\u6a5b\u6a64\u6a67\u6a6a\u6a71\u6a73\u6a7e\u6a81\u6a83\u6a86\u6a87\u6a89\u6a8b\u6a91\u6a9b\u6a9d\u6a9e\u6a9f\u6aa5\u6aab\u6aaf\u6ab0\u6ab1\u6ab4\u6abd\u6abe\u6abf\u6ac6\u6ac9\u6ac8\u6acc\u6ad0\u6ad4\u6ad5\u6ad6\u6adc\u6add\u6ae4\u6ae7\u6aec\u6af0\u6af1\u6af2\u6afc\u6afd\u6b02\u6b03\u6b06\u6b07\u6b09\u6b0f\u6b10\u6b11\u6b17\u6b1b\u6b1e\u6b24\u6b28\u6b2b\u6b2c\u6b2f\u6b35\u6b36\u6b3b\u6b3f\u6b46\u6b4a\u6b4d\u6b52\u6b56\u6b58\u6b5d\u6b60\u6b67\u6b6b\u6b6e\u6b70\u6b75\u6b7d"],["8fc6a1","\u6b7e\u6b82\u6b85\u6b97\u6b9b\u6b9f\u6ba0\u6ba2\u6ba3\u6ba8\u6ba9\u6bac\u6bad\u6bae\u6bb0\u6bb8\u6bb9\u6bbd\u6bbe\u6bc3\u6bc4\u6bc9\u6bcc\u6bd6\u6bda\u6be1\u6be3\u6be6\u6be7\u6bee\u6bf1\u6bf7\u6bf9\u6bff\u6c02\u6c04\u6c05\u6c09\u6c0d\u6c0e\u6c10\u6c12\u6c19\u6c1f\u6c26\u6c27\u6c28\u6c2c\u6c2e\u6c33\u6c35\u6c36\u6c3a\u6c3b\u6c3f\u6c4a\u6c4b\u6c4d\u6c4f\u6c52\u6c54\u6c59\u6c5b\u6c5c\u6c6b\u6c6d\u6c6f\u6c74\u6c76\u6c78\u6c79\u6c7b\u6c85\u6c86\u6c87\u6c89\u6c94\u6c95\u6c97\u6c98\u6c9c\u6c9f\u6cb0\u6cb2\u6cb4\u6cc2\u6cc6\u6ccd\u6ccf\u6cd0\u6cd1\u6cd2\u6cd4\u6cd6"],["8fc7a1","\u6cda\u6cdc\u6ce0\u6ce7\u6ce9\u6ceb\u6cec\u6cee\u6cf2\u6cf4\u6d04\u6d07\u6d0a\u6d0e\u6d0f\u6d11\u6d13\u6d1a\u6d26\u6d27\u6d28\u6c67\u6d2e\u6d2f\u6d31\u6d39\u6d3c\u6d3f\u6d57\u6d5e\u6d5f\u6d61\u6d65\u6d67\u6d6f\u6d70\u6d7c\u6d82\u6d87\u6d91\u6d92\u6d94\u6d96\u6d97\u6d98\u6daa\u6dac\u6db4\u6db7\u6db9\u6dbd\u6dbf\u6dc4\u6dc8\u6dca\u6dce\u6dcf\u6dd6\u6ddb\u6ddd\u6ddf\u6de0\u6de2\u6de5\u6de9\u6def\u6df0\u6df4\u6df6\u6dfc\u6e00\u6e04\u6e1e\u6e22\u6e27\u6e32\u6e36\u6e39\u6e3b\u6e3c\u6e44\u6e45\u6e48\u6e49\u6e4b\u6e4f\u6e51\u6e52\u6e53\u6e54\u6e57\u6e5c\u6e5d\u6e5e"],["8fc8a1","\u6e62\u6e63\u6e68\u6e73\u6e7b\u6e7d\u6e8d\u6e93\u6e99\u6ea0\u6ea7\u6ead\u6eae\u6eb1\u6eb3\u6ebb\u6ebf\u6ec0\u6ec1\u6ec3\u6ec7\u6ec8\u6eca\u6ecd\u6ece\u6ecf\u6eeb\u6eed\u6eee\u6ef9\u6efb\u6efd\u6f04\u6f08\u6f0a\u6f0c\u6f0d\u6f16\u6f18\u6f1a\u6f1b\u6f26\u6f29\u6f2a\u6f2f\u6f30\u6f33\u6f36\u6f3b\u6f3c\u6f2d\u6f4f\u6f51\u6f52\u6f53\u6f57\u6f59\u6f5a\u6f5d\u6f5e\u6f61\u6f62\u6f68\u6f6c\u6f7d\u6f7e\u6f83\u6f87\u6f88\u6f8b\u6f8c\u6f8d\u6f90\u6f92\u6f93\u6f94\u6f96\u6f9a\u6f9f\u6fa0\u6fa5\u6fa6\u6fa7\u6fa8\u6fae\u6faf\u6fb0\u6fb5\u6fb6\u6fbc\u6fc5\u6fc7\u6fc8\u6fca"],["8fc9a1","\u6fda\u6fde\u6fe8\u6fe9\u6ff0\u6ff5\u6ff9\u6ffc\u6ffd\u7000\u7005\u7006\u7007\u700d\u7017\u7020\u7023\u702f\u7034\u7037\u7039\u703c\u7043\u7044\u7048\u7049\u704a\u704b\u7054\u7055\u705d\u705e\u704e\u7064\u7065\u706c\u706e\u7075\u7076\u707e\u7081\u7085\u7086\u7094",4,"\u709b\u70a4\u70ab\u70b0\u70b1\u70b4\u70b7\u70ca\u70d1\u70d3\u70d4\u70d5\u70d6\u70d8\u70dc\u70e4\u70fa\u7103",4,"\u710b\u710c\u710f\u711e\u7120\u712b\u712d\u712f\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714a\u714b\u7150\u7152\u7157\u715a\u715c\u715e\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718c\u7192\u719a\u719b\u71a0\u71a2\u71af\u71b0\u71b2\u71b3\u71ba\u71bf\u71c0\u71c1\u71c4\u71cb\u71cc\u71d3\u71d6\u71d9\u71da\u71dc\u71f8\u71fe\u7200\u7207\u7208\u7209\u7213\u7217\u721a\u721d\u721f\u7224\u722b\u722f\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724e\u724f\u7250\u7253\u7255\u7256\u725a\u725c\u725e\u7260\u7263\u7268\u726b\u726e\u726f\u7271\u7277\u7278\u727b\u727c\u727f\u7284\u7289\u728d\u728e\u7293\u729b\u72a8\u72ad\u72ae\u72b1\u72b4\u72be\u72c1\u72c7\u72c9\u72cc\u72d5\u72d6\u72d8\u72df\u72e5\u72f3\u72f4\u72fa\u72fb"],["8fcba1","\u72fe\u7302\u7304\u7305\u7307\u730b\u730d\u7312\u7313\u7318\u7319\u731e\u7322\u7324\u7327\u7328\u732c\u7331\u7332\u7335\u733a\u733b\u733d\u7343\u734d\u7350\u7352\u7356\u7358\u735d\u735e\u735f\u7360\u7366\u7367\u7369\u736b\u736c\u736e\u736f\u7371\u7377\u7379\u737c\u7380\u7381\u7383\u7385\u7386\u738e\u7390\u7393\u7395\u7397\u7398\u739c\u739e\u739f\u73a0\u73a2\u73a5\u73a6\u73aa\u73ab\u73ad\u73b5\u73b7\u73b9\u73bc\u73bd\u73bf\u73c5\u73c6\u73c9\u73cb\u73cc\u73cf\u73d2\u73d3\u73d6\u73d9\u73dd\u73e1\u73e3\u73e6\u73e7\u73e9\u73f4\u73f5\u73f7\u73f9\u73fa\u73fb\u73fd"],["8fcca1","\u73ff\u7400\u7401\u7404\u7407\u740a\u7411\u741a\u741b\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744b\u744d\u7451\u7452\u7457\u745d\u7462\u7466\u7467\u7468\u746b\u746d\u746e\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748f\u7490\u7491\u7492\u7498\u7499\u749a\u749c\u749f\u74a0\u74a1\u74a3\u74a6\u74a8\u74a9\u74aa\u74ab\u74ae\u74af\u74b1\u74b2\u74b5\u74b9\u74bb\u74bf\u74c8\u74c9\u74cc\u74d0\u74d3\u74d8\u74da\u74db\u74de\u74df\u74e4\u74e8\u74ea\u74eb\u74ef\u74f4\u74fa\u74fb\u74fc\u74ff\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752a\u752f\u7536\u7539\u753d\u753e\u753f\u7540\u7543\u7547\u7548\u754e\u7550\u7552\u7557\u755e\u755f\u7561\u756f\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759c\u75a2\u75a4\u75b4\u75ba\u75bf\u75c0\u75c1\u75c4\u75c6\u75cc\u75ce\u75cf\u75d7\u75dc\u75df\u75e0\u75e1\u75e4\u75e7\u75ec\u75ee\u75ef\u75f1\u75f9\u7600\u7602\u7603\u7604\u7607\u7608\u760a\u760c\u760f\u7612\u7613\u7615\u7616\u7619\u761b\u761c\u761d\u761e\u7623\u7625\u7626\u7629\u762d\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763a\u763c\u764a\u7640\u7641\u7643\u7644\u7645\u7649\u764b\u7655\u7659\u765f\u7664\u7665\u766d\u766e\u766f\u7671\u7674\u7681\u7685\u768c\u768d\u7695\u769b\u769c\u769d\u769f\u76a0\u76a2",6,"\u76aa\u76ad\u76bd\u76c1\u76c5\u76c9\u76cb\u76cc\u76ce\u76d4\u76d9\u76e0\u76e6\u76e8\u76ec\u76f0\u76f1\u76f6\u76f9\u76fc\u7700\u7706\u770a\u770e\u7712\u7714\u7715\u7717\u7719\u771a\u771c\u7722\u7728\u772d\u772e\u772f\u7734\u7735\u7736\u7739\u773d\u773e\u7742\u7745\u7746\u774a\u774d\u774e\u774f\u7752\u7756\u7757\u775c\u775e\u775f\u7760\u7762"],["8fcfa1","\u7764\u7767\u776a\u776c\u7770\u7772\u7773\u7774\u777a\u777d\u7780\u7784\u778c\u778d\u7794\u7795\u7796\u779a\u779f\u77a2\u77a7\u77aa\u77ae\u77af\u77b1\u77b5\u77be\u77c3\u77c9\u77d1\u77d2\u77d5\u77d9\u77de\u77df\u77e0\u77e4\u77e6\u77ea\u77ec\u77f0\u77f1\u77f4\u77f8\u77fb\u7805\u7806\u7809\u780d\u780e\u7811\u781d\u7821\u7822\u7823\u782d\u782e\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784c\u784e\u7852\u785c\u785e\u7860\u7861\u7863\u7864\u7868\u786a\u786e\u787a\u787e\u788a\u788f\u7894\u7898\u78a1\u789d\u789e\u789f\u78a4\u78a8\u78ac\u78ad\u78b0\u78b1\u78b2\u78b3"],["8fd0a1","\u78bb\u78bd\u78bf\u78c7\u78c8\u78c9\u78cc\u78ce\u78d2\u78d3\u78d5\u78d6\u78e4\u78db\u78df\u78e0\u78e1\u78e6\u78ea\u78f2\u78f3\u7900\u78f6\u78f7\u78fa\u78fb\u78ff\u7906\u790c\u7910\u791a\u791c\u791e\u791f\u7920\u7925\u7927\u7929\u792d\u7931\u7934\u7935\u793b\u793d\u793f\u7944\u7945\u7946\u794a\u794b\u794f\u7951\u7954\u7958\u795b\u795c\u7967\u7969\u796b\u7972\u7979\u797b\u797c\u797e\u798b\u798c\u7991\u7993\u7994\u7995\u7996\u7998\u799b\u799c\u79a1\u79a8\u79a9\u79ab\u79af\u79b1\u79b4\u79b8\u79bb\u79c2\u79c4\u79c7\u79c8\u79ca\u79cf\u79d4\u79d6\u79da\u79dd\u79de"],["8fd1a1","\u79e0\u79e2\u79e5\u79ea\u79eb\u79ed\u79f1\u79f8\u79fc\u7a02\u7a03\u7a07\u7a09\u7a0a\u7a0c\u7a11\u7a15\u7a1b\u7a1e\u7a21\u7a27\u7a2b\u7a2d\u7a2f\u7a30\u7a34\u7a35\u7a38\u7a39\u7a3a\u7a44\u7a45\u7a47\u7a48\u7a4c\u7a55\u7a56\u7a59\u7a5c\u7a5d\u7a5f\u7a60\u7a65\u7a67\u7a6a\u7a6d\u7a75\u7a78\u7a7e\u7a80\u7a82\u7a85\u7a86\u7a8a\u7a8b\u7a90\u7a91\u7a94\u7a9e\u7aa0\u7aa3\u7aac\u7ab3\u7ab5\u7ab9\u7abb\u7abc\u7ac6\u7ac9\u7acc\u7ace\u7ad1\u7adb\u7ae8\u7ae9\u7aeb\u7aec\u7af1\u7af4\u7afb\u7afd\u7afe\u7b07\u7b14\u7b1f\u7b23\u7b27\u7b29\u7b2a\u7b2b\u7b2d\u7b2e\u7b2f\u7b30"],["8fd2a1","\u7b31\u7b34\u7b3d\u7b3f\u7b40\u7b41\u7b47\u7b4e\u7b55\u7b60\u7b64\u7b66\u7b69\u7b6a\u7b6d\u7b6f\u7b72\u7b73\u7b77\u7b84\u7b89\u7b8e\u7b90\u7b91\u7b96\u7b9b\u7b9e\u7ba0\u7ba5\u7bac\u7baf\u7bb0\u7bb2\u7bb5\u7bb6\u7bba\u7bbb\u7bbc\u7bbd\u7bc2\u7bc5\u7bc8\u7bca\u7bd4\u7bd6\u7bd7\u7bd9\u7bda\u7bdb\u7be8\u7bea\u7bf2\u7bf4\u7bf5\u7bf8\u7bf9\u7bfa\u7bfc\u7bfe\u7c01\u7c02\u7c03\u7c04\u7c06\u7c09\u7c0b\u7c0c\u7c0e\u7c0f\u7c19\u7c1b\u7c20\u7c25\u7c26\u7c28\u7c2c\u7c31\u7c33\u7c34\u7c36\u7c39\u7c3a\u7c46\u7c4a\u7c55\u7c51\u7c52\u7c53\u7c59",5],["8fd3a1","\u7c61\u7c63\u7c67\u7c69\u7c6d\u7c6e\u7c70\u7c72\u7c79\u7c7c\u7c7d\u7c86\u7c87\u7c8f\u7c94\u7c9e\u7ca0\u7ca6\u7cb0\u7cb6\u7cb7\u7cba\u7cbb\u7cbc\u7cbf\u7cc4\u7cc7\u7cc8\u7cc9\u7ccd\u7ccf\u7cd3\u7cd4\u7cd5\u7cd7\u7cd9\u7cda\u7cdd\u7ce6\u7ce9\u7ceb\u7cf5\u7d03\u7d07\u7d08\u7d09\u7d0f\u7d11\u7d12\u7d13\u7d16\u7d1d\u7d1e\u7d23\u7d26\u7d2a\u7d2d\u7d31\u7d3c\u7d3d\u7d3e\u7d40\u7d41\u7d47\u7d48\u7d4d\u7d51\u7d53\u7d57\u7d59\u7d5a\u7d5c\u7d5d\u7d65\u7d67\u7d6a\u7d70\u7d78\u7d7a\u7d7b\u7d7f\u7d81\u7d82\u7d83\u7d85\u7d86\u7d88\u7d8b\u7d8c\u7d8d\u7d91\u7d96\u7d97\u7d9d"],["8fd4a1","\u7d9e\u7da6\u7da7\u7daa\u7db3\u7db6\u7db7\u7db9\u7dc2",4,"\u7dcc\u7dcd\u7dce\u7dd7\u7dd9\u7e00\u7de2\u7de5\u7de6\u7dea\u7deb\u7ded\u7df1\u7df5\u7df6\u7df9\u7dfa\u7e08\u7e10\u7e11\u7e15\u7e17\u7e1c\u7e1d\u7e20\u7e27\u7e28\u7e2c\u7e2d\u7e2f\u7e33\u7e36\u7e3f\u7e44\u7e45\u7e47\u7e4e\u7e50\u7e52\u7e58\u7e5f\u7e61\u7e62\u7e65\u7e6b\u7e6e\u7e6f\u7e73\u7e78\u7e7e\u7e81\u7e86\u7e87\u7e8a\u7e8d\u7e91\u7e95\u7e98\u7e9a\u7e9d\u7e9e\u7f3c\u7f3b\u7f3d\u7f3e\u7f3f\u7f43\u7f44\u7f47\u7f4f\u7f52\u7f53\u7f5b\u7f5c\u7f5d\u7f61\u7f63\u7f64\u7f65\u7f66\u7f6d"],["8fd5a1","\u7f71\u7f7d\u7f7e\u7f7f\u7f80\u7f8b\u7f8d\u7f8f\u7f90\u7f91\u7f96\u7f97\u7f9c\u7fa1\u7fa2\u7fa6\u7faa\u7fad\u7fb4\u7fbc\u7fbf\u7fc0\u7fc3\u7fc8\u7fce\u7fcf\u7fdb\u7fdf\u7fe3\u7fe5\u7fe8\u7fec\u7fee\u7fef\u7ff2\u7ffa\u7ffd\u7ffe\u7fff\u8007\u8008\u800a\u800d\u800e\u800f\u8011\u8013\u8014\u8016\u801d\u801e\u801f\u8020\u8024\u8026\u802c\u802e\u8030\u8034\u8035\u8037\u8039\u803a\u803c\u803e\u8040\u8044\u8060\u8064\u8066\u806d\u8071\u8075\u8081\u8088\u808e\u809c\u809e\u80a6\u80a7\u80ab\u80b8\u80b9\u80c8\u80cd\u80cf\u80d2\u80d4\u80d5\u80d7\u80d8\u80e0\u80ed\u80ee"],["8fd6a1","\u80f0\u80f2\u80f3\u80f6\u80f9\u80fa\u80fe\u8103\u810b\u8116\u8117\u8118\u811c\u811e\u8120\u8124\u8127\u812c\u8130\u8135\u813a\u813c\u8145\u8147\u814a\u814c\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816d\u816f\u8177\u8181\u8190\u8184\u8185\u8186\u818b\u818e\u8196\u8198\u819b\u819e\u81a2\u81ae\u81b2\u81b4\u81bb\u81cb\u81c3\u81c5\u81ca\u81ce\u81cf\u81d5\u81d7\u81db\u81dd\u81de\u81e1\u81e4\u81eb\u81ec\u81f0\u81f1\u81f2\u81f5\u81f6\u81f8\u81f9\u81fd\u81ff\u8200\u8203\u820f\u8213\u8214\u8219\u821a\u821d\u8221\u8222\u8228\u8232\u8234\u823a\u8243\u8244\u8245\u8246"],["8fd7a1","\u824b\u824e\u824f\u8251\u8256\u825c\u8260\u8263\u8267\u826d\u8274\u827b\u827d\u827f\u8280\u8281\u8283\u8284\u8287\u8289\u828a\u828e\u8291\u8294\u8296\u8298\u829a\u829b\u82a0\u82a1\u82a3\u82a4\u82a7\u82a8\u82a9\u82aa\u82ae\u82b0\u82b2\u82b4\u82b7\u82ba\u82bc\u82be\u82bf\u82c6\u82d0\u82d5\u82da\u82e0\u82e2\u82e4\u82e8\u82ea\u82ed\u82ef\u82f6\u82f7\u82fd\u82fe\u8300\u8301\u8307\u8308\u830a\u830b\u8354\u831b\u831d\u831e\u831f\u8321\u8322\u832c\u832d\u832e\u8330\u8333\u8337\u833a\u833c\u833d\u8342\u8343\u8344\u8347\u834d\u834e\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837d\u837f\u8380\u8382\u8384\u8386\u838d\u8392\u8394\u8395\u8398\u8399\u839b\u839c\u839d\u83a6\u83a7\u83a9\u83ac\u83be\u83bf\u83c0\u83c7\u83c9\u83cf\u83d0\u83d1\u83d4\u83dd\u8353\u83e8\u83ea\u83f6\u83f8\u83f9\u83fc\u8401\u8406\u840a\u840f\u8411\u8415\u8419\u83ad\u842f\u8439\u8445\u8447\u8448\u844a\u844d\u844f\u8451\u8452\u8456\u8458\u8459\u845a\u845c\u8460\u8464\u8465\u8467\u846a\u8470\u8473\u8474\u8476\u8478\u847c\u847d\u8481\u8485\u8492\u8493\u8495\u849e\u84a6\u84a8\u84a9\u84aa\u84af\u84b1\u84b4\u84ba\u84bd\u84be\u84c0\u84c2\u84c7\u84c8\u84cc\u84cf\u84d3"],["8fd9a1","\u84dc\u84e7\u84ea\u84ef\u84f0\u84f1\u84f2\u84f7\u8532\u84fa\u84fb\u84fd\u8502\u8503\u8507\u850c\u850e\u8510\u851c\u851e\u8522\u8523\u8524\u8525\u8527\u852a\u852b\u852f\u8533\u8534\u8536\u853f\u8546\u854f",4,"\u8556\u8559\u855c",6,"\u8564\u856b\u856f\u8579\u857a\u857b\u857d\u857f\u8581\u8585\u8586\u8589\u858b\u858c\u858f\u8593\u8598\u859d\u859f\u85a0\u85a2\u85a5\u85a7\u85b4\u85b6\u85b7\u85b8\u85bc\u85bd\u85be\u85bf\u85c2\u85c7\u85ca\u85cb\u85ce\u85ad\u85d8\u85da\u85df\u85e0\u85e6\u85e8\u85ed\u85f3\u85f6\u85fc"],["8fdaa1","\u85ff\u8600\u8604\u8605\u860d\u860e\u8610\u8611\u8612\u8618\u8619\u861b\u861e\u8621\u8627\u8629\u8636\u8638\u863a\u863c\u863d\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865d\u8660",4,"\u8669\u866c\u866f\u8675\u8676\u8677\u867a\u868d\u8691\u8696\u8698\u869a\u869c\u86a1\u86a6\u86a7\u86a8\u86ad\u86b1\u86b3\u86b4\u86b5\u86b7\u86b8\u86b9\u86bf\u86c0\u86c1\u86c3\u86c5\u86d1\u86d2\u86d5\u86d7\u86da\u86dc\u86e0\u86e3\u86e5\u86e7\u8688\u86fa\u86fc\u86fd\u8704\u8705\u8707\u870b\u870e\u870f\u8710\u8713\u8714\u8719\u871e\u871f\u8721\u8723"],["8fdba1","\u8728\u872e\u872f\u8731\u8732\u8739\u873a\u873c\u873d\u873e\u8740\u8743\u8745\u874d\u8758\u875d\u8761\u8764\u8765\u876f\u8771\u8772\u877b\u8783",6,"\u878b\u878c\u8790\u8793\u8795\u8797\u8798\u8799\u879e\u87a0\u87a3\u87a7\u87ac\u87ad\u87ae\u87b1\u87b5\u87be\u87bf\u87c1\u87c8\u87c9\u87ca\u87ce\u87d5\u87d6\u87d9\u87da\u87dc\u87df\u87e2\u87e3\u87e4\u87ea\u87eb\u87ed\u87f1\u87f3\u87f8\u87fa\u87ff\u8801\u8803\u8806\u8809\u880a\u880b\u8810\u8819\u8812\u8813\u8814\u8818\u881a\u881b\u881c\u881e\u881f\u8828\u882d\u882e\u8830\u8832\u8835"],["8fdca1","\u883a\u883c\u8841\u8843\u8845\u8848\u8849\u884a\u884b\u884e\u8851\u8855\u8856\u8858\u885a\u885c\u885f\u8860\u8864\u8869\u8871\u8879\u887b\u8880\u8898\u889a\u889b\u889c\u889f\u88a0\u88a8\u88aa\u88ba\u88bd\u88be\u88c0\u88ca",4,"\u88d1\u88d2\u88d3\u88db\u88de\u88e7\u88ef\u88f0\u88f1\u88f5\u88f7\u8901\u8906\u890d\u890e\u890f\u8915\u8916\u8918\u8919\u891a\u891c\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893a\u893e\u8940\u8942\u8945\u8946\u8949\u894f\u8952\u8957\u895a\u895b\u895c\u8961\u8962\u8963\u896b\u896e\u8970\u8973\u8975\u897a"],["8fdda1","\u897b\u897c\u897d\u8989\u898d\u8990\u8994\u8995\u899b\u899c\u899f\u89a0\u89a5\u89b0\u89b4\u89b5\u89b6\u89b7\u89bc\u89d4",4,"\u89e5\u89e9\u89eb\u89ed\u89f1\u89f3\u89f6\u89f9\u89fd\u89ff\u8a04\u8a05\u8a07\u8a0f\u8a11\u8a12\u8a14\u8a15\u8a1e\u8a20\u8a22\u8a24\u8a26\u8a2b\u8a2c\u8a2f\u8a35\u8a37\u8a3d\u8a3e\u8a40\u8a43\u8a45\u8a47\u8a49\u8a4d\u8a4e\u8a53\u8a56\u8a57\u8a58\u8a5c\u8a5d\u8a61\u8a65\u8a67\u8a75\u8a76\u8a77\u8a79\u8a7a\u8a7b\u8a7e\u8a7f\u8a80\u8a83\u8a86\u8a8b\u8a8f\u8a90\u8a92\u8a96\u8a97\u8a99\u8a9f\u8aa7\u8aa9\u8aae\u8aaf\u8ab3"],["8fdea1","\u8ab6\u8ab7\u8abb\u8abe\u8ac3\u8ac6\u8ac8\u8ac9\u8aca\u8ad1\u8ad3\u8ad4\u8ad5\u8ad7\u8add\u8adf\u8aec\u8af0\u8af4\u8af5\u8af6\u8afc\u8aff\u8b05\u8b06\u8b0b\u8b11\u8b1c\u8b1e\u8b1f\u8b0a\u8b2d\u8b30\u8b37\u8b3c\u8b42",4,"\u8b48\u8b52\u8b53\u8b54\u8b59\u8b4d\u8b5e\u8b63\u8b6d\u8b76\u8b78\u8b79\u8b7c\u8b7e\u8b81\u8b84\u8b85\u8b8b\u8b8d\u8b8f\u8b94\u8b95\u8b9c\u8b9e\u8b9f\u8c38\u8c39\u8c3d\u8c3e\u8c45\u8c47\u8c49\u8c4b\u8c4f\u8c51\u8c53\u8c54\u8c57\u8c58\u8c5b\u8c5d\u8c59\u8c63\u8c64\u8c66\u8c68\u8c69\u8c6d\u8c73\u8c75\u8c76\u8c7b\u8c7e\u8c86"],["8fdfa1","\u8c87\u8c8b\u8c90\u8c92\u8c93\u8c99\u8c9b\u8c9c\u8ca4\u8cb9\u8cba\u8cc5\u8cc6\u8cc9\u8ccb\u8ccf\u8cd6\u8cd5\u8cd9\u8cdd\u8ce1\u8ce8\u8cec\u8cef\u8cf0\u8cf2\u8cf5\u8cf7\u8cf8\u8cfe\u8cff\u8d01\u8d03\u8d09\u8d12\u8d17\u8d1b\u8d65\u8d69\u8d6c\u8d6e\u8d7f\u8d82\u8d84\u8d88\u8d8d\u8d90\u8d91\u8d95\u8d9e\u8d9f\u8da0\u8da6\u8dab\u8dac\u8daf\u8db2\u8db5\u8db7\u8db9\u8dbb\u8dc0\u8dc5\u8dc6\u8dc7\u8dc8\u8dca\u8dce\u8dd1\u8dd4\u8dd5\u8dd7\u8dd9\u8de4\u8de5\u8de7\u8dec\u8df0\u8dbc\u8df1\u8df2\u8df4\u8dfd\u8e01\u8e04\u8e05\u8e06\u8e0b\u8e11\u8e14\u8e16\u8e20\u8e21\u8e22"],["8fe0a1","\u8e23\u8e26\u8e27\u8e31\u8e33\u8e36\u8e37\u8e38\u8e39\u8e3d\u8e40\u8e41\u8e4b\u8e4d\u8e4e\u8e4f\u8e54\u8e5b\u8e5c\u8e5d\u8e5e\u8e61\u8e62\u8e69\u8e6c\u8e6d\u8e6f\u8e70\u8e71\u8e79\u8e7a\u8e7b\u8e82\u8e83\u8e89\u8e90\u8e92\u8e95\u8e9a\u8e9b\u8e9d\u8e9e\u8ea2\u8ea7\u8ea9\u8ead\u8eae\u8eb3\u8eb5\u8eba\u8ebb\u8ec0\u8ec1\u8ec3\u8ec4\u8ec7\u8ecf\u8ed1\u8ed4\u8edc\u8ee8\u8eee\u8ef0\u8ef1\u8ef7\u8ef9\u8efa\u8eed\u8f00\u8f02\u8f07\u8f08\u8f0f\u8f10\u8f16\u8f17\u8f18\u8f1e\u8f20\u8f21\u8f23\u8f25\u8f27\u8f28\u8f2c\u8f2d\u8f2e\u8f34\u8f35\u8f36\u8f37\u8f3a\u8f40\u8f41"],["8fe1a1","\u8f43\u8f47\u8f4f\u8f51",4,"\u8f58\u8f5d\u8f5e\u8f65\u8f9d\u8fa0\u8fa1\u8fa4\u8fa5\u8fa6\u8fb5\u8fb6\u8fb8\u8fbe\u8fc0\u8fc1\u8fc6\u8fca\u8fcb\u8fcd\u8fd0\u8fd2\u8fd3\u8fd5\u8fe0\u8fe3\u8fe4\u8fe8\u8fee\u8ff1\u8ff5\u8ff6\u8ffb\u8ffe\u9002\u9004\u9008\u900c\u9018\u901b\u9028\u9029\u902f\u902a\u902c\u902d\u9033\u9034\u9037\u903f\u9043\u9044\u904c\u905b\u905d\u9062\u9066\u9067\u906c\u9070\u9074\u9079\u9085\u9088\u908b\u908c\u908e\u9090\u9095\u9097\u9098\u9099\u909b\u90a0\u90a1\u90a2\u90a5\u90b0\u90b2\u90b3\u90b4\u90b6\u90bd\u90cc\u90be\u90c3"],["8fe2a1","\u90c4\u90c5\u90c7\u90c8\u90d5\u90d7\u90d8\u90d9\u90dc\u90dd\u90df\u90e5\u90d2\u90f6\u90eb\u90ef\u90f0\u90f4\u90fe\u90ff\u9100\u9104\u9105\u9106\u9108\u910d\u9110\u9114\u9116\u9117\u9118\u911a\u911c\u911e\u9120\u9125\u9122\u9123\u9127\u9129\u912e\u912f\u9131\u9134\u9136\u9137\u9139\u913a\u913c\u913d\u9143\u9147\u9148\u914f\u9153\u9157\u9159\u915a\u915b\u9161\u9164\u9167\u916d\u9174\u9179\u917a\u917b\u9181\u9183\u9185\u9186\u918a\u918e\u9191\u9193\u9194\u9195\u9198\u919e\u91a1\u91a6\u91a8\u91ac\u91ad\u91ae\u91b0\u91b1\u91b2\u91b3\u91b6\u91bb\u91bc\u91bd\u91bf"],["8fe3a1","\u91c2\u91c3\u91c5\u91d3\u91d4\u91d7\u91d9\u91da\u91de\u91e4\u91e5\u91e9\u91ea\u91ec",5,"\u91f7\u91f9\u91fb\u91fd\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920a\u920c\u9210\u9212\u9213\u9216\u9218\u921c\u921d\u9223\u9224\u9225\u9226\u9228\u922e\u922f\u9230\u9233\u9235\u9236\u9238\u9239\u923a\u923c\u923e\u9240\u9242\u9243\u9246\u9247\u924a\u924d\u924e\u924f\u9251\u9258\u9259\u925c\u925d\u9260\u9261\u9265\u9267\u9268\u9269\u926e\u926f\u9270\u9275",4,"\u927b\u927c\u927d\u927f\u9288\u9289\u928a\u928d\u928e\u9292\u9297"],["8fe4a1","\u9299\u929f\u92a0\u92a4\u92a5\u92a7\u92a8\u92ab\u92af\u92b2\u92b6\u92b8\u92ba\u92bb\u92bc\u92bd\u92bf",4,"\u92c5\u92c6\u92c7\u92c8\u92cb\u92cc\u92cd\u92ce\u92d0\u92d3\u92d5\u92d7\u92d8\u92d9\u92dc\u92dd\u92df\u92e0\u92e1\u92e3\u92e5\u92e7\u92e8\u92ec\u92ee\u92f0\u92f9\u92fb\u92ff\u9300\u9302\u9308\u930d\u9311\u9314\u9315\u931c\u931d\u931e\u931f\u9321\u9324\u9325\u9327\u9329\u932a\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935a\u935e\u9364\u9365\u9367\u9369\u936a\u936d\u936f\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937a\u937d\u937f\u9380\u9381\u9382\u9388\u938a\u938b\u938d\u938f\u9392\u9395\u9398\u939b\u939e\u93a1\u93a3\u93a4\u93a6\u93a8\u93ab\u93b4\u93b5\u93b6\u93ba\u93a9\u93c1\u93c4\u93c5\u93c6\u93c7\u93c9",4,"\u93d3\u93d9\u93dc\u93de\u93df\u93e2\u93e6\u93e7\u93f9\u93f7\u93f8\u93fa\u93fb\u93fd\u9401\u9402\u9404\u9408\u9409\u940d\u940e\u940f\u9415\u9416\u9417\u941f\u942e\u942f\u9431\u9432\u9433\u9434\u943b\u943f\u943d\u9443\u9445\u9448\u944a\u944c\u9455\u9459\u945c\u945f\u9461\u9463\u9468\u946b\u946d\u946e\u946f\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957e\u9584\u9588\u958c\u958d\u958e\u959d\u959e\u959f\u95a1\u95a6\u95a9\u95ab\u95ac\u95b4\u95b6\u95ba\u95bd\u95bf\u95c6\u95c8\u95c9\u95cb\u95d0\u95d1\u95d2\u95d3\u95d9\u95da\u95dd\u95de\u95df\u95e0\u95e4\u95e6\u961d\u961e\u9622\u9624\u9625\u9626\u962c\u9631\u9633\u9637\u9638\u9639\u963a\u963c\u963d\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966e\u9674\u967b\u967c\u967e\u967f\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969a\u969d\u969f\u96a4\u96a5\u96a6\u96a9\u96ae\u96af\u96b3\u96ba\u96ca\u96d2\u5db2\u96d8\u96da\u96dd\u96de\u96df\u96e9\u96ef\u96f1\u96fa\u9702"],["8fe7a1","\u9703\u9705\u9709\u971a\u971b\u971d\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974a\u974e\u974f\u9755\u9757\u9758\u975a\u975b\u9763\u9767\u976a\u976e\u9773\u9776\u9777\u9778\u977b\u977d\u977f\u9780\u9789\u9795\u9796\u9797\u9799\u979a\u979e\u979f\u97a2\u97ac\u97ae\u97b1\u97b2\u97b5\u97b6\u97b8\u97b9\u97ba\u97bc\u97be\u97bf\u97c1\u97c4\u97c5\u97c7\u97c9\u97ca\u97cc\u97cd\u97ce\u97d0\u97d1\u97d4\u97d7\u97d8\u97d9\u97dd\u97de\u97e0\u97db\u97e1\u97e4\u97ef\u97f1\u97f4\u97f7\u97f8\u97fa\u9807\u980a\u9819\u980d\u980e\u9814\u9816\u981c\u981e\u9820\u9823\u9826"],["8fe8a1","\u982b\u982e\u982f\u9830\u9832\u9833\u9835\u9825\u983e\u9844\u9847\u984a\u9851\u9852\u9853\u9856\u9857\u9859\u985a\u9862\u9863\u9865\u9866\u986a\u986c\u98ab\u98ad\u98ae\u98b0\u98b4\u98b7\u98b8\u98ba\u98bb\u98bf\u98c2\u98c5\u98c8\u98cc\u98e1\u98e3\u98e5\u98e6\u98e7\u98ea\u98f3\u98f6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991a\u991b\u991c\u991f\u9922\u9926\u9927\u992b\u9931",4,"\u9939\u993a\u993b\u993c\u9940\u9941\u9946\u9947\u9948\u994d\u994e\u9954\u9958\u9959\u995b\u995c\u995e\u995f\u9960\u999b\u999d\u999f\u99a6\u99b0\u99b1\u99b2\u99b5"],["8fe9a1","\u99b9\u99ba\u99bd\u99bf\u99c3\u99c9\u99d3\u99d4\u99d9\u99da\u99dc\u99de\u99e7\u99ea\u99eb\u99ec\u99f0\u99f4\u99f5\u99f9\u99fd\u99fe\u9a02\u9a03\u9a04\u9a0b\u9a0c\u9a10\u9a11\u9a16\u9a1e\u9a20\u9a22\u9a23\u9a24\u9a27\u9a2d\u9a2e\u9a33\u9a35\u9a36\u9a38\u9a47\u9a41\u9a44\u9a4a\u9a4b\u9a4c\u9a4e\u9a51\u9a54\u9a56\u9a5d\u9aaa\u9aac\u9aae\u9aaf\u9ab2\u9ab4\u9ab5\u9ab6\u9ab9\u9abb\u9abe\u9abf\u9ac1\u9ac3\u9ac6\u9ac8\u9ace\u9ad0\u9ad2\u9ad5\u9ad6\u9ad7\u9adb\u9adc\u9ae0\u9ae4\u9ae5\u9ae7\u9ae9\u9aec\u9af2\u9af3\u9af5\u9af9\u9afa\u9afd\u9aff",4],["8feaa1","\u9b04\u9b05\u9b08\u9b09\u9b0b\u9b0c\u9b0d\u9b0e\u9b10\u9b12\u9b16\u9b19\u9b1b\u9b1c\u9b20\u9b26\u9b2b\u9b2d\u9b33\u9b34\u9b35\u9b37\u9b39\u9b3a\u9b3d\u9b48\u9b4b\u9b4c\u9b55\u9b56\u9b57\u9b5b\u9b5e\u9b61\u9b63\u9b65\u9b66\u9b68\u9b6a",4,"\u9b73\u9b75\u9b77\u9b78\u9b79\u9b7f\u9b80\u9b84\u9b85\u9b86\u9b87\u9b89\u9b8a\u9b8b\u9b8d\u9b8f\u9b90\u9b94\u9b9a\u9b9d\u9b9e\u9ba6\u9ba7\u9ba9\u9bac\u9bb0\u9bb1\u9bb2\u9bb7\u9bb8\u9bbb\u9bbc\u9bbe\u9bbf\u9bc1\u9bc7\u9bc8\u9bce\u9bd0\u9bd7\u9bd8\u9bdd\u9bdf\u9be5\u9be7\u9bea\u9beb\u9bef\u9bf3\u9bf7\u9bf8"],["8feba1","\u9bf9\u9bfa\u9bfd\u9bff\u9c00\u9c02\u9c0b\u9c0f\u9c11\u9c16\u9c18\u9c19\u9c1a\u9c1c\u9c1e\u9c22\u9c23\u9c26",4,"\u9c31\u9c35\u9c36\u9c37\u9c3d\u9c41\u9c43\u9c44\u9c45\u9c49\u9c4a\u9c4e\u9c4f\u9c50\u9c53\u9c54\u9c56\u9c58\u9c5b\u9c5d\u9c5e\u9c5f\u9c63\u9c69\u9c6a\u9c5c\u9c6b\u9c68\u9c6e\u9c70\u9c72\u9c75\u9c77\u9c7b\u9ce6\u9cf2\u9cf7\u9cf9\u9d0b\u9d02\u9d11\u9d17\u9d18\u9d1c\u9d1d\u9d1e\u9d2f\u9d30\u9d32\u9d33\u9d34\u9d3a\u9d3c\u9d45\u9d3d\u9d42\u9d43\u9d47\u9d4a\u9d53\u9d54\u9d5f\u9d63\u9d62\u9d65\u9d69\u9d6a\u9d6b\u9d70\u9d76\u9d77\u9d7b"],["8feca1","\u9d7c\u9d7e\u9d83\u9d84\u9d86\u9d8a\u9d8d\u9d8e\u9d92\u9d93\u9d95\u9d96\u9d97\u9d98\u9da1\u9daa\u9dac\u9dae\u9db1\u9db5\u9db9\u9dbc\u9dbf\u9dc3\u9dc7\u9dc9\u9dca\u9dd4\u9dd5\u9dd6\u9dd7\u9dda\u9dde\u9ddf\u9de0\u9de5\u9de7\u9de9\u9deb\u9dee\u9df0\u9df3\u9df4\u9dfe\u9e0a\u9e02\u9e07\u9e0e\u9e10\u9e11\u9e12\u9e15\u9e16\u9e19\u9e1c\u9e1d\u9e7a\u9e7b\u9e7c\u9e80\u9e82\u9e83\u9e84\u9e85\u9e87\u9e8e\u9e8f\u9e96\u9e98\u9e9b\u9e9e\u9ea4\u9ea8\u9eac\u9eae\u9eaf\u9eb0\u9eb3\u9eb4\u9eb5\u9ec6\u9ec8\u9ecb\u9ed5\u9edf\u9ee4\u9ee7\u9eec\u9eed\u9eee\u9ef0\u9ef1\u9ef2\u9ef5"],["8feda1","\u9ef8\u9eff\u9f02\u9f03\u9f09\u9f0f\u9f10\u9f11\u9f12\u9f14\u9f16\u9f17\u9f19\u9f1a\u9f1b\u9f1f\u9f22\u9f26\u9f2a\u9f2b\u9f2f\u9f31\u9f32\u9f34\u9f37\u9f39\u9f3a\u9f3c\u9f3d\u9f3f\u9f41\u9f43",4,"\u9f53\u9f55\u9f56\u9f57\u9f58\u9f5a\u9f5d\u9f5e\u9f68\u9f69\u9f6d",4,"\u9f73\u9f75\u9f7a\u9f7d\u9f8f\u9f90\u9f91\u9f92\u9f94\u9f96\u9f97\u9f9e\u9fa1\u9fa2\u9fa3\u9fa5"]]')},56475:function(T,e,l){var v=l(32010),h=l(72062).f,f=l(48914),_=l(13711),b=l(7421),y=l(2675),M=l(39599);T.exports=function(D,x){var S,R,z,q,Z,k=D.target,Q=D.global,I=D.stat;if(S=Q?v:I?v[k]||b(k,{}):(v[k]||{}).prototype)for(R in x){if(q=x[R],z=D.noTargetGet?(Z=h(S,R))&&Z.value:S[R],!M(Q?R:k+(I?".":"#")+R,D.forced)&&void 0!==z){if(typeof q==typeof z)continue;y(q,z)}(D.sham||z&&z.sham)&&f(q,"sham",!0),_(S,R,q,D)}}},56614:function(T,e,l){"use strict";var v=l(32631),h=function(f){var _,b;this.promise=new f(function(y,M){if(void 0!==_||void 0!==b)throw TypeError("Bad Promise constructor");_=y,b=M}),this.resolve=v(_),this.reject=v(b)};T.exports.f=function(f){return new h(f)}},56649:function(T){"use strict";var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}T.exports=e},56711:function(T,e,l){"use strict";var v=l(18128),f=l(56128).Number;T.exports=function(){function b(M){this.length=M}var y=b.prototype;return y.decode=function(D,x){var k=v.resolveLength(this.length,D,x);return D.readBuffer(k)},y.size=function(D,x){return D?D.length:v.resolveLength(this.length,null,x)},y.encode=function(D,x,k){return this.length instanceof f&&this.length.encode(D,x.length),D.writeBuffer(x)},b}()},56912:function(T,e,l){l(98828)("Uint8",function(h){return function(_,b,y){return h(this,_,b,y)}})},57114:function(T,e,l){"use strict";var v=l(38347),h=l(7081).PROPER,f=l(13711),_=l(34984),b=l(70176),y=l(25096),M=l(47044),D=l(21182),x="toString",k=RegExp.prototype,Q=k[x],I=v(D);(M(function(){return"/a/b"!=Q.call({source:"a",flags:"b"})})||h&&Q.name!=x)&&f(RegExp.prototype,x,function(){var z=_(this),q=y(z.source),Z=z.flags;return"/"+q+"/"+y(void 0===Z&&b(k,z)&&!("flags"in k)?I(z):Z)},{unsafe:!0})},57444:function(T,e,l){var v=l(56475),h=l(47044),f=l(98086),_=l(72062).f,b=l(15567),y=h(function(){_(1)});v({target:"Object",stat:!0,forced:!b||y,sham:!b},{getOwnPropertyDescriptor:function(x,k){return _(f(x),k)}})},57770:function(T){"use strict";T.exports=SyntaxError},58028:function(T,e,l){"use strict";var v=l(56475),h=l(12636).includes,f=l(71156);v({target:"Array",proto:!0},{includes:function(b){return h(this,b,arguments.length>1?arguments[1]:void 0)}}),f("includes")},58099:function(T,e,l){l(98828)("Uint8",function(h){return function(_,b,y){return h(this,_,b,y)}},!0)},58281:function(T,e,l){"use strict";var v=l(69510).charAt,h=l(25096),f=l(70172),_=l(97001),b="String Iterator",y=f.set,M=f.getterFor(b);_(String,"String",function(D){y(this,{type:b,string:h(D),index:0})},function(){var I,x=M(this),k=x.string,Q=x.index;return Q>=k.length?{value:void 0,done:!0}:(I=v(k,Q),x.index+=I.length,{value:I,done:!1})})},58448:function(T){var e=Function.prototype,l=e.apply,h=e.call;T.exports="object"==typeof Reflect&&Reflect.apply||(e.bind?h.bind(l):function(){return h.apply(l,arguments)})},58549:function(T,e,l){l(56475)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},58659:function(T,e,l){var v=l(32010),h=l(94578),f=v.String,_=v.TypeError;T.exports=function(b){if("object"==typeof b||h(b))return b;throw _("Can't set "+f(b)+" as a prototype")}},58843:function(T,e,l){"use strict";var v=l(22774),h=l(71689),f=v("RegExp.prototype.exec"),_=l(96785);T.exports=function(y){if(!h(y))throw new _("`regex` must be a RegExp");return function(D){return null!==f(y,D)}}},59006:function(T,e,l){"use strict";l(81755),l(20731),l(8953),l(14032),l(56912),l(59735),l(73663),l(29883),l(35471),l(21012),l(88997),l(97464),l(2857),l(94715),l(13624),l(91132),l(62514),l(24597),l(88042),l(4660),l(92451),l(44206),l(66288),l(13250),l(3858),l(84538),l(64793),l(74202),l(52529);var v=l(3483),f=l(84327).swap32LE;T.exports=function(){function W(P){var J="function"==typeof P.readUInt32BE&&"function"==typeof P.slice;if(J||P instanceof Uint8Array){var j;if(J)this.highStart=P.readUInt32LE(0),this.errorValue=P.readUInt32LE(4),j=P.readUInt32LE(8),P=P.slice(12);else{var re=new DataView(P.buffer);this.highStart=re.getUint32(0,!0),this.errorValue=re.getUint32(4,!0),j=re.getUint32(8,!0),P=P.subarray(12)}P=v(P,new Uint8Array(j)),P=v(P,new Uint8Array(j)),f(P),this.data=new Uint32Array(P.buffer)}else{var he=P;this.data=he.data,this.highStart=he.highStart,this.errorValue=he.errorValue}}return W.prototype.get=function(J){return J<0||J>1114111?this.errorValue:J<55296||J>56319&&J<=65535?this.data[(this.data[J>>5]<<2)+(31&J)]:J<=65535?this.data[(this.data[2048+(J-55296>>5)]<<2)+(31&J)]:J>11)]+(J>>5&63)]<<2)+(31&J)]:this.data[this.data.length-4]},W}()},59113:function(T,e,l){var v=l(93975);T.exports=Array.isArray||function(f){return"Array"==v(f)}},59610:function(T,e,l){var v=l(34269),h=l(34815);T.exports=function(f,_){return v(h(f),_)}},59735:function(T,e,l){l(98828)("Uint32",function(h){return function(_,b,y){return h(this,_,b,y)}})},59754:function(T,e,l){"use strict";var me,ze,_e,v=l(30450),h=l(15567),f=l(32010),_=l(94578),b=l(24517),y=l(20340),M=l(52564),D=l(68664),x=l(48914),k=l(13711),Q=l(95892).f,I=l(70176),d=l(69548),S=l(3840),R=l(38688),z=l(46859),q=f.Int8Array,Z=q&&q.prototype,H=f.Uint8ClampedArray,G=H&&H.prototype,W=q&&d(q),te=Z&&d(Z),P=Object.prototype,J=f.TypeError,j=R("toStringTag"),re=z("TYPED_ARRAY_TAG"),he=z("TYPED_ARRAY_CONSTRUCTOR"),oe=v&&!!S&&"Opera"!==M(f.opera),Ce=!1,Ae={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ve={BigInt64Array:8,BigUint64Array:8},Oe=function(St){if(!b(St))return!1;var oi=M(St);return y(Ae,oi)||y(ve,oi)};for(me in Ae)(_e=(ze=f[me])&&ze.prototype)?x(_e,he,ze):oe=!1;for(me in ve)(_e=(ze=f[me])&&ze.prototype)&&x(_e,he,ze);if((!oe||!_(W)||W===Function.prototype)&&(W=function(){throw J("Incorrect invocation")},oe))for(me in Ae)f[me]&&S(f[me],W);if((!oe||!te||te===P)&&(te=W.prototype,oe))for(me in Ae)f[me]&&S(f[me].prototype,te);if(oe&&d(G)!==te&&S(G,te),h&&!y(te,j))for(me in Ce=!0,Q(te,j,{get:function(){return b(this)?this[re]:void 0}}),Ae)f[me]&&x(f[me],re,me);T.exports={NATIVE_ARRAY_BUFFER_VIEWS:oe,TYPED_ARRAY_CONSTRUCTOR:he,TYPED_ARRAY_TAG:Ce&&re,aTypedArray:function(St){if(Oe(St))return St;throw J("Target is not a typed array")},aTypedArrayConstructor:function(St){if(_(St)&&(!S||I(W,St)))return St;throw J(D(St)+" is not a typed array constructor")},exportTypedArrayMethod:function(St,oi,He){if(h){if(He)for(var be in Ae){var je=f[be];if(je&&y(je.prototype,St))try{delete je.prototype[St]}catch{}}(!te[St]||He)&&k(te,St,He?oi:oe&&Z[St]||oi)}},exportTypedArrayStaticMethod:function(St,oi,He){var be,je;if(h){if(S){if(He)for(be in Ae)if((je=f[be])&&y(je,St))try{delete je[St]}catch{}if(W[St]&&!He)return;try{return k(W,St,He?oi:oe&&W[St]||oi)}catch{}}for(be in Ae)(je=f[be])&&(!je[St]||He)&&k(je,St,oi)}},isView:function(St){if(!b(St))return!1;var oi=M(St);return"DataView"===oi||y(Ae,oi)||y(ve,oi)},isTypedArray:Oe,TypedArray:W,TypedArrayPrototype:te}},59804:function(T,e,l){var R,z,q,Z,H,G,W,te,v=l(32010),h=l(25567),f=l(72062).f,_=l(6616).set,b=l(17716),y=l(70573),M=l(664),D=l(95053),x=v.MutationObserver||v.WebKitMutationObserver,k=v.document,Q=v.process,I=v.Promise,d=f(v,"queueMicrotask"),S=d&&d.value;S||(R=function(){var P,J;for(D&&(P=Q.domain)&&P.exit();z;){J=z.fn,z=z.next;try{J()}catch(j){throw z?Z():q=void 0,j}}q=void 0,P&&P.enter()},b||D||M||!x||!k?!y&&I&&I.resolve?((W=I.resolve(void 0)).constructor=I,te=h(W.then,W),Z=function(){te(R)}):D?Z=function(){Q.nextTick(R)}:(_=h(_,v),Z=function(){_(R)}):(H=!0,G=k.createTextNode(""),new x(R).observe(G,{characterData:!0}),Z=function(){G.data=H=!H})),T.exports=S||function(P){var J={fn:P,next:void 0};q&&(q.next=J),z||(z=J,Z()),q=J}},59805:function(T,e,l){var h=l(32010).isFinite;T.exports=Number.isFinite||function(_){return"number"==typeof _&&h(_)}},59883:function(T,e,l){var v=l(56475),h=l(80754).values;v({target:"Object",stat:!0},{values:function(_){return h(_)}})},60378:function(T){T.exports=function(){throw new Error("Readable.from is not available in the browser")}},60480:function(T,e,l){"use strict";l(74516),T.exports=function(){function h(_,b){void 0===b&&(b=[]),this.type=_,this.flags=b}var f=h.prototype;return f.decode=function(b){for(var y=this.type.decode(b),M={},D=0;D"===Ke?(Ce(be,"onsgmldeclaration",be.sgmlDecl),be.sgmlDecl="",be.state=re.TEXT):(te(Ke)&&(be.state=re.SGML_DECL_QUOTED),be.sgmlDecl+=Ke);continue;case re.SGML_DECL_QUOTED:Ke===be.q&&(be.state=re.SGML_DECL,be.q=""),be.sgmlDecl+=Ke;continue;case re.DOCTYPE:">"===Ke?(be.state=re.TEXT,Ce(be,"ondoctype",be.doctype),be.doctype=!0):(be.doctype+=Ke,"["===Ke?be.state=re.DOCTYPE_DTD:te(Ke)&&(be.state=re.DOCTYPE_QUOTED,be.q=Ke));continue;case re.DOCTYPE_QUOTED:be.doctype+=Ke,Ke===be.q&&(be.q="",be.state=re.DOCTYPE);continue;case re.DOCTYPE_DTD:"]"===Ke?(be.doctype+=Ke,be.state=re.DOCTYPE):"<"===Ke?(be.state=re.OPEN_WAKA,be.startTagPosition=be.position):te(Ke)?(be.doctype+=Ke,be.state=re.DOCTYPE_DTD_QUOTED,be.q=Ke):be.doctype+=Ke;continue;case re.DOCTYPE_DTD_QUOTED:be.doctype+=Ke,Ke===be.q&&(be.state=re.DOCTYPE_DTD,be.q="");continue;case re.COMMENT:"-"===Ke?be.state=re.COMMENT_ENDING:be.comment+=Ke;continue;case re.COMMENT_ENDING:"-"===Ke?(be.state=re.COMMENT_ENDED,be.comment=ze(be.opt,be.comment),be.comment&&Ce(be,"oncomment",be.comment),be.comment=""):(be.comment+="-"+Ke,be.state=re.COMMENT);continue;case re.COMMENT_ENDED:">"!==Ke?(ve(be,"Malformed comment"),be.comment+="--"+Ke,be.state=re.COMMENT):be.state=be.doctype&&!0!==be.doctype?re.DOCTYPE_DTD:re.TEXT;continue;case re.CDATA:"]"===Ke?be.state=re.CDATA_ENDING:be.cdata+=Ke;continue;case re.CDATA_ENDING:"]"===Ke?be.state=re.CDATA_ENDING_2:(be.cdata+="]"+Ke,be.state=re.CDATA);continue;case re.CDATA_ENDING_2:">"===Ke?(be.cdata&&Ce(be,"oncdata",be.cdata),Ce(be,"onclosecdata"),be.cdata="",be.state=re.TEXT):"]"===Ke?be.cdata+="]":(be.cdata+="]]"+Ke,be.state=re.CDATA);continue;case re.PROC_INST:"?"===Ke?be.state=re.PROC_INST_ENDING:W(Ke)?be.state=re.PROC_INST_BODY:be.procInstName+=Ke;continue;case re.PROC_INST_BODY:if(!be.procInstBody&&W(Ke))continue;"?"===Ke?be.state=re.PROC_INST_ENDING:be.procInstBody+=Ke;continue;case re.PROC_INST_ENDING:">"===Ke?(Ce(be,"onprocessinginstruction",{name:be.procInstName,body:be.procInstBody}),be.procInstName=be.procInstBody="",be.state=re.TEXT):(be.procInstBody+="?"+Ke,be.state=re.PROC_INST_BODY);continue;case re.OPEN_TAG:J(Z,Ke)?be.tagName+=Ke:(ye(be),">"===Ke?Ee(be):"/"===Ke?be.state=re.OPEN_TAG_SLASH:(W(Ke)||ve(be,"Invalid character in tag name"),be.state=re.ATTRIB));continue;case re.OPEN_TAG_SLASH:">"===Ke?(Ee(be,!0),Fe(be)):(ve(be,"Forward-slash in opening tag not followed by >"),be.state=re.ATTRIB);continue;case re.ATTRIB:if(W(Ke))continue;">"===Ke?Ee(be):"/"===Ke?be.state=re.OPEN_TAG_SLASH:J(q,Ke)?(be.attribName=Ke,be.attribValue="",be.state=re.ATTRIB_NAME):ve(be,"Invalid attribute name");continue;case re.ATTRIB_NAME:"="===Ke?be.state=re.ATTRIB_VALUE:">"===Ke?(ve(be,"Attribute without value"),be.attribValue=be.attribName,ae(be),Ee(be)):W(Ke)?be.state=re.ATTRIB_NAME_SAW_WHITE:J(Z,Ke)?be.attribName+=Ke:ve(be,"Invalid attribute name");continue;case re.ATTRIB_NAME_SAW_WHITE:if("="===Ke)be.state=re.ATTRIB_VALUE;else{if(W(Ke))continue;ve(be,"Attribute without value"),be.tag.attributes[be.attribName]="",be.attribValue="",Ce(be,"onattribute",{name:be.attribName,value:""}),be.attribName="",">"===Ke?Ee(be):J(q,Ke)?(be.attribName=Ke,be.state=re.ATTRIB_NAME):(ve(be,"Invalid attribute name"),be.state=re.ATTRIB)}continue;case re.ATTRIB_VALUE:if(W(Ke))continue;te(Ke)?(be.q=Ke,be.state=re.ATTRIB_VALUE_QUOTED):(be.opt.unquotedAttributeValues||_e(be,"Unquoted attribute value"),be.state=re.ATTRIB_VALUE_UNQUOTED,be.attribValue=Ke);continue;case re.ATTRIB_VALUE_QUOTED:if(Ke!==be.q){"&"===Ke?be.state=re.ATTRIB_VALUE_ENTITY_Q:be.attribValue+=Ke;continue}ae(be),be.q="",be.state=re.ATTRIB_VALUE_CLOSED;continue;case re.ATTRIB_VALUE_CLOSED:W(Ke)?be.state=re.ATTRIB:">"===Ke?Ee(be):"/"===Ke?be.state=re.OPEN_TAG_SLASH:J(q,Ke)?(ve(be,"No whitespace between attributes"),be.attribName=Ke,be.attribValue="",be.state=re.ATTRIB_NAME):ve(be,"Invalid attribute name");continue;case re.ATTRIB_VALUE_UNQUOTED:if(!P(Ke)){"&"===Ke?be.state=re.ATTRIB_VALUE_ENTITY_U:be.attribValue+=Ke;continue}ae(be),">"===Ke?Ee(be):be.state=re.ATTRIB;continue;case re.CLOSE_TAG:if(be.tagName)">"===Ke?Fe(be):J(Z,Ke)?be.tagName+=Ke:be.script?(be.script+=""===Ke?Fe(be):ve(be,"Invalid characters in closing tag");continue;case re.TEXT_ENTITY:case re.ATTRIB_VALUE_ENTITY_Q:case re.ATTRIB_VALUE_ENTITY_U:var ut,et;switch(be.state){case re.TEXT_ENTITY:ut=re.TEXT,et="textNode";break;case re.ATTRIB_VALUE_ENTITY_Q:ut=re.ATTRIB_VALUE_QUOTED,et="attribValue";break;case re.ATTRIB_VALUE_ENTITY_U:ut=re.ATTRIB_VALUE_UNQUOTED,et="attribValue"}if(";"===Ke){var Xe=Ve(be);be.opt.unparsedEntities&&!Object.values(h.XML_ENTITIES).includes(Xe)?(be.entity="",be.state=ut,be.write(Xe)):(be[et]+=Xe,be.entity="",be.state=ut)}else J(be.entity.length?G:H,Ke)?be.entity+=Ke:(ve(be,"Invalid character in entity name"),be[et]+="&"+be.entity+Ke,be.entity="",be.state=ut);continue;default:throw new Error(be,"Unknown state: "+be.state)}return be.position>=be.bufferCheckPosition&&function b(He){for(var be=Math.max(h.MAX_BUFFER_LENGTH,10),je=0,Ke=0,_t=f.length;Ke<_t;Ke++){var Nt=He[f[Ke]].length;if(Nt>be)switch(f[Ke]){case"textNode":me(He);break;case"cdata":Ce(He,"oncdata",He.cdata),He.cdata="";break;case"script":Ce(He,"onscript",He.script),He.script="";break;default:_e(He,"Max buffer length exceeded: "+f[Ke])}je=Math.max(je,Nt)}He.bufferCheckPosition=h.MAX_BUFFER_LENGTH-je+He.position}(be),be},resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){!function M(He){me(He),""!==He.cdata&&(Ce(He,"oncdata",He.cdata),He.cdata=""),""!==He.script&&(Ce(He,"onscript",He.script),He.script="")}(this)}};try{D=l(9760).Stream}catch{D=function(){}}D||(D=function(){});var x=h.EVENTS.filter(function(He){return"error"!==He&&"end"!==He});function Q(He,be){if(!(this instanceof Q))return new Q(He,be);D.apply(this),this._parser=new _(He,be),this.writable=!0,this.readable=!0;var je=this;this._parser.onend=function(){je.emit("end")},this._parser.onerror=function(Ke){je.emit("error",Ke),je._parser.error=null},this._decoder=null,x.forEach(function(Ke){Object.defineProperty(je,"on"+Ke,{get:function(){return je._parser["on"+Ke]},set:function(_t){if(!_t)return je.removeAllListeners(Ke),je._parser["on"+Ke]=_t,_t;je.on(Ke,_t)},enumerable:!0,configurable:!1})})}(Q.prototype=Object.create(D.prototype,{constructor:{value:Q}})).write=function(He){if("function"==typeof v&&"function"==typeof v.isBuffer&&v.isBuffer(He)){if(!this._decoder){var be=l(43143).I;this._decoder=new be("utf8")}He=this._decoder.write(He)}return this._parser.write(He.toString()),this.emit("data",He),!0},Q.prototype.end=function(He){return He&&He.length&&this.write(He),this._parser.end(),!0},Q.prototype.on=function(He,be){var je=this;return!je._parser["on"+He]&&-1!==x.indexOf(He)&&(je._parser["on"+He]=function(){var Ke=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);Ke.splice(0,0,He),je.emit.apply(je,Ke)}),D.prototype.on.call(je,He,be)};var I="[CDATA[",d="DOCTYPE",S="http://www.w3.org/XML/1998/namespace",R="http://www.w3.org/2000/xmlns/",z={xml:S,xmlns:R},q=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,Z=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,H=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,G=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function W(He){return" "===He||"\n"===He||"\r"===He||"\t"===He}function te(He){return'"'===He||"'"===He}function P(He){return">"===He||W(He)}function J(He,be){return He.test(be)}function j(He,be){return!J(He,be)}var He,be,je,re=0;for(var he in h.STATE={BEGIN:re++,BEGIN_WHITESPACE:re++,TEXT:re++,TEXT_ENTITY:re++,OPEN_WAKA:re++,SGML_DECL:re++,SGML_DECL_QUOTED:re++,DOCTYPE:re++,DOCTYPE_QUOTED:re++,DOCTYPE_DTD:re++,DOCTYPE_DTD_QUOTED:re++,COMMENT_STARTING:re++,COMMENT:re++,COMMENT_ENDING:re++,COMMENT_ENDED:re++,CDATA:re++,CDATA_ENDING:re++,CDATA_ENDING_2:re++,PROC_INST:re++,PROC_INST_BODY:re++,PROC_INST_ENDING:re++,OPEN_TAG:re++,OPEN_TAG_SLASH:re++,ATTRIB:re++,ATTRIB_NAME:re++,ATTRIB_NAME_SAW_WHITE:re++,ATTRIB_VALUE:re++,ATTRIB_VALUE_QUOTED:re++,ATTRIB_VALUE_CLOSED:re++,ATTRIB_VALUE_UNQUOTED:re++,ATTRIB_VALUE_ENTITY_Q:re++,ATTRIB_VALUE_ENTITY_U:re++,CLOSE_TAG:re++,CLOSE_TAG_SAW_WHITE:re++,SCRIPT:re++,SCRIPT_ENDING:re++},h.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},h.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(h.ENTITIES).forEach(function(He){var be=h.ENTITIES[He],je="number"==typeof be?String.fromCharCode(be):be;h.ENTITIES[He]=je}),h.STATE)h.STATE[h.STATE[he]]=he;function oe(He,be,je){He[be]&&He[be](je)}function Ce(He,be,je){He.textNode&&me(He),oe(He,be,je)}function me(He){He.textNode=ze(He.opt,He.textNode),He.textNode&&oe(He,"ontext",He.textNode),He.textNode=""}function ze(He,be){return He.trim&&(be=be.trim()),He.normalize&&(be=be.replace(/\s+/g," ")),be}function _e(He,be){return me(He),He.trackPosition&&(be+="\nLine: "+He.line+"\nColumn: "+He.column+"\nChar: "+He.c),be=new Error(be),He.error=be,oe(He,"onerror",be),He}function Ae(He){return He.sawRoot&&!He.closedRoot&&ve(He,"Unclosed root tag"),He.state!==re.BEGIN&&He.state!==re.BEGIN_WHITESPACE&&He.state!==re.TEXT&&_e(He,"Unexpected end"),me(He),He.c="",He.closed=!0,oe(He,"onend"),_.call(He,He.strict,He.opt),He}function ve(He,be){if("object"!=typeof He||!(He instanceof _))throw new Error("bad call to strictFail");He.strict&&_e(He,be)}function ye(He){He.strict||(He.tagName=He.tagName[He.looseCase]());var be=He.tags[He.tags.length-1]||He,je=He.tag={name:He.tagName,attributes:{}};He.opt.xmlns&&(je.ns=be.ns),He.attribList.length=0,Ce(He,"onopentagstart",je)}function Oe(He,be){var Ke=He.indexOf(":")<0?["",He]:He.split(":"),_t=Ke[0],Nt=Ke[1];return be&&"xmlns"===He&&(_t="xmlns",Nt=""),{prefix:_t,local:Nt}}function ae(He){if(He.strict||(He.attribName=He.attribName[He.looseCase]()),-1!==He.attribList.indexOf(He.attribName)||He.tag.attributes.hasOwnProperty(He.attribName))He.attribName=He.attribValue="";else{if(He.opt.xmlns){var be=Oe(He.attribName,!0),Ke=be.local;if("xmlns"===be.prefix)if("xml"===Ke&&He.attribValue!==S)ve(He,"xml: prefix must be bound to "+S+"\nActual: "+He.attribValue);else if("xmlns"===Ke&&He.attribValue!==R)ve(He,"xmlns: prefix must be bound to "+R+"\nActual: "+He.attribValue);else{var _t=He.tag,Nt=He.tags[He.tags.length-1]||He;_t.ns===Nt.ns&&(_t.ns=Object.create(Nt.ns)),_t.ns[Ke]=He.attribValue}He.attribList.push([He.attribName,He.attribValue])}else He.tag.attributes[He.attribName]=He.attribValue,Ce(He,"onattribute",{name:He.attribName,value:He.attribValue});He.attribName=He.attribValue=""}}function Ee(He,be){if(He.opt.xmlns){var je=He.tag,Ke=Oe(He.tagName);je.prefix=Ke.prefix,je.local=Ke.local,je.uri=je.ns[Ke.prefix]||"",je.prefix&&!je.uri&&(ve(He,"Unbound namespace prefix: "+JSON.stringify(He.tagName)),je.uri=Ke.prefix),je.ns&&(He.tags[He.tags.length-1]||He).ns!==je.ns&&Object.keys(je.ns).forEach(function(it){Ce(He,"onopennamespace",{prefix:it,uri:je.ns[it]})});for(var Nt=0,ut=He.attribList.length;Nt",He.tagName="",void(He.state=re.SCRIPT);Ce(He,"onscript",He.script),He.script=""}var be=He.tags.length,je=He.tagName;He.strict||(je=je[He.looseCase]());for(var Ke=je;be--&&He.tags[be].name!==Ke;)ve(He,"Unexpected close tag");if(be<0)return ve(He,"Unmatched closing tag: "+He.tagName),He.textNode+="",void(He.state=re.TEXT);He.tagName=je;for(var Nt=He.tags.length;Nt-- >be;){var ut=He.tag=He.tags.pop();He.tagName=He.tag.name,Ce(He,"onclosetag",He.tagName);var et={};for(var Xe in ut.ns)et[Xe]=ut.ns[Xe];He.opt.xmlns&&ut.ns!==(He.tags[He.tags.length-1]||He).ns&&Object.keys(ut.ns).forEach(function(Dt){Ce(He,"onclosenamespace",{prefix:Dt,uri:ut.ns[Dt]})})}0===be&&(He.closedRoot=!0),He.tagName=He.attribValue=He.attribName="",He.attribList.length=0,He.state=re.TEXT}function Ve(He){var Ke,be=He.entity,je=be.toLowerCase(),_t="";return He.ENTITIES[be]?He.ENTITIES[be]:He.ENTITIES[je]?He.ENTITIES[je]:("#"===(be=je).charAt(0)&&("x"===be.charAt(1)?(be=be.slice(2),_t=(Ke=parseInt(be,16)).toString(16)):(be=be.slice(1),_t=(Ke=parseInt(be,10)).toString(10))),be=be.replace(/^0+/,""),isNaN(Ke)||_t.toLowerCase()!==be?(ve(He,"Invalid character entity"),"&"+He.entity+";"):String.fromCodePoint(Ke))}function mt(He,be){"<"===be?(He.state=re.OPEN_WAKA,He.startTagPosition=He.position):W(be)||(ve(He,"Non-whitespace before first tag."),He.textNode=be,He.state=re.TEXT)}function St(He,be){var je="";return be1114111||be(Dt)!==Dt)throw RangeError("Invalid code point: "+Dt);Dt<=65535?_t.push(Dt):_t.push(55296+((Dt-=65536)>>10),Dt%1024+56320),(et+1===Xe||_t.length>16384)&&(It+=He.apply(null,_t),_t.length=0)}return It},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:je,configurable:!0,writable:!0}):String.fromCodePoint=je)}(e)},61807:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(51270),v.pad.NoPadding={pad:function(){},unpad:function(){}},v.pad.NoPadding)},61900:function(T){T.exports=function(e){try{return{error:!1,value:e()}}catch(l){return{error:!0,value:l}}}},61909:function(T){"use strict";T.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply},62046:function(T,e,l){"use strict";var v=l(56475),h=l(91159);v({target:"String",proto:!0,forced:l(7452)("italics")},{italics:function(){return h(this,"i","","")}})},62148:function(T,e,l){var v=l(56475),h=l(38347),f=l(90682),_=l(24517),b=l(20340),y=l(95892).f,M=l(6611),D=l(8807),x=l(46859),k=l(55481),Q=!1,I=x("meta"),d=0,S=Object.isExtensible||function(){return!0},R=function(W){y(W,I,{value:{objectID:"O"+d++,weakData:{}}})},G=T.exports={enable:function(){G.enable=function(){},Q=!0;var W=M.f,te=h([].splice),P={};P[I]=1,W(P).length&&(M.f=function(J){for(var j=W(J),re=0,he=j.length;re>1,q=23===Q?_(2,-24)-_(2,-77):0,Z=k<0||0===k&&1/k<0?1:0,H=0;for((k=f(k))!=k||k===1/0?(W=k!=k?1:0,G=R):(G=b(y(k)/M),k*(te=_(2,-G))<1&&(G--,te*=2),(k+=G+z>=1?q/te:q*_(2,1-z))*te>=2&&(G++,te/=2),G+z>=R?(W=0,G=R):G+z>=1?(W=(k*te-1)*_(2,Q),G+=z):(W=k*_(2,z-1)*_(2,Q),G=0));Q>=8;d[H++]=255&W,W/=256,Q-=8);for(G=G<0;d[H++]=255&G,G/=256,S-=8);return d[--H]|=128*Z,d},unpack:function(k,Q){var G,I=k.length,d=8*I-Q-1,S=(1<>1,z=d-7,q=I-1,Z=k[q--],H=127&Z;for(Z>>=7;z>0;H=256*H+k[q],q--,z-=8);for(G=H&(1<<-z)-1,H>>=-z,z+=Q;z>0;G=256*G+k[q],q--,z-=8);if(0===H)H=1-R;else{if(H===S)return G?NaN:Z?-1/0:1/0;G+=_(2,Q),H-=R}return(Z?-1:1)*G*_(2,H-Q)}}},64429:function(T,e,l){var v=l(38347),h=l(20340),f=l(98086),_=l(12636).indexOf,b=l(90682),y=v([].push);T.exports=function(M,D){var I,x=f(M),k=0,Q=[];for(I in x)!h(b,I)&&h(x,I)&&y(Q,I);for(;D.length>k;)h(x,I=D[k++])&&(~_(Q,I)||y(Q,I));return Q}},64607:function(T,e,l){"use strict";var v=l(77802),h=l(26601),f=l(83089),_=l(7844),b=l(51374),y=h(_());v(y,{getPolyfill:_,implementation:f,shim:b}),T.exports=y},64654:function(T,e,l){l(1593)},64781:function(T,e,l){"use strict";T=l.nmd(T),l(39081),l(41584),l(81755),l(20731),l(24863),l(7283),l(37309),l(14032),l(61726),l(6422),l(46467),l(7851),l(72095),l(47259),l(1083),l(94712);T&&typeof T.exports<"u"&&(T.exports=function(f,_,b,y,M){var D={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgrey:[211,211,211],lightgreen:[144,238,144],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0]},x={black:[D.black,1],white:[D.white,1],transparent:[D.black,0]},k={quot:34,amp:38,lt:60,gt:62,apos:39,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,circ:710,tilde:732,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,permil:8240,lsaquo:8249,rsaquo:8250,euro:8364,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,fnof:402,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,bull:8226,hellip:8230,prime:8242,Prime:8243,oline:8254,frasl:8260,weierp:8472,image:8465,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Q={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},I={A3:!0,A4:!0,a3:!0,a4:!0},d={color:{inherit:!0,initial:void 0},visibility:{inherit:!0,initial:"visible",values:{hidden:"hidden",collapse:"hidden",visible:"visible"}},fill:{inherit:!0,initial:x.black},stroke:{inherit:!0,initial:"none"},"stop-color":{inherit:!1,initial:x.black},"fill-opacity":{inherit:!0,initial:1},"stroke-opacity":{inherit:!0,initial:1},"stop-opacity":{inherit:!1,initial:1},"fill-rule":{inherit:!0,initial:"nonzero",values:{nonzero:"nonzero",evenodd:"evenodd"}},"clip-rule":{inherit:!0,initial:"nonzero",values:{nonzero:"nonzero",evenodd:"evenodd"}},"stroke-width":{inherit:!0,initial:1},"stroke-dasharray":{inherit:!0,initial:[]},"stroke-dashoffset":{inherit:!0,initial:0},"stroke-miterlimit":{inherit:!0,initial:4},"stroke-linejoin":{inherit:!0,initial:"miter",values:{miter:"miter",round:"round",bevel:"bevel"}},"stroke-linecap":{inherit:!0,initial:"butt",values:{butt:"butt",round:"round",square:"square"}},"font-size":{inherit:!0,initial:16,values:{"xx-small":9,"x-small":10,small:13,medium:16,large:18,"x-large":24,"xx-large":32}},"font-family":{inherit:!0,initial:"sans-serif"},"font-weight":{inherit:!0,initial:"normal",values:{600:"bold",700:"bold",800:"bold",900:"bold",bold:"bold",bolder:"bold",500:"normal",400:"normal",300:"normal",200:"normal",100:"normal",normal:"normal",lighter:"normal"}},"font-style":{inherit:!0,initial:"normal",values:{italic:"italic",oblique:"italic",normal:"normal"}},"text-anchor":{inherit:!0,initial:"start",values:{start:"start",middle:"middle",end:"end"}},direction:{inherit:!0,initial:"ltr",values:{ltr:"ltr",rtl:"rtl"}},"dominant-baseline":{inherit:!0,initial:"baseline",values:{auto:"baseline",baseline:"baseline","before-edge":"before-edge","text-before-edge":"before-edge",middle:"middle",central:"central","after-edge":"after-edge","text-after-edge":"after-edge",ideographic:"ideographic",alphabetic:"alphabetic",hanging:"hanging",mathematical:"mathematical"}},"alignment-baseline":{inherit:!1,initial:void 0,values:{auto:"baseline",baseline:"baseline","before-edge":"before-edge","text-before-edge":"before-edge",middle:"middle",central:"central","after-edge":"after-edge","text-after-edge":"after-edge",ideographic:"ideographic",alphabetic:"alphabetic",hanging:"hanging",mathematical:"mathematical"}},"baseline-shift":{inherit:!0,initial:"baseline",values:{baseline:"baseline",sub:"sub",super:"super"}},"word-spacing":{inherit:!0,initial:0,values:{normal:0}},"letter-spacing":{inherit:!0,initial:0,values:{normal:0}},"text-decoration":{inherit:!1,initial:"none",values:{none:"none",underline:"underline",overline:"overline","line-through":"line-through"}},"xml:space":{inherit:!0,initial:"default",css:"white-space",values:{preserve:"preserve",default:"default",pre:"preserve","pre-line":"preserve","pre-wrap":"preserve",nowrap:"default"}},"marker-start":{inherit:!0,initial:"none"},"marker-mid":{inherit:!0,initial:"none"},"marker-end":{inherit:!0,initial:"none"},opacity:{inherit:!1,initial:1},transform:{inherit:!1,initial:[1,0,0,1,0,0]},display:{inherit:!1,initial:"inline",values:{none:"none",inline:"inline",block:"inline"}},"clip-path":{inherit:!1,initial:"none"},mask:{inherit:!1,initial:"none"},overflow:{inherit:!1,initial:"hidden",values:{hidden:"hidden",scroll:"hidden",visible:"visible"}}};function S(Vt){var Le=new function(){};return Le.name="G"+(f._groupCount=(f._groupCount||0)+1),Le.resources=f.ref(),Le.xobj=f.ref({Type:"XObject",Subtype:"Form",FormType:1,BBox:Vt,Group:{S:"Transparency",CS:"DeviceRGB",I:!0,K:!1},Resources:Le.resources}),Le.xobj.write(""),Le.savedMatrix=f._ctm,Le.savedPage=f.page,Xo.push(Le),f._ctm=[1,0,0,1,0,0],f.page={width:f.page.width,height:f.page.height,write:function(ue){Le.xobj.write(ue)},fonts:{},xobjects:{},ext_gstates:{},patterns:{}},Le}function R(Vt){if(Vt!==Xo.pop())throw"Group not matching";Object.keys(f.page.fonts).length&&(Vt.resources.data.Font=f.page.fonts),Object.keys(f.page.xobjects).length&&(Vt.resources.data.XObject=f.page.xobjects),Object.keys(f.page.ext_gstates).length&&(Vt.resources.data.ExtGState=f.page.ext_gstates),Object.keys(f.page.patterns).length&&(Vt.resources.data.Pattern=f.page.patterns),Vt.resources.end(),Vt.xobj.end(),f._ctm=Vt.savedMatrix,f.page=Vt.savedPage}function z(Vt){f.page.xobjects[Vt.name]=Vt.xobj,f.addContent("/"+Vt.name+" Do")}function q(Vt,Le){var Pe="M"+(f._maskCount=(f._maskCount||0)+1),ue=f.ref({Type:"ExtGState",CA:1,ca:1,BM:"Normal",SMask:{S:"Luminosity",G:Vt.xobj,BC:Le?[0,0,0]:[1,1,1]}});ue.end(),f.page.ext_gstates[Pe]=ue,f.addContent("/"+Pe+" gs")}function Z(Vt,Le,Pe,ue){var Me=new function(){};return Me.group=Vt,Me.dx=Le,Me.dy=Pe,Me.matrix=ue||[1,0,0,1,0,0],Me}function H(Vt,Le){var Me,Pe="P"+(f._patternCount=(f._patternCount||0)+1),ue=f.ref({Type:"Pattern",PatternType:1,PaintType:1,TilingType:2,BBox:[0,0,Vt.dx,Vt.dy],XStep:Vt.dx,YStep:Vt.dy,Matrix:_e(f._ctm,Vt.matrix),Resources:{ProcSet:["PDF","Text","ImageB","ImageC","ImageI"],XObject:(Me={},Me[Vt.group.name]=Vt.group.xobj,Me)}});ue.write("/"+Vt.group.name+" Do"),ue.end(),f.page.patterns[Pe]=ue,Le?(f.addContent("/Pattern CS"),f.addContent("/"+Pe+" SCN")):(f.addContent("/Pattern cs"),f.addContent("/"+Pe+" scn"))}function G(Vt,Le){f.page.fonts[Vt.id]||(f.page.fonts[Vt.id]=Vt.ref()),f.addContent("BT").addContent("/"+Vt.id+" "+Le+" Tf")}function W(Vt,Le,Pe,ue,Me,lt){f.addContent(St(Vt)+" "+St(Le)+" "+St(-Pe)+" "+St(-ue)+" "+St(Me)+" "+St(lt)+" Tm")}function te(Vt,Le){f.addContent((Vt&&Le?2:Le?1:Vt?0:3)+" Tr")}function j(Vt){"PDFPattern"===Vt[0].constructor.name?(f.fillOpacity(Vt[1]),H(Vt[0],!1)):f.fillColor(Vt[0],Vt[1])}function re(Vt){"PDFPattern"===Vt[0].constructor.name?(f.strokeOpacity(Vt[1]),H(Vt[0],!0)):f.strokeColor(Vt[0],Vt[1])}function oe(Vt){var Le=function($t,Ei,gi,Gi){this.error=Gi,this.nodeName=$t,this.nodeValue=gi,this.nodeType=Ei,this.attributes=Object.create(null),this.childNodes=[],this.parentNode=null,this.id="",this.textContent="",this.classList=[]};Le.prototype.getAttribute=function(li){return null!=this.attributes[li]?this.attributes[li]:null},Le.prototype.getElementById=function(li){var $t=null;return function Ei(gi){if(!$t&&1===gi.nodeType){gi.id===li&&($t=gi);for(var Gi=0;Gi/)){for(;Ei=xt();)gi.childNodes.push(Ei),Ei.parentNode=gi,gi.textContent+=3===Ei.nodeType||4===Ei.nodeType?Ei.nodeValue:Ei.textContent;return($t=Pe.match(/^<\/([\w:.-]+)\s*>/,!0))?($t[1]===gi.nodeName||(ji('parseXml: tag not matching, opening "'+gi.nodeName+'" & closing "'+$t[1]+'"'),lt=!0),gi):(ji('parseXml: tag not matching, opening "'+gi.nodeName+'" & not closing'),lt=!0,gi)}if(Pe.match(/^\/>/))return gi;ji('parseXml: tag could not be parsed "'+gi.nodeName+'"'),lt=!0}else{if($t=Pe.match(/^/))return new Le(null,8,$t,lt);if($t=Pe.match(/^<\?[\s\S]*?\?>/))return new Le(null,7,$t,lt);if($t=Pe.match(/^/))return new Le(null,10,$t,lt);if($t=Pe.match(/^/,!0))return new Le("#cdata-section",4,$t[1],lt);if($t=Pe.match(/^([^<]+)/,!0))return new Le("#text",3,Ce($t[1]),lt)}};Me=xt();)1!==Me.nodeType||ue?(1===Me.nodeType||3===Me.nodeType&&""!==Me.nodeValue.trim())&&ji("parseXml: data after document end has been discarded"):ue=Me;return Pe.matchAll()&&ji("parseXml: parsing error"),ue}function Ce(Vt){return Vt.replace(/&(?:#([0-9]+)|#[xX]([0-9A-Fa-f]+)|([0-9A-Za-z]+));/g,function(Le,Pe,ue,Me){return Pe?String.fromCharCode(parseInt(Pe,10)):ue?String.fromCharCode(parseInt(ue,16)):Me&&k[Me]?String.fromCharCode(k[Me]):Le})}function me(Vt){var Le,Pe;return Vt=(Vt||"").trim(),(Le=D[Vt])?Pe=[Le.slice(),1]:(Le=Vt.match(/^rgba\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9.]+)\s*\)$/i))?(Le[1]=parseInt(Le[1]),Le[2]=parseInt(Le[2]),Le[3]=parseInt(Le[3]),Le[4]=parseFloat(Le[4]),Le[1]<256&&Le[2]<256&&Le[3]<256&&Le[4]<=1&&(Pe=[Le.slice(1,4),Le[4]])):(Le=Vt.match(/^rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)$/i))?(Le[1]=parseInt(Le[1]),Le[2]=parseInt(Le[2]),Le[3]=parseInt(Le[3]),Le[1]<256&&Le[2]<256&&Le[3]<256&&(Pe=[Le.slice(1,4),1])):(Le=Vt.match(/^rgb\(\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/i))?(Le[1]=2.55*parseFloat(Le[1]),Le[2]=2.55*parseFloat(Le[2]),Le[3]=2.55*parseFloat(Le[3]),Le[1]<256&&Le[2]<256&&Le[3]<256&&(Pe=[Le.slice(1,4),1])):(Le=Vt.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i))?Pe=[[parseInt(Le[1],16),parseInt(Le[2],16),parseInt(Le[3],16)],1]:(Le=Vt.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i))&&(Pe=[[17*parseInt(Le[1],16),17*parseInt(Le[2],16),17*parseInt(Le[3],16)],1]),gr?gr(Pe,Vt):Pe}function ze(Vt,Le,Pe){var ue=Vt[0].slice(),Me=Vt[1]*Le;if(Pe){for(var lt=0;lt=0;Le--)Vt=_e(Xo[Le].savedMatrix,Vt);return Vt}function ye(){return(new ai).M(0,0).L(f.page.width,0).L(f.page.width,f.page.height).L(0,f.page.height).transform(Oe(ve())).getBoundingBox()}function Oe(Vt){var Le=Vt[0]*Vt[3]-Vt[1]*Vt[2];return[Vt[3]/Le,-Vt[1]/Le,-Vt[2]/Le,Vt[0]/Le,(Vt[2]*Vt[5]-Vt[3]*Vt[4])/Le,(Vt[1]*Vt[4]-Vt[0]*Vt[5])/Le]}function ae(Vt){var Le=St(Vt[0]),Pe=St(Vt[1]),ue=St(Vt[2]),Me=St(Vt[3]),lt=St(Vt[4]),xt=St(Vt[5]);if(mt(Le*Me-Pe*ue,0))return[Le,Pe,ue,Me,lt,xt]}function Ee(Vt){var Le=Vt[2]||0,Pe=Vt[1]||0,ue=Vt[0]||0;if(Ve(Le,0)&&Ve(Pe,0))return[];if(Ve(Le,0))return[-ue/Pe];var Me=Pe*Pe-4*Le*ue;return mt(Me,0)&&Me>0?[(-Pe+Math.sqrt(Me))/(2*Le),(-Pe-Math.sqrt(Me))/(2*Le)]:Ve(Me,0)?[-Pe/(2*Le)]:[]}function Fe(Vt,Le){return(Le[0]||0)+(Le[1]||0)*Vt+(Le[2]||0)*Vt*Vt+(Le[3]||0)*Vt*Vt*Vt}function Ve(Vt,Le){return Math.abs(Vt-Le)<1e-10}function mt(Vt,Le){return Math.abs(Vt-Le)>=1e-10}function St(Vt){return Vt>-1e21&&Vt<1e21?Math.round(1e6*Vt)/1e6:0}function He(Vt){for(var ue,Le=new ke((Vt||"").trim()),Pe=[1,0,0,1,0,0];ue=Le.match(/^([A-Za-z]+)\s*[(]([^(]+)[)]/,!0);){for(var Me=ue[1],lt=[],xt=new ke(ue[2].trim()),li=void 0;li=xt.matchNumber();)lt.push(Number(li)),xt.matchSeparator();if("matrix"===Me&&6===lt.length)Pe=_e(Pe,[lt[0],lt[1],lt[2],lt[3],lt[4],lt[5]]);else if("translate"===Me&&2===lt.length)Pe=_e(Pe,[1,0,0,1,lt[0],lt[1]]);else if("translate"===Me&&1===lt.length)Pe=_e(Pe,[1,0,0,1,lt[0],0]);else if("scale"===Me&&2===lt.length)Pe=_e(Pe,[lt[0],0,0,lt[1],0,0]);else if("scale"===Me&&1===lt.length)Pe=_e(Pe,[lt[0],0,0,lt[0],0,0]);else if("rotate"===Me&&3===lt.length){var $t=lt[0]*Math.PI/180;Pe=_e(Pe,[1,0,0,1,lt[1],lt[2]],[Math.cos($t),Math.sin($t),-Math.sin($t),Math.cos($t),0,0],[1,0,0,1,-lt[1],-lt[2]])}else if("rotate"===Me&&1===lt.length){var Ei=lt[0]*Math.PI/180;Pe=_e(Pe,[Math.cos(Ei),Math.sin(Ei),-Math.sin(Ei),Math.cos(Ei),0,0])}else if("skewX"===Me&&1===lt.length){var gi=lt[0]*Math.PI/180;Pe=_e(Pe,[1,0,Math.tan(gi),1,0,0])}else{if("skewY"!==Me||1!==lt.length)return;var Gi=lt[0]*Math.PI/180;Pe=_e(Pe,[1,Math.tan(Gi),0,1,0,0])}Le.matchSeparator()}if(!Le.matchAll())return Pe}function be(Vt,Le,Pe,ue,Me,lt){var xt=(Vt||"").trim().match(/^(none)$|^x(Min|Mid|Max)Y(Min|Mid|Max)(?:\s+(meet|slice))?$/)||[],li=xt[1]||xt[4]||"meet",gi=Le/ue,Gi=Pe/Me,hn={Min:0,Mid:.5,Max:1}[xt[2]||"Mid"]-(lt||0),Ci={Min:0,Mid:.5,Max:1}[xt[3]||"Mid"]-(lt||0);return"slice"===li?Gi=gi=Math.max(gi,Gi):"meet"===li&&(Gi=gi=Math.min(gi,Gi)),[gi,0,0,Gi,hn*(Le-ue*gi),Ci*(Pe-Me*Gi)]}function je(Vt){var Le=Object.create(null);Vt=(Vt||"").trim().split(/;/);for(var Pe=0;PeGr&&(jn=Gr,Gr=qn,qn=jn),fr>br&&(jn=br,br=fr,fr=jn);for(var _o=Ee(hn),Br=0;Br<_o.length;Br++)if(_o[Br]>=0&&_o[Br]<=1){var Kn=Fe(_o[Br],gi);KnGr&&(Gr=Kn)}for(var xr=Ee(Ci),Dr=0;Dr=0&&xr[Dr]<=1){var To=Fe(xr[Dr],Gi);Tobr&&(br=To)}return[qn,fr,Gr,br]},this.getPointAtLength=function(jn){if(Ve(jn,0))return this.startPoint;if(Ve(jn,this.totalLength))return this.endPoint;if(!(jn<0||jn>this.totalLength))for(var qn=1;qn<=Ei;qn++){var fr=Vi[qn-1],Gr=Vi[qn];if(fr<=jn&&jn<=Gr){var br=(qn-(Gr-jn)/(Gr-fr))/Ei,_o=Fe(br,gi),Br=Fe(br,Gi),Kn=Fe(br,hn),xr=Fe(br,Ci);return[_o,Br,Math.atan2(xr,Kn)]}}}},gt=function(Le,Pe,ue,Me){this.totalLength=Math.sqrt((ue-Le)*(ue-Le)+(Me-Pe)*(Me-Pe)),this.startPoint=[Le,Pe,Math.atan2(Me-Pe,ue-Le)],this.endPoint=[ue,Me,Math.atan2(Me-Pe,ue-Le)],this.getBoundingBox=function(){return[Math.min(this.startPoint[0],this.endPoint[0]),Math.min(this.startPoint[1],this.endPoint[1]),Math.max(this.startPoint[0],this.endPoint[0]),Math.max(this.startPoint[1],this.endPoint[1])]},this.getPointAtLength=function(lt){if(lt>=0&<<=this.totalLength){var xt=lt/this.totalLength||0;return[this.startPoint[0]+xt*(this.endPoint[0]-this.startPoint[0]),this.startPoint[1]+xt*(this.endPoint[1]-this.startPoint[1]),this.startPoint[2]]}}},ai=function(){this.pathCommands=[],this.pathSegments=[],this.startPoint=null,this.endPoint=null,this.totalLength=0;var lt,xt,li,Le=0,Pe=0,ue=0,Me=0;this.move=function($t,Ei){return Le=ue=$t,Pe=Me=Ei,null},this.line=function($t,Ei){var gi=new gt(ue,Me,$t,Ei);return ue=$t,Me=Ei,gi},this.curve=function($t,Ei,gi,Gi,hn,Ci){var Vi=new it(ue,Me,$t,Ei,gi,Gi,hn,Ci);return ue=hn,Me=Ci,Vi},this.close=function(){var $t=new gt(ue,Me,Le,Pe);return ue=Le,Me=Pe,$t},this.addCommand=function($t){this.pathCommands.push($t);var Ei=this[$t[0]].apply(this,$t.slice(3));Ei&&(Ei.hasStart=$t[1],Ei.hasEnd=$t[2],this.startPoint=this.startPoint||Ei.startPoint,this.endPoint=Ei.endPoint,this.pathSegments.push(Ei),this.totalLength+=Ei.totalLength)},this.M=function($t,Ei){return this.addCommand(["move",!0,!0,$t,Ei]),lt="M",this},this.m=function($t,Ei){return this.M(ue+$t,Me+Ei)},this.Z=this.z=function(){return this.addCommand(["close",!0,!0]),lt="Z",this},this.L=function($t,Ei){return this.addCommand(["line",!0,!0,$t,Ei]),lt="L",this},this.l=function($t,Ei){return this.L(ue+$t,Me+Ei)},this.H=function($t){return this.L($t,Me)},this.h=function($t){return this.L(ue+$t,Me)},this.V=function($t){return this.L(ue,$t)},this.v=function($t){return this.L(ue,Me+$t)},this.C=function($t,Ei,gi,Gi,hn,Ci){return this.addCommand(["curve",!0,!0,$t,Ei,gi,Gi,hn,Ci]),lt="C",xt=gi,li=Gi,this},this.c=function($t,Ei,gi,Gi,hn,Ci){return this.C(ue+$t,Me+Ei,ue+gi,Me+Gi,ue+hn,Me+Ci)},this.S=function($t,Ei,gi,Gi){return this.C(ue+("C"===lt?ue-xt:0),Me+("C"===lt?Me-li:0),$t,Ei,gi,Gi)},this.s=function($t,Ei,gi,Gi){return this.C(ue+("C"===lt?ue-xt:0),Me+("C"===lt?Me-li:0),ue+$t,Me+Ei,ue+gi,Me+Gi)},this.Q=function($t,Ei,gi,Gi){return this.addCommand(["curve",!0,!0,ue+.6666666666666666*($t-ue),Me+2/3*(Ei-Me),gi+2/3*($t-gi),Gi+2/3*(Ei-Gi),gi,Gi]),lt="Q",xt=$t,li=Ei,this},this.q=function($t,Ei,gi,Gi){return this.Q(ue+$t,Me+Ei,ue+gi,Me+Gi)},this.T=function($t,Ei){return this.Q(ue+("Q"===lt?ue-xt:0),Me+("Q"===lt?Me-li:0),$t,Ei)},this.t=function($t,Ei){return this.Q(ue+("Q"===lt?ue-xt:0),Me+("Q"===lt?Me-li:0),ue+$t,Me+Ei)},this.A=function($t,Ei,gi,Gi,hn,Ci,Vi){if(Ve($t,0)||Ve(Ei,0))this.addCommand(["line",!0,!0,Ci,Vi]);else{gi*=Math.PI/180,$t=Math.abs($t),Ei=Math.abs(Ei),Gi=1*!!Gi,hn=1*!!hn;var nn=Math.cos(gi)*(ue-Ci)/2+Math.sin(gi)*(Me-Vi)/2,Cn=Math.cos(gi)*(Me-Vi)/2-Math.sin(gi)*(ue-Ci)/2,Oi=nn*nn/($t*$t)+Cn*Cn/(Ei*Ei);Oi>1&&($t*=Math.sqrt(Oi),Ei*=Math.sqrt(Oi));var $i=Math.sqrt(Math.max(0,$t*$t*Ei*Ei-$t*$t*Cn*Cn-Ei*Ei*nn*nn)/($t*$t*Cn*Cn+Ei*Ei*nn*nn)),In=(Gi===hn?-1:1)*$i*$t*Cn/Ei,jn=(Gi===hn?1:-1)*$i*Ei*nn/$t,qn=Math.cos(gi)*In-Math.sin(gi)*jn+(ue+Ci)/2,fr=Math.sin(gi)*In+Math.cos(gi)*jn+(Me+Vi)/2,Gr=Math.atan2((Cn-jn)/Ei,(nn-In)/$t),br=Math.atan2((-Cn-jn)/Ei,(-nn-In)/$t);0===hn&&br-Gr>0?br-=2*Math.PI:1===hn&&br-Gr<0&&(br+=2*Math.PI);for(var _o=Math.ceil(Math.abs(br-Gr)/(Math.PI/Hr)),Br=0;Br<_o;Br++){var Kn=Gr+Br*(br-Gr)/_o,xr=Gr+(Br+1)*(br-Gr)/_o,Dr=4/3*Math.tan((xr-Kn)/4),To=qn+Math.cos(gi)*$t*(Math.cos(Kn)-Dr*Math.sin(Kn))-Math.sin(gi)*Ei*(Math.sin(Kn)+Dr*Math.cos(Kn)),ca=fr+Math.sin(gi)*$t*(Math.cos(Kn)-Dr*Math.sin(Kn))+Math.cos(gi)*Ei*(Math.sin(Kn)+Dr*Math.cos(Kn)),Ta=qn+Math.cos(gi)*$t*(Math.cos(xr)+Dr*Math.sin(xr))-Math.sin(gi)*Ei*(Math.sin(xr)-Dr*Math.cos(xr)),Sr=fr+Math.sin(gi)*$t*(Math.cos(xr)+Dr*Math.sin(xr))+Math.cos(gi)*Ei*(Math.sin(xr)-Dr*Math.cos(xr)),qa=qn+Math.cos(gi)*$t*Math.cos(xr)-Math.sin(gi)*Ei*Math.sin(xr),Aa=fr+Math.sin(gi)*$t*Math.cos(xr)+Math.cos(gi)*Ei*Math.sin(xr);this.addCommand(["curve",0===Br,Br===_o-1,To,ca,Ta,Sr,qa,Aa])}}return lt="A",this},this.a=function($t,Ei,gi,Gi,hn,Ci,Vi){return this.A($t,Ei,gi,Gi,hn,ue+Ci,Me+Vi)},this.path=function($t){for(var Ei,gi,Gi,hn=new ke(($t||"").trim());Ei=hn.match(/^[astvzqmhlcASTVZQMHLC]/);){hn.matchSeparator();for(var Ci=[];gi=I[Ei+Ci.length]?hn.match(/^[01]/):hn.matchNumber();)hn.matchSeparator(),Ci.length===Q[Ei]&&(this[Ei].apply(this,Ci),Ci=[],"M"===Ei?Ei="L":"m"===Ei&&(Ei="l")),Ci.push(Number(gi));if(Ci.length!==Q[Ei])return void ji("SvgPath: command "+Ei+" with "+Ci.length+" numbers");this[Ei].apply(this,Ci)}return(Gi=hn.matchAll())&&ji("SvgPath: unexpected string "+Gi),this},this.getBoundingBox=function(){var Gi,$t=[1/0,1/0,-1/0,-1/0];for(var gi=0;gi$t[2]&&($t[2]=Gi[2]),Gi[1]<$t[1]&&($t[1]=Gi[1]),Gi[3]>$t[3]&&($t[3]=Gi[3]);return $t[0]===1/0&&($t[0]=0),$t[1]===1/0&&($t[1]=0),$t[2]===-1/0&&($t[2]=0),$t[3]===-1/0&&($t[3]=0),$t},this.getPointAtLength=function($t){if($t>=0&&$t<=this.totalLength){for(var Ei,gi=0;giMe.selector.specificity||(Le[lt]=Me.css[lt],Pe[lt]=Me.selector.specificity)}return Le}(Le),this.allowedChildren=[],this.attr=function(lt){if("function"==typeof Le.getAttribute)return Le.getAttribute(lt)},this.resolveUrl=function(lt){var xt=(lt||"").match(/^\s*(?:url\("(.*)#(.*)"\)|url\('(.*)#(.*)'\)|url\((.*)#(.*)\)|(.*)#(.*))\s*$/)||[],li=xt[1]||xt[3]||xt[5]||xt[7],$t=xt[2]||xt[4]||xt[6]||xt[8];if($t){if(!li){var Ei=_.getElementById($t);if(Ei)return-1===this.stack.indexOf(Ei)?Ei:void ji('SVGtoPDF: loop of circular references for id "'+$t+'"')}if(xn){var gi=qr[li];if(!gi){(function oi(Vt){return"object"==typeof Vt&&null!==Vt&&"number"==typeof Vt.length})(gi=xn(li))||(gi=[gi]);for(var Gi=0;Gi=0&&li[3]>=0?li:xt},this.getPercent=function(lt,xt){var li=this.attr(lt),$t=new ke((li||"").trim()),Gi=$t.matchNumber();return!Gi||($t.match("%")&&(Gi*=.01),$t.matchAll())?xt:Math.max(0,Math.min(1,Gi))},this.chooseValue=function(lt){for(var xt=0;xt=0&&($t=gi);break;case"stroke-miterlimit":null!=(gi=parseFloat(li))&&gi>=1&&($t=gi);break;case"word-spacing":case"letter-spacing":$t=this.computeLength(li,this.getViewport());break;case"stroke-dashoffset":if(null!=($t=this.computeLength(li,this.getViewport()))&&$t<0)for(var Cn=this.get("stroke-dasharray"),Oi=0;Oi0?xt:this.ref?this.ref.getChildren():[]},this.getPaint=function(xt,li,$t,Ei){var gi="userSpaceOnUse"!==this.attr("patternUnits"),Gi="objectBoundingBox"===this.attr("patternContentUnits"),hn=this.getLength("x",gi?1:this.getParentVWidth(),0),Ci=this.getLength("y",gi?1:this.getParentVHeight(),0),Vi=this.getLength("width",gi?1:this.getParentVWidth(),0),nn=this.getLength("height",gi?1:this.getParentVHeight(),0);Gi&&!gi?(hn=(hn-xt[0])/(xt[2]-xt[0])||0,Ci=(Ci-xt[1])/(xt[3]-xt[1])||0,Vi=Vi/(xt[2]-xt[0])||0,nn=nn/(xt[3]-xt[1])||0):!Gi&&gi&&(hn=xt[0]+hn*(xt[2]-xt[0]),Ci=xt[1]+Ci*(xt[3]-xt[1]),Vi*=xt[2]-xt[0],nn*=xt[3]-xt[1]);var Cn=this.getViewbox("viewBox",[0,0,Vi,nn]),$i=_e(be((this.attr("preserveAspectRatio")||"").trim(),Vi,nn,Cn[2],Cn[3],0),[1,0,0,1,-Cn[0],-Cn[1]]),In=He(this.attr("patternTransform"));if(Gi&&(In=_e([xt[2]-xt[0],0,0,xt[3]-xt[1],xt[0],xt[1]],In)),(In=ae(In=_e(In,[1,0,0,1,hn,Ci])))&&($i=ae($i))&&(Vi=St(Vi))&&(nn=St(nn))){var jn=S([0,0,Vi,nn]);return f.transform.apply(f,$i),this.drawChildren($t,Ei),R(jn),[Z(jn,Vi,nn,In),li]}return ue?[ue[0],ue[1]*li]:void 0},this.getVWidth=function(){var xt="userSpaceOnUse"!==this.attr("patternUnits"),li=this.getLength("width",xt?1:this.getParentVWidth(),0);return this.getViewbox("viewBox",[0,0,li,0])[2]},this.getVHeight=function(){var xt="userSpaceOnUse"!==this.attr("patternUnits"),li=this.getLength("height",xt?1:this.getParentVHeight(),0);return this.getViewbox("viewBox",[0,0,0,li])[3]}},Zt=function(Le,Pe,ue){Rt.call(this,Le,Pe),this.allowedChildren=["stop"],this.ref=function(){var xt=this.getUrl("href")||this.getUrl("xlink:href");if(xt&&xt.nodeName===Le.nodeName)return new Zt(xt,Pe,ue)}.call(this);var Me=this.attr;this.attr=function(xt){var li=Me.call(this,xt);return null!=li||"href"===xt||"xlink:href"===xt?li:this.ref?this.ref.attr(xt):null};var lt=this.getChildren;this.getChildren=function(){var xt=lt.call(this);return xt.length>0?xt:this.ref?this.ref.getChildren():[]},this.getPaint=function(xt,li,$t,Ei){var gi=this.getChildren();if(0!==gi.length){if(1===gi.length){var Gi=gi[0],hn=Gi.get("stop-color");return"none"===hn?void 0:ze(hn,Gi.get("stop-opacity")*li,Ei)}var Cn,Oi,$i,In,jn,qn,Ci="userSpaceOnUse"!==this.attr("gradientUnits"),Vi=He(this.attr("gradientTransform")),nn=this.attr("spreadMethod"),fr=0,Gr=0,br=1;if(Ci&&(Vi=_e([xt[2]-xt[0],0,0,xt[3]-xt[1],xt[0],xt[1]],Vi)),Vi=ae(Vi)){if("linearGradient"===this.name)Oi=this.getLength("x1",Ci?1:this.getVWidth(),0),$i=this.getLength("x2",Ci?1:this.getVWidth(),Ci?1:this.getVWidth()),In=this.getLength("y1",Ci?1:this.getVHeight(),0),jn=this.getLength("y2",Ci?1:this.getVHeight(),0);else{$i=this.getLength("cx",Ci?1:this.getVWidth(),Ci?.5:.5*this.getVWidth()),jn=this.getLength("cy",Ci?1:this.getVHeight(),Ci?.5:.5*this.getVHeight()),qn=this.getLength("r",Ci?1:this.getViewport(),Ci?.5:.5*this.getViewport()),Oi=this.getLength("fx",Ci?1:this.getVWidth(),$i),In=this.getLength("fy",Ci?1:this.getVHeight(),jn),qn<0&&ji("SvgElemGradient: negative r value");var _o=Math.sqrt(Math.pow($i-Oi,2)+Math.pow(jn-In,2)),Br=1;_o>qn&&(Oi=$i+(Oi-$i)*(Br=qn/_o),In=jn+(In-jn)*Br),qn=Math.max(qn,_o*Br*1.000001)}if("reflect"===nn||"repeat"===nn){var Kn=Oe(Vi),xr=Ae([xt[0],xt[1]],Kn),Dr=Ae([xt[2],xt[1]],Kn),To=Ae([xt[2],xt[3]],Kn),ca=Ae([xt[0],xt[3]],Kn);"linearGradient"===this.name?(fr=Math.max((xr[0]-$i)*($i-Oi)+(xr[1]-jn)*(jn-In),(Dr[0]-$i)*($i-Oi)+(Dr[1]-jn)*(jn-In),(To[0]-$i)*($i-Oi)+(To[1]-jn)*(jn-In),(ca[0]-$i)*($i-Oi)+(ca[1]-jn)*(jn-In))/(Math.pow($i-Oi,2)+Math.pow(jn-In,2)),Gr=Math.max((xr[0]-Oi)*(Oi-$i)+(xr[1]-In)*(In-jn),(Dr[0]-Oi)*(Oi-$i)+(Dr[1]-In)*(In-jn),(To[0]-Oi)*(Oi-$i)+(To[1]-In)*(In-jn),(ca[0]-Oi)*(Oi-$i)+(ca[1]-In)*(In-jn))/(Math.pow($i-Oi,2)+Math.pow(jn-In,2))):fr=Math.sqrt(Math.max(Math.pow(xr[0]-$i,2)+Math.pow(xr[1]-jn,2),Math.pow(Dr[0]-$i,2)+Math.pow(Dr[1]-jn,2),Math.pow(To[0]-$i,2)+Math.pow(To[1]-jn,2),Math.pow(ca[0]-$i,2)+Math.pow(ca[1]-jn,2)))/qn-1,fr=Math.ceil(fr+.5),br=(Gr=Math.ceil(Gr+.5))+1+fr}Cn="linearGradient"===this.name?f.linearGradient(Oi-Gr*($i-Oi),In-Gr*(jn-In),$i+fr*($i-Oi),jn+fr*(jn-In)):f.radialGradient(Oi,In,0,$i,jn,qn+fr*qn);for(var Ta=0;Ta0&&Cn.stop((Ta+0)/br,kn[0],kn[1]),Cn.stop((Ta+Sr)/(fr+Gr+1),kn[0],kn[1]),Aa===gi.length-1&&Sr<1&&Cn.stop((Ta+1)/br,kn[0],kn[1])}return Cn.setTransform.apply(Cn,Vi),[Cn,1]}return ue?[ue[0],ue[1]*li]:void 0}}},rt=function(Le,Pe){Gt.call(this,Le,Pe),this.dashScale=1,this.getBoundingShape=function(){return this.shape},this.getTransformation=function(){return this.get("transform")},this.drawInDocument=function(ue,Me){if("hidden"!==this.get("visibility")&&this.shape){if(f.save(),this.transform(),this.clip(),ue)this.shape.insertInDocument(),j(x.white),f.fill(this.get("clip-rule"));else{var xt;this.mask()&&(xt=S(ye()));var li=this.shape.getSubPaths(),$t=this.getFill(ue,Me),Ei=this.getStroke(ue,Me),gi=this.get("stroke-width"),Gi=this.get("stroke-linecap");if($t||Ei){if($t&&j($t),Ei){for(var hn=0;hn0&&li[hn].startPoint&&li[hn].startPoint.length>1){var Ci=li[hn].startPoint[0],Vi=li[hn].startPoint[1];j(Ei),"square"===Gi?f.rect(Ci-.5*gi,Vi-.5*gi,gi,gi):"round"===Gi&&f.circle(Ci,Vi,.5*gi),f.fill()}var nn=this.get("stroke-dasharray"),Cn=this.get("stroke-dashoffset");if(mt(this.dashScale,1)){for(var Oi=0;Oi0&&li[$i].insertInDocument();$t&&Ei?f.fillAndStroke(this.get("fill-rule")):$t?f.fill(this.get("fill-rule")):Ei&&f.stroke()}var In=this.get("marker-start"),jn=this.get("marker-mid"),qn=this.get("marker-end");if("none"!==In||"none"!==jn||"none"!==qn){var fr=this.shape.getMarkers();if("none"!==In&&new Ut(In,null).drawMarker(!1,Me,fr[0],gi),"none"!==jn)for(var br=1;br0&&xt>0?li&&$t?(li=Math.min(li,.5*lt),$t=Math.min($t,.5*xt),this.shape=(new ai).M(ue+li,Me).L(ue+lt-li,Me).A(li,$t,0,0,1,ue+lt,Me+$t).L(ue+lt,Me+xt-$t).A(li,$t,0,0,1,ue+lt-li,Me+xt).L(ue+li,Me+xt).A(li,$t,0,0,1,ue,Me+xt-$t).L(ue,Me+$t).A(li,$t,0,0,1,ue+li,Me).Z()):this.shape=(new ai).M(ue,Me).L(ue+lt,Me).L(ue+lt,Me+xt).L(ue,Me+xt).Z():this.shape=new ai},on=function(Le,Pe){rt.call(this,Le,Pe);var ue=this.getLength("cx",this.getVWidth(),0),Me=this.getLength("cy",this.getVHeight(),0),lt=this.getLength("r",this.getViewport(),0);this.shape=lt>0?(new ai).M(ue+lt,Me).A(lt,lt,0,0,1,ue-lt,Me).A(lt,lt,0,0,1,ue+lt,Me).Z():new ai},Ge=function(Le,Pe){rt.call(this,Le,Pe);var ue=this.getLength("cx",this.getVWidth(),0),Me=this.getLength("cy",this.getVHeight(),0),lt=this.getLength("rx",this.getVWidth(),0),xt=this.getLength("ry",this.getVHeight(),0);this.shape=lt>0&&xt>0?(new ai).M(ue+lt,Me).A(lt,xt,0,0,1,ue-lt,Me).A(lt,xt,0,0,1,ue+lt,Me).Z():new ai},_i=function(Le,Pe){rt.call(this,Le,Pe);var ue=this.getLength("x1",this.getVWidth(),0),Me=this.getLength("y1",this.getVHeight(),0),lt=this.getLength("x2",this.getVWidth(),0),xt=this.getLength("y2",this.getVHeight(),0);this.shape=(new ai).M(ue,Me).L(lt,xt)},qt=function(Le,Pe){rt.call(this,Le,Pe);var ue=this.getNumberList("points");this.shape=new ai;for(var Me=0;Me0?ue:void 0,this.dashScale=void 0!==this.pathLength?this.shape.totalLength/this.pathLength:1},Ut=function(Le,Pe){zt.call(this,Le,Pe);var ue=this.getLength("markerWidth",this.getParentVWidth(),3),Me=this.getLength("markerHeight",this.getParentVHeight(),3),lt=this.getViewbox("viewBox",[0,0,ue,Me]);this.getVWidth=function(){return lt[2]},this.getVHeight=function(){return lt[3]},this.drawMarker=function(xt,li,$t,Ei){f.save();var gi=this.attr("orient"),Gi=this.attr("markerUnits"),hn="auto"===gi?$t[2]:(parseFloat(gi)||0)*Math.PI/180,Ci="userSpaceOnUse"===Gi?1:Ei;f.transform(Math.cos(hn)*Ci,Math.sin(hn)*Ci,-Math.sin(hn)*Ci,Math.cos(hn)*Ci,$t[0],$t[1]);var Oi,Vi=this.getLength("refX",this.getVWidth(),0),nn=this.getLength("refY",this.getVHeight(),0),Cn=be(this.attr("preserveAspectRatio"),ue,Me,lt[2],lt[3],.5);"hidden"===this.get("overflow")&&f.rect(Cn[0]*(lt[0]+lt[2]/2-Vi)-ue/2,Cn[3]*(lt[1]+lt[3]/2-nn)-Me/2,ue,Me).clip(),f.transform.apply(f,Cn),f.translate(-Vi,-nn),this.get("opacity")<1&&!xt&&(Oi=S(ye())),this.drawChildren(xt,li),Oi&&(R(Oi),f.fillOpacity(this.get("opacity")),z(Oi)),f.restore()}},Si=function(Le,Pe){zt.call(this,Le,Pe),this.useMask=function(ue){var Me=S(ye());f.save(),"objectBoundingBox"===this.attr("clipPathUnits")&&f.transform(ue[2]-ue[0],0,0,ue[3]-ue[1],ue[0],ue[1]),this.clip(),this.drawChildren(!0,!1),f.restore(),R(Me),q(Me,!0)}},Ti=function(Le,Pe){zt.call(this,Le,Pe),this.useMask=function(ue){var lt,xt,li,$t,Me=S(ye());f.save(),"userSpaceOnUse"===this.attr("maskUnits")?(lt=this.getLength("x",this.getVWidth(),-.1*(ue[2]-ue[0])+ue[0]),xt=this.getLength("y",this.getVHeight(),-.1*(ue[3]-ue[1])+ue[1]),li=this.getLength("width",this.getVWidth(),1.2*(ue[2]-ue[0])),$t=this.getLength("height",this.getVHeight(),1.2*(ue[3]-ue[1]))):(lt=this.getLength("x",this.getVWidth(),-.1)*(ue[2]-ue[0])+ue[0],xt=this.getLength("y",this.getVHeight(),-.1)*(ue[3]-ue[1])+ue[1],li=this.getLength("width",this.getVWidth(),1.2)*(ue[2]-ue[0]),$t=this.getLength("height",this.getVHeight(),1.2)*(ue[3]-ue[1])),f.rect(lt,xt,li,$t).clip(),"objectBoundingBox"===this.attr("maskContentUnits")&&f.transform(ue[2]-ue[0],0,0,ue[3]-ue[1],ue[0],ue[1]),this.clip(),this.drawChildren(!1,!0),f.restore(),R(Me),q(Me,!0)}},ln=function(Le,Pe){Gt.call(this,Le,Pe),this.allowedChildren=["tspan","#text","#cdata-section","a"],this.isText=!0,this.getBoundingShape=function(){for(var ue=new ai,Me=0;Me Tj")}f.addContent("ET")}}}"line-through"===this.get("text-decoration")&&this.decorate(.05*this._font.size,.5*(Xe(this._font.font,this._font.size)+It(this._font.font,this._font.size)),ue,Me)},this.decorate=function(ue,Me,lt,xt){var li=this.getFill(lt,xt),$t=this.getStroke(lt,xt);li&&j(li),$t&&(re($t),f.lineWidth(this.get("stroke-width")).miterLimit(this.get("stroke-miterlimit")).lineJoin(this.get("stroke-linejoin")).lineCap(this.get("stroke-linecap")).dash(this.get("stroke-dasharray"),{phase:this.get("stroke-dashoffset")}));for(var Ei=0,gi=this._pos;Ei0?xt:this.pathObject.totalLength,this.pathScale=this.pathObject.totalLength/this.pathLength}else if((lt=this.getUrl("href")||this.getUrl("xlink:href"))&&"path"===lt.nodeName){var li=new Bt(lt,this);this.pathObject=li.shape.clone().transform(li.get("transform")),this.pathLength=this.chooseValue(li.pathLength,this.pathObject.totalLength),this.pathScale=this.pathObject.totalLength/this.pathLength}},Pn=function(Le,Pe){ln.call(this,Le,Pe),this.allowedChildren=["textPath","tspan","#text","#cdata-section","a"],function(ue){var $t,Ei,Me="",lt=Le.textContent,xt=[],li=[],gi=0,Gi=0;function hn(){if(li.length)for(var Oi=li[li.length-1],jn={startltr:0,middleltr:.5,endltr:1,startrtl:1,middlertl:.5,endrtl:0}[$t+Ei]*(Oi.x+Oi.width-li[0].x)||0,qn=0;qnIn||Gr<0)Oi._pos[fr].hidden=!0;else{var br=$i.getPointAtLength(Gr*jn);mt(jn,1)&&(Oi._pos[fr].scale*=jn,Oi._pos[fr].width*=jn),Oi._pos[fr].x=br[0]-.5*Oi._pos[fr].width*Math.cos(br[2])-Oi._pos[fr].y*Math.sin(br[2]),Oi._pos[fr].y=br[1]-.5*Oi._pos[fr].width*Math.sin(br[2])+Oi._pos[fr].y*Math.cos(br[2]),Oi._pos[fr].rotate=br[2]+Oi._pos[fr].rotate,Oi._pos[fr].continuous=!1}}else for(var _o=0;_o0&&br<1/0)for(var _o=0;_o=2)for(var Br=($i-(Gr-fr))/(Oi.length-1),Kn=0;Kn0&&j.length>P&&!j.warned){j.warned=!0;var re=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(G)+" listeners added. Use emitter.setMaxListeners() to increase limit");re.name="MaxListenersExceededWarning",re.emitter=H,re.type=G,re.count=j.length,function h(H){console&&console.warn&&console.warn(H)}(re)}return H}function x(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function k(H,G,W){var te={fired:!1,wrapFn:void 0,target:H,type:G,listener:W},P=x.bind(te);return P.listener=W,te.wrapFn=P,P}function Q(H,G,W){var te=H._events;if(void 0===te)return[];var P=te[G];return void 0===P?[]:"function"==typeof P?W?[P.listener||P]:[P]:W?function R(H){for(var G=new Array(H.length),W=0;W0&&(j=W[0]),j instanceof Error)throw j;var re=new Error("Unhandled error."+(j?" ("+j.message+")":""));throw re.context=j,re}var he=J[G];if(void 0===he)return!1;if("function"==typeof he)l(he,this,W);else{var oe=he.length,Ce=d(he,oe);for(te=0;te=0;j--)if(te[j]===W||te[j].listener===W){re=te[j].listener,J=j;break}if(J<0)return this;0===J?te.shift():function S(H,G){for(;G+1=0;P--)this.removeListener(G,W[P]);return this},_.prototype.listeners=function(G){return Q(this,G,!0)},_.prototype.rawListeners=function(G){return Q(this,G,!1)},_.listenerCount=function(H,G){return"function"==typeof H.listenerCount?H.listenerCount(G):I.call(H,G)},_.prototype.listenerCount=I,_.prototype.eventNames=function(){return this._eventsCount>0?v(this._events):[]}},64793:function(T,e,l){"use strict";var v=l(59754),h=l(23417),f=l(74841),_=l(34815),b=v.aTypedArray;(0,v.exportTypedArrayMethod)("subarray",function(D,x){var k=b(this),Q=k.length,I=f(D,Q);return new(_(k))(k.buffer,k.byteOffset+I*k.BYTES_PER_ELEMENT,h((void 0===x?Q:f(x,Q))-I))})},64913:function(T,e,l){var v=l(32010),h=l(26882),f=v.RangeError;T.exports=function(_){var b=h(_);if(b<0)throw f("The argument can't be less than 0");return b}},65292:function(T,e,l){"use strict";var v=l(56475),h=l(32010),f=l(38486),_=l(58448),b=l(2834),y=l(38347),M=l(63432),D=l(15567),x=l(46887),k=l(47044),Q=l(20340),I=l(59113),d=l(94578),S=l(24517),R=l(70176),z=l(46290),q=l(34984),Z=l(43162),H=l(98086),G=l(63918),W=l(25096),te=l(97841),P=l(10819),J=l(84675),j=l(6611),re=l(8807),he=l(61146),oe=l(72062),Ce=l(95892),me=l(55574),ze=l(73163),_e=l(13711),Ae=l(464),ve=l(82194),ye=l(90682),Oe=l(46859),ae=l(38688),Ee=l(75960),Fe=l(46042),Ve=l(15216),mt=l(70172),St=l(91102).forEach,oi=ve("hidden"),He="Symbol",be="prototype",je=ae("toPrimitive"),Ke=mt.set,_t=mt.getterFor(He),Nt=Object[be],ut=h.Symbol,et=ut&&ut[be],Xe=h.TypeError,It=h.QObject,Dt=f("JSON","stringify"),vt=oe.f,Qt=Ce.f,qe=re.f,ke=me.f,it=y([].push),gt=Ae("symbols"),ai=Ae("op-symbols"),Rt=Ae("string-to-symbol-registry"),Gt=Ae("symbol-to-string-registry"),zt=Ae("wks"),mi=!It||!It[be]||!It[be].findChild,Zi=D&&k(function(){return 7!=P(Qt({},"a",{get:function(){return Qt(this,"a",{value:7}).a}})).a})?function(Ge,_i,qt){var tt=vt(Nt,_i);tt&&delete Nt[_i],Qt(Ge,_i,qt),tt&&Ge!==Nt&&Qt(Nt,_i,tt)}:Qt,Qi=function(Ge,_i){var qt=gt[Ge]=P(et);return Ke(qt,{type:He,tag:Ge,description:_i}),D||(qt.description=_i),qt},Ht=function(_i,qt,tt){_i===Nt&&Ht(ai,qt,tt),q(_i);var Bt=G(qt);return q(tt),Q(gt,Bt)?(tt.enumerable?(Q(_i,oi)&&_i[oi][Bt]&&(_i[oi][Bt]=!1),tt=P(tt,{enumerable:te(0,!1)})):(Q(_i,oi)||Qt(_i,oi,te(1,{})),_i[oi][Bt]=!0),Zi(_i,Bt,tt)):Qt(_i,Bt,tt)},dt=function(_i,qt){q(_i);var tt=H(qt),Bt=J(tt).concat(rt(tt));return St(Bt,function(Ut){(!D||b(Se,tt,Ut))&&Ht(_i,Ut,tt[Ut])}),_i},Se=function(_i){var qt=G(_i),tt=b(ke,this,qt);return!(this===Nt&&Q(gt,qt)&&!Q(ai,qt))&&(!(tt||!Q(this,qt)||!Q(gt,qt)||Q(this,oi)&&this[oi][qt])||tt)},ct=function(_i,qt){var tt=H(_i),Bt=G(qt);if(tt!==Nt||!Q(gt,Bt)||Q(ai,Bt)){var Ut=vt(tt,Bt);return Ut&&Q(gt,Bt)&&!(Q(tt,oi)&&tt[oi][Bt])&&(Ut.enumerable=!0),Ut}},Zt=function(_i){var qt=qe(H(_i)),tt=[];return St(qt,function(Bt){!Q(gt,Bt)&&!Q(ye,Bt)&&it(tt,Bt)}),tt},rt=function(_i){var qt=_i===Nt,tt=qe(qt?ai:H(_i)),Bt=[];return St(tt,function(Ut){Q(gt,Ut)&&(!qt||Q(Nt,Ut))&&it(Bt,gt[Ut])}),Bt};if(x||(ut=function(){if(R(et,this))throw Xe("Symbol is not a constructor");var _i=arguments.length&&void 0!==arguments[0]?W(arguments[0]):void 0,qt=Oe(_i),tt=function(Bt){this===Nt&&b(tt,ai,Bt),Q(this,oi)&&Q(this[oi],qt)&&(this[oi][qt]=!1),Zi(this,qt,te(1,Bt))};return D&&mi&&Zi(Nt,qt,{configurable:!0,set:tt}),Qi(qt,_i)},_e(et=ut[be],"toString",function(){return _t(this).tag}),_e(ut,"withoutSetter",function(Ge){return Qi(Oe(Ge),Ge)}),me.f=Se,Ce.f=Ht,oe.f=ct,j.f=re.f=Zt,he.f=rt,Ee.f=function(Ge){return Qi(ae(Ge),Ge)},D&&(Qt(et,"description",{configurable:!0,get:function(){return _t(this).description}}),M||_e(Nt,"propertyIsEnumerable",Se,{unsafe:!0}))),v({global:!0,wrap:!0,forced:!x,sham:!x},{Symbol:ut}),St(J(zt),function(Ge){Fe(Ge)}),v({target:He,stat:!0,forced:!x},{for:function(Ge){var _i=W(Ge);if(Q(Rt,_i))return Rt[_i];var qt=ut(_i);return Rt[_i]=qt,Gt[qt]=_i,qt},keyFor:function(_i){if(!z(_i))throw Xe(_i+" is not a symbol");if(Q(Gt,_i))return Gt[_i]},useSetter:function(){mi=!0},useSimple:function(){mi=!1}}),v({target:"Object",stat:!0,forced:!x,sham:!D},{create:function(_i,qt){return void 0===qt?P(_i):dt(P(_i),qt)},defineProperty:Ht,defineProperties:dt,getOwnPropertyDescriptor:ct}),v({target:"Object",stat:!0,forced:!x},{getOwnPropertyNames:Zt,getOwnPropertySymbols:rt}),v({target:"Object",stat:!0,forced:k(function(){he.f(1)})},{getOwnPropertySymbols:function(_i){return he.f(Z(_i))}}),Dt&&v({target:"JSON",stat:!0,forced:!x||k(function(){var Ge=ut();return"[null]"!=Dt([Ge])||"{}"!=Dt({a:Ge})||"{}"!=Dt(Object(Ge))})},{stringify:function(_i,qt,tt){var Bt=ze(arguments),Ut=qt;if((S(qt)||void 0!==_i)&&!z(_i))return I(qt)||(qt=function(Si,Ti){if(d(Ut)&&(Ti=b(Ut,this,Si,Ti)),!z(Ti))return Ti}),Bt[1]=qt,_(Dt,null,Bt)}}),!et[je]){var on=et.valueOf;_e(et,je,function(Ge){return b(on,this)})}Ve(ut,He),ye[oi]=!0},65300:function(T,e,l){"use strict";l(49063),l(97514),l(11765),l(81755),l(80055),l(20731),l(7283),l(18756),l(37309),l(14032),l(76014),l(58281),l(28356),l(42437),l(94712);var v=l(2318),h=l(98883),f=l(42526),_=l(79178),b=l(11220),y=l(77530),M=l(89836),D=l(70770),x=l(91867).isString,k=l(91867).isArray,Q=l(91867).isUndefined,I=l(91867).isNull,d=l(91867).pack,S=l(91867).offsetVector,R=l(91867).fontStringify,z=l(91867).getNodeId,q=l(91867).isFunction,Z=l(11548),H=l(76442),G=l(91867).isNumber;function W(J,j){j.forEach(function(re){J.push(re)})}function te(J,j,re,he){this.pageSize=J,this.pageMargins=j,this.tracker=new v,this.imageMeasure=re,this.svgMeasure=he,this.tableLayouts={},this.nestedLevel=0}te.prototype.registerTableLayouts=function(J){this.tableLayouts=d(this.tableLayouts,J)},te.prototype.layoutDocument=function(J,j,re,he,oe,Ce,me,ze,_e,Ae){function ve(ae,Ee){if(!q(Ae))return!1;(ae=ae.filter(function(Ke){return Ke.positions.length>0})).forEach(function(Ke){var _t={};["id","text","ul","ol","table","image","qr","canvas","svg","columns","headlineLevel","style","pageBreak","pageOrientation","width","height"].forEach(function(Nt){void 0!==Ke[Nt]&&(_t[Nt]=Ke[Nt])}),_t.startPosition=Ke.positions[0],_t.pageNumbers=Array.from(new Set(Ke.positions.map(function(Nt){return Nt.pageNumber}))),_t.pages=Ee.length,_t.stack=k(Ke.stack),Ke.nodeInfo=_t});for(var Fe=0;Fe1)for(var be=Fe+1,je=ae.length;be-1&&St.push(ae[be].nodeInfo),Ae.length>2&&ae[be].nodeInfo.pageNumbers.indexOf(mt+1)>-1&&oi.push(ae[be].nodeInfo);if(Ae.length>3)for(be=0;be-1&&He.push(ae[be].nodeInfo);if(Ae(Ve.nodeInfo,St,oi,He))return Ve.pageBreak="before",!0}}return!1}this.docPreprocessor=new h,this.docMeasure=new f(j,re,he,this.imageMeasure,this.svgMeasure,this.tableLayouts,ze);for(var Oe=this.tryLayoutDocument(J,j,re,he,oe,Ce,me,ze,_e);ve(Oe.linearNodeList,Oe.pages);)Oe.linearNodeList.forEach(function(Ee){Ee.resetXY()}),Oe=this.tryLayoutDocument(J,j,re,he,oe,Ce,me,ze,_e);return Oe.pages},te.prototype.tryLayoutDocument=function(J,j,re,he,oe,Ce,me,ze,_e,Ae){this.linearNodeList=[],J=this.docPreprocessor.preprocessDocument(J),J=this.docMeasure.measureDocument(J),this.writer=new b(new _(this.pageSize,this.pageMargins),this.tracker);var ve=this;return this.writer.context().tracker.startTracking("pageAdded",function(){ve.addBackground(oe)}),this.addBackground(oe),this.processNode(J),this.addHeadersAndFooters(Ce,me),null!=_e&&this.addWatermark(_e,j,he),{pages:this.writer.context().pages,linearNodeList:this.linearNodeList}},te.prototype.addBackground=function(J){var j=q(J)?J:function(){return J},re=this.writer.context(),he=re.getCurrentPage().pageSize,oe=j(re.page+1,he);oe&&(this.writer.beginUnbreakableBlock(he.width,he.height),oe=this.docPreprocessor.preprocessDocument(oe),this.processNode(this.docMeasure.measureDocument(oe)),this.writer.commitUnbreakableBlock(0,0),re.backgroundLength[re.page]+=oe.positions.length)},te.prototype.addStaticRepeatable=function(J,j){this.addDynamicRepeatable(function(){return JSON.parse(JSON.stringify(J))},j)},te.prototype.addDynamicRepeatable=function(J,j){for(var he=0,oe=this.writer.context().pages.length;he1;)ae.push({fontSize:mt}),(Ee=Oe.sizeOfRotatedText(ve.text,ve.angle,ae)).width>Ae.width?mt=(Fe+(Ve=mt))/2:Ee.widthAe.height?(Fe+(Ve=mt))/2:((Fe=mt)+Ve)/2),ae.pop();return mt}(ve,Ae,ye));var ae={text:Ae.text,font:ye.provideFont(Ae.font,Ae.bold,Ae.italics),fontSize:Ae.fontSize,color:Ae.color,opacity:Ae.opacity,angle:Ae.angle};return ae._size=function ze(Ae,ve){var ye=new Z(ve),Oe=new H(null,{font:Ae.font,bold:Ae.bold,italics:Ae.italics});return Oe.push({fontSize:Ae.fontSize}),{size:ye.sizeOfString(Ae.text,Oe),rotatedSize:ye.sizeOfRotatedText(Ae.text,Ae.angle,Oe)}}(Ae,ye),ae}},te.prototype.processNode=function(J){var j=this;this.linearNodeList.push(J),function P(J){var j=J.x,re=J.y;J.positions=[],k(J.canvas)&&J.canvas.forEach(function(he){var oe=he.x,Ce=he.y,me=he.x1,ze=he.y1,_e=he.x2,Ae=he.y2;he.resetXY=function(){he.x=oe,he.y=Ce,he.x1=me,he.y1=ze,he.x2=_e,he.y2=Ae}}),J.resetXY=function(){J.x=j,J.y=re,k(J.canvas)&&J.canvas.forEach(function(he){he.resetXY()})}}(J),function re(he){var oe=J._margin;"before"===J.pageBreak?j.writer.moveToNextPage(J.pageOrientation):"beforeOdd"===J.pageBreak?(j.writer.moveToNextPage(J.pageOrientation),(j.writer.context().page+1)%2==1&&j.writer.moveToNextPage(J.pageOrientation)):"beforeEven"===J.pageBreak&&(j.writer.moveToNextPage(J.pageOrientation),(j.writer.context().page+1)%2==0&&j.writer.moveToNextPage(J.pageOrientation));var Ce=J.relativePosition||J.absolutePosition;if(oe&&!Ce){var me=j.writer.context().availableHeight;me-oe[1]<0?(j.writer.context().moveDown(me),j.writer.moveToNextPage(J.pageOrientation)):j.writer.context().moveDown(oe[1]),j.writer.context().addMargin(oe[0],oe[2])}if(he(),oe&&!Ce){var ze=j.writer.context().availableHeight;ze-oe[3]<0?(j.writer.context().moveDown(ze),j.writer.moveToNextPage(J.pageOrientation)):j.writer.context().moveDown(oe[3]),j.writer.context().addMargin(-oe[0],-oe[2])}"after"===J.pageBreak?j.writer.moveToNextPage(J.pageOrientation):"afterOdd"===J.pageBreak?(j.writer.moveToNextPage(J.pageOrientation),(j.writer.context().page+1)%2==1&&j.writer.moveToNextPage(J.pageOrientation)):"afterEven"===J.pageBreak&&(j.writer.moveToNextPage(J.pageOrientation),(j.writer.context().page+1)%2==0&&j.writer.moveToNextPage(J.pageOrientation))}(function(){var he=J.unbreakable;he&&j.writer.beginUnbreakableBlock();var oe=J.absolutePosition;oe&&(j.writer.context().beginDetachedBlock(),j.writer.context().moveTo(oe.x||0,oe.y||0));var Ce=J.relativePosition;if(Ce&&(j.writer.context().beginDetachedBlock(),j.writer.context().moveToRelative(Ce.x||0,Ce.y||0)),J.stack)j.processVerticalContainer(J);else if(J.columns)j.processColumns(J);else if(J.ul)j.processList(!1,J);else if(J.ol)j.processList(!0,J);else if(J.table)j.processTable(J);else if(void 0!==J.text)j.processLeaf(J);else if(J.toc)j.processToc(J);else if(J.image)j.processImage(J);else if(J.svg)j.processSVG(J);else if(J.canvas)j.processCanvas(J);else if(J.qr)j.processQr(J);else if(!J._span)throw"Unrecognized document structure: "+JSON.stringify(J,R);(oe||Ce)&&j.writer.context().endDetachedBlock(),he&&j.writer.commitUnbreakableBlock()})},te.prototype.processVerticalContainer=function(J){var j=this;J.stack.forEach(function(re){j.processNode(re),W(J.positions,re.positions)})},te.prototype.processColumns=function(J){this.nestedLevel++;var j=J.columns,re=this.writer.context().availableWidth,he=function Ce(me){if(!me)return null;var ze=[];ze.push(0);for(var _e=j.length-1;_e>0;_e--)ze.push(me);return ze}(J._gap);he&&(re-=(he.length-1)*J._gap),y.buildColumnWidths(j,re);var oe=this.processRow({marginX:J._margin?[J._margin[0],J._margin[2]]:[0,0],cells:j,widths:j,gaps:he});W(J.positions,oe.positions),this.nestedLevel--,0===this.nestedLevel&&this.writer.context().resetMarginXTopParent()},te.prototype._findStartingRowSpanCell=function(J,j){for(var re=1,he=j-1;he>=0;he--){if(!J[he]._span)return J[he].rowSpan>1&&(J[he].colSpan||1)===re?J[he]:null;re++}return null},te.prototype._getPageBreak=function(J,j){return J.find(function(re){return re.prevPage===j})},te.prototype._getPageBreakListBySpan=function(J,j,re){if(!J||!J._breaksBySpan)return null;var he=J._breaksBySpan.filter(function(me){return me.prevPage===j&&re<=me.rowIndexOfSpanEnd}),oe=Number.MAX_VALUE,Ce=Number.MIN_VALUE;return he.forEach(function(me){Ce=Math.max(me.prevY,Ce),oe=Math.min(me.y,oe)}),{prevPage:j,prevY:Ce,y:oe}},te.prototype._findSameRowPageBreakByRowSpanData=function(J,j,re){return J?J.find(function(he){return he.prevPage===j&&re===he.rowIndexOfSpanEnd}):null},te.prototype._updatePageBreaksData=function(J,j,re){var he=this;Object.keys(j._bottomByPage).forEach(function(oe){var Ce=Number(oe),me=he._getPageBreak(J,Ce);if(me&&(me.prevY=Math.max(me.prevY,j._bottomByPage[Ce])),j._breaksBySpan&&j._breaksBySpan.length>0){var ze=j._breaksBySpan.filter(function(_e){return _e.prevPage===Ce&&re<=_e.rowIndexOfSpanEnd});ze&&ze.length>0&&ze.forEach(function(_e){_e.prevY=Math.max(_e.prevY,j._bottomByPage[Ce])})}})},te.prototype._resolveBreakY=function(J,j,re){re.prevY=Math.max(J.prevY,j.prevY),re.y=Math.min(J.y,j.y)},te.prototype._storePageBreakData=function(J,j,re,he){var oe,Ce;j?((Ce=this._findSameRowPageBreakByRowSpanData(he&&he._breaksBySpan||null,J.prevPage,J.rowIndex))||(Ce=Object.assign({},J,{rowIndexOfSpanEnd:J.rowIndex+J.rowSpan-1}),he._breaksBySpan||(he._breaksBySpan=[]),he._breaksBySpan.push(Ce)),Ce.prevY=Math.max(Ce.prevY,J.prevY),Ce.y=Math.min(Ce.y,J.y),(oe=this._getPageBreak(re,J.prevPage))&&this._resolveBreakY(oe,Ce,oe)):(oe=this._getPageBreak(re,J.prevPage),Ce=this._getPageBreakListBySpan(he,J.prevPage,J.rowIndex),oe||(oe=Object.assign({},J),re.push(oe)),Ce&&this._resolveBreakY(oe,Ce,oe),this._resolveBreakY(oe,J,oe))},te.prototype._colLeftOffset=function(J,j){return j&&j.length>J?j[J]:0},te.prototype._getRowSpanEndingCell=function(J,j,re,he){if(re.rowSpan&&re.rowSpan>1){var oe=j+re.rowSpan-1;if(oe>=J.length)throw new Error("Row span for column "+he+" (with indexes starting from 0) exceeded row count");return J[oe][he]}return null},te.prototype.processRow=function(J){var j=J.marginX,re=void 0===j?[0,0]:j,he=J.dontBreakRows,oe=void 0!==he&&he,Ce=J.rowsWithoutPageBreak,ze=J.cells,_e=J.widths,Ae=J.gaps,ve=J.tableNode,ye=J.tableBody,Oe=J.rowIndex,ae=J.height,Ee=this,Fe=oe||Oe<=(void 0===Ce?0:Ce)-1,Ve=[],St=[],oi=!1;_e=_e||ze,!Fe&&ae>Ee.writer.context().availableHeight&&(oi=!0);var He=1===Ee.nestedLevel?re:null,be=ve?ve._bottomByPage:null;this.writer.context().beginColumnGroup(He,be);for(var je=0,Ke=ze.length;je1)for(var qe=1;qe<_t.colSpan;qe++)Dt+=_e[++je]._calcWidth+Ae[je];var ke=Ee._getRowSpanEndingCell(ye,Oe,_t,je);ke&&(_t._endingCell=ke,_t._endingCell._startingRowSpanY=_t._startingRowSpanY);var it=null;if(Qt&&Qt._endingCell&&(it=Qt._endingCell,Ee.writer.transactionLevel>0&&(it._isUnbreakableContext=!0,it._originalXOffset=Ee.writer.originalX)),Ee.writer.context().beginColumn(Dt,vt,it),_t._span){if(_t._columnEndingContext){var gt=0;oe&&(gt=Ee.writer.writer.contextStack[Ee.writer.writer.contextStack.length-1].y-_t._startingRowSpanY);var Rt=0;_t._isUnbreakableContext&&!Ee.writer.transactionLevel&&(Rt=_t._originalXOffset),Ee.writer.context().markEnding(_t,Rt,gt)}}else Ee.processNode(_t),Ee.writer.context().updateBottomByPage(),W(St,_t.positions)})}var Nt=null,ut=ze.length>0?ze[ze.length-1]:null;if(ut)if(ut._endingCell)Nt=ut._endingCell;else if(!0===ut._span){var et=this._findStartingRowSpanCell(ze,ze.length);et&&(Nt=et._endingCell,this.writer.transactionLevel>0&&(Nt._isUnbreakableContext=!0,Nt._originalXOffset=this.writer.originalX))}oi&&!Fe&&0===Ve.length&&(this.writer.context().moveDown(this.writer.context().availableHeight),this.writer.moveToNextPage());var Xe=this.writer.context().completeColumnGroup(ae,Nt);return ve&&(ve._bottomByPage=Xe,this._updatePageBreaksData(Ve,ve,Oe)),{pageBreaksBySpan:[],pageBreaks:Ve,positions:St};function It(Dt){var vt=_t.rowSpan&&_t.rowSpan>1;vt&&(Dt.rowSpan=_t.rowSpan),Dt.rowIndex=Oe,Ee._storePageBreakData(Dt,vt,Ve,ve)}},te.prototype.processList=function(J,j){var Ce,re=this,he=J?j.ol:j.ul,oe=j._gapSize;this.writer.context().addMargin(oe.width),this.tracker.auto("lineAdded",function me(ze){if(Ce){var _e=Ce;if(Ce=null,_e.canvas){var Ae=_e.canvas[0];S(Ae,-_e._minWidth,0),re.writer.addVector(Ae)}else if(_e._inlines){var ve=new D(re.pageSize.width);ve.addInline(_e._inlines[0]),ve.x=-_e._minWidth,ve.y=ze.getAscenderHeight()-ve.getAscenderHeight(),re.writer.addLine(ve,!0)}}},function(){he.forEach(function(ze){Ce=ze.listMarker,re.processNode(ze),W(j.positions,ze.positions)})}),this.writer.context().addMargin(-oe.width)},te.prototype.processTable=function(J){var j=this;this.nestedLevel++;var re=new M(J);re.beginTable(this.writer);for(var he=J.table.heights,oe=0,Ce=J.table.body.length;oe1&&(Oe._startingRowSpanY=j.writer.context().y)}),re.beginRow(oe,this.writer),"auto"===(me=q(he)?he(oe):k(he)?he[oe]:he)&&(me=void 0);var ze=this.writer.context().page,_e=this.processRow({marginX:J._margin?[J._margin[0],J._margin[2]]:[0,0],dontBreakRows:re.dontBreakRows,rowsWithoutPageBreak:re.rowsWithoutPageBreak,cells:J.table.body[oe],widths:J.table.widths,gaps:J._offsets.offsets,tableBody:J.table.body,tableNode:J,rowIndex:oe,height:me});if(W(J.positions,_e.positions),!_e.pageBreaks||0===_e.pageBreaks.length){var ve=this._findSameRowPageBreakByRowSpanData(J&&J._breaksBySpan||null,ze,oe);if(ve){var ye=this._getPageBreakListBySpan(J,ve.prevPage,oe);_e.pageBreaks.push(ye)}}re.endRow(oe,this.writer,_e.pageBreaks)}re.endTable(this.writer),this.nestedLevel--,0===this.nestedLevel&&this.writer.context().resetMarginXTopParent()},te.prototype.processLeaf=function(J){var j=this.buildNextLine(J);j&&(J.tocItem||J.id)&&(j._node=J);var re=j?j.getHeight():0,he=J.maxHeight||-1;if(j){var oe=z(J);oe&&(j.id=oe)}if(J._tocItemRef&&(j._pageNodeRef=J._tocItemRef),J._pageRef&&(j._pageNodeRef=J._pageRef._nodeRef),j&&j.inlines&&k(j.inlines))for(var Ce=0,me=j.inlines.length;Ce0&&(he.hasEnoughSpaceForInline(J._inlines[0],J._inlines.slice(1))||Ce);){var me=!1,ze=J._inlines.shift();if(Ce=!1,!ze.noWrap&&ze.text.length>1&&ze.width>he.getAvailableWidth()){var _e=re(ze.text,he.getAvailableWidth(),function(ve){return oe.widthOfString(ve,ze.font,ze.fontSize,ze.characterSpacing,ze.fontFeatures)});if(_eS;){if(R=+arguments[S++],_(R,1114111)!==R)throw b(R+" is not a valid code point");I[S]=R<65536?y(R):y(55296+((R-=65536)>>10),R%1024+56320)}return D(I,"")}})},65881:function(T,e,l){"use strict";var v;l(20731),T.exports=(v=l(48352),l(51270),v.mode.CTRGladman=function(){var h=v.lib.BlockCipherMode.extend();function f(y){if(255==(y>>24&255)){var M=y>>16&255,D=y>>8&255,x=255&y;255===M?(M=0,255===D?(D=0,255===x?x=0:++x):++D):++M,y=0,y+=M<<16,y+=D<<8,y+=x}else y+=16777216;return y}var b=h.Encryptor=h.extend({processBlock:function(M,D){var x=this._cipher,k=x.blockSize,Q=this._iv,I=this._counter;Q&&(I=this._counter=Q.slice(0),this._iv=void 0),function _(y){return 0===(y[0]=f(y[0]))&&(y[1]=f(y[1])),y}(I);var d=I.slice(0);x.encryptBlock(d,0);for(var S=0;S1?arguments[1]:void 0,1),S=this.length,R=b(I),z=f(R),q=0;if(z+d>S)throw M("Wrong length");for(;q>>7)^(j<<14|j>>>18)^j>>>3)+k[J-7]+((he<<15|he>>>17)^(he<<13|he>>>19)^he>>>10)+k[J-16]}var me=z&q^z&Z^q&Z,Ae=P+((G<<26|G>>>6)^(G<<21|G>>>11)^(G<<7|G>>>25))+(G&W^~G&te)+x[J]+k[J];P=te,te=W,W=G,G=H+Ae|0,H=Z,Z=q,q=z,z=Ae+(((z<<30|z>>>2)^(z<<19|z>>>13)^(z<<10|z>>>22))+me)|0}R[0]=R[0]+z|0,R[1]=R[1]+q|0,R[2]=R[2]+Z|0,R[3]=R[3]+H|0,R[4]=R[4]+G|0,R[5]=R[5]+W|0,R[6]=R[6]+te|0,R[7]=R[7]+P|0},_doFinalize:function(){var d=this._data,S=d.words,R=8*this._nDataBytes,z=8*d.sigBytes;return S[z>>>5]|=128<<24-z%32,S[14+(z+64>>>9<<4)]=h.floor(R/4294967296),S[15+(z+64>>>9<<4)]=R,d.sigBytes=4*S.length,this._process(),this._hash},clone:function(){var d=y.clone.call(this);return d._hash=this._hash.clone(),d}});f.SHA256=y._createHelper(Q),f.HmacSHA256=y._createHmacHelper(Q)}(Math),v.SHA256)},66723:function(T,e,l){var v=l(32010),h=l(2834),f=l(34984),_=l(94578),b=l(93975),y=l(49820),M=v.TypeError;T.exports=function(D,x){var k=D.exec;if(_(k)){var Q=h(k,D,x);return null!==Q&&f(Q),Q}if("RegExp"===b(D))return h(y,D,x);throw M("RegExp#exec called on incompatible receiver")}},66947:function(T,e,l){"use strict";var v,_;l(94845),T.exports=(v=l(48352),_=v.lib.WordArray,v.enc.Base64={stringify:function(x){var k=x.words,Q=x.sigBytes,I=this._map;x.clamp();for(var d=[],S=0;S>>2]>>>24-S%4*8&255)<<16|(k[S+1>>>2]>>>24-(S+1)%4*8&255)<<8|k[S+2>>>2]>>>24-(S+2)%4*8&255,H=0;H<4&&S+.75*H>>6*(3-H)&63));var G=I.charAt(64);if(G)for(;d.length%4;)d.push(G);return d.join("")},parse:function(x){var k=x.length,Q=this._map,I=this._reverseMap;if(!I){I=this._reverseMap=[];for(var d=0;d>>6-d%4*2;Q[I>>>2]|=(S|R)<<24-I%4*8,I++}return _.create(Q,I)}(x,k,I)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},v.enc.Base64)},67797:function(T,e,l){var h=l(12072)("span").classList,f=h&&h.constructor&&h.constructor.prototype;T.exports=f===Object.prototype?void 0:f},67858:function(T,e,l){l(44455)},67906:function(T,e,l){"use strict";var v=l(26626)(),f=l(22774)("Object.prototype.toString"),_=function(D){return!(v&&D&&"object"==typeof D&&Symbol.toStringTag in D)&&"[object Arguments]"===f(D)},b=function(D){return!!_(D)||null!==D&&"object"==typeof D&&"length"in D&&"number"==typeof D.length&&D.length>=0&&"[object Array]"!==f(D)&&"callee"in D&&"[object Function]"===f(D.callee)},y=function(){return _(arguments)}();_.isLegacyArguments=b,T.exports=y?_:b},67913:function(T,e,l){"use strict";var v=l(28651),h=l(26601),f=h(v("String.prototype.indexOf"));T.exports=function(b,y){var M=v(b,!!y);return"function"==typeof M&&f(b,".prototype.")>-1?h(M):M}},68067:function(T,e,l){"use strict";var vt,Qt,qe,ke,v=l(56475),h=l(63432),f=l(32010),_=l(38486),b=l(2834),y=l(5155),M=l(13711),D=l(15341),x=l(3840),k=l(15216),Q=l(51334),I=l(32631),d=l(94578),S=l(24517),R=l(2868),z=l(10447),q=l(80383),Z=l(46769),H=l(27754),G=l(6616).set,W=l(59804),te=l(28617),P=l(61144),J=l(56614),j=l(61900),re=l(70172),he=l(39599),oe=l(38688),Ce=l(3157),me=l(95053),ze=l(70091),_e=oe("species"),Ae="Promise",ve=re.get,ye=re.set,Oe=re.getterFor(Ae),ae=y&&y.prototype,Ee=y,Fe=ae,Ve=f.TypeError,mt=f.document,St=f.process,oi=J.f,He=oi,be=!!(mt&&mt.createEvent&&f.dispatchEvent),je=d(f.PromiseRejectionEvent),Ke="unhandledrejection",Dt=!1,it=he(Ae,function(){var ge=z(Ee),Se=ge!==String(Ee);if(!Se&&66===ze||h&&!Fe.finally)return!0;if(ze>=51&&/native code/.test(ge))return!1;var ct=new Ee(function(Kt){Kt(1)}),Zt=function(Kt){Kt(function(){},function(){})};return(ct.constructor={})[_e]=Zt,!(Dt=ct.then(function(){})instanceof Zt)||!Se&&Ce&&!je}),gt=it||!Z(function(ge){Ee.all(ge).catch(function(){})}),ai=function(ge){var Se;return!(!S(ge)||!d(Se=ge.then))&&Se},Rt=function(ge,Se){if(!ge.notified){ge.notified=!0;var ct=ge.reactions;W(function(){for(var Zt=ge.value,rt=1==ge.state,Kt=0;ct.length>Kt;){var Bt,Ut,Si,on=ct[Kt++],Ge=rt?on.ok:on.fail,_i=on.resolve,qt=on.reject,tt=on.domain;try{Ge?(rt||(2===ge.rejection&&Zi(ge),ge.rejection=1),!0===Ge?Bt=Zt:(tt&&tt.enter(),Bt=Ge(Zt),tt&&(tt.exit(),Si=!0)),Bt===on.promise?qt(Ve("Promise-chain cycle")):(Ut=ai(Bt))?b(Ut,Bt,_i,qt):_i(Bt)):qt(Zt)}catch(Ti){tt&&!Si&&tt.exit(),qt(Ti)}}ge.reactions=[],ge.notified=!1,Se&&!ge.rejection&&zt(ge)})}},Gt=function(ge,Se,ct){var Zt,rt;be?((Zt=mt.createEvent("Event")).promise=Se,Zt.reason=ct,Zt.initEvent(ge,!1,!0),f.dispatchEvent(Zt)):Zt={promise:Se,reason:ct},!je&&(rt=f["on"+ge])?rt(Zt):ge===Ke&&P("Unhandled promise rejection",ct)},zt=function(ge){b(G,f,function(){var rt,Se=ge.facade,ct=ge.value;if(mi(ge)&&(rt=j(function(){me?St.emit("unhandledRejection",ct,Se):Gt(Ke,Se,ct)}),ge.rejection=me||mi(ge)?2:1,rt.error))throw rt.value})},mi=function(ge){return 1!==ge.rejection&&!ge.parent},Zi=function(ge){b(G,f,function(){var Se=ge.facade;me?St.emit("rejectionHandled",Se):Gt("rejectionhandled",Se,ge.value)})},Qi=function(ge,Se,ct){return function(Zt){ge(Se,Zt,ct)}},Ht=function(ge,Se,ct){ge.done||(ge.done=!0,ct&&(ge=ct),ge.value=Se,ge.state=2,Rt(ge,!0))},dt=function(ge,Se,ct){if(!ge.done){ge.done=!0,ct&&(ge=ct);try{if(ge.facade===Se)throw Ve("Promise can't be resolved itself");var Zt=ai(Se);Zt?W(function(){var rt={done:!1};try{b(Zt,Se,Qi(dt,rt,ge),Qi(Ht,rt,ge))}catch(Kt){Ht(rt,Kt,ge)}}):(ge.value=Se,ge.state=1,Rt(ge,!1))}catch(rt){Ht({done:!1},rt,ge)}}};if(it&&(Ee=function(Se){R(this,Fe),I(Se),b(vt,this);var ct=ve(this);try{Se(Qi(dt,ct),Qi(Ht,ct))}catch(Zt){Ht(ct,Zt)}},(vt=function(Se){ye(this,{type:Ae,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=D(Fe=Ee.prototype,{then:function(Se,ct){var Zt=Oe(this),rt=Zt.reactions,Kt=oi(H(this,Ee));return Kt.ok=!d(Se)||Se,Kt.fail=d(ct)&&ct,Kt.domain=me?St.domain:void 0,Zt.parent=!0,rt[rt.length]=Kt,0!=Zt.state&&Rt(Zt,!1),Kt.promise},catch:function(ge){return this.then(void 0,ge)}}),Qt=function(){var ge=new vt,Se=ve(ge);this.promise=ge,this.resolve=Qi(dt,Se),this.reject=Qi(Ht,Se)},J.f=oi=function(ge){return ge===Ee||ge===qe?new Qt(ge):He(ge)},!h&&d(y)&&ae!==Object.prototype)){ke=ae.then,Dt||(M(ae,"then",function(Se,ct){var Zt=this;return new Ee(function(rt,Kt){b(ke,Zt,rt,Kt)}).then(Se,ct)},{unsafe:!0}),M(ae,"catch",Fe.catch,{unsafe:!0}));try{delete ae.constructor}catch{}x&&x(ae,Fe)}v({global:!0,wrap:!0,forced:it},{Promise:Ee}),k(Ee,Ae,!1,!0),Q(Ae),qe=_(Ae),v({target:Ae,stat:!0,forced:it},{reject:function(Se){var ct=oi(this);return b(ct.reject,void 0,Se),ct.promise}}),v({target:Ae,stat:!0,forced:h||it},{resolve:function(Se){return te(h&&this===qe?Ee:this,Se)}}),v({target:Ae,stat:!0,forced:gt},{all:function(Se){var ct=this,Zt=oi(ct),rt=Zt.resolve,Kt=Zt.reject,on=j(function(){var Ge=I(ct.resolve),_i=[],qt=0,tt=1;q(Se,function(Bt){var Ut=qt++,Si=!1;tt++,b(Ge,ct,Bt).then(function(Ti){Si||(Si=!0,_i[Ut]=Ti,--tt||rt(_i))},Kt)}),--tt||rt(_i)});return on.error&&Kt(on.value),Zt.promise},race:function(Se){var ct=this,Zt=oi(ct),rt=Zt.reject,Kt=j(function(){var on=I(ct.resolve);q(Se,function(Ge){b(on,ct,Ge).then(Zt.resolve,rt)})});return Kt.error&&rt(Kt.value),Zt.promise}})},68109:function(T,e,l){"use strict";var v=l(85567);if(v)try{v([],"length")}catch{v=null}T.exports=v},68130:function(T,e,l){"use strict";var v=l(83797).F.ERR_INVALID_OPT_VALUE;T.exports={getHighWaterMark:function f(_,b,y,M){var D=function h(_,b,y){return null!=_.highWaterMark?_.highWaterMark:b?_[y]:null}(b,M,y);if(null!=D){if(!isFinite(D)||Math.floor(D)!==D||D<0)throw new v(M?y:"highWaterMark",D);return Math.floor(D)}return _.objectMode?16:16384}}},68319:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),function(h){var f=v,_=f.lib,b=_.WordArray,y=_.Hasher,M=f.algo,D=[];!function(){for(var S=0;S<64;S++)D[S]=4294967296*h.abs(h.sin(S+1))|0}();var x=M.MD5=y.extend({_doReset:function(){this._hash=new b.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(R,z){for(var q=0;q<16;q++){var Z=z+q,H=R[Z];R[Z]=16711935&(H<<8|H>>>24)|4278255360&(H<<24|H>>>8)}var G=this._hash.words,W=R[z+0],te=R[z+1],P=R[z+2],J=R[z+3],j=R[z+4],re=R[z+5],he=R[z+6],oe=R[z+7],Ce=R[z+8],me=R[z+9],ze=R[z+10],_e=R[z+11],Ae=R[z+12],ve=R[z+13],ye=R[z+14],Oe=R[z+15],ae=G[0],Ee=G[1],Fe=G[2],Ve=G[3];ae=k(ae,Ee,Fe,Ve,W,7,D[0]),Ve=k(Ve,ae,Ee,Fe,te,12,D[1]),Fe=k(Fe,Ve,ae,Ee,P,17,D[2]),Ee=k(Ee,Fe,Ve,ae,J,22,D[3]),ae=k(ae,Ee,Fe,Ve,j,7,D[4]),Ve=k(Ve,ae,Ee,Fe,re,12,D[5]),Fe=k(Fe,Ve,ae,Ee,he,17,D[6]),Ee=k(Ee,Fe,Ve,ae,oe,22,D[7]),ae=k(ae,Ee,Fe,Ve,Ce,7,D[8]),Ve=k(Ve,ae,Ee,Fe,me,12,D[9]),Fe=k(Fe,Ve,ae,Ee,ze,17,D[10]),Ee=k(Ee,Fe,Ve,ae,_e,22,D[11]),ae=k(ae,Ee,Fe,Ve,Ae,7,D[12]),Ve=k(Ve,ae,Ee,Fe,ve,12,D[13]),Fe=k(Fe,Ve,ae,Ee,ye,17,D[14]),ae=Q(ae,Ee=k(Ee,Fe,Ve,ae,Oe,22,D[15]),Fe,Ve,te,5,D[16]),Ve=Q(Ve,ae,Ee,Fe,he,9,D[17]),Fe=Q(Fe,Ve,ae,Ee,_e,14,D[18]),Ee=Q(Ee,Fe,Ve,ae,W,20,D[19]),ae=Q(ae,Ee,Fe,Ve,re,5,D[20]),Ve=Q(Ve,ae,Ee,Fe,ze,9,D[21]),Fe=Q(Fe,Ve,ae,Ee,Oe,14,D[22]),Ee=Q(Ee,Fe,Ve,ae,j,20,D[23]),ae=Q(ae,Ee,Fe,Ve,me,5,D[24]),Ve=Q(Ve,ae,Ee,Fe,ye,9,D[25]),Fe=Q(Fe,Ve,ae,Ee,J,14,D[26]),Ee=Q(Ee,Fe,Ve,ae,Ce,20,D[27]),ae=Q(ae,Ee,Fe,Ve,ve,5,D[28]),Ve=Q(Ve,ae,Ee,Fe,P,9,D[29]),Fe=Q(Fe,Ve,ae,Ee,oe,14,D[30]),ae=I(ae,Ee=Q(Ee,Fe,Ve,ae,Ae,20,D[31]),Fe,Ve,re,4,D[32]),Ve=I(Ve,ae,Ee,Fe,Ce,11,D[33]),Fe=I(Fe,Ve,ae,Ee,_e,16,D[34]),Ee=I(Ee,Fe,Ve,ae,ye,23,D[35]),ae=I(ae,Ee,Fe,Ve,te,4,D[36]),Ve=I(Ve,ae,Ee,Fe,j,11,D[37]),Fe=I(Fe,Ve,ae,Ee,oe,16,D[38]),Ee=I(Ee,Fe,Ve,ae,ze,23,D[39]),ae=I(ae,Ee,Fe,Ve,ve,4,D[40]),Ve=I(Ve,ae,Ee,Fe,W,11,D[41]),Fe=I(Fe,Ve,ae,Ee,J,16,D[42]),Ee=I(Ee,Fe,Ve,ae,he,23,D[43]),ae=I(ae,Ee,Fe,Ve,me,4,D[44]),Ve=I(Ve,ae,Ee,Fe,Ae,11,D[45]),Fe=I(Fe,Ve,ae,Ee,Oe,16,D[46]),ae=d(ae,Ee=I(Ee,Fe,Ve,ae,P,23,D[47]),Fe,Ve,W,6,D[48]),Ve=d(Ve,ae,Ee,Fe,oe,10,D[49]),Fe=d(Fe,Ve,ae,Ee,ye,15,D[50]),Ee=d(Ee,Fe,Ve,ae,re,21,D[51]),ae=d(ae,Ee,Fe,Ve,Ae,6,D[52]),Ve=d(Ve,ae,Ee,Fe,J,10,D[53]),Fe=d(Fe,Ve,ae,Ee,ze,15,D[54]),Ee=d(Ee,Fe,Ve,ae,te,21,D[55]),ae=d(ae,Ee,Fe,Ve,Ce,6,D[56]),Ve=d(Ve,ae,Ee,Fe,Oe,10,D[57]),Fe=d(Fe,Ve,ae,Ee,he,15,D[58]),Ee=d(Ee,Fe,Ve,ae,ve,21,D[59]),ae=d(ae,Ee,Fe,Ve,j,6,D[60]),Ve=d(Ve,ae,Ee,Fe,_e,10,D[61]),Fe=d(Fe,Ve,ae,Ee,P,15,D[62]),Ee=d(Ee,Fe,Ve,ae,me,21,D[63]),G[0]=G[0]+ae|0,G[1]=G[1]+Ee|0,G[2]=G[2]+Fe|0,G[3]=G[3]+Ve|0},_doFinalize:function(){var R=this._data,z=R.words,q=8*this._nDataBytes,Z=8*R.sigBytes;z[Z>>>5]|=128<<24-Z%32;var H=h.floor(q/4294967296),G=q;z[15+(Z+64>>>9<<4)]=16711935&(H<<8|H>>>24)|4278255360&(H<<24|H>>>8),z[14+(Z+64>>>9<<4)]=16711935&(G<<8|G>>>24)|4278255360&(G<<24|G>>>8),R.sigBytes=4*(z.length+1),this._process();for(var W=this._hash,te=W.words,P=0;P<4;P++){var J=te[P];te[P]=16711935&(J<<8|J>>>24)|4278255360&(J<<24|J>>>8)}return W},clone:function(){var R=y.clone.call(this);return R._hash=this._hash.clone(),R}});function k(S,R,z,q,Z,H,G){var W=S+(R&z|~R&q)+Z+G;return(W<>>32-H)+R}function Q(S,R,z,q,Z,H,G){var W=S+(R&q|z&~q)+Z+G;return(W<>>32-H)+R}function I(S,R,z,q,Z,H,G){var W=S+(R^z^q)+Z+G;return(W<>>32-H)+R}function d(S,R,z,q,Z,H,G){var W=S+(z^(R|~q))+Z+G;return(W<>>32-H)+R}f.MD5=y._createHelper(x),f.HmacMD5=y._createHmacHelper(x)}(Math),v.MD5)},68332:function(T,e,l){"use strict";function v(D,x){var k=typeof Symbol<"u"&&D[Symbol.iterator]||D["@@iterator"];if(k)return(k=k.call(D)).next.bind(k);if(Array.isArray(D)||(k=function h(D,x){if(D){if("string"==typeof D)return f(D,x);var k={}.toString.call(D).slice(8,-1);return"Object"===k&&D.constructor&&(k=D.constructor.name),"Map"===k||"Set"===k?Array.from(D):"Arguments"===k||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(k)?f(D,x):void 0}}(D))||x&&D&&"number"==typeof D.length){k&&(D=k);var Q=0;return function(){return Q>=D.length?{done:!0}:{done:!1,value:D[Q++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(D,x){(null==x||x>D.length)&&(x=D.length);for(var k=0,Q=Array(x);k=3&&(I=Q),function M(D){return"[object Array]"===h.call(D)}(x)?function(x,k,Q){for(var I=0,d=x.length;I=S?x?"":void 0:(R=y(I,d))<55296||R>56319||d+1===S||(z=y(I,d+1))<56320||z>57343?x?b(I,d):R:x?M(I,d,d+2):z-56320+(R-55296<<10)+65536}};T.exports={codeAt:D(!1),charAt:D(!0)}},69548:function(T,e,l){var v=l(32010),h=l(20340),f=l(94578),_=l(43162),b=l(82194),y=l(68494),M=b("IE_PROTO"),D=v.Object,x=D.prototype;T.exports=y?D.getPrototypeOf:function(k){var Q=_(k);if(h(Q,M))return Q[M];var I=Q.constructor;return f(I)&&Q instanceof I?I.prototype:Q instanceof D?x:null}},69591:function(T,e,l){"use strict";var h,v=l(14598).Buffer;l(20731),l(14032),l(61726),l(57114),l(46467);try{h=l(54171)}catch{}var f=function(){function y(D){this.buffer=D,this.pos=0,this.length=this.buffer.length}var M=y.prototype;return M.readString=function(x,k){switch(void 0===k&&(k="ascii"),k){case"utf16le":case"ucs2":case"utf8":case"ascii":return this.buffer.toString(k,this.pos,this.pos+=x);case"utf16be":for(var Q=v.from(this.readBuffer(x)),I=0,d=Q.length-1;I0&&M[0]<4?1:+(M[0]+M[1])),!D&&h&&(!(M=h.match(/Edge\/(\d+)/))||M[1]>=74)&&(M=h.match(/Chrome\/(\d+)/))&&(D=+M[1]),T.exports=D},70095:function(T,e,l){l(56475)({target:"Number",stat:!0},{isFinite:l(59805)})},70098:function(T){"use strict";T.exports={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}},70172:function(T,e,l){var d,S,R,v=l(26168),h=l(32010),f=l(38347),_=l(24517),b=l(48914),y=l(20340),M=l(55480),D=l(82194),x=l(90682),k="Object already initialized",Q=h.TypeError;if(v||M.state){var Z=M.state||(M.state=new(0,h.WeakMap)),H=f(Z.get),G=f(Z.has),W=f(Z.set);d=function(P,J){if(G(Z,P))throw new Q(k);return J.facade=P,W(Z,P,J),J},S=function(P){return H(Z,P)||{}},R=function(P){return G(Z,P)}}else{var te=D("state");x[te]=!0,d=function(P,J){if(y(P,te))throw new Q(k);return J.facade=P,b(P,te,J),J},S=function(P){return y(P,te)?P[te]:{}},R=function(P){return y(P,te)}}T.exports={set:d,get:S,has:R,enforce:function(P){return R(P)?S(P):d(P,{})},getterFor:function(P){return function(J){var j;if(!_(J)||(j=S(J)).type!==P)throw Q("Incompatible receiver, "+P+" required");return j}}}},70176:function(T,e,l){var v=l(38347);T.exports=v({}.isPrototypeOf)},70573:function(T,e,l){var v=l(40715),h=l(32010);T.exports=/ipad|iphone|ipod/i.test(v)&&void 0!==h.Pebble},70770:function(T){"use strict";function e(l){this.maxWidth=l,this.leadingCut=0,this.trailingCut=0,this.inlineWidths=0,this.inlines=[]}e.prototype.getAscenderHeight=function(){var l=0;return this.inlines.forEach(function(v){l=Math.max(l,v.font.ascender/1e3*v.fontSize)}),l},e.prototype.hasEnoughSpaceForInline=function(l,v){if(v=v||[],0===this.inlines.length)return!0;if(this.newLineForced)return!1;var h=l.width,f=l.trailingCut||0;if(l.noNewLine)for(var _=0,b=v.length;_=128?285:0);var z=[[]];for(S=0;S<30;++S){for(var q=z[S],Z=[],H=0;H<=S;++H)Z.push(d[(H6},he=function(He,be){var je=-8&function(He){var be=e[He],je=16*He*He+128*He+64;return J(He)&&(je-=36),be[2].length&&(je-=25*be[2].length*be[2].length-10*be[2].length-55),je}(He),Ke=e[He];return je-8*Ke[0][be]*Ke[1][be]},oe=function(He,be){switch(be){case v:return He<10?10:He<27?12:14;case h:return He<10?9:He<27?11:13;case f:return He<10?8:16;case 8:return He<10?8:He<27?10:12}},Ce=function(He,be,je){var Ke=he(He,je)-4-oe(He,be);switch(be){case v:return 3*(Ke/10|0)+(Ke%10<4?0:Ke%10<7?1:2);case h:return 2*(Ke/11|0)+(Ke%11<6?0:1);case f:return Ke/8|0;case 8:return Ke/13|0}},me=function(He,be){switch(He){case v:return be.match(b)?be:null;case h:return be.match(y)?be.toUpperCase():null;case f:if("string"==typeof be){for(var je=[],Ke=0;Ke>6,128|63&_t):_t<65536?je.push(224|_t>>12,128|_t>>6&63,128|63&_t):je.push(240|_t>>18,128|_t>>12&63,128|_t>>6&63,128|63&_t)}return je}return be}},_e=function(He,be){for(var je=He.slice(0),Ke=He.length,_t=be.length,Nt=0;Nt<_t;++Nt)je.push(0);for(Nt=0;Nt=0)for(var et=0;et<_t;++et)je[Nt+et]^=I[(ut+be[et])%255]}return je.slice(Ke)},ve=function(He,be,je,Ke){for(var _t=He<=0;--Nt)_t>>Ke+Nt&1&&(_t^=je<>ut&1;return He},Fe=function(He){for(var Nt=function(gt){for(var ai=0,Rt=0;Rt=5&&(ai+=gt[Rt]-5+3);for(Rt=5;Rt=4*Gt||gt[Rt+1]>=4*Gt)&&(ai+=40)}return ai},ut=He.length,et=0,Xe=0,It=0;It=ut){for(_t.push(Nt|vt>>(Qt-=ut));Qt>=8;)_t.push(vt>>(Qt-=8)&255);Nt=0,ut=8}Qt>0&&(Nt|=(vt&(1<>3);ut=function(He,be,je){for(var Ke=[],_t=He.length/be|0,Nt=0,ut=be-He.length%be,et=0;et>zt&1,_t[ke+Gt][it+zt]=1};for(ut(0,0,9,9,[127,65,93,93,93,65,383,0,64]),ut(je-8,0,8,9,[256,127,65,93,93,93,65,127]),ut(0,je-8,9,8,[254,130,186,186,186,130,254,0,0]),Nt=9;Nt>qe++&1,_t[Nt][je-11+vt]=_t[je-11+vt][Nt]=1}return{matrix:Ke,reserved:_t}}(be),Xe=et.matrix,It=et.reserved;if(function(He,be,je){for(var Ke=He.length,_t=0,Nt=-1,ut=Ke-1;ut>=0;ut-=2){6==ut&&--ut;for(var et=Nt<0?Ke-1:0,Xe=0;Xeut-2;--It)be[et][It]||(He[et][It]=je[_t>>3]>>(7&~_t)&1,++_t);et+=Nt}Nt=-Nt}}(Xe,It,ut),_t<0){ae(Xe,It,0),Ee(Xe,0,Ke,0);var Dt=0,vt=Fe(Xe);for(ae(Xe,It,0),_t=1;_t<8;++_t){ae(Xe,It,_t),Ee(Xe,0,Ke,_t);var Qt=Fe(Xe);vt>Qt&&(vt=Qt,Dt=_t),ae(Xe,It,_t)}_t=Dt}return ae(Xe,It,_t),Ee(Xe,0,Ke,_t),Xe};function St(He,be){var je=[],Ke=be.background||"#fff",_t=be.foreground||"#000",Nt=be.padding||0,ut=function mt(He,be){var je={numeric:v,alphanumeric:h,octet:f},_t=(be=be||{}).version||-1,Nt={L:D,M:x,Q:k,H:Q}[(be.eccLevel||"L").toUpperCase()],ut=be.mode?je[be.mode.toLowerCase()]:-1,et="mask"in be?be.mask:-1;if(ut<0)ut="string"==typeof He?He.match(b)?v:He.match(M)?h:f:f;else if(ut!=v&&ut!=h&&ut!=f)throw"invalid or unsupported mode";if(null===(He=me(ut,He)))throw"invalid data format";if(Nt<0||Nt>3)throw"invalid ECC level";if(_t<0){for(_t=1;_t<=40&&!(He.length<=Ce(_t,ut,Nt));++_t);if(_t>40)throw"too large data for the Qr format"}else if(_t<1||_t>40)throw"invalid Qr version! should be between 1 and 40";if(-1!=et&&(et<0||et>8))throw"invalid mask";return Ve(He,_t,ut,Nt,et)}(He,be),et=ut.length,Xe=Math.floor(be.fit?be.fit/et:5),It=et*Xe+Xe*Nt*2,Dt=Xe*Nt;je.push({type:"rect",x:0,y:0,w:It,h:It,lineWidth:0,color:Ke});for(var vt=0;vt1?arguments[1]:void 0,M),k=D>2?arguments[2]:void 0,Q=void 0===k?M:h(k,M);Q>x;)y[x++]=b;return y}},72908:function(T,e,l){"use strict";var v=l(14598).Buffer,h=l(9964),f=l(80182),_=l(37468),b=l(22925),y=l(2269),M=l(81607);for(var D in M)e[D]=M[D];e.NONE=0,e.DEFLATE=1,e.INFLATE=2,e.GZIP=3,e.GUNZIP=4,e.DEFLATERAW=5,e.INFLATERAW=6,e.UNZIP=7;function Q(I){if("number"!=typeof I||Ie.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=I,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}Q.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,f(this.init_done,"close before init"),f(this.mode<=e.UNZIP),this.mode===e.DEFLATE||this.mode===e.GZIP||this.mode===e.DEFLATERAW?b.deflateEnd(this.strm):(this.mode===e.INFLATE||this.mode===e.GUNZIP||this.mode===e.INFLATERAW||this.mode===e.UNZIP)&&y.inflateEnd(this.strm),this.mode=e.NONE,this.dictionary=null)},Q.prototype.write=function(I,d,S,R,z,q,Z){return this._write(!0,I,d,S,R,z,q,Z)},Q.prototype.writeSync=function(I,d,S,R,z,q,Z){return this._write(!1,I,d,S,R,z,q,Z)},Q.prototype._write=function(I,d,S,R,z,q,Z,H){if(f.equal(arguments.length,8),f(this.init_done,"write before init"),f(this.mode!==e.NONE,"already finalized"),f.equal(!1,this.write_in_progress,"write already in progress"),f.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,f.equal(!1,void 0===d,"must provide flush value"),this.write_in_progress=!0,d!==e.Z_NO_FLUSH&&d!==e.Z_PARTIAL_FLUSH&&d!==e.Z_SYNC_FLUSH&&d!==e.Z_FULL_FLUSH&&d!==e.Z_FINISH&&d!==e.Z_BLOCK)throw new Error("Invalid flush value");if(null==S&&(S=v.alloc(0),z=0,R=0),this.strm.avail_in=z,this.strm.input=S,this.strm.next_in=R,this.strm.avail_out=H,this.strm.output=q,this.strm.next_out=Z,this.flush=d,!I)return this._process(),this._checkError()?this._afterSync():void 0;var G=this;return h.nextTick(function(){G._process(),G._after()}),this},Q.prototype._afterSync=function(){var I=this.strm.avail_out,d=this.strm.avail_in;return this.write_in_progress=!1,[d,I]},Q.prototype._process=function(){var I=null;switch(this.mode){case e.DEFLATE:case e.GZIP:case e.DEFLATERAW:this.err=b.deflate(this.strm,this.flush);break;case e.UNZIP:switch(this.strm.avail_in>0&&(I=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(null===I)break;if(31!==this.strm.input[I]){this.mode=e.INFLATE;break}if(this.gzip_id_bytes_read=1,I++,1===this.strm.avail_in)break;case 1:if(null===I)break;139===this.strm.input[I]?(this.gzip_id_bytes_read=2,this.mode=e.GUNZIP):this.mode=e.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case e.INFLATE:case e.GUNZIP:case e.INFLATERAW:for(this.err=y.inflate(this.strm,this.flush),this.err===e.Z_NEED_DICT&&this.dictionary&&(this.err=y.inflateSetDictionary(this.strm,this.dictionary),this.err===e.Z_OK?this.err=y.inflate(this.strm,this.flush):this.err===e.Z_DATA_ERROR&&(this.err=e.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===e.GUNZIP&&this.err===e.Z_STREAM_END&&0!==this.strm.next_in[0];)this.reset(),this.err=y.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},Q.prototype._checkError=function(){switch(this.err){case e.Z_OK:case e.Z_BUF_ERROR:if(0!==this.strm.avail_out&&this.flush===e.Z_FINISH)return this._error("unexpected end of file"),!1;break;case e.Z_STREAM_END:break;case e.Z_NEED_DICT:return this._error(null==this.dictionary?"Missing dictionary":"Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},Q.prototype._after=function(){if(this._checkError()){var I=this.strm.avail_out,d=this.strm.avail_in;this.write_in_progress=!1,this.callback(d,I),this.pending_close&&this.close()}},Q.prototype._error=function(I){this.strm.msg&&(I=this.strm.msg),this.onerror(I,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},Q.prototype.init=function(I,d,S,R,z){f(4===arguments.length||5===arguments.length,"init(windowBits, level, memLevel, strategy, [dictionary])"),f(I>=8&&I<=15,"invalid windowBits"),f(d>=-1&&d<=9,"invalid compression level"),f(S>=1&&S<=9,"invalid memlevel"),f(R===e.Z_FILTERED||R===e.Z_HUFFMAN_ONLY||R===e.Z_RLE||R===e.Z_FIXED||R===e.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(d,I,S,R,z),this._setDictionary()},Q.prototype.params=function(){throw new Error("deflateParams Not supported")},Q.prototype.reset=function(){this._reset(),this._setDictionary()},Q.prototype._init=function(I,d,S,R,z){switch(this.level=I,this.windowBits=d,this.memLevel=S,this.strategy=R,this.flush=e.Z_NO_FLUSH,this.err=e.Z_OK,(this.mode===e.GZIP||this.mode===e.GUNZIP)&&(this.windowBits+=16),this.mode===e.UNZIP&&(this.windowBits+=32),(this.mode===e.DEFLATERAW||this.mode===e.INFLATERAW)&&(this.windowBits=-1*this.windowBits),this.strm=new _,this.mode){case e.DEFLATE:case e.GZIP:case e.DEFLATERAW:this.err=b.deflateInit2(this.strm,this.level,e.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case e.INFLATE:case e.GUNZIP:case e.INFLATERAW:case e.UNZIP:this.err=y.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==e.Z_OK&&this._error("Init error"),this.dictionary=z,this.write_in_progress=!1,this.init_done=!0},Q.prototype._setDictionary=function(){if(null!=this.dictionary){switch(this.err=e.Z_OK,this.mode){case e.DEFLATE:case e.DEFLATERAW:this.err=b.deflateSetDictionary(this.strm,this.dictionary)}this.err!==e.Z_OK&&this._error("Failed to set dictionary")}},Q.prototype._reset=function(){switch(this.err=e.Z_OK,this.mode){case e.DEFLATE:case e.DEFLATERAW:case e.GZIP:this.err=b.deflateReset(this.strm);break;case e.INFLATE:case e.INFLATERAW:case e.GUNZIP:this.err=y.inflateReset(this.strm)}this.err!==e.Z_OK&&this._error("Failed to reset stream")},e.Zlib=Q},73036:function(T){"use strict";T.exports=Function.prototype.apply},73163:function(T,e,l){var v=l(38347);T.exports=v([].slice)},73257:function(T,e,l){"use strict";var v=typeof Symbol<"u"&&Symbol,h=l(12843);T.exports=function(){return"function"==typeof v&&"function"==typeof Symbol&&"symbol"==typeof v("foo")&&"symbol"==typeof Symbol("bar")&&h()}},73517:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(66947),l(68319),l(82747),l(51270),function(){var h=v,_=h.lib.BlockCipher,y=16,M=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],D=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],x={pbox:[],sbox:[]};function k(R,z){var W=R.sbox[0][z>>24&255]+R.sbox[1][z>>16&255];return(W^=R.sbox[2][z>>8&255])+R.sbox[3][255&z]}function Q(R,z,q){for(var G,Z=z,H=q,W=0;W=q&&(G=0);for(var te=0,P=0,J=0,j=0;j1;--W)G=Z^=R.pbox[W],Z=H=k(R,Z)^H,H=G;return G=Z,Z=H,H=G,{left:Z^=R.pbox[0],right:H^=R.pbox[1]}}(x,z[q],z[q+1]);z[q]=Z.left,z[q+1]=Z.right},blockSize:2,keySize:4,ivSize:2});h.Blowfish=_._createHelper(S)}(),v.Blowfish)},73663:function(T,e,l){"use strict";var v=l(38347),h=l(59754),_=v(l(92642)),b=h.aTypedArray;(0,h.exportTypedArrayMethod)("copyWithin",function(D,x){return _(b(this),D,x,arguments.length>2?arguments[2]:void 0)})},73751:function(T,e,l){var v=l(45314),h=l(72022);typeof h.pdfMake>"u"&&(h.pdfMake=v),T.exports=v},73844:function(T,e,l){"use strict";var v=l(56475),h=l(15567),f=l(32010),_=l(38347),b=l(20340),y=l(94578),M=l(70176),D=l(25096),x=l(95892).f,k=l(2675),Q=f.Symbol,I=Q&&Q.prototype;if(h&&y(Q)&&(!("description"in I)||void 0!==Q().description)){var d={},S=function(){var te=arguments.length<1||void 0===arguments[0]?void 0:D(arguments[0]),P=M(I,this)?new Q(te):void 0===te?Q():Q(te);return""===te&&(d[P]=!0),P};k(S,Q),S.prototype=I,I.constructor=S;var R="Symbol(test)"==String(Q("test")),z=_(I.toString),q=_(I.valueOf),Z=/^Symbol\((.*)\)[^)]+$/,H=_("".replace),G=_("".slice);x(I,"description",{configurable:!0,get:function(){var te=q(this),P=z(te);if(b(d,te))return"";var J=R?G(P,7,-1):H(P,Z,"$1");return""===J?void 0:J}}),v({global:!0,forced:!0},{Symbol:S})}},73948:function(T,e,l){"use strict";var v,b,M;l(14032),l(57114),T.exports=(v=l(48352),l(51270),b=v.lib.CipherParams,M=v.enc.Hex,v.format.Hex={stringify:function(Q){return Q.ciphertext.toString(M)},parse:function(Q){var I=M.parse(Q);return b.create({ciphertext:I})}},v.format.Hex)},74202:function(T,e,l){"use strict";var v=l(32010),h=l(58448),f=l(59754),_=l(47044),b=l(73163),y=v.Int8Array,M=f.aTypedArray,D=f.exportTypedArrayMethod,x=[].toLocaleString,k=!!y&&_(function(){x.call(new y(1))});D("toLocaleString",function(){return h(x,k?b(M(this)):M(this),b(arguments))},_(function(){return[1,2].toLocaleString()!=new y([1,2]).toLocaleString()})||!_(function(){y.prototype.toLocaleString.call([1,2])}))},74488:function(T){"use strict";T.exports=JSON.parse('[["0","\\u0000",127,"\u20ac"],["8140","\u4e02\u4e04\u4e05\u4e06\u4e0f\u4e12\u4e17\u4e1f\u4e20\u4e21\u4e23\u4e26\u4e29\u4e2e\u4e2f\u4e31\u4e33\u4e35\u4e37\u4e3c\u4e40\u4e41\u4e42\u4e44\u4e46\u4e4a\u4e51\u4e55\u4e57\u4e5a\u4e5b\u4e62\u4e63\u4e64\u4e65\u4e67\u4e68\u4e6a",5,"\u4e72\u4e74",9,"\u4e7f",6,"\u4e87\u4e8a"],["8180","\u4e90\u4e96\u4e97\u4e99\u4e9c\u4e9d\u4e9e\u4ea3\u4eaa\u4eaf\u4eb0\u4eb1\u4eb4\u4eb6\u4eb7\u4eb8\u4eb9\u4ebc\u4ebd\u4ebe\u4ec8\u4ecc\u4ecf\u4ed0\u4ed2\u4eda\u4edb\u4edc\u4ee0\u4ee2\u4ee6\u4ee7\u4ee9\u4eed\u4eee\u4eef\u4ef1\u4ef4\u4ef8\u4ef9\u4efa\u4efc\u4efe\u4f00\u4f02",6,"\u4f0b\u4f0c\u4f12",4,"\u4f1c\u4f1d\u4f21\u4f23\u4f28\u4f29\u4f2c\u4f2d\u4f2e\u4f31\u4f33\u4f35\u4f37\u4f39\u4f3b\u4f3e",4,"\u4f44\u4f45\u4f47",5,"\u4f52\u4f54\u4f56\u4f61\u4f62\u4f66\u4f68\u4f6a\u4f6b\u4f6d\u4f6e\u4f71\u4f72\u4f75\u4f77\u4f78\u4f79\u4f7a\u4f7d\u4f80\u4f81\u4f82\u4f85\u4f86\u4f87\u4f8a\u4f8c\u4f8e\u4f90\u4f92\u4f93\u4f95\u4f96\u4f98\u4f99\u4f9a\u4f9c\u4f9e\u4f9f\u4fa1\u4fa2"],["8240","\u4fa4\u4fab\u4fad\u4fb0",4,"\u4fb6",8,"\u4fc0\u4fc1\u4fc2\u4fc6\u4fc7\u4fc8\u4fc9\u4fcb\u4fcc\u4fcd\u4fd2",4,"\u4fd9\u4fdb\u4fe0\u4fe2\u4fe4\u4fe5\u4fe7\u4feb\u4fec\u4ff0\u4ff2\u4ff4\u4ff5\u4ff6\u4ff7\u4ff9\u4ffb\u4ffc\u4ffd\u4fff",11],["8280","\u500b\u500e\u5010\u5011\u5013\u5015\u5016\u5017\u501b\u501d\u501e\u5020\u5022\u5023\u5024\u5027\u502b\u502f",10,"\u503b\u503d\u503f\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504a\u504b\u504d\u5050",4,"\u5056\u5057\u5058\u5059\u505b\u505d",7,"\u5066",5,"\u506d",8,"\u5078\u5079\u507a\u507c\u507d\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508a\u508b\u508c\u508e",20,"\u50a4\u50a6\u50aa\u50ab\u50ad",4,"\u50b3",6,"\u50bc"],["8340","\u50bd",17,"\u50d0",5,"\u50d7\u50d8\u50d9\u50db",10,"\u50e8\u50e9\u50ea\u50eb\u50ef\u50f0\u50f1\u50f2\u50f4\u50f6",4,"\u50fc",9,"\u5108"],["8380","\u5109\u510a\u510c",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514a\u514c\u514e\u514f\u5150\u5152\u5153\u5157\u5158\u5159\u515b\u515d",4,"\u5163\u5164\u5166\u5167\u5169\u516a\u516f\u5172\u517a\u517e\u517f\u5183\u5184\u5186\u5187\u518a\u518b\u518e\u518f\u5190\u5191\u5193\u5194\u5198\u519a\u519d\u519e\u519f\u51a1\u51a3\u51a6",4,"\u51ad\u51ae\u51b4\u51b8\u51b9\u51ba\u51be\u51bf\u51c1\u51c2\u51c3\u51c5\u51c8\u51ca\u51cd\u51ce\u51d0\u51d2",5],["8440","\u51d8\u51d9\u51da\u51dc\u51de\u51df\u51e2\u51e3\u51e5",5,"\u51ec\u51ee\u51f1\u51f2\u51f4\u51f7\u51fe\u5204\u5205\u5209\u520b\u520c\u520f\u5210\u5213\u5214\u5215\u521c\u521e\u521f\u5221\u5222\u5223\u5225\u5226\u5227\u522a\u522c\u522f\u5231\u5232\u5234\u5235\u523c\u523e\u5244",5,"\u524b\u524e\u524f\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525a\u525b\u525d\u525f\u5260\u5262\u5263\u5264\u5266\u5268\u526b\u526c\u526d\u526e\u5270\u5271\u5273",9,"\u527e\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529c\u52a4\u52a5\u52a6\u52a7\u52ae\u52af\u52b0\u52b4",9,"\u52c0\u52c1\u52c2\u52c4\u52c5\u52c6\u52c8\u52ca\u52cc\u52cd\u52ce\u52cf\u52d1\u52d3\u52d4\u52d5\u52d7\u52d9",5,"\u52e0\u52e1\u52e2\u52e3\u52e5",10,"\u52f1",7,"\u52fb\u52fc\u52fd\u5301\u5302\u5303\u5304\u5307\u5309\u530a\u530b\u530c\u530e"],["8540","\u5311\u5312\u5313\u5314\u5318\u531b\u531c\u531e\u531f\u5322\u5324\u5325\u5327\u5328\u5329\u532b\u532c\u532d\u532f",9,"\u533c\u533d\u5340\u5342\u5344\u5346\u534b\u534c\u534d\u5350\u5354\u5358\u5359\u535b\u535d\u5365\u5368\u536a\u536c\u536d\u5372\u5376\u5379\u537b\u537c\u537d\u537e\u5380\u5381\u5383\u5387\u5388\u538a\u538e\u538f"],["8580","\u5390",4,"\u5396\u5397\u5399\u539b\u539c\u539e\u53a0\u53a1\u53a4\u53a7\u53aa\u53ab\u53ac\u53ad\u53af",6,"\u53b7\u53b8\u53b9\u53ba\u53bc\u53bd\u53be\u53c0\u53c3",4,"\u53ce\u53cf\u53d0\u53d2\u53d3\u53d5\u53da\u53dc\u53dd\u53de\u53e1\u53e2\u53e7\u53f4\u53fa\u53fe\u53ff\u5400\u5402\u5405\u5407\u540b\u5414\u5418\u5419\u541a\u541c\u5422\u5424\u5425\u542a\u5430\u5433\u5436\u5437\u543a\u543d\u543f\u5441\u5442\u5444\u5445\u5447\u5449\u544c\u544d\u544e\u544f\u5451\u545a\u545d",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547a\u547e\u547f\u5481\u5483\u5485\u5487\u5488\u5489\u548a\u548d\u5491\u5493\u5497\u5498\u549c\u549e\u549f\u54a0\u54a1"],["8640","\u54a2\u54a5\u54ae\u54b0\u54b2\u54b5\u54b6\u54b7\u54b9\u54ba\u54bc\u54be\u54c3\u54c5\u54ca\u54cb\u54d6\u54d8\u54db\u54e0",4,"\u54eb\u54ec\u54ef\u54f0\u54f1\u54f4",5,"\u54fb\u54fe\u5500\u5502\u5503\u5504\u5505\u5508\u550a",4,"\u5512\u5513\u5515",5,"\u551c\u551d\u551e\u551f\u5521\u5525\u5526"],["8680","\u5528\u5529\u552b\u552d\u5532\u5534\u5535\u5536\u5538\u5539\u553a\u553b\u553d\u5540\u5542\u5545\u5547\u5548\u554b",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555d\u555e\u555f\u5560\u5562\u5563\u5568\u5569\u556b\u556f",5,"\u5579\u557a\u557d\u557f\u5585\u5586\u558c\u558d\u558e\u5590\u5592\u5593\u5595\u5596\u5597\u559a\u559b\u559e\u55a0",6,"\u55a8",8,"\u55b2\u55b4\u55b6\u55b8\u55ba\u55bc\u55bf",4,"\u55c6\u55c7\u55c8\u55ca\u55cb\u55ce\u55cf\u55d0\u55d5\u55d7",4,"\u55de\u55e0\u55e2\u55e7\u55e9\u55ed\u55ee\u55f0\u55f1\u55f4\u55f6\u55f8",4,"\u55ff\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560a\u560b\u560d\u5610",7,"\u5619\u561a\u561c\u561d\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562a\u562b\u562e\u562f\u5630\u5633\u5635\u5637\u5638\u563a\u563c\u563d\u563e\u5640",11,"\u564f",4,"\u5655\u5656\u565a\u565b\u565d",4],["8780","\u5663\u5665\u5666\u5667\u566d\u566e\u566f\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567a\u567d",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56a4",10,"\u56b0",6,"\u56b8\u56b9\u56ba\u56bb\u56bd",12,"\u56cb",8,"\u56d5\u56d6\u56d8\u56d9\u56dc\u56e3\u56e5",5,"\u56ec\u56ee\u56ef\u56f2\u56f3\u56f6\u56f7\u56f8\u56fb\u56fc\u5700\u5701\u5702\u5705\u5707\u570b",6],["8840","\u5712",9,"\u571d\u571e\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572b\u5731\u5732\u5734",4,"\u573c\u573d\u573f\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574b\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576c\u576e\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577a\u577d\u577e\u577f\u5780"],["8880","\u5781\u5787\u5788\u5789\u578a\u578d",4,"\u5794",6,"\u579c\u579d\u579e\u579f\u57a5\u57a8\u57aa\u57ac\u57af\u57b0\u57b1\u57b3\u57b5\u57b6\u57b7\u57b9",8,"\u57c4",6,"\u57cc\u57cd\u57d0\u57d1\u57d3\u57d6\u57d7\u57db\u57dc\u57de\u57e1\u57e2\u57e3\u57e5",7,"\u57ee\u57f0\u57f1\u57f2\u57f3\u57f5\u57f6\u57f7\u57fb\u57fc\u57fe\u57ff\u5801\u5803\u5804\u5805\u5808\u5809\u580a\u580c\u580e\u580f\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581a\u581b\u581c\u581d\u581f\u5822\u5823\u5825",4,"\u582b",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583e",5,"\u5845",6,"\u584e\u584f\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585f",5,"\u5866",4,"\u586d",16,"\u587f\u5882\u5884\u5886\u5887\u5888\u588a\u588b\u588c"],["8980","\u588d",4,"\u5894",4,"\u589b\u589c\u589d\u58a0",7,"\u58aa",17,"\u58bd\u58be\u58bf\u58c0\u58c2\u58c3\u58c4\u58c6",10,"\u58d2\u58d3\u58d4\u58d6",13,"\u58e5",5,"\u58ed\u58ef\u58f1\u58f2\u58f4\u58f5\u58f7\u58f8\u58fa",7,"\u5903\u5905\u5906\u5908",4,"\u590e\u5910\u5911\u5912\u5913\u5917\u5918\u591b\u591d\u591e\u5920\u5921\u5922\u5923\u5926\u5928\u592c\u5930\u5932\u5933\u5935\u5936\u593b"],["8a40","\u593d\u593e\u593f\u5940\u5943\u5945\u5946\u594a\u594c\u594d\u5950\u5952\u5953\u5959\u595b",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597a\u597b\u597c\u597e\u597f\u5980\u5985\u5989\u598b\u598c\u598e\u598f\u5990\u5991\u5994\u5995\u5998\u599a\u599b\u599c\u599d\u599f\u59a0\u59a1\u59a2\u59a6"],["8a80","\u59a7\u59ac\u59ad\u59b0\u59b1\u59b3",5,"\u59ba\u59bc\u59bd\u59bf",6,"\u59c7\u59c8\u59c9\u59cc\u59cd\u59ce\u59cf\u59d5\u59d6\u59d9\u59db\u59de",4,"\u59e4\u59e6\u59e7\u59e9\u59ea\u59eb\u59ed",11,"\u59fa\u59fc\u59fd\u59fe\u5a00\u5a02\u5a0a\u5a0b\u5a0d\u5a0e\u5a0f\u5a10\u5a12\u5a14\u5a15\u5a16\u5a17\u5a19\u5a1a\u5a1b\u5a1d\u5a1e\u5a21\u5a22\u5a24\u5a26\u5a27\u5a28\u5a2a",6,"\u5a33\u5a35\u5a37",4,"\u5a3d\u5a3e\u5a3f\u5a41",4,"\u5a47\u5a48\u5a4b",9,"\u5a56\u5a57\u5a58\u5a59\u5a5b",5],["8b40","\u5a61\u5a63\u5a64\u5a65\u5a66\u5a68\u5a69\u5a6b",8,"\u5a78\u5a79\u5a7b\u5a7c\u5a7d\u5a7e\u5a80",17,"\u5a93",6,"\u5a9c",13,"\u5aab\u5aac"],["8b80","\u5aad",4,"\u5ab4\u5ab6\u5ab7\u5ab9",4,"\u5abf\u5ac0\u5ac3",5,"\u5aca\u5acb\u5acd",4,"\u5ad3\u5ad5\u5ad7\u5ad9\u5ada\u5adb\u5add\u5ade\u5adf\u5ae2\u5ae4\u5ae5\u5ae7\u5ae8\u5aea\u5aec",4,"\u5af2",22,"\u5b0a",11,"\u5b18",25,"\u5b33\u5b35\u5b36\u5b38",7,"\u5b41",6],["8c40","\u5b48",7,"\u5b52\u5b56\u5b5e\u5b60\u5b61\u5b67\u5b68\u5b6b\u5b6d\u5b6e\u5b6f\u5b72\u5b74\u5b76\u5b77\u5b78\u5b79\u5b7b\u5b7c\u5b7e\u5b7f\u5b82\u5b86\u5b8a\u5b8d\u5b8e\u5b90\u5b91\u5b92\u5b94\u5b96\u5b9f\u5ba7\u5ba8\u5ba9\u5bac\u5bad\u5bae\u5baf\u5bb1\u5bb2\u5bb7\u5bba\u5bbb\u5bbc\u5bc0\u5bc1\u5bc3\u5bc8\u5bc9\u5bca\u5bcb\u5bcd\u5bce\u5bcf"],["8c80","\u5bd1\u5bd4",8,"\u5be0\u5be2\u5be3\u5be6\u5be7\u5be9",4,"\u5bef\u5bf1",6,"\u5bfd\u5bfe\u5c00\u5c02\u5c03\u5c05\u5c07\u5c08\u5c0b\u5c0c\u5c0d\u5c0e\u5c10\u5c12\u5c13\u5c17\u5c19\u5c1b\u5c1e\u5c1f\u5c20\u5c21\u5c23\u5c26\u5c28\u5c29\u5c2a\u5c2b\u5c2d\u5c2e\u5c2f\u5c30\u5c32\u5c33\u5c35\u5c36\u5c37\u5c43\u5c44\u5c46\u5c47\u5c4c\u5c4d\u5c52\u5c53\u5c54\u5c56\u5c57\u5c58\u5c5a\u5c5b\u5c5c\u5c5d\u5c5f\u5c62\u5c64\u5c67",6,"\u5c70\u5c72",6,"\u5c7b\u5c7c\u5c7d\u5c7e\u5c80\u5c83",4,"\u5c89\u5c8a\u5c8b\u5c8e\u5c8f\u5c92\u5c93\u5c95\u5c9d",4,"\u5ca4",4],["8d40","\u5caa\u5cae\u5caf\u5cb0\u5cb2\u5cb4\u5cb6\u5cb9\u5cba\u5cbb\u5cbc\u5cbe\u5cc0\u5cc2\u5cc3\u5cc5",5,"\u5ccc",5,"\u5cd3",5,"\u5cda",6,"\u5ce2\u5ce3\u5ce7\u5ce9\u5ceb\u5cec\u5cee\u5cef\u5cf1",9,"\u5cfc",4],["8d80","\u5d01\u5d04\u5d05\u5d08",5,"\u5d0f",4,"\u5d15\u5d17\u5d18\u5d19\u5d1a\u5d1c\u5d1d\u5d1f",4,"\u5d25\u5d28\u5d2a\u5d2b\u5d2c\u5d2f",4,"\u5d35",7,"\u5d3f",7,"\u5d48\u5d49\u5d4d",10,"\u5d59\u5d5a\u5d5c\u5d5e",10,"\u5d6a\u5d6d\u5d6e\u5d70\u5d71\u5d72\u5d73\u5d75",12,"\u5d83",21,"\u5d9a\u5d9b\u5d9c\u5d9e\u5d9f\u5da0"],["8e40","\u5da1",21,"\u5db8",12,"\u5dc6",6,"\u5dce",12,"\u5ddc\u5ddf\u5de0\u5de3\u5de4\u5dea\u5dec\u5ded"],["8e80","\u5df0\u5df5\u5df6\u5df8",4,"\u5dff\u5e00\u5e04\u5e07\u5e09\u5e0a\u5e0b\u5e0d\u5e0e\u5e12\u5e13\u5e17\u5e1e",7,"\u5e28",4,"\u5e2f\u5e30\u5e32",4,"\u5e39\u5e3a\u5e3e\u5e3f\u5e40\u5e41\u5e43\u5e46",5,"\u5e4d",6,"\u5e56",4,"\u5e5c\u5e5d\u5e5f\u5e60\u5e63",14,"\u5e75\u5e77\u5e79\u5e7e\u5e81\u5e82\u5e83\u5e85\u5e88\u5e89\u5e8c\u5e8d\u5e8e\u5e92\u5e98\u5e9b\u5e9d\u5ea1\u5ea2\u5ea3\u5ea4\u5ea8",4,"\u5eae",4,"\u5eb4\u5eba\u5ebb\u5ebc\u5ebd\u5ebf",6],["8f40","\u5ec6\u5ec7\u5ec8\u5ecb",5,"\u5ed4\u5ed5\u5ed7\u5ed8\u5ed9\u5eda\u5edc",11,"\u5ee9\u5eeb",8,"\u5ef5\u5ef8\u5ef9\u5efb\u5efc\u5efd\u5f05\u5f06\u5f07\u5f09\u5f0c\u5f0d\u5f0e\u5f10\u5f12\u5f14\u5f16\u5f19\u5f1a\u5f1c\u5f1d\u5f1e\u5f21\u5f22\u5f23\u5f24"],["8f80","\u5f28\u5f2b\u5f2c\u5f2e\u5f30\u5f32",6,"\u5f3b\u5f3d\u5f3e\u5f3f\u5f41",14,"\u5f51\u5f54\u5f59\u5f5a\u5f5b\u5f5c\u5f5e\u5f5f\u5f60\u5f63\u5f65\u5f67\u5f68\u5f6b\u5f6e\u5f6f\u5f72\u5f74\u5f75\u5f76\u5f78\u5f7a\u5f7d\u5f7e\u5f7f\u5f83\u5f86\u5f8d\u5f8e\u5f8f\u5f91\u5f93\u5f94\u5f96\u5f9a\u5f9b\u5f9d\u5f9e\u5f9f\u5fa0\u5fa2",5,"\u5fa9\u5fab\u5fac\u5faf",5,"\u5fb6\u5fb8\u5fb9\u5fba\u5fbb\u5fbe",4,"\u5fc7\u5fc8\u5fca\u5fcb\u5fce\u5fd3\u5fd4\u5fd5\u5fda\u5fdb\u5fdc\u5fde\u5fdf\u5fe2\u5fe3\u5fe5\u5fe6\u5fe8\u5fe9\u5fec\u5fef\u5ff0\u5ff2\u5ff3\u5ff4\u5ff6\u5ff7\u5ff9\u5ffa\u5ffc\u6007"],["9040","\u6008\u6009\u600b\u600c\u6010\u6011\u6013\u6017\u6018\u601a\u601e\u601f\u6022\u6023\u6024\u602c\u602d\u602e\u6030",4,"\u6036",4,"\u603d\u603e\u6040\u6044",6,"\u604c\u604e\u604f\u6051\u6053\u6054\u6056\u6057\u6058\u605b\u605c\u605e\u605f\u6060\u6061\u6065\u6066\u606e\u6071\u6072\u6074\u6075\u6077\u607e\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608a\u608b\u608e\u608f\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609c\u609e\u60a1\u60a2\u60a4\u60a5\u60a7\u60a9\u60aa\u60ae\u60b0\u60b3\u60b5\u60b6\u60b7\u60b9\u60ba\u60bd",7,"\u60c7\u60c8\u60c9\u60cc",4,"\u60d2\u60d3\u60d4\u60d6\u60d7\u60d9\u60db\u60de\u60e1",4,"\u60ea\u60f1\u60f2\u60f5\u60f7\u60f8\u60fb",4,"\u6102\u6103\u6104\u6105\u6107\u610a\u610b\u610c\u6110",4,"\u6116\u6117\u6118\u6119\u611b\u611c\u611d\u611e\u6121\u6122\u6125\u6128\u6129\u612a\u612c",18,"\u6140",6],["9140","\u6147\u6149\u614b\u614d\u614f\u6150\u6152\u6153\u6154\u6156",6,"\u615e\u615f\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618c\u618d\u618f",4,"\u6195"],["9180","\u6196",6,"\u619e",8,"\u61aa\u61ab\u61ad",9,"\u61b8",5,"\u61bf\u61c0\u61c1\u61c3",4,"\u61c9\u61cc",4,"\u61d3\u61d5",16,"\u61e7",13,"\u61f6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621c\u621d\u621e\u6220\u6223\u6226\u6227\u6228\u6229\u622b\u622d\u622f\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624a"],["9240","\u624f\u6250\u6255\u6256\u6257\u6259\u625a\u625c",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627a\u627b\u627d\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628b",5,"\u6294\u6299\u629c\u629d\u629e\u62a3\u62a6\u62a7\u62a9\u62aa\u62ad\u62ae\u62af\u62b0\u62b2\u62b3\u62b4\u62b6\u62b7\u62b8\u62ba\u62be\u62c0\u62c1"],["9280","\u62c3\u62cb\u62cf\u62d1\u62d5\u62dd\u62de\u62e0\u62e1\u62e4\u62ea\u62eb\u62f0\u62f2\u62f5\u62f8\u62f9\u62fa\u62fb\u6300\u6303\u6304\u6305\u6306\u630a\u630b\u630c\u630d\u630f\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631c\u6326\u6327\u6329\u632c\u632d\u632e\u6330\u6331\u6333",5,"\u633b\u633c\u633e\u633f\u6340\u6341\u6344\u6347\u6348\u634a\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636a\u636b\u636c\u636f\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637c\u637d\u637e\u637f\u6381\u6383\u6384\u6385\u6386\u638b\u638d\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63a1\u63a4\u63a6\u63ab\u63af\u63b1\u63b2\u63b5\u63b6\u63b9\u63bb\u63bd\u63bf\u63c0"],["9340","\u63c1\u63c2\u63c3\u63c5\u63c7\u63c8\u63ca\u63cb\u63cc\u63d1\u63d3\u63d4\u63d5\u63d7",6,"\u63df\u63e2\u63e4",4,"\u63eb\u63ec\u63ee\u63ef\u63f0\u63f1\u63f3\u63f5\u63f7\u63f9\u63fa\u63fb\u63fc\u63fe\u6403\u6404\u6406",4,"\u640d\u640e\u6411\u6412\u6415",5,"\u641d\u641f\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642b\u642e",5,"\u6435",4,"\u643b\u643c\u643e\u6440\u6442\u6443\u6449\u644b",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645f",7,"\u6468\u646a\u646b\u646c\u646e",9,"\u647b",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649a\u649b\u649c\u649d\u649f",4,"\u64a5\u64a6\u64a7\u64a8\u64aa\u64ab\u64af\u64b1\u64b2\u64b3\u64b4\u64b6\u64b9\u64bb\u64bd\u64be\u64bf\u64c1\u64c3\u64c4\u64c6",6,"\u64cf\u64d1\u64d3\u64d4\u64d5\u64d6\u64d9\u64da"],["9440","\u64db\u64dc\u64dd\u64df\u64e0\u64e1\u64e3\u64e5\u64e7",24,"\u6501",7,"\u650a",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652c\u652d\u6530\u6531\u6532\u6533\u6537\u653a\u653c\u653d\u6540",4,"\u6546\u6547\u654a\u654b\u654d\u654e\u6550\u6552\u6553\u6554\u6557\u6558\u655a\u655c\u655f\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656a\u656d\u656e\u656f\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658a\u658d\u658e\u658f\u6592\u6594\u6595\u6596\u6598\u659a\u659d\u659e\u65a0\u65a2\u65a3\u65a6\u65a8\u65aa\u65ac\u65ae\u65b1",7,"\u65ba\u65bb\u65be\u65bf\u65c0\u65c2\u65c7\u65c8\u65c9\u65ca\u65cd\u65d0\u65d1\u65d3\u65d4\u65d5\u65d8",7,"\u65e1\u65e3\u65e4\u65ea\u65eb"],["9540","\u65f2\u65f3\u65f4\u65f5\u65f8\u65f9\u65fb",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660b\u660d\u6610\u6611\u6612\u6616\u6617\u6618\u661a\u661b\u661c\u661e\u6621\u6622\u6623\u6624\u6626\u6629\u662a\u662b\u662c\u662e\u6630\u6632\u6633\u6637",4,"\u663d\u663f\u6640\u6642\u6644",6,"\u664d\u664e\u6650\u6651\u6658"],["9580","\u6659\u665b\u665c\u665d\u665e\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667b\u667c\u667d\u667f\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668a\u668b\u668d\u668e\u668f\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669e",8,"\u66a9",4,"\u66af",4,"\u66b5\u66b6\u66b7\u66b8\u66ba\u66bb\u66bc\u66bd\u66bf",25,"\u66da\u66de",7,"\u66e7\u66e8\u66ea",5,"\u66f1\u66f5\u66f6\u66f8\u66fa\u66fb\u66fd\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670c\u670e\u670f\u6711\u6712\u6713\u6716\u6718\u6719\u671a\u671c\u671e\u6720",5,"\u6727\u6729\u672e\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673b\u673c\u673e\u673f\u6741\u6744\u6745\u6747\u674a\u674b\u674d\u6752\u6754\u6755\u6757",4,"\u675d\u6762\u6763\u6764\u6766\u6767\u676b\u676c\u676e\u6771\u6774\u6776"],["9680","\u6778\u6779\u677a\u677b\u677d\u6780\u6782\u6783\u6785\u6786\u6788\u678a\u678c\u678d\u678e\u678f\u6791\u6792\u6793\u6794\u6796\u6799\u679b\u679f\u67a0\u67a1\u67a4\u67a6\u67a9\u67ac\u67ae\u67b1\u67b2\u67b4\u67b9",7,"\u67c2\u67c5",9,"\u67d5\u67d6\u67d7\u67db\u67df\u67e1\u67e3\u67e4\u67e6\u67e7\u67e8\u67ea\u67eb\u67ed\u67ee\u67f2\u67f5",7,"\u67fe\u6801\u6802\u6803\u6804\u6806\u680d\u6810\u6812\u6814\u6815\u6818",4,"\u681e\u681f\u6820\u6822",6,"\u682b",6,"\u6834\u6835\u6836\u683a\u683b\u683f\u6847\u684b\u684d\u684f\u6852\u6856",5],["9740","\u685c\u685d\u685e\u685f\u686a\u686c",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68a3\u68a4\u68a5\u68a9\u68aa\u68ab\u68ac\u68ae\u68b1\u68b2\u68b4\u68b6\u68b7\u68b8"],["9780","\u68b9",6,"\u68c1\u68c3",5,"\u68ca\u68cc\u68ce\u68cf\u68d0\u68d1\u68d3\u68d4\u68d6\u68d7\u68d9\u68db",4,"\u68e1\u68e2\u68e4",9,"\u68ef\u68f2\u68f3\u68f4\u68f6\u68f7\u68f8\u68fb\u68fd\u68fe\u68ff\u6900\u6902\u6903\u6904\u6906",4,"\u690c\u690f\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692e\u692f\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693a\u693b\u693c\u693e\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695b\u695c\u695f"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696a\u696c\u696d\u696f\u6970\u6972",4,"\u697a\u697b\u697d\u697e\u697f\u6981\u6983\u6985\u698a\u698b\u698c\u698e",5,"\u6996\u6997\u6999\u699a\u699d",9,"\u69a9\u69aa\u69ac\u69ae\u69af\u69b0\u69b2\u69b3\u69b5\u69b6\u69b8\u69b9\u69ba\u69bc\u69bd"],["9880","\u69be\u69bf\u69c0\u69c2",7,"\u69cb\u69cd\u69cf\u69d1\u69d2\u69d3\u69d5",5,"\u69dc\u69dd\u69de\u69e1",11,"\u69ee\u69ef\u69f0\u69f1\u69f3",9,"\u69fe\u6a00",9,"\u6a0b",11,"\u6a19",5,"\u6a20\u6a22",5,"\u6a29\u6a2b\u6a2c\u6a2d\u6a2e\u6a30\u6a32\u6a33\u6a34\u6a36",6,"\u6a3f",4,"\u6a45\u6a46\u6a48",7,"\u6a51",6,"\u6a5a"],["9940","\u6a5c",4,"\u6a62\u6a63\u6a64\u6a66",10,"\u6a72",6,"\u6a7a\u6a7b\u6a7d\u6a7e\u6a7f\u6a81\u6a82\u6a83\u6a85",8,"\u6a8f\u6a92",4,"\u6a98",7,"\u6aa1",5],["9980","\u6aa7\u6aa8\u6aaa\u6aad",114,"\u6b25\u6b26\u6b28",6],["9a40","\u6b2f\u6b30\u6b31\u6b33\u6b34\u6b35\u6b36\u6b38\u6b3b\u6b3c\u6b3d\u6b3f\u6b40\u6b41\u6b42\u6b44\u6b45\u6b48\u6b4a\u6b4b\u6b4d",11,"\u6b5a",7,"\u6b68\u6b69\u6b6b",13,"\u6b7a\u6b7d\u6b7e\u6b7f\u6b80\u6b85\u6b88"],["9a80","\u6b8c\u6b8e\u6b8f\u6b90\u6b91\u6b94\u6b95\u6b97\u6b98\u6b99\u6b9c",4,"\u6ba2",7,"\u6bab",7,"\u6bb6\u6bb8",6,"\u6bc0\u6bc3\u6bc4\u6bc6",4,"\u6bcc\u6bce\u6bd0\u6bd1\u6bd8\u6bda\u6bdc",4,"\u6be2",7,"\u6bec\u6bed\u6bee\u6bf0\u6bf1\u6bf2\u6bf4\u6bf6\u6bf7\u6bf8\u6bfa\u6bfb\u6bfc\u6bfe",6,"\u6c08",4,"\u6c0e\u6c12\u6c17\u6c1c\u6c1d\u6c1e\u6c20\u6c23\u6c25\u6c2b\u6c2c\u6c2d\u6c31\u6c33\u6c36\u6c37\u6c39\u6c3a\u6c3b\u6c3c\u6c3e\u6c3f\u6c43\u6c44\u6c45\u6c48\u6c4b",4,"\u6c51\u6c52\u6c53\u6c56\u6c58"],["9b40","\u6c59\u6c5a\u6c62\u6c63\u6c65\u6c66\u6c67\u6c6b",4,"\u6c71\u6c73\u6c75\u6c77\u6c78\u6c7a\u6c7b\u6c7c\u6c7f\u6c80\u6c84\u6c87\u6c8a\u6c8b\u6c8d\u6c8e\u6c91\u6c92\u6c95\u6c96\u6c97\u6c98\u6c9a\u6c9c\u6c9d\u6c9e\u6ca0\u6ca2\u6ca8\u6cac\u6caf\u6cb0\u6cb4\u6cb5\u6cb6\u6cb7\u6cba\u6cc0\u6cc1\u6cc2\u6cc3\u6cc6\u6cc7\u6cc8\u6ccb\u6ccd\u6cce\u6ccf\u6cd1\u6cd2\u6cd8"],["9b80","\u6cd9\u6cda\u6cdc\u6cdd\u6cdf\u6ce4\u6ce6\u6ce7\u6ce9\u6cec\u6ced\u6cf2\u6cf4\u6cf9\u6cff\u6d00\u6d02\u6d03\u6d05\u6d06\u6d08\u6d09\u6d0a\u6d0d\u6d0f\u6d10\u6d11\u6d13\u6d14\u6d15\u6d16\u6d18\u6d1c\u6d1d\u6d1f",5,"\u6d26\u6d28\u6d29\u6d2c\u6d2d\u6d2f\u6d30\u6d34\u6d36\u6d37\u6d38\u6d3a\u6d3f\u6d40\u6d42\u6d44\u6d49\u6d4c\u6d50\u6d55\u6d56\u6d57\u6d58\u6d5b\u6d5d\u6d5f\u6d61\u6d62\u6d64\u6d65\u6d67\u6d68\u6d6b\u6d6c\u6d6d\u6d70\u6d71\u6d72\u6d73\u6d75\u6d76\u6d79\u6d7a\u6d7b\u6d7d",4,"\u6d83\u6d84\u6d86\u6d87\u6d8a\u6d8b\u6d8d\u6d8f\u6d90\u6d92\u6d96",4,"\u6d9c\u6da2\u6da5\u6dac\u6dad\u6db0\u6db1\u6db3\u6db4\u6db6\u6db7\u6db9",5,"\u6dc1\u6dc2\u6dc3\u6dc8\u6dc9\u6dca"],["9c40","\u6dcd\u6dce\u6dcf\u6dd0\u6dd2\u6dd3\u6dd4\u6dd5\u6dd7\u6dda\u6ddb\u6ddc\u6ddf\u6de2\u6de3\u6de5\u6de7\u6de8\u6de9\u6dea\u6ded\u6def\u6df0\u6df2\u6df4\u6df5\u6df6\u6df8\u6dfa\u6dfd",7,"\u6e06\u6e07\u6e08\u6e09\u6e0b\u6e0f\u6e12\u6e13\u6e15\u6e18\u6e19\u6e1b\u6e1c\u6e1e\u6e1f\u6e22\u6e26\u6e27\u6e28\u6e2a\u6e2c\u6e2e\u6e30\u6e31\u6e33\u6e35"],["9c80","\u6e36\u6e37\u6e39\u6e3b",7,"\u6e45",7,"\u6e4f\u6e50\u6e51\u6e52\u6e55\u6e57\u6e59\u6e5a\u6e5c\u6e5d\u6e5e\u6e60",10,"\u6e6c\u6e6d\u6e6f",14,"\u6e80\u6e81\u6e82\u6e84\u6e87\u6e88\u6e8a",4,"\u6e91",6,"\u6e99\u6e9a\u6e9b\u6e9d\u6e9e\u6ea0\u6ea1\u6ea3\u6ea4\u6ea6\u6ea8\u6ea9\u6eab\u6eac\u6ead\u6eae\u6eb0\u6eb3\u6eb5\u6eb8\u6eb9\u6ebc\u6ebe\u6ebf\u6ec0\u6ec3\u6ec4\u6ec5\u6ec6\u6ec8\u6ec9\u6eca\u6ecc\u6ecd\u6ece\u6ed0\u6ed2\u6ed6\u6ed8\u6ed9\u6edb\u6edc\u6edd\u6ee3\u6ee7\u6eea",5],["9d40","\u6ef0\u6ef1\u6ef2\u6ef3\u6ef5\u6ef6\u6ef7\u6ef8\u6efa",7,"\u6f03\u6f04\u6f05\u6f07\u6f08\u6f0a",4,"\u6f10\u6f11\u6f12\u6f16",9,"\u6f21\u6f22\u6f23\u6f25\u6f26\u6f27\u6f28\u6f2c\u6f2e\u6f30\u6f32\u6f34\u6f35\u6f37",6,"\u6f3f\u6f40\u6f41\u6f42"],["9d80","\u6f43\u6f44\u6f45\u6f48\u6f49\u6f4a\u6f4c\u6f4e",9,"\u6f59\u6f5a\u6f5b\u6f5d\u6f5f\u6f60\u6f61\u6f63\u6f64\u6f65\u6f67",5,"\u6f6f\u6f70\u6f71\u6f73\u6f75\u6f76\u6f77\u6f79\u6f7b\u6f7d",6,"\u6f85\u6f86\u6f87\u6f8a\u6f8b\u6f8f",12,"\u6f9d\u6f9e\u6f9f\u6fa0\u6fa2",4,"\u6fa8",10,"\u6fb4\u6fb5\u6fb7\u6fb8\u6fba",5,"\u6fc1\u6fc3",5,"\u6fca",6,"\u6fd3",10,"\u6fdf\u6fe2\u6fe3\u6fe4\u6fe5"],["9e40","\u6fe6",7,"\u6ff0",32,"\u7012",7,"\u701c",6,"\u7024",6],["9e80","\u702b",9,"\u7036\u7037\u7038\u703a",17,"\u704d\u704e\u7050",13,"\u705f",11,"\u706e\u7071\u7072\u7073\u7074\u7077\u7079\u707a\u707b\u707d\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708b\u708c\u708d\u708f\u7090\u7091\u7093\u7097\u7098\u709a\u709b\u709e",12,"\u70b0\u70b2\u70b4\u70b5\u70b6\u70ba\u70be\u70bf\u70c4\u70c5\u70c6\u70c7\u70c9\u70cb",12,"\u70da"],["9f40","\u70dc\u70dd\u70de\u70e0\u70e1\u70e2\u70e3\u70e5\u70ea\u70ee\u70f0",6,"\u70f8\u70fa\u70fb\u70fc\u70fe",10,"\u710b",4,"\u7111\u7112\u7114\u7117\u711b",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714b\u714d\u714f",12,"\u715d\u715f",4,"\u7165\u7169",4,"\u716f\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717b\u717c\u717e",5,"\u7185",4,"\u718b\u718c\u718d\u718e\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719a",4,"\u71a1",6,"\u71a9\u71aa\u71ab\u71ad",5,"\u71b4\u71b6\u71b7\u71b8\u71ba",8,"\u71c4",9,"\u71cf",4],["a040","\u71d6",9,"\u71e1\u71e2\u71e3\u71e4\u71e6\u71e8",5,"\u71ef",9,"\u71fa",11,"\u7207",19],["a080","\u721b\u721c\u721e",9,"\u7229\u722b\u722d\u722e\u722f\u7232\u7233\u7234\u723a\u723c\u723e\u7240",6,"\u7249\u724a\u724b\u724e\u724f\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725a\u725c\u725e\u7260\u7263\u7264\u7265\u7268\u726a\u726b\u726c\u726d\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727b\u727c\u727d\u7282\u7283\u7285",4,"\u728c\u728e\u7290\u7291\u7293",11,"\u72a0",11,"\u72ae\u72b1\u72b2\u72b3\u72b5\u72ba",6,"\u72c5\u72c6\u72c7\u72c9\u72ca\u72cb\u72cc\u72cf\u72d1\u72d3\u72d4\u72d5\u72d6\u72d8\u72da\u72db"],["a1a1","\u3000\u3001\u3002\xb7\u02c9\u02c7\xa8\u3003\u3005\u2014\uff5e\u2016\u2026\u2018\u2019\u201c\u201d\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xb1\xd7\xf7\u2236\u2227\u2228\u2211\u220f\u222a\u2229\u2208\u2237\u221a\u22a5\u2225\u2220\u2312\u2299\u222b\u222e\u2261\u224c\u2248\u223d\u221d\u2260\u226e\u226f\u2264\u2265\u221e\u2235\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uff04\xa4\uffe0\uffe1\u2030\xa7\u2116\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u203b\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uff01\uff02\uff03\uffe5\uff05",88,"\uffe3"],["a4a1","\u3041",82],["a5a1","\u30a1",85],["a6a1","\u0391",16,"\u03a3",6],["a6c1","\u03b1",16,"\u03c3",6],["a6e0","\ufe35\ufe36\ufe39\ufe3a\ufe3f\ufe40\ufe3d\ufe3e\ufe41\ufe42\ufe43\ufe44"],["a6ee","\ufe3b\ufe3c\ufe37\ufe38\ufe31"],["a6f4","\ufe33\ufe34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02ca\u02cb\u02d9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221f\u2223\u2252\u2266\u2267\u22bf\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25bc\u25bd\u25e2\u25e3\u25e4\u25e5\u2609\u2295\u3012\u301d\u301e"],["a8a1","\u0101\xe1\u01ce\xe0\u0113\xe9\u011b\xe8\u012b\xed\u01d0\xec\u014d\xf3\u01d2\xf2\u016b\xfa\u01d4\xf9\u01d6\u01d8\u01da\u01dc\xfc\xea\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32a3\u338e\u338f\u339c\u339d\u339e\u33a1\u33c4\u33ce\u33d1\u33d2\u33d5\ufe30\uffe2\uffe4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30fc\u309b\u309c\u30fd\u30fe\u3006\u309d\u309e\ufe49",9,"\ufe54\ufe55\ufe56\ufe57\ufe59",8],["a980","\ufe62",4,"\ufe68\ufe69\ufe6a\ufe6b"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72dc\u72dd\u72df\u72e2",5,"\u72ea\u72eb\u72f5\u72f6\u72f9\u72fd\u72fe\u72ff\u7300\u7302\u7304",5,"\u730b\u730c\u730d\u730f\u7310\u7311\u7312\u7314\u7318\u7319\u731a\u731f\u7320\u7323\u7324\u7326\u7327\u7328\u732d\u732f\u7330\u7332\u7333\u7335\u7336\u733a\u733b\u733c\u733d\u7340",8],["aa80","\u7349\u734a\u734b\u734c\u734e\u734f\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736e\u7370\u7371"],["ab40","\u7372",11,"\u737f",4,"\u7385\u7386\u7388\u738a\u738c\u738d\u738f\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739a\u739c\u739d\u739e\u73a0\u73a1\u73a3",5,"\u73aa\u73ac\u73ad\u73b1\u73b4\u73b5\u73b6\u73b8\u73b9\u73bc\u73bd\u73be\u73bf\u73c1\u73c3",4],["ab80","\u73cb\u73cc\u73ce\u73d2",6,"\u73da\u73db\u73dc\u73dd\u73df\u73e1\u73e2\u73e3\u73e4\u73e6\u73e8\u73ea\u73eb\u73ec\u73ee\u73ef\u73f0\u73f1\u73f3",4],["ac40","\u73f8",10,"\u7404\u7407\u7408\u740b\u740c\u740d\u740e\u7411",8,"\u741c",5,"\u7423\u7424\u7427\u7429\u742b\u742d\u742f\u7431\u7432\u7437",4,"\u743d\u743e\u743f\u7440\u7442",11],["ac80","\u744e",6,"\u7456\u7458\u745d\u7460",12,"\u746e\u746f\u7471",4,"\u7478\u7479\u747a"],["ad40","\u747b\u747c\u747d\u747f\u7482\u7484\u7485\u7486\u7488\u7489\u748a\u748c\u748d\u748f\u7491",10,"\u749d\u749f",7,"\u74aa",15,"\u74bb",12],["ad80","\u74c8",9,"\u74d3",8,"\u74dd\u74df\u74e1\u74e5\u74e7",6,"\u74f0\u74f1\u74f2"],["ae40","\u74f3\u74f5\u74f8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750e\u7510\u7512\u7514\u7515\u7516\u7517\u751b\u751d\u751e\u7520",4,"\u7526\u7527\u752a\u752e\u7534\u7536\u7539\u753c\u753d\u753f\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754a\u754d\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755d",7,"\u7567\u7568\u7569\u756b",6,"\u7573\u7575\u7576\u7577\u757a",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758a\u758c\u758d\u758e\u7590\u7593\u7595\u7598\u759b\u759c\u759e\u75a2\u75a6",4,"\u75ad\u75b6\u75b7\u75ba\u75bb\u75bf\u75c0\u75c1\u75c6\u75cb\u75cc\u75ce\u75cf\u75d0\u75d1\u75d3\u75d7\u75d9\u75da\u75dc\u75dd\u75df\u75e0\u75e1\u75e5\u75e9\u75ec\u75ed\u75ee\u75ef\u75f2\u75f3\u75f5\u75f6\u75f7\u75f8\u75fa\u75fb\u75fd\u75fe\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760b\u760d\u760e\u760f\u7611\u7612\u7613\u7614\u7616\u761a\u761c\u761d\u761e\u7621\u7623\u7627\u7628\u762c\u762e\u762f\u7631\u7632\u7636\u7637\u7639\u763a\u763b\u763d\u7641\u7642\u7644"],["b040","\u7645",6,"\u764e",5,"\u7655\u7657",4,"\u765d\u765f\u7660\u7661\u7662\u7664",6,"\u766c\u766d\u766e\u7670",7,"\u7679\u767a\u767c\u767f\u7680\u7681\u7683\u7685\u7689\u768a\u768c\u768d\u768f\u7690\u7692\u7694\u7695\u7697\u7698\u769a\u769b"],["b080","\u769c",7,"\u76a5",8,"\u76af\u76b0\u76b3\u76b5",9,"\u76c0\u76c1\u76c3\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u80ae\u6602\u76ce\u51f9\u6556\u71ac\u7ff1\u8884\u50b2\u5965\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u575d\u9738\u7f62\u7238\u767d\u67cf\u767e\u6446\u4f70\u8d25\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9881\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u529e\u7eca\u90a6\u5e2e\u6886\u699c\u8180\u7ed1\u68d2\u78c5\u868c\u9551\u508d\u8c24\u82de\u80de\u5305\u8912\u5265"],["b140","\u76c4\u76c7\u76c9\u76cb\u76cc\u76d3\u76d5\u76d9\u76da\u76dc\u76dd\u76de\u76e0",4,"\u76e6",7,"\u76f0\u76f3\u76f5\u76f6\u76f7\u76fa\u76fb\u76fd\u76ff\u7700\u7702\u7703\u7705\u7706\u770a\u770c\u770e",10,"\u771b\u771c\u771d\u771e\u7721\u7723\u7724\u7725\u7727\u772a\u772b"],["b180","\u772c\u772e\u7730",4,"\u7739\u773b\u773d\u773e\u773f\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775c\u8584\u96f9\u4fdd\u5821\u9971\u5b9d\u62b1\u62a5\u66b4\u8c79\u9c8d\u7206\u676f\u7891\u60b2\u5351\u5317\u8f88\u80cc\u8d1d\u94a1\u500d\u72c8\u5907\u60eb\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7ef7\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b14\u5f7c\u78a7\u84d6\u853d\u6bd5\u6bd9\u6bd6\u5e01\u5e87\u75f9\u95ed\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u8fb9\u7f16\u8d2c\u6241\u4fbf\u53d8\u535e\u8fa8\u8fa9\u8fab\u904d\u6807\u5f6a\u8198\u8868\u9cd6\u618b\u522b\u762a\u5f6c\u658c\u6fd2\u6ee8\u5bbe\u6448\u5175\u51b0\u67c4\u4e19\u79c9\u997c\u70b3"],["b240","\u775d\u775e\u775f\u7760\u7764\u7767\u7769\u776a\u776d",11,"\u777a\u777b\u777c\u7781\u7782\u7783\u7786",5,"\u778f\u7790\u7793",11,"\u77a1\u77a3\u77a4\u77a6\u77a8\u77ab\u77ad\u77ae\u77af\u77b1\u77b2\u77b4\u77b6",4],["b280","\u77bc\u77be\u77c0",12,"\u77ce",8,"\u77d8\u77d9\u77da\u77dd",4,"\u77e4\u75c5\u5e76\u73bb\u83e0\u64ad\u62e8\u94b5\u6ce2\u535a\u52c3\u640f\u94c2\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u9a73\u6355\u535c\u54fa\u8865\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8d22\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c2\u8695\u6b8b\u60ed\u60e8\u707f\u82cd\u8231\u4ed3\u6ca7\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5395\u7b56\u4fa7\u518c\u6d4b\u5c42\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8be7\u62c6\u67f4\u8c7a\u6400\u63ba\u8749\u998b\u8c17\u7f20\u94f2\u4ea7\u9610\u98a4\u660c\u7316"],["b340","\u77e6\u77e8\u77ea\u77ef\u77f0\u77f1\u77f2\u77f4\u77f5\u77f7\u77f9\u77fa\u77fb\u77fc\u7803",5,"\u780a\u780b\u780e\u780f\u7810\u7813\u7815\u7819\u781b\u781e\u7820\u7821\u7822\u7824\u7828\u782a\u782b\u782e\u782f\u7831\u7832\u7833\u7835\u7836\u783d\u783f\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784a\u784b\u784d\u784f\u7851\u7853\u7854\u7858\u7859\u785a"],["b380","\u785b\u785c\u785e",11,"\u786f",7,"\u7878\u7879\u787a\u787b\u787d",6,"\u573a\u5c1d\u5e38\u957f\u507f\u80a0\u5382\u655e\u7545\u5531\u5021\u8d85\u6284\u949e\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8f66\u626f\u64a4\u63a3\u5f7b\u6f88\u90f4\u81e3\u8fb0\u5c18\u6668\u5ff1\u6c89\u9648\u8d81\u886c\u6491\u79f0\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u60e9\u6f84\u8bda\u627f\u901e\u9a8b\u79e4\u5403\u75f4\u6301\u5319\u6c60\u8fdf\u5f1b\u9a70\u803b\u9f7f\u4f88\u5c3a\u8d64\u7fc5\u65a5\u70bd\u5145\u51b2\u866b\u5d07\u5ba0\u62bd\u916c\u7574\u8e0c\u7a20\u6101\u7b79\u4ec7\u7ef8\u7785\u4e11\u81ed\u521d\u51fa\u6a71\u53a8\u8e87\u9504\u96cf\u6ec1\u9664\u695a"],["b440","\u7884\u7885\u7886\u7888\u788a\u788b\u788f\u7890\u7892\u7894\u7895\u7896\u7899\u789d\u789e\u78a0\u78a2\u78a4\u78a6\u78a8",7,"\u78b5\u78b6\u78b7\u78b8\u78ba\u78bb\u78bc\u78bd\u78bf\u78c0\u78c2\u78c3\u78c4\u78c6\u78c7\u78c8\u78cc\u78cd\u78ce\u78cf\u78d1\u78d2\u78d3\u78d6\u78d7\u78d8\u78da",9],["b480","\u78e4\u78e5\u78e6\u78e7\u78e9\u78ea\u78eb\u78ed",4,"\u78f3\u78f5\u78f6\u78f8\u78f9\u78fb",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50a8\u77d7\u6410\u89e6\u5904\u63e3\u5ddd\u7a7f\u693d\u4f20\u8239\u5598\u4e32\u75ae\u7a97\u5e62\u5e8a\u95ef\u521b\u5439\u708a\u6376\u9524\u5782\u6625\u693f\u9187\u5507\u6df3\u7eaf\u8822\u6233\u7ef0\u75b5\u8328\u78c1\u96cc\u8f9e\u6148\u74f7\u8bcd\u6b64\u523a\u8d50\u6b21\u806a\u8471\u56f1\u5306\u4ece\u4e1b\u51d1\u7c97\u918b\u7c07\u4fc3\u8e7f\u7be1\u7a9c\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u9519\u642d\u8fbe\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e26\u6b86\u4ee3\u8d37\u888b\u5f85\u902e"],["b540","\u790d",5,"\u7914",9,"\u791f",4,"\u7925",14,"\u7935",4,"\u793d\u793f\u7942\u7943\u7944\u7945\u7947\u794a",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796a\u796b\u796c\u796e\u7970",6,"\u7979\u797b",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798b\u798c\u798d\u798e\u7990\u7991\u7992\u6020\u803d\u62c5\u4e39\u5355\u90f8\u63b8\u80c6\u65e6\u6c2e\u4f46\u60ee\u6de1\u8bde\u5f39\u86cb\u5f53\u6321\u515a\u8361\u6863\u5200\u6363\u8e48\u5012\u5c9b\u7977\u5bfc\u5230\u7a3b\u60bc\u9053\u76d7\u5fb7\u5f97\u7684\u8e6c\u706f\u767b\u7b49\u77aa\u51f3\u9093\u5824\u4f4e\u6ef4\u8fea\u654c\u7b1b\u72c4\u6da4\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u9012\u7f14\u98a0\u6382\u6ec7\u7898\u70b9\u5178\u975b\u57ab\u7535\u4f43\u7538\u5e97\u60e6\u5960\u6dc0\u6bbf\u7889\u53fc\u96d5\u51cb\u5201\u6389\u540a\u9493\u8c03\u8dcc\u7239\u789f\u8776\u8fed\u8c0d\u53e0"],["b640","\u7993",6,"\u799b",11,"\u79a8",10,"\u79b4",4,"\u79bc\u79bf\u79c2\u79c4\u79c5\u79c7\u79c8\u79ca\u79cc\u79ce\u79cf\u79d0\u79d3\u79d4\u79d6\u79d7\u79d9",5,"\u79e0\u79e1\u79e2\u79e5\u79e8\u79ea"],["b680","\u79ec\u79ee\u79f1",6,"\u79f9\u79fa\u79fc\u79fe\u79ff\u7a01\u7a04\u7a05\u7a07\u7a08\u7a09\u7a0a\u7a0c\u7a0f",4,"\u7a15\u7a16\u7a18\u7a19\u7a1b\u7a1c\u4e01\u76ef\u53ee\u9489\u9876\u9f0e\u952d\u5b9a\u8ba2\u4e22\u4e1c\u51ac\u8463\u61c2\u52a8\u680b\u4f97\u606b\u51bb\u6d1e\u515c\u6296\u6597\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u728a\u72ec\u8bfb\u5835\u7779\u8d4c\u675c\u9540\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u953b\u6bb5\u65ad\u7f0e\u5806\u5151\u961f\u5bf9\u58a9\u5428\u8e72\u6566\u987f\u56e4\u949d\u76fe\u9041\u6387\u54c6\u591a\u593a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u5815\u86fe\u5ce8\u9e45\u4fc4\u989d\u8bb9\u5a25\u6076\u5384\u627c\u904f\u9102\u997f\u6069\u800c\u513f\u8033\u5c14\u9975\u6d31\u4e8c"],["b740","\u7a1d\u7a1f\u7a21\u7a22\u7a24",14,"\u7a34\u7a35\u7a36\u7a38\u7a3a\u7a3e\u7a40",5,"\u7a47",9,"\u7a52",4,"\u7a58",16],["b780","\u7a69",6,"\u7a71\u7a72\u7a73\u7a75\u7a7b\u7a7c\u7a7d\u7a7e\u7a82\u7a85\u7a87\u7a89\u7a8a\u7a8b\u7a8c\u7a8e\u7a8f\u7a90\u7a93\u7a94\u7a99\u7a9a\u7a9b\u7a9e\u7aa1\u7aa2\u8d30\u53d1\u7f5a\u7b4f\u4f10\u4e4f\u9600\u6cd5\u73d0\u85e9\u5e06\u756a\u7ffb\u6a0a\u77fe\u9492\u7e41\u51e1\u70e6\u53cd\u8fd4\u8303\u8d29\u72af\u996d\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8bbf\u7eba\u653e\u83f2\u975e\u5561\u98de\u80a5\u532a\u8bfd\u5420\u80ba\u5e9f\u6cb8\u8d39\u82ac\u915a\u5429\u6c1b\u5206\u7eb7\u575f\u711a\u6c7e\u7c89\u594b\u4efd\u5fff\u6124\u7caa\u4e30\u5c01\u67ab\u8702\u5cf0\u950b\u98ce\u75af\u70fd\u9022\u51af\u7f1d\u8bbd\u5949\u51e4\u4f5b\u5426\u592b\u6577\u80a4\u5b75\u6276\u62c2\u8f90\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d"],["b840","\u7aa3\u7aa4\u7aa7\u7aa9\u7aaa\u7aab\u7aae",4,"\u7ab4",10,"\u7ac0",10,"\u7acc",9,"\u7ad7\u7ad8\u7ada\u7adb\u7adc\u7add\u7ae1\u7ae2\u7ae4\u7ae7",5,"\u7aee\u7af0\u7af1\u7af2\u7af3"],["b880","\u7af4",4,"\u7afb\u7afc\u7afe\u7b00\u7b01\u7b02\u7b05\u7b07\u7b09\u7b0c\u7b0d\u7b0e\u7b10\u7b12\u7b13\u7b16\u7b17\u7b18\u7b1a\u7b1c\u7b1d\u7b1f\u7b21\u7b22\u7b23\u7b27\u7b29\u7b2d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u629a\u8f85\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8d4b\u590d\u5085\u4ed8\u961c\u7236\u8179\u8d1f\u5bcc\u8ba3\u9644\u5987\u7f1a\u5490\u5676\u560e\u8be5\u6539\u6982\u9499\u76d6\u6e89\u5e72\u7518\u6746\u67d1\u7aff\u809d\u8d76\u611f\u79c6\u6562\u8d63\u5188\u521a\u94a2\u7f38\u809b\u7eb2\u5c97\u6e2f\u6760\u7bd9\u768b\u9ad8\u818f\u7f94\u7cd5\u641e\u9550\u7a3f\u544a\u54e5\u6b4c\u6401\u6208\u9e3d\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u9601\u9694\u94ec\u4e2a\u5404\u7ed9\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9"],["b940","\u7b2f\u7b30\u7b32\u7b34\u7b35\u7b36\u7b37\u7b39\u7b3b\u7b3d\u7b3f",5,"\u7b46\u7b48\u7b4a\u7b4d\u7b4e\u7b53\u7b55\u7b57\u7b59\u7b5c\u7b5e\u7b5f\u7b61\u7b63",10,"\u7b6f\u7b70\u7b73\u7b74\u7b76\u7b78\u7b7a\u7b7c\u7b7d\u7b7f\u7b81\u7b82\u7b83\u7b84\u7b86",6,"\u7b8e\u7b8f"],["b980","\u7b91\u7b92\u7b93\u7b96\u7b98\u7b99\u7b9a\u7b9b\u7b9e\u7b9f\u7ba0\u7ba3\u7ba4\u7ba5\u7bae\u7baf\u7bb0\u7bb2\u7bb3\u7bb5\u7bb6\u7bb7\u7bb9",7,"\u7bc2\u7bc3\u7bc4\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f9a\u4f9b\u8eac\u516c\u5bab\u5f13\u5de9\u6c5e\u62f1\u8d21\u5171\u94a9\u52fe\u6c9f\u82df\u72d7\u57a2\u6784\u8d2d\u591f\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u86ca\u9aa8\u8c37\u80a1\u6545\u987e\u56fa\u96c7\u522e\u74dc\u5250\u5be1\u6302\u8902\u4e56\u62d0\u602a\u68fa\u5173\u5b98\u51a0\u89c2\u7ba1\u9986\u7f50\u60ef\u704c\u8d2f\u5149\u5e7f\u901b\u7470\u89c4\u572d\u7845\u5f52\u9f9f\u95fa\u8f68\u9b3c\u8be1\u7678\u6842\u67dc\u8dea\u8d35\u523d\u8f8a\u6eda\u68cd\u9505\u90ed\u56fd\u679c\u88f9\u8fc7\u54c8"],["ba40","\u7bc5\u7bc8\u7bc9\u7bca\u7bcb\u7bcd\u7bce\u7bcf\u7bd0\u7bd2\u7bd4",4,"\u7bdb\u7bdc\u7bde\u7bdf\u7be0\u7be2\u7be3\u7be4\u7be7\u7be8\u7be9\u7beb\u7bec\u7bed\u7bef\u7bf0\u7bf2",4,"\u7bf8\u7bf9\u7bfa\u7bfb\u7bfd\u7bff",7,"\u7c08\u7c09\u7c0a\u7c0d\u7c0e\u7c10",5,"\u7c17\u7c18\u7c19"],["ba80","\u7c1a",4,"\u7c20",5,"\u7c28\u7c29\u7c2b",12,"\u7c39",5,"\u7c42\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u9a87\u9163\u61a8\u90af\u97e9\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6c49\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u9602\u6cb3\u6db8\u8d6b\u8910\u9e64\u8d3a\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a2a\u8861\u6052\u8f70\u54c4\u70d8\u8679\u9e3f\u6d2a\u5b8f\u5f18\u7ea2\u5589\u4faf\u7334\u543c\u539a\u5019\u540e\u547c\u4e4e\u5ffd\u745a\u58f6\u846b\u80e1\u8774\u72d0\u7cca\u6e56"],["bb40","\u7c43",9,"\u7c4e",36,"\u7c75",5,"\u7c7e",9],["bb80","\u7c88\u7c8a",6,"\u7c93\u7c94\u7c96\u7c99\u7c9a\u7c9b\u7ca0\u7ca1\u7ca3\u7ca6\u7ca7\u7ca8\u7ca9\u7cab\u7cac\u7cad\u7caf\u7cb0\u7cb4",4,"\u7cba\u7cbb\u5f27\u864e\u552c\u62a4\u4e92\u6caa\u6237\u82b1\u54d7\u534e\u733e\u6ed1\u753b\u5212\u5316\u8bdd\u69d0\u5f8a\u6000\u6dee\u574f\u6b22\u73af\u6853\u8fd8\u7f13\u6362\u60a3\u5524\u75ea\u8c62\u7115\u6da3\u5ba6\u5e7b\u8352\u614c\u9ec4\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8c0e\u7070\u6325\u8f89\u5fbd\u6062\u86d4\u56de\u6bc1\u6094\u6167\u5349\u60e0\u6666\u8d3f\u79fd\u4f1a\u70e9\u6c47\u8bb3\u8bf2\u7ed8\u8364\u660f\u5a5a\u9b42\u6d51\u6df7\u8c41\u6d3b\u4f19\u706b\u83b7\u6216\u60d1\u970d\u8d27\u7978\u51fb\u573e\u57fa\u673a\u7578\u7a3d\u79ef\u7b95"],["bc40","\u7cbf\u7cc0\u7cc2\u7cc3\u7cc4\u7cc6\u7cc9\u7ccb\u7cce",6,"\u7cd8\u7cda\u7cdb\u7cdd\u7cde\u7ce1",6,"\u7ce9",5,"\u7cf0",7,"\u7cf9\u7cfa\u7cfc",13,"\u7d0b",5],["bc80","\u7d11",14,"\u7d21\u7d23\u7d24\u7d25\u7d26\u7d28\u7d29\u7d2a\u7d2c\u7d2d\u7d2e\u7d30",6,"\u808c\u9965\u8ff9\u6fc0\u8ba5\u9e21\u59ec\u7ee9\u7f09\u5409\u6781\u68d8\u8f91\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7ea7\u6324\u51e0\u810a\u5df1\u84df\u6280\u5180\u5b63\u4f0e\u796d\u5242\u60b8\u6d4e\u5bc4\u5bc2\u8ba1\u8bb0\u65e2\u5fcc\u9645\u5993\u7ee7\u7eaa\u5609\u67b7\u5939\u4f73\u5bb6\u52a0\u835a\u988a\u8d3e\u7532\u94be\u5047\u7a3c\u4ef7\u67b6\u9a7e\u5ac1\u6b7c\u76d1\u575a\u5c16\u7b3a\u95f4\u714e\u517c\u80a9\u8270\u5978\u7f04\u8327\u68c0\u67ec\u78b1\u7877\u62e3\u6361\u7b80\u4fed\u526a\u51cf\u8350\u69db\u9274\u8df5\u8d31\u89c1\u952e\u7bad\u4ef6"],["bd40","\u7d37",54,"\u7d6f",7],["bd80","\u7d78",32,"\u5065\u8230\u5251\u996f\u6e10\u6e85\u6da7\u5efa\u50f5\u59dc\u5c06\u6d46\u6c5f\u7586\u848b\u6868\u5956\u8bb2\u5320\u9171\u964d\u8549\u6912\u7901\u7126\u80f6\u4ea4\u90ca\u6d47\u9a84\u5a07\u56bc\u6405\u94f0\u77eb\u4fa5\u811a\u72e1\u89d2\u997a\u7f34\u7ede\u527f\u6559\u9175\u8f7f\u8f83\u53eb\u7a96\u63ed\u63a5\u7686\u79f8\u8857\u9636\u622a\u52ab\u8282\u6854\u6770\u6377\u776b\u7aed\u6d01\u7ed3\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8beb\u5c4a\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7d27\u9526\u4ec5\u8c28\u8fdb\u9773\u664b\u7981\u8fd1\u70ec\u6d78"],["be40","\u7d99",12,"\u7da7",6,"\u7daf",42],["be80","\u7dda",32,"\u5c3d\u52b2\u8346\u5162\u830e\u775b\u6676\u9cb8\u4eac\u60ca\u7cbe\u7cb3\u7ecf\u4e95\u8b66\u666f\u9888\u9759\u5883\u656c\u955c\u5f84\u75c9\u9756\u7adf\u7ade\u51c0\u70af\u7a98\u63ea\u7a76\u7ea0\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u53a9\u6551\u65e7\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u9a79\u83ca\u5c40\u5480\u77e9\u4e3e\u6cae\u805a\u62d2\u636e\u5de8\u5177\u8ddd\u8e1e\u952f\u4ff1\u53e5\u60e7\u70ac\u5267\u6350\u9e43\u5a1f\u5026\u7737\u5377\u7ee2\u6485\u652b\u6289\u6398\u5014\u7235\u89c9\u51b3\u8bc0\u7edd\u5747\u83cc\u94a7\u519b\u541b\u5cfb"],["bf40","\u7dfb",62],["bf80","\u7e3a\u7e3c",4,"\u7e42",4,"\u7e48",21,"\u4fca\u7ae3\u6d5a\u90e1\u9a8f\u5580\u5496\u5361\u54af\u5f00\u63e9\u6977\u51ef\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9897\u79d1\u58f3\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8bfe\u80af\u5543\u57a6\u6073\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u62a0\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5e93\u88e4\u5938\u57ae\u630e\u8de8\u80ef\u5757\u7b77\u4fa9\u5feb\u5bbd\u6b3e\u5321\u7b50\u72c2\u6846\u77ff\u7736\u65f7\u51b5\u4e8f\u76d4\u5cbf\u7aa5\u8475\u594e\u9b41\u5080"],["c040","\u7e5e",35,"\u7e83",23,"\u7e9c\u7e9d\u7e9e"],["c080","\u7eae\u7eb4\u7ebb\u7ebc\u7ed6\u7ee4\u7eec\u7ef9\u7f0a\u7f10\u7f1e\u7f37\u7f39\u7f3b",6,"\u7f43\u7f46",9,"\u7f52\u7f53\u9988\u6127\u6e83\u5764\u6606\u6346\u56f0\u62ec\u6269\u5ed3\u9614\u5783\u62c9\u5587\u8721\u814a\u8fa3\u5566\u83b1\u6765\u8d56\u84dd\u5a6a\u680f\u62e6\u7bee\u9611\u5170\u6f9c\u8c30\u63fd\u89c8\u61d2\u7f06\u70c2\u6ee5\u7405\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u635e\u52b3\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6d9d\u52d2\u4e50\u96f7\u956d\u857e\u78ca\u7d2f\u5121\u5792\u64c2\u808b\u7c7b\u6cea\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7bf1\u72f8\u79bb\u6f13\u7406\u674e\u91cc\u9ca4\u793c\u8389\u8354\u540f\u6817\u4e3d\u5389\u52b1\u783e\u5386\u5229\u5088\u4f8b\u4fd0"],["c140","\u7f56\u7f59\u7f5b\u7f5c\u7f5d\u7f5e\u7f60\u7f63",4,"\u7f6b\u7f6c\u7f6d\u7f6f\u7f70\u7f73\u7f75\u7f76\u7f77\u7f78\u7f7a\u7f7b\u7f7c\u7f7d\u7f7f\u7f80\u7f82",7,"\u7f8b\u7f8d\u7f8f",4,"\u7f95",4,"\u7f9b\u7f9c\u7fa0\u7fa2\u7fa3\u7fa5\u7fa6\u7fa8",6,"\u7fb1"],["c180","\u7fb3",4,"\u7fba\u7fbb\u7fbe\u7fc0\u7fc2\u7fc3\u7fc4\u7fc6\u7fc7\u7fc8\u7fc9\u7fcb\u7fcd\u7fcf",4,"\u7fd6\u7fd7\u7fd9",5,"\u7fe2\u7fe3\u75e2\u7acb\u7c92\u6ca5\u96b6\u529b\u7483\u54e9\u4fe9\u8054\u83b2\u8fde\u9570\u5ec9\u601c\u6d9f\u5e18\u655b\u8138\u94fe\u604b\u70bc\u7ec3\u7cae\u51c9\u6881\u7cb1\u826f\u4e24\u8f86\u91cf\u667e\u4eae\u8c05\u64a9\u804a\u50da\u7597\u71ce\u5be5\u8fbd\u6f66\u4e86\u6482\u9563\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u730e\u7433\u6797\u78f7\u9716\u4e34\u90bb\u9cde\u6dcb\u51db\u8d41\u541d\u62ce\u73b2\u83f1\u96f6\u9f84\u94c3\u4f36\u7f9a\u51cc\u7075\u9675\u5cad\u9886\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u998f\u7559\u5218\u7624\u6d41\u67f3\u516d\u9f99\u804b\u5499\u7b3c\u7abf"],["c240","\u7fe4\u7fe7\u7fe8\u7fea\u7feb\u7fec\u7fed\u7fef\u7ff2\u7ff4",6,"\u7ffd\u7ffe\u7fff\u8002\u8007\u8008\u8009\u800a\u800e\u800f\u8011\u8013\u801a\u801b\u801d\u801e\u801f\u8021\u8023\u8024\u802b",5,"\u8032\u8034\u8039\u803a\u803c\u803e\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804e\u804f\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805b",13,"\u806b",5,"\u8072",11,"\u9686\u5784\u62e2\u9647\u697c\u5a04\u6402\u7bd3\u6f0f\u964b\u82a6\u5362\u9885\u5e90\u7089\u63b3\u5364\u864f\u9c81\u9e93\u788c\u9732\u8def\u8d42\u9e7f\u6f5e\u7984\u5f55\u9646\u622e\u9a74\u5415\u94dd\u4fa3\u65c5\u5c65\u5c61\u7f15\u8651\u6c2f\u5f8b\u7387\u6ee4\u7eff\u5ce6\u631b\u5b6a\u6ee6\u5375\u4e71\u63a0\u7565\u62a1\u8f6e\u4f26\u4ed1\u6ca6\u7eb6\u8bba\u841d\u87ba\u7f57\u903b\u9523\u7ba9\u9aa1\u88f8\u843d\u6d1b\u9a86\u7edc\u5988\u9ebb\u739b\u7801\u8682\u9a6c\u9a82\u561b\u5417\u57cb\u4e70\u9ea6\u5356\u8fc8\u8109\u7792\u9992\u86ee\u6ee1\u8513\u66fc\u6162\u6f2b"],["c340","\u807e\u8081\u8082\u8085\u8088\u808a\u808d",5,"\u8094\u8095\u8097\u8099\u809e\u80a3\u80a6\u80a7\u80a8\u80ac\u80b0\u80b3\u80b5\u80b6\u80b8\u80b9\u80bb\u80c5\u80c7",4,"\u80cf",6,"\u80d8\u80df\u80e0\u80e2\u80e3\u80e6\u80ee\u80f5\u80f7\u80f9\u80fb\u80fe\u80ff\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810b"],["c380","\u810c\u8115\u8117\u8119\u811b\u811c\u811d\u811f",12,"\u812d\u812e\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813f\u8c29\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u732b\u8305\u951a\u6bdb\u77db\u94c6\u536f\u8302\u5192\u5e3d\u8c8c\u8d38\u4e48\u73ab\u679a\u6885\u9176\u9709\u7164\u6ca1\u7709\u5a92\u9541\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u95e8\u95f7\u4eec\u840c\u8499\u6aac\u76df\u9530\u731b\u68a6\u5b5f\u772f\u919a\u9761\u7cdc\u8ff7\u8c1c\u5f25\u7c73\u79d8\u89c5\u6ccc\u871c\u5bc6\u5e42\u68c9\u7720\u7ef5\u5195\u514d\u52c9\u5a29\u7f05\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5e99\u5999\u8511\u706d\u6c11\u62bf\u76bf\u654f\u60af\u95fd\u660e\u879f\u9e23\u94ed\u540d\u547d\u8c2c\u6478"],["c440","\u8140",5,"\u8147\u8149\u814d\u814e\u814f\u8152\u8156\u8157\u8158\u815b",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816a\u816b\u816c\u816f\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818b\u818c\u818d\u818e\u8190\u8192",5,"\u8199\u819a\u819e",4,"\u81a4\u81a5"],["c480","\u81a7\u81a9\u81ab",7,"\u81b4",5,"\u81bc\u81bd\u81be\u81bf\u81c4\u81c5\u81c7\u81c8\u81c9\u81cb\u81cd",6,"\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8c0b\u725f\u67d0\u62c7\u7261\u4ea9\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5450\u94a0\u90a3\u5a1c\u7eb3\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96be\u56ca\u6320\u8111\u607c\u95f9\u6dd6\u5462\u9981\u5185\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u62df\u4f60\u533f\u817b\u9006\u6eba\u852b\u62c8\u5e74\u78be\u64b5\u637b\u5ff5\u5a18\u917f\u9e1f\u5c3f\u634f\u8042\u5b7d\u556e\u954a\u954d\u6d85\u60a8\u67e0\u72de\u51dd\u5b81"],["c540","\u81d4",14,"\u81e4\u81e5\u81e6\u81e8\u81e9\u81eb\u81ee",4,"\u81f5",5,"\u81fd\u81ff\u8203\u8207",4,"\u820e\u820f\u8211\u8213\u8215",5,"\u821d\u8220\u8224\u8225\u8226\u8227\u8229\u822e\u8232\u823a\u823c\u823d\u823f"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824a\u824c\u824d\u824e\u8250",7,"\u8259\u825b\u825c\u825d\u825e\u8260",7,"\u8269\u62e7\u6cde\u725b\u626d\u94ae\u7ebd\u8113\u6d53\u519c\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u759f\u632a\u61e6\u7cef\u8bfa\u54e6\u6b27\u9e25\u6bb4\u85d5\u5455\u5076\u6ca4\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76d8\u78d0\u76fc\u7554\u5224\u53db\u4e53\u5e9e\u65c1\u802a\u80d6\u629b\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8d54\u966a\u914d\u4f69\u6c9b\u55b7\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9e4f\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7"],["c640","\u826a\u826b\u826c\u826d\u8271\u8275\u8276\u8277\u8278\u827b\u827c\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828c\u8290\u8293\u8294\u8295\u8296\u829a\u829b\u829e\u82a0\u82a2\u82a3\u82a7\u82b2\u82b5\u82b6\u82ba\u82bb\u82bc\u82bf\u82c0\u82c2\u82c3\u82c5\u82c6\u82c9\u82d0\u82d6\u82d9\u82da\u82dd\u82e2\u82e7\u82e8\u82e9\u82ea\u82ec\u82ed\u82ee\u82f0\u82f2\u82f3\u82f5\u82f6\u82f8"],["c680","\u82fa\u82fc",4,"\u830a\u830b\u830d\u8310\u8312\u8313\u8316\u8318\u8319\u831d",9,"\u8329\u832a\u832e\u8330\u8332\u8337\u833b\u833d\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a97\u98d8\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u9891\u8d2b\u54c1\u8058\u4e52\u576a\u82f9\u840d\u5e73\u51ed\u74f6\u8bc4\u5c4f\u5761\u6cfc\u9887\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u6251\u94fa\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6734\u5703\u666e\u6d66\u8c31\u66dd\u7011\u671f\u6b3a\u6816\u621a\u59bb\u4e03\u51c4\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u8110\u9f50\u65d7\u7948\u7941\u9a91\u8d77\u5c82\u4e5e\u4f01\u542f\u5951\u780c\u5668\u6c14\u8fc4\u5f03\u6c7d\u6ce3\u8bab\u6390"],["c740","\u833e\u833f\u8341\u8342\u8344\u8345\u8348\u834a",4,"\u8353\u8355",4,"\u835d\u8362\u8370",6,"\u8379\u837a\u837e",6,"\u8387\u8388\u838a\u838b\u838c\u838d\u838f\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839a\u839d\u839f\u83a1",6,"\u83ac\u83ad\u83ae"],["c780","\u83af\u83b5\u83bb\u83be\u83bf\u83c2\u83c3\u83c4\u83c6\u83c8\u83c9\u83cb\u83cd\u83ce\u83d0\u83d1\u83d2\u83d3\u83d5\u83d7\u83d9\u83da\u83db\u83de\u83e2\u83e3\u83e4\u83e6\u83e7\u83e8\u83eb\u83ec\u83ed\u6070\u6d3d\u7275\u6266\u948e\u94c5\u5343\u8fc1\u7b7e\u4edf\u8c26\u4e7e\u9ed4\u94b1\u94b3\u524d\u6f5c\u9063\u6d45\u8c34\u5811\u5d4c\u6b20\u6b49\u67aa\u545b\u8154\u7f8c\u5899\u8537\u5f3a\u62a2\u6a47\u9539\u6572\u6084\u6865\u77a7\u4e54\u4fa8\u5de7\u9798\u64ac\u7fd8\u5ced\u4fcf\u7a8d\u5207\u8304\u4e14\u602f\u7a83\u94a6\u4fb5\u4eb2\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5bdd\u6c81\u9752\u8f7b\u6c22\u503e\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9877\u8bf7\u5e86\u743c\u7a77\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8d8b\u533a\u86c6\u66f2\u8eaf\u5c48\u9a71\u6e20"],["c840","\u83ee\u83ef\u83f3",4,"\u83fa\u83fb\u83fc\u83fe\u83ff\u8400\u8402\u8405\u8407\u8408\u8409\u840a\u8410\u8412",5,"\u8419\u841a\u841b\u841e",5,"\u8429",7,"\u8432",5,"\u8439\u843a\u843b\u843e",7,"\u8447\u8448\u8449"],["c880","\u844a",6,"\u8452",4,"\u8458\u845d\u845e\u845f\u8460\u8462\u8464",4,"\u846a\u846e\u846f\u8470\u8472\u8474\u8477\u8479\u847b\u847c\u53d6\u5a36\u9f8b\u8da3\u53bb\u5708\u98a7\u6743\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u529d\u7f3a\u7094\u7638\u5374\u9e4a\u69b7\u786e\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8ba9\u9976\u6270\u7ed5\u60f9\u70ed\u58ec\u4ec1\u4eba\u5fcd\u97e7\u4efb\u8ba4\u5203\u598a\u7eab\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u8363\u878d\u7194\u6eb6\u5bb9\u7ed2\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8f6f\u962e\u854a\u745e\u9510\u95f0\u6da6\u82e5\u5f31\u6492\u6d12\u8428\u816e\u9cc3\u585e\u8d5b\u4e09\u53c1"],["c940","\u847d",4,"\u8483\u8484\u8485\u8486\u848a\u848d\u848f",7,"\u8498\u849a\u849b\u849d\u849e\u849f\u84a0\u84a2",12,"\u84b0\u84b1\u84b3\u84b5\u84b6\u84b7\u84bb\u84bc\u84be\u84c0\u84c2\u84c3\u84c5\u84c6\u84c7\u84c8\u84cb\u84cc\u84ce\u84cf\u84d2\u84d4\u84d5\u84d7"],["c980","\u84d8",4,"\u84de\u84e1\u84e2\u84e4\u84e7",4,"\u84ed\u84ee\u84ef\u84f1",10,"\u84fd\u84fe\u8500\u8501\u8502\u4f1e\u6563\u6851\u55d3\u4e27\u6414\u9a9a\u626b\u5ac2\u745f\u8272\u6da9\u68ee\u50e7\u838e\u7802\u6740\u5239\u6c99\u7eb1\u50bb\u5565\u715e\u7b5b\u6652\u73ca\u82eb\u6749\u5c71\u5220\u717d\u886b\u95ea\u9655\u64c5\u8d61\u81b3\u5584\u6c55\u6247\u7f2e\u5892\u4f24\u5546\u8d4f\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u70e7\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7ecd\u5962\u8d4a\u86c7\u820c\u820d\u8d66\u6444\u5c04\u6151\u6d89\u793e\u8bbe\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7ec5\u795e\u6c88\u5ba1\u5a76\u751a\u80be\u614e\u6e17\u58f0\u751f\u7525\u7272\u5347\u7ef3"],["ca40","\u8503",8,"\u850d\u850e\u850f\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851b\u851c\u851d\u851e\u8520\u8522",8,"\u852d",9,"\u853e",4,"\u8544\u8545\u8546\u8547\u854b",10],["ca80","\u8557\u8558\u855a\u855b\u855c\u855d\u855f",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857c\u857d\u857f\u8580\u8581\u7701\u76db\u5269\u80dc\u5723\u5e08\u5931\u72ee\u65bd\u6e7f\u8bd7\u5c38\u8671\u5341\u77f3\u62fe\u65f6\u4ec0\u98df\u8680\u5b9e\u8bc6\u53f2\u77e2\u4f7f\u5c4e\u9a76\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52bf\u662f\u55dc\u566c\u9002\u4ed5\u4f8d\u91ca\u9970\u6c0f\u5e02\u6043\u5ba4\u89c6\u8bd5\u6536\u624b\u9996\u5b88\u5bff\u6388\u552e\u53d7\u7626\u517d\u852c\u67a2\u68b3\u6b8a\u6292\u8f93\u53d4\u8212\u6dd1\u758f\u4e66\u8d4e\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c5e\u672f\u8ff0\u6811\u675f\u620d\u7ad6\u5885\u5eb6\u6570\u6f31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859d",6,"\u85a5\u85a6\u85a7\u85a9\u85ab\u85ac\u85ad\u85b1",5,"\u85b8\u85ba",6,"\u85c2",6,"\u85ca",4,"\u85d1\u85d2"],["cb80","\u85d4\u85d6",5,"\u85dd",6,"\u85e5\u85e6\u85e7\u85e8\u85ea",14,"\u6055\u5237\u800d\u6454\u8870\u7529\u5e05\u6813\u62f4\u971c\u53cc\u723d\u8c01\u6c34\u7761\u7a0e\u542e\u77ac\u987a\u821c\u8bf4\u7855\u6714\u70c1\u65af\u6495\u5636\u601d\u79c1\u53f8\u4e1d\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u9972\u5df3\u677e\u8038\u6002\u9882\u9001\u5b8b\u8bbc\u8bf5\u641c\u8258\u64de\u55fd\u82cf\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8bc9\u8083\u9178\u849c\u7b97\u867d\u968b\u968f\u7ee5\u9ad3\u788e\u5c81\u7a57\u9042\u96a7\u795f\u5b59\u635f\u7b0b\u84d1\u68ad\u5506\u7f29\u7410\u7d22\u9501\u6240\u584c\u4ed6\u5b83\u5979\u5854"],["cc40","\u85f9\u85fa\u85fc\u85fd\u85fe\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862a",13,"\u8639\u863a\u863b\u863d\u863e\u863f\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865b\u865c\u865d\u865f\u8660\u8661\u8663",7,"\u736d\u631e\u8e4b\u8e0f\u80ce\u82d4\u62ac\u53f0\u6cf0\u915e\u592a\u6001\u6c70\u574d\u644a\u8d2a\u762b\u6ee9\u575b\u6a80\u75f0\u6f6d\u8c2d\u8c08\u5766\u6bef\u8892\u78b3\u63a2\u53f9\u70ad\u6c64\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u70eb\u638f\u6d9b\u6ed4\u7ee6\u8404\u6843\u9003\u6dd8\u9676\u8ba8\u5957\u7279\u85e4\u817e\u75bc\u8a8a\u68af\u5254\u8e22\u9511\u63d0\u9898\u8e44\u557c\u4f53\u66ff\u568f\u60d5\u6d95\u5243\u5c49\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u6761\u8fe2\u773a\u8df3\u8d34\u94c1\u5e16\u5385\u542c\u70c3"],["cd40","\u866d\u866f\u8670\u8672",6,"\u8683",6,"\u868e",4,"\u8694\u8696",5,"\u869e",4,"\u86a5\u86a6\u86ab\u86ad\u86ae\u86b2\u86b3\u86b7\u86b8\u86b9\u86bb",4,"\u86c1\u86c2\u86c3\u86c5\u86c8\u86cc\u86cd\u86d2\u86d3\u86d5\u86d6\u86d7\u86da\u86dc"],["cd80","\u86dd\u86e0\u86e1\u86e2\u86e3\u86e5\u86e6\u86e7\u86e8\u86ea\u86eb\u86ec\u86ef\u86f5\u86f6\u86f7\u86fa\u86fb\u86fc\u86fd\u86ff\u8701\u8704\u8705\u8706\u870b\u870c\u870e\u870f\u8710\u8711\u8714\u8716\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u94dc\u5f64\u7ae5\u6876\u6345\u7b52\u7edf\u75db\u5077\u6295\u5934\u900f\u51f8\u79c3\u7a81\u56fe\u5f92\u9014\u6d82\u5c60\u571f\u5410\u5154\u6e4d\u56e2\u63a8\u9893\u817f\u8715\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u8131\u9e35\u9640\u9a6e\u9a7c\u692d\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u6d3c\u5a03\u74e6\u889c\u6b6a\u5916\u8c4c\u5f2f\u6e7e\u73a9\u987d\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u4e07\u8155\u6c6a\u738b\u4ea1\u6789\u7f51\u5f80\u65fa\u671b\u5fd8\u5984\u5a01"],["ce40","\u8719\u871b\u871d\u871f\u8720\u8724\u8726\u8727\u8728\u872a\u872b\u872c\u872d\u872f\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873a\u873c\u873d\u8740",6,"\u874a\u874b\u874d\u874f\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875a",5,"\u8761\u8762\u8766",7,"\u876f\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877a\u877f\u8780\u8781\u8784\u8786\u8787\u8789\u878a\u878c\u878e",4,"\u8794\u8795\u8796\u8798",6,"\u87a0",4,"\u5dcd\u5fae\u5371\u97e6\u8fdd\u6845\u56f4\u552f\u60df\u4e3a\u6f4d\u7ef4\u82c7\u840e\u59d4\u4f1f\u4f2a\u5c3e\u7eac\u672a\u851a\u5473\u754f\u80c3\u5582\u9b4f\u4f4d\u6e2d\u8c13\u5c09\u6170\u536b\u761f\u6e29\u868a\u6587\u95fb\u7eb9\u543b\u7a33\u7d0a\u95ee\u55e1\u7fc1\u74ee\u631d\u8717\u6da1\u7a9d\u6211\u65a1\u5367\u63e1\u6c83\u5deb\u545c\u94a8\u4e4c\u6c61\u8bec\u5c4b\u65e0\u829c\u68a7\u543e\u5434\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u575e\u620a\u96fe\u6664\u7269\u52ff\u52a1\u609f\u8bef\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u9521\u727a"],["cf40","\u87a5\u87a6\u87a7\u87a9\u87aa\u87ae\u87b0\u87b1\u87b2\u87b4\u87b6\u87b7\u87b8\u87b9\u87bb\u87bc\u87be\u87bf\u87c1",4,"\u87c7\u87c8\u87c9\u87cc",4,"\u87d4",6,"\u87dc\u87dd\u87de\u87df\u87e1\u87e2\u87e3\u87e4\u87e6\u87e7\u87e8\u87e9\u87eb\u87ec\u87ed\u87ef",9],["cf80","\u87fa\u87fb\u87fc\u87fd\u87ff\u8800\u8801\u8802\u8804",5,"\u880b",7,"\u8814\u8817\u8818\u8819\u881a\u881c",4,"\u8823\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u88ad\u5e2d\u4e60\u5ab3\u559c\u94e3\u6d17\u7cfb\u9699\u620f\u7ec6\u778e\u867e\u5323\u971e\u8f96\u6687\u5ce1\u4fa0\u72ed\u4e0b\u53a6\u590f\u5413\u6380\u9528\u5148\u4ed9\u9c9c\u7ea4\u54b8\u8d24\u8854\u8237\u95f2\u6d8e\u5f26\u5acc\u663e\u9669\u73b0\u732e\u53bf\u817a\u9985\u7fa1\u5baa\u9677\u9650\u7ebf\u76f8\u53a2\u9576\u9999\u7bb1\u8944\u6e58\u4e61\u7fd4\u7965\u8be6\u60f3\u54cd\u4eab\u9879\u5df7\u6a61\u50cf\u5411\u8c61\u8427\u785d\u9704\u524a\u54ee\u56a3\u9500\u6d88\u5bb5\u6dc6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883a\u883b\u883d\u883e\u883f\u8841\u8842\u8843\u8846",5,"\u884e",5,"\u8855\u8856\u8858\u885a",6,"\u8866\u8867\u886a\u886d\u886f\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887a"],["d080","\u887b\u887c\u8880\u8883\u8886\u8887\u8889\u888a\u888c\u888e\u888f\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889d",4,"\u88a3\u88a5",5,"\u5c0f\u5b5d\u6821\u8096\u5578\u7b11\u6548\u6954\u4e9b\u6b47\u874e\u978b\u534f\u631f\u643a\u90aa\u659c\u80c1\u8c10\u5199\u68b0\u5378\u87f9\u61c8\u6cc4\u6cfb\u8c22\u5c51\u85aa\u82af\u950c\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u8845\u661f\u8165\u7329\u60fa\u5174\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u51f6\u80f8\u5308\u6c79\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u9508\u79c0\u8896\u7ee3\u589f\u620c\u9700\u865a\u5618\u987b\u5f90\u8bb8\u84c4\u9157\u53d9\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7eea\u7eed\u8f69\u55a7\u5ba3\u60ac\u65cb\u7384"],["d140","\u88ac\u88ae\u88af\u88b0\u88b2",4,"\u88b8\u88b9\u88ba\u88bb\u88bd\u88be\u88bf\u88c0\u88c3\u88c4\u88c7\u88c8\u88ca\u88cb\u88cc\u88cd\u88cf\u88d0\u88d1\u88d3\u88d6\u88d7\u88da",4,"\u88e0\u88e1\u88e6\u88e7\u88e9",6,"\u88f2\u88f5\u88f6\u88f7\u88fa\u88fb\u88fd\u88ff\u8900\u8901\u8903",5],["d180","\u8909\u890b",4,"\u8911\u8914",4,"\u891c",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892c\u892d\u892e\u892f\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7eda\u9774\u859b\u5b66\u7a74\u96ea\u8840\u52cb\u718f\u5faa\u65ec\u8be2\u5bfb\u9a6f\u5de1\u6b89\u6c5b\u8bad\u8baf\u900a\u8fc5\u538b\u62bc\u9e26\u9e2d\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u54d1\u4e9a\u8bb6\u7109\u54bd\u9609\u70df\u6df9\u76d0\u4e25\u7814\u8712\u5ca9\u5ef6\u8a00\u989c\u960e\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8273\u5830\u71d5\u538c\u781a\u96c1\u5501\u5f66\u7130\u5bb4\u8c1a\u9a8c\u6b83\u592e\u9e2f\u79e7\u6768\u626c\u4f6f\u75a1\u7f8a\u6d0b\u9633\u6c27\u4ef0\u75d2\u517b\u6837\u6f3e\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897c"],["d280","\u897d\u897e\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5c27\u9065\u7a91\u8c23\u59da\u54ac\u8200\u836f\u8981\u8000\u6930\u564e\u8036\u7237\u91ce\u51b6\u4e5f\u9875\u6396\u4e1a\u53f6\u66f3\u814b\u591c\u6db2\u4e00\u58f9\u533b\u63d6\u94f1\u4f9d\u4f0a\u8863\u9890\u5937\u9057\u79fb\u4eea\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5d\u6905\u8681\u501a\u5df2\u4e59\u77e3\u4ee5\u827a\u6291\u6613\u9091\u5c79\u4ebf\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u5fc6\u4e49\u76ca\u6ea2\u8be3\u8bae\u8c0a\u8bd1\u5f02\u7ffc\u7fcc\u7ece\u8335\u836b\u56e0\u6bb7\u97f3\u9634\u59fb\u541f\u94f6\u6deb\u5bc5\u996e\u5c39\u5f15\u9690"],["d340","\u89a2",30,"\u89c3\u89cd\u89d3\u89d4\u89d5\u89d7\u89d8\u89d9\u89db\u89dd\u89df\u89e0\u89e1\u89e2\u89e4\u89e7\u89e8\u89e9\u89ea\u89ec\u89ed\u89ee\u89f0\u89f1\u89f2\u89f4",6],["d380","\u89fb",4,"\u8a01",5,"\u8a08",21,"\u5370\u82f1\u6a31\u5a74\u9e70\u5e94\u7f28\u83b9\u8424\u8425\u8367\u8747\u8fce\u8d62\u76c8\u5f71\u9896\u786c\u6620\u54df\u62e5\u4f63\u81c3\u75c8\u5eb8\u96cd\u8e0a\u86f9\u548f\u6cf3\u6d8c\u6c38\u607f\u52c7\u7528\u5e7d\u4f18\u60a0\u5fe7\u5c24\u7531\u90ae\u94c0\u72b9\u6cb9\u6e38\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8bf1\u53c8\u5e7c\u8fc2\u6de4\u4e8e\u76c2\u6986\u865e\u611a\u8206\u4f59\u4fde\u903e\u9c7c\u6109\u6e1d\u6e14\u9685\u4e88\u5a31\u96e8\u4e0e\u5c7f\u79b9\u5b87\u8bed\u7fbd\u7389\u57df\u828b\u90c1\u5401\u9047\u55bb\u5cea\u5fa1\u6108\u6b32\u72f1\u80b2\u8a89"],["d440","\u8a1e",31,"\u8a3f",8,"\u8a49",21],["d480","\u8a5f",25,"\u8a7a",6,"\u6d74\u5bd3\u88d5\u9884\u8c6b\u9a6d\u9e33\u6e0a\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f95\u56ed\u5458\u5706\u733f\u6e90\u7f18\u8fdc\u82d1\u613f\u6028\u9662\u66f0\u7ea6\u8d8a\u8dc3\u94a5\u5cb3\u7ca4\u6708\u60a6\u9605\u8018\u4e91\u90e7\u5300\u9668\u5141\u8fd0\u8574\u915d\u6655\u97f5\u5b55\u531d\u7838\u6742\u683d\u54c9\u707e\u5bb0\u8f7d\u518d\u5728\u54b1\u6512\u6682\u8d5e\u8d43\u810f\u846c\u906d\u7cdf\u51ff\u85fb\u67a3\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7076\u71e5\u8d23\u62e9\u5219\u6cfd\u8d3c\u600e\u589e\u618e\u66fe\u8d60\u624e\u55b3\u6e23\u672d\u8f67"],["d540","\u8a81",7,"\u8a8b",7,"\u8a94",46],["d580","\u8ac3",32,"\u94e1\u95f8\u7728\u6805\u69a8\u548b\u4e4d\u70b8\u8bc8\u6458\u658b\u5b85\u7a84\u503a\u5be8\u77bb\u6be1\u8a79\u7c98\u6cbe\u76cf\u65a9\u8f97\u5d2d\u5c55\u8638\u6808\u5360\u6218\u7ad9\u6e5b\u7efd\u6a1f\u7ae0\u5f70\u6f33\u5f20\u638c\u6da8\u6756\u4e08\u5e10\u8d26\u4ed7\u80c0\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d75\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u86f0\u8f99\u8005\u9517\u8517\u8fd9\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8d1e\u9488\u4fa6\u6795\u75b9\u8bca\u9707\u632f\u9547\u9635\u84b8\u6323\u7741\u5f81\u72f0\u4e89\u6014\u6574\u62ef\u6b63\u653f"],["d640","\u8ae4",34,"\u8b08",27],["d680","\u8b24\u8b25\u8b27",30,"\u5e27\u75c7\u90d1\u8bc1\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7ec7\u804c\u76f4\u690d\u6b96\u6267\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7eb8\u5fd7\u631a\u63b7\u81f3\u81f4\u7f6e\u5e1c\u5cd9\u5236\u667a\u79e9\u7a1a\u8d28\u7099\u75d4\u6ede\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u949f\u8877\u7ec8\u79cd\u80bf\u91cd\u4ef2\u4f17\u821f\u5468\u5dde\u6d32\u8bcc\u7ca5\u8f74\u8098\u5e1a\u5492\u76b1\u5b99\u663c\u9aa4\u73e0\u682a\u86db\u6731\u732a\u8bf8\u8bdb\u9010\u7af9\u70db\u716e\u62c4\u77a9\u5631\u4e3b\u8457\u67f1\u52a9\u86c0\u8d2e\u94f8\u7b51"],["d740","\u8b46",31,"\u8b67",4,"\u8b6d",25],["d780","\u8b87",24,"\u8bac\u8bb1\u8bbb\u8bc7\u8bd0\u8bea\u8c09\u8c1e\u4f4f\u6ce8\u795d\u9a7b\u6293\u722a\u62fd\u4e13\u7816\u8f6c\u64b0\u8d5a\u7bc6\u6869\u5e84\u88c5\u5986\u649e\u58ee\u72b6\u690e\u9525\u8ffd\u8d58\u5760\u7f00\u8c06\u51c6\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u7740\u707c\u6d4a\u5179\u54a8\u8d44\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6e0d\u5b57\u9b03\u68d5\u8e2a\u5b97\u7efc\u603b\u7eb5\u90b9\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8bc5\u963b\u7ec4\u94bb\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7"],["d840","\u8c38",8,"\u8c42\u8c43\u8c44\u8c45\u8c48\u8c4a\u8c4b\u8c4d",7,"\u8c56\u8c57\u8c58\u8c59\u8c5b",5,"\u8c63",6,"\u8c6c",6,"\u8c74\u8c75\u8c76\u8c77\u8c7b",6,"\u8c83\u8c84\u8c86\u8c87"],["d880","\u8c88\u8c8b\u8c8d",6,"\u8c95\u8c96\u8c97\u8c99",20,"\u4e8d\u4e0c\u5140\u4e10\u5eff\u5345\u4e15\u4e98\u4e1e\u9b32\u5b6c\u5669\u4e28\u79ba\u4e3f\u5315\u4e47\u592d\u723b\u536e\u6c10\u56df\u80e4\u9997\u6bd3\u777e\u9f17\u4e36\u4e9f\u9f10\u4e5c\u4e69\u4e93\u8288\u5b5b\u556c\u560f\u4ec4\u538d\u539d\u53a3\u53a5\u53ae\u9765\u8d5d\u531a\u53f5\u5326\u532e\u533e\u8d5c\u5366\u5363\u5202\u5208\u520e\u522d\u5233\u523f\u5240\u524c\u525e\u5261\u525c\u84af\u527d\u5282\u5281\u5290\u5293\u5182\u7f54\u4ebb\u4ec3\u4ec9\u4ec2\u4ee8\u4ee1\u4eeb\u4ede\u4f1b\u4ef3\u4f22\u4f64\u4ef5\u4f25\u4f27\u4f09\u4f2b\u4f5e\u4f67\u6538\u4f5a\u4f5d"],["d940","\u8cae",62],["d980","\u8ced",32,"\u4f5f\u4f57\u4f32\u4f3d\u4f76\u4f74\u4f91\u4f89\u4f83\u4f8f\u4f7e\u4f7b\u4faa\u4f7c\u4fac\u4f94\u4fe6\u4fe8\u4fea\u4fc5\u4fda\u4fe3\u4fdc\u4fd1\u4fdf\u4ff8\u5029\u504c\u4ff3\u502c\u500f\u502e\u502d\u4ffe\u501c\u500c\u5025\u5028\u507e\u5043\u5055\u5048\u504e\u506c\u507b\u50a5\u50a7\u50a9\u50ba\u50d6\u5106\u50ed\u50ec\u50e6\u50ee\u5107\u510b\u4edd\u6c3d\u4f58\u4f65\u4fce\u9fa0\u6c46\u7c74\u516e\u5dfd\u9ec9\u9998\u5181\u5914\u52f9\u530d\u8a07\u5310\u51eb\u5919\u5155\u4ea0\u5156\u4eb3\u886e\u88a4\u4eb5\u8114\u88d2\u7980\u5b34\u8803\u7fb8\u51ab\u51b1\u51bd\u51bc"],["da40","\u8d0e",14,"\u8d20\u8d51\u8d52\u8d57\u8d5f\u8d65\u8d68\u8d69\u8d6a\u8d6c\u8d6e\u8d6f\u8d71\u8d72\u8d78",8,"\u8d82\u8d83\u8d86\u8d87\u8d88\u8d89\u8d8c",4,"\u8d92\u8d93\u8d95",9,"\u8da0\u8da1"],["da80","\u8da2\u8da4",12,"\u8db2\u8db6\u8db7\u8db9\u8dbb\u8dbd\u8dc0\u8dc1\u8dc2\u8dc5\u8dc7\u8dc8\u8dc9\u8dca\u8dcd\u8dd0\u8dd2\u8dd3\u8dd4\u51c7\u5196\u51a2\u51a5\u8ba0\u8ba6\u8ba7\u8baa\u8bb4\u8bb5\u8bb7\u8bc2\u8bc3\u8bcb\u8bcf\u8bce\u8bd2\u8bd3\u8bd4\u8bd6\u8bd8\u8bd9\u8bdc\u8bdf\u8be0\u8be4\u8be8\u8be9\u8bee\u8bf0\u8bf3\u8bf6\u8bf9\u8bfc\u8bff\u8c00\u8c02\u8c04\u8c07\u8c0c\u8c0f\u8c11\u8c12\u8c14\u8c15\u8c16\u8c19\u8c1b\u8c18\u8c1d\u8c1f\u8c20\u8c21\u8c25\u8c27\u8c2a\u8c2b\u8c2e\u8c2f\u8c32\u8c33\u8c35\u8c36\u5369\u537a\u961d\u9622\u9621\u9631\u962a\u963d\u963c\u9642\u9649\u9654\u965f\u9667\u966c\u9672\u9674\u9688\u968d\u9697\u96b0\u9097\u909b\u909d\u9099\u90ac\u90a1\u90b4\u90b3\u90b6\u90ba"],["db40","\u8dd5\u8dd8\u8dd9\u8ddc\u8de0\u8de1\u8de2\u8de5\u8de6\u8de7\u8de9\u8ded\u8dee\u8df0\u8df1\u8df2\u8df4\u8df6\u8dfc\u8dfe",6,"\u8e06\u8e07\u8e08\u8e0b\u8e0d\u8e0e\u8e10\u8e11\u8e12\u8e13\u8e15",7,"\u8e20\u8e21\u8e24",4,"\u8e2b\u8e2d\u8e30\u8e32\u8e33\u8e34\u8e36\u8e37\u8e38\u8e3b\u8e3c\u8e3e"],["db80","\u8e3f\u8e43\u8e45\u8e46\u8e4c",4,"\u8e53",5,"\u8e5a",11,"\u8e67\u8e68\u8e6a\u8e6b\u8e6e\u8e71\u90b8\u90b0\u90cf\u90c5\u90be\u90d0\u90c4\u90c7\u90d3\u90e6\u90e2\u90dc\u90d7\u90db\u90eb\u90ef\u90fe\u9104\u9122\u911e\u9123\u9131\u912f\u9139\u9143\u9146\u520d\u5942\u52a2\u52ac\u52ad\u52be\u54ff\u52d0\u52d6\u52f0\u53df\u71ee\u77cd\u5ef4\u51f5\u51fc\u9b2f\u53b6\u5f01\u755a\u5def\u574c\u57a9\u57a1\u587e\u58bc\u58c5\u58d1\u5729\u572c\u572a\u5733\u5739\u572e\u572f\u575c\u573b\u5742\u5769\u5785\u576b\u5786\u577c\u577b\u5768\u576d\u5776\u5773\u57ad\u57a4\u578c\u57b2\u57cf\u57a7\u57b4\u5793\u57a0\u57d5\u57d8\u57da\u57d9\u57d2\u57b8\u57f4\u57ef\u57f8\u57e4\u57dd"],["dc40","\u8e73\u8e75\u8e77",4,"\u8e7d\u8e7e\u8e80\u8e82\u8e83\u8e84\u8e86\u8e88",6,"\u8e91\u8e92\u8e93\u8e95",6,"\u8e9d\u8e9f",11,"\u8ead\u8eae\u8eb0\u8eb1\u8eb3",6,"\u8ebb",7],["dc80","\u8ec3",10,"\u8ecf",21,"\u580b\u580d\u57fd\u57ed\u5800\u581e\u5819\u5844\u5820\u5865\u586c\u5881\u5889\u589a\u5880\u99a8\u9f19\u61ff\u8279\u827d\u827f\u828f\u828a\u82a8\u8284\u828e\u8291\u8297\u8299\u82ab\u82b8\u82be\u82b0\u82c8\u82ca\u82e3\u8298\u82b7\u82ae\u82cb\u82cc\u82c1\u82a9\u82b4\u82a1\u82aa\u829f\u82c4\u82ce\u82a4\u82e1\u8309\u82f7\u82e4\u830f\u8307\u82dc\u82f4\u82d2\u82d8\u830c\u82fb\u82d3\u8311\u831a\u8306\u8314\u8315\u82e0\u82d5\u831c\u8351\u835b\u835c\u8308\u8392\u833c\u8334\u8331\u839b\u835e\u832f\u834f\u8347\u8343\u835f\u8340\u8317\u8360\u832d\u833a\u8333\u8366\u8365"],["dd40","\u8ee5",62],["dd80","\u8f24",32,"\u8368\u831b\u8369\u836c\u836a\u836d\u836e\u83b0\u8378\u83b3\u83b4\u83a0\u83aa\u8393\u839c\u8385\u837c\u83b6\u83a9\u837d\u83b8\u837b\u8398\u839e\u83a8\u83ba\u83bc\u83c1\u8401\u83e5\u83d8\u5807\u8418\u840b\u83dd\u83fd\u83d6\u841c\u8438\u8411\u8406\u83d4\u83df\u840f\u8403\u83f8\u83f9\u83ea\u83c5\u83c0\u8426\u83f0\u83e1\u845c\u8451\u845a\u8459\u8473\u8487\u8488\u847a\u8489\u8478\u843c\u8446\u8469\u8476\u848c\u848e\u8431\u846d\u84c1\u84cd\u84d0\u84e6\u84bd\u84d3\u84ca\u84bf\u84ba\u84e0\u84a1\u84b9\u84b4\u8497\u84e5\u84e3\u850c\u750d\u8538\u84f0\u8539\u851f\u853a"],["de40","\u8f45",32,"\u8f6a\u8f80\u8f8c\u8f92\u8f9d\u8fa0\u8fa1\u8fa2\u8fa4\u8fa5\u8fa6\u8fa7\u8faa\u8fac\u8fad\u8fae\u8faf\u8fb2\u8fb3\u8fb4\u8fb5\u8fb7\u8fb8\u8fba\u8fbb\u8fbc\u8fbf\u8fc0\u8fc3\u8fc6"],["de80","\u8fc9",4,"\u8fcf\u8fd2\u8fd6\u8fd7\u8fda\u8fe0\u8fe1\u8fe3\u8fe7\u8fec\u8fef\u8ff1\u8ff2\u8ff4\u8ff5\u8ff6\u8ffa\u8ffb\u8ffc\u8ffe\u8fff\u9007\u9008\u900c\u900e\u9013\u9015\u9018\u8556\u853b\u84ff\u84fc\u8559\u8548\u8568\u8564\u855e\u857a\u77a2\u8543\u8572\u857b\u85a4\u85a8\u8587\u858f\u8579\u85ae\u859c\u8585\u85b9\u85b7\u85b0\u85d3\u85c1\u85dc\u85ff\u8627\u8605\u8629\u8616\u863c\u5efe\u5f08\u593c\u5941\u8037\u5955\u595a\u5958\u530f\u5c22\u5c25\u5c2c\u5c34\u624c\u626a\u629f\u62bb\u62ca\u62da\u62d7\u62ee\u6322\u62f6\u6339\u634b\u6343\u63ad\u63f6\u6371\u637a\u638e\u63b4\u636d\u63ac\u638a\u6369\u63ae\u63bc\u63f2\u63f8\u63e0\u63ff\u63c4\u63de\u63ce\u6452\u63c6\u63be\u6445\u6441\u640b\u641b\u6420\u640c\u6426\u6421\u645e\u6484\u646d\u6496"],["df40","\u9019\u901c\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903a\u903d\u903f\u9040\u9043\u9045\u9046\u9048",4,"\u904e\u9054\u9055\u9056\u9059\u905a\u905c",5,"\u9064\u9066\u9067\u9069\u906a\u906b\u906c\u906f",4,"\u9076",6,"\u907e\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908a\u908c",4,"\u9092\u9094\u9096\u9098\u909a\u909c\u909e\u909f\u90a0\u90a4\u90a5\u90a7\u90a8\u90a9\u90ab\u90ad\u90b2\u90b7\u90bc\u90bd\u90bf\u90c0\u647a\u64b7\u64b8\u6499\u64ba\u64c0\u64d0\u64d7\u64e4\u64e2\u6509\u6525\u652e\u5f0b\u5fd2\u7519\u5f11\u535f\u53f1\u53fd\u53e9\u53e8\u53fb\u5412\u5416\u5406\u544b\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549a\u549b\u5484\u5476\u5466\u549d\u54d0\u54ad\u54c2\u54b4\u54d2\u54a7\u54a6\u54d3\u54d4\u5472\u54a3\u54d5\u54bb\u54bf\u54cc\u54d9\u54da\u54dc\u54a9\u54aa\u54a4\u54dd\u54cf\u54de\u551b\u54e7\u5520\u54fd\u5514\u54f3\u5522\u5523\u550f\u5511\u5527\u552a\u5567\u558f\u55b5\u5549\u556d\u5541\u5555\u553f\u5550\u553c"],["e040","\u90c2\u90c3\u90c6\u90c8\u90c9\u90cb\u90cc\u90cd\u90d2\u90d4\u90d5\u90d6\u90d8\u90d9\u90da\u90de\u90df\u90e0\u90e3\u90e4\u90e5\u90e9\u90ea\u90ec\u90ee\u90f0\u90f1\u90f2\u90f3\u90f5\u90f6\u90f7\u90f9\u90fa\u90fb\u90fc\u90ff\u9100\u9101\u9103\u9105",19,"\u911a\u911b\u911c"],["e080","\u911d\u911f\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913a",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555c\u558b\u55d2\u5583\u55b1\u55b9\u5588\u5581\u559f\u557e\u55d6\u5591\u557b\u55df\u55bd\u55be\u5594\u5599\u55ea\u55f7\u55c9\u561f\u55d1\u55eb\u55ec\u55d4\u55e6\u55dd\u55c4\u55ef\u55e5\u55f2\u55f3\u55cc\u55cd\u55e8\u55f5\u55e4\u8f94\u561e\u5608\u560c\u5601\u5624\u5623\u55fe\u5600\u5627\u562d\u5658\u5639\u5657\u562c\u564d\u5662\u5659\u565c\u564c\u5654\u5686\u5664\u5671\u566b\u567b\u567c\u5685\u5693\u56af\u56d4\u56d7\u56dd\u56e1\u56f5\u56eb\u56f9\u56ff\u5704\u570a\u5709\u571c\u5e0f\u5e19\u5e14\u5e11\u5e31\u5e3b\u5e3c"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915b\u915c\u915f\u9160\u9166\u9167\u9168\u916b\u916d\u9173\u917a\u917b\u917c\u9180",4,"\u9186\u9188\u918a\u918e\u918f\u9193",6,"\u919c",5,"\u91a4",5,"\u91ab\u91ac\u91b0\u91b1\u91b2\u91b3\u91b6\u91b7\u91b8\u91b9\u91bb"],["e180","\u91bc",10,"\u91c8\u91cb\u91d0\u91d2",9,"\u91dd",8,"\u5e37\u5e44\u5e54\u5e5b\u5e5e\u5e61\u5c8c\u5c7a\u5c8d\u5c90\u5c96\u5c88\u5c98\u5c99\u5c91\u5c9a\u5c9c\u5cb5\u5ca2\u5cbd\u5cac\u5cab\u5cb1\u5ca3\u5cc1\u5cb7\u5cc4\u5cd2\u5ce4\u5ccb\u5ce5\u5d02\u5d03\u5d27\u5d26\u5d2e\u5d24\u5d1e\u5d06\u5d1b\u5d58\u5d3e\u5d34\u5d3d\u5d6c\u5d5b\u5d6f\u5d5d\u5d6b\u5d4b\u5d4a\u5d69\u5d74\u5d82\u5d99\u5d9d\u8c73\u5db7\u5dc5\u5f73\u5f77\u5f82\u5f87\u5f89\u5f8c\u5f95\u5f99\u5f9c\u5fa8\u5fad\u5fb5\u5fbc\u8862\u5f61\u72ad\u72b0\u72b4\u72b7\u72b8\u72c3\u72c1\u72ce\u72cd\u72d2\u72e8\u72ef\u72e9\u72f2\u72f4\u72f7\u7301\u72f3\u7303\u72fa"],["e240","\u91e6",62],["e280","\u9225",32,"\u72fb\u7317\u7313\u7321\u730a\u731e\u731d\u7315\u7322\u7339\u7325\u732c\u7338\u7331\u7350\u734d\u7357\u7360\u736c\u736f\u737e\u821b\u5925\u98e7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997d\u9980\u9984\u9987\u998a\u998d\u9990\u9991\u9993\u9994\u9995\u5e80\u5e91\u5e8b\u5e96\u5ea5\u5ea0\u5eb9\u5eb5\u5ebe\u5eb3\u8d53\u5ed2\u5ed1\u5edb\u5ee8\u5eea\u81ba\u5fc4\u5fc9\u5fd6\u5fcf\u6003\u5fee\u6004\u5fe1\u5fe4\u5ffe\u6005\u6006\u5fea\u5fed\u5ff8\u6019\u6035\u6026\u601b\u600f\u600d\u6029\u602b\u600a\u603f\u6021\u6078\u6079\u607b\u607a\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928f",24,"\u606a\u607d\u6096\u609a\u60ad\u609d\u6083\u6092\u608c\u609b\u60ec\u60bb\u60b1\u60dd\u60d8\u60c6\u60da\u60b4\u6120\u6126\u6115\u6123\u60f4\u6100\u610e\u612b\u614a\u6175\u61ac\u6194\u61a7\u61b7\u61d4\u61f5\u5fdd\u96b3\u95e9\u95eb\u95f1\u95f3\u95f5\u95f6\u95fc\u95fe\u9603\u9604\u9606\u9608\u960a\u960b\u960c\u960d\u960f\u9612\u9615\u9616\u9617\u9619\u961a\u4e2c\u723f\u6215\u6c35\u6c54\u6c5c\u6c4a\u6ca3\u6c85\u6c90\u6c94\u6c8c\u6c68\u6c69\u6c74\u6c76\u6c86\u6ca9\u6cd0\u6cd4\u6cad\u6cf7\u6cf8\u6cf1\u6cd7\u6cb2\u6ce0\u6cd6\u6cfa\u6ceb\u6cee\u6cb1\u6cd3\u6cef\u6cfe"],["e440","\u92a8",5,"\u92af",24,"\u92c9",31],["e480","\u92e9",32,"\u6d39\u6d27\u6d0c\u6d43\u6d48\u6d07\u6d04\u6d19\u6d0e\u6d2b\u6d4d\u6d2e\u6d35\u6d1a\u6d4f\u6d52\u6d54\u6d33\u6d91\u6d6f\u6d9e\u6da0\u6d5e\u6d93\u6d94\u6d5c\u6d60\u6d7c\u6d63\u6e1a\u6dc7\u6dc5\u6dde\u6e0e\u6dbf\u6de0\u6e11\u6de6\u6ddd\u6dd9\u6e16\u6dab\u6e0c\u6dae\u6e2b\u6e6e\u6e4e\u6e6b\u6eb2\u6e5f\u6e86\u6e53\u6e54\u6e32\u6e25\u6e44\u6edf\u6eb1\u6e98\u6ee0\u6f2d\u6ee2\u6ea5\u6ea7\u6ebd\u6ebb\u6eb7\u6ed7\u6eb4\u6ecf\u6e8f\u6ec2\u6e9f\u6f62\u6f46\u6f47\u6f24\u6f15\u6ef9\u6f2f\u6f36\u6f4b\u6f74\u6f2a\u6f09\u6f29\u6f89\u6f8d\u6f8c\u6f78\u6f72\u6f7c\u6f7a\u6fd1"],["e540","\u930a",51,"\u933f",10],["e580","\u934a",31,"\u936b\u6fc9\u6fa7\u6fb9\u6fb6\u6fc2\u6fe1\u6fee\u6fde\u6fe0\u6fef\u701a\u7023\u701b\u7039\u7035\u704f\u705e\u5b80\u5b84\u5b95\u5b93\u5ba5\u5bb8\u752f\u9a9e\u6434\u5be4\u5bee\u8930\u5bf0\u8e47\u8b07\u8fb6\u8fd3\u8fd5\u8fe5\u8fee\u8fe4\u8fe9\u8fe6\u8ff3\u8fe8\u9005\u9004\u900b\u9026\u9011\u900d\u9016\u9021\u9035\u9036\u902d\u902f\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905b\u66b9\u9074\u907d\u9082\u9088\u9083\u908b\u5f50\u5f57\u5f56\u5f58\u5c3b\u54ab\u5c50\u5c59\u5b71\u5c63\u5c66\u7fbc\u5f2a\u5f29\u5f2d\u8274\u5f3c\u9b3b\u5c6e\u5981\u5983\u598d\u59a9\u59aa\u59a3"],["e640","\u936c",34,"\u9390",27],["e680","\u93ac",29,"\u93cb\u93cc\u93cd\u5997\u59ca\u59ab\u599e\u59a4\u59d2\u59b2\u59af\u59d7\u59be\u5a05\u5a06\u59dd\u5a08\u59e3\u59d8\u59f9\u5a0c\u5a09\u5a32\u5a34\u5a11\u5a23\u5a13\u5a40\u5a67\u5a4a\u5a55\u5a3c\u5a62\u5a75\u80ec\u5aaa\u5a9b\u5a77\u5a7a\u5abe\u5aeb\u5ab2\u5ad2\u5ad4\u5ab8\u5ae0\u5ae3\u5af1\u5ad6\u5ae6\u5ad8\u5adc\u5b09\u5b17\u5b16\u5b32\u5b37\u5b40\u5c15\u5c1c\u5b5a\u5b65\u5b73\u5b51\u5b53\u5b62\u9a75\u9a77\u9a78\u9a7a\u9a7f\u9a7d\u9a80\u9a81\u9a85\u9a88\u9a8a\u9a90\u9a92\u9a93\u9a96\u9a98\u9a9b\u9a9c\u9a9d\u9a9f\u9aa0\u9aa2\u9aa3\u9aa5\u9aa7\u7e9f\u7ea1\u7ea3\u7ea5\u7ea8\u7ea9"],["e740","\u93ce",7,"\u93d7",54],["e780","\u940e",32,"\u7ead\u7eb0\u7ebe\u7ec0\u7ec1\u7ec2\u7ec9\u7ecb\u7ecc\u7ed0\u7ed4\u7ed7\u7edb\u7ee0\u7ee1\u7ee8\u7eeb\u7eee\u7eef\u7ef1\u7ef2\u7f0d\u7ef6\u7efa\u7efb\u7efe\u7f01\u7f02\u7f03\u7f07\u7f08\u7f0b\u7f0c\u7f0f\u7f11\u7f12\u7f17\u7f19\u7f1c\u7f1b\u7f1f\u7f21",6,"\u7f2a\u7f2b\u7f2c\u7f2d\u7f2f",4,"\u7f35\u5e7a\u757f\u5ddb\u753e\u9095\u738e\u7391\u73ae\u73a2\u739f\u73cf\u73c2\u73d1\u73b7\u73b3\u73c0\u73c9\u73c8\u73e5\u73d9\u987c\u740a\u73e9\u73e7\u73de\u73ba\u73f2\u740f\u742a\u745b\u7426\u7425\u7428\u7430\u742e\u742c"],["e840","\u942f",14,"\u943f",43,"\u946c\u946d\u946e\u946f"],["e880","\u9470",20,"\u9491\u9496\u9498\u94c7\u94cf\u94d3\u94d4\u94da\u94e6\u94fb\u951c\u9520\u741b\u741a\u7441\u745c\u7457\u7455\u7459\u7477\u746d\u747e\u749c\u748e\u7480\u7481\u7487\u748b\u749e\u74a8\u74a9\u7490\u74a7\u74d2\u74ba\u97ea\u97eb\u97ec\u674c\u6753\u675e\u6748\u6769\u67a5\u6787\u676a\u6773\u6798\u67a7\u6775\u67a8\u679e\u67ad\u678b\u6777\u677c\u67f0\u6809\u67d8\u680a\u67e9\u67b0\u680c\u67d9\u67b5\u67da\u67b3\u67dd\u6800\u67c3\u67b8\u67e2\u680e\u67c1\u67fd\u6832\u6833\u6860\u6861\u684e\u6862\u6844\u6864\u6883\u681d\u6855\u6866\u6841\u6867\u6840\u683e\u684a\u6849\u6829\u68b5\u688f\u6874\u6877\u6893\u686b\u68c2\u696e\u68fc\u691f\u6920\u68f9"],["e940","\u9527\u9533\u953d\u9543\u9548\u954b\u9555\u955a\u9560\u956e\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95ab",32,"\u6924\u68f0\u690b\u6901\u6957\u68e3\u6910\u6971\u6939\u6960\u6942\u695d\u6984\u696b\u6980\u6998\u6978\u6934\u69cc\u6987\u6988\u69ce\u6989\u6966\u6963\u6979\u699b\u69a7\u69bb\u69ab\u69ad\u69d4\u69b1\u69c1\u69ca\u69df\u6995\u69e0\u698d\u69ff\u6a2f\u69ed\u6a17\u6a18\u6a65\u69f2\u6a44\u6a3e\u6aa0\u6a50\u6a5b\u6a35\u6a8e\u6a79\u6a3d\u6a28\u6a58\u6a7c\u6a91\u6a90\u6aa9\u6a97\u6aab\u7337\u7352\u6b81\u6b82\u6b87\u6b84\u6b92\u6b93\u6b8d\u6b9a\u6b9b\u6ba1\u6baa\u8f6b\u8f6d\u8f71\u8f72\u8f73\u8f75\u8f76\u8f78\u8f77\u8f79\u8f7a\u8f7c\u8f7e\u8f81\u8f82\u8f84\u8f87\u8f8b"],["ea40","\u95cc",27,"\u95ec\u95ff\u9607\u9613\u9618\u961b\u961e\u9620\u9623",6,"\u962b\u962c\u962d\u962f\u9630\u9637\u9638\u9639\u963a\u963e\u9641\u9643\u964a\u964e\u964f\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965a\u965c\u965d\u965e\u9660\u9663\u9665\u9666\u966b\u966d",4,"\u9673\u9678",12,"\u9687\u9689\u968a\u8f8d\u8f8e\u8f8f\u8f98\u8f9a\u8ece\u620b\u6217\u621b\u621f\u6222\u6221\u6225\u6224\u622c\u81e7\u74ef\u74f4\u74ff\u750f\u7511\u7513\u6534\u65ee\u65ef\u65f0\u660a\u6619\u6772\u6603\u6615\u6600\u7085\u66f7\u661d\u6634\u6631\u6636\u6635\u8006\u665f\u6654\u6641\u664f\u6656\u6661\u6657\u6677\u6684\u668c\u66a7\u669d\u66be\u66db\u66dc\u66e6\u66e9\u8d32\u8d33\u8d36\u8d3b\u8d3d\u8d40\u8d45\u8d46\u8d48\u8d49\u8d47\u8d4d\u8d55\u8d59\u89c7\u89ca\u89cb\u89cc\u89ce\u89cf\u89d0\u89d1\u726e\u729f\u725d\u7266\u726f\u727e\u727f\u7284\u728b\u728d\u728f\u7292\u6308\u6332\u63b0"],["eb40","\u968c\u968e\u9691\u9692\u9693\u9695\u9696\u969a\u969b\u969d",9,"\u96a8",7,"\u96b1\u96b2\u96b4\u96b5\u96b7\u96b8\u96ba\u96bb\u96bf\u96c2\u96c3\u96c8\u96ca\u96cb\u96d0\u96d1\u96d3\u96d4\u96d6",9,"\u96e1",6,"\u96eb"],["eb80","\u96ec\u96ed\u96ee\u96f0\u96f1\u96f2\u96f4\u96f5\u96f8\u96fa\u96fb\u96fc\u96fd\u96ff\u9702\u9703\u9705\u970a\u970b\u970c\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971d\u971f\u9720\u643f\u64d8\u8004\u6bea\u6bf3\u6bfd\u6bf5\u6bf9\u6c05\u6c07\u6c06\u6c0d\u6c15\u6c18\u6c19\u6c1a\u6c21\u6c29\u6c24\u6c2a\u6c32\u6535\u6555\u656b\u724d\u7252\u7256\u7230\u8662\u5216\u809f\u809c\u8093\u80bc\u670a\u80bd\u80b1\u80ab\u80ad\u80b4\u80b7\u80e7\u80e8\u80e9\u80ea\u80db\u80c2\u80c4\u80d9\u80cd\u80d7\u6710\u80dd\u80eb\u80f1\u80f4\u80ed\u810d\u810e\u80f2\u80fc\u6715\u8112\u8c5a\u8136\u811e\u812c\u8118\u8132\u8148\u814c\u8153\u8174\u8159\u815a\u8171\u8160\u8169\u817c\u817d\u816d\u8167\u584d\u5ab5\u8188\u8182\u8191\u6ed5\u81a3\u81aa\u81cc\u6726\u81ca\u81bb"],["ec40","\u9721",8,"\u972b\u972c\u972e\u972f\u9731\u9733",4,"\u973a\u973b\u973c\u973d\u973f",18,"\u9754\u9755\u9757\u9758\u975a\u975c\u975d\u975f\u9763\u9764\u9766\u9767\u9768\u976a",7],["ec80","\u9772\u9775\u9777",4,"\u977d",7,"\u9786",4,"\u978c\u978e\u978f\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81c1\u81a6\u6b24\u6b37\u6b39\u6b43\u6b46\u6b59\u98d1\u98d2\u98d3\u98d5\u98d9\u98da\u6bb3\u5f40\u6bc2\u89f3\u6590\u9f51\u6593\u65bc\u65c6\u65c4\u65c3\u65cc\u65ce\u65d2\u65d6\u7080\u709c\u7096\u709d\u70bb\u70c0\u70b7\u70ab\u70b1\u70e8\u70ca\u7110\u7113\u7116\u712f\u7131\u7173\u715c\u7168\u7145\u7172\u714a\u7178\u717a\u7198\u71b3\u71b5\u71a8\u71a0\u71e0\u71d4\u71e7\u71f9\u721d\u7228\u706c\u7118\u7166\u71b9\u623e\u623d\u6243\u6248\u6249\u793b\u7940\u7946\u7949\u795b\u795c\u7953\u795a\u7962\u7957\u7960\u796f\u7967\u797a\u7985\u798a\u799a\u79a7\u79b3\u5fd1\u5fd0"],["ed40","\u979e\u979f\u97a1\u97a2\u97a4",6,"\u97ac\u97ae\u97b0\u97b1\u97b3\u97b5",46],["ed80","\u97e4\u97e5\u97e8\u97ee",4,"\u97f4\u97f7",23,"\u603c\u605d\u605a\u6067\u6041\u6059\u6063\u60ab\u6106\u610d\u615d\u61a9\u619d\u61cb\u61d1\u6206\u8080\u807f\u6c93\u6cf6\u6dfc\u77f6\u77f8\u7800\u7809\u7817\u7818\u7811\u65ab\u782d\u781c\u781d\u7839\u783a\u783b\u781f\u783c\u7825\u782c\u7823\u7829\u784e\u786d\u7856\u7857\u7826\u7850\u7847\u784c\u786a\u789b\u7893\u789a\u7887\u789c\u78a1\u78a3\u78b2\u78b9\u78a5\u78d4\u78d9\u78c9\u78ec\u78f2\u7905\u78f4\u7913\u7924\u791e\u7934\u9f9b\u9ef9\u9efb\u9efc\u76f1\u7704\u770d\u76f9\u7707\u7708\u771a\u7722\u7719\u772d\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775a\u7768"],["ee40","\u980f",62],["ee80","\u984e",32,"\u7762\u7765\u777f\u778d\u777d\u7780\u778c\u7791\u779f\u77a0\u77b0\u77b5\u77bd\u753a\u7540\u754e\u754b\u7548\u755b\u7572\u7579\u7583\u7f58\u7f61\u7f5f\u8a48\u7f68\u7f74\u7f71\u7f79\u7f81\u7f7e\u76cd\u76e5\u8832\u9485\u9486\u9487\u948b\u948a\u948c\u948d\u948f\u9490\u9494\u9497\u9495\u949a\u949b\u949c\u94a3\u94a4\u94ab\u94aa\u94ad\u94ac\u94af\u94b0\u94b2\u94b4\u94b6",4,"\u94bc\u94bd\u94bf\u94c4\u94c8",6,"\u94d0\u94d1\u94d2\u94d5\u94d6\u94d7\u94d9\u94d8\u94db\u94de\u94df\u94e0\u94e2\u94e4\u94e5\u94e7\u94e8\u94ea"],["ef40","\u986f",5,"\u988b\u988e\u9892\u9895\u9899\u98a3\u98a8",37,"\u98cf\u98d0\u98d4\u98d6\u98d7\u98db\u98dc\u98dd\u98e0",4],["ef80","\u98e5\u98e6\u98e9",30,"\u94e9\u94eb\u94ee\u94ef\u94f3\u94f4\u94f5\u94f7\u94f9\u94fc\u94fd\u94ff\u9503\u9502\u9506\u9507\u9509\u950a\u950d\u950e\u950f\u9512",4,"\u9518\u951b\u951d\u951e\u951f\u9522\u952a\u952b\u9529\u952c\u9531\u9532\u9534\u9536\u9537\u9538\u953c\u953e\u953f\u9542\u9535\u9544\u9545\u9546\u9549\u954c\u954e\u954f\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955b\u955e\u955f\u955d\u9561\u9562\u9564",8,"\u956f\u9571\u9572\u9573\u953a\u77e7\u77ec\u96c9\u79d5\u79ed\u79e3\u79eb\u7a06\u5d47\u7a03\u7a02\u7a1e\u7a14"],["f040","\u9908",4,"\u990e\u990f\u9911",28,"\u992f",26],["f080","\u994a",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997b\u997e\u9982\u9983\u9989\u7a39\u7a37\u7a51\u9ecf\u99a5\u7a70\u7688\u768e\u7693\u7699\u76a4\u74de\u74e0\u752c\u9e20\u9e22\u9e28",4,"\u9e32\u9e31\u9e36\u9e38\u9e37\u9e39\u9e3a\u9e3e\u9e41\u9e42\u9e44\u9e46\u9e47\u9e48\u9e49\u9e4b\u9e4c\u9e4e\u9e51\u9e55\u9e57\u9e5a\u9e5b\u9e5c\u9e5e\u9e63\u9e66",6,"\u9e71\u9e6d\u9e73\u7592\u7594\u7596\u75a0\u759d\u75ac\u75a3\u75b3\u75b4\u75b8\u75c4\u75b1\u75b0\u75c3\u75c2\u75d6\u75cd\u75e3\u75e8\u75e6\u75e4\u75eb\u75e7\u7603\u75f1\u75fc\u75ff\u7610\u7600\u7605\u760c\u7617\u760a\u7625\u7618\u7615\u7619"],["f140","\u998c\u998e\u999a",10,"\u99a6\u99a7\u99a9",47],["f180","\u99d9",32,"\u761b\u763c\u7622\u7620\u7640\u762d\u7630\u763f\u7635\u7643\u763e\u7633\u764d\u765e\u7654\u765c\u7656\u766b\u766f\u7fca\u7ae6\u7a78\u7a79\u7a80\u7a86\u7a88\u7a95\u7aa6\u7aa0\u7aac\u7aa8\u7aad\u7ab3\u8864\u8869\u8872\u887d\u887f\u8882\u88a2\u88c6\u88b7\u88bc\u88c9\u88e2\u88ce\u88e3\u88e5\u88f1\u891a\u88fc\u88e8\u88fe\u88f0\u8921\u8919\u8913\u891b\u890a\u8934\u892b\u8936\u8941\u8966\u897b\u758b\u80e5\u76b2\u76b4\u77dc\u8012\u8014\u8016\u801c\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800b\u8035\u8043\u8046\u804d\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99fa",62],["f280","\u9a39",32,"\u9889\u988c\u988d\u988f\u9894\u989a\u989b\u989e\u989f\u98a1\u98a2\u98a5\u98a6\u864d\u8654\u866c\u866e\u867f\u867a\u867c\u867b\u86a8\u868d\u868b\u86ac\u869d\u86a7\u86a3\u86aa\u8693\u86a9\u86b6\u86c4\u86b5\u86ce\u86b0\u86ba\u86b1\u86af\u86c9\u86cf\u86b4\u86e9\u86f1\u86f2\u86ed\u86f3\u86d0\u8713\u86de\u86f4\u86df\u86d8\u86d1\u8703\u8707\u86f8\u8708\u870a\u870d\u8709\u8723\u873b\u871e\u8725\u872e\u871a\u873e\u8748\u8734\u8731\u8729\u8737\u873f\u8782\u8722\u877d\u877e\u877b\u8760\u8770\u874c\u876e\u878b\u8753\u8763\u877c\u8764\u8759\u8765\u8793\u87af\u87a8\u87d2"],["f340","\u9a5a",17,"\u9a72\u9a83\u9a89\u9a8d\u9a8e\u9a94\u9a95\u9a99\u9aa6\u9aa9",6,"\u9ab2\u9ab3\u9ab4\u9ab5\u9ab9\u9abb\u9abd\u9abe\u9abf\u9ac3\u9ac4\u9ac6",4,"\u9acd\u9ace\u9acf\u9ad0\u9ad2\u9ad4\u9ad5\u9ad6\u9ad7\u9ad9\u9ada\u9adb\u9adc"],["f380","\u9add\u9ade\u9ae0\u9ae2\u9ae3\u9ae4\u9ae5\u9ae7\u9ae8\u9ae9\u9aea\u9aec\u9aee\u9af0",8,"\u9afa\u9afc",6,"\u9b04\u9b05\u9b06\u87c6\u8788\u8785\u87ad\u8797\u8783\u87ab\u87e5\u87ac\u87b5\u87b3\u87cb\u87d3\u87bd\u87d1\u87c0\u87ca\u87db\u87ea\u87e0\u87ee\u8816\u8813\u87fe\u880a\u881b\u8821\u8839\u883c\u7f36\u7f42\u7f44\u7f45\u8210\u7afa\u7afd\u7b08\u7b03\u7b04\u7b15\u7b0a\u7b2b\u7b0f\u7b47\u7b38\u7b2a\u7b19\u7b2e\u7b31\u7b20\u7b25\u7b24\u7b33\u7b3e\u7b1e\u7b58\u7b5a\u7b45\u7b75\u7b4c\u7b5d\u7b60\u7b6e\u7b7b\u7b62\u7b72\u7b71\u7b90\u7ba6\u7ba7\u7bb8\u7bac\u7b9d\u7ba8\u7b85\u7baa\u7b9c\u7ba2\u7bab\u7bb4\u7bd1\u7bc1\u7bcc\u7bdd\u7bda\u7be5\u7be6\u7bea\u7c0c\u7bfe\u7bfc\u7c0f\u7c16\u7c0b"],["f440","\u9b07\u9b09",5,"\u9b10\u9b11\u9b12\u9b14",10,"\u9b20\u9b21\u9b22\u9b24",10,"\u9b30\u9b31\u9b33",7,"\u9b3d\u9b3e\u9b3f\u9b40\u9b46\u9b4a\u9b4b\u9b4c\u9b4e\u9b50\u9b52\u9b53\u9b55",5],["f480","\u9b5b",32,"\u7c1f\u7c2a\u7c26\u7c38\u7c41\u7c40\u81fe\u8201\u8202\u8204\u81ec\u8844\u8221\u8222\u8223\u822d\u822f\u8228\u822b\u8238\u823b\u8233\u8234\u823e\u8244\u8249\u824b\u824f\u825a\u825f\u8268\u887e\u8885\u8888\u88d8\u88df\u895e\u7f9d\u7f9f\u7fa7\u7faf\u7fb0\u7fb2\u7c7c\u6549\u7c91\u7c9d\u7c9c\u7c9e\u7ca2\u7cb2\u7cbc\u7cbd\u7cc1\u7cc7\u7ccc\u7ccd\u7cc8\u7cc5\u7cd7\u7ce8\u826e\u66a8\u7fbf\u7fce\u7fd5\u7fe5\u7fe1\u7fe6\u7fe9\u7fee\u7ff3\u7cf8\u7d77\u7da6\u7dae\u7e47\u7e9b\u9eb8\u9eb4\u8d73\u8d84\u8d94\u8d91\u8db1\u8d67\u8d6d\u8c47\u8c49\u914a\u9150\u914e\u914f\u9164"],["f540","\u9b7c",62],["f580","\u9bbb",32,"\u9162\u9161\u9170\u9169\u916f\u917d\u917e\u9172\u9174\u9179\u918c\u9185\u9190\u918d\u9191\u91a2\u91a3\u91aa\u91ad\u91ae\u91af\u91b5\u91b4\u91ba\u8c55\u9e7e\u8db8\u8deb\u8e05\u8e59\u8e69\u8db5\u8dbf\u8dbc\u8dba\u8dc4\u8dd6\u8dd7\u8dda\u8dde\u8dce\u8dcf\u8ddb\u8dc6\u8dec\u8df7\u8df8\u8de3\u8df9\u8dfb\u8de4\u8e09\u8dfd\u8e14\u8e1d\u8e1f\u8e2c\u8e2e\u8e23\u8e2f\u8e3a\u8e40\u8e39\u8e35\u8e3d\u8e31\u8e49\u8e41\u8e42\u8e51\u8e52\u8e4a\u8e70\u8e76\u8e7c\u8e6f\u8e74\u8e85\u8e8f\u8e94\u8e90\u8e9c\u8e9e\u8c78\u8c82\u8c8a\u8c85\u8c98\u8c94\u659b\u89d6\u89de\u89da\u89dc"],["f640","\u9bdc",62],["f680","\u9c1b",32,"\u89e5\u89eb\u89ef\u8a3e\u8b26\u9753\u96e9\u96f3\u96ef\u9706\u9701\u9708\u970f\u970e\u972a\u972d\u9730\u973e\u9f80\u9f83\u9f85",5,"\u9f8c\u9efe\u9f0b\u9f0d\u96b9\u96bc\u96bd\u96ce\u96d2\u77bf\u96e0\u928e\u92ae\u92c8\u933e\u936a\u93ca\u938f\u943e\u946b\u9c7f\u9c82\u9c85\u9c86\u9c87\u9c88\u7a23\u9c8b\u9c8e\u9c90\u9c91\u9c92\u9c94\u9c95\u9c9a\u9c9b\u9c9e",5,"\u9ca5",4,"\u9cab\u9cad\u9cae\u9cb0",7,"\u9cba\u9cbb\u9cbc\u9cbd\u9cc4\u9cc5\u9cc6\u9cc7\u9cca\u9ccb"],["f740","\u9c3c",62],["f780","\u9c7b\u9c7d\u9c7e\u9c80\u9c83\u9c84\u9c89\u9c8a\u9c8c\u9c8f\u9c93\u9c96\u9c97\u9c98\u9c99\u9c9d\u9caa\u9cac\u9caf\u9cb9\u9cbe",4,"\u9cc8\u9cc9\u9cd1\u9cd2\u9cda\u9cdb\u9ce0\u9ce1\u9ccc",4,"\u9cd3\u9cd4\u9cd5\u9cd7\u9cd8\u9cd9\u9cdc\u9cdd\u9cdf\u9ce2\u977c\u9785\u9791\u9792\u9794\u97af\u97ab\u97a3\u97b2\u97b4\u9ab1\u9ab0\u9ab7\u9e58\u9ab6\u9aba\u9abc\u9ac1\u9ac0\u9ac5\u9ac2\u9acb\u9acc\u9ad1\u9b45\u9b43\u9b47\u9b49\u9b48\u9b4d\u9b51\u98e8\u990d\u992e\u9955\u9954\u9adf\u9ae1\u9ae6\u9aef\u9aeb\u9afb\u9aed\u9af9\u9b08\u9b0f\u9b13\u9b1f\u9b23\u9ebd\u9ebe\u7e3b\u9e82\u9e87\u9e88\u9e8b\u9e92\u93d6\u9e9d\u9e9f\u9edb\u9edc\u9edd\u9ee0\u9edf\u9ee2\u9ee9\u9ee7\u9ee5\u9eea\u9eef\u9f22\u9f2c\u9f2f\u9f39\u9f37\u9f3d\u9f3e\u9f44"],["f840","\u9ce3",62],["f880","\u9d22",32],["f940","\u9d43",62],["f980","\u9d82",32],["fa40","\u9da3",62],["fa80","\u9de2",32],["fb40","\u9e03",27,"\u9e24\u9e27\u9e2e\u9e30\u9e34\u9e3b\u9e3c\u9e40\u9e4d\u9e50\u9e52\u9e53\u9e54\u9e56\u9e59\u9e5d\u9e5f\u9e60\u9e61\u9e62\u9e65\u9e6e\u9e6f\u9e72\u9e74",9,"\u9e80"],["fb80","\u9e81\u9e83\u9e84\u9e85\u9e86\u9e89\u9e8a\u9e8c",5,"\u9e94",8,"\u9e9e\u9ea0",5,"\u9ea7\u9ea8\u9ea9\u9eaa"],["fc40","\u9eab",8,"\u9eb5\u9eb6\u9eb7\u9eb9\u9eba\u9ebc\u9ebf",4,"\u9ec5\u9ec6\u9ec7\u9ec8\u9eca\u9ecb\u9ecc\u9ed0\u9ed2\u9ed3\u9ed5\u9ed6\u9ed7\u9ed9\u9eda\u9ede\u9ee1\u9ee3\u9ee4\u9ee6\u9ee8\u9eeb\u9eec\u9eed\u9eee\u9ef0",8,"\u9efa\u9efd\u9eff",6],["fc80","\u9f06",4,"\u9f0c\u9f0f\u9f11\u9f12\u9f14\u9f15\u9f16\u9f18\u9f1a",5,"\u9f21\u9f23",8,"\u9f2d\u9f2e\u9f30\u9f31"],["fd40","\u9f32",4,"\u9f38\u9f3a\u9f3c\u9f3f",4,"\u9f45",10,"\u9f52",38],["fd80","\u9f79",5,"\u9f81\u9f82\u9f8d",11,"\u9f9c\u9f9d\u9f9e\u9fa1",4,"\uf92c\uf979\uf995\uf9e7\uf9f1"],["fe40","\ufa0c\ufa0d\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa18\ufa1f\ufa20\ufa21\ufa23\ufa24\ufa27\ufa28\ufa29"]]')},74516:function(T,e,l){var v=l(15567),h=l(95892),f=l(21182),_=l(47044),b=RegExp.prototype;v&&_(function(){return"sy"!==Object.getOwnPropertyDescriptor(b,"flags").get.call({dotAll:!0,sticky:!0})})&&h.f(b,"flags",{configurable:!0,get:f})},74841:function(T,e,l){var v=l(26882),h=Math.max,f=Math.min;T.exports=function(_,b){var y=v(_);return y<0?h(y+b,0):f(y,b)}},74846:function(T,e,l){var v=l(47044),f=l(32010).RegExp;e.UNSUPPORTED_Y=v(function(){var _=f("a","y");return _.lastIndex=2,null!=_.exec("abcd")}),e.BROKEN_CARET=v(function(){var _=f("^r","gy");return _.lastIndex=2,null!=_.exec("str")})},74878:function(T,e,l){!function(){var v;if(T.exports&&!l.g.xmldocAssumeBrowser)v=l(61733);else if(!(v=this.sax))throw new Error("Expected sax to be defined. Make sure you're including sax.js before this file.");function h(H,G){if(!G){var W=M[M.length-1];W.parser&&(G=W.parser)}this.name=H.name,this.attr=H.attributes,this.val="",this.children=[],this.firstChild=null,this.lastChild=null,this.line=G?G.line:null,this.column=G?G.column:null,this.position=G?G.position:null,this.startTagPosition=G?G.startTagPosition:null}function f(H){this.text=H}function _(H){this.cdata=H}function b(H){this.comment=H}function y(H){if(H&&(H=H.toString().trim()),!H)throw new Error("No XML to parse!");this.doctype="",this.parser=v.parser(!0),function D(H){H.onopentag=x,H.onclosetag=k,H.ontext=Q,H.oncdata=I,H.oncomment=d,H.ondoctype=S,H.onerror=R}(this.parser),M=[this];try{this.parser.write(H)}finally{delete this.parser}}h.prototype._addChild=function(H){this.children.push(H),this.firstChild||(this.firstChild=H),this.lastChild=H},h.prototype._opentag=function(H){var G=new h(H);this._addChild(G),M.unshift(G)},h.prototype._closetag=function(){M.shift()},h.prototype._text=function(H){typeof this.children>"u"||(this.val+=H,this._addChild(new f(H)))},h.prototype._cdata=function(H){this.val+=H,this._addChild(new _(H))},h.prototype._comment=function(H){typeof this.children>"u"||this._addChild(new b(H))},h.prototype._error=function(H){throw H},h.prototype.eachChild=function(H,G){for(var W=0,te=this.children.length;W1?W.attr[G[1]]:W.val},h.prototype.toString=function(H){return this.toStringWithIndent("",H)},h.prototype.toStringWithIndent=function(H,G){var W=H+"<"+this.name,te=G&&G.compressed?"":"\n";for(var J in this.attr)Object.prototype.hasOwnProperty.call(this.attr,J)&&(W+=" "+J+'="'+q(this.attr[J])+'"');if(1===this.children.length&&"element"!==this.children[0].type)W+=">"+this.children[0].toString(G)+"";else if(this.children.length){W+=">"+te;for(var j=H+(G&&G.compressed?"":" "),re=0,he=this.children.length;re"}else G&&G.html?-1!==["area","base","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"].indexOf(this.name)?W+="/>":W+=">":W+="/>";return W},f.prototype.toString=function(H){return Z(q(this.text),H)},f.prototype.toStringWithIndent=function(H,G){return H+this.toString(G)},_.prototype.toString=function(H){return""},_.prototype.toStringWithIndent=function(H,G){return H+this.toString(G)},b.prototype.toString=function(H){return"\x3c!--"+Z(q(this.comment),H)+"--\x3e"},b.prototype.toStringWithIndent=function(H,G){return H+this.toString(G)},h.prototype.type="element",f.prototype.type="text",_.prototype.type="cdata",b.prototype.type="comment",function z(H,G){for(var W in G)G.hasOwnProperty(W)&&(H[W]=G[W])}(y.prototype,h.prototype),y.prototype._opentag=function(H){typeof this.children>"u"?h.call(this,H):h.prototype._opentag.apply(this,arguments)},y.prototype._doctype=function(H){this.doctype+=H};var M=null;function x(){M[0]&&M[0]._opentag.apply(M[0],arguments)}function k(){M[0]&&M[0]._closetag.apply(M[0],arguments)}function Q(){M[0]&&M[0]._text.apply(M[0],arguments)}function I(){M[0]&&M[0]._cdata.apply(M[0],arguments)}function d(){M[0]&&M[0]._comment.apply(M[0],arguments)}function S(){M[0]&&M[0]._doctype.apply(M[0],arguments)}function R(){M[0]&&M[0]._error.apply(M[0],arguments)}function q(H){return H.toString().replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")}function Z(H,G){var W=H;return G&&G.trimmed&&H.length>25&&(W=W.substring(0,25).trim()+"\u2026"),G&&G.preserveWhitespace||(W=W.trim()),W}T.exports&&!l.g.xmldocAssumeBrowser?(T.exports.XmlDocument=y,T.exports.XmlElement=h,T.exports.XmlTextNode=f,T.exports.XmlCDataNode=_,T.exports.XmlCommentNode=b):(this.XmlDocument=y,this.XmlElement=h,this.XmlTextNode=f,this.XmlCDataNode=_,this.XmlCommentNode=b)}()},75041:function(T){"use strict";T.exports=function(){function l(h){this.type=h}var v=l.prototype;return v.decode=function(f,_){return!!this.type.decode(f,_)},v.size=function(f,_){return this.type.size(f,_)},v.encode=function(f,_,b){return this.type.encode(f,+_,b)},l}()},75174:function(T,e,l){var v=l(56475),h=l(55481),f=l(47044),_=l(24517),b=l(62148).onFreeze,y=Object.freeze;v({target:"Object",stat:!0,forced:f(function(){y(1)}),sham:!h},{freeze:function(x){return y&&_(x)?y(b(x)):x}})},75626:function(T,e,l){l(98828)("Int16",function(h){return function(_,b,y){return h(this,_,b,y)}})},75846:function(T){"use strict";T.exports=Object},75874:function(T){"use strict";T.exports=Math.pow},75891:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(66947),l(68319),l(82747),l(51270),function(){var h=v,_=h.lib.StreamCipher,y=[],M=[],D=[],x=h.algo.RabbitLegacy=_.extend({_doReset:function(){var I=this._key.words,d=this.cfg.iv,S=this._X=[I[0],I[3]<<16|I[2]>>>16,I[1],I[0]<<16|I[3]>>>16,I[2],I[1]<<16|I[0]>>>16,I[3],I[2]<<16|I[1]>>>16],R=this._C=[I[2]<<16|I[2]>>>16,4294901760&I[0]|65535&I[1],I[3]<<16|I[3]>>>16,4294901760&I[1]|65535&I[2],I[0]<<16|I[0]>>>16,4294901760&I[2]|65535&I[3],I[1]<<16|I[1]>>>16,4294901760&I[3]|65535&I[0]];this._b=0;for(var z=0;z<4;z++)k.call(this);for(z=0;z<8;z++)R[z]^=S[z+4&7];if(d){var q=d.words,Z=q[0],H=q[1],G=16711935&(Z<<8|Z>>>24)|4278255360&(Z<<24|Z>>>8),W=16711935&(H<<8|H>>>24)|4278255360&(H<<24|H>>>8),te=G>>>16|4294901760&W,P=W<<16|65535&G;for(R[0]^=G,R[1]^=te,R[2]^=W,R[3]^=P,R[4]^=G,R[5]^=te,R[6]^=W,R[7]^=P,z=0;z<4;z++)k.call(this)}},_doProcessBlock:function(I,d){var S=this._X;k.call(this),y[0]=S[0]^S[5]>>>16^S[3]<<16,y[1]=S[2]^S[7]>>>16^S[5]<<16,y[2]=S[4]^S[1]>>>16^S[7]<<16,y[3]=S[6]^S[3]>>>16^S[1]<<16;for(var R=0;R<4;R++)y[R]=16711935&(y[R]<<8|y[R]>>>24)|4278255360&(y[R]<<24|y[R]>>>8),I[d+R]^=y[R]},blockSize:4,ivSize:2});function k(){for(var Q=this._X,I=this._C,d=0;d<8;d++)M[d]=I[d];for(I[0]=I[0]+1295307597+this._b|0,I[1]=I[1]+3545052371+(I[0]>>>0>>0?1:0)|0,I[2]=I[2]+886263092+(I[1]>>>0>>0?1:0)|0,I[3]=I[3]+1295307597+(I[2]>>>0>>0?1:0)|0,I[4]=I[4]+3545052371+(I[3]>>>0>>0?1:0)|0,I[5]=I[5]+886263092+(I[4]>>>0>>0?1:0)|0,I[6]=I[6]+1295307597+(I[5]>>>0>>0?1:0)|0,I[7]=I[7]+3545052371+(I[6]>>>0>>0?1:0)|0,this._b=I[7]>>>0>>0?1:0,d=0;d<8;d++){var S=Q[d]+I[d],R=65535&S,z=S>>>16;D[d]=((R*R>>>17)+R*z>>>15)+z*z^((4294901760&S)*S|0)+((65535&S)*S|0)}Q[0]=D[0]+(D[7]<<16|D[7]>>>16)+(D[6]<<16|D[6]>>>16)|0,Q[1]=D[1]+(D[0]<<8|D[0]>>>24)+D[7]|0,Q[2]=D[2]+(D[1]<<16|D[1]>>>16)+(D[0]<<16|D[0]>>>16)|0,Q[3]=D[3]+(D[2]<<8|D[2]>>>24)+D[1]|0,Q[4]=D[4]+(D[3]<<16|D[3]>>>16)+(D[2]<<16|D[2]>>>16)|0,Q[5]=D[5]+(D[4]<<8|D[4]>>>24)+D[3]|0,Q[6]=D[6]+(D[5]<<16|D[5]>>>16)+(D[4]<<16|D[4]>>>16)|0,Q[7]=D[7]+(D[6]<<8|D[6]>>>24)+D[5]|0}h.RabbitLegacy=_._createHelper(x)}(),v.RabbitLegacy)},75960:function(T,e,l){var v=l(38688);e.f=v},76014:function(T,e,l){"use strict";l(36673)("Set",function(f){return function(){return f(this,arguments.length?arguments[0]:void 0)}},l(9649))},76442:function(T,e,l){"use strict";var v=l(91867).isString,h=l(91867).isArray,f=l(91867).isUndefined,_=l(91867).isNull;function b(y,M){this.defaultStyle=M||{},this.styleDictionary=y,this.styleOverrides=[]}b.prototype.clone=function(){var y=new b(this.styleDictionary,this.defaultStyle);return this.styleOverrides.forEach(function(M){y.styleOverrides.push(M)}),y},b.prototype.push=function(y){this.styleOverrides.push(y)},b.prototype.pop=function(y){for(y=y||1;y-- >0;)this.styleOverrides.pop()},b.prototype.autopush=function(y){if(v(y))return 0;var M=[];y.style&&(M=h(y.style)?y.style:[y.style]);for(var D=0,x=M.length;D0&&this.pop(D),x},b.prototype.getProperty=function(y){if(this.styleOverrides)for(var M=this.styleOverrides.length-1;M>=0;M--){var D=this.styleOverrides[M];if(v(D)){var x=this.styleDictionary[D];if(x&&!f(x[y])&&!_(x[y]))return x[y]}else if(!f(D[y])&&!_(D[y]))return D[y]}return this.defaultStyle&&this.defaultStyle[y]},T.exports=b},76515:function(T){"use strict";var e=Object.prototype.toString;T.exports=function(v){var h=e.call(v),f="[object Arguments]"===h;return f||(f="[object Array]"!==h&&null!==v&&"object"==typeof v&&"number"==typeof v.length&&v.length>=0&&"[object Function]"===e.call(v.callee)),f}},77074:function(T,e,l){"use strict";var v=l(56475),h=l(2834),f=l(32631),_=l(56614),b=l(61900),y=l(80383);v({target:"Promise",stat:!0},{allSettled:function(D){var x=this,k=_.f(x),Q=k.resolve,I=k.reject,d=b(function(){var S=f(x.resolve),R=[],z=0,q=1;y(D,function(Z){var H=z++,G=!1;q++,h(S,x,Z).then(function(W){G||(G=!0,R[H]={status:"fulfilled",value:W},--q||Q(R))},function(W){G||(G=!0,R[H]={status:"rejected",reason:W},--q||Q(R))})}),--q||Q(R)});return d.error&&I(d.value),k.promise}})},77199:function(){},77450:function(T){"use strict";T.exports=Math.floor},77530:function(T,e,l){"use strict";var v=l(91867).isString;function f(y){return"auto"===y.width}function _(y){return null==y.width||"*"===y.width||"star"===y.width}T.exports={buildColumnWidths:function h(y,M,D=0,x){var k=[],Q=0,I=0,d=[],S=0,R=0,z=[],q=M;y.forEach(function(P){f(P)?(k.push(P),Q+=P._minWidth,I+=P._maxWidth):_(P)?(d.push(P),S=Math.max(S,P._minWidth),R=Math.max(R,P._maxWidth)):z.push(P)}),z.forEach(function(P,J){if(v(P.width)&&/\d+%/.test(P.width)){var j=0;if(x){var re=x._layout.paddingLeft(J,x),he=x._layout.paddingRight(J,x),oe=x._layout.vLineWidth(J,x),Ce=x._layout.vLineWidth(J+1,x);j=0===J?re+he+oe+Ce/2:J===z.length-1?re+he+oe/2+Ce:re+he+oe/2+Ce/2}var me=q+D;P.width=parseFloat(P.width)*me/100-j}P._calcWidth=P.width=M)k.forEach(function(P){P._calcWidth=P._minWidth}),d.forEach(function(P){P._calcWidth=S});else{if(H0){var te=M/d.length;d.forEach(function(P){P._calcWidth=te})}}},measureMinMax:function b(y){for(var M={min:0,max:0},D={min:0,max:0},x=0,k=0,Q=y.length;k2?arguments[2]:{},d=v(Q);h&&(d=_.call(d,Object.getOwnPropertySymbols(Q)));for(var S=0;SD.page?M:D.page>M.page?D:M.y>D.y?M:D).page,x:x.x,y:x.y,availableHeight:x.availableHeight,availableWidth:x.availableWidth}}(this,M.bottomMost)},f.prototype.markEnding=function(M,D,x){this.page=M._columnEndingContext.page,this.x=M._columnEndingContext.x+D,this.y=M._columnEndingContext.y-x,this.availableWidth=M._columnEndingContext.availableWidth,this.availableHeight=M._columnEndingContext.availableHeight,this.lastColumnWidth=M._columnEndingContext.lastColumnWidth},f.prototype.saveContextInEndingCell=function(M){M._columnEndingContext={page:this.page,x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,lastColumnWidth:this.lastColumnWidth}},f.prototype.completeColumnGroup=function(M,D){var x=this.snapshots.pop();this.calculateBottomMost(x,D),this.x=x.x;var k=x.bottomMost.y;return M&&(x.page===x.bottomMost.page?x.y+M>k&&(k=x.y+M):k+=M),this.y=k,this.page=x.bottomMost.page,this.availableWidth=x.availableWidth,this.availableHeight=x.bottomMost.availableHeight,M&&(this.availableHeight-=k-x.bottomMost.y),this.lastColumnWidth=x.lastColumnWidth,x.bottomByPage},f.prototype.addMargin=function(M,D){this.x+=M,this.availableWidth-=M+(D||0)},f.prototype.moveDown=function(M){return this.y+=M,this.availableHeight-=M,this.availableHeight>0},f.prototype.initializePage=function(){this.y=this.pageMargins.top,this.availableHeight=this.getCurrentPage().pageSize.height-this.pageMargins.top-this.pageMargins.bottom;const{pageCtx:M,isSnapshot:D}=this.pageSnapshot();M.availableWidth=this.getCurrentPage().pageSize.width-this.pageMargins.left-this.pageMargins.right,D&&this.marginXTopParent&&(M.availableWidth-=this.marginXTopParent[0],M.availableWidth-=this.marginXTopParent[1])},f.prototype.pageSnapshot=function(){return this.snapshots[0]?{pageCtx:this.snapshots[0],isSnapshot:!0}:{pageCtx:this,isSnapshot:!1}},f.prototype.moveTo=function(M,D){null!=M&&(this.x=M,this.availableWidth=this.getCurrentPage().pageSize.width-this.x-this.pageMargins.right),null!=D&&(this.y=D,this.availableHeight=this.getCurrentPage().pageSize.height-this.y-this.pageMargins.bottom)},f.prototype.moveToRelative=function(M,D){null!=M&&(this.x=this.x+M),null!=D&&(this.y=this.y+D)},f.prototype.beginDetachedBlock=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,lastColumnWidth:this.lastColumnWidth})},f.prototype.endDetachedBlock=function(){var M=this.snapshots.pop();this.x=M.x,this.y=M.y,this.availableWidth=M.availableWidth,this.availableHeight=M.availableHeight,this.page=M.page,this.lastColumnWidth=M.lastColumnWidth};var b=function(M,D){return(D=function _(M,D){return void 0===M?D:h(M)&&"landscape"===M.toLowerCase()?"landscape":"portrait"}(D,M.pageSize.orientation))!==M.pageSize.orientation?{orientation:D,width:M.pageSize.height,height:M.pageSize.width}:{orientation:M.pageSize.orientation,width:M.pageSize.width,height:M.pageSize.height}};f.prototype.moveToNextPage=function(M){var D=this.page+1,x=this.page,k=this.y;if(this.snapshots.length>0){var Q=this.snapshots[this.snapshots.length-1];Q.bottomMost&&Q.bottomMost.y&&(k=Math.max(this.y,Q.bottomMost.y))}var I=D>=this.pages.length;if(I){var d=this.availableWidth,S=this.getCurrentPage().pageSize.orientation,R=b(this.getCurrentPage(),M);this.addPage(R),S===R.orientation&&(this.availableWidth=d)}else this.page=D,this.initializePage();return{newPageCreated:I,prevPage:x,prevY:k,y:this.y}},f.prototype.addPage=function(M){var D={items:[],pageSize:M};return this.pages.push(D),this.backgroundLength.push(0),this.page=this.pages.length-1,this.initializePage(),this.tracker.emit("pageAdded"),D},f.prototype.getCurrentPage=function(){return this.page<0||this.page>=this.pages.length?null:this.pages[this.page]},f.prototype.getCurrentPosition=function(){var M=this.getCurrentPage().pageSize,D=M.height-this.pageMargins.top-this.pageMargins.bottom,x=M.width-this.pageMargins.left-this.pageMargins.right;return{pageNumber:this.page+1,pageOrientation:M.orientation,pageInnerHeight:D,pageInnerWidth:x,left:this.x,top:this.y,verticalRatio:(this.y-this.pageMargins.top)/D,horizontalRatio:(this.x-this.pageMargins.left)/x}},T.exports=f},79676:function(T,e,l){"use strict";var h,v=l(9964);function f(W,te,P){return(te=function _(W){var te=function b(W,te){if("object"!=typeof W||null===W)return W;var P=W[Symbol.toPrimitive];if(void 0!==P){var J=P.call(W,te||"default");if("object"!=typeof J)return J;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===te?String:Number)(W)}(W,"string");return"symbol"==typeof te?te:String(te)}(te))in W?Object.defineProperty(W,te,{value:P,enumerable:!0,configurable:!0,writable:!0}):W[te]=P,W}var y=l(12167),M=Symbol("lastResolve"),D=Symbol("lastReject"),x=Symbol("error"),k=Symbol("ended"),Q=Symbol("lastPromise"),I=Symbol("handlePromise"),d=Symbol("stream");function S(W,te){return{value:W,done:te}}function R(W){var te=W[M];if(null!==te){var P=W[d].read();null!==P&&(W[Q]=null,W[M]=null,W[D]=null,te(S(P,!1)))}}function z(W){v.nextTick(R,W)}var Z=Object.getPrototypeOf(function(){}),H=Object.setPrototypeOf((f(h={get stream(){return this[d]},next:function(){var te=this,P=this[x];if(null!==P)return Promise.reject(P);if(this[k])return Promise.resolve(S(void 0,!0));if(this[d].destroyed)return new Promise(function(he,oe){v.nextTick(function(){te[x]?oe(te[x]):he(S(void 0,!0))})});var j,J=this[Q];if(J)j=new Promise(function q(W,te){return function(P,J){W.then(function(){te[k]?P(S(void 0,!0)):te[I](P,J)},J)}}(J,this));else{var re=this[d].read();if(null!==re)return Promise.resolve(S(re,!1));j=new Promise(this[I])}return this[Q]=j,j}},Symbol.asyncIterator,function(){return this}),f(h,"return",function(){var te=this;return new Promise(function(P,J){te[d].destroy(null,function(j){j?J(j):P(S(void 0,!0))})})}),h),Z);T.exports=function(te){var P,J=Object.create(H,(f(P={},d,{value:te,writable:!0}),f(P,M,{value:null,writable:!0}),f(P,D,{value:null,writable:!0}),f(P,x,{value:null,writable:!0}),f(P,k,{value:te._readableState.endEmitted,writable:!0}),f(P,I,{value:function(re,he){var oe=J[d].read();oe?(J[Q]=null,J[M]=null,J[D]=null,re(S(oe,!1))):(J[M]=re,J[D]=he)},writable:!0}),P));return J[Q]=null,y(te,function(j){if(j&&"ERR_STREAM_PREMATURE_CLOSE"!==j.code){var re=J[D];return null!==re&&(J[Q]=null,J[M]=null,J[D]=null,re(j)),void(J[x]=j)}var he=J[M];null!==he&&(J[Q]=null,J[M]=null,J[D]=null,he(S(void 0,!0))),J[k]=!0}),te.on("readable",z.bind(null,J)),J}},80055:function(T,e,l){"use strict";var v=l(56475),h=l(91102).map;v({target:"Array",proto:!0,forced:!l(56280)("map")},{map:function(y){return h(this,y,arguments.length>1?arguments[1]:void 0)}})},80182:function(T,e,l){"use strict";var v=l(9964);function h(Xe){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(It){return typeof It}:function(It){return It&&"function"==typeof Symbol&&It.constructor===Symbol&&It!==Symbol.prototype?"symbol":typeof It})(Xe)}function f(Xe,It){for(var Dt=0;Dt1?Dt-1:0),Qt=1;Qt1?Dt-1:0),Qt=1;Qt1?Dt-1:0),Qt=1;Qt1?Dt-1:0),Qt=1;Qtj;j++)if((he=ze(R[j]))&&D(S,he))return he;return new d(!1)}P=x(R,J)}for(oe=P.next;!(Ce=f(oe,P)).done;){try{he=ze(Ce.value)}catch(_e){Q(P,"throw",_e)}if("object"==typeof he&&he&&D(S,he))return he}return new d(!1)}},80614:function(T,e,l){var v=l(84543);e.init=function(){e.dictionary=v.init()},e.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),e.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),e.minDictionaryWordLength=4,e.maxDictionaryWordLength=24},80670:function(T,e,l){var v=l(32010),h=l(64913),f=v.RangeError;T.exports=function(_,b){var y=h(_);if(y%b)throw f("Wrong offset");return y}},80754:function(T,e,l){var v=l(15567),h=l(38347),f=l(84675),_=l(98086),y=h(l(55574).f),M=h([].push),D=function(x){return function(k){for(var z,Q=_(k),I=f(Q),d=I.length,S=0,R=[];d>S;)z=I[S++],(!v||y(Q,z))&&M(R,x?[z,Q[z]]:Q[z]);return R}};T.exports={entries:D(!0),values:D(!1)}},80986:function(T,e,l){"use strict";var v=l(56475),h=l(63432),f=l(5155),_=l(47044),b=l(38486),y=l(94578),M=l(27754),D=l(28617),x=l(13711);if(v({target:"Promise",proto:!0,real:!0,forced:!!f&&_(function(){f.prototype.finally.call({then:function(){}},function(){})})},{finally:function(I){var d=M(this,b("Promise")),S=y(I);return this.then(S?function(R){return D(d,I()).then(function(){return R})}:I,S?function(R){return D(d,I()).then(function(){throw R})}:I)}}),!h&&y(f)){var Q=b("Promise").prototype.finally;f.prototype.finally!==Q&&x(f.prototype,"finally",Q,{unsafe:!0})}},81007:function(T,e,l){"use strict";var v=l(47044);T.exports=function(h,f){var _=[][h];return!!_&&v(function(){_.call(null,f||function(){throw 1},1)})}},81492:function(T){"use strict";T.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20ac\ufffd\ufffd\ufffd\ufffd\u2026\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\ufffd\u201e\u2026\u2020\u2021\ufffd\u2030\u0160\u2039\u015a\u0164\u017d\u0179\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0161\u203a\u015b\u0165\u017e\u017a\xa0\u02c7\u02d8\u0141\xa4\u0104\xa6\xa7\xa8\xa9\u015e\xab\xac\xad\xae\u017b\xb0\xb1\u02db\u0142\xb4\xb5\xb6\xb7\xb8\u0105\u015f\xbb\u013d\u02dd\u013e\u017c\u0154\xc1\xc2\u0102\xc4\u0139\u0106\xc7\u010c\xc9\u0118\xcb\u011a\xcd\xce\u010e\u0110\u0143\u0147\xd3\xd4\u0150\xd6\xd7\u0158\u016e\xda\u0170\xdc\xdd\u0162\xdf\u0155\xe1\xe2\u0103\xe4\u013a\u0107\xe7\u010d\xe9\u0119\xeb\u011b\xed\xee\u010f\u0111\u0144\u0148\xf3\xf4\u0151\xf6\xf7\u0159\u016f\xfa\u0171\xfc\xfd\u0163\u02d9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201a\u0453\u201e\u2026\u2020\u2021\u20ac\u2030\u0409\u2039\u040a\u040c\u040b\u040f\u0452\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0459\u203a\u045a\u045c\u045b\u045f\xa0\u040e\u045e\u0408\xa4\u0490\xa6\xa7\u0401\xa9\u0404\xab\xac\xad\xae\u0407\xb0\xb1\u0406\u0456\u0491\xb5\xb6\xb7\u0451\u2116\u0454\xbb\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\ufffd\u017d\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\ufffd\u017e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\ufffd\u2030\ufffd\u2039\ufffd\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\xa0\u0385\u0386\xa3\xa4\xa5\xa6\xa7\xa8\xa9\ufffd\xab\xac\xad\xae\u2015\xb0\xb1\xb2\xb3\u0384\xb5\xb6\xb7\u0388\u0389\u038a\xbb\u038c\xbd\u038e\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\ufffd\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u03ca\u03cb\u03cc\u03cd\u03ce\ufffd"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\ufffd\ufffd\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u011e\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\u0130\u015e\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u011f\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u0131\u015f\xff"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\ufffd\u2039\ufffd\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\xa0\xa1\xa2\xa3\u20aa\xa5\xa6\xa7\xa8\xa9\xd7\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xf7\xbb\xbc\xbd\xbe\xbf\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\u05ba\u05bb\u05bc\u05bd\u05be\u05bf\u05c0\u05c1\u05c2\u05c3\u05f0\u05f1\u05f2\u05f3\u05f4\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea\ufffd\ufffd\u200e\u200f\ufffd"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20ac\u067e\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06af\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u06a9\u2122\u0691\u203a\u0153\u200c\u200d\u06ba\xa0\u060c\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\u06be\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\u061b\xbb\xbc\xbd\xbe\u061f\u06c1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xd7\u0637\u0638\u0639\u063a\u0640\u0641\u0642\u0643\xe0\u0644\xe2\u0645\u0646\u0647\u0648\xe7\xe8\xe9\xea\xeb\u0649\u064a\xee\xef\u064b\u064c\u064d\u064e\xf4\u064f\u0650\xf7\u0651\xf9\u0652\xfb\xfc\u200e\u200f\u06d2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\ufffd\u201e\u2026\u2020\u2021\ufffd\u2030\ufffd\u2039\ufffd\xa8\u02c7\xb8\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\xaf\u02db\ufffd\xa0\ufffd\xa2\xa3\xa4\ufffd\xa6\xa7\xd8\xa9\u0156\xab\xac\xad\xae\xc6\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xf8\xb9\u0157\xbb\xbc\xbd\xbe\xe6\u0104\u012e\u0100\u0106\xc4\xc5\u0118\u0112\u010c\xc9\u0179\u0116\u0122\u0136\u012a\u013b\u0160\u0143\u0145\xd3\u014c\xd5\xd6\xd7\u0172\u0141\u015a\u016a\xdc\u017b\u017d\xdf\u0105\u012f\u0101\u0107\xe4\xe5\u0119\u0113\u010d\xe9\u017a\u0117\u0123\u0137\u012b\u013c\u0161\u0144\u0146\xf3\u014d\xf5\xf6\xf7\u0173\u0142\u015b\u016b\xfc\u017c\u017e\u02d9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\ufffd\u2039\u0152\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\ufffd\u203a\u0153\ufffd\ufffd\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0104\u02d8\u0141\xa4\u013d\u015a\xa7\xa8\u0160\u015e\u0164\u0179\xad\u017d\u017b\xb0\u0105\u02db\u0142\xb4\u013e\u015b\u02c7\xb8\u0161\u015f\u0165\u017a\u02dd\u017e\u017c\u0154\xc1\xc2\u0102\xc4\u0139\u0106\xc7\u010c\xc9\u0118\xcb\u011a\xcd\xce\u010e\u0110\u0143\u0147\xd3\xd4\u0150\xd6\xd7\u0158\u016e\xda\u0170\xdc\xdd\u0162\xdf\u0155\xe1\xe2\u0103\xe4\u013a\u0107\xe7\u010d\xe9\u0119\xeb\u011b\xed\xee\u010f\u0111\u0144\u0148\xf3\xf4\u0151\xf6\xf7\u0159\u016f\xfa\u0171\xfc\xfd\u0163\u02d9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0126\u02d8\xa3\xa4\ufffd\u0124\xa7\xa8\u0130\u015e\u011e\u0134\xad\ufffd\u017b\xb0\u0127\xb2\xb3\xb4\xb5\u0125\xb7\xb8\u0131\u015f\u011f\u0135\xbd\ufffd\u017c\xc0\xc1\xc2\ufffd\xc4\u010a\u0108\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\ufffd\xd1\xd2\xd3\xd4\u0120\xd6\xd7\u011c\xd9\xda\xdb\xdc\u016c\u015c\xdf\xe0\xe1\xe2\ufffd\xe4\u010b\u0109\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\ufffd\xf1\xf2\xf3\xf4\u0121\xf6\xf7\u011d\xf9\xfa\xfb\xfc\u016d\u015d\u02d9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0104\u0138\u0156\xa4\u0128\u013b\xa7\xa8\u0160\u0112\u0122\u0166\xad\u017d\xaf\xb0\u0105\u02db\u0157\xb4\u0129\u013c\u02c7\xb8\u0161\u0113\u0123\u0167\u014a\u017e\u014b\u0100\xc1\xc2\xc3\xc4\xc5\xc6\u012e\u010c\xc9\u0118\xcb\u0116\xcd\xce\u012a\u0110\u0145\u014c\u0136\xd4\xd5\xd6\xd7\xd8\u0172\xda\xdb\xdc\u0168\u016a\xdf\u0101\xe1\xe2\xe3\xe4\xe5\xe6\u012f\u010d\xe9\u0119\xeb\u0117\xed\xee\u012b\u0111\u0146\u014d\u0137\xf4\xf5\xf6\xf7\xf8\u0173\xfa\xfb\xfc\u0169\u016b\u02d9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040a\u040b\u040c\xad\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045a\u045b\u045c\xa7\u045e\u045f"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\ufffd\ufffd\ufffd\xa4\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u060c\xad\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u061b\ufffd\ufffd\ufffd\u061f\ufffd\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a\ufffd\ufffd\ufffd\ufffd\ufffd\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u2018\u2019\xa3\u20ac\u20af\xa6\xa7\xa8\xa9\u037a\xab\xac\xad\ufffd\u2015\xb0\xb1\xb2\xb3\u0384\u0385\u0386\xb7\u0388\u0389\u038a\xbb\u038c\xbd\u038e\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\ufffd\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u03ca\u03cb\u03cc\u03cd\u03ce\ufffd"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\ufffd\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xd7\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xf7\xbb\xbc\xbd\xbe\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u2017\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea\ufffd\ufffd\u200e\u200f\ufffd"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u011e\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\u0130\u015e\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u011f\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u0131\u015f\xff"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0104\u0112\u0122\u012a\u0128\u0136\xa7\u013b\u0110\u0160\u0166\u017d\xad\u016a\u014a\xb0\u0105\u0113\u0123\u012b\u0129\u0137\xb7\u013c\u0111\u0161\u0167\u017e\u2015\u016b\u014b\u0100\xc1\xc2\xc3\xc4\xc5\xc6\u012e\u010c\xc9\u0118\xcb\u0116\xcd\xce\xcf\xd0\u0145\u014c\xd3\xd4\xd5\xd6\u0168\xd8\u0172\xda\xdb\xdc\xdd\xde\xdf\u0101\xe1\xe2\xe3\xe4\xe5\xe6\u012f\u010d\xe9\u0119\xeb\u0117\xed\xee\xef\xf0\u0146\u014d\xf3\xf4\xf5\xf6\u0169\xf8\u0173\xfa\xfb\xfc\xfd\xfe\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u201d\xa2\xa3\xa4\u201e\xa6\xa7\xd8\xa9\u0156\xab\xac\xad\xae\xc6\xb0\xb1\xb2\xb3\u201c\xb5\xb6\xb7\xf8\xb9\u0157\xbb\xbc\xbd\xbe\xe6\u0104\u012e\u0100\u0106\xc4\xc5\u0118\u0112\u010c\xc9\u0179\u0116\u0122\u0136\u012a\u013b\u0160\u0143\u0145\xd3\u014c\xd5\xd6\xd7\u0172\u0141\u015a\u016a\xdc\u017b\u017d\xdf\u0105\u012f\u0101\u0107\xe4\xe5\u0119\u0113\u010d\xe9\u017a\u0117\u0123\u0137\u012b\u013c\u0161\u0144\u0146\xf3\u014d\xf5\xf6\xf7\u0173\u0142\u015b\u016b\xfc\u017c\u017e\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u1e02\u1e03\xa3\u010a\u010b\u1e0a\xa7\u1e80\xa9\u1e82\u1e0b\u1ef2\xad\xae\u0178\u1e1e\u1e1f\u0120\u0121\u1e40\u1e41\xb6\u1e56\u1e81\u1e57\u1e83\u1e60\u1ef3\u1e84\u1e85\u1e61\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u0174\xd1\xd2\xd3\xd4\xd5\xd6\u1e6a\xd8\xd9\xda\xdb\xdc\xdd\u0176\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u0175\xf1\xf2\xf3\xf4\xf5\xf6\u1e6b\xf8\xf9\xfa\xfb\xfc\xfd\u0177\xff"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\u20ac\xa5\u0160\xa7\u0161\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u017d\xb5\xb6\xb7\u017e\xb9\xba\xbb\u0152\u0153\u0178\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0104\u0105\u0141\u20ac\u201e\u0160\xa7\u0161\xa9\u0218\xab\u0179\xad\u017a\u017b\xb0\xb1\u010c\u0142\u017d\u201d\xb6\xb7\u017e\u010d\u0219\xbb\u0152\u0153\u0178\u017c\xc0\xc1\xc2\u0102\xc4\u0106\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u0110\u0143\xd2\xd3\xd4\u0150\xd6\u015a\u0170\xd9\xda\xdb\xdc\u0118\u021a\xdf\xe0\xe1\xe2\u0103\xe4\u0107\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u0111\u0144\xf2\xf3\xf4\u0151\xf6\u015b\u0171\xf9\xfa\xfb\xfc\u0119\u021b\xff"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u03c5\u03c6\u03c7\u03c8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03c9\u03ac\u03ad\u03ae\u03ca\u03af\u03cc\u03cd\u03cb\u03ce\u0386\u0388\u0389\u038a\u038c\u038e\u038f\xb1\u2265\u2264\u03aa\u03ab\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xfc\xe9\u0101\xe4\u0123\xe5\u0107\u0142\u0113\u0156\u0157\u012b\u0179\xc4\xc5\xc9\xe6\xc6\u014d\xf6\u0122\xa2\u015a\u015b\xd6\xdc\xf8\xa3\xd8\xd7\xa4\u0100\u012a\xf3\u017b\u017c\u017a\u201d\xa6\xa9\xae\xac\xbd\xbc\u0141\xab\xbb\u2591\u2592\u2593\u2502\u2524\u0104\u010c\u0118\u0116\u2563\u2551\u2557\u255d\u012e\u0160\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u0172\u016a\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u017d\u0105\u010d\u0119\u0117\u012f\u0161\u0173\u016b\u017e\u2518\u250c\u2588\u2584\u258c\u2590\u2580\xd3\xdf\u014c\u0143\xf5\xd5\xb5\u0144\u0136\u0137\u013b\u013c\u0146\u0112\u0145\u2019\xad\xb1\u201c\xbe\xb6\xa7\xf7\u201e\xb0\u2219\xb7\xb9\xb3\xb2\u25a0\xa0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xf8\xa3\xd8\xd7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\xae\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\xc1\xc2\xc0\xa9\u2563\u2551\u2557\u255d\xa2\xa5\u2510\u2514\u2534\u252c\u251c\u2500\u253c\xe3\xc3\u255a\u2554\u2569\u2566\u2560\u2550\u256c\xa4\xf0\xd0\xca\xcb\xc8\u0131\xcd\xce\xcf\u2518\u250c\u2588\u2584\xa6\xcc\u2580\xd3\xdf\xd4\xd2\xf5\xd5\xb5\xfe\xde\xda\xdb\xd9\xfd\xdd\xaf\xb4\xad\xb1\u2017\xbe\xb6\xa7\xf7\xb8\xb0\xa8\xb7\xb9\xb3\xb2\u25a0\xa0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\u016f\u0107\xe7\u0142\xeb\u0150\u0151\xee\u0179\xc4\u0106\xc9\u0139\u013a\xf4\xf6\u013d\u013e\u015a\u015b\xd6\xdc\u0164\u0165\u0141\xd7\u010d\xe1\xed\xf3\xfa\u0104\u0105\u017d\u017e\u0118\u0119\xac\u017a\u010c\u015f\xab\xbb\u2591\u2592\u2593\u2502\u2524\xc1\xc2\u011a\u015e\u2563\u2551\u2557\u255d\u017b\u017c\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u0102\u0103\u255a\u2554\u2569\u2566\u2560\u2550\u256c\xa4\u0111\u0110\u010e\xcb\u010f\u0147\xcd\xce\u011b\u2518\u250c\u2588\u2584\u0162\u016e\u2580\xd3\xdf\xd4\u0143\u0144\u0148\u0160\u0161\u0154\xda\u0155\u0170\xfd\xdd\u0163\xb4\xad\u02dd\u02db\u02c7\u02d8\xa7\xf7\xb8\xb0\xa8\u02d9\u0171\u0158\u0159\u25a0\xa0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045a\u040a\u045b\u040b\u045c\u040c\u045e\u040e\u045f\u040f\u044e\u042e\u044a\u042a\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xab\xbb\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255d\u0439\u0419\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u043a\u041a\u255a\u2554\u2569\u2566\u2560\u2550\u256c\xa4\u043b\u041b\u043c\u041c\u043d\u041d\u043e\u041e\u043f\u2518\u250c\u2588\u2584\u041f\u044f\u2580\u042f\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044c\u042c\u2116\xad\u044b\u042b\u0437\u0417\u0448\u0428\u044d\u042d\u0449\u0429\u0447\u0427\xa7\u25a0\xa0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea\ufffd\xa3\ufffd\xd7\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\xae\xac\xbd\xbc\ufffd\xab\xbb\u2591\u2592\u2593\u2502\u2524\ufffd\ufffd\ufffd\xa9\u2563\u2551\u2557\u255d\xa2\xa5\u2510\u2514\u2534\u252c\u251c\u2500\u253c\ufffd\ufffd\u255a\u2554\u2569\u2566\u2560\u2550\u256c\xa4\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u2518\u250c\u2588\u2584\xa6\ufffd\u2580\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\xb5\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\xaf\xb4\xad\xb1\u2017\xbe\xb6\xa7\xf7\xb8\xb0\xa8\xb7\xb9\xb3\xb2\u25a0\xa0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\u0131\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\u0130\xd6\xdc\xf8\xa3\xd8\u015e\u015f\xe1\xed\xf3\xfa\xf1\xd1\u011e\u011f\xbf\xae\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\xc1\xc2\xc0\xa9\u2563\u2551\u2557\u255d\xa2\xa5\u2510\u2514\u2534\u252c\u251c\u2500\u253c\xe3\xc3\u255a\u2554\u2569\u2566\u2560\u2550\u256c\xa4\xba\xaa\xca\xcb\xc8\ufffd\xcd\xce\xcf\u2518\u250c\u2588\u2584\xa6\xcc\u2580\xd3\xdf\xd4\xd2\xf5\xd5\xb5\ufffd\xd7\xda\xdb\xd9\xec\xff\xaf\xb4\xad\xb1\ufffd\xbe\xb6\xa7\xf7\xb8\xb0\xa8\xb7\xb9\xb3\xb2\u25a0\xa0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xf8\xa3\xd8\xd7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\xae\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\xc1\xc2\xc0\xa9\u2563\u2551\u2557\u255d\xa2\xa5\u2510\u2514\u2534\u252c\u251c\u2500\u253c\xe3\xc3\u255a\u2554\u2569\u2566\u2560\u2550\u256c\xa4\xf0\xd0\xca\xcb\xc8\u20ac\xcd\xce\xcf\u2518\u250c\u2588\u2584\xa6\xcc\u2580\xd3\xdf\xd4\xd2\xf5\xd5\xb5\xfe\xde\xda\xdb\xd9\xfd\xdd\xaf\xb4\xad\xb1\u2017\xbe\xb6\xa7\xf7\xb8\xb0\xa8\xb7\xb9\xb3\xb2\u25a0\xa0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe3\xe0\xc1\xe7\xea\xca\xe8\xcd\xd4\xec\xc3\xc2\xc9\xc0\xc8\xf4\xf5\xf2\xda\xf9\xcc\xd5\xdc\xa2\xa3\xd9\u20a7\xd3\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\xd2\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xd0\xf0\xde\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xfe\xfb\xdd\xfd\xd6\xdc\xf8\xa3\xd8\u20a7\u0192\xe1\xed\xf3\xfa\xc1\xcd\xd3\xda\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xc2\xe0\xb6\xe7\xea\xeb\xe8\xef\xee\u2017\xc0\xa7\xc9\xc8\xca\xf4\xcb\xcf\xfb\xf9\xa4\xd4\xdc\xa2\xa3\xd9\xdb\u0192\xa6\xb4\xf3\xfa\xa8\xb8\xb3\xaf\xce\u2310\xac\xbd\xbc\xbe\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$\u066a&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xb0\xb7\u2219\u221a\u2592\u2500\u2502\u253c\u2524\u252c\u251c\u2534\u2510\u250c\u2514\u2518\u03b2\u221e\u03c6\xb1\xbd\xbc\u2248\xab\xbb\ufef7\ufef8\ufffd\ufffd\ufefb\ufefc\ufffd\xa0\xad\ufe82\xa3\xa4\ufe84\ufffd\ufffd\ufe8e\ufe8f\ufe95\ufe99\u060c\ufe9d\ufea1\ufea5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufed1\u061b\ufeb1\ufeb5\ufeb9\u061f\xa2\ufe80\ufe81\ufe83\ufe85\ufeca\ufe8b\ufe8d\ufe91\ufe93\ufe97\ufe9b\ufe9f\ufea3\ufea7\ufea9\ufeab\ufead\ufeaf\ufeb3\ufeb7\ufebb\ufebf\ufec1\ufec5\ufecb\ufecf\xa6\xac\xf7\xd7\ufec9\u0640\ufed3\ufed7\ufedb\ufedf\ufee3\ufee7\ufeeb\ufeed\ufeef\ufef3\ufebd\ufecc\ufece\ufecd\ufee1\ufe7d\u0651\ufee5\ufee9\ufeec\ufef0\ufef2\ufed0\ufed5\ufef5\ufef6\ufedd\ufed9\ufef1\u25a0\ufffd"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xf8\xa3\xd8\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xa4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0386\ufffd\xb7\xac\xa6\u2018\u2019\u0388\u2015\u0389\u038a\u03aa\u038c\ufffd\ufffd\u038e\u03ab\xa9\u038f\xb2\xb3\u03ac\xa3\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03cd\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xbd\u0398\u0399\xab\xbb\u2591\u2592\u2593\u2502\u2524\u039a\u039b\u039c\u039d\u2563\u2551\u2557\u255d\u039e\u039f\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u03a0\u03a1\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u2518\u250c\u2588\u2584\u03b4\u03b5\u2580\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u0384\xad\xb1\u03c5\u03c6\u03c7\xa7\u03c8\u0385\xb0\xa8\u03c9\u03cb\u03b0\u03ce\u25a0\xa0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\u203e\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u0160\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\u017d\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u0161\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\u017e\xff"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\ufe88\xd7\xf7\uf8f6\uf8f5\uf8f4\uf8f7\ufe71\x88\u25a0\u2502\u2500\u2510\u250c\u2514\u2518\ufe79\ufe7b\ufe7d\ufe7f\ufe77\ufe8a\ufef0\ufef3\ufef2\ufece\ufecf\ufed0\ufef6\ufef8\ufefa\ufefc\xa0\uf8fa\uf8f9\uf8f8\xa4\uf8fb\ufe8b\ufe91\ufe97\ufe9b\ufe9f\ufea3\u060c\xad\ufea7\ufeb3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufeb7\u061b\ufebb\ufebf\ufeca\u061f\ufecb\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\ufec7\u0639\u063a\ufecc\ufe82\ufe84\ufe8e\ufed3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\ufed7\ufedb\ufedf\uf8fc\ufef5\ufef7\ufef9\ufefb\ufee3\ufee7\ufeec\ufee9\ufffd"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040a\u040b\u040c\xad\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045a\u045b\u045c\xa7\u045e\u045f"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e81\u0e82\u0e84\u0e87\u0e88\u0eaa\u0e8a\u0e8d\u0e94\u0e95\u0e96\u0e97\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea1\u0ea2\u0ea3\u0ea5\u0ea7\u0eab\u0ead\u0eae\ufffd\ufffd\ufffd\u0eaf\u0eb0\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0ebc\u0eb1\u0ebb\u0ebd\ufffd\ufffd\ufffd\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ec6\ufffd\u0edc\u0edd\u20ad\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\ufffd\ufffd\xa2\xac\xa6\ufffd"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e48\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e49\u0e4a\u0e4b\u20ac\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\xa2\xac\xa6\xa0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20ac\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\u20ac\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u2126\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\ufffd\xa9\u2044\xa4\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\xa2\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},macgreek:{type:"_sbcs",chars:"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\xad\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\u0387\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026\xa0\u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\ufffd"},maciceland:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macroman:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macromania:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u015e\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\u0103\u015f\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\u0162\u0163\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macthai:{type:"_sbcs",chars:"\xab\xbb\u2026\uf88c\uf88f\uf892\uf895\uf898\uf88b\uf88e\uf891\uf894\uf897\u201c\u201d\uf899\ufffd\u2022\uf884\uf889\uf885\uf886\uf887\uf888\uf88a\uf88d\uf890\uf893\uf896\u2018\u2019\ufffd\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufeff\u200b\u2013\u2014\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u2122\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\xae\xa9\ufffd\ufffd\ufffd\ufffd"},macturkish:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\ufffd\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255a\u255b\u255c\u255d\u255e\u255f\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256a\u256b\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u255d\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u045e\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u040e\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8t:{type:"_sbcs",chars:"\u049b\u0493\u201a\u0492\u201e\u2026\u2020\u2021\ufffd\u2030\u04b3\u2039\u04b2\u04b7\u04b6\ufffd\u049a\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\ufffd\u04ef\u04ee\u0451\xa4\u04e3\xa6\xa7\ufffd\ufffd\ufffd\xab\xac\xad\xae\ufffd\xb0\xb1\xb2\u0401\ufffd\u04e2\xb6\xb7\ufffd\u2116\ufffd\xbb\ufffd\ufffd\ufffd\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\ufffd\u0587\u0589)(\xbb\xab\u2014.\u055d,-\u058a\u2026\u055c\u055b\u055e\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053a\u056a\u053b\u056b\u053c\u056c\u053d\u056d\u053e\u056e\u053f\u056f\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054a\u057a\u054b\u057b\u054c\u057c\u054d\u057d\u054e\u057e\u054f\u057f\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055a\ufffd"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201a\u0453\u201e\u2026\u2020\u2021\u20ac\u2030\u0409\u2039\u040a\u049a\u04ba\u040f\u0452\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0459\u203a\u045a\u049b\u04bb\u045f\xa0\u04b0\u04b1\u04d8\xa4\u04e8\xa6\xa7\u0401\xa9\u0492\xab\xac\xad\xae\u04ae\xb0\xb1\u0406\u0456\u04e9\xb5\xb6\xb7\u0451\u2116\u0493\xbb\u04d9\u04a2\u04a3\u04af\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},tcvn:{type:"_sbcs",chars:"\0\xda\u1ee4\x03\u1eea\u1eec\u1eee\x07\b\t\n\v\f\r\x0e\x0f\x10\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xc0\u1ea2\xc3\xc1\u1ea0\u1eb6\u1eac\xc8\u1eba\u1ebc\xc9\u1eb8\u1ec6\xcc\u1ec8\u0128\xcd\u1eca\xd2\u1ece\xd5\xd3\u1ecc\u1ed8\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xa0\u0102\xc2\xca\xd4\u01a0\u01af\u0110\u0103\xe2\xea\xf4\u01a1\u01b0\u0111\u1eb0\u0300\u0309\u0303\u0301\u0323\xe0\u1ea3\xe3\xe1\u1ea1\u1eb2\u1eb1\u1eb3\u1eb5\u1eaf\u1eb4\u1eae\u1ea6\u1ea8\u1eaa\u1ea4\u1ec0\u1eb7\u1ea7\u1ea9\u1eab\u1ea5\u1ead\xe8\u1ec2\u1ebb\u1ebd\xe9\u1eb9\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\xec\u1ec9\u1ec4\u1ebe\u1ed2\u0129\xed\u1ecb\xf2\u1ed4\u1ecf\xf5\xf3\u1ecd\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ed6\u1ee7\u0169\xfa\u1ee5\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5\u1ed0"},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10ef\u10f0\u10f1\u10f2\u10f3\u10f4\u10f5\u10f6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10f1\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10f2\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10f3\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10f4\u10ef\u10f0\u10f5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04ee\u0493\u201e\u2026\u04b6\u04ae\u04b2\u04af\u04a0\u04e2\u04a2\u049a\u04ba\u04b8\u0497\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u04b3\u04b7\u04a1\u04e3\u04a3\u049b\u04bb\u04b9\xa0\u040e\u045e\u0408\u04e8\u0498\u04b0\xa7\u0401\xa9\u04d8\xab\xac\u04ef\xae\u049c\xb0\u04b1\u0406\u0456\u0499\u04e9\xb6\xb7\u0451\u2116\u04d9\xbb\u0458\u04aa\u04ab\u049d\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},viscii:{type:"_sbcs",chars:"\0\x01\u1eb2\x03\x04\u1eb4\u1eaa\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\u1ef6\x15\x16\x17\x18\u1ef8\x1a\x1b\x1c\x1d\u1ef4\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\u1ea0\u1eae\u1eb0\u1eb6\u1ea4\u1ea6\u1ea8\u1eac\u1ebc\u1eb8\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1ee2\u1eda\u1edc\u1ede\u1eca\u1ece\u1ecc\u1ec8\u1ee6\u0168\u1ee4\u1ef2\xd5\u1eaf\u1eb1\u1eb7\u1ea5\u1ea7\u1ea9\u1ead\u1ebd\u1eb9\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ed1\u1ed3\u1ed5\u1ed7\u1ee0\u01a0\u1ed9\u1edd\u1edf\u1ecb\u1ef0\u1ee8\u1eea\u1eec\u01a1\u1edb\u01af\xc0\xc1\xc2\xc3\u1ea2\u0102\u1eb3\u1eb5\xc8\xc9\xca\u1eba\xcc\xcd\u0128\u1ef3\u0110\u1ee9\xd2\xd3\xd4\u1ea1\u1ef7\u1eeb\u1eed\xd9\xda\u1ef9\u1ef5\xdd\u1ee1\u01b0\xe0\xe1\xe2\xe3\u1ea3\u0103\u1eef\u1eab\xe8\xe9\xea\u1ebb\xec\xed\u0129\u1ec9\u0111\u1ef1\xf2\xf3\xf4\xf5\u1ecf\u1ecd\u1ee5\xf9\xfa\u0169\u1ee7\xfd\u1ee3\u1eee"},iso646cn:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#\xa5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},iso646jp:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xa5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xc0\xc2\xc8\xca\xcb\xce\xcf\xb4\u02cb\u02c6\xa8\u02dc\xd9\xdb\u20a4\xaf\xdd\xfd\xb0\xc7\xe7\xd1\xf1\xa1\xbf\xa4\xa3\xa5\xa7\u0192\xa2\xe2\xea\xf4\xfb\xe1\xe9\xf3\xfa\xe0\xe8\xf2\xf9\xe4\xeb\xf6\xfc\xc5\xee\xd8\xc6\xe5\xed\xf8\xe6\xc4\xec\xd6\xdc\xc9\xef\xdf\xd4\xc1\xc3\xe3\xd0\xf0\xcd\xcc\xd3\xd2\xd5\xf5\u0160\u0161\xda\u0178\xff\xde\xfe\xb7\xb5\xb6\xbe\u2014\xbc\xbd\xaa\xba\xab\u25a0\xbb\xb1\ufffd"},macintosh:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},ascii:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},tis620:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"}}},81561:function(T,e){function l(b,y){this.bits=b,this.value=y}e.z=l;var v=15;function h(b,y){for(var M=1<>=1;return(b&M-1)+M}function f(b,y,M,D,x){do{b[y+(D-=M)]=new l(x.bits,x.value)}while(D>0)}function _(b,y,M){for(var D=1<0;--te[I])f(b,y+S,R,H,new l(255&I,65535&W[d++])),S=h(S,I);for(q=G-1,z=-1,I=M+1,R=2;I<=v;++I,R<<=1)for(;te[I]>0;--te[I])(S&q)!==z&&(y+=H,G+=H=1<<(Z=_(te,I,M)),b[k+(z=S&q)]=new l(Z+M&255,y-k-z&65535)),f(b,y+(S>>M),R,H,new l(I-M&255,65535&W[d++])),S=h(S,I);return G}},81566:function(T,e,l){"use strict";var v=l(85208),h=l(28284),f=l(65300),_=l(70098),b=l(93415),y=l(89638),M=l(84786),D=l(11548),x=l(91867).isFunction,k=l(91867).isString,Q=l(91867).isNumber,I=l(91867).isBoolean,d=l(91867).isArray,S=l(91867).isUndefined,R=l(91867).isPattern,z=l(91867).getPattern,q=l(5557),Z=function(ae,Ee,Fe){for(var Ve=0;Veoi.item.y2?oi.item.y1:oi.item.y2:oi.item.h:0}(oi)}var mt=P(Ee||40),St=mt.top;return ae.forEach(function(oi){oi.items.forEach(function(He){var be=Ve(He);be>St&&(St=be)})}),St+=mt.bottom}function te(ae,Ee){ae&&"auto"===ae.height&&(ae.height=1/0);var Ve=function j(ae){if(k(ae)){var Ee=_[ae.toUpperCase()];if(!Ee)throw"Page size "+ae+" not recognized";return{width:Ee[0],height:Ee[1]}}return ae}(ae||"A4");return function Fe(mt){return!!k(mt)&&("portrait"===(mt=mt.toLowerCase())&&Ve.width>Ve.height||"landscape"===mt&&Ve.widthVe.height?"landscape":"portrait",Ve}function P(ae){if(Q(ae))ae={left:ae,right:ae,top:ae,bottom:ae};else if(d(ae))if(2===ae.length)ae={left:ae[0],top:ae[1],right:ae[0],bottom:ae[1]};else{if(4!==ae.length)throw"Invalid pageMargins definition";ae={left:ae[0],top:ae[1],right:ae[2],bottom:ae[3]}}return ae}function re(ae,Ee){ae.pageSize.orientation!==(Ee.options.size[0]>Ee.options.size[1]?"landscape":"portrait")&&(Ee.options.size=[Ee.options.size[1],Ee.options.size[0]])}function oe(ae,Ee){var Fe=ae;return Ee.sup&&(Fe-=.75*Ee.fontSize),Ee.sub&&(Fe+=.35*Ee.fontSize),Fe}function Ce(ae,Ee,Fe,Ve,mt){function St(Dt,vt){var Qt,qe,ke=new D(null);if(S(Dt.positions))throw"Page reference id not found";var it=Dt.positions[0].pageNumber.toString();switch(vt.text=it,Qt=ke.widthOfString(vt.text,vt.font,vt.fontSize,vt.characterSpacing,vt.fontFeatures),qe=vt.width-Qt,vt.width=Qt,vt.alignment){case"right":vt.x+=qe;break;case"center":vt.x+=qe/2}}ae._pageNodeRef&&St(ae._pageNodeRef,ae.inlines[0]),Ee=Ee||0,Fe=Fe||0;var oi=ae.getHeight(),be=oi-ae.getAscenderHeight();M.drawBackground(ae,Ee,Fe,Ve,mt);for(var je=0,Ke=ae.inlines.length;je1){var oi=ae.points[0],He=ae.points[ae.points.length-1];(ae.closePath||oi.x===He.x&&oi.y===He.y)&&Fe.closePath()}break;case"path":Fe.path(ae.d)}if(ae.linearGradient&&Ve){var be=1/(ae.linearGradient.length-1);for(mt=0;mt-1&&(St=St.slice(0,oi)),Fe.height===1/0){var He=W(St,ae.pageMargins);this.pdfKitDoc.options.size=[Fe.width,He]}var be=function Oe(ae,Ee){var Fe={};return Object.keys(ae).forEach(function(Ve){var mt=ae[Ve];Fe[Ve]=Ee.pattern(mt.boundingBox,mt.xStep,mt.yStep,mt.pattern,mt.colored)}),Fe}(ae.patterns||{},this.pdfKitDoc);if(function he(ae,Ee,Fe,Ve,mt){Fe._pdfMakePages=ae,Fe.addPage();var St=0;mt&&ae.forEach(function(Nt){St+=Nt.items.length});var oi=0;mt=mt||function(){};for(var He=0;He0&&(re(ae[He],Fe),Fe.addPage(Fe.options));for(var be=ae[He],je=0,Ke=be.items.length;je=k.length?(x.target=void 0,{value:void 0,done:!0}):"keys"==Q?{value:I,done:!1}:"values"==Q?{value:k[I],done:!1}:{value:[I,k[I]],done:!1}},"values"),f.Arguments=f.Array,h("keys"),h("values"),h("entries")},82194:function(T,e,l){var v=l(464),h=l(46859),f=v("keys");T.exports=function(_){return f[_]||(f[_]=h(_))}},82621:function(T){"use strict";T.exports=function(l){return l!=l}},82747:function(T,e,l){"use strict";var v,h,f,_,b,y,D;l(39081),T.exports=(v=l(48352),l(37146),l(4420),b=(f=(h=v).lib).WordArray,D=(y=h.algo).EvpKDF=(_=f.Base).extend({cfg:_.extend({keySize:4,hasher:y.MD5,iterations:1}),init:function(k){this.cfg=this.cfg.extend(k)},compute:function(k,Q){for(var I,d=this.cfg,S=d.hasher.create(),R=b.create(),z=R.words,q=d.keySize,Z=d.iterations;z.length1?arguments[1]:void 0)}},83043:function(T,e,l){l(59883);var v=l(11206);T.exports=v.Object.values},83089:function(T,e,l){"use strict";var v=l(95304),h=l(96785),f=Object;T.exports=v(function(){if(null==this||this!==f(this))throw new h("RegExp.prototype.flags getter called on non-object");var b="";return this.hasIndices&&(b+="d"),this.global&&(b+="g"),this.ignoreCase&&(b+="i"),this.multiline&&(b+="m"),this.dotAll&&(b+="s"),this.unicode&&(b+="u"),this.unicodeSets&&(b+="v"),this.sticky&&(b+="y"),b},"get flags",!0)},83124:function(T,e,l){"use strict";l(24863);var v=l(32010),h=l(38347),f=l(15567),_=l(30450),b=l(7081),y=l(48914),M=l(15341),D=l(47044),x=l(2868),k=l(26882),Q=l(23417),I=l(71265),d=l(64397),S=l(69548),R=l(3840),z=l(6611).f,q=l(95892).f,Z=l(72864),H=l(73163),G=l(15216),W=l(70172),te=b.PROPER,P=b.CONFIGURABLE,J=W.get,j=W.set,re="ArrayBuffer",he="DataView",oe="prototype",me="Wrong index",ze=v[re],_e=ze,Ae=_e&&_e[oe],ve=v[he],ye=ve&&ve[oe],Oe=Object.prototype,ae=v.Array,Ee=v.RangeError,Fe=h(Z),Ve=h([].reverse),mt=d.pack,St=d.unpack,oi=function(it){return[255&it]},He=function(it){return[255&it,it>>8&255]},be=function(it){return[255&it,it>>8&255,it>>16&255,it>>24&255]},je=function(it){return it[3]<<24|it[2]<<16|it[1]<<8|it[0]},Ke=function(it){return mt(it,23,4)},_t=function(it){return mt(it,52,8)},Nt=function(it,gt){q(it[oe],gt,{get:function(){return J(this)[gt]}})},ut=function(it,gt,ai,Rt){var Gt=I(ai),zt=J(it);if(Gt+gt>zt.byteLength)throw Ee(me);var mi=J(zt.buffer).bytes,Zi=Gt+zt.byteOffset,Qi=H(mi,Zi,Zi+gt);return Rt?Qi:Ve(Qi)},et=function(it,gt,ai,Rt,Gt,zt){var mi=I(ai),Zi=J(it);if(mi+gt>Zi.byteLength)throw Ee(me);for(var Qi=J(Zi.buffer).bytes,Ht=mi+Zi.byteOffset,dt=Rt(+Gt),ge=0;geDt;)(vt=It[Dt++])in _e||y(_e,vt,ze[vt]);Ae.constructor=_e}R&&S(ye)!==Oe&&R(ye,Oe);var Qt=new ve(new _e(2)),qe=h(ye.setInt8);Qt.setInt8(0,2147483648),Qt.setInt8(1,2147483649),(Qt.getInt8(0)||!Qt.getInt8(1))&&M(ye,{setInt8:function(it,gt){qe(this,it,gt<<24>>24)},setUint8:function(it,gt){qe(this,it,gt<<24>>24)}},{unsafe:!0})}else Ae=(_e=function(it){x(this,Ae);var gt=I(it);j(this,{bytes:Fe(ae(gt),0),byteLength:gt}),f||(this.byteLength=gt)})[oe],ye=(ve=function(it,gt,ai){x(this,ye),x(it,Ae);var Rt=J(it).byteLength,Gt=k(gt);if(Gt<0||Gt>Rt)throw Ee("Wrong offset");if(Gt+(ai=void 0===ai?Rt-Gt:Q(ai))>Rt)throw Ee("Wrong length");j(this,{buffer:it,byteLength:ai,byteOffset:Gt}),f||(this.buffer=it,this.byteLength=ai,this.byteOffset=Gt)})[oe],f&&(Nt(_e,"byteLength"),Nt(ve,"buffer"),Nt(ve,"byteLength"),Nt(ve,"byteOffset")),M(ye,{getInt8:function(it){return ut(this,1,it)[0]<<24>>24},getUint8:function(it){return ut(this,1,it)[0]},getInt16:function(it){var gt=ut(this,2,it,arguments.length>1?arguments[1]:void 0);return(gt[1]<<8|gt[0])<<16>>16},getUint16:function(it){var gt=ut(this,2,it,arguments.length>1?arguments[1]:void 0);return gt[1]<<8|gt[0]},getInt32:function(it){return je(ut(this,4,it,arguments.length>1?arguments[1]:void 0))},getUint32:function(it){return je(ut(this,4,it,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(it){return St(ut(this,4,it,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(it){return St(ut(this,8,it,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(it,gt){et(this,1,it,oi,gt)},setUint8:function(it,gt){et(this,1,it,oi,gt)},setInt16:function(it,gt){et(this,2,it,He,gt,arguments.length>2?arguments[2]:void 0)},setUint16:function(it,gt){et(this,2,it,He,gt,arguments.length>2?arguments[2]:void 0)},setInt32:function(it,gt){et(this,4,it,be,gt,arguments.length>2?arguments[2]:void 0)},setUint32:function(it,gt){et(this,4,it,be,gt,arguments.length>2?arguments[2]:void 0)},setFloat32:function(it,gt){et(this,4,it,Ke,gt,arguments.length>2?arguments[2]:void 0)},setFloat64:function(it,gt){et(this,8,it,_t,gt,arguments.length>2?arguments[2]:void 0)}});G(_e,re),G(ve,he),T.exports={ArrayBuffer:_e,DataView:ve}},83326:function(T,e,l){"use strict";var v=l(28834);(0,l(59754).exportTypedArrayStaticMethod)("from",l(83590),v)},83590:function(T,e,l){var v=l(25567),h=l(2834),f=l(69075),_=l(43162),b=l(45495),y=l(15892),M=l(13872),D=l(89564),x=l(59754).aTypedArrayConstructor;T.exports=function(Q){var Z,H,G,W,te,P,I=f(this),d=_(Q),S=arguments.length,R=S>1?arguments[1]:void 0,z=void 0!==R,q=M(d);if(q&&!D(q))for(P=(te=y(d,q)).next,d=[];!(W=h(P,te)).done;)d.push(W.value);for(z&&S>2&&(R=v(R,arguments[2])),H=b(d),G=new(x(I))(H),Z=0;H>Z;Z++)G[Z]=z?R(d[Z],Z):d[Z];return G}},83797:function(T){"use strict";var l={};function v(y,M,D){D||(D=Error);var k=function(Q){function I(d,S,R){return Q.call(this,function x(Q,I,d){return"string"==typeof M?M:M(Q,I,d)}(d,S,R))||this}return function e(y,M){y.prototype=Object.create(M.prototype),y.prototype.constructor=y,y.__proto__=M}(I,Q),I}(D);k.prototype.name=D.name,k.prototype.code=y,l[y]=k}function h(y,M){if(Array.isArray(y)){var D=y.length;return y=y.map(function(x){return String(x)}),D>2?"one of ".concat(M," ").concat(y.slice(0,D-1).join(", "),", or ")+y[D-1]:2===D?"one of ".concat(M," ").concat(y[0]," or ").concat(y[1]):"of ".concat(M," ").concat(y[0])}return"of ".concat(M," ").concat(String(y))}v("ERR_INVALID_OPT_VALUE",function(y,M){return'The value "'+M+'" is invalid for option "'+y+'"'},TypeError),v("ERR_INVALID_ARG_TYPE",function(y,M,D){var x,k;if("string"==typeof M&&function f(y,M,D){return y.substr(!D||D<0?0:+D,M.length)===M}(M,"not ")?(x="must not be",M=M.replace(/^not /,"")):x="must be",function _(y,M,D){return(void 0===D||D>y.length)&&(D=y.length),y.substring(D-M.length,D)===M}(y," argument"))k="The ".concat(y," ").concat(x," ").concat(h(M,"type"));else{var Q=function b(y,M,D){return"number"!=typeof D&&(D=0),!(D+M.length>y.length)&&-1!==y.indexOf(M,D)}(y,".")?"property":"argument";k='The "'.concat(y,'" ').concat(Q," ").concat(x," ").concat(h(M,"type"))}return k+". Received type ".concat(typeof D)},TypeError),v("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),v("ERR_METHOD_NOT_IMPLEMENTED",function(y){return"The "+y+" method is not implemented"}),v("ERR_STREAM_PREMATURE_CLOSE","Premature close"),v("ERR_STREAM_DESTROYED",function(y){return"Cannot call "+y+" after a stream was destroyed"}),v("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),v("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),v("ERR_STREAM_WRITE_AFTER_END","write after end"),v("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),v("ERR_UNKNOWN_ENCODING",function(y){return"Unknown encoding: "+y},TypeError),v("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),T.exports.F=l},83943:function(T,e,l){var h=l(32010).TypeError;T.exports=function(f){if(null==f)throw h("Can't call method on "+f);return f}},84030:function(T,e,l){var v=l(47044),f=l(32010).RegExp;T.exports=v(function(){var _=f(".","s");return!(_.dotAll&&_.exec("\n")&&"s"===_.flags)})},84151:function(T,e,l){l(94910)},84320:function(T,e,l){"use strict";var v=l(58448),h=l(98086),f=l(26882),_=l(45495),b=l(81007),y=Math.min,M=[].lastIndexOf,D=!!M&&1/[1].lastIndexOf(1,-0)<0,x=b("lastIndexOf");T.exports=D||!x?function(I){if(D)return v(M,this,arguments)||0;var d=h(this),S=_(d),R=S-1;for(arguments.length>1&&(R=y(R,f(arguments[1]))),R<0&&(R=S+R);R>=0;R--)if(R in d&&d[R]===I)return R||0;return-1}:M},84327:function(T,e,l){"use strict";l(81755),l(8953),l(14032),l(56912),l(59735),l(73663),l(29883),l(35471),l(21012),l(88997),l(97464),l(2857),l(94715),l(13624),l(91132),l(62514),l(24597),l(88042),l(4660),l(92451),l(44206),l(66288),l(13250),l(3858),l(84538),l(64793),l(74202),l(52529);var v=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],h=function(y,M,D){var x=y[M];y[M]=y[D],y[D]=x};T.exports={swap32LE:function(y){v&&function(y){for(var M=y.length,D=0;D0&&1/W<0?1:-1:G>W}));var H},!q||z)},84543:function(T,e,l){var v=l(32504);e.init=function(){return(0,l(20980).BrotliDecompressBuffer)(v.toByteArray(l(13501)))}},84675:function(T,e,l){var v=l(64429),h=l(2416);T.exports=Object.keys||function(_){return v(_,h)}},84695:function(T,e,l){"use strict";var v=l(14598).Buffer;l(58028),l(20731),l(14032),l(68067);var h=l(48181),f=l(6729);T.exports=function(){function _(y){var M;for(this.data=y,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.text={};;){var D=this.readUInt32(),x="";for(M=0;M<4;M++)x+=String.fromCharCode(this.data[this.pos++]);switch(x){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"PLTE":this.palette=this.read(D);break;case"IDAT":for(M=0;M0)for(M=0;Mthis.data.length)throw new Error("Incomplete or corrupt PNG file")}}_.decode=function(M,D){return h.readFile(M,function(x,k){return new _(k).decode(function(I){return D(I)})})},_.load=function(M){return new _(h.readFileSync(M))};var b=_.prototype;return b.read=function(M){for(var D=new Array(M),x=0;xve?ye:ve;return D.inlines[ve]}(),z=function d(){for(var ve=0,ye=0,Oe=D.inlines.length;ye"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Z(ae,Ee){return(Z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(Ve,mt){return Ve.__proto__=mt,Ve})(ae,Ee)}function H(ae){return(H=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(Fe){return Fe.__proto__||Object.getPrototypeOf(Fe)})(ae)}function G(ae){return(G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(Ee){return typeof Ee}:function(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(ae)}var te=l(7187).inspect,J=l(35403).codes.ERR_INVALID_ARG_TYPE;function j(ae,Ee,Fe){return(void 0===Fe||Fe>ae.length)&&(Fe=ae.length),ae.substring(Fe-Ee.length,Fe)===Ee}var he="",oe="",Ce="",me="",ze={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function Ae(ae){var Ee=Object.keys(ae),Fe=Object.create(Object.getPrototypeOf(ae));return Ee.forEach(function(Ve){Fe[Ve]=ae[Ve]}),Object.defineProperty(Fe,"message",{value:ae.message}),Fe}function ve(ae){return te(ae,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function ye(ae,Ee,Fe){var Ve="",mt="",St=0,oi="",He=!1,be=ve(ae),je=be.split("\n"),Ke=ve(Ee).split("\n"),_t=0,Nt="";if("strictEqual"===Fe&&"object"===G(ae)&&"object"===G(Ee)&&null!==ae&&null!==Ee&&(Fe="strictEqualObject"),1===je.length&&1===Ke.length&&je[0]!==Ke[0]){var ut=je[0].length+Ke[0].length;if(ut<=10){if(!("object"===G(ae)&&null!==ae||"object"===G(Ee)&&null!==Ee||0===ae&&0===Ee))return"".concat(ze[Fe],"\n\n")+"".concat(je[0]," !== ").concat(Ke[0],"\n")}else if("strictEqualObject"!==Fe&&ut<(v.stderr&&v.stderr.isTTY?v.stderr.columns:80)){for(;je[0][_t]===Ke[0][_t];)_t++;_t>2&&(Nt="\n ".concat(function re(ae,Ee){if(Ee=Math.floor(Ee),0==ae.length||0==Ee)return"";var Fe=ae.length*Ee;for(Ee=Math.floor(Math.log(Ee)/Math.log(2));Ee;)ae+=ae,Ee--;return ae+ae.substring(0,Fe-ae.length)}(" ",_t),"^"),_t=0)}}for(var Xe=je[je.length-1],It=Ke[Ke.length-1];Xe===It&&(_t++<2?oi="\n ".concat(Xe).concat(oi):Ve=Xe,je.pop(),Ke.pop(),0!==je.length&&0!==Ke.length);)Xe=je[je.length-1],It=Ke[Ke.length-1];var Dt=Math.max(je.length,Ke.length);if(0===Dt){var vt=be.split("\n");if(vt.length>30)for(vt[26]="".concat(he,"...").concat(me);vt.length>27;)vt.pop();return"".concat(ze.notIdentical,"\n\n").concat(vt.join("\n"),"\n")}_t>3&&(oi="\n".concat(he,"...").concat(me).concat(oi),He=!0),""!==Ve&&(oi="\n ".concat(Ve).concat(oi),Ve="");var Qt=0,qe=ze[Fe]+"\n".concat(oe,"+ actual").concat(me," ").concat(Ce,"- expected").concat(me),ke=" ".concat(he,"...").concat(me," Lines skipped");for(_t=0;_t1&&_t>2&&(it>4?(mt+="\n".concat(he,"...").concat(me),He=!0):it>3&&(mt+="\n ".concat(Ke[_t-2]),Qt++),mt+="\n ".concat(Ke[_t-1]),Qt++),St=_t,Ve+="\n".concat(Ce,"-").concat(me," ").concat(Ke[_t]),Qt++;else if(Ke.length<_t+1)it>1&&_t>2&&(it>4?(mt+="\n".concat(he,"...").concat(me),He=!0):it>3&&(mt+="\n ".concat(je[_t-2]),Qt++),mt+="\n ".concat(je[_t-1]),Qt++),St=_t,mt+="\n".concat(oe,"+").concat(me," ").concat(je[_t]),Qt++;else{var gt=Ke[_t],ai=je[_t],Rt=ai!==gt&&(!j(ai,",")||ai.slice(0,-1)!==gt);Rt&&j(gt,",")&>.slice(0,-1)===ai&&(Rt=!1,ai+=","),Rt?(it>1&&_t>2&&(it>4?(mt+="\n".concat(he,"...").concat(me),He=!0):it>3&&(mt+="\n ".concat(je[_t-2]),Qt++),mt+="\n ".concat(je[_t-1]),Qt++),St=_t,mt+="\n".concat(oe,"+").concat(me," ").concat(ai),Ve+="\n".concat(Ce,"-").concat(me," ").concat(gt),Qt+=2):(mt+=Ve,Ve="",(1===it||0===_t)&&(mt+="\n ".concat(ai),Qt++))}if(Qt>20&&_t30)for(ut[26]="".concat(he,"...").concat(me);ut.length>27;)ut.pop();St=Fe.call(this,1===ut.length?"".concat(Nt," ").concat(ut[0]):"".concat(Nt,"\n\n").concat(ut.join("\n"),"\n"))}else{var et=ve(je),Xe="",It=ze[He];"notDeepEqual"===He||"notEqual"===He?(et="".concat(ze[He],"\n\n").concat(et)).length>1024&&(et="".concat(et.slice(0,1021),"...")):(Xe="".concat(ve(Ke)),et.length>512&&(et="".concat(et.slice(0,509),"...")),Xe.length>512&&(Xe="".concat(Xe.slice(0,509),"...")),"deepEqual"===He||"equal"===He?et="".concat(It,"\n\n").concat(et,"\n\nshould equal\n\n"):Xe=" ".concat(He," ").concat(Xe)),St=Fe.call(this,"".concat(et).concat(Xe))}return Error.stackTraceLimit=_t,St.generatedMessage=!oi,Object.defineProperty(d(St),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),St.code="ERR_ASSERTION",St.actual=je,St.expected=Ke,St.operator=He,Error.captureStackTrace&&Error.captureStackTrace(d(St),be),St.name="AssertionError",I(St)}return function M(ae,Ee,Fe){return Ee&&y(ae.prototype,Ee),Fe&&y(ae,Fe),Object.defineProperty(ae,"prototype",{writable:!1}),ae}(Ve,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:Ee,value:function(St,oi){return te(this,f(f({},oi),{},{customInspect:!1,depth:0}))}}]),Ve}(S(Error),te.custom);T.exports=Oe},85567:function(T){"use strict";T.exports=Object.getOwnPropertyDescriptor},85628:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(51270),v.pad.ZeroPadding={pad:function(f,_){var b=4*_;f.clamp(),f.sigBytes+=b-(f.sigBytes%b||b)},unpad:function(f){var _=f.words,b=f.sigBytes-1;for(b=f.sigBytes-1;b>=0;b--)if(_[b>>>2]>>>24-b%4*8&255){f.sigBytes=b+1;break}}},v.pad.ZeroPadding)},86255:function(T,e,l){"use strict";var v=l(28651),h=l(89295),f=l(18890)(),_=l(68109),b=l(96785),y=v("%Math.floor%");T.exports=function(D,x){if("function"!=typeof D)throw new b("`fn` is not a function");if("number"!=typeof x||x<0||x>4294967295||y(x)!==x)throw new b("`length` must be a positive 32-bit integer");var k=arguments.length>2&&!!arguments[2],Q=!0,I=!0;if("length"in D&&_){var d=_(D,"length");d&&!d.configurable&&(Q=!1),d&&!d.writable&&(I=!1)}return(Q||I||!k)&&(f?h(D,"length",x,!0,!0):h(D,"length",x)),D}},86392:function(T,e,l){var v=l(25096);T.exports=function(h,f){return void 0===h?arguments.length<2?"":f:v(h)}},86781:function(T,e,l){"use strict";function v(Rt,Gt){return function y(Rt){if(Array.isArray(Rt))return Rt}(Rt)||function b(Rt,Gt){var zt=null==Rt?null:typeof Symbol<"u"&&Rt[Symbol.iterator]||Rt["@@iterator"];if(null!=zt){var mi,Zi,Qi,Ht,dt=[],ge=!0,Se=!1;try{if(Qi=(zt=zt.call(Rt)).next,0===Gt){if(Object(zt)!==zt)return;ge=!1}else for(;!(ge=(mi=Qi.call(zt)).done)&&(dt.push(mi.value),dt.length!==Gt);ge=!0);}catch(ct){Se=!0,Zi=ct}finally{try{if(!ge&&null!=zt.return&&(Ht=zt.return(),Object(Ht)!==Ht))return}finally{if(Se)throw Zi}}return dt}}(Rt,Gt)||function f(Rt,Gt){if(Rt){if("string"==typeof Rt)return _(Rt,Gt);var zt=Object.prototype.toString.call(Rt).slice(8,-1);if("Object"===zt&&Rt.constructor&&(zt=Rt.constructor.name),"Map"===zt||"Set"===zt)return Array.from(Rt);if("Arguments"===zt||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(zt))return _(Rt,Gt)}}(Rt,Gt)||function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(Rt,Gt){(null==Gt||Gt>Rt.length)&&(Gt=Rt.length);for(var zt=0,mi=new Array(Gt);zt10)return!0;for(var Gt=0;Gt57)return!0}return 10===Rt.length&&Rt>=Math.pow(2,32)}function ye(Rt){return Object.keys(Rt).filter(ve).concat(I(Rt).filter(Object.prototype.propertyIsEnumerable.bind(Rt)))}function Oe(Rt,Gt){if(Rt===Gt)return 0;for(var zt=Rt.length,mi=Gt.length,Zi=0,Qi=Math.min(zt,mi);ZiZ;)for(var j,W=x(arguments[Z++]),te=H?I(b(W),H(W)):b(W),P=te.length,J=0;P>J;)j=te[J++],(!v||f(G,W,j))&&(z[j]=W[j]);return z}:k},87811:function(T,e,l){var v=l(24517),h=l(48914);T.exports=function(f,_){v(_)&&"cause"in _&&h(f,"cause",_.cause)}},87984:function(T,e,l){var v=l(80614),I=10,d=11;function P(re,he,oe){this.prefix=new Uint8Array(re.length),this.transform=he,this.suffix=new Uint8Array(oe.length);for(var Ce=0;Ce'),new P("",0,"\n"),new P("",3,""),new P("",0,"]"),new P("",0," for "),new P("",14,""),new P("",2,""),new P("",0," a "),new P("",0," that "),new P(" ",I,""),new P("",0,". "),new P(".",0,""),new P(" ",0,", "),new P("",15,""),new P("",0," with "),new P("",0,"'"),new P("",0," from "),new P("",0," by "),new P("",16,""),new P("",17,""),new P(" the ",0,""),new P("",4,""),new P("",0,". The "),new P("",d,""),new P("",0," on "),new P("",0," as "),new P("",0," is "),new P("",7,""),new P("",1,"ing "),new P("",0,"\n\t"),new P("",0,":"),new P(" ",0,". "),new P("",0,"ed "),new P("",20,""),new P("",18,""),new P("",6,""),new P("",0,"("),new P("",I,", "),new P("",8,""),new P("",0," at "),new P("",0,"ly "),new P(" the ",0," of "),new P("",5,""),new P("",9,""),new P(" ",I,", "),new P("",I,'"'),new P(".",0,"("),new P("",d," "),new P("",I,'">'),new P("",0,'="'),new P(" ",0,"."),new P(".com/",0,""),new P(" the ",0," of the "),new P("",I,"'"),new P("",0,". This "),new P("",0,","),new P(".",0," "),new P("",I,"("),new P("",I,"."),new P("",0," not "),new P(" ",0,'="'),new P("",0,"er "),new P(" ",d," "),new P("",0,"al "),new P(" ",d,""),new P("",0,"='"),new P("",d,'"'),new P("",I,". "),new P(" ",0,"("),new P("",0,"ful "),new P(" ",I,". "),new P("",0,"ive "),new P("",0,"less "),new P("",d,"'"),new P("",0,"est "),new P(" ",I,"."),new P("",d,'">'),new P(" ",0,"='"),new P("",I,","),new P("",0,"ize "),new P("",d,"."),new P("\xc2\xa0",0,""),new P(" ",0,","),new P("",I,'="'),new P("",d,'="'),new P("",0,"ous "),new P("",d,", "),new P("",I,"='"),new P(" ",I,","),new P(" ",d,'="'),new P(" ",d,", "),new P("",d,","),new P("",d,"("),new P("",d,". "),new P(" ",d,"."),new P("",d,"='"),new P(" ",d,". "),new P(" ",I,'="'),new P(" ",d,"='"),new P(" ",I,"='")];function j(re,he){return re[he]<192?(re[he]>=97&&re[he]<=122&&(re[he]^=32),1):re[he]<224?(re[he+1]^=32,2):(re[he+2]^=5,3)}e.kTransforms=J,e.kNumTransforms=J.length,e.transformDictionaryWord=function(re,he,oe,Ce,me){var ae,ze=J[me].prefix,_e=J[me].suffix,Ae=J[me].transform,ve=Ae<12?0:Ae-11,ye=0,Oe=he;ve>Ce&&(ve=Ce);for(var Ee=0;Ee0;){var Fe=j(re,ae);ae+=Fe,Ce-=Fe}for(var Ve=0;Ve<_e.length;)re[he++]=_e[Ve++];return he-Oe}},88042:function(T,e,l){"use strict";var v=l(59754),h=l(91102).map,f=l(34815),_=v.aTypedArray;(0,v.exportTypedArrayMethod)("map",function(M){return h(_(this),M,arguments.length>1?arguments[1]:void 0,function(D,x){return new(f(D))(x)})})},88152:function(T,e,l){"use strict";var v=l(18128);T.exports=function(){function f(b){void 0===b&&(b={}),this.fields=b}var _=f.prototype;return _.decode=function(y,M,D){void 0===D&&(D=0);var x=this._setup(y,M,D);return this._parseFields(y,x,this.fields),null!=this.process&&this.process.call(x,y),x},_._setup=function(y,M,D){var x={};return Object.defineProperties(x,{parent:{value:M},_startOffset:{value:y.pos},_currentOffset:{value:0,writable:!0},_length:{value:D}}),x},_._parseFields=function(y,M,D){for(var x in D){var k,Q=D[x];void 0!==(k="function"==typeof Q?Q.call(M,M):Q.decode(y,M))&&(k instanceof v.PropertyDescriptor?Object.defineProperty(M,x,k):M[x]=k),M._currentOffset=y.pos-M._startOffset}},_.size=function(y,M,D){null==y&&(y={}),null==D&&(D=!0);var x={parent:M,val:y,pointerSize:0},k=0;for(var Q in this.fields){var I=this.fields[Q];null!=I.size&&(k+=I.size(y[Q],x))}return D&&(k+=x.pointerSize),k},_.encode=function(y,M,D){var x;null!=this.preEncode&&this.preEncode.call(M,y);var k={pointers:[],startOffset:y.pos,parent:D,val:M,pointerSize:0};for(var Q in k.pointerOffset=y.pos+this.size(M,k,!1),this.fields)null!=(x=this.fields[Q]).encode&&x.encode(y,M[Q],k);for(var I=0;I0)if("string"!=typeof et&&!vt.objectMode&&Object.getPrototypeOf(et)!==y.prototype&&(et=function D(ut){return y.from(ut)}(et)),It)vt.endEmitted?J(ut,new G):me(ut,vt,et,!0);else if(vt.ended)J(ut,new Z);else{if(vt.destroyed)return!1;vt.reading=!1,vt.decoder&&!Xe?(et=vt.decoder.write(et),vt.objectMode||0!==et.length?me(ut,vt,et,!1):Ee(ut,vt)):me(ut,vt,et,!1)}else It||(vt.reading=!1,Ee(ut,vt));return!vt.ended&&(vt.lengthet.highWaterMark&&(et.highWaterMark=function Ae(ut){return ut>=_e?ut=_e:(ut--,ut|=ut>>>1,ut|=ut>>>2,ut|=ut>>>4,ut|=ut>>>8,ut|=ut>>>16,ut++),ut}(ut)),ut<=et.length?ut:et.ended?et.length:(et.needReadable=!0,0))}function Oe(ut){var et=ut._readableState;Q("emitReadable",et.needReadable,et.emittedReadable),et.needReadable=!1,et.emittedReadable||(Q("emitReadable",et.flowing),et.emittedReadable=!0,v.nextTick(ae,ut))}function ae(ut){var et=ut._readableState;Q("emitReadable_",et.destroyed,et.length,et.ended),!et.destroyed&&(et.length||et.ended)&&(ut.emit("readable"),et.emittedReadable=!1),et.needReadable=!et.flowing&&!et.ended&&et.length<=et.highWaterMark,be(ut)}function Ee(ut,et){et.readingMore||(et.readingMore=!0,v.nextTick(Fe,ut,et))}function Fe(ut,et){for(;!et.reading&&!et.ended&&(et.length0,et.resumeScheduled&&!et.paused?et.flowing=!0:ut.listenerCount("data")>0&&ut.resume()}function St(ut){Q("readable nexttick read 0"),ut.read(0)}function He(ut,et){Q("resume",et.reading),et.reading||ut.read(0),et.resumeScheduled=!1,ut.emit("resume"),be(ut),et.flowing&&!et.reading&&ut.read(0)}function be(ut){var et=ut._readableState;for(Q("flow",et.flowing);et.flowing&&null!==ut.read(););}function je(ut,et){return 0===et.length?null:(et.objectMode?Xe=et.buffer.shift():!ut||ut>=et.length?(Xe=et.decoder?et.buffer.join(""):1===et.buffer.length?et.buffer.first():et.buffer.concat(et.length),et.buffer.clear()):Xe=et.buffer.consume(ut,et.decoder),Xe);var Xe}function Ke(ut){var et=ut._readableState;Q("endReadable",et.endEmitted),et.endEmitted||(et.ended=!0,v.nextTick(_t,et,ut))}function _t(ut,et){if(Q("endReadableNT",ut.endEmitted,ut.length),!ut.endEmitted&&0===ut.length&&(ut.endEmitted=!0,et.readable=!1,et.emit("end"),ut.autoDestroy)){var Xe=et._writableState;(!Xe||Xe.autoDestroy&&Xe.finished)&&et.destroy()}}function Nt(ut,et){for(var Xe=0,It=ut.length;Xe=et.highWaterMark:et.length>0)||et.ended))return Q("read: emitReadable",et.length,et.ended),0===et.length&&et.ended?Ke(this):Oe(this),null;if(0===(ut=ve(ut,et))&&et.ended)return 0===et.length&&Ke(this),null;var Dt,It=et.needReadable;return Q("need readable",It),(0===et.length||et.length-ut0?je(ut,et):null)?(et.needReadable=et.length<=et.highWaterMark,ut=0):(et.length-=ut,et.awaitDrain=0),0===et.length&&(et.ended||(et.needReadable=!0),Xe!==ut&&et.ended&&Ke(this)),null!==Dt&&this.emit("data",Dt),Dt},oe.prototype._read=function(ut){J(this,new H("_read()"))},oe.prototype.pipe=function(ut,et){var Xe=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=ut;break;case 1:It.pipes=[It.pipes,ut];break;default:It.pipes.push(ut)}It.pipesCount+=1,Q("pipe count=%d opts=%j",It.pipesCount,et);var vt=et&&!1===et.end||ut===v.stdout||ut===v.stderr?mi:qe;function Qt(Zi,Qi){Q("onunpipe"),Zi===Xe&&Qi&&!1===Qi.hasUnpiped&&(Qi.hasUnpiped=!0,function gt(){Q("cleanup"),ut.removeListener("close",Gt),ut.removeListener("finish",zt),ut.removeListener("drain",ke),ut.removeListener("error",Rt),ut.removeListener("unpipe",Qt),Xe.removeListener("end",qe),Xe.removeListener("end",mi),Xe.removeListener("data",ai),it=!0,It.awaitDrain&&(!ut._writableState||ut._writableState.needDrain)&&ke()}())}function qe(){Q("onend"),ut.end()}It.endEmitted?v.nextTick(vt):Xe.once("end",vt),ut.on("unpipe",Qt);var ke=function Ve(ut){return function(){var Xe=ut._readableState;Q("pipeOnDrain",Xe.awaitDrain),Xe.awaitDrain&&Xe.awaitDrain--,0===Xe.awaitDrain&&_(ut,"data")&&(Xe.flowing=!0,be(ut))}}(Xe);ut.on("drain",ke);var it=!1;function ai(Zi){Q("ondata");var Qi=ut.write(Zi);Q("dest.write",Qi),!1===Qi&&((1===It.pipesCount&&It.pipes===ut||It.pipesCount>1&&-1!==Nt(It.pipes,ut))&&!it&&(Q("false write response, pause",It.awaitDrain),It.awaitDrain++),Xe.pause())}function Rt(Zi){Q("onerror",Zi),mi(),ut.removeListener("error",Rt),0===_(ut,"error")&&J(ut,Zi)}function Gt(){ut.removeListener("finish",zt),mi()}function zt(){Q("onfinish"),ut.removeListener("close",Gt),mi()}function mi(){Q("unpipe"),Xe.unpipe(ut)}return Xe.on("data",ai),function re(ut,et,Xe){if("function"==typeof ut.prependListener)return ut.prependListener(et,Xe);ut._events&&ut._events[et]?Array.isArray(ut._events[et])?ut._events[et].unshift(Xe):ut._events[et]=[Xe,ut._events[et]]:ut.on(et,Xe)}(ut,"error",Rt),ut.once("close",Gt),ut.once("finish",zt),ut.emit("pipe",Xe),It.flowing||(Q("pipe resume"),Xe.resume()),ut},oe.prototype.unpipe=function(ut){var et=this._readableState,Xe={hasUnpiped:!1};if(0===et.pipesCount)return this;if(1===et.pipesCount)return ut&&ut!==et.pipes||(ut||(ut=et.pipes),et.pipes=null,et.pipesCount=0,et.flowing=!1,ut&&ut.emit("unpipe",this,Xe)),this;if(!ut){var It=et.pipes,Dt=et.pipesCount;et.pipes=null,et.pipesCount=0,et.flowing=!1;for(var vt=0;vt0,!1!==It.flowing&&this.resume()):"readable"===ut&&!It.endEmitted&&!It.readableListening&&(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,Q("on readable",It.length,It.reading),It.length?Oe(this):It.reading||v.nextTick(St,this)),Xe},oe.prototype.removeListener=function(ut,et){var Xe=b.prototype.removeListener.call(this,ut,et);return"readable"===ut&&v.nextTick(mt,this),Xe},oe.prototype.removeAllListeners=function(ut){var et=b.prototype.removeAllListeners.apply(this,arguments);return("readable"===ut||void 0===ut)&&v.nextTick(mt,this),et},oe.prototype.resume=function(){var ut=this._readableState;return ut.flowing||(Q("resume"),ut.flowing=!ut.readableListening,function oi(ut,et){et.resumeScheduled||(et.resumeScheduled=!0,v.nextTick(He,ut,et))}(this,ut)),ut.paused=!1,this},oe.prototype.pause=function(){return Q("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(Q("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},oe.prototype.wrap=function(ut){var et=this,Xe=this._readableState,It=!1;for(var Dt in ut.on("end",function(){if(Q("wrapped end"),Xe.decoder&&!Xe.ended){var Qt=Xe.decoder.end();Qt&&Qt.length&&et.push(Qt)}et.push(null)}),ut.on("data",function(Qt){Q("wrapped data"),Xe.decoder&&(Qt=Xe.decoder.write(Qt)),Xe.objectMode&&null==Qt||!(Xe.objectMode||Qt&&Qt.length)||et.push(Qt)||(It=!0,ut.pause())}),ut)void 0===this[Dt]&&"function"==typeof ut[Dt]&&(this[Dt]=function(qe){return function(){return ut[qe].apply(ut,arguments)}}(Dt));for(var vt=0;vt1?arguments[1]:void 0)})},89029:function(T,e){e.read=function(l,v,h,f,_){var b,y,M=8*_-f-1,D=(1<>1,k=-7,Q=h?_-1:0,I=h?-1:1,d=l[v+Q];for(Q+=I,b=d&(1<<-k)-1,d>>=-k,k+=M;k>0;b=256*b+l[v+Q],Q+=I,k-=8);for(y=b&(1<<-k)-1,b>>=-k,k+=f;k>0;y=256*y+l[v+Q],Q+=I,k-=8);if(0===b)b=1-x;else{if(b===D)return y?NaN:1/0*(d?-1:1);y+=Math.pow(2,f),b-=x}return(d?-1:1)*y*Math.pow(2,b-f)},e.write=function(l,v,h,f,_,b){var y,M,D,x=8*b-_-1,k=(1<>1,I=23===_?Math.pow(2,-24)-Math.pow(2,-77):0,d=f?0:b-1,S=f?1:-1,R=v<0||0===v&&1/v<0?1:0;for(v=Math.abs(v),isNaN(v)||v===1/0?(M=isNaN(v)?1:0,y=k):(y=Math.floor(Math.log(v)/Math.LN2),v*(D=Math.pow(2,-y))<1&&(y--,D*=2),(v+=y+Q>=1?I/D:I*Math.pow(2,1-Q))*D>=2&&(y++,D/=2),y+Q>=k?(M=0,y=k):y+Q>=1?(M=(v*D-1)*Math.pow(2,_),y+=Q):(M=v*Math.pow(2,Q-1)*Math.pow(2,_),y=0));_>=8;l[h+d]=255&M,d+=S,M/=256,_-=8);for(y=y<<_|M,x+=_;x>0;l[h+d]=255&y,d+=S,y/=256,x-=8);l[h+d-S]|=128*R}},89295:function(T,e,l){"use strict";var v=l(56649),h=l(57770),f=l(96785),_=l(68109);T.exports=function(y,M,D){if(!y||"object"!=typeof y&&"function"!=typeof y)throw new f("`obj` must be an object or a function`");if("string"!=typeof M&&"symbol"!=typeof M)throw new f("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new f("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new f("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new f("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new f("`loose`, if provided, must be a boolean");var x=arguments.length>3?arguments[3]:null,k=arguments.length>4?arguments[4]:null,Q=arguments.length>5?arguments[5]:null,I=arguments.length>6&&arguments[6],d=!!_&&_(y,M);if(v)v(y,M,{configurable:null===Q&&d?d.configurable:!Q,enumerable:null===x&&d?d.enumerable:!x,value:D,writable:null===k&&d?d.writable:!k});else{if(!I&&(x||k||Q))throw new h("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");y[M]=D}}},89302:function(T,e,l){"use strict";var f,v=l(36688),h=l(68109);try{f=[].__proto__===Array.prototype}catch(M){if(!M||"object"!=typeof M||!("code"in M)||"ERR_PROTO_ACCESS"!==M.code)throw M}var _=!!f&&h&&h(Object.prototype,"__proto__"),b=Object,y=b.getPrototypeOf;T.exports=_&&"function"==typeof _.get?v([_.get]):"function"==typeof y&&function(D){return y(null==D?D:b(D))}},89564:function(T,e,l){var v=l(38688),h=l(15366),f=v("iterator"),_=Array.prototype;T.exports=function(b){return void 0!==b&&(h.Array===b||_[f]===b)}},89636:function(T,e,l){"use strict";var v=l(63249);T.exports=function(){return"function"==typeof Object.is?Object.is:v}},89638:function(T,e,l){"use strict";var v=l(74878);function h(b){var y=parseFloat(b);if("number"==typeof y&&!isNaN(y))return y}function f(b){var y;try{y=new v.XmlDocument(b)}catch(M){throw new Error("SVGMeasure: "+M)}if("svg"!==y.name)throw new Error("SVGMeasure: expected document");return y}function _(){}_.prototype.measureSVG=function(b){var y=f(b),M=h(y.attr.width),D=h(y.attr.height);if((null==M||null==D)&&"string"==typeof y.attr.viewBox){var x=y.attr.viewBox.split(/[,\s]+/);if(4!==x.length)throw new Error("Unexpected svg viewbox format, should have 4 entries but found: '"+y.attr.viewBox+"'");null==M&&(M=h(x[2])),null==D&&(D=h(x[3]))}return{width:M,height:D}},_.prototype.writeDimensions=function(b,y){var M=f(b);return M.attr.width=""+y.width,M.attr.height=""+y.height,M.toString()},T.exports=_},89784:function(T){T.exports="function"==typeof Object.create?function(l,v){v&&(l.super_=v,l.prototype=Object.create(v.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}))}:function(l,v){if(v){l.super_=v;var h=function(){};h.prototype=v.prototype,l.prototype=new h,l.prototype.constructor=l}}},89836:function(T,e,l){"use strict";var v=l(77530),h=l(91867).isFunction,f=l(91867).isNumber,_=l(91867).isPositiveInteger;function b(y){this.tableNode=y}b.prototype.beginTable=function(y){var M,D,x=this;this.offsets=(M=this.tableNode)._offsets,this.layout=M._layout,D=y.context().availableWidth-this.offsets.total,v.buildColumnWidths(M.table.widths,D,this.offsets.total,M),this.tableWidth=M._offsets.total+function Q(){var S=0;return M.table.widths.forEach(function(R){S+=R._calcWidth}),S}(),this.rowSpanData=function I(){var S=[],R=0,z=0;S.push({left:0,rowSpan:0});for(var q=0,Z=x.tableNode.table.body[0].length;qM.table.body.length)throw new Error(`Too few rows in the table. Property headerRows requires at least ${this.headerRows}, contains only ${M.table.body.length}`);this.rowsWithoutPageBreak=this.headerRows;const S=M.table.keepWithHeaderRows;_(S)&&(this.rowsWithoutPageBreak+=S)}this.dontBreakRows=M.table.dontBreakRows||!1,(this.rowsWithoutPageBreak||this.dontBreakRows)&&(y.beginUnbreakableBlock(),this.drawHorizontalLine(0,y),this.rowsWithoutPageBreak&&this.dontBreakRows&&y.beginUnbreakableBlock()),function d(S){for(var R=0;R0&&P(R+W,q,0,Z.border[0]),void 0!==Z.border[2]&&P(R+W,q+G-1,2,Z.border[2]);for(var te=0;te0&&P(R,q+te,1,Z.border[1]),void 0!==Z.border[3]&&P(R+H-1,q+te,3,Z.border[3])}}function P(J,j,re,he){var oe=S[J][j];oe.border=oe.border||{},oe.border[re]=he}}(this.tableNode.table.body)},b.prototype.onRowBreak=function(y,M){var D=this;return function(){var x=D.rowPaddingTop+(D.headerRows?0:D.topLineWidth);M.context().availableHeight-=D.reservedAtBottom,M.context().moveDown(x)}},b.prototype.beginRow=function(y,M){this.topLineWidth=this.layout.hLineWidth(y,this.tableNode),this.rowPaddingTop=this.layout.paddingTop(y,this.tableNode),this.bottomLineWidth=this.layout.hLineWidth(y+1,this.tableNode),this.rowPaddingBottom=this.layout.paddingBottom(y,this.tableNode),this.rowCallback=this.onRowBreak(y,M),M.tracker.startTracking("pageChanged",this.rowCallback),0==y&&!this.dontBreakRows&&!this.rowsWithoutPageBreak&&(this._tableTopBorderY=M.context().y,M.context().moveDown(this.topLineWidth)),this.dontBreakRows&&y>0&&M.beginUnbreakableBlock(),this.rowTopY=M.context().y,this.reservedAtBottom=this.bottomLineWidth+this.rowPaddingBottom,M.context().availableHeight-=this.reservedAtBottom,M.context().moveDown(this.rowPaddingTop)},b.prototype.drawHorizontalLine=function(y,M,D,x=!0,k){var Q=this.layout.hLineWidth(y,this.tableNode);if(Q){var d,I=this.layout.hLineStyle(y,this.tableNode);I&&I.dash&&(d=I.dash);for(var q,Z,H,S=Q/2,R=null,z=this.tableNode.table.body,G=0,W=this.rowSpanData.length;G0&&(re=(q=z[y-1][G]).border?q.border[3]:this.layout.defaultBorder)&&q.borderColor&&(J=q.borderColor[3]),yoe;)R.width+=this.rowSpanData[G+oe++].width||0;G+=oe-1}else if(q&&q.colSpan&&re){for(;q.colSpan>oe;)R.width+=this.rowSpanData[G+oe++].width||0;G+=oe-1}else if(Z&&Z.colSpan&&j){for(;Z.colSpan>oe;)R.width+=this.rowSpanData[G+oe++].width||0;G+=oe-1}else R.width+=this.rowSpanData[G].width||0}var Ce=(D||0)+S;P&&R&&R.width&&(M.addVector({type:"line",x1:R.left,x2:R.left+R.width,y1:Ce,y2:Ce,lineWidth:Q,dash:d,lineColor:J},!1,f(D),null,k),R=null,J=null,q=null,Z=null,H=null)}x&&M.context().moveDown(Q)}},b.prototype.drawVerticalLine=function(y,M,D,x,k,Q,I){var d=this.layout.vLineWidth(x,this.tableNode);if(0!==d){var R,S=this.layout.vLineStyle(x,this.tableNode);S&&S.dash&&(R=S.dash);var q,Z,H,z=this.tableNode.table.body;if(x>0&&(q=z[Q][I])&&q.borderColor&&(q.border?q.border[2]:this.layout.defaultBorder)&&(H=q.borderColor[2]),null==H&&x0&&_t--}return Ke.push({x:Q.rowSpanData[Q.rowSpanData.length-1].left,index:Q.rowSpanData.length-1}),Ke}(),R=[],z=D&&D.length>0,q=this.tableNode.table.body;if(R.push({y0:this.rowTopY,page:z?D[0].prevPage:I}),z)for(k=0,x=D.length;k0&&(G=D[0].prevPage),this.drawHorizontalLine(0,M,this._tableTopBorderY,!1,G)}for(var W=H?1:0,te=R.length;W0&&!this.headerRows,j=J?0:this.topLineWidth,re=R[W].y0,he=R[W].y1;for(P&&(he+=this.rowPaddingBottom),M.context().page!=R[W].page&&(M.context().page=R[W].page,this.reservedAtBottom=0),P&&!1!==this.layout.hLineWhenBroken&&this.drawHorizontalLine(y+1,M,he),J&&!1!==this.layout.hLineWhenBroken&&this.drawHorizontalLine(y,M,re),k=0,x=S.length;k0&&!oe&&(oe=(ze=q[y][me-1]).border?ze.border[2]:this.layout.defaultBorder),me+11)for(var be=1;be1)for(be=1;be0&&this.rowSpanData[k].rowSpan--}this.drawHorizontalLine(y+1,M),this.headerRows&&y===this.headerRows-1&&(this.headerRepeatable=M.currentBlockToRepeatable()),this.dontBreakRows&&M.tracker.auto("pageChanged",function(){y>0&&!Q.headerRows&&!1!==Q.layout.hLineWhenBroken&&Q.drawHorizontalLine(y,M)},function(){M.commitUnbreakableBlock()}),this.headerRepeatable&&(y===this.rowsWithoutPageBreak-1||y===this.tableNode.table.body.length-1)&&(M.commitUnbreakableBlock(),M.pushToRepeatables(this.headerRepeatable),this.cleanUpRepeatables=!0,this.headerRepeatable=null)},T.exports=b},90481:function(T,e,l){"use strict";T.exports={shiftjis:{type:"_dbcs",table:function(){return l(40679)},encodeAdd:{"\xa5":92,"\u203e":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return l(56406)},encodeAdd:{"\xa5":92,"\u203e":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return l(74488)}},gbk:{type:"_dbcs",table:function(){return l(74488).concat(l(55914))}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return l(74488).concat(l(55914))},gb18030:function(){return l(99129)},encodeSkipVals:[128],encodeAdd:{"\u20ac":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return l(21166)}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return l(72324)}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return l(72324).concat(l(43267))},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}},90682:function(T){T.exports={}},90760:function(T,e,l){"use strict";var h=l(14598).Buffer;l(69330),l(5597),l(11765),l(7585),l(7283),l(58281),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,l(65292),l(73844),l(39081),l(41584),l(49063),l(58028),l(81755),l(94845),l(80055),l(20731),l(45337),l(8953),l(24863),l(70095),l(10849),l(18756),l(37309),l(14032),l(59883),l(68067),l(61726),l(57114),l(26663),l(65578),l(6422),l(46467),l(7851),l(72095),l(62046),l(47259),l(18425),l(56912),l(73663),l(29883),l(35471),l(21012),l(88997),l(97464),l(2857),l(94715),l(13624),l(91132),l(62514),l(24597),l(88042),l(4660),l(92451),l(44206),l(66288),l(13250),l(3858),l(84538),l(64793),l(74202),l(52529),l(64654),l(42437),l(94712);var f=Q(l(9760)),_=Q(l(6729)),b=Q(l(94119)),y=Q(l(10740)),M=l(64785),D=Q(l(5417)),x=Q(l(38834)),k=Q(l(84695));function Q(Ot){return Ot&&Ot.__esModule?Ot:{default:Ot}}function d(Ot,Qe){for(var Ie=0;Ie=Ot.length?{done:!0}:{done:!1,value:Ot[Ne++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function W(Ot,Qe){(null==Qe||Qe>Ot.length)&&(Qe=Ot.length);for(var Ie=0,Ne=Array(Qe);Ie0&&void 0!==arguments[0]?arguments[0]:{};this._items={},this.limits="boolean"!=typeof Ie.limits||Ie.limits}var Qe=Ot.prototype;return Qe.add=function(Ne,Ye){return this._items[Ne]=Ye},Qe.get=function(Ne){return this._items[Ne]},Qe.toString=function(){var Ne=this,Ye=Object.keys(this._items).sort(function(Ui,bn){return Ne._compareKeys(Ui,bn)}),ht=["<<"];if(this.limits&&Ye.length>1){var hi=Ye[Ye.length-1];ht.push(" /Limits "+me.convert([this._dataForKey(Ye[0]),this._dataForKey(hi)]))}ht.push(" /"+this._keysName()+" [");for(var en,Ii=H(Ye);!(en=Ii()).done;){var an=en.value;ht.push(" "+me.convert(this._dataForKey(an))+" "+me.convert(this._items[an]))}return ht.push("]"),ht.push(">>"),ht.join("\n")},Qe._compareKeys=function(){throw new Error("Must be implemented by subclasses")},Qe._keysName=function(){throw new Error("Must be implemented by subclasses")},Qe._dataForKey=function(){throw new Error("Must be implemented by subclasses")},Ot}(),j=function(){function Ot(Ie,Ne,Ye,ht,kt,hi){this.id="CS"+Object.keys(Ie.spotColors).length,this.name=Ne,this.values=[Ye,ht,kt,hi],this.ref=Ie.ref(["Separation",this.name,"DeviceCMYK",{Range:[0,1,0,1,0,1,0,1],C0:[0,0,0,0],C1:this.values.map(function(Ii){return Ii/100}),FunctionType:2,Domain:[0,1],N:1}]),this.ref.end()}return Ot.prototype.toString=function(){return this.ref.id+" 0 R"},Ot}(),re=function(Qe,Ie){return(Array(Ie+1).join("0")+Qe).slice(-Ie)},he=/[\n\r\t\b\f()\\]/g,oe={"\n":"\\n","\r":"\\r","\t":"\\t","\b":"\\b","\f":"\\f","\\":"\\\\","(":"\\(",")":"\\)"},me=function(){function Ot(){}return Ot.convert=function(Ie){var Ne=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof Ie)return"/"+Ie;if(Ie instanceof String){for(var Ye=Ie,ht=!1,kt=0,hi=Ye.length;kt127){ht=!0;break}var Ii;return Ii=ht?function(Qe){var Ie=Qe.length;if(1&Ie)throw new Error("Buffer length must be even");for(var Ne=0,Ye=Ie-1;Ne";if(Ie instanceof P||Ie instanceof J||Ie instanceof j)return Ie.toString();if(Ie instanceof Date){var en="D:"+re(Ie.getUTCFullYear(),4)+re(Ie.getUTCMonth()+1,2)+re(Ie.getUTCDate(),2)+re(Ie.getUTCHours(),2)+re(Ie.getUTCMinutes(),2)+re(Ie.getUTCSeconds(),2)+"Z";return Ne&&(en=(en=Ne(h.from(en,"ascii")).toString("binary")).replace(he,function(Jn){return oe[Jn]})),"("+en+")"}if(Array.isArray(Ie))return"["+Ie.map(function(Jn){return Ot.convert(Jn,Ne)}).join(" ")+"]";if("[object Object]"==={}.toString.call(Ie)){var Ui=["<<"];for(var bn in Ie)Ui.push("/"+bn+" "+Ot.convert(Ie[bn],Ne));return Ui.push(">>"),Ui.join("\n")}return"number"==typeof Ie?Ot.number(Ie):""+Ie},Ot.number=function(Ie){if(Ie>-1e21&&Ie<1e21)return Math.round(1e6*Ie)/1e6;throw new Error("unsupported number: "+Ie)},Ot}(),ze=function(Ot){function Qe(Ne,Ye){var ht,kt=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(ht=Ot.call(this)||this).document=Ne,ht.id=Ye,ht.data=kt,ht.gen=0,ht.compress=ht.document.compress&&!ht.data.Filter,ht.uncompressedLength=0,ht.buffer=[],ht}q(Qe,Ot);var Ie=Qe.prototype;return Ie.write=function(Ye){if(h.isBuffer(Ye)||(Ye=h.from(Ye+"\n","binary")),this.uncompressedLength+=Ye.length,null==this.data.Length&&(this.data.Length=0),this.buffer.push(Ye),this.data.Length+=Ye.length,this.compress)return this.data.Filter="FlateDecode"},Ie.end=function(Ye){return Ye&&this.write(Ye),this.finalize()},Ie.finalize=function(){this.offset=this.document._offset;var Ye=this.document._security?this.document._security.getEncryptFn(this.id,this.gen):null;this.buffer.length&&(this.buffer=h.concat(this.buffer),this.compress&&(this.buffer=_.default.deflateSync(this.buffer)),Ye&&(this.buffer=Ye(this.buffer)),this.data.Length=this.buffer.length),this.document._write(this.id+" "+this.gen+" obj"),this.document._write(me.convert(this.data,Ye)),this.buffer.length&&(this.document._write("stream"),this.document._write(this.buffer),this.buffer=[],this.document._write("\nendstream")),this.document._write("endobj"),this.document._refEnd(this)},Ie.toString=function(){return this.id+" "+this.gen+" R"},Qe}(P),_e={top:72,left:72,bottom:72,right:72},Ae={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]},ve=function(){function Ot(Ie){var Ne=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.document=Ie,this.size=Ne.size||"letter",this.layout=Ne.layout||"portrait",this.margins="number"==typeof Ne.margin?{top:Ne.margin,left:Ne.margin,bottom:Ne.margin,right:Ne.margin}:Ne.margins||_e;var Ye=Array.isArray(this.size)?this.size:Ae[this.size.toUpperCase()];this.width=Ye["portrait"===this.layout?0:1],this.height=Ye["portrait"===this.layout?1:0],this.content=this.document.ref(),this.resources=this.document.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"]}),this.dictionary=this.document.ref({Type:"Page",Parent:this.document._root.data.Pages,MediaBox:[0,0,this.width,this.height],Contents:this.content,Resources:this.resources}),this.markings=[]}var Qe=Ot.prototype;return Qe.maxY=function(){return this.height-this.margins.bottom},Qe.write=function(Ne){return this.content.write(Ne)},Qe._setTabOrder=function(){!this.dictionary.Tabs&&this.document.hasMarkInfoDictionary()&&(this.dictionary.data.Tabs="S")},Qe.end=function(){this._setTabOrder(),this.dictionary.end(),this.resources.data.ColorSpace=this.resources.data.ColorSpace||{};for(var Ne=0,Ye=Object.values(this.document.spotColors);Ne=Qe[ht]&&Ot<=Qe[ht+1])return!0;Ot>Qe[ht+1]?Ie=Ye+1:Ne=Ye-1}return!1}var ae=[545,545,564,591,686,687,751,767,848,863,880,883,886,889,891,893,895,899,907,907,909,909,930,930,975,975,1015,1023,1159,1159,1231,1231,1270,1271,1274,1279,1296,1328,1367,1368,1376,1376,1416,1416,1419,1424,1442,1442,1466,1466,1477,1487,1515,1519,1525,1547,1549,1562,1564,1566,1568,1568,1595,1599,1622,1631,1774,1775,1791,1791,1806,1806,1837,1839,1867,1919,1970,2304,2308,2308,2362,2363,2382,2383,2389,2391,2417,2432,2436,2436,2445,2446,2449,2450,2473,2473,2481,2481,2483,2485,2490,2491,2493,2493,2501,2502,2505,2506,2510,2518,2520,2523,2526,2526,2532,2533,2555,2561,2563,2564,2571,2574,2577,2578,2601,2601,2609,2609,2612,2612,2615,2615,2618,2619,2621,2621,2627,2630,2633,2634,2638,2648,2653,2653,2655,2661,2677,2688,2692,2692,2700,2700,2702,2702,2706,2706,2729,2729,2737,2737,2740,2740,2746,2747,2758,2758,2762,2762,2766,2767,2769,2783,2785,2789,2800,2816,2820,2820,2829,2830,2833,2834,2857,2857,2865,2865,2868,2869,2874,2875,2884,2886,2889,2890,2894,2901,2904,2907,2910,2910,2914,2917,2929,2945,2948,2948,2955,2957,2961,2961,2966,2968,2971,2971,2973,2973,2976,2978,2981,2983,2987,2989,2998,2998,3002,3005,3011,3013,3017,3017,3022,3030,3032,3046,3059,3072,3076,3076,3085,3085,3089,3089,3113,3113,3124,3124,3130,3133,3141,3141,3145,3145,3150,3156,3159,3167,3170,3173,3184,3201,3204,3204,3213,3213,3217,3217,3241,3241,3252,3252,3258,3261,3269,3269,3273,3273,3278,3284,3287,3293,3295,3295,3298,3301,3312,3329,3332,3332,3341,3341,3345,3345,3369,3369,3386,3389,3396,3397,3401,3401,3406,3414,3416,3423,3426,3429,3440,3457,3460,3460,3479,3481,3506,3506,3516,3516,3518,3519,3527,3529,3531,3534,3541,3541,3543,3543,3552,3569,3573,3584,3643,3646,3676,3712,3715,3715,3717,3718,3721,3721,3723,3724,3726,3731,3736,3736,3744,3744,3748,3748,3750,3750,3752,3753,3756,3756,3770,3770,3774,3775,3781,3781,3783,3783,3790,3791,3802,3803,3806,3839,3912,3912,3947,3952,3980,3983,3992,3992,4029,4029,4045,4046,4048,4095,4130,4130,4136,4136,4139,4139,4147,4149,4154,4159,4186,4255,4294,4303,4345,4346,4348,4351,4442,4446,4515,4519,4602,4607,4615,4615,4679,4679,4681,4681,4686,4687,4695,4695,4697,4697,4702,4703,4743,4743,4745,4745,4750,4751,4783,4783,4785,4785,4790,4791,4799,4799,4801,4801,4806,4807,4815,4815,4823,4823,4847,4847,4879,4879,4881,4881,4886,4887,4895,4895,4935,4935,4955,4960,4989,5023,5109,5120,5751,5759,5789,5791,5873,5887,5901,5901,5909,5919,5943,5951,5972,5983,5997,5997,6001,6001,6004,6015,6109,6111,6122,6143,6159,6159,6170,6175,6264,6271,6314,7679,7836,7839,7930,7935,7958,7959,7966,7967,8006,8007,8014,8015,8024,8024,8026,8026,8028,8028,8030,8030,8062,8063,8117,8117,8133,8133,8148,8149,8156,8156,8176,8177,8181,8181,8191,8191,8275,8278,8280,8286,8292,8297,8306,8307,8335,8351,8370,8399,8427,8447,8507,8508,8524,8530,8580,8591,9167,9215,9255,9279,9291,9311,9471,9471,9748,9749,9752,9752,9854,9855,9866,9984,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10079,10080,10133,10135,10160,10160,10175,10191,10220,10223,11008,11903,11930,11930,12020,12031,12246,12271,12284,12287,12352,12352,12439,12440,12544,12548,12589,12592,12687,12687,12728,12783,12829,12831,12868,12880,12924,12926,13004,13007,13055,13055,13175,13178,13278,13279,13311,13311,19894,19967,40870,40959,42125,42127,42183,44031,55204,55295,64046,64047,64107,64255,64263,64274,64280,64284,64311,64311,64317,64317,64319,64319,64322,64322,64325,64325,64434,64466,64832,64847,64912,64913,64968,64975,65021,65023,65040,65055,65060,65071,65095,65096,65107,65107,65127,65127,65132,65135,65141,65141,65277,65278,65280,65280,65471,65473,65480,65481,65488,65489,65496,65497,65501,65503,65511,65511,65519,65528,65536,66303,66335,66335,66340,66351,66379,66559,66598,66599,66638,118783,119030,119039,119079,119081,119262,119807,119893,119893,119965,119965,119968,119969,119971,119972,119975,119976,119981,119981,119994,119994,119996,119996,120001,120001,120004,120004,120070,120070,120075,120076,120085,120085,120093,120093,120122,120122,120127,120127,120133,120133,120135,120137,120145,120145,120484,120487,120778,120781,120832,131069,173783,194559,195102,196605,196608,262141,262144,327677,327680,393213,393216,458749,458752,524285,524288,589821,589824,655357,655360,720893,720896,786429,786432,851965,851968,917501,917504,917504,917506,917535,917632,983037],Ee=function(Qe){return Oe(Qe,ae)},Fe=[173,173,847,847,6150,6150,6155,6155,6156,6156,6157,6157,8203,8203,8204,8204,8205,8205,8288,8288,65024,65024,65025,65025,65026,65026,65027,65027,65028,65028,65029,65029,65030,65030,65031,65031,65032,65032,65033,65033,65034,65034,65035,65035,65036,65036,65037,65037,65038,65038,65039,65039,65279,65279],mt=[160,160,5760,5760,8192,8192,8193,8193,8194,8194,8195,8195,8196,8196,8197,8197,8198,8198,8199,8199,8200,8200,8201,8201,8202,8202,8203,8203,8239,8239,8287,8287,12288,12288],oi=[128,159,1757,1757,1807,1807,6158,6158,8204,8204,8205,8205,8232,8232,8233,8233,8288,8288,8289,8289,8290,8290,8291,8291,8298,8303,65279,65279,65529,65532,119155,119162],He=[64976,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1114110,1114111],be=[0,31,127,127,832,832,833,833,8206,8206,8207,8207,8234,8234,8235,8235,8236,8236,8237,8237,8238,8238,8298,8298,8299,8299,8300,8300,8301,8301,8302,8302,8303,8303,12272,12283,55296,57343,57344,63743,65529,65529,65530,65530,65531,65531,65532,65532,65533,65533,917505,917505,917536,917631,983040,1048573,1048576,1114109],je=function(Qe){return Oe(Qe,mt)||Oe(Qe,be)||Oe(Qe,oi)||Oe(Qe,He)},Ke=[1470,1470,1472,1472,1475,1475,1488,1514,1520,1524,1563,1563,1567,1567,1569,1594,1600,1610,1645,1647,1649,1749,1757,1757,1765,1766,1786,1790,1792,1805,1808,1808,1810,1836,1920,1957,1969,1969,8207,8207,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65020,65136,65140,65142,65276],_t=function(Qe){return Oe(Qe,Ke)},Nt=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,544,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,1013,1024,1154,1162,1230,1232,1269,1272,1273,1280,1295,1329,1366,1369,1375,1377,1415,1417,1417,2307,2307,2309,2361,2365,2368,2377,2380,2384,2384,2392,2401,2404,2416,2434,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2494,2496,2503,2504,2507,2508,2519,2519,2524,2525,2527,2529,2534,2545,2548,2554,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2622,2624,2649,2652,2654,2654,2662,2671,2674,2676,2691,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2752,2761,2761,2763,2764,2768,2768,2784,2784,2790,2799,2818,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2878,2880,2880,2887,2888,2891,2892,2903,2903,2908,2909,2911,2913,2918,2928,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3007,3009,3010,3014,3016,3018,3020,3031,3031,3047,3058,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3137,3140,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3262,3264,3268,3271,3272,3274,3275,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3392,3398,3400,3402,3404,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3535,3537,3544,3551,3570,3572,3585,3632,3634,3635,3648,3654,3663,3675,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3792,3801,3804,3805,3840,3863,3866,3892,3894,3894,3896,3896,3902,3911,3913,3946,3967,3967,3973,3973,3976,3979,4030,4037,4039,4044,4047,4047,4096,4129,4131,4135,4137,4138,4140,4140,4145,4145,4152,4152,4160,4183,4256,4293,4304,4344,4347,4347,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4961,4988,5024,5108,5121,5750,5761,5786,5792,5872,5888,5900,5902,5905,5920,5937,5941,5942,5952,5969,5984,5996,5998,6e3,6016,6070,6078,6085,6087,6088,6100,6106,6108,6108,6112,6121,6160,6169,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8206,8206,8305,8305,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8509,8511,8517,8521,8544,8579,9014,9082,9109,9109,9372,9449,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12588,12593,12686,12688,12727,12784,12828,12832,12867,12896,12923,12927,12976,12992,13003,13008,13054,13056,13174,13179,13277,13280,13310,13312,19893,19968,40869,40960,42124,44032,55203,55296,64045,64048,64106,64256,64262,64275,64279,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,66304,66334,66336,66339,66352,66378,66560,66597,66600,66637,118784,119029,119040,119078,119082,119142,119146,119154,119171,119172,119180,119209,119214,119261,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,12e4,120002,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120483,120488,120777,131072,173782,194560,195101,983040,1048573,1048576,1114109],ut=function(Qe){return Oe(Qe,Nt)},et=function(Qe){return Oe(Qe,mt)},Xe=function(Qe){return Oe(Qe,Fe)},It=function(Qe){return Qe.codePointAt(0)},Dt=function(Qe){return Qe[0]},vt=function(Qe){return Qe[Qe.length-1]};function Qt(Ot){for(var Qe=[],Ie=Ot.length,Ne=0;Ne=55296&&Ye<=56319&&Ie>Ne+1){var ht=Ot.charCodeAt(Ne+1);if(ht>=56320&&ht<=57343){Qe.push(1024*(Ye-55296)+ht-56320+65536),Ne+=1;continue}}Qe.push(Ye)}return Qe}var ke=function(){function Ot(Ie){var Ne=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Ne.ownerPassword&&!Ne.userPassword)throw new Error("None of owner password and user password is defined.");this.document=Ie,this._setupEncryption(Ne)}Ot.generateFileID=function(){var Ne=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},Ye=Ne.CreationDate.getTime()+"\n";for(var ht in Ne)Ne.hasOwnProperty(ht)&&(Ye+=ht+": "+Ne[ht].valueOf()+"\n");return rt(b.default.MD5(Ye))},Ot.generateRandomWordArray=function(Ne){return b.default.lib.WordArray.random(Ne)},Ot.create=function(Ne){var Ye=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Ye.ownerPassword||Ye.userPassword?new Ot(Ne,Ye):null};var Qe=Ot.prototype;return Qe._setupEncryption=function(Ne){switch(Ne.pdfVersion){case"1.4":case"1.5":this.version=2;break;case"1.6":case"1.7":this.version=4;break;case"1.7ext3":this.version=5;break;default:this.version=1}var Ye={Filter:"Standard"};switch(this.version){case 1:case 2:case 4:this._setupEncryptionV1V2V4(this.version,Ye,Ne);break;case 5:this._setupEncryptionV5(Ye,Ne)}this.dictionary=this.document.ref(Ye)},Qe._setupEncryptionV1V2V4=function(Ne,Ye,ht){var kt,hi;switch(Ne){case 1:kt=2,this.keyBits=40,hi=function it(){var Ot=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},Qe=-64;return Ot.printing&&(Qe|=4),Ot.modifying&&(Qe|=8),Ot.copying&&(Qe|=16),Ot.annotating&&(Qe|=32),Qe}(ht.permissions);break;case 2:kt=3,this.keyBits=128,hi=gt(ht.permissions);break;case 4:kt=4,this.keyBits=128,hi=gt(ht.permissions)}var Ui,Ii=Se(ht.userPassword),en=ht.ownerPassword?Se(ht.ownerPassword):Ii,an=function Gt(Ot,Qe,Ie,Ne){for(var Ye=Ne,ht=Ot>=3?51:1,kt=0;kt=3?20:1;for(var en=0;en=3?51:1,Ii=0;Ii=2&&(Ye.Length=this.keyBits),4===Ne&&(Ye.CF={StdCF:{AuthEvent:"DocOpen",CFM:"AESV2",Length:this.keyBits/8}},Ye.StmF="StdCF",Ye.StrF="StdCF"),Ye.R=kt,Ye.O=rt(an),Ye.U=rt(Ui),Ye.P=hi},Qe._setupEncryptionV5=function(Ne,Ye){this.keyBits=256;var ht=gt(Ye.permissions),kt=ct(Ye.userPassword),hi=Ye.ownerPassword?ct(Ye.ownerPassword):kt;this.encryptionKey=function dt(Ot){return Ot(32)}(Ot.generateRandomWordArray);var Ii=function mi(Ot,Qe){var Ie=Qe(8),Ne=Qe(8);return b.default.SHA256(Ot.clone().concat(Ie)).concat(Ie).concat(Ne)}(kt,Ot.generateRandomWordArray),an=function Zi(Ot,Qe,Ie){var Ne=b.default.SHA256(Ot.clone().concat(Qe)),Ye={mode:b.default.mode.CBC,padding:b.default.pad.NoPadding,iv:b.default.lib.WordArray.create(null,16)};return b.default.AES.encrypt(Ie,Ne,Ye).ciphertext}(kt,b.default.lib.WordArray.create(Ii.words.slice(10,12),8),this.encryptionKey),Ui=function Qi(Ot,Qe,Ie){var Ne=Ie(8),Ye=Ie(8);return b.default.SHA256(Ot.clone().concat(Ne).concat(Qe)).concat(Ne).concat(Ye)}(hi,Ii,Ot.generateRandomWordArray),Un=function Ht(Ot,Qe,Ie,Ne){var Ye=b.default.SHA256(Ot.clone().concat(Qe).concat(Ie)),ht={mode:b.default.mode.CBC,padding:b.default.pad.NoPadding,iv:b.default.lib.WordArray.create(null,16)};return b.default.AES.encrypt(Ne,Ye,ht).ciphertext}(hi,b.default.lib.WordArray.create(Ui.words.slice(10,12),8),Ii,this.encryptionKey),Jn=function ge(Ot,Qe,Ie){var Ne=b.default.lib.WordArray.create([Zt(Ot),4294967295,1415668834],12).concat(Ie(4));return b.default.AES.encrypt(Ne,Qe,{mode:b.default.mode.ECB,padding:b.default.pad.NoPadding}).ciphertext}(ht,this.encryptionKey,Ot.generateRandomWordArray);Ne.V=5,Ne.Length=this.keyBits,Ne.CF={StdCF:{AuthEvent:"DocOpen",CFM:"AESV3",Length:this.keyBits/8}},Ne.StmF="StdCF",Ne.StrF="StdCF",Ne.R=5,Ne.O=rt(Ui),Ne.OE=rt(Un),Ne.U=rt(Ii),Ne.UE=rt(an),Ne.P=ht,Ne.Perms=rt(Jn)},Qe.getEncryptFn=function(Ne,Ye){var ht,hi;if(this.version<5&&(ht=this.encryptionKey.clone().concat(b.default.lib.WordArray.create([(255&Ne)<<24|(65280&Ne)<<8|Ne>>8&65280|255&Ye,(65280&Ye)<<16],5))),1===this.version||2===this.version){var kt=b.default.MD5(ht);return kt.sigBytes=Math.min(16,this.keyBits/8+5),function(an){return rt(b.default.RC4.encrypt(b.default.lib.WordArray.create(an),kt).ciphertext)}}hi=4===this.version?b.default.MD5(ht.concat(b.default.lib.WordArray.create([1933667412],4))):this.encryptionKey;var Ii=Ot.generateRandomWordArray(16),en={mode:b.default.mode.CBC,padding:b.default.pad.Pkcs7,iv:Ii};return function(an){return rt(Ii.clone().concat(b.default.AES.encrypt(b.default.lib.WordArray.create(an),hi,en).ciphertext))}},Qe.end=function(){this.dictionary.end()},Ot}();function gt(){var Ot=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},Qe=-3904;return"lowResolution"===Ot.printing&&(Qe|=4),"highResolution"===Ot.printing&&(Qe|=2052),Ot.modifying&&(Qe|=8),Ot.copying&&(Qe|=16),Ot.annotating&&(Qe|=32),Ot.fillingForms&&(Qe|=256),Ot.contentAccessibility&&(Qe|=512),Ot.documentAssembly&&(Qe|=1024),Qe}function Se(){for(var Ot=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",Qe=h.alloc(32),Ie=Ot.length,Ne=0;Ne255)throw new Error("Password contains one or more invalid characters.");Qe[Ne]=Ye,Ne++}for(;Ne<32;)Qe[Ne]=Kt[Ne-Ie],Ne++;return b.default.lib.WordArray.create(Qe)}function ct(){var Ot=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Ot=unescape(encodeURIComponent(function qe(Ot){var Qe=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"!=typeof Ot)throw new TypeError("Expected string.");if(0===Ot.length)return"";var Ie=Qt(Ot).map(function(Ui){return et(Ui)?32:Ui}).filter(function(Ui){return!Xe(Ui)}),Ne=String.fromCodePoint.apply(null,Ie).normalize("NFKC"),Ye=Qt(Ne);if(Ye.some(je))throw new Error("Prohibited character, see https://tools.ietf.org/html/rfc4013#section-2.3");if(!0!==Qe.allowUnassigned&&Ye.some(Ee))throw new Error("Unassigned code point, see https://tools.ietf.org/html/rfc4013#section-2.5");var hi=Ye.some(_t),Ii=Ye.some(ut);if(hi&&Ii)throw new Error("String must not contain RandALCat and LCat at the same time, see https://tools.ietf.org/html/rfc3454#section-6");var en=_t(It(Dt(Ne))),an=_t(It(vt(Ne)));if(hi&&(!en||!an))throw new Error("Bidirectional RandALCat character must be the first and the last character of the string, see https://tools.ietf.org/html/rfc3454#section-6");return Ne}(Ot)));for(var Qe=Math.min(127,Ot.length),Ie=h.alloc(Qe),Ne=0;Ne>8&65280|Ot>>24&255}function rt(Ot){for(var Qe=[],Ie=0;Ie>8*(3-Ie%4)&255);return h.from(Qe)}var mn,ui,di,xi,sn,ji,Kt=[40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122],on=me.number,Ge=function(){function Ot(Ie){this.doc=Ie,this.stops=[],this.embedded=!1,this.transform=[1,0,0,1,0,0]}var Qe=Ot.prototype;return Qe.stop=function(Ne,Ye,ht){if(null==ht&&(ht=1),Ye=this.doc._normalizeColor(Ye),0===this.stops.length)if(3===Ye.length)this._colorSpace="DeviceRGB";else if(4===Ye.length)this._colorSpace="DeviceCMYK";else{if(1!==Ye.length)throw new Error("Unknown color space");this._colorSpace="DeviceGray"}else if("DeviceRGB"===this._colorSpace&&3!==Ye.length||"DeviceCMYK"===this._colorSpace&&4!==Ye.length||"DeviceGray"===this._colorSpace&&1!==Ye.length)throw new Error("All gradient stops must use the same color space");return ht=Math.max(0,Math.min(1,ht)),this.stops.push([Ne,Ye,ht]),this},Qe.setTransform=function(Ne,Ye,ht,kt,hi,Ii){return this.transform=[Ne,Ye,ht,kt,hi,Ii],this},Qe.embed=function(Ne){var Ye,ht=this.stops.length;if(0!==ht){this.embedded=!0,this.matrix=Ne;var kt=this.stops[ht-1];kt[0]<1&&this.stops.push([1,kt[1],kt[2]]);for(var hi=[],Ii=[],en=[],an=0;an>16,Ie>>8&255,255&Ie]}else if(Pn[Qe])Qe=Pn[Qe];else if(this.spotColors[Qe])return this.spotColors[Qe];return Array.isArray(Qe)?(3===Qe.length?Qe=Qe.map(function(Ne){return Ne/255}):4===Qe.length&&(Qe=Qe.map(function(Ne){return Ne/100})),Qe):null},_setColor:function(Qe,Ie){return Qe instanceof Ti?(Qe.apply(Ie),!0):Array.isArray(Qe)&&Qe[0]instanceof or?(Qe[0].apply(Ie,Qe[1]),!0):this._setColorCore(Qe,Ie)},_setColorCore:function(Qe,Ie){if(!(Qe=this._normalizeColor(Qe)))return!1;var Ne=Ie?"SCN":"scn",Ye=this._getColorSpace(Qe);return this._setColorSpace(Ye,Ie),Qe instanceof j?(this.page.colorSpaces[Qe.id]=Qe.ref,this.addContent("1 "+Ne)):this.addContent(Qe.join(" ")+" "+Ne),!0},_setColorSpace:function(Qe,Ie){return this.addContent("/"+Qe+" "+(Ie?"CS":"cs"))},_getColorSpace:function(Qe){return Qe instanceof j?Qe.id:4===Qe.length?"DeviceCMYK":"DeviceRGB"},fillColor:function(Qe,Ie){return this._setColor(Qe,!1)&&this.fillOpacity(Ie),this._fillColor=[Qe,Ie],this},strokeColor:function(Qe,Ie){return this._setColor(Qe,!0)&&this.strokeOpacity(Ie),this},opacity:function(Qe){return this._doOpacity(Qe,Qe),this},fillOpacity:function(Qe){return this._doOpacity(Qe,null),this},strokeOpacity:function(Qe){return this._doOpacity(null,Qe),this},_doOpacity:function(Qe,Ie){var Ne,Ye;if(null!=Qe||null!=Ie){null!=Qe&&(Qe=Math.max(0,Math.min(1,Qe))),null!=Ie&&(Ie=Math.max(0,Math.min(1,Ie)));var ht=Qe+"_"+Ie;if(this._opacityRegistry[ht]){var kt=this._opacityRegistry[ht];Ne=kt[0],Ye=kt[1]}else{Ne={Type:"ExtGState"},null!=Qe&&(Ne.ca=Qe),null!=Ie&&(Ne.CA=Ie),(Ne=this.ref(Ne)).end();var hi=++this._opacityCount;this._opacityRegistry[ht]=[Ne,Ye="Gs"+hi]}return this.page.ext_gstates[Ye]=Ne,this.addContent("/"+Ye+" gs")}},linearGradient:function(Qe,Ie,Ne,Ye){return new ln(this,Qe,Ie,Ne,Ye)},radialGradient:function(Qe,Ie,Ne,Ye,ht,kt){return new Ji(this,Qe,Ie,Ne,Ye,ht,kt)},pattern:function(Qe,Ie,Ne,Ye){return new or(this,Qe,Ie,Ne,Ye)},addSpotColor:function(Qe,Ie,Ne,Ye,ht){var kt=new j(this,Qe,Ie,Ne,Ye,ht);return this.spotColors[Qe]=kt,this}},Pn={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};mn=ui=di=xi=sn=ji=0;var Qn={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},xn={M:function(Qe,Ie){return di=xi=null,sn=mn=Ie[0],ji=ui=Ie[1],Qe.moveTo(mn,ui)},m:function(Qe,Ie){return di=xi=null,sn=mn+=Ie[0],ji=ui+=Ie[1],Qe.moveTo(mn,ui)},C:function(Qe,Ie){return mn=Ie[4],ui=Ie[5],di=Ie[2],xi=Ie[3],Qe.bezierCurveTo.apply(Qe,Ie)},c:function(Qe,Ie){return Qe.bezierCurveTo(Ie[0]+mn,Ie[1]+ui,Ie[2]+mn,Ie[3]+ui,Ie[4]+mn,Ie[5]+ui),di=mn+Ie[2],xi=ui+Ie[3],mn+=Ie[4],ui+=Ie[5]},S:function(Qe,Ie){return null===di&&(di=mn,xi=ui),Qe.bezierCurveTo(mn-(di-mn),ui-(xi-ui),Ie[0],Ie[1],Ie[2],Ie[3]),di=Ie[0],xi=Ie[1],mn=Ie[2],ui=Ie[3]},s:function(Qe,Ie){return null===di&&(di=mn,xi=ui),Qe.bezierCurveTo(mn-(di-mn),ui-(xi-ui),mn+Ie[0],ui+Ie[1],mn+Ie[2],ui+Ie[3]),di=mn+Ie[0],xi=ui+Ie[1],mn+=Ie[2],ui+=Ie[3]},Q:function(Qe,Ie){return di=Ie[0],xi=Ie[1],Qe.quadraticCurveTo(Ie[0],Ie[1],mn=Ie[2],ui=Ie[3])},q:function(Qe,Ie){return Qe.quadraticCurveTo(Ie[0]+mn,Ie[1]+ui,Ie[2]+mn,Ie[3]+ui),di=mn+Ie[0],xi=ui+Ie[1],mn+=Ie[2],ui+=Ie[3]},T:function(Qe,Ie){return null===di?(di=mn,xi=ui):(di=mn-(di-mn),xi=ui-(xi-ui)),Qe.quadraticCurveTo(di,xi,Ie[0],Ie[1]),di=mn-(di-mn),xi=ui-(xi-ui),mn=Ie[0],ui=Ie[1]},t:function(Qe,Ie){return null===di?(di=mn,xi=ui):(di=mn-(di-mn),xi=ui-(xi-ui)),Qe.quadraticCurveTo(di,xi,mn+Ie[0],ui+Ie[1]),mn+=Ie[0],ui+=Ie[1]},A:function(Qe,Ie){return Hr(Qe,mn,ui,Ie),mn=Ie[5],ui=Ie[6]},a:function(Qe,Ie){return Ie[5]+=mn,Ie[6]+=ui,Hr(Qe,mn,ui,Ie),mn=Ie[5],ui=Ie[6]},L:function(Qe,Ie){return di=xi=null,Qe.lineTo(mn=Ie[0],ui=Ie[1])},l:function(Qe,Ie){return di=xi=null,Qe.lineTo(mn+=Ie[0],ui+=Ie[1])},H:function(Qe,Ie){return di=xi=null,Qe.lineTo(mn=Ie[0],ui)},h:function(Qe,Ie){return di=xi=null,Qe.lineTo(mn+=Ie[0],ui)},V:function(Qe,Ie){return di=xi=null,Qe.lineTo(mn,ui=Ie[0])},v:function(Qe,Ie){return di=xi=null,Qe.lineTo(mn,ui+=Ie[0])},Z:function(Qe){return Qe.closePath(),mn=sn,ui=ji},z:function(Qe){return Qe.closePath(),mn=sn,ui=ji}},Hr=function(Qe,Ie,Ne,Ye){for(var Jn,Un=H(Xo(Ye[5],Ye[6],Ye[0],Ye[1],Ye[3],Ye[4],Ye[2],Ie,Ne));!(Jn=Un()).done;){var Er=qr.apply(void 0,Jn.value);Qe.bezierCurveTo.apply(Qe,Er)}},Xo=function(Qe,Ie,Ne,Ye,ht,kt,hi,Ii,en){var an=hi*(Math.PI/180),Ui=Math.sin(an),bn=Math.cos(an);Ne=Math.abs(Ne),Ye=Math.abs(Ye);var Un=(di=bn*(Ii-Qe)*.5+Ui*(en-Ie)*.5)*di/(Ne*Ne)+(xi=bn*(en-Ie)*.5-Ui*(Ii-Qe)*.5)*xi/(Ye*Ye);Un>1&&(Ne*=Un=Math.sqrt(Un),Ye*=Un);var Jn=bn/Ne,hr=Ui/Ne,Er=-Ui/Ye,vr=bn/Ye,$n=Jn*Ii+hr*en,Ur=Er*Ii+vr*en,Tr=Jn*Qe+hr*Ie,Ln=Er*Qe+vr*Ie,ko=1/((Tr-$n)*(Tr-$n)+(Ln-Ur)*(Ln-Ur))-.25;ko<0&&(ko=0);var ao=Math.sqrt(ko);kt===ht&&(ao=-ao);var Ca=.5*($n+Tr)-ao*(Ln-Ur),ds=.5*(Ur+Ln)+ao*(Tr-$n),da=Math.atan2(Ur-ds,$n-Ca),Po=Math.atan2(Ln-ds,Tr-Ca)-da;Po<0&&1===kt?Po+=2*Math.PI:Po>0&&0===kt&&(Po-=2*Math.PI);for(var tl=Math.ceil(Math.abs(Po/(.5*Math.PI+.001))),va=[],za=0;za0&&(Ye[Ye.length]=+ht),Ne[Ne.length]={cmd:Ie,args:Ye},Ye=[],ht="",kt=!1),Ie=an;else if([" ",","].includes(an)||"-"===an&&ht.length>0&&"e"!==ht[ht.length-1]||"."===an&&kt){if(0===ht.length)continue;Ye.length===hi?(Ne[Ne.length]={cmd:Ie,args:Ye},Ye=[+ht],"M"===Ie&&(Ie="L"),"m"===Ie&&(Ie="l")):Ye[Ye.length]=+ht,kt="."===an,ht=["-","."].includes(an)?an:""}else ht+=an,"."===an&&(kt=!0)}return ht.length>0&&(Ye.length===hi?(Ne[Ne.length]={cmd:Ie,args:Ye},Ye=[+ht],"M"===Ie&&(Ie="L"),"m"===Ie&&(Ie="l")):Ye[Ye.length]=+ht),Ne[Ne.length]={cmd:Ie,args:Ye},Ne}(Ne);!function(Qe,Ie){mn=ui=di=xi=sn=ji=0;for(var Ne=0;Ne1&&void 0!==arguments[1]?arguments[1]:{},Ne=Qe;if(Array.isArray(Qe)||(Qe=[Qe,Ie.space||Qe]),!Qe.every(function(ht){return Number.isFinite(ht)&&ht>0}))throw new Error("dash("+JSON.stringify(Ne)+", "+JSON.stringify(Ie)+") invalid, lengths must be numeric and greater than zero");return Qe=Qe.map(Wn).join(" "),this.addContent("["+Qe+"] "+Wn(Ie.phase||0)+" d")},undash:function(){return this.addContent("[] 0 d")},moveTo:function(Qe,Ie){return this.addContent(Wn(Qe)+" "+Wn(Ie)+" m")},lineTo:function(Qe,Ie){return this.addContent(Wn(Qe)+" "+Wn(Ie)+" l")},bezierCurveTo:function(Qe,Ie,Ne,Ye,ht,kt){return this.addContent(Wn(Qe)+" "+Wn(Ie)+" "+Wn(Ne)+" "+Wn(Ye)+" "+Wn(ht)+" "+Wn(kt)+" c")},quadraticCurveTo:function(Qe,Ie,Ne,Ye){return this.addContent(Wn(Qe)+" "+Wn(Ie)+" "+Wn(Ne)+" "+Wn(Ye)+" v")},rect:function(Qe,Ie,Ne,Ye){return this.addContent(Wn(Qe)+" "+Wn(Ie)+" "+Wn(Ne)+" "+Wn(Ye)+" re")},roundedRect:function(Qe,Ie,Ne,Ye,ht){null==ht&&(ht=0);var kt=(ht=Math.min(ht,.5*Ne,.5*Ye))*(1-ro);return this.moveTo(Qe+ht,Ie),this.lineTo(Qe+Ne-ht,Ie),this.bezierCurveTo(Qe+Ne-kt,Ie,Qe+Ne,Ie+kt,Qe+Ne,Ie+ht),this.lineTo(Qe+Ne,Ie+Ye-ht),this.bezierCurveTo(Qe+Ne,Ie+Ye-kt,Qe+Ne-kt,Ie+Ye,Qe+Ne-ht,Ie+Ye),this.lineTo(Qe+ht,Ie+Ye),this.bezierCurveTo(Qe+kt,Ie+Ye,Qe,Ie+Ye-kt,Qe,Ie+Ye-ht),this.lineTo(Qe,Ie+ht),this.bezierCurveTo(Qe,Ie+kt,Qe+kt,Ie,Qe+ht,Ie),this.closePath()},ellipse:function(Qe,Ie,Ne,Ye){null==Ye&&(Ye=Ne);var ht=Ne*ro,kt=Ye*ro,hi=(Qe-=Ne)+2*Ne,Ii=(Ie-=Ye)+2*Ye,en=Qe+Ne,an=Ie+Ye;return this.moveTo(Qe,an),this.bezierCurveTo(Qe,an-kt,en-ht,Ie,en,Ie),this.bezierCurveTo(en+ht,Ie,hi,an-kt,hi,an),this.bezierCurveTo(hi,an+kt,en+ht,Ii,en,Ii),this.bezierCurveTo(en-ht,Ii,Qe,an+kt,Qe,an),this.closePath()},circle:function(Qe,Ie,Ne){return this.ellipse(Qe,Ie,Ne)},arc:function(Qe,Ie,Ne,Ye,ht,kt){null==kt&&(kt=!1);var hi=2*Math.PI,Ii=.5*Math.PI,en=ht-Ye;Math.abs(en)>hi?en=hi:0!==en&&kt!==en<0&&(en=(kt?-1:1)*hi+en);var Ui=Math.ceil(Math.abs(en)/Ii),bn=en/Ui,Un=bn/Ii*ro*Ne,Jn=Ye,hr=-Math.sin(Jn)*Un,Er=Math.cos(Jn)*Un,vr=Qe+Math.cos(Jn)*Ne,$n=Ie+Math.sin(Jn)*Ne;this.moveTo(vr,$n);for(var Ur=0;Ur1&&void 0!==arguments[1]?arguments[1]:{},Ye=Qe*Math.PI/180,ht=Math.cos(Ye),kt=Math.sin(Ye),hi=Ne=0;if(null!=Ie.origin){var Ii=Ie.origin,an=(hi=Ii[0])*kt+(Ne=Ii[1])*ht;hi-=hi*ht-Ne*kt,Ne-=an}return this.transform(ht,kt,-kt,ht,hi,Ne)},scale:function(Qe,Ie){var Ye,Ne=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};null==Ie&&(Ie=Qe),"object"==typeof Ie&&(Ne=Ie,Ie=Qe);var ht=Ye=0;if(null!=Ne.origin){var kt=Ne.origin;ht=kt[0],Ye=kt[1],ht-=Qe*ht,Ye-=Ie*Ye}return this.transform(Qe,0,0,Ie,ht,Ye)}},ar={402:131,8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,8225:135,8226:149,8230:133,8364:128,8240:137,8249:139,8250:155,710:136,8482:153,338:140,339:156,732:152,352:138,353:154,376:159,381:142,382:158},wo=".notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n \nspace exclam quotedbl numbersign\ndollar percent ampersand quotesingle\nparenleft parenright asterisk plus\ncomma hyphen period slash\nzero one two three\nfour five six seven\neight nine colon semicolon\nless equal greater question\n \nat A B C\nD E F G\nH I J K\nL M N O\nP Q R S\nT U V W\nX Y Z bracketleft\nbackslash bracketright asciicircum underscore\n \ngrave a b c\nd e f g\nh i j k\nl m n o\np q r s\nt u v w\nx y z braceleft\nbar braceright asciitilde .notdef\n \nEuro .notdef quotesinglbase florin\nquotedblbase ellipsis dagger daggerdbl\ncircumflex perthousand Scaron guilsinglleft\nOE .notdef Zcaron .notdef\n.notdef quoteleft quoteright quotedblleft\nquotedblright bullet endash emdash\ntilde trademark scaron guilsinglright\noe .notdef zcaron ydieresis\n \nspace exclamdown cent sterling\ncurrency yen brokenbar section\ndieresis copyright ordfeminine guillemotleft\nlogicalnot hyphen registered macron\ndegree plusminus twosuperior threesuperior\nacute mu paragraph periodcentered\ncedilla onesuperior ordmasculine guillemotright\nonequarter onehalf threequarters questiondown\n \nAgrave Aacute Acircumflex Atilde\nAdieresis Aring AE Ccedilla\nEgrave Eacute Ecircumflex Edieresis\nIgrave Iacute Icircumflex Idieresis\nEth Ntilde Ograve Oacute\nOcircumflex Otilde Odieresis multiply\nOslash Ugrave Uacute Ucircumflex\nUdieresis Yacute Thorn germandbls\n \nagrave aacute acircumflex atilde\nadieresis aring ae ccedilla\negrave eacute ecircumflex edieresis\nigrave iacute icircumflex idieresis\neth ntilde ograve oacute\nocircumflex otilde odieresis divide\noslash ugrave uacute ucircumflex\nudieresis yacute thorn ydieresis".split(/\s+/),Jt=function(){function Ot(Ie){this.contents=Ie,this.attributes={},this.glyphWidths={},this.boundingBoxes={},this.kernPairs={},this.parse(),this.charWidths=new Array(256);for(var Ne=0;Ne<=255;Ne++)this.charWidths[Ne]=this.glyphWidths[wo[Ne]];this.bbox=this.attributes.FontBBox.split(/\s+/).map(function(Ye){return+Ye}),this.ascender=+(this.attributes.Ascender||0),this.descender=+(this.attributes.Descender||0),this.xHeight=+(this.attributes.XHeight||0),this.capHeight=+(this.attributes.CapHeight||0),this.lineGap=this.bbox[3]-this.bbox[1]-(this.ascender-this.descender)}Ot.open=function(Ne){return new Ot(te.readFileSync(Ne,"utf8"))};var Qe=Ot.prototype;return Qe.parse=function(){for(var ht,Ne="",Ye=H(this.contents.split("\n"));!(ht=Ye()).done;){var hi,Ii,kt=ht.value;if(hi=kt.match(/^Start(\w+)/))Ne=hi[1];else if(hi=kt.match(/^End(\w+)/))Ne="";else switch(Ne){case"FontMetrics":var en=(hi=kt.match(/(^\w+)\s+(.*)/))[1],an=hi[2];(Ii=this.attributes[en])?(Array.isArray(Ii)||(Ii=this.attributes[en]=[Ii]),Ii.push(an)):this.attributes[en]=an;break;case"CharMetrics":if(!/^CH?\s/.test(kt))continue;var Ui=kt.match(/\bN\s+(\.?\w+)\s*;/)[1];this.glyphWidths[Ui]=+kt.match(/\bWX\s+(\d+)\s*;/)[1];break;case"KernPairs":(hi=kt.match(/^KPX\s+(\.?\w+)\s+(\.?\w+)\s+(-?\d+)/))&&(this.kernPairs[hi[1]+"\0"+hi[2]]=parseInt(hi[3]))}}},Qe.encodeText=function(Ne){for(var Ye=[],ht=0,kt=Ne.length;ht>8,Ii=0;this.font.post.isFixedPitch&&(Ii|=1),1<=hi&&hi<=7&&(Ii|=2),Ii|=4,10===hi&&(Ii|=8),this.font.head.macStyle.italic&&(Ii|=64);var an=[1,2,3,4,5,6].map(function(vr){return String.fromCharCode((Ye.id.charCodeAt(vr)||73)+17)}).join("")+"+"+this.font.postscriptName.replaceAll(" ","_"),Ui=this.font.bbox,bn=this.document.ref({Type:"FontDescriptor",FontName:an,Flags:Ii,FontBBox:[Ui.minX*this.scale,Ui.minY*this.scale,Ui.maxX*this.scale,Ui.maxY*this.scale],ItalicAngle:this.font.italicAngle,Ascent:this.ascender,Descent:this.descender,CapHeight:(this.font.capHeight||this.font.ascent)*this.scale,XHeight:(this.font.xHeight||0)*this.scale,StemV:0});if(ht?bn.data.FontFile3=kt:bn.data.FontFile2=kt,this.document.subset&&1===this.document.subset){var Un=h.from("FFFFFFFFC0","hex"),Jn=this.document.ref();Jn.write(Un),Jn.end(),bn.data.CIDSet=Jn}bn.end();var hr={Type:"Font",Subtype:"CIDFontType0",BaseFont:an,CIDSystemInfo:{Registry:new String("Adobe"),Ordering:new String("Identity"),Supplement:0},FontDescriptor:bn,W:[0,this.widths]};ht||(hr.Subtype="CIDFontType2",hr.CIDToGIDMap="Identity");var Er=this.document.ref(hr);return Er.end(),this.dictionary.data={Type:"Font",Subtype:"Type0",BaseFont:an,Encoding:"Identity-H",DescendantFonts:[Er],ToUnicode:this.toUnicodeCmap()},this.dictionary.end()},Ie.toUnicodeCmap=function(){for(var hi,Ye=this.document.ref(),ht=[],kt=H(this.unicode);!(hi=kt()).done;){for(var Ui,en=[],an=H(hi.value);!(Ui=an()).done;){var bn=Ui.value;bn>65535&&(en.push(Le((bn-=65536)>>>10&1023|55296)),bn=56320|1023&bn),en.push(Le(bn))}ht.push("<"+en.join(" ")+">")}for(var Jn=Math.ceil(ht.length/256),hr=[],Er=0;Er <"+Le($n-1)+"> ["+ht.slice(vr,$n).join(" ")+"]")}return Ye.end("/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000>\nendcodespacerange\n1 beginbfrange\n"+hr.join("\n")+"\nendbfrange\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"),Ye},Qe}(ci),ue=function(){function Ot(){}return Ot.open=function(Ie,Ne,Ye,ht){var kt;if("string"==typeof Ne){if(Vt.isStandardFont(Ne))return new Vt(Ie,Ne,ht);Ne=te.readFileSync(Ne)}if(h.isBuffer(Ne)?kt=y.default.create(Ne,Ye):Ne instanceof Uint8Array?kt=y.default.create(h.from(Ne),Ye):Ne instanceof ArrayBuffer&&(kt=y.default.create(h.from(new Uint8Array(Ne)),Ye)),null==kt)throw new Error("Not a supported font format or standard PDF font.");return new Pe(Ie,kt,ht)},Ot}(),lt={initFonts:function(){var Qe=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Helvetica";this._fontFamilies={},this._fontCount=0,this._fontSize=12,this._font=null,this._registeredFonts={},Qe&&this.font(Qe)},font:function(Qe,Ie,Ne){var Ye,ht;if("number"==typeof Ie&&(Ne=Ie,Ie=null),"string"==typeof Qe&&this._registeredFonts[Qe]){Ye=Qe;var kt=this._registeredFonts[Qe];Qe=kt.src,Ie=kt.family}else"string"!=typeof(Ye=Ie||Qe)&&(Ye=null);if(null!=Ne&&this.fontSize(Ne),ht=this._fontFamilies[Ye])return this._font=ht,this;var hi="F"+ ++this._fontCount;return this._font=ue.open(this,Qe,Ie,hi),(ht=this._fontFamilies[this._font.name])&&function(Qe,Ie){var Ne,Ye,ht,kt;return!((null==(Ne=Qe.font._tables)||null==(Ne=Ne.head)?void 0:Ne.checkSumAdjustment)!==(null==(Ye=Ie.font._tables)||null==(Ye=Ye.head)?void 0:Ye.checkSumAdjustment)||JSON.stringify(null==(ht=Qe.font._tables)||null==(ht=ht.name)?void 0:ht.records)!==JSON.stringify(null==(kt=Ie.font._tables)||null==(kt=kt.name)?void 0:kt.records))}(this._font,ht)?(this._font=ht,this):(Ye&&(this._fontFamilies[Ye]=this._font),this._font.name&&(this._fontFamilies[this._font.name]=this._font),this)},fontSize:function(Qe){return this._fontSize=Qe,this},currentLineHeight:function(Qe){return null==Qe&&(Qe=!1),this._font.lineHeight(this._fontSize,Qe)},registerFont:function(Qe,Ie,Ne){return this._registeredFonts[Qe]={src:Ie,family:Ne},this}},$t=function(Ot){function Qe(Ne,Ye){var ht;return(ht=Ot.call(this)||this).document=Ne,ht.horizontalScaling=Ye.horizontalScaling||100,ht.indent=(Ye.indent||0)*ht.horizontalScaling/100,ht.characterSpacing=(Ye.characterSpacing||0)*ht.horizontalScaling/100,ht.wordSpacing=(0===Ye.wordSpacing)*ht.horizontalScaling/100,ht.columns=Ye.columns||1,ht.columnGap=(null!=Ye.columnGap?Ye.columnGap:18)*ht.horizontalScaling/100,ht.lineWidth=(Ye.width*ht.horizontalScaling/100-ht.columnGap*(ht.columns-1))/ht.columns,ht.spaceLeft=ht.lineWidth,ht.startX=ht.document.x,ht.startY=ht.document.y,ht.column=1,ht.ellipsis=Ye.ellipsis,ht.continuedX=0,ht.features=Ye.features,null!=Ye.height?(ht.height=Ye.height,ht.maxY=ht.startY+Ye.height):ht.maxY=ht.document.page.maxY(),ht.on("firstLine",function(kt){var hi=ht.continuedX||ht.indent;if(ht.document.x+=hi,ht.lineWidth-=hi,!kt.indentAllLines)return ht.once("line",function(){if(ht.document.x-=hi,ht.lineWidth+=hi,kt.continued&&!ht.continuedX&&(ht.continuedX=ht.indent),!kt.continued)return ht.continuedX=0})}),ht.on("lastLine",function(kt){var hi=kt.align;return"justify"===hi&&(kt.align="left"),ht.lastLine=!0,ht.once("line",function(){return ht.document.y+=kt.paragraphGap||0,kt.align=hi,ht.lastLine=!1})}),ht}q(Qe,Ot);var Ie=Qe.prototype;return Ie.wordWidth=function(Ye){return this.document.widthOfString(Ye,this)+this.characterSpacing+this.wordSpacing},Ie.canFit=function(Ye,ht){return"\xad"!=Ye[Ye.length-1]?ht<=this.spaceLeft:ht+this.wordWidth("-")<=this.spaceLeft},Ie.eachWord=function(Ye,ht){for(var kt,hi=new D.default(Ye),Ii=null,en=Object.create(null);kt=hi.nextBreak();){var an,Ui=Ye.slice(Ii?.position||0,kt.position),bn=null!=en[Ui]?en[Ui]:en[Ui]=this.wordWidth(Ui);if(bn>this.lineWidth+this.continuedX)for(var Un=Ii,Jn={};Ui.length;){var hr,Er;bn>this.spaceLeft?(hr=Math.ceil(this.spaceLeft/(bn/Ui.length)),Er=(bn=this.wordWidth(Ui.slice(0,hr)))<=this.spaceLeft&&hrthis.spaceLeft&&hr>0;vr||Er;)vr?vr=(bn=this.wordWidth(Ui.slice(0,--hr)))>this.spaceLeft&&hr>0:(vr=(bn=this.wordWidth(Ui.slice(0,++hr)))>this.spaceLeft&&hr>0,Er=bn<=this.spaceLeft&&hrthis.maxY||hi>this.maxY)&&this.nextSection();var Ii="",en=0,an=0,Ui=0,bn=this.document.y,Un=function(){return ht.textWidth=en+kt.wordSpacing*(an-1),ht.wordCount=an,ht.lineWidth=kt.lineWidth,bn=kt.document.y,kt.emit("line",Ii,ht,kt),Ui++};return this.emit("sectionStart",ht,this),this.eachWord(Ye,function(Jn,hr,Er,vr){if((null==vr||vr.required)&&(kt.emit("firstLine",ht,kt),kt.spaceLeft=kt.lineWidth),kt.canFit(Jn,hr)&&(Ii+=Jn,en+=hr,an++),Er.required||!kt.canFit(Jn,hr)){var $n=kt.document.currentLineHeight(!0);if(null!=kt.height&&kt.ellipsis&&kt.document.y+2*$n>kt.maxY&&kt.column>=kt.columns){for(!0===kt.ellipsis&&(kt.ellipsis="\u2026"),Ii=Ii.replace(/\s+$/,""),en=kt.wordWidth(Ii+kt.ellipsis);Ii&&en>kt.lineWidth;)Ii=Ii.slice(0,-1).replace(/\s+$/,""),en=kt.wordWidth(Ii+kt.ellipsis);en<=kt.lineWidth&&(Ii+=kt.ellipsis),en=kt.wordWidth(Ii)}return Er.required&&(hr>kt.spaceLeft&&(Un(),Ii=Jn,en=hr,an=1),kt.emit("lastLine",ht,kt)),"\xad"==Ii[Ii.length-1]&&(Ii=Ii.slice(0,-1)+"-",kt.spaceLeft-=kt.wordWidth("-")),Un(),kt.document.y+$n>kt.maxY&&!kt.nextSection()?(an=0,Ii="",!1):Er.required?(kt.spaceLeft=kt.lineWidth,Ii="",en=0,an=0):(kt.spaceLeft=kt.lineWidth-hr,Ii=Jn,en=hr,an=1)}return kt.spaceLeft-=hr}),an>0&&(this.emit("lastLine",ht,this),Un()),this.emit("sectionEnd",ht,this),!0===ht.continued?(Ui>1&&(this.continuedX=0),this.continuedX+=ht.textWidth||0,this.document.y=bn):this.document.x=this.startX},Ie.nextSection=function(Ye){if(this.emit("sectionEnd",Ye,this),++this.column>this.columns){if(null!=this.height)return!1;var ht;this.document.continueOnNewPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&(ht=this.document).fillColor.apply(ht,this.document._fillColor),this.emit("pageBreak",Ye,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",Ye,this);return this.emit("sectionStart",Ye,this),!0},Qe}(M.EventEmitter),Ei=me.number,gi={initText:function(){return this._line=this._line.bind(this),this.x=0,this.y=0,this._lineGap=0},lineGap:function(Qe){return this._lineGap=Qe,this},moveDown:function(Qe){return null==Qe&&(Qe=1),this.y+=this.currentLineHeight(!0)*Qe+this._lineGap,this},moveUp:function(Qe){return null==Qe&&(Qe=1),this.y-=this.currentLineHeight(!0)*Qe+this._lineGap,this},_text:function(Qe,Ie,Ne,Ye,ht){var kt=this;Qe=null==Qe?"":""+Qe,(Ye=this._initOptions(Ie,Ne,Ye)).wordSpacing&&(Qe=Qe.replace(/\s{2,}/g," "));var hi=function(){Ye.structParent&&Ye.structParent.add(kt.struct(Ye.structType||"P",[kt.markStructureContent(Ye.structType||"P")]))};if(Ye.width){var Ii=this._wrapper;Ii||((Ii=new $t(this,Ye)).on("line",ht),Ii.on("firstLine",hi)),this._wrapper=Ye.continued?Ii:null,this._textOptions=Ye.continued?Ye:null,Ii.wrap(Qe,Ye)}else for(var an,en=H(Qe.split("\n"));!(an=en()).done;){var Ui=an.value;hi(),ht(Ui,Ye)}return this},text:function(Qe,Ie,Ne,Ye){return this._text(Qe,Ie,Ne,Ye,this._line)},widthOfString:function(Qe){var Ie=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ne=Ie.horizontalScaling||100;return(this._font.widthOfString(Qe,this._fontSize,Ie.features)+(Ie.characterSpacing||0)*(Qe.length-1))*Ne/100},heightOfString:function(Qe,Ie){var Ne=this,Ye=this.x,ht=this.y;(Ie=this._initOptions(Ie)).height=1/0;var kt=Ie.lineGap||this._lineGap||0;this._text(Qe,this.x,this.y,Ie,function(){return Ne.y+=Ne.currentLineHeight(!0)+kt});var hi=this.y-ht;return this.x=Ye,this.y=ht,hi},list:function(Qe,Ie,Ne,Ye,ht){var kt=(Ye=this._initOptions(Ie,Ne,Ye)).listType||"bullet",hi=Math.round(this._font.ascender/1e3*this._fontSize),Ii=hi/2,en=Ye.bulletRadius||hi/3,an=Ye.textIndent||("bullet"===kt?5*en:2*hi),Ui=Ye.bulletIndent||("bullet"===kt?8*en:2*hi),bn=1,Un=[],Jn=[],hr=[],Er=function(Ln){for(var Io=1,ko=0;ko0&&void 0!==arguments[0]?arguments[0]:{},Ie=arguments.length>1?arguments[1]:void 0,Ne=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"==typeof Qe&&(Ne=Qe,Qe=null);var Ye=Object.assign({},Ne);if(this._textOptions)for(var ht in this._textOptions)"continued"!==ht&&void 0===Ye[ht]&&(Ye[ht]=this._textOptions[ht]);return null!=Qe&&(this.x=Qe),null!=Ie&&(this.y=Ie),!1!==Ye.lineBreak&&(null==Ye.width&&(Ye.width=this.page.width-this.x-this.page.margins.right),Ye.width=Math.max(Ye.width,0)),Ye.columns||(Ye.columns=0),null==Ye.columnGap&&(Ye.columnGap=18),Ye},_line:function(Qe){var Ie=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ne=arguments.length>2?arguments[2]:void 0;this._fragment(Qe,this.x,this.y,Ie);var Ye=Ie.lineGap||this._lineGap||0;return Ne?this.y+=this.currentLineHeight(!0)+Ye:this.x+=this.widthOfString(Qe,Ie)},_fragment:function(Qe,Ie,Ne,Ye){var kt,hi,Ii,en,an,Ui,ht=this;if(0!==(Qe=(""+Qe).replace(/\n/g,"")).length){var Un=Ye.wordSpacing||0,Jn=Ye.characterSpacing||0,hr=Ye.horizontalScaling||100;if(Ye.width)switch(Ye.align||"left"){case"right":an=this.widthOfString(Qe.replace(/\s+$/,""),Ye),Ie+=Ye.lineWidth-an;break;case"center":Ie+=Ye.lineWidth/2-Ye.textWidth/2;break;case"justify":Ui=Qe.trim().split(/\s+/),an=this.widthOfString(Qe.replace(/\s+/g,""),Ye);var Er=this.widthOfString(" ")+Jn;Un=Math.max(0,(Ye.lineWidth-an)/Math.max(1,Ui.length-1)-Er)}if("number"==typeof Ye.baseline)kt=-Ye.baseline;else{switch(Ye.baseline){case"svg-middle":kt=.5*this._font.xHeight;break;case"middle":case"svg-central":kt=.5*(this._font.descender+this._font.ascender);break;case"bottom":case"ideographic":kt=this._font.descender;break;case"alphabetic":kt=0;break;case"mathematical":kt=.5*this._font.ascender;break;case"hanging":kt=.8*this._font.ascender;break;default:kt=this._font.ascender}kt=kt/1e3*this._fontSize}var Io,vr=Ye.textWidth+Un*(Ye.wordCount-1)+Jn*(Qe.length-1);if(null!=Ye.link&&this.link(Ie,Ne,vr,this.currentLineHeight(),Ye.link),null!=Ye.goTo&&this.goTo(Ie,Ne,vr,this.currentLineHeight(),Ye.goTo),null!=Ye.destination&&this.addNamedDestination(Ye.destination,"XYZ",Ie,Ne,null),Ye.underline){this.save(),Ye.stroke||this.strokeColor.apply(this,this._fillColor||[]);var $n=this._fontSize<10?.5:Math.floor(this._fontSize/10);this.lineWidth($n);var Ur=Ne+this.currentLineHeight()-$n;this.moveTo(Ie,Ur),this.lineTo(Ie+vr,Ur),this.stroke(),this.restore()}if(Ye.strike){this.save(),Ye.stroke||this.strokeColor.apply(this,this._fillColor||[]);var Tr=this._fontSize<10?.5:Math.floor(this._fontSize/10);this.lineWidth(Tr);var Ln=Ne+this.currentLineHeight()/2;this.moveTo(Ie,Ln),this.lineTo(Ie+vr,Ln),this.stroke(),this.restore()}this.save(),Ye.oblique&&(Io="number"==typeof Ye.oblique?-Math.tan(Ye.oblique*Math.PI/180):-.25,this.transform(1,0,0,1,Ie,Ne),this.transform(1,0,Io,1,-Io*kt,0),this.transform(1,0,0,1,-Ie,-Ne)),this.transform(1,0,0,-1,0,this.page.height),Ne=this.page.height-Ne-kt,null==this.page.fonts[this._font.id]&&(this.page.fonts[this._font.id]=this._font.ref()),this.addContent("BT"),this.addContent("1 0 0 1 "+Ei(Ie)+" "+Ei(Ne)+" Tm"),this.addContent("/"+this._font.id+" "+Ei(this._fontSize)+" Tf");var ko=Ye.fill&&Ye.stroke?2:Ye.stroke?1:0;if(ko&&this.addContent(ko+" Tr"),Jn&&this.addContent(Ei(Jn)+" Tc"),100!==hr&&this.addContent(hr+" Tz"),Un){Ui=Qe.trim().split(/\s+/),Un+=this.widthOfString(" ")+Jn,Un*=1e3/this._fontSize,hi=[],en=[];for(var Ca,ao=H(Ui);!(Ca=ao()).done;){var da=this._font.encode(Ca.value,Ye.features),Po=da[1];hi=hi.concat(da[0]);var tl={},va=(en=en.concat(Po))[en.length-1];for(var za in va)tl[za]=va[za];tl.xAdvance+=Un,en[en.length-1]=tl}}else{var yl=this._font.encode(Qe,Ye.features);hi=yl[0],en=yl[1]}var Ls=this._fontSize/1e3,Bo=[],sA=0,Gl=!1,$a=function(js){if(sA "+Ei(-(en[js-1].xAdvance-en[js-1].advanceWidth)))}return sA=js},rd=function(js){if($a(js),Bo.length>0)return ht.addContent("["+Bo.join(" ")+"] TJ"),Bo.length=0};for(Ii=0;Ii3&&void 0!==arguments[3]?arguments[3]:{};"object"==typeof Ie&&(Ye=Ie,Ie=null);var hr=Ye.ignoreOrientation||!1!==Ye.ignoreOrientation&&this.options.ignoreOrientation;Ie=null!=(an=Ie??Ye.x)?an:this.x,Ne=null!=(Ui=Ne??Ye.y)?Ui:this.y,"string"==typeof Qe&&(Ii=this._imageRegistry[Qe]),Ii||(Ii=Qe.width&&Qe.height?Qe:this.openImage(Qe)),Ii.obj||Ii.embed(this),null==this.page.xobjects[Ii.label]&&(this.page.xobjects[Ii.label]=Ii.obj);var vr=Ii.width,$n=Ii.height;if(!hr&&Ii.orientation>4){var Ur=[$n,vr];vr=Ur[0],$n=Ur[1]}var Tr=Ye.width||vr,Ln=Ye.height||$n;if(Ye.width&&!Ye.height){var Io=Tr/vr;Tr=vr*Io,Ln=$n*Io}else if(Ye.height&&!Ye.width){var ko=Ln/$n;Tr=vr*ko,Ln=$n*ko}else if(Ye.scale)Tr=vr*Ye.scale,Ln=$n*Ye.scale;else if(Ye.fit){var ao=Ye.fit;(en=vr/$n)>(hi=ao[0])/(ht=ao[1])?(Tr=hi,Ln=hi/en):(Ln=ht,Tr=ht*en)}else if(Ye.cover){var Ca=Ye.cover;(en=vr/$n)>(hi=Ca[0])/(ht=Ca[1])?(Ln=ht,Tr=ht*en):(Tr=hi,Ln=hi/en)}if((Ye.fit||Ye.cover)&&("center"===Ye.align?Ie=Ie+hi/2-Tr/2:"right"===Ye.align&&(Ie=Ie+hi-Tr),"center"===Ye.valign?Ne=Ne+ht/2-Ln/2:"bottom"===Ye.valign&&(Ne=Ne+ht-Ln)),hr)Ne-=Ln=-Ln,bn=0;else switch(Ii.orientation){default:case 1:Ne-=Ln=-Ln,bn=0;break;case 2:Ie-=Tr=-Tr,Ne-=Ln=-Ln,bn=0;break;case 3:Un=Ie,Jn=Ne,Ln=-Ln,Ie-=Tr,bn=180;break;case 4:break;case 5:Un=Ie,Jn=Ne;var ds=[Ln,Tr];Tr=ds[0],Ne-=Ln=ds[1],bn=90;break;case 6:Un=Ie,Jn=Ne;var da=[Ln,Tr];Tr=da[0],Ln=-(Ln=da[1]),bn=90;break;case 7:Un=Ie,Jn=Ne;var Xa=[Ln,Tr];Ln=-(Ln=Xa[1]),Ie-=Tr=-(Tr=Xa[0]),bn=90;break;case 8:Un=Ie,Jn=Ne;var Po=[Ln,Tr];Ie-=Tr=Po[0],Ne-=Ln=-(Ln=Po[1]),bn=-90}return null!=Ye.link&&this.link(Ie,Ne,Tr,Ln,Ye.link),null!=Ye.goTo&&this.goTo(Ie,Ne,Tr,Ln,Ye.goTo),null!=Ye.destination&&this.addNamedDestination(Ye.destination,"XYZ",Ie,Ne,null),this.y===Ne&&(this.y+=Ln),this.save(),bn&&this.rotate(bn,{origin:[Un,Jn]}),this.transform(Tr,0,0,Ln,Ie,Ne),this.addContent("/"+Ii.label+" Do"),this.restore(),this},openImage:function(Qe){var Ie;return"string"==typeof Qe&&(Ie=this._imageRegistry[Qe]),Ie||(Ie=nn.open(Qe,"I"+ ++this._imageCount),"string"==typeof Qe&&(this._imageRegistry[Qe]=Ie)),Ie}},Oi={annotate:function(Qe,Ie,Ne,Ye,ht){for(var kt in ht.Type="Annot",ht.Rect=this._convertRect(Qe,Ie,Ne,Ye),ht.Border=[0,0,0],"Link"===ht.Subtype&&typeof ht.F>"u"&&(ht.F=4),"Link"!==ht.Subtype&&null==ht.C&&(ht.C=this._normalizeColor(ht.color||[0,0,0])),delete ht.color,"string"==typeof ht.Dest&&(ht.Dest=new String(ht.Dest)),ht){var hi=ht[kt];ht[kt[0].toUpperCase()+kt.slice(1)]=hi}var Ii=this.ref(ht);return this.page.annotations.push(Ii),Ii.end(),this},note:function(Qe,Ie,Ne,Ye,ht){var kt=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return kt.Subtype="Text",kt.Contents=new String(ht),null==kt.Name&&(kt.Name="Comment"),null==kt.color&&(kt.color=[243,223,92]),this.annotate(Qe,Ie,Ne,Ye,kt)},goTo:function(Qe,Ie,Ne,Ye,ht){var kt=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return kt.Subtype="Link",kt.A=this.ref({S:"GoTo",D:new String(ht)}),kt.A.end(),this.annotate(Qe,Ie,Ne,Ye,kt)},link:function(Qe,Ie,Ne,Ye,ht){var kt=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(kt.Subtype="Link","number"==typeof ht){var hi=this._root.data.Pages.data;if(!(ht>=0&&ht4&&void 0!==arguments[4]?arguments[4]:{},kt=this._convertRect(Qe,Ie,Ne,Ye),hi=kt[0],Ii=kt[1],en=kt[2],an=kt[3];return ht.QuadPoints=[hi,an,en,an,hi,Ii,en,Ii],ht.Contents=new String,this.annotate(Qe,Ie,Ne,Ye,ht)},highlight:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return ht.Subtype="Highlight",null==ht.color&&(ht.color=[241,238,148]),this._markup(Qe,Ie,Ne,Ye,ht)},underline:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return ht.Subtype="Underline",this._markup(Qe,Ie,Ne,Ye,ht)},strike:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return ht.Subtype="StrikeOut",this._markup(Qe,Ie,Ne,Ye,ht)},lineAnnotation:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return ht.Subtype="Line",ht.Contents=new String,ht.L=[Qe,this.page.height-Ie,Ne,this.page.height-Ye],this.annotate(Qe,Ie,Ne,Ye,ht)},rectAnnotation:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return ht.Subtype="Square",ht.Contents=new String,this.annotate(Qe,Ie,Ne,Ye,ht)},ellipseAnnotation:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return ht.Subtype="Circle",ht.Contents=new String,this.annotate(Qe,Ie,Ne,Ye,ht)},textAnnotation:function(Qe,Ie,Ne,Ye,ht){var kt=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return kt.Subtype="FreeText",kt.Contents=new String(ht),kt.DA=new String,this.annotate(Qe,Ie,Ne,Ye,kt)},fileAnnotation:function(Qe,Ie,Ne,Ye){var ht=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},kt=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},hi=this.file(ht.src,Object.assign({hidden:!0},ht));return kt.Subtype="FileAttachment",kt.FS=hi,kt.Contents?kt.Contents=new String(kt.Contents):hi.data.Desc&&(kt.Contents=hi.data.Desc),this.annotate(Qe,Ie,Ne,Ye,kt)},_convertRect:function(Qe,Ie,Ne,Ye){var ht=Ie,kt=Qe+Ne,hi=this._ctm,Ii=hi[0],en=hi[1],an=hi[2],Ui=hi[3],bn=hi[4],Un=hi[5];return[Qe=Ii*Qe+an*(Ie+=Ye)+bn,Ie=en*Qe+Ui*Ie+Un,kt=Ii*kt+an*ht+bn,ht=en*kt+Ui*ht+Un]}},$i=function(){function Ot(Ie,Ne,Ye,ht){var kt=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{expanded:!1};this.document=Ie,this.options=kt,this.outlineData={},null!==ht&&(this.outlineData.Dest=[ht.dictionary,"Fit"]),null!==Ne&&(this.outlineData.Parent=Ne),null!==Ye&&(this.outlineData.Title=new String(Ye)),this.dictionary=this.document.ref(this.outlineData),this.children=[]}var Qe=Ot.prototype;return Qe.addItem=function(Ne){var ht=new Ot(this.document,this.dictionary,Ne,this.document.page,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{expanded:!1});return this.children.push(ht),ht},Qe.endOutline=function(){if(this.children.length>0){this.options.expanded&&(this.outlineData.Count=this.children.length);var Ye=this.children[this.children.length-1];this.outlineData.First=this.children[0].dictionary,this.outlineData.Last=Ye.dictionary;for(var ht=0,kt=this.children.length;ht0&&(hi.outlineData.Prev=this.children[ht-1].dictionary),ht0)return this._root.data.Outlines=this.outline.dictionary,this._root.data.PageMode="UseOutlines"}},jn=function(){function Ot(Ie,Ne){this.refs=[{pageRef:Ie,mcid:Ne}]}return Ot.prototype.push=function(Ne){var Ye=this;Ne.refs.forEach(function(ht){return Ye.refs.push(ht)})},Ot}(),qn=function(){function Ot(Ie,Ne){var Ye=this,ht=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},kt=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.document=Ie,this._attached=!1,this._ended=!1,this._flushed=!1,this.dictionary=Ie.ref({S:Ne});var hi=this.dictionary.data;(Array.isArray(ht)||this._isValidChild(ht))&&(kt=ht,ht={}),typeof ht.title<"u"&&(hi.T=new String(ht.title)),typeof ht.lang<"u"&&(hi.Lang=new String(ht.lang)),typeof ht.alt<"u"&&(hi.Alt=new String(ht.alt)),typeof ht.expanded<"u"&&(hi.E=new String(ht.expanded)),typeof ht.actual<"u"&&(hi.ActualText=new String(ht.actual)),this._children=[],kt&&(Array.isArray(kt)||(kt=[kt]),kt.forEach(function(Ii){return Ye.add(Ii)}),this.end())}var Qe=Ot.prototype;return Qe.add=function(Ne){if(this._ended)throw new Error("Cannot add child to already-ended structure element");if(!this._isValidChild(Ne))throw new Error("Invalid structure element child");return Ne instanceof Ot&&(Ne.setParent(this.dictionary),this._attached&&Ne.setAttached()),Ne instanceof jn&&this._addContentToParentTree(Ne),"function"==typeof Ne&&this._attached&&(Ne=this._contentForClosure(Ne)),this._children.push(Ne),this},Qe._addContentToParentTree=function(Ne){var Ye=this;Ne.refs.forEach(function(ht){var kt=ht.pageRef,hi=ht.mcid;Ye.document.getStructParentTree().get(kt.data.StructParents)[hi]=Ye.dictionary})},Qe.setParent=function(Ne){if(this.dictionary.data.P)throw new Error("Structure element added to more than one parent");this.dictionary.data.P=Ne,this._flush()},Qe.setAttached=function(){var Ne=this;this._attached||(this._children.forEach(function(Ye,ht){Ye instanceof Ot&&Ye.setAttached(),"function"==typeof Ye&&(Ne._children[ht]=Ne._contentForClosure(Ye))}),this._attached=!0,this._flush())},Qe.end=function(){this._ended||(this._children.filter(function(Ne){return Ne instanceof Ot}).forEach(function(Ne){return Ne.end()}),this._ended=!0,this._flush())},Qe._isValidChild=function(Ne){return Ne instanceof Ot||Ne instanceof jn||"function"==typeof Ne},Qe._contentForClosure=function(Ne){var Ye=this.document.markStructureContent(this.dictionary.data.S);return Ne(),this.document.endMarkedContent(),this._addContentToParentTree(Ye),Ye},Qe._isFlushable=function(){return!(!this.dictionary.data.P||!this._ended)&&this._children.every(function(Ne){return"function"!=typeof Ne&&(!(Ne instanceof Ot)||Ne._isFlushable())})},Qe._flush=function(){var Ne=this;this._flushed||!this._isFlushable()||(this.dictionary.data.K=[],this._children.forEach(function(Ye){return Ne._flushChild(Ye)}),this.dictionary.end(),this._children=[],this.dictionary.data.K=null,this._flushed=!0)},Qe._flushChild=function(Ne){var Ye=this;Ne instanceof Ot&&this.dictionary.data.K.push(Ne.dictionary),Ne instanceof jn&&Ne.refs.forEach(function(ht){var kt=ht.pageRef,hi=ht.mcid;Ye.dictionary.data.Pg||(Ye.dictionary.data.Pg=kt),Ye.dictionary.data.K.push(Ye.dictionary.data.Pg===kt?hi:{Type:"MCR",Pg:kt,MCID:hi})})},Ot}(),fr=function(Ot){function Qe(){return Ot.apply(this,arguments)||this}q(Qe,Ot);var Ie=Qe.prototype;return Ie._compareKeys=function(Ye,ht){return parseInt(Ye)-parseInt(ht)},Ie._keysName=function(){return"Nums"},Ie._dataForKey=function(Ye){return parseInt(Ye)},Qe}(J),Gr={initMarkings:function(Qe){this.structChildren=[],Qe.tagged&&(this.getMarkInfoDictionary().data.Marked=!0,this.getStructTreeRoot())},markContent:function(Qe){var Ie=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("Artifact"===Qe||Ie&&Ie.mcid){var Ne=0;for(this.page.markings.forEach(function(ht){(Ne||ht.structContent||"Artifact"===ht.tag)&&Ne++});Ne--;)this.endMarkedContent()}if(!Ie)return this.page.markings.push({tag:Qe}),this.addContent("/"+Qe+" BMC"),this;this.page.markings.push({tag:Qe,options:Ie});var Ye={};return typeof Ie.mcid<"u"&&(Ye.MCID=Ie.mcid),"Artifact"===Qe&&("string"==typeof Ie.type&&(Ye.Type=Ie.type),Array.isArray(Ie.bbox)&&(Ye.BBox=[Ie.bbox[0],this.page.height-Ie.bbox[3],Ie.bbox[2],this.page.height-Ie.bbox[1]]),Array.isArray(Ie.attached)&&Ie.attached.every(function(ht){return"string"==typeof ht})&&(Ye.Attached=Ie.attached)),"Span"===Qe&&(Ie.lang&&(Ye.Lang=new String(Ie.lang)),Ie.alt&&(Ye.Alt=new String(Ie.alt)),Ie.expanded&&(Ye.E=new String(Ie.expanded)),Ie.actual&&(Ye.ActualText=new String(Ie.actual))),this.addContent("/"+Qe+" "+me.convert(Ye)+" BDC"),this},markStructureContent:function(Qe){var Ie=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ne=this.getStructParentTree().get(this.page.structParentTreeKey),Ye=Ne.length;Ne.push(null),this.markContent(Qe,Object.assign({},Ie,{mcid:Ye}));var ht=new jn(this.page.dictionary,Ye);return this.page.markings.slice(-1)[0].structContent=ht,ht},endMarkedContent:function(){return this.page.markings.pop(),this.addContent("EMC"),this},struct:function(Qe){return new qn(this,Qe,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)},addStructure:function(Qe){var Ie=this.getStructTreeRoot();return Qe.setParent(Ie),Qe.setAttached(),this.structChildren.push(Qe),Ie.data.K||(Ie.data.K=[]),Ie.data.K.push(Qe.dictionary),this},initPageMarkings:function(Qe){var Ie=this;Qe.forEach(function(Ne){if(Ne.structContent){var Ye=Ne.structContent,ht=Ie.markStructureContent(Ne.tag,Ne.options);Ye.push(ht),Ie.page.markings.slice(-1)[0].structContent=Ye}else Ie.markContent(Ne.tag,Ne.options)})},endPageMarkings:function(Qe){var Ie=Qe.markings;return Ie.forEach(function(){return Qe.write("EMC")}),Qe.markings=[],Ie},getMarkInfoDictionary:function(){return this._root.data.MarkInfo||(this._root.data.MarkInfo=this.ref({})),this._root.data.MarkInfo},hasMarkInfoDictionary:function(){return!!this._root.data.MarkInfo},getStructTreeRoot:function(){return this._root.data.StructTreeRoot||(this._root.data.StructTreeRoot=this.ref({Type:"StructTreeRoot",ParentTree:new fr,ParentTreeNextKey:0})),this._root.data.StructTreeRoot},getStructParentTree:function(){return this.getStructTreeRoot().data.ParentTree},createStructParentTreeNextKey:function(){this.getMarkInfoDictionary();var Qe=this.getStructTreeRoot(),Ie=Qe.data.ParentTreeNextKey++;return Qe.data.ParentTree.add(Ie,[]),Ie},endMarkings:function(){var Qe=this._root.data.StructTreeRoot;Qe&&(Qe.end(),this.structChildren.forEach(function(Ie){return Ie.end()})),this._root.data.MarkInfo&&this._root.data.MarkInfo.end()}},br={readOnly:1,required:2,noExport:4,multiline:4096,password:8192,toggleToOffButton:16384,radioButton:32768,pushButton:65536,combo:131072,edit:262144,sort:524288,multiSelect:2097152,noSpell:4194304},_o={left:0,center:1,right:2},Br={value:"V",defaultValue:"DV"},Kn={zip:"0",zipPlus4:"1",zip4:"1",phone:"2",ssn:"3"},xr_number={nDec:0,sepComma:!1,negStyle:"MinusBlack",currency:"",currencyPrepend:!0},xr_percent={nDec:0,sepComma:!1},Dr={initForm:function(){if(!this._font)throw new Error("Must set a font before calling initForm method");this._acroform={fonts:{},defaultFont:this._font.name},this._acroform.fonts[this._font.id]=this._font.ref();var Qe={Fields:[],NeedAppearances:!0,DA:new String("/"+this._font.id+" 0 Tf 0 g"),DR:{Font:{}}};Qe.DR.Font[this._font.id]=this._font.ref();var Ie=this.ref(Qe);return this._root.data.AcroForm=Ie,this},endAcroForm:function(){var Qe=this;if(this._root.data.AcroForm){if(!Object.keys(this._acroform.fonts).length&&!this._acroform.defaultFont)throw new Error("No fonts specified for PDF form");var Ie=this._root.data.AcroForm.data.DR.Font;Object.keys(this._acroform.fonts).forEach(function(Ne){Ie[Ne]=Qe._acroform.fonts[Ne]}),this._root.data.AcroForm.data.Fields.forEach(function(Ne){Qe._endChild(Ne)}),this._root.data.AcroForm.end()}return this},_endChild:function(Qe){var Ie=this;return Array.isArray(Qe.data.Kids)&&(Qe.data.Kids.forEach(function(Ne){Ie._endChild(Ne)}),Qe.end()),this},formField:function(Qe){var Ne=this._fieldDict(Qe,null,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),Ye=this.ref(Ne);return this._addToParent(Ye),Ye},formAnnotation:function(Qe,Ie,Ne,Ye,ht,kt){var Ii=this._fieldDict(Qe,Ie,arguments.length>6&&void 0!==arguments[6]?arguments[6]:{});return Ii.Subtype="Widget",void 0===Ii.F&&(Ii.F=4),this.annotate(Ne,Ye,ht,kt,Ii),this._addToParent(this.page.annotations[this.page.annotations.length-1])},formText:function(Qe,Ie,Ne,Ye,ht){return this.formAnnotation(Qe,"text",Ie,Ne,Ye,ht,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formPushButton:function(Qe,Ie,Ne,Ye,ht){return this.formAnnotation(Qe,"pushButton",Ie,Ne,Ye,ht,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formCombo:function(Qe,Ie,Ne,Ye,ht){return this.formAnnotation(Qe,"combo",Ie,Ne,Ye,ht,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formList:function(Qe,Ie,Ne,Ye,ht){return this.formAnnotation(Qe,"list",Ie,Ne,Ye,ht,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formRadioButton:function(Qe,Ie,Ne,Ye,ht){return this.formAnnotation(Qe,"radioButton",Ie,Ne,Ye,ht,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formCheckbox:function(Qe,Ie,Ne,Ye,ht){return this.formAnnotation(Qe,"checkbox",Ie,Ne,Ye,ht,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},_addToParent:function(Qe){var Ie=Qe.data.Parent;return Ie?(Ie.data.Kids||(Ie.data.Kids=[]),Ie.data.Kids.push(Qe)):this._root.data.AcroForm.data.Fields.push(Qe),this},_fieldDict:function(Qe,Ie){var Ne=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!this._acroform)throw new Error("Call document.initForm() method before adding form elements to document");var Ye=Object.assign({},Ne);return null!==Ie&&(Ye=this._resolveType(Ie,Ne)),Ye=this._resolveFlags(Ye),Ye=this._resolveJustify(Ye),Ye=this._resolveFont(Ye),Ye=this._resolveStrings(Ye),Ye=this._resolveColors(Ye),(Ye=this._resolveFormat(Ye)).T=new String(Qe),Ye.parent&&(Ye.Parent=Ye.parent,delete Ye.parent),Ye},_resolveType:function(Qe,Ie){if("text"===Qe)Ie.FT="Tx";else if("pushButton"===Qe)Ie.FT="Btn",Ie.pushButton=!0;else if("radioButton"===Qe)Ie.FT="Btn",Ie.radioButton=!0;else if("checkbox"===Qe)Ie.FT="Btn";else if("combo"===Qe)Ie.FT="Ch",Ie.combo=!0;else{if("list"!==Qe)throw new Error("Invalid form annotation type '"+Qe+"'");Ie.FT="Ch"}return Ie},_resolveFormat:function(Qe){var Ie=Qe.format;if(Ie&&Ie.type){var Ne,Ye,ht="";if(void 0!==Kn[Ie.type])Ne="AFSpecial_Keystroke",Ye="AFSpecial_Format",ht=Kn[Ie.type];else{var kt=Ie.type.charAt(0).toUpperCase()+Ie.type.slice(1);if(Ne="AF"+kt+"_Keystroke",Ye="AF"+kt+"_Format","date"===Ie.type)Ne+="Ex",ht=String(Ie.param);else if("time"===Ie.type)ht=String(Ie.param);else if("number"===Ie.type){var hi=Object.assign({},xr_number,Ie);ht=String([String(hi.nDec),hi.sepComma?"0":"1",'"'+hi.negStyle+'"',"null",'"'+hi.currency+'"',String(hi.currencyPrepend)].join(","))}else if("percent"===Ie.type){var Ii=Object.assign({},xr_percent,Ie);ht=String([String(Ii.nDec),Ii.sepComma?"0":"1"].join(","))}}Qe.AA=Qe.AA?Qe.AA:{},Qe.AA.K={S:"JavaScript",JS:new String(Ne+"("+ht+");")},Qe.AA.F={S:"JavaScript",JS:new String(Ye+"("+ht+");")}}return delete Qe.format,Qe},_resolveColors:function(Qe){var Ie=this._normalizeColor(Qe.backgroundColor);return Ie&&(Qe.MK||(Qe.MK={}),Qe.MK.BG=Ie),(Ie=this._normalizeColor(Qe.borderColor))&&(Qe.MK||(Qe.MK={}),Qe.MK.BC=Ie),delete Qe.backgroundColor,delete Qe.borderColor,Qe},_resolveFlags:function(Qe){var Ie=0;return Object.keys(Qe).forEach(function(Ne){br[Ne]&&(Qe[Ne]&&(Ie|=br[Ne]),delete Qe[Ne])}),0!==Ie&&(Qe.Ff=Qe.Ff?Qe.Ff:0,Qe.Ff|=Ie),Qe},_resolveJustify:function(Qe){var Ie=0;return void 0!==Qe.align&&("number"==typeof _o[Qe.align]&&(Ie=_o[Qe.align]),delete Qe.align),0!==Ie&&(Qe.Q=Ie),Qe},_resolveFont:function(Qe){if(null==this._acroform.fonts[this._font.id]&&(this._acroform.fonts[this._font.id]=this._font.ref()),this._acroform.defaultFont!==this._font.name){Qe.DR={Font:{}};var Ie=Qe.fontSize||0;Qe.DR.Font[this._font.id]=this._font.ref(),Qe.DA=new String("/"+this._font.id+" "+Ie+" Tf 0 g")}return Qe},_resolveStrings:function(Qe){var Ie=[];function Ne(Ye){if(Array.isArray(Ye))for(var ht=0;ht1&&void 0!==arguments[1]?arguments[1]:{};Ie.name=Ie.name||Qe,Ie.relationship=Ie.relationship||"Unspecified";var Ye,Ne={Type:"EmbeddedFile",Params:{}};if(!Qe)throw new Error("No src specified");if(h.isBuffer(Qe))Ye=Qe;else if(Qe instanceof ArrayBuffer)Ye=h.from(new Uint8Array(Qe));else{var ht;if(ht=/^data:(.*?);base64,(.*)$/.exec(Qe))ht[1]&&(Ne.Subtype=ht[1].replace("/","#2F")),Ye=h.from(ht[2],"base64");else{if(!(Ye=te.readFileSync(Qe)))throw new Error("Could not read contents of file at filepath "+Qe);var kt=te.statSync(Qe),Ii=kt.ctime;Ne.Params.CreationDate=kt.birthtime,Ne.Params.ModDate=Ii}}Ie.creationDate instanceof Date&&(Ne.Params.CreationDate=Ie.creationDate),Ie.modifiedDate instanceof Date&&(Ne.Params.ModDate=Ie.modifiedDate),Ie.type&&(Ne.Subtype=Ie.type.replace("/","#2F"));var an,en=b.default.MD5(b.default.lib.WordArray.create(new Uint8Array(Ye)));Ne.Params.CheckSum=new String(en),Ne.Params.Size=Ye.byteLength,this._fileRegistry||(this._fileRegistry={});var Ui=this._fileRegistry[Ie.name];Ui&&function ca(Ot,Qe){return Ot.Subtype===Qe.Subtype&&Ot.Params.CheckSum.toString()===Qe.Params.CheckSum.toString()&&Ot.Params.Size===Qe.Params.Size&&Ot.Params.CreationDate.getTime()===Qe.Params.CreationDate.getTime()&&(void 0===Ot.Params.ModDate&&void 0===Qe.Params.ModDate||Ot.Params.ModDate.getTime()===Qe.Params.ModDate.getTime())}(Ne,Ui)?an=Ui.ref:((an=this.ref(Ne)).end(Ye),this._fileRegistry[Ie.name]=Object.assign({},Ne,{ref:an}));var bn={Type:"Filespec",AFRelationship:Ie.relationship,F:new String(Ie.name),EF:{F:an},UF:new String(Ie.name)};Ie.description&&(bn.Desc=new String(Ie.description));var Un=this.ref(bn);return Un.end(),Ie.hidden||this.addNamedEmbeddedFile(Ie.name,Un),this._root.data.AF?this._root.data.AF.push(Un):this._root.data.AF=[Un],Un}};var Ta={initPDFA:function(Qe){"-"===Qe.charAt(Qe.length-3)?(this.subset_conformance=Qe.charAt(Qe.length-1).toUpperCase(),this.subset=parseInt(Qe.charAt(Qe.length-2))):(this.subset_conformance="B",this.subset=parseInt(Qe.charAt(Qe.length-1)))},endSubset:function(){this._addPdfaMetadata(),this._addColorOutputIntent()},_addColorOutputIntent:function(){var Qe=h("AAAL0AAAAAACAAAAbW50clJHQiBYWVogB98AAgAPAAAAAAAAYWNzcAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAPbWAAEAAAAA0y0AAAAAPQ6y3q6Tl76bZybOjApDzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQZGVzYwAAAUQAAABjYlhZWgAAAagAAAAUYlRSQwAAAbwAAAgMZ1RSQwAAAbwAAAgMclRSQwAAAbwAAAgMZG1kZAAACcgAAACIZ1hZWgAAClAAAAAUbHVtaQAACmQAAAAUbWVhcwAACngAAAAkYmtwdAAACpwAAAAUclhZWgAACrAAAAAUdGVjaAAACsQAAAAMdnVlZAAACtAAAACHd3RwdAAAC1gAAAAUY3BydAAAC2wAAAA3Y2hhZAAAC6QAAAAsZGVzYwAAAAAAAAAJc1JHQjIwMTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAAAkoAAAD4QAALbPY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//9kZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi0xIERlZmF1bHQgUkdCIENvbG91ciBTcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAAAAAUAAAAAAAAG1lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlhZWiAAAAAAAAAAngAAAKQAAACHWFlaIAAAAAAAAG+iAAA49QAAA5BzaWcgAAAAAENSVCBkZXNjAAAAAAAAAC1SZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDIDYxOTY2LTItMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y10ZXh0AAAAAENvcHlyaWdodCBJbnRlcm5hdGlvbmFsIENvbG9yIENvbnNvcnRpdW0sIDIwMTUAAHNmMzIAAAAAAAEMRAAABd////MmAAAHlAAA/Y////uh///9ogAAA9sAAMB1","base64"),Ie=this.ref({Length:Qe.length,N:3});Ie.write(Qe),Ie.end();var Ne=this.ref({Type:"OutputIntent",S:"GTS_PDFA1",Info:new String("sRGB IEC61966-2.1"),OutputConditionIdentifier:new String("sRGB IEC61966-2.1"),DestOutputProfile:Ie});Ne.end(),this._root.data.OutputIntents=[Ne]},_getPdfaid:function(){return'\n \n '+this.subset+"\n "+this.subset_conformance+"\n \n "},_addPdfaMetadata:function(){this.appendXML(this._getPdfaid())}},Sr={initPDFUA:function(){this.subset=1},endSubset:function(){this._addPdfuaMetadata()},_addPdfuaMetadata:function(){this.appendXML(this._getPdfuaid())},_getPdfuaid:function(){return'\n \n '+this.subset+"\n \n "}},qa={_importSubset:function(Qe){Object.assign(this,Qe)},initSubset:function(Qe){switch(Qe.subset){case"PDF/A-1":case"PDF/A-1a":case"PDF/A-1b":case"PDF/A-2":case"PDF/A-2a":case"PDF/A-2b":case"PDF/A-3":case"PDF/A-3a":case"PDF/A-3b":this._importSubset(Ta),this.initPDFA(Qe.subset);break;case"PDF/UA":this._importSubset(Sr),this.initPDFUA()}}},Aa=function(){function Ot(){this._metadata='\n \n \n \n '}var Qe=Ot.prototype;return Qe._closeTags=function(){this._metadata=this._metadata.concat('\n \n \n \n ')},Qe.append=function(Ne){var Ye=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._metadata=this._metadata.concat(Ne),Ye&&(this._metadata=this._metadata.concat("\n"))},Qe.getXML=function(){return this._metadata},Qe.getLength=function(){return this._metadata.length},Qe.end=function(){this._closeTags(),this._metadata=this._metadata.trim()},Ot}(),lo={initMetadata:function(){this.metadata=new Aa},appendXML:function(Qe){this.metadata.append(Qe,!(arguments.length>1&&void 0!==arguments[1])||arguments[1])},_addInfo:function(){this.appendXML('\n \n '+this.info.CreationDate.toISOString().split(".")[0]+"Z\n "+this.info.Creator+"\n \n "),(this.info.Title||this.info.Author||this.info.Subject)&&(this.appendXML('\n \n '),this.info.Title&&this.appendXML('\n \n \n '+this.info.Title+"\n \n \n "),this.info.Author&&this.appendXML("\n \n \n "+this.info.Author+"\n \n \n "),this.info.Subject&&this.appendXML('\n \n \n '+this.info.Subject+"\n \n \n "),this.appendXML("\n \n ")),this.appendXML('\n \n '+this.info.Creator+"",!1),this.info.Keywords&&this.appendXML("\n "+this.info.Keywords+"",!1),this.appendXML("\n \n ")},endMetadata:function(){this._addInfo(),this.metadata.end(),1.3!=this.version&&(this.metadataRef=this.ref({length:this.metadata.getLength(),Type:"Metadata",Subtype:"XML"}),this.metadataRef.compress=!1,this.metadataRef.write(h.from(this.metadata.getXML(),"utf-8")),this.metadataRef.end(),this._root.data.Metadata=this.metadataRef)}},kn=function(Ot){function Qe(){var Ne,Ye=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch((Ne=Ot.call(this,Ye)||this).options=Ye,Ye.pdfVersion){case"1.4":Ne.version=1.4;break;case"1.5":Ne.version=1.5;break;case"1.6":Ne.version=1.6;break;case"1.7":case"1.7ext3":Ne.version=1.7;break;default:Ne.version=1.3}Ne.compress=null==Ne.options.compress||Ne.options.compress,Ne._pageBuffer=[],Ne._pageBufferStart=0,Ne._offsets=[],Ne._waiting=0,Ne._ended=!1,Ne._offset=0;var ht=Ne.ref({Type:"Pages",Count:0,Kids:[]}),kt=Ne.ref({Dests:new ye});if(Ne._root=Ne.ref({Type:"Catalog",Pages:ht,Names:kt}),Ne.options.lang&&(Ne._root.data.Lang=new String(Ne.options.lang)),Ne.page=null,Ne.initMetadata(),Ne.initColor(),Ne.initVector(),Ne.initFonts(Ye.font),Ne.initText(),Ne.initImages(),Ne.initOutline(),Ne.initMarkings(Ye),Ne.initSubset(Ye),Ne.info={Producer:"PDFKit",Creator:"PDFKit",CreationDate:new Date},Ne.options.info)for(var hi in Ne.options.info)Ne.info[hi]=Ne.options.info[hi];return Ne.options.displayTitle&&(Ne._root.data.ViewerPreferences=Ne.ref({DisplayDocTitle:!0})),Ne._id=ke.generateFileID(Ne.info),Ne._security=ke.create(Ne,Ye),Ne._write("%PDF-"+Ne.version),Ne._write("%\xff\xff\xff\xff"),!1!==Ne.options.autoFirstPage&&Ne.addPage(),Ne}q(Qe,Ot);var Ie=Qe.prototype;return Ie.addPage=function(Ye){null==Ye&&(Ye=this.options),this.options.bufferPages||this.flushPages(),this.page=new ve(this,Ye),this._pageBuffer.push(this.page);var ht=this._root.data.Pages.data;return ht.Kids.push(this.page.dictionary),ht.Count++,this.x=this.page.margins.left,this.y=this.page.margins.top,this._ctm=[1,0,0,1,0,0],this.transform(1,0,0,-1,0,this.page.height),this.emit("pageAdded"),this},Ie.continueOnNewPage=function(Ye){var ht=this.endPageMarkings(this.page);return this.addPage(Ye),this.initPageMarkings(ht),this},Ie.bufferedPageRange=function(){return{start:this._pageBufferStart,count:this._pageBuffer.length}},Ie.switchToPage=function(Ye){var ht;if(!(ht=this._pageBuffer[Ye-this._pageBufferStart]))throw new Error("switchToPage("+Ye+") out of bounds, current buffer covers pages "+this._pageBufferStart+" to "+(this._pageBufferStart+this._pageBuffer.length-1));return this.page=ht},Ie.flushPages=function(){var Ye=this._pageBuffer;this._pageBuffer=[],this._pageBufferStart+=Ye.length;for(var kt,ht=H(Ye);!(kt=ht()).done;){var hi=kt.value;this.endPageMarkings(hi),hi.end()}},Ie.addNamedDestination=function(Ye){for(var ht=arguments.length,kt=new Array(ht>1?ht-1:0),hi=1;hij;j++)if((z||j in te)&&(Ce=P(oe=te[j],j,W),x))if(k)he[j]=Ce;else if(Ce)switch(x){case 3:return!0;case 5:return oe;case 6:return j;case 2:M(he,oe)}else switch(x){case 4:return!1;case 7:M(he,oe)}return S?-1:I||d?d:he}};T.exports={forEach:D(0),map:D(1),filter:D(2),some:D(3),every:D(4),find:D(5),findIndex:D(6),filterReject:D(7)}},91132:function(T,e,l){"use strict";var v=l(32010),h=l(38347),f=l(7081).PROPER,_=l(59754),b=l(81755),M=l(38688)("iterator"),D=v.Uint8Array,x=h(b.values),k=h(b.keys),Q=h(b.entries),I=_.aTypedArray,d=_.exportTypedArrayMethod,S=D&&D.prototype[M],R=!!S&&"values"===S.name,z=function(){return x(I(this))};d("entries",function(){return Q(I(this))}),d("keys",function(){return k(I(this))}),d("values",z,f&&!R),d(M,z,f&&!R)},91151:function(T,e,l){var h=l(38688)("match");T.exports=function(f){var _=/./;try{"/./"[f](_)}catch{try{return _[h]=!1,"/./"[f](_)}catch{}}return!1}},91159:function(T,e,l){var v=l(38347),h=l(83943),f=l(25096),_=/"/g,b=v("".replace);T.exports=function(y,M,D,x){var k=f(h(y)),Q="<"+M;return""!==D&&(Q+=" "+D+'="'+b(f(x),_,""")+'"'),Q+">"+k+""}},91780:function(T,e,l){"use strict";var v;l(39081),T.exports=(v=l(48352),l(51270),v.pad.Iso10126={pad:function(f,_){var b=4*_,y=b-f.sigBytes%b;f.concat(v.lib.WordArray.random(y-1)).concat(v.lib.WordArray.create([y<<24],1))},unpad:function(f){f.sigBytes-=255&f.words[f.sigBytes-1>>>2]}},v.pad.Iso10126)},91867:function(T){"use strict";function l(S){return"number"==typeof S||S instanceof Number}function h(S){return Array.isArray(S)}T.exports={isString:function e(S){return"string"==typeof S||S instanceof String},isNumber:l,isBoolean:function v(S){return"boolean"==typeof S},isArray:h,isFunction:function f(S){return"function"==typeof S},isObject:function _(S){return null!==S&&"object"==typeof S},isNull:function b(S){return null===S},isUndefined:function y(S){return void 0===S},isPositiveInteger:function M(S){return!(!l(S)||!Number.isInteger(S)||S<=0)},pack:function D(){for(var S={},R=0,z=arguments.length;R1?arguments[1]:void 0)})},92642:function(T,e,l){"use strict";var v=l(43162),h=l(74841),f=l(45495),_=Math.min;T.exports=[].copyWithin||function(y,M){var D=v(this),x=f(D),k=h(y,x),Q=h(M,x),I=arguments.length>2?arguments[2]:void 0,d=_((void 0===I?x:h(I,x))-Q,x-k),S=1;for(Q0;)Q in D?D[k]=D[Q]:delete D[k],k+=S,Q+=S;return D}},92920:function(T,e,l){"use strict";var v=l(72519),h=15,D=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],x=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],k=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Q=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];T.exports=function(d,S,R,z,q,Z,H,G){var _e,Ae,ve,ye,Oe,Fe,He,be,je,W=G.bits,te=0,P=0,J=0,j=0,re=0,he=0,oe=0,Ce=0,me=0,ze=0,ae=null,Ee=0,Ve=new v.Buf16(16),mt=new v.Buf16(16),St=null,oi=0;for(te=0;te<=h;te++)Ve[te]=0;for(P=0;P=1&&0===Ve[j];j--);if(re>j&&(re=j),0===j)return q[Z++]=20971520,q[Z++]=20971520,G.bits=1,0;for(J=1;J0&&(0===d||1!==j))return-1;for(mt[1]=0,te=1;te852||2===d&&me>592)return 1;for(;;){He=te-oe,H[P]Fe?(be=St[oi+H[P]],je=ae[Ee+H[P]]):(be=96,je=0),_e=1<>oe)+(Ae-=_e)]=He<<24|be<<16|je|0}while(0!==Ae);for(_e=1<>=1;if(0!==_e?(ze&=_e-1,ze+=_e):ze=0,P++,0==--Ve[te]){if(te===j)break;te=S[R+H[P]]}if(te>re&&(ze&ye)!==ve){for(0===oe&&(oe=re),Oe+=J,Ce=1<<(he=te-oe);he+oe852||2===d&&me>592)return 1;q[ve=ze&ye]=re<<24|he<<16|Oe-Z|0}}return 0!==ze&&(q[Oe+ze]=4194304|te-oe<<24),G.bits=re,0}},93143:function(T,e,l){"use strict";var v=l(9964);l(41584),l(81755),l(8953),l(14032),l(56912),l(73663),l(29883),l(35471),l(21012),l(88997),l(97464),l(2857),l(83326),l(94715),l(13624),l(91132),l(62514),l(24597),l(88042),l(4660),l(92451),l(44206),l(66288),l(13250),l(3858),l(84538),l(64793),l(74202),l(52529);var b,h=l(14598),f=h.Buffer,_={};for(b in h)h.hasOwnProperty(b)&&("SlowBuffer"===b||"Buffer"===b||(_[b]=h[b]));var y=_.Buffer={};for(b in f)f.hasOwnProperty(b)&&("allocUnsafe"===b||"allocUnsafeSlow"===b||(y[b]=f[b]));if(_.Buffer.prototype=f.prototype,(!y.from||y.from===Uint8Array.from)&&(y.from=function(M,D,x){if("number"==typeof M)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof M);if(M&&typeof M.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof M);return f(M,D,x)}),y.alloc||(y.alloc=function(M,D,x){if("number"!=typeof M)throw new TypeError('The "size" argument must be of type number. Received type '+typeof M);if(M<0||M>=2147483648)throw new RangeError('The value "'+M+'" is invalid for option "size"');var k=f(M);return D&&0!==D.length?"string"==typeof x?k.fill(D,x):k.fill(D):k.fill(0),k}),!_.kStringMaxLength)try{_.kStringMaxLength=v.binding("buffer").kStringMaxLength}catch{}_.constants||(_.constants={MAX_LENGTH:_.kMaxLength},_.kStringMaxLength&&(_.constants.MAX_STRING_LENGTH=_.kStringMaxLength)),T.exports=_},93415:function(T,e,l){"use strict";var v=l(14598).Buffer,h=l(48181);function f(_,b){this.pdfKitDoc=_,this.imageDictionary=b||{}}f.prototype.measureImage=function(_){var b,y=this;if(this.pdfKitDoc._imageRegistry[_])b=this.pdfKitDoc._imageRegistry[_];else{try{if(!(b=this.pdfKitDoc.openImage(function D(x){var k=y.imageDictionary[x];if(!k)return x;if("object"==typeof k)throw"Not supported image definition: "+JSON.stringify(k);if(h.existsSync(k))return h.readFileSync(k);var Q=k.indexOf("base64,");return Q<0?y.imageDictionary[x]:v.from(k.substring(Q+7),"base64")}(_))))throw"No image"}catch(x){throw"Invalid image: "+x.toString()+"\nImages dictionary should contain dataURL entries (or local file paths in node.js)"}b.embed(this.pdfKitDoc),this.pdfKitDoc._imageRegistry[_]=b}var M={width:b.width,height:b.height};return b.orientation>4&&(M={width:b.height,height:b.width}),M},T.exports=f},93666:function(T,e,l){var v=l(32010),h=l(28831),f=v.TypeError;T.exports=function(_){if(h(_))throw f("The method doesn't accept regular expressions");return _}},93975:function(T,e,l){var v=l(38347),h=v({}.toString),f=v("".slice);T.exports=function(_){return f(h(_),8,-1)}},94119:function(T,e,l){"use strict";var v;T.exports=(v=l(48352),l(18909),l(14287),l(2256),l(66947),l(16190),l(68319),l(37146),l(66664),l(11905),l(51965),l(27772),l(16720),l(1239),l(4420),l(44130),l(82747),l(51270),l(62256),l(48306),l(65881),l(6564),l(29819),l(28164),l(91780),l(14623),l(85628),l(61807),l(73948),l(22956),l(24107),l(95086),l(6819),l(75891),l(73517),v)},94578:function(T){T.exports=function(e){return"function"==typeof e}},94712:function(T,e,l){var v=l(32010),h=l(23327),f=l(67797),_=l(81755),b=l(48914),y=l(38688),M=y("iterator"),D=y("toStringTag"),x=_.values,k=function(I,d){if(I){if(I[M]!==x)try{b(I,M,x)}catch{I[M]=x}if(I[D]||b(I,D,d),h[d])for(var S in _)if(I[S]!==_[S])try{b(I,S,_[S])}catch{I[S]=_[S]}}};for(var Q in h)k(v[Q]&&v[Q].prototype,Q);k(f,"DOMTokenList")},94715:function(T,e,l){"use strict";var v=l(59754),h=l(12636).includes,f=v.aTypedArray;(0,v.exportTypedArrayMethod)("includes",function(y){return h(f(this),y,arguments.length>1?arguments[1]:void 0)})},94845:function(T,e,l){"use strict";var v=l(56475),h=l(38347),f=l(7514),_=l(98086),b=l(81007),y=h([].join),M=f!=Object,D=b("join",",");v({target:"Array",proto:!0,forced:M||!D},{join:function(k){return y(_(this),void 0===k?",":k)}})},94910:function(T,e,l){"use strict";var v=l(56475),h=l(32010),f=l(70176),_=l(69548),b=l(3840),y=l(2675),M=l(10819),D=l(48914),x=l(97841),k=l(34074),Q=l(87811),I=l(80383),d=l(86392),S=l(45144),R=h.Error,z=[].push,q=function(G,W){var te=f(Z,this)?this:M(Z),P=arguments.length>2?arguments[2]:void 0;b&&(te=b(new R(void 0),_(te))),D(te,"message",d(W,"")),S&&D(te,"stack",k(te.stack,1)),Q(te,P);var J=[];return I(G,z,{that:J}),D(te,"errors",J),te};b?b(q,R):y(q,R);var Z=q.prototype=M(R.prototype,{constructor:x(1,q),message:x(1,""),name:x(1,"AggregateError")});v({global:!0},{AggregateError:q})},95053:function(T,e,l){var v=l(93975),h=l(32010);T.exports="process"==v(h.process)},95086:function(T,e,l){"use strict";var v;l(14032),l(68067),T.exports=(v=l(48352),l(66947),l(68319),l(82747),l(51270),function(){var h=v,_=h.lib.StreamCipher,b=h.algo,y=b.RC4=_.extend({_doReset:function(){for(var k=this._key,Q=k.words,I=k.sigBytes,d=this._S=[],S=0;S<256;S++)d[S]=S;S=0;for(var R=0;S<256;S++){var z=S%I,Z=d[S];d[S]=d[R=(R+d[S]+(Q[z>>>2]>>>24-z%4*8&255))%256],d[R]=Z}this._i=this._j=0},_doProcessBlock:function(k,Q){k[Q]^=M.call(this)},keySize:8,ivSize:0});function M(){for(var x=this._S,k=this._i,Q=this._j,I=0,d=0;d<4;d++){var S=x[k=(k+1)%256];x[k]=x[Q=(Q+x[k])%256],x[Q]=S,I|=x[(x[k]+x[Q])%256]<<24-8*d}return this._i=k,this._j=Q,I}h.RC4=_._createHelper(y);var D=b.RC4Drop=y.extend({cfg:y.cfg.extend({drop:192}),_doReset:function(){y._doReset.call(this);for(var k=this.cfg.drop;k>0;k--)M.call(this)}});h.RC4Drop=_._createHelper(D)}(),v.RC4)},95291:function(T,e,l){"use strict";var v=l(14598).Buffer;function h(k,Q){k.prototype=Object.create(Q.prototype),k.prototype.constructor=k,f(k,Q)}function f(k,Q){return(f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(I,d){return I.__proto__=d,I})(k,Q)}l(41584),l(20731),l(61726),l(46467);var _,b=l(9760),y=l(69591);try{_=l(54171)}catch{}var M=function(k){function Q(d){var S;return void 0===d&&(d=65536),(S=k.apply(this,arguments)||this).buffer=v.alloc(d),S.bufferOffset=0,S.pos=0,S}h(Q,k);var I=Q.prototype;return I._read=function(){},I.ensure=function(S){if(this.bufferOffset+S>this.buffer.length)return this.flush()},I.flush=function(){if(this.bufferOffset>0)return this.push(v.from(this.buffer.slice(0,this.bufferOffset))),this.bufferOffset=0},I.writeBuffer=function(S){return this.flush(),this.push(S),this.pos+=S.length},I.writeString=function(S,R){switch(void 0===R&&(R="ascii"),R){case"utf16le":case"ucs2":case"utf8":case"ascii":return this.writeBuffer(v.from(S,R));case"utf16be":for(var z=v.from(S,"utf16le"),q=0,Z=z.length-1;q>>16&255,this.buffer[this.bufferOffset++]=S>>>8&255,this.buffer[this.bufferOffset++]=255&S,this.pos+=3},I.writeUInt24LE=function(S){return this.ensure(3),this.buffer[this.bufferOffset++]=255&S,this.buffer[this.bufferOffset++]=S>>>8&255,this.buffer[this.bufferOffset++]=S>>>16&255,this.pos+=3},I.writeInt24BE=function(S){return this.writeUInt24BE(S>=0?S:S+16777215+1)},I.writeInt24LE=function(S){return this.writeUInt24LE(S>=0?S:S+16777215+1)},I.fill=function(S,R){if(R2&&arguments[2])||f)&&(h?v(y,"name",M,!0,!0):v(y,"name",M)),y}},95717:function(T,e,l){"use strict";var v=l(32010),h=l(25567),f=l(2834),_=l(43162),b=l(97738),y=l(89564),M=l(20884),D=l(45495),x=l(38639),k=l(15892),Q=l(13872),I=v.Array;T.exports=function(S){var R=_(S),z=M(this),q=arguments.length,Z=q>1?arguments[1]:void 0,H=void 0!==Z;H&&(Z=h(Z,q>2?arguments[2]:void 0));var te,P,J,j,re,he,G=Q(R),W=0;if(!G||this==I&&y(G))for(te=D(R),P=z?new this(te):I(te);te>W;W++)he=H?Z(R[W],W):R[W],x(P,W,he);else for(re=(j=k(R,G)).next,P=z?new this:[];!(J=f(re,j)).done;W++)he=H?b(j,Z,[J.value,W],!0):J.value,x(P,W,he);return P.length=W,P}},95756:function(T,e,l){l(98828)("Int32",function(h){return function(_,b,y){return h(this,_,b,y)}})},95892:function(T,e,l){var v=l(32010),h=l(15567),f=l(18904),_=l(34984),b=l(63918),y=v.TypeError,M=Object.defineProperty;e.f=h?M:function(x,k,Q){if(_(x),k=b(k),_(Q),f)try{return M(x,k,Q)}catch{}if("get"in Q||"set"in Q)throw y("Accessors not supported");return"value"in Q&&(x[k]=Q.value),x}},96395:function(T){"use strict";T.exports=function(h,f){var _,b,y,M,D,x,k,Q,I,d,S,R,z,q,Z,H,G,W,te,P,J,j,re,he,oe;he=h.input,y=(b=h.next_in)+(h.avail_in-5),oe=h.output,D=(M=h.next_out)-(f-h.avail_out),x=M+(h.avail_out-257),k=(_=h.state).dmax,Q=_.wsize,I=_.whave,d=_.wnext,S=_.window,R=_.hold,z=_.bits,q=_.lencode,Z=_.distcode,H=(1<<_.lenbits)-1,G=(1<<_.distbits)-1;e:do{z<15&&(R+=he[b++]<>>=te=W>>>24,z-=te,0==(te=W>>>16&255))oe[M++]=65535&W;else{if(!(16&te)){if(64&te){if(32&te){_.mode=12;break e}h.msg="invalid literal/length code",_.mode=30;break e}W=q[(65535&W)+(R&(1<>>=te,z-=te),z<15&&(R+=he[b++]<>>=te=W>>>24,z-=te,16&(te=W>>>16&255)){if(J=65535&W,z<(te&=15)&&(R+=he[b++]<k){h.msg="invalid distance too far back",_.mode=30;break e}if(R>>>=te,z-=te,J>(te=M-D)){if((te=J-te)>I&&_.sane){h.msg="invalid distance too far back",_.mode=30;break e}if(j=0,re=S,0===d){if(j+=Q-te,te2;)oe[M++]=re[j++],oe[M++]=re[j++],oe[M++]=re[j++],P-=3;P&&(oe[M++]=re[j++],P>1&&(oe[M++]=re[j++]))}else{j=M-J;do{oe[M++]=oe[j++],oe[M++]=oe[j++],oe[M++]=oe[j++],P-=3}while(P>2);P&&(oe[M++]=oe[j++],P>1&&(oe[M++]=oe[j++]))}break}if(64&te){h.msg="invalid distance code",_.mode=30;break e}W=Z[(65535&W)+(R&(1<>3)<<3))-1,h.next_in=b-=P,h.next_out=M,h.avail_in=b1?arguments[1]:void 0)})},97514:function(T,e,l){"use strict";var v=l(56475),h=l(91102).find,f=l(71156),_="find",b=!0;_ in[]&&Array(1)[_](function(){b=!1}),v({target:"Array",proto:!0,forced:b},{find:function(M){return h(this,M,arguments.length>1?arguments[1]:void 0)}}),f(_)},97738:function(T,e,l){var v=l(34984),h=l(50194);T.exports=function(f,_,b,y){try{return y?_(v(b)[0],b[1]):_(b)}catch(M){h(f,"throw",M)}}},97739:function(T,e,l){var v=l(47044),f=l(32010).RegExp;T.exports=v(function(){var _=f("(?b)","g");return"b"!==_.exec("b").groups.a||"bc"!=="b".replace(_,"$c")})},97841:function(T){T.exports=function(e,l){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:l}}},98086:function(T,e,l){var v=l(7514),h=l(83943);T.exports=function(f){return v(h(f))}},98168:function(T,e,l){var v=l(90780);l(84151),l(98443),l(49261),l(67858),T.exports=v},98197:function(T,e){function l(h){this.buffer=h,this.pos=0}function v(h){this.buffer=h,this.pos=0}l.prototype.read=function(h,f,_){this.pos+_>this.buffer.length&&(_=this.buffer.length-this.pos);for(var b=0;b<_;b++)h[f+b]=this.buffer[this.pos+b];return this.pos+=_,_},e.z=l,v.prototype.write=function(h,f){if(this.pos+f>this.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(h.subarray(0,f),this.pos),this.pos+=f,f},e.y=v},98443:function(T,e,l){l(77074)},98527:function(T,e,l){"use strict";var v=l(77802),h=l(26601),f=l(63249),_=l(89636),b=l(3534),y=h(_(),Object);v(y,{getPolyfill:_,implementation:f,shim:b}),T.exports=y},98578:function(T,e,l){var v=l(32010),h=l(59113),f=l(20884),_=l(24517),y=l(38688)("species"),M=v.Array;T.exports=function(D){var x;return h(D)&&(f(x=D.constructor)&&(x===M||h(x.prototype))||_(x)&&null===(x=x[y]))&&(x=void 0),void 0===x?M:x}},98828:function(T,e,l){"use strict";var v=l(56475),h=l(32010),f=l(2834),_=l(15567),b=l(28834),y=l(59754),M=l(83124),D=l(2868),x=l(97841),k=l(48914),Q=l(17506),I=l(23417),d=l(71265),S=l(80670),R=l(63918),z=l(20340),q=l(52564),Z=l(24517),H=l(46290),G=l(10819),W=l(70176),te=l(3840),P=l(6611).f,J=l(83590),j=l(91102).forEach,re=l(51334),he=l(95892),oe=l(72062),Ce=l(70172),me=l(51868),ze=Ce.get,_e=Ce.set,Ae=he.f,ve=oe.f,ye=Math.round,Oe=h.RangeError,ae=M.ArrayBuffer,Ee=ae.prototype,Fe=M.DataView,Ve=y.NATIVE_ARRAY_BUFFER_VIEWS,mt=y.TYPED_ARRAY_CONSTRUCTOR,St=y.TYPED_ARRAY_TAG,oi=y.TypedArray,He=y.TypedArrayPrototype,be=y.aTypedArrayConstructor,je=y.isTypedArray,Ke="BYTES_PER_ELEMENT",_t="Wrong length",Nt=function(vt,Qt){be(vt);for(var qe=0,ke=Qt.length,it=new vt(ke);ke>qe;)it[qe]=Qt[qe++];return it},ut=function(vt,Qt){Ae(vt,Qt,{get:function(){return ze(this)[Qt]}})},et=function(vt){var Qt;return W(Ee,vt)||"ArrayBuffer"==(Qt=q(vt))||"SharedArrayBuffer"==Qt},Xe=function(vt,Qt){return je(vt)&&!H(Qt)&&Qt in vt&&Q(+Qt)&&Qt>=0},It=function(Qt,qe){return qe=R(qe),Xe(Qt,qe)?x(2,Qt[qe]):ve(Qt,qe)},Dt=function(Qt,qe,ke){return qe=R(qe),!(Xe(Qt,qe)&&Z(ke)&&z(ke,"value"))||z(ke,"get")||z(ke,"set")||ke.configurable||z(ke,"writable")&&!ke.writable||z(ke,"enumerable")&&!ke.enumerable?Ae(Qt,qe,ke):(Qt[qe]=ke.value,Qt)};_?(Ve||(oe.f=It,he.f=Dt,ut(He,"buffer"),ut(He,"byteOffset"),ut(He,"byteLength"),ut(He,"length")),v({target:"Object",stat:!0,forced:!Ve},{getOwnPropertyDescriptor:It,defineProperty:Dt}),T.exports=function(vt,Qt,qe){var ke=vt.match(/\d+$/)[0]/8,it=vt+(qe?"Clamped":"")+"Array",gt="get"+vt,ai="set"+vt,Rt=h[it],Gt=Rt,zt=Gt&&Gt.prototype,mi={},Ht=function(dt,ge){Ae(dt,ge,{get:function(){return function(dt,ge){var Se=ze(dt);return Se.view[gt](ge*ke+Se.byteOffset,!0)}(this,ge)},set:function(Se){return function(dt,ge,Se){var ct=ze(dt);qe&&(Se=(Se=ye(Se))<0?0:Se>255?255:255&Se),ct.view[ai](ge*ke+ct.byteOffset,Se,!0)}(this,ge,Se)},enumerable:!0})};Ve?b&&(Gt=Qt(function(dt,ge,Se,ct){return D(dt,zt),me(Z(ge)?et(ge)?void 0!==ct?new Rt(ge,S(Se,ke),ct):void 0!==Se?new Rt(ge,S(Se,ke)):new Rt(ge):je(ge)?Nt(Gt,ge):f(J,Gt,ge):new Rt(d(ge)),dt,Gt)}),te&&te(Gt,oi),j(P(Rt),function(dt){dt in Gt||k(Gt,dt,Rt[dt])}),Gt.prototype=zt):(Gt=Qt(function(dt,ge,Se,ct){D(dt,zt);var Kt,on,Ge,Zt=0,rt=0;if(Z(ge)){if(!et(ge))return je(ge)?Nt(Gt,ge):f(J,Gt,ge);Kt=ge,rt=S(Se,ke);var _i=ge.byteLength;if(void 0===ct){if(_i%ke||(on=_i-rt)<0)throw Oe(_t)}else if((on=I(ct)*ke)+rt>_i)throw Oe(_t);Ge=on/ke}else Ge=d(ge),Kt=new ae(on=Ge*ke);for(_e(dt,{buffer:Kt,byteOffset:rt,byteLength:on,length:Ge,view:new Fe(Kt)});Zt>>1:h>>>1;f[_]=h}return f}();T.exports=function v(h,f,_,b){var y=l,M=b+_;h^=-1;for(var D=b;D>>8^y[255&(h^f[D])];return-1^h}},99129:function(T){"use strict";T.exports=JSON.parse('{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}')},99757:function(T,e,l){"use strict";function v(y,M){y.prototype=Object.create(M.prototype),y.prototype.constructor=y,h(y,M)}function h(y,M){return(h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(D,x){return D.__proto__=x,D})(y,M)}l(14032);var f=l(88152);T.exports=function(y){function M(x,k){var Q;return void 0===k&&(k={}),(Q=y.call(this)||this).type=x,Q.versions=k,"string"==typeof x&&(Q.versionPath=x.split(".")),Q}v(M,y);var D=M.prototype;return D.decode=function(k,Q,I){void 0===I&&(I=0);var d=this._setup(k,Q,I);d.version="string"==typeof this.type?function(M,D){return D.reduce(function(x,k){return x&&x[k]},M)}(Q,this.versionPath):this.type.decode(k),this.versions.header&&this._parseFields(k,d,this.versions.header);var S=this.versions[d.version];if(null==S)throw new Error("Unknown version "+d.version);return S instanceof M?S.decode(k,Q):(this._parseFields(k,d,S),null!=this.process&&this.process.call(d,k),d)},D.size=function(k,Q,I){var d,S;if(void 0===I&&(I=!0),!k)throw new Error("Not a fixed size");var R={parent:Q,val:k,pointerSize:0},z=0;if("string"!=typeof this.type&&(z+=this.type.size(k.version,R)),this.versions.header)for(d in this.versions.header)null!=(S=this.versions.header[d]).size&&(z+=S.size(k[d],R));var q=this.versions[k.version];if(null==q)throw new Error("Unknown version "+k.version);for(d in q)null!=(S=q[d]).size&&(z+=S.size(k[d],R));return I&&(z+=R.pointerSize),z},D.encode=function(k,Q,I){var d,S;null!=this.preEncode&&this.preEncode.call(Q,k);var R={pointers:[],startOffset:k.pos,parent:I,val:Q,pointerSize:0};if(R.pointerOffset=k.pos+this.size(Q,R,!1),"string"!=typeof this.type&&this.type.encode(k,Q.version),this.versions.header)for(d in this.versions.header)null!=(S=this.versions.header[d]).encode&&S.encode(k,Q[d],R);var z=this.versions[Q.version];for(d in z)null!=(S=z[d]).encode&&S.encode(k,Q[d],R);for(var q=0;q{"use strict";ce.d(Pt,{X:()=>K});var V=ce(8645);class K extends V.x{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const l=super._subscribe(e);return!l.closed&&e.next(this._value),l}getValue(){const{hasError:e,thrownError:l,_value:v}=this;if(e)throw l;return this._throwIfClosed(),v}next(e){super.next(this._value=e)}}},5592:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{y:()=>f});var V=ce(305),K=ce(7394),T=ce(4850),e=ce(8407),l=ce(2653),v=ce(4674),h=ce(1441);let f=(()=>{class M{constructor(x){x&&(this._subscribe=x)}lift(x){const k=new M;return k.source=this,k.operator=x,k}subscribe(x,k,Q){const I=function y(M){return M&&M instanceof V.Lv||function b(M){return M&&(0,v.m)(M.next)&&(0,v.m)(M.error)&&(0,v.m)(M.complete)}(M)&&(0,K.Nn)(M)}(x)?x:new V.Hp(x,k,Q);return(0,h.x)(()=>{const{operator:d,source:S}=this;I.add(d?d.call(I,S):S?this._subscribe(I):this._trySubscribe(I))}),I}_trySubscribe(x){try{return this._subscribe(x)}catch(k){x.error(k)}}forEach(x,k){return new(k=_(k))((Q,I)=>{const d=new V.Hp({next:S=>{try{x(S)}catch(R){I(R),d.unsubscribe()}},error:I,complete:Q});this.subscribe(d)})}_subscribe(x){var k;return null===(k=this.source)||void 0===k?void 0:k.subscribe(x)}[T.L](){return this}pipe(...x){return(0,e.U)(x)(this)}toPromise(x){return new(x=_(x))((k,Q)=>{let I;this.subscribe(d=>I=d,d=>Q(d),()=>k(I))})}}return M.create=D=>new M(D),M})();function _(M){var D;return null!==(D=M??l.config.Promise)&&void 0!==D?D:Promise}},7328:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{t:()=>T});var V=ce(8645),K=ce(4552);class T extends V.x{constructor(l=1/0,v=1/0,h=K.l){super(),this._bufferSize=l,this._windowTime=v,this._timestampProvider=h,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=v===1/0,this._bufferSize=Math.max(1,l),this._windowTime=Math.max(1,v)}next(l){const{isStopped:v,_buffer:h,_infiniteTimeWindow:f,_timestampProvider:_,_windowTime:b}=this;v||(h.push(l),!f&&h.push(_.now()+b)),this._trimBuffer(),super.next(l)}_subscribe(l){this._throwIfClosed(),this._trimBuffer();const v=this._innerSubscribe(l),{_infiniteTimeWindow:h,_buffer:f}=this,_=f.slice();for(let b=0;b<_.length&&!l.closed;b+=h?1:2)l.next(_[b]);return this._checkFinalizedStatuses(l),v}_trimBuffer(){const{_bufferSize:l,_timestampProvider:v,_buffer:h,_infiniteTimeWindow:f}=this,_=(f?1:2)*l;if(l<1/0&&_{"use strict";ce.d(Pt,{x:()=>h});var V=ce(5592),K=ce(7394);const e=(0,ce(2306).d)(_=>function(){_(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var l=ce(9039),v=ce(1441);let h=(()=>{class _ extends V.y{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(y){const M=new f(this,this);return M.operator=y,M}_throwIfClosed(){if(this.closed)throw new e}next(y){(0,v.x)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const M of this.currentObservers)M.next(y)}})}error(y){(0,v.x)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=y;const{observers:M}=this;for(;M.length;)M.shift().error(y)}})}complete(){(0,v.x)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:y}=this;for(;y.length;)y.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var y;return(null===(y=this.observers)||void 0===y?void 0:y.length)>0}_trySubscribe(y){return this._throwIfClosed(),super._trySubscribe(y)}_subscribe(y){return this._throwIfClosed(),this._checkFinalizedStatuses(y),this._innerSubscribe(y)}_innerSubscribe(y){const{hasError:M,isStopped:D,observers:x}=this;return M||D?K.Lc:(this.currentObservers=null,x.push(y),new K.w0(()=>{this.currentObservers=null,(0,l.P)(x,y)}))}_checkFinalizedStatuses(y){const{hasError:M,thrownError:D,isStopped:x}=this;M?y.error(D):x&&y.complete()}asObservable(){const y=new V.y;return y.source=this,y}}return _.create=(b,y)=>new f(b,y),_})();class f extends h{constructor(b,y){super(),this.destination=b,this.source=y}next(b){var y,M;null===(M=null===(y=this.destination)||void 0===y?void 0:y.next)||void 0===M||M.call(y,b)}error(b){var y,M;null===(M=null===(y=this.destination)||void 0===y?void 0:y.error)||void 0===M||M.call(y,b)}complete(){var b,y;null===(y=null===(b=this.destination)||void 0===b?void 0:b.complete)||void 0===y||y.call(b)}_subscribe(b){var y,M;return null!==(M=null===(y=this.source)||void 0===y?void 0:y.subscribe(b))&&void 0!==M?M:K.Lc}}},305:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Hp:()=>Q,Lv:()=>M});var V=ce(4674),K=ce(7394),T=ce(2653),e=ce(3894),l=ce(2420);const v=_("C",void 0,void 0);function _(z,q,Z){return{kind:z,value:q,error:Z}}var b=ce(7599),y=ce(1441);class M extends K.w0{constructor(q){super(),this.isStopped=!1,q?(this.destination=q,(0,K.Nn)(q)&&q.add(this)):this.destination=R}static create(q,Z,H){return new Q(q,Z,H)}next(q){this.isStopped?S(function f(z){return _("N",z,void 0)}(q),this):this._next(q)}error(q){this.isStopped?S(function h(z){return _("E",void 0,z)}(q),this):(this.isStopped=!0,this._error(q))}complete(){this.isStopped?S(v,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(q){this.destination.next(q)}_error(q){try{this.destination.error(q)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const D=Function.prototype.bind;function x(z,q){return D.call(z,q)}class k{constructor(q){this.partialObserver=q}next(q){const{partialObserver:Z}=this;if(Z.next)try{Z.next(q)}catch(H){I(H)}}error(q){const{partialObserver:Z}=this;if(Z.error)try{Z.error(q)}catch(H){I(H)}else I(q)}complete(){const{partialObserver:q}=this;if(q.complete)try{q.complete()}catch(Z){I(Z)}}}class Q extends M{constructor(q,Z,H){let G;if(super(),(0,V.m)(q)||!q)G={next:q??void 0,error:Z??void 0,complete:H??void 0};else{let W;this&&T.config.useDeprecatedNextContext?(W=Object.create(q),W.unsubscribe=()=>this.unsubscribe(),G={next:q.next&&x(q.next,W),error:q.error&&x(q.error,W),complete:q.complete&&x(q.complete,W)}):G=q}this.destination=new k(G)}}function I(z){T.config.useDeprecatedSynchronousErrorHandling?(0,y.O)(z):(0,e.h)(z)}function S(z,q){const{onStoppedNotification:Z}=T.config;Z&&b.z.setTimeout(()=>Z(z,q))}const R={closed:!0,next:l.Z,error:function d(z){throw z},complete:l.Z}},7394:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Lc:()=>v,w0:()=>l,Nn:()=>h});var V=ce(4674);const T=(0,ce(2306).d)(_=>function(y){_(this),this.message=y?`${y.length} errors occurred during unsubscription:\n${y.map((M,D)=>`${D+1}) ${M.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=y});var e=ce(9039);class l{constructor(b){this.initialTeardown=b,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let b;if(!this.closed){this.closed=!0;const{_parentage:y}=this;if(y)if(this._parentage=null,Array.isArray(y))for(const x of y)x.remove(this);else y.remove(this);const{initialTeardown:M}=this;if((0,V.m)(M))try{M()}catch(x){b=x instanceof T?x.errors:[x]}const{_finalizers:D}=this;if(D){this._finalizers=null;for(const x of D)try{f(x)}catch(k){b=b??[],k instanceof T?b=[...b,...k.errors]:b.push(k)}}if(b)throw new T(b)}}add(b){var y;if(b&&b!==this)if(this.closed)f(b);else{if(b instanceof l){if(b.closed||b._hasParent(this))return;b._addParent(this)}(this._finalizers=null!==(y=this._finalizers)&&void 0!==y?y:[]).push(b)}}_hasParent(b){const{_parentage:y}=this;return y===b||Array.isArray(y)&&y.includes(b)}_addParent(b){const{_parentage:y}=this;this._parentage=Array.isArray(y)?(y.push(b),y):y?[y,b]:b}_removeParent(b){const{_parentage:y}=this;y===b?this._parentage=null:Array.isArray(y)&&(0,e.P)(y,b)}remove(b){const{_finalizers:y}=this;y&&(0,e.P)(y,b),b instanceof l&&b._removeParent(this)}}l.EMPTY=(()=>{const _=new l;return _.closed=!0,_})();const v=l.EMPTY;function h(_){return _ instanceof l||_&&"closed"in _&&(0,V.m)(_.remove)&&(0,V.m)(_.add)&&(0,V.m)(_.unsubscribe)}function f(_){(0,V.m)(_)?_():_.unsubscribe()}},2653:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{config:()=>V});const V={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},708:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{n:()=>K});var V=ce(6973);function K(T,e){const l="object"==typeof e;return new Promise((v,h)=>{let _,f=!1;T.subscribe({next:b=>{_=b,f=!0},error:h,complete:()=>{f?v(_):l?v(e.defaultValue):h(new V.K)}})})}},5211:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{z:()=>l});var V=ce(7537),T=ce(9940),e=ce(7715);function l(...v){return function K(){return(0,V.J)(1)}()((0,e.D)(v,(0,T.yG)(v)))}},4911:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{P:()=>T});var V=ce(5592),K=ce(4829);function T(e){return new V.y(l=>{(0,K.Xf)(e()).subscribe(l)})}},6232:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{E:()=>K,c:()=>T});var V=ce(5592);const K=new V.y(l=>l.complete());function T(l){return l?function e(l){return new V.y(v=>l.schedule(()=>v.complete()))}(l):K}},9315:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{D:()=>f});var V=ce(5592),K=ce(7453),T=ce(4829),e=ce(9940),l=ce(8251),v=ce(7400),h=ce(2714);function f(..._){const b=(0,e.jO)(_),{args:y,keys:M}=(0,K.D)(_),D=new V.y(x=>{const{length:k}=y;if(!k)return void x.complete();const Q=new Array(k);let I=k,d=k;for(let S=0;S{R||(R=!0,d--),Q[S]=z},()=>I--,void 0,()=>{(!I||!R)&&(d||x.next(M?(0,h.n)(M,Q):Q),x.complete())}))}});return b?D.pipe((0,v.Z)(b)):D}},7715:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{D:()=>H});var V=ce(4829),K=ce(7103),T=ce(9360),e=ce(8251);function l(G,W=0){return(0,T.e)((te,P)=>{te.subscribe((0,e.x)(P,J=>(0,K.f)(P,G,()=>P.next(J),W),()=>(0,K.f)(P,G,()=>P.complete(),W),J=>(0,K.f)(P,G,()=>P.error(J),W)))})}function v(G,W=0){return(0,T.e)((te,P)=>{P.add(G.schedule(()=>te.subscribe(P),W))})}var _=ce(5592),y=ce(4971),M=ce(4674);function x(G,W){if(!G)throw new Error("Iterable cannot be null");return new _.y(te=>{(0,K.f)(te,W,()=>{const P=G[Symbol.asyncIterator]();(0,K.f)(te,W,()=>{P.next().then(J=>{J.done?te.complete():te.next(J.value)})},0,!0)})})}var k=ce(8382),Q=ce(4026),I=ce(4266),d=ce(3664),S=ce(5726),R=ce(9853),z=ce(541);function H(G,W){return W?function Z(G,W){if(null!=G){if((0,k.c)(G))return function h(G,W){return(0,V.Xf)(G).pipe(v(W),l(W))}(G,W);if((0,I.z)(G))return function b(G,W){return new _.y(te=>{let P=0;return W.schedule(function(){P===G.length?te.complete():(te.next(G[P++]),te.closed||this.schedule())})})}(G,W);if((0,Q.t)(G))return function f(G,W){return(0,V.Xf)(G).pipe(v(W),l(W))}(G,W);if((0,S.D)(G))return x(G,W);if((0,d.T)(G))return function D(G,W){return new _.y(te=>{let P;return(0,K.f)(te,W,()=>{P=G[y.h](),(0,K.f)(te,W,()=>{let J,j;try{({value:J,done:j}=P.next())}catch(re){return void te.error(re)}j?te.complete():te.next(J)},0,!0)}),()=>(0,M.m)(P?.return)&&P.return()})}(G,W);if((0,z.L)(G))return function q(G,W){return x((0,z.Q)(G),W)}(G,W)}throw(0,R.z)(G)}(G,W):(0,V.Xf)(G)}},4829:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Xf:()=>D});var V=ce(7582),K=ce(4266),T=ce(4026),e=ce(5592),l=ce(8382),v=ce(5726),h=ce(9853),f=ce(3664),_=ce(541),b=ce(4674),y=ce(3894),M=ce(4850);function D(z){if(z instanceof e.y)return z;if(null!=z){if((0,l.c)(z))return function x(z){return new e.y(q=>{const Z=z[M.L]();if((0,b.m)(Z.subscribe))return Z.subscribe(q);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(z);if((0,K.z)(z))return function k(z){return new e.y(q=>{for(let Z=0;Z{z.then(Z=>{q.closed||(q.next(Z),q.complete())},Z=>q.error(Z)).then(null,y.h)})}(z);if((0,v.D)(z))return d(z);if((0,f.T)(z))return function I(z){return new e.y(q=>{for(const Z of z)if(q.next(Z),q.closed)return;q.complete()})}(z);if((0,_.L)(z))return function S(z){return d((0,_.Q)(z))}(z)}throw(0,h.z)(z)}function d(z){return new e.y(q=>{(function R(z,q){var Z,H,G,W;return(0,V.mG)(this,void 0,void 0,function*(){try{for(Z=(0,V.KL)(z);!(H=yield Z.next()).done;)if(q.next(H.value),q.closed)return}catch(te){G={error:te}}finally{try{H&&!H.done&&(W=Z.return)&&(yield W.call(Z))}finally{if(G)throw G.error}}q.complete()})})(z,q).catch(Z=>q.error(Z))})}},3019:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{T:()=>v});var V=ce(7537),K=ce(4829),T=ce(6232),e=ce(9940),l=ce(7715);function v(...h){const f=(0,e.yG)(h),_=(0,e._6)(h,1/0),b=h;return b.length?1===b.length?(0,K.Xf)(b[0]):(0,V.J)(_)((0,l.D)(b,f)):T.E}},2096:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{of:()=>T});var V=ce(9940),K=ce(7715);function T(...e){const l=(0,V.yG)(e);return(0,K.D)(e,l)}},4825:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{H:()=>l});var V=ce(5592),K=ce(6321),T=ce(671);function l(v=0,h,f=K.P){let _=-1;return null!=h&&((0,T.K)(h)?f=h:_=h),new V.y(b=>{let y=function e(v){return v instanceof Date&&!isNaN(v)}(v)?+v-f.now():v;y<0&&(y=0);let M=0;return f.schedule(function(){b.closed||(b.next(M++),0<=_?this.schedule(void 0,_):b.complete())},y)})}},8251:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{x:()=>K});var V=ce(305);function K(e,l,v,h,f){return new T(e,l,v,h,f)}class T extends V.Lv{constructor(l,v,h,f,_,b){super(l),this.onFinalize=_,this.shouldUnsubscribe=b,this._next=v?function(y){try{v(y)}catch(M){l.error(M)}}:super._next,this._error=f?function(y){try{f(y)}catch(M){l.error(M)}finally{this.unsubscribe()}}:super._error,this._complete=h?function(){try{h()}catch(y){l.error(y)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var l;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:v}=this;super.unsubscribe(),!v&&(null===(l=this.onFinalize)||void 0===l||l.call(this))}}}},6328:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{b:()=>T});var V=ce(1631),K=ce(4674);function T(e,l){return(0,K.m)(l)?(0,V.z)(e,l,1):(0,V.z)(e,1)}},3620:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{b:()=>e});var V=ce(6321),K=ce(9360),T=ce(8251);function e(l,v=V.z){return(0,K.e)((h,f)=>{let _=null,b=null,y=null;const M=()=>{if(_){_.unsubscribe(),_=null;const x=b;b=null,f.next(x)}};function D(){const x=y+l,k=v.now();if(k{b=x,y=v.now(),_||(_=v.schedule(D,l),f.add(_))},()=>{M(),f.complete()},void 0,()=>{b=_=null}))})}},3997:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{x:()=>e});var V=ce(2737),K=ce(9360),T=ce(8251);function e(v,h=V.y){return v=v??l,(0,K.e)((f,_)=>{let b,y=!0;f.subscribe((0,T.x)(_,M=>{const D=h(M);(y||!v(b,D))&&(y=!1,b=D,_.next(M))}))})}function l(v,h){return v===h}},2181:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{h:()=>T});var V=ce(9360),K=ce(8251);function T(e,l){return(0,V.e)((v,h)=>{let f=0;v.subscribe((0,K.x)(h,_=>e.call(l,_,f++)&&h.next(_)))})}},4716:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{x:()=>K});var V=ce(9360);function K(T){return(0,V.e)((e,l)=>{try{e.subscribe(l)}finally{l.add(T)}})}},7398:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{U:()=>T});var V=ce(9360),K=ce(8251);function T(e,l){return(0,V.e)((v,h)=>{let f=0;v.subscribe((0,K.x)(h,_=>{h.next(e.call(l,_,f++))}))})}},7537:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{J:()=>T});var V=ce(1631),K=ce(2737);function T(e=1/0){return(0,V.z)(K.y,e)}},1631:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{z:()=>f});var V=ce(7398),K=ce(4829),T=ce(9360),e=ce(7103),l=ce(8251),h=ce(4674);function f(_,b,y=1/0){return(0,h.m)(b)?f((M,D)=>(0,V.U)((x,k)=>b(M,x,D,k))((0,K.Xf)(_(M,D))),y):("number"==typeof b&&(y=b),(0,T.e)((M,D)=>function v(_,b,y,M,D,x,k,Q){const I=[];let d=0,S=0,R=!1;const z=()=>{R&&!I.length&&!d&&b.complete()},q=H=>d{x&&b.next(H),d++;let G=!1;(0,K.Xf)(y(H,S++)).subscribe((0,l.x)(b,W=>{D?.(W),x?q(W):b.next(W)},()=>{G=!0},void 0,()=>{if(G)try{for(d--;I.length&&dZ(W)):Z(W)}z()}catch(W){b.error(W)}}))};return _.subscribe((0,l.x)(b,q,()=>{R=!0,z()})),()=>{Q?.()}}(M,D,_,y)))}},3020:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{B:()=>l});var V=ce(4829),K=ce(8645),T=ce(305),e=ce(9360);function l(h={}){const{connector:f=(()=>new K.x),resetOnError:_=!0,resetOnComplete:b=!0,resetOnRefCountZero:y=!0}=h;return M=>{let D,x,k,Q=0,I=!1,d=!1;const S=()=>{x?.unsubscribe(),x=void 0},R=()=>{S(),D=k=void 0,I=d=!1},z=()=>{const q=D;R(),q?.unsubscribe()};return(0,e.e)((q,Z)=>{Q++,!d&&!I&&S();const H=k=k??f();Z.add(()=>{Q--,0===Q&&!d&&!I&&(x=v(z,y))}),H.subscribe(Z),!D&&Q>0&&(D=new T.Hp({next:G=>H.next(G),error:G=>{d=!0,S(),x=v(R,_,G),H.error(G)},complete:()=>{I=!0,S(),x=v(R,b),H.complete()}}),(0,V.Xf)(q).subscribe(D))})(M)}}function v(h,f,..._){if(!0===f)return void h();if(!1===f)return;const b=new T.Hp({next:()=>{b.unsubscribe(),h()}});return(0,V.Xf)(f(..._)).subscribe(b)}},7081:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{d:()=>T});var V=ce(7328),K=ce(3020);function T(e,l,v){let h,f=!1;return e&&"object"==typeof e?({bufferSize:h=1/0,windowTime:l=1/0,refCount:f=!1,scheduler:v}=e):h=e??1/0,(0,K.B)({connector:()=>new V.t(h,l,v),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:f})}},4664:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{w:()=>e});var V=ce(4829),K=ce(9360),T=ce(8251);function e(l,v){return(0,K.e)((h,f)=>{let _=null,b=0,y=!1;const M=()=>y&&!_&&f.complete();h.subscribe((0,T.x)(f,D=>{_?.unsubscribe();let x=0;const k=b++;(0,V.Xf)(l(D,k)).subscribe(_=(0,T.x)(f,Q=>f.next(v?v(D,Q,k,x++):Q),()=>{_=null,M()}))},()=>{y=!0,M()}))})}},8180:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{q:()=>e});var V=ce(6232),K=ce(9360),T=ce(8251);function e(l){return l<=0?()=>V.E:(0,K.e)((v,h)=>{let f=0;v.subscribe((0,T.x)(h,_=>{++f<=l&&(h.next(_),l<=f&&h.complete())}))})}},9773:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{R:()=>l});var V=ce(9360),K=ce(8251),T=ce(4829),e=ce(2420);function l(v){return(0,V.e)((h,f)=>{(0,T.Xf)(v).subscribe((0,K.x)(f,()=>f.complete(),e.Z)),!f.closed&&h.subscribe(f)})}},3225:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{o:()=>l});var V=ce(7394);class K extends V.w0{constructor(h,f){super()}schedule(h,f=0){return this}}const T={setInterval(v,h,...f){const{delegate:_}=T;return _?.setInterval?_.setInterval(v,h,...f):setInterval(v,h,...f)},clearInterval(v){const{delegate:h}=T;return(h?.clearInterval||clearInterval)(v)},delegate:void 0};var e=ce(9039);class l extends K{constructor(h,f){super(h,f),this.scheduler=h,this.work=f,this.pending=!1}schedule(h,f=0){var _;if(this.closed)return this;this.state=h;const b=this.id,y=this.scheduler;return null!=b&&(this.id=this.recycleAsyncId(y,b,f)),this.pending=!0,this.delay=f,this.id=null!==(_=this.id)&&void 0!==_?_:this.requestAsyncId(y,this.id,f),this}requestAsyncId(h,f,_=0){return T.setInterval(h.flush.bind(h,this),_)}recycleAsyncId(h,f,_=0){if(null!=_&&this.delay===_&&!1===this.pending)return f;null!=f&&T.clearInterval(f)}execute(h,f){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const _=this._execute(h,f);if(_)return _;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(h,f){let b,_=!1;try{this.work(h)}catch(y){_=!0,b=y||new Error("Scheduled action threw falsy error")}if(_)return this.unsubscribe(),b}unsubscribe(){if(!this.closed){const{id:h,scheduler:f}=this,{actions:_}=f;this.work=this.state=this.scheduler=null,this.pending=!1,(0,e.P)(_,this),null!=h&&(this.id=this.recycleAsyncId(f,h,null)),this.delay=null,super.unsubscribe()}}}},2631:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{v:()=>T});var V=ce(4552);class K{constructor(l,v=K.now){this.schedulerActionCtor=l,this.now=v}schedule(l,v=0,h){return new this.schedulerActionCtor(this,l).schedule(h,v)}}K.now=V.l.now;class T extends K{constructor(l,v=K.now){super(l,v),this.actions=[],this._active=!1}flush(l){const{actions:v}=this;if(this._active)return void v.push(l);let h;this._active=!0;do{if(h=l.execute(l.state,l.delay))break}while(l=v.shift());if(this._active=!1,h){for(;l=v.shift();)l.unsubscribe();throw h}}}},6321:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{P:()=>e,z:()=>T});var V=ce(3225);const T=new(ce(2631).v)(V.o),e=T},4552:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{l:()=>V});const V={now:()=>(V.delegate||Date).now(),delegate:void 0}},7599:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{z:()=>V});const V={setTimeout(K,T,...e){const{delegate:l}=V;return l?.setTimeout?l.setTimeout(K,T,...e):setTimeout(K,T,...e)},clearTimeout(K){const{delegate:T}=V;return(T?.clearTimeout||clearTimeout)(K)},delegate:void 0}},4971:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{h:()=>K});const K=function V(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},4850:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{L:()=>V});const V="function"==typeof Symbol&&Symbol.observable||"@@observable"},6973:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{K:()=>K});const K=(0,ce(2306).d)(T=>function(){T(this),this.name="EmptyError",this.message="no elements in sequence"})},9940:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{_6:()=>v,jO:()=>e,yG:()=>l});var V=ce(4674),K=ce(671);function T(h){return h[h.length-1]}function e(h){return(0,V.m)(T(h))?h.pop():void 0}function l(h){return(0,K.K)(T(h))?h.pop():void 0}function v(h,f){return"number"==typeof T(h)?h.pop():f}},7453:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{D:()=>l});const{isArray:V}=Array,{getPrototypeOf:K,prototype:T,keys:e}=Object;function l(h){if(1===h.length){const f=h[0];if(V(f))return{args:f,keys:null};if(function v(h){return h&&"object"==typeof h&&K(h)===T}(f)){const _=e(f);return{args:_.map(b=>f[b]),keys:_}}}return{args:h,keys:null}}},9039:(ni,Pt,ce)=>{"use strict";function V(K,T){if(K){const e=K.indexOf(T);0<=e&&K.splice(e,1)}}ce.d(Pt,{P:()=>V})},2306:(ni,Pt,ce)=>{"use strict";function V(K){const e=K(l=>{Error.call(l),l.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}ce.d(Pt,{d:()=>V})},2714:(ni,Pt,ce)=>{"use strict";function V(K,T){return K.reduce((e,l,v)=>(e[l]=T[v],e),{})}ce.d(Pt,{n:()=>V})},1441:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{O:()=>e,x:()=>T});var V=ce(2653);let K=null;function T(l){if(V.config.useDeprecatedSynchronousErrorHandling){const v=!K;if(v&&(K={errorThrown:!1,error:null}),l(),v){const{errorThrown:h,error:f}=K;if(K=null,h)throw f}}else l()}function e(l){V.config.useDeprecatedSynchronousErrorHandling&&K&&(K.errorThrown=!0,K.error=l)}},7103:(ni,Pt,ce)=>{"use strict";function V(K,T,e,l=0,v=!1){const h=T.schedule(function(){e(),v?K.add(this.schedule(null,l)):this.unsubscribe()},l);if(K.add(h),!v)return h}ce.d(Pt,{f:()=>V})},2737:(ni,Pt,ce)=>{"use strict";function V(K){return K}ce.d(Pt,{y:()=>V})},4266:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{z:()=>V});const V=K=>K&&"number"==typeof K.length&&"function"!=typeof K},5726:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{D:()=>K});var V=ce(4674);function K(T){return Symbol.asyncIterator&&(0,V.m)(T?.[Symbol.asyncIterator])}},4674:(ni,Pt,ce)=>{"use strict";function V(K){return"function"==typeof K}ce.d(Pt,{m:()=>V})},8382:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{c:()=>T});var V=ce(4850),K=ce(4674);function T(e){return(0,K.m)(e[V.L])}},3664:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{T:()=>T});var V=ce(4971),K=ce(4674);function T(e){return(0,K.m)(e?.[V.h])}},2664:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{b:()=>T});var V=ce(5592),K=ce(4674);function T(e){return!!e&&(e instanceof V.y||(0,K.m)(e.lift)&&(0,K.m)(e.subscribe))}},4026:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{t:()=>K});var V=ce(4674);function K(T){return(0,V.m)(T?.then)}},541:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{L:()=>e,Q:()=>T});var V=ce(7582),K=ce(4674);function T(l){return(0,V.FC)(this,arguments,function*(){const h=l.getReader();try{for(;;){const{value:f,done:_}=yield(0,V.qq)(h.read());if(_)return yield(0,V.qq)(void 0);yield yield(0,V.qq)(f)}}finally{h.releaseLock()}})}function e(l){return(0,K.m)(l?.getReader)}},671:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{K:()=>K});var V=ce(4674);function K(T){return T&&(0,V.m)(T.schedule)}},9360:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{A:()=>K,e:()=>T});var V=ce(4674);function K(e){return(0,V.m)(e?.lift)}function T(e){return l=>{if(K(l))return l.lift(function(v){try{return e(v,this)}catch(h){this.error(h)}});throw new TypeError("Unable to lift unknown Observable type")}}},7400:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Z:()=>e});var V=ce(7398);const{isArray:K}=Array;function e(l){return(0,V.U)(v=>function T(l,v){return K(v)?l(...v):l(v)}(l,v))}},2420:(ni,Pt,ce)=>{"use strict";function V(){}ce.d(Pt,{Z:()=>V})},8407:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{U:()=>T,z:()=>K});var V=ce(2737);function K(...e){return T(e)}function T(e){return 0===e.length?V.y:1===e.length?e[0]:function(v){return e.reduce((h,f)=>f(h),v)}}},3894:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{h:()=>T});var V=ce(2653),K=ce(7599);function T(e){K.z.setTimeout(()=>{const{onUnhandledError:l}=V.config;if(!l)throw e;l(e)})}},9853:(ni,Pt,ce)=>{"use strict";function V(K){return new TypeError(`You provided ${null!==K&&"object"==typeof K?"an invalid object":`'${K}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}ce.d(Pt,{z:()=>V})},1471:ni=>{function Pt(V,K,T){V.addEventListener("wheel",K,T)}ni.exports=Pt,ni.exports.addWheelListener=Pt,ni.exports.removeWheelListener=function ce(V,K,T){V.removeEventListener("wheel",K,T)}},6700:(ni,Pt,ce)=>{var V={"./af":3274,"./af.js":3274,"./ar":2097,"./ar-dz":1867,"./ar-dz.js":1867,"./ar-kw":7078,"./ar-kw.js":7078,"./ar-ly":7776,"./ar-ly.js":7776,"./ar-ma":6789,"./ar-ma.js":6789,"./ar-ps":3807,"./ar-ps.js":3807,"./ar-sa":6897,"./ar-sa.js":6897,"./ar-tn":1585,"./ar-tn.js":1585,"./ar.js":2097,"./az":5611,"./az.js":5611,"./be":2459,"./be.js":2459,"./bg":1825,"./bg.js":1825,"./bm":5918,"./bm.js":5918,"./bn":4065,"./bn-bd":9683,"./bn-bd.js":9683,"./bn.js":4065,"./bo":1034,"./bo.js":1034,"./br":7671,"./br.js":7671,"./bs":8153,"./bs.js":8153,"./ca":4287,"./ca.js":4287,"./cs":2616,"./cs.js":2616,"./cv":7049,"./cv.js":7049,"./cy":9172,"./cy.js":9172,"./da":605,"./da.js":605,"./de":4013,"./de-at":3395,"./de-at.js":3395,"./de-ch":9835,"./de-ch.js":9835,"./de.js":4013,"./dv":4570,"./dv.js":4570,"./el":1859,"./el.js":1859,"./en-au":5785,"./en-au.js":5785,"./en-ca":3792,"./en-ca.js":3792,"./en-gb":7651,"./en-gb.js":7651,"./en-ie":1929,"./en-ie.js":1929,"./en-il":9818,"./en-il.js":9818,"./en-in":6612,"./en-in.js":6612,"./en-nz":4900,"./en-nz.js":4900,"./en-sg":2721,"./en-sg.js":2721,"./eo":5159,"./eo.js":5159,"./es":1954,"./es-do":1780,"./es-do.js":1780,"./es-mx":3468,"./es-mx.js":3468,"./es-us":4938,"./es-us.js":4938,"./es.js":1954,"./et":1453,"./et.js":1453,"./eu":4697,"./eu.js":4697,"./fa":2900,"./fa.js":2900,"./fi":9775,"./fi.js":9775,"./fil":4282,"./fil.js":4282,"./fo":4236,"./fo.js":4236,"./fr":9361,"./fr-ca":2830,"./fr-ca.js":2830,"./fr-ch":1412,"./fr-ch.js":1412,"./fr.js":9361,"./fy":6984,"./fy.js":6984,"./ga":3961,"./ga.js":3961,"./gd":8849,"./gd.js":8849,"./gl":4273,"./gl.js":4273,"./gom-deva":623,"./gom-deva.js":623,"./gom-latn":2696,"./gom-latn.js":2696,"./gu":6928,"./gu.js":6928,"./he":4804,"./he.js":4804,"./hi":3015,"./hi.js":3015,"./hr":7134,"./hr.js":7134,"./hu":670,"./hu.js":670,"./hy-am":4523,"./hy-am.js":4523,"./id":9233,"./id.js":9233,"./is":4693,"./is.js":4693,"./it":3936,"./it-ch":8118,"./it-ch.js":8118,"./it.js":3936,"./ja":6871,"./ja.js":6871,"./jv":8710,"./jv.js":8710,"./ka":7125,"./ka.js":7125,"./kk":2461,"./kk.js":2461,"./km":7399,"./km.js":7399,"./kn":8720,"./kn.js":8720,"./ko":5306,"./ko.js":5306,"./ku":2995,"./ku-kmr":4852,"./ku-kmr.js":4852,"./ku.js":2995,"./ky":8779,"./ky.js":8779,"./lb":2057,"./lb.js":2057,"./lo":7192,"./lo.js":7192,"./lt":5430,"./lt.js":5430,"./lv":3363,"./lv.js":3363,"./me":2939,"./me.js":2939,"./mi":8212,"./mi.js":8212,"./mk":9718,"./mk.js":9718,"./ml":561,"./ml.js":561,"./mn":8929,"./mn.js":8929,"./mr":4880,"./mr.js":4880,"./ms":3193,"./ms-my":2074,"./ms-my.js":2074,"./ms.js":3193,"./mt":4082,"./mt.js":4082,"./my":2261,"./my.js":2261,"./nb":5273,"./nb.js":5273,"./ne":9874,"./ne.js":9874,"./nl":1667,"./nl-be":1484,"./nl-be.js":1484,"./nl.js":1667,"./nn":7262,"./nn.js":7262,"./oc-lnc":9679,"./oc-lnc.js":9679,"./pa-in":6830,"./pa-in.js":6830,"./pl":3616,"./pl.js":3616,"./pt":5138,"./pt-br":2751,"./pt-br.js":2751,"./pt.js":5138,"./ro":7968,"./ro.js":7968,"./ru":1828,"./ru.js":1828,"./sd":2188,"./sd.js":2188,"./se":6562,"./se.js":6562,"./si":7172,"./si.js":7172,"./sk":9966,"./sk.js":9966,"./sl":7520,"./sl.js":7520,"./sq":5291,"./sq.js":5291,"./sr":450,"./sr-cyrl":7603,"./sr-cyrl.js":7603,"./sr.js":450,"./ss":383,"./ss.js":383,"./sv":7221,"./sv.js":7221,"./sw":1743,"./sw.js":1743,"./ta":6351,"./ta.js":6351,"./te":9620,"./te.js":9620,"./tet":6278,"./tet.js":6278,"./tg":6987,"./tg.js":6987,"./th":9325,"./th.js":9325,"./tk":3485,"./tk.js":3485,"./tl-ph":8148,"./tl-ph.js":8148,"./tlh":9616,"./tlh.js":9616,"./tr":4040,"./tr.js":4040,"./tzl":594,"./tzl.js":594,"./tzm":673,"./tzm-latn":3226,"./tzm-latn.js":3226,"./tzm.js":673,"./ug-cn":9580,"./ug-cn.js":9580,"./uk":7270,"./uk.js":7270,"./ur":1656,"./ur.js":1656,"./uz":8364,"./uz-latn":8744,"./uz-latn.js":8744,"./uz.js":8364,"./vi":5049,"./vi.js":5049,"./x-pseudo":5106,"./x-pseudo.js":5106,"./yo":6199,"./yo.js":6199,"./zh-cn":7280,"./zh-cn.js":7280,"./zh-hk":6860,"./zh-hk.js":6860,"./zh-mo":2335,"./zh-mo.js":2335,"./zh-tw":482,"./zh-tw.js":482};function K(e){var l=T(e);return ce(l)}function T(e){if(!ce.o(V,e)){var l=new Error("Cannot find module '"+e+"'");throw l.code="MODULE_NOT_FOUND",l}return V[e]}K.keys=function(){return Object.keys(V)},K.resolve=T,ni.exports=K,K.id=6700},3101:ni=>{"use strict";ni.exports=function Pt(K){!function V(K){if(!K)throw new Error("Eventify cannot use falsy object as events subject");const T=["on","fire","off"];for(let e=0;e"u")return T=Object.create(null),K;if(T[e])if("function"!=typeof l)delete T[e];else{const v=T[e];for(let h=0;h1&&(v=Array.prototype.slice.call(arguments,1));for(let h=0;h{"use strict";ce.d(Pt,{F4:()=>b,IO:()=>k,LC:()=>K,SB:()=>_,X$:()=>e,ZE:()=>d,ZN:()=>I,_j:()=>V,eR:()=>y,jt:()=>l,k1:()=>S,l3:()=>T,oB:()=>f,pV:()=>D,ru:()=>v,vP:()=>h});class V{}class K{}const T="*";function e(R,z){return{type:7,name:R,definitions:z,options:{}}}function l(R,z=null){return{type:4,styles:z,timings:R}}function v(R,z=null){return{type:3,steps:R,options:z}}function h(R,z=null){return{type:2,steps:R,options:z}}function f(R){return{type:6,styles:R,offset:null}}function _(R,z,q){return{type:0,name:R,styles:z,options:q}}function b(R){return{type:5,steps:R}}function y(R,z,q=null){return{type:1,expr:R,animation:z,options:q}}function D(R=null){return{type:9,options:R}}function k(R,z,q=null){return{type:11,selector:R,animation:z,options:q}}class I{constructor(z=0,q=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=z+q}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(z=>z()),this._onDoneFns=[])}onStart(z){this._originalOnStartFns.push(z),this._onStartFns.push(z)}onDone(z){this._originalOnDoneFns.push(z),this._onDoneFns.push(z)}onDestroy(z){this._onDestroyFns.push(z)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(z=>z()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(z=>z()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(z){this._position=this.totalTime?z*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(z){const q="start"==z?this._onStartFns:this._onDoneFns;q.forEach(Z=>Z()),q.length=0}}class d{constructor(z){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=z;let q=0,Z=0,H=0;const G=this.players.length;0==G?queueMicrotask(()=>this._onFinish()):this.players.forEach(W=>{W.onDone(()=>{++q==G&&this._onFinish()}),W.onDestroy(()=>{++Z==G&&this._onDestroy()}),W.onStart(()=>{++H==G&&this._onStart()})}),this.totalTime=this.players.reduce((W,te)=>Math.max(W,te.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(z=>z()),this._onDoneFns=[])}init(){this.players.forEach(z=>z.init())}onStart(z){this._onStartFns.push(z)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(z=>z()),this._onStartFns=[])}onDone(z){this._onDoneFns.push(z)}onDestroy(z){this._onDestroyFns.push(z)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(z=>z.play())}pause(){this.players.forEach(z=>z.pause())}restart(){this.players.forEach(z=>z.restart())}finish(){this._onFinish(),this.players.forEach(z=>z.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(z=>z.destroy()),this._onDestroyFns.forEach(z=>z()),this._onDestroyFns=[])}reset(){this.players.forEach(z=>z.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(z){const q=z*this.totalTime;this.players.forEach(Z=>{const H=Z.totalTime?Math.min(1,q/Z.totalTime):1;Z.setPosition(H)})}getPosition(){const z=this.players.reduce((q,Z)=>null===q||Z.totalTime>q.totalTime?Z:q,null);return null!=z?z.getPosition():0}beforeDestroy(){this.players.forEach(z=>{z.beforeDestroy&&z.beforeDestroy()})}triggerCallback(z){const q="start"==z?this._onStartFns:this._onDoneFns;q.forEach(Z=>Z()),q.length=0}}const S="!"},6814:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Do:()=>Q,ED:()=>$t,EM:()=>Un,HT:()=>e,JF:()=>vr,K0:()=>v,Mx:()=>Wn,NF:()=>Ii,Nd:()=>qa,O5:()=>Pe,Ov:()=>jn,PC:()=>hn,PM:()=>en,RF:()=>xt,S$:()=>D,V_:()=>f,Ye:()=>I,b0:()=>k,bD:()=>Ye,ez:()=>Ne,mk:()=>ar,n9:()=>li,q:()=>T,sg:()=>Ai,tP:()=>Ci,uU:()=>xr,w_:()=>l});var V=ce(5879);let K=null;function T(){return K}function e(Re){K||(K=Re)}class l{}const v=new V.OlP("DocumentToken");let h=(()=>{class Re{historyGo(pt){throw new Error("Not implemented")}static{this.\u0275fac=function(Lt){return new(Lt||Re)}}static{this.\u0275prov=V.Yz7({token:Re,factory:function(){return(0,V.f3M)(_)},providedIn:"platform"})}}return Re})();const f=new V.OlP("Location Initialized");let _=(()=>{class Re extends h{constructor(){super(),this._doc=(0,V.f3M)(v),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return T().getBaseHref(this._doc)}onPopState(pt){const Lt=T().getGlobalEventTarget(this._doc,"window");return Lt.addEventListener("popstate",pt,!1),()=>Lt.removeEventListener("popstate",pt)}onHashChange(pt){const Lt=T().getGlobalEventTarget(this._doc,"window");return Lt.addEventListener("hashchange",pt,!1),()=>Lt.removeEventListener("hashchange",pt)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(pt){this._location.pathname=pt}pushState(pt,Lt,wi){this._history.pushState(pt,Lt,wi)}replaceState(pt,Lt,wi){this._history.replaceState(pt,Lt,wi)}forward(){this._history.forward()}back(){this._history.back()}historyGo(pt=0){this._history.go(pt)}getState(){return this._history.state}static{this.\u0275fac=function(Lt){return new(Lt||Re)}}static{this.\u0275prov=V.Yz7({token:Re,factory:function(){return new Re},providedIn:"platform"})}}return Re})();function b(Re,jt){if(0==Re.length)return jt;if(0==jt.length)return Re;let pt=0;return Re.endsWith("/")&&pt++,jt.startsWith("/")&&pt++,2==pt?Re+jt.substring(1):1==pt?Re+jt:Re+"/"+jt}function y(Re){const jt=Re.match(/#|\?|$/),pt=jt&&jt.index||Re.length;return Re.slice(0,pt-("/"===Re[pt-1]?1:0))+Re.slice(pt)}function M(Re){return Re&&"?"!==Re[0]?"?"+Re:Re}let D=(()=>{class Re{historyGo(pt){throw new Error("Not implemented")}static{this.\u0275fac=function(Lt){return new(Lt||Re)}}static{this.\u0275prov=V.Yz7({token:Re,factory:function(){return(0,V.f3M)(k)},providedIn:"root"})}}return Re})();const x=new V.OlP("appBaseHref");let k=(()=>{class Re extends D{constructor(pt,Lt){super(),this._platformLocation=pt,this._removeListenerFns=[],this._baseHref=Lt??this._platformLocation.getBaseHrefFromDOM()??(0,V.f3M)(v).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(pt){this._removeListenerFns.push(this._platformLocation.onPopState(pt),this._platformLocation.onHashChange(pt))}getBaseHref(){return this._baseHref}prepareExternalUrl(pt){return b(this._baseHref,pt)}path(pt=!1){const Lt=this._platformLocation.pathname+M(this._platformLocation.search),wi=this._platformLocation.hash;return wi&&pt?`${Lt}${wi}`:Lt}pushState(pt,Lt,wi,rn){const Bn=this.prepareExternalUrl(wi+M(rn));this._platformLocation.pushState(pt,Lt,Bn)}replaceState(pt,Lt,wi,rn){const Bn=this.prepareExternalUrl(wi+M(rn));this._platformLocation.replaceState(pt,Lt,Bn)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(pt=0){this._platformLocation.historyGo?.(pt)}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.LFG(h),V.LFG(x,8))}}static{this.\u0275prov=V.Yz7({token:Re,factory:Re.\u0275fac,providedIn:"root"})}}return Re})(),Q=(()=>{class Re extends D{constructor(pt,Lt){super(),this._platformLocation=pt,this._baseHref="",this._removeListenerFns=[],null!=Lt&&(this._baseHref=Lt)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(pt){this._removeListenerFns.push(this._platformLocation.onPopState(pt),this._platformLocation.onHashChange(pt))}getBaseHref(){return this._baseHref}path(pt=!1){let Lt=this._platformLocation.hash;return null==Lt&&(Lt="#"),Lt.length>0?Lt.substring(1):Lt}prepareExternalUrl(pt){const Lt=b(this._baseHref,pt);return Lt.length>0?"#"+Lt:Lt}pushState(pt,Lt,wi,rn){let Bn=this.prepareExternalUrl(wi+M(rn));0==Bn.length&&(Bn=this._platformLocation.pathname),this._platformLocation.pushState(pt,Lt,Bn)}replaceState(pt,Lt,wi,rn){let Bn=this.prepareExternalUrl(wi+M(rn));0==Bn.length&&(Bn=this._platformLocation.pathname),this._platformLocation.replaceState(pt,Lt,Bn)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(pt=0){this._platformLocation.historyGo?.(pt)}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.LFG(h),V.LFG(x,8))}}static{this.\u0275prov=V.Yz7({token:Re,factory:Re.\u0275fac})}}return Re})(),I=(()=>{class Re{constructor(pt){this._subject=new V.vpe,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=pt;const Lt=this._locationStrategy.getBaseHref();this._basePath=function z(Re){if(new RegExp("^(https?:)?//").test(Re)){const[,pt]=Re.split(/\/\/[^\/]+/);return pt}return Re}(y(R(Lt))),this._locationStrategy.onPopState(wi=>{this._subject.emit({url:this.path(!0),pop:!0,state:wi.state,type:wi.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(pt=!1){return this.normalize(this._locationStrategy.path(pt))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(pt,Lt=""){return this.path()==this.normalize(pt+M(Lt))}normalize(pt){return Re.stripTrailingSlash(function S(Re,jt){if(!Re||!jt.startsWith(Re))return jt;const pt=jt.substring(Re.length);return""===pt||["/",";","?","#"].includes(pt[0])?pt:jt}(this._basePath,R(pt)))}prepareExternalUrl(pt){return pt&&"/"!==pt[0]&&(pt="/"+pt),this._locationStrategy.prepareExternalUrl(pt)}go(pt,Lt="",wi=null){this._locationStrategy.pushState(wi,"",pt,Lt),this._notifyUrlChangeListeners(this.prepareExternalUrl(pt+M(Lt)),wi)}replaceState(pt,Lt="",wi=null){this._locationStrategy.replaceState(wi,"",pt,Lt),this._notifyUrlChangeListeners(this.prepareExternalUrl(pt+M(Lt)),wi)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(pt=0){this._locationStrategy.historyGo?.(pt)}onUrlChange(pt){return this._urlChangeListeners.push(pt),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(Lt=>{this._notifyUrlChangeListeners(Lt.url,Lt.state)})),()=>{const Lt=this._urlChangeListeners.indexOf(pt);this._urlChangeListeners.splice(Lt,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(pt="",Lt){this._urlChangeListeners.forEach(wi=>wi(pt,Lt))}subscribe(pt,Lt,wi){return this._subject.subscribe({next:pt,error:Lt,complete:wi})}static{this.normalizeQueryParams=M}static{this.joinWithSlash=b}static{this.stripTrailingSlash=y}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.LFG(D))}}static{this.\u0275prov=V.Yz7({token:Re,factory:function(){return function d(){return new I((0,V.LFG)(D))}()},providedIn:"root"})}}return Re})();function R(Re){return Re.replace(/\/index.html$/,"")}var G=function(Re){return Re[Re.Format=0]="Format",Re[Re.Standalone=1]="Standalone",Re}(G||{}),W=function(Re){return Re[Re.Narrow=0]="Narrow",Re[Re.Abbreviated=1]="Abbreviated",Re[Re.Wide=2]="Wide",Re[Re.Short=3]="Short",Re}(W||{}),te=function(Re){return Re[Re.Short=0]="Short",Re[Re.Medium=1]="Medium",Re[Re.Long=2]="Long",Re[Re.Full=3]="Full",Re}(te||{}),P=function(Re){return Re[Re.Decimal=0]="Decimal",Re[Re.Group=1]="Group",Re[Re.List=2]="List",Re[Re.PercentSign=3]="PercentSign",Re[Re.PlusSign=4]="PlusSign",Re[Re.MinusSign=5]="MinusSign",Re[Re.Exponential=6]="Exponential",Re[Re.SuperscriptingExponent=7]="SuperscriptingExponent",Re[Re.PerMille=8]="PerMille",Re[Re.Infinity=9]="Infinity",Re[Re.NaN=10]="NaN",Re[Re.TimeSeparator=11]="TimeSeparator",Re[Re.CurrencyDecimal=12]="CurrencyDecimal",Re[Re.CurrencyGroup=13]="CurrencyGroup",Re}(P||{});function _e(Re,jt){return je((0,V.cg1)(Re)[V.wAp.DateFormat],jt)}function Ae(Re,jt){return je((0,V.cg1)(Re)[V.wAp.TimeFormat],jt)}function ve(Re,jt){return je((0,V.cg1)(Re)[V.wAp.DateTimeFormat],jt)}function ye(Re,jt){const pt=(0,V.cg1)(Re),Lt=pt[V.wAp.NumberSymbols][jt];if(typeof Lt>"u"){if(jt===P.CurrencyDecimal)return pt[V.wAp.NumberSymbols][P.Decimal];if(jt===P.CurrencyGroup)return pt[V.wAp.NumberSymbols][P.Group]}return Lt}function St(Re){if(!Re[V.wAp.ExtraData])throw new Error(`Missing extra locale data for the locale "${Re[V.wAp.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function je(Re,jt){for(let pt=jt;pt>-1;pt--)if(typeof Re[pt]<"u")return Re[pt];throw new Error("Locale data API: locale data undefined")}function Ke(Re){const[jt,pt]=Re.split(":");return{hours:+jt,minutes:+pt}}const et=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Xe={},It=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var Dt=function(Re){return Re[Re.Short=0]="Short",Re[Re.ShortGMT=1]="ShortGMT",Re[Re.Long=2]="Long",Re[Re.Extended=3]="Extended",Re}(Dt||{}),vt=function(Re){return Re[Re.FullYear=0]="FullYear",Re[Re.Month=1]="Month",Re[Re.Date=2]="Date",Re[Re.Hours=3]="Hours",Re[Re.Minutes=4]="Minutes",Re[Re.Seconds=5]="Seconds",Re[Re.FractionalSeconds=6]="FractionalSeconds",Re[Re.Day=7]="Day",Re}(vt||{}),Qt=function(Re){return Re[Re.DayPeriods=0]="DayPeriods",Re[Re.Days=1]="Days",Re[Re.Months=2]="Months",Re[Re.Eras=3]="Eras",Re}(Qt||{});function qe(Re,jt,pt,Lt){let wi=function qt(Re){if(Bt(Re))return Re;if("number"==typeof Re&&!isNaN(Re))return new Date(Re);if("string"==typeof Re){if(Re=Re.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Re)){const[wi,rn=1,Bn=1]=Re.split("-").map(Mr=>+Mr);return ke(wi,rn-1,Bn)}const pt=parseFloat(Re);if(!isNaN(Re-pt))return new Date(pt);let Lt;if(Lt=Re.match(et))return function tt(Re){const jt=new Date(0);let pt=0,Lt=0;const wi=Re[8]?jt.setUTCFullYear:jt.setFullYear,rn=Re[8]?jt.setUTCHours:jt.setHours;Re[9]&&(pt=Number(Re[9]+Re[10]),Lt=Number(Re[9]+Re[11])),wi.call(jt,Number(Re[1]),Number(Re[2])-1,Number(Re[3]));const Bn=Number(Re[4]||0)-pt,Mr=Number(Re[5]||0)-Lt,$o=Number(Re[6]||0),ua=Math.floor(1e3*parseFloat("0."+(Re[7]||0)));return rn.call(jt,Bn,Mr,$o,ua),jt}(Lt)}const jt=new Date(Re);if(!Bt(jt))throw new Error(`Unable to convert "${Re}" into a date`);return jt}(Re);jt=it(pt,jt)||jt;let Mr,Bn=[];for(;jt;){if(Mr=It.exec(jt),!Mr){Bn.push(jt);break}{Bn=Bn.concat(Mr.slice(1));const Vo=Bn.pop();if(!Vo)break;jt=Vo}}let $o=wi.getTimezoneOffset();Lt&&($o=on(Lt,$o),wi=function _i(Re,jt,pt){const Lt=pt?-1:1,wi=Re.getTimezoneOffset();return function Ge(Re,jt){return(Re=new Date(Re.getTime())).setMinutes(Re.getMinutes()+jt),Re}(Re,Lt*(on(jt,wi)-wi))}(wi,Lt,!0));let ua="";return Bn.forEach(Vo=>{const Ao=function Kt(Re){if(rt[Re])return rt[Re];let jt;switch(Re){case"G":case"GG":case"GGG":jt=mi(Qt.Eras,W.Abbreviated);break;case"GGGG":jt=mi(Qt.Eras,W.Wide);break;case"GGGGG":jt=mi(Qt.Eras,W.Narrow);break;case"y":jt=Gt(vt.FullYear,1,0,!1,!0);break;case"yy":jt=Gt(vt.FullYear,2,0,!0,!0);break;case"yyy":jt=Gt(vt.FullYear,3,0,!1,!0);break;case"yyyy":jt=Gt(vt.FullYear,4,0,!1,!0);break;case"Y":jt=Zt(1);break;case"YY":jt=Zt(2,!0);break;case"YYY":jt=Zt(3);break;case"YYYY":jt=Zt(4);break;case"M":case"L":jt=Gt(vt.Month,1,1);break;case"MM":case"LL":jt=Gt(vt.Month,2,1);break;case"MMM":jt=mi(Qt.Months,W.Abbreviated);break;case"MMMM":jt=mi(Qt.Months,W.Wide);break;case"MMMMM":jt=mi(Qt.Months,W.Narrow);break;case"LLL":jt=mi(Qt.Months,W.Abbreviated,G.Standalone);break;case"LLLL":jt=mi(Qt.Months,W.Wide,G.Standalone);break;case"LLLLL":jt=mi(Qt.Months,W.Narrow,G.Standalone);break;case"w":jt=ct(1);break;case"ww":jt=ct(2);break;case"W":jt=ct(1,!0);break;case"d":jt=Gt(vt.Date,1);break;case"dd":jt=Gt(vt.Date,2);break;case"c":case"cc":jt=Gt(vt.Day,1);break;case"ccc":jt=mi(Qt.Days,W.Abbreviated,G.Standalone);break;case"cccc":jt=mi(Qt.Days,W.Wide,G.Standalone);break;case"ccccc":jt=mi(Qt.Days,W.Narrow,G.Standalone);break;case"cccccc":jt=mi(Qt.Days,W.Short,G.Standalone);break;case"E":case"EE":case"EEE":jt=mi(Qt.Days,W.Abbreviated);break;case"EEEE":jt=mi(Qt.Days,W.Wide);break;case"EEEEE":jt=mi(Qt.Days,W.Narrow);break;case"EEEEEE":jt=mi(Qt.Days,W.Short);break;case"a":case"aa":case"aaa":jt=mi(Qt.DayPeriods,W.Abbreviated);break;case"aaaa":jt=mi(Qt.DayPeriods,W.Wide);break;case"aaaaa":jt=mi(Qt.DayPeriods,W.Narrow);break;case"b":case"bb":case"bbb":jt=mi(Qt.DayPeriods,W.Abbreviated,G.Standalone,!0);break;case"bbbb":jt=mi(Qt.DayPeriods,W.Wide,G.Standalone,!0);break;case"bbbbb":jt=mi(Qt.DayPeriods,W.Narrow,G.Standalone,!0);break;case"B":case"BB":case"BBB":jt=mi(Qt.DayPeriods,W.Abbreviated,G.Format,!0);break;case"BBBB":jt=mi(Qt.DayPeriods,W.Wide,G.Format,!0);break;case"BBBBB":jt=mi(Qt.DayPeriods,W.Narrow,G.Format,!0);break;case"h":jt=Gt(vt.Hours,1,-12);break;case"hh":jt=Gt(vt.Hours,2,-12);break;case"H":jt=Gt(vt.Hours,1);break;case"HH":jt=Gt(vt.Hours,2);break;case"m":jt=Gt(vt.Minutes,1);break;case"mm":jt=Gt(vt.Minutes,2);break;case"s":jt=Gt(vt.Seconds,1);break;case"ss":jt=Gt(vt.Seconds,2);break;case"S":jt=Gt(vt.FractionalSeconds,1);break;case"SS":jt=Gt(vt.FractionalSeconds,2);break;case"SSS":jt=Gt(vt.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":jt=Qi(Dt.Short);break;case"ZZZZZ":jt=Qi(Dt.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":jt=Qi(Dt.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":jt=Qi(Dt.Long);break;default:return null}return rt[Re]=jt,jt}(Vo);ua+=Ao?Ao(wi,pt,$o):"''"===Vo?"'":Vo.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),ua}function ke(Re,jt,pt){const Lt=new Date(0);return Lt.setFullYear(Re,jt,pt),Lt.setHours(0,0,0),Lt}function it(Re,jt){const pt=function j(Re){return(0,V.cg1)(Re)[V.wAp.LocaleId]}(Re);if(Xe[pt]=Xe[pt]||{},Xe[pt][jt])return Xe[pt][jt];let Lt="";switch(jt){case"shortDate":Lt=_e(Re,te.Short);break;case"mediumDate":Lt=_e(Re,te.Medium);break;case"longDate":Lt=_e(Re,te.Long);break;case"fullDate":Lt=_e(Re,te.Full);break;case"shortTime":Lt=Ae(Re,te.Short);break;case"mediumTime":Lt=Ae(Re,te.Medium);break;case"longTime":Lt=Ae(Re,te.Long);break;case"fullTime":Lt=Ae(Re,te.Full);break;case"short":const wi=it(Re,"shortTime"),rn=it(Re,"shortDate");Lt=gt(ve(Re,te.Short),[wi,rn]);break;case"medium":const Bn=it(Re,"mediumTime"),Mr=it(Re,"mediumDate");Lt=gt(ve(Re,te.Medium),[Bn,Mr]);break;case"long":const $o=it(Re,"longTime"),ua=it(Re,"longDate");Lt=gt(ve(Re,te.Long),[$o,ua]);break;case"full":const Vo=it(Re,"fullTime"),Ao=it(Re,"fullDate");Lt=gt(ve(Re,te.Full),[Vo,Ao])}return Lt&&(Xe[pt][jt]=Lt),Lt}function gt(Re,jt){return jt&&(Re=Re.replace(/\{([^}]+)}/g,function(pt,Lt){return null!=jt&&Lt in jt?jt[Lt]:pt})),Re}function ai(Re,jt,pt="-",Lt,wi){let rn="";(Re<0||wi&&Re<=0)&&(wi?Re=1-Re:(Re=-Re,rn=pt));let Bn=String(Re);for(;Bn.length0||Mr>-pt)&&(Mr+=pt),Re===vt.Hours)0===Mr&&-12===pt&&(Mr=12);else if(Re===vt.FractionalSeconds)return function Rt(Re,jt){return ai(Re,3).substring(0,jt)}(Mr,jt);const $o=ye(Bn,P.MinusSign);return ai(Mr,jt,$o,Lt,wi)}}function mi(Re,jt,pt=G.Format,Lt=!1){return function(wi,rn){return function Zi(Re,jt,pt,Lt,wi,rn){switch(pt){case Qt.Months:return function oe(Re,jt,pt){const Lt=(0,V.cg1)(Re),rn=je([Lt[V.wAp.MonthsFormat],Lt[V.wAp.MonthsStandalone]],jt);return je(rn,pt)}(jt,wi,Lt)[Re.getMonth()];case Qt.Days:return function he(Re,jt,pt){const Lt=(0,V.cg1)(Re),rn=je([Lt[V.wAp.DaysFormat],Lt[V.wAp.DaysStandalone]],jt);return je(rn,pt)}(jt,wi,Lt)[Re.getDay()];case Qt.DayPeriods:const Bn=Re.getHours(),Mr=Re.getMinutes();if(rn){const ua=function oi(Re){const jt=(0,V.cg1)(Re);return St(jt),(jt[V.wAp.ExtraData][2]||[]).map(Lt=>"string"==typeof Lt?Ke(Lt):[Ke(Lt[0]),Ke(Lt[1])])}(jt),Vo=function He(Re,jt,pt){const Lt=(0,V.cg1)(Re);St(Lt);const rn=je([Lt[V.wAp.ExtraData][0],Lt[V.wAp.ExtraData][1]],jt)||[];return je(rn,pt)||[]}(jt,wi,Lt),Ao=ua.findIndex(ha=>{if(Array.isArray(ha)){const[ka,is]=ha,ic=Bn>=ka.hours&&Mr>=ka.minutes,Ol=Bn0?Math.floor(wi/60):Math.ceil(wi/60);switch(Re){case Dt.Short:return(wi>=0?"+":"")+ai(Bn,2,rn)+ai(Math.abs(wi%60),2,rn);case Dt.ShortGMT:return"GMT"+(wi>=0?"+":"")+ai(Bn,1,rn);case Dt.Long:return"GMT"+(wi>=0?"+":"")+ai(Bn,2,rn)+":"+ai(Math.abs(wi%60),2,rn);case Dt.Extended:return 0===Lt?"Z":(wi>=0?"+":"")+ai(Bn,2,rn)+":"+ai(Math.abs(wi%60),2,rn);default:throw new Error(`Unknown zone width "${Re}"`)}}}const Ht=0,dt=4;function Se(Re){return ke(Re.getFullYear(),Re.getMonth(),Re.getDate()+(dt-Re.getDay()))}function ct(Re,jt=!1){return function(pt,Lt){let wi;if(jt){const rn=new Date(pt.getFullYear(),pt.getMonth(),1).getDay()-1,Bn=pt.getDate();wi=1+Math.floor((Bn+rn)/7)}else{const rn=Se(pt),Bn=function ge(Re){const jt=ke(Re,Ht,1).getDay();return ke(Re,0,1+(jt<=dt?dt:dt+7)-jt)}(rn.getFullYear()),Mr=rn.getTime()-Bn.getTime();wi=1+Math.round(Mr/6048e5)}return ai(wi,Re,ye(Lt,P.MinusSign))}}function Zt(Re,jt=!1){return function(pt,Lt){return ai(Se(pt).getFullYear(),Re,ye(Lt,P.MinusSign),jt)}}const rt={};function on(Re,jt){Re=Re.replace(/:/g,"");const pt=Date.parse("Jan 01, 1970 00:00:00 "+Re)/6e4;return isNaN(pt)?jt:pt}function Bt(Re){return Re instanceof Date&&!isNaN(Re.valueOf())}function Wn(Re,jt){jt=encodeURIComponent(jt);for(const pt of Re.split(";")){const Lt=pt.indexOf("="),[wi,rn]=-1==Lt?[pt,""]:[pt.slice(0,Lt),pt.slice(Lt+1)];if(wi.trim()===jt)return decodeURIComponent(rn)}return null}const ro=/\s+/,Or=[];let ar=(()=>{class Re{constructor(pt,Lt,wi,rn){this._iterableDiffers=pt,this._keyValueDiffers=Lt,this._ngEl=wi,this._renderer=rn,this.initialClasses=Or,this.stateMap=new Map}set klass(pt){this.initialClasses=null!=pt?pt.trim().split(ro):Or}set ngClass(pt){this.rawClass="string"==typeof pt?pt.trim().split(ro):pt}ngDoCheck(){for(const Lt of this.initialClasses)this._updateState(Lt,!0);const pt=this.rawClass;if(Array.isArray(pt)||pt instanceof Set)for(const Lt of pt)this._updateState(Lt,!0);else if(null!=pt)for(const Lt of Object.keys(pt))this._updateState(Lt,!!pt[Lt]);this._applyStateDiff()}_updateState(pt,Lt){const wi=this.stateMap.get(pt);void 0!==wi?(wi.enabled!==Lt&&(wi.changed=!0,wi.enabled=Lt),wi.touched=!0):this.stateMap.set(pt,{enabled:Lt,changed:!0,touched:!0})}_applyStateDiff(){for(const pt of this.stateMap){const Lt=pt[0],wi=pt[1];wi.changed?(this._toggleClass(Lt,wi.enabled),wi.changed=!1):wi.touched||(wi.enabled&&this._toggleClass(Lt,!1),this.stateMap.delete(Lt)),wi.touched=!1}}_toggleClass(pt,Lt){(pt=pt.trim()).length>0&&pt.split(ro).forEach(wi=>{Lt?this._renderer.addClass(this._ngEl.nativeElement,wi):this._renderer.removeClass(this._ngEl.nativeElement,wi)})}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.ZZ4),V.Y36(V.aQg),V.Y36(V.SBq),V.Y36(V.Qsj))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0})}}return Re})();class ci{constructor(jt,pt,Lt,wi){this.$implicit=jt,this.ngForOf=pt,this.index=Lt,this.count=wi}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Ai=(()=>{class Re{set ngForOf(pt){this._ngForOf=pt,this._ngForOfDirty=!0}set ngForTrackBy(pt){this._trackByFn=pt}get ngForTrackBy(){return this._trackByFn}constructor(pt,Lt,wi){this._viewContainer=pt,this._template=Lt,this._differs=wi,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(pt){pt&&(this._template=pt)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const pt=this._ngForOf;!this._differ&&pt&&(this._differ=this._differs.find(pt).create(this.ngForTrackBy))}if(this._differ){const pt=this._differ.diff(this._ngForOf);pt&&this._applyChanges(pt)}}_applyChanges(pt){const Lt=this._viewContainer;pt.forEachOperation((wi,rn,Bn)=>{if(null==wi.previousIndex)Lt.createEmbeddedView(this._template,new ci(wi.item,this._ngForOf,-1,-1),null===Bn?void 0:Bn);else if(null==Bn)Lt.remove(null===rn?void 0:rn);else if(null!==rn){const Mr=Lt.get(rn);Lt.move(Mr,Bn),Vt(Mr,wi)}});for(let wi=0,rn=Lt.length;wi{Vt(Lt.get(wi.currentIndex),wi)})}static ngTemplateContextGuard(pt,Lt){return!0}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.s_b),V.Y36(V.Rgc),V.Y36(V.ZZ4))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}}return Re})();function Vt(Re,jt){Re.context.$implicit=jt.item}let Pe=(()=>{class Re{constructor(pt,Lt){this._viewContainer=pt,this._context=new ue,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=Lt}set ngIf(pt){this._context.$implicit=this._context.ngIf=pt,this._updateView()}set ngIfThen(pt){Me("ngIfThen",pt),this._thenTemplateRef=pt,this._thenViewRef=null,this._updateView()}set ngIfElse(pt){Me("ngIfElse",pt),this._elseTemplateRef=pt,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(pt,Lt){return!0}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.s_b),V.Y36(V.Rgc))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return Re})();class ue{constructor(){this.$implicit=null,this.ngIf=null}}function Me(Re,jt){if(jt&&!jt.createEmbeddedView)throw new Error(`${Re} must be a TemplateRef, but received '${(0,V.AaK)(jt)}'.`)}class lt{constructor(jt,pt){this._viewContainerRef=jt,this._templateRef=pt,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(jt){jt&&!this._created?this.create():!jt&&this._created&&this.destroy()}}let xt=(()=>{class Re{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(pt){this._ngSwitch=pt,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(pt){this._defaultViews.push(pt)}_matchCase(pt){const Lt=pt==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||Lt,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),Lt}_updateDefaultCases(pt){if(this._defaultViews.length>0&&pt!==this._defaultUsed){this._defaultUsed=pt;for(const Lt of this._defaultViews)Lt.enforceState(pt)}}static{this.\u0275fac=function(Lt){return new(Lt||Re)}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}}return Re})(),li=(()=>{class Re{constructor(pt,Lt,wi){this.ngSwitch=wi,wi._addCase(),this._view=new lt(pt,Lt)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.s_b),V.Y36(V.Rgc),V.Y36(xt,9))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}}return Re})(),$t=(()=>{class Re{constructor(pt,Lt,wi){wi._addDefault(new lt(pt,Lt))}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.s_b),V.Y36(V.Rgc),V.Y36(xt,9))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngSwitchDefault",""]],standalone:!0})}}return Re})(),hn=(()=>{class Re{constructor(pt,Lt,wi){this._ngEl=pt,this._differs=Lt,this._renderer=wi,this._ngStyle=null,this._differ=null}set ngStyle(pt){this._ngStyle=pt,!this._differ&&pt&&(this._differ=this._differs.find(pt).create())}ngDoCheck(){if(this._differ){const pt=this._differ.diff(this._ngStyle);pt&&this._applyChanges(pt)}}_setStyle(pt,Lt){const[wi,rn]=pt.split("."),Bn=-1===wi.indexOf("-")?void 0:V.JOm.DashCase;null!=Lt?this._renderer.setStyle(this._ngEl.nativeElement,wi,rn?`${Lt}${rn}`:Lt,Bn):this._renderer.removeStyle(this._ngEl.nativeElement,wi,Bn)}_applyChanges(pt){pt.forEachRemovedItem(Lt=>this._setStyle(Lt.key,null)),pt.forEachAddedItem(Lt=>this._setStyle(Lt.key,Lt.currentValue)),pt.forEachChangedItem(Lt=>this._setStyle(Lt.key,Lt.currentValue))}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.SBq),V.Y36(V.aQg),V.Y36(V.Qsj))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return Re})(),Ci=(()=>{class Re{constructor(pt){this._viewContainerRef=pt,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(pt){if(pt.ngTemplateOutlet||pt.ngTemplateOutletInjector){const Lt=this._viewContainerRef;if(this._viewRef&&Lt.remove(Lt.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:wi,ngTemplateOutletContext:rn,ngTemplateOutletInjector:Bn}=this;this._viewRef=Lt.createEmbeddedView(wi,rn,Bn?{injector:Bn}:void 0)}else this._viewRef=null}else this._viewRef&&pt.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.s_b))}}static{this.\u0275dir=V.lG2({type:Re,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[V.TTD]})}}return Re})();function nn(Re,jt){return new V.vHH(2100,!1)}class Cn{createSubscription(jt,pt){return(0,V.rg0)(()=>jt.subscribe({next:pt,error:Lt=>{throw Lt}}))}dispose(jt){(0,V.rg0)(()=>jt.unsubscribe())}}class Oi{createSubscription(jt,pt){return jt.then(pt,Lt=>{throw Lt})}dispose(jt){}}const $i=new Oi,In=new Cn;let jn=(()=>{class Re{constructor(pt){this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null,this._ref=pt}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(pt){return this._obj?pt!==this._obj?(this._dispose(),this.transform(pt)):this._latestValue:(pt&&this._subscribe(pt),this._latestValue)}_subscribe(pt){this._obj=pt,this._strategy=this._selectStrategy(pt),this._subscription=this._strategy.createSubscription(pt,Lt=>this._updateLatestValue(pt,Lt))}_selectStrategy(pt){if((0,V.QGY)(pt))return $i;if((0,V.F4k)(pt))return In;throw nn()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(pt,Lt){pt===this._obj&&(this._latestValue=Lt,this._ref.markForCheck())}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.sBO,16))}}static{this.\u0275pipe=V.Yjl({name:"async",type:Re,pure:!1,standalone:!0})}}return Re})();const Br=new V.OlP("DATE_PIPE_DEFAULT_TIMEZONE"),Kn=new V.OlP("DATE_PIPE_DEFAULT_OPTIONS");let xr=(()=>{class Re{constructor(pt,Lt,wi){this.locale=pt,this.defaultTimezone=Lt,this.defaultOptions=wi}transform(pt,Lt,wi,rn){if(null==pt||""===pt||pt!=pt)return null;try{return qe(pt,Lt??this.defaultOptions?.dateFormat??"mediumDate",rn||this.locale,wi??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(Bn){throw nn()}}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.soG,16),V.Y36(Br,24),V.Y36(Kn,24))}}static{this.\u0275pipe=V.Yjl({name:"date",type:Re,pure:!0,standalone:!0})}}return Re})(),qa=(()=>{class Re{constructor(pt){this.differs=pt,this.keyValues=[],this.compareFn=Aa}transform(pt,Lt=Aa){if(!pt||!(pt instanceof Map)&&"object"!=typeof pt)return null;this.differ||(this.differ=this.differs.find(pt).create());const wi=this.differ.diff(pt),rn=Lt!==this.compareFn;return wi&&(this.keyValues=[],wi.forEachItem(Bn=>{this.keyValues.push(function Sr(Re,jt){return{key:Re,value:jt}}(Bn.key,Bn.currentValue))})),(wi||rn)&&(this.keyValues.sort(Lt),this.compareFn=Lt),this.keyValues}static{this.\u0275fac=function(Lt){return new(Lt||Re)(V.Y36(V.aQg,16))}}static{this.\u0275pipe=V.Yjl({name:"keyvalue",type:Re,pure:!1,standalone:!0})}}return Re})();function Aa(Re,jt){const pt=Re.key,Lt=jt.key;if(pt===Lt)return 0;if(void 0===pt)return 1;if(void 0===Lt)return-1;if(null===pt)return 1;if(null===Lt)return-1;if("string"==typeof pt&&"string"==typeof Lt)return pt{class Re{static{this.\u0275fac=function(Lt){return new(Lt||Re)}}static{this.\u0275mod=V.oAB({type:Re})}static{this.\u0275inj=V.cJS({})}}return Re})();const Ye="browser",ht="server";function Ii(Re){return Re===Ye}function en(Re){return Re===ht}let Un=(()=>{class Re{static{this.\u0275prov=(0,V.Yz7)({token:Re,providedIn:"root",factory:()=>new Jn((0,V.LFG)(v),window)})}}return Re})();class Jn{constructor(jt,pt){this.document=jt,this.window=pt,this.offset=()=>[0,0]}setOffset(jt){this.offset=Array.isArray(jt)?()=>jt:jt}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(jt){this.supportsScrolling()&&this.window.scrollTo(jt[0],jt[1])}scrollToAnchor(jt){if(!this.supportsScrolling())return;const pt=function hr(Re,jt){const pt=Re.getElementById(jt)||Re.getElementsByName(jt)[0];if(pt)return pt;if("function"==typeof Re.createTreeWalker&&Re.body&&"function"==typeof Re.body.attachShadow){const Lt=Re.createTreeWalker(Re.body,NodeFilter.SHOW_ELEMENT);let wi=Lt.currentNode;for(;wi;){const rn=wi.shadowRoot;if(rn){const Bn=rn.getElementById(jt)||rn.querySelector(`[name="${jt}"]`);if(Bn)return Bn}wi=Lt.nextNode()}}return null}(this.document,jt);pt&&(this.scrollToElement(pt),pt.focus())}setHistoryScrollRestoration(jt){this.supportsScrolling()&&(this.window.history.scrollRestoration=jt)}scrollToElement(jt){const pt=jt.getBoundingClientRect(),Lt=pt.left+this.window.pageXOffset,wi=pt.top+this.window.pageYOffset,rn=this.offset();this.window.scrollTo(Lt-rn[0],wi-rn[1])}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}class vr{}},9862:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{JF:()=>Ut,TP:()=>St,UA:()=>Ce,WM:()=>D,eN:()=>ze});var V=ce(5879),K=ce(2096),T=ce(7715),e=ce(5592),l=ce(6328),v=ce(2181),h=ce(7398),f=ce(4716),_=ce(4664),b=ce(6814);class y{}class M{}class D{constructor(di){this.normalizedNames=new Map,this.lazyUpdate=null,di?"string"==typeof di?this.lazyInit=()=>{this.headers=new Map,di.split("\n").forEach(xi=>{const sn=xi.indexOf(":");if(sn>0){const ji=xi.slice(0,sn),Qn=ji.toLowerCase(),wn=xi.slice(sn+1).trim();this.maybeSetNormalizedName(ji,Qn),this.headers.has(Qn)?this.headers.get(Qn).push(wn):this.headers.set(Qn,[wn])}})}:typeof Headers<"u"&&di instanceof Headers?(this.headers=new Map,di.forEach((xi,sn)=>{this.setHeaderEntries(sn,xi)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(di).forEach(([xi,sn])=>{this.setHeaderEntries(xi,sn)})}:this.headers=new Map}has(di){return this.init(),this.headers.has(di.toLowerCase())}get(di){this.init();const xi=this.headers.get(di.toLowerCase());return xi&&xi.length>0?xi[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(di){return this.init(),this.headers.get(di.toLowerCase())||null}append(di,xi){return this.clone({name:di,value:xi,op:"a"})}set(di,xi){return this.clone({name:di,value:xi,op:"s"})}delete(di,xi){return this.clone({name:di,value:xi,op:"d"})}maybeSetNormalizedName(di,xi){this.normalizedNames.has(xi)||this.normalizedNames.set(xi,di)}init(){this.lazyInit&&(this.lazyInit instanceof D?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(di=>this.applyUpdate(di)),this.lazyUpdate=null))}copyFrom(di){di.init(),Array.from(di.headers.keys()).forEach(xi=>{this.headers.set(xi,di.headers.get(xi)),this.normalizedNames.set(xi,di.normalizedNames.get(xi))})}clone(di){const xi=new D;return xi.lazyInit=this.lazyInit&&this.lazyInit instanceof D?this.lazyInit:this,xi.lazyUpdate=(this.lazyUpdate||[]).concat([di]),xi}applyUpdate(di){const xi=di.name.toLowerCase();switch(di.op){case"a":case"s":let sn=di.value;if("string"==typeof sn&&(sn=[sn]),0===sn.length)return;this.maybeSetNormalizedName(di.name,xi);const ji=("a"===di.op?this.headers.get(xi):void 0)||[];ji.push(...sn),this.headers.set(xi,ji);break;case"d":const Qn=di.value;if(Qn){let wn=this.headers.get(xi);if(!wn)return;wn=wn.filter(gr=>-1===Qn.indexOf(gr)),0===wn.length?(this.headers.delete(xi),this.normalizedNames.delete(xi)):this.headers.set(xi,wn)}else this.headers.delete(xi),this.normalizedNames.delete(xi)}}setHeaderEntries(di,xi){const sn=(Array.isArray(xi)?xi:[xi]).map(Qn=>Qn.toString()),ji=di.toLowerCase();this.headers.set(ji,sn),this.maybeSetNormalizedName(di,ji)}forEach(di){this.init(),Array.from(this.normalizedNames.keys()).forEach(xi=>di(this.normalizedNames.get(xi),this.headers.get(xi)))}}class k{encodeKey(di){return S(di)}encodeValue(di){return S(di)}decodeKey(di){return decodeURIComponent(di)}decodeValue(di){return decodeURIComponent(di)}}const I=/%(\d[a-f0-9])/gi,d={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function S(ui){return encodeURIComponent(ui).replace(I,(di,xi)=>d[xi]??di)}function R(ui){return`${ui}`}class z{constructor(di={}){if(this.updates=null,this.cloneFrom=null,this.encoder=di.encoder||new k,di.fromString){if(di.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Q(ui,di){const xi=new Map;return ui.length>0&&ui.replace(/^\?/,"").split("&").forEach(ji=>{const Qn=ji.indexOf("="),[wn,gr]=-1==Qn?[di.decodeKey(ji),""]:[di.decodeKey(ji.slice(0,Qn)),di.decodeValue(ji.slice(Qn+1))],xn=xi.get(wn)||[];xn.push(gr),xi.set(wn,xn)}),xi}(di.fromString,this.encoder)}else di.fromObject?(this.map=new Map,Object.keys(di.fromObject).forEach(xi=>{const sn=di.fromObject[xi],ji=Array.isArray(sn)?sn.map(R):[R(sn)];this.map.set(xi,ji)})):this.map=null}has(di){return this.init(),this.map.has(di)}get(di){this.init();const xi=this.map.get(di);return xi?xi[0]:null}getAll(di){return this.init(),this.map.get(di)||null}keys(){return this.init(),Array.from(this.map.keys())}append(di,xi){return this.clone({param:di,value:xi,op:"a"})}appendAll(di){const xi=[];return Object.keys(di).forEach(sn=>{const ji=di[sn];Array.isArray(ji)?ji.forEach(Qn=>{xi.push({param:sn,value:Qn,op:"a"})}):xi.push({param:sn,value:ji,op:"a"})}),this.clone(xi)}set(di,xi){return this.clone({param:di,value:xi,op:"s"})}delete(di,xi){return this.clone({param:di,value:xi,op:"d"})}toString(){return this.init(),this.keys().map(di=>{const xi=this.encoder.encodeKey(di);return this.map.get(di).map(sn=>xi+"="+this.encoder.encodeValue(sn)).join("&")}).filter(di=>""!==di).join("&")}clone(di){const xi=new z({encoder:this.encoder});return xi.cloneFrom=this.cloneFrom||this,xi.updates=(this.updates||[]).concat(di),xi}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(di=>this.map.set(di,this.cloneFrom.map.get(di))),this.updates.forEach(di=>{switch(di.op){case"a":case"s":const xi=("a"===di.op?this.map.get(di.param):void 0)||[];xi.push(R(di.value)),this.map.set(di.param,xi);break;case"d":if(void 0===di.value){this.map.delete(di.param);break}{let sn=this.map.get(di.param)||[];const ji=sn.indexOf(R(di.value));-1!==ji&&sn.splice(ji,1),sn.length>0?this.map.set(di.param,sn):this.map.delete(di.param)}}}),this.cloneFrom=this.updates=null)}}class Z{constructor(){this.map=new Map}set(di,xi){return this.map.set(di,xi),this}get(di){return this.map.has(di)||this.map.set(di,di.defaultValue()),this.map.get(di)}delete(di){return this.map.delete(di),this}has(di){return this.map.has(di)}keys(){return this.map.keys()}}function G(ui){return typeof ArrayBuffer<"u"&&ui instanceof ArrayBuffer}function W(ui){return typeof Blob<"u"&&ui instanceof Blob}function te(ui){return typeof FormData<"u"&&ui instanceof FormData}class J{constructor(di,xi,sn,ji){let Qn;if(this.url=xi,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=di.toUpperCase(),function H(ui){switch(ui){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||ji?(this.body=void 0!==sn?sn:null,Qn=ji):Qn=sn,Qn&&(this.reportProgress=!!Qn.reportProgress,this.withCredentials=!!Qn.withCredentials,Qn.responseType&&(this.responseType=Qn.responseType),Qn.headers&&(this.headers=Qn.headers),Qn.context&&(this.context=Qn.context),Qn.params&&(this.params=Qn.params)),this.headers||(this.headers=new D),this.context||(this.context=new Z),this.params){const wn=this.params.toString();if(0===wn.length)this.urlWithParams=xi;else{const gr=xi.indexOf("?");this.urlWithParams=xi+(-1===gr?"?":grqr.set(Fn,di.setHeaders[Fn]),xn)),di.setParams&&(Hr=Object.keys(di.setParams).reduce((qr,Fn)=>qr.set(Fn,di.setParams[Fn]),Hr)),new J(xi,sn,Qn,{params:Hr,headers:xn,context:Xo,reportProgress:gr,responseType:ji,withCredentials:wn})}}var j=function(ui){return ui[ui.Sent=0]="Sent",ui[ui.UploadProgress=1]="UploadProgress",ui[ui.ResponseHeader=2]="ResponseHeader",ui[ui.DownloadProgress=3]="DownloadProgress",ui[ui.Response=4]="Response",ui[ui.User=5]="User",ui}(j||{});class re{constructor(di,xi=200,sn="OK"){this.headers=di.headers||new D,this.status=void 0!==di.status?di.status:xi,this.statusText=di.statusText||sn,this.url=di.url||null,this.ok=this.status>=200&&this.status<300}}class he extends re{constructor(di={}){super(di),this.type=j.ResponseHeader}clone(di={}){return new he({headers:di.headers||this.headers,status:void 0!==di.status?di.status:this.status,statusText:di.statusText||this.statusText,url:di.url||this.url||void 0})}}class oe extends re{constructor(di={}){super(di),this.type=j.Response,this.body=void 0!==di.body?di.body:null}clone(di={}){return new oe({body:void 0!==di.body?di.body:this.body,headers:di.headers||this.headers,status:void 0!==di.status?di.status:this.status,statusText:di.statusText||this.statusText,url:di.url||this.url||void 0})}}class Ce extends re{constructor(di){super(di,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${di.url||"(unknown url)"}`:`Http failure response for ${di.url||"(unknown url)"}: ${di.status} ${di.statusText}`,this.error=di.error||null}}function me(ui,di){return{body:di,headers:ui.headers,context:ui.context,observe:ui.observe,params:ui.params,reportProgress:ui.reportProgress,responseType:ui.responseType,withCredentials:ui.withCredentials}}let ze=(()=>{class ui{constructor(xi){this.handler=xi}request(xi,sn,ji={}){let Qn;if(xi instanceof J)Qn=xi;else{let xn,Hr;xn=ji.headers instanceof D?ji.headers:new D(ji.headers),ji.params&&(Hr=ji.params instanceof z?ji.params:new z({fromObject:ji.params})),Qn=new J(xi,sn,void 0!==ji.body?ji.body:null,{headers:xn,context:ji.context,params:Hr,reportProgress:ji.reportProgress,responseType:ji.responseType||"json",withCredentials:ji.withCredentials})}const wn=(0,K.of)(Qn).pipe((0,l.b)(xn=>this.handler.handle(xn)));if(xi instanceof J||"events"===ji.observe)return wn;const gr=wn.pipe((0,v.h)(xn=>xn instanceof oe));switch(ji.observe||"body"){case"body":switch(Qn.responseType){case"arraybuffer":return gr.pipe((0,h.U)(xn=>{if(null!==xn.body&&!(xn.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return xn.body}));case"blob":return gr.pipe((0,h.U)(xn=>{if(null!==xn.body&&!(xn.body instanceof Blob))throw new Error("Response is not a Blob.");return xn.body}));case"text":return gr.pipe((0,h.U)(xn=>{if(null!==xn.body&&"string"!=typeof xn.body)throw new Error("Response is not a string.");return xn.body}));default:return gr.pipe((0,h.U)(xn=>xn.body))}case"response":return gr;default:throw new Error(`Unreachable: unhandled observe type ${ji.observe}}`)}}delete(xi,sn={}){return this.request("DELETE",xi,sn)}get(xi,sn={}){return this.request("GET",xi,sn)}head(xi,sn={}){return this.request("HEAD",xi,sn)}jsonp(xi,sn){return this.request("JSONP",xi,{params:(new z).append(sn,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(xi,sn={}){return this.request("OPTIONS",xi,sn)}patch(xi,sn,ji={}){return this.request("PATCH",xi,me(ji,sn))}post(xi,sn,ji={}){return this.request("POST",xi,me(ji,sn))}put(xi,sn,ji={}){return this.request("PUT",xi,me(ji,sn))}static{this.\u0275fac=function(sn){return new(sn||ui)(V.LFG(y))}}static{this.\u0275prov=V.Yz7({token:ui,factory:ui.\u0275fac})}}return ui})();function Fe(ui,di){return di(ui)}function Ve(ui,di){return(xi,sn)=>di.intercept(xi,{handle:ji=>ui(ji,sn)})}const St=new V.OlP(""),oi=new V.OlP(""),He=new V.OlP("");function be(){let ui=null;return(di,xi)=>{null===ui&&(ui=((0,V.f3M)(St,{optional:!0})??[]).reduceRight(Ve,Fe));const sn=(0,V.f3M)(V.HDt),ji=sn.add();return ui(di,xi).pipe((0,f.x)(()=>sn.remove(ji)))}}let je=(()=>{class ui extends y{constructor(xi,sn){super(),this.backend=xi,this.injector=sn,this.chain=null,this.pendingTasks=(0,V.f3M)(V.HDt)}handle(xi){if(null===this.chain){const ji=Array.from(new Set([...this.injector.get(oi),...this.injector.get(He,[])]));this.chain=ji.reduceRight((Qn,wn)=>function mt(ui,di,xi){return(sn,ji)=>xi.runInContext(()=>di(sn,Qn=>ui(Qn,ji)))}(Qn,wn,this.injector),Fe)}const sn=this.pendingTasks.add();return this.chain(xi,ji=>this.backend.handle(ji)).pipe((0,f.x)(()=>this.pendingTasks.remove(sn)))}static{this.\u0275fac=function(sn){return new(sn||ui)(V.LFG(M),V.LFG(V.lqb))}}static{this.\u0275prov=V.Yz7({token:ui,factory:ui.\u0275fac})}}return ui})();const ke=/^\)\]\}',?\n/;let gt=(()=>{class ui{constructor(xi){this.xhrFactory=xi}handle(xi){if("JSONP"===xi.method)throw new V.vHH(-2800,!1);const sn=this.xhrFactory;return(sn.\u0275loadImpl?(0,T.D)(sn.\u0275loadImpl()):(0,K.of)(null)).pipe((0,_.w)(()=>new e.y(Qn=>{const wn=sn.build();if(wn.open(xi.method,xi.urlWithParams),xi.withCredentials&&(wn.withCredentials=!0),xi.headers.forEach((Or,ar)=>wn.setRequestHeader(Or,ar.join(","))),xi.headers.has("Accept")||wn.setRequestHeader("Accept","application/json, text/plain, */*"),!xi.headers.has("Content-Type")){const Or=xi.detectContentTypeHeader();null!==Or&&wn.setRequestHeader("Content-Type",Or)}if(xi.responseType){const Or=xi.responseType.toLowerCase();wn.responseType="json"!==Or?Or:"text"}const gr=xi.serializeBody();let xn=null;const Hr=()=>{if(null!==xn)return xn;const Or=wn.statusText||"OK",ar=new D(wn.getAllResponseHeaders()),wo=function it(ui){return"responseURL"in ui&&ui.responseURL?ui.responseURL:/^X-Request-URL:/m.test(ui.getAllResponseHeaders())?ui.getResponseHeader("X-Request-URL"):null}(wn)||xi.url;return xn=new he({headers:ar,status:wn.status,statusText:Or,url:wo}),xn},Xo=()=>{let{headers:Or,status:ar,statusText:wo,url:Jt}=Hr(),ci=null;204!==ar&&(ci=typeof wn.response>"u"?wn.responseText:wn.response),0===ar&&(ar=ci?200:0);let Ai=ar>=200&&ar<300;if("json"===xi.responseType&&"string"==typeof ci){const Vt=ci;ci=ci.replace(ke,"");try{ci=""!==ci?JSON.parse(ci):null}catch(Le){ci=Vt,Ai&&(Ai=!1,ci={error:Le,text:ci})}}Ai?(Qn.next(new oe({body:ci,headers:Or,status:ar,statusText:wo,url:Jt||void 0})),Qn.complete()):Qn.error(new Ce({error:ci,headers:Or,status:ar,statusText:wo,url:Jt||void 0}))},qr=Or=>{const{url:ar}=Hr(),wo=new Ce({error:Or,status:wn.status||0,statusText:wn.statusText||"Unknown Error",url:ar||void 0});Qn.error(wo)};let Fn=!1;const Wn=Or=>{Fn||(Qn.next(Hr()),Fn=!0);let ar={type:j.DownloadProgress,loaded:Or.loaded};Or.lengthComputable&&(ar.total=Or.total),"text"===xi.responseType&&wn.responseText&&(ar.partialText=wn.responseText),Qn.next(ar)},ro=Or=>{let ar={type:j.UploadProgress,loaded:Or.loaded};Or.lengthComputable&&(ar.total=Or.total),Qn.next(ar)};return wn.addEventListener("load",Xo),wn.addEventListener("error",qr),wn.addEventListener("timeout",qr),wn.addEventListener("abort",qr),xi.reportProgress&&(wn.addEventListener("progress",Wn),null!==gr&&wn.upload&&wn.upload.addEventListener("progress",ro)),wn.send(gr),Qn.next({type:j.Sent}),()=>{wn.removeEventListener("error",qr),wn.removeEventListener("abort",qr),wn.removeEventListener("load",Xo),wn.removeEventListener("timeout",qr),xi.reportProgress&&(wn.removeEventListener("progress",Wn),null!==gr&&wn.upload&&wn.upload.removeEventListener("progress",ro)),wn.readyState!==wn.DONE&&wn.abort()}})))}static{this.\u0275fac=function(sn){return new(sn||ui)(V.LFG(b.JF))}}static{this.\u0275prov=V.Yz7({token:ui,factory:ui.\u0275fac})}}return ui})();const ai=new V.OlP("XSRF_ENABLED"),Gt=new V.OlP("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),mi=new V.OlP("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Zi{}let Qi=(()=>{class ui{constructor(xi,sn,ji){this.doc=xi,this.platform=sn,this.cookieName=ji,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const xi=this.doc.cookie||"";return xi!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,b.Mx)(xi,this.cookieName),this.lastCookieString=xi),this.lastToken}static{this.\u0275fac=function(sn){return new(sn||ui)(V.LFG(b.K0),V.LFG(V.Lbi),V.LFG(Gt))}}static{this.\u0275prov=V.Yz7({token:ui,factory:ui.\u0275fac})}}return ui})();function Ht(ui,di){const xi=ui.url.toLowerCase();if(!(0,V.f3M)(ai)||"GET"===ui.method||"HEAD"===ui.method||xi.startsWith("http://")||xi.startsWith("https://"))return di(ui);const sn=(0,V.f3M)(Zi).getToken(),ji=(0,V.f3M)(mi);return null!=sn&&!ui.headers.has(ji)&&(ui=ui.clone({headers:ui.headers.set(ji,sn)})),di(ui)}var ge=function(ui){return ui[ui.Interceptors=0]="Interceptors",ui[ui.LegacyInterceptors=1]="LegacyInterceptors",ui[ui.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",ui[ui.NoXsrfProtection=3]="NoXsrfProtection",ui[ui.JsonpSupport=4]="JsonpSupport",ui[ui.RequestsMadeViaParent=5]="RequestsMadeViaParent",ui[ui.Fetch=6]="Fetch",ui}(ge||{});function Se(ui,di){return{\u0275kind:ui,\u0275providers:di}}function ct(...ui){const di=[ze,gt,je,{provide:y,useExisting:je},{provide:M,useExisting:gt},{provide:oi,useValue:Ht,multi:!0},{provide:ai,useValue:!0},{provide:Zi,useClass:Qi}];for(const xi of ui)di.push(...xi.\u0275providers);return(0,V.MR2)(di)}const rt=new V.OlP("LEGACY_INTERCEPTOR_FN");let Ut=(()=>{class ui{static{this.\u0275fac=function(sn){return new(sn||ui)}}static{this.\u0275mod=V.oAB({type:ui})}static{this.\u0275inj=V.cJS({providers:[ct(Se(ge.LegacyInterceptors,[{provide:rt,useFactory:be},{provide:oi,useExisting:rt,multi:!0}]))]})}}return ui})()},5879:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{$8M:()=>qh,$WT:()=>Dr,$Z:()=>YT,AFp:()=>nT,ALo:()=>TB,AaK:()=>M,Akn:()=>mu,AsE:()=>L_,B6R:()=>$i,BQk:()=>gw,CHM:()=>Np,CRH:()=>GB,DdM:()=>G2,EJc:()=>iC,EiD:()=>np,EpF:()=>II,F$t:()=>yx,F4k:()=>fx,FYo:()=>pT,FiY:()=>yd,G48:()=>cC,Gf:()=>zB,GfV:()=>h1,GkF:()=>gx,Gpc:()=>k,Gre:()=>Lx,HDt:()=>g0,Hh0:()=>j2,Hsn:()=>wx,Ikx:()=>Vx,JOm:()=>X,JVY:()=>sf,JZr:()=>R,Jf7:()=>DT,KtG:()=>Au,L6k:()=>lf,LAX:()=>py,LFG:()=>Ji,LSH:()=>my,Lbi:()=>o1,Lck:()=>r4,MAs:()=>ux,MGl:()=>P_,MMx:()=>Hc,MR2:()=>Wb,NdJ:()=>fw,O4$:()=>xa,Ojb:()=>N3,OlP:()=>Gt,Oqu:()=>Ew,P3R:()=>vy,PXZ:()=>J4,Q6J:()=>I_,QGY:()=>Mf,QbO:()=>Y3,Qsj:()=>gT,R0b:()=>wc,RDi:()=>Nc,Rgc:()=>c0,SBq:()=>pf,Sil:()=>cE,Suo:()=>HB,TTD:()=>Ao,TgZ:()=>k_,Tol:()=>LI,Udp:()=>Dx,VKq:()=>EB,VuI:()=>s6,W1O:()=>Zw,WFA:()=>S_,WLB:()=>MB,XFs:()=>Dt,Xpm:()=>Oi,Xq5:()=>tx,Xts:()=>Bd,Y36:()=>mf,YKP:()=>L2,YNc:()=>xI,Yjl:()=>_o,Yz7:()=>St,Z0I:()=>je,ZZ4:()=>kE,_Bn:()=>O2,_UZ:()=>px,_Vd:()=>uf,_c5:()=>t6,_uU:()=>Xm,aQg:()=>yg,c2e:()=>tC,cJS:()=>He,cg1:()=>R_,d8E:()=>Dw,dDg:()=>Zk,dqk:()=>gt,eBb:()=>yc,eFA:()=>Kk,eJc:()=>jB,ekj:()=>Tx,eoX:()=>_E,evT:()=>TT,f3M:()=>fn,g9A:()=>r1,h0i:()=>_g,hGG:()=>Zf,hYB:()=>Cc,hij:()=>e0,iGM:()=>dk,ifc:()=>wn,ip1:()=>lE,jDz:()=>Y2,kEZ:()=>Z2,kL8:()=>Kx,kcU:()=>sl,lG2:()=>br,lcZ:()=>$2,lqb:()=>xh,lri:()=>Gk,mCW:()=>a_,n5z:()=>du,n_E:()=>$_,oAB:()=>qn,oJD:()=>ZD,oxw:()=>_x,pB0:()=>xd,q3G:()=>Af,qFp:()=>oA,qLn:()=>xA,qOj:()=>Gm,qZA:()=>Q_,qbA:()=>DB,qzn:()=>Jd,rWj:()=>mE,rg0:()=>rn,s9C:()=>xo,sBO:()=>fp,s_b:()=>u0,soG:()=>rv,tb:()=>vE,tp0:()=>Kp,uIk:()=>iw,uOi:()=>_y,vHH:()=>z,vpe:()=>gu,wAp:()=>kh,xi3:()=>IB,xp6:()=>Bh,ynx:()=>pw,z2F:()=>Nf,z3N:()=>XA,zSh:()=>Xb,zs3:()=>Ed});var V=ce(8645),K=ce(7394),T=ce(5592),e=ce(3019),l=ce(5619),v=ce(2096),h=ce(3020),f=ce(4664),_=ce(3997);function b(A){for(let u in A)if(A[u]===b)return u;throw Error("Could not find renamed property on target object.")}function y(A,u){for(const m in u)u.hasOwnProperty(m)&&!A.hasOwnProperty(m)&&(A[m]=u[m])}function M(A){if("string"==typeof A)return A;if(Array.isArray(A))return"["+A.map(M).join(", ")+"]";if(null==A)return""+A;if(A.overriddenName)return`${A.overriddenName}`;if(A.name)return`${A.name}`;const u=A.toString();if(null==u)return""+u;const m=u.indexOf("\n");return-1===m?u:u.substring(0,m)}function D(A,u){return null==A||""===A?null===u?"":u:null==u||""===u?A:A+" "+u}const x=b({__forward_ref__:b});function k(A){return A.__forward_ref__=k,A.toString=function(){return M(this())},A}function Q(A){return I(A)?A():A}function I(A){return"function"==typeof A&&A.hasOwnProperty(x)&&A.__forward_ref__===k}function d(A){return A&&!!A.\u0275providers}const R="https://g.co/ng/security#xss";class z extends Error{constructor(u,m){super(function q(A,u){return`NG0${Math.abs(A)}${u?": "+u:""}`}(u,m)),this.code=u}}function Z(A){return"string"==typeof A?A:null==A?"":String(A)}function P(A,u){throw new z(-201,!1)}function ae(A,u){null==A&&function Ee(A,u,m,E){throw new Error(`ASSERTION ERROR: ${A}`+(null==E?"":` [Expected=> ${m} ${E} ${u} <=Actual]`))}(u,A,null,"!=")}function St(A){return{token:A.token,providedIn:A.providedIn||null,factory:A.factory,value:void 0}}function He(A){return{providers:A.providers||[],imports:A.imports||[]}}function be(A){return Ke(A,ut)||Ke(A,Xe)}function je(A){return null!==be(A)}function Ke(A,u){return A.hasOwnProperty(u)?A[u]:null}function Nt(A){return A&&(A.hasOwnProperty(et)||A.hasOwnProperty(It))?A[et]:null}const ut=b({\u0275prov:b}),et=b({\u0275inj:b}),Xe=b({ngInjectableDef:b}),It=b({ngInjectorDef:b});var Dt=function(A){return A[A.Default=0]="Default",A[A.Host=1]="Host",A[A.Self=2]="Self",A[A.SkipSelf=4]="SkipSelf",A[A.Optional=8]="Optional",A}(Dt||{});let vt;function qe(A){const u=vt;return vt=A,u}function ke(A,u,m){const E=be(A);return E&&"root"==E.providedIn?void 0===E.value?E.value=E.factory():E.value:m&Dt.Optional?null:void 0!==u?u:void P(M(A))}const gt=globalThis;class Gt{constructor(u,m){this._desc=u,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof m?this.__NG_ELEMENT_ID__=m:void 0!==m&&(this.\u0275prov=St({token:this,providedIn:m.providedIn||"root",factory:m.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const Kt={},on="__NG_DI_FLAG__",Ge="ngTempTokenPath",qt=/\n/gm,Bt="__source";let Ut;function Ti(A){const u=Ut;return Ut=A,u}function ln(A,u=Dt.Default){if(void 0===Ut)throw new z(-203,!1);return null===Ut?ke(A,void 0,u):Ut.get(A,u&Dt.Optional?null:void 0,u)}function Ji(A,u=Dt.Default){return(function Qt(){return vt}()||ln)(Q(A),u)}function fn(A,u=Dt.Default){return Ji(A,Pn(u))}function Pn(A){return typeof A>"u"||"number"==typeof A?A:0|(A.optional&&8)|(A.host&&1)|(A.self&&2)|(A.skipSelf&&4)}function mn(A){const u=[];for(let m=0;mu){de=ee-1;break}}}for(;eeee?"":F[yi+1].toLowerCase();const Xi=8&E?Li:null;if(Xi&&-1!==ar(Xi,Mt,0)||2&E&&Mt!==Li){if(xt(E))return!1;de=!0}}}}else{if(!de&&!xt(E)&&!xt(Ze))return!1;if(de&&xt(Ze))continue;de=!1,E=Ze|1&E}}return xt(E)||de}function xt(A){return 0==(1&A)}function li(A,u,m,E){if(null===u)return-1;let F=0;if(E||!m){let ee=!1;for(;F-1)for(m++;m0?'="'+Be+'"':"")+"]"}else 8&E?F+="."+de:4&E&&(F+=" "+de);else""!==F&&!xt(de)&&(u+=Ci(ee,F),F=""),E=de,ee=ee||!xt(E);m++}return""!==F&&(u+=Ci(ee,F)),u}function Oi(A){return ji(()=>{const u=ca(A),m={...u,decls:A.decls,vars:A.vars,template:A.template,consts:A.consts||null,ngContentSelectors:A.ngContentSelectors,onPush:A.changeDetection===Qn.OnPush,directiveDefs:null,pipeDefs:null,dependencies:u.standalone&&A.dependencies||null,getStandaloneInjector:null,signals:A.signals??!1,data:A.data||{},encapsulation:A.encapsulation||wn.Emulated,styles:A.styles||xn,_:null,schemas:A.schemas||null,tView:null,id:""};Ta(m);const E=A.dependencies;return m.directiveDefs=Sr(E,!1),m.pipeDefs=Sr(E,!0),m.id=function Aa(A){let u=0;const m=[A.selectors,A.ngContentSelectors,A.hostVars,A.hostAttrs,A.consts,A.vars,A.decls,A.encapsulation,A.standalone,A.signals,A.exportAs,JSON.stringify(A.inputs),JSON.stringify(A.outputs),Object.getOwnPropertyNames(A.type.prototype),!!A.contentQueries,!!A.viewQuery].join("|");for(const F of m)u=Math.imul(31,u)+F.charCodeAt(0)<<0;return u+=2147483648,"c"+u}(m),m})}function $i(A,u,m){const E=A.\u0275cmp;E.directiveDefs=Sr(u,!1),E.pipeDefs=Sr(m,!0)}function In(A){return Br(A)||Kn(A)}function jn(A){return null!==A}function qn(A){return ji(()=>({type:A.type,bootstrap:A.bootstrap||xn,declarations:A.declarations||xn,imports:A.imports||xn,exports:A.exports||xn,transitiveCompileScopes:null,schemas:A.schemas||null,id:A.id||null}))}function Gr(A,u){if(null==A)return gr;const m={};for(const E in A)if(A.hasOwnProperty(E)){let F=A[E],ee=F;Array.isArray(F)&&(ee=F[1],F=F[0]),m[F]=E,u&&(u[F]=ee)}return m}function br(A){return ji(()=>{const u=ca(A);return Ta(u),u})}function _o(A){return{type:A.type,name:A.name,factory:null,pure:!1!==A.pure,standalone:!0===A.standalone,onDestroy:A.type.prototype.ngOnDestroy||null}}function Br(A){return A[Hr]||null}function Kn(A){return A[Xo]||null}function xr(A){return A[qr]||null}function Dr(A){const u=Br(A)||Kn(A)||xr(A);return null!==u&&u.standalone}function To(A,u){const m=A[Fn]||null;if(!m&&!0===u)throw new Error(`Type ${M(A)} does not have '\u0275mod' property.`);return m}function ca(A){const u={};return{type:A.type,providersResolver:null,factory:null,hostBindings:A.hostBindings||null,hostVars:A.hostVars||0,hostAttrs:A.hostAttrs||null,contentQueries:A.contentQueries||null,declaredInputs:u,inputTransforms:null,inputConfig:A.inputs||gr,exportAs:A.exportAs||null,standalone:!0===A.standalone,signals:!0===A.signals,selectors:A.selectors||xn,viewQuery:A.viewQuery||null,features:A.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Gr(A.inputs,u),outputs:Gr(A.outputs)}}function Ta(A){A.features?.forEach(u=>u(A))}function Sr(A,u){if(!A)return null;const m=u?xr:In;return()=>("function"==typeof A?A():A).map(E=>m(E)).filter(jn)}const lo=0,kn=1,mr=2,zo=3,Ot=4,Qe=5,Ie=6,Ne=7,Ye=8,ht=9,kt=10,hi=11,Ii=12,en=13,an=14,Ui=15,bn=16,Un=17,Jn=18,hr=19,Er=20,vr=21,$n=22,Ur=23,Tr=24,Ln=25,ko=1,ao=2,Ca=7,da=9,Po=11;function va(A){return Array.isArray(A)&&"object"==typeof A[ko]}function za(A){return Array.isArray(A)&&!0===A[ko]}function vl(A){return 0!=(4&A.flags)}function yl(A){return A.componentOffset>-1}function Ls(A){return 1==(1&A.flags)}function Bo(A){return!!A.template}function sA(A){return 0!=(512&A[mr])}function _s(A,u){return A.hasOwnProperty(Wn)?A[Wn]:null}let ia=null,An=!1;function Jr(A){const u=ia;return ia=A,u}const ba={version:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{}};function gc(A){if(!Ho(A)||A.dirty){if(!A.producerMustRecompute(A)&&!cA(A))return void(A.dirty=!1);A.producerRecomputeValue(A),A.dirty=!1}}function kc(A){A.dirty=!0,function Fl(A){if(void 0===A.liveConsumerNode)return;const u=An;An=!0;try{for(const m of A.liveConsumerNode)m.dirty||kc(m)}finally{An=u}}(A),A.consumerMarkedDirty?.(A)}function es(A){return A&&(A.nextProducerIndex=0),Jr(A)}function lA(A,u){if(Jr(u),A&&void 0!==A.producerNode&&void 0!==A.producerIndexOfThis&&void 0!==A.producerLastReadVersion){if(Ho(A))for(let m=A.nextProducerIndex;mA.nextProducerIndex;)A.producerNode.pop(),A.producerLastReadVersion.pop(),A.producerIndexOfThis.pop()}}function cA(A){ya(A);for(let u=0;u0}function ya(A){A.producerNode??=[],A.producerIndexOfThis??=[],A.producerLastReadVersion??=[]}let Vs=null;function rn(A){const u=Jr(null);try{return A()}finally{Jr(u)}}const Mr=()=>{},$o=(()=>({...ba,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:A=>{A.schedule(A.ref)},hasRun:!1,cleanupFn:Mr}))();class Vo{constructor(u,m,E){this.previousValue=u,this.currentValue=m,this.firstChange=E}isFirstChange(){return this.firstChange}}function Ao(){return ha}function ha(A){return A.type.prototype.ngOnChanges&&(A.setInput=is),ka}function ka(){const A=Ol(this),u=A?.current;if(u){const m=A.previous;if(m===gr)A.previous=u;else for(let E in u)m[E]=u[E];A.current=null,this.ngOnChanges(u)}}function is(A,u,m,E){const F=this.declaredInputs[m],ee=Ol(A)||function Sc(A,u){return A[ic]=u}(A,{previous:gr,current:null}),de=ee.current||(ee.current={}),Be=ee.previous,Ze=Be[F];de[F]=new Vo(Ze&&Ze.currentValue,u,Be===gr),A[E]=u}Ao.ngInherit=!0;const ic="__ngSimpleChanges__";function Ol(A){return A[ic]||null}const Ws=function(A,u,m){},bl="svg";function pa(A){for(;Array.isArray(A);)A=A[lo];return A}function U(A,u){return pa(u[A])}function le(A,u){return pa(u[A.index])}function Ct(A,u){return A.data[u]}function Xt(A,u){return A[u]}function Mi(A,u){const m=u[A];return va(m)?m:m[lo]}function rr(A,u){return null==u?null:A[u]}function jr(A){A[Un]=0}function vo(A){1024&A[mr]||(A[mr]|=1024,ns(A,1))}function Bs(A){1024&A[mr]&&(A[mr]&=-1025,ns(A,-1))}function ns(A,u){let m=A[zo];if(null===m)return;m[Qe]+=u;let E=m;for(m=m[zo];null!==m&&(1===u&&1===E[Qe]||-1===u&&0===E[Qe]);)m[Qe]+=u,E=m,m=m[zo]}const Vr={lFrame:Yd(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function cd(){return Vr.bindingsEnabled}function wa(){return null!==Vr.skipHydrationRootTNode}function _n(){return Vr.lFrame.lView}function Co(){return Vr.lFrame.tView}function Np(A){return Vr.lFrame.contextLView=A,A[Ye]}function Au(A){return Vr.lFrame.contextLView=null,A}function xl(){let A=Eu();for(;null!==A&&64===A.type;)A=A.parent;return A}function Eu(){return Vr.lFrame.currentTNode}function qc(A,u){const m=Vr.lFrame;m.currentTNode=A,m.isParent=u}function dd(){return Vr.lFrame.isParent}function Mu(){Vr.lFrame.isParent=!1}function Rl(){const A=Vr.lFrame;let u=A.bindingRootIndex;return-1===u&&(u=A.bindingRootIndex=A.tView.bindingStartIndex),u}function ud(){return Vr.lFrame.bindingIndex++}function Pc(A){const u=Vr.lFrame,m=u.bindingIndex;return u.bindingIndex=u.bindingIndex+A,m}function jl(A,u){const m=Vr.lFrame;m.bindingIndex=m.bindingRootIndex=A,Vh(u)}function Vh(A){Vr.lFrame.currentDirectiveIndex=A}function uh(A){const u=Vr.lFrame.currentDirectiveIndex;return-1===u?null:A[u]}function Ga(){return Vr.lFrame.currentQueryIndex}function En(A){Vr.lFrame.currentQueryIndex=A}function dA(A){const u=A[kn];return 2===u.type?u.declTNode:1===u.type?A[Ie]:null}function jA(A,u,m){if(m&Dt.SkipSelf){let F=u,ee=A;for(;!(F=F.parent,null!==F||m&Dt.Host||(F=dA(ee),null===F||(ee=ee[an],10&F.type))););if(null===F)return!1;u=F,A=ee}const E=Vr.lFrame=ga();return E.currentTNode=u,E.lView=A,!0}function uA(A){const u=ga(),m=A[kn];Vr.lFrame=u,u.currentTNode=m.firstChild,u.lView=A,u.tView=m,u.contextLView=A,u.bindingIndex=m.bindingStartIndex,u.inI18n=!1}function ga(){const A=Vr.lFrame,u=null===A?null:A.child;return null===u?Yd(A):u}function Yd(A){const u={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:A,child:null,inI18n:!1};return null!==A&&(A.child=u),u}function hh(){const A=Vr.lFrame;return Vr.lFrame=A.parent,A.currentTNode=null,A.lView=null,A}const ph=hh;function Xc(){const A=hh();A.isParent=!0,A.tView=null,A.selectedIndex=-1,A.contextLView=null,A.elementDepthCount=0,A.currentDirectiveIndex=-1,A.currentNamespace=null,A.bindingRootIndex=-1,A.bindingIndex=-1,A.currentQueryIndex=0}function hl(){return Vr.lFrame.selectedIndex}function Yo(A){Vr.lFrame.selectedIndex=A}function No(){const A=Vr.lFrame;return Ct(A.tView,A.selectedIndex)}function xa(){Vr.lFrame.currentNamespace=bl}function sl(){!function pl(){Vr.lFrame.currentNamespace=null}()}let Zr=!0;function OA(){return Zr}function Wr(A){Zr=A}function Bl(A,u){for(let m=u.directiveStart,E=u.directiveEnd;m=E)break}else u[Ze]<0&&(A[Un]+=65536),(Be>13>16&&(3&A[mr])===u&&(A[mr]+=8192,mc(Be,ee)):mc(Be,ee)}const Na=-1;class El{constructor(u,m,E){this.factory=u,this.resolving=!1,this.canSeeViewProviders=m,this.injectImpl=E}}function gd(A){return A!==Na}function pA(A){return 32767&A}function Vl(A,u){let m=function Su(A){return A>>16}(A),E=u;for(;m>0;)E=E[an],m--;return E}let Pu=!0;function rc(A){const u=Pu;return Pu=A,u}const na=255,Fu=5;let gh=0;const Ks={};function ac(A,u){const m=gA(A,u);if(-1!==m)return m;const E=u[kn];E.firstCreatePass&&(A.injectorIndex=u.length,tA(E.data,A),tA(u,null),tA(E.blueprint,null));const F=Oo(A,u),ee=A.injectorIndex;if(gd(F)){const de=pA(F),Be=Vl(F,u),Ze=Be[kn].data;for(let Mt=0;Mt<8;Mt++)u[ee+Mt]=Be[de+Mt]|Ze[de+Mt]}return u[ee+8]=F,ee}function tA(A,u){A.push(0,0,0,0,0,0,0,0,u)}function gA(A,u){return-1===A.injectorIndex||A.parent&&A.parent.injectorIndex===A.injectorIndex||null===u[A.injectorIndex+8]?-1:A.injectorIndex}function Oo(A,u){if(A.parent&&-1!==A.parent.injectorIndex)return A.parent.injectorIndex;let m=0,E=null,F=u;for(;null!==F;){if(E=jg(F),null===E)return Na;if(m++,F=F[an],-1!==E.injectorIndex)return E.injectorIndex|m<<16}return Na}function ie(A,u,m){!function Gp(A,u,m){let E;"string"==typeof m?E=m.charCodeAt(0)||0:m.hasOwnProperty(ro)&&(E=m[ro]),null==E&&(E=m[ro]=gh++);const F=E&na;u.data[A+(F>>Fu)]|=1<=0?u&na:Oc:u}(m);if("function"==typeof ee){if(!jA(u,A,E))return E&Dt.Host?ot(F,0,E):Et(u,m,E,F);try{let de;if(de=ee(E),null!=de||E&Dt.Optional)return de;P()}finally{ph()}}else if("number"==typeof ee){let de=null,Be=gA(A,u),Ze=Na,Mt=E&Dt.Host?u[Ui][Ie]:null;for((-1===Be||E&Dt.SkipSelf)&&(Ze=-1===Be?Oo(A,u):u[Be+8],Ze!==Na&&Fc(E,!1)?(de=u[kn],Be=pA(Ze),u=Vl(Ze,u)):Be=-1);-1!==Be;){const Wt=u[kn];if(gl(ee,Be,Wt.data)){const yi=pn(Be,u,m,de,E,Mt);if(yi!==Ks)return yi}Ze=u[Be+8],Ze!==Na&&Fc(E,u[kn].data[Be+8]===Mt)&&gl(ee,Be,u)?(de=Wt,Be=pA(Ze),u=Vl(Ze,u)):Be=-1}}return F}function pn(A,u,m,E,F,ee){const de=u[kn],Be=de.data[A+8],Wt=sr(Be,de,m,null==E?yl(Be)&&Pu:E!=de&&0!=(3&Be.type),F&Dt.Host&&ee===Be);return null!==Wt?kr(u,de,Wt,Be):Ks}function sr(A,u,m,E,F){const ee=A.providerIndexes,de=u.data,Be=1048575&ee,Ze=A.directiveStart,Wt=ee>>20,Li=F?Be+Wt:A.directiveEnd;for(let Xi=E?Be:Be+Wt;Xi=Ze&&Mn.type===m)return Xi}if(F){const Xi=de[Ze];if(Xi&&Bo(Xi)&&Xi.type===m)return Ze}return null}function kr(A,u,m,E){let F=A[m];const ee=u.data;if(function pd(A){return A instanceof El}(F)){const de=F;de.resolving&&function G(A,u){const m=u?`. Dependency path: ${u.join(" > ")} > ${A}`:"";throw new z(-200,`Circular dependency in DI detected for ${A}${m}`)}(function H(A){return"function"==typeof A?A.name||A.toString():"object"==typeof A&&null!=A&&"function"==typeof A.type?A.type.name||A.type.toString():Z(A)}(ee[m]));const Be=rc(de.canSeeViewProviders);de.resolving=!0;const Mt=de.injectImpl?qe(de.injectImpl):null;jA(A,E,Dt.Default);try{F=A[m]=de.factory(void 0,ee,A,E),u.firstCreatePass&&m>=E.directiveStart&&function yo(A,u,m){const{ngOnChanges:E,ngOnInit:F,ngDoCheck:ee}=u.type.prototype;if(E){const de=ha(u);(m.preOrderHooks??=[]).push(A,de),(m.preOrderCheckHooks??=[]).push(A,de)}F&&(m.preOrderHooks??=[]).push(0-A,F),ee&&((m.preOrderHooks??=[]).push(A,ee),(m.preOrderCheckHooks??=[]).push(A,ee))}(m,ee[m],u)}finally{null!==Mt&&qe(Mt),rc(Be),de.resolving=!1,ph()}}return F}function gl(A,u,m){return!!(m[u+(A>>Fu)]&1<{const u=A.prototype.constructor,m=u[Wn]||Zp(u),E=Object.prototype;let F=Object.getPrototypeOf(A.prototype).constructor;for(;F&&F!==E;){const ee=F[Wn]||Zp(F);if(ee&&ee!==m)return ee;F=Object.getPrototypeOf(F)}return ee=>new ee})}function Zp(A){return I(A)?()=>{const u=Zp(Q(A));return u&&u()}:_s(A)}function jg(A){const u=A[kn],m=u.type;return 2===m?u.declTNode:1===m?A[Ie]:null}function qh(A){return function xe(A,u){if("class"===u)return A.classes;if("style"===u)return A.styles;const m=A.attrs;if(m){const E=m.length;let F=0;for(;F{const E=function $r(A){return function(...m){if(A){const E=A(...m);for(const F in E)this[F]=E[F]}}}(u);function F(...ee){if(this instanceof F)return E.apply(this,ee),this;const de=new F(...ee);return Be.annotation=de,Be;function Be(Ze,Mt,Wt){const yi=Ze.hasOwnProperty(hu)?Ze[hu]:Object.defineProperty(Ze,hu,{value:[]})[hu];for(;yi.length<=Wt;)yi.push(null);return(yi[Wt]=yi[Wt]||[]).push(de),Ze}}return m&&(F.prototype=Object.create(m.prototype)),F.prototype.ngMetadataName=A,F.annotationCls=F,F})}function WA(A,u){A.forEach(m=>Array.isArray(m)?WA(m,u):u(m))}function Jp(A,u,m){u>=A.length?A.push(m):A.splice(u,0,m)}function $h(A,u){return u>=A.length-1?A.pop():A.splice(u,1)[0]}function vd(A,u){const m=[];for(let E=0;E=0?A[1|E]=m:(E=~E,function e_(A,u,m,E){let F=A.length;if(F==u)A.push(m,E);else if(1===F)A.push(E,A[0]),A[0]=m;else{for(F--,A.push(A[F-1],A[F]);F>u;)A[F]=A[F-2],F--;A[u]=m,A[u+1]=E}}(A,E,u,m)),E}function Es(A,u){const m=zd(A,u);if(m>=0)return A[1|m]}function zd(A,u){return function _h(A,u,m){let E=0,F=A.length>>m;for(;F!==E;){const ee=E+(F-E>>1),de=A[ee<u?F=ee:E=ee+1}return~(F<|^->||--!>|)/g,At="\u200b$1\u200b";const Yt=new Map;let fi=0;const Xn="__ngContext__";function nr(A,u){va(u)?(A[Xn]=u[hr],function Hi(A){Yt.set(A[hr],A)}(u)):A[Xn]=u}let qs;function Ns(A,u){return qs(A,u)}function Dl(A){const u=A[zo];return za(u)?u[zo]:u}function zs(A){return ma(A[Ii])}function Yc(A){return ma(A[Ot])}function ma(A){for(;null!==A&&!za(A);)A=A[Ot];return A}function bd(A,u,m,E,F){if(null!=E){let ee,de=!1;za(E)?ee=E:va(E)&&(de=!0,E=E[lo]);const Be=pa(E);0===A&&null!==m?null==F?eo(u,m,Be):dr(u,m,Be,F||null,!0):1===A&&null!==m?dr(u,m,Be,F||null,!0):2===A?function Ts(A,u,m){const E=Eo(A,u);E&&function mo(A,u,m,E){A.removeChild(u,m,E)}(A,E,u,m)}(u,Be,de):3===A&&u.destroyNode(Be),null!=ee&&function $l(A,u,m,E,F){const ee=m[Ca];ee!==pa(m)&&bd(u,A,E,ee,F);for(let Be=Po;Beu.replace(We,At))}(u))}function Je(A,u,m){return A.createElement(u,m)}function ft(A,u){const m=A[da],E=m.indexOf(u);Bs(u),m.splice(E,1)}function si(A,u){if(A.length<=Po)return;const m=Po+u,E=A[m];if(E){const F=E[bn];null!==F&&F!==A&&ft(F,E),u>0&&(A[m-1][Ot]=E[Ot]);const ee=$h(A,Po+u);!function se(A,u){vc(A,u,u[hi],2,null,null),u[lo]=null,u[Ie]=null}(E[kn],E);const de=ee[Jn];null!==de&&de.detachView(ee[kn]),E[zo]=null,E[Ot]=null,E[mr]&=-129}return E}function Bi(A,u){if(!(256&u[mr])){const m=u[hi];u[Ur]&&fc(u[Ur]),u[Tr]&&fc(u[Tr]),m.destroyNode&&vc(A,u,m,3,null,null),function st(A){let u=A[Ii];if(!u)return zi(A[kn],A);for(;u;){let m=null;if(va(u))m=u[Ii];else{const E=u[Po];E&&(m=E)}if(!m){for(;u&&!u[Ot]&&u!==A;)va(u)&&zi(u[kn],u),u=u[zo];null===u&&(u=A),va(u)&&zi(u[kn],u),m=u&&u[Ot]}u=m}}(u)}}function zi(A,u){if(!(256&u[mr])){u[mr]&=-129,u[mr]|=256,function qi(A,u){let m;if(null!=A&&null!=(m=A.destroyHooks))for(let E=0;E=0?E[de]():E[-de].unsubscribe(),ee+=2}else m[ee].call(E[m[ee+1]]);null!==E&&(u[Ne]=null);const F=u[vr];if(null!==F){u[vr]=null;for(let ee=0;ee-1){const{encapsulation:ee}=A.data[E.directiveStart+F];if(ee===wn.None||ee===wn.Emulated)return null}return le(E,m)}}(A,u.parent,m)}function dr(A,u,m,E,F){A.insertBefore(u,m,E,F)}function eo(A,u,m){A.appendChild(u,m)}function to(A,u,m,E,F){null!==E?dr(A,u,m,E,F):eo(A,u,m)}function Eo(A,u){return A.parentNode(u)}function os(A,u,m){return as(A,u,m)}let bo,bA,LA,ig,as=function Ds(A,u,m){return 40&A.type?le(A,m):null};function Mo(A,u,m,E){const F=un(A,E,u),ee=u[hi],Be=os(E.parent||u[Ie],E,u);if(null!=F)if(Array.isArray(m))for(let Ze=0;ZeA,createScript:A=>A,createScriptURL:A=>A})}catch{}return bA}()?.createHTML(A)||A}function Nc(A){LA=A}function Uu(){if(void 0!==LA)return LA;if(typeof document<"u")return document;throw new z(210,!1)}function r_(){if(void 0===ig&&(ig=null,gt.trustedTypes))try{ig=gt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:A=>A,createScript:A=>A,createScriptURL:A=>A})}catch{}return ig}function hy(A){return r_()?.createHTML(A)||A}function ng(A){return r_()?.createScriptURL(A)||A}class zu{constructor(u){this.changingThisBreaksApplicationSecurity=u}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${R})`}}class ip extends zu{getTypeName(){return"HTML"}}class Zd extends zu{getTypeName(){return"Style"}}class qA extends zu{getTypeName(){return"Script"}}class rg extends zu{getTypeName(){return"URL"}}class bh extends zu{getTypeName(){return"ResourceURL"}}function XA(A){return A instanceof zu?A.changingThisBreaksApplicationSecurity:A}function Jd(A,u){const m=function af(A){return A instanceof zu&&A.getTypeName()||null}(A);if(null!=m&&m!==u){if("ResourceURL"===m&&"URL"===u)return!0;throw new Error(`Required a safe ${u}, got a ${m} (see ${R})`)}return m===u}function sf(A){return new ip(A)}function lf(A){return new Zd(A)}function yc(A){return new qA(A)}function py(A){return new rg(A)}function xd(A){return new bh(A)}class Wa{constructor(u){this.inertDocumentHelper=u}getInertBodyElement(u){u=""+u;try{const m=(new window.DOMParser).parseFromString(Ea(u),"text/html").body;return null===m?this.inertDocumentHelper.getInertBodyElement(u):(m.removeChild(m.firstChild),m)}catch{return null}}}class cf{constructor(u){this.defaultDoc=u,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(u){const m=this.inertDocument.createElement("template");return m.innerHTML=Ea(u),m}}const k3=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function a_(A){return(A=String(A)).match(k3)?A:"unsafe:"+A}function Hu(A){const u={};for(const m of A.split(","))u[m]=!0;return u}function og(...A){const u={};for(const m of A)for(const E in m)m.hasOwnProperty(E)&&(u[E]=!0);return u}const gy=Hu("area,br,col,hr,img,wbr"),Nb=Hu("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ub=Hu("rp,rt"),fy=og(gy,og(Nb,Hu("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),og(Ub,Hu("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),og(Ub,Nb)),zb=Hu("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Hb=og(zb,Hu("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Hu("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),GD=Hu("script,style,template");class s_{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(u){let m=u.firstChild,E=!0;for(;m;)if(m.nodeType===Node.ELEMENT_NODE?E=this.startElement(m):m.nodeType===Node.TEXT_NODE?this.chars(m.nodeValue):this.sanitizedSomething=!0,E&&m.firstChild)m=m.firstChild;else for(;m;){m.nodeType===Node.ELEMENT_NODE&&this.endElement(m);let F=this.checkClobberedElement(m,m.nextSibling);if(F){m=F;break}m=this.checkClobberedElement(m,m.parentNode)}return this.buf.join("")}startElement(u){const m=u.nodeName.toLowerCase();if(!fy.hasOwnProperty(m))return this.sanitizedSomething=!0,!GD.hasOwnProperty(m);this.buf.push("<"),this.buf.push(m);const E=u.attributes;for(let F=0;F"),!0}endElement(u){const m=u.nodeName.toLowerCase();fy.hasOwnProperty(m)&&!gy.hasOwnProperty(m)&&(this.buf.push(""))}chars(u){this.buf.push(Zb(u))}checkClobberedElement(u,m){if(m&&(u.compareDocumentPosition(m)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${u.outerHTML}`);return m}}const Tm=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Gb=/([^\#-~ |!])/g;function Zb(A){return A.replace(/&/g,"&").replace(Tm,function(u){return"&#"+(1024*(u.charCodeAt(0)-55296)+(u.charCodeAt(1)-56320)+65536)+";"}).replace(Gb,function(u){return"&#"+u.charCodeAt(0)+";"}).replace(//g,">")}let Im;function np(A,u){let m=null;try{Im=Im||function o_(A){const u=new cf(A);return function zD(){try{return!!(new window.DOMParser).parseFromString(Ea(""),"text/html")}catch{return!1}}()?new Wa(u):u}(A);let E=u?String(u):"";m=Im.getInertBodyElement(E);let F=5,ee=E;do{if(0===F)throw new Error("Failed to sanitize html because the input is unstable");F--,E=ee,ee=m.innerHTML,m=Im.getInertBodyElement(E)}while(E!==ee);return Ea((new s_).sanitizeChildren(l_(m)||m))}finally{if(m){const E=l_(m)||m;for(;E.firstChild;)E.removeChild(E.firstChild)}}}function l_(A){return"content"in A&&function Jb(A){return A.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===A.nodeName}(A)?A.content:null}var Af=function(A){return A[A.NONE=0]="NONE",A[A.HTML=1]="HTML",A[A.STYLE=2]="STYLE",A[A.SCRIPT=3]="SCRIPT",A[A.URL=4]="URL",A[A.RESOURCE_URL=5]="RESOURCE_URL",A}(Af||{});function ZD(A){const u=km();return u?hy(u.sanitize(Af.HTML,A)||""):Jd(A,"HTML")?hy(XA(A)):np(Uu(),Z(A))}function my(A){const u=km();return u?u.sanitize(Af.URL,A)||"":Jd(A,"URL")?XA(A):a_(Z(A))}function _y(A){const u=km();if(u)return ng(u.sanitize(Af.RESOURCE_URL,A)||"");if(Jd(A,"ResourceURL"))return ng(XA(A));throw new z(904,!1)}function vy(A,u,m){return function Vb(A,u){return"src"===u&&("embed"===A||"frame"===A||"iframe"===A||"media"===A||"script"===A)||"href"===u&&("base"===A||"link"===A)?_y:my}(u,m)(A)}function km(){const A=_n();return A&&A[kt].sanitizer}const Bd=new Gt("ENVIRONMENT_INITIALIZER"),WD=new Gt("INJECTOR",-1),vi=new Gt("INJECTOR_DEF_TYPES");class rp{get(u,m=Kt){if(m===Kt){const E=new Error(`NullInjectorError: No provider for ${M(u)}!`);throw E.name="NullInjectorError",E}return m}}function Wb(A){return{\u0275providers:A}}function S3(...A){return{\u0275providers:KD(0,A),\u0275fromNgModule:!0}}function KD(A,...u){const m=[],E=new Set;let F;const ee=de=>{m.push(de)};return WA(u,de=>{const Be=de;yy(Be,ee,[],E)&&(F||=[],F.push(Be))}),void 0!==F&&qD(F,ee),m}function qD(A,u){for(let m=0;m{u(ee,E)})}}function yy(A,u,m,E){if(!(A=Q(A)))return!1;let F=null,ee=Nt(A);const de=!ee&&Br(A);if(ee||de){if(de&&!de.standalone)return!1;F=A}else{const Ze=A.ngModule;if(ee=Nt(Ze),!ee)return!1;F=Ze}const Be=E.has(F);if(de){if(Be)return!1;if(E.add(F),de.dependencies){const Ze="function"==typeof de.dependencies?de.dependencies():de.dependencies;for(const Mt of Ze)yy(Mt,u,m,E)}}else{if(!ee)return!1;{if(null!=ee.imports&&!Be){let Mt;E.add(F);try{WA(ee.imports,Wt=>{yy(Wt,u,m,E)&&(Mt||=[],Mt.push(Wt))})}finally{}void 0!==Mt&&qD(Mt,u)}if(!Be){const Mt=_s(F)||(()=>new F);u({provide:F,useFactory:Mt,deps:xn},F),u({provide:vi,useValue:F,multi:!0},F),u({provide:Bd,useValue:()=>Ji(F),multi:!0},F)}const Ze=ee.providers;if(null!=Ze&&!Be){const Mt=A;wy(Ze,Wt=>{u(Wt,Mt)})}}}return F!==A&&void 0!==A.providers}function wy(A,u){for(let m of A)d(m)&&(m=m.\u0275providers),Array.isArray(m)?wy(m,u):u(m)}const XD=b({provide:String,useValue:b});function Kb(A){return null!==A&&"object"==typeof A&&XD in A}function ag(A){return"function"==typeof A}const Xb=new Gt("Set Injector scope."),Cy={},eT={};let $b;function by(){return void 0===$b&&($b=new rp),$b}class xh{}class Qm extends xh{get destroyed(){return this._destroyed}constructor(u,m,E,F){super(),this.parent=m,this.source=E,this.scopes=F,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,n1(u,de=>this.processProvider(de)),this.records.set(WD,Sm(void 0,this)),F.has("environment")&&this.records.set(xh,Sm(void 0,this));const ee=this.records.get(Xb);null!=ee&&"string"==typeof ee.value&&this.scopes.add(ee.value),this.injectorDefTypes=new Set(this.get(vi.multi,xn,Dt.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const m of this._ngOnDestroyHooks)m.ngOnDestroy();const u=this._onDestroyHooks;this._onDestroyHooks=[];for(const m of u)m()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(u){return this.assertNotDestroyed(),this._onDestroyHooks.push(u),()=>this.removeOnDestroy(u)}runInContext(u){this.assertNotDestroyed();const m=Ti(this),E=qe(void 0);try{return u()}finally{Ti(m),qe(E)}}get(u,m=Kt,E=Dt.Default){if(this.assertNotDestroyed(),u.hasOwnProperty(Or))return u[Or](this);E=Pn(E);const ee=Ti(this),de=qe(void 0);try{if(!(E&Dt.SkipSelf)){let Ze=this.records.get(u);if(void 0===Ze){const Mt=function t1(A){return"function"==typeof A||"object"==typeof A&&A instanceof Gt}(u)&&be(u);Ze=Mt&&this.injectableDefInScope(Mt)?Sm(e1(u),Cy):null,this.records.set(u,Ze)}if(null!=Ze)return this.hydrate(u,Ze)}return(E&Dt.Self?by():this.parent).get(u,m=E&Dt.Optional&&m===Kt?null:m)}catch(Be){if("NullInjectorError"===Be.name){if((Be[Ge]=Be[Ge]||[]).unshift(M(u)),ee)throw Be;return function xi(A,u,m,E){const F=A[Ge];throw u[Bt]&&F.unshift(u[Bt]),A.message=function sn(A,u,m,E=null){A=A&&"\n"===A.charAt(0)&&"\u0275"==A.charAt(1)?A.slice(2):A;let F=M(u);if(Array.isArray(u))F=u.map(M).join(" -> ");else if("object"==typeof u){let ee=[];for(let de in u)if(u.hasOwnProperty(de)){let Be=u[de];ee.push(de+":"+("string"==typeof Be?JSON.stringify(Be):M(Be)))}F=`{${ee.join(", ")}}`}return`${m}${E?"("+E+")":""}[${F}]: ${A.replace(qt,"\n ")}`}("\n"+A.message,F,m,E),A.ngTokenPath=F,A[Ge]=null,A}(Be,u,"R3InjectorError",this.source)}throw Be}finally{qe(de),Ti(ee)}}resolveInjectorInitializers(){const u=Ti(this),m=qe(void 0);try{const F=this.get(Bd.multi,xn,Dt.Self);for(const ee of F)ee()}finally{Ti(u),qe(m)}}toString(){const u=[],m=this.records;for(const E of m.keys())u.push(M(E));return`R3Injector[${u.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new z(205,!1)}processProvider(u){let m=ag(u=Q(u))?u:Q(u&&u.provide);const E=function F3(A){return Kb(A)?Sm(void 0,A.useValue):Sm(iT(A),Cy)}(u);if(ag(u)||!0!==u.multi)this.records.get(m);else{let F=this.records.get(m);F||(F=Sm(void 0,Cy,!0),F.factory=()=>mn(F.multi),this.records.set(m,F)),m=u,F.multi.push(u)}this.records.set(m,E)}hydrate(u,m){return m.value===Cy&&(m.value=eT,m.value=m.factory()),"object"==typeof m.value&&m.value&&function L3(A){return null!==A&&"object"==typeof A&&"function"==typeof A.ngOnDestroy}(m.value)&&this._ngOnDestroyHooks.add(m.value),m.value}injectableDefInScope(u){if(!u.providedIn)return!1;const m=Q(u.providedIn);return"string"==typeof m?"any"===m||this.scopes.has(m):this.injectorDefTypes.has(m)}removeOnDestroy(u){const m=this._onDestroyHooks.indexOf(u);-1!==m&&this._onDestroyHooks.splice(m,1)}}function e1(A){const u=be(A),m=null!==u?u.factory:_s(A);if(null!==m)return m;if(A instanceof Gt)throw new z(204,!1);if(A instanceof Function)return function tT(A){const u=A.length;if(u>0)throw vd(u,"?"),new z(204,!1);const m=function _t(A){return A&&(A[ut]||A[Xe])||null}(A);return null!==m?()=>m.factory(A):()=>new A}(A);throw new z(204,!1)}function iT(A,u,m){let E;if(ag(A)){const F=Q(A);return _s(F)||e1(F)}if(Kb(A))E=()=>Q(A.useValue);else if(function qb(A){return!(!A||!A.useFactory)}(A))E=()=>A.useFactory(...mn(A.deps||[]));else if(function $D(A){return!(!A||!A.useExisting)}(A))E=()=>Ji(Q(A.useExisting));else{const F=Q(A&&(A.useClass||A.provide));if(!function O3(A){return!!A.deps}(A))return _s(F)||e1(F);E=()=>new F(...mn(A.deps))}return E}function Sm(A,u,m=!1){return{factory:A,value:u,multi:m?[]:void 0}}function n1(A,u){for(const m of A)Array.isArray(m)?n1(m,u):m&&d(m)?n1(m.\u0275providers,u):u(m)}const nT=new Gt("AppId",{providedIn:"root",factory:()=>R3}),R3="ng",r1=new Gt("Platform Initializer"),o1=new Gt("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Y3=new Gt("AnimationModuleType"),N3=new Gt("CSP nonce",{providedIn:"root",factory:()=>Uu().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Xs=(A,u,m)=>null;function df(A,u,m=!1){return Xs(A,u,m)}class cT{}class AT{}class j3{resolveComponentFactory(u){throw function Z3(A){const u=Error(`No component factory found for ${M(A)}.`);return u.ngComponent=A,u}(u)}}let uf=(()=>{class A{static{this.NULL=new j3}}return A})();function uT(){return hf(xl(),_n())}function hf(A,u){return new pf(le(A,u))}let pf=(()=>{class A{constructor(m){this.nativeElement=m}static{this.__NG_ELEMENT_ID__=uT}}return A})();function hT(A){return A instanceof pf?A.nativeElement:A}class pT{}let gT=(()=>{class A{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function fT(){const A=_n(),m=Mi(xl().index,A);return(va(m)?m:A)[hi]}()}}return A})(),h_=(()=>{class A{static{this.\u0275prov=St({token:A,providedIn:"root",factory:()=>null})}}return A})();class h1{constructor(u){this.full=u,this.major=u.split(".")[0],this.minor=u.split(".")[1],this.patch=u.split(".").slice(2).join(".")}}const Fm=new h1("16.2.12"),p1={};function p_(A,u=null,m=null,E){const F=_1(A,u,m,E);return F.resolveInjectorInitializers(),F}function _1(A,u=null,m=null,E,F=new Set){const ee=[m||xn,S3(A)];return E=E||("object"==typeof A?void 0:M(A)),new Qm(ee,u||by(),E||null,F)}let Ed=(()=>{class A{static{this.THROW_IF_NOT_FOUND=Kt}static{this.NULL=new rp}static create(m,E){if(Array.isArray(m))return p_({name:""},E,m,"");{const F=m.name??"";return p_({name:F},m.parent,m.providers,F)}}static{this.\u0275prov=St({token:A,providedIn:"any",factory:()=>Ji(WD)})}static{this.__NG_ELEMENT_ID__=-1}}return A})();function Om(A){return A.ngOriginalError}class xA{constructor(){this._console=console}handleError(u){const m=this._findOriginalError(u);this._console.error("ERROR",u),m&&this._console.error("ORIGINAL ERROR",m)}_findOriginalError(u){let m=u&&Om(u);for(;m&&Om(m);)m=Om(m);return m||null}}function ky(A){return u=>{setTimeout(A,void 0,u)}}const gu=class wT extends V.x{constructor(u=!1){super(),this.__isAsync=u}emit(u){super.next(u)}subscribe(u,m,E){let F=u,ee=m||(()=>null),de=E;if(u&&"object"==typeof u){const Ze=u;F=Ze.next?.bind(Ze),ee=Ze.error?.bind(Ze),de=Ze.complete?.bind(Ze)}this.__isAsync&&(ee=ky(ee),F&&(F=ky(F)),de&&(de=ky(de)));const Be=super.subscribe({next:F,error:ee,complete:de});return u instanceof K.w0&&u.add(Be),Be}};function Qy(...A){}class wc{constructor({enableLongStackTrace:u=!1,shouldCoalesceEventChangeDetection:m=!1,shouldCoalesceRunChangeDetection:E=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new gu(!1),this.onMicrotaskEmpty=new gu(!1),this.onStable=new gu(!1),this.onError=new gu(!1),typeof Zone>"u")throw new z(908,!1);Zone.assertZonePatched();const F=this;F._nesting=0,F._outer=F._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(F._inner=F._inner.fork(new Zone.TaskTrackingZoneSpec)),u&&Zone.longStackTraceZoneSpec&&(F._inner=F._inner.fork(Zone.longStackTraceZoneSpec)),F.shouldCoalesceEventChangeDetection=!E&&m,F.shouldCoalesceRunChangeDetection=E,F.lastRequestAnimationFrameId=-1,F.nativeRequestAnimationFrame=function CT(){const A="function"==typeof gt.requestAnimationFrame;let u=gt[A?"requestAnimationFrame":"setTimeout"],m=gt[A?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&u&&m){const E=u[Zone.__symbol__("OriginalDelegate")];E&&(u=E);const F=m[Zone.__symbol__("OriginalDelegate")];F&&(m=F)}return{nativeRequestAnimationFrame:u,nativeCancelAnimationFrame:m}}().nativeRequestAnimationFrame,function w1(A){const u=()=>{!function Fy(A){A.isCheckStableRunning||-1!==A.lastRequestAnimationFrameId||(A.lastRequestAnimationFrameId=A.nativeRequestAnimationFrame.call(gt,()=>{A.fakeTopEventTask||(A.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{A.lastRequestAnimationFrameId=-1,C1(A),A.isCheckStableRunning=!0,Py(A),A.isCheckStableRunning=!1},void 0,()=>{},()=>{})),A.fakeTopEventTask.invoke()}),C1(A))}(A)};A._inner=A._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(m,E,F,ee,de,Be)=>{if(function q3(A){return!(!Array.isArray(A)||1!==A.length)&&!0===A[0].data?.__ignore_ng_zone__}(Be))return m.invokeTask(F,ee,de,Be);try{return xT(A),m.invokeTask(F,ee,de,Be)}finally{(A.shouldCoalesceEventChangeDetection&&"eventTask"===ee.type||A.shouldCoalesceRunChangeDetection)&&u(),BT(A)}},onInvoke:(m,E,F,ee,de,Be,Ze)=>{try{return xT(A),m.invoke(F,ee,de,Be,Ze)}finally{A.shouldCoalesceRunChangeDetection&&u(),BT(A)}},onHasTask:(m,E,F,ee)=>{m.hasTask(F,ee),E===F&&("microTask"==ee.change?(A._hasPendingMicrotasks=ee.microTask,C1(A),Py(A)):"macroTask"==ee.change&&(A.hasPendingMacrotasks=ee.macroTask))},onHandleError:(m,E,F,ee)=>(m.handleError(F,ee),A.runOutsideAngular(()=>A.onError.emit(ee)),!1)})}(F)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!wc.isInAngularZone())throw new z(909,!1)}static assertNotInAngularZone(){if(wc.isInAngularZone())throw new z(909,!1)}run(u,m,E){return this._inner.run(u,m,E)}runTask(u,m,E,F){const ee=this._inner,de=ee.scheduleEventTask("NgZoneEvent: "+F,u,Sy,Qy,Qy);try{return ee.runTask(de,m,E)}finally{ee.cancelTask(de)}}runGuarded(u,m,E){return this._inner.runGuarded(u,m,E)}runOutsideAngular(u){return this._outer.run(u)}}const Sy={};function Py(A){if(0==A._nesting&&!A.hasPendingMicrotasks&&!A.isStable)try{A._nesting++,A.onMicrotaskEmpty.emit(null)}finally{if(A._nesting--,!A.hasPendingMicrotasks)try{A.runOutsideAngular(()=>A.onStable.emit(null))}finally{A.isStable=!0}}}function C1(A){A.hasPendingMicrotasks=!!(A._hasPendingMicrotasks||(A.shouldCoalesceEventChangeDetection||A.shouldCoalesceRunChangeDetection)&&-1!==A.lastRequestAnimationFrameId)}function xT(A){A._nesting++,A.isStable&&(A.isStable=!1,A.onUnstable.emit(null))}function BT(A){A._nesting--,Py(A)}class K3{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new gu,this.onMicrotaskEmpty=new gu,this.onStable=new gu,this.onError=new gu}run(u,m,E){return u.apply(m,E)}runGuarded(u,m,E){return u.apply(m,E)}runOutsideAngular(u){return u()}runTask(u,m,E,F){return u.apply(m,E)}}const ET=new Gt("",{providedIn:"root",factory:MT});function MT(){const A=fn(wc);let u=!0;const m=new T.y(F=>{u=A.isStable&&!A.hasPendingMacrotasks&&!A.hasPendingMicrotasks,A.runOutsideAngular(()=>{F.next(u),F.complete()})}),E=new T.y(F=>{let ee;A.runOutsideAngular(()=>{ee=A.onStable.subscribe(()=>{wc.assertNotInAngularZone(),queueMicrotask(()=>{!u&&!A.hasPendingMacrotasks&&!A.hasPendingMicrotasks&&(u=!0,F.next(!0))})})});const de=A.onUnstable.subscribe(()=>{wc.assertInAngularZone(),u&&(u=!1,A.runOutsideAngular(()=>{F.next(!1)}))});return()=>{ee.unsubscribe(),de.unsubscribe()}});return(0,e.T)(m,E.pipe((0,h.B)()))}function DT(A){return A.ownerDocument.defaultView}function TT(A){return A.ownerDocument}function op(A){return A instanceof Function?A():A}let b1=(()=>{class A{constructor(){this.renderDepth=0,this.handler=null}begin(){this.handler?.validateBegin(),this.renderDepth++}end(){this.renderDepth--,0===this.renderDepth&&this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null}static{this.\u0275prov=St({token:A,providedIn:"root",factory:()=>new A})}}return A})();function f_(A){for(;A;){A[mr]|=64;const u=Dl(A);if(sA(A)&&!u)return A;A=u}return null}const x1=new Gt("",{providedIn:"root",factory:()=>!1});let m_=null;function Yy(A,u){return A[u]??I1()}function LT(A,u){const m=I1();m.producerNode?.length&&(A[u]=m_,m.lView=A,m_=T1())}const RT={...ba,consumerIsAlwaysLive:!0,consumerMarkedDirty:A=>{f_(A.lView)},lView:null};function T1(){return Object.create(RT)}function I1(){return m_??=T1(),m_}const Zo={};function Bh(A){Ny(Co(),_n(),hl()+A,!1)}function Ny(A,u,m,E){if(!E)if(3==(3&u[mr])){const ee=A.preOrderCheckHooks;null!==ee&&eA(u,ee,m)}else{const ee=A.preOrderHooks;null!==ee&&On(u,ee,0,m)}Yo(m)}function mf(A,u=Dt.Default){const m=_n();return null===m?Ji(A,u):ri(xl(),m,Q(A),u)}function YT(){throw new Error("invalid")}function Ym(A,u,m,E,F,ee,de,Be,Ze,Mt,Wt){const yi=u.blueprint.slice();return yi[lo]=F,yi[mr]=140|E,(null!==Mt||A&&2048&A[mr])&&(yi[mr]|=2048),jr(yi),yi[zo]=yi[an]=A,yi[Ye]=m,yi[kt]=de||A&&A[kt],yi[hi]=Be||A&&A[hi],yi[ht]=Ze||A&&A[ht]||null,yi[Ie]=ee,yi[hr]=function bi(){return fi++}(),yi[$n]=Wt,yi[Er]=Mt,yi[Ui]=2==u.type?A[Ui]:yi,yi}function lg(A,u,m,E,F){let ee=A.data[u];if(null===ee)ee=function Uy(A,u,m,E,F){const ee=Eu(),de=dd(),Ze=A.data[u]=function HT(A,u,m,E,F,ee){let de=u?u.injectorIndex:-1,Be=0;return wa()&&(Be|=128),{type:m,index:E,insertBeforeIndex:null,injectorIndex:de,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:Be,providerIndexes:0,value:F,attrs:ee,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:u,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,de?ee:ee&&ee.parent,m,u,E,F);return null===A.firstChild&&(A.firstChild=Ze),null!==ee&&(de?null==ee.child&&null!==Ze.parent&&(ee.child=Ze):null===ee.next&&(ee.next=Ze,Ze.prev=ee)),Ze}(A,u,m,E,F),function zp(){return Vr.lFrame.inI18n}()&&(ee.flags|=32);else if(64&ee.type){ee.type=m,ee.value=E,ee.attrs=F;const de=function Ad(){const A=Vr.lFrame,u=A.currentTNode;return A.isParent?u:u.parent}();ee.injectorIndex=null===de?-1:de.injectorIndex}return qc(ee,!0),ee}function Nm(A,u,m,E){if(0===m)return-1;const F=u.length;for(let ee=0;eeLn&&Ny(A,u,Ln,!1),Ws(Be?2:0,F);const Mt=Be?ee:null,Wt=es(Mt);try{null!==Mt&&(Mt.dirty=!1),m(E,F)}finally{lA(Mt,Wt)}}finally{Be&&null===u[Ur]&<(u,Ur),Yo(de),Ws(Be?3:1,F)}}function zy(A,u,m){if(vl(u)){const E=Jr(null);try{const ee=u.directiveEnd;for(let de=u.directiveStart;denull;function F1(A,u,m,E){for(let F in A)if(A.hasOwnProperty(F)){m=null===m?{}:m;const ee=A[F];null===E?O1(m,u,F,ee):E.hasOwnProperty(F)&&O1(m,u,E[F],ee)}return m}function O1(A,u,m,E){A.hasOwnProperty(m)?A[m].push(u,E):A[m]=[u,E]}function Vd(A,u,m,E,F,ee,de,Be){const Ze=le(u,m);let Wt,Mt=u.inputs;!Be&&null!=Mt&&(Wt=Mt[E])?(__(A,m,Wt,E,F),yl(u)&&function aF(A,u){const m=Mi(u,A);16&m[mr]||(m[mr]|=64)}(m,u.index)):3&u.type&&(E=function GT(A){return"class"===A?"className":"for"===A?"htmlFor":"formaction"===A?"formAction":"innerHtml"===A?"innerHTML":"readonly"===A?"readOnly":"tabindex"===A?"tabIndex":A}(E),F=null!=de?de(F,u.value||"",E):F,ee.setProperty(Ze,E,F))}function Jy(A,u,m,E){if(cd()){const F=null===E?null:{"":-1},ee=function jT(A,u){const m=A.directiveRegistry;let E=null,F=null;if(m)for(let ee=0;ee0;){const m=A[--u];if("number"==typeof m&&m<0)return m}return 0})(de)!=Be&&de.push(Be),de.push(m,E,ee)}}(A,u,E,Nm(A,m,F.hostVars,Zo),F)}function Eh(A,u,m,E,F,ee){const de=le(A,u);!function U1(A,u,m,E,F,ee,de){if(null==ee)A.removeAttribute(u,F,m);else{const Be=null==de?Z(ee):de(ee,E||"",F);A.setAttribute(u,F,Be,m)}}(u[hi],de,ee,A.value,m,E,F)}function pF(A,u,m,E,F,ee){const de=ee[u];if(null!==de)for(let Be=0;Be{class A{constructor(){this.all=new Set,this.queue=new Map}create(m,E,F){const ee=typeof Zone>"u"?null:Zone.current,de=function Bn(A,u,m){const E=Object.create($o);m&&(E.consumerAllowSignalWrites=!0),E.fn=A,E.schedule=u;const F=de=>{E.cleanupFn=de};return E.ref={notify:()=>kc(E),run:()=>{if(E.dirty=!1,E.hasRun&&!cA(E))return;E.hasRun=!0;const de=es(E);try{E.cleanupFn(),E.cleanupFn=Mr,E.fn(F)}finally{lA(E,de)}},cleanup:()=>E.cleanupFn()},E.ref}(m,Mt=>{this.all.has(Mt)&&this.queue.set(Mt,ee)},F);let Be;this.all.add(de),de.notify();const Ze=()=>{de.cleanup(),Be?.(),this.all.delete(de),this.queue.delete(de)};return Be=E?.onDestroy(Ze),{destroy:Ze}}flush(){if(0!==this.queue.size)for(const[m,E]of this.queue)this.queue.delete(m),E?E.run(()=>m.run()):m.run()}get isQueueEmpty(){return 0===this.queue.size}static{this.\u0275prov=St({token:A,providedIn:"root",factory:()=>new A})}}return A})();function v_(A,u,m){let E=m?A.styles:null,F=m?A.classes:null,ee=0;if(null!==u)for(let de=0;de0){j1(A,1);const F=m.components;null!==F&&W1(A,F,1)}}function W1(A,u,m){for(let E=0;E-1&&(si(u,E),$h(m,E))}this._attachedToViewContainer=!1}Bi(this._lView[kn],this._lView)}onDestroy(u){!function Zl(A,u){if(256==(256&A[mr]))throw new z(911,!1);null===A[vr]&&(A[vr]=[]),A[vr].push(u)}(this._lView,u)}markForCheck(){f_(this._cdRefInjectingView||this._lView)}detach(){this._lView[mr]&=-129}reattach(){this._lView[mr]|=128}detectChanges(){y_(this._lView[kn],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new z(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function De(A,u){vc(A,u,u[hi],2,null,null)}(this._lView[kn],this._lView)}attachToAppRef(u){if(this._attachedToViewContainer)throw new z(902,!1);this._appRef=u}}class _F extends w_{constructor(u){super(u),this._view=u}detectChanges(){const u=this._view;y_(u[kn],u,u[Ye],!1)}checkNoChanges(){}get context(){return null}}class rI extends uf{constructor(u){super(),this.ngModule=u}resolveComponentFactory(u){const m=Br(u);return new Hm(m,this.ngModule)}}function oI(A){const u=[];for(let m in A)A.hasOwnProperty(m)&&u.push({propName:A[m],templateName:m});return u}class sI{constructor(u,m){this.injector=u,this.parentInjector=m}get(u,m,E){E=Pn(E);const F=this.injector.get(u,p1,E);return F!==p1||m===p1?F:this.parentInjector.get(u,m,E)}}class Hm extends AT{get inputs(){const u=this.componentDef,m=u.inputTransforms,E=oI(u.inputs);if(null!==m)for(const F of E)m.hasOwnProperty(F.propName)&&(F.transform=m[F.propName]);return E}get outputs(){return oI(this.componentDef.outputs)}constructor(u,m){super(),this.componentDef=u,this.ngModule=m,this.componentType=u.type,this.selector=function nn(A){return A.map(Vi).join(",")}(u.selectors),this.ngContentSelectors=u.ngContentSelectors?u.ngContentSelectors:[],this.isBoundToModule=!!m}create(u,m,E,F){let ee=(F=F||this.ngModule)instanceof xh?F:F?.injector;ee&&null!==this.componentDef.getStandaloneInjector&&(ee=this.componentDef.getStandaloneInjector(ee)||ee);const de=ee?new sI(u,ee):u,Be=de.get(pT,null);if(null===Be)throw new z(407,!1);const yi={rendererFactory:Be,sanitizer:de.get(h_,null),effectManager:de.get(Z1,null),afterRenderEventManager:de.get(b1,null)},Li=Be.createRenderer(null,this.componentDef),Xi=this.componentDef.selectors[0][0]||"div",Mn=E?function UT(A,u,m,E){const ee=E.get(x1,!1)||m===wn.ShadowDom,de=A.selectRootElement(u,ee);return function zT(A){S1(A)}(de),de}(Li,E,this.componentDef.encapsulation,de):Je(Li,Xi,function aI(A){const u=A.toLowerCase();return"svg"===u?bl:"math"===u?"math":null}(Xi)),io=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let Gn=null;null!==Mn&&(Gn=df(Mn,de,!0));const Ro=Zy(0,null,null,1,0,null,null,null,null,null,null),_a=Ym(null,Ro,null,io,null,null,yi,Li,de,null,Gn);let Ss,Id;uA(_a);try{const mp=this.componentDef;let b0,OE=null;mp.findHostDirectiveDefs?(b0=[],OE=new Map,mp.findHostDirectiveDefs(mp,b0,OE),b0.push(mp)):b0=[mp];const p6=function C_(A,u){const m=A[kn],E=Ln;return A[E]=u,lg(m,E,2,"#host",null)}(_a,Mn),g6=function Xy(A,u,m,E,F,ee,de){const Be=F[kn];!function lI(A,u,m,E){for(const F of A)u.mergedAttrs=Ai(u.mergedAttrs,F.hostAttrs);null!==u.mergedAttrs&&(v_(u,u.mergedAttrs,!0),null!==m&&ec(E,m,u))}(E,A,u,de);let Ze=null;null!==u&&(Ze=df(u,F[ht]));const Mt=ee.rendererFactory.createRenderer(u,m);let Wt=16;m.signals?Wt=4096:m.onPush&&(Wt=64);const yi=Ym(F,Gy(m),null,Wt,F[A.index],A,ee,Mt,null,null,Ze);return Be.firstCreatePass&&Y1(Be,A,E.length-1),jy(F,yi),F[A.index]=yi}(p6,Mn,mp,b0,_a,yi,Li);Id=Ct(Ro,Ln),Mn&&function sp(A,u,m,E){if(E)wo(A,m,["ng-version",Fm.full]);else{const{attrs:F,classes:ee}=function Cn(A){const u=[],m=[];let E=1,F=2;for(;E0&&CA(A,m,ee.join(" "))}}(Li,mp,Mn,E),void 0!==m&&function b_(A,u,m){const E=A.projection=[];for(let F=0;F=0;E--){const F=A[E];F.hostVars=u+=F.hostVars,F.hostAttrs=Ai(F.hostAttrs,m=Ai(m,F.hostAttrs))}}(E)}function vf(A){return A===gr?{}:A===xn?[]:A}function ew(A,u){const m=A.viewQuery;A.viewQuery=m?(E,F)=>{u(E,F),m(E,F)}:u}function q1(A,u){const m=A.contentQueries;A.contentQueries=m?(E,F,ee)=>{u(E,F,ee),m(E,F,ee)}:u}function nA(A,u){const m=A.hostBindings;A.hostBindings=m?(E,F)=>{u(E,F),m(E,F)}:u}function tx(A){const u=A.inputConfig,m={};for(const E in u)if(u.hasOwnProperty(E)){const F=u[E];Array.isArray(F)&&F[2]&&(m[E]=F[2])}A.inputTransforms=m}function yf(A){return!!Zm(A)&&(Array.isArray(A)||!(A instanceof Map)&&Symbol.iterator in A)}function Zm(A){return null!==A&&("function"==typeof A||"object"==typeof A)}function fu(A,u,m){return A[u]=m}function Mh(A,u){return A[u]}function rA(A,u,m){return!Object.is(A[u],m)&&(A[u]=m,!0)}function cg(A,u,m,E){const F=rA(A,u,m);return rA(A,u+1,E)||F}function Jm(A,u,m,E,F){const ee=cg(A,u,m,E);return rA(A,u+2,F)||ee}function Wd(A,u,m,E,F,ee){const de=cg(A,u,m,E);return cg(A,u+2,F,ee)||de}function iw(A,u,m,E){const F=_n();return rA(F,ud(),u)&&(Co(),Eh(No(),F,A,u,m,E)),iw}function Ag(A,u,m,E){return rA(A,ud(),m)?u+Z(m)+E:Zo}function wf(A,u,m,E,F,ee){const Be=cg(A,function FA(){return Vr.lFrame.bindingIndex}(),m,F);return Pc(2),Be?u+Z(m)+E+Z(F)+ee:Zo}function xI(A,u,m,E,F,ee,de,Be){const Ze=_n(),Mt=Co(),Wt=A+Ln,yi=Mt.firstCreatePass?function BF(A,u,m,E,F,ee,de,Be,Ze){const Mt=u.consts,Wt=lg(u,A,4,de||null,rr(Mt,Be));Jy(u,m,Wt,rr(Mt,Ze)),Bl(u,Wt);const yi=Wt.tView=Zy(2,Wt,E,F,ee,u.directiveRegistry,u.pipeRegistry,null,u.schemas,Mt,null);return null!==u.queries&&(u.queries.template(u,Wt),yi.queries=u.queries.embeddedTView(Wt)),Wt}(Wt,Mt,Ze,u,m,E,F,ee,de):Mt.data[Wt];qc(yi,!1);const Li=BI(Mt,Ze,yi,A);OA()&&Mo(Mt,Ze,Li,yi),nr(Li,Ze),jy(Ze,Ze[Wt]=KT(Li,Ze,Li,yi)),Ls(yi)&&Um(Mt,Ze,yi),null!=de&&Hy(Ze,yi,Be)}let BI=function dx(A,u,m,E){return Wr(!0),u[hi].createComment("")};function ux(A){return Xt(function Zg(){return Vr.lFrame.contextLView}(),Ln+A)}function I_(A,u,m){const E=_n();return rA(E,ud(),u)&&Vd(Co(),No(),E,A,u,E[hi],m,!1),I_}function hx(A,u,m,E,F){const de=F?"class":"style";__(A,m,u.inputs[de],de,E)}function k_(A,u,m,E){const F=_n(),ee=Co(),de=Ln+A,Be=F[hi],Ze=ee.firstCreatePass?function TF(A,u,m,E,F,ee){const de=u.consts,Ze=lg(u,A,2,E,rr(de,F));return Jy(u,m,Ze,rr(de,ee)),null!==Ze.attrs&&v_(Ze,Ze.attrs,!1),null!==Ze.mergedAttrs&&v_(Ze,Ze.mergedAttrs,!0),null!==u.queries&&u.queries.elementStart(u,Ze),Ze}(de,ee,F,u,m,E):ee.data[de],Mt=EI(ee,F,Ze,Be,u,A);F[de]=Mt;const Wt=Ls(Ze);return qc(Ze,!0),ec(Be,Mt,Ze),32!=(32&Ze.flags)&&OA()&&Mo(ee,F,Mt,Ze),0===function nc(){return Vr.lFrame.elementDepthCount}()&&nr(Mt,F),function ir(){Vr.lFrame.elementDepthCount++}(),Wt&&(Um(ee,F,Ze),zy(ee,Ze,F)),null!==E&&Hy(F,Ze),k_}function Q_(){let A=xl();dd()?Mu():(A=A.parent,qc(A,!1));const u=A;(function Rd(A){return Vr.skipHydrationRootTNode===A})(u)&&function al(){Vr.skipHydrationRootTNode=null}(),function lu(){Vr.lFrame.elementDepthCount--}();const m=Co();return m.firstCreatePass&&(Bl(m,A),vl(A)&&m.queries.elementEnd(A)),null!=u.classesWithoutHost&&function Ba(A){return 0!=(8&A.flags)}(u)&&hx(m,u,_n(),u.classesWithoutHost,!0),null!=u.stylesWithoutHost&&function VA(A){return 0!=(16&A.flags)}(u)&&hx(m,u,_n(),u.stylesWithoutHost,!1),Q_}function px(A,u,m,E){return k_(A,u,m,E),Q_(),px}let EI=(A,u,m,E,F,ee)=>(Wr(!0),Je(E,F,function $c(){return Vr.lFrame.currentNamespace}()));function pw(A,u,m){const E=_n(),F=Co(),ee=A+Ln,de=F.firstCreatePass?function IF(A,u,m,E,F){const ee=u.consts,de=rr(ee,E),Be=lg(u,A,8,"ng-container",de);return null!==de&&v_(Be,de,!0),Jy(u,m,Be,rr(ee,F)),null!==u.queries&&u.queries.elementStart(u,Be),Be}(ee,F,E,u,m):F.data[ee];qc(de,!0);const Be=TI(F,E,de,A);return E[ee]=Be,OA()&&Mo(F,E,Be,de),nr(Be,E),Ls(de)&&(Um(F,E,de),zy(F,de,E)),null!=m&&Hy(E,de),pw}function gw(){let A=xl();const u=Co();return dd()?Mu():(A=A.parent,qc(A,!1)),u.firstCreatePass&&(Bl(u,A),vl(A)&&u.queries.elementEnd(A)),gw}function gx(A,u,m){return pw(A,u,m),gw(),gx}let TI=(A,u,m,E)=>(Wr(!0),Te(u[hi],""));function II(){return _n()}function Mf(A){return!!A&&"function"==typeof A.then}function fx(A){return!!A&&"function"==typeof A.subscribe}function fw(A,u,m,E){const F=_n(),ee=Co(),de=xl();return mw(ee,F,F[hi],de,A,u,E),fw}function S_(A,u){const m=xl(),E=_n(),F=Co();return mw(F,E,qT(uh(F.data),m,E),m,A,u),S_}function mw(A,u,m,E,F,ee,de){const Be=Ls(E),Mt=A.firstCreatePass&&H1(A),Wt=u[Ye],yi=Wy(u);let Li=!0;if(3&E.type||de){const Nn=le(E,u),yr=de?de(Nn):Nn,io=yi.length,Gn=de?_a=>de(pa(_a[E.index])):E.index;let Ro=null;if(!de&&Be&&(Ro=function mx(A,u,m,E){const F=A.cleanup;if(null!=F)for(let ee=0;eeZe?Be[Ze]:null}"string"==typeof de&&(ee+=2)}return null}(A,u,F,E.index)),null!==Ro)(Ro.__ngLastListenerFn__||Ro).__ngNextListenerFn__=ee,Ro.__ngLastListenerFn__=ee,Li=!1;else{ee=Yr(E,u,Wt,ee,!1);const _a=m.listen(yr,F,ee);yi.push(ee,_a),Mt&&Mt.push(F,Gn,io,io+1)}}else ee=Yr(E,u,Wt,ee,!1);const Xi=E.outputs;let Mn;if(Li&&null!==Xi&&(Mn=Xi[F])){const Nn=Mn.length;if(Nn)for(let yr=0;yr-1?Mi(A.index,u):u);let Ze=_r(u,m,E,de),Mt=ee.__ngNextListenerFn__;for(;Mt;)Ze=_r(u,m,Mt,de)&&Ze,Mt=Mt.__ngNextListenerFn__;return F&&!1===Ze&&de.preventDefault(),Ze}}function _x(A=1){return function Iu(A){return(Vr.lFrame.contextLView=function Wh(A,u){for(;A>0;)u=u[an],A--;return u}(A,Vr.lFrame.contextLView))[Ye]}(A)}function vx(A,u){let m=null;const E=function Ei(A){const u=A.attrs;if(null!=u){const m=u.indexOf(5);if(!(1&m))return u[m+1]}return null}(A);for(let F=0;F>17&32767}function yw(A){return 2|A}function ug(A){return(131068&A)>>2}function ww(A,u){return-131069&A|u<<2}function Cw(A){return 1|A}function xw(A,u,m,E,F){const ee=A[m+1],de=null===u;let Be=E?Ap(ee):ug(ee),Ze=!1;for(;0!==Be&&(!1===Ze||de);){const Wt=A[Be+1];xx(A[Be],u)&&(Ze=!0,A[Be+1]=E?Cw(Wt):yw(Wt)),Be=E?Ap(Wt):ug(Wt)}Ze&&(A[m+1]=E?yw(ee):Cw(ee))}function xx(A,u){return null===A||null==u||(Array.isArray(A)?A[1]:A)===u||!(!Array.isArray(A)||"string"!=typeof u)&&zd(A,u)>=0}const tc={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Bx(A){return A.substring(tc.key,tc.keyEnd)}function Ex(A){return A.substring(tc.value,tc.valueEnd)}function PI(A,u){const m=tc.textEnd;return m===u?-1:(u=tc.keyEnd=function Df(A,u,m){for(;u32;)u++;return u}(A,tc.key=u,m),Dh(A,u,m))}function Mx(A,u){const m=tc.textEnd;let E=tc.key=Dh(A,u,m);return m===E?-1:(E=tc.keyEnd=function qm(A,u,m){let E;for(;u=65&&(-33&E)<=90||E>=48&&E<=57);)u++;return u}(A,E,m),E=Bw(A,E,m),E=tc.value=Dh(A,E,m),E=tc.valueEnd=function FF(A,u,m){let E=-1,F=-1,ee=-1,de=u,Be=de;for(;de32&&(Be=de),ee=F,F=E,E=-33&Ze}return Be}(A,E,m),Bw(A,E,m))}function dp(A){tc.key=0,tc.keyEnd=0,tc.value=0,tc.valueEnd=0,tc.textEnd=A.length}function Dh(A,u,m){for(;u=0;m=Mx(u,m))YI(A,Bx(u),Ex(u))}function LI(A){Vu(kx,Th,A,!0)}function Th(A,u){for(let m=function hg(A){return dp(A),PI(A,Dh(A,0,tc.textEnd))}(u);m>=0;m=PI(u,m))Xr(A,Bx(u),!0)}function ju(A,u,m,E){const F=_n(),ee=Co(),de=Pc(2);ee.firstUpdatePass&&Ix(ee,A,de,E),u!==Zo&&rA(F,de,u)&&pg(ee,ee.data[hl()],F,F[hi],A,F[de+1]=function NI(A,u){return null==A||""===A||("string"==typeof u?A+=u:"object"==typeof A&&(A=M(XA(A)))),A}(u,m),E,de)}function Vu(A,u,m,E){const F=Co(),ee=Pc(2);F.firstUpdatePass&&Ix(F,null,ee,E);const de=_n();if(m!==Zo&&rA(de,ee,m)){const Be=F.data[hl()];if(Qx(Be,E)&&!RI(F,ee)){let Ze=E?Be.classesWithoutHost:Be.stylesWithoutHost;null!==Ze&&(m=D(Ze,m||"")),hx(F,Be,de,m,E)}else!function zF(A,u,m,E,F,ee,de,Be){F===Zo&&(F=xn);let Ze=0,Mt=0,Wt=0=A.expandoStartIndex}function Ix(A,u,m,E){const F=A.data;if(null===F[m+1]){const ee=F[hl()],de=RI(A,m);Qx(ee,E)&&null===u&&!de&&(u=!1),u=function LF(A,u,m,E){const F=uh(A);let ee=E?u.residualClasses:u.residualStyles;if(null===F)0===(E?u.classBindings:u.styleBindings)&&(m=Tf(m=Ih(null,A,u,m,E),u.attrs,E),ee=null);else{const de=u.directiveStylingLast;if(-1===de||A[de]!==F)if(m=Ih(F,A,u,m,E),null===ee){let Ze=function RF(A,u,m){const E=m?u.classBindings:u.styleBindings;if(0!==ug(E))return A[Ap(E)]}(A,u,E);void 0!==Ze&&Array.isArray(Ze)&&(Ze=Ih(null,A,u,Ze[1],E),Ze=Tf(Ze,u.attrs,E),function YF(A,u,m,E){A[Ap(m?u.classBindings:u.styleBindings)]=E}(A,u,E,Ze))}else ee=function NF(A,u,m){let E;const F=u.directiveEnd;for(let ee=1+u.directiveStylingLast;ee0)&&(Mt=!0)):Wt=m,F)if(0!==Ze){const Li=Ap(A[Be+1]);A[E+1]=O_(Li,Be),0!==Li&&(A[Li+1]=ww(A[Li+1],E)),A[Be+1]=function QI(A,u){return 131071&A|u<<17}(A[Be+1],E)}else A[E+1]=O_(Be,0),0!==Be&&(A[Be+1]=ww(A[Be+1],E)),Be=E;else A[E+1]=O_(Ze,0),0===Be?Be=E:A[Ze+1]=ww(A[Ze+1],E),Ze=E;Mt&&(A[E+1]=yw(A[E+1])),xw(A,Wt,E,!0),xw(A,Wt,E,!1),function bx(A,u,m,E,F){const ee=F?A.residualClasses:A.residualStyles;null!=ee&&"string"==typeof u&&zd(ee,u)>=0&&(m[E+1]=Cw(m[E+1]))}(u,Wt,A,E,ee),de=O_(Be,Ze),ee?u.classBindings=de:u.styleBindings=de}(F,ee,u,m,de,E)}}function Ih(A,u,m,E,F){let ee=null;const de=m.directiveEnd;let Be=m.directiveStylingLast;for(-1===Be?Be=m.directiveStart:Be++;Be0;){const Ze=A[F],Mt=Array.isArray(Ze),Wt=Mt?Ze[1]:Ze,yi=null===Wt;let Li=m[F+1];Li===Zo&&(Li=yi?xn:void 0);let Xi=yi?Es(Li,E):Wt===E?Li:void 0;if(Mt&&!gg(Xi)&&(Xi=Es(Ze,E)),gg(Xi)&&(Be=Xi,de))return Be;const Mn=A[F+1];F=de?Ap(Mn):ug(Mn)}if(null!==u){let Ze=ee?u.residualClasses:u.residualStyles;null!=Ze&&(Be=Es(Ze,E))}return Be}function gg(A){return void 0!==A}function Qx(A,u){return 0!=(A.flags&(u?8:16))}function Xm(A,u=""){const m=_n(),E=Co(),F=A+Ln,ee=E.firstCreatePass?lg(E,F,1,u,null):E.data[F],de=Sx(E,m,ee,u,A);m[F]=de,OA()&&Mo(E,m,de,ee),qc(ee,!1)}let Sx=(A,u,m,E,F)=>(Wr(!0),function yA(A,u){return A.createText(u)}(u[hi],E));function Ew(A){return e0("",A,""),Ew}function e0(A,u,m){const E=_n(),F=Ag(E,A,u,m);return F!==Zo&&ap(E,hl(),F),e0}function L_(A,u,m,E,F){const ee=_n(),de=wf(ee,A,u,m,E,F);return de!==Zo&&ap(ee,hl(),de),L_}function Lx(A,u,m){Vu(Xr,Th,Ag(_n(),A,u,m),!0)}function Vx(A,u,m){const E=_n();return rA(E,ud(),u)&&Vd(Co(),No(),E,A,u,E[hi],m,!0),Vx}function Dw(A,u,m){const E=_n();if(rA(E,ud(),u)){const ee=Co(),de=No();Vd(ee,de,E,A,u,qT(uh(ee.data),de,E),m,!0)}return Dw}const kf=void 0;var n2=["en",[["a","p"],["AM","PM"],kf],[["AM","PM"],kf,kf],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],kf,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],kf,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",kf,"{1} 'at' {0}",kf],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Wx(A){const m=Math.floor(Math.abs(A)),E=A.toString().replace(/^[^.]*\.?/,"").length;return 1===m&&0===E?1:5}];let fg={};function R_(A){const u=function Tw(A){return A.toLowerCase().replace(/_/g,"-")}(A);let m=qx(u);if(m)return m;const E=u.split("-")[0];if(m=qx(E),m)return m;if("en"===E)return n2;throw new z(701,!1)}function Kx(A){return R_(A)[kh.PluralCase]}function qx(A){return A in fg||(fg[A]=gt.ng&>.ng.common&>.ng.common.locales&>.ng.common.locales[A]),fg[A]}var kh=function(A){return A[A.LocaleId=0]="LocaleId",A[A.DayPeriodsFormat=1]="DayPeriodsFormat",A[A.DayPeriodsStandalone=2]="DayPeriodsStandalone",A[A.DaysFormat=3]="DaysFormat",A[A.DaysStandalone=4]="DaysStandalone",A[A.MonthsFormat=5]="MonthsFormat",A[A.MonthsStandalone=6]="MonthsStandalone",A[A.Eras=7]="Eras",A[A.FirstDayOfWeek=8]="FirstDayOfWeek",A[A.WeekendRange=9]="WeekendRange",A[A.DateFormat=10]="DateFormat",A[A.TimeFormat=11]="TimeFormat",A[A.DateTimeFormat=12]="DateTimeFormat",A[A.NumberSymbols=13]="NumberSymbols",A[A.NumberFormats=14]="NumberFormats",A[A.CurrencyCode=15]="CurrencyCode",A[A.CurrencySymbol=16]="CurrencySymbol",A[A.CurrencyName=17]="CurrencyName",A[A.Currencies=18]="Currencies",A[A.Directionality=19]="Directionality",A[A.PluralCase=20]="PluralCase",A[A.ExtraData=21]="ExtraData",A}(kh||{});const Qf="en-US";let Xx=Qf;function V_(A,u,m,E,F){if(A=Q(A),Array.isArray(A))for(let ee=0;ee>20;if(ag(A)||!A.multi){const Xi=new El(Mt,F,mf),Mn=vB(Ze,u,F?Wt:Wt+Li,yi);-1===Mn?(ie(ac(Be,de),ee,Ze),Ow(ee,A,u.length),u.push(Ze),Be.directiveStart++,Be.directiveEnd++,F&&(Be.providerIndexes+=1048576),m.push(Xi),de.push(Xi)):(m[Mn]=Xi,de[Mn]=Xi)}else{const Xi=vB(Ze,u,Wt+Li,yi),Mn=vB(Ze,u,Wt,Wt+Li),yr=Mn>=0&&m[Mn];if(F&&!yr||!F&&!(Xi>=0&&m[Xi])){ie(ac(Be,de),ee,Ze);const io=function wB(A,u,m,E,F){const ee=new El(A,m,mf);return ee.multi=[],ee.index=u,ee.componentProviders=0,Pf(ee,F,E&&!m),ee}(F?F2:yB,m.length,F,E,Mt);!F&&yr&&(m[Mn].providerFactory=io),Ow(ee,A,u.length,0),u.push(Ze),Be.directiveStart++,Be.directiveEnd++,F&&(Be.providerIndexes+=1048576),m.push(io),de.push(io)}else Ow(ee,A,Xi>-1?Xi:Mn,Pf(m[F?Mn:Xi],Mt,!F&&E));!F&&E&&yr&&m[Mn].componentProviders++}}}function Ow(A,u,m,E){const F=ag(u),ee=function P3(A){return!!A.useClass}(u);if(F||ee){const Ze=(ee?Q(u.useClass):u).prototype.ngOnDestroy;if(Ze){const Mt=A.destroyHooks||(A.destroyHooks=[]);if(!F&&u.multi){const Wt=Mt.indexOf(m);-1===Wt?Mt.push(m,[E,Ze]):Mt[Wt+1].push(E,Ze)}else Mt.push(m,Ze)}}}function Pf(A,u,m){return m&&A.componentProviders++,A.multi.push(u)-1}function vB(A,u,m,E){for(let F=m;F{m.providersResolver=(E,F)=>function P2(A,u,m){const E=Co();if(E.firstCreatePass){const F=Bo(A);V_(m,E.data,E.blueprint,F,!0),V_(u,E.data,E.blueprint,F,!1)}}(E,F?F(A):A,u)}}class _g{}class L2{}function r4(A,u){return new W_(A,u??null,[])}class W_ extends _g{constructor(u,m,E){super(),this._parent=m,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new rI(this);const F=To(u);this._bootstrapComponents=op(F.bootstrap),this._r3Injector=_1(u,m,[{provide:_g,useValue:this},{provide:uf,useValue:this.componentFactoryResolver},...E],M(u),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(u)}get injector(){return this._r3Injector}destroy(){const u=this._r3Injector;!u.destroyed&&u.destroy(),this.destroyCbs.forEach(m=>m()),this.destroyCbs=null}onDestroy(u){this.destroyCbs.push(u)}}class Rw extends L2{constructor(u){super(),this.moduleType=u}create(u){return new W_(this.moduleType,u,[])}}class zc extends _g{constructor(u){super(),this.componentFactoryResolver=new rI(this),this.instance=null;const m=new Qm([...u.providers,{provide:_g,useValue:this},{provide:uf,useValue:this.componentFactoryResolver}],u.parent||by(),u.debugName,new Set(["environment"]));this.injector=m,u.runEnvironmentInitializers&&m.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(u){this.injector.onDestroy(u)}}function Hc(A,u,m=null){return new zc({providers:A,parent:u,debugName:m,runEnvironmentInitializers:!0}).injector}let cc=(()=>{class A{constructor(m){this._injector=m,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(m){if(!m.standalone)return null;if(!this.cachedInjectors.has(m)){const E=KD(0,m.type),F=E.length>0?Hc([E],this._injector,`Standalone[${m.type.name}]`):null;this.cachedInjectors.set(m,F)}return this.cachedInjectors.get(m)}ngOnDestroy(){try{for(const m of this.cachedInjectors.values())null!==m&&m.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=St({token:A,providedIn:"environment",factory:()=>new A(Ji(xh))})}}return A})();function Y2(A){A.getStandaloneInjector=u=>u.get(cc).getOrCreateStandaloneInjector(A)}function G2(A,u,m){const E=Rl()+A,F=_n();return F[E]===Zo?fu(F,E,m?u.call(m):u()):Mh(F,E)}function EB(A,u,m,E){return V2(_n(),Rl(),A,u,m,E)}function MB(A,u,m,E,F){return W2(_n(),Rl(),A,u,m,E,F)}function Z2(A,u,m,E,F,ee){return function K2(A,u,m,E,F,ee,de,Be){const Ze=u+m;return Jm(A,Ze,F,ee,de)?fu(A,Ze+3,Be?E.call(Be,F,ee,de):E(F,ee,de)):q_(A,Ze+3)}(_n(),Rl(),A,u,m,E,F,ee)}function DB(A,u,m,E,F,ee,de,Be){const Ze=Rl()+A,Mt=_n(),Wt=Wd(Mt,Ze,m,E,F,ee);return rA(Mt,Ze+4,de)||Wt?fu(Mt,Ze+5,Be?u.call(Be,m,E,F,ee,de):u(m,E,F,ee,de)):Mh(Mt,Ze+5)}function j2(A,u,m,E,F,ee,de,Be,Ze,Mt){const Wt=Rl()+A,yi=_n();let Li=Wd(yi,Wt,m,E,F,ee);return Jm(yi,Wt+4,de,Be,Ze)||Li?fu(yi,Wt+7,Mt?u.call(Mt,m,E,F,ee,de,Be,Ze):u(m,E,F,ee,de,Be,Ze)):Mh(yi,Wt+7)}function q_(A,u){const m=A[u];return m===Zo?void 0:m}function V2(A,u,m,E,F,ee){const de=u+m;return rA(A,de,F)?fu(A,de+1,ee?E.call(ee,F):E(F)):q_(A,de+1)}function W2(A,u,m,E,F,ee,de){const Be=u+m;return cg(A,Be,F,ee)?fu(A,Be+2,de?E.call(de,F,ee):E(F,ee)):q_(A,Be+2)}function TB(A,u){const m=Co();let E;const F=A+Ln;m.firstCreatePass?(E=function q2(A,u){if(u)for(let m=u.length-1;m>=0;m--){const E=u[m];if(A===E.name)return E}}(u,m.pipeRegistry),m.data[F]=E,E.onDestroy&&(m.destroyHooks??=[]).push(F,E.onDestroy)):E=m.data[F];const ee=E.factory||(E.factory=_s(E.type)),Be=qe(mf);try{const Ze=rc(!1),Mt=ee();return rc(Ze),function DF(A,u,m,E){m>=A.data.length&&(A.data[m]=null,A.blueprint[m]=null),u[m]=E}(m,_n(),F,Mt),Mt}finally{qe(Be)}}function $2(A,u,m){const E=A+Ln,F=_n(),ee=Xt(F,E);return X_(F,E)?V2(F,Rl(),u,ee.transform,m,ee):ee.transform(m)}function IB(A,u,m,E){const F=A+Ln,ee=_n(),de=Xt(ee,F);return X_(ee,F)?W2(ee,Rl(),u,de.transform,m,E,de):de.transform(m,E)}function X_(A,u){return A[kn].data[u].pure}function tk(){return this._results[Symbol.iterator]()}class $_{get changes(){return this._changes||(this._changes=new gu)}constructor(u=!1){this._emitDistinctChangesOnly=u,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const m=$_.prototype;m[Symbol.iterator]||(m[Symbol.iterator]=tk)}get(u){return this._results[u]}map(u){return this._results.map(u)}filter(u){return this._results.filter(u)}find(u){return this._results.find(u)}reduce(u,m){return this._results.reduce(u,m)}forEach(u){this._results.forEach(u)}some(u){return this._results.some(u)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(u,m){const E=this;E.dirty=!1;const F=function vs(A){return A.flat(Number.POSITIVE_INFINITY)}(u);(this._changesDetected=!function mA(A,u,m){if(A.length!==u.length)return!1;for(let E=0;E0&&(m[F-1][Ot]=u),E{class A{static{this.__NG_ELEMENT_ID__=Of}}return A})();const kB=c0,A0=class extends kB{constructor(u,m,E){super(),this._declarationLView=u,this._declarationTContainer=m,this.elementRef=E}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(u,m){return this.createEmbeddedViewImpl(u,m)}createEmbeddedViewImpl(u,m,E){const F=function ik(A,u,m,E){const F=u.tView,Be=Ym(A,F,m,4096&A[mr]?4096:16,null,u,null,null,null,E?.injector??null,E?.hydrationInfo??null);Be[bn]=A[u.index];const Mt=A[Jn];return null!==Mt&&(Be[Jn]=Mt.createEmbeddedView(F)),Ky(F,Be,m),Be}(this._declarationLView,this._declarationTContainer,u,{injector:m,hydrationInfo:E});return new w_(F)}};function Of(){return ev(xl(),_n())}function ev(A,u){return 4&A.type?new A0(u,A,hf(A,u)):null}let u0=(()=>{class A{static{this.__NG_ELEMENT_ID__=ak}}return A})();function ak(){return zw(xl(),_n())}const sk=u0,FB=class extends sk{constructor(u,m,E){super(),this._lContainer=u,this._hostTNode=m,this._hostLView=E}get element(){return hf(this._hostTNode,this._hostLView)}get injector(){return new fl(this._hostTNode,this._hostLView)}get parentInjector(){const u=Oo(this._hostTNode,this._hostLView);if(gd(u)){const m=Vl(u,this._hostLView),E=pA(u);return new fl(m[kn].data[E+8],m)}return new fl(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(u){const m=Uw(this._lContainer);return null!==m&&m[u]||null}get length(){return this._lContainer.length-Po}createEmbeddedView(u,m,E){let F,ee;"number"==typeof E?F=E:null!=E&&(F=E.index,ee=E.injector);const Be=u.createEmbeddedViewImpl(m||{},ee,null);return this.insertImpl(Be,F,false),Be}createComponent(u,m,E,F,ee){const de=u&&!function sc(A){return"function"==typeof A}(u);let Be;if(de)Be=m;else{const Nn=m||{};Be=Nn.index,E=Nn.injector,F=Nn.projectableNodes,ee=Nn.environmentInjector||Nn.ngModuleRef}const Ze=de?u:new Hm(Br(u)),Mt=E||this.parentInjector;if(!ee&&null==Ze.ngModule){const yr=(de?Mt:this.parentInjector).get(xh,null);yr&&(ee=yr)}Br(Ze.componentType??{});const Xi=Ze.create(Mt,F,null,ee);return this.insertImpl(Xi.hostView,Be,false),Xi}insert(u,m){return this.insertImpl(u,m,!1)}insertImpl(u,m,E){const F=u._lView;if(function zn(A){return za(A[zo])}(F)){const Ze=this.indexOf(u);if(-1!==Ze)this.detach(Ze);else{const Mt=F[zo],Wt=new FB(Mt,Mt[Ie],Mt[zo]);Wt.detach(Wt.indexOf(u))}}const de=this._adjustIndex(m),Be=this._lContainer;return nk(Be,F,de,!E),u.attachToViewContainerRef(),Jp(OB(Be),de,u),u}move(u,m){return this.insert(u,m)}indexOf(u){const m=Uw(this._lContainer);return null!==m?m.indexOf(u):-1}remove(u){const m=this._adjustIndex(u,-1),E=si(this._lContainer,m);E&&($h(OB(this._lContainer),m),Bi(E[kn],E))}detach(u){const m=this._adjustIndex(u,-1),E=si(this._lContainer,m);return E&&null!=$h(OB(this._lContainer),m)?new w_(E):null}_adjustIndex(u,m=0){return u??this.length+m}};function Uw(A){return A[8]}function OB(A){return A[8]||(A[8]=[])}function zw(A,u){let m;const E=u[A.index];return za(E)?m=E:(m=KT(E,u,null,A),u[A.index]=m,jy(u,m)),RB(m,u,A,E),new FB(m,A,u)}let RB=function lk(A,u,m,E){if(A[Ca])return;let F;F=8&m.type?pa(E):function LB(A,u){const m=A[hi],E=m.createComment(""),F=le(u,A);return dr(m,Eo(m,F),E,function Ko(A,u){return A.nextSibling(u)}(m,F),!1),E}(u,m),A[Ca]=F};class YB{constructor(u){this.queryList=u,this.matches=null}clone(){return new YB(this.queryList)}setDirty(){this.queryList.setDirty()}}class Hw{constructor(u=[]){this.queries=u}createEmbeddedView(u){const m=u.queries;if(null!==m){const E=null!==u.contentQueries?u.contentQueries[0]:m.length,F=[];for(let ee=0;ee0)E.push(de[Be/2]);else{const Mt=ee[Be+1],Wt=u[-Ze];for(let yi=Po;yi{class A{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((m,E)=>{this.resolve=m,this.reject=E}),this.appInits=fn(lE,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const m=[];for(const F of this.appInits){const ee=F();if(Mf(ee))m.push(ee);else if(fx(ee)){const de=new Promise((Be,Ze)=>{ee.subscribe({complete:Be,error:Ze})});m.push(de)}}const E=()=>{this.done=!0,this.resolve()};Promise.all(m).then(()=>{E()}).catch(F=>{this.reject(F)}),0===m.length&&E(),this.initialized=!0}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"root"})}}return A})(),tC=(()=>{class A{log(m){console.log(m)}warn(m){console.warn(m)}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"platform"})}}return A})();const rv=new Gt("LocaleId",{providedIn:"root",factory:()=>fn(rv,Dt.Optional|Dt.SkipSelf)||function z4(){return typeof $localize<"u"&&$localize.locale||Qf}()}),iC=new Gt("DefaultCurrencyCode",{providedIn:"root",factory:()=>"USD"});let g0=(()=>{class A{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new l.X(!1)}add(){this.hasPendingTasks.next(!0);const m=this.taskId++;return this.pendingTasks.add(m),m}remove(m){this.pendingTasks.delete(m),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"root"})}}return A})();class nC{constructor(u,m){this.ngModuleFactory=u,this.componentFactories=m}}let cE=(()=>{class A{compileModuleSync(m){return new Rw(m)}compileModuleAsync(m){return Promise.resolve(this.compileModuleSync(m))}compileModuleAndAllComponentsSync(m){const E=this.compileModuleSync(m),ee=op(To(m).declarations).reduce((de,Be)=>{const Ze=Br(Be);return Ze&&de.push(new Hm(Ze)),de},[]);return new nC(E,ee)}compileModuleAndAllComponentsAsync(m){return Promise.resolve(this.compileModuleAndAllComponentsSync(m))}clearCache(){}clearCacheFor(m){}getModuleId(m){}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"root"})}}return A})();const Gk=new Gt(""),mE=new Gt("");let sC,Zk=(()=>{class A{constructor(m,E,F){this._ngZone=m,this.registry=E,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,sC||(function Jk(A){sC=A}(F),F.addToWindow(E)),this._watchAngularEvents(),m.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{wc.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let m=this._callbacks.pop();clearTimeout(m.timeoutId),m.doneCb(this._didWork)}this._didWork=!1});else{let m=this.getPendingTasks();this._callbacks=this._callbacks.filter(E=>!E.updateCb||!E.updateCb(m)||(clearTimeout(E.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(m=>({source:m.source,creationLocation:m.creationLocation,data:m.data})):[]}addCallback(m,E,F){let ee=-1;E&&E>0&&(ee=setTimeout(()=>{this._callbacks=this._callbacks.filter(de=>de.timeoutId!==ee),m(this._didWork,this.getPendingTasks())},E)),this._callbacks.push({doneCb:m,timeoutId:ee,updateCb:F})}whenStable(m,E,F){if(F&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(m,E,F),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(m){this.registry.registerApplication(m,this)}unregisterApplication(m){this.registry.unregisterApplication(m)}findProviders(m,E,F){return[]}static{this.\u0275fac=function(E){return new(E||A)(Ji(wc),Ji(_E),Ji(mE))}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac})}}return A})(),_E=(()=>{class A{constructor(){this._applications=new Map}registerApplication(m,E){this._applications.set(m,E)}unregisterApplication(m){this._applications.delete(m)}unregisterAllApplications(){this._applications.clear()}getTestability(m){return this._applications.get(m)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(m,E=!0){return sC?.findTestabilityInTree(this,m,E)??null}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"platform"})}}return A})(),pp=null;const bc=new Gt("AllowMultipleToken"),lv=new Gt("PlatformDestroyListeners"),vE=new Gt("appBootstrapListener");class J4{constructor(u,m){this.name=u,this.token=m}}function Kk(A,u,m=[]){const E=`Platform: ${u}`,F=new Gt(E);return(ee=[])=>{let de=lC();if(!de||de.injector.get(bc,!1)){const Be=[...m,...ee,{provide:F,useValue:!0}];A?A(Be):function Vk(A){if(pp&&!pp.get(bc,!1))throw new z(400,!1);(function jk(){!function Qc(A){Vs=A}(()=>{throw new z(600,!1)})})(),pp=A;const u=A.get(As);(function wE(A){A.get(r1,null)?.forEach(m=>m())})(A)}(function qk(A=[],u){return Ed.create({name:u,providers:[{provide:Xb,useValue:"platform"},{provide:lv,useValue:new Set([()=>pp=null])},...A]})}(Be,E))}return function j4(A){const u=lC();if(!u)throw new z(401,!1);return u}()}}function lC(){return pp?.get(As)??null}let As=(()=>{class A{constructor(m){this._injector=m,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(m,E){const F=function gp(A="zone.js",u){return"noop"===A?new K3:"zone.js"===A?new wc(u):A}(E?.ngZone,function CE(A){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:A?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:A?.runCoalescing??!1}}({eventCoalescing:E?.ngZoneEventCoalescing,runCoalescing:E?.ngZoneRunCoalescing}));return F.run(()=>{const ee=function R2(A,u,m){return new W_(A,u,m)}(m.moduleType,this.injector,function EE(A){return[{provide:wc,useFactory:A},{provide:Bd,multi:!0,useFactory:()=>{const u=fn(BE,{optional:!0});return()=>u.initialize()}},{provide:YA,useFactory:xE},{provide:ET,useFactory:MT}]}(()=>F)),de=ee.injector.get(xA,null);return F.runOutsideAngular(()=>{const Be=F.onError.subscribe({next:Ze=>{de.handleError(Ze)}});ee.onDestroy(()=>{cv(this._modules,ee),Be.unsubscribe()})}),function vg(A,u,m){try{const E=m();return Mf(E)?E.catch(F=>{throw u.runOutsideAngular(()=>A.handleError(F)),F}):E}catch(E){throw u.runOutsideAngular(()=>A.handleError(E)),E}}(de,F,()=>{const Be=ee.injector.get(eC);return Be.runInitializers(),Be.donePromise.then(()=>(function $x(A){ae(A,"Expected localeId to be defined"),"string"==typeof A&&(Xx=A.toLowerCase().replace(/_/g,"-"))}(ee.injector.get(rv,Qf)||Qf),this._moduleDoBootstrap(ee),ee))})})}bootstrapModule(m,E=[]){const F=_0({},E);return function Z4(A,u,m){const E=new Rw(m);return Promise.resolve(E)}(0,0,m).then(ee=>this.bootstrapModuleFactory(ee,F))}_moduleDoBootstrap(m){const E=m.injector.get(Nf);if(m._bootstrapComponents.length>0)m._bootstrapComponents.forEach(F=>E.bootstrap(F));else{if(!m.instance.ngDoBootstrap)throw new z(-403,!1);m.instance.ngDoBootstrap(E)}this._modules.push(m)}onDestroy(m){this._destroyListeners.push(m)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new z(404,!1);this._modules.slice().forEach(E=>E.destroy()),this._destroyListeners.forEach(E=>E());const m=this._injector.get(lv,null);m&&(m.forEach(E=>E()),m.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(E){return new(E||A)(Ji(Ed))}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"platform"})}}return A})();function _0(A,u){return Array.isArray(u)?u.reduce(_0,A):{...A,...u}}let Nf=(()=>{class A{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=fn(YA),this.zoneIsStable=fn(ET),this.componentTypes=[],this.components=[],this.isStable=fn(g0).hasPendingTasks.pipe((0,f.w)(m=>m?(0,v.of)(!1):this.zoneIsStable),(0,_.x)(),(0,h.B)()),this._injector=fn(xh)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(m,E){const F=m instanceof AT;if(!this._injector.get(eC).done)throw!F&&Dr(m),new z(405,!1);let de;de=F?m:this._injector.get(uf).resolveComponentFactory(m),this.componentTypes.push(de.componentType);const Be=function yE(A){return A.isBoundToModule}(de)?void 0:this._injector.get(_g),Mt=de.create(Ed.NULL,[],E||de.selector,Be),Wt=Mt.location.nativeElement,yi=Mt.injector.get(Gk,null);return yi?.registerApplication(Wt),Mt.onDestroy(()=>{this.detachView(Mt.hostView),cv(this.components,Mt),yi?.unregisterApplication(Wt)}),this._loadComponent(Mt),Mt}tick(){if(this._runningTick)throw new z(101,!1);try{this._runningTick=!0;for(let m of this._views)m.detectChanges()}catch(m){this.internalErrorHandler(m)}finally{this._runningTick=!1}}attachView(m){const E=m;this._views.push(E),E.attachToAppRef(this)}detachView(m){const E=m;cv(this._views,E),E.detachFromAppRef()}_loadComponent(m){this.attachView(m.hostView),this.tick(),this.components.push(m);const E=this._injector.get(vE,[]);E.push(...this._bootstrapListeners),E.forEach(F=>F(m))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(m=>m()),this._views.slice().forEach(m=>m.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(m){return this._destroyListeners.push(m),()=>cv(this._destroyListeners,m)}destroy(){if(this._destroyed)throw new z(406,!1);const m=this._injector;m.destroy&&!m.destroyed&&m.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"root"})}}return A})();function cv(A,u){const m=A.indexOf(u);m>-1&&A.splice(m,1)}const YA=new Gt("",{providedIn:"root",factory:()=>fn(xA).handleError.bind(void 0)});function xE(){const A=fn(wc),u=fn(xA);return m=>A.runOutsideAngular(()=>u.handleError(m))}let BE=(()=>{class A{constructor(){this.zone=fn(wc),this.applicationRef=fn(Nf)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(E){return new(E||A)}}static{this.\u0275prov=St({token:A,factory:A.\u0275fac,providedIn:"root"})}}return A})();function cC(){}let fp=(()=>{class A{static{this.__NG_ELEMENT_ID__=zf}}return A})();function zf(A){return function eQ(A,u,m){if(yl(A)&&!m){const E=Mi(A.index,u);return new w_(E,E)}return 47&A.type?new w_(u[Ui],u):null}(xl(),_n(),16==(16&A))}class Hf{constructor(){}supports(u){return yf(u)}create(u){return new IE(u)}}const Gf=(A,u)=>u;class IE{constructor(u){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=u||Gf}forEachItem(u){let m;for(m=this._itHead;null!==m;m=m._next)u(m)}forEachOperation(u){let m=this._itHead,E=this._removalsHead,F=0,ee=null;for(;m||E;){const de=!E||m&&m.currentIndex{de=this._trackByFn(F,Be),null!==m&&Object.is(m.trackById,de)?(E&&(m=this._verifyReinsertion(m,Be,de,F)),Object.is(m.item,Be)||this._addIdentityChange(m,Be)):(m=this._mismatch(m,Be,de,F),E=!0),m=m._next,F++}),this.length=F;return this._truncate(m),this.collection=u,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let u;for(u=this._previousItHead=this._itHead;null!==u;u=u._next)u._nextPrevious=u._next;for(u=this._additionsHead;null!==u;u=u._nextAdded)u.previousIndex=u.currentIndex;for(this._additionsHead=this._additionsTail=null,u=this._movesHead;null!==u;u=u._nextMoved)u.previousIndex=u.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(u,m,E,F){let ee;return null===u?ee=this._itTail:(ee=u._prev,this._remove(u)),null!==(u=null===this._unlinkedRecords?null:this._unlinkedRecords.get(E,null))?(Object.is(u.item,m)||this._addIdentityChange(u,m),this._reinsertAfter(u,ee,F)):null!==(u=null===this._linkedRecords?null:this._linkedRecords.get(E,F))?(Object.is(u.item,m)||this._addIdentityChange(u,m),this._moveAfter(u,ee,F)):u=this._addAfter(new nQ(m,E),ee,F),u}_verifyReinsertion(u,m,E,F){let ee=null===this._unlinkedRecords?null:this._unlinkedRecords.get(E,null);return null!==ee?u=this._reinsertAfter(ee,u._prev,F):u.currentIndex!=F&&(u.currentIndex=F,this._addToMoves(u,F)),u}_truncate(u){for(;null!==u;){const m=u._next;this._addToRemovals(this._unlink(u)),u=m}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(u,m,E){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(u);const F=u._prevRemoved,ee=u._nextRemoved;return null===F?this._removalsHead=ee:F._nextRemoved=ee,null===ee?this._removalsTail=F:ee._prevRemoved=F,this._insertAfter(u,m,E),this._addToMoves(u,E),u}_moveAfter(u,m,E){return this._unlink(u),this._insertAfter(u,m,E),this._addToMoves(u,E),u}_addAfter(u,m,E){return this._insertAfter(u,m,E),this._additionsTail=null===this._additionsTail?this._additionsHead=u:this._additionsTail._nextAdded=u,u}_insertAfter(u,m,E){const F=null===m?this._itHead:m._next;return u._next=F,u._prev=m,null===F?this._itTail=u:F._prev=u,null===m?this._itHead=u:m._next=u,null===this._linkedRecords&&(this._linkedRecords=new rQ),this._linkedRecords.put(u),u.currentIndex=E,u}_remove(u){return this._addToRemovals(this._unlink(u))}_unlink(u){null!==this._linkedRecords&&this._linkedRecords.remove(u);const m=u._prev,E=u._next;return null===m?this._itHead=E:m._next=E,null===E?this._itTail=m:E._prev=m,u}_addToMoves(u,m){return u.previousIndex===m||(this._movesTail=null===this._movesTail?this._movesHead=u:this._movesTail._nextMoved=u),u}_addToRemovals(u){return null===this._unlinkedRecords&&(this._unlinkedRecords=new rQ),this._unlinkedRecords.put(u),u.currentIndex=null,u._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=u,u._prevRemoved=null):(u._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=u),u}_addIdentityChange(u,m){return u.item=m,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=u:this._identityChangesTail._nextIdentityChange=u,u}}class nQ{constructor(u,m){this.item=u,this.trackById=m,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class X4{constructor(){this._head=null,this._tail=null}add(u){null===this._head?(this._head=this._tail=u,u._nextDup=null,u._prevDup=null):(this._tail._nextDup=u,u._prevDup=this._tail,u._nextDup=null,this._tail=u)}get(u,m){let E;for(E=this._head;null!==E;E=E._nextDup)if((null===m||m<=E.currentIndex)&&Object.is(E.trackById,u))return E;return null}remove(u){const m=u._prevDup,E=u._nextDup;return null===m?this._head=E:m._nextDup=E,null===E?this._tail=m:E._prevDup=m,null===this._head}}class rQ{constructor(){this.map=new Map}put(u){const m=u.trackById;let E=this.map.get(m);E||(E=new X4,this.map.set(m,E)),E.add(u)}get(u,m){const F=this.map.get(u);return F?F.get(u,m):null}remove(u){const m=u.trackById;return this.map.get(m).remove(u)&&this.map.delete(m),u}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function oQ(A,u,m){const E=A.previousIndex;if(null===E)return E;let F=0;return m&&E{if(m&&m.key===F)this._maybeAddToChanges(m,E),this._appendAfter=m,m=m._next;else{const ee=this._getOrCreateRecordForKey(F,E);m=this._insertBeforeOrAppend(m,ee)}}),m){m._prev&&(m._prev._next=null),this._removalsHead=m;for(let E=m;null!==E;E=E._nextRemoved)E===this._mapHead&&(this._mapHead=null),this._records.delete(E.key),E._nextRemoved=E._next,E.previousValue=E.currentValue,E.currentValue=null,E._prev=null,E._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(u,m){if(u){const E=u._prev;return m._next=u,m._prev=E,u._prev=m,E&&(E._next=m),u===this._mapHead&&(this._mapHead=m),this._appendAfter=u,u}return this._appendAfter?(this._appendAfter._next=m,m._prev=this._appendAfter):this._mapHead=m,this._appendAfter=m,null}_getOrCreateRecordForKey(u,m){if(this._records.has(u)){const F=this._records.get(u);this._maybeAddToChanges(F,m);const ee=F._prev,de=F._next;return ee&&(ee._next=de),de&&(de._prev=ee),F._next=null,F._prev=null,F}const E=new e6(u);return this._records.set(u,E),E.currentValue=m,this._addToAdditions(E),E}_reset(){if(this.isDirty){let u;for(this._previousMapHead=this._mapHead,u=this._previousMapHead;null!==u;u=u._next)u._nextPrevious=u._next;for(u=this._changesHead;null!==u;u=u._nextChanged)u.previousValue=u.currentValue;for(u=this._additionsHead;null!=u;u=u._nextAdded)u.previousValue=u.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(u,m){Object.is(m,u.currentValue)||(u.previousValue=u.currentValue,u.currentValue=m,this._addToChanges(u))}_addToAdditions(u){null===this._additionsHead?this._additionsHead=this._additionsTail=u:(this._additionsTail._nextAdded=u,this._additionsTail=u)}_addToChanges(u){null===this._changesHead?this._changesHead=this._changesTail=u:(this._changesTail._nextChanged=u,this._changesTail=u)}_forEach(u,m){u instanceof Map?u.forEach(m):Object.keys(u).forEach(E=>m(u[E],E))}}class e6{constructor(u){this.key=u,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function sQ(){return new kE([new Hf])}let kE=(()=>{class A{static{this.\u0275prov=St({token:A,providedIn:"root",factory:sQ})}constructor(m){this.factories=m}static create(m,E){if(null!=E){const F=E.factories.slice();m=m.concat(F)}return new A(m)}static extend(m){return{provide:A,useFactory:E=>A.create(m,E||sQ()),deps:[[A,new Kp,new yd]]}}find(m){const E=this.factories.find(F=>F.supports(m));if(null!=E)return E;throw new z(901,!1)}}return A})();function QE(){return new yg([new aQ])}let yg=(()=>{class A{static{this.\u0275prov=St({token:A,providedIn:"root",factory:QE})}constructor(m){this.factories=m}static create(m,E){if(E){const F=E.factories.slice();m=m.concat(F)}return new A(m)}static extend(m){return{provide:A,useFactory:E=>A.create(m,E||QE()),deps:[[A,new Kp,new yd]]}}find(m){const E=this.factories.find(F=>F.supports(m));if(E)return E;throw new z(901,!1)}}return A})();const t6=Kk(null,"core",[]);let Zf=(()=>{class A{constructor(m){}static{this.\u0275fac=function(E){return new(E||A)(Ji(Nf))}}static{this.\u0275mod=qn({type:A})}static{this.\u0275inj=He({})}}return A})();function s6(A){return"boolean"==typeof A?A:null!=A&&"false"!==A}function oA(A){const u=Br(A);if(!u)return null;const m=new Hm(u);return{get selector(){return m.selector},get type(){return m.componentType},get inputs(){return m.inputs},get outputs(){return m.outputs},get ngContentSelectors(){return m.ngContentSelectors},get isStandalone(){return u.standalone},get isSignal(){return u.signals}}}},6593:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Dx:()=>et,H7:()=>Ht,b2:()=>je,q6:()=>St,se:()=>W});var V=ce(5879),K=ce(6814);class T extends K.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class e extends T{static makeCurrent(){(0,K.HT)(new e)}onAndCancel(tt,Bt,Ut){return tt.addEventListener(Bt,Ut),()=>{tt.removeEventListener(Bt,Ut)}}dispatchEvent(tt,Bt){tt.dispatchEvent(Bt)}remove(tt){tt.parentNode&&tt.parentNode.removeChild(tt)}createElement(tt,Bt){return(Bt=Bt||this.getDefaultDocument()).createElement(tt)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(tt){return tt.nodeType===Node.ELEMENT_NODE}isShadowRoot(tt){return tt instanceof DocumentFragment}getGlobalEventTarget(tt,Bt){return"window"===Bt?window:"document"===Bt?tt:"body"===Bt?tt.body:null}getBaseHref(tt){const Bt=function v(){return l=l||document.querySelector("base"),l?l.getAttribute("href"):null}();return null==Bt?null:function f(qt){h=h||document.createElement("a"),h.setAttribute("href",qt);const tt=h.pathname;return"/"===tt.charAt(0)?tt:`/${tt}`}(Bt)}resetBaseElement(){l=null}getUserAgent(){return window.navigator.userAgent}getCookie(tt){return(0,K.Mx)(document.cookie,tt)}}let h,l=null,b=(()=>{class qt{build(){return new XMLHttpRequest}static{this.\u0275fac=function(Ut){return new(Ut||qt)}}static{this.\u0275prov=V.Yz7({token:qt,factory:qt.\u0275fac})}}return qt})();const y=new V.OlP("EventManagerPlugins");let M=(()=>{class qt{constructor(Bt,Ut){this._zone=Ut,this._eventNameToPlugin=new Map,Bt.forEach(Si=>{Si.manager=this}),this._plugins=Bt.slice().reverse()}addEventListener(Bt,Ut,Si){return this._findPluginFor(Ut).addEventListener(Bt,Ut,Si)}getZone(){return this._zone}_findPluginFor(Bt){let Ut=this._eventNameToPlugin.get(Bt);if(Ut)return Ut;if(Ut=this._plugins.find(Ti=>Ti.supports(Bt)),!Ut)throw new V.vHH(5101,!1);return this._eventNameToPlugin.set(Bt,Ut),Ut}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(y),V.LFG(V.R0b))}}static{this.\u0275prov=V.Yz7({token:qt,factory:qt.\u0275fac})}}return qt})();class D{constructor(tt){this._doc=tt}}const x="ng-app-id";let k=(()=>{class qt{constructor(Bt,Ut,Si,Ti={}){this.doc=Bt,this.appId=Ut,this.nonce=Si,this.platformId=Ti,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,K.PM)(Ti),this.resetHostNodes()}addStyles(Bt){for(const Ut of Bt)1===this.changeUsageCount(Ut,1)&&this.onStyleAdded(Ut)}removeStyles(Bt){for(const Ut of Bt)this.changeUsageCount(Ut,-1)<=0&&this.onStyleRemoved(Ut)}ngOnDestroy(){const Bt=this.styleNodesInDOM;Bt&&(Bt.forEach(Ut=>Ut.remove()),Bt.clear());for(const Ut of this.getAllStyles())this.onStyleRemoved(Ut);this.resetHostNodes()}addHost(Bt){this.hostNodes.add(Bt);for(const Ut of this.getAllStyles())this.addStyleToHost(Bt,Ut)}removeHost(Bt){this.hostNodes.delete(Bt)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(Bt){for(const Ut of this.hostNodes)this.addStyleToHost(Ut,Bt)}onStyleRemoved(Bt){const Ut=this.styleRef;Ut.get(Bt)?.elements?.forEach(Si=>Si.remove()),Ut.delete(Bt)}collectServerRenderedStyles(){const Bt=this.doc.head?.querySelectorAll(`style[${x}="${this.appId}"]`);if(Bt?.length){const Ut=new Map;return Bt.forEach(Si=>{null!=Si.textContent&&Ut.set(Si.textContent,Si)}),Ut}return null}changeUsageCount(Bt,Ut){const Si=this.styleRef;if(Si.has(Bt)){const Ti=Si.get(Bt);return Ti.usage+=Ut,Ti.usage}return Si.set(Bt,{usage:Ut,elements:[]}),Ut}getStyleElement(Bt,Ut){const Si=this.styleNodesInDOM,Ti=Si?.get(Ut);if(Ti?.parentNode===Bt)return Si.delete(Ut),Ti.removeAttribute(x),Ti;{const ln=this.doc.createElement("style");return this.nonce&&ln.setAttribute("nonce",this.nonce),ln.textContent=Ut,this.platformIsServer&&ln.setAttribute(x,this.appId),ln}}addStyleToHost(Bt,Ut){const Si=this.getStyleElement(Bt,Ut);Bt.appendChild(Si);const Ti=this.styleRef,ln=Ti.get(Ut)?.elements;ln?ln.push(Si):Ti.set(Ut,{elements:[Si],usage:1})}resetHostNodes(){const Bt=this.hostNodes;Bt.clear(),Bt.add(this.doc.head)}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(K.K0),V.LFG(V.AFp),V.LFG(V.Ojb,8),V.LFG(V.Lbi))}}static{this.\u0275prov=V.Yz7({token:qt,factory:qt.\u0275fac})}}return qt})();const Q={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},I=/%COMP%/g,d="%COMP%",S=`_nghost-${d}`,R=`_ngcontent-${d}`,q=new V.OlP("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function G(qt,tt){return tt.map(Bt=>Bt.replace(I,qt))}let W=(()=>{class qt{constructor(Bt,Ut,Si,Ti,ln,Ji,or,fn=null){this.eventManager=Bt,this.sharedStylesHost=Ut,this.appId=Si,this.removeStylesOnCompDestroy=Ti,this.doc=ln,this.platformId=Ji,this.ngZone=or,this.nonce=fn,this.rendererByCompId=new Map,this.platformIsServer=(0,K.PM)(Ji),this.defaultRenderer=new te(Bt,ln,or,this.platformIsServer)}createRenderer(Bt,Ut){if(!Bt||!Ut)return this.defaultRenderer;this.platformIsServer&&Ut.encapsulation===V.ifc.ShadowDom&&(Ut={...Ut,encapsulation:V.ifc.Emulated});const Si=this.getOrCreateRenderer(Bt,Ut);return Si instanceof oe?Si.applyToHost(Bt):Si instanceof he&&Si.applyStyles(),Si}getOrCreateRenderer(Bt,Ut){const Si=this.rendererByCompId;let Ti=Si.get(Ut.id);if(!Ti){const ln=this.doc,Ji=this.ngZone,or=this.eventManager,fn=this.sharedStylesHost,Pn=this.removeStylesOnCompDestroy,mn=this.platformIsServer;switch(Ut.encapsulation){case V.ifc.Emulated:Ti=new oe(or,fn,Ut,this.appId,Pn,ln,Ji,mn);break;case V.ifc.ShadowDom:return new re(or,fn,Bt,Ut,ln,Ji,this.nonce,mn);default:Ti=new he(or,fn,Ut,Pn,ln,Ji,mn)}Si.set(Ut.id,Ti)}return Ti}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(M),V.LFG(k),V.LFG(V.AFp),V.LFG(q),V.LFG(K.K0),V.LFG(V.Lbi),V.LFG(V.R0b),V.LFG(V.Ojb))}}static{this.\u0275prov=V.Yz7({token:qt,factory:qt.\u0275fac})}}return qt})();class te{constructor(tt,Bt,Ut,Si){this.eventManager=tt,this.doc=Bt,this.ngZone=Ut,this.platformIsServer=Si,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(tt,Bt){return Bt?this.doc.createElementNS(Q[Bt]||Bt,tt):this.doc.createElement(tt)}createComment(tt){return this.doc.createComment(tt)}createText(tt){return this.doc.createTextNode(tt)}appendChild(tt,Bt){(j(tt)?tt.content:tt).appendChild(Bt)}insertBefore(tt,Bt,Ut){tt&&(j(tt)?tt.content:tt).insertBefore(Bt,Ut)}removeChild(tt,Bt){tt&&tt.removeChild(Bt)}selectRootElement(tt,Bt){let Ut="string"==typeof tt?this.doc.querySelector(tt):tt;if(!Ut)throw new V.vHH(-5104,!1);return Bt||(Ut.textContent=""),Ut}parentNode(tt){return tt.parentNode}nextSibling(tt){return tt.nextSibling}setAttribute(tt,Bt,Ut,Si){if(Si){Bt=Si+":"+Bt;const Ti=Q[Si];Ti?tt.setAttributeNS(Ti,Bt,Ut):tt.setAttribute(Bt,Ut)}else tt.setAttribute(Bt,Ut)}removeAttribute(tt,Bt,Ut){if(Ut){const Si=Q[Ut];Si?tt.removeAttributeNS(Si,Bt):tt.removeAttribute(`${Ut}:${Bt}`)}else tt.removeAttribute(Bt)}addClass(tt,Bt){tt.classList.add(Bt)}removeClass(tt,Bt){tt.classList.remove(Bt)}setStyle(tt,Bt,Ut,Si){Si&(V.JOm.DashCase|V.JOm.Important)?tt.style.setProperty(Bt,Ut,Si&V.JOm.Important?"important":""):tt.style[Bt]=Ut}removeStyle(tt,Bt,Ut){Ut&V.JOm.DashCase?tt.style.removeProperty(Bt):tt.style[Bt]=""}setProperty(tt,Bt,Ut){tt[Bt]=Ut}setValue(tt,Bt){tt.nodeValue=Bt}listen(tt,Bt,Ut){if("string"==typeof tt&&!(tt=(0,K.q)().getGlobalEventTarget(this.doc,tt)))throw new Error(`Unsupported event target ${tt} for event ${Bt}`);return this.eventManager.addEventListener(tt,Bt,this.decoratePreventDefault(Ut))}decoratePreventDefault(tt){return Bt=>{if("__ngUnwrap__"===Bt)return tt;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>tt(Bt)):tt(Bt))&&Bt.preventDefault()}}}function j(qt){return"TEMPLATE"===qt.tagName&&void 0!==qt.content}class re extends te{constructor(tt,Bt,Ut,Si,Ti,ln,Ji,or){super(tt,Ti,ln,or),this.sharedStylesHost=Bt,this.hostEl=Ut,this.shadowRoot=Ut.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const fn=G(Si.id,Si.styles);for(const Pn of fn){const mn=document.createElement("style");Ji&&mn.setAttribute("nonce",Ji),mn.textContent=Pn,this.shadowRoot.appendChild(mn)}}nodeOrShadowRoot(tt){return tt===this.hostEl?this.shadowRoot:tt}appendChild(tt,Bt){return super.appendChild(this.nodeOrShadowRoot(tt),Bt)}insertBefore(tt,Bt,Ut){return super.insertBefore(this.nodeOrShadowRoot(tt),Bt,Ut)}removeChild(tt,Bt){return super.removeChild(this.nodeOrShadowRoot(tt),Bt)}parentNode(tt){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(tt)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class he extends te{constructor(tt,Bt,Ut,Si,Ti,ln,Ji,or){super(tt,Ti,ln,Ji),this.sharedStylesHost=Bt,this.removeStylesOnCompDestroy=Si,this.styles=or?G(or,Ut.styles):Ut.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class oe extends he{constructor(tt,Bt,Ut,Si,Ti,ln,Ji,or){const fn=Si+"-"+Ut.id;super(tt,Bt,Ut,Ti,ln,Ji,or,fn),this.contentAttr=function Z(qt){return R.replace(I,qt)}(fn),this.hostAttr=function H(qt){return S.replace(I,qt)}(fn)}applyToHost(tt){this.applyStyles(),this.setAttribute(tt,this.hostAttr,"")}createElement(tt,Bt){const Ut=super.createElement(tt,Bt);return super.setAttribute(Ut,this.contentAttr,""),Ut}}let Ce=(()=>{class qt extends D{constructor(Bt){super(Bt)}supports(Bt){return!0}addEventListener(Bt,Ut,Si){return Bt.addEventListener(Ut,Si,!1),()=>this.removeEventListener(Bt,Ut,Si)}removeEventListener(Bt,Ut,Si){return Bt.removeEventListener(Ut,Si)}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(K.K0))}}static{this.\u0275prov=V.Yz7({token:qt,factory:qt.\u0275fac})}}return qt})();const me=["alt","control","meta","shift"],ze={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},_e={alt:qt=>qt.altKey,control:qt=>qt.ctrlKey,meta:qt=>qt.metaKey,shift:qt=>qt.shiftKey};let Ae=(()=>{class qt extends D{constructor(Bt){super(Bt)}supports(Bt){return null!=qt.parseEventName(Bt)}addEventListener(Bt,Ut,Si){const Ti=qt.parseEventName(Ut),ln=qt.eventCallback(Ti.fullKey,Si,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,K.q)().onAndCancel(Bt,Ti.domEventName,ln))}static parseEventName(Bt){const Ut=Bt.toLowerCase().split("."),Si=Ut.shift();if(0===Ut.length||"keydown"!==Si&&"keyup"!==Si)return null;const Ti=qt._normalizeKey(Ut.pop());let ln="",Ji=Ut.indexOf("code");if(Ji>-1&&(Ut.splice(Ji,1),ln="code."),me.forEach(fn=>{const Pn=Ut.indexOf(fn);Pn>-1&&(Ut.splice(Pn,1),ln+=fn+".")}),ln+=Ti,0!=Ut.length||0===Ti.length)return null;const or={};return or.domEventName=Si,or.fullKey=ln,or}static matchEventFullKeyCode(Bt,Ut){let Si=ze[Bt.key]||Bt.key,Ti="";return Ut.indexOf("code.")>-1&&(Si=Bt.code,Ti="code."),!(null==Si||!Si)&&(Si=Si.toLowerCase()," "===Si?Si="space":"."===Si&&(Si="dot"),me.forEach(ln=>{ln!==Si&&(0,_e[ln])(Bt)&&(Ti+=ln+".")}),Ti+=Si,Ti===Ut)}static eventCallback(Bt,Ut,Si){return Ti=>{qt.matchEventFullKeyCode(Ti,Bt)&&Si.runGuarded(()=>Ut(Ti))}}static _normalizeKey(Bt){return"esc"===Bt?"escape":Bt}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(K.K0))}}static{this.\u0275prov=V.Yz7({token:qt,factory:qt.\u0275fac})}}return qt})();const St=(0,V.eFA)(V._c5,"browser",[{provide:V.Lbi,useValue:K.bD},{provide:V.g9A,useValue:function Ee(){e.makeCurrent()},multi:!0},{provide:K.K0,useFactory:function Ve(){return(0,V.RDi)(document),document},deps:[]}]),oi=new V.OlP(""),He=[{provide:V.rWj,useClass:class _{addToWindow(tt){V.dqk.getAngularTestability=(Ut,Si=!0)=>{const Ti=tt.findTestabilityInTree(Ut,Si);if(null==Ti)throw new V.vHH(5103,!1);return Ti},V.dqk.getAllAngularTestabilities=()=>tt.getAllTestabilities(),V.dqk.getAllAngularRootElements=()=>tt.getAllRootElements(),V.dqk.frameworkStabilizers||(V.dqk.frameworkStabilizers=[]),V.dqk.frameworkStabilizers.push(Ut=>{const Si=V.dqk.getAllAngularTestabilities();let Ti=Si.length,ln=!1;const Ji=function(or){ln=ln||or,Ti--,0==Ti&&Ut(ln)};Si.forEach(or=>{or.whenStable(Ji)})})}findTestabilityInTree(tt,Bt,Ut){return null==Bt?null:tt.getTestability(Bt)??(Ut?(0,K.q)().isShadowRoot(Bt)?this.findTestabilityInTree(tt,Bt.host,!0):this.findTestabilityInTree(tt,Bt.parentElement,!0):null)}},deps:[]},{provide:V.lri,useClass:V.dDg,deps:[V.R0b,V.eoX,V.rWj]},{provide:V.dDg,useClass:V.dDg,deps:[V.R0b,V.eoX,V.rWj]}],be=[{provide:V.zSh,useValue:"root"},{provide:V.qLn,useFactory:function Fe(){return new V.qLn},deps:[]},{provide:y,useClass:Ce,multi:!0,deps:[K.K0,V.R0b,V.Lbi]},{provide:y,useClass:Ae,multi:!0,deps:[K.K0]},W,k,M,{provide:V.FYo,useExisting:W},{provide:K.JF,useClass:b,deps:[]},[]];let je=(()=>{class qt{constructor(Bt){}static withServerTransition(Bt){return{ngModule:qt,providers:[{provide:V.AFp,useValue:Bt.appId}]}}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(oi,12))}}static{this.\u0275mod=V.oAB({type:qt})}static{this.\u0275inj=V.cJS({providers:[...be,...He],imports:[K.ez,V.hGG]})}}return qt})(),et=(()=>{class qt{constructor(Bt){this._doc=Bt}getTitle(){return this._doc.title}setTitle(Bt){this._doc.title=Bt||""}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(K.K0))}}static{this.\u0275prov=V.Yz7({token:qt,factory:function(Ut){let Si=null;return Si=Ut?new Ut:function ut(){return new et((0,V.LFG)(K.K0))}(),Si},providedIn:"root"})}}return qt})();typeof window<"u"&&window;let Ht=(()=>{class qt{static{this.\u0275fac=function(Ut){return new(Ut||qt)}}static{this.\u0275prov=V.Yz7({token:qt,factory:function(Ut){let Si=null;return Si=Ut?new(Ut||qt):V.LFG(ge),Si},providedIn:"root"})}}return qt})(),ge=(()=>{class qt extends Ht{constructor(Bt){super(),this._doc=Bt}sanitize(Bt,Ut){if(null==Ut)return null;switch(Bt){case V.q3G.NONE:return Ut;case V.q3G.HTML:return(0,V.qzn)(Ut,"HTML")?(0,V.z3N)(Ut):(0,V.EiD)(this._doc,String(Ut)).toString();case V.q3G.STYLE:return(0,V.qzn)(Ut,"Style")?(0,V.z3N)(Ut):Ut;case V.q3G.SCRIPT:if((0,V.qzn)(Ut,"Script"))return(0,V.z3N)(Ut);throw new V.vHH(5200,!1);case V.q3G.URL:return(0,V.qzn)(Ut,"URL")?(0,V.z3N)(Ut):(0,V.mCW)(String(Ut));case V.q3G.RESOURCE_URL:if((0,V.qzn)(Ut,"ResourceURL"))return(0,V.z3N)(Ut);throw new V.vHH(5201,!1);default:throw new V.vHH(5202,!1)}}bypassSecurityTrustHtml(Bt){return(0,V.JVY)(Bt)}bypassSecurityTrustStyle(Bt){return(0,V.L6k)(Bt)}bypassSecurityTrustScript(Bt){return(0,V.eBb)(Bt)}bypassSecurityTrustUrl(Bt){return(0,V.LAX)(Bt)}bypassSecurityTrustResourceUrl(Bt){return(0,V.pB0)(Bt)}static{this.\u0275fac=function(Ut){return new(Ut||qt)(V.LFG(K.K0))}}static{this.\u0275prov=V.Yz7({token:qt,factory:function(Ut){let Si=null;return Si=Ut?new Ut:function dt(qt){return new ge(qt.get(K.K0))}(V.LFG(V.zs3)),Si},providedIn:"root"})}}return qt})()},1365:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{X$:()=>re,Zw:()=>M,aw:()=>he,sK:()=>J});var V=ce(5879),K=ce(2096),T=ce(2664),e=ce(9315),l=ce(5211),v=ce(4911),h=ce(8180),f=ce(7081),_=ce(7398),b=ce(6328),y=ce(4664);class M{}let D=(()=>{class oe extends M{getTranslation(me){return(0,K.of)({})}}return oe.\u0275fac=function(){let Ce;return function(ze){return(Ce||(Ce=V.n5z(oe)))(ze||oe)}}(),oe.\u0275prov=V.Yz7({token:oe,factory:oe.\u0275fac}),oe})();class x{}let k=(()=>{class oe{handle(me){return me.key}}return oe.\u0275fac=function(me){return new(me||oe)},oe.\u0275prov=V.Yz7({token:oe,factory:oe.\u0275fac}),oe})();function Q(oe,Ce){if(oe===Ce)return!0;if(null===oe||null===Ce)return!1;if(oe!=oe&&Ce!=Ce)return!0;let _e,Ae,ve,me=typeof oe;if(me==typeof Ce&&"object"==me){if(!Array.isArray(oe)){if(Array.isArray(Ce))return!1;for(Ae in ve=Object.create(null),oe){if(!Q(oe[Ae],Ce[Ae]))return!1;ve[Ae]=!0}for(Ae in Ce)if(!(Ae in ve)&&typeof Ce[Ae]<"u")return!1;return!0}if(!Array.isArray(Ce))return!1;if((_e=oe.length)==Ce.length){for(Ae=0;Ae<_e;Ae++)if(!Q(oe[Ae],Ce[Ae]))return!1;return!0}}return!1}function I(oe){return typeof oe<"u"&&null!==oe}function d(oe){return oe&&"object"==typeof oe&&!Array.isArray(oe)}function S(oe,Ce){let me=Object.assign({},oe);return d(oe)&&d(Ce)&&Object.keys(Ce).forEach(ze=>{d(Ce[ze])?ze in oe?me[ze]=S(oe[ze],Ce[ze]):Object.assign(me,{[ze]:Ce[ze]}):Object.assign(me,{[ze]:Ce[ze]})}),me}class R{}let z=(()=>{class oe extends R{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(me,ze){let _e;return _e="string"==typeof me?this.interpolateString(me,ze):"function"==typeof me?this.interpolateFunction(me,ze):me,_e}getValue(me,ze){let _e="string"==typeof ze?ze.split("."):[ze];ze="";do{ze+=_e.shift(),!I(me)||!I(me[ze])||"object"!=typeof me[ze]&&_e.length?_e.length?ze+=".":me=void 0:(me=me[ze],ze="")}while(_e.length);return me}interpolateFunction(me,ze){return me(ze)}interpolateString(me,ze){return ze?me.replace(this.templateMatcher,(_e,Ae)=>{let ve=this.getValue(ze,Ae);return I(ve)?ve:_e}):me}}return oe.\u0275fac=function(){let Ce;return function(ze){return(Ce||(Ce=V.n5z(oe)))(ze||oe)}}(),oe.\u0275prov=V.Yz7({token:oe,factory:oe.\u0275fac}),oe})();class q{}let Z=(()=>{class oe extends q{compile(me,ze){return me}compileTranslations(me,ze){return me}}return oe.\u0275fac=function(){let Ce;return function(ze){return(Ce||(Ce=V.n5z(oe)))(ze||oe)}}(),oe.\u0275prov=V.Yz7({token:oe,factory:oe.\u0275fac}),oe})();class H{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new V.vpe,this.onLangChange=new V.vpe,this.onDefaultLangChange=new V.vpe}}const G=new V.OlP("USE_STORE"),W=new V.OlP("USE_DEFAULT_LANG"),te=new V.OlP("DEFAULT_LANGUAGE"),P=new V.OlP("USE_EXTEND");let J=(()=>{class oe{constructor(me,ze,_e,Ae,ve,ye=!0,Oe=!1,ae=!1,Ee){this.store=me,this.currentLoader=ze,this.compiler=_e,this.parser=Ae,this.missingTranslationHandler=ve,this.useDefaultLang=ye,this.isolate=Oe,this.extend=ae,this.pending=!1,this._onTranslationChange=new V.vpe,this._onLangChange=new V.vpe,this._onDefaultLangChange=new V.vpe,this._langs=[],this._translations={},this._translationRequests={},Ee&&this.setDefaultLang(Ee)}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(me){this.isolate?this._defaultLang=me:this.store.defaultLang=me}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(me){this.isolate?this._currentLang=me:this.store.currentLang=me}get langs(){return this.isolate?this._langs:this.store.langs}set langs(me){this.isolate?this._langs=me:this.store.langs=me}get translations(){return this.isolate?this._translations:this.store.translations}set translations(me){this.isolate?this._translations=me:this.store.translations=me}setDefaultLang(me){if(me===this.defaultLang)return;let ze=this.retrieveTranslations(me);typeof ze<"u"?(null==this.defaultLang&&(this.defaultLang=me),ze.pipe((0,h.q)(1)).subscribe(_e=>{this.changeDefaultLang(me)})):this.changeDefaultLang(me)}getDefaultLang(){return this.defaultLang}use(me){if(me===this.currentLang)return(0,K.of)(this.translations[me]);let ze=this.retrieveTranslations(me);return typeof ze<"u"?(this.currentLang||(this.currentLang=me),ze.pipe((0,h.q)(1)).subscribe(_e=>{this.changeLang(me)}),ze):(this.changeLang(me),(0,K.of)(this.translations[me]))}retrieveTranslations(me){let ze;return(typeof this.translations[me]>"u"||this.extend)&&(this._translationRequests[me]=this._translationRequests[me]||this.getTranslation(me),ze=this._translationRequests[me]),ze}getTranslation(me){this.pending=!0;const ze=this.currentLoader.getTranslation(me).pipe((0,f.d)(1),(0,h.q)(1));return this.loadingTranslations=ze.pipe((0,_.U)(_e=>this.compiler.compileTranslations(_e,me)),(0,f.d)(1),(0,h.q)(1)),this.loadingTranslations.subscribe({next:_e=>{this.translations[me]=this.extend&&this.translations[me]?{..._e,...this.translations[me]}:_e,this.updateLangs(),this.pending=!1},error:_e=>{this.pending=!1}}),ze}setTranslation(me,ze,_e=!1){ze=this.compiler.compileTranslations(ze,me),this.translations[me]=(_e||this.extend)&&this.translations[me]?S(this.translations[me],ze):ze,this.updateLangs(),this.onTranslationChange.emit({lang:me,translations:this.translations[me]})}getLangs(){return this.langs}addLangs(me){me.forEach(ze=>{-1===this.langs.indexOf(ze)&&this.langs.push(ze)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(me,ze,_e){let Ae;if(ze instanceof Array){let ve={},ye=!1;for(let Oe of ze)ve[Oe]=this.getParsedResult(me,Oe,_e),(0,T.b)(ve[Oe])&&(ye=!0);if(ye){const Oe=ze.map(ae=>(0,T.b)(ve[ae])?ve[ae]:(0,K.of)(ve[ae]));return(0,e.D)(Oe).pipe((0,_.U)(ae=>{let Ee={};return ae.forEach((Fe,Ve)=>{Ee[ze[Ve]]=Fe}),Ee}))}return ve}if(me&&(Ae=this.parser.interpolate(this.parser.getValue(me,ze),_e)),typeof Ae>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Ae=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],ze),_e)),typeof Ae>"u"){let ve={key:ze,translateService:this};typeof _e<"u"&&(ve.interpolateParams=_e),Ae=this.missingTranslationHandler.handle(ve)}return typeof Ae<"u"?Ae:ze}get(me,ze){if(!I(me)||!me.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,b.b)(_e=>(_e=this.getParsedResult(_e,me,ze),(0,T.b)(_e)?_e:(0,K.of)(_e))));{let _e=this.getParsedResult(this.translations[this.currentLang],me,ze);return(0,T.b)(_e)?_e:(0,K.of)(_e)}}getStreamOnTranslationChange(me,ze){if(!I(me)||!me.length)throw new Error('Parameter "key" required');return(0,l.z)((0,v.P)(()=>this.get(me,ze)),this.onTranslationChange.pipe((0,y.w)(_e=>{const Ae=this.getParsedResult(_e.translations,me,ze);return"function"==typeof Ae.subscribe?Ae:(0,K.of)(Ae)})))}stream(me,ze){if(!I(me)||!me.length)throw new Error('Parameter "key" required');return(0,l.z)((0,v.P)(()=>this.get(me,ze)),this.onLangChange.pipe((0,y.w)(_e=>{const Ae=this.getParsedResult(_e.translations,me,ze);return(0,T.b)(Ae)?Ae:(0,K.of)(Ae)})))}instant(me,ze){if(!I(me)||!me.length)throw new Error('Parameter "key" required');let _e=this.getParsedResult(this.translations[this.currentLang],me,ze);if((0,T.b)(_e)){if(me instanceof Array){let Ae={};return me.forEach((ve,ye)=>{Ae[me[ye]]=me[ye]}),Ae}return me}return _e}set(me,ze,_e=this.currentLang){this.translations[_e][me]=this.compiler.compile(ze,_e),this.updateLangs(),this.onTranslationChange.emit({lang:_e,translations:this.translations[_e]})}changeLang(me){this.currentLang=me,this.onLangChange.emit({lang:me,translations:this.translations[me]}),null==this.defaultLang&&this.changeDefaultLang(me)}changeDefaultLang(me){this.defaultLang=me,this.onDefaultLangChange.emit({lang:me,translations:this.translations[me]})}reloadLang(me){return this.resetLang(me),this.getTranslation(me)}resetLang(me){this._translationRequests[me]=void 0,this.translations[me]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let me=window.navigator.languages?window.navigator.languages[0]:null;return me=me||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof me>"u"?void 0:(-1!==me.indexOf("-")&&(me=me.split("-")[0]),-1!==me.indexOf("_")&&(me=me.split("_")[0]),me)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let me=window.navigator.languages?window.navigator.languages[0]:null;return me=me||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,me}}return oe.\u0275fac=function(me){return new(me||oe)(V.LFG(H),V.LFG(M),V.LFG(q),V.LFG(R),V.LFG(x),V.LFG(W),V.LFG(G),V.LFG(P),V.LFG(te))},oe.\u0275prov=V.Yz7({token:oe,factory:oe.\u0275fac}),oe})(),re=(()=>{class oe{constructor(me,ze){this.translate=me,this._ref=ze,this.value="",this.lastKey=null,this.lastParams=[]}updateValue(me,ze,_e){let Ae=ve=>{this.value=void 0!==ve?ve:me,this.lastKey=me,this._ref.markForCheck()};if(_e){let ve=this.translate.getParsedResult(_e,me,ze);(0,T.b)(ve.subscribe)?ve.subscribe(Ae):Ae(ve)}this.translate.get(me,ze).subscribe(Ae)}transform(me,...ze){if(!me||!me.length)return me;if(Q(me,this.lastKey)&&Q(ze,this.lastParams))return this.value;let _e;if(I(ze[0])&&ze.length)if("string"==typeof ze[0]&&ze[0].length){let Ae=ze[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{_e=JSON.parse(Ae)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${ze[0]}`)}}else"object"==typeof ze[0]&&!Array.isArray(ze[0])&&(_e=ze[0]);return this.lastKey=me,this.lastParams=ze,this.updateValue(me,_e),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Ae=>{this.lastKey&&Ae.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(me,_e,Ae.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Ae=>{this.lastKey&&(this.lastKey=null,this.updateValue(me,_e,Ae.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(me,_e))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return oe.\u0275fac=function(me){return new(me||oe)(V.Y36(J,16),V.Y36(V.sBO,16))},oe.\u0275pipe=V.Yjl({name:"translate",type:oe,pure:!1}),oe.\u0275prov=V.Yz7({token:oe,factory:oe.\u0275fac}),oe})(),he=(()=>{class oe{static forRoot(me={}){return{ngModule:oe,providers:[me.loader||{provide:M,useClass:D},me.compiler||{provide:q,useClass:Z},me.parser||{provide:R,useClass:z},me.missingTranslationHandler||{provide:x,useClass:k},H,{provide:G,useValue:me.isolate},{provide:W,useValue:me.useDefaultLang},{provide:P,useValue:me.extend},{provide:te,useValue:me.defaultLanguage},J]}}static forChild(me={}){return{ngModule:oe,providers:[me.loader||{provide:M,useClass:D},me.compiler||{provide:q,useClass:Z},me.parser||{provide:R,useClass:z},me.missingTranslationHandler||{provide:x,useClass:k},{provide:G,useValue:me.isolate},{provide:W,useValue:me.useDefaultLang},{provide:P,useValue:me.extend},{provide:te,useValue:me.defaultLanguage},J]}}}return oe.\u0275fac=function(me){return new(me||oe)},oe.\u0275mod=V.oAB({type:oe}),oe.\u0275inj=V.cJS({}),oe})()},5024:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{IM:()=>Xe,IX:()=>vt,RU:()=>z,sm:()=>J,tQ:()=>S});var V=ce(6814),K=ce(5879),T=ce(8645),e=ce(3620),l=ce(9773),v=ce(4664),h=ce(4825);function f(Qt,qe){if(1&Qt&&K._UZ(0,"div",3),2&Qt){const ke=qe.index,it=K.oxw();K.Q6J("ngStyle",it.gridRenderer.getGridColumnStyle(ke))}}function _(Qt,qe){if(1&Qt&&K._UZ(0,"div",4),2&Qt){const ke=qe.index,it=K.oxw();K.Q6J("ngStyle",it.gridRenderer.getGridRowStyle(ke))}}const b=["*"];function y(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",8),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function M(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",9),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function D(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",10),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function x(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",11),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function k(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",12),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function Q(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",13),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function I(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",14),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}function d(Qt,qe){if(1&Qt){const ke=K.EpF();K.TgZ(0,"div",15),K.NdJ("mousedown",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))})("touchstart",function(gt){K.CHM(ke);const ai=K.oxw();return K.KtG(ai.resize.dragStartDelay(gt))}),K.qZA()}}var S=function(Qt){return Qt.Fit="fit",Qt.ScrollVertical="scrollVertical",Qt.ScrollHorizontal="scrollHorizontal",Qt.Fixed="fixed",Qt.VerticalFixed="verticalFixed",Qt.HorizontalFixed="horizontalFixed",Qt}(S||{}),R=function(Qt){return Qt.Always="always",Qt.OnDragAndResize="onDrag&Resize",Qt.None="none",Qt}(R||{}),z=function(Qt){return Qt.None="none",Qt.CompactUp="compactUp",Qt.CompactLeft="compactLeft",Qt.CompactUpAndLeft="compactUp&Left",Qt.CompactLeftAndUp="compactLeft&Up",Qt.CompactRight="compactRight",Qt.CompactUpAndRight="compactUp&Right",Qt.CompactRightAndUp="compactRight&Up",Qt.CompactDown="compactDown",Qt.CompactDownAndLeft="compactDown&Left",Qt.CompactLeftAndDown="compactLeft&Down",Qt.CompactDownAndRight="compactDown&Right",Qt.CompactRightAndDown="compactRight&Down",Qt}(z||{}),q=function(Qt){return Qt.LTR="ltr",Qt.RTL="rtl",Qt}(q||{});class Z{constructor(qe){this.gridster=qe}destroy(){this.gridster=null}checkCompact(){this.gridster.$options.compactType!==z.None&&(this.gridster.$options.compactType===z.CompactUp?this.checkCompactMovement("y",-1):this.gridster.$options.compactType===z.CompactLeft?this.checkCompactMovement("x",-1):this.gridster.$options.compactType===z.CompactUpAndLeft?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===z.CompactLeftAndUp?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===z.CompactRight?this.checkCompactMovement("x",1):this.gridster.$options.compactType===z.CompactUpAndRight?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===z.CompactRightAndUp?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===z.CompactDown?this.checkCompactMovement("y",1):this.gridster.$options.compactType===z.CompactDownAndLeft?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===z.CompactDownAndRight?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===z.CompactLeftAndDown?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===z.CompactRightAndDown&&(this.checkCompactMovement("x",1),this.checkCompactMovement("y",1)))}checkCompactItem(qe){this.gridster.$options.compactType!==z.None&&(this.gridster.$options.compactType===z.CompactUp?this.moveTillCollision(qe,"y",-1):this.gridster.$options.compactType===z.CompactLeft?this.moveTillCollision(qe,"x",-1):this.gridster.$options.compactType===z.CompactUpAndLeft?(this.moveTillCollision(qe,"y",-1),this.moveTillCollision(qe,"x",-1)):this.gridster.$options.compactType===z.CompactLeftAndUp?(this.moveTillCollision(qe,"x",-1),this.moveTillCollision(qe,"y",-1)):this.gridster.$options.compactType===z.CompactUpAndRight?(this.moveTillCollision(qe,"y",-1),this.moveTillCollision(qe,"x",1)):this.gridster.$options.compactType===z.CompactDown?this.moveTillCollision(qe,"y",1):this.gridster.$options.compactType===z.CompactDownAndLeft?(this.moveTillCollision(qe,"y",1),this.moveTillCollision(qe,"x",-1)):this.gridster.$options.compactType===z.CompactLeftAndDown?(this.moveTillCollision(qe,"x",-1),this.moveTillCollision(qe,"y",1)):this.gridster.$options.compactType===z.CompactDownAndRight?(this.moveTillCollision(qe,"y",1),this.moveTillCollision(qe,"x",1)):this.gridster.$options.compactType===z.CompactRightAndDown&&(this.moveTillCollision(qe,"x",1),this.moveTillCollision(qe,"y",1)))}checkCompactMovement(qe,ke){let it=!1;this.gridster.grid.forEach(gt=>{!1!==gt.$item.compactEnabled&&this.moveTillCollision(gt.$item,qe,ke)&&(it=!0,gt.item[qe]=gt.$item[qe],gt.itemChanged())}),it&&this.checkCompact()}moveTillCollision(qe,ke,it){return qe[ke]+=it,this.gridster.checkCollision(qe)?(qe[ke]-=it,!1):(this.moveTillCollision(qe,ke,it),!0)}}const H={gridType:S.Fit,scale:1,fixedColWidth:250,fixedRowHeight:250,keepFixedHeightInMobile:!1,keepFixedWidthInMobile:!1,setGridSize:!1,compactType:z.None,mobileBreakpoint:640,useBodyForBreakpoint:!1,allowMultiLayer:!1,defaultLayerIndex:0,maxLayerIndex:2,baseLayerIndex:1,minCols:1,maxCols:100,minRows:1,maxRows:100,defaultItemCols:1,defaultItemRows:1,maxItemCols:50,maxItemRows:50,minItemCols:1,minItemRows:1,minItemArea:1,maxItemArea:2500,addEmptyRowsCount:0,rowHeightRatio:1,margin:10,outerMargin:!0,outerMarginTop:null,outerMarginRight:null,outerMarginBottom:null,outerMarginLeft:null,useTransformPositioning:!0,scrollSensitivity:10,scrollSpeed:20,initCallback:void 0,destroyCallback:void 0,gridSizeChangedCallback:void 0,itemChangeCallback:void 0,itemResizeCallback:void 0,itemInitCallback:void 0,itemRemovedCallback:void 0,itemValidateCallback:void 0,enableEmptyCellClick:!1,enableEmptyCellContextMenu:!1,enableEmptyCellDrop:!1,enableEmptyCellDrag:!1,enableOccupiedCellDrop:!1,emptyCellClickCallback:void 0,emptyCellContextMenuCallback:void 0,emptyCellDropCallback:void 0,emptyCellDragCallback:void 0,emptyCellDragMaxCols:50,emptyCellDragMaxRows:50,ignoreMarginInRow:!1,draggable:{delayStart:0,enabled:!1,ignoreContentClass:"gridster-item-content",ignoreContent:!1,dragHandleClass:"drag-handler",stop:void 0,start:void 0,dropOverItems:!1,dropOverItemsCallback:void 0},resizable:{delayStart:0,enabled:!1,handles:{s:!0,e:!0,n:!0,w:!0,se:!0,ne:!0,sw:!0,nw:!0},stop:void 0,start:void 0},swap:!0,swapWhileDragging:!1,pushItems:!1,disablePushOnDrag:!1,disablePushOnResize:!1,pushDirections:{north:!0,east:!0,south:!0,west:!0},pushResizeItems:!1,displayGrid:R.OnDragAndResize,disableWindowResize:!1,disableWarnings:!1,scrollToNewItems:!1,disableScrollHorizontal:!1,disableScrollVertical:!1,enableBoundaryControl:!1,disableAutoPositionOnConflict:!1,dirType:q.LTR};class G{static merge(qe,ke,it){for(const gt in ke)void 0!==ke[gt]&&it.hasOwnProperty(gt)&&("object"==typeof ke[gt]?(gt in qe||(qe[gt]={}),qe[gt]=G.merge(qe[gt],ke[gt],it[gt])):qe[gt]=ke[gt]);return qe}static checkTouchEvent(qe){void 0===qe.clientX&&qe.touches&&(qe.touches&&qe.touches.length?(qe.clientX=qe.touches[0].clientX,qe.clientY=qe.touches[0].clientY):qe.changedTouches&&qe.changedTouches.length&&(qe.clientX=qe.changedTouches[0].clientX,qe.clientY=qe.changedTouches[0].clientY))}static checkContentClassForEvent(qe,ke){if(qe.$options.draggable.ignoreContent){if(!G.checkDragHandleClass(ke.target,ke.currentTarget,qe.$options.draggable.dragHandleClass,qe.$options.draggable.ignoreContentClass))return!0}else if(G.checkContentClass(ke.target,ke.currentTarget,qe.$options.draggable.ignoreContentClass))return!0;return!1}static checkContentClassForEmptyCellClickEvent(qe,ke){return G.checkContentClass(ke.target,ke.currentTarget,qe.$options.draggable.ignoreContentClass)||G.checkContentClass(ke.target,ke.currentTarget,qe.$options.draggable.dragHandleClass)}static checkDragHandleClass(qe,ke,it,gt){if(!qe||qe===ke)return!1;if(qe.hasAttribute("class")){const ai=qe.getAttribute("class").split(" ");if(ai.indexOf(it)>-1)return!0;if(ai.indexOf(gt)>-1)return!1}return G.checkDragHandleClass(qe.parentNode,ke,it,gt)}static checkContentClass(qe,ke,it){return!(!qe||qe===ke)&&(!!(qe.hasAttribute("class")&&qe.getAttribute("class").split(" ").indexOf(it)>-1)||G.checkContentClass(qe.parentNode,ke,it))}static compareItems(qe,ke){return qe.y>ke.y?-1:qe.yke.x?-1:1}}class W{constructor(qe){this.gridster=qe,this.emptyCellClickCb=ke=>{if(!this.gridster||this.gridster.movingItem||G.checkContentClassForEmptyCellClickEvent(this.gridster,ke))return;const it=this.getValidItemFromEvent(ke);it&&(this.gridster.options.emptyCellClickCallback&&this.gridster.options.emptyCellClickCallback(ke,it),this.gridster.cdRef.markForCheck())},this.emptyCellContextMenuCb=ke=>{if(this.gridster.movingItem||G.checkContentClassForEmptyCellClickEvent(this.gridster,ke))return;ke.preventDefault(),ke.stopPropagation();const it=this.getValidItemFromEvent(ke);it&&(this.gridster.options.emptyCellContextMenuCallback&&this.gridster.options.emptyCellContextMenuCallback(ke,it),this.gridster.cdRef.markForCheck())},this.emptyCellDragDrop=ke=>{const it=this.getValidItemFromEvent(ke);it&&(this.gridster.options.emptyCellDropCallback&&this.gridster.options.emptyCellDropCallback(ke,it),this.gridster.cdRef.markForCheck())},this.emptyCellDragOver=ke=>{ke.preventDefault(),ke.stopPropagation();const it=this.getValidItemFromEvent(ke);it?(ke.dataTransfer&&(ke.dataTransfer.dropEffect="move"),this.gridster.movingItem=it):(ke.dataTransfer&&(ke.dataTransfer.dropEffect="none"),this.gridster.movingItem=null),this.gridster.previewStyle()},this.emptyCellMouseDown=ke=>{if(G.checkContentClassForEmptyCellClickEvent(this.gridster,ke))return;ke.preventDefault(),ke.stopPropagation();const it=this.getValidItemFromEvent(ke);!it||1!==ke.buttons&&!(ke instanceof TouchEvent)||(this.initialItem=it,this.gridster.movingItem=it,this.gridster.previewStyle(),this.gridster.zone.runOutsideAngular(()=>{this.removeWindowMousemoveListenerFn=this.gridster.renderer.listen("window","mousemove",this.emptyCellMouseMove),this.removeWindowTouchmoveListenerFn=this.gridster.renderer.listen("window","touchmove",this.emptyCellMouseMove)}),this.removeWindowMouseupListenerFn=this.gridster.renderer.listen("window","mouseup",this.emptyCellMouseUp),this.removeWindowTouchendListenerFn=this.gridster.renderer.listen("window","touchend",this.emptyCellMouseUp))},this.emptyCellMouseMove=ke=>{ke.preventDefault(),ke.stopPropagation();const it=this.getValidItemFromEvent(ke,this.initialItem);it&&(this.gridster.movingItem=it,this.gridster.previewStyle())},this.emptyCellMouseUp=ke=>{this.removeWindowMousemoveListenerFn(),this.removeWindowTouchmoveListenerFn(),this.removeWindowMouseupListenerFn(),this.removeWindowTouchendListenerFn();const it=this.getValidItemFromEvent(ke,this.initialItem);it&&(this.gridster.movingItem=it),this.gridster.options.emptyCellDragCallback&&this.gridster.movingItem&&this.gridster.options.emptyCellDragCallback(ke,this.gridster.movingItem),setTimeout(()=>{this.initialItem=null,this.gridster&&(this.gridster.movingItem=null,this.gridster.previewStyle())}),this.gridster.cdRef.markForCheck()}}destroy(){this.gridster.previewStyle&&this.gridster.previewStyle(),this.gridster.movingItem=null,this.initialItem=this.gridster=null,this.removeDocumentDragendListenerFn&&(this.removeDocumentDragendListenerFn(),this.removeDocumentDragendListenerFn=null)}updateOptions(){this.gridster.$options.enableEmptyCellClick&&!this.removeEmptyCellClickListenerFn&&this.gridster.options.emptyCellClickCallback?(this.removeEmptyCellClickListenerFn=this.gridster.renderer.listen(this.gridster.el,"click",this.emptyCellClickCb),this.removeEmptyCellTouchendListenerFn=this.gridster.renderer.listen(this.gridster.el,"touchend",this.emptyCellClickCb)):!this.gridster.$options.enableEmptyCellClick&&this.removeEmptyCellClickListenerFn&&this.removeEmptyCellTouchendListenerFn&&(this.removeEmptyCellClickListenerFn(),this.removeEmptyCellTouchendListenerFn(),this.removeEmptyCellClickListenerFn=null,this.removeEmptyCellTouchendListenerFn=null),this.gridster.$options.enableEmptyCellContextMenu&&!this.removeEmptyCellContextMenuListenerFn&&this.gridster.options.emptyCellContextMenuCallback?this.removeEmptyCellContextMenuListenerFn=this.gridster.renderer.listen(this.gridster.el,"contextmenu",this.emptyCellContextMenuCb):!this.gridster.$options.enableEmptyCellContextMenu&&this.removeEmptyCellContextMenuListenerFn&&(this.removeEmptyCellContextMenuListenerFn(),this.removeEmptyCellContextMenuListenerFn=null),this.gridster.$options.enableEmptyCellDrop&&!this.removeEmptyCellDropListenerFn&&this.gridster.options.emptyCellDropCallback?(this.removeEmptyCellDropListenerFn=this.gridster.renderer.listen(this.gridster.el,"drop",this.emptyCellDragDrop),this.gridster.zone.runOutsideAngular(()=>{this.removeEmptyCellDragoverListenerFn=this.gridster.renderer.listen(this.gridster.el,"dragover",this.emptyCellDragOver)}),this.removeDocumentDragendListenerFn=this.gridster.renderer.listen("document","dragend",()=>{this.gridster.movingItem=null,this.gridster.previewStyle()})):!this.gridster.$options.enableEmptyCellDrop&&this.removeEmptyCellDropListenerFn&&this.removeEmptyCellDragoverListenerFn&&this.removeDocumentDragendListenerFn&&(this.removeEmptyCellDropListenerFn(),this.removeEmptyCellDragoverListenerFn(),this.removeDocumentDragendListenerFn(),this.removeEmptyCellDragoverListenerFn=null,this.removeEmptyCellDropListenerFn=null,this.removeDocumentDragendListenerFn=null),this.gridster.$options.enableEmptyCellDrag&&!this.removeEmptyCellMousedownListenerFn&&this.gridster.options.emptyCellDragCallback?(this.removeEmptyCellMousedownListenerFn=this.gridster.renderer.listen(this.gridster.el,"mousedown",this.emptyCellMouseDown),this.removeEmptyCellTouchstartListenerFn=this.gridster.renderer.listen(this.gridster.el,"touchstart",this.emptyCellMouseDown)):!this.gridster.$options.enableEmptyCellDrag&&this.removeEmptyCellMousedownListenerFn&&this.removeEmptyCellTouchstartListenerFn&&(this.removeEmptyCellMousedownListenerFn(),this.removeEmptyCellTouchstartListenerFn(),this.removeEmptyCellMousedownListenerFn=null,this.removeEmptyCellTouchstartListenerFn=null)}getPixelsX(qe,ke){const it=this.gridster.options.scale;return it?(qe.clientX-ke.left)/it+this.gridster.el.scrollLeft-this.gridster.gridRenderer.getLeftMargin():qe.clientX+this.gridster.el.scrollLeft-ke.left-this.gridster.gridRenderer.getLeftMargin()}getPixelsY(qe,ke){const it=this.gridster.options.scale;return it?(qe.clientY-ke.top)/it+this.gridster.el.scrollTop-this.gridster.gridRenderer.getTopMargin():qe.clientY+this.gridster.el.scrollTop-ke.top-this.gridster.gridRenderer.getTopMargin()}getValidItemFromEvent(qe,ke){qe.preventDefault(),qe.stopPropagation(),G.checkTouchEvent(qe);const it=this.gridster.el.getBoundingClientRect(),gt=this.getPixelsX(qe,it),ai=this.getPixelsY(qe,it),Rt={x:this.gridster.pixelsToPositionX(gt,Math.floor,!0),y:this.gridster.pixelsToPositionY(ai,Math.floor,!0),cols:this.gridster.$options.defaultItemCols,rows:this.gridster.$options.defaultItemRows};if(ke&&(Rt.cols=Math.min(Math.abs(ke.x-Rt.x)+1,this.gridster.$options.emptyCellDragMaxCols),Rt.rows=Math.min(Math.abs(ke.y-Rt.y)+1,this.gridster.$options.emptyCellDragMaxRows),ke.xthis.gridster.$options.emptyCellDragMaxCols-1&&(Rt.x=this.gridster.movingItem?this.gridster.movingItem.x:0),ke.ythis.gridster.$options.emptyCellDragMaxRows-1&&(Rt.y=this.gridster.movingItem?this.gridster.movingItem.y:0)),this.gridster.$options.enableOccupiedCellDrop||!this.gridster.checkCollision(Rt))return Rt}}class te{constructor(qe){this.gridster=qe,this.lastGridColumnStyles={},this.lastGridRowStyles={}}destroy(){this.gridster=null}updateItem(qe,ke,it){if(this.gridster.mobile)this.clearCellPosition(it,qe),it.setStyle(qe,"height",this.gridster.$options.keepFixedHeightInMobile?(ke.rows-1)*this.gridster.$options.margin+ke.rows*this.gridster.$options.fixedRowHeight+"px":ke.rows*this.gridster.curWidth/ke.cols+"px"),it.setStyle(qe,"width",this.gridster.$options.keepFixedWidthInMobile?this.gridster.$options.fixedColWidth+"px":""),it.setStyle(qe,"margin-bottom",this.gridster.$options.margin+"px"),it.setStyle(qe,q.LTR?"margin-right":"margin-left","");else{const gt=Math.round(this.gridster.curColWidth*ke.x),ai=Math.round(this.gridster.curRowHeight*ke.y),Rt=this.gridster.curColWidth*ke.cols-this.gridster.$options.margin,Gt=this.gridster.curRowHeight*ke.rows-this.gridster.$options.margin;this.setCellPosition(it,qe,gt,ai),it.setStyle(qe,"width",Rt+"px"),it.setStyle(qe,"height",Gt+"px");let zt=null,mi=null;this.gridster.$options.outerMargin&&(this.gridster.rows===ke.rows+ke.y&&(zt=null!==this.gridster.$options.outerMarginBottom?this.gridster.$options.outerMarginBottom+"px":this.gridster.$options.margin+"px"),this.gridster.columns===ke.cols+ke.x&&(mi=null!==this.gridster.$options.outerMarginBottom?this.gridster.$options.outerMarginRight+"px":this.gridster.$options.margin+"px")),it.setStyle(qe,"margin-bottom",zt),it.setStyle(qe,q.LTR?"margin-right":"margin-left",mi)}}updateGridster(){let qe="",ke="",it="",gt="";if(this.gridster.$options.gridType===S.Fit)qe=S.Fit,ke=S.ScrollVertical,it=S.ScrollHorizontal,gt=S.Fixed;else if(this.gridster.$options.gridType===S.ScrollVertical)this.gridster.curRowHeight=this.gridster.curColWidth*this.gridster.$options.rowHeightRatio,qe=S.ScrollVertical,ke=S.Fit,it=S.ScrollHorizontal,gt=S.Fixed;else if(this.gridster.$options.gridType===S.ScrollHorizontal){const ai=this.gridster.$options.rowHeightRatio;this.gridster.curColWidth=this.gridster.curRowHeight*(ai>=1?ai:ai+1),qe=S.ScrollHorizontal,ke=S.Fit,it=S.ScrollVertical,gt=S.Fixed}else this.gridster.$options.gridType===S.Fixed?(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),qe=S.Fixed,ke=S.Fit,it=S.ScrollVertical,gt=S.ScrollHorizontal):this.gridster.$options.gridType===S.VerticalFixed?(this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),qe=S.ScrollVertical,ke=S.Fit,it=S.ScrollHorizontal,gt=S.Fixed):this.gridster.$options.gridType===S.HorizontalFixed&&(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),qe=S.ScrollHorizontal,ke=S.Fit,it=S.ScrollVertical,gt=S.Fixed);this.gridster.mobile||this.gridster.$options.setGridSize&&this.gridster.$options.gridType!==S.Fit?this.gridster.renderer.removeClass(this.gridster.el,qe):this.gridster.renderer.addClass(this.gridster.el,qe),this.gridster.renderer.removeClass(this.gridster.el,ke),this.gridster.renderer.removeClass(this.gridster.el,it),this.gridster.renderer.removeClass(this.gridster.el,gt)}getGridColumnStyle(qe){const ke={left:this.gridster.curColWidth*qe,width:this.gridster.curColWidth-this.gridster.$options.margin,height:this.gridster.gridRows.length*this.gridster.curRowHeight-this.gridster.$options.margin,style:{}};ke.style={...this.getLeftPosition(ke.left),width:ke.width+"px",height:ke.height+"px"};const it=this.lastGridColumnStyles[qe];return it&&it.left===ke.left&&it.width===ke.width&&it.height===ke.height?it.style:(this.lastGridColumnStyles[qe]=ke,ke.style)}getGridRowStyle(qe){const ke={top:this.gridster.curRowHeight*qe,width:this.gridster.gridColumns.length*this.gridster.curColWidth+this.gridster.$options.margin,height:this.gridster.curRowHeight-this.gridster.$options.margin,style:{}};ke.style={...this.getTopPosition(ke.top),width:ke.width+"px",height:ke.height+"px"};const it=this.lastGridRowStyles[qe];return it&&it.top===ke.top&&it.width===ke.width&&it.height===ke.height?it.style:(this.lastGridRowStyles[qe]=ke,ke.style)}getLeftPosition(qe){const ke=this.gridster.$options.dirType===q.RTL?-qe:qe;return this.gridster.$options.useTransformPositioning?{transform:"translateX("+ke+"px)"}:{left:this.getLeftMargin()+ke+"px"}}getTopPosition(qe){return this.gridster.$options.useTransformPositioning?{transform:"translateY("+qe+"px)"}:{top:this.getTopMargin()+qe+"px"}}clearCellPosition(qe,ke){this.gridster.$options.useTransformPositioning?qe.setStyle(ke,"transform",""):(qe.setStyle(ke,"top",""),qe.setStyle(ke,"left",""))}setCellPosition(qe,ke,it,gt){const ai=this.gridster.$options.dirType===q.RTL?-it:it;this.gridster.$options.useTransformPositioning?qe.setStyle(ke,"transform","translate3d("+ai+"px, "+gt+"px, 0)"):(qe.setStyle(ke,"left",this.getLeftMargin()+ai+"px"),qe.setStyle(ke,"top",this.getTopMargin()+gt+"px"))}getLeftMargin(){return this.gridster.$options.outerMargin?null!==this.gridster.$options.outerMarginLeft?this.gridster.$options.outerMarginLeft:this.gridster.$options.margin:0}getTopMargin(){return this.gridster.$options.outerMargin?null!==this.gridster.$options.outerMarginTop?this.gridster.$options.outerMarginTop:this.gridster.$options.margin:0}}let re,he,P=(()=>{class Qt{constructor(ke,it){this.renderer=it,this.el=ke.nativeElement}ngOnInit(){this.sub=this.previewStyle$.subscribe(ke=>this.previewStyle(ke))}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}previewStyle(ke){ke?(this.renderer.setStyle(this.el,"display","block"),this.gridRenderer.updateItem(this.el,ke,this.renderer)):this.renderer.setStyle(this.el,"display","")}static{this.\u0275fac=function(it){return new(it||Qt)(K.Y36(K.SBq),K.Y36(K.Qsj))}}static{this.\u0275cmp=K.Xpm({type:Qt,selectors:[["gridster-preview"]],inputs:{previewStyle$:"previewStyle$",gridRenderer:"gridRenderer"},standalone:!0,features:[K.jDz],decls:0,vars:0,template:function(it,gt){},styles:["gridster-preview{position:absolute;display:none;background:rgba(0,0,0,.15)}\n"],encapsulation:2})}}return Qt})(),J=(()=>{class Qt{constructor(ke,it,gt,ai){this.renderer=it,this.cdRef=gt,this.zone=ai,this.columns=0,this.rows=0,this.gridColumns=[],this.gridRows=[],this.previewStyle$=new K.vpe,this.calculateLayout$=new T.x,this.resize$=new T.x,this.destroy$=new T.x,this.optionsChanged=()=>{this.setOptions();let Gt,Rt=this.grid.length-1;for(;Rt>=0;Rt--)Gt=this.grid[Rt],Gt.updateOptions();this.calculateLayout()},this.onResize=()=>{this.el.clientWidth&&(this.options.setGridSize&&(this.renderer.setStyle(this.el,"width",""),this.renderer.setStyle(this.el,"height","")),this.setGridSize(),this.calculateLayout())},this.getNextPossiblePosition=(Rt,Gt={})=>{-1===Rt.cols&&(Rt.cols=this.$options.defaultItemCols),-1===Rt.rows&&(Rt.rows=this.$options.defaultItemRows),this.setGridDimensions();let mi,zt=Gt.y||0;for(;zt=this.rows+Rt.rows;return this.rows<=this.columns&&Zi||!(this.$options.maxCols>=this.columns+Rt.cols)?!!Zi&&(Rt.y=this.rows,Rt.x=0,!0):(Rt.x=this.columns,Rt.y=0,!0)},this.getFirstPossiblePosition=Rt=>{const Gt=Object.assign({},Rt);return this.getNextPossiblePosition(Gt),Gt},this.getLastPossiblePosition=Rt=>{let Gt={y:0,x:0};Gt=this.grid.reduce((mi,Zi)=>{const Qi={y:Zi.$item.y+Zi.$item.rows-1,x:Zi.$item.x+Zi.$item.cols-1};return 1===G.compareItems(mi,Qi)?Qi:mi},Gt);const zt=Object.assign({},Rt);return this.getNextPossiblePosition(zt,Gt),zt},this.el=ke.nativeElement,this.$options=JSON.parse(JSON.stringify(H)),this.mobile=!1,this.curWidth=0,this.curHeight=0,this.grid=[],this.curColWidth=0,this.curRowHeight=0,this.dragInProgress=!1,this.emptyCell=new W(this),this.compact=new Z(this),this.gridRenderer=new te(this)}static checkCollisionTwoItemsForSwaping(ke,it){return ke.x+(1===ke.cols?0:1)it.x+(1===it.cols?0:1)&&ke.y+(1===ke.rows?0:1)it.y+(1===it.rows?0:1)}checkCollisionTwoItems(ke,it){if(!(ke.xit.x&&ke.yit.y))return!1;if(!this.$options.allowMultiLayer)return!0;const ai=this.$options.defaultLayerIndex;return(void 0===ke.layerIndex?ai:ke.layerIndex)===(void 0===it.layerIndex?ai:it.layerIndex)}ngOnInit(){this.options.initCallback&&this.options.initCallback(this),this.calculateLayout$.pipe((0,e.b)(0),(0,l.R)(this.destroy$)).subscribe(()=>this.calculateLayout()),this.resize$.pipe((0,v.w)(()=>(0,h.H)(100)),(0,l.R)(this.destroy$)).subscribe(()=>this.resize())}ngOnChanges(ke){ke.options&&(this.setOptions(),this.options.api={optionsChanged:this.optionsChanged,resize:this.onResize,getNextPossiblePosition:this.getNextPossiblePosition,getFirstPossiblePosition:this.getFirstPossiblePosition,getLastPossiblePosition:this.getLastPossiblePosition,getItemComponent:it=>this.getItemComponent(it)},this.columns=this.$options.minCols,this.rows=this.$options.minRows+this.$options.addEmptyRowsCount,this.setGridSize(),this.calculateLayout())}resize(){let ke,it;"fit"!==this.$options.gridType||this.mobile?(it=this.el.clientWidth,ke=this.el.clientHeight):(it=this.el.offsetWidth,ke=this.el.offsetHeight),(it!==this.curWidth||ke!==this.curHeight)&&this.checkIfToResize()&&this.onResize()}setOptions(){this.$options=G.merge(this.$options,this.options,this.$options),this.$options.disableWindowResize||this.windowResize?this.$options.disableWindowResize&&this.windowResize&&(this.windowResize(),this.windowResize=null):this.windowResize=this.renderer.listen("window","resize",this.onResize),this.emptyCell.updateOptions()}ngOnDestroy(){this.destroy$.next(),this.previewStyle$.complete(),this.windowResize&&this.windowResize(),this.options&&this.options.destroyCallback&&this.options.destroyCallback(this),this.options&&this.options.api&&(this.options.api.resize=void 0,this.options.api.optionsChanged=void 0,this.options.api.getNextPossiblePosition=void 0,this.options.api=void 0),this.emptyCell.destroy(),this.emptyCell=null,this.compact.destroy(),this.compact=null}checkIfToResize(){const ke=this.el.clientWidth,it=this.el.offsetWidth,gt=this.el.scrollWidth,ai=this.el.clientHeight,Rt=this.el.offsetHeight,Gt=this.el.scrollHeight;return!(keRt&&Gt-Rtit&>-itdocument.body.clientWidth:this.$options.mobileBreakpoint>this.curWidth}setGridSize(){const ke=this.el;let it,gt;this.$options.setGridSize||this.$options.gridType===S.Fit&&!this.mobile?(it=ke.offsetWidth,gt=ke.offsetHeight):(it=ke.clientWidth,gt=ke.clientHeight),this.curWidth=it,this.curHeight=gt}setGridDimensions(){this.setGridSize(),!this.mobile&&this.checkIfMobile()?(this.mobile=!this.mobile,this.renderer.addClass(this.el,"mobile")):this.mobile&&!this.checkIfMobile()&&(this.mobile=!this.mobile,this.renderer.removeClass(this.el,"mobile"));let ai,ke=this.$options.minRows,it=this.$options.minCols,gt=this.grid.length-1;for(;gt>=0;gt--)ai=this.grid[gt],ai.notPlaced||(ke=Math.max(ke,ai.$item.y+ai.$item.rows),it=Math.max(it,ai.$item.x+ai.$item.cols));ke+=this.$options.addEmptyRowsCount,(this.columns!==it||this.rows!==ke)&&(this.columns=it,this.rows=ke,this.options.gridSizeChangedCallback&&this.options.gridSizeChangedCallback(this))}calculateLayout(){if(this.compact&&this.compact.checkCompact(),this.setGridDimensions(),this.$options.outerMargin){let gt=-this.$options.margin;null!==this.$options.outerMarginLeft?(gt+=this.$options.outerMarginLeft,this.renderer.setStyle(this.el,"padding-left",this.$options.outerMarginLeft+"px")):(gt+=this.$options.margin,this.renderer.setStyle(this.el,"padding-left",this.$options.margin+"px")),null!==this.$options.outerMarginRight?(gt+=this.$options.outerMarginRight,this.renderer.setStyle(this.el,"padding-right",this.$options.outerMarginRight+"px")):(gt+=this.$options.margin,this.renderer.setStyle(this.el,"padding-right",this.$options.margin+"px")),this.curColWidth=(this.curWidth-gt)/this.columns;let ai=-this.$options.margin;null!==this.$options.outerMarginTop?(ai+=this.$options.outerMarginTop,this.renderer.setStyle(this.el,"padding-top",this.$options.outerMarginTop+"px")):(ai+=this.$options.margin,this.renderer.setStyle(this.el,"padding-top",this.$options.margin+"px")),null!==this.$options.outerMarginBottom?(ai+=this.$options.outerMarginBottom,this.renderer.setStyle(this.el,"padding-bottom",this.$options.outerMarginBottom+"px")):(ai+=this.$options.margin,this.renderer.setStyle(this.el,"padding-bottom",this.$options.margin+"px")),this.curRowHeight=(this.curHeight-ai)/this.rows*this.$options.rowHeightRatio}else this.curColWidth=(this.curWidth+this.$options.margin)/this.columns,this.curRowHeight=(this.curHeight+this.$options.margin)/this.rows*this.$options.rowHeightRatio,this.renderer.setStyle(this.el,"padding-left","0px"),this.renderer.setStyle(this.el,"padding-right","0px"),this.renderer.setStyle(this.el,"padding-top","0px"),this.renderer.setStyle(this.el,"padding-bottom","0px");this.gridRenderer.updateGridster(),this.$options.setGridSize?(this.renderer.addClass(this.el,"gridSize"),this.mobile||(this.renderer.setStyle(this.el,"width",this.columns*this.curColWidth+this.$options.margin+"px"),this.renderer.setStyle(this.el,"height",this.rows*this.curRowHeight+this.$options.margin+"px"))):(this.renderer.removeClass(this.el,"gridSize"),this.renderer.setStyle(this.el,"width",""),this.renderer.setStyle(this.el,"height","")),this.updateGrid();let it,ke=this.grid.length-1;for(;ke>=0;ke--)it=this.grid[ke],it.setSize(),it.drag.toggle(),it.resize.toggle();this.resize$.next()}updateGrid(){"always"!==this.$options.displayGrid||this.mobile?"onDrag&Resize"===this.$options.displayGrid&&this.dragInProgress?this.renderer.addClass(this.el,"display-grid"):("none"===this.$options.displayGrid||!this.dragInProgress||this.mobile)&&this.renderer.removeClass(this.el,"display-grid"):this.renderer.addClass(this.el,"display-grid"),this.setGridDimensions(),this.gridColumns.length=Qt.getNewArrayLength(this.columns,this.curWidth,this.curColWidth),this.gridRows.length=Qt.getNewArrayLength(this.rows,this.curHeight,this.curRowHeight),this.cdRef.markForCheck()}addItem(ke){void 0===ke.$item.cols&&(ke.$item.cols=this.$options.defaultItemCols,ke.item.cols=ke.$item.cols,ke.itemChanged()),void 0===ke.$item.rows&&(ke.$item.rows=this.$options.defaultItemRows,ke.item.rows=ke.$item.rows,ke.itemChanged()),-1===ke.$item.x||-1===ke.$item.y?this.autoPositionItem(ke):this.checkCollision(ke.$item)&&(this.$options.disableWarnings||(ke.notPlaced=!0,console.warn("Can't be placed in the bounds of the dashboard, trying to auto position!/n"+JSON.stringify(ke.item,["cols","rows","x","y"]))),this.$options.disableAutoPositionOnConflict?ke.notPlaced=!0:this.autoPositionItem(ke)),this.grid.push(ke),this.calculateLayout$.next()}removeItem(ke){this.grid.splice(this.grid.indexOf(ke),1),this.calculateLayout$.next(),this.options.itemRemovedCallback&&this.options.itemRemovedCallback(ke.item,ke)}checkCollision(ke){let it=!1;if(this.options.itemValidateCallback&&(it=!this.options.itemValidateCallback(ke)),!it&&this.checkGridCollision(ke)&&(it=!0),!it){const gt=this.findItemWithItem(ke);gt&&(it=gt)}return it}checkGridCollision(ke){const ge=ke.cols*ke.rows;return!(ke.y>-1&&ke.x>-1&&ke.cols+ke.x<=this.$options.maxCols&&ke.rows+ke.y<=this.$options.maxRows&&ke.cols<=(void 0===ke.maxItemCols?this.$options.maxItemCols:ke.maxItemCols)&&ke.cols>=(void 0===ke.minItemCols?this.$options.minItemCols:ke.minItemCols)&&ke.rows<=(void 0===ke.maxItemRows?this.$options.maxItemRows:ke.maxItemRows)&&ke.rows>=(void 0===ke.minItemRows?this.$options.minItemRows:ke.minItemRows)&&(void 0===ke.minItemArea?this.$options.minItemArea:ke.minItemArea)<=ge&&(void 0===ke.maxItemArea?this.$options.maxItemArea:ke.maxItemArea)>=ge)}findItemWithItem(ke){let gt,it=0;for(;itit.item===ke)}checkCollisionForSwaping(ke){let it=!1;if(this.options.itemValidateCallback&&(it=!this.options.itemValidateCallback(ke)),!it&&this.checkGridCollision(ke)&&(it=!0),!it){const gt=this.findItemWithItemForSwapping(ke);gt&&(it=gt)}return it}findItemWithItemForSwapping(ke){let gt,it=this.grid.length-1;for(;it>-1;it--)if(gt=this.grid[it],gt.$item!==ke&&Qt.checkCollisionTwoItemsForSwaping(gt.$item,ke))return gt;return!1}previewStyle(ke=!1){this.movingItem?(this.compact&&ke&&this.compact.checkCompactItem(this.movingItem),this.previewStyle$.next(this.movingItem)):this.previewStyle$.next(null)}static getNewArrayLength(ke,it,gt){const ai=Math.max(ke,Math.floor(it/gt));return ai<0?0:Number.isFinite(ai)?Math.floor(ai):0}static{this.\u0275fac=function(it){return new(it||Qt)(K.Y36(K.SBq),K.Y36(K.Qsj),K.Y36(K.sBO),K.Y36(K.R0b))}}static{this.\u0275cmp=K.Xpm({type:Qt,selectors:[["gridster"]],inputs:{options:"options"},standalone:!0,features:[K.TTD,K.jDz],ngContentSelectors:b,decls:4,vars:4,consts:[["class","gridster-column",3,"ngStyle",4,"ngFor","ngForOf"],["class","gridster-row",3,"ngStyle",4,"ngFor","ngForOf"],[1,"gridster-preview",3,"gridRenderer","previewStyle$"],[1,"gridster-column",3,"ngStyle"],[1,"gridster-row",3,"ngStyle"]],template:function(it,gt){1&it&&(K.F$t(),K.YNc(0,f,1,1,"div",0),K.YNc(1,_,1,1,"div",1),K.Hsn(2),K._UZ(3,"gridster-preview",2)),2&it&&(K.Q6J("ngForOf",gt.gridColumns),K.xp6(1),K.Q6J("ngForOf",gt.gridRows),K.xp6(2),K.Q6J("gridRenderer",gt.gridRenderer)("previewStyle$",gt.previewStyle$))},dependencies:[V.sg,V.PC,P],styles:["gridster{position:relative;box-sizing:border-box;background:grey;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"],encapsulation:2})}}return Qt})();class j{constructor(qe){this.iteration=0,this.pushedItems=[],this.pushedItemsTemp=[],this.pushedItemsTempPath=[],this.pushedItemsPath=[],this.gridsterItem=qe,this.gridster=qe.gridster,this.tryPattern={fromEast:[this.tryWest,this.trySouth,this.tryNorth,this.tryEast],fromWest:[this.tryEast,this.trySouth,this.tryNorth,this.tryWest],fromNorth:[this.trySouth,this.tryEast,this.tryWest,this.tryNorth],fromSouth:[this.tryNorth,this.tryEast,this.tryWest,this.trySouth]},this.fromSouth="fromSouth",this.fromNorth="fromNorth",this.fromEast="fromEast",this.fromWest="fromWest"}destroy(){this.gridster=this.gridsterItem=null}pushItems(qe,ke){if(this.gridster.$options.pushItems&&!ke){this.pushedItemsOrder=[],this.iteration=0;const it=this.push(this.gridsterItem,qe);return it||this.restoreTempItems(),this.pushedItemsOrder=[],this.pushedItemsTemp=[],this.pushedItemsTempPath=[],it}return!1}restoreTempItems(){let qe=this.pushedItemsTemp.length-1;for(;qe>-1;qe--)this.removeFromTempPushed(this.pushedItemsTemp[qe])}restoreItems(){let qe=0;const ke=this.pushedItems.length;let it;for(;qe-1;qe--)this.checkPushedItem(this.pushedItems[qe],qe)&&(ke=!0);ke&&this.checkPushBack()}push(qe,ke){if(this.iteration>100)return console.warn("max iteration reached"),!1;if(this.gridster.checkGridCollision(qe.$item)||""===ke)return!1;const it=this.gridster.findItemsWithItem(qe.$item),gt=ke===this.fromNorth||ke===this.fromWest;it.sort((mi,Zi)=>gt?Zi.$item.y-mi.$item.y||Zi.$item.x-mi.$item.x:mi.$item.y-Zi.$item.y||mi.$item.x-Zi.$item.x);let Rt,ai=0,Gt=!0;const zt=[];for(;ai-1&&this.pushedItemsTempPath[mi].length>10){Gt=!1;break}if(this.tryPattern[ke][0].call(this,Rt,qe))this.pushedItemsOrder.push(Rt),zt.push(Rt);else if(this.tryPattern[ke][1].call(this,Rt,qe))this.pushedItemsOrder.push(Rt),zt.push(Rt);else if(this.tryPattern[ke][2].call(this,Rt,qe))this.pushedItemsOrder.push(Rt),zt.push(Rt);else{if(!this.tryPattern[ke][3].call(this,Rt,qe)){Gt=!1;break}this.pushedItemsOrder.push(Rt),zt.push(Rt)}}if(!Gt&&(ai=this.pushedItemsOrder.lastIndexOf(zt[0]),ai>-1)){let mi=this.pushedItemsOrder.length-1;for(;mi>=ai;mi--)Rt=this.pushedItemsOrder[mi],this.pushedItemsOrder.pop(),this.removeFromTempPushed(Rt),this.removeFromPushedItem(Rt)}return this.iteration++,Gt}trySouth(qe,ke){return!!this.gridster.$options.pushDirections.south&&(this.addToTempPushed(qe),qe.$item.y=ke.$item.y+ke.$item.rows,this.push(qe,this.fromNorth)?(qe.setSize(),this.addToPushed(qe),!0):(this.removeFromTempPushed(qe),!1))}tryNorth(qe,ke){return!!this.gridster.$options.pushDirections.north&&(this.addToTempPushed(qe),qe.$item.y=ke.$item.y-qe.$item.rows,this.push(qe,this.fromSouth)?(qe.setSize(),this.addToPushed(qe),!0):(this.removeFromTempPushed(qe),!1))}tryEast(qe,ke){return!!this.gridster.$options.pushDirections.east&&(this.addToTempPushed(qe),qe.$item.x=ke.$item.x+ke.$item.cols,this.push(qe,this.fromWest)?(qe.setSize(),this.addToPushed(qe),!0):(this.removeFromTempPushed(qe),!1))}tryWest(qe,ke){return!!this.gridster.$options.pushDirections.west&&(this.addToTempPushed(qe),qe.$item.x=ke.$item.x-qe.$item.cols,this.push(qe,this.fromEast)?(qe.setSize(),this.addToPushed(qe),!0):(this.removeFromTempPushed(qe),!1))}addToTempPushed(qe){let ke=this.pushedItemsTemp.indexOf(qe);-1===ke&&(ke=this.pushedItemsTemp.push(qe)-1,this.pushedItemsTempPath[ke]=[]),this.pushedItemsTempPath[ke].push({x:qe.$item.x,y:qe.$item.y})}removeFromTempPushed(qe){const ke=this.pushedItemsTemp.indexOf(qe),it=this.pushedItemsTempPath[ke].pop();it&&(qe.$item.x=it.x,qe.$item.y=it.y,qe.setSize(),this.pushedItemsTempPath[ke].length||(this.pushedItemsTemp.splice(ke,1),this.pushedItemsTempPath.splice(ke,1)))}addToPushed(qe){if(this.pushedItems.indexOf(qe)<0)this.pushedItems.push(qe),this.pushedItemsPath.push([{x:qe.item.x||0,y:qe.item.y||0},{x:qe.$item.x,y:qe.$item.y}]);else{const ke=this.pushedItems.indexOf(qe);this.pushedItemsPath[ke].push({x:qe.$item.x,y:qe.$item.y})}}removeFromPushed(qe){qe>-1&&(this.pushedItems.splice(qe,1),this.pushedItemsPath.splice(qe,1))}removeFromPushedItem(qe){const ke=this.pushedItems.indexOf(qe);ke>-1&&(this.pushedItemsPath[ke].pop(),this.pushedItemsPath.length||(this.pushedItems.splice(ke,1),this.pushedItemsPath.splice(ke,1)))}checkPushedItem(qe,ke){const it=this.pushedItemsPath[ke];let ai,Rt,Gt,gt=it.length-2,zt=!1;for(;gt>-1;gt--)ai=it[gt],Rt=qe.$item.x,Gt=qe.$item.y,qe.$item.x=ai.x,qe.$item.y=ai.y,this.gridster.findItemWithItem(qe.$item)?(qe.$item.x=Rt,qe.$item.y=Gt):(qe.setSize(),it.splice(gt+1,it.length-gt-1),zt=!0);return it.length<2&&this.removeFromPushed(ke),zt}}const oe=50;let Ce,me,ze,_e,Ae,ve,ye;function Oe(Qt,qe,ke,it,gt,ai,Rt,Gt,zt,mi){re=Qt.$options.scrollSensitivity,he=Qt.$options.scrollSpeed,Ce=Qt.el,me=zt,ze=mi;const Zi=Ce.offsetWidth,Ht=Ce.scrollLeft,dt=Ce.scrollTop,ge=ke-dt,Se=Ce.offsetHeight+dt-ke-gt,{clientX:ct,clientY:Zt}=ai;if(!Qt.$options.disableScrollVertical)if(Rt.clientYZt&&dt>0&&gect&&Ht>0&&Kt{(!Ce||-1===Qt&&Ce.scrollTop-he<0)&&mt(),Ce.scrollTop+=Qt*he,it+=Qt*he,qe({clientX:ke.clientX,clientY:it})},oe)}function Ee(Qt,qe,ke){let it=ke.clientX;return window.setInterval(()=>{(!Ce||-1===Qt&&Ce.scrollLeft-he<0)&&Ve(),Ce.scrollLeft+=Qt*he,it+=Qt*he,qe({clientX:it,clientY:ke.clientY})},oe)}function Fe(){Ve(),mt(),Ce=null}function Ve(){St(),oi()}function mt(){be(),He()}function St(){_e&&(clearInterval(_e),_e=0)}function oi(){Ae&&(clearInterval(Ae),Ae=0)}function He(){ye&&(clearInterval(ye),ye=0)}function be(){ve&&(clearInterval(ve),ve=0)}class je{constructor(qe){this.gridsterItem=qe,this.gridster=qe.gridster}destroy(){this.gridster=this.gridsterItem=this.swapedItem=null}swapItems(){this.gridster.$options.swap&&(this.checkSwapBack(),this.checkSwap(this.gridsterItem))}checkSwapBack(){if(this.swapedItem){const qe=this.swapedItem.$item.x,ke=this.swapedItem.$item.y;this.swapedItem.$item.x=this.swapedItem.item.x||0,this.swapedItem.$item.y=this.swapedItem.item.y||0,this.gridster.checkCollision(this.swapedItem.$item)?(this.swapedItem.$item.x=qe,this.swapedItem.$item.y=ke):(this.swapedItem.setSize(),this.gridsterItem.$item.x=this.gridsterItem.item.x||0,this.gridsterItem.$item.y=this.gridsterItem.item.y||0,this.swapedItem=void 0)}}restoreSwapItem(){this.swapedItem&&(this.swapedItem.$item.x=this.swapedItem.item.x||0,this.swapedItem.$item.y=this.swapedItem.item.y||0,this.swapedItem.setSize(),this.swapedItem=void 0)}setSwapItem(){this.swapedItem&&(this.swapedItem.checkItemChanges(this.swapedItem.$item,this.swapedItem.item),this.swapedItem=void 0)}checkSwap(qe){let ke;if(ke=this.gridster.$options.swapWhileDragging?this.gridster.checkCollisionForSwaping(qe.$item):this.gridster.checkCollision(qe.$item),ke&&!0!==ke&&ke.canBeDragged()){const it=ke,gt=it.$item.x,ai=it.$item.y,Rt=qe.$item.x,Gt=qe.$item.y,zt=Rt-gt,mi=Gt-ai;it.$item.x=qe.item.x-zt,it.$item.y=qe.item.y-mi,qe.$item.x=it.item.x+zt,qe.$item.y=it.item.y+mi,this.gridster.checkCollision(it.$item)||this.gridster.checkCollision(qe.$item)?(qe.$item.x=Rt,qe.$item.y=Gt,it.$item.x=gt,it.$item.y=ai):(it.setSize(),this.swapedItem=it,this.gridster.$options.swapWhileDragging&&(this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.setSwapItem()))}}}var _t=function(Qt){return Qt.UP="UP",Qt.DOWN="DOWN",Qt.LEFT="LEFT",Qt.RIGHT="RIGHT",Qt}(_t||{});class Nt{constructor(qe,ke,it){this.zone=it,this.collision=!1,this.dragMove=gt=>{gt.stopPropagation(),gt.preventDefault(),G.checkTouchEvent(gt);let ai=this.getDirections(gt);this.gridster.options.enableBoundaryControl&&(ai.includes(_t.UP)&&this.gridsterItem.el.getBoundingClientRect().topRt!=_t.UP),gt=new MouseEvent(gt.type,{clientX:gt.clientX,clientY:this.lastMouse.clientY})),ai.includes(_t.LEFT)&&this.gridsterItem.el.getBoundingClientRect().leftRt!=_t.LEFT),gt=new MouseEvent(gt.type,{clientX:this.lastMouse.clientX,clientY:gt.clientY})),ai.includes(_t.RIGHT)&&this.gridsterItem.el.getBoundingClientRect().right>this.gridster.el.getBoundingClientRect().right-(this.outerMarginRight??this.margin)&&(ai=ai.filter(Rt=>Rt!=_t.RIGHT),gt=new MouseEvent(gt.type,{clientX:this.lastMouse.clientX,clientY:gt.clientY})),ai.includes(_t.DOWN)&&this.gridsterItem.el.getBoundingClientRect().bottom>this.gridster.el.getBoundingClientRect().bottom-(this.outerMarginBottom??this.margin)&&(ai=ai.filter(Rt=>Rt!=_t.DOWN),gt=new MouseEvent(gt.type,{clientX:gt.clientX,clientY:this.lastMouse.clientY}))),ai.length&&(this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,Oe(this.gridster,this.left,this.top,this.width,this.height,gt,this.lastMouse,this.calculateItemPositionFromMousePosition),this.calculateItemPositionFromMousePosition(gt))},this.calculateItemPositionFromMousePosition=gt=>{this.gridster.options.scale?this.calculateItemPositionWithScale(gt,this.gridster.options.scale):this.calculateItemPositionWithoutScale(gt),this.calculateItemPosition(),this.lastMouse.clientX=gt.clientX,this.lastMouse.clientY=gt.clientY,this.zone.run(()=>{this.gridster.updateGrid()})},this.dragStop=gt=>{gt.stopPropagation(),gt.preventDefault(),Fe(),this.cancelOnBlur(),this.mousemove(),this.mouseup(),this.mouseleave(),this.touchmove(),this.touchend(),this.touchcancel(),this.gridsterItem.renderer.removeClass(this.gridsterItem.el,"gridster-item-moving"),this.gridster.dragInProgress=!1,this.gridster.updateGrid(),this.path=[],this.gridster.options.draggable&&this.gridster.options.draggable.stop?Promise.resolve(this.gridster.options.draggable.stop(this.gridsterItem.item,this.gridsterItem,gt)).then(this.makeDrag,this.cancelDrag):this.makeDrag(),setTimeout(()=>{this.gridster&&(this.gridster.movingItem=null,this.gridster.previewStyle(!0))})},this.cancelDrag=()=>{this.gridsterItem.$item.x=this.gridsterItem.item.x||0,this.gridsterItem.$item.y=this.gridsterItem.item.y||0,this.gridsterItem.setSize(),this.push&&this.push.restoreItems(),this.swap&&this.swap.restoreSwapItem(),this.push&&(this.push.destroy(),this.push=null),this.swap&&(this.swap.destroy(),this.swap=null)},this.makeDrag=()=>{this.gridster.$options.draggable.dropOverItems&&this.gridster.options.draggable&&this.gridster.options.draggable.dropOverItemsCallback&&this.collision&&!0!==this.collision&&this.collision.$item&&this.gridster.options.draggable.dropOverItemsCallback(this.gridsterItem.item,this.collision.item,this.gridster),this.collision=!1,this.gridsterItem.setSize(),this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.push&&this.push.setPushedItems(),this.swap&&this.swap.setSwapItem(),this.push&&(this.push.destroy(),this.push=null),this.swap&&(this.swap.destroy(),this.swap=null)},this.dragStartDelay=gt=>{if(gt.target.classList.contains("gridster-item-resizable-handler")||G.checkContentClassForEvent(this.gridster,gt))return;if(G.checkTouchEvent(gt),!this.gridster.$options.draggable.delayStart)return void this.dragStart(gt);const Rt=setTimeout(()=>{this.dragStart(gt),ge()},this.gridster.$options.draggable.delayStart),Gt=this.gridsterItem.renderer.listen("document","mouseup",ge),zt=this.gridsterItem.renderer.listen("document","mouseleave",ge),mi=this.gridsterItem.renderer.listen("window","blur",ge),Zi=this.gridsterItem.renderer.listen("document","touchmove",function dt(Se){G.checkTouchEvent(Se),(Math.abs(Se.clientX-gt.clientX)>9||Math.abs(Se.clientY-gt.clientY)>9)&&ge()}),Qi=this.gridsterItem.renderer.listen("document","touchend",ge),Ht=this.gridsterItem.renderer.listen("document","touchcancel",ge);function ge(){clearTimeout(Rt),mi(),Gt(),zt(),Zi(),Qi(),Ht()}},this.gridsterItem=qe,this.gridster=ke,this.lastMouse={clientX:0,clientY:0},this.path=[]}destroy(){this.gridster.previewStyle&&this.gridster.previewStyle(!0),this.gridsterItem=this.gridster=this.collision=null,this.mousedown&&(this.mousedown(),this.touchstart())}dragStart(qe){qe.which&&1!==qe.which||(this.gridster.options.draggable&&this.gridster.options.draggable.start&&this.gridster.options.draggable.start(this.gridsterItem.item,this.gridsterItem,qe),qe.stopPropagation(),qe.preventDefault(),this.zone.runOutsideAngular(()=>{this.mousemove=this.gridsterItem.renderer.listen("document","mousemove",this.dragMove),this.touchmove=this.gridster.renderer.listen(this.gridster.el,"touchmove",this.dragMove)}),this.mouseup=this.gridsterItem.renderer.listen("document","mouseup",this.dragStop),this.mouseleave=this.gridsterItem.renderer.listen("document","mouseleave",this.dragStop),this.cancelOnBlur=this.gridsterItem.renderer.listen("window","blur",this.dragStop),this.touchend=this.gridsterItem.renderer.listen("document","touchend",this.dragStop),this.touchcancel=this.gridsterItem.renderer.listen("document","touchcancel",this.dragStop),this.gridsterItem.renderer.addClass(this.gridsterItem.el,"gridster-item-moving"),this.margin=this.gridster.$options.margin,this.outerMarginTop=this.gridster.$options.outerMarginTop,this.outerMarginRight=this.gridster.$options.outerMarginRight,this.outerMarginBottom=this.gridster.$options.outerMarginBottom,this.outerMarginLeft=this.gridster.$options.outerMarginLeft,this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,this.left=this.gridsterItem.left-this.margin,this.top=this.gridsterItem.top-this.margin,this.originalClientX=qe.clientX,this.originalClientY=qe.clientY,this.width=this.gridsterItem.width,this.height=this.gridsterItem.height,this.diffLeft=this.gridster.$options.dirType===q.RTL?qe.clientX-this.gridster.el.scrollWidth+this.gridsterItem.left:qe.clientX+this.offsetLeft-this.margin-this.left,this.diffTop=qe.clientY+this.offsetTop-this.margin-this.top,this.gridster.movingItem=this.gridsterItem.$item,this.gridster.previewStyle(!0),this.push=new j(this.gridsterItem),this.swap=new je(this.gridsterItem),this.gridster.dragInProgress=!0,this.gridster.updateGrid(),this.path.push({x:this.gridsterItem.item.x||0,y:this.gridsterItem.item.y||0}))}calculateItemPositionWithScale(qe,ke){this.left=this.gridster.$options.dirType===q.RTL?this.gridster.el.scrollWidth-this.originalClientX+(qe.clientX-this.originalClientX)/ke+this.diffLeft:this.originalClientX+(qe.clientX-this.originalClientX)/ke+this.offsetLeft-this.diffLeft,this.top=this.originalClientY+(qe.clientY-this.originalClientY)/ke+this.offsetTop-this.diffTop}calculateItemPositionWithoutScale(qe){this.left=this.gridster.$options.dirType===q.RTL?this.gridster.el.scrollWidth-qe.clientX+this.diffLeft:qe.clientX+this.offsetLeft-this.diffLeft,this.top=qe.clientY+this.offsetTop-this.diffTop}calculateItemPosition(){if(this.gridster.movingItem=this.gridsterItem.$item,this.positionX=this.gridster.pixelsToPositionX(this.left,Math.round),this.positionY=this.gridster.pixelsToPositionY(this.top,Math.round),this.positionXBackup=this.gridsterItem.$item.x,this.positionYBackup=this.gridsterItem.$item.y,this.gridsterItem.$item.x=this.positionX,this.gridster.checkGridCollision(this.gridsterItem.$item)&&(this.gridsterItem.$item.x=this.positionXBackup),this.gridsterItem.$item.y=this.positionY,this.gridster.checkGridCollision(this.gridsterItem.$item)&&(this.gridsterItem.$item.y=this.positionYBackup),this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer,this.gridsterItem.el,this.left,this.top),this.positionXBackup!==this.gridsterItem.$item.x||this.positionYBackup!==this.gridsterItem.$item.y){const qe=this.path[this.path.length-1];let ke="";qe.xthis.gridsterItem.$item.x?ke=this.push.fromEast:qe.ythis.gridsterItem.$item.y&&(ke=this.push.fromSouth),this.push.pushItems(ke,this.gridster.$options.disablePushOnDrag),this.swap.swapItems(),this.collision=this.gridster.checkCollision(this.gridsterItem.$item),this.collision?(this.gridsterItem.$item.x=this.positionXBackup,this.gridsterItem.$item.y=this.positionYBackup,this.gridster.$options.draggable.dropOverItems&&!0!==this.collision&&this.collision.$item&&(this.gridster.movingItem=null)):this.path.push({x:this.gridsterItem.$item.x,y:this.gridsterItem.$item.y}),this.push.checkPushBack()}else this.collision=!1;this.gridster.previewStyle(!0)}toggle(){const qe=this.gridsterItem.canBeDragged();!this.enabled&&qe?(this.enabled=!this.enabled,this.mousedown=this.gridsterItem.renderer.listen(this.gridsterItem.el,"mousedown",this.dragStartDelay),this.touchstart=this.gridsterItem.renderer.listen(this.gridsterItem.el,"touchstart",this.dragStartDelay)):this.enabled&&!qe&&(this.enabled=!this.enabled,this.mousedown(),this.touchstart())}getDirections(qe){const ke=[];return 0===this.lastMouse.clientX&&0===this.lastMouse.clientY&&(this.lastMouse.clientY=qe.clientY,this.lastMouse.clientX=qe.clientX),this.lastMouse.clientY>qe.clientY&&ke.push(_t.UP),this.lastMouse.clientYqe.clientX&&ke.push(_t.LEFT),ke}}class ut{constructor(qe){this.pushedItems=[],this.pushedItemsPath=[],this.gridsterItem=qe,this.gridster=qe.gridster,this.tryPattern={fromEast:this.tryWest,fromWest:this.tryEast,fromNorth:this.trySouth,fromSouth:this.tryNorth},this.fromSouth="fromSouth",this.fromNorth="fromNorth",this.fromEast="fromEast",this.fromWest="fromWest"}destroy(){this.gridster=this.gridsterItem=null}pushItems(qe){return!!this.gridster.$options.pushResizeItems&&this.push(this.gridsterItem,qe)}restoreItems(){let qe=0;const ke=this.pushedItems.length;let it;for(;qe-1;qe--)this.checkPushedItem(this.pushedItems[qe],qe)&&(ke=!0);ke&&this.checkPushBack()}push(qe,ke){const it=this.gridster.checkCollision(qe.$item);if(it&&!0!==it&&it!==this.gridsterItem&&it.canBeResized()){if(this.tryPattern[ke].call(this,it,qe,ke))return!0}else if(!1===it)return!0;return!1}trySouth(qe,ke,it){const gt=qe.$item.y,ai=qe.$item.rows;return qe.$item.y=ke.$item.y+ke.$item.rows,qe.$item.rows=ai+gt-qe.$item.y,this.gridster.checkCollisionTwoItems(qe.$item,ke.$item)||this.gridster.checkGridCollision(qe.$item)?(qe.$item.y=gt,qe.$item.rows=ai,!1):(qe.setSize(),this.addToPushed(qe),this.push(ke,it),!0)}tryNorth(qe,ke,it){const gt=qe.$item.rows;return qe.$item.rows=ke.$item.y-qe.$item.y,this.gridster.checkCollisionTwoItems(qe.$item,ke.$item)||this.gridster.checkGridCollision(qe.$item)?(qe.$item.rows=gt,!1):(qe.setSize(),this.addToPushed(qe),this.push(ke,it),!0)}tryEast(qe,ke,it){const gt=qe.$item.x,ai=qe.$item.cols;return qe.$item.x=ke.$item.x+ke.$item.cols,qe.$item.cols=ai+gt-qe.$item.x,this.gridster.checkCollisionTwoItems(qe.$item,ke.$item)||this.gridster.checkGridCollision(qe.$item)?(qe.$item.x=gt,qe.$item.cols=ai,!1):(qe.setSize(),this.addToPushed(qe),this.push(ke,it),!0)}tryWest(qe,ke,it){const gt=qe.$item.cols;return qe.$item.cols=ke.$item.x-qe.$item.x,this.gridster.checkCollisionTwoItems(qe.$item,ke.$item)||this.gridster.checkGridCollision(qe.$item)?(qe.$item.cols=gt,!1):(qe.setSize(),this.addToPushed(qe),this.push(ke,it),!0)}addToPushed(qe){if(this.pushedItems.indexOf(qe)<0)this.pushedItems.push(qe),this.pushedItemsPath.push([{x:qe.item.x||0,y:qe.item.y||0,cols:qe.item.cols||0,rows:qe.item.rows||0},{x:qe.$item.x,y:qe.$item.y,cols:qe.$item.cols,rows:qe.$item.rows}]);else{const ke=this.pushedItems.indexOf(qe);this.pushedItemsPath[ke].push({x:qe.$item.x,y:qe.$item.y,cols:qe.$item.cols,rows:qe.$item.rows})}}removeFromPushed(qe){qe>-1&&(this.pushedItems.splice(qe,1),this.pushedItemsPath.splice(qe,1))}checkPushedItem(qe,ke){const it=this.pushedItemsPath[ke];let ai,Rt,Gt,zt,mi,gt=it.length-2;for(;gt>-1;gt--)ai=it[gt],Rt=qe.$item.x,Gt=qe.$item.y,zt=qe.$item.cols,mi=qe.$item.rows,qe.$item.x=ai.x,qe.$item.y=ai.y,qe.$item.cols=ai.cols,qe.$item.rows=ai.rows,this.gridster.findItemWithItem(qe.$item)?(qe.$item.x=Rt,qe.$item.y=Gt,qe.$item.cols=zt,qe.$item.rows=mi):(qe.setSize(),it.splice(gt+1,it.length-1-gt));return it.length<2&&(this.removeFromPushed(ke),!0)}}class et{constructor(qe,ke,it){this.zone=it,this.directionFunction=null,this.dragMove=gt=>{if(null===this.directionFunction)throw new Error("The `directionFunction` has not been set before calling `dragMove`.");gt.stopPropagation(),gt.preventDefault(),G.checkTouchEvent(gt),this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,Oe(this.gridster,this.left,this.top,this.width,this.height,gt,this.lastMouse,this.directionFunction,!0,this.resizeEventScrollType);const ai=this.gridster.options.scale||1;this.directionFunction({clientX:this.originalClientX+(gt.clientX-this.originalClientX)/ai,clientY:this.originalClientY+(gt.clientY-this.originalClientY)/ai}),this.lastMouse.clientX=gt.clientX,this.lastMouse.clientY=gt.clientY,this.zone.run(()=>{this.gridster.updateGrid()})},this.dragStop=gt=>{gt.stopPropagation(),gt.preventDefault(),Fe(),this.mousemove(),this.mouseup(),this.mouseleave(),this.cancelOnBlur(),this.touchmove(),this.touchend(),this.touchcancel(),this.gridster.dragInProgress=!1,this.gridster.updateGrid(),this.gridster.options.resizable&&this.gridster.options.resizable.stop?Promise.resolve(this.gridster.options.resizable.stop(this.gridsterItem.item,this.gridsterItem,gt)).then(this.makeResize,this.cancelResize):this.makeResize(),setTimeout(()=>{this.gridsterItem.renderer.removeClass(this.gridsterItem.el,"gridster-item-resizing"),this.gridster&&(this.gridster.movingItem=null,this.gridster.previewStyle())})},this.cancelResize=()=>{this.gridsterItem.$item.cols=this.gridsterItem.item.cols||1,this.gridsterItem.$item.rows=this.gridsterItem.item.rows||1,this.gridsterItem.$item.x=this.gridsterItem.item.x||0,this.gridsterItem.$item.y=this.gridsterItem.item.y||0,this.gridsterItem.setSize(),this.push.restoreItems(),this.pushResize.restoreItems(),this.push.destroy(),this.push=null,this.pushResize.destroy(),this.pushResize=null},this.makeResize=()=>{this.gridsterItem.setSize(),this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.push.setPushedItems(),this.pushResize.setPushedItems(),this.push.destroy(),this.push=null,this.pushResize.destroy(),this.pushResize=null},this.handleNorth=gt=>{if(this.top=gt.clientY+this.offsetTop-this.diffTop,this.height=this.bottom-this.top,this.minHeight>this.height?(this.height=this.minHeight,this.top=this.bottom-this.minHeight):this.gridster.options.enableBoundaryControl&&(this.top=Math.max(0,this.top),this.height=this.bottom-this.top),this.newPosition=this.gridster.pixelsToPositionY(this.top+(this.gridster.options.pushItems?this.margin:0),Math.floor),this.gridsterItem.$item.y!==this.newPosition){if(this.itemBackup[1]=this.gridsterItem.$item.y,this.itemBackup[3]=this.gridsterItem.$item.rows,this.gridsterItem.$item.rows+=this.gridsterItem.$item.y-this.newPosition,this.gridsterItem.$item.y=this.newPosition,this.pushResize.pushItems(this.pushResize.fromSouth),this.push.pushItems(this.push.fromSouth,this.gridster.$options.disablePushOnResize),this.gridster.checkCollision(this.gridsterItem.$item))return this.gridsterItem.$item.y=this.itemBackup[1],this.gridsterItem.$item.rows=this.itemBackup[3],this.top=this.gridster.positionYToPixels(this.gridsterItem.$item.y),this.setItemTop(this.gridster.positionYToPixels(this.gridsterItem.$item.y)),void this.setItemHeight(this.gridster.positionYToPixels(this.gridsterItem.$item.rows)-this.margin);this.gridster.previewStyle(),this.pushResize.checkPushBack(),this.push.checkPushBack()}this.setItemTop(this.top),this.setItemHeight(this.height)},this.handleWest=gt=>{if(this.left=(this.gridster.$options.dirType===q.RTL?this.originalClientX+(this.originalClientX-gt.clientX):gt.clientX)+this.offsetLeft-this.diffLeft,this.width=this.right-this.left,this.minWidth>this.width?(this.width=this.minWidth,this.left=this.right-this.minWidth):this.gridster.options.enableBoundaryControl&&(this.left=Math.max(0,this.left),this.width=this.right-this.left),this.newPosition=this.gridster.pixelsToPositionX(this.left+(this.gridster.options.pushItems?this.margin:0),Math.floor),this.gridsterItem.$item.x!==this.newPosition){if(this.itemBackup[0]=this.gridsterItem.$item.x,this.itemBackup[2]=this.gridsterItem.$item.cols,this.gridsterItem.$item.cols+=this.gridsterItem.$item.x-this.newPosition,this.gridsterItem.$item.x=this.newPosition,this.pushResize.pushItems(this.pushResize.fromEast),this.push.pushItems(this.push.fromEast,this.gridster.$options.disablePushOnResize),this.gridster.checkCollision(this.gridsterItem.$item))return this.gridsterItem.$item.x=this.itemBackup[0],this.gridsterItem.$item.cols=this.itemBackup[2],this.left=this.gridster.positionXToPixels(this.gridsterItem.$item.x),this.setItemLeft(this.gridster.positionXToPixels(this.gridsterItem.$item.x)),void this.setItemWidth(this.gridster.positionXToPixels(this.gridsterItem.$item.cols)-this.margin);this.gridster.previewStyle(),this.pushResize.checkPushBack(),this.push.checkPushBack()}this.setItemLeft(this.left),this.setItemWidth(this.width)},this.handleSouth=gt=>{if(this.height=gt.clientY+this.offsetTop-this.diffBottom-this.top,this.minHeight>this.height&&(this.height=this.minHeight),this.bottom=this.top+this.height,this.gridster.options.enableBoundaryControl){const Rt=this.outerMarginBottom??this.margin,Gt=this.gridster.el.getBoundingClientRect();this.bottom=Math.min(this.bottom,Gt.bottom-Gt.top-2*Rt),this.height=this.bottom-this.top}if(this.newPosition=this.gridster.pixelsToPositionY(this.bottom+(this.gridster.options.pushItems?0:this.margin),Math.ceil),this.gridsterItem.$item.y+this.gridsterItem.$item.rows!==this.newPosition){if(this.itemBackup[3]=this.gridsterItem.$item.rows,this.gridsterItem.$item.rows=this.newPosition-this.gridsterItem.$item.y,this.pushResize.pushItems(this.pushResize.fromNorth),this.push.pushItems(this.push.fromNorth,this.gridster.$options.disablePushOnResize),this.gridster.checkCollision(this.gridsterItem.$item))return this.gridsterItem.$item.rows=this.itemBackup[3],void this.setItemHeight(this.gridster.positionYToPixels(this.gridsterItem.$item.rows)-this.margin);this.gridster.previewStyle(),this.pushResize.checkPushBack(),this.push.checkPushBack()}this.setItemHeight(this.height)},this.handleEast=gt=>{if(this.width=(this.gridster.$options.dirType===q.RTL?this.originalClientX+(this.originalClientX-gt.clientX):gt.clientX)+this.offsetLeft-this.diffRight-this.left,this.minWidth>this.width&&(this.width=this.minWidth),this.right=this.left+this.width,this.gridster.options.enableBoundaryControl){const Gt=this.outerMarginRight??this.margin,zt=this.gridster.el.getBoundingClientRect();this.right=Math.min(this.right,zt.right-zt.left-2*Gt),this.width=this.right-this.left}if(this.newPosition=this.gridster.pixelsToPositionX(this.right+(this.gridster.options.pushItems?0:this.margin),Math.ceil),this.gridsterItem.$item.x+this.gridsterItem.$item.cols!==this.newPosition){if(this.itemBackup[2]=this.gridsterItem.$item.cols,this.gridsterItem.$item.cols=this.newPosition-this.gridsterItem.$item.x,this.pushResize.pushItems(this.pushResize.fromWest),this.push.pushItems(this.push.fromWest,this.gridster.$options.disablePushOnResize),this.gridster.checkCollision(this.gridsterItem.$item))return this.gridsterItem.$item.cols=this.itemBackup[2],void this.setItemWidth(this.gridster.positionXToPixels(this.gridsterItem.$item.cols)-this.margin);this.gridster.previewStyle(),this.pushResize.checkPushBack(),this.push.checkPushBack()}this.setItemWidth(this.width)},this.handleNorthWest=gt=>{this.handleNorth(gt),this.handleWest(gt)},this.handleNorthEast=gt=>{this.handleNorth(gt),this.handleEast(gt)},this.handleSouthWest=gt=>{this.handleSouth(gt),this.handleWest(gt)},this.handleSouthEast=gt=>{this.handleSouth(gt),this.handleEast(gt)},this.gridsterItem=qe,this.gridster=ke,this.lastMouse={clientX:0,clientY:0},this.itemBackup=[0,0,0,0],this.resizeEventScrollType={west:!1,east:!1,north:!1,south:!1}}destroy(){this.gridster?.previewStyle(),this.gridster=this.gridsterItem=null}dragStart(qe){if(qe.which&&1!==qe.which)return;this.gridster.options.resizable&&this.gridster.options.resizable.start&&this.gridster.options.resizable.start(this.gridsterItem.item,this.gridsterItem,qe),qe.stopPropagation(),qe.preventDefault(),this.zone.runOutsideAngular(()=>{this.mousemove=this.gridsterItem.renderer.listen("document","mousemove",this.dragMove),this.touchmove=this.gridster.renderer.listen(this.gridster.el,"touchmove",this.dragMove)}),this.mouseup=this.gridsterItem.renderer.listen("document","mouseup",this.dragStop),this.mouseleave=this.gridsterItem.renderer.listen("document","mouseleave",this.dragStop),this.cancelOnBlur=this.gridsterItem.renderer.listen("window","blur",this.dragStop),this.touchend=this.gridsterItem.renderer.listen("document","touchend",this.dragStop),this.touchcancel=this.gridsterItem.renderer.listen("document","touchcancel",this.dragStop),this.gridsterItem.renderer.addClass(this.gridsterItem.el,"gridster-item-resizing"),this.lastMouse.clientX=qe.clientX,this.lastMouse.clientY=qe.clientY,this.left=this.gridsterItem.left,this.top=this.gridsterItem.top,this.originalClientX=qe.clientX,this.originalClientY=qe.clientY,this.width=this.gridsterItem.width,this.height=this.gridsterItem.height,this.bottom=this.gridsterItem.top+this.gridsterItem.height,this.right=this.gridsterItem.left+this.gridsterItem.width,this.margin=this.gridster.$options.margin,this.outerMarginTop=this.gridster.$options.outerMarginTop,this.outerMarginRight=this.gridster.$options.outerMarginRight,this.outerMarginBottom=this.gridster.$options.outerMarginBottom,this.outerMarginLeft=this.gridster.$options.outerMarginLeft,this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,this.diffLeft=qe.clientX+this.offsetLeft-this.left,this.diffRight=qe.clientX+this.offsetLeft-this.right,this.diffTop=qe.clientY+this.offsetTop-this.top,this.diffBottom=qe.clientY+this.offsetTop-this.bottom,this.minHeight=this.gridster.positionYToPixels(this.gridsterItem.$item.minItemRows||this.gridster.$options.minItemRows)-this.margin,this.minWidth=this.gridster.positionXToPixels(this.gridsterItem.$item.minItemCols||this.gridster.$options.minItemCols)-this.margin,this.gridster.movingItem=this.gridsterItem.$item,this.gridster.previewStyle(),this.push=new j(this.gridsterItem),this.pushResize=new ut(this.gridsterItem),this.gridster.dragInProgress=!0,this.gridster.updateGrid();const{classList:ke}=qe.target;ke.contains("handle-n")?(this.resizeEventScrollType.north=!0,this.directionFunction=this.handleNorth):ke.contains("handle-w")?this.gridster.$options.dirType===q.RTL?(this.resizeEventScrollType.east=!0,this.directionFunction=this.handleEast):(this.resizeEventScrollType.west=!0,this.directionFunction=this.handleWest):ke.contains("handle-s")?(this.resizeEventScrollType.south=!0,this.directionFunction=this.handleSouth):ke.contains("handle-e")?this.gridster.$options.dirType===q.RTL?(this.resizeEventScrollType.west=!0,this.directionFunction=this.handleWest):(this.resizeEventScrollType.east=!0,this.directionFunction=this.handleEast):ke.contains("handle-nw")?this.gridster.$options.dirType===q.RTL?(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleNorthEast):(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleNorthWest):ke.contains("handle-ne")?this.gridster.$options.dirType===q.RTL?(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleNorthWest):(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleNorthEast):ke.contains("handle-sw")?this.gridster.$options.dirType===q.RTL?(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleSouthEast):(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleSouthWest):ke.contains("handle-se")&&(this.gridster.$options.dirType===q.RTL?(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleSouthWest):(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleSouthEast))}toggle(){this.resizeEnabled=this.gridsterItem.canBeResized(),this.resizableHandles=this.gridsterItem.getResizableHandles()}dragStartDelay(qe){if(G.checkTouchEvent(qe),!this.gridster.$options.resizable.delayStart)return void this.dragStart(qe);const ke=setTimeout(()=>{this.dragStart(qe),Zi()},this.gridster.$options.resizable.delayStart),{cancelMouse:it,cancelMouseLeave:gt,cancelOnBlur:ai,cancelTouchMove:Rt,cancelTouchEnd:Gt,cancelTouchCancel:zt}=this.zone.runOutsideAngular(()=>({cancelMouse:this.gridsterItem.renderer.listen("document","mouseup",Zi),cancelMouseLeave:this.gridsterItem.renderer.listen("document","mouseleave",Zi),cancelOnBlur:this.gridsterItem.renderer.listen("window","blur",Zi),cancelTouchMove:this.gridsterItem.renderer.listen("document","touchmove",mi),cancelTouchEnd:this.gridsterItem.renderer.listen("document","touchend",Zi),cancelTouchCancel:this.gridsterItem.renderer.listen("document","touchcancel",Zi)}));function mi(Qi){G.checkTouchEvent(Qi),(Math.abs(Qi.clientX-qe.clientX)>9||Math.abs(Qi.clientY-qe.clientY)>9)&&Zi()}function Zi(){clearTimeout(ke),ai(),it(),gt(),Rt(),Gt(),zt()}}setItemTop(qe){this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer,this.gridsterItem.el,this.left,qe)}setItemLeft(qe){this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer,this.gridsterItem.el,qe,this.top)}setItemHeight(qe){this.gridsterItem.renderer.setStyle(this.gridsterItem.el,"height",qe+"px")}setItemWidth(qe){this.gridsterItem.renderer.setStyle(this.gridsterItem.el,"width",qe+"px")}}let Xe=(()=>{class Qt{get zIndex(){return this.getLayerIndex()+this.gridster.$options.baseLayerIndex}constructor(ke,it,gt,ai){this.renderer=gt,this.zone=ai,this.itemInit=new K.vpe,this.itemChange=new K.vpe,this.itemResize=new K.vpe,this.el=ke.nativeElement,this.$item={cols:-1,rows:-1,x:-1,y:-1},this.gridster=it,this.drag=new Nt(this,it,this.zone),this.resize=new et(this,it,this.zone)}ngOnInit(){this.gridster.addItem(this)}ngOnChanges(ke){ke.item&&(this.updateOptions(),this.init||this.gridster.calculateLayout$.next()),ke.item&&ke.item.previousValue&&this.setSize()}updateOptions(){this.$item=G.merge(this.$item,this.item,{cols:void 0,rows:void 0,x:void 0,y:void 0,layerIndex:void 0,dragEnabled:void 0,resizeEnabled:void 0,compactEnabled:void 0,maxItemRows:void 0,minItemRows:void 0,maxItemCols:void 0,minItemCols:void 0,maxItemArea:void 0,minItemArea:void 0,resizableHandles:{s:void 0,e:void 0,n:void 0,w:void 0,se:void 0,ne:void 0,sw:void 0,nw:void 0}})}ngOnDestroy(){this.gridster.removeItem(this),this.drag.destroy(),this.resize.destroy(),this.gridster=this.drag=this.resize=null}setSize(){this.renderer.setStyle(this.el,"display",this.notPlaced?"":"block"),this.gridster.gridRenderer.updateItem(this.el,this.$item,this.renderer),this.updateItemSize()}updateItemSize(){const it=this.$item.x*this.gridster.curColWidth,gt=this.$item.cols*this.gridster.curColWidth-this.gridster.$options.margin,ai=this.$item.rows*this.gridster.curRowHeight-this.gridster.$options.margin;this.top=this.$item.y*this.gridster.curRowHeight,this.left=it,!this.init&>>0&&ai>0&&(this.init=!0,this.item.initCallback&&this.item.initCallback(this.item,this),this.gridster.options.itemInitCallback&&this.gridster.options.itemInitCallback(this.item,this),this.itemInit.next({item:this.item,itemComponent:this}),this.gridster.$options.scrollToNewItems&&this.el.scrollIntoView(!1)),(gt!==this.width||ai!==this.height)&&(this.width=gt,this.height=ai,this.gridster.options.itemResizeCallback&&this.gridster.options.itemResizeCallback(this.item,this),this.itemResize.next({item:this.item,itemComponent:this}))}itemChanged(){this.gridster.options.itemChangeCallback&&this.gridster.options.itemChangeCallback(this.item,this),this.itemChange.next({item:this.item,itemComponent:this})}checkItemChanges(ke,it){ke.rows===it.rows&&ke.cols===it.cols&&ke.x===it.x&&ke.y===it.y||(this.gridster.checkCollision(this.$item)?(this.$item.x=it.x||0,this.$item.y=it.y||0,this.$item.cols=it.cols||1,this.$item.rows=it.rows||1,this.setSize()):(this.item.cols=this.$item.cols,this.item.rows=this.$item.rows,this.item.x=this.$item.x,this.item.y=this.$item.y,this.gridster.calculateLayout$.next(),this.itemChanged()))}canBeDragged(){const ke=this.gridster.$options.draggable.enabled;return!this.gridster.mobile&&ke&&(void 0===this.$item.dragEnabled?ke:this.$item.dragEnabled)}canBeResized(){const ke=this.gridster.$options.resizable.enabled;return!this.gridster.mobile&&ke&&(void 0===this.$item.resizeEnabled?ke:this.$item.resizeEnabled)}getResizableHandles(){const ke=this.gridster.$options.resizable.handles,it=this.$item.resizableHandles;return void 0===it?ke:{...ke,...it}}bringToFront(ke){if(ke&&ke<=0)return;const it=this.getLayerIndex(),gt=this.gridster.$options.maxLayerIndex;if(itgt?gt:ai}}sendToBack(ke){if(ke&&ke<=0)return;const it=this.getLayerIndex();if(it>0){const gt=ke?it-ke:0;this.item.layerIndex=this.$item.layerIndex=gt<0?0:gt}}getLayerIndex(){return void 0!==this.item.layerIndex?this.item.layerIndex:void 0!==this.gridster.$options.defaultLayerIndex?this.gridster.$options.defaultLayerIndex:0}static{this.\u0275fac=function(it){return new(it||Qt)(K.Y36(K.SBq),K.Y36(J),K.Y36(K.Qsj),K.Y36(K.R0b))}}static{this.\u0275cmp=K.Xpm({type:Qt,selectors:[["gridster-item"]],hostVars:2,hostBindings:function(it,gt){2&it&&K.Udp("z-index",gt.zIndex)},inputs:{item:"item"},outputs:{itemInit:"itemInit",itemChange:"itemChange",itemResize:"itemResize"},standalone:!0,features:[K.TTD,K.jDz],ngContentSelectors:b,decls:9,vars:8,consts:[["class","gridster-item-resizable-handler handle-s",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-e",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-n",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-w",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-se",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-ne",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-sw",3,"mousedown","touchstart",4,"ngIf"],["class","gridster-item-resizable-handler handle-nw",3,"mousedown","touchstart",4,"ngIf"],[1,"gridster-item-resizable-handler","handle-s",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-e",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-n",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-w",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-se",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-ne",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-sw",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-nw",3,"mousedown","touchstart"]],template:function(it,gt){1&it&&(K.F$t(),K.Hsn(0),K.YNc(1,y,1,0,"div",0),K.YNc(2,M,1,0,"div",1),K.YNc(3,D,1,0,"div",2),K.YNc(4,x,1,0,"div",3),K.YNc(5,k,1,0,"div",4),K.YNc(6,Q,1,0,"div",5),K.YNc(7,I,1,0,"div",6),K.YNc(8,d,1,0,"div",7)),2&it&&(K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.s)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.e)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.n)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.w)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.se)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.ne)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.sw)&>.resize.resizeEnabled),K.xp6(1),K.Q6J("ngIf",(null==gt.resize.resizableHandles?null:gt.resize.resizableHandles.nw)&>.resize.resizeEnabled))},dependencies:[V.O5],styles:["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:white;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\n"],encapsulation:2})}}return Qt})(),vt=(()=>{class Qt{static{this.\u0275fac=function(it){return new(it||Qt)}}static{this.\u0275mod=K.oAB({type:Qt})}static{this.\u0275inj=K.cJS({})}}return Qt})()},8763:(ni,Pt,ce)=>{"use strict";ce.d(Pt,{Rh:()=>Ce,_W:()=>j});var V=ce(5879),K=ce(6825),T=ce(6814),e=ce(8645),l=ce(6593);const v=["toast-component",""];function h(ve,ye){if(1&ve){const Oe=V.EpF();V.TgZ(0,"button",5),V.NdJ("click",function(){V.CHM(Oe);const Ee=V.oxw();return V.KtG(Ee.remove())}),V.TgZ(1,"span",6),V._uU(2,"\xd7"),V.qZA()()}}function f(ve,ye){if(1&ve&&(V.ynx(0),V._uU(1),V.BQk()),2&ve){const Oe=V.oxw(2);V.xp6(1),V.hij("[",Oe.duplicatesCount+1,"]")}}function _(ve,ye){if(1&ve&&(V.TgZ(0,"div"),V._uU(1),V.YNc(2,f,2,1,"ng-container",4),V.qZA()),2&ve){const Oe=V.oxw();V.Tol(Oe.options.titleClass),V.uIk("aria-label",Oe.title),V.xp6(1),V.hij(" ",Oe.title," "),V.xp6(1),V.Q6J("ngIf",Oe.duplicatesCount)}}function b(ve,ye){if(1&ve&&V._UZ(0,"div",7),2&ve){const Oe=V.oxw();V.Tol(Oe.options.messageClass),V.Q6J("innerHTML",Oe.message,V.oJD)}}function y(ve,ye){if(1&ve&&(V.TgZ(0,"div",8),V._uU(1),V.qZA()),2&ve){const Oe=V.oxw();V.Tol(Oe.options.messageClass),V.uIk("aria-label",Oe.message),V.xp6(1),V.hij(" ",Oe.message," ")}}function M(ve,ye){if(1&ve&&(V.TgZ(0,"div"),V._UZ(1,"div",9),V.qZA()),2&ve){const Oe=V.oxw();V.xp6(1),V.Udp("width",Oe.width+"%")}}class R{constructor(ye,Oe){this.component=ye,this.injector=Oe}attach(ye,Oe){return this._attachedHost=ye,ye.attach(this,Oe)}detach(){const ye=this._attachedHost;if(ye)return this._attachedHost=void 0,ye.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(ye){this._attachedHost=ye}}class z{attach(ye,Oe){return this._attachedPortal=ye,this.attachComponentPortal(ye,Oe)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(ye){this._disposeFn=ye}}class q{constructor(ye){this._overlayRef=ye,this.duplicatesCount=0,this._afterClosed=new e.x,this._activate=new e.x,this._manualClose=new e.x,this._resetTimeout=new e.x,this._countDuplicate=new e.x}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(ye,Oe){ye&&this._resetTimeout.next(),Oe&&this._countDuplicate.next(++this.duplicatesCount)}}class Z{constructor(ye,Oe,ae,Ee,Fe,Ve){this.toastId=ye,this.config=Oe,this.message=ae,this.title=Ee,this.toastType=Fe,this.toastRef=Ve,this._onTap=new e.x,this._onAction=new e.x,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(ye){this._onAction.next(ye)}onAction(){return this._onAction.asObservable()}}const G=new V.OlP("ToastConfig");class W extends z{constructor(ye,Oe,ae){super(),this._hostDomElement=ye,this._componentFactoryResolver=Oe,this._appRef=ae}attachComponentPortal(ye,Oe){const ae=this._componentFactoryResolver.resolveComponentFactory(ye.component);let Ee;return Ee=ae.create(ye.injector),this._appRef.attachView(Ee.hostView),this.setDisposeFn(()=>{this._appRef.detachView(Ee.hostView),Ee.destroy()}),Oe?this._hostDomElement.insertBefore(this._getComponentRootNode(Ee),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(Ee)),Ee}_getComponentRootNode(ye){return ye.hostView.rootNodes[0]}}let te=(()=>{class ve{constructor(){this._document=(0,V.f3M)(T.K0)}ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const Oe=this._document.createElement("div");Oe.classList.add("overlay-container"),Oe.setAttribute("aria-live","polite"),this._document.body.appendChild(Oe),this._containerElement=Oe}}return ve.\u0275fac=function(Oe){return new(Oe||ve)},ve.\u0275prov=V.Yz7({token:ve,factory:ve.\u0275fac,providedIn:"root"}),ve})();class P{constructor(ye){this._portalHost=ye}attach(ye,Oe=!0){return this._portalHost.attach(ye,Oe)}detach(){return this._portalHost.detach()}}let J=(()=>{class ve{constructor(){this._overlayContainer=(0,V.f3M)(te),this._componentFactoryResolver=(0,V.f3M)(V._Vd),this._appRef=(0,V.f3M)(V.z2F),this._document=(0,V.f3M)(T.K0),this._paneElements=new Map}create(Oe,ae){return this._createOverlayRef(this.getPaneElement(Oe,ae))}getPaneElement(Oe="",ae){return this._paneElements.get(ae)||this._paneElements.set(ae,{}),this._paneElements.get(ae)[Oe]||(this._paneElements.get(ae)[Oe]=this._createPaneElement(Oe,ae)),this._paneElements.get(ae)[Oe]}_createPaneElement(Oe,ae){const Ee=this._document.createElement("div");return Ee.id="toast-container",Ee.classList.add(Oe),Ee.classList.add("toast-container"),ae?ae.getContainerElement().appendChild(Ee):this._overlayContainer.getContainerElement().appendChild(Ee),Ee}_createPortalHost(Oe){return new W(Oe,this._componentFactoryResolver,this._appRef)}_createOverlayRef(Oe){return new P(this._createPortalHost(Oe))}}return ve.\u0275fac=function(Oe){return new(Oe||ve)},ve.\u0275prov=V.Yz7({token:ve,factory:ve.\u0275fac,providedIn:"root"}),ve})(),j=(()=>{class ve{constructor(Oe,ae,Ee,Fe,Ve){this.overlay=ae,this._injector=Ee,this.sanitizer=Fe,this.ngZone=Ve,this.currentlyActive=0,this.toasts=[],this.index=0,this.toastrConfig={...Oe.default,...Oe.config},Oe.config.iconClasses&&(this.toastrConfig.iconClasses={...Oe.default.iconClasses,...Oe.config.iconClasses})}show(Oe,ae,Ee={},Fe=""){return this._preBuildNotification(Fe,Oe,ae,this.applyConfig(Ee))}success(Oe,ae,Ee={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",Oe,ae,this.applyConfig(Ee))}error(Oe,ae,Ee={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",Oe,ae,this.applyConfig(Ee))}info(Oe,ae,Ee={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",Oe,ae,this.applyConfig(Ee))}warning(Oe,ae,Ee={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",Oe,ae,this.applyConfig(Ee))}clear(Oe){for(const ae of this.toasts)if(void 0!==Oe){if(ae.toastId===Oe)return void ae.toastRef.manualClose()}else ae.toastRef.manualClose()}remove(Oe){const ae=this._findToast(Oe);if(!ae||(ae.activeToast.toastRef.close(),this.toasts.splice(ae.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(Oe,ae,Ee,Fe)):this._buildNotification(Oe,ae,Ee,Fe)}_buildNotification(Oe,ae,Ee,Fe){if(!Fe.toastComponent)throw new Error("toastComponent required");const Ve=this.findDuplicate(Ee,ae,this.toastrConfig.resetTimeoutOnDuplicate&&Fe.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&Ee||ae)&&this.toastrConfig.preventDuplicates&&null!==Ve)return Ve;this.previousToastMessage=ae;let mt=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(mt=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const St=this.overlay.create(Fe.positionClass,this.overlayContainer);this.index=this.index+1;let oi=ae;ae&&Fe.enableHtml&&(oi=this.sanitizer.sanitize(V.q3G.HTML,ae));const He=new q(St),be=new Z(this.index,Fe,oi,Ee,Oe,He),Ke=V.zs3.create({providers:[{provide:Z,useValue:be}],parent:this._injector}),_t=new R(Fe.toastComponent,Ke),Nt=St.attach(_t,Fe.newestOnTop);He.componentInstance=Nt.instance;const ut={toastId:this.index,title:Ee||"",message:ae||"",toastRef:He,onShown:He.afterActivate(),onHidden:He.afterClosed(),onTap:be.onTap(),onAction:be.onAction(),portal:Nt};return mt||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{ut.toastRef.activate()})),this.toasts.push(ut),ut}}return ve.\u0275fac=function(Oe){return new(Oe||ve)(V.LFG(G),V.LFG(J),V.LFG(V.zs3),V.LFG(l.H7),V.LFG(V.R0b))},ve.\u0275prov=V.Yz7({token:ve,factory:ve.\u0275fac,providedIn:"root"}),ve})(),re=(()=>{class ve{get displayStyle(){if("inactive"===this.state.value)return"none"}constructor(Oe,ae,Ee){this.toastrService=Oe,this.toastPackage=ae,this.ngZone=Ee,this.width=-1,this.toastClasses="",this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}},this.message=ae.message,this.title=ae.title,this.options=ae.config,this.originalTimeout=ae.config.timeOut,this.toastClasses=`${ae.toastType} ${ae.config.toastClass}`,this.sub=ae.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=ae.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=ae.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=ae.toastRef.countDuplicate().subscribe(Fe=>{this.duplicatesCount=Fe})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const Oe=(new Date).getTime();this.width=(this.hideTime-Oe)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(Oe,ae){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(Oe),ae)):this.timeout=setTimeout(()=>Oe(),ae)}outsideInterval(Oe,ae){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(Oe),ae)):this.intervalId=setInterval(()=>Oe(),ae)}runInsideAngular(Oe){this.ngZone?this.ngZone.run(()=>Oe()):Oe()}}return ve.\u0275fac=function(Oe){return new(Oe||ve)(V.Y36(j),V.Y36(Z),V.Y36(V.R0b))},ve.\u0275cmp=V.Xpm({type:ve,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Oe,ae){1&Oe&&V.NdJ("click",function(){return ae.tapToast()})("mouseenter",function(){return ae.stickAround()})("mouseleave",function(){return ae.delayedHideToast()}),2&Oe&&(V.d8E("@flyInOut",ae.state),V.Tol(ae.toastClasses),V.Udp("display",ae.displayStyle))},standalone:!0,features:[V.jDz],attrs:v,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Oe,ae){1&Oe&&(V.YNc(0,h,3,0,"button",0),V.YNc(1,_,3,5,"div",1),V.YNc(2,b,1,3,"div",2),V.YNc(3,y,2,4,"div",3),V.YNc(4,M,2,2,"div",4)),2&Oe&&(V.Q6J("ngIf",ae.options.closeButton),V.xp6(1),V.Q6J("ngIf",ae.title),V.xp6(1),V.Q6J("ngIf",ae.message&&ae.options.enableHtml),V.xp6(1),V.Q6J("ngIf",ae.message&&!ae.options.enableHtml),V.xp6(1),V.Q6J("ngIf",ae.options.progressBar))},dependencies:[T.O5],encapsulation:2,data:{animation:[(0,K.X$)("flyInOut",[(0,K.SB)("inactive",(0,K.oB)({opacity:0})),(0,K.SB)("active",(0,K.oB)({opacity:1})),(0,K.SB)("removed",(0,K.oB)({opacity:0})),(0,K.eR)("inactive => active",(0,K.jt)("{{ easeTime }}ms {{ easing }}")),(0,K.eR)("active => removed",(0,K.jt)("{{ easeTime }}ms {{ easing }}"))])]}}),ve})();const he={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:re},oe=(ve={})=>(0,V.MR2)([{provide:G,useValue:{default:he,config:ve}}]);let Ce=(()=>{class ve{static forRoot(Oe={}){return{ngModule:ve,providers:[oe(Oe)]}}}return ve.\u0275fac=function(Oe){return new(Oe||ve)},ve.\u0275mod=V.oAB({type:ve}),ve.\u0275inj=V.cJS({imports:[re]}),ve})()},5861:(ni,Pt,ce)=>{"use strict";function V(T,e,l,v,h,f,_){try{var b=T[f](_),y=b.value}catch(M){return void l(M)}b.done?e(y):Promise.resolve(y).then(v,h)}function K(T){return function(){var e=this,l=arguments;return new Promise(function(v,h){var f=T.apply(e,l);function _(y){V(f,v,h,_,b,"next",y)}function b(y){V(f,v,h,_,b,"throw",y)}_(void 0)})}}ce.d(Pt,{Z:()=>K})},7582:(ni,Pt,ce)=>{"use strict";function M(Ae,ve,ye,Oe){return new(ye||(ye=Promise))(function(Ee,Fe){function Ve(oi){try{St(Oe.next(oi))}catch(He){Fe(He)}}function mt(oi){try{St(Oe.throw(oi))}catch(He){Fe(He)}}function St(oi){oi.done?Ee(oi.value):function ae(Ee){return Ee instanceof ye?Ee:new ye(function(Fe){Fe(Ee)})}(oi.value).then(Ve,mt)}St((Oe=Oe.apply(Ae,ve||[])).next())})}function z(Ae){return this instanceof z?(this.v=Ae,this):new z(Ae)}function q(Ae,ve,ye){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var ae,Oe=ye.apply(Ae,ve||[]),Ee=[];return ae=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),Ve("next"),Ve("throw"),Ve("return",function Fe(je){return function(Ke){return Promise.resolve(Ke).then(je,He)}}),ae[Symbol.asyncIterator]=function(){return this},ae;function Ve(je,Ke){Oe[je]&&(ae[je]=function(_t){return new Promise(function(Nt,ut){Ee.push([je,_t,Nt,ut])>1||mt(je,_t)})},Ke&&(ae[je]=Ke(ae[je])))}function mt(je,Ke){try{!function St(je){je.value instanceof z?Promise.resolve(je.value.v).then(oi,He):be(Ee[0][2],je)}(Oe[je](Ke))}catch(_t){be(Ee[0][3],_t)}}function oi(je){mt("next",je)}function He(je){mt("throw",je)}function be(je,Ke){je(Ke),Ee.shift(),Ee.length&&mt(Ee[0][0],Ee[0][1])}}function H(Ae){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var ye,ve=Ae[Symbol.asyncIterator];return ve?ve.call(Ae):(Ae=function Q(Ae){var ve="function"==typeof Symbol&&Symbol.iterator,ye=ve&&Ae[ve],Oe=0;if(ye)return ye.call(Ae);if(Ae&&"number"==typeof Ae.length)return{next:function(){return Ae&&Oe>=Ae.length&&(Ae=void 0),{value:Ae&&Ae[Oe++],done:!Ae}}};throw new TypeError(ve?"Object is not iterable.":"Symbol.iterator is not defined.")}(Ae),ye={},Oe("next"),Oe("throw"),Oe("return"),ye[Symbol.asyncIterator]=function(){return this},ye);function Oe(Ee){ye[Ee]=Ae[Ee]&&function(Fe){return new Promise(function(Ve,mt){!function ae(Ee,Fe,Ve,mt){Promise.resolve(mt).then(function(St){Ee({value:St,done:Ve})},Fe)}(Ve,mt,(Fe=Ae[Ee](Fe)).done,Fe.value)})}}}ce.d(Pt,{FC:()=>q,KL:()=>H,mG:()=>M,qq:()=>z}),"function"==typeof SuppressedError&&SuppressedError},4147:ni=>{"use strict";ni.exports={i8:"1.2.8-2548"}}},ni=>{ni(ni.s=7474)}]); \ No newline at end of file diff --git a/client/dist/main.js b/client/dist/main.js new file mode 100644 index 000000000..d9b1840d7 --- /dev/null +++ b/client/dist/main.js @@ -0,0 +1,73937 @@ +(self["webpackChunkFUXA"] = self["webpackChunkFUXA"] || []).push([["main"],{ + +/***/ 13356: +/*!*****************************************!*\ + !*** ./src/app/_config/theme.config.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ THEMES: () => (/* binding */ THEMES) +/* harmony export */ }); +const THEMES = { + default: { + headerBackground: 'hsl(0, 0%, 100%)', + headerColor: 'rgba(33,33,33,0.92)', + headerBorder: '#f9f9f9', + toolboxBackground: '#FBFBFB', + toolboxColor: '#000000', + toolboxBorder: '#F1F3F4', + toolboxPanelBackground: '#f9f9f9', + toolboxButton: '#545454', + sidenavBackground: '#f9f9f9', + toolboxItemActiveBackground: '#3059af', + toolboxItemActiveColor: '#FFFFFF', + toolboxFlyColor: '#000000', + footZoomBackground: '#E4E4E4', + footZoomBackgroundHover: '#CDCDCD', + footZoomColor: '#000000', + svgEditRulersBackground: '#f9f9f9', + svgEditRulersColor: '#000000', + svgEditWorkareaBackground: '#e4e4e4', + svgEditWorkareaContextMenu: '#e4e4e4', + svgEditWorkareaContextColor: '#000000', + formInputBackground: '#f1f3f4', + formExtInputBackground: '#fdfdfd', + formInputColor: '#000000', + formInputReadonlyBackground: '#f1f3f4', + formInputBorderFocus: '#ccc', + formInputBackgroundFocus: '#FFFFFF', + formSliderBackground: '#f1f3f4', + formSeparatorColor: '#e0e0e0', + formBorder: '#F1F3F4', + setupSeparatorColor: '#ccc', + workPanelBackground: '#FFFFFF', + mapBorderColor: '#3C3C3C', + formExtBackground: '#f1f3f4', + formInputExtBackground: '#FFFFFF', + scrollbarTrack: '#D9D9D9', + scrollbarThumb: '#BEBEBE', + chipsBackground: '#F1F1F1', + chipSelectedBackground: '#3059AF', + chipSelectedColor: '#FFFFFF', + inputTime: 'invert(0%)' + }, + dark: { + headerBackground: '#333333', + headerColor: 'rgba(255,255,255,1)', + tableHeaderColor: 'rgba(255,255,255,0.7)', + headerBorder: '#252526', + toolboxBackground: '#252526', + toolboxColor: '#FFFFFF', + toolboxBorder: 'rgba(33,33,33,0.92)', + toolboxPanelBackground: '#252526', + toolboxButton: '##313131', + sidenavBackground: '#252526', + toolboxItemActiveBackground: '#3059af', + toolboxItemActiveColor: '#FFFFFF', + toolboxFlyColor: '#FFFFFF', + footZoomBackground: '#212121', + footZoomBackgroundHover: '#161616', + footZoomColor: '#FFFFFF', + svgEditRulersBackground: '#2f2f2f', + svgEditRulersColor: '#A4A4A4', + svgEditWorkareaBackground: '#434343', + svgEditWorkareaContextMenu: '#212121', + svgEditWorkareaContextColor: '#FFFFFF', + formInputBackground: '#37373D', + formExtInputBackground: '#2d2d2d', + formInputColor: '#FFFFFF', + formInputReadonlyBackground: '#37373D', + formInputBorderFocus: '#1177BB', + formInputBackgroundFocus: '#37373D', + formSliderBackground: '#37373D', + formSeparatorColor: '#37373D', + formBorder: 'rgba(39,39,39,0.42)', + setupSeparatorColor: '#808080', + workPanelBackground: '#424242', + workPanelExpandBackground: '#292A2D', + mapBorderColor: '#333333', + formExtBackground: '#37373D', + formInputExtBackground: '#424242', + scrollbarTrack: '#414142', + scrollbarThumb: '#686868', + chipsBackground: '#242424', + chipSelectedBackground: '#3059AF', + chipSelectedColor: '#FFFFFF', + inputTime: 'invert(100%)' + } +}; + +/***/ }), + +/***/ 72856: +/*!***********************************************************!*\ + !*** ./src/app/_directives/dialog-draggable.directive.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DialogDraggableDirective: () => (/* binding */ DialogDraggableDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ 59016); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let DialogDraggableDirective = class DialogDraggableDirective { + matDialogRef; + container; + // private _subscription: Subscription; + mouseStart; + mouseDelta; + offset; + constructor(matDialogRef, container) { + this.matDialogRef = matDialogRef; + this.container = container; + } + ngAfterViewInit() { + const dialogType = this.matDialogRef.componentInstance.constructor; + // const cachedValue = this.positionCache.get(dialogType); + this.offset = this._getOffset(); + // this._updatePosition(this.offset.y, this.offset.x); + // this.matDialogRef.beforeClose().pipe(take(1)) + // .subscribe(() => this.positionCache.set(dialogType, this.offset)); + } + + onMouseDown(event) { + this.offset = this._getOffset(); + this.mouseStart = { + x: event.pageX, + y: event.pageY + }; + const mouseup$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_0__.fromEvent)(document, 'mouseup'); + // this._subscription = mouseup$.subscribe(() => this.onMouseup()); + const mousemove$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_0__.fromEvent)(document, 'mousemove').pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_1__.takeUntil)(mouseup$)).subscribe(e => this.onMouseMove(e)); + // this._subscription.add(mousemove$); + } + + onMouseMove(event) { + this.mouseDelta = { + x: event.pageX - this.mouseStart.x, + y: event.pageY - this.mouseStart.y + }; + this._updatePosition(this.offset.y + this.mouseDelta.y, this.offset.x + this.mouseDelta.x); + } + onMouseup() { + // if (this._subscription) { + // this._subscription.unsubscribe(); + // this._subscription = undefined; + // } + if (this.mouseDelta) { + this.offset.x += this.mouseDelta.x; + this.offset.y += this.mouseDelta.y; + } + } + _updatePosition(top, left) { + this.matDialogRef.updatePosition({ + top: top + 'px', + left: left + 'px' + }); + } + _getOffset() { + const box = this.container['_elementRef'].nativeElement.getBoundingClientRect(); + return { + x: box.left + pageXOffset, + y: box.top + pageYOffset + }; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogContainer + }]; + static propDecorators = { + onMouseDown: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.HostListener, + args: ['mousedown', ['$event']] + }] + }; +}; +DialogDraggableDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Directive)({ + selector: '[mat-dialog-draggable]' +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogContainer])], DialogDraggableDirective); + + +/***/ }), + +/***/ 58823: +/*!**************************************************!*\ + !*** ./src/app/_directives/lazyFor.directive.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LazyForDirective: () => (/* binding */ LazyForDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + +let LazyForDirective = class LazyForDirective { + vcr; + tpl; + iterableDiffers; + lazyForContainer; + itemHeight; + itemTagName; + set lazyForOf(list) { + this.list = list; + if (list) { + this.differ = this.iterableDiffers.find(list).create(); + if (this.initialized) { + this.update(); + } + } + } + templateElem; + beforeListElem; + afterListElem; + list = []; + initialized = false; + firstUpdate = true; + differ; + lastChangeTriggeredByScroll = false; + constructor(vcr, tpl, iterableDiffers) { + this.vcr = vcr; + this.tpl = tpl; + this.iterableDiffers = iterableDiffers; + } + ngOnInit() { + this.templateElem = this.vcr.element.nativeElement; + this.lazyForContainer = this.templateElem.parentElement; + //Adding an event listener will trigger ngDoCheck whenever the event fires so we don't actually need to call + //update here. + this.lazyForContainer.addEventListener('scroll', () => { + this.lastChangeTriggeredByScroll = true; + }); + this.initialized = true; + } + ngDoCheck() { + if (this.differ && Array.isArray(this.list)) { + if (this.lastChangeTriggeredByScroll) { + this.update(); + this.lastChangeTriggeredByScroll = false; + } else { + const changes = this.differ.diff(this.list); + if (changes !== null) { + this.update(); + } + } + } + } + /** + * List update + * + * @returns {void} + */ + update() { + //Can't run the first update unless there is an element in the list + if (this.list.length === 0) { + this.vcr.clear(); + if (!this.firstUpdate) { + this.beforeListElem.style.height = '0'; + this.afterListElem.style.height = '0'; + } + return; + } + if (this.firstUpdate) { + this.onFirstUpdate(); + } + const listHeight = this.lazyForContainer.clientHeight; + const scrollTop = this.lazyForContainer.scrollTop; + //The height of anything inside the container but above the lazyFor content + const fixedHeaderHeight = this.beforeListElem.getBoundingClientRect().top - this.beforeListElem.scrollTop - (this.lazyForContainer.getBoundingClientRect().top - this.lazyForContainer.scrollTop); + //This needs to run after the scrollTop is retrieved. + this.vcr.clear(); + let listStartI = Math.floor((scrollTop - fixedHeaderHeight) / this.itemHeight); + listStartI = this.limitToRange(listStartI, 0, this.list.length); + let listEndI = Math.ceil((scrollTop - fixedHeaderHeight + listHeight) / this.itemHeight); + listEndI = this.limitToRange(listEndI, -1, this.list.length - 1); + for (let i = listStartI; i <= listEndI; i++) { + this.vcr.createEmbeddedView(this.tpl, { + $implicit: this.list[i], + index: i + }); + } + this.beforeListElem.style.height = `${listStartI * this.itemHeight}px`; + this.afterListElem.style.height = `${(this.list.length - listEndI - 1) * this.itemHeight}px`; + } + /** + * First update. + * + * @returns {void} + */ + onFirstUpdate() { + let sampleItemElem; + if (this.itemHeight === undefined || this.itemTagName === undefined) { + this.vcr.createEmbeddedView(this.tpl, { + $implicit: this.list[0], + index: 0 + }); + sampleItemElem = this.templateElem.nextSibling || this.templateElem.previousSibling; + if (this.itemHeight === undefined) { + this.itemHeight = sampleItemElem?.clientHeight; + } + if (this.itemTagName === undefined) { + this.itemTagName = sampleItemElem?.tagName; + } + } + this.beforeListElem = document.createElement(this.itemTagName); + this.templateElem.parentElement.insertBefore(this.beforeListElem, this.templateElem); + this.afterListElem = document.createElement(this.itemTagName); + this.templateElem.parentElement.insertBefore(this.afterListElem, this.templateElem.nextSibling); + // If you want to use
  • elements + if (this.itemTagName.toLowerCase() === 'li') { + this.beforeListElem.style.listStyleType = 'none'; + this.afterListElem.style.listStyleType = 'none'; + } + this.firstUpdate = false; + } + /** + * Limit To Range + * + * @param {number} num - Element number. + * @param {number} min - Min element number. + * @param {number} max - Max element number. + * + * @returns {number} + */ + limitToRange(num, min, max) { + return Math.max(Math.min(num, max), min); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.IterableDiffers + }]; + static propDecorators = { + lazyForOf: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input + }] + }; +}; +LazyForDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive)({ + selector: '[lazyFor]' +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef, _angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef, _angular_core__WEBPACK_IMPORTED_MODULE_0__.IterableDiffers])], LazyForDirective); + + +/***/ }), + +/***/ 88800: +/*!*****************************************************!*\ + !*** ./src/app/_directives/modal-position.cache.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ModalPositionCache: () => (/* binding */ ModalPositionCache) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let ModalPositionCache = class ModalPositionCache { + _cache = new Map(); + set(dialog, position) { + this._cache.set(dialog, position); + } + get(dialog) { + return this._cache.get(dialog); + } +}; +ModalPositionCache = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], ModalPositionCache); + + +/***/ }), + +/***/ 41584: +/*!********************************************************!*\ + !*** ./src/app/_directives/ngx-draggable.directive.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DraggableDirective: () => (/* binding */ DraggableDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +/* eslint @angular-eslint/no-host-metadata-property: off */ + +let DraggableDirective = class DraggableDirective { + el; + renderer; + dx = 0; + dy = 0; + canDrag = ''; + active = false; + set draggable(val) { + if (val === undefined || val === null || val === '') { + return; + } + this.canDrag = val; + } + draggableHeight; + mustBePosition = ['absolute', 'fixed', 'relative']; + constructor(el, renderer) { + this.el = el; + this.renderer = renderer; + } + ngOnInit() { + this.renderer.setAttribute(this.el.nativeElement, 'draggable', 'true'); + } + ngAfterViewInit() { + try { + let position = window.getComputedStyle(this.el.nativeElement).position; + if (this.mustBePosition.indexOf(position) === -1) { + console.warn(this.el.nativeElement, 'Must be having position attribute set to ' + this.mustBePosition.join('|')); + } + } catch (ex) { + console.error(ex); + } + } + ngOnDestroy() { + this.renderer.setAttribute(this.el.nativeElement, 'draggable', 'false'); + } + onDragStart(event) { + event.dataTransfer.setData('text/plain', event.target.id); + this.active = false; + if (this.draggableHeight && this.draggableHeight < event.offsetY) { + return; + } + this.active = true; + this.dx = event.x - this.el.nativeElement.offsetLeft; + this.dy = event.y - this.el.nativeElement.offsetTop; + } + onDrag(event) { + if (!this.active) { + return; + } + this.doTranslation(event.x, event.y); + } + onDragEnd(event) { + if (!this.active) { + return; + } + this.dx = 0; + this.dy = 0; + } + doTranslation(x, y) { + if (!x || !y) { + return; + } + this.renderer.setStyle(this.el.nativeElement, 'top', y - this.dy + 'px'); + this.renderer.setStyle(this.el.nativeElement, 'left', x - this.dx + 'px'); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2 + }]; + static propDecorators = { + draggable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input, + args: ['draggable'] + }], + draggableHeight: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input + }] + }; +}; +DraggableDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive)({ + selector: '[draggable]', + host: { + '(dragstart)': 'onDragStart($event)', + '(dragend)': 'onDragEnd($event)', + '(drag)': 'onDrag($event)' + } +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef, _angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2])], DraggableDirective); + + +/***/ }), + +/***/ 90270: +/*!*************************************************!*\ + !*** ./src/app/_directives/number.directive.ts ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NumberOnlyDirective: () => (/* binding */ NumberOnlyDirective), +/* harmony export */ NumberOrNullOnlyDirective: () => (/* binding */ NumberOrNullOnlyDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + +let NumberOnlyDirective = class NumberOnlyDirective { + el; + // Allow key codes for special events. Reflect : + // Backspace, tab, end, home + specialKeys = ['Backspace', 'Delete', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight']; + constructor(el) { + this.el = el; + } + onKeyDown(event) { + // Allow Backspace, tab, end, and home keys + if (this.specialKeys.indexOf(event.key) !== -1) { + event.stopPropagation(); + return; + } + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef + }]; + static propDecorators = { + onKeyDown: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener, + args: ['keydown', ['$event']] + }] + }; +}; +NumberOnlyDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive)({ + selector: '[numberOnly]' +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef])], NumberOnlyDirective); + +let NumberOrNullOnlyDirective = class NumberOrNullOnlyDirective { + el; + // Allow decimal numbers and negative values + regex = new RegExp(/^-?[0-9]+(\.[0-9]*){0,1}$/g); ///^-?[0-9]+(\.[0-9]*){0,1}$/g); + // Allow key codes for special events. Reflect : + // Backspace, tab, end, home + specialKeys = ['Backspace', 'Delete', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight']; + constructor(el) { + this.el = el; + } + onKeyDown(event) { + // Allow Backspace, tab, end, and home keys + if (this.specialKeys.indexOf(event.key) !== -1) { + event.stopPropagation(); + return; + } + let current = this.el.nativeElement.value; + let next = ''; + if (event.key === '-') { + event.preventDefault(); + if (!current.startsWith('-')) { + next = event.key + current; + this.el.nativeElement.value = next; + } + } else { + next = current.concat(event.key); + } + if (next && !String(next).match(this.regex)) { + event.preventDefault(); + } + event.stopPropagation(); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef + }]; + static propDecorators = { + onKeyDown: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener, + args: ['keydown', ['$event']] + }] + }; +}; +NumberOrNullOnlyDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive)({ + selector: '[numberOrNullOnly]' +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef])], NumberOrNullOnlyDirective); + + +/***/ }), + +/***/ 43594: +/*!*************************************************!*\ + !*** ./src/app/_directives/resize.directive.ts ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResizeDirective: () => (/* binding */ ResizeDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + +let ResizeDirective = class ResizeDirective { + el; + oldY = 0; + isGrabbing = false; + resizeZoneHeight = 6; + height; + heightChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); + changeEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); + constructor(el) { + this.el = el; + } + onMouseMove(event) { + if (!this.isGrabbing) { + const bounds = this.el.nativeElement.getBoundingClientRect(); + const offsetY = event.clientY - bounds.top; + this.el.nativeElement.style.cursor = offsetY >= bounds.height - this.resizeZoneHeight ? 'ns-resize' : 'default'; + return; + } + } + onMouseDown(event) { + const bounds = this.el.nativeElement.getBoundingClientRect(); + const offsetY = event.clientY - bounds.top; + if (offsetY >= bounds.height - this.resizeZoneHeight) { + this.isGrabbing = true; + this.oldY = event.clientY; + // attach to window so we don't lose tracking + window.addEventListener('mousemove', this.resizeHandler); + window.addEventListener('mouseup', this.releaseHandler); + event.preventDefault(); + } + } + resizeHandler = event => { + if (!this.isGrabbing) { + return; + } + this.height += event.clientY - this.oldY; + this.height = Math.max(50, this.height); + this.heightChange.emit(this.height); + this.oldY = event.clientY; + }; + releaseHandler = () => { + if (this.isGrabbing) { + this.isGrabbing = false; + this.changeEnd.emit(); + window.removeEventListener('mousemove', this.resizeHandler); + window.removeEventListener('mouseup', this.releaseHandler); + } + }; + ngOnDestroy() { + window.removeEventListener('mousemove', this.resizeHandler); + window.removeEventListener('mouseup', this.releaseHandler); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef + }]; + static propDecorators = { + height: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input + }], + heightChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output + }], + changeEnd: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output + }], + onMouseMove: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener, + args: ['mousemove', ['$event']] + }], + onMouseDown: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener, + args: ['mousedown', ['$event']] + }] + }; +}; +ResizeDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive)({ + selector: '[appResize]' +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef])], ResizeDirective); + + +/***/ }), + +/***/ 87045: +/*!*****************************************************************!*\ + !*** ./src/app/_directives/stop-input-propagation.directive.ts ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ StopInputPropagationDirective: () => (/* binding */ StopInputPropagationDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + +let StopInputPropagationDirective = class StopInputPropagationDirective { + elementRef; + constructor(elementRef) { + this.elementRef = elementRef; + } + ngAfterViewInit() { + const container = this.elementRef.nativeElement; + const inputs = container.querySelectorAll('input'); + inputs.forEach(input => { + input.addEventListener('keydown', event => { + event.stopPropagation(); + }); + }); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef + }]; +}; +StopInputPropagationDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive)({ + selector: '[stopInputPropagation]' +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef])], StopInputPropagationDirective); + + +/***/ }), + +/***/ 39464: +/*!**********************************************!*\ + !*** ./src/app/_helpers/auth-interceptor.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AuthInterceptor: () => (/* binding */ AuthInterceptor), +/* harmony export */ httpInterceptorProviders: () => (/* binding */ httpInterceptorProviders) +/* harmony export */ }); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ 13738); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_services/auth.service */ 48333); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +const TOKEN_HEADER_KEY = 'x-access-token'; +const USER_HEADER_KEY = 'x-auth-user'; +let AuthInterceptor = class AuthInterceptor { + injector; + constructor(injector) { + this.injector = injector; + } + intercept(req, next) { + if (req.headers.has('Skip-Auth')) { + const cleanHeaders = req.headers.delete('Skip-Auth'); + const cleanRequest = req.clone({ + headers: cleanHeaders + }); + return next.handle(cleanRequest); + } + const authService = this.injector.get(_services_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService); + if (authService.getUserToken) { + const token = authService.getUserToken(); + if (token != null) { + const user = authService.getUser(); + if (user) { + let locuser = { + user: user.username, + groups: user.groups + }; + req = req.clone({ + headers: req.headers.set(USER_HEADER_KEY, JSON.stringify(locuser)) + }); + } + req = req.clone({ + headers: req.headers.set(TOKEN_HEADER_KEY, token) + }); + } + } + return next.handle(req).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.tap)(event => {}, err => { + if (err instanceof _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpErrorResponse) { + if (err.status === 401 || err.status === 403) { + authService.signOut(); + const projectService = this.injector.get(_services_project_service__WEBPACK_IMPORTED_MODULE_1__.ProjectService); + projectService.reload(); + } + } + })); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Injector + }]; +}; +AuthInterceptor = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)(), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injector])], AuthInterceptor); + +const httpInterceptorProviders = [{ + provide: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HTTP_INTERCEPTORS, + useClass: AuthInterceptor, + multi: true +}]; + +/***/ }), + +/***/ 73520: +/*!**********************************!*\ + !*** ./src/app/_helpers/calc.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Calc: () => (/* binding */ Calc), +/* harmony export */ CollectionType: () => (/* binding */ CollectionType) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var Calc_1; + +let Calc = Calc_1 = class Calc { + static integral(timeserie, collectionType, unit) { + let result = []; + // sort to start with the oldest + let sorted = timeserie.sort(function (a, b) { + return a.dt - b.dt; + }); + let addToCollection = (collections, collectionIndex, value) => { + if (!collections[collectionIndex]) { + collections[collectionIndex] = value; + } else { + collections[collectionIndex] += value; + } + // console.log(`add: ${new Date(collectionIndex)} + ${value} = ${collections[collectionIndex]}`); + }; + + let getCollectionTime = (millyDt, collectionType, next) => { + let dt = new Date(millyDt); + let toadd = next ? 1 : 0; + if (collectionType === CollectionType.Year) { + dt = new Date(dt.getFullYear() + toadd, 0, 0, 0, 0, 0); + } else if (collectionType === CollectionType.Month) { + dt = new Date(dt.getFullYear(), dt.getMonth() + toadd, 0, 0, 0, 0); + } else if (collectionType === CollectionType.Day) { + dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate() + toadd, 0, 0, 0); + } else if (collectionType === CollectionType.Hour) { + dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours() + toadd, 0, 0); + } else if (collectionType === CollectionType.Minute) { + dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes() + toadd, 0); + } else if (collectionType === CollectionType.Second) { + dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds() + toadd); + } + // console.log(`in:${new Date(millyDt)} ${dt}`); + return dt; + }; + let lastRecord = null; + let lastCollectionIndex = null; + for (let i = 0; i < sorted.length; i++) { + let collectionIndex = getCollectionTime(sorted[i].dt, collectionType, false).getTime(); + // check missing value to fill collectionsIndex + while (lastCollectionIndex && lastCollectionIndex < collectionIndex) { + let nextCollectionIndex = getCollectionTime(lastRecord.dt, collectionType, true).getTime(); + let delta = nextCollectionIndex - lastRecord.dt; + addToCollection(result, nextCollectionIndex, lastRecord.value * (delta / 1000)); + lastCollectionIndex = nextCollectionIndex; + lastRecord.dt = nextCollectionIndex; + // console.log(`last Record:${new Date(lastRecord.datetime)}`); + } + // sum left => skip the first one + if (lastRecord) { + let delta = sorted[i].dt - lastRecord.dt; + addToCollection(result, collectionIndex, sorted[i].value * (delta / 1000)); + } + lastRecord = sorted[i]; + // console.log(`last Record:${new Date(lastRecord.datetime)}`); + lastCollectionIndex = collectionIndex; + } + // calculates with unit + if (unit) { + Object.keys(result).forEach(k => { + result[k] /= unit; + }); + } + return result; + } + static integralForHour(timeserie, collectionType) { + return Calc_1.integral(timeserie, collectionType, 3600); + } +}; +Calc = Calc_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], Calc); + +var CollectionType; +(function (CollectionType) { + CollectionType[CollectionType["Year"] = 0] = "Year"; + CollectionType[CollectionType["Month"] = 1] = "Month"; + CollectionType[CollectionType["Day"] = 2] = "Day"; + CollectionType[CollectionType["Hour"] = 3] = "Hour"; + CollectionType[CollectionType["Minute"] = 4] = "Minute"; + CollectionType[CollectionType["Second"] = 5] = "Second"; +})(CollectionType || (CollectionType = {})); + +/***/ }), + +/***/ 94107: +/*!************************************!*\ + !*** ./src/app/_helpers/define.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Define: () => (/* binding */ Define) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let Define = class Define { + static fonts = ['Sans-serif', 'Roboto-Thin', 'Roboto-Light', 'Roboto-Regular', 'Roboto-Medium', 'Roboto-Bold', 'Quicksand-Regular', 'Quicksand-Medium', 'Quicksand-Bold']; + static MaterialIconsRegular = ` +10k e951 +10mp e952 +11mp e953 +123 eb8d +12mp e954 +13mp e955 +14mp e956 +15mp e957 +16mp e958 +17mp e959 +18_up_rating f8fd +18mp e95a +19mp e95b +1k e95c +1k_plus e95d +1x_mobiledata efcd +20mp e95e +21mp e95f +22mp e960 +23mp e961 +24mp e962 +2k e963 +2k_plus e964 +2mp e965 +30fps efce +30fps_select efcf +360 e577 +3d_rotation e84d +3g_mobiledata efd0 +3k e966 +3k_plus e967 +3mp e968 +3p efd1 +4g_mobiledata efd2 +4g_plus_mobiledata efd3 +4k e072 +4k_plus e969 +4mp e96a +5g ef38 +5k e96b +5k_plus e96c +5mp e96d +60fps efd4 +60fps_select efd5 +6_ft_apart f21e +6k e96e +6k_plus e96f +6mp e970 +7k e971 +7k_plus e972 +7mp e973 +8k e974 +8k_plus e975 +8mp e976 +9k e977 +9k_plus e978 +9mp e979 +abc eb94 +ac_unit eb3b +access_alarm e190 +access_alarms e191 +access_time e192 +access_time_filled efd6 +accessibility e84e +accessibility_new e92c +accessible e914 +accessible_forward e934 +account_balance e84f +account_balance_wallet e850 +account_box e851 +account_circle e853 +account_tree e97a +ad_units ef39 +adb e60e +add e145 +add_a_photo e439 +add_alarm e193 +add_alert e003 +add_box e146 +add_business e729 +add_call e0e8 +add_card eb86 +add_chart e97b +add_circle e147 +add_circle_outline e148 +add_comment e266 +add_home f8eb +add_home_work f8ed +add_ic_call e97c +add_link e178 +add_location e567 +add_location_alt ef3a +add_moderator e97d +add_photo_alternate e43e +add_reaction e1d3 +add_road ef3b +add_shopping_cart e854 +add_task f23a +add_to_drive e65c +add_to_home_screen e1fe +add_to_photos e39d +add_to_queue e05c +addchart ef3c +adf_scanner eada +adjust e39e +admin_panel_settings ef3d +adobe ea96 +ads_click e762 +agriculture ea79 +air efd8 +airline_seat_flat e630 +airline_seat_flat_angled e631 +airline_seat_individual_suite e632 +airline_seat_legroom_extra e633 +airline_seat_legroom_normal e634 +airline_seat_legroom_reduced e635 +airline_seat_recline_extra e636 +airline_seat_recline_normal e637 +airline_stops e7d0 +airlines e7ca +airplane_ticket efd9 +airplanemode_active e195 +airplanemode_inactive e194 +airplanemode_off e194 +airplanemode_on e195 +airplay e055 +airport_shuttle eb3c +alarm e855 +alarm_add e856 +alarm_off e857 +alarm_on e858 +album e019 +align_horizontal_center e00f +align_horizontal_left e00d +align_horizontal_right e010 +align_vertical_bottom e015 +align_vertical_center e011 +align_vertical_top e00c +all_inbox e97f +all_inclusive eb3d +all_out e90b +alt_route f184 +alternate_email e0e6 +amp_stories ea13 +analytics ef3e +anchor f1cd +android e859 +animation e71c +announcement e85a +aod efda +apartment ea40 +api f1b7 +app_blocking ef3f +app_registration ef40 +app_settings_alt ef41 +app_shortcut eae4 +apple ea80 +approval e982 +apps e5c3 +apps_outage e7cc +architecture ea3b +archive e149 +area_chart e770 +arrow_back e5c4 +arrow_back_ios e5e0 +arrow_back_ios_new e2ea +arrow_circle_down f181 +arrow_circle_left eaa7 +arrow_circle_right eaaa +arrow_circle_up f182 +arrow_downward e5db +arrow_drop_down e5c5 +arrow_drop_down_circle e5c6 +arrow_drop_up e5c7 +arrow_forward e5c8 +arrow_forward_ios e5e1 +arrow_left e5de +arrow_outward f8ce +arrow_right e5df +arrow_right_alt e941 +arrow_upward e5d8 +art_track e060 +article ef42 +aspect_ratio e85b +assessment e85c +assignment e85d +assignment_add f848 +assignment_ind e85e +assignment_late e85f +assignment_return e860 +assignment_returned e861 +assignment_turned_in e862 +assist_walker f8d5 +assistant e39f +assistant_direction e988 +assistant_navigation e989 +assistant_photo e3a0 +assured_workload eb6f +atm e573 +attach_email ea5e +attach_file e226 +attach_money e227 +attachment e2bc +attractions ea52 +attribution efdb +audio_file eb82 +audiotrack e3a1 +auto_awesome e65f +auto_awesome_mosaic e660 +auto_awesome_motion e661 +auto_delete ea4c +auto_fix_high e663 +auto_fix_normal e664 +auto_fix_off e665 +auto_graph e4fb +auto_mode ec20 +auto_stories e666 +autofps_select efdc +autorenew e863 +av_timer e01b +baby_changing_station f19b +back_hand e764 +backpack f19c +backspace e14a +backup e864 +backup_table ef43 +badge ea67 +bakery_dining ea53 +balance eaf6 +balcony e58f +ballot e172 +bar_chart e26b +barcode_reader f85c +batch_prediction f0f5 +bathroom efdd +bathtub ea41 +battery_0_bar ebdc +battery_1_bar ebd9 +battery_2_bar ebe0 +battery_3_bar ebdd +battery_4_bar ebe2 +battery_5_bar ebd4 +battery_6_bar ebd2 +battery_alert e19c +battery_charging_full e1a3 +battery_full e1a4 +battery_saver efde +battery_std e1a5 +battery_unknown e1a6 +beach_access eb3e +bed efdf +bedroom_baby efe0 +bedroom_child efe1 +bedroom_parent efe2 +bedtime ef44 +bedtime_off eb76 +beenhere e52d +bento f1f4 +bike_scooter ef45 +biotech ea3a +blender efe3 +blind f8d6 +blinds e286 +blinds_closed ec1f +block e14b +block_flipped ef46 +bloodtype efe4 +bluetooth e1a7 +bluetooth_audio e60f +bluetooth_connected e1a8 +bluetooth_disabled e1a9 +bluetooth_drive efe5 +bluetooth_searching e1aa +blur_circular e3a2 +blur_linear e3a3 +blur_off e3a4 +blur_on e3a5 +bolt ea0b +book e865 +book_online f217 +bookmark e866 +bookmark_add e598 +bookmark_added e599 +bookmark_border e867 +bookmark_outline e867 +bookmark_remove e59a +bookmarks e98b +border_all e228 +border_bottom e229 +border_clear e22a +border_color e22b +border_horizontal e22c +border_inner e22d +border_left e22e +border_outer e22f +border_right e230 +border_style e231 +border_top e232 +border_vertical e233 +boy eb67 +branding_watermark e06b +breakfast_dining ea54 +brightness_1 e3a6 +brightness_2 e3a7 +brightness_3 e3a8 +brightness_4 e3a9 +brightness_5 e3aa +brightness_6 e3ab +brightness_7 e3ac +brightness_auto e1ab +brightness_high e1ac +brightness_low e1ad +brightness_medium e1ae +broadcast_on_home f8f8 +broadcast_on_personal f8f9 +broken_image e3ad +browse_gallery ebd1 +browser_not_supported ef47 +browser_updated e7cf +brunch_dining ea73 +brush e3ae +bubble_chart e6dd +bug_report e868 +build e869 +build_circle ef48 +bungalow e591 +burst_mode e43c +bus_alert e98f +business e0af +business_center eb3f +cabin e589 +cable efe6 +cached e86a +cake e7e9 +calculate ea5f +calendar_month ebcc +calendar_today e935 +calendar_view_day e936 +calendar_view_month efe7 +calendar_view_week efe8 +call e0b0 +call_end e0b1 +call_made e0b2 +call_merge e0b3 +call_missed e0b4 +call_missed_outgoing e0e4 +call_received e0b5 +call_split e0b6 +call_to_action e06c +camera e3af +camera_alt e3b0 +camera_enhance e8fc +camera_front e3b1 +camera_indoor efe9 +camera_outdoor efea +camera_rear e3b2 +camera_roll e3b3 +cameraswitch efeb +campaign ef49 +cancel e5c9 +cancel_presentation e0e9 +cancel_schedule_send ea39 +candlestick_chart ead4 +car_crash ebf2 +car_rental ea55 +car_repair ea56 +card_giftcard e8f6 +card_membership e8f7 +card_travel e8f8 +carpenter f1f8 +cases e992 +casino eb40 +cast e307 +cast_connected e308 +cast_for_education efec +castle eab1 +catching_pokemon e508 +category e574 +celebration ea65 +cell_tower ebba +cell_wifi e0ec +center_focus_strong e3b4 +center_focus_weak e3b5 +chair efed +chair_alt efee +chalet e585 +change_circle e2e7 +change_history e86b +charging_station f19d +chat e0b7 +chat_bubble e0ca +chat_bubble_outline e0cb +check e5ca +check_box e834 +check_box_outline_blank e835 +check_circle e86c +check_circle_outline e92d +checklist e6b1 +checklist_rtl e6b3 +checkroom f19e +chevron_left e5cb +chevron_right e5cc +child_care eb41 +child_friendly eb42 +chrome_reader_mode e86d +church eaae +circle ef4a +circle_notifications e994 +class e86e +clean_hands f21f +cleaning_services f0ff +clear e14c +clear_all e0b8 +close e5cd +close_fullscreen f1cf +closed_caption e01c +closed_caption_disabled f1dc +closed_caption_off e996 +cloud e2bd +cloud_circle e2be +cloud_done e2bf +cloud_download e2c0 +cloud_off e2c1 +cloud_queue e2c2 +cloud_sync eb5a +cloud_upload e2c3 +cloudy_snowing e810 +co2 e7b0 +co_present eaf0 +code e86f +code_off e4f3 +coffee efef +coffee_maker eff0 +collections e3b6 +collections_bookmark e431 +color_lens e3b7 +colorize e3b8 +comment e0b9 +comment_bank ea4e +comments_disabled e7a2 +commit eaf5 +commute e940 +compare e3b9 +compare_arrows e915 +compass_calibration e57c +compost e761 +compress e94d +computer e30a +confirmation_num e638 +confirmation_number e638 +connect_without_contact f223 +connected_tv e998 +connecting_airports e7c9 +construction ea3c +contact_emergency f8d1 +contact_mail e0d0 +contact_page f22e +contact_phone e0cf +contact_support e94c +contactless ea71 +contacts e0ba +content_copy e14d +content_cut e14e +content_paste e14f +content_paste_go ea8e +content_paste_off e4f8 +content_paste_search ea9b +contrast eb37 +control_camera e074 +control_point e3ba +control_point_duplicate e3bb +conveyor_belt f867 +cookie eaac +copy_all e2ec +copyright e90c +coronavirus f221 +corporate_fare f1d0 +cottage e587 +countertops f1f7 +create e150 +create_new_folder e2cc +credit_card e870 +credit_card_off e4f4 +credit_score eff1 +crib e588 +crisis_alert ebe9 +crop e3be +crop_16_9 e3bc +crop_3_2 e3bd +crop_5_4 e3bf +crop_7_5 e3c0 +crop_din e3c1 +crop_free e3c2 +crop_landscape e3c3 +crop_original e3c4 +crop_portrait e3c5 +crop_rotate e437 +crop_square e3c6 +cruelty_free e799 +css eb93 +currency_bitcoin ebc5 +currency_exchange eb70 +currency_franc eafa +currency_lira eaef +currency_pound eaf1 +currency_ruble eaec +currency_rupee eaf7 +currency_yen eafb +currency_yuan eaf9 +curtains ec1e +curtains_closed ec1d +cyclone ebd5 +dangerous e99a +dark_mode e51c +dashboard e871 +dashboard_customize e99b +data_array ead1 +data_exploration e76f +data_object ead3 +data_saver_off eff2 +data_saver_on eff3 +data_thresholding eb9f +data_usage e1af +dataset f8ee +dataset_linked f8ef +date_range e916 +deblur eb77 +deck ea42 +dehaze e3c7 +delete e872 +delete_forever e92b +delete_outline e92e +delete_sweep e16c +delivery_dining ea72 +density_large eba9 +density_medium eb9e +density_small eba8 +departure_board e576 +description e873 +deselect ebb6 +design_services f10a +desk f8f4 +desktop_access_disabled e99d +desktop_mac e30b +desktop_windows e30c +details e3c8 +developer_board e30d +developer_board_off e4ff +developer_mode e1b0 +device_hub e335 +device_thermostat e1ff +device_unknown e339 +devices e1b1 +devices_fold ebde +devices_other e337 +dew_point f879 +dialer_sip e0bb +dialpad e0bc +diamond ead5 +difference eb7d +dining eff4 +dinner_dining ea57 +directions e52e +directions_bike e52f +directions_boat e532 +directions_boat_filled eff5 +directions_bus e530 +directions_bus_filled eff6 +directions_car e531 +directions_car_filled eff7 +directions_ferry e532 +directions_off f10f +directions_railway e534 +directions_railway_filled eff8 +directions_run e566 +directions_subway e533 +directions_subway_filled eff9 +directions_train e534 +directions_transit e535 +directions_transit_filled effa +directions_walk e536 +dirty_lens ef4b +disabled_by_default f230 +disabled_visible e76e +disc_full e610 +discord ea6c +discount ebc9 +display_settings eb97 +diversity_1 f8d7 +diversity_2 f8d8 +diversity_3 f8d9 +dnd_forwardslash e611 +dns e875 +do_disturb f08c +do_disturb_alt f08d +do_disturb_off f08e +do_disturb_on f08f +do_not_disturb e612 +do_not_disturb_alt e611 +do_not_disturb_off e643 +do_not_disturb_on e644 +do_not_disturb_on_total_silence effb +do_not_step f19f +do_not_touch f1b0 +dock e30e +document_scanner e5fa +domain e7ee +domain_add eb62 +domain_disabled e0ef +domain_verification ef4c +done e876 +done_all e877 +done_outline e92f +donut_large e917 +donut_small e918 +door_back effc +door_front effd +door_sliding effe +doorbell efff +double_arrow ea50 +downhill_skiing e509 +download f090 +download_done f091 +download_for_offline f000 +downloading f001 +drafts e151 +drag_handle e25d +drag_indicator e945 +draw e746 +drive_eta e613 +drive_file_move e675 +drive_file_move_outline e9a1 +drive_file_move_rtl e76d +drive_file_rename_outline e9a2 +drive_folder_upload e9a3 +dry f1b3 +dry_cleaning ea58 +duo e9a5 +dvr e1b2 +dynamic_feed ea14 +dynamic_form f1bf +e_mobiledata f002 +earbuds f003 +earbuds_battery f004 +east f1df +eco ea35 +edgesensor_high f005 +edgesensor_low f006 +edit e3c9 +edit_attributes e578 +edit_calendar e742 +edit_document f88c +edit_location e568 +edit_location_alt e1c5 +edit_note e745 +edit_notifications e525 +edit_off e950 +edit_road ef4d +edit_square f88d +egg eacc +egg_alt eac8 +eject e8fb +elderly f21a +elderly_woman eb69 +electric_bike eb1b +electric_bolt ec1c +electric_car eb1c +electric_meter ec1b +electric_moped eb1d +electric_rickshaw eb1e +electric_scooter eb1f +electrical_services f102 +elevator f1a0 +email e0be +emergency e1eb +emergency_recording ebf4 +emergency_share ebf6 +emoji_emotions ea22 +emoji_events ea23 +emoji_flags ea1a +emoji_food_beverage ea1b +emoji_nature ea1c +emoji_objects ea24 +emoji_people ea1d +emoji_symbols ea1e +emoji_transportation ea1f +energy_savings_leaf ec1a +engineering ea3d +enhance_photo_translate e8fc +enhanced_encryption e63f +equalizer e01d +error e000 +error_outline e001 +escalator f1a1 +escalator_warning f1ac +euro ea15 +euro_symbol e926 +ev_station e56d +event e878 +event_available e614 +event_busy e615 +event_note e616 +event_repeat eb7b +event_seat e903 +exit_to_app e879 +expand e94f +expand_circle_down e7cd +expand_less e5ce +expand_more e5cf +explicit e01e +explore e87a +explore_off e9a8 +exposure e3ca +exposure_minus_1 e3cb +exposure_minus_2 e3cc +exposure_neg_1 e3cb +exposure_neg_2 e3cc +exposure_plus_1 e3cd +exposure_plus_2 e3ce +exposure_zero e3cf +extension e87b +extension_off e4f5 +face e87c +face_2 f8da +face_3 f8db +face_4 f8dc +face_5 f8dd +face_6 f8de +face_retouching_natural ef4e +face_retouching_off f007 +facebook f234 +fact_check f0c5 +factory ebbc +family_restroom f1a2 +fast_forward e01f +fast_rewind e020 +fastfood e57a +favorite e87d +favorite_border e87e +favorite_outline e87e +fax ead8 +featured_play_list e06d +featured_video e06e +feed f009 +feedback e87f +female e590 +fence f1f6 +festival ea68 +fiber_dvr e05d +fiber_manual_record e061 +fiber_new e05e +fiber_pin e06a +fiber_smart_record e062 +file_copy e173 +file_download e2c4 +file_download_done e9aa +file_download_off e4fe +file_open eaf3 +file_present ea0e +file_upload e2c6 +file_upload_off f886 +filter e3d3 +filter_1 e3d0 +filter_2 e3d1 +filter_3 e3d2 +filter_4 e3d4 +filter_5 e3d5 +filter_6 e3d6 +filter_7 e3d7 +filter_8 e3d8 +filter_9 e3d9 +filter_9_plus e3da +filter_alt ef4f +filter_alt_off eb32 +filter_b_and_w e3db +filter_center_focus e3dc +filter_drama e3dd +filter_frames e3de +filter_hdr e3df +filter_list e152 +filter_list_alt e94e +filter_list_off eb57 +filter_none e3e0 +filter_tilt_shift e3e2 +filter_vintage e3e3 +find_in_page e880 +find_replace e881 +fingerprint e90d +fire_extinguisher f1d8 +fire_hydrant f1a3 +fire_hydrant_alt f8f1 +fire_truck f8f2 +fireplace ea43 +first_page e5dc +fit_screen ea10 +fitbit e82b +fitness_center eb43 +flag e153 +flag_circle eaf8 +flaky ef50 +flare e3e4 +flash_auto e3e5 +flash_off e3e6 +flash_on e3e7 +flashlight_off f00a +flashlight_on f00b +flatware f00c +flight e539 +flight_class e7cb +flight_land e904 +flight_takeoff e905 +flip e3e8 +flip_camera_android ea37 +flip_camera_ios ea38 +flip_to_back e882 +flip_to_front e883 +flood ebe6 +flourescent ec31 +flourescent f00d +fluorescent ec31 +flutter_dash e00b +fmd_bad f00e +fmd_good f00f +foggy e818 +folder e2c7 +folder_copy ebbd +folder_delete eb34 +folder_off eb83 +folder_open e2c8 +folder_shared e2c9 +folder_special e617 +folder_zip eb2c +follow_the_signs f222 +font_download e167 +font_download_off e4f9 +food_bank f1f2 +forest ea99 +fork_left eba0 +fork_right ebac +forklift f868 +format_align_center e234 +format_align_justify e235 +format_align_left e236 +format_align_right e237 +format_bold e238 +format_clear e239 +format_color_fill e23a +format_color_reset e23b +format_color_text e23c +format_indent_decrease e23d +format_indent_increase e23e +format_italic e23f +format_line_spacing e240 +format_list_bulleted e241 +format_list_bulleted_add f849 +format_list_numbered e242 +format_list_numbered_rtl e267 +format_overline eb65 +format_paint e243 +format_quote e244 +format_shapes e25e +format_size e245 +format_strikethrough e246 +format_textdirection_l_to_r e247 +format_textdirection_r_to_l e248 +format_underline e249 +format_underlined e249 +fort eaad +forum e0bf +forward e154 +forward_10 e056 +forward_30 e057 +forward_5 e058 +forward_to_inbox f187 +foundation f200 +free_breakfast eb44 +free_cancellation e748 +front_hand e769 +front_loader f869 +fullscreen e5d0 +fullscreen_exit e5d1 +functions e24a +g_mobiledata f010 +g_translate e927 +gamepad e30f +games e021 +garage f011 +gas_meter ec19 +gavel e90e +generating_tokens e749 +gesture e155 +get_app e884 +gif e908 +gif_box e7a3 +girl eb68 +gite e58b +goat 10fffd +golf_course eb45 +gpp_bad f012 +gpp_good f013 +gpp_maybe f014 +gps_fixed e1b3 +gps_not_fixed e1b4 +gps_off e1b5 +grade e885 +gradient e3e9 +grading ea4f +grain e3ea +graphic_eq e1b8 +grass f205 +grid_3x3 f015 +grid_4x4 f016 +grid_goldenratio f017 +grid_off e3eb +grid_on e3ec +grid_view e9b0 +group e7ef +group_add e7f0 +group_off e747 +group_remove e7ad +group_work e886 +groups f233 +groups_2 f8df +groups_3 f8e0 +h_mobiledata f018 +h_plus_mobiledata f019 +hail e9b1 +handshake ebcb +handyman f10b +hardware ea59 +hd e052 +hdr_auto f01a +hdr_auto_select f01b +hdr_enhanced_select ef51 +hdr_off e3ed +hdr_off_select f01c +hdr_on e3ee +hdr_on_select f01d +hdr_plus f01e +hdr_strong e3f1 +hdr_weak e3f2 +headphones f01f +headphones_battery f020 +headset e310 +headset_mic e311 +headset_off e33a +healing e3f3 +health_and_safety e1d5 +hearing e023 +hearing_disabled f104 +heart_broken eac2 +heat_pump ec18 +height ea16 +help e887 +help_center f1c0 +help_outline e8fd +hevc f021 +hexagon eb39 +hide_image f022 +hide_source f023 +high_quality e024 +highlight e25f +highlight_alt ef52 +highlight_off e888 +highlight_remove e888 +hiking e50a +history e889 +history_edu ea3e +history_toggle_off f17d +hive eaa6 +hls eb8a +hls_off eb8c +holiday_village e58a +home e88a +home_filled e9b2 +home_max f024 +home_mini f025 +home_repair_service f100 +home_work ea09 +horizontal_distribute e014 +horizontal_rule f108 +horizontal_split e947 +hot_tub eb46 +hotel e53a +hotel_class e743 +hourglass_bottom ea5c +hourglass_disabled ef53 +hourglass_empty e88b +hourglass_full e88c +hourglass_top ea5b +house ea44 +house_siding f202 +houseboat e584 +how_to_reg e174 +how_to_vote e175 +html eb7e +http e902 +https e88d +hub e9f4 +hvac f10e +ice_skating e50b +icecream ea69 +image e3f4 +image_aspect_ratio e3f5 +image_not_supported f116 +image_search e43f +imagesearch_roller e9b4 +import_contacts e0e0 +import_export e0c3 +important_devices e912 +inbox e156 +incomplete_circle e79b +indeterminate_check_box e909 +info e88e +info_outline e88f +input e890 +insert_chart e24b +insert_chart_outlined e26a +insert_comment e24c +insert_drive_file e24d +insert_emoticon e24e +insert_invitation e24f +insert_link e250 +insert_page_break eaca +insert_photo e251 +insights f092 +install_desktop eb71 +install_mobile eb72 +integration_instructions ef54 +interests e7c8 +interpreter_mode e83b +inventory e179 +inventory_2 e1a1 +invert_colors e891 +invert_colors_off e0c4 +invert_colors_on e891 +ios_share e6b8 +iron e583 +iso e3f6 +javascript eb7c +join_full eaeb +join_inner eaf4 +join_left eaf2 +join_right eaea +kayaking e50c +kebab_dining e842 +key e73c +key_off eb84 +keyboard e312 +keyboard_alt f028 +keyboard_arrow_down e313 +keyboard_arrow_left e314 +keyboard_arrow_right e315 +keyboard_arrow_up e316 +keyboard_backspace e317 +keyboard_capslock e318 +keyboard_command eae0 +keyboard_command_key eae7 +keyboard_control e5d3 +keyboard_control_key eae6 +keyboard_double_arrow_down ead0 +keyboard_double_arrow_left eac3 +keyboard_double_arrow_right eac9 +keyboard_double_arrow_up eacf +keyboard_hide e31a +keyboard_option eadf +keyboard_option_key eae8 +keyboard_return e31b +keyboard_tab e31c +keyboard_voice e31d +king_bed ea45 +kitchen eb47 +kitesurfing e50d +label e892 +label_important e937 +label_important_outline e948 +label_off e9b6 +label_outline e893 +lan eb2f +landscape e3f7 +landslide ebd7 +language e894 +laptop e31e +laptop_chromebook e31f +laptop_mac e320 +laptop_windows e321 +last_page e5dd +launch e895 +layers e53b +layers_clear e53c +leaderboard f20c +leak_add e3f8 +leak_remove e3f9 +leave_bags_at_home f21b +legend_toggle f11b +lens e3fa +lens_blur f029 +library_add e02e +library_add_check e9b7 +library_books e02f +library_music e030 +light f02a +light_mode e518 +lightbulb e0f0 +lightbulb_circle ebfe +lightbulb_outline e90f +line_axis ea9a +line_style e919 +line_weight e91a +linear_scale e260 +link e157 +link_off e16f +linked_camera e438 +liquor ea60 +list e896 +list_alt e0ee +live_help e0c6 +live_tv e639 +living f02b +local_activity e53f +local_airport e53d +local_atm e53e +local_attraction e53f +local_bar e540 +local_cafe e541 +local_car_wash e542 +local_convenience_store e543 +local_dining e556 +local_drink e544 +local_fire_department ef55 +local_florist e545 +local_gas_station e546 +local_grocery_store e547 +local_hospital e548 +local_hotel e549 +local_laundry_service e54a +local_library e54b +local_mall e54c +local_movies e54d +local_offer e54e +local_parking e54f +local_pharmacy e550 +local_phone e551 +local_pizza e552 +local_play e553 +local_police ef56 +local_post_office e554 +local_print_shop e555 +local_printshop e555 +local_restaurant e556 +local_see e557 +local_shipping e558 +local_taxi e559 +location_city e7f1 +location_disabled e1b6 +location_history e55a +location_off e0c7 +location_on e0c8 +location_pin f1db +location_searching e1b7 +lock e897 +lock_clock ef57 +lock_open e898 +lock_outline e899 +lock_person f8f3 +lock_reset eade +login ea77 +logo_dev ead6 +logout e9ba +looks e3fc +looks_3 e3fb +looks_4 e3fd +looks_5 e3fe +looks_6 e3ff +looks_one e400 +looks_two e401 +loop e028 +loupe e402 +low_priority e16d +loyalty e89a +lte_mobiledata f02c +lte_plus_mobiledata f02d +luggage f235 +lunch_dining ea61 +lyrics ec0b +macro_off f8d2 +mail e158 +mail_lock ec0a +mail_outline e0e1 +male e58e +man e4eb +man_2 f8e1 +man_3 f8e2 +man_4 f8e3 +manage_accounts f02e +manage_history ebe7 +manage_search f02f +map e55b +maps_home_work f030 +maps_ugc ef58 +margin e9bb +mark_as_unread e9bc +mark_chat_read f18b +mark_chat_unread f189 +mark_email_read f18c +mark_email_unread f18a +mark_unread_chat_alt eb9d +markunread e159 +markunread_mailbox e89b +masks f218 +maximize e930 +media_bluetooth_off f031 +media_bluetooth_on f032 +mediation efa7 +medical_information ebed +medical_services f109 +medication f033 +medication_liquid ea87 +meeting_room eb4f +memory e322 +menu e5d2 +menu_book ea19 +menu_open e9bd +merge eb98 +merge_type e252 +message e0c9 +messenger e0ca +messenger_outline e0cb +mic e029 +mic_external_off ef59 +mic_external_on ef5a +mic_none e02a +mic_off e02b +microwave f204 +military_tech ea3f +minimize e931 +minor_crash ebf1 +miscellaneous_services f10c +missed_video_call e073 +mms e618 +mobile_friendly e200 +mobile_off e201 +mobile_screen_share e0e7 +mobiledata_off f034 +mode f097 +mode_comment e253 +mode_edit e254 +mode_edit_outline f035 +mode_fan_off ec17 +mode_night f036 +mode_of_travel e7ce +mode_standby f037 +model_training f0cf +monetization_on e263 +money e57d +money_off e25c +money_off_csred f038 +monitor ef5b +monitor_heart eaa2 +monitor_weight f039 +monochrome_photos e403 +mood e7f2 +mood_bad e7f3 +moped eb28 +more e619 +more_horiz e5d3 +more_time ea5d +more_vert e5d4 +mosque eab2 +motion_photos_auto f03a +motion_photos_off e9c0 +motion_photos_on e9c1 +motion_photos_pause f227 +motion_photos_paused e9c2 +motorcycle e91b +mouse e323 +move_down eb61 +move_to_inbox e168 +move_up eb64 +movie e02c +movie_creation e404 +movie_edit f840 +movie_filter e43a +moving e501 +mp e9c3 +multiline_chart e6df +multiple_stop f1b9 +multitrack_audio e1b8 +museum ea36 +music_note e405 +music_off e440 +music_video e063 +my_library_add e02e +my_library_books e02f +my_library_music e030 +my_location e55c +nat ef5c +nature e406 +nature_people e407 +navigate_before e408 +navigate_next e409 +navigation e55d +near_me e569 +near_me_disabled f1ef +nearby_error f03b +nearby_off f03c +nest_cam_wired_stand ec16 +network_cell e1b9 +network_check e640 +network_locked e61a +network_ping ebca +network_wifi e1ba +network_wifi_1_bar ebe4 +network_wifi_2_bar ebd6 +network_wifi_3_bar ebe1 +new_label e609 +new_releases e031 +newspaper eb81 +next_plan ef5d +next_week e16a +nfc e1bb +night_shelter f1f1 +nightlife ea62 +nightlight f03d +nightlight_round ef5e +nights_stay ea46 +no_accounts f03e +no_adult_content f8fe +no_backpack f237 +no_cell f1a4 +no_crash ebf0 +no_drinks f1a5 +no_encryption e641 +no_encryption_gmailerrorred f03f +no_flash f1a6 +no_food f1a7 +no_luggage f23b +no_meals f1d6 +no_meals_ouline f229 +no_meeting_room eb4e +no_photography f1a8 +no_sim e0cc +no_stroller f1af +no_transfer f1d5 +noise_aware ebec +noise_control_off ebf3 +nordic_walking e50e +north f1e0 +north_east f1e1 +north_west f1e2 +not_accessible f0fe +not_interested e033 +not_listed_location e575 +not_started f0d1 +note e06f +note_add e89c +note_alt f040 +notes e26c +notification_add e399 +notification_important e004 +notifications e7f4 +notifications_active e7f7 +notifications_none e7f5 +notifications_off e7f6 +notifications_on e7f7 +notifications_paused e7f8 +now_wallpaper e1bc +now_widgets e1bd +numbers eac7 +offline_bolt e932 +offline_pin e90a +offline_share e9c5 +oil_barrel ec15 +on_device_training ebfd +ondemand_video e63a +online_prediction f0eb +opacity e91c +open_in_browser e89d +open_in_full f1ce +open_in_new e89e +open_in_new_off e4f6 +open_with e89f +other_houses e58c +outbond f228 +outbound e1ca +outbox ef5f +outdoor_grill ea47 +outgoing_mail f0d2 +outlet f1d4 +outlined_flag e16e +output ebbe +padding e9c8 +pages e7f9 +pageview e8a0 +paid f041 +palette e40a +pallet f86a +pan_tool e925 +pan_tool_alt ebb9 +panorama e40b +panorama_fish_eye e40c +panorama_fisheye e40c +panorama_horizontal e40d +panorama_horizontal_select ef60 +panorama_photosphere e9c9 +panorama_photosphere_select e9ca +panorama_vertical e40e +panorama_vertical_select ef61 +panorama_wide_angle e40f +panorama_wide_angle_select ef62 +paragliding e50f +park ea63 +party_mode e7fa +password f042 +pattern f043 +pause e034 +pause_circle e1a2 +pause_circle_filled e035 +pause_circle_outline e036 +pause_presentation e0ea +payment e8a1 +payments ef63 +paypal ea8d +pedal_bike eb29 +pending ef64 +pending_actions f1bb +pentagon eb50 +people e7fb +people_alt ea21 +people_outline e7fc +percent eb58 +perm_camera_mic e8a2 +perm_contact_cal e8a3 +perm_contact_calendar e8a3 +perm_data_setting e8a4 +perm_device_info e8a5 +perm_device_information e8a5 +perm_identity e8a6 +perm_media e8a7 +perm_phone_msg e8a8 +perm_scan_wifi e8a9 +person e7fd +person_2 f8e4 +person_3 f8e5 +person_4 f8e6 +person_add e7fe +person_add_alt ea4d +person_add_alt_1 ef65 +person_add_disabled e9cb +person_off e510 +person_outline e7ff +person_pin e55a +person_pin_circle e56a +person_remove ef66 +person_remove_alt_1 ef67 +person_search f106 +personal_injury e6da +personal_video e63b +pest_control f0fa +pest_control_rodent f0fd +pets e91d +phishing ead7 +phone e0cd +phone_android e324 +phone_bluetooth_speaker e61b +phone_callback e649 +phone_disabled e9cc +phone_enabled e9cd +phone_forwarded e61c +phone_in_talk e61d +phone_iphone e325 +phone_locked e61e +phone_missed e61f +phone_paused e620 +phonelink e326 +phonelink_erase e0db +phonelink_lock e0dc +phonelink_off e327 +phonelink_ring e0dd +phonelink_setup e0de +photo e410 +photo_album e411 +photo_camera e412 +photo_camera_back ef68 +photo_camera_front ef69 +photo_filter e43b +photo_library e413 +photo_size_select_actual e432 +photo_size_select_large e433 +photo_size_select_small e434 +php eb8f +piano e521 +piano_off e520 +picture_as_pdf e415 +picture_in_picture e8aa +picture_in_picture_alt e911 +pie_chart e6c4 +pie_chart_outline f044 +pie_chart_outlined e6c5 +pin f045 +pin_drop e55e +pin_end e767 +pin_invoke e763 +pinch eb38 +pivot_table_chart e9ce +pix eaa3 +place e55f +plagiarism ea5a +play_arrow e037 +play_circle e1c4 +play_circle_fill e038 +play_circle_filled e038 +play_circle_outline e039 +play_disabled ef6a +play_for_work e906 +play_lesson f047 +playlist_add e03b +playlist_add_check e065 +playlist_add_check_circle e7e6 +playlist_add_circle e7e5 +playlist_play e05f +playlist_remove eb80 +plumbing f107 +plus_one e800 +podcasts f048 +point_of_sale f17e +policy ea17 +poll e801 +polyline ebbb +polymer e8ab +pool eb48 +portable_wifi_off e0ce +portrait e416 +post_add ea20 +power e63c +power_input e336 +power_off e646 +power_settings_new e8ac +precision_manufacturing f049 +pregnant_woman e91e +present_to_all e0df +preview f1c5 +price_change f04a +price_check f04b +print e8ad +print_disabled e9cf +priority_high e645 +privacy_tip f0dc +private_connectivity e744 +production_quantity_limits e1d1 +propane ec14 +propane_tank ec13 +psychology ea4a +psychology_alt f8ea +public e80b +public_off f1ca +publish e255 +published_with_changes f232 +punch_clock eaa8 +push_pin f10d +qr_code ef6b +qr_code_2 e00a +qr_code_scanner f206 +query_builder e8ae +query_stats e4fc +question_answer e8af +question_mark eb8b +queue e03c +queue_music e03d +queue_play_next e066 +quick_contacts_dialer e0cf +quick_contacts_mail e0d0 +quickreply ef6c +quiz f04c +quora ea98 +r_mobiledata f04d +radar f04e +radio e03e +radio_button_checked e837 +radio_button_off e836 +radio_button_on e837 +radio_button_unchecked e836 +railway_alert e9d1 +ramen_dining ea64 +ramp_left eb9c +ramp_right eb96 +rate_review e560 +raw_off f04f +raw_on f050 +read_more ef6d +real_estate_agent e73a +rebase_edit f846 +receipt e8b0 +receipt_long ef6e +recent_actors e03f +recommend e9d2 +record_voice_over e91f +rectangle eb54 +recycling e760 +reddit eaa0 +redeem e8b1 +redo e15a +reduce_capacity f21c +refresh e5d5 +remember_me f051 +remove e15b +remove_circle e15c +remove_circle_outline e15d +remove_done e9d3 +remove_from_queue e067 +remove_moderator e9d4 +remove_red_eye e417 +remove_road ebfc +remove_shopping_cart e928 +reorder e8fe +repartition f8e8 +repeat e040 +repeat_on e9d6 +repeat_one e041 +repeat_one_on e9d7 +replay e042 +replay_10 e059 +replay_30 e05a +replay_5 e05b +replay_circle_filled e9d8 +reply e15e +reply_all e15f +report e160 +report_gmailerrorred f052 +report_off e170 +report_problem e8b2 +request_page f22c +request_quote f1b6 +reset_tv e9d9 +restart_alt f053 +restaurant e56c +restaurant_menu e561 +restore e8b3 +restore_from_trash e938 +restore_page e929 +reviews f054 +rice_bowl f1f5 +ring_volume e0d1 +rocket eba5 +rocket_launch eb9b +roller_shades ec12 +roller_shades_closed ec11 +roller_skating ebcd +roofing f201 +room e8b4 +room_preferences f1b8 +room_service eb49 +rotate_90_degrees_ccw e418 +rotate_90_degrees_cw eaab +rotate_left e419 +rotate_right e41a +roundabout_left eb99 +roundabout_right eba3 +rounded_corner e920 +route eacd +router e328 +rowing e921 +rss_feed e0e5 +rsvp f055 +rtt e9ad +rule f1c2 +rule_folder f1c9 +run_circle ef6f +running_with_errors e51d +rv_hookup e642 +safety_check ebef +safety_divider e1cc +sailing e502 +sanitizer f21d +satellite e562 +satellite_alt eb3a +save e161 +save_alt e171 +save_as eb60 +saved_search ea11 +savings e2eb +scale eb5f +scanner e329 +scatter_plot e268 +schedule e8b5 +schedule_send ea0a +schema e4fd +school e80c +science ea4b +score e269 +scoreboard ebd0 +screen_lock_landscape e1be +screen_lock_portrait e1bf +screen_lock_rotation e1c0 +screen_rotation e1c1 +screen_rotation_alt ebee +screen_search_desktop ef70 +screen_share e0e2 +screenshot f056 +screenshot_monitor ec08 +scuba_diving ebce +sd e9dd +sd_card e623 +sd_card_alert f057 +sd_storage e1c2 +search e8b6 +search_off ea76 +security e32a +security_update f058 +security_update_good f059 +security_update_warning f05a +segment e94b +select_all e162 +self_improvement ea78 +sell f05b +send e163 +send_and_archive ea0c +send_time_extension eadb +send_to_mobile f05c +sensor_door f1b5 +sensor_occupied ec10 +sensor_window f1b4 +sensors e51e +sensors_off e51f +sentiment_dissatisfied e811 +sentiment_neutral e812 +sentiment_satisfied e813 +sentiment_satisfied_alt e0ed +sentiment_very_dissatisfied e814 +sentiment_very_satisfied e815 +set_meal f1ea +settings e8b8 +settings_accessibility f05d +settings_applications e8b9 +settings_backup_restore e8ba +settings_bluetooth e8bb +settings_brightness e8bd +settings_cell e8bc +settings_display e8bd +settings_ethernet e8be +settings_input_antenna e8bf +settings_input_component e8c0 +settings_input_composite e8c1 +settings_input_hdmi e8c2 +settings_input_svideo e8c3 +settings_overscan e8c4 +settings_phone e8c5 +settings_power e8c6 +settings_remote e8c7 +settings_suggest f05e +settings_system_daydream e1c3 +settings_voice e8c8 +severe_cold ebd3 +shape_line f8d3 +share e80d +share_arrival_time e524 +share_location f05f +shelves f86e +shield e9e0 +shield_moon eaa9 +shop e8c9 +shop_2 e19e +shop_two e8ca +shopify ea9d +shopping_bag f1cc +shopping_basket e8cb +shopping_cart e8cc +shopping_cart_checkout eb88 +short_text e261 +shortcut f060 +show_chart e6e1 +shower f061 +shuffle e043 +shuffle_on e9e1 +shutter_speed e43d +sick f220 +sign_language ebe5 +signal_cellular_0_bar f0a8 +signal_cellular_4_bar e1c8 +signal_cellular_alt e202 +signal_cellular_alt_1_bar ebdf +signal_cellular_alt_2_bar ebe3 +signal_cellular_connected_no_internet_0_bar f0ac +signal_cellular_connected_no_internet_4_bar e1cd +signal_cellular_no_sim e1ce +signal_cellular_nodata f062 +signal_cellular_null e1cf +signal_cellular_off e1d0 +signal_wifi_0_bar f0b0 +signal_wifi_4_bar e1d8 +signal_wifi_4_bar_lock e1d9 +signal_wifi_bad f063 +signal_wifi_connected_no_internet_4 f064 +signal_wifi_off e1da +signal_wifi_statusbar_4_bar f065 +signal_wifi_statusbar_connected_no_internet_4 f066 +signal_wifi_statusbar_null f067 +signpost eb91 +sim_card e32b +sim_card_alert e624 +sim_card_download f068 +single_bed ea48 +sip f069 +skateboarding e511 +skip_next e044 +skip_previous e045 +sledding e512 +slideshow e41b +slow_motion_video e068 +smart_button f1c1 +smart_display f06a +smart_screen f06b +smart_toy f06c +smartphone e32c +smoke_free eb4a +smoking_rooms eb4b +sms e625 +sms_failed e626 +snapchat ea6e +snippet_folder f1c7 +snooze e046 +snowboarding e513 +snowing e80f +snowmobile e503 +snowshoeing e514 +soap f1b2 +social_distance e1cb +solar_power ec0f +sort e164 +sort_by_alpha e053 +sos ebf7 +soup_kitchen e7d3 +source f1c4 +south f1e3 +south_america e7e4 +south_east f1e4 +south_west f1e5 +spa eb4c +space_bar e256 +space_dashboard e66b +spatial_audio ebeb +spatial_audio_off ebe8 +spatial_tracking ebea +speaker e32d +speaker_group e32e +speaker_notes e8cd +speaker_notes_off e92a +speaker_phone e0d2 +speed e9e4 +spellcheck e8ce +splitscreen f06d +spoke e9a7 +sports ea30 +sports_bar f1f3 +sports_baseball ea51 +sports_basketball ea26 +sports_cricket ea27 +sports_esports ea28 +sports_football ea29 +sports_golf ea2a +sports_gymnastics ebc4 +sports_handball ea33 +sports_hockey ea2b +sports_kabaddi ea34 +sports_martial_arts eae9 +sports_mma ea2c +sports_motorsports ea2d +sports_rugby ea2e +sports_score f06e +sports_soccer ea2f +sports_tennis ea32 +sports_volleyball ea31 +square eb36 +square_foot ea49 +ssid_chart eb66 +stacked_bar_chart e9e6 +stacked_line_chart f22b +stadium eb90 +stairs f1a9 +star e838 +star_border e83a +star_border_purple500 f099 +star_half e839 +star_outline f06f +star_purple500 f09a +star_rate f0ec +stars e8d0 +start e089 +stay_current_landscape e0d3 +stay_current_portrait e0d4 +stay_primary_landscape e0d5 +stay_primary_portrait e0d6 +sticky_note_2 f1fc +stop e047 +stop_circle ef71 +stop_screen_share e0e3 +storage e1db +store e8d1 +store_mall_directory e563 +storefront ea12 +storm f070 +straight eb95 +straighten e41c +stream e9e9 +streetview e56e +strikethrough_s e257 +stroller f1ae +style e41d +subdirectory_arrow_left e5d9 +subdirectory_arrow_right e5da +subject e8d2 +subscript f111 +subscriptions e064 +subtitles e048 +subtitles_off ef72 +subway e56f +summarize f071 +sunny e81a +sunny_snowing e819 +superscript f112 +supervised_user_circle e939 +supervisor_account e8d3 +support ef73 +support_agent f0e2 +surfing e515 +surround_sound e049 +swap_calls e0d7 +swap_horiz e8d4 +swap_horizontal_circle e933 +swap_vert e8d5 +swap_vert_circle e8d6 +swap_vertical_circle e8d6 +swipe e9ec +swipe_down eb53 +swipe_down_alt eb30 +swipe_left eb59 +swipe_left_alt eb33 +swipe_right eb52 +swipe_right_alt eb56 +swipe_up eb2e +swipe_up_alt eb35 +swipe_vertical eb51 +switch_access_shortcut e7e1 +switch_access_shortcut_add e7e2 +switch_account e9ed +switch_camera e41e +switch_left f1d1 +switch_right f1d2 +switch_video e41f +synagogue eab0 +sync e627 +sync_alt ea18 +sync_disabled e628 +sync_lock eaee +sync_problem e629 +system_security_update f072 +system_security_update_good f073 +system_security_update_warning f074 +system_update e62a +system_update_alt e8d7 +system_update_tv e8d7 +tab e8d8 +tab_unselected e8d9 +table_bar ead2 +table_chart e265 +table_restaurant eac6 +table_rows f101 +table_view f1be +tablet e32f +tablet_android e330 +tablet_mac e331 +tag e9ef +tag_faces e420 +takeout_dining ea74 +tap_and_play e62b +tapas f1e9 +task f075 +task_alt e2e6 +taxi_alert ef74 +telegram ea6b +temple_buddhist eab3 +temple_hindu eaaf +terminal eb8e +terrain e564 +text_decrease eadd +text_fields e262 +text_format e165 +text_increase eae2 +text_rotate_up e93a +text_rotate_vertical e93b +text_rotation_angledown e93c +text_rotation_angleup e93d +text_rotation_down e93e +text_rotation_none e93f +text_snippet f1c6 +textsms e0d8 +texture e421 +theater_comedy ea66 +theaters e8da +thermostat f076 +thermostat_auto f077 +thumb_down e8db +thumb_down_alt e816 +thumb_down_off_alt e9f2 +thumb_up e8dc +thumb_up_alt e817 +thumb_up_off_alt e9f3 +thumbs_up_down e8dd +thunderstorm ebdb +tiktok ea7e +time_to_leave e62c +timelapse e422 +timeline e922 +timer e425 +timer_10 e423 +timer_10_select f07a +timer_3 e424 +timer_3_select f07b +timer_off e426 +tips_and_updates e79a +tire_repair ebc8 +title e264 +toc e8de +today e8df +toggle_off e9f5 +toggle_on e9f6 +token ea25 +toll e8e0 +tonality e427 +topic f1c8 +tornado e199 +touch_app e913 +tour ef75 +toys e332 +track_changes e8e1 +traffic e565 +train e570 +tram e571 +transcribe f8ec +transfer_within_a_station e572 +transform e428 +transgender e58d +transit_enterexit e579 +translate e8e2 +travel_explore e2db +trending_down e8e3 +trending_flat e8e4 +trending_neutral e8e4 +trending_up e8e5 +trip_origin e57b +trolley f86b +troubleshoot e1d2 +try f07c +tsunami ebd8 +tty f1aa +tune e429 +tungsten f07d +turn_left eba6 +turn_right ebab +turn_sharp_left eba7 +turn_sharp_right ebaa +turn_slight_left eba4 +turn_slight_right eb9a +turned_in e8e6 +turned_in_not e8e7 +tv e333 +tv_off e647 +two_wheeler e9f9 +type_specimen f8f0 +u_turn_left eba1 +u_turn_right eba2 +umbrella f1ad +unarchive e169 +undo e166 +unfold_less e5d6 +unfold_less_double f8cf +unfold_more e5d7 +unfold_more_double f8d0 +unpublished f236 +unsubscribe e0eb +upcoming f07e +update e923 +update_disabled e075 +upgrade f0fb +upload f09b +upload_file e9fc +usb e1e0 +usb_off e4fa +vaccines e138 +vape_free ebc6 +vaping_rooms ebcf +verified ef76 +verified_user e8e8 +vertical_align_bottom e258 +vertical_align_center e259 +vertical_align_top e25a +vertical_distribute e076 +vertical_shades ec0e +vertical_shades_closed ec0d +vertical_split e949 +vibration e62d +video_call e070 +video_camera_back f07f +video_camera_front f080 +video_chat f8a0 +video_collection e04a +video_file eb87 +video_label e071 +video_library e04a +video_settings ea75 +video_stable f081 +videocam e04b +videocam_off e04c +videogame_asset e338 +videogame_asset_off e500 +view_agenda e8e9 +view_array e8ea +view_carousel e8eb +view_column e8ec +view_comfortable e42a +view_comfy e42a +view_comfy_alt eb73 +view_compact e42b +view_compact_alt eb74 +view_cozy eb75 +view_day e8ed +view_headline e8ee +view_in_ar e9fe +view_kanban eb7f +view_list e8ef +view_module e8f0 +view_quilt e8f1 +view_sidebar f114 +view_stream e8f2 +view_timeline eb85 +view_week e8f3 +vignette e435 +villa e586 +visibility e8f4 +visibility_off e8f5 +voice_chat e62e +voice_over_off e94a +voicemail e0d9 +volcano ebda +volume_down e04d +volume_down_alt e79c +volume_mute e04e +volume_off e04f +volume_up e050 +volunteer_activism ea70 +vpn_key e0da +vpn_key_off eb7a +vpn_lock e62f +vrpano f082 +wallet f8ff +wallet_giftcard e8f6 +wallet_membership e8f7 +wallet_travel e8f8 +wallpaper e1bc +warehouse ebb8 +warning e002 +warning_amber f083 +wash f1b1 +watch e334 +watch_later e924 +watch_off eae3 +water f084 +water_damage f203 +water_drop e798 +waterfall_chart ea00 +waves e176 +waving_hand e766 +wb_auto e42c +wb_cloudy e42d +wb_incandescent e42e +wb_iridescent e436 +wb_shade ea01 +wb_sunny e430 +wb_twighlight ea02 +wb_twilight e1c6 +wc e63d +web e051 +web_asset e069 +web_asset_off e4f7 +web_stories e595 +webhook eb92 +wechat ea81 +weekend e16b +west f1e6 +whatshot e80e +wheelchair_pickup f1ab +where_to_vote e177 +widgets e1bd +width_full f8f5 +width_normal f8f6 +width_wide f8f7 +wifi e63e +wifi_1_bar e4ca +wifi_2_bar e4d9 +wifi_calling ef77 +wifi_calling_3 f085 +wifi_channel eb6a +wifi_find eb31 +wifi_lock e1e1 +wifi_off e648 +wifi_password eb6b +wifi_protected_setup f0fc +wifi_tethering e1e2 +wifi_tethering_error ead9 +wifi_tethering_error_rounded f086 +wifi_tethering_off f087 +wind_power ec0c +window f088 +wine_bar f1e8 +woman e13e +woman_2 f8e7 +woo_commerce ea6d +wordpress ea9f +work e8f9 +work_history ec09 +work_off e942 +work_outline e943 +workspace_premium e7af +workspaces e1a0 +workspaces_filled ea0d +workspaces_outline ea0f +wrap_text e25b +wrong_location ef78 +wysiwyg f1c3 +yard f089 +youtube_searched_for e8fa +zoom_in e8ff +zoom_in_map eb2d +zoom_out e900 +zoom_out_map e56b`; +}; +Define = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], Define); + + +/***/ }), + +/***/ 19170: +/*!****************************************!*\ + !*** ./src/app/_helpers/dictionary.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Dictionary: () => (/* binding */ Dictionary) +/* harmony export */ }); +class Dictionary { + items = {}; + count = 0; + ContainsKey(key) { + return this.items.hasOwnProperty(key); + } + Count() { + return this.count; + } + Add(key, value) { + if (!this.items.hasOwnProperty(key)) { + this.count++; + } + this.items[key] = value; + } + Remove(key) { + var val = this.items[key]; + delete this.items[key]; + this.count--; + return val; + } + Item(key) { + return this.items[key]; + } + Keys() { + var keySet = []; + for (var prop in this.items) { + if (this.items.hasOwnProperty(prop)) { + keySet.push(prop); + } + } + return keySet; + } + Values() { + var values = []; + for (var prop in this.items) { + if (this.items.hasOwnProperty(prop)) { + values.push(this.items[prop]); + } + } + return values; + } +} + +/***/ }), + +/***/ 25266: +/*!*****************************************!*\ + !*** ./src/app/_helpers/endpointapi.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ EndPointApi: () => (/* binding */ EndPointApi) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../environments/environment */ 20553); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +let EndPointApi = class EndPointApi { + static url = null; + static getURL() { + if (!this.url) { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.apiEndpoint) { + this.url = _environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.apiEndpoint; + } else { + const origin = location.origin; + let path = location.origin.split('/')[2]; + const protocoll = location.origin.split(':')[0]; + const temp = path.split(':')[0]; + if (temp.length > 1 && _environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.apiPort) { + path = temp + ':' + _environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.apiPort; + } + this.url = protocoll + '://' + path; + } + } + return this.url; + } + static getRemoteURL(destIp) { + const protocoll = location.origin.split(':')[0]; + const path = destIp + ':' + _environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.apiPort; + return protocoll + '://' + path + '/api'; + } + static resolveUrl = input => { + if (!input) { + return ''; + } + try { + return new URL(input, window.location.origin).toString(); + } catch { + return input.startsWith('/') ? input : '/' + input; + } + }; +}; +EndPointApi = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Injectable)()], EndPointApi); + + +/***/ }), + +/***/ 7061: +/*!*****************************************!*\ + !*** ./src/app/_helpers/event-utils.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ EventUtils: () => (/* binding */ EventUtils) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let EventUtils = class EventUtils { + static getEventClientPosition(event) { + if ('clientX' in event && 'clientY' in event) { + return { + x: event.clientX, + y: event.clientY + }; + } else if ('touches' in event && event.touches.length > 0) { + return { + x: event.touches[0].clientX, + y: event.touches[0].clientY + }; + } else if ('changedTouches' in event && event.changedTouches.length > 0) { + return { + x: event.changedTouches[0].clientX, + y: event.changedTouches[0].clientY + }; + } + return null; + } +}; +EventUtils = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], EventUtils); + + +/***/ }), + +/***/ 57541: +/*!***************************************!*\ + !*** ./src/app/_helpers/intervals.ts ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Intervals: () => (/* binding */ Intervals) +/* harmony export */ }); +class Intervals { + intervals = []; + addInterval(delay, fnc, args, context) { + const interval = setInterval(() => fnc.call(context, args), delay); + this.intervals.push(interval); + } + clearIntervals() { + this.intervals.forEach(interval => { + clearInterval(interval); + }); + this.intervals = []; + } +} + +/***/ }), + +/***/ 81889: +/*!****************************************!*\ + !*** ./src/app/_helpers/json-utils.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ JsonUtils: () => (/* binding */ JsonUtils) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let JsonUtils = class JsonUtils { + static tryToParse(value, fallback = null) { + if (value === null || value === undefined) { + return fallback; + } + // Se ĆØ giĆ  un oggetto (incluso array), lo restituisce direttamente + if (typeof value === 'object') { + return value; + } + // Se ĆØ una stringa, prova a fare il parse + if (typeof value === 'string') { + try { + const parsed = JSON.parse(value); + if (typeof parsed === 'object' && parsed !== null) { + return parsed; + } + } catch (err) { + console.warn('tryToParse(): invalid JSON string', err); + } + } + return fallback; + } +}; +JsonUtils = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], JsonUtils); + + +/***/ }), + +/***/ 39291: +/*!***************************************!*\ + !*** ./src/app/_helpers/svg-utils.ts ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SvgUtils: () => (/* binding */ SvgUtils), +/* harmony export */ WidgetPropertyVariableTypePrefix: () => (/* binding */ WidgetPropertyVariableTypePrefix) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var SvgUtils_1; + + +let SvgUtils = SvgUtils_1 = class SvgUtils { + static exportStart = '//!export-start'; + static exportEnd = '//!export-end'; + static isSVG(filePath) { + const extension = filePath.split('.').pop()?.toLowerCase(); + return extension === 'svg'; + } + static getSvgSize(svgElement) { + const width = svgElement.getAttribute('width'); + const height = svgElement.getAttribute('height'); + if (width && height) { + return { + width: parseInt(width), + height: parseInt(height) + }; + } else { + const viewBox = svgElement.getAttribute('viewBox'); + if (viewBox) { + const viewBoxValues = viewBox.split(' ').map(Number); + const viewBoxWidth = viewBoxValues[2]; + const viewBoxHeight = viewBoxValues[3]; + return { + width: viewBoxWidth, + height: viewBoxHeight + }; + } + } + } + static processWidget(scriptContent, moduleId, idMap, variableDefined) { + let cleanContent = SvgUtils_1.removeComments(scriptContent); + let modifiedContent = SvgUtils_1.exportGlobalVariables(cleanContent, moduleId, variableDefined); + let modifiedScriptContent = SvgUtils_1.exportFunctionNames(modifiedContent.content, moduleId); + modifiedScriptContent = SvgUtils_1.replaceIdsInScript(modifiedScriptContent, idMap); + modifiedScriptContent = SvgUtils_1.addModuleDeclaration(modifiedScriptContent, moduleId); + return { + content: modifiedScriptContent, + vars: modifiedContent.vars + }; + } + static removeComments(scriptContent) { + // Remove multi-linea comment (/* ... */) + return scriptContent.replace(/\/\*[\s\S]*?\*\//g, ''); + } + static exportGlobalVariables(scriptContent, moduleId, variableDefined) { + const globalSectionRegex = new RegExp(`${SvgUtils_1.exportStart}([\\s\\S]*?)${SvgUtils_1.exportEnd}`, 'g'); + const match = globalSectionRegex.exec(scriptContent); + const renamedVariables = {}; + if (match) { + let globalSection = match[1]; + const globalVarRegex = /(?:var|let|const)\s+(\w+)/g; + let varMatch; + while ((varMatch = globalVarRegex.exec(globalSection)) !== null) { + const varName = varMatch[1]; + const varExist = variableDefined?.find(varDef => varDef.originalName === varName); + const newVarName = varExist ? varExist.name : varName; + renamedVariables[varName] = newVarName; + const varNameRegex = new RegExp(`\\b${varName}\\b`, 'g'); + globalSection = globalSection.replace(varNameRegex, newVarName); + globalSection += `\n${moduleId}.${newVarName} = ${newVarName};`; + } + scriptContent = scriptContent.replace(match[0], `${SvgUtils_1.exportStart}${globalSection}${SvgUtils_1.exportEnd}`); + } + let vars = []; + Object.entries(renamedVariables).forEach(([originalVar, newVar]) => { + const varNameRegex = new RegExp(`\\b${originalVar}\\b`, 'g'); + scriptContent = scriptContent.replace(varNameRegex, newVar); + const widgetVar = SvgUtils_1.toWidgetPropertyVariable(originalVar, newVar); + if (widgetVar) { + vars.push(widgetVar); + } + }); + return { + content: scriptContent, + vars: vars + }; + } + static exportFunctionNames(scriptContent, moduleId) { + // Regex to identify functions declaration + const functionDeclRegex = /function\s+(\w+)\s*\(/g; + // Regex to identify functions (arrow functions and function expressions) + const functionExprRegex = /(\w+)\s*=\s*(?:function|=>)\s*\(/g; + let match; + while ((match = functionDeclRegex.exec(scriptContent)) !== null) { + scriptContent += `\n${moduleId}.${match[1]} = ${match[1]};`; + } + while ((match = functionExprRegex.exec(scriptContent)) !== null) { + scriptContent += `\n${moduleId}.${match[1]} = ${match[1]};`; + } + // Regex to search calls of postValue function + const oldFuncName = 'postValue'; + const newFuncName = `${moduleId}.${oldFuncName}`; + const functionCallRegex = new RegExp(`(? traverseElement(child)); + } + traverseElement(svgElement); + return idMap; + } + static replaceIdsInScript(scriptContent, idMap) { + let updatedScriptContent = scriptContent; + Object.entries(idMap).forEach(([oldId, newId]) => { + const idRegex = new RegExp(`(['"\"])${oldId}\\1`, 'g'); + updatedScriptContent = updatedScriptContent.replace(idRegex, `$1${newId}$1`); + }); + return updatedScriptContent; + } + static addModuleDeclaration(scriptContent, moduleId) { + return `var ${moduleId} = window.${moduleId} || {};\n(function() {${scriptContent}\n})();\nwindow.${moduleId}=${moduleId}`; + } + static toWidgetPropertyVariable(originalVar, varName) { + const prefix = Object.entries(WidgetPropertyVariableTypePrefix).find(([_, value]) => varName.startsWith(value)); + if (prefix) { + return { + originalName: originalVar, + name: varName, + type: prefix[0] + }; + } + return null; + } + static initWidget(scriptContent, variableDefined) { + if (!variableDefined) { + return scriptContent; + } + // search global variable section //!export-start and //!export-end + const regexSection = new RegExp(`${SvgUtils_1.exportStart}([\\s\\S]*?)${SvgUtils_1.exportEnd}`, 'g'); + const match = regexSection.exec(scriptContent); + if (!match) { + return scriptContent; + } + let gSection = match[1]; + // replace global variable with init value + variableDefined.forEach(variable => { + if (!_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.isNullOrUndefined(variable.variableValue) && SvgUtils_1.validateVariable(variable)) { + const varRegex = new RegExp(`(let|var|const)\\s+${variable.name}\\s*=\\s*[^;]+;`); + if (variable.type === 'string' || variable.type === 'color') { + gSection = gSection.replace(varRegex, `$1 ${variable.name} = \`${variable.variableValue}\`;`); + } else if (variable.type === 'boolean') { + gSection = gSection.replace(varRegex, `$1 ${variable.name} = ${!!variable.variableValue};`); + } else { + gSection = gSection.replace(varRegex, `$1 ${variable.name} = ${variable.variableValue};`); + } + } + }); + // replace global variable section + return scriptContent.replace(match[1], gSection); + } + static resizeSvgNodes(svgElement, boxSize) { + if (boxSize && svgElement) { + for (let i = 0; i < svgElement.children?.length; i++) { + svgElement.children[i].setAttribute('height', boxSize.height.toString()); + svgElement.children[i].setAttribute('width', boxSize.width.toString()); + } + } + } + static validateVariable(variable) { + if (variable.type === 'number' && !_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.isNumeric(variable.variableValue)) { + return false; + } else if (variable.type === 'string' && !variable.variableValue) { + return false; + } else if (variable.type === 'color' && !variable.variableValue) { + return false; + } + return true; + } +}; +SvgUtils = SvgUtils_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Injectable)()], SvgUtils); + +var WidgetPropertyVariableTypePrefix; +(function (WidgetPropertyVariableTypePrefix) { + WidgetPropertyVariableTypePrefix["boolean"] = "_pb_"; + WidgetPropertyVariableTypePrefix["number"] = "_pn_"; + WidgetPropertyVariableTypePrefix["string"] = "_ps_"; + WidgetPropertyVariableTypePrefix["color"] = "_pc_"; +})(WidgetPropertyVariableTypePrefix || (WidgetPropertyVariableTypePrefix = {})); + +/***/ }), + +/***/ 91019: +/*!***********************************!*\ + !*** ./src/app/_helpers/utils.ts ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ EnumToArrayPipe: () => (/* binding */ EnumToArrayPipe), +/* harmony export */ EscapeHtmlPipe: () => (/* binding */ EscapeHtmlPipe), +/* harmony export */ Utils: () => (/* binding */ Utils) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ 36480); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var Utils_1; + + +let Utils = Utils_1 = class Utils { + static _seed = Date.now(); + static minDate = new Date(1970, 0, 1); + static maxDate = new Date(2100, 11, 31); + static defaultColor = ['#FFFFFF', '#000000', '#EEECE1', '#1F497D', '#4F81BD', '#C0504D', '#9BBB59', '#8064A2', '#4BACC6', '#F79646', '#C00000', '#FF0000', '#FFC000', '#FFD04A', '#FFFF00', '#92D050', '#0AC97D', '#00B050', '#00B0F0', '#4484EF', '#3358C0', '#002060', '#7030A0', '#D8D8D8', '#BFBFBF', '#A5A5A5', '#7F7F7F', '#595959', '#3F3F3F', '#262626']; + static lineColor = ['#4484ef', '#ef0909', '#00b050', '#ffd04a', '#7030a0', '#a5a5a5', '#c0504d', '#000000']; + static svgTagToType = ['rect', 'line', 'path', 'circle', 'ellipse', 'text']; + static walkTree(elem, cbFn) { + if (elem && elem.nodeType == 1) { + cbFn(elem); + var i = elem.childNodes.length; + while (i--) { + this.walkTree(elem.childNodes.item(i), cbFn); + } + } + } + static searchTreeStartWith(element, matchingStart) { + if (element.id.startsWith(matchingStart)) { + return element; + } else if (element.children != null) { + var i; + var result = null; + for (i = 0; result == null && i < element.children.length; i++) { + result = Utils_1.searchTreeStartWith(element.children[i], matchingStart); + } + return result; + } + return null; + } + static childrenStartWith(element, matchingStart) { + let result = []; + for (let i = 0; i < element.children?.length; i++) { + if (element.children[i].id.startsWith(matchingStart)) { + result.push(element.children[i]); + } + } + return result; + } + static searchTreeTagName(element, tagMatching) { + if (element.tagName === tagMatching) { + return element; + } + if (element.children != null) { + var i; + var result = null; + for (i = 0; result == null && i < element.children.length; i++) { + result = Utils_1.searchTreeTagName(element.children[i], tagMatching); + } + return result; + } + return null; + } + static findElementByIdRecursive(root, id) { + if (!root) { + return null; + } + if (root.id === id) { + return root; + } + for (let i = 0; i < root.children.length; i++) { + const child = root.children[i]; + const foundElement = this.findElementByIdRecursive(child, id); + if (foundElement) { + return foundElement; + } + } + return null; + } + static searchValuesByAttribute(jsonData, attributeName) { + const result = []; + function search(jsonData) { + if (Array.isArray(jsonData)) { + for (const item of jsonData) { + search(item); + } + } else if (typeof jsonData === 'object' && jsonData !== null) { + if (jsonData.hasOwnProperty(attributeName)) { + result.push(jsonData[attributeName]); + } + for (const key in jsonData) { + search(jsonData[key]); + } + } + } + search(jsonData); + return result; + } + static changeAttributeValue(jsonData, attributeName, srcValue, destValue) { + function change(jsonData) { + if (Array.isArray(jsonData)) { + for (const item of jsonData) { + change(item); + } + } else if (typeof jsonData === 'object' && jsonData !== null) { + if (jsonData.hasOwnProperty(attributeName) && jsonData[attributeName] === srcValue) { + jsonData[attributeName] = destValue; + } + for (const key in jsonData) { + change(jsonData[key]); + } + } + } + change(jsonData); + } + static replaceStringInObject(obj, searchKey, replaceKey) { + let jsonString = JSON.stringify(obj); + const regex = new RegExp(searchKey, 'g'); + jsonString = jsonString.replace(regex, replaceKey); + const modifiedObject = JSON.parse(jsonString); + return modifiedObject; + } + static getInTreeIdAndType(element) { + let type = element.getAttribute('type'); + if (!type && Utils_1.svgTagToType.includes(element.tagName.toLowerCase())) { + type = 'svg-ext-shapes-' + element.tagName.toLowerCase(); + } + let id = element.getAttribute('id'); + let result = []; + if (id && type) { + result = [{ + id: id, + type: type + }]; + } + for (var i = 0; i < element.children.length; i++) { + const idsAndTypes = Utils_1.getInTreeIdAndType(element.children[i]); + result = [...result, ...idsAndTypes]; + } + return result; + } + static cleanObject(object) { + const cleanObject = {}; + for (const key in object) { + if (object[key] != null) { + cleanObject[key] = object[key]; + } + } + return cleanObject; + } + static isNullOrUndefined(ele) { + return ele === null || ele === undefined ? true : false; + } + // returns keys of enum + static enumKeys(p) { + const keys = Object.keys(p); + return keys; + } + // returns values of enum + static enumValues(p) { + const keys = Object.keys(p); + return keys.map(el => Object(p)[el]); + } + static getGUID(prefix = '') { + var uuid = '', + i, + random; + for (i = 0; i < 16; i++) { + random = Math.random() * 16 | 0; + if (i == 8) { + uuid += '-'; + } + uuid += (i == 12 ? 4 : i == 16 ? random & 3 | 8 : random).toString(16); + } + return prefix + uuid; + } + static getShortGUID(prefix = '', splitter = '-') { + var uuid = '', + i, + random; + for (i = 0; i < 12; i++) { + random = Math.random() * 16 | 0; + if (i == 8) { + uuid += splitter; + } + uuid += (i == 4 ? 4 : i == 6 ? random & 3 | 8 : random).toString(12); + } + return prefix + uuid; + } + static getNextName(prefix, inuse) { + let index = 1; + let result = prefix + index; + while (inuse.indexOf(result) >= 0) { + index++; + result = prefix + index; + } + return result; + } + static isObject(value) { + return typeof value == 'object' && value !== null; + } + static getType(value) { + return typeof value; + } + static getTextHeight(font) { + // re-use canvas object for better performance + var canvas = document.createElement('canvas'); + var context = canvas.getContext('2d'); + context.font = font; + var metrics = context.measureText('M'); + return metrics.width; + } + static getDomTextHeight(size, font) { + let text = document.createElement('span'); + document.body.appendChild(text); + text.style.font = font; + text.style.fontSize = size + 'px'; + text.style.height = 'auto'; + text.style.width = 'auto'; + text.style.position = 'absolute'; + text.style.whiteSpace = 'no-wrap'; + text.innerHTML = 'M'; + let height = Math.ceil(text.clientHeight); + document.body.removeChild(text); + return height; + } + static getEnumKey(etype, ekey) { + return Object.keys(etype).find(key => etype[key] === ekey); + } + static isJson(item) { + try { + let obj = JSON.parse(item); + if (obj && Object.keys(obj).length) { + return true; + } + } catch (e) {} + return false; + } + static isNumeric(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + } + static Boolify(arg) { + var BoolArray = [true, false, 'true', 'false', 1, 0]; + if (BoolArray.indexOf(arg) === -1) { + return null; + } else { + return arg == true || arg == 'true' || arg == 1 ? true : false; + } + } + /** + * check boolean and convert to number + * @param value + */ + static toNumber(value) { + const b = Utils_1.Boolify(value); + if (!Utils_1.isNullOrUndefined(b)) { + return Number(b); + } + return value; + } + /** + * check to convert to float or to number + * @param value + */ + static toFloatOrNumber(value) { + let result = parseFloat(value); + if (Utils_1.isNullOrUndefined(result)) { + // maybe boolean + result = Number(value); + } else { + result = parseFloat(result.toFixed(5)); + } + return result; + } + static formatValue(value, format) { + try { + if (Utils_1.isNumeric(value)) { + return numeral(value).format(format); + } + } catch (e) { + console.error(e); + } + return value; + } + static arrayToObject = (array, keyField) => { + array.reduce((obj, item) => { + obj[item[keyField]] = item; + return obj; + }, {}); + }; + static rand(min, max) { + min = min || 0; + max = max || 0; + this._seed = (this._seed * 9301 + 49297) % 233280; + return Math.round(min + this._seed / 233280 * (max - min)); + } + static randNumbers(count, min, max) { + let result = []; + for (let i = 0; i < count; ++i) { + result.push(this.rand(min, max)); + } + return result; + } + static formatDate(date, format, utc) { + var MMMM = ['\x00', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + var MMM = ['\x01', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + var dddd = ['\x02', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + var ddd = ['\x03', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; + let ii = (i, len) => { + var s = i + ''; + len = len || 2; + while (s.length < len) { + s = '0' + s; + } + return s; + }; + var y = utc ? date.getUTCFullYear() : date.getFullYear(); + format = format.replace(/(^|[^\\])yyyy+/g, '$1' + y); + format = format.replace(/(^|[^\\])yy/g, '$1' + y.toString().substr(2, 2)); + format = format.replace(/(^|[^\\])y/g, '$1' + y); + var M = (utc ? date.getUTCMonth() : date.getMonth()) + 1; + format = format.replace(/(^|[^\\])MMMM+/g, '$1' + MMMM[0]); + format = format.replace(/(^|[^\\])MMM/g, '$1' + MMM[0]); + format = format.replace(/(^|[^\\])MM/g, '$1' + ii(M)); + format = format.replace(/(^|[^\\])M/g, '$1' + M); + var d = utc ? date.getUTCDate() : date.getDate(); + format = format.replace(/(^|[^\\])dddd+/g, '$1' + dddd[0]); + format = format.replace(/(^|[^\\])ddd/g, '$1' + ddd[0]); + format = format.replace(/(^|[^\\])dd/g, '$1' + ii(d)); + format = format.replace(/(^|[^\\])d/g, '$1' + d); + var H = utc ? date.getUTCHours() : date.getHours(); + format = format.replace(/(^|[^\\])HH+/g, '$1' + ii(H)); + format = format.replace(/(^|[^\\])H/g, '$1' + H); + var h = H > 12 ? H - 12 : H == 0 ? 12 : H; + format = format.replace(/(^|[^\\])hh+/g, '$1' + ii(h)); + format = format.replace(/(^|[^\\])h/g, '$1' + h); + var m = utc ? date.getUTCMinutes() : date.getMinutes(); + format = format.replace(/(^|[^\\])mm+/g, '$1' + ii(m)); + format = format.replace(/(^|[^\\])m/g, '$1' + m); + var s = utc ? date.getUTCSeconds() : date.getSeconds(); + format = format.replace(/(^|[^\\])ss+/g, '$1' + ii(s)); + format = format.replace(/(^|[^\\])s/g, '$1' + s); + var f = utc ? date.getUTCMilliseconds() : date.getMilliseconds(); + format = format.replace(/(^|[^\\])fff+/g, '$1' + ii(f, 3)); + f = Math.round(f / 10); + format = format.replace(/(^|[^\\])ff/g, '$1' + ii(f)); + f = Math.round(f / 10); + format = format.replace(/(^|[^\\])f/g, '$1' + f); + var T = H < 12 ? 'AM' : 'PM'; + format = format.replace(/(^|[^\\])TT+/g, '$1' + T); + format = format.replace(/(^|[^\\])T/g, '$1' + T.charAt(0)); + var t = T.toLowerCase(); + format = format.replace(/(^|[^\\])tt+/g, '$1' + t); + format = format.replace(/(^|[^\\])t/g, '$1' + t.charAt(0)); + var tz = -date.getTimezoneOffset(); + var K = utc || !tz ? 'Z' : tz > 0 ? '+' : '-'; + if (!utc) { + tz = Math.abs(tz); + var tzHrs = Math.floor(tz / 60); + var tzMin = tz % 60; + K += ii(tzHrs) + ':' + ii(tzMin); + } + format = format.replace(/(^|[^\\])K/g, '$1' + K); + var day = (utc ? date.getUTCDay() : date.getDay()) + 1; + format = format.replace(new RegExp(dddd[0], 'g'), dddd[day]); + format = format.replace(new RegExp(ddd[0], 'g'), ddd[day]); + format = format.replace(new RegExp(MMMM[0], 'g'), MMMM[M]); + format = format.replace(new RegExp(MMM[0], 'g'), MMM[M]); + format = format.replace(/\\(.)/g, '$1'); + return format; + } + static findBitPosition(n) { + let result = []; + for (let i = 0; i < 32; i++) { + if (n & 0x01 << i) { + result.push(i); + } + } + return result; + } + /** + * set object values to target + * @param target + * @param sources + * @returns + */ + static assign = (target, ...sources) => { + sources.forEach(source => Object.keys(source).forEach(key => { + target[key] = source[key]; + })); + return target; + }; + static clone = obj => JSON.parse(JSON.stringify(obj)); + static convertArrayToObject = (array, value) => array.reduce((accumulator, key) => ({ + ...accumulator, + [key]: value + }), {}); + static resizeView = selector => { + document.querySelectorAll(selector).forEach(scaled => { + let parent = scaled.parentNode, + ratioWidth = parent.offsetWidth / scaled.offsetWidth, + ratioHeight = parent.offsetHeight / scaled.offsetHeight; + scaled.style.transform = 'scale(' + Math.min(ratioWidth, ratioHeight) + ')'; + scaled.style.transformOrigin = 'top left'; + }); + }; + static resizeViewExt = (selector, parentId, resize) => { + const parentElement = document.getElementById(parentId); + if (!parentElement) { + console.error(`resizeViewExt -> Parent element with ID '${parentId}' not found.`); + return; + } + const parentRect = parentElement.getBoundingClientRect(); + const resizeType = resize ?? 'none'; + parentElement.querySelectorAll(selector).forEach(scaled => { + const ratioWidth = parentRect?.width / scaled.offsetWidth; + const ratioHeight = parentRect?.height / scaled.offsetHeight; + if (resizeType === 'contain') { + scaled.style.transform = 'scale(' + Math.min(ratioWidth, ratioHeight) + ')'; + } else if (resizeType === 'stretch') { + scaled.style.transform = 'scale(' + ratioWidth + ', ' + ratioHeight + ')'; + } else if (resizeType === 'none') { + scaled.style.transform = 'scale(1)'; + } + scaled.style.transformOrigin = 'top left'; + }); + }; + static resizeViewRev = (original, destination, resize) => { + function transform(origRect, destRect, resizeType) { + const ratioWidth = destRect?.width / origRect.clientWidth; + const ratioHeight = destRect?.height / origRect.clientHeight; + if (resizeType === 'contain') { + origRect.style.transform = 'scale(' + Math.min(ratioWidth, ratioHeight) + ')'; + origRect.parentElement.style.margin = 'unset'; + } else if (resizeType === 'stretch') { + origRect.style.transform = 'scale(' + ratioWidth + ', ' + ratioHeight + ')'; + origRect.parentElement.style.margin = 'unset'; + } else if (resizeType === 'none') { + origRect.style.transform = 'scale(1)'; + } + origRect.style.top = 'unset'; + origRect.style.left = 'unset'; + origRect.style.transformOrigin = 'top left'; + } + ; + const parentElement = typeof destination === 'string' ? document.getElementById(destination) : destination; + if (!parentElement) { + console.error(`resizeViewExt -> Parent element with ID '${destination}' not found.`); + return; + } + const parentRect = parentElement.getBoundingClientRect(); + if (typeof original === 'string') { + parentElement.querySelectorAll(original).forEach(scaled => { + transform(scaled, parentRect, resize ?? 'none'); + }); + } else if (!!original) { + transform(original, parentRect, resize ?? 'none'); + } + }; + /** Merge of array of object, the next overwrite the last */ + static mergeDeep(...objArray) { + const result = {}; + objArray.forEach(obj => { + if (obj) { + Object.keys(obj).forEach(key => { + if (obj[key] && typeof obj[key] === 'object' && !Array.isArray(obj[key])) { + result[key] = Utils_1.mergeDeep(result[key], obj[key]); + } else if (Array.isArray(obj[key])) { + if (!Array.isArray(result[key])) { + result[key] = []; + } + result[key] = result[key].concat(obj[key]); + } else { + result[key] = obj[key]; + } + }); + } + }); + return result; + } + static mergeArray(arrArray, key) { + const mergedMap = new Map(); + if (arrArray) { + for (const arr of arrArray) { + if (arr) { + for (const obj of arr) { + const keyValue = obj[key]; + if (keyValue) { + // Se la chiave esiste giĆ , sovrascrivi l'oggetto esistente + mergedMap.set(keyValue, { + ...mergedMap.get(keyValue), + ...obj + }); + } else { + console.warn(`L'oggetto ${JSON.stringify(obj)} non ha la chiave ${key}`); + } + } + } + } + } + // Converte la mappa in un array + return Array.from(mergedMap.values()); + } + /** + * Merges two arrays of objects into one, ensuring uniqueness based on a specified object key. + * @template T - The type of objects in the arrays. + * @param {T[] | null | undefined} base - The base array to start from. Can be null or undefined. + * @param {T[] | null | undefined} toAdd - The array of elements to add, if they are not already present. + * @param {keyof T} key - The object key used to determine uniqueness. + * @returns {T[]} A new array containing all unique elements from both arrays based on the specified key. + * @example + * const base = [{ id: 1, name: 'A' }]; + * const toAdd = [{ id: 2, name: 'B' }, { id: 1, name: 'A' }]; + * const result = Utils.mergeUniqueBy(base, toAdd, 'id'); + * // result: [{ id: 1, name: 'A' }, { id: 2, name: 'B' }] + */ + static mergeUniqueBy(base, toAdd, key) { + if ((!base || base.length === 0) && (!toAdd || toAdd.length === 0)) { + return null; + } + const result = base ? [...base] : []; + const existingKeys = new Set(result.map(item => item[key])); + let added = false; + if (toAdd) { + toAdd.forEach(item => { + if (!existingKeys.has(item[key])) { + result.push(item); + existingKeys.add(item[key]); + added = true; + } + }); + } + if (!added) { + return base ?? null; + } + return result; + } + static copyToClipboard(text) { + // Create a temporary textarea element + const textarea = document.createElement('textarea'); + textarea.value = text; + // Make the textarea hidden + textarea.style.position = 'fixed'; + textarea.style.opacity = '0'; + // Append the textarea to the document + document.body.appendChild(textarea); + // Select and copy the text from the textarea + textarea.select(); + document.execCommand('copy'); + // Remove the textarea from the document + document.body.removeChild(textarea); + } + static millisecondsToTime(milliseconds) { + const hours = Math.floor(milliseconds / 3600000); + milliseconds %= 3600000; + const minutes = Math.floor(milliseconds / 60000); + milliseconds %= 60000; + const seconds = Math.floor(milliseconds / 1000); // 1 secondo = 1000 millisecondi + milliseconds %= 1000; + return { + hours, + minutes, + seconds, + milliseconds + }; + } + static timeToString(time, format) { + function formatNumberWithLeadingZeros(number, length) { + return number.toString().padStart(length, '0'); + } + let result = `${formatNumberWithLeadingZeros(time.hours, 2)}:${formatNumberWithLeadingZeros(time.minutes, 2)}`; + if (format) { + result += `:${formatNumberWithLeadingZeros(time.seconds, 2)}`; + if (format >= 1000) { + result += `.${formatNumberWithLeadingZeros(time.milliseconds, 3)}`; + } + } + return result; + } + static millisecondsToTimeString(milliseconds, format) { + return Utils_1.timeToString(Utils_1.millisecondsToTime(milliseconds), format); + } + static millisecondsToDateString(milliseconds, format) { + const dateObject = new Date(milliseconds); + const year = dateObject.getFullYear(); + const month = (dateObject.getMonth() + 1).toString().padStart(2, '0'); + const day = dateObject.getDate().toString().padStart(2, '0'); + const hours = dateObject.getHours().toString().padStart(2, '0'); + const minutes = dateObject.getMinutes().toString().padStart(2, '0'); + const seconds = dateObject.getSeconds().toString().padStart(2, '0'); + const milli = dateObject.getMilliseconds().toString().padStart(3, '0'); + let dateString = `${year}-${month}-${day}`; + if (format > 0) { + dateString += `T${hours}:${minutes}`; + if (format > 1) { + dateString += `:${seconds}`; + if (format > 100) { + dateString += `.${milli}`; + } + } + } + return dateString; + } + static getTimeDifferenceInSeconds(timestamp) { + const currentTimestamp = Date.now(); + const differenceInMilliseconds = currentTimestamp - timestamp; + return Math.floor(differenceInMilliseconds / 1000); + } + static isValidUrl(url) { + try { + // Check if it's an absolute URL + new URL(url); + return true; + } catch (error) { + // Check if it's a relative URL (starts with / or is a valid relative path) + if (url.startsWith('/') || !url.includes('://') && url.length > 0) { + return true; + } + return false; + } + } +}; +Utils = Utils_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], Utils); + +let EnumToArrayPipe = class EnumToArrayPipe { + transform(value) { + let result = []; + var keys = Object.keys(value); + var values = Object.values(value); + for (var i = 0; i < keys.length; i++) { + result.push({ + key: keys[i], + value: values[i] + }); + } + return result; + //or if you want to order the result: + //return result.sort((a, b) => a.value < b.value ? -1 : 1); + } +}; + +EnumToArrayPipe = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe)({ + name: 'enumToArray' +})], EnumToArrayPipe); + +let EscapeHtmlPipe = class EscapeHtmlPipe { + sanitizer; + constructor(sanitizer) { + this.sanitizer = sanitizer; + } + transform(content) { + return this.sanitizer.bypassSecurityTrustHtml(content); + } + static ctorParameters = () => [{ + type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.DomSanitizer + }]; +}; +EscapeHtmlPipe = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe)({ + name: 'keepHtml', + pure: false +}), __metadata("design:paramtypes", [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__.DomSanitizer])], EscapeHtmlPipe); + + +/***/ }), + +/***/ 12780: +/*!***************************************!*\ + !*** ./src/app/_helpers/windowref.ts ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ WindowRef: () => (/* binding */ WindowRef) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +function _window() { + // return the global native browser window object + return window; +} +let WindowRef = class WindowRef { + get nativeWindow() { + return _window(); + } +}; +WindowRef = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], WindowRef); + + +/***/ }), + +/***/ 38238: +/*!**********************************!*\ + !*** ./src/app/_models/alarm.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Alarm: () => (/* binding */ Alarm), +/* harmony export */ AlarmAckMode: () => (/* binding */ AlarmAckMode), +/* harmony export */ AlarmAction: () => (/* binding */ AlarmAction), +/* harmony export */ AlarmActionsType: () => (/* binding */ AlarmActionsType), +/* harmony export */ AlarmColumns: () => (/* binding */ AlarmColumns), +/* harmony export */ AlarmColumnsType: () => (/* binding */ AlarmColumnsType), +/* harmony export */ AlarmEvent: () => (/* binding */ AlarmEvent), +/* harmony export */ AlarmHistoryColumns: () => (/* binding */ AlarmHistoryColumns), +/* harmony export */ AlarmHistoryColumnsType: () => (/* binding */ AlarmHistoryColumnsType), +/* harmony export */ AlarmPriorityType: () => (/* binding */ AlarmPriorityType), +/* harmony export */ AlarmProperty: () => (/* binding */ AlarmProperty), +/* harmony export */ AlarmPropertyType: () => (/* binding */ AlarmPropertyType), +/* harmony export */ AlarmQuery: () => (/* binding */ AlarmQuery), +/* harmony export */ AlarmStatus: () => (/* binding */ AlarmStatus), +/* harmony export */ AlarmStatusType: () => (/* binding */ AlarmStatusType), +/* harmony export */ AlarmSubActions: () => (/* binding */ AlarmSubActions), +/* harmony export */ AlarmSubProperty: () => (/* binding */ AlarmSubProperty), +/* harmony export */ AlarmSubRange: () => (/* binding */ AlarmSubRange), +/* harmony export */ AlarmsType: () => (/* binding */ AlarmsType) +/* harmony export */ }); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/utils */ 91019); + +class Alarm { + name; + property; + highhigh; + high; + low; + info; + actions; + value; +} +var AlarmsType; +(function (AlarmsType) { + AlarmsType["HIGH_HIGH"] = "highhigh"; + AlarmsType["HIGH"] = "high"; + AlarmsType["LOW"] = "low"; + AlarmsType["INFO"] = "info"; +})(AlarmsType || (AlarmsType = {})); +class AlarmProperty { + variableId; + permission; + permissionRoles; +} +class AlarmStatus { + highhigh; + high; + low; + info; + actions; +} +class AlarmSubRange { + checkdelay; + min; + max; + timedelay; + static isValid(asr) { + if (asr && asr.checkdelay && _helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.isNumeric(asr.min) && _helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.isNumeric(asr.max)) { + return true; + } + return false; + } +} +class AlarmSubProperty extends AlarmSubRange { + enabled; + text; + group; + ackmode; + bkcolor; + color; +} +class AlarmSubActions { + enabled; + values = []; + static isValid(act) { + if (act.values.length) { + for (let i = 0; i < act.values.length; i++) { + if (AlarmSubRange.isValid(act.values[i])) { + return true; + } + } + } + return false; + } +} +class AlarmAction extends AlarmSubRange { + type; + actparam; + variableId; + actoptions = {}; +} +var AlarmAckMode; +(function (AlarmAckMode) { + AlarmAckMode["float"] = "alarm.ack-float"; + AlarmAckMode["ackactive"] = "alarm.ack-active"; + AlarmAckMode["ackpassive"] = "alarm.ack-passive"; +})(AlarmAckMode || (AlarmAckMode = {})); +class AlarmEvent { + ontime; + offtime; + acktime; + name; + type; + text; + group; + status; + toack; +} +class AlarmQuery { + start; + end; +} +var AlarmColumnsType; +(function (AlarmColumnsType) { + AlarmColumnsType["ontime"] = "ontime"; + AlarmColumnsType["text"] = "text"; + AlarmColumnsType["type"] = "type"; + AlarmColumnsType["group"] = "group"; + AlarmColumnsType["status"] = "status"; + AlarmColumnsType["ack"] = "ack"; + AlarmColumnsType["history"] = "history"; +})(AlarmColumnsType || (AlarmColumnsType = {})); +const AlarmColumns = Object.values(AlarmColumnsType); +var AlarmHistoryColumnsType; +(function (AlarmHistoryColumnsType) { + AlarmHistoryColumnsType["ontime"] = "ontime"; + AlarmHistoryColumnsType["text"] = "text"; + AlarmHistoryColumnsType["type"] = "type"; + AlarmHistoryColumnsType["group"] = "group"; + AlarmHistoryColumnsType["status"] = "status"; + AlarmHistoryColumnsType["offtime"] = "offtime"; + AlarmHistoryColumnsType["acktime"] = "acktime"; + AlarmHistoryColumnsType["userack"] = "userack"; + AlarmHistoryColumnsType["history"] = "history"; +})(AlarmHistoryColumnsType || (AlarmHistoryColumnsType = {})); +const AlarmHistoryColumns = Object.values(AlarmHistoryColumnsType); +var AlarmActionsType; +(function (AlarmActionsType) { + AlarmActionsType["popup"] = "alarm.action-popup"; + AlarmActionsType["setView"] = "alarm.action-onsetview"; + AlarmActionsType["setValue"] = "alarm.action-onsetvalue"; + AlarmActionsType["runScript"] = "alarm.action-onRunScript"; + AlarmActionsType["toastMessage"] = "alarm.action-toastMessage"; + // sendMsg = 'alarm.action-onsendmsg', +})(AlarmActionsType || (AlarmActionsType = {})); +var AlarmPropertyType; +(function (AlarmPropertyType) { + AlarmPropertyType["ontime"] = "ontime"; + AlarmPropertyType["text"] = "text"; + AlarmPropertyType["type"] = "type"; + AlarmPropertyType["group"] = "group"; + AlarmPropertyType["status"] = "status"; + AlarmPropertyType["offtime"] = "offtime"; + AlarmPropertyType["acktime"] = "acktime"; + AlarmPropertyType["ackuser"] = "userack"; +})(AlarmPropertyType || (AlarmPropertyType = {})); +var AlarmStatusType; +(function (AlarmStatusType) { + AlarmStatusType["N"] = "alarm.status-active"; + AlarmStatusType["NF"] = "alarm.status-passive"; + AlarmStatusType["NA"] = "alarm.status-active-ack"; +})(AlarmStatusType || (AlarmStatusType = {})); +var AlarmPriorityType; +(function (AlarmPriorityType) { + AlarmPriorityType["highhigh"] = "alarm.property-highhigh"; + AlarmPriorityType["high"] = "alarm.property-high"; + AlarmPriorityType["low"] = "alarm.property-low"; + AlarmPriorityType["info"] = "alarm.property-info"; +})(AlarmPriorityType || (AlarmPriorityType = {})); + +/***/ }), + +/***/ 38127: +/*!**********************************!*\ + !*** ./src/app/_models/chart.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Chart: () => (/* binding */ Chart), +/* harmony export */ ChartLegendMode: () => (/* binding */ ChartLegendMode), +/* harmony export */ ChartLine: () => (/* binding */ ChartLine), +/* harmony export */ ChartRangeConverter: () => (/* binding */ ChartRangeConverter), +/* harmony export */ ChartRangeType: () => (/* binding */ ChartRangeType), +/* harmony export */ ChartViewType: () => (/* binding */ ChartViewType) +/* harmony export */ }); +class Chart { + id; + name; + lines; +} +class ChartLine { + device; + id; + name; + label; + color; + fill; + yaxis; + lineInterpolation; + lineWidth; + spanGaps = true; + zones; +} +var ChartViewType; +(function (ChartViewType) { + ChartViewType["realtime1"] = "realtime1"; + ChartViewType["history"] = "history"; + ChartViewType["custom"] = "custom"; +})(ChartViewType || (ChartViewType = {})); +var ChartRangeType; +(function (ChartRangeType) { + ChartRangeType["last8h"] = "chart.rangetype-last8h"; + ChartRangeType["last1d"] = "chart.rangetype-last1d"; + ChartRangeType["last3d"] = "chart.rangetype-last3d"; + ChartRangeType["last1w"] = "chart.rangetype-last1w"; +})(ChartRangeType || (ChartRangeType = {})); +var ChartLegendMode; +(function (ChartLegendMode) { + ChartLegendMode["always"] = "chart.legend-always"; + ChartLegendMode["follow"] = "chart.legend-follow"; + ChartLegendMode["bottom"] = "chart.legend-bottom"; + // onmouseover = 'chart.legend-onmouseover', + ChartLegendMode["never"] = "chart.legend-never"; +})(ChartLegendMode || (ChartLegendMode = {})); +class ChartRangeConverter { + static ChartRangeToHours(crt) { + let types = Object.keys(ChartRangeType); + if (crt === types[0]) { + // ChartRangeType.last8h) { + return 8; + } else if (crt === types[1]) { + // ChartRangeType.last1d) { + return 24; + } else if (crt === types[2]) { + // ChartRangeType.last3d) { + return 24 * 3; + } else if (crt === types[3]) { + // ChartRangeType.last1w) { + return 24 * 7; + } + return 0; + } +} + +/***/ }), + +/***/ 7579: +/*!******************************************!*\ + !*** ./src/app/_models/client-access.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ClientAccess: () => (/* binding */ ClientAccess) +/* harmony export */ }); +class ClientAccess { + scriptSystemFunctions = []; +} + +/***/ }), + +/***/ 15625: +/*!***********************************!*\ + !*** ./src/app/_models/device.ts ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AdsClientTagType: () => (/* binding */ AdsClientTagType), +/* harmony export */ BACnetObjectType: () => (/* binding */ BACnetObjectType), +/* harmony export */ DEVICE_PREFIX: () => (/* binding */ DEVICE_PREFIX), +/* harmony export */ Device: () => (/* binding */ Device), +/* harmony export */ DeviceConnectionStatusType: () => (/* binding */ DeviceConnectionStatusType), +/* harmony export */ DeviceNetProperty: () => (/* binding */ DeviceNetProperty), +/* harmony export */ DeviceSecurity: () => (/* binding */ DeviceSecurity), +/* harmony export */ DeviceType: () => (/* binding */ DeviceType), +/* harmony export */ DeviceViewModeType: () => (/* binding */ DeviceViewModeType), +/* harmony export */ DeviceWebApiProperty: () => (/* binding */ DeviceWebApiProperty), +/* harmony export */ DevicesUtils: () => (/* binding */ DevicesUtils), +/* harmony export */ FuxaServer: () => (/* binding */ FuxaServer), +/* harmony export */ GpioDirectionType: () => (/* binding */ GpioDirectionType), +/* harmony export */ GpioEdgeType: () => (/* binding */ GpioEdgeType), +/* harmony export */ MelsecTagType: () => (/* binding */ MelsecTagType), +/* harmony export */ MessageSecurityMode: () => (/* binding */ MessageSecurityMode), +/* harmony export */ ModbusOptionType: () => (/* binding */ ModbusOptionType), +/* harmony export */ ModbusReuseModeType: () => (/* binding */ ModbusReuseModeType), +/* harmony export */ ModbusTagType: () => (/* binding */ ModbusTagType), +/* harmony export */ OpcUaTagType: () => (/* binding */ OpcUaTagType), +/* harmony export */ PlaceholderDevice: () => (/* binding */ PlaceholderDevice), +/* harmony export */ SecurityPolicy: () => (/* binding */ SecurityPolicy), +/* harmony export */ ServerTagType: () => (/* binding */ ServerTagType), +/* harmony export */ TAG_PREFIX: () => (/* binding */ TAG_PREFIX), +/* harmony export */ Tag: () => (/* binding */ Tag), +/* harmony export */ TagDaq: () => (/* binding */ TagDaq), +/* harmony export */ TagDeadbandModeType: () => (/* binding */ TagDeadbandModeType), +/* harmony export */ TagScale: () => (/* binding */ TagScale), +/* harmony export */ TagScaleModeType: () => (/* binding */ TagScaleModeType), +/* harmony export */ TagSystemType: () => (/* binding */ TagSystemType), +/* harmony export */ TagType: () => (/* binding */ TagType) +/* harmony export */ }); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/utils */ 91019); + +const FuxaServer = { + id: '0', + name: 'FUXA' +}; +const PlaceholderDevice = { + id: '@', + name: 'Placeholder', + tags: [{ + id: '@', + name: '@', + device: '@' + }] +}; +class Device { + /** Device id, GUID */ + id; + /** Device name */ + name; + /** Enabled */ + enabled; + /** Connection property, DeviceNetProperty */ + property; + /** Device type, OPC, Modbus, S7, etc. */ + type; + /** Polling interval, check changed value after ask value, by OPCUA there is a monitor */ + polling; + /** Tags list of Tag */ + tags; + constructor(_id) { + this.id = _id; + } + static descriptor = { + id: 'Device id, GUID', + name: 'Device name', + enabled: 'Enabled', + type: 'Device Type: FuxaServer | SiemensS7 | OPCUA | BACnet | ModbusRTU | ModbusTCP | WebAPI | MQTTclient | internal | EthernetIP | ADSclient | Gpio | WebCam | MELSEC', + polling: 'Polling interval in millisec., check changed value after ask value, by OPCUA there is a monitor', + property: 'Connection property depending of type', + tags: 'Tags list of Tag' + }; + static isWebApiProperty(device) { + return device.type === DeviceType.WebAPI && device.property.getTags; + } +} +class Tag { + /** Tag id, GUID */ + id; + /** Tag name, is like the id */ + name; + /** Tag label, used by BACnet and WebAPI */ + label; + /** not used yet */ + value; + /** Tag type, Bool, Byte, etc. */ + type; + /** Address of Tag, combine with address by Modbus, some property for WebAPI */ + memaddress; + /** Tag address, for OPCUA like the id , for GPIO the io number */ + address; + /** Value divisor, used by Modbus */ + divisor; + /** not used yet */ + access; + /** Options, used for WebAPI and MQTT */ + options; + /** Digits format of value, number of digits to appear after the decimal point */ + format; + /** Daq settings */ + daq; + /** Init value */ + init; + /** Value scaling properties */ + scale; + /** Scale function to use when reading tag */ + scaleReadFunction; + /** Optional JSON encoded params and values for above script */ + scaleReadParams; + /** Scale function to use when writing tag */ + scaleWriteFunction; + /** Optional JSON encoded params and values for above script */ + scaleWriteParams; + /** System Tag used in FUXA Server, example device status connection */ + sysType; + /** Description */ + description; + /** Deadband to set changed value */ + deadband; + /** + * Optional GPIO direction,edge + */ + direction; + edge; + constructor(_id) { + this.id = _id; + this.daq = new TagDaq(false, false, 60, false); + } + static descriptor = { + id: 'Tag id, GUID', + name: 'Tag name, is like the id', + label: 'Tag label, used by BACnet and WebAPI', + type: 'Tag type, Bool, Byte, etc. depending of device type', + memaddress: 'Address of Tag, combine with address by Modbus, some property for WebAPI', + address: 'Tag address, for OPCUA like the id', + divisor: 'Value divisor, used by Modbus', + options: 'Options is a string JSON object, used for WebAPI and MQTT, pubs: items to publish | subs: items to subscribe', + init: 'Init value', + daq: { + enabled: 'Daq enabled storage', + interval: 'min storage interval (without change value)' + }, + format: 'Number of digits to appear after the decimal point', + direction: 'A string specifying whether the GPIO should be configured as an input or output. The valid values are: \'in\', \'out\', \'high\', and \'low\'. If \'out\' is specified the GPIO will be configured as an output and the value of the GPIO will be set to 0. \'high\' and \'low\' are variants of \'out\' that configure the GPIO as an output with an initial level of 1 or 0 respectively.', + edge: 'An optional string specifying the interrupt generating edge or edges for an input GPIO. The valid values are: \'none\', \'rising\', \'falling\' or \'both\'. The default value is \'none\' indicating that the GPIO will not generate interrupts. Whether or not interrupts are supported by an input GPIO is GPIO specific. If interrupts are not supported by a GPIO the edge argument should not be specified. The edge argument is ignored for output GPIOs.' + }; +} +class TagDaq { + /** DAQ data acquisition is enabled */ + enabled; + /** Fix interval to save the current value in seconds*/ + interval; + /** Save if the value was changed, the check is in device polling interval */ + changed; + /** Restore withe the last saved value on start device */ + restored = false; + constructor(_enabled, _changed, _interval, _restored) { + this.enabled = _enabled; + this.changed = _changed; + this.interval = _interval; + this.restored = _restored; + } +} +var TagDeadbandModeType; +(function (TagDeadbandModeType) { + TagDeadbandModeType["absolute"] = "absolute"; +})(TagDeadbandModeType || (TagDeadbandModeType = {})); +class DeviceNetProperty { + /** Device address (IP) */ + address; + /** Address port */ + port; + /** Slot number used for Siemens S7 connection */ + slot; + /** Rack number used for Siemens S7 connection */ + rack; + /** Slave ID used for Modbus connection */ + slaveid; + /** Serial baudrate used for Modbus RTU connection */ + baudrate; + /** Serial databits used for Modbus RTU connection */ + databits; + /** Serial stopbits used for Modbus RTU connection */ + stopbits; + /** Serial parity used for Modbus RTU connection */ + parity; + /** Options settings used for Modbus tockenized frame */ + options; + /** Method flag used for WebAPI (GET/POST) */ + method; + /** Data format flag used for WebAPI (CSV/JSON) */ + format; + /** Connection option used for Modbus RTU/TCP */ + connectionOption; + /** Delay used for Modbus RTU/TCP delay between frame*/ + delay = 10; + /** Modbus TCP socket reuse flag */ + socketReuse; + /** MELSEC */ + ascii; + octalIO; + static descriptor = { + address: 'Device address (IP)' + // port: 'Address port', + // slot: 'Slot number used for Siemens S7 connection', + // rack: 'Rack number used for Siemens S7 connection', + // slaveid: 'Slave ID used for Modbus connection', + // baudrate: 'Serial baudrate used for Modbus RTU connection', + // databits: 'Serial databits used for Modbus RTU connection', + // stopbits: 'Serial stopbits used for Modbus RTU connection', + // parity: 'Serial parity used for Modbus RTU connection', + // options: 'Options settings used for Modbus tockenized frame if "true" frames without unassigned address. In EthernetIP routing rack/slot', + // method: 'Method flag used for WebAPI (GET/POST)', + // format: 'Data format flag used for WebAPI (CSV/JSON)', + }; +} + +class DeviceWebApiProperty { + /** Get Tags URL */ + getTags; + /** Port Tags URL */ + postTags; +} +class DeviceSecurity { + mode; + username; + password; + clientId; + grant_type; + certificateFileName; + privateKeyFileName; + caCertificateFileName; +} +var DeviceType; +(function (DeviceType) { + DeviceType["FuxaServer"] = "FuxaServer"; + DeviceType["SiemensS7"] = "SiemensS7"; + DeviceType["OPCUA"] = "OPCUA"; + DeviceType["BACnet"] = "BACnet"; + DeviceType["ModbusRTU"] = "ModbusRTU"; + DeviceType["ModbusTCP"] = "ModbusTCP"; + DeviceType["WebAPI"] = "WebAPI"; + DeviceType["MQTTclient"] = "MQTTclient"; + DeviceType["internal"] = "internal"; + DeviceType["EthernetIP"] = "EthernetIP"; + DeviceType["ODBC"] = "ODBC"; + DeviceType["ADSclient"] = "ADSclient"; + DeviceType["GPIO"] = "GPIO"; + DeviceType["WebCam"] = "WebCam"; + DeviceType["MELSEC"] = "MELSEC"; + // Template: 'template' +})(DeviceType || (DeviceType = {})); +var TagType; +(function (TagType) { + TagType["Bool"] = "Bool"; + TagType["Byte"] = "Byte"; + TagType["Int"] = "Int"; + TagType["Word"] = "Word"; + TagType["DInt"] = "DInt"; + TagType["DWord"] = "DWord"; + TagType["Real"] = "Real"; +})(TagType || (TagType = {})); +var ModbusTagType; +(function (ModbusTagType) { + ModbusTagType["Bool"] = "Bool"; + ModbusTagType["Int16"] = "Int16"; + ModbusTagType["UInt16"] = "UInt16"; + ModbusTagType["Int32"] = "Int32"; + ModbusTagType["UInt32"] = "UInt32"; + ModbusTagType["Float32"] = "Float32"; + ModbusTagType["Float64"] = "Float64"; + ModbusTagType["Int64"] = "Int64"; + ModbusTagType["Int16LE"] = "Int16LE"; + ModbusTagType["UInt16LE"] = "UInt16LE"; + ModbusTagType["Int32LE"] = "Int32LE"; + ModbusTagType["UInt32LE"] = "UInt32LE"; + ModbusTagType["Float32LE"] = "Float32LE"; + ModbusTagType["Float64LE"] = "Float64LE"; + ModbusTagType["Float64MLE"] = "Float64MLE"; + ModbusTagType["Int64LE"] = "Int64LE"; + ModbusTagType["Float32MLE"] = "Float32MLE"; + ModbusTagType["Int32MLE"] = "Int32MLE"; + ModbusTagType["UInt32MLE"] = "UInt32MLE"; + // String = 'String' +})(ModbusTagType || (ModbusTagType = {})); +var OpcUaTagType; +(function (OpcUaTagType) { + OpcUaTagType["Boolean"] = "Boolean"; + OpcUaTagType["SByte"] = "SByte"; + OpcUaTagType["Byte"] = "Byte"; + OpcUaTagType["Int16"] = "Int16"; + OpcUaTagType["UInt16"] = "UInt16"; + OpcUaTagType["Int32"] = "Int32"; + OpcUaTagType["UInt32"] = "UInt32"; + OpcUaTagType["Int64"] = "Int64"; + OpcUaTagType["UInt64"] = "UInt64"; + OpcUaTagType["Float"] = "Float"; + OpcUaTagType["Double"] = "Double"; + OpcUaTagType["String"] = "String"; + OpcUaTagType["DateTime"] = "DateTime"; + OpcUaTagType["Guid"] = "Guid"; + OpcUaTagType["ByteString"] = "ByteString"; +})(OpcUaTagType || (OpcUaTagType = {})); +var AdsClientTagType; +(function (AdsClientTagType) { + AdsClientTagType["Number"] = "number"; + AdsClientTagType["Boolean"] = "boolean"; + AdsClientTagType["String"] = "string"; +})(AdsClientTagType || (AdsClientTagType = {})); +var MelsecTagType; +(function (MelsecTagType) { + MelsecTagType["BOOL"] = "BOOL"; + MelsecTagType["BYTE"] = "BYTE"; + MelsecTagType["WORD"] = "WORD"; + MelsecTagType["INT"] = "INT"; + MelsecTagType["UINT"] = "UINT"; + MelsecTagType["DINT"] = "DINT"; + MelsecTagType["UDINT"] = "UDINT"; + MelsecTagType["REAL"] = "REAL"; + MelsecTagType["STRING"] = "STRING"; +})(MelsecTagType || (MelsecTagType = {})); +var ModbusOptionType; +(function (ModbusOptionType) { + ModbusOptionType["SerialPort"] = "SerialPort"; + ModbusOptionType["RTUBufferedPort"] = "RTUBufferedPort"; + ModbusOptionType["AsciiPort"] = "AsciiPort"; + ModbusOptionType["TcpPort"] = "TcpPort"; + ModbusOptionType["UdpPort"] = "UdpPort"; + ModbusOptionType["TcpRTUBufferedPort"] = "TcpRTUBufferedPort"; + ModbusOptionType["TelnetPort"] = "TelnetPort"; +})(ModbusOptionType || (ModbusOptionType = {})); +var ModbusReuseModeType; +(function (ModbusReuseModeType) { + ModbusReuseModeType["Reuse"] = "Reuse"; + ModbusReuseModeType["ReuseSerial"] = "ReuseSerial"; +})(ModbusReuseModeType || (ModbusReuseModeType = {})); +/** + * A string specifying whether the GPIO should be configured as an input or output. The valid values are: 'in', 'out', 'high', and 'low'. If 'out' is specified the GPIO will be configured as an output and the value of the GPIO will be set to 0. 'high' and 'low' are variants of 'out' that configure the GPIO as an output with an initial level of 1 or 0 respectively. + */ +var GpioDirectionType; +(function (GpioDirectionType) { + GpioDirectionType["in"] = "in"; + GpioDirectionType["out"] = "out"; + GpioDirectionType["high"] = " - high"; + GpioDirectionType["low"] = " - low"; +})(GpioDirectionType || (GpioDirectionType = {})); +/** + * An optional string specifying the interrupt generating edge or edges for an input GPIO. The valid values are: 'none', 'rising', 'falling' or 'both'. The default value is 'none' indicating that the GPIO will not generate interrupts. Whether or not interrupts are supported by an input GPIO is GPIO specific. If interrupts are not supported by a GPIO the edge argument should not be specified. The edge argument is ignored for output GPIOs. + */ +var GpioEdgeType; +(function (GpioEdgeType) { + GpioEdgeType["none"] = "none"; + GpioEdgeType["rising"] = "rising"; + GpioEdgeType["falling"] = "falling"; + GpioEdgeType["both"] = "both"; +})(GpioEdgeType || (GpioEdgeType = {})); +var MessageSecurityMode; +(function (MessageSecurityMode) { + /** The MessageSecurityMode is invalid */ + MessageSecurityMode[MessageSecurityMode["INVALID"] = 0] = "INVALID"; + /** No security is applied. */ + MessageSecurityMode["NONE"] = "1"; + /** All messages are signed but not encrypted. */ + MessageSecurityMode["SIGN"] = "2"; + /** All messages are signed and encrypted. */ + MessageSecurityMode["SIGNANDENCRYPT"] = "3"; //'SIGNANDENCRYPT' +})(MessageSecurityMode || (MessageSecurityMode = {})); +var SecurityPolicy; +(function (SecurityPolicy) { + /** see http://opcfoundation.org/UA/SecurityPolicy#None */ + SecurityPolicy["None"] = "None"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic128 */ + SecurityPolicy["Basic128"] = "Basic128"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15 */ + SecurityPolicy["Basic128Rsa15"] = "Basic128Rsa15"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic192 */ + SecurityPolicy["Basic192"] = "Basic192"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic192Rsa15 */ + SecurityPolicy["Basic192Rsa15"] = "Basic192Rsa15"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic256 */ + SecurityPolicy["Basic256"] = "Basic256"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic256Rsa15 */ + SecurityPolicy["Basic256Rsa15"] = "Basic256Rsa15"; + /** see http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha25 */ + SecurityPolicy["Basic256Sha256"] = "Basic256Sha256"; + /** see 'http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss' */ + SecurityPolicy["Aes256_Sha256_RsaPss"] = "Aes256_Sha256_RsaPss"; + /** see ''http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep'' */ + SecurityPolicy["Aes128_Sha256_RsaOaep"] = "Aes128_Sha256_RsaOaep"; +})(SecurityPolicy || (SecurityPolicy = {})); +var BACnetObjectType; +(function (BACnetObjectType) { + BACnetObjectType["ANALOG_INPUT"] = "Analog Input"; + BACnetObjectType["ANALOG_OUTPUT"] = "Analog Output"; + BACnetObjectType["ANALOG_VALUE"] = "Analog Value"; + BACnetObjectType["BINARY_INPUT"] = "Binary Input"; + BACnetObjectType["BINARY_OUTPUT"] = "Binary Output"; + BACnetObjectType["BINARY_VALUE"] = "Binary Value"; + BACnetObjectType["CALENDAR"] = ""; + BACnetObjectType["COMMAND"] = ""; + BACnetObjectType["DEVICE"] = ""; // 8 +})(BACnetObjectType || (BACnetObjectType = {})); +const DEVICE_PREFIX = 'd_'; +const TAG_PREFIX = 't_'; +class DevicesUtils { + static getDeviceTagText(devices, id) { + for (let i = 0; i < devices.length; i++) { + if (devices[i].tags[id]) { + return `${devices[i].name} - ${devices[i].tags[id].name}`; + } + } + return ''; + } + static getDeviceFromTagId(devices, id) { + for (let i = 0; i < devices.length; i++) { + if (devices[i].tags[id]) { + return devices[i]; + } + } + return null; + } + static getTagFromTagId(devices, id) { + for (let i = 0; i < devices.length; i++) { + if (devices[i].tags[id]) { + return devices[i].tags[id]; + } + } + return null; + } + static getTagFromTagAddress(device, address) { + return Object.values(device.tags).find(tag => tag.address === address); + } + //#region Converter + static columnDelimiter = ','; + static lineDelimiter = '\n'; + static lineComment = '#'; + static lineDevice = 'D@'; + static lineTag = 'T@'; + static lineSectionHeader = '@'; + static columnMaske = '~'; + /** + * converter of devices array to CSV format + * @param devices + * @returns + */ + static devicesToCsv(devices) { + let result = ''; + // devices list + let devicesHeaderDescription = `!! CSV separator property convertion to "~"${DevicesUtils.lineDelimiter}`; + let devicesHeader = `${DevicesUtils.lineSectionHeader}header${DevicesUtils.columnDelimiter}`; + let devicesData = ''; + const dkeys = Object.keys(Device.descriptor).filter(k => k !== 'tags'); + const pkeys = Object.keys(DeviceNetProperty.descriptor); + dkeys.forEach(hk => { + if (hk !== 'property') { + devicesHeaderDescription += `${DevicesUtils.lineComment}${hk}${DevicesUtils.columnDelimiter}: ${Device.descriptor[hk]}${DevicesUtils.lineDelimiter}`; + devicesHeader += `${hk}${DevicesUtils.columnDelimiter}`; + } + }); + pkeys.forEach(pk => { + devicesHeaderDescription += `${DevicesUtils.lineComment}property.${pk}${DevicesUtils.columnDelimiter}: ${DeviceNetProperty.descriptor[pk]}${DevicesUtils.lineDelimiter}`; + devicesHeader += `property.${pk}${DevicesUtils.columnDelimiter}`; + }); + // device data + for (let i = 0; i < devices.length; i++) { + devicesData += DevicesUtils.device2Line(devices[i], dkeys, pkeys); + devicesData += `${DevicesUtils.lineDelimiter}`; + } + result += `${devicesHeaderDescription}${DevicesUtils.lineDelimiter}`; + result += `${devicesHeader}${DevicesUtils.lineDelimiter}${devicesData}`; + result += `${DevicesUtils.lineDelimiter}`; + // tags of devices + let tagsHeaderDescription = ''; + let tagsHeader = ''; + let tagsData = ''; + const tkeys = Object.keys(Tag.descriptor).filter(k => k !== 'daq' && k !== 'options'); + tagsHeaderDescription += `${DevicesUtils.lineComment}deviceId${DevicesUtils.columnDelimiter}:Reference to device${DevicesUtils.lineDelimiter}`; + tagsHeader += `${DevicesUtils.lineSectionHeader}header${DevicesUtils.columnDelimiter}deviceId${DevicesUtils.columnDelimiter}`; + tkeys.forEach(tk => { + tagsHeaderDescription += `${DevicesUtils.lineComment}${tk}${DevicesUtils.columnDelimiter}: ${Tag.descriptor[tk]}${DevicesUtils.lineDelimiter}`; + tagsHeader += `${tk}${DevicesUtils.columnDelimiter}`; + }); + tagsHeaderDescription += `${DevicesUtils.lineComment}options${DevicesUtils.columnDelimiter}: ${Tag.descriptor.options}${DevicesUtils.lineDelimiter}`; + tagsHeader += `options${DevicesUtils.columnDelimiter}`; + tagsHeaderDescription += `${DevicesUtils.lineComment}daq.enabled${DevicesUtils.columnDelimiter}: ${Tag.descriptor.daq.enabled}${DevicesUtils.lineDelimiter}`; + tagsHeader += `daq.enabled${DevicesUtils.columnDelimiter}`; + tagsHeaderDescription += `${DevicesUtils.lineComment}daq.interval${DevicesUtils.columnDelimiter}: ${Tag.descriptor.daq.interval}${DevicesUtils.lineDelimiter}`; + tagsHeader += `daq.interval${DevicesUtils.columnDelimiter}`; + for (let i = 0; i < devices.length; i++) { + if (devices[i].tags) { + const tags = Object.values(devices[i].tags); + for (let y = 0; y < tags.length; y++) { + tagsData += DevicesUtils.tag2Line(tags[y], devices[i].id, tkeys); + tagsData += `${DevicesUtils.lineDelimiter}`; + } + } + tagsData += `${DevicesUtils.lineDelimiter}`; + } + result += `${tagsHeaderDescription}${DevicesUtils.lineDelimiter}`; + result += `${tagsHeader}${DevicesUtils.lineDelimiter}${tagsData}`; + result += `${DevicesUtils.lineDelimiter}`; + return result; + } + /** + * convert string source of CSV to Device array + * @param source + */ + static csvToDevices(source) { + try { + // Device keys length to check, without tags and DeviceNetProperty instead of property + const deviceKeyLength = Object.keys(Device.descriptor).length + Object.keys(DeviceNetProperty.descriptor).length; + // Tags keys length to check, with daq splitted in enabled and interval + const tagKeyLength = Object.keys(Tag.descriptor).length + 4; + let devices = {}; + const lines = source.split(DevicesUtils.lineDelimiter).filter(line => !line.startsWith(DevicesUtils.lineComment) && !line.startsWith(DevicesUtils.lineSectionHeader)); + lines.forEach(line => { + if (line.startsWith(DevicesUtils.lineDevice)) { + // Device + let device = DevicesUtils.line2Device(line, deviceKeyLength); + devices[device.id] = device; + } else if (line.startsWith(DevicesUtils.lineTag)) { + // Tag + let result = DevicesUtils.line2Tag(line, tagKeyLength); + if (!devices[result.deviceId]) { + throw new Error(`Device don't exist: ${line}`); + } + if (devices[result.deviceId].tags[result.tag.id]) { + throw new Error(`Tag already exist: ${line}`); + } + devices[result.deviceId].tags[result.tag.id] = result.tag; + } + }); + return Object.values(devices); + } catch (err) { + console.error(err); + } + return null; + } + static device2Line(device, dkeys, pkeys) { + let result = `${DevicesUtils.lineDevice}${DevicesUtils.columnDelimiter}`; + dkeys.forEach(dk => { + if (dk !== 'property') { + let text = device[dk] ? device[dk].toString() : ''; + result += `${text.replace(new RegExp(DevicesUtils.columnDelimiter, 'g'), DevicesUtils.columnMaske)}${DevicesUtils.columnDelimiter}`; + } + }); + if (device.property) { + pkeys.forEach(pk => { + result += `${device.property[pk] || ''}${DevicesUtils.columnDelimiter}`; + }); + } + return result; + } + static line2Device(line, deviceKeyLength) { + const items = line.split(DevicesUtils.columnDelimiter); + if (items.length < deviceKeyLength - 1) { + throw new Error(`Format Error ${items.length}/${deviceKeyLength} ${line}`); + } + let device = new Device(items[1]); + device.name = items[2].replace(new RegExp(DevicesUtils.columnMaske, 'g'), DevicesUtils.columnDelimiter); + device.enabled = items[3].toLowerCase() === 'true' ? true : false; + device.type = items[4]; + device.polling = parseInt(items[5]) || 1000; + device.property = { + address: items[6], + port: items[7], + slot: items[8], + rack: items[9], + slaveid: items[10], + baudrate: items[11], + databits: items[12], + stopbits: items[13], + parity: items[14], + options: items[15], + method: items[16], + format: items[17] + }; + device.tags = {}; + return device; + } + static tag2Line(tag, deviceId, tkeys) { + let result = `${DevicesUtils.lineTag}${DevicesUtils.columnDelimiter}${deviceId}${DevicesUtils.columnDelimiter}`; + tkeys.forEach(tk => { + let text = tag[tk] || ''; + result += `${text.toString().replace(new RegExp(DevicesUtils.columnDelimiter, 'g'), DevicesUtils.columnMaske)}${DevicesUtils.columnDelimiter}`; + }); + let options = tag.options ? JSON.stringify(tag.options) : ''; + result += `${options.replace(new RegExp(DevicesUtils.columnDelimiter, 'g'), DevicesUtils.columnMaske)}${DevicesUtils.columnDelimiter}`; + result += `${tag.daq ? tag.daq.enabled : ''}${DevicesUtils.columnDelimiter}`; + result += `${tag.daq ? tag.daq.interval : ''}${DevicesUtils.columnDelimiter}`; + return result; + } + static line2Tag(line, tagKeyLength) { + const items = line.split(DevicesUtils.columnDelimiter); + if (items.length < tagKeyLength - 1) { + throw new Error(`Format Error: ${items.length}/${tagKeyLength} ${line}`); + } + const deviceId = items[1]; + let tag = new Tag(items[2]); + tag.name = items[3].replace(new RegExp(DevicesUtils.columnMaske, 'g'), DevicesUtils.columnDelimiter); + tag.label = items[4].replace(new RegExp(DevicesUtils.columnMaske, 'g'), DevicesUtils.columnDelimiter); + tag.type = items[5]; + tag.memaddress = items[6].replace(new RegExp(DevicesUtils.columnMaske, 'g'), DevicesUtils.columnDelimiter); + tag.address = items[7].replace(new RegExp(DevicesUtils.columnMaske, 'g'), DevicesUtils.columnDelimiter); + tag.divisor = parseInt(items[8]) || 1; + tag.init = items[9]; + tag.format = items[10] ? parseInt(items[10]) : null; + tag.options = items[11].replace(new RegExp(DevicesUtils.columnMaske, 'g'), DevicesUtils.columnDelimiter); + if (tag.options && _helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.isJson(tag.options)) { + tag.options = JSON.parse(tag.options); + } + tag.daq = { + enabled: _helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.Boolify(items[12]) ? true : false, + changed: true, + interval: parseInt(items[13]) || 60 + }; + return { + tag, + deviceId + }; + } + //#endregion + //#region Placeholder + static placeholderToTag(variableId, tags) { + const placeholder = DevicesUtils.getPlaceholderContent(variableId); + if (placeholder.firstContent) { + return tags?.find(t => t.name === placeholder.firstContent); + } + return null; + } + static getPlaceholderContent(text) { + const firstAt = text.indexOf('@'); + if (firstAt === -1) { + return { + firstContent: null, + secondContent: null + }; + } + const secondAt = text.indexOf('@', firstAt + 1); + if (secondAt === -1) { + const firstContent = text.substring(firstAt + 1).trim(); + return { + firstContent, + secondContent: null + }; + } + const firstContent = text.substring(firstAt + 1, secondAt).trim(); + const secondContent = text.substring(secondAt + 1).trim(); + return { + firstContent, + secondContent + }; + } +} +var DeviceViewModeType; +(function (DeviceViewModeType) { + DeviceViewModeType["tags"] = "tags"; + DeviceViewModeType["devices"] = "devices"; + DeviceViewModeType["list"] = "devices-list"; + DeviceViewModeType["map"] = "devices-map"; +})(DeviceViewModeType || (DeviceViewModeType = {})); +var DeviceConnectionStatusType; +(function (DeviceConnectionStatusType) { + DeviceConnectionStatusType["ok"] = "device.connect-ok"; + DeviceConnectionStatusType["error"] = "device.connect-error"; + DeviceConnectionStatusType["failed"] = "device.connect-failed"; + DeviceConnectionStatusType["off"] = "device.connect-off"; + DeviceConnectionStatusType["busy"] = "device.connect-busy"; +})(DeviceConnectionStatusType || (DeviceConnectionStatusType = {})); +var ServerTagType; +(function (ServerTagType) { + ServerTagType["number"] = "number"; + ServerTagType["boolean"] = "boolean"; + ServerTagType["string"] = "string"; +})(ServerTagType || (ServerTagType = {})); +class TagScale { + mode; + rawLow; + rawHigh; + scaledLow; + scaledHigh; + dateTimeFormat; +} +var TagScaleModeType; +(function (TagScaleModeType) { + TagScaleModeType["undefined"] = "device.tag-scale-mode-undefined"; + TagScaleModeType["linear"] = "device.tag-scale-mode-linear"; + TagScaleModeType["convertDateTime"] = "device.tag-convert-datetime"; + TagScaleModeType["convertTickTime"] = "device.tag-convert-ticktime"; +})(TagScaleModeType || (TagScaleModeType = {})); +var TagSystemType; +(function (TagSystemType) { + TagSystemType[TagSystemType["deviceConnectionStatus"] = 1] = "deviceConnectionStatus"; +})(TagSystemType || (TagSystemType = {})); + +/***/ }), + +/***/ 88008: +/*!**********************************!*\ + !*** ./src/app/_models/graph.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Graph: () => (/* binding */ Graph), +/* harmony export */ GraphBarDateFunction: () => (/* binding */ GraphBarDateFunction), +/* harmony export */ GraphBarDateFunctionType: () => (/* binding */ GraphBarDateFunctionType), +/* harmony export */ GraphBarFunction: () => (/* binding */ GraphBarFunction), +/* harmony export */ GraphBarProperty: () => (/* binding */ GraphBarProperty), +/* harmony export */ GraphBarXType: () => (/* binding */ GraphBarXType), +/* harmony export */ GraphDateGroupType: () => (/* binding */ GraphDateGroupType), +/* harmony export */ GraphPieProperty: () => (/* binding */ GraphPieProperty), +/* harmony export */ GraphRangeType: () => (/* binding */ GraphRangeType), +/* harmony export */ GraphSource: () => (/* binding */ GraphSource), +/* harmony export */ GraphType: () => (/* binding */ GraphType) +/* harmony export */ }); +class Graph { + id; + name; + type; + property; + sources = []; + constructor(_type, _id, _name) { + this.type = _type; + this.id = _id; + this.name = _name; + if (this.type === GraphType.bar) { + this.property = new GraphBarProperty(); + } + } +} +var GraphRangeType; +(function (GraphRangeType) { + GraphRangeType["last1h"] = "last1h"; + GraphRangeType["last1d"] = "last1d"; + GraphRangeType["last3d"] = "last3d"; + GraphRangeType["last1w"] = "last1w"; + GraphRangeType["last1m"] = "last1m"; +})(GraphRangeType || (GraphRangeType = {})); +var GraphDateGroupType; +(function (GraphDateGroupType) { + GraphDateGroupType["hours"] = "hours"; + GraphDateGroupType["days"] = "days"; +})(GraphDateGroupType || (GraphDateGroupType = {})); +class GraphBarProperty { + xtype; + function; + constructor(_xtype) { + if (_xtype) { + this.xtype = _xtype; + } else { + this.xtype = Object.keys(GraphBarXType).find(key => GraphBarXType[key] === GraphBarXType.value); + } + } +} +class GraphBarFunction { + type; +} +class GraphBarDateFunction extends GraphBarFunction { + constructor(_type) { + super(); + if (_type) { + this.type = _type; + } else { + this.type = Object.keys(GraphBarDateFunctionType).find(key => GraphBarDateFunctionType[key] === GraphBarDateFunctionType.sumHourIntegral); + } + } +} +class GraphPieProperty {} +class GraphSource { + device; + id; + name; + label; + color; + fill; +} +var GraphType; +(function (GraphType) { + GraphType[GraphType["bar"] = 0] = "bar"; + GraphType[GraphType["pie"] = 1] = "pie"; +})(GraphType || (GraphType = {})); +var GraphBarXType; +(function (GraphBarXType) { + GraphBarXType["value"] = "graph.bar-xtype-value"; + GraphBarXType["date"] = "graph.bar-xtype-date"; + // sendMsg = 'alarm.action-onsendmsg', +})(GraphBarXType || (GraphBarXType = {})); +var GraphBarDateFunctionType; +(function (GraphBarDateFunctionType) { + GraphBarDateFunctionType["sumHourIntegral"] = "graph.bar-date-fnc-hour-integral"; + GraphBarDateFunctionType["sumValueIntegral"] = "graph.bar-date-fnc-value-integral"; +})(GraphBarDateFunctionType || (GraphBarDateFunctionType = {})); + +/***/ }), + +/***/ 84126: +/*!********************************!*\ + !*** ./src/app/_models/hmi.ts ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Alarm: () => (/* binding */ Alarm), +/* harmony export */ CardWidget: () => (/* binding */ CardWidget), +/* harmony export */ CardWidgetType: () => (/* binding */ CardWidgetType), +/* harmony export */ DEVICE_READONLY: () => (/* binding */ DEVICE_READONLY), +/* harmony export */ DaqQuery: () => (/* binding */ DaqQuery), +/* harmony export */ DaqResult: () => (/* binding */ DaqResult), +/* harmony export */ DateFormatType: () => (/* binding */ DateFormatType), +/* harmony export */ DocAlignType: () => (/* binding */ DocAlignType), +/* harmony export */ DocProfile: () => (/* binding */ DocProfile), +/* harmony export */ Event: () => (/* binding */ Event), +/* harmony export */ GaugeAction: () => (/* binding */ GaugeAction), +/* harmony export */ GaugeActionBlink: () => (/* binding */ GaugeActionBlink), +/* harmony export */ GaugeActionMove: () => (/* binding */ GaugeActionMove), +/* harmony export */ GaugeActionRotate: () => (/* binding */ GaugeActionRotate), +/* harmony export */ GaugeActionStatus: () => (/* binding */ GaugeActionStatus), +/* harmony export */ GaugeActionsType: () => (/* binding */ GaugeActionsType), +/* harmony export */ GaugeEvent: () => (/* binding */ GaugeEvent), +/* harmony export */ GaugeEventActionType: () => (/* binding */ GaugeEventActionType), +/* harmony export */ GaugeEventRelativeFromType: () => (/* binding */ GaugeEventRelativeFromType), +/* harmony export */ GaugeEventSetValueType: () => (/* binding */ GaugeEventSetValueType), +/* harmony export */ GaugeEventType: () => (/* binding */ GaugeEventType), +/* harmony export */ GaugeProperty: () => (/* binding */ GaugeProperty), +/* harmony export */ GaugePropertyColor: () => (/* binding */ GaugePropertyColor), +/* harmony export */ GaugeRangeProperty: () => (/* binding */ GaugeRangeProperty), +/* harmony export */ GaugeSettings: () => (/* binding */ GaugeSettings), +/* harmony export */ GaugeStatus: () => (/* binding */ GaugeStatus), +/* harmony export */ GaugeVideoProperty: () => (/* binding */ GaugeVideoProperty), +/* harmony export */ HeaderBarModeType: () => (/* binding */ HeaderBarModeType), +/* harmony export */ HeaderSettings: () => (/* binding */ HeaderSettings), +/* harmony export */ HelpData: () => (/* binding */ HelpData), +/* harmony export */ Hmi: () => (/* binding */ Hmi), +/* harmony export */ InputActionEscType: () => (/* binding */ InputActionEscType), +/* harmony export */ InputConvertionType: () => (/* binding */ InputConvertionType), +/* harmony export */ InputModeType: () => (/* binding */ InputModeType), +/* harmony export */ InputOptionType: () => (/* binding */ InputOptionType), +/* harmony export */ InputTimeFormatType: () => (/* binding */ InputTimeFormatType), +/* harmony export */ LayoutSettings: () => (/* binding */ LayoutSettings), +/* harmony export */ LinkType: () => (/* binding */ LinkType), +/* harmony export */ LoginOverlayColorType: () => (/* binding */ LoginOverlayColorType), +/* harmony export */ NaviItem: () => (/* binding */ NaviItem), +/* harmony export */ NaviItemType: () => (/* binding */ NaviItemType), +/* harmony export */ NaviModeType: () => (/* binding */ NaviModeType), +/* harmony export */ NavigationSettings: () => (/* binding */ NavigationSettings), +/* harmony export */ NotificationModeType: () => (/* binding */ NotificationModeType), +/* harmony export */ PropertyScaleModeType: () => (/* binding */ PropertyScaleModeType), +/* harmony export */ SelElement: () => (/* binding */ SelElement), +/* harmony export */ Size: () => (/* binding */ Size), +/* harmony export */ TableCell: () => (/* binding */ TableCell), +/* harmony export */ TableCellAlignType: () => (/* binding */ TableCellAlignType), +/* harmony export */ TableCellType: () => (/* binding */ TableCellType), +/* harmony export */ TableColumn: () => (/* binding */ TableColumn), +/* harmony export */ TableRangeType: () => (/* binding */ TableRangeType), +/* harmony export */ TableRow: () => (/* binding */ TableRow), +/* harmony export */ TableType: () => (/* binding */ TableType), +/* harmony export */ TimeFormatType: () => (/* binding */ TimeFormatType), +/* harmony export */ Variable: () => (/* binding */ Variable), +/* harmony export */ VariableRange: () => (/* binding */ VariableRange), +/* harmony export */ View: () => (/* binding */ View), +/* harmony export */ ViewEvent: () => (/* binding */ ViewEvent), +/* harmony export */ ViewEventActionType: () => (/* binding */ ViewEventActionType), +/* harmony export */ ViewEventType: () => (/* binding */ ViewEventType), +/* harmony export */ ViewProperty: () => (/* binding */ ViewProperty), +/* harmony export */ ViewType: () => (/* binding */ ViewType), +/* harmony export */ WidgetProperty: () => (/* binding */ WidgetProperty), +/* harmony export */ WindowLink: () => (/* binding */ WindowLink), +/* harmony export */ ZoomModeType: () => (/* binding */ ZoomModeType) +/* harmony export */ }); +/* harmony import */ var angular_gridster2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! angular-gridster2 */ 52562); +/* harmony import */ var _device__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device */ 15625); + + +class Hmi { + /** Layout for navigation menu, header bar, ... */ + layout = new LayoutSettings(); + /** Views list of hmi project */ + views = []; +} +class View { + /** View id, random number */ + id = ''; + /** View name used as reference in configuration */ + name = ''; + /** View profile size, background color */ + profile = new DocProfile(); + /** Gauges settings list used in the view */ + items = {}; + /** Variables (Tags) list used in the view */ + variables = {}; + /** Svg code content of the view */ + svgcontent = ''; + /** Type of view SVG/CARDS */ + type; + /** Property with events of view like Open or Close */ + property; + constructor(id, type, name) { + this.id = id; + this.name = name; + this.type = type; + } +} +var ViewType; +(function (ViewType) { + ViewType["svg"] = "svg"; + ViewType["cards"] = "cards"; + ViewType["maps"] = "maps"; +})(ViewType || (ViewType = {})); +class LayoutSettings { + /** Auto resize view */ + autoresize = false; + /** Start view (home) */ + start = ''; + /** Left side navigation menu settings */ + navigation = new NavigationSettings(); + /** On top header settings */ + header = new HeaderSettings(); + /** Show development blue button (Home, Lab, Editor) */ + showdev = true; + /** Enable zoom in view */ + zoom; + /** Show input dialog for input field */ + inputdialog = 'false'; + /** Hide navigation Header and sidebarmenu */ + hidenavigation = false; + /** GUI Theme */ + theme = ''; + /** Show login by start */ + loginonstart = false; + /** Overlay color for login modal */ + loginoverlaycolor = LoginOverlayColorType.none; + /** Show connection error toast */ + show_connection_error = true; + /** Customs Css Styles */ + customStyles = ''; +} +class NavigationSettings { + /** Side menu mode (over, push, fix) */ + mode; + /** Menu item show type (text, icon) */ + type; + /** Menu background color */ + bkcolor = '#F4F5F7'; + /** Menu item text and icon color */ + fgcolor = '#1D1D1D'; + /** Menu items */ + items; + /** Custom logo resource */ + logo = false; + constructor() { + this.mode = Object.keys(NaviModeType).find(key => NaviModeType[key] === NaviModeType.over); + this.type = Object.keys(NaviItemType).find(key => NaviItemType[key] === NaviItemType.block); + } +} +var LoginOverlayColorType; +(function (LoginOverlayColorType) { + LoginOverlayColorType["none"] = "none"; + LoginOverlayColorType["black"] = "black"; + LoginOverlayColorType["white"] = "white"; +})(LoginOverlayColorType || (LoginOverlayColorType = {})); +var NaviModeType; +(function (NaviModeType) { + NaviModeType["void"] = "item.navsmode-none"; + NaviModeType["push"] = "item.navsmode-push"; + NaviModeType["over"] = "item.navsmode-over"; + NaviModeType["fix"] = "item.navsmode-fix"; +})(NaviModeType || (NaviModeType = {})); +var NaviItemType; +(function (NaviItemType) { + NaviItemType["icon"] = "item.navtype-icons"; + NaviItemType["text"] = "item.navtype-text"; + NaviItemType["block"] = "item.navtype-icons-text-block"; + NaviItemType["inline"] = "item.navtype-icons-text-inline"; +})(NaviItemType || (NaviItemType = {})); +class NaviItem { + id; + text; + link; + view; + icon; + image; + permission; + permissionRoles; + children; +} +class HeaderSettings { + title; + alarms; + infos; + bkcolor = '#ffffff'; + fgcolor = '#000000'; + fontFamily; + fontSize = 13; + items; + itemsAnchor = 'left'; + loginInfo; + dateTimeDisplay; + language; +} +var NotificationModeType; +(function (NotificationModeType) { + NotificationModeType["hide"] = "item.notifymode-hide"; + NotificationModeType["fix"] = "item.notifymode-fix"; + NotificationModeType["float"] = "item.notifymode-float"; +})(NotificationModeType || (NotificationModeType = {})); +var ZoomModeType; +(function (ZoomModeType) { + ZoomModeType["disabled"] = "item.zoommode-disabled"; + ZoomModeType["enabled"] = "item.zoommode-enabled"; + ZoomModeType["autoresize"] = "item.zoommode-autoresize"; +})(ZoomModeType || (ZoomModeType = {})); +var InputModeType; +(function (InputModeType) { + InputModeType["false"] = "item.inputmode-disabled"; + InputModeType["true"] = "item.inputmode-enabled"; + InputModeType["keyboard"] = "item.inputmode-keyboard"; + InputModeType["keyboardFullScreen"] = "item.inputmode-keyboard-full-screen"; +})(InputModeType || (InputModeType = {})); +var HeaderBarModeType; +(function (HeaderBarModeType) { + HeaderBarModeType["true"] = "item.headerbarmode-hide"; + HeaderBarModeType["false"] = "item.headerbarmode-show"; +})(HeaderBarModeType || (HeaderBarModeType = {})); +class DocProfile { + width = 1024; + height = 768; + bkcolor = '#ffffffff'; + margin = 10; + align = DocAlignType.topCenter; + gridType = angular_gridster2__WEBPACK_IMPORTED_MODULE_1__.GridType.Fixed; + viewRenderDelay = 0; // delay in ms to render view after load, used to prevent flickering on load view with many gauges +} + +var DocAlignType; +(function (DocAlignType) { + DocAlignType["topCenter"] = "topCenter"; + DocAlignType["middleCenter"] = "middleCenter"; +})(DocAlignType || (DocAlignType = {})); +class GaugeSettings { + id; + type; + name = ''; + property = null; // set to GaugeProperty after upgrate + label = ''; // Gauge type label + hide = false; + lock = false; + constructor(id, type) { + this.id = id; + this.type = type; + } +} +class ViewProperty { + events = []; + startLocation; + startZoom; +} +class GaugeProperty { + variableId; + variableValue; + bitmask; + permission; + permissionRoles; + ranges; + events = []; + actions = []; + options; + readonly; + text; // Text property (used by button) +} + +class WidgetProperty extends GaugeProperty { + type; + scriptContent; + svgContent; + varsToBind = {}; +} +var InputOptionType; +(function (InputOptionType) { + InputOptionType["number"] = "number"; + InputOptionType["text"] = "text"; + InputOptionType["date"] = "date"; + InputOptionType["time"] = "time"; + InputOptionType["datetime"] = "datetime"; + InputOptionType["textarea"] = "textarea"; + InputOptionType["password"] = "password"; +})(InputOptionType || (InputOptionType = {})); +var InputTimeFormatType; +(function (InputTimeFormatType) { + InputTimeFormatType["normal"] = "normal"; + InputTimeFormatType["seconds"] = "seconds"; + InputTimeFormatType["milliseconds"] = "milliseconds"; +})(InputTimeFormatType || (InputTimeFormatType = {})); +var InputConvertionType; +(function (InputConvertionType) { + InputConvertionType["milliseconds"] = "milliseconds"; + InputConvertionType["string"] = "string"; +})(InputConvertionType || (InputConvertionType = {})); +var InputActionEscType; +(function (InputActionEscType) { + InputActionEscType["update"] = "update"; + InputActionEscType["enter"] = "enter"; +})(InputActionEscType || (InputActionEscType = {})); +class GaugeEvent { + type; + action; + actparam; + actoptions = {}; +} +class ViewEvent { + type; + action; + actparam; + actoptions = {}; +} +var GaugeActionsType; +(function (GaugeActionsType) { + GaugeActionsType["hide"] = "shapes.action-hide"; + GaugeActionsType["show"] = "shapes.action-show"; + GaugeActionsType["blink"] = "shapes.action-blink"; + GaugeActionsType["stop"] = "shapes.action-stop"; + GaugeActionsType["clockwise"] = "shapes.action-clockwise"; + GaugeActionsType["anticlockwise"] = "shapes.action-anticlockwise"; + GaugeActionsType["downup"] = "shapes.action-downup"; + GaugeActionsType["rotate"] = "shapes.action-rotate"; + GaugeActionsType["move"] = "shapes.action-move"; + GaugeActionsType["monitor"] = "shapes.action-monitor"; + GaugeActionsType["refreshImage"] = "shapes.action-refreshImage"; + GaugeActionsType["start"] = "shapes.action-start"; + GaugeActionsType["pause"] = "shapes.action-pause"; + GaugeActionsType["reset"] = "shapes.action-reset"; +})(GaugeActionsType || (GaugeActionsType = {})); +class GaugeAction { + variableId; + bitmask; + range; + type; + options = {}; +} +class GaugeActionBlink { + strokeA = null; + strokeB = null; + fillA = null; + fillB = null; + interval = 1000; +} +class GaugeActionRotate { + minAngle = 0; + maxAngle = 90; + delay = 0; +} +class GaugeActionMove { + toX = 0; + toY = 0; + duration = 100; +} +class GaugePropertyColor { + fill; + stroke; +} +class GaugeStatus { + variablesValue = {}; + onlyChange = false; // to process value only by change + takeValue = false; // to process value by check change with gauge value + actionRef; +} +class GaugeActionStatus { + type; + timer = null; + animr = null; + spool; + constructor(type) { + this.type = type; + } +} +/** Gouges and Shapes mouse events */ +var GaugeEventType; +(function (GaugeEventType) { + GaugeEventType["click"] = "shapes.event-click"; + GaugeEventType["dblclick"] = "shapes.event-dblclick"; + GaugeEventType["mousedown"] = "shapes.event-mousedown"; + GaugeEventType["mouseup"] = "shapes.event-mouseup"; + GaugeEventType["mouseover"] = "shapes.event-mouseover"; + GaugeEventType["mouseout"] = "shapes.event-mouseout"; + GaugeEventType["enter"] = "shapes.event-enter"; + GaugeEventType["select"] = "shapes.event-select"; + GaugeEventType["onLoad"] = "shapes.event-onLoad"; +})(GaugeEventType || (GaugeEventType = {})); +var GaugeEventActionType; +(function (GaugeEventActionType) { + GaugeEventActionType["onpage"] = "shapes.event-onpage"; + GaugeEventActionType["onwindow"] = "shapes.event-onwindow"; + GaugeEventActionType["onOpenTab"] = "shapes.event-onopentab"; + GaugeEventActionType["ondialog"] = "shapes.event-ondialog"; + GaugeEventActionType["oniframe"] = "shapes.event-oniframe"; + GaugeEventActionType["oncard"] = "shapes.event-oncard"; + GaugeEventActionType["onSetValue"] = "shapes.event-onsetvalue"; + GaugeEventActionType["onToggleValue"] = "shapes.event-ontogglevalue"; + GaugeEventActionType["onSetInput"] = "shapes.event-onsetinput"; + GaugeEventActionType["onclose"] = "shapes.event-onclose"; + GaugeEventActionType["onRunScript"] = "shapes.event-onrunscript"; + GaugeEventActionType["onViewToPanel"] = "shapes.event-onViewToPanel"; + GaugeEventActionType["onMonitor"] = "shapes.event-onmonitor"; + GaugeEventActionType["onSetTag"] = "shapes.event-onsettag"; +})(GaugeEventActionType || (GaugeEventActionType = {})); +var ViewEventType; +(function (ViewEventType) { + ViewEventType["onopen"] = "shapes.event-onopen"; + ViewEventType["onclose"] = "shapes.event-onclose"; +})(ViewEventType || (ViewEventType = {})); +var ViewEventActionType; +(function (ViewEventActionType) { + ViewEventActionType["onRunScript"] = "shapes.event-onrunscript"; +})(ViewEventActionType || (ViewEventActionType = {})); +var GaugeEventRelativeFromType; +(function (GaugeEventRelativeFromType) { + GaugeEventRelativeFromType["window"] = "window"; + GaugeEventRelativeFromType["mouse"] = "mouse"; +})(GaugeEventRelativeFromType || (GaugeEventRelativeFromType = {})); +var GaugeEventSetValueType; +(function (GaugeEventSetValueType) { + GaugeEventSetValueType["set"] = "shapes.event-setvalue-set"; + GaugeEventSetValueType["add"] = "shapes.event-setvalue-add"; + GaugeEventSetValueType["remove"] = "shapes.event-setvalue-remove"; +})(GaugeEventSetValueType || (GaugeEventSetValueType = {})); +class GaugeRangeProperty { + min; + max; + text; + textId; + color; + type; + style; + stroke; +} +var PropertyScaleModeType; +(function (PropertyScaleModeType) { + PropertyScaleModeType["none"] = "none"; + PropertyScaleModeType["contain"] = "contain"; + PropertyScaleModeType["stretch"] = "stretch"; +})(PropertyScaleModeType || (PropertyScaleModeType = {})); +var TableType; +(function (TableType) { + TableType["data"] = "data"; + TableType["history"] = "history"; + TableType["alarms"] = "alarms"; + TableType["alarmsHistory"] = "alarmsHistory"; + TableType["reports"] = "reports"; +})(TableType || (TableType = {})); +var TableCellType; +(function (TableCellType) { + TableCellType["label"] = "label"; + TableCellType["variable"] = "variable"; + TableCellType["timestamp"] = "timestamp"; + TableCellType["device"] = "device"; + TableCellType["odbc"] = "odbc"; +})(TableCellType || (TableCellType = {})); +class TableCell { + id; + label; + variableId; + valueFormat; + bitmask; + type; + odbcTimestampColumn; // ODBC timestamp column for syncing with DAQ + odbcTimestampColumns; // Multiple timestamp sources from different ODBC tables + convertUtcToLocal; // Convert UTC timestamps to local time for display + constructor(id, type, label) { + this.id = id; + this.type = type || TableCellType.label; + this.label = label; + } +} +class TableColumn extends TableCell { + align = TableCellAlignType.left; + width = 100; + exname; + constructor(name, type, label) { + super(name, type, label); + } +} +class TableRow { + cells; + constructor(cls) { + this.cells = cls; + } +} +var TableCellAlignType; +(function (TableCellAlignType) { + TableCellAlignType["left"] = "left"; + TableCellAlignType["center"] = "center"; + TableCellAlignType["right"] = "right"; +})(TableCellAlignType || (TableCellAlignType = {})); +var TableRangeType; +(function (TableRangeType) { + TableRangeType["none"] = "table.rangetype-none"; + TableRangeType["last1h"] = "table.rangetype-last1h"; + TableRangeType["last1d"] = "table.rangetype-last1d"; + TableRangeType["last3d"] = "table.rangetype-last3d"; +})(TableRangeType || (TableRangeType = {})); +class Variable { + id; + name; + source; + value; + error; + timestamp; + device; + constructor(id, name, device) { + this.id = id; + this.name = name; + this.device = device; + if (device?.type === _device__WEBPACK_IMPORTED_MODULE_0__.DeviceType.internal) { + this.value = '0'; + } + } +} +class VariableRange { + min; + max; +} +class Alarm extends _device__WEBPACK_IMPORTED_MODULE_0__.Tag { + group; + device; +} +class WindowLink { + name = ''; + title = ''; + type; +} +class SelElement { + type = ''; + id; + ele = null; +} +class Event { + id = ''; + dom; + value = null; + dbg = ''; + type; + ga; + variableId; +} +class DaqQuery { + gid; + from; + to; + event; + sids; + chunked; +} +class DaqResult { + gid; + result; + chunk; +} +class HelpData { + page; + tag; +} +class Size { + height; + width; + constructor(h, w) { + this.height = h; + this.width = w; + } +} +var DateFormatType; +(function (DateFormatType) { + DateFormatType["YYYY_MM_DD"] = "1998/03/25"; + DateFormatType["MM_DD_YYYY"] = "03/25/1998"; + DateFormatType["DD_MM_YYYY"] = "25/03/1998"; + DateFormatType["MM_DD_YY"] = "03/25/98"; + DateFormatType["DD_MM_YY"] = "25/03/98"; +})(DateFormatType || (DateFormatType = {})); +var TimeFormatType; +(function (TimeFormatType) { + TimeFormatType["hh_mm_ss"] = "16:58:10"; + TimeFormatType["hh_mm_ss_AA"] = "04:58:10 PM"; +})(TimeFormatType || (TimeFormatType = {})); +class CardWidget { + data; + type; + zoom = 1; + scaleMode; + constructor(type, data) { + this.type = type; + this.data = data; + } +} +var CardWidgetType; +(function (CardWidgetType) { + CardWidgetType["view"] = "view"; + CardWidgetType["alarms"] = "alarms"; + CardWidgetType["iframe"] = "iframe"; + CardWidgetType["table"] = "table"; +})(CardWidgetType || (CardWidgetType = {})); +var LinkType; +(function (LinkType) { + LinkType["address"] = "[link]"; + LinkType["alarms"] = "[alarms]"; +})(LinkType || (LinkType = {})); +const DEVICE_READONLY = 'rodevice'; +class GaugeVideoProperty extends GaugeProperty { + constructor() { + super(); + this.options = { + address: '' + }; + } +} + +/***/ }), + +/***/ 8906: +/*!*************************************!*\ + !*** ./src/app/_models/language.ts ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LANGUAGE_TEXT_KEY_PREFIX: () => (/* binding */ LANGUAGE_TEXT_KEY_PREFIX), +/* harmony export */ Language: () => (/* binding */ Language), +/* harmony export */ LanguageText: () => (/* binding */ LanguageText), +/* harmony export */ Languages: () => (/* binding */ Languages) +/* harmony export */ }); +class Languages { + default; + options = []; +} +class Language { + id; + name; +} +class LanguageText { + id; + name; + group; + value; + translations; +} +const LANGUAGE_TEXT_KEY_PREFIX = '@'; + +/***/ }), + +/***/ 92688: +/*!*********************************!*\ + !*** ./src/app/_models/maps.ts ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MAPSLOCATION_PREFIX: () => (/* binding */ MAPSLOCATION_PREFIX), +/* harmony export */ MapsLocation: () => (/* binding */ MapsLocation) +/* harmony export */ }); +class MapsLocation { + id; + name; + latitude; + longitude; + description; + viewId; + pageId; + url; + constructor(_id) { + this.id = _id; + } +} +const MAPSLOCATION_PREFIX = 'l_'; + +/***/ }), + +/***/ 96841: +/*!*****************************************!*\ + !*** ./src/app/_models/notification.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NOTIFY_PREFIX: () => (/* binding */ NOTIFY_PREFIX), +/* harmony export */ Notification: () => (/* binding */ Notification), +/* harmony export */ NotificationsType: () => (/* binding */ NotificationsType) +/* harmony export */ }); +class Notification { + id; + name; + receiver; + delay = 1; + interval = 0; + enabled = true; + text; + type; + subscriptions = {}; + options; + constructor(_id) { + this.id = _id; + } +} +var NotificationsType; +(function (NotificationsType) { + NotificationsType["alarms"] = "notification.type-alarm"; + NotificationsType["trigger"] = "notification.type-trigger"; +})(NotificationsType || (NotificationsType = {})); +const NOTIFY_PREFIX = 'n_'; + +/***/ }), + +/***/ 2594: +/*!***********************************!*\ + !*** ./src/app/_models/plugin.ts ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Plugin: () => (/* binding */ Plugin), +/* harmony export */ PluginGroupType: () => (/* binding */ PluginGroupType), +/* harmony export */ PluginType: () => (/* binding */ PluginType) +/* harmony export */ }); +class Plugin { + name; + type; + version; + current; + status; + pkg; + dinamic; + group; +} +var PluginType; +(function (PluginType) { + PluginType["OPCUA"] = "OPCUA"; + PluginType["BACnet"] = "BACnet"; + PluginType["Modbus"] = "Modbus"; + PluginType["Raspberry"] = "Raspberry"; + PluginType["SiemensS7"] = "SiemensS7"; + PluginType["EthernetIP"] = "EthernetIP"; + PluginType["MELSEC"] = "MELSEC"; +})(PluginType || (PluginType = {})); +var PluginGroupType; +(function (PluginGroupType) { + PluginGroupType["Chart"] = "Chart"; + PluginGroupType["Service"] = "Service"; +})(PluginGroupType || (PluginGroupType = {})); + +/***/ }), + +/***/ 67033: +/*!************************************!*\ + !*** ./src/app/_models/project.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ProjectData: () => (/* binding */ ProjectData), +/* harmony export */ ProjectDataCmdType: () => (/* binding */ ProjectDataCmdType), +/* harmony export */ UploadFile: () => (/* binding */ UploadFile) +/* harmony export */ }); +/* harmony import */ var _device__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device */ 15625); +/* harmony import */ var _hmi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hmi */ 84126); +/* harmony import */ var _language__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./language */ 8906); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _client_access__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./client-access */ 7579); + + + + + +class ProjectData { + version = '1.01'; + /** Project name */ + name; + /** FUXA Server */ + server = new _device__WEBPACK_IMPORTED_MODULE_0__.Device(_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getGUID(_device__WEBPACK_IMPORTED_MODULE_0__.DEVICE_PREFIX)); + /** Hmi resource, layout, SVG, etc. */ + hmi = new _hmi__WEBPACK_IMPORTED_MODULE_1__.Hmi(); + /** Devices, connection, Tags, etc. */ + devices = {}; + /** Charts, Tags, colors, etc. */ + charts = []; + /** Graphs, Bar, Pie */ + graphs = []; + /** Alarms, Tags, logic, level, colors, etc. */ + alarms = []; + /** Notifications */ + notifications = []; + /** Scripts */ + scripts = []; + /** Reports */ + reports = []; + /** Texts */ + texts = []; + /** Language */ + languages = new _language__WEBPACK_IMPORTED_MODULE_2__.Languages(); + /** Plugins, name, version */ + plugin = []; + /** Maps location */ + mapsLocations = []; + /** ClientAccess */ + clientAccess = new _client_access__WEBPACK_IMPORTED_MODULE_4__.ClientAccess(); +} +var ProjectDataCmdType; +(function (ProjectDataCmdType) { + ProjectDataCmdType["SetDevice"] = "set-device"; + ProjectDataCmdType["DelDevice"] = "del-device"; + ProjectDataCmdType["SetView"] = "set-view"; + ProjectDataCmdType["DelView"] = "del-view"; + ProjectDataCmdType["HmiLayout"] = "layout"; + ProjectDataCmdType["Charts"] = "charts"; + ProjectDataCmdType["Graphs"] = "graphs"; + ProjectDataCmdType["Languages"] = "languages"; + ProjectDataCmdType["ClientAccess"] = "client-access"; + ProjectDataCmdType["SetText"] = "set-text"; + ProjectDataCmdType["DelText"] = "del-text"; + ProjectDataCmdType["SetAlarm"] = "set-alarm"; + ProjectDataCmdType["DelAlarm"] = "del-alarm"; + ProjectDataCmdType["SetNotification"] = "set-notification"; + ProjectDataCmdType["DelNotification"] = "del-notification"; + ProjectDataCmdType["SetScript"] = "set-script"; + ProjectDataCmdType["DelScript"] = "del-script"; + ProjectDataCmdType["SetReport"] = "set-report"; + ProjectDataCmdType["DelReport"] = "del-report"; + ProjectDataCmdType["SetMapsLocation"] = "set-maps-location"; + ProjectDataCmdType["DelMapsLocation"] = "del-maps-location"; +})(ProjectDataCmdType || (ProjectDataCmdType = {})); +class UploadFile { + location; +} + +/***/ }), + +/***/ 90440: +/*!***********************************!*\ + !*** ./src/app/_models/report.ts ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ REPORT_PREFIX: () => (/* binding */ REPORT_PREFIX), +/* harmony export */ Report: () => (/* binding */ Report), +/* harmony export */ ReportColumns: () => (/* binding */ ReportColumns), +/* harmony export */ ReportColumnsType: () => (/* binding */ ReportColumnsType), +/* harmony export */ ReportDateRangeType: () => (/* binding */ ReportDateRangeType), +/* harmony export */ ReportFunctionType: () => (/* binding */ ReportFunctionType), +/* harmony export */ ReportIntervalType: () => (/* binding */ ReportIntervalType), +/* harmony export */ ReportItemType: () => (/* binding */ ReportItemType), +/* harmony export */ ReportSchedulingType: () => (/* binding */ ReportSchedulingType), +/* harmony export */ ReportTableColumnType: () => (/* binding */ ReportTableColumnType) +/* harmony export */ }); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/utils */ 91019); + +class Report { + id; + name; + receiver; + scheduling; + docproperty; + content; + constructor(_id) { + this.id = _id; + this.docproperty = this.defaultDocProperty(); + this.scheduling = _helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.getEnumKey(ReportSchedulingType, ReportSchedulingType.week); + this.content = { + items: [] + }; + } + defaultDocProperty() { + return { + pageSize: 'A4', + pageOrientation: 'portrait', + pageMargins: [60, 40, 40, 40], + fontName: 'Helvetica' + }; + } +} +var ReportSchedulingType; +(function (ReportSchedulingType) { + ReportSchedulingType["none"] = "report.scheduling-none"; + ReportSchedulingType["day"] = "report.scheduling-day"; + ReportSchedulingType["week"] = "report.scheduling-week"; + ReportSchedulingType["month"] = "report.scheduling-month"; +})(ReportSchedulingType || (ReportSchedulingType = {})); +var ReportTableColumnType; +(function (ReportTableColumnType) { + ReportTableColumnType[ReportTableColumnType["timestamp"] = 0] = "timestamp"; + ReportTableColumnType[ReportTableColumnType["tag"] = 1] = "tag"; +})(ReportTableColumnType || (ReportTableColumnType = {})); +var ReportItemType; +(function (ReportItemType) { + ReportItemType["text"] = "report.item-type-text"; + ReportItemType["table"] = "report.item-type-table"; + ReportItemType["alarms"] = "report.item-type-alarms"; + ReportItemType["chart"] = "report.item-type-chart"; +})(ReportItemType || (ReportItemType = {})); +var ReportDateRangeType; +(function (ReportDateRangeType) { + ReportDateRangeType["one"] = "report.item-daterange-none"; + ReportDateRangeType["day"] = "report.item-daterange-day"; + ReportDateRangeType["week"] = "report.item-daterange-week"; + ReportDateRangeType["month"] = "report.item-daterange-month"; +})(ReportDateRangeType || (ReportDateRangeType = {})); +var ReportIntervalType; +(function (ReportIntervalType) { + ReportIntervalType["min5"] = "report.item-interval-min5"; + ReportIntervalType["min10"] = "report.item-interval-min10"; + ReportIntervalType["min30"] = "report.item-interval-min30"; + ReportIntervalType["hour"] = "report.item-interval-hour"; + ReportIntervalType["day"] = "report.item-interval-day"; +})(ReportIntervalType || (ReportIntervalType = {})); +var ReportFunctionType; +(function (ReportFunctionType) { + ReportFunctionType["min"] = "report.item-function-min"; + ReportFunctionType["max"] = "report.item-function-max"; + ReportFunctionType["average"] = "report.item-function-average"; + ReportFunctionType["sum"] = "report.item-function-sum"; +})(ReportFunctionType || (ReportFunctionType = {})); +const REPORT_PREFIX = 'r_'; +var ReportColumnsType; +(function (ReportColumnsType) { + ReportColumnsType["name"] = "name"; + ReportColumnsType["ontime"] = "ontime"; + ReportColumnsType["download"] = "download"; + ReportColumnsType["delete"] = "delete"; +})(ReportColumnsType || (ReportColumnsType = {})); +const ReportColumns = Object.values(ReportColumnsType); + +/***/ }), + +/***/ 93226: +/*!**************************************!*\ + !*** ./src/app/_models/resources.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResourceGroup: () => (/* binding */ ResourceGroup), +/* harmony export */ ResourceItem: () => (/* binding */ ResourceItem), +/* harmony export */ ResourceType: () => (/* binding */ ResourceType), +/* harmony export */ Resources: () => (/* binding */ Resources), +/* harmony export */ WidgetsResourceType: () => (/* binding */ WidgetsResourceType) +/* harmony export */ }); +class Resources { + type; + groups; +} +var ResourceType; +(function (ResourceType) { + ResourceType["images"] = "images"; + ResourceType["widgets"] = "widgets"; +})(ResourceType || (ResourceType = {})); +class ResourceGroup { + name; + label; + items; +} +class ResourceItem { + name; + label; + path; +} +var WidgetsResourceType; +(function (WidgetsResourceType) { + WidgetsResourceType["dir"] = "folder"; + WidgetsResourceType["file"] = "file"; +})(WidgetsResourceType || (WidgetsResourceType = {})); + +/***/ }), + +/***/ 10846: +/*!***********************************!*\ + !*** ./src/app/_models/script.ts ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SCRIPT_PARAMS_MAP: () => (/* binding */ SCRIPT_PARAMS_MAP), +/* harmony export */ SCRIPT_PREFIX: () => (/* binding */ SCRIPT_PREFIX), +/* harmony export */ SchedulerType: () => (/* binding */ SchedulerType), +/* harmony export */ Script: () => (/* binding */ Script), +/* harmony export */ ScriptMode: () => (/* binding */ ScriptMode), +/* harmony export */ ScriptParam: () => (/* binding */ ScriptParam), +/* harmony export */ ScriptParamFilterType: () => (/* binding */ ScriptParamFilterType), +/* harmony export */ ScriptParamType: () => (/* binding */ ScriptParamType), +/* harmony export */ ScriptSchedulingMode: () => (/* binding */ ScriptSchedulingMode), +/* harmony export */ ScriptTest: () => (/* binding */ ScriptTest), +/* harmony export */ SystemFunctions: () => (/* binding */ SystemFunctions), +/* harmony export */ TemplatesCode: () => (/* binding */ TemplatesCode) +/* harmony export */ }); +class Script { + id; + name; + code; + sync = false; + parameters = []; + scheduling; + permission; + permissionRoles; + mode = ScriptMode.SERVER; + constructor(_id) { + this.id = _id; + } +} +class ScriptTest extends Script { + test = true; + outputId; // to filter the console output sended from backend script runner + constructor(_id, _name) { + super(_id); + this.name = _name; + } +} +class ScriptParam { + name; + type; + value; + constructor(_name, _type) { + this.name = _name; + this.type = _type; + } +} +var ScriptParamType; +(function (ScriptParamType) { + ScriptParamType["tagid"] = "tagid"; + ScriptParamType["value"] = "value"; + ScriptParamType["chart"] = "chart"; +})(ScriptParamType || (ScriptParamType = {})); +const SCRIPT_PREFIX = 's_'; +const SCRIPT_PARAMS_MAP = 'params'; +var ScriptSchedulingMode; +(function (ScriptSchedulingMode) { + ScriptSchedulingMode["interval"] = "interval"; + ScriptSchedulingMode["start"] = "start"; + ScriptSchedulingMode["scheduling"] = "scheduling"; +})(ScriptSchedulingMode || (ScriptSchedulingMode = {})); +var SchedulerType; +(function (SchedulerType) { + SchedulerType[SchedulerType["weekly"] = 0] = "weekly"; + SchedulerType[SchedulerType["date"] = 1] = "date"; +})(SchedulerType || (SchedulerType = {})); +class SystemFunctions { + functions = []; + constructor(mode) { + this.functions = this.allFunctions.filter(sf => !sf.mode || !mode || sf.mode === mode); + } + allFunctions = [{ + name: '$setTag', + mode: null, + text: 'script.sys-fnc-settag-text', + tooltip: 'script.sys-fnc-settag-tooltip', + params: [true, false] + }, { + name: '$getTag', + mode: null, + text: 'script.sys-fnc-gettag-text', + tooltip: 'script.sys-fnc-gettag-tooltip', + params: [true] + }, { + name: '$getTagId', + mode: null, + text: 'script.sys-fnc-getTagId-text', + tooltip: 'script.sys-fnc-getTagId-tooltip', + params: [false], + paramsText: 'script.sys-fnc-getTagId-params' + }, { + name: '$getTagDaqSettings', + mode: null, + text: 'script.sys-fnc-getTagDaqSettings-text', + tooltip: 'script.sys-fnc-getTagDaqSettings-tooltip', + params: [true], + paramsText: 'script.sys-fnc-getTagDaqSettings-params' + }, { + name: '$setTagDaqSettings', + mode: null, + text: 'script.sys-fnc-setTagDaqSettings-text', + tooltip: 'script.sys-fnc-setTagDaqSettings-tooltip', + params: [true, false], + paramsText: 'script.sys-fnc-setTagDaqSettings-params' + }, { + name: '$setView', + mode: null, + text: 'script.sys-fnc-setview-text', + tooltip: 'script.sys-fnc-setview-tooltip', + params: [false], + paramsText: 'script.sys-fnc-setview-params' + }, { + name: '$openCard', + mode: null, + text: 'script.sys-fnc-opencard-text', + tooltip: 'script.sys-fnc-opencard-tooltip', + params: [false], + paramsText: 'script.sys-fnc-opencard-params' + }, { + name: '$enableDevice', + mode: null, + text: 'script.sys-fnc-enableDevice-text', + tooltip: 'script.sys-fnc-enableDevice-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-enableDevice-params' + }, { + name: '$getDeviceProperty', + mode: null, + text: 'script.sys-fnc-getDeviceProperty-text', + tooltip: 'script.sys-fnc-getDeviceProperty-tooltip', + params: [false], + paramsText: 'script.sys-fnc-getDeviceProperty-params' + }, { + name: '$setDeviceProperty', + mode: null, + text: 'script.sys-fnc-setDeviceProperty-text', + tooltip: 'script.sys-fnc-setDeviceProperty-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-setDeviceProperty-params' + }, { + name: '$getDevice', + mode: ScriptMode.SERVER, + text: 'script.sys-fnc-getDevice-text', + tooltip: 'script.sys-fnc-getDevice-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-getDevice-params' + }, { + name: '$setAdapterToDevice', + mode: ScriptMode.CLIENT, + text: 'script.sys-fnc-setAdapterToDevice-text', + tooltip: 'script.sys-fnc-setAdapterToDevice-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-setAdapterToDevice-params' + }, { + name: '$resolveAdapterTagId', + mode: ScriptMode.CLIENT, + text: 'script.sys-fnc-resolveAdapterTagId-text', + tooltip: 'script.sys-fnc-resolveAdapterTagId-tooltip', + params: [true], + paramsText: 'script.sys-fnc-resolveAdapterTagId-params' + }, { + name: '$invokeObject', + mode: ScriptMode.CLIENT, + text: 'script.sys-fnc-invokeObject-text', + tooltip: 'script.sys-fnc-invokeObject-tooltip', + params: [false, false, false], + paramsText: 'script.sys-fnc-invokeObject-params' + }, { + name: '$runServerScript', + mode: ScriptMode.CLIENT, + text: 'script.sys-fnc-runServerScript-text', + tooltip: 'script.sys-fnc-runServerScript-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-runServerScript-params' + }, { + name: '$getHistoricalTags', + mode: null, + text: 'script.sys-fnc-getHistoricalTag-text', + tooltip: 'script.sys-fnc-getHistoricalTag-tooltip', + params: ['array', false, false], + paramsText: 'script.sys-fnc-getHistoricalTag-params', + paramFilter: ScriptParamFilterType.history + }, { + name: '$sendMessage', + mode: null, + text: 'script.sys-fnc-sendMessage-text', + tooltip: 'script.sys-fnc-sendMessage-tooltip', + params: [false, false, false], + paramsText: 'script.sys-fnc-sendMessage-params' + }, { + name: '$getAlarms', + mode: null, + text: 'script.sys-fnc-getAlarms-text', + tooltip: 'script.sys-fnc-getAlarms-tooltip', + params: [], + paramsText: 'script.sys-fnc-getAlarms-params' + }, { + name: '$getAlarmsHistory', + mode: null, + text: 'script.sys-fnc-getAlarmsHistory-text', + tooltip: 'script.sys-fnc-getAlarmsHistory-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-getAlarmsHistory-params' + }, { + name: '$ackAlarm', + mode: null, + text: 'script.sys-fnc-ackAlarms-text', + tooltip: 'script.sys-fnc-ackAlarms-tooltip', + params: [false, false], + paramsText: 'script.sys-fnc-ackAlarms-params' + }]; +} +class TemplatesCode { + functions = []; + constructor(mode) { + this.functions = this.allFunctions.filter(sf => !sf.mode || !mode || sf.mode === mode); + } + allFunctions = [{ + name: 'chart-data', + mode: null, + text: 'script.template-chart-data-text', + tooltip: 'script.template-chart-data-tooltip', + code: `// Add script parameter 'paramLines' as Chart lines (array) +if (paramLines && Array.isArray(paramLines)) { + const count = 10; + paramLines.forEach(line => { + var y = []; + var x = []; + for (var i = 0; i < count; i++) { + const randomNumber = Math.floor(Math.random() * 21); + y.push(randomNumber); + x.push(i); + } + line['y'] = y; + line['x'] = x; + }); + return paramLines; +} else { + return 'Missing chart lines'; +}` + }, { + name: 'chart-data-touch', + mode: null, + text: 'script.template-chart-data-touch-text', + tooltip: 'script.template-chart-data-touch-tooltip', + code: `// Add script parameters 'paramLines' as Chart lines (array), 'xVal' as X axis touch point, 'yVal' as Y axis touch point +if (paramLines && Array.isArray(paramLines)) { + const count = 10; + paramLines.forEach(line => { + var y = []; + var x = []; + for (var i = 0; i < count; i++) { + const randomNumber = Math.floor(Math.random() * 21); + y.push(randomNumber); + x.push(i); + } + if (typeof xVal === 'number' && typeof yVal === 'number') { + x.push(Math.round(xVal)); + y.push(Math.round(yVal)); + } + line['y'] = y; + line['x'] = x; + }); + return paramLines; +} else { + return 'Missing chart lines'; +}` + }, { + name: 'invoke-chart-update-options', + mode: ScriptMode.CLIENT, + text: 'script.template-invoke-chart-update-options-text', + tooltip: 'script.template-invoke-chart-update-options-tooltip', + code: `let opt = $invokeObject('chart_1', 'getOptions'); +if (opt) { + opt.scaleY1min = 100; + opt.scaleY1max = 200; +} +$invokeObject('chart_1', 'updateOptions', opt);` + }, { + name: 'getHistoricalTags', + mode: null, + text: 'script.template-getHistoricalTagsoptions-text', + tooltip: 'script.template-getHistoricalTagsoptions-tooltip', + code: `const to = Date.now(); +var from = Date.now() - (1000 * 3600); // 1 hour +var data = await $getHistoricalTags(['t_a95d5816-9f1e4a67' /* opcua - Byte */], from, to); +console.log(JSON.stringify(data));` + }]; +} +var ScriptMode; +(function (ScriptMode) { + ScriptMode["CLIENT"] = "CLIENT"; + ScriptMode["SERVER"] = "SERVER"; +})(ScriptMode || (ScriptMode = {})); +var ScriptParamFilterType; +(function (ScriptParamFilterType) { + ScriptParamFilterType["history"] = "history"; +})(ScriptParamFilterType || (ScriptParamFilterType = {})); + +/***/ }), + +/***/ 99234: +/*!*************************************!*\ + !*** ./src/app/_models/settings.ts ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AlarmsRetentionType: () => (/* binding */ AlarmsRetentionType), +/* harmony export */ AlarmsSettings: () => (/* binding */ AlarmsSettings), +/* harmony export */ AppSettings: () => (/* binding */ AppSettings), +/* harmony export */ DaqStore: () => (/* binding */ DaqStore), +/* harmony export */ DaqStoreRetentionType: () => (/* binding */ DaqStoreRetentionType), +/* harmony export */ DaqStoreType: () => (/* binding */ DaqStoreType), +/* harmony export */ MailMessage: () => (/* binding */ MailMessage), +/* harmony export */ SmtpSettings: () => (/* binding */ SmtpSettings), +/* harmony export */ StoreCredentials: () => (/* binding */ StoreCredentials), +/* harmony export */ influxDBVersionType: () => (/* binding */ influxDBVersionType) +/* harmony export */ }); +class AppSettings { + /** Editor language */ + language = 'en'; + /** Web server port */ + uiPort = 1881; + /** Security access to enable user and authentication */ + secureEnabled = false; + /** Expiration of authanticated token (15m)*/ + tokenExpiresIn = '1h'; + /** authentication are valid only for edit mode */ + secureOnlyEditor = false; + /** Broadcast all tags, without check the frontend views */ + broadcastAll = false; + /** Smtp to send mails */ + smtp = new SmtpSettings(); + /** Daq store database */ + daqstore = new DaqStore(); + /** Alarms store settings */ + alarms = new AlarmsSettings(); + /** Log Full enabled to log all setValue */ + logFull = false; + /** User role enabled (default group) */ + userRole = false; +} +class SmtpSettings { + /** Host address */ + host = ''; + /** Connection port */ + port = 587; + /** Sender Email address */ + mailsender = ''; + /** authentication user */ + username = ''; + /** authentication password */ + password = ''; + constructor(smtp = null) { + if (smtp) { + this.host = smtp.host; + this.port = smtp.port; + this.mailsender = smtp.mailsender; + this.username = smtp.username; + this.password = smtp.password; + } + } +} +class DaqStore { + type = DaqStoreType.SQlite; + varsion; + url; + organization; + credentials; + bucket; + database; + retention = DaqStoreRetentionType.year1; + constructor(daqstore = null) { + if (daqstore) { + this.type = daqstore.type; + this.url = daqstore.url; + this.organization = daqstore.organization; + this.credentials = daqstore.credentials; + this.bucket = daqstore.bucket; + this.database = daqstore.database; + this.retention = daqstore.retention || DaqStoreRetentionType.year1; + } + } + isEquals(store) { + if (this.type === store.type && this.bucket === store.bucket && this.url === store.url && this.organization === store.organization && this.database === store.database && this.credentials && StoreCredentials.isEquals(this.credentials, store.credentials) && this.retention === store.retention) { + return true; + } + return false; + } +} +class AlarmsSettings { + retention = AlarmsRetentionType.year1; +} +class StoreCredentials { + token; + username; + password; + static isEquals(a, b) { + return a.token === b.token && a.username === b.username && a.password === b.password; + } +} +var DaqStoreType; +(function (DaqStoreType) { + DaqStoreType["SQlite"] = "SQlite"; + DaqStoreType["influxDB"] = "influxDB"; + DaqStoreType["influxDB18"] = "influxDB 1.8"; + DaqStoreType["TDengine"] = "TDengine"; +})(DaqStoreType || (DaqStoreType = {})); +var influxDBVersionType; +(function (influxDBVersionType) { + influxDBVersionType["VERSION_18_FLUX"] = "1.8-flux"; + influxDBVersionType["VERSION_20"] = "2.0"; +})(influxDBVersionType || (influxDBVersionType = {})); +var DaqStoreRetentionType; +(function (DaqStoreRetentionType) { + DaqStoreRetentionType["none"] = "none"; + DaqStoreRetentionType["day1"] = "day1"; + DaqStoreRetentionType["days2"] = "days2"; + DaqStoreRetentionType["days3"] = "days3"; + DaqStoreRetentionType["days7"] = "days7"; + DaqStoreRetentionType["days14"] = "days14"; + DaqStoreRetentionType["days30"] = "days30"; + DaqStoreRetentionType["days90"] = "days90"; + DaqStoreRetentionType["year1"] = "year1"; + DaqStoreRetentionType["year3"] = "year3"; + DaqStoreRetentionType["year5"] = "year5"; +})(DaqStoreRetentionType || (DaqStoreRetentionType = {})); +var AlarmsRetentionType; +(function (AlarmsRetentionType) { + AlarmsRetentionType["none"] = "none"; + AlarmsRetentionType["days7"] = "days7"; + AlarmsRetentionType["days30"] = "days30"; + AlarmsRetentionType["days90"] = "days90"; + AlarmsRetentionType["year1"] = "year1"; + AlarmsRetentionType["year3"] = "year3"; + AlarmsRetentionType["year5"] = "year5"; +})(AlarmsRetentionType || (AlarmsRetentionType = {})); +class MailMessage { + from; + to; + subject; + text; + html; +} + +/***/ }), + +/***/ 252: +/*!*********************************!*\ + !*** ./src/app/_models/user.ts ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Role: () => (/* binding */ Role), +/* harmony export */ User: () => (/* binding */ User), +/* harmony export */ UserGroups: () => (/* binding */ UserGroups) +/* harmony export */ }); +class User { + username; + fullname; + password; + groups; + info; +} +class Role { + id; // GUID + name; + index; + description; +} +class UserGroups { + static ADMINMASK = [-1, 255]; + static EXTENSION = 8; + static Groups = [{ + id: 1, + label: 'Viewer' + }, { + id: 2, + label: 'Operator' + }, { + id: 4, + label: 'Engineer' + }, { + id: 8, + label: 'Supervisor' + }, { + id: 16, + label: 'Manager' + }, { + id: 32, + label: 'F' + }, { + id: 64, + label: 'G' + }, { + id: 128, + label: 'Administrator' + }]; + static GroupsToValue(grps, extended) { + let result = 0; + if (grps) { + for (let i = 0; i < grps.length; i++) { + result += grps[i].id; + } + } + let shift = extended ? this.EXTENSION : 0; + return result << shift; + } + static ValueToGroups(value, extended) { + let result = []; + let shift = extended ? this.EXTENSION : 0; + for (let i = 0; i < this.Groups.length; i++) { + if (value >> shift & this.Groups[i].id) { + result.push(this.Groups[i]); + } + } + return result; + } + static GroupToLabel(value) { + let result = []; + for (let i = 0; i < this.Groups.length; i++) { + if (value & this.Groups[i].id) { + result.push(this.Groups[i].label); + } + } + return result.join(', '); + } +} + +/***/ }), + +/***/ 49982: +/*!******************************************!*\ + !*** ./src/app/_services/app.service.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AppService: () => (/* binding */ AppService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _settings_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings.service */ 22044); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var AppService_1; + + + +let AppService = AppService_1 = class AppService { + settingsService; + onShowModeChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + onShowLoading = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + static APP_DEMO = 'demo'; + static APP_CLIENT = 'client'; + showMode; + constructor(settingsService) { + this.settingsService = settingsService; + } + setShowMode(mode) { + if (mode === 'editor' && this.settingsService.isEditModeLocked()) { + this.settingsService.notifyEditorLocked(); + return this.showMode; + } else { + this.showMode = mode; + this.onShowModeChanged.emit(this.showMode); + return this.showMode; + } + } + lockEditMode() { + this.settingsService.lockEditMode(); + } + unlockEditMode() { + this.settingsService.unlockEditMode(); + } + showLoading(show) { + this.onShowLoading.emit(show); + } + get isDemoApp() { + return _environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.type === AppService_1.APP_DEMO; + } + get isClientApp() { + return _environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.type === AppService_1.APP_CLIENT; + } + static ctorParameters = () => [{ + type: _settings_service__WEBPACK_IMPORTED_MODULE_1__.SettingsService + }]; + static propDecorators = { + onShowModeChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }], + onShowLoading: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }] + }; +}; +AppService = AppService_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)(), __metadata("design:paramtypes", [_settings_service__WEBPACK_IMPORTED_MODULE_1__.SettingsService])], AppService); + + +/***/ }), + +/***/ 48333: +/*!*******************************************!*\ + !*** ./src/app/_services/auth.service.ts ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AuthService: () => (/* binding */ AuthService), +/* harmony export */ UserProfile: () => (/* binding */ UserProfile) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_models/user */ 252); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _settings_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings.service */ 22044); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let AuthService = class AuthService { + http; + settings; + currentUser; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_2__.EndPointApi.getURL(); + currentUser$ = new rxjs__WEBPACK_IMPORTED_MODULE_5__.BehaviorSubject(null); + constructor(http, settings) { + this.http = http; + this.settings = settings; + let user = JSON.parse(localStorage.getItem('currentUser')); + if (user) { + this.currentUser = user; + } + this.currentUser$.next(this.currentUser); + } + signIn(username, password) { + return new rxjs__WEBPACK_IMPORTED_MODULE_6__.Observable(observer => { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_7__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + return this.http.post(this.endPointConfig + '/api/signin', { + username: username, + password: password + }).subscribe(result => { + if (result) { + this.currentUser = result.data; + if (this.currentUser.info) { + this.currentUser.infoRoles = JSON.parse(this.currentUser.info)?.roles; + } + this.saveUserToken(this.currentUser); + this.currentUser$.next(this.currentUser); + } + observer.next(null); + }, err => { + console.error(err); + observer.error(err); + }); + } else { + observer.next(null); + } + }); + } + signOut() { + if (this.removeUser()) { + window.location.reload(); + } + } + getUser() { + return this.currentUser; + } + getUserProfile() { + return this.currentUser; + } + getUserToken() { + return this.currentUser?.token; + } + isAdmin() { + if (this.currentUser && _models_user__WEBPACK_IMPORTED_MODULE_0__.UserGroups.ADMINMASK.indexOf(this.currentUser.groups) !== -1) { + return true; + } + return false; + } + setNewToken(token) { + this.currentUser.token = token; + this.saveUserToken(this.currentUser); + } + // to check by page refresh + saveUserToken(user) { + localStorage.setItem('currentUser', JSON.stringify(user)); + } + removeUser() { + const result = !!this.currentUser; + this.currentUser = null; + localStorage.removeItem('currentUser'); + this.currentUser$.next(this.currentUser); + return result; + } + /** + * for Role show/enabled or 16 bitmask (0-7 enabled / 8-15 show) + * @param {*} contextPermission permission could be permission or permissionRoles + * @param {*} forceUndefined return true if params are undefined/null/0 + * @returns { show: true/false, enabled: true/false } + */ + checkPermission(context, forceUndefined = false) { + var userPermission = this.currentUser?.groups; + const settings = this.settings.getSettings(); + if (!userPermission && !context) { + // No user and No context + return { + show: forceUndefined || !settings.secureEnabled, + enabled: forceUndefined || !settings.secureEnabled + }; + } + if (userPermission === -1 || userPermission === 255 || _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(context)) { + // admin + return { + show: true, + enabled: true + }; + } + const contextPermission = settings.userRole ? context.permissionRoles : context.permission; + if (settings.userRole) { + if (userPermission && !contextPermission) { + return { + show: forceUndefined, + enabled: forceUndefined + }; + } + } else { + if (userPermission && !context && !contextPermission) { + return { + show: true, + enabled: false + }; + } + } + var result = { + show: false, + enabled: false + }; + if (settings.userRole) { + var userPermissionInfoRoles = this.currentUser?.infoRoles; + if (userPermissionInfoRoles) { + let voidRole = { + show: true, + enabled: true + }; + if (contextPermission.show && contextPermission.show.length) { + result.show = userPermissionInfoRoles.some(role => contextPermission.show.includes(role)); + voidRole.show = false; + } + if (contextPermission.enabled && contextPermission.enabled.length) { + result.enabled = userPermissionInfoRoles.some(role => contextPermission.enabled.includes(role)); + voidRole.enabled = false; + } + if (voidRole.show && voidRole.enabled) { + return voidRole; + } + } else { + result.show = contextPermission && contextPermission.show && contextPermission.show.length ? false : true; + result.enabled = contextPermission && contextPermission.enabled && contextPermission.enabled.length ? false : true; + } + } else { + if (userPermission) { + var mask = contextPermission >> 8; + result.show = mask ? (mask & userPermission) !== 0 : true; + mask = contextPermission & 255; + result.enabled = mask ? (mask & userPermission) !== 0 : true; + } else { + result.show = contextPermission ? false : true; + result.enabled = contextPermission ? false : true; + } + } + return result; + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_7__.HttpClient + }, { + type: _settings_service__WEBPACK_IMPORTED_MODULE_3__.SettingsService + }]; +}; +AuthService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Injectable)(), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_7__.HttpClient, _settings_service__WEBPACK_IMPORTED_MODULE_3__.SettingsService])], AuthService); + +class UserProfile extends _models_user__WEBPACK_IMPORTED_MODULE_0__.User { + token; + infoRoles; +} + +/***/ }), + +/***/ 80470: +/*!**********************************************!*\ + !*** ./src/app/_services/command.service.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CommanType: () => (/* binding */ CommanType), +/* harmony export */ CommandService: () => (/* binding */ CommandService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rcgi/rcgi.service */ 31865); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let CommandService = class CommandService { + rcgiService; + translateService; + toastr; + server; + constructor(rcgiService, translateService, toastr) { + this.rcgiService = rcgiService; + this.translateService = translateService; + this.toastr = toastr; + this.server = rcgiService.rcgi; + } + getReportFile(reportName) { + return this.server.downloadFile(reportName, CommanType.reportDownload); + } + notifyError(err) { + var msg = ''; + this.translateService.get('msg.report-build-error').subscribe(txt => { + msg = txt; + }); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + static ctorParameters = () => [{ + type: _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__.RcgiService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_2__.ToastrService + }]; +}; +CommandService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__.RcgiService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_2__.ToastrService])], CommandService); + +var CommanType; +(function (CommanType) { + CommanType["reportDownload"] = "REPORT-DOWNLOAD"; +})(CommanType || (CommanType = {})); +; + +/***/ }), + +/***/ 39231: +/*!*****************************************************!*\ + !*** ./src/app/_services/data-converter.service.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DataConverterService: () => (/* binding */ DataConverterService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! file-saver */ 46778); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_0__); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var DataConverterService_1; + + +let DataConverterService = DataConverterService_1 = class DataConverterService { + static columnDelimiter = ','; + static lineDelimiter = '\n'; + constructor() {} + exportTagsData(data) { + let content = ''; + const type = 'csv'; + let filename = `${data.name}.${type}`; + if (type === 'csv') { + for (let col = 0; col < data.columns.length; col++) { + content += `${data.columns[col].header}`; + if (col < data.columns.length - 1) { + content += `${DataConverterService_1.columnDelimiter}`; + } + } + content += `${DataConverterService_1.lineDelimiter}`; + for (let row = 0; row < data.columns[0].values.length; row++) { + for (let col = 0; col < data.columns.length; col++) { + content += `${data.columns[col].values[row]}`; + if (col < data.columns.length - 1) { + content += `${DataConverterService_1.columnDelimiter}`; + } + } + content += `${DataConverterService_1.lineDelimiter}`; + } + } + let blob = new Blob([content], { + type: 'text/plain;charset=utf-8' + }); + file_saver__WEBPACK_IMPORTED_MODULE_0__.saveAs(blob, filename); + } + static ctorParameters = () => []; +}; +DataConverterService = DataConverterService_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [])], DataConverterService); + + +/***/ }), + +/***/ 90569: +/*!***********************************************!*\ + !*** ./src/app/_services/diagnose.service.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DiagnoseService: () => (/* binding */ DiagnoseService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../environments/environment */ 20553); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let DiagnoseService = class DiagnoseService { + http; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.EndPointApi.getURL(); + constructor(http) { + this.http = http; + } + getLogsDir() { + return this.http.get(this.endPointConfig + '/api/logsdir'); + } + getLogs(logReq) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + const requestOptions = { + /* other options here */ + responseType: 'text', + headers: header, + params: logReq, + observe: 'response' + }; + return this.http.get(this.endPointConfig + '/api/logs', requestOptions); + } + sendMail(msg, smtp) { + return new rxjs__WEBPACK_IMPORTED_MODULE_3__.Observable(observer => { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + msg: msg, + smtp: smtp + }; + this.http.post(this.endPointConfig + '/api/sendmail', { + headers: header, + params: params + }).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + observer.error(err); + }); + } else { + observer.next(null); + } + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpClient + }]; +}; +DiagnoseService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpClient])], DiagnoseService); + + +/***/ }), + +/***/ 6159: +/*!************************************************!*\ + !*** ./src/app/_services/heartbeat.service.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HeartbeatService: () => (/* binding */ HeartbeatService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rcgi/rcgi.service */ 31865); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 13379); +/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auth.service */ 48333); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 27947); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let HeartbeatService = class HeartbeatService { + authService; + router; + rcgiService; + heartbeatInterval = 5 * 60 * 1000; + server; + heartbeatSubscription; + activity = false; + constructor(authService, router, rcgiService) { + this.authService = authService; + this.router = router; + this.rcgiService = rcgiService; + this.server = rcgiService.rcgi; + } + startHeartbeatPolling() { + if (this.server) { + this.stopHeartbeatPolling(); + this.heartbeatSubscription = (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.interval)(this.heartbeatInterval).subscribe(() => { + this.server.heartbeat(this.activity).subscribe(res => { + if (res?.message === 'tokenRefresh' && res?.token) { + this.authService.setNewToken(res.token); + } else if (res?.message === 'guest' && res?.token) { + this.authService.signOut(); + } + }, error => { + if (error instanceof _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpErrorResponse) { + if (error.status === 401 || error.status === 403) { + this.router.navigateByUrl('/'); + } + } + }); + }); + } + } + stopHeartbeatPolling() { + if (this.heartbeatSubscription) { + this.heartbeatSubscription.unsubscribe(); + } + } + setActivity(activity) { + this.activity = activity; + } + static ctorParameters = () => [{ + type: _auth_service__WEBPACK_IMPORTED_MODULE_1__.AuthService + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_4__.Router + }, { + type: _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__.RcgiService + }]; +}; +HeartbeatService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_auth_service__WEBPACK_IMPORTED_MODULE_1__.AuthService, _angular_router__WEBPACK_IMPORTED_MODULE_4__.Router, _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__.RcgiService])], HeartbeatService); + + +/***/ }), + +/***/ 69578: +/*!******************************************!*\ + !*** ./src/app/_services/hmi.service.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HmiService: () => (/* binding */ HmiService), +/* harmony export */ IoEventTypes: () => (/* binding */ IoEventTypes), +/* harmony export */ ScriptCommandEnum: () => (/* binding */ ScriptCommandEnum) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ 68589); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./auth.service */ 48333); +/* harmony import */ var _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../device-adapter/device-adapter.service */ 24299); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HmiService_1; + + + + + + + + + + + + + +let HmiService = HmiService_1 = class HmiService { + projectService; + translateService; + authService; + deviceAdapaterService; + toastr; + onVariableChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceBrowse = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceNodeAttribute = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDaqResult = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceProperty = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onHostInterfaces = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onAlarmsStatus = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceWebApiRequest = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceTagsRequest = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onDeviceOdbcQuery = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onScriptConsole = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onGoTo = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onOpen = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onSchedulerUpdated = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onSchedulerEventActive = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onSchedulerRemainingTime = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onGaugeEvent = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + onServerConnection$ = new rxjs__WEBPACK_IMPORTED_MODULE_10__.BehaviorSubject(false); + static separator = '^~^'; + hmi; + viewSignalGaugeMap = new ViewSignalGaugeMap(); + variables = {}; + alarms = { + highhigh: 0, + high: 0, + low: 0, + info: 0 + }; + socket; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_5__.EndPointApi.getURL(); //"http://localhost:1881"; + bridge = null; + addFunctionType = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeEventSetValueType, _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeEventSetValueType.add); + removeFunctionType = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeEventSetValueType, _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeEventSetValueType.remove); + homeTagsSubscription = []; + viewsTagsSubscription = []; + getGaugeMapped; // function binded in GaugeManager + constructor(projectService, translateService, authService, deviceAdapaterService, toastr) { + this.projectService = projectService; + this.translateService = translateService; + this.authService = authService; + this.deviceAdapaterService = deviceAdapaterService; + this.toastr = toastr; + this.initSocket(); + this.projectService.onLoadHmi.subscribe(() => { + this.hmi = this.projectService.getHmi(); + }); + this.authService.currentUser$.subscribe(userProfile => { + this.initSocket(userProfile?.token); + }); + } + /** + * Set signal value in current frontend signal array + * Called from Test and value beckame from backend + * @param sig + */ + setSignalValue(sig) { + // update the signals array value + // notify the gui + this.onVariableChanged.emit(sig); + } + /** + * Set signal value to backend + * Value input in frontend + * @param sigId + * @param value + */ + putSignalValue(sigId, value, fnc = null) { + sigId = this.deviceAdapaterService.resolveAdapterTagsId([sigId])[0]; + if (!this.variables[sigId]) { + this.variables[sigId] = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Variable(sigId, null, null); + } + this.variables[sigId].value = this.getValueInFunction(this.variables[sigId].value, value, fnc); + if (this.socket) { + let device = this.projectService.getDeviceFromTagId(sigId); + if (device) { + this.variables[sigId]['source'] = device.id; + } + if (device?.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.internal) { + this.variables[sigId].timestamp = new Date().getTime(); + this.setSignalValue(this.variables[sigId]); + device.tags[sigId].value = value; + } else { + this.socket.emit(IoEventTypes.DEVICE_VALUES, { + cmd: 'set', + var: this.variables[sigId], + fnc: [fnc, value] + }); + } + } else if (this.bridge) { + this.bridge.setDeviceValue(this.variables[sigId], { + fnc: [fnc, value] + }); + } else if (!_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + // for demo, only frontend + this.setSignalValue(this.variables[sigId]); + } + } + getAllSignals() { + return this.variables; + } + initSignalValues(sigIds) { + for (const [adapterId, deviceId] of Object.entries(sigIds)) { + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.isNullOrUndefined(this.variables[adapterId])) { + this.variables[adapterId].value = this.variables[deviceId]?.value || null; + } + } + } + /** + * return the value calculated with the function if defined + * @param value + * @param fnc + */ + getValueInFunction(current, value, fnc) { + try { + if (!fnc) { + return value; + } + if (!current) { + current = 0; + } + if (fnc === this.addFunctionType) { + return parseFloat(current) + parseFloat(value); + } else if (fnc === this.removeFunctionType) { + return parseFloat(current) - parseFloat(value); + } + } catch (err) { + console.error(err); + } + return value; + } + //#region Communication Socket.io and Bridge + /** + * Init the bridge for client communication + * @param bridge + * @returns + */ + initClient(bridge) { + if (!bridge) { + return false; + } + this.bridge = bridge; + if (this.bridge) { + this.bridge.onDeviceValues = tags => this.onDeviceValues(tags); + this.askDeviceValues(); + return true; + } + return false; + } + onDeviceValues(tags) { + for (let idx = 0; idx < tags.length; idx++) { + let varid = tags[idx].id; + if (!this.variables[varid]) { + this.variables[varid] = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Variable(varid, null, null); + } + this.variables[varid].value = tags[idx].value; + this.variables[varid].error = tags[idx].error; + this.setSignalValue(this.variables[varid]); + } + } + /** + * Init the socket and subsribe to device status and signal value change + */ + initSocket(token = null) { + // check to init socket io + if (!_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + return; + } + this.socket?.close(); + this.socket = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_0__.io)(`${this.endPointConfig}/?token=${token}`); + this.socket.on('connect', () => { + this.onServerConnection$.next(true); + this.tagsSubscribe(); + }); + this.socket.on('disconnect', reason => { + this.onServerConnection$.next(false); + console.log('socket disconnected: ', reason); + }); + this.socket.io.on('reconnect_attempt', () => { + console.log('socket.io try to reconnect...'); + }); + // devicse status + this.socket.on(IoEventTypes.DEVICE_STATUS, message => { + this.onDeviceChanged.emit(message); + if (message.status === 'connect-error' && this.hmi?.layout?.show_connection_error) { + let name = message.id; + let device = this.projectService.getDeviceFromId(message.id); + if (device) { + name = device.name; + } + let msg = ''; + this.translateService.get('msg.device-connection-error', { + value: name + }).subscribe(txt => { + msg = txt; + }); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true + // disableTimeOut: true + }); + } + }); + // device property + this.socket.on(IoEventTypes.DEVICE_PROPERTY, message => { + this.onDeviceProperty.emit(message); + }); + // devices values + this.socket.on(IoEventTypes.DEVICE_VALUES, message => { + const updateVariable = (id, value, timestamp) => { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.isNullOrUndefined(this.variables[id])) { + this.variables[id] = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Variable(id, null, null); + } + this.variables[id].value = value; + this.variables[id].timestamp = timestamp; + this.setSignalValue(this.variables[id]); + }; + for (let idx = 0; idx < message.values.length; idx++) { + const originalId = message.values[idx].id; + const value = message.values[idx].value; + const timestamp = message.values[idx].timestamp; + updateVariable(originalId, value, timestamp); + const adapterIds = this.deviceAdapaterService.resolveDeviceTagIdForAdapter(originalId); + if (adapterIds?.length) { + adapterIds.forEach(adapterId => { + updateVariable(adapterId, value, timestamp); + }); + } + } + }); + // device browse + this.socket.on(IoEventTypes.DEVICE_BROWSE, message => { + this.onDeviceBrowse.emit(message); + }); + // scheduler updated (one-time events removed, etc.) + this.socket.on(IoEventTypes.SCHEDULER_UPDATED, message => { + this.onSchedulerUpdated.emit(message); + }); + // scheduler event active state changed (START/STOP fired) + this.socket.on(IoEventTypes.SCHEDULER_ACTIVE, message => { + this.onSchedulerEventActive.emit(message); + }); + // scheduler remaining time update + this.socket.on(IoEventTypes.SCHEDULER_REMAINING, message => { + this.onSchedulerRemainingTime.emit(message); + }); + // device node attribute + this.socket.on(IoEventTypes.DEVICE_NODE_ATTRIBUTE, message => { + this.onDeviceNodeAttribute.emit(message); + }); + // daq values + this.socket.on(IoEventTypes.DAQ_RESULT, message => { + this.onDaqResult.emit(message); + }); + // alarms status + this.socket.on(IoEventTypes.ALARMS_STATUS, alarmsstatus => { + this.onAlarmsStatus.emit(alarmsstatus); + }); + this.socket.on(IoEventTypes.HOST_INTERFACES, message => { + this.onHostInterfaces.emit(message); + }); + this.socket.on(IoEventTypes.DEVICE_WEBAPI_REQUEST, message => { + this.onDeviceWebApiRequest.emit(message); + }); + this.socket.on(IoEventTypes.DEVICE_TAGS_REQUEST, message => { + this.onDeviceTagsRequest.emit(message); + }); + this.socket.on(IoEventTypes.DEVICE_ODBC_QUERY, message => { + this.onDeviceOdbcQuery.emit(message); + }); + // scripts + this.socket.on(IoEventTypes.SCRIPT_CONSOLE, message => { + this.onScriptConsole.emit(message); + }); + this.socket.on(IoEventTypes.SCRIPT_COMMAND, message => { + this.onScriptCommand(message); + }); + this.socket.on(IoEventTypes.ALIVE, message => { + this.onServerConnection$.next(true); + }); + this.askDeviceValues(); + this.askAlarmsStatus(); + } + /** + * Ask device status to backend + */ + askDeviceStatus() { + if (this.socket) { + this.socket.emit(IoEventTypes.DEVICE_STATUS, 'get'); + } + } + /** + * Ask device status to backend + */ + askDeviceProperty(endpoint, type) { + if (this.socket) { + let msg = { + endpoint: endpoint, + type: type + }; + this.socket.emit(IoEventTypes.DEVICE_PROPERTY, msg); + } + } + /** + * Ask device webapi result to test + */ + askWebApiProperty(property) { + if (this.socket) { + let msg = { + property: property + }; + this.socket.emit(IoEventTypes.DEVICE_WEBAPI_REQUEST, msg); + } + } + /** + * Ask device tags settings + */ + askDeviceTags(deviceId) { + if (this.socket) { + let msg = { + deviceId: deviceId + }; + this.socket.emit(IoEventTypes.DEVICE_TAGS_REQUEST, msg); + } + } + /** + * Execute ODBC query + */ + executeOdbcQuery(deviceId, query, requestId) { + if (this.socket) { + let msg = { + deviceId: deviceId, + query: query + }; + if (requestId) { + msg.requestId = requestId; + } + this.socket.emit(IoEventTypes.DEVICE_ODBC_QUERY, msg); + } + } + /** + * Ask host interface available + */ + askHostInterface() { + if (this.socket) { + this.socket.emit(IoEventTypes.HOST_INTERFACES, 'get'); + } + } + /** + * Ask device status to backend + */ + askDeviceValues() { + if (this.socket) { + this.socket.emit(IoEventTypes.DEVICE_VALUES, { + cmd: 'get' + }); + } else if (this.bridge) { + this.bridge.getDeviceValues(null); + } + } + /** + * Ask alarms status to backend + */ + askAlarmsStatus() { + if (this.socket) { + this.socket.emit(IoEventTypes.ALARMS_STATUS, 'get'); + } + } + emitMappedSignalsGauge(domViewId) { + let sigsToEmit = this.viewSignalGaugeMap.getSignalIds(domViewId); + for (let idx = 0; idx < sigsToEmit.length; idx++) { + if (this.variables[sigsToEmit[idx]]) { + this.setSignalValue(this.variables[sigsToEmit[idx]]); + } + } + } + /** + * Ask device browse to backend + */ + askDeviceBrowse(deviceId, node) { + if (this.socket) { + let msg = { + device: deviceId, + node: node + }; + this.socket.emit(IoEventTypes.DEVICE_BROWSE, msg); + } + } + /** + * Ask device node attribute to backend + */ + askNodeAttributes(deviceId, node) { + if (this.socket) { + let msg = { + device: deviceId, + node: node + }; + this.socket.emit(IoEventTypes.DEVICE_NODE_ATTRIBUTE, msg); + } + } + queryDaqValues(msg) { + if (this.socket) { + msg.sids = this.deviceAdapaterService.resolveAdapterTagsId(msg.sids); + this.socket.emit(IoEventTypes.DAQ_QUERY, msg); + } + } + tagsSubscribe(sendLastValue = false) { + if (this.socket) { + const mergedArray = this.viewsTagsSubscription.concat(this.homeTagsSubscription); + const mergedArrayResolvedAdapter = this.deviceAdapaterService.resolveAdapterTagsId(mergedArray); + let msg = { + tagsId: [...new Set(mergedArrayResolvedAdapter)], + sendLastValue: sendLastValue + }; + this.socket.emit(IoEventTypes.DEVICE_TAGS_SUBSCRIBE, msg); + } + } + /** + * Subscribe views tags values + */ + viewsTagsSubscribe(tagsId, sendLastValue = false) { + this.viewsTagsSubscription = tagsId; + this.tagsSubscribe(sendLastValue); + } + /** + * Subscribe only home tags value + */ + homeTagsSubscribe(tagsId) { + this.homeTagsSubscription = tagsId; + this.tagsSubscribe(); + } + /** + * Unsubscribe to tags values + */ + tagsUnsubscribe(tagsId) { + if (this.socket) { + let msg = { + tagsId: tagsId + }; + this.socket.emit(IoEventTypes.DEVICE_TAGS_UNSUBSCRIBE, msg); + } + } + /** + * Enable device + * @param deviceName + * @param enable + */ + deviceEnable(deviceName, enable) { + if (this.socket) { + let msg = { + deviceName: deviceName, + enable: enable + }; + this.socket.emit(IoEventTypes.DEVICE_ENABLE, msg); + } + } + //#endregion + //#region Signals Gauges Mapping + addSignal(signalId) { + // add to variable list + if (!this.variables[signalId]) { + this.variables[signalId] = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Variable(signalId, null, this.projectService.getDeviceFromTagId(signalId)); + } + } + /** + * map the dom view with signal and gauge settings + * @param domViewId + * @param signalId + * @param ga + */ + addSignalGaugeToMap(domViewId, signalId, ga) { + this.viewSignalGaugeMap.add(domViewId, signalId, ga); + // add to variable list + if (!this.variables[signalId]) { + this.variables[signalId] = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Variable(signalId, null, this.projectService.getDeviceFromTagId(signalId)); + } + } + /** + * remove mapped dom view Gauges + * @param domViewId + * return the removed gauge settings id list with signal id binded + */ + removeSignalGaugeFromMap(domViewId) { + let sigsIdremoved = this.viewSignalGaugeMap.getSignalIds(domViewId); + let result = {}; + sigsIdremoved.forEach(sigid => { + let gaugesSettings = this.viewSignalGaugeMap.signalsGauges(domViewId, sigid); + if (gaugesSettings) { + result[sigid] = gaugesSettings.map(gs => gs.id); + } + }); + this.viewSignalGaugeMap.remove(domViewId); + return result; + } + /** + * get the gauges settings list of mapped dom view with the signal + * @param domViewId + * @param sigid + */ + getMappedSignalsGauges(domViewId, sigid) { + return Object.values(this.viewSignalGaugeMap.signalsGauges(domViewId, sigid)); + } + /** + * get all signals property mapped in all dom views + * @param fulltext a copy with item name and source + */ + getMappedVariables(fulltext) { + let result = []; + this.viewSignalGaugeMap.getAllSignalIds().forEach(sigid => { + if (this.variables[sigid]) { + let toadd = this.variables[sigid]; + if (fulltext) { + toadd = Object.assign({}, this.variables[sigid]); + let device = this.projectService.getDeviceFromTagId(toadd.id); + if (device) { + toadd['source'] = device.name; + if (device.tags[toadd.id]) { + toadd['name'] = this.getTagLabel(device.tags[toadd.id]); + } + } + } + result.push(toadd); + } + }); + return result; + } + /** + * get singal property, complate the signal property with device tag property + * @param sigid + * @param fulltext + */ + getMappedVariable(sigid, fulltext) { + if (!this.variables[sigid]) { + return null; + } + if (this.variables[sigid]) { + let result = this.variables[sigid]; + if (fulltext) { + result = Object.assign({}, this.variables[sigid]); + let device = this.projectService.getDeviceFromTagId(result.id); + if (device) { + result['source'] = device.name; + if (device.tags[result.id]) { + result['name'] = this.getTagLabel(device.tags[result.id]); + } + } + } + return result; + } + } + getTagLabel(tag) { + if (tag.label) { + return tag.label; + } else { + return tag.name; + } + } + //#endregion + //#region Chart and Graph functions + getChart(id) { + return this.projectService.getChart(id); + } + getChartSignal(id) { + let chart = this.projectService.getChart(id); + if (chart) { + let varsId = []; + chart.lines.forEach(line => { + varsId.push(line.id); + }); + return varsId; + } + } + getGraph(id) { + return this.projectService.getGraph(id); + } + getGraphSignal(id) { + let graph = this.projectService.getGraph(id); + if (graph) { + let varsId = []; + graph.sources.forEach(source => { + varsId.push(source.id); + }); + return varsId; + } + } + //#endregion + //#region Current Alarms functions + getAlarmsValues(alarmFilter) { + return this.projectService.getAlarmsValues(alarmFilter); + } + getAlarmsHistory(query) { + return this.projectService.getAlarmsHistory(query); + } + setAlarmAck(alarmName) { + return this.projectService.setAlarmAck(alarmName); + } + //#endregion + //#region DAQ functions served from project service + getDaqValues(query) { + return this.projectService.getDaqValues(query); + } + //#endregion + //#region Scheduler functions served from project service + askSchedulerData(id) { + return this.projectService.getSchedulerData(id); + } + setSchedulerData(id, data) { + return this.projectService.setSchedulerData(id, data); + } + deleteSchedulerData(id) { + return this.projectService.deleteSchedulerData(id); + } + //#endregion + //#region My Static functions + static toVariableId(src, name) { + return src + HmiService_1.separator + name; + } + //#endregion + onScriptCommand(message) { + if (message.params && message.params.length) { + switch (message.command) { + case ScriptCommandEnum.SETVIEW: + this.onGoTo.emit({ + viewName: message.params[0], + force: message.params[1] + }); + break; + case ScriptCommandEnum.OPENCARD: + this.onOpen.emit({ + viewName: message.params[0], + options: message.params[1] + }); + break; + default: + break; + } + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService + }, { + type: _auth_service__WEBPACK_IMPORTED_MODULE_7__.AuthService + }, { + type: _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_8__.DeviceAdapterService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_12__.ToastrService + }]; + static propDecorators = { + onVariableChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceBrowse: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceNodeAttribute: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDaqResult: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceProperty: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onHostInterfaces: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onAlarmsStatus: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceWebApiRequest: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceTagsRequest: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onDeviceOdbcQuery: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onScriptConsole: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onGoTo: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onOpen: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onSchedulerUpdated: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onSchedulerEventActive: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onSchedulerRemainingTime: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + onGaugeEvent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }] + }; +}; +HmiService = HmiService_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Injectable)(), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService, _auth_service__WEBPACK_IMPORTED_MODULE_7__.AuthService, _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_8__.DeviceAdapterService, ngx_toastr__WEBPACK_IMPORTED_MODULE_12__.ToastrService])], HmiService); + +class ViewSignalGaugeMap { + views = {}; + add(domViewId, signalId, ga) { + if (!this.views[domViewId]) { + this.views[domViewId] = {}; + } + if (!this.views[domViewId][signalId]) { + this.views[domViewId][signalId] = []; + } + this.views[domViewId][signalId].push(ga); + return true; + } + remove(domViewId) { + delete this.views[domViewId]; + return; + } + signalsGauges(domViewId, sigid) { + return this.views[domViewId][sigid]; + } + getSignalIds(domViewId) { + let result = []; + if (this.views[domViewId]) { + result = Object.keys(this.views[domViewId]); + } + return result; + } + getAllSignalIds() { + let result = []; + Object.values(this.views).forEach(evi => { + Object.keys(evi).forEach(key => { + if (result.indexOf(key) === -1) { + result.push(key); + } + }); + }); + return result; + } +} +var IoEventTypes; +(function (IoEventTypes) { + IoEventTypes["DEVICE_STATUS"] = "device-status"; + IoEventTypes["DEVICE_PROPERTY"] = "device-property"; + IoEventTypes["DEVICE_VALUES"] = "device-values"; + IoEventTypes["DEVICE_BROWSE"] = "device-browse"; + IoEventTypes["DEVICE_NODE_ATTRIBUTE"] = "device-node-attribute"; + IoEventTypes["DEVICE_WEBAPI_REQUEST"] = "device-webapi-request"; + IoEventTypes["DEVICE_TAGS_REQUEST"] = "device-tags-request"; + IoEventTypes["DEVICE_TAGS_SUBSCRIBE"] = "device-tags-subscribe"; + IoEventTypes["DEVICE_TAGS_UNSUBSCRIBE"] = "device-tags-unsubscribe"; + IoEventTypes["DEVICE_ENABLE"] = "device-enable"; + IoEventTypes["DEVICE_ODBC_QUERY"] = "device-odbc-query"; + IoEventTypes["DAQ_QUERY"] = "daq-query"; + IoEventTypes["DAQ_RESULT"] = "daq-result"; + IoEventTypes["DAQ_ERROR"] = "daq-error"; + IoEventTypes["ALARMS_STATUS"] = "alarms-status"; + IoEventTypes["HOST_INTERFACES"] = "host-interfaces"; + IoEventTypes["SCRIPT_CONSOLE"] = "script-console"; + IoEventTypes["SCRIPT_COMMAND"] = "script-command"; + IoEventTypes["ALIVE"] = "heartbeat"; + IoEventTypes["SCHEDULER_UPDATED"] = "scheduler:updated"; + IoEventTypes["SCHEDULER_ACTIVE"] = "scheduler:event-active"; + IoEventTypes["SCHEDULER_REMAINING"] = "scheduler:remaining-time"; +})(IoEventTypes || (IoEventTypes = {})); +const ScriptCommandEnum = { + SETVIEW: 'SETVIEW', + OPENCARD: 'OPENCARD' +}; + +/***/ }), + +/***/ 46368: +/*!***********************************************!*\ + !*** ./src/app/_services/language.service.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LanguageService: () => (/* binding */ LanguageService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _project_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./project.service */ 57610); +/* harmony import */ var _models_language__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_models/language */ 8906); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var _users_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../users/user-edit/user-edit.component */ 42906); +/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auth.service */ 48333); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let LanguageService = class LanguageService { + projectService; + authService; + localStorageItem = 'currentLanguage'; + languages; + languageConfig; + languageConfig$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.BehaviorSubject(null); + texts = {}; + constructor(projectService, authService) { + this.projectService = projectService; + this.authService = authService; + this.projectService.onLoadHmi.subscribe(() => { + let storageLanguage = this.getStorageLanguage(); + this.languages = this.projectService.getLanguages(); + this.languageConfig = { + currentLanguage: storageLanguage || this.languages?.default || { + id: 'EN', + name: 'English' + }, + ...this.languages + }; + const user = this.authService.getUser(); + const userLanguageId = new _users_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_2__.UserInfo(user?.info).languageId; + if (userLanguageId) { + this.languageConfig.currentLanguage ??= this.getLanguage(userLanguageId); + } + this.setCurrentLanguage(this.languageConfig.currentLanguage); + this.texts = this.projectService.getTexts().reduce((acc, text) => { + acc[text.name] = text; + return acc; + }, {}); + }); + } + setCurrentLanguage(lang) { + const username = this.authService.getUser()?.username || ''; + this.languageConfig.currentLanguage = lang; + this.languageConfig$.next(this.languageConfig); + localStorage.setItem(`${this.localStorageItem}-${username}`, JSON.stringify(lang)); + } + getStorageLanguage() { + const username = this.authService.getUser()?.username || ''; + return JSON.parse(localStorage.getItem(`${this.localStorageItem}-${username}`)); + } + getTranslation(textKey) { + if (!textKey || !textKey.startsWith(_models_language__WEBPACK_IMPORTED_MODULE_1__.LANGUAGE_TEXT_KEY_PREFIX)) { + return null; + } + const text = this.texts[textKey.substring(1)]; + if (text) { + if (text.translations[this.languageConfig.currentLanguage.id]) { + return text.translations[this.languageConfig.currentLanguage.id]; + } else { + return text.value; + } + } + return null; + } + getLanguage(id) { + if (this.languages?.default?.id === id) { + return this.languages.default; + } + return this.languages?.options?.find(lang => lang.id === id); + } + static ctorParameters = () => [{ + type: _project_service__WEBPACK_IMPORTED_MODULE_0__.ProjectService + }, { + type: _auth_service__WEBPACK_IMPORTED_MODULE_3__.AuthService + }]; +}; +LanguageService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_project_service__WEBPACK_IMPORTED_MODULE_0__.ProjectService, _auth_service__WEBPACK_IMPORTED_MODULE_3__.AuthService])], LanguageService); + + +/***/ }), + +/***/ 22908: +/*!*****************************************************!*\ + !*** ./src/app/_services/maps-locations.service.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MapsLocationsService: () => (/* binding */ MapsLocationsService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + +let MapsLocationsService = class MapsLocationsService { + constructor() {} + static ctorParameters = () => []; +}; +MapsLocationsService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [])], MapsLocationsService); + + +/***/ }), + +/***/ 59944: +/*!**********************************************!*\ + !*** ./src/app/_services/my-file.service.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MyFileService: () => (/* binding */ MyFileService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rcgi/rcgi.service */ 31865); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 84980); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let MyFileService = class MyFileService { + rciService; + constructor(rciService) { + this.rciService = rciService; + } + upload(file, destination, fullPath) { + if (file) { + let filename = file.name; + let fileToUpload = { + type: filename.split('.').pop().toLowerCase(), + name: filename.split('/').pop(), + data: null, + fullPath: fullPath + }; + const isSvg = fileToUpload.type === 'svg'; + let reader = new FileReader(); + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + reader.onload = () => { + try { + fileToUpload.data = reader.result; + this.rciService.uploadFile(fileToUpload, destination).subscribe(result => { + observer.next({ + result: result, + error: null + }); + observer.complete(); + }, error => { + observer.next({ + result: false, + error: error.error?.error || error.message + }); + observer.complete(); + }); + } catch (err) { + observer.next({ + result: false, + error: err + }); + observer.complete(); + } + }; + if (isSvg) { + reader.readAsText(file); + } else { + reader.readAsDataURL(file); + } + }); + } else { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)({ + result: false, + error: null + }); + } + } + static ctorParameters = () => [{ + type: _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__.RcgiService + }]; +}; +MyFileService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_0__.RcgiService])], MyFileService); + + +/***/ }), + +/***/ 99232: +/*!*********************************************!*\ + !*** ./src/app/_services/plugin.service.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PluginService: () => (/* binding */ PluginService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../environments/environment */ 20553); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let PluginService = class PluginService { + http; + onPluginsChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.EndPointApi.getURL(); + constructor(http) { + this.http = http; + } + getPlugins() { + return this.http.get(this.endPointConfig + '/api/plugins'); + } + installPlugin(plugin) { + return new rxjs__WEBPACK_IMPORTED_MODULE_3__.Observable(observer => { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_4__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.post(this.endPointConfig + '/api/plugins', { + headers: header, + params: plugin + }).subscribe(result => { + observer.next(null); + this.onPluginsChanged.emit(); + }, err => { + console.error(err); + observer.error(err); + }); + } else { + observer.next(null); + } + }); + } + removePlugin(plugin) { + return new rxjs__WEBPACK_IMPORTED_MODULE_3__.Observable(observer => { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_4__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.delete(this.endPointConfig + '/api/plugins', { + headers: header, + params: { + param: plugin.name + } + }).subscribe(result => { + observer.next(null); + this.onPluginsChanged.emit(); + }, err => { + console.error(err); + observer.error(err); + }); + } else { + observer.next(null); + } + }); + } + hasPlugin$(needle, requireEnabled = false) { + const n = needle.toLowerCase(); + return this.getPlugins().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_5__.map)(list => list.some(p => { + const name = (p.name ?? '').toLowerCase(); + const matches = name.includes(n); + return requireEnabled ? matches && p.current : matches; + }))); + } + hasNodeRed$(requireEnabled = false) { + return this.hasPlugin$('node-red', requireEnabled); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_4__.HttpClient + }]; + static propDecorators = { + onPluginsChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }] + }; +}; +PluginService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_4__.HttpClient])], PluginService); + + +/***/ }), + +/***/ 57610: +/*!**********************************************!*\ + !*** ./src/app/_services/project.service.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ProjectService: () => (/* binding */ ProjectService), +/* harmony export */ SaveMode: () => (/* binding */ SaveMode), +/* harmony export */ ServerSettings: () => (/* binding */ ServerSettings) +/* harmony export */ }); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 71670); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs */ 60331); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _models_project__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/project */ 67033); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _models_language__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_models/language */ 8906); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _rcgi_resource_storage_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./rcgi/resource-storage.service */ 79032); +/* harmony import */ var _rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./rcgi/resdemo.service */ 27126); +/* harmony import */ var _rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rcgi/resclient.service */ 58331); +/* harmony import */ var _rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./rcgi/reswebapi.service */ 98331); +/* harmony import */ var _app_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./app.service */ 49982); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! file-saver */ 46778); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_12__); +/* harmony import */ var _models_client_access__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../_models/client-access */ 7579); + +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ProjectService_1; + + + + + + + + + + + + + + + + + +let ProjectService = ProjectService_1 = class ProjectService { + resewbApiService; + resDemoService; + resClientService; + appService; + translateService; + toastr; + onSaveCurrent = new _angular_core__WEBPACK_IMPORTED_MODULE_14__.EventEmitter(); + onLoadHmi = new _angular_core__WEBPACK_IMPORTED_MODULE_14__.EventEmitter(); + onLoadClientAccess = new rxjs__WEBPACK_IMPORTED_MODULE_15__.Subject(); + projectData = new _models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectData(); // Project data + AppId = ''; + serverSettings; + storage; + projectOld = ''; + ready = false; + static MainViewName = 'MainView'; + constructor(resewbApiService, resDemoService, resClientService, appService, translateService, toastr) { + this.resewbApiService = resewbApiService; + this.resDemoService = resDemoService; + this.resClientService = resClientService; + this.appService = appService; + this.translateService = translateService; + this.toastr = toastr; + this.storage = resewbApiService; + if (!_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled || appService.isDemoApp) { + this.storage = resDemoService; + } else if (appService.isClientApp) { + this.storage = resClientService; + } + // console.log("mode:", environment.type); + this.storage.getAppId = () => this.getAppId(); + this.storage.onRefreshProject = () => this.onRefreshProject(); + this.storage.checkServer().subscribe(result => { + if (!_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled || result) { + this.serverSettings = result; + this.load(); + } + }, error => { + console.error('project.service err: ' + error); + this.load(); + this.notifyServerError(); + }); + } + getAppId() { + return this.AppId; + } + init(bridge) { + this.storage.init(bridge); + if (this.appService.isClientApp) {} + this.reload(); + } + onRefreshProject() { + this.storage.getStorageProject().subscribe(prj => { + if (prj) { + this.projectData = prj; + // copy to check before save + this.projectOld = JSON.parse(JSON.stringify(this.projectData)); + this.ready = true; + this.notifyToLoadHmi(); + } else { + let msg = ''; + this.translateService.get('msg.get-project-void').subscribe(txt => { + msg = txt; + }); + console.warn(msg); + // this.notifySaveError(msg); + } + }, err => { + console.error('FUXA onRefreshProject error', err); + }); + return true; + } + //#region Load and Save + /** + * Load Project from Server if enable. + * From Local Storage, from 'assets' if demo or create a local project + */ + load() { + this.storage.getStorageProject().subscribe(prj => { + if (!prj && this.appService.isDemoApp) { + console.log('create demo'); + this.setNewProject(); + } else if (this.appService.isClientApp) { + if (!prj && this.storage.isReady) { + this.setNewProject(); + } else { + this.projectData = prj; + } + this.ready = true; + this.notifyToLoadHmi(); + } else { + this.projectData = prj; + // copy to check before save + this.projectOld = JSON.parse(JSON.stringify(this.projectData)); + this.ready = true; + this.notifyToLoadHmi(); + } + }, err => { + console.error('FUXA load error', err); + }); + } + /** + * Save Project + */ + save(skipNotification = false) { + // check project change don't work some svg object change the order and this to check isn't easy...boooo + const subject = new rxjs__WEBPACK_IMPORTED_MODULE_15__.Subject(); + this.storage.setServerProject(this.projectData).subscribe(result => { + this.load(); + if (!skipNotification) { + this.notifySuccessMessage('msg.project-save-success'); + } + subject.next(true); + }, err => { + console.error(err); + var msg = ''; + this.translateService.get('msg.project-save-error').subscribe(txt => { + msg = txt; + }); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + subject.next(false); + }); + return subject; + } + saveAs() { + let filename = 'fuxa-project.json'; + if (this.getProjectName()) { + filename = `${this.getProjectName()}.json`; + } + let content = JSON.stringify(this.convertToSave(this.getProject())); + let blob = new Blob([content], { + type: 'text/plain;charset=utf-8' + }); + file_saver__WEBPACK_IMPORTED_MODULE_12__.saveAs(blob, filename); + } + exportDevices(type) { + let content = ''; + const name = this.projectData.name || 'fuxa'; + let filename = `${name}-devices.${type}`; + const devices = Object.values(this.convertToSave(this.getDevices())); + if (type === 'csv') { + content = _models_device__WEBPACK_IMPORTED_MODULE_5__.DevicesUtils.devicesToCsv(devices); + } else { + // json + if (this.getProjectName()) { + filename = `${this.getProjectName()}-devices.json`; + } + content = JSON.stringify(devices, null, 2); + } + let blob = new Blob([content], { + type: 'text/plain;charset=utf-8' + }); + file_saver__WEBPACK_IMPORTED_MODULE_12__.saveAs(blob, filename); + } + importDevices(devices) { + if (!devices) { + this.notifyError('msg.import-devices-error'); + } else { + devices.forEach(device => { + if (device.id && device.name) { + this.setDevice(device, null, null); + } + }); + } + } + reload() { + this.load(); + } + /** + * Remove Tag value to save without value + * Value was added by HmiService from socketIo event + * @param prj + */ + convertToSave(prj) { + let result = JSON.parse(JSON.stringify(prj)); + if (this.appService.isClientApp) { + let sprj = _rcgi_resource_storage_service__WEBPACK_IMPORTED_MODULE_6__.ResourceStorageService.sanitizeProject(prj); + result = JSON.parse(JSON.stringify(sprj)); + } + for (let devid in result.devices) { + for (let tagid in result.devices[devid].tags) { + delete result.devices[devid].tags[tagid].value; + } + } + return result; + } + getProjectName() { + return this.projectData ? this.projectData.name : null; + } + setProjectName(name) { + this.projectData.name = name; + this.save(); + } + //#endregion + //#region Device to Save + /** + * Add or update Device to Project. + * Save to Server + * @param device + * @param old + */ + setDevice(device, old, security) { + if (this.projectData.devices) { + this.projectData.devices[device.id] = device; + this.storage.setDeviceSecurity(device.id, security).subscribe(() => { + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetDevice, device, this.projectData).subscribe(result => { + if (old && old.id !== device.id) { + this.removeDevice(old); + } + }, err => { + console.error(err); + this.notifySaveError(err); + }); + }, err => { + console.error(err); + this.notifySaveError(err); + }); + } + } + setDeviceTags(device) { + this.projectData.devices[device.id] = device; + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetDevice, device, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + /** + * Remove Device from Project. + * Save to Server + * @param device + */ + removeDevice(device) { + delete this.projectData.devices[device.id]; + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelDevice, device, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + this.storage.setDeviceSecurity(device.id, '').subscribe(() => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + getDeviceSecurity(id) { + return this.storage.getDeviceSecurity(id); + } + //#endregion + //#region View to Save + /** + * Add or update View to Project. + * Save to Server + * @param view + */ + setView(view, notify = false) { + const existingView = this.projectData.hmi.views.find(v => v.id === view.id); + if (existingView) { + Object.assign(existingView, view); + } else if (!this.projectData.hmi.views.some(v => v.name === view.name)) { + this.projectData.hmi.views.push(view); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetView, view, this.projectData).subscribe(result => { + if (notify) { + this.notifySuccessMessage('msg.project-save-success'); + } + }, err => { + console.error(err); + this.notifySaveError(err); + }); + } + setViewAsync(_x) { + var _this = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* (view, notify = false) { + const existingView = _this.projectData.hmi.views.find(v => v.id === view.id); + if (existingView) { + Object.assign(existingView, view); + } else if (!_this.projectData.hmi.views.some(v => v.name === view.name)) { + _this.projectData.hmi.views.push(view); + } + yield (0,rxjs__WEBPACK_IMPORTED_MODULE_16__.firstValueFrom)(_this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetView, view, _this.projectData)); + if (notify) { + _this.notifySuccessMessage('msg.project-save-success'); + } + }).apply(this, arguments); + } + /** + * + * @returns + */ + getViews() { + return this.projectData ? this.projectData.hmi.views : []; + } + getViewId(name) { + let views = this.getViews(); + for (var i = 0; i < views.length; i++) { + if (views[i].name === name) { + return views[i].id; + } + } + return null; + } + getViewFromId(id) { + let views = this.getViews(); + for (var i = 0; i < views.length; i++) { + if (views[i].id === id) { + return views[i]; + } + } + return null; + } + /** + * Remove the View from Project + * Delete from Server + * @param view + */ + removeView(view) { + for (let i = 0; i < this.projectData.hmi.views.length; i++) { + if (this.projectData.hmi.views[i].id === view.id) { + this.projectData.hmi.views.splice(i, 1); + break; + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelView, view, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region Hmi, Layout resource json struct + /** + * get hmi resource + */ + getHmi() { + return this.ready && this.projectData ? this.projectData.hmi : null; + } + setLayout(layout) { + this.projectData.hmi.layout = layout; + this.saveLayout(); + } + setLayoutTheme(theme) { + this.projectData.hmi.layout.theme = theme; + this.saveLayout(); + } + getLayoutTheme() { + if (this.projectData.hmi.layout) { + return this.projectData.hmi.layout.theme; + } + return null; + } + saveLayout() { + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.HmiLayout, this.projectData.hmi.layout, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region Charts resource + /** + * get charts resource + */ + getCharts() { + return this.projectData ? this.projectData.charts ? this.projectData.charts : [] : null; + } + getChart(id) { + for (let i = 0; i < this.projectData.charts.length; i++) { + if (this.projectData.charts[i].id === id) { + return this.projectData.charts[i]; + } + } + } + /** + * save the charts to project + * @param charts + */ + setCharts(charts) { + this.projectData.charts = charts; + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.Charts, charts, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region Graph resource + /** + * get graphs list + * @returns + */ + getGraphs() { + return this.projectData ? this.projectData.graphs ? this.projectData.graphs : [] : null; + } + /** + * get the graph of id + * @param id + * @returns + */ + getGraph(id) { + if (this.projectData.graphs) { + for (let i = 0; i < this.projectData.graphs.length; i++) { + if (this.projectData.graphs[i].id === id) { + return this.projectData.graphs[i]; + } + } + } + return null; + } + /** + * save the graphs to project + * @param graphs + */ + setGraphs(graphs) { + this.projectData.graphs = graphs; + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.Graphs, graphs, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region Alarms resource + /** + * get alarms resource + */ + getAlarms() { + return this.projectData ? this.projectData.alarms ? this.projectData.alarms : [] : null; + } + /** + * save the alarm to project + */ + setAlarm(alarm, old) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (!this.projectData.alarms) { + this.projectData.alarms = []; + } + let exist = this.projectData.alarms.find(tx => tx.name === alarm.name); + if (exist) { + exist.property = alarm.property; + exist.highhigh = alarm.highhigh; + exist.high = alarm.high; + exist.low = alarm.low; + exist.info = alarm.info; + exist.actions = alarm.actions; + exist.value = alarm.value; + } else { + this.projectData.alarms.push(alarm); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetAlarm, alarm, this.projectData).subscribe(result => { + if (old && old.name && old.name !== alarm.name) { + this.removeAlarm(old).subscribe(result => { + observer.next(null); + }); + } else { + observer.next(null); + } + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + /** + * remove the alarm from project + */ + removeAlarm(alarm) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (this.projectData.alarms) { + for (let i = 0; i < this.projectData.alarms.length; i++) { + if (this.projectData.alarms[i].name === alarm.name) { + this.projectData.alarms.splice(i, 1); + break; + } + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelAlarm, alarm, this.projectData).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + getAlarmsValues(alarmFilter) { + return this.storage.getAlarmsValues(alarmFilter); + } + getAlarmsHistory(query) { + return this.storage.getAlarmsHistory(query); + } + setAlarmAck(name) { + return this.storage.setAlarmAck(name); + } + //#endregion + //#region Notifications resource + /** + * get notifications resource + */ + getNotifications() { + return this.projectData ? this.projectData.notifications ? this.projectData.notifications : [] : null; + } + /** + * save the notification to project + */ + setNotification(notification, old) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (!this.projectData.notifications) { + this.projectData.notifications = []; + } + let exist = this.projectData.notifications.find(tx => tx.id === notification.id); + if (exist) { + exist.name = notification.name; + exist.delay = notification.delay; + exist.interval = notification.interval; + exist.options = notification.options; + exist.receiver = notification.receiver; + exist.enabled = notification.enabled; + exist.subscriptions = notification.subscriptions; + exist.text = notification.text; + exist.type = notification.type; + } else { + this.projectData.notifications.push(notification); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetNotification, notification, this.projectData).subscribe(result => { + if (old?.id && old.id !== notification.id) { + this.removeNotification(old).subscribe(result => { + observer.next(null); + }); + } else { + observer.next(null); + } + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + /** + * remove the notification from project + */ + removeNotification(notification) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (this.projectData.notifications) { + for (let i = 0; i < this.projectData.notifications.length; i++) { + if (this.projectData.notifications[i].id === notification.id) { + this.projectData.notifications.splice(i, 1); + break; + } + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelNotification, notification, this.projectData).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + //#endregion + //#region Maps Locations + /** + * get maps locations + */ + getMapsLocations(filter) { + if (!this.projectData?.mapsLocations) { + return []; + } + if (filter) { + return this.projectData.mapsLocations.filter(location => filter.includes(location.id)); + } + return this.projectData.mapsLocations; + } + /** + * save the maps location to project + */ + setMapsLocation(newLocation, oldLocation) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (!this.projectData.mapsLocations) { + this.projectData.mapsLocations = []; + } + let exist = this.projectData.mapsLocations.find(ml => ml.id === newLocation.id); + if (exist) { + Object.assign(exist, newLocation); + } else { + this.projectData.mapsLocations.push(newLocation); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetMapsLocation, newLocation, this.projectData).subscribe(result => { + if (oldLocation?.id && newLocation.id !== oldLocation.id) { + this.removeMapsLocation(oldLocation).subscribe(result => { + observer.next(null); + }); + } else { + observer.next(null); + } + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + /** + * remove the maps location from project + */ + removeMapsLocation(location) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + for (let i = 0; i < this.projectData.mapsLocations?.length; i++) { + if (this.projectData.mapsLocations[i].id === location.id) { + this.projectData.mapsLocations.splice(i, 1); + break; + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelMapsLocation, location, this.projectData).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + //#endregion + //#region Scripts resource + /** + * get scripts + */ + getScripts() { + return this.projectData ? this.projectData.scripts ? this.projectData.scripts : [] : null; + } + /** + * save the script to project + */ + setScript(script, old) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (!this.projectData.scripts) { + this.projectData.scripts = []; + } + let exist = this.projectData.scripts.find(tx => tx.id === script.id); + if (exist) { + exist.name = script.name; + exist.code = script.code; + exist.parameters = script.parameters; + exist.mode = script.mode; + exist.sync = script.sync; + } else { + this.projectData.scripts.push(script); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetScript, script, this.projectData).subscribe(result => { + if (old && old.id && old.id !== script.id) { + this.removeScript(old).subscribe(result => { + observer.next(null); + }); + } else { + observer.next(null); + } + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + /** + * remove the script from project + */ + removeScript(script) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (this.projectData.scripts) { + for (let i = 0; i < this.projectData.scripts.length; i++) { + if (this.projectData.scripts[i].id === script.id) { + this.projectData.scripts.splice(i, 1); + break; + } + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelScript, script, this.projectData).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + //#endregion + //#region Reports + /** + * get reports + */ + getReports() { + return this.projectData ? this.projectData.reports ? this.projectData.reports : [] : null; + } + /** + * save the report to project + */ + setReport(report, old) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (!this.projectData.reports) { + this.projectData.reports = []; + } + let exist = this.projectData.reports.find(tx => tx.id === report.id); + if (exist) { + _helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.assign(exist, report); + } else { + this.projectData.reports.push(report); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetReport, report, this.projectData).subscribe(result => { + if (old && old.id && old.id !== report.id) { + this.removeReport(old).subscribe(result => { + observer.next(null); + }); + } else { + observer.next(null); + } + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + /** + * remove the report from project + */ + removeReport(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_17__.Observable(observer => { + if (this.projectData.reports) { + for (let i = 0; i < this.projectData.reports.length; i++) { + if (this.projectData.reports[i].id === report.id) { + this.projectData.reports.splice(i, 1); + break; + } + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelReport, report, this.projectData).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(err); + observer.error(err); + }); + }); + } + //#endregion + //#region Texts resource + /** + * get texts resource + */ + getTexts() { + return this.projectData ? this.projectData.texts ? this.projectData.texts : [] : null; + } + /** + * save the text to project + * @param text + */ + setText(text) { + if (!this.projectData.texts) { + this.projectData.texts = []; + } + let exist = this.projectData.texts.find(tx => tx.id === text.id); + if (exist) { + _helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.assign(exist, text); + } else { + text.id ??= _helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.getShortGUID('w_'); + this.projectData.texts.push(text); + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.SetText, text, this.projectData).subscribe(_ => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + /** + * remove the text from project + * @param text + */ + removeText(text) { + if (this.projectData.texts) { + for (let i = 0; i < this.projectData.texts.length; i++) { + if (this.projectData.texts[i].id === text.id) { + this.projectData.texts.splice(i, 1); + break; + } + } + } + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.DelText, text, this.projectData).subscribe(_ => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region Languages resource + /** + * get languages resource + */ + getLanguages() { + return this.projectData ? this.projectData.languages ? this.projectData.languages : new _models_language__WEBPACK_IMPORTED_MODULE_4__.Languages() : null; + } + /** + * save the text to project + * @param text + */ + setLanguages(languages) { + this.projectData.languages = languages; + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.Languages, languages, this.projectData).subscribe(result => {}, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region ClientAccess + /** + * get client access + */ + getClientAccess() { + return this.projectData ? this.projectData.clientAccess ? this.projectData.clientAccess : new _models_client_access__WEBPACK_IMPORTED_MODULE_13__.ClientAccess() : null; + } + /** + * save client access + * @param text + */ + setClientAccess(clientAccess) { + this.projectData.clientAccess = clientAccess; + this.storage.setServerProjectData(_models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectDataCmdType.ClientAccess, clientAccess, this.projectData).subscribe(result => { + this.onLoadClientAccess.next(); + }, err => { + console.error(err); + this.notifySaveError(err); + }); + } + //#endregion + //#region Notify + notifyToLoadHmi() { + this.onLoadHmi.emit(true); + } + notifySaveError(err) { + console.error('FUXA notifySaveError error', err); + let msg = this.translateService.instant('msg.project-save-error'); + if (err.status === 401) { + msg = this.translateService.instant('msg.project-save-unauthorized'); + } else if (err.status === 413) { + msg = err.error?.message || err.message || err.statusText; + } + if (msg) { + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + } + notifyServerError() { + console.error('FUXA notifyServerError error'); + let msg = null; + this.translateService.get('msg.server-connection-error').subscribe(txt => { + msg = txt; + }); + if (msg) { + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + } + notifyError(msgCode) { + const msg = this.translateService.instant(msgCode); + if (msgCode) { + console.error(`FUXA Error: ${msg}`); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + } + // private notifyError(msgCode: string) { + // this.translateService.get(msgCode).subscribe((msg: string) => { + // if (msg) { + // console.error(`FUXA Error: ${msg}`); + // this.toastr.error(msg, '', { + // timeOut: 3000, + // closeButton: true, + // disableTimeOut: true + // }); + // } + // }); + // } + //#endregion + //#region Upload resource to server + uploadFile(file) { + return this.storage.uploadFile(file); + } + //#endregion + //#region DAQ query + getDaqValues(query) { + return this.storage.getDaqValues(query); + } + //#endregion + //#region Scheduler query + getSchedulerData(id) { + return this.storage.getSchedulerData(id); + } + setSchedulerData(id, data) { + return this.storage.setSchedulerData(id, data); + } + deleteSchedulerData(id) { + return this.storage.deleteSchedulerData(id); + } + //#endregion + getTagsValues(tagsIds, sourceScriptName) { + var _this2 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let values = yield (0,rxjs__WEBPACK_IMPORTED_MODULE_16__.firstValueFrom)(_this2.storage.getTagsValues(tagsIds, sourceScriptName)); + return values; + })(); + } + runSysFunctionSync(functionName, params) { + var _this3 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let values = yield (0,rxjs__WEBPACK_IMPORTED_MODULE_16__.firstValueFrom)(_this3.storage.runSysFunction(functionName, params)); + return values; + })(); + } + /** + * Set Project data and save resource to backend + * Used from open and upload JSON Project file + * @param prj project data to save + */ + setProject(prj, skipNotification = false) { + if (this.verifyProject(prj)) { + this.projectData = prj; + if (this.appService.isClientApp) { + this.projectData = _rcgi_resource_storage_service__WEBPACK_IMPORTED_MODULE_6__.ResourceStorageService.defileProject(prj); + } + this.save(skipNotification); + } + } + verifyProject(prj) { + let result = true; + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(prj.version)) { + result = false; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(prj.hmi)) { + result = false; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(prj.devices)) { + result = false; + } + if (!result) { + this.notifyError('msg.project-format-error'); + } + return result; + } + verifyView(view) { + let result = true; + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(view.svgcontent)) { + result = false; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(view.id)) { + result = false; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(view.profile)) { + result = false; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(view.type)) { + result = false; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.isNullOrUndefined(view.items)) { + result = false; + } + if (!result) { + this.notifyError('msg.view-format-error'); + } + return result; + } + cleanView(view) { + if (!view.svgcontent) { + return false; + } + const idsInSvg = new Set(); + const re = /id=(?:"|')([^"']+)(?:"|')/g; + let m; + while ((m = re.exec(view.svgcontent)) !== null) { + idsInSvg.add(m[1]); + } + let changed = false; + for (const key of Object.keys(view.items)) { + if (!idsInSvg.has(key)) { + console.warn('GUI item deleted: ', key); + delete view.items[key]; + changed = true; + } + } + return changed; + } + setNewProject() { + this.projectData = new _models_project__WEBPACK_IMPORTED_MODULE_2__.ProjectData(); + let server = new _models_device__WEBPACK_IMPORTED_MODULE_5__.Device(_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_5__.DEVICE_PREFIX)); + server.name = _models_device__WEBPACK_IMPORTED_MODULE_5__.FuxaServer.name; + server.id = _models_device__WEBPACK_IMPORTED_MODULE_5__.FuxaServer.id; + server.type = _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.FuxaServer; + server.enabled = true; + server.property = new _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceNetProperty(); + if (!this.appService.isClientApp) { + this.projectData.server = server; + } else { + delete this.projectData.server; + } + let mainView = this.getNewView(ProjectService_1.MainViewName); + this.projectData.hmi.views.push(mainView); + this.save(true); + } + getNewView(name, type) { + let view = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.View(_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.getShortGUID('v_'), type || _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.svg); + view.name = name; + view.profile.bkcolor = '#ffffffff'; + if (type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.cards) { + view.profile.bkcolor = 'rgba(67, 67, 67, 1)'; + } + return view; + } + getProject() { + return this.projectData; + } + checkServer() { + return this.storage.checkServer(); + } + getServer() { + return this.projectData ? this.projectData.server : null; + } + getServerDevices() { + return Object.values(this.getDevices()).filter(device => device.type !== _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.internal); + } + getDevices() { + let result = {}; + if (this.projectData) { + result = this.projectData.devices; + if (this.projectData.server && !result[this.projectData.server?.id]) { + // add server as device to use in script and logic + let server = JSON.parse(JSON.stringify(this.projectData.server)); + server.enabled = true; + server.tags = {}; + result[server.id] = server; + } + } + return result; + } + getDeviceList() { + return Object.values(this.getDevices()); + } + getDeviceFromId(id) { + let result; + Object.keys(this.projectData.devices).forEach(k => { + if (this.projectData.devices[k].id === id) { + result = this.projectData.devices[k]; + } + }); + return result; + } + getDeviceFromTagId(tagId) { + let devices = Object.values(this.projectData.devices); + for (let i = 0; i < devices.length; i++) { + if (devices[i].tags[tagId]) { + return devices[i]; + } + } + } + getTagFromId(tagId, withDeviceRef) { + let devices = Object.values(this.projectData.devices); + for (let i = 0; i < devices.length; i++) { + if (devices[i].tags[tagId]) { + const tag = devices[i].tags[tagId]; + if (withDeviceRef) { + let tagDevice = _helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.clone(tag); + tagDevice.deviceId = devices[i].id; + tagDevice.deviceName = devices[i].name; + tagDevice.deviceType = devices[i].type; + return tagDevice; + } + return devices[i].tags[tagId]; + } + } + return null; + } + getTagIdFromName(tagName, deviceName) { + let devices = Object.values(this.projectData.devices); + for (let i = 0; i < devices.length; i++) { + if (!deviceName || devices[i].name === deviceName) { + let result = Object.values(devices[i].tags).find(tag => tag.name === tagName); + if (result) { + return result.id; + } + } + } + return null; + } + /** + * Check to add or remove system Tags, example connection status to add in device FUXA server + */ + checkSystemTags() { + let devices = Object.values(this.projectData.devices).filter(device => device.id !== _models_device__WEBPACK_IMPORTED_MODULE_5__.FuxaServer.id); + let fuxaServer = this.projectData.devices[_models_device__WEBPACK_IMPORTED_MODULE_5__.FuxaServer.id]; + if (fuxaServer) { + let changed = false; + devices.forEach(device => { + if (!Object.values(fuxaServer.tags).find(tag => tag.sysType === _models_device__WEBPACK_IMPORTED_MODULE_5__.TagSystemType.deviceConnectionStatus && tag.memaddress === device.id)) { + let tag = new _models_device__WEBPACK_IMPORTED_MODULE_5__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_5__.TAG_PREFIX)); + tag.name = device.name + ' Connection Status'; + tag.label = device.name + ' Connection Status'; + tag.type = _models_device__WEBPACK_IMPORTED_MODULE_5__.ServerTagType.number; + tag.memaddress = device.id; + tag.sysType = _models_device__WEBPACK_IMPORTED_MODULE_5__.TagSystemType.deviceConnectionStatus; + tag.init = tag.value = ''; + fuxaServer.tags[tag.id] = tag; + changed = true; + } + }); + if (changed) { + this.setDeviceTags(fuxaServer); + } + } + return this.getDevices(); + } + /** + * Send Save Project to to editor component + * @param saveas + */ + saveProject(mode = SaveMode.Save) { + this.onSaveCurrent.emit(mode); + } + isSecurityEnabled() { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + if (this.serverSettings && !this.serverSettings.secureEnabled) { + return false; + } + return true; + } else { + return false; + } + } + _deepEquals(x, y) { + if (JSON.stringify(x) === JSON.stringify(y)) { + return true; // if both x and y are null or undefined and exactly the same + } else { + try { + for (const p in x) { + if (!x.hasOwnProperty(p)) { + continue; // other properties were tested using x.constructor === y.constructor + } + + if (!y.hasOwnProperty(p)) { + return false; // allows to compare x[ p ] and y[ p ] when set to undefined + } + + if (p === 'svgcontent') { + // the xml have to be transform in json + const parser = new DOMParser(); // initialize dom parser + const aDOM = parser.parseFromString(x[p], 'text/xml'); + const bDOM = parser.parseFromString(y[p], 'text/xml'); + let a = this._xml2json(aDOM); + let b = this._xml2json(bDOM); + return this._deepEquals(a, b); + } + if (x[p] === y[p]) { + continue; // if they have the same strict value or identity then they are equal + } + + if (!this._deepEquals(x[p], y[p])) { + return false; + } + } + for (const p in y) { + if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) { + return false; + } + } + } catch (ex) { + console.error(ex); + return false; + } + return true; + } + } + /** + * This function coverts a DOM Tree into JavaScript Object. + * @param srcDOM: DOM Tree to be converted. + */ + _xml2json(xml) { + // Create the return object + var obj = {}; + if (xml.nodeType == 1) { + // element + // do attributes + if (xml.attributes.length > 0) { + obj['@attributes'] = {}; + for (var j = 0; j < xml.attributes.length; j++) { + var attribute = xml.attributes.item(j); + obj['@attributes'][attribute.nodeName] = attribute.nodeValue; + } + } + } else if (xml.nodeType == 3) { + // text + obj = xml.nodeValue; + } + // do children + if (xml.hasChildNodes()) { + for (var i = 0; i < xml.childNodes.length; i++) { + var item = xml.childNodes.item(i); + var nodeName = item.nodeName; + if (typeof obj[nodeName] == 'undefined') { + obj[nodeName] = this._xml2json(item); + } else { + if (typeof obj[nodeName].push == 'undefined') { + var old = obj[nodeName]; + obj[nodeName] = []; + obj[nodeName].push(old); + } + obj[nodeName].push(this._xml2json(item)); + } + } + } + return obj; + } + notifySuccessMessage(msgKey) { + var msg = ''; + this.translateService.get(msgKey).subscribe(txt => { + msg = txt; + }); + this.toastr.success(msg); + } + static ctorParameters = () => [{ + type: _rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_9__.ResWebApiService + }, { + type: _rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_7__.ResDemoService + }, { + type: _rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_8__.ResClientService + }, { + type: _app_service__WEBPACK_IMPORTED_MODULE_10__.AppService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_19__.ToastrService + }]; + static propDecorators = { + onSaveCurrent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_14__.Output + }], + onLoadHmi: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_14__.Output + }] + }; +}; +ProjectService = ProjectService_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_14__.Injectable)(), __metadata("design:paramtypes", [_rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_9__.ResWebApiService, _rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_7__.ResDemoService, _rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_8__.ResClientService, _app_service__WEBPACK_IMPORTED_MODULE_10__.AppService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_19__.ToastrService])], ProjectService); + +class ServerSettings { + version; + secureEnabled; +} +var SaveMode; +(function (SaveMode) { + SaveMode[SaveMode["Current"] = 0] = "Current"; + SaveMode[SaveMode["Save"] = 1] = "Save"; + SaveMode[SaveMode["SaveAs"] = 2] = "SaveAs"; +})(SaveMode || (SaveMode = {})); + +/***/ }), + +/***/ 31865: +/*!************************************************!*\ + !*** ./src/app/_services/rcgi/rcgi.service.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ RcgiService: () => (/* binding */ RcgiService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _resclient_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resclient.service */ 58331); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../environments/environment */ 20553); +/* harmony import */ var _resdemo_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resdemo.service */ 27126); +/* harmony import */ var _reswebapi_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reswebapi.service */ 98331); +/* harmony import */ var _app_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../app.service */ 49982); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let RcgiService = class RcgiService { + reseWebApiService; + resDemoService; + resClientService; + appService; + rcgi; + constructor(reseWebApiService, resDemoService, resClientService, appService) { + this.reseWebApiService = reseWebApiService; + this.resDemoService = resDemoService; + this.resClientService = resClientService; + this.appService = appService; + this.rcgi = reseWebApiService; + if (!_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled || appService.isDemoApp) { + this.rcgi = resDemoService; + } else if (appService.isClientApp) { + this.rcgi = resClientService; + } + } + uploadFile(file, destination) { + return this.rcgi.uploadFile(file, destination); + } + static ctorParameters = () => [{ + type: _reswebapi_service__WEBPACK_IMPORTED_MODULE_3__.ResWebApiService + }, { + type: _resdemo_service__WEBPACK_IMPORTED_MODULE_2__.ResDemoService + }, { + type: _resclient_service__WEBPACK_IMPORTED_MODULE_0__.ResClientService + }, { + type: _app_service__WEBPACK_IMPORTED_MODULE_4__.AppService + }]; +}; +RcgiService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_reswebapi_service__WEBPACK_IMPORTED_MODULE_3__.ResWebApiService, _resdemo_service__WEBPACK_IMPORTED_MODULE_2__.ResDemoService, _resclient_service__WEBPACK_IMPORTED_MODULE_0__.ResClientService, _app_service__WEBPACK_IMPORTED_MODULE_4__.AppService])], RcgiService); + + +/***/ }), + +/***/ 58331: +/*!*****************************************************!*\ + !*** ./src/app/_services/rcgi/resclient.service.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResClientService: () => (/* binding */ ResClientService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _models_project__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_models/project */ 67033); +/* harmony import */ var _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resource-storage.service */ 79032); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let ResClientService = class ResClientService { + http; + endPointConfig = ''; + bridge = null; + id = null; + get isReady() { + return this.bridge ? true : false; + } + onRefreshProject; + constructor(http) { + this.http = http; + } + init(bridge) { + this.id = this.getAppId(); + if (!this.bindBridge(bridge)) { + return false; + } + return true; + } + bindBridge(bridge) { + if (!bridge) { + return false; + } + this.bridge = bridge; + if (this.bridge) { + this.bridge.onRefreshProject = this.onRefreshProject; + return true; + } + return false; + } + getDemoProject() { + return this.http.get('./assets/project.demo.fuxap', {}); + } + getStorageProject() { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + if (this.bridge) { + let sprj = this.bridge.loadProject(); + let prj = _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__.ResourceStorageService.defileProject(sprj); + observer.next(prj); + } else { + let prj = localStorage.getItem(this.getAppId()); + if (prj) { + observer.next(JSON.parse(prj)); + } else { + observer.next(null); + } + } + }); + } + setServerProject(prj) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + if (!prj) { + observer.next(null); + } else if (this.bridge) { + let sprj = _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__.ResourceStorageService.sanitizeProject(prj); + if (this.bridge.saveProject(sprj, true)) { + observer.next(null); + } else { + observer.error(); + } + } else { + this.saveInLocalStorage(prj); + observer.next(null); + } + }); + } + setServerProjectData(cmd, data, prj) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + if (!prj) { + observer.next(null); + } else if (this.bridge) { + let sprj = _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__.ResourceStorageService.sanitizeProject(prj); + if (this.bridge.saveProject(sprj, false)) { + // if (this.isDataCmdForDevice(cmd)) { + // let sdevice = ResourceStorageService.sanitizeDevice(data); + // this.bridge.deviceChange(sdevice); + // } + observer.next(null); + } else { + observer.error(); + } + } else { + this.saveInLocalStorage(prj); + observer.next(null); + } + }); + } + uploadFile(file, destination) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + isDataCmdForDevice(cmd) { + return cmd === _models_project__WEBPACK_IMPORTED_MODULE_0__.ProjectDataCmdType.DelDevice || cmd === _models_project__WEBPACK_IMPORTED_MODULE_0__.ProjectDataCmdType.SetDevice; + } + saveInLocalStorage(prj) { + if (this.getAppId()) { + localStorage.setItem(this.getAppId(), JSON.stringify(prj)); + } + } + getDeviceSecurity(id) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setDeviceSecurity(name, value) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.next('Not supported!'); + }); + } + getAlarmsValues(alarmFilter) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getAlarmsHistory(query) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setAlarmAck(name) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + checkServer() { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.next(null); + }); + } + getAppId() { + return _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__.ResourceStorageService.prjresource; + } + getDaqValues(query) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getSchedulerData(id) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setSchedulerData(id, data) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported in client mode!'); + }); + } + deleteSchedulerData(id) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported in client mode!'); + }); + } + getTagsValues(query, sourceScriptName) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + runSysFunction(functionName, params) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + heartbeat(activity) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + downloadFile(fileName, type) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getReportsDir(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getReportsQuery(query) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getRoles() { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setRoles(roles) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + removeRoles(roles) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + buildReport(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + removeReportFile(fileName) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + observer.error('Not supported!'); + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient + }]; +}; +ResClientService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)(), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient])], ResClientService); + + +/***/ }), + +/***/ 27126: +/*!***************************************************!*\ + !*** ./src/app/_services/rcgi/resdemo.service.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResDemoService: () => (/* binding */ ResDemoService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var _resource_storage_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resource-storage.service */ 79032); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let ResDemoService = class ResDemoService { + http; + endPointConfig = ''; + onRefreshProject; + constructor(http) { + this.http = http; + } + init() { + return true; + } + getDemoProject() { + return this.http.get('./assets/project.demo.fuxap', {}); + } + getStorageProject() { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + let prj = localStorage.getItem(this.getAppId()); + if (prj) { + observer.next(JSON.parse(prj)); + } else { + // try root path + this.getDemoProject().subscribe(demo => { + observer.next(demo); + }, err => { + observer.error(err); + }); + } + }); + } + setServerProject(prj) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + localStorage.setItem(this.getAppId(), JSON.stringify(prj)); + observer.next(null); + }); + } + setServerProjectData(cmd, data) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.next('Not supported!'); + }); + } + uploadFile(file, destination) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getDeviceSecurity(id) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setDeviceSecurity(name, value) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.next('Not supported!'); + }); + } + getAlarmsValues(alarmFilter) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getAlarmsHistory(query) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setAlarmAck(name) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + checkServer() { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.next(null); + }); + } + getAppId() { + return _resource_storage_service__WEBPACK_IMPORTED_MODULE_0__.ResourceStorageService.prjresource; + } + getDaqValues(query) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getSchedulerData(id) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setSchedulerData(id, data) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)(data); + } + deleteSchedulerData(id) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)({ + success: true + }); + } + getTagsValues(query, sourceScriptName) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + runSysFunction(functionName, params) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + heartbeat(activity) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + downloadFile(fileName, type) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getReportsDir(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getReportsQuery(query) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + getRoles() { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + setRoles(roles) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + removeRoles(roles) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + buildReport(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + removeReportFile(fileName) { + return new rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable(observer => { + observer.error('Not supported!'); + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient + }]; +}; +ResDemoService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)(), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient])], ResDemoService); + + +/***/ }), + +/***/ 79032: +/*!************************************************************!*\ + !*** ./src/app/_services/rcgi/resource-storage.service.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResourceStorageService: () => (/* binding */ ResourceStorageService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let ResourceStorageService = class ResourceStorageService { + static prjresource = 'prj-data'; + static defileProject(source) { + if (!source) { + return source; + } + let destination = JSON.parse(JSON.stringify(source)); + let devices = {}; + for (let i = 0; i < destination.devices.length; i++) { + let tags = {}; + for (let x = 0; x < destination.devices[i].tags.length; x++) { + tags[destination.devices[i].tags[x].id] = destination.devices[i].tags[x]; + } + destination.devices[i].tags = tags; + devices[destination.devices[i].id] = destination.devices[i]; + } + destination.devices = devices; + return destination; + } + static sanitizeProject(source) { + let destination = JSON.parse(JSON.stringify(source)); + destination.devices = Object.values(destination.devices); + for (let i = 0; i < destination.devices.length; i++) { + destination.devices[i].tags = Object.values(destination.devices[i].tags); + for (let x = 0; x < destination.devices[i].tags.length; x++) { + delete destination.devices[i].tags[x].value; + } + } + return destination; + } + static sanitizeDevice(source) { + let destination = JSON.parse(JSON.stringify(source)); + destination.tags = Object.values(destination.tags); + return destination; + } +}; +ResourceStorageService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], ResourceStorageService); + + +/***/ }), + +/***/ 98331: +/*!*****************************************************!*\ + !*** ./src/app/_services/rcgi/reswebapi.service.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResWebApiService: () => (/* binding */ ResWebApiService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 81891); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_helpers/endpointapi */ 25266); +/* harmony import */ var _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resource-storage.service */ 79032); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let ResWebApiService = class ResWebApiService { + http; + translateService; + toastr; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.EndPointApi.getURL(); + onRefreshProject; + constructor(http, translateService, toastr) { + this.http = http; + this.translateService = translateService; + this.toastr = toastr; + } + init() { + return true; + } + getDemoProject() { + return this.http.get('./assets/project.demo.fuxap', {}); + } + getStorageProject() { + return this.http.get(this.endPointConfig + '/api/project', {}); + } + setServerProject(prj) { + // let header = new HttpHeaders(); + // header.append("Access-Control-Allow-Origin", "*"); + // header.append("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + return this.http.post(this.endPointConfig + '/api/project', prj, { + headers: header + }); + } + setServerProjectData(cmd, data) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + cmd: cmd, + data: data + }; + return this.http.post(this.endPointConfig + '/api/projectData', params, { + headers: header + }); + } + uploadFile(resource, destination) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + resource, + destination + }; + return this.http.post(this.endPointConfig + '/api/upload', params, { + headers: header + }); + } + getDeviceSecurity(id) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + query: 'security', + name: id + }; + return this.http.get(this.endPointConfig + '/api/device', { + headers: header, + params: params + }); + } + setDeviceSecurity(id, value) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + query: 'security', + name: id, + value: value + }; + return this.http.post(this.endPointConfig + '/api/device', { + headers: header, + params: params + }); + } + getAlarmsValues(alarmFilter) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = alarmFilter ? { + filter: JSON.stringify(alarmFilter) + } : null; + return this.http.get(this.endPointConfig + '/api/alarms', { + headers: header, + params + }); + } + getAlarmsHistory(query) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + const requestOptions = { + /* other options here */ + headers: header, + params: { + start: query.start.getTime(), + end: query.end.getTime() + }, + observe: 'response' + }; + return this.http.get(this.endPointConfig + '/api/alarmsHistory', requestOptions).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.switchMap)(response => { + if (response.body === null || response.body === undefined) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_4__.of)([]); + } + return (0,rxjs__WEBPACK_IMPORTED_MODULE_4__.of)(response.body); + }), (0,rxjs__WEBPACK_IMPORTED_MODULE_5__.map)(body => body)); + // // let header = new HttpHeaders({ 'Content-Type': 'application/json' }); + // let params = { query: JSON.stringify(query) }; + // return this.http.get(this.endPointConfig + '/api/alarmsHistory', { headers: header, params: params }); + } + + setAlarmAck(name) { + return new rxjs__WEBPACK_IMPORTED_MODULE_6__.Observable(observer => { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.post(this.endPointConfig + '/api/alarmack', { + headers: header, + params: name + }).subscribe(result => { + observer.next(null); + }, err => { + observer.error(err); + }); + }); + } + checkServer() { + return this.http.get(this.endPointConfig + '/api/settings'); + } + getAppId() { + return _resource_storage_service__WEBPACK_IMPORTED_MODULE_1__.ResourceStorageService.prjresource; + } + getDaqValues(query) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + query: JSON.stringify(query) + }; + return this.http.get(this.endPointConfig + '/api/daq', { + headers: header, + params + }); + } + getSchedulerData(id) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + id: id + }; + return this.http.get(this.endPointConfig + '/api/scheduler', { + headers: header, + params + }); + } + setSchedulerData(id, data) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + return this.http.post(this.endPointConfig + '/api/scheduler', { + id: id, + data: data + }, { + headers: header + }); + } + deleteSchedulerData(id) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + id: id + }; + return this.http.delete(this.endPointConfig + '/api/scheduler', { + headers: header, + params + }); + } + getTagsValues(tagsIds, sourceScriptName) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + ids: JSON.stringify(tagsIds), + sourceScriptName: sourceScriptName + }; + return this.http.get(this.endPointConfig + '/api/getTagValue', { + headers: header, + params + }); + } + runSysFunction(functionName, parameters) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + functionName: functionName, + parameters: parameters + }; + return this.http.post(this.endPointConfig + '/api/runSysFunction', { + headers: header, + params: params + }); + } + heartbeat(activity) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + return this.http.post(this.endPointConfig + '/api/heartbeat', { + headers: header, + params: activity + }); + } + downloadFile(fileName, type) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/pdf' + }); + let params = { + cmd: type, + name: fileName + }; + return this.http.get(this.endPointConfig + '/api/download', { + headers: header, + params: params, + responseType: 'blob' + }); + } + getRoles() { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + return this.http.get(this.endPointConfig + '/api/roles', { + headers: header + }); + } + setRoles(roles) { + return new rxjs__WEBPACK_IMPORTED_MODULE_6__.Observable(observer => { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.post(this.endPointConfig + '/api/roles', { + headers: header, + params: roles + }).subscribe(result => { + observer.next(null); + }, err => { + observer.error(err); + }); + }); + } + removeRoles(roles) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + return this.http.delete(this.endPointConfig + '/api/roles', { + headers: header, + params: { + roles: JSON.stringify(roles) + } + }); + } + getReportsDir(report) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + id: report.id, + name: report.name + }; + return this.http.get(this.endPointConfig + '/api/reportsdir', { + headers: header, + params: params + }); + } + getReportsQuery(query) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + query: JSON.stringify(query) + }; + return this.http.get(this.endPointConfig + '/api/reportsQuery', { + headers: header, + params: params + }); + } + buildReport(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_6__.Observable(observer => { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = report; + this.http.post(this.endPointConfig + '/api/reportBuild', { + headers: header, + params: params + }).subscribe(result => { + observer.next(null); + var msg = ''; + this.translateService.get('msg.report-build-forced').subscribe(txt => { + msg = txt; + }); + this.toastr.success(msg); + }, err => { + console.error(err); + observer.error(err); + this.notifyError(err); + }); + }); + } + removeReportFile(fileName) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + fileName + }; + return this.http.post(this.endPointConfig + '/api/reportRemoveFile', { + headers: header, + params: params + }); + } + notifyError(err) { + var msg = ''; + this.translateService.get('msg.report-build-error').subscribe(txt => { + msg = txt; + }); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpClient + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_8__.ToastrService + }]; +}; +ResWebApiService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Injectable)(), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_2__.HttpClient, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_8__.ToastrService])], ResWebApiService); + + +/***/ }), + +/***/ 7839: +/*!**********************************************!*\ + !*** ./src/app/_services/reports.service.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportsService: () => (/* binding */ ReportsService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rcgi/rcgi.service */ 31865); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let ReportsService = class ReportsService { + rcgiService; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.EndPointApi.getURL(); + server; + constructor(rcgiService) { + this.rcgiService = rcgiService; + this.server = rcgiService.rcgi; + } + getReportsDir(report) { + return this.server.getReportsDir(report); + } + getReportsQuery(query) { + return this.server.getReportsQuery(query); + } + buildReport(report) { + return this.server.buildReport(report); + } + removeReportFile(fileName) { + return this.server.removeReportFile(fileName); + } + static ctorParameters = () => [{ + type: _rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_1__.RcgiService + }]; +}; +ReportsService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_1__.RcgiService])], ReportsService); + + +/***/ }), + +/***/ 41878: +/*!************************************************!*\ + !*** ./src/app/_services/resources.service.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ResourcesService: () => (/* binding */ ResourcesService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let ResourcesService = class ResourcesService { + http; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.EndPointApi.getURL(); + constructor(http) { + this.http = http; + } + getResources(type) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + type: type + }; + return this.http.get(this.endPointConfig + '/api/resources/' + type, { + headers: header, + params: params + }); + } + removeWidget(widget) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + path: widget.path + }; + return this.http.post(this.endPointConfig + '/api/resources/removeWidget', params, { + headers: header + }); + } + generateImage(imageProperty) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + const requestOptions = { + /* other options here */ + responseType: 'text', + headers: header, + params: { + param: JSON.stringify(imageProperty) + } + // observe: 'response' + }; + + return this.http.get(this.endPointConfig + '/api/resources/generateImage', requestOptions); + } + isVideo(path) { + const videoExtensions = ['.mp4', '.webm', '.ogg']; + return videoExtensions.some(ext => path.toLowerCase().endsWith(ext)); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpClient + }]; +}; +ResourcesService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpClient])], ResourcesService); + + +/***/ }), + +/***/ 67758: +/*!*********************************************!*\ + !*** ./src/app/_services/script.service.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptService: () => (/* binding */ ScriptService) +/* harmony export */ }); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 71670); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 51236); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_models/script */ 10846); +/* harmony import */ var _project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./project.service */ 57610); +/* harmony import */ var _hmi_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hmi.service */ 69578); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var _toast_notifier_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./toast-notifier.service */ 50243); +/* harmony import */ var _auth_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./auth.service */ 48333); +/* harmony import */ var _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../device-adapter/device-adapter.service */ 24299); + +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let ScriptService = class ScriptService { + http; + projectService; + hmiService; + authService; + deviceAdapaterService; + toastNotifier; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_1__.EndPointApi.getURL(); + constructor(http, projectService, hmiService, authService, deviceAdapaterService, toastNotifier) { + this.http = http; + this.projectService = projectService; + this.hmiService = hmiService; + this.authService = authService; + this.deviceAdapaterService = deviceAdapaterService; + this.toastNotifier = toastNotifier; + this.projectService.onLoadClientAccess.subscribe(() => { + this.loadScriptApi(); + }); + this.projectService.onLoadHmi.subscribe(() => { + this.loadScriptApi(); + }); + } + loadScriptApi() { + const clientAccess = this.projectService.getClientAccess(); + const systemFunctions = new _models_script__WEBPACK_IMPORTED_MODULE_3__.SystemFunctions(_models_script__WEBPACK_IMPORTED_MODULE_3__.ScriptMode.CLIENT); + const api = {}; + for (const fn of systemFunctions.functions) { + if (clientAccess.scriptSystemFunctions.includes(fn.name)) { + const methodName = fn.name.replace('$', ''); + if (typeof this[fn.name] === 'function') { + api[methodName] = this[fn.name].bind(this); + } else { + console.warn(`Function ${fn.name} not found in ScriptService`); + } + } + } + window.fuxaScriptAPI = api; + } + runScript(script, toLogEvent = true) { + var _this = this; + return new rxjs__WEBPACK_IMPORTED_MODULE_11__.Observable(observer => { + const permission = this.authService.checkPermission(script, true); + if (permission?.enabled === false) { + this.toastNotifier.notifyError('msg.operation-unauthorized', '', false, false); + observer.next(null); + observer.complete(); + return; + } + if (!script.mode || script.mode === _models_script__WEBPACK_IMPORTED_MODULE_3__.ScriptMode.SERVER) { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_12__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = { + script: script, + toLogEvent: toLogEvent + }; + this.http.post(this.endPointConfig + '/api/runscript', { + headers: header, + params: params + }).subscribe(result => { + observer.next(result); + observer.complete(); + }, err => { + console.error(err); + observer.error(err); + }); + } else { + observer.next(null); + observer.complete(); + } + } else { + let parameterToAdd = ''; + script.parameters?.forEach(param => { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.isNumeric(param.value)) { + parameterToAdd += `let ${param.name} = ${param.value};`; + } else if (_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.isObject(param.value)) { + parameterToAdd += `let ${param.name} = ${JSON.stringify(param.value)};`; + } else if (param.type === _models_script__WEBPACK_IMPORTED_MODULE_3__.ScriptParamType.value && !param.value) { + parameterToAdd += `let ${param.name} = ${param.value};`; + } else { + parameterToAdd += `let ${param.name} = '${param.value}';`; + } + parameterToAdd += `\n`; + }); + (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + try { + const code = `${parameterToAdd}${script.code}`; + const asyncText = script.sync ? 'function' : 'async function'; + const callText = `${asyncText} ${script.name}() {\n${_this.addSysFunctions(code)} \n }\n${script.name}.call(this);\n`; + const result = yield eval(callText); + observer.next(result); + } catch (err) { + console.error(err); + observer.error(err); + } finally { + observer.complete(); + } + })(); + } + }); + } + evalScript(script) { + if (script.parameters?.length > 0) { + console.warn('TODO: Script with mode CLIENT not work with parameters.'); + } + try { + const asyncText = script.sync ? '' : 'async'; + const asyncScript = `(${asyncText} () => { ${this.addSysFunctions(script.code)} \n})();`; + eval(asyncScript); + } catch (err) { + console.error(err); + } + } + addSysFunctions(scriptCode) { + let code = scriptCode.replace(/\$getTag\(/g, 'await this.$getTag('); + code = code.replace(/\$setTag\(/g, 'this.$setTag('); + code = code.replace(/\$getTagId\(/g, 'this.$getTagId('); + code = code.replace(/\$getTagDaqSettings\(/g, 'await this.$getTagDaqSettings('); + code = code.replace(/\$setTagDaqSettings\(/g, 'await this.$setTagDaqSettings('); + code = code.replace(/\$setView\(/g, 'this.$setView('); + code = code.replace(/\$openCard\(/g, 'this.$openCard('); + code = code.replace(/\$enableDevice\(/g, 'this.$enableDevice('); + code = code.replace(/\$getDeviceProperty\(/g, 'await this.$getDeviceProperty('); + code = code.replace(/\$setDeviceProperty\(/g, 'await this.$setDeviceProperty('); + code = code.replace(/\$setAdapterToDevice\(/g, 'this.$setAdapterToDevice('); + code = code.replace(/\$resolveAdapterTagId\(/g, 'this.$resolveAdapterTagId('); + code = code.replace(/\$invokeObject\(/g, 'this.$invokeObject('); + code = code.replace(/\$runServerScript\(/g, 'this.$runServerScript('); + code = code.replace(/\$getHistoricalTags\(/g, 'this.$getHistoricalTags('); + code = code.replace(/\$sendMessage\(/g, 'this.$sendMessage('); + code = code.replace(/\$getAlarms\(/g, 'await this.$getAlarms('); + code = code.replace(/\$getAlarmsHistory\(/g, 'await this.$getAlarmsHistory('); + code = code.replace(/\$ackAlarm\(/g, 'await this.$ackAlarm('); + return code; + } + /* get Tag value from server, check authorization of source script */ + $getTag(id) { + var _this2 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let tag = _this2.projectService.getTagFromId(id, true); + if (tag?.deviceType === _models_device__WEBPACK_IMPORTED_MODULE_7__.DeviceType.internal) { + return tag.value; + } + const sourceScriptName = _this2.extractUserFunctionBeforeScriptService(); + let values = yield _this2.projectService.getTagsValues([id], sourceScriptName); + return values[0]?.value; + })(); + } + /* set Tag value to server via socket */ + $setTag(id, value) { + this.hmiService.putSignalValue(id, value); + } + $getTagId(tagName, deviceName) { + return this.projectService.getTagIdFromName(tagName, deviceName); + } + $getTagDaqSettings(id) { + var _this3 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let daqSettings = yield _this3.projectService.runSysFunctionSync('$getTagDaqSettings', [id]); + return daqSettings; + })(); + } + $setTagDaqSettings(id, daq) { + var _this4 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this4.projectService.runSysFunctionSync('$setTagDaqSettings', [id, daq]); + })(); + } + $setView(viewName, force) { + this.hmiService.onScriptCommand({ + command: _hmi_service__WEBPACK_IMPORTED_MODULE_5__.ScriptCommandEnum.SETVIEW, + params: [viewName, force] + }); + } + $openCard(viewName, options) { + this.hmiService.onScriptCommand({ + command: _hmi_service__WEBPACK_IMPORTED_MODULE_5__.ScriptCommandEnum.OPENCARD, + params: [viewName, options] + }); + } + $enableDevice(deviceName, enable) { + this.hmiService.deviceEnable(deviceName, enable); + } + $getDeviceProperty(deviceName) { + var _this5 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let daqSettings = yield _this5.projectService.runSysFunctionSync('$getDeviceProperty', [deviceName]); + return daqSettings; + })(); + } + $setDeviceProperty(deviceName, property) { + var _this6 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this6.projectService.runSysFunctionSync('$setDeviceProperty', [deviceName, property]); + })(); + } + $setAdapterToDevice(adapterName, deviceName) { + var _this7 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this7.deviceAdapaterService.setTargetDevice(adapterName, deviceName, _this7.hmiService.initSignalValues.bind(_this7.hmiService)); + })(); + } + $resolveAdapterTagId(id) { + let tagIdOfDevice = this.deviceAdapaterService.resolveAdapterTagsId([id]); + if (tagIdOfDevice?.length && tagIdOfDevice[0] !== id) { + return tagIdOfDevice[0]; + } + return id; + } + $invokeObject(gaugeName, fncName, ...params) { + const gauge = this.hmiService.getGaugeMapped(gaugeName); + if (gauge[fncName]) { + return gauge[fncName](...params); + } + return null; + } + $runServerScript(scriptName, ...params) { + var _this8 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + let scriptToRun = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.clone(_this8.projectService.getScripts().find(dataScript => dataScript.name == scriptName)); + scriptToRun.parameters = params; + return yield (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.lastValueFrom)(_this8.runScript(scriptToRun, false)); + })(); + } + $getHistoricalTags(tagIds, fromDate, toDate) { + var _this9 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + const query = { + sids: tagIds, + from: fromDate, + to: toDate + }; + return yield (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.lastValueFrom)(_this9.hmiService.getDaqValues(query)); + })(); + } + $sendMessage(to, subject, message) { + var _this0 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this0.projectService.runSysFunctionSync('$sendMessage', [to, subject, message]); + })(); + } + $getAlarms() { + var _this1 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this1.projectService.runSysFunctionSync('$getAlarms', null); + })(); + } + $getAlarmsHistory(from, to) { + var _this10 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this10.projectService.runSysFunctionSync('$getAlarmsHistory', [from, to]); + })(); + } + $ackAlarm(alarmName, types) { + var _this11 = this; + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + return yield _this11.projectService.runSysFunctionSync('$ackAlarm', [alarmName, types]); + })(); + } + extractUserFunctionBeforeScriptService() { + const err = new Error(); + const lines = err.stack?.match(/at\s[^\n]+/g); + if (!lines) { + return null; + } + for (const line of lines) { + const match = line.match(/ScriptService\.([\w$]+) \(eval at/); + if (match) { + return match[1]; + } + } + return null; + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_12__.HttpClient + }, { + type: _project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _hmi_service__WEBPACK_IMPORTED_MODULE_5__.HmiService + }, { + type: _auth_service__WEBPACK_IMPORTED_MODULE_9__.AuthService + }, { + type: _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_10__.DeviceAdapterService + }, { + type: _toast_notifier_service__WEBPACK_IMPORTED_MODULE_8__.ToastNotifierService + }]; +}; +ScriptService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_14__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_12__.HttpClient, _project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _hmi_service__WEBPACK_IMPORTED_MODULE_5__.HmiService, _auth_service__WEBPACK_IMPORTED_MODULE_9__.AuthService, _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_10__.DeviceAdapterService, _toast_notifier_service__WEBPACK_IMPORTED_MODULE_8__.ToastNotifierService])], ScriptService); + + +/***/ }), + +/***/ 22044: +/*!***********************************************!*\ + !*** ./src/app/_services/settings.service.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SettingsService: () => (/* binding */ SettingsService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _models_settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/settings */ 99234); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let SettingsService = class SettingsService { + http; + fuxaLanguage; + translateService; + toastr; + appSettings = new _models_settings__WEBPACK_IMPORTED_MODULE_2__.AppSettings(); + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_1__.EndPointApi.getURL(); + editModeLocked = false; + constructor(http, fuxaLanguage, translateService, toastr) { + this.http = http; + this.fuxaLanguage = fuxaLanguage; + this.translateService = translateService; + this.toastr = toastr; + } + init() { + // this language will be used as a fallback when a translation isn't found in the current language + this.fuxaLanguage.setDefaultLang('en'); + // the lang to use, if the lang isn't available, it will use the current loader to get them + this.fuxaLanguage.use('en'); + // to load saved settings + if (_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.serverEnabled) { + this.http.get(this.endPointConfig + '/api/settings').subscribe(result => { + this.setSettings(result); + }, error => { + console.error('settings.service err: ' + error); + }); + } + // this.setLanguage(this.appSettings.language); + } + + getSettings() { + return this.appSettings; + } + setSettings(settings) { + var dirty = false; + if (settings.language && settings.language !== this.appSettings.language) { + this.fuxaLanguage.use(settings.language); + this.appSettings.language = settings.language; + dirty = true; + } + if (settings.uiPort && settings.uiPort !== this.appSettings.uiPort) { + this.appSettings.uiPort = settings.uiPort; + dirty = true; + } + if (settings.secureEnabled !== this.appSettings.secureEnabled || settings.tokenExpiresIn !== this.appSettings.tokenExpiresIn || settings.secureOnlyEditor !== this.appSettings.secureOnlyEditor) { + this.appSettings.secureEnabled = settings.secureEnabled; + this.appSettings.tokenExpiresIn = settings.tokenExpiresIn; + this.appSettings.secureOnlyEditor = settings.secureOnlyEditor; + dirty = true; + } + if (settings.broadcastAll !== this.appSettings.broadcastAll) { + this.appSettings.broadcastAll = settings.broadcastAll; + dirty = true; + } + if (settings.smtp && !(settings.smtp.host === this.appSettings.smtp.host && settings.smtp.port === this.appSettings.smtp.port && settings.smtp.mailsender === this.appSettings.smtp.mailsender && settings.smtp.username === this.appSettings.smtp.username && settings.smtp.password === this.appSettings.smtp.password)) { + this.appSettings.smtp = new _models_settings__WEBPACK_IMPORTED_MODULE_2__.SmtpSettings(settings.smtp); + dirty = true; + } + if (settings.daqstore && !this.appSettings.daqstore.isEquals(settings.daqstore)) { + this.appSettings.daqstore = new _models_settings__WEBPACK_IMPORTED_MODULE_2__.DaqStore(settings.daqstore); + dirty = true; + } + if (settings.logFull !== this.appSettings.logFull) { + this.appSettings.logFull = settings.logFull; + dirty = true; + } + if (settings.alarms && settings.alarms.retention !== this.appSettings.alarms?.retention) { + this.appSettings.alarms.retention = settings.alarms.retention ?? this.appSettings.alarms?.retention; + dirty = true; + } + if (settings.userRole !== this.appSettings.userRole) { + this.appSettings.userRole = settings.userRole; + dirty = true; + } + return dirty; + } + saveSettings() { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.post(this.endPointConfig + '/api/settings', this.appSettings, { + headers: header + }).subscribe(result => {}, err => { + this.notifySaveError(err); + }); + } + } + clearAlarms(all) { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_0__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.post(this.endPointConfig + '/api/alarmsClear', { + headers: header, + params: all + }).subscribe(result => { + var msg = ''; + this.translateService.get('msg.alarms-clear-success').subscribe(txt => { + msg = txt; + }); + this.toastr.success(msg); + }, err => { + console.error(err); + this.notifySaveError(err); + }); + } + } + notifySaveError(err) { + let msg = ''; + this.translateService.get('msg.settings-save-error').subscribe(txt => { + msg = txt; + }); + if (err.status === 401) { + this.translateService.get('msg.settings-save-unauthorized').subscribe(txt => { + msg = txt; + }); + } + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + //#region Editor Mode Check + lockEditMode() { + this.editModeLocked = true; + } + unlockEditMode() { + this.editModeLocked = false; + } + isEditModeLocked() { + return this.editModeLocked; + } + notifyEditorLocked() { + var msg = ''; + this.translateService.get('msg.editor-mode-locked').subscribe(txt => { + msg = txt; + }); + this.toastr.warning(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: false + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_5__.ToastrService + }]; +}; +SettingsService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_5__.ToastrService])], SettingsService); + + +/***/ }), + +/***/ 69053: +/*!********************************************!*\ + !*** ./src/app/_services/theme.service.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ThemeService: () => (/* binding */ ThemeService) +/* harmony export */ }); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _config_theme_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_config/theme.config */ 13356); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ThemeService_1; + + + +let ThemeService = ThemeService_1 = class ThemeService { + document; + constructor(document) { + this.document = document; + } + static ThemeType = { + Dark: 'dark', + Default: 'default' + }; + setTheme(name = ThemeService_1.ThemeType.Dark) { + if (!_config_theme_config__WEBPACK_IMPORTED_MODULE_0__.THEMES[name]) { + name = ThemeService_1.ThemeType.Dark; + } + // name = ThemeService.ThemeType.Dark; + const theme = _config_theme_config__WEBPACK_IMPORTED_MODULE_0__.THEMES[name]; + Object.keys(theme).forEach(key => { + this.document.documentElement.style.setProperty(`--${key}`, theme[key]); + }); + const body = document.getElementsByTagName('body')[0]; + body.classList.remove('dark-theme'); + if (name === ThemeService_1.ThemeType.Dark) { + body.classList.add('dark-theme'); + } + } + static ctorParameters = () => [{ + type: Document, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Inject, + args: [_angular_common__WEBPACK_IMPORTED_MODULE_2__.DOCUMENT] + }] + }]; +}; +ThemeService = ThemeService_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [Document])], ThemeService); + + +/***/ }), + +/***/ 50243: +/*!*****************************************************!*\ + !*** ./src/app/_services/toast-notifier.service.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ToastNotifierService: () => (/* binding */ ToastNotifierService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ngx-toastr */ 37240); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let ToastNotifierService = class ToastNotifierService { + translateService; + toastr; + constructor(translateService, toastr) { + this.translateService = translateService; + this.toastr = toastr; + } + notifyError(msgKey, err = '', closeButton = true, disableTimeOut = true) { + this.translateService.get(msgKey).subscribe(txt => { + this.toastr.error(`${txt} ${err}`, '', { + timeOut: 3000, + closeButton: closeButton, + disableTimeOut: disableTimeOut + }); + }); + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_0__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_1__.ToastrService + }]; +}; +ToastNotifierService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_0__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_1__.ToastrService])], ToastNotifierService); + + +/***/ }), + +/***/ 96155: +/*!*******************************************!*\ + !*** ./src/app/_services/user.service.ts ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ UserService: () => (/* binding */ UserService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rcgi/reswebapi.service */ 98331); +/* harmony import */ var _rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rcgi/resdemo.service */ 27126); +/* harmony import */ var _rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rcgi/resclient.service */ 58331); +/* harmony import */ var _app_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./app.service */ 49982); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let UserService = class UserService { + http; + translateService; + toastr; + appService; + resewbApiService; + resDemoService; + resClientService; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_0__.EndPointApi.getURL(); + storage; + constructor(http, translateService, toastr, appService, resewbApiService, resDemoService, resClientService) { + this.http = http; + this.translateService = translateService; + this.toastr = toastr; + this.appService = appService; + this.resewbApiService = resewbApiService; + this.resDemoService = resDemoService; + this.resClientService = resClientService; + this.storage = resewbApiService; + if (!_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled || appService.isDemoApp) { + this.storage = resDemoService; + } else if (appService.isClientApp) { + this.storage = resClientService; + } + } + getUsers(user) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + let params = user; + return this.http.get(this.endPointConfig + '/api/users', { + headers: header, + params: params + }); + } + setUser(user) { + return new rxjs__WEBPACK_IMPORTED_MODULE_7__.Observable(observer => { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.post(this.endPointConfig + '/api/users', { + headers: header, + params: user + }).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(); + observer.error(err); + }); + } else { + observer.next(null); + } + }); + } + removeUser(user) { + return new rxjs__WEBPACK_IMPORTED_MODULE_7__.Observable(observer => { + if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.serverEnabled) { + let header = new _angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpHeaders({ + 'Content-Type': 'application/json' + }); + this.http.delete(this.endPointConfig + '/api/users', { + headers: header, + params: { + param: user.username + } + }).subscribe(result => { + observer.next(null); + }, err => { + console.error(err); + this.notifySaveError(); + observer.error(err); + }); + } else { + observer.next(null); + } + }); + } + getRoles() { + return new rxjs__WEBPACK_IMPORTED_MODULE_7__.Observable(observer => { + this.storage.getRoles().subscribe(result => { + observer.next(result); + }, err => { + console.error(err); + observer.error(err); + }); + }); + } + setRole(role) { + return new rxjs__WEBPACK_IMPORTED_MODULE_7__.Observable(observer => { + this.storage.setRoles([role]).subscribe(result => { + observer.next(result); + }, err => { + console.error(err); + observer.error(err); + }); + }); + } + removeRole(role) { + return new rxjs__WEBPACK_IMPORTED_MODULE_7__.Observable(observer => { + this.storage.removeRoles([role]).subscribe(result => { + observer.next(result); + }, err => { + console.error(err); + observer.error(err); + }); + }); + } + //#region Notify + notifySaveError() { + let msg = ''; + this.translateService.get('msg.users-save-error').subscribe(txt => { + msg = txt; + }); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpClient + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_9__.ToastrService + }, { + type: _app_service__WEBPACK_IMPORTED_MODULE_5__.AppService + }, { + type: _rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_2__.ResWebApiService + }, { + type: _rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_3__.ResDemoService + }, { + type: _rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_4__.ResClientService + }]; +}; +UserService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Injectable)(), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpClient, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_9__.ToastrService, _app_service__WEBPACK_IMPORTED_MODULE_5__.AppService, _rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_2__.ResWebApiService, _rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_3__.ResDemoService, _rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_4__.ResClientService])], UserService); + + +/***/ }), + +/***/ 71742: +/*!***********************************************************!*\ + !*** ./src/app/alarms/alarm-list/alarm-list.component.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AlarmListComponent: () => (/* binding */ AlarmListComponent) +/* harmony export */ }); +/* harmony import */ var _alarm_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./alarm-list.component.html?ngResource */ 68766); +/* harmony import */ var _alarm_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alarm-list.component.css?ngResource */ 89385); +/* harmony import */ var _alarm_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_alarm_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _alarm_property_alarm_property_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../alarm-property/alarm-property.component */ 90786); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/alarm */ 38238); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let AlarmListComponent = class AlarmListComponent { + dialog; + translateService; + projectService; + displayedColumns = ['select', 'name', 'device', 'highhigh', 'high', 'low', 'info', 'actions', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_5__.MatLegacyTableDataSource([]); + subscriptionLoad; + enabledText = ''; + table; + sort; + constructor(dialog, translateService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + } + ngOnInit() { + this.loadAlarms(); + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(res => { + this.loadAlarms(); + }); + this.translateService.get('alarm.property-enabled').subscribe(txt => { + this.enabledText = txt; + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + onAddAlarm() { + let alarm = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.Alarm(); + this.editAlarm(alarm, 1); + } + onEditAlarm(alarm) { + this.editAlarm(alarm, 0); + } + onRemoveAlarm(alarm) { + this.editAlarm(alarm, -1); + } + editAlarm(alarm, toAdd) { + let malarm = JSON.parse(JSON.stringify(alarm)); + let dialogRef = this.dialog.open(_alarm_property_alarm_property_component__WEBPACK_IMPORTED_MODULE_3__.AlarmPropertyComponent, { + disableClose: true, + data: { + alarm: malarm, + editmode: toAdd, + alarms: this.dataSource.data, + devices: Object.values(this.projectService.getDevices()), + views: this.projectService.getViews() + }, + position: { + top: '80px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (toAdd < 0) { + this.projectService.removeAlarm(result).subscribe(result => { + this.loadAlarms(); + }); + } else { + this.projectService.setAlarm(result, alarm).subscribe(result => { + this.loadAlarms(); + }); + } + } + }); + } + getSubProperty(alrSubPro) { + if (alrSubPro && alrSubPro.enabled && _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubProperty.isValid(alrSubPro)) { + return this.enabledText; + } + return ''; + } + getSubActionsProperty(alrSubAct) { + if (alrSubAct && alrSubAct.enabled && _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubActions.isValid(alrSubAct)) { + return this.enabledText; + } + return ''; + } + getVariableLabel(varProp) { + if (!varProp.variableId) { + return ''; + } + let device = this.projectService.getDeviceFromTagId(varProp.variableId); + if (device) { + return device.name + ' - ' + device.tags[varProp.variableId].name; + } + return ''; + } + loadAlarms() { + this.dataSource.data = this.projectService.getAlarms(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_5__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_9__.MatSort, { + static: false + }] + }] + }; +}; +AlarmListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-alarm-list', + template: _alarm_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_alarm_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], AlarmListComponent); + + +/***/ }), + +/***/ 90786: +/*!*******************************************************************!*\ + !*** ./src/app/alarms/alarm-property/alarm-property.component.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AlarmPropertyComponent: () => (/* binding */ AlarmPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _alarm_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./alarm-property.component.html?ngResource */ 99064); +/* harmony import */ var _alarm_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alarm-property.component.scss?ngResource */ 73618); +/* harmony import */ var _alarm_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_alarm_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gauges_gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauges/gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _gauges_gauge_property_flex_auth_flex_auth_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gauges/gauge-property/flex-auth/flex-auth.component */ 31178); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/alarm */ 38238); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_models/script */ 10846); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let AlarmPropertyComponent = class AlarmPropertyComponent { + dialogRef; + projectService; + translateService; + data; + flexAuth; + flexHead; + scripts; + property; + ackMode = _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode; + actionsType = _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType; + actionPopup = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType.popup); + actionSetView = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType.setView); + actionSetValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType.setValue); + actionRunScript = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType.runScript); + actionToastMessage = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmActionsType.toastMessage); + // actionSendMsg = Utils.getEnumKey(AlarmActionsType, AlarmActionsType.sendMsg); + errorExist = false; + errorMissingValue = false; + existnames = []; + existtexts = []; + existgroups = []; + constructor(dialogRef, projectService, translateService, data) { + this.dialogRef = dialogRef; + this.projectService = projectService; + this.translateService = translateService; + this.data = data; + if (this.data.alarm.property) { + this.property = JSON.parse(JSON.stringify(this.data.alarm.property)); + } else { + this.property = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmProperty(); + } + if (!this.data.alarm.highhigh) { + this.data.alarm.highhigh = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubProperty(); + this.data.alarm.highhigh.bkcolor = '#FF4848'; + this.data.alarm.highhigh.color = '#FFF'; + this.data.alarm.highhigh.enabled = false; + this.data.alarm.highhigh.ackmode = Object.keys(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode)[Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode).indexOf(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode.ackactive)]; + } + if (!this.data.alarm.high) { + this.data.alarm.high = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubProperty(); + this.data.alarm.high.bkcolor = '#F9CF59'; + this.data.alarm.high.color = '#000'; + this.data.alarm.high.enabled = false; + this.data.alarm.high.ackmode = Object.keys(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode)[Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode).indexOf(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode.ackactive)]; + // this.data.alarm.info = new AlarmSubProperty(); + } + + if (!this.data.alarm.low) { + this.data.alarm.low = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubProperty(); + this.data.alarm.low.bkcolor = '#E5E5E5'; + this.data.alarm.low.color = '#000'; + this.data.alarm.low.enabled = false; + this.data.alarm.low.ackmode = Object.keys(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode)[Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode).indexOf(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode.ackactive)]; + } + if (!this.data.alarm.info) { + this.data.alarm.info = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubProperty(); + this.data.alarm.info.bkcolor = '#22A7F2'; + this.data.alarm.info.color = '#FFF'; + this.data.alarm.info.enabled = false; + this.data.alarm.info.ackmode = Object.keys(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode)[Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode).indexOf(_models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAckMode.float)]; + } + if (!this.data.alarm.actions) { + this.data.alarm.actions = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmSubActions(); + this.data.alarm.actions.enabled = false; + } + Object.keys(this.ackMode).forEach(key => { + this.translateService.get(this.ackMode[key]).subscribe(txt => { + this.ackMode[key] = txt; + }); + }); + Object.keys(this.actionsType).forEach(key => { + this.translateService.get(this.actionsType[key]).subscribe(txt => { + this.actionsType[key] = txt; + }); + }); + if (data.alarms) { + this.existnames = data.alarms.filter(a => a.name !== data.alarm.name); + data.alarms.forEach(item => { + if (item.highhigh.text && this.existtexts.indexOf(item.highhigh.text) === -1) { + this.existtexts.push(item.highhigh.text); + } + if (item.high.text && this.existtexts.indexOf(item.high.text) === -1) { + this.existtexts.push(item.high.text); + } + if (item.low.text && this.existtexts.indexOf(item.low.text) === -1) { + this.existtexts.push(item.low.text); + } + if (item.info.text && this.existtexts.indexOf(item.info.text) === -1) { + this.existtexts.push(item.info.text); + } + if (item.highhigh.group && this.existgroups.indexOf(item.highhigh.group) === -1) { + this.existgroups.push(item.highhigh.group); + } + if (item.high.group && this.existgroups.indexOf(item.high.group) === -1) { + this.existgroups.push(item.high.group); + } + if (item.low.group && this.existgroups.indexOf(item.low.group) === -1) { + this.existgroups.push(item.low.group); + } + if (item.info.group && this.existgroups.indexOf(item.info.group) === -1) { + this.existgroups.push(item.info.group); + } + }); + } + } + ngOnInit() { + this.scripts = this.projectService.getScripts()?.filter(script => script.mode === _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptMode.SERVER); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.data.editmode < 0) { + this.dialogRef.close(this.data.alarm); + } else if (this.checkValid()) { + this.data.alarm.property = this.property; + this.data.alarm.property.permission = this.flexAuth.permission; + this.data.alarm.property.permissionRoles = this.flexAuth.permissionRoles; + this.data.alarm.name = this.flexAuth.name; + this.dialogRef.close(this.data.alarm); + } + } + checkValid() { + this.errorMissingValue = !this.flexAuth.name; + this.errorExist = this.existnames.find(a => a.name === this.flexAuth.name) ? true : false; + return !(this.errorMissingValue || this.errorExist); + } + onAddAction() { + let act = new _models_alarm__WEBPACK_IMPORTED_MODULE_4__.AlarmAction(); + this.data.alarm.actions.values.push(act); + } + onAlarmAction(index) { + this.data.alarm.actions.values.splice(index, 1); + } + setActionVariable(action, event) { + action.variableId = event.variableId; + } + onScriptChanged(scriptId, item) { + let script = this.scripts.find(s => s.id === scriptId); + item.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_6__.SCRIPT_PARAMS_MAP] = []; + if (script && script.parameters) { + item.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_6__.SCRIPT_PARAMS_MAP] = JSON.parse(JSON.stringify(script.parameters)); + } + } + setScriptParam(scriptParam, event) { + scriptParam.value = event.variableId; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + flexAuth: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexauth', { + static: false + }] + }], + flexHead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexhead', { + static: false + }] + }] + }; +}; +AlarmPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-alarm-property', + template: _alarm_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_alarm_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, Object])], AlarmPropertyComponent); + + +/***/ }), + +/***/ 65232: +/*!***********************************************************!*\ + !*** ./src/app/alarms/alarm-view/alarm-view.component.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AlarmShowType: () => (/* binding */ AlarmShowType), +/* harmony export */ AlarmViewComponent: () => (/* binding */ AlarmViewComponent) +/* harmony export */ }); +/* harmony import */ var _alarm_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./alarm-view.component.html?ngResource */ 17755); +/* harmony import */ var _alarm_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alarm-view.component.css?ngResource */ 65773); +/* harmony import */ var _alarm_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_alarm_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 89378); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 16290); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs/operators */ 81891); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs/operators */ 2389); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs/operators */ 77592); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/hmi.service */ 69578); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/alarm */ 38238); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! moment */ 58540); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_language_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_services/language.service */ 46368); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + +let AlarmViewComponent = class AlarmViewComponent { + translateService; + dialog; + languageService; + hmiService; + alarmsColumns = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmColumns; + historyColumns = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmHistoryColumns; + displayColumns = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmColumns; + showheader = false; + currentShowMode = 'collapse'; + alarmsPolling; + statusText = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmStatusType; + priorityText = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmPriorityType; + alarmShowType = AlarmShowType; + showType = AlarmShowType.alarms; + history = []; + alarmsLoading = false; + dateRange; + autostart = false; + showInContainer = false; + fullview = true; + showMode = new _angular_core__WEBPACK_IMPORTED_MODULE_7__.EventEmitter(); + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_8__.MatLegacyTableDataSource([]); + table; + sort; + paginator; + rxjsPollingTimer = (0,rxjs__WEBPACK_IMPORTED_MODULE_9__.timer)(0, 2000); + destroy = new rxjs__WEBPACK_IMPORTED_MODULE_10__.Subject(); + constructor(translateService, dialog, languageService, hmiService) { + this.translateService = translateService; + this.dialog = dialog; + this.languageService = languageService; + this.hmiService = hmiService; + const today = moment__WEBPACK_IMPORTED_MODULE_4__(); + this.dateRange = new _angular_forms__WEBPACK_IMPORTED_MODULE_11__.FormGroup({ + endDate: new _angular_forms__WEBPACK_IMPORTED_MODULE_11__.FormControl(today.set({ + hour: 23, + minute: 59, + second: 59, + millisecond: 999 + }).toDate()), + startDate: new _angular_forms__WEBPACK_IMPORTED_MODULE_11__.FormControl(today.set({ + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }).add(-3, 'day').toDate()) + }); + } + ngOnInit() { + Object.keys(this.statusText).forEach(key => { + this.translateService.get(this.statusText[key]).subscribe(txt => { + this.statusText[key] = txt; + }); + }); + Object.keys(this.priorityText).forEach(key => { + this.translateService.get(this.priorityText[key]).subscribe(txt => { + this.priorityText[key] = txt; + }); + }); + } + ngAfterViewInit() { + this.displayColumns = this.alarmsColumns; + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + this.table.renderRows(); + if (this.autostart) { + this.startAskAlarmsValues(); + } + } + ngOnDestroy() { + this.stopAskAlarmsValues(); + } + startAskAlarmsValues() { + this.startPolling(); + } + stopAskAlarmsValues() { + this.stopPolling(); + } + stopPolling() { + this.alarmsPolling = 0; + this.destroy.next(null); + this.destroy.complete(); + } + startPolling() { + try { + if (!this.alarmsPolling) { + this.alarmsPolling = 1; + this.destroy = new rxjs__WEBPACK_IMPORTED_MODULE_10__.Subject(); + this.rxjsPollingTimer.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.takeUntil)(this.destroy), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.switchMap)(() => this.hmiService.getAlarmsValues().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.catchError)(er => this.handleError(er))))).subscribe(result => { + this.updateAlarmsList(result); + }); + } + } catch (error) {} + } + handleError(error) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_15__.empty)(); + } + updateAlarmsList(alr) { + if (this.showType === AlarmShowType.alarms) { + alr.forEach(alr => { + alr.text = this.languageService.getTranslation(alr.text) ?? alr.text; + alr.group = this.languageService.getTranslation(alr.group) ?? alr.group; + alr.status = this.getStatus(alr.status); + alr.type = this.getPriority(alr.type); + }); + this.dataSource.data = alr; + } + } + getStatus(status) { + return this.statusText[status]; + } + getPriority(type) { + return this.priorityText[type]; + } + onAckAlarm(alarm) { + this.hmiService.setAlarmAck(alarm.name).subscribe(result => {}, error => { + console.error('Error setAlarmAck', error); + }); + } + onAckAllAlarm() { + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__.ConfirmDialogComponent, { + data: { + msg: this.translateService.instant('msg.alarm-ack-all') + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.hmiService.setAlarmAck(null).subscribe(result => {}, error => { + console.error('Error onAckAllAlarm', error); + }); + } + }); + } + onShowMode(mode) { + this.currentShowMode = mode; + this.showMode.emit(this.currentShowMode); + } + onClose() { + this.onShowAlarms(); + this.currentShowMode = 'collapse'; + this.showMode.emit('close'); + this.stopAskAlarmsValues(); + } + onShowAlarms() { + this.showType = AlarmShowType.alarms; + this.displayColumns = this.alarmsColumns; + } + onShowAlarmsHistory() { + console.log(new Date(this.dateRange.value.startDate), new Date(this.dateRange.value.endDate)); + this.showType = AlarmShowType.history; + this.displayColumns = this.historyColumns; + let query = { + start: new Date(new Date(this.dateRange.value.startDate).setHours(0, 0, 0, 0)), + end: new Date(new Date(this.dateRange.value.endDate).setHours(23, 59, 59, 999)) + }; + this.alarmsLoading = true; + this.hmiService.getAlarmsHistory(query).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.delay)(1000)).subscribe(result => { + if (result) { + result.forEach(alr => { + alr.status = this.getStatus(alr.status); + alr.type = this.getPriority(alr.type); + }); + this.dataSource.data = result; + } + this.alarmsLoading = false; + }); + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_17__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_18__.MatLegacyDialog + }, { + type: _services_language_service__WEBPACK_IMPORTED_MODULE_6__.LanguageService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }]; + static propDecorators = { + autostart: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + showInContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + fullview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + showMode: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Output + }], + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_8__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_19__.MatSort, { + static: false + }] + }], + paginator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, + args: [_angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_20__.MatLegacyPaginator, { + static: false + }] + }] + }; +}; +AlarmViewComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-alarm-view', + template: _alarm_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_alarm_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_17__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_18__.MatLegacyDialog, _services_language_service__WEBPACK_IMPORTED_MODULE_6__.LanguageService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService])], AlarmViewComponent); + +var AlarmShowType; +(function (AlarmShowType) { + AlarmShowType[AlarmShowType["alarms"] = 0] = "alarms"; + AlarmShowType[AlarmShowType["history"] = 1] = "history"; +})(AlarmShowType || (AlarmShowType = {})); + +/***/ }), + +/***/ 66401: +/*!**********************************!*\ + !*** ./src/app/app.component.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AppComponent: () => (/* binding */ AppComponent) +/* harmony export */ }); +/* harmony import */ var _app_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app.component.html?ngResource */ 33383); +/* harmony import */ var _app_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component.css?ngResource */ 56715); +/* harmony import */ var _app_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_app_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 7835); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 59016); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 13738); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 81891); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs */ 13379); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../environments/environment */ 20553); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_services/project.service */ 57610); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_services/settings.service */ 22044); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_models/user */ 252); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_services/app.service */ 49982); +/* harmony import */ var _services_heartbeat_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_services/heartbeat.service */ 6159); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let AppComponent = class AppComponent { + document; + router; + appService; + projectService; + settingsService; + translateService; + heartbeatService; + cdr; + title = 'app'; + location; + showdev = false; + isLoading = false; + fabmenu; + subscriptionLoad; + subscriptionShowLoading; + constructor(document, router, appService, projectService, settingsService, translateService, heartbeatService, cdr, location) { + this.document = document; + this.router = router; + this.appService = appService; + this.projectService = projectService; + this.settingsService = settingsService; + this.translateService = translateService; + this.heartbeatService = heartbeatService; + this.cdr = cdr; + this.location = location; + } + ngOnInit() { + console.log(`FUXA v${_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.version}`); + this.heartbeatService.startHeartbeatPolling(); + // capture events for the token refresh + const inactivityDuration = 1 * 60 * 1000; + const activity$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_8__.merge)((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.fromEvent)(document, 'click'), (0,rxjs__WEBPACK_IMPORTED_MODULE_9__.fromEvent)(document, 'touchstart')); + activity$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_10__.tap)(() => this.heartbeatService.setActivity(true)), (0,rxjs__WEBPACK_IMPORTED_MODULE_11__.switchMap)(() => (0,rxjs__WEBPACK_IMPORTED_MODULE_12__.interval)(inactivityDuration))).subscribe(() => { + this.heartbeatService.setActivity(false); + }); + } + ngAfterViewInit() { + try { + this.settingsService.init(); + let hmi = this.projectService.getHmi(); + if (hmi) { + this.checkSettings(); + } + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(load => { + this.checkSettings(); + this.applyCustomCss(); + }, error => { + console.error('Error loadHMI'); + }); + // define user groups text + this.translateService.get('general.usergroups').subscribe(txt => { + let grpLabels = txt.split(','); + if (grpLabels && grpLabels.length > 0) { + for (let i = 0; i < grpLabels.length && i < _models_user__WEBPACK_IMPORTED_MODULE_5__.UserGroups.Groups.length; i++) { + _models_user__WEBPACK_IMPORTED_MODULE_5__.UserGroups.Groups[i].label = grpLabels[i]; + } + } + }); + // show loading manager + this.subscriptionShowLoading = this.appService.onShowLoading.subscribe(show => { + this.isLoading = show; + this.cdr.detectChanges(); + }, error => { + this.isLoading = false; + console.error('Error to show loading'); + }); + } catch (err) { + console.error(err); + } + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + if (this.subscriptionShowLoading) { + this.subscriptionShowLoading.unsubscribe(); + } + } catch (e) {} + } + applyCustomCss() { + let hmi = this.projectService.getHmi(); + if (hmi?.layout?.customStyles) { + const style = this.document.createElement('style'); + style.textContent = hmi.layout.customStyles; + this.document.head.appendChild(style); + } + } + checkSettings() { + let hmi = this.projectService.getHmi(); + if (hmi && hmi.layout && hmi.layout.showdev === false) { + this.showdev = false; + } else { + this.showdev = true; + } + } + isHidden() { + const urlEnd = this.location.path(); + if (!urlEnd || urlEnd.startsWith('/home') || urlEnd === '/lab') { + return true; + } + return false; + } + getClass() { + const route = this.location.path(); + if (route.startsWith('/view')) { + return 'work-void'; + } + return this.isHidden() ? 'work-home' : 'work-editor'; + } + showDevNavigation() { + const route = this.location.path(); + if (route.startsWith('/view')) { + return false; + } + return this.showdev; + } + onGoTo(goto) { + this.router.navigate([goto]); + this.fabmenu.toggle(); + //TODO! + if (!this.location.path().includes(goto) && ['home', 'lab'].indexOf(goto) !== -1) { + if (goto === 'lab') { + this.router.navigate(['']); + setTimeout(() => { + this.router.navigate([goto]); + }, 0); + } + } + } + static ctorParameters = () => [{ + type: Document, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Inject, + args: [_angular_common__WEBPACK_IMPORTED_MODULE_14__.DOCUMENT] + }] + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_15__.Router + }, { + type: _services_app_service__WEBPACK_IMPORTED_MODULE_6__.AppService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_4__.SettingsService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__.TranslateService + }, { + type: _services_heartbeat_service__WEBPACK_IMPORTED_MODULE_7__.HeartbeatService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ChangeDetectorRef + }, { + type: _angular_common__WEBPACK_IMPORTED_MODULE_14__.Location + }]; + static propDecorators = { + fabmenu: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['fabmenu', { + static: false + }] + }] + }; +}; +AppComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_13__.Component)({ + selector: 'app-root', + template: _app_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_app_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [Document, _angular_router__WEBPACK_IMPORTED_MODULE_15__.Router, _services_app_service__WEBPACK_IMPORTED_MODULE_6__.AppService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _services_settings_service__WEBPACK_IMPORTED_MODULE_4__.SettingsService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__.TranslateService, _services_heartbeat_service__WEBPACK_IMPORTED_MODULE_7__.HeartbeatService, _angular_core__WEBPACK_IMPORTED_MODULE_13__.ChangeDetectorRef, _angular_common__WEBPACK_IMPORTED_MODULE_14__.Location])], AppComponent); + + +/***/ }), + +/***/ 78629: +/*!*******************************!*\ + !*** ./src/app/app.module.ts ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AppModule: () => (/* binding */ AppModule), +/* harmony export */ createTranslateLoader: () => (/* binding */ createTranslateLoader), +/* harmony export */ myCustomTooltipDefaults: () => (/* binding */ myCustomTooltipDefaults) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! @angular/platform-browser */ 36480); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var _material_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./material.module */ 29099); +/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! @angular/platform-browser/animations */ 24987); +/* harmony import */ var ngx_color_picker__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ngx-color-picker */ 64710); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_215__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! @ngx-translate/http-loader */ 26930); +/* harmony import */ var angular2_draggable__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! angular2-draggable */ 81349); +/* harmony import */ var _ctrl_ngx_codemirror__WEBPACK_IMPORTED_MODULE_218__ = __webpack_require__(/*! @ctrl/ngx-codemirror */ 67476); +/* harmony import */ var _gui_helpers_daterangepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gui-helpers/daterangepicker */ 76699); +/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app.component */ 66401); +/* harmony import */ var _app_routing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app.routing */ 70034); +/* harmony import */ var _auth_guard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./auth.guard */ 8407); +/* harmony import */ var _home_home_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./home/home.component */ 6459); +/* harmony import */ var _header_header_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./header/header.component */ 63767); +/* harmony import */ var _iframe_iframe_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./iframe/iframe.component */ 4575); +/* harmony import */ var _view_view_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./view/view.component */ 18199); +/* harmony import */ var _logs_view_logs_view_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./logs-view/logs-view.component */ 46657); +/* harmony import */ var _sidenav_sidenav_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./sidenav/sidenav.component */ 79839); +/* harmony import */ var _editor_editor_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./editor/editor.component */ 60359); +/* harmony import */ var _editor_layout_property_layout_property_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./editor/layout-property/layout-property.component */ 51560); +/* harmony import */ var _editor_plugins_plugins_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./editor/plugins/plugins.component */ 73911); +/* harmony import */ var _editor_app_settings_app_settings_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./editor/app-settings/app-settings.component */ 15449); +/* harmony import */ var _editor_setup_setup_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./editor/setup/setup.component */ 59137); +/* harmony import */ var _editor_chart_config_chart_config_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./editor/chart-config/chart-config.component */ 20427); +/* harmony import */ var _editor_graph_config_graph_config_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./editor/graph-config/graph-config.component */ 71162); +/* harmony import */ var _editor_card_config_card_config_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./editor/card-config/card-config.component */ 53778); +/* harmony import */ var _alarms_alarm_view_alarm_view_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./alarms/alarm-view/alarm-view.component */ 65232); +/* harmony import */ var _alarms_alarm_list_alarm_list_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./alarms/alarm-list/alarm-list.component */ 71742); +/* harmony import */ var _alarms_alarm_property_alarm_property_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./alarms/alarm-property/alarm-property.component */ 90786); +/* harmony import */ var _notifications_notification_list_notification_list_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./notifications/notification-list/notification-list.component */ 86645); +/* harmony import */ var _notifications_notification_property_notification_property_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./notifications/notification-property/notification-property.component */ 67597); +/* harmony import */ var _scripts_script_list_script_list_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./scripts/script-list/script-list.component */ 4264); +/* harmony import */ var _scripts_script_editor_script_editor_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./scripts/script-editor/script-editor.component */ 1709); +/* harmony import */ var _scripts_script_scheduling_script_scheduling_component__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./scripts/script-scheduling/script-scheduling.component */ 59622); +/* harmony import */ var _scripts_script_permission_script_permission_component__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./scripts/script-permission/script-permission.component */ 61903); +/* harmony import */ var _language_language_text_list_language_text_list_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./language/language-text-list/language-text-list.component */ 34839); +/* harmony import */ var _lab_lab_component__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./lab/lab.component */ 90526); +/* harmony import */ var _device_device_component__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./device/device.component */ 26270); +/* harmony import */ var _device_device_property_device_property_component__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./device/device-property/device-property.component */ 10290); +/* harmony import */ var _device_tag_options_tag_options_component__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./device/tag-options/tag-options.component */ 23328); +/* harmony import */ var _device_topic_property_topic_property_component__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./device/topic-property/topic-property.component */ 5885); +/* harmony import */ var _device_device_list_device_list_component__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./device/device-list/device-list.component */ 15661); +/* harmony import */ var _device_device_map_device_map_component__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./device/device-map/device-map.component */ 21082); +/* harmony import */ var _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./fuxa-view/fuxa-view.component */ 33814); +/* harmony import */ var _cards_view_cards_view_component__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./cards-view/cards-view.component */ 96697); +/* harmony import */ var _tester_tester_component__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./tester/tester.component */ 54442); +/* harmony import */ var _tester_tester_service__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./tester/tester.service */ 34605); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./_services/user.service */ 96155); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./_services/settings.service */ 22044); +/* harmony import */ var _services_plugin_service__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./_services/plugin.service */ 99232); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./_services/auth.service */ 48333); +/* harmony import */ var _services_diagnose_service__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./_services/diagnose.service */ 90569); +/* harmony import */ var _services_script_service__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./_services/script.service */ 67758); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./_services/resources.service */ 41878); +/* harmony import */ var _services_rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./_services/rcgi/reswebapi.service */ 98331); +/* harmony import */ var _services_rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./_services/rcgi/resdemo.service */ 27126); +/* harmony import */ var _services_rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./_services/rcgi/resclient.service */ 58331); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./_services/project.service */ 57610); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./_services/hmi.service */ 69578); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./_services/app.service */ 49982); +/* harmony import */ var _help_tutorial_tutorial_component__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./help/tutorial/tutorial.component */ 9775); +/* harmony import */ var _helpers_windowref__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./_helpers/windowref */ 12780); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./_helpers/utils */ 91019); +/* harmony import */ var _helpers_calc__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./_helpers/calc */ 73520); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./_helpers/define */ 94107); +/* harmony import */ var _helpers_dictionary__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./_helpers/dictionary */ 19170); +/* harmony import */ var _gui_helpers_fab_button_ngx_fab_button_component__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./gui-helpers/fab-button/ngx-fab-button.component */ 66053); +/* harmony import */ var _gui_helpers_fab_button_ngx_fab_item_button_component__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./gui-helpers/fab-button/ngx-fab-item-button.component */ 77202); +/* harmony import */ var _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./gui-helpers/treetable/treetable.component */ 10236); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./gui-helpers/sel-options/sel-options.component */ 84804); +/* harmony import */ var _gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./gui-helpers/ngx-switch/ngx-switch.component */ 34254); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./gui-helpers/edit-name/edit-name.component */ 79962); +/* harmony import */ var _gui_helpers_daterange_dialog_daterange_dialog_component__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./gui-helpers/daterange-dialog/daterange-dialog.component */ 28955); +/* harmony import */ var _gui_helpers_bitmask_bitmask_component__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./gui-helpers/bitmask/bitmask.component */ 76977); +/* harmony import */ var _gui_helpers_range_number_range_number_component__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./gui-helpers/range-number/range-number.component */ 85082); +/* harmony import */ var _resources_lib_images_lib_images_component__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./resources/lib-images/lib-images.component */ 8114); +/* harmony import */ var _directives_dialog_draggable_directive__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./_directives/dialog-draggable.directive */ 72856); +/* harmony import */ var _directives_modal_position_cache__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./_directives/modal-position.cache */ 88800); +/* harmony import */ var _directives_ngx_draggable_directive__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./_directives/ngx-draggable.directive */ 41584); +/* harmony import */ var _directives_number_directive__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./_directives/number.directive */ 90270); +/* harmony import */ var _directives_lazyFor_directive__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./_directives/lazyFor.directive */ 58823); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./gauges/gauges.component */ 80655); +/* harmony import */ var _gauges_gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./gauges/gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _gauges_controls_value_value_component__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./gauges/controls/value/value.component */ 98458); +/* harmony import */ var _gauges_gauge_property_flex_variables_mapping_flex_variables_mapping_component__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./gauges/gauge-property/flex-variables-mapping/flex-variables-mapping.component */ 61029); +/* harmony import */ var _gauges_gauge_property_flex_variable_map_flex_variable_map_component__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./gauges/gauge-property/flex-variable-map/flex-variable-map.component */ 55285); +/* harmony import */ var _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./gauges/gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gauges_controls_html_chart_chart_property_chart_property_component__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./gauges/controls/html-chart/chart-property/chart-property.component */ 22858); +/* harmony import */ var _gauges_gauge_property_flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./gauges/gauge-property/flex-input/flex-input.component */ 50665); +/* harmony import */ var _gauges_gauge_property_flex_auth_flex_auth_component__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./gauges/gauge-property/flex-auth/flex-auth.component */ 31178); +/* harmony import */ var _gauges_gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./gauges/gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _gauges_gauge_property_flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./gauges/gauge-property/flex-event/flex-event.component */ 70987); +/* harmony import */ var _gauges_gauge_property_flex_action_flex_action_component__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./gauges/gauge-property/flex-action/flex-action.component */ 68009); +/* harmony import */ var _gauges_gauge_property_flex_variable_flex_variable_component__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./gauges/gauge-property/flex-variable/flex-variable.component */ 46677); +/* harmony import */ var _gui_helpers_mat_select_search_mat_select_search_module__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./gui-helpers/mat-select-search/mat-select-search.module */ 27083); +/* harmony import */ var _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./gauges/controls/html-input/html-input.component */ 64428); +/* harmony import */ var _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./gauges/controls/html-button/html-button.component */ 66843); +/* harmony import */ var _gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./gauges/controls/html-select/html-select.component */ 87719); +/* harmony import */ var _gauges_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./gauges/controls/html-chart/html-chart.component */ 19775); +/* harmony import */ var _gauges_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./gauges/controls/html-graph/html-graph.component */ 47981); +/* harmony import */ var _gauges_controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./gauges/controls/html-iframe/html-iframe.component */ 39845); +/* harmony import */ var _gauges_controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./gauges/controls/html-bag/html-bag.component */ 16434); +/* harmony import */ var _gauges_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./gauges/controls/html-table/html-table.component */ 2613); +/* harmony import */ var _gauges_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./gauges/controls/html-switch/html-switch.component */ 72134); +/* harmony import */ var _gauges_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./gauges/controls/gauge-progress/gauge-progress.component */ 64421); +/* harmony import */ var _gauges_controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./gauges/controls/gauge-semaphore/gauge-semaphore.component */ 79069); +/* harmony import */ var _users_users_component__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./users/users.component */ 42227); +/* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./login/login.component */ 2014); +/* harmony import */ var _gauges_shapes_shapes_component__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./gauges/shapes/shapes.component */ 35896); +/* harmony import */ var _gauges_shapes_proc_eng_proc_eng_component__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./gauges/shapes/proc-eng/proc-eng.component */ 93142); +/* harmony import */ var _gauges_shapes_ape_shapes_ape_shapes_component__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./gauges/shapes/ape-shapes/ape-shapes.component */ 69395); +/* harmony import */ var _gui_helpers_ngx_gauge_ngx_gauge_component__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./gui-helpers/ngx-gauge/ngx-gauge.component */ 5769); +/* harmony import */ var _gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./gui-helpers/ngx-nouislider/ngx-nouislider.component */ 65554); +/* harmony import */ var _gauges_controls_html_bag_bag_property_bag_property_component__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./gauges/controls/html-bag/bag-property/bag-property.component */ 31176); +/* harmony import */ var _gauges_controls_pipe_pipe_property_pipe_property_component__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./gauges/controls/pipe/pipe-property/pipe-property.component */ 89040); +/* harmony import */ var _gauges_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./gauges/controls/pipe/pipe.component */ 82916); +/* harmony import */ var _gauges_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./gauges/controls/slider/slider.component */ 34493); +/* harmony import */ var _gauges_controls_slider_slider_property_slider_property_component__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./gauges/controls/slider/slider-property/slider-property.component */ 23751); +/* harmony import */ var _gauges_controls_html_switch_html_switch_property_html_switch_property_component__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./gauges/controls/html-switch/html-switch-property/html-switch-property.component */ 38710); +/* harmony import */ var _gui_helpers_ngx_uplot_ngx_uplot_component__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./gui-helpers/ngx-uplot/ngx-uplot.component */ 75261); +/* harmony import */ var _gauges_controls_html_chart_chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./gauges/controls/html-chart/chart-uplot/chart-uplot.component */ 21047); +/* harmony import */ var angular_gridster2__WEBPACK_IMPORTED_MODULE_216__ = __webpack_require__(/*! angular-gridster2 */ 52562); +/* harmony import */ var _helpers_auth_interceptor__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./_helpers/auth-interceptor */ 39464); +/* harmony import */ var _gauges_controls_html_graph_graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./gauges/controls/html-graph/graph-bar/graph-bar.component */ 69225); +/* harmony import */ var _gauges_controls_html_graph_graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./gauges/controls/html-graph/graph-pie/graph-pie.component */ 17361); +/* harmony import */ var _gauges_controls_html_graph_graph_property_graph_property_component__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./gauges/controls/html-graph/graph-property/graph-property.component */ 50892); +/* harmony import */ var _gauges_controls_html_graph_graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./gauges/controls/html-graph/graph-base/graph-base.component */ 62160); +/* harmony import */ var ng2_charts__WEBPACK_IMPORTED_MODULE_217__ = __webpack_require__(/*! ng2-charts */ 46673); +/* harmony import */ var _gauges_controls_html_iframe_iframe_property_iframe_property_component__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./gauges/controls/html-iframe/iframe-property/iframe-property.component */ 70083); +/* harmony import */ var _gauges_controls_html_table_table_property_table_property_component__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./gauges/controls/html-table/table-property/table-property.component */ 24191); +/* harmony import */ var _gauges_controls_html_table_table_customizer_table_customizer_component__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./gauges/controls/html-table/table-customizer/table-customizer.component */ 24908); +/* harmony import */ var _gauges_controls_html_table_data_table_data_table_component__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./gauges/controls/html-table/data-table/data-table.component */ 76588); +/* harmony import */ var _gauges_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./gauges/controls/html-scheduler/html-scheduler.component */ 98782); +/* harmony import */ var _gauges_controls_html_scheduler_scheduler_scheduler_component__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./gauges/controls/html-scheduler/scheduler/scheduler.component */ 36827); +/* harmony import */ var _gauges_controls_html_scheduler_scheduler_property_scheduler_property_component__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./gauges/controls/html-scheduler/scheduler-property/scheduler-property.component */ 52832); +/* harmony import */ var _reports_report_list_report_list_component__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./reports/report-list/report-list.component */ 49191); +/* harmony import */ var _reports_report_editor_report_editor_component__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./reports/report-editor/report-editor.component */ 90489); +/* harmony import */ var _services_data_converter_service__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./_services/data-converter.service */ 39231); +/* harmony import */ var _reports_report_editor_report_item_text_report_item_text_component__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./reports/report-editor/report-item-text/report-item-text.component */ 43882); +/* harmony import */ var _reports_report_editor_report_item_table_report_item_table_component__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./reports/report-editor/report-item-table/report-item-table.component */ 30421); +/* harmony import */ var _services_command_service__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./_services/command.service */ 80470); +/* harmony import */ var _reports_report_editor_report_item_alarms_report_item_alarms_component__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./reports/report-editor/report-item-alarms/report-item-alarms.component */ 23645); +/* harmony import */ var _reports_report_editor_report_item_chart_report_item_chart_component__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./reports/report-editor/report-item-chart/report-item-chart.component */ 20470); +/* harmony import */ var _scripts_script_mode_script_mode_component__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./scripts/script-mode/script-mode.component */ 20394); +/* harmony import */ var _device_device_map_device_webapi_property_dialog_device_webapi_property_dialog_component__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./device/device-map/device-webapi-property-dialog/device-webapi-property-dialog.component */ 58553); +/* harmony import */ var _editor_svg_selector_svg_selector_component__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./editor/svg-selector/svg-selector.component */ 14456); +/* harmony import */ var _framework_framework_module__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./framework/framework.module */ 10060); +/* harmony import */ var _directives_stop_input_propagation_directive__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./_directives/stop-input-propagation.directive */ 87045); +/* harmony import */ var _services_heartbeat_service__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./_services/heartbeat.service */ 6159); +/* harmony import */ var _services_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./_services/rcgi/rcgi.service */ 31865); +/* harmony import */ var _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./_services/toast-notifier.service */ 50243); +/* harmony import */ var _services_my_file_service__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./_services/my-file.service */ 59944); +/* harmony import */ var _editor_tags_ids_config_tags_ids_config_component__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ./editor/tags-ids-config/tags-ids-config.component */ 90936); +/* harmony import */ var _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_219__ = __webpack_require__(/*! @angular/material/legacy-tooltip */ 60702); +/* harmony import */ var _gauges_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ./gauges/controls/html-image/html-image.component */ 44841); +/* harmony import */ var _gui_helpers_ngx_scheduler_ngx_scheduler_component__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ./gui-helpers/ngx-scheduler/ngx-scheduler.component */ 18782); +/* harmony import */ var _gauges_gauge_property_flex_device_tag_flex_device_tag_component__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ./gauges/gauge-property/flex-device-tag/flex-device-tag.component */ 63866); +/* harmony import */ var _gauges_controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ./gauges/controls/panel/panel.component */ 73444); +/* harmony import */ var _gauges_controls_panel_panel_property_panel_property_component__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ./gauges/controls/panel/panel-property/panel-property.component */ 24309); +/* harmony import */ var _users_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ./users/user-edit/user-edit.component */ 42906); +/* harmony import */ var _fuxa_view_fuxa_view_dialog_fuxa_view_dialog_component__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ./fuxa-view/fuxa-view-dialog/fuxa-view-dialog.component */ 37006); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ./device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _gui_helpers_webcam_player_webcam_player_component__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ./gui-helpers/webcam-player/webcam-player.component */ 55348); +/* harmony import */ var _gui_helpers_webcam_player_webcam_player_dialog_webcam_player_dialog_component__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ./gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component */ 96941); +/* harmony import */ var _scripts_script_editor_script_editor_param_script_editor_param_component__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ./scripts/script-editor/script-editor-param/script-editor-param.component */ 85011); +/* harmony import */ var _device_tag_property_tag_property_edit_s7_tag_property_edit_s7_component__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-s7/tag-property-edit-s7.component */ 42771); +/* harmony import */ var _device_tag_property_tag_property_edit_server_tag_property_edit_server_component__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-server/tag-property-edit-server.component */ 35048); +/* harmony import */ var _device_tag_property_tag_property_edit_modbus_tag_property_edit_modbus_component__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-modbus/tag-property-edit-modbus.component */ 67344); +/* harmony import */ var _device_tag_property_tag_property_edit_internal_tag_property_edit_internal_component__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-internal/tag-property-edit-internal.component */ 84583); +/* harmony import */ var _device_tag_property_tag_property_edit_opcua_tag_property_edit_opcua_component__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-opcua/tag-property-edit-opcua.component */ 91235); +/* harmony import */ var _device_tag_property_tag_property_edit_bacnet_tag_property_edit_bacnet_component__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-bacnet/tag-property-edit-bacnet.component */ 37409); +/* harmony import */ var _device_tag_property_tag_property_edit_webapi_tag_property_edit_webapi_component__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-webapi/tag-property-edit-webapi.component */ 89064); +/* harmony import */ var _device_tag_property_tag_property_edit_ethernetip_tag_property_edit_ethernetip_component__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-ethernetip/tag-property-edit-ethernetip.component */ 89257); +/* harmony import */ var _editor_view_property_view_property_component__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ./editor/view-property/view-property.component */ 27373); +/* harmony import */ var _directives_resize_directive__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ./_directives/resize.directive */ 43594); +/* harmony import */ var _editor_editor_views_list_editor_views_list_component__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ./editor/editor-views-list/editor-views-list.component */ 98831); +/* harmony import */ var _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ./_helpers/svg-utils */ 39291); +/* harmony import */ var _gauges_gauge_property_flex_widget_property_flex_widget_property_component__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ./gauges/gauge-property/flex-widget-property/flex-widget-property.component */ 62793); +/* harmony import */ var _editor_graph_config_graph_source_edit_graph_source_edit_component__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ./editor/graph-config/graph-source-edit/graph-source-edit.component */ 56932); +/* harmony import */ var _resources_lib_widgets_lib_widgets_component__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ./resources/lib-widgets/lib-widgets.component */ 57379); +/* harmony import */ var _gauges_controls_html_table_table_customizer_table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ./gauges/controls/html-table/table-customizer/table-customizer-cell-edit/table-customizer-cell-edit.component */ 75178); +/* harmony import */ var _odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ./odbc-browser/odbc-browser.component */ 11234); +/* harmony import */ var _gauges_controls_html_table_table_alarms_table_alarms_component__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ./gauges/controls/html-table/table-alarms/table-alarms.component */ 32179); +/* harmony import */ var _gauges_controls_html_table_table_reports_table_reports_component__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ./gauges/controls/html-table/table-reports/table-reports.component */ 74719); +/* harmony import */ var _services_reports_service__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ./_services/reports.service */ 7839); +/* harmony import */ var _editor_chart_config_chart_line_property_chart_line_property_component__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ./editor/chart-config/chart-line-property/chart-line-property.component */ 29017); +/* harmony import */ var _editor_layout_property_layout_menu_item_property_layout_menu_item_property_component__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ./editor/layout-property/layout-menu-item-property/layout-menu-item-property.component */ 42350); +/* harmony import */ var _editor_layout_property_layout_header_item_property_layout_header_item_property_component__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ./editor/layout-property/layout-header-item-property/layout-header-item-property.component */ 98555); +/* harmony import */ var _gauges_gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ./gauges/gauge-property/permission-dialog/permission-dialog.component */ 87570); +/* harmony import */ var _users_users_role_edit_users_role_edit_component__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ./users/users-role-edit/users-role-edit.component */ 65734); +/* harmony import */ var _users_users_roles_users_roles_component__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ./users/users-roles/users-roles.component */ 89473); +/* harmony import */ var _gauges_gauge_property_action_properties_dialog_action_properties_dialog_component__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ./gauges/gauge-property/action-properties-dialog/action-properties-dialog.component */ 3853); +/* harmony import */ var _gauges_gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ./gauges/gauge-property/action-properties-dialog/action-property.service */ 8985); +/* harmony import */ var _maps_maps_location_list_maps_location_list_component__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ./maps/maps-location-list/maps-location-list.component */ 86909); +/* harmony import */ var _services_maps_locations_service__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ./_services/maps-locations.service */ 22908); +/* harmony import */ var _maps_maps_location_property_maps_location_property_component__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ./maps/maps-location-property/maps-location-property.component */ 64008); +/* harmony import */ var _maps_maps_view_maps_view_component__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ./maps/maps-view/maps-view.component */ 64241); +/* harmony import */ var _maps_maps_location_import_maps_location_import_component__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ./maps/maps-location-import/maps-location-import.component */ 81721); +/* harmony import */ var _maps_maps_view_maps_fab_button_menu_maps_fab_button_menu_component__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ./maps/maps-view/maps-fab-button-menu/maps-fab-button-menu.component */ 84722); +/* harmony import */ var _device_tag_property_tag_property_edit_adsclient_tag_property_edit_adsclient_component__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-adsclient/tag-property-edit-adsclient.component */ 74542); +/* harmony import */ var _device_tag_property_tag_property_edit_gpio_tag_property_edit_gpio_component__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-gpio/tag-property-edit-gpio.component */ 43002); +/* harmony import */ var _language_language_type_property_language_type_property_component__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ./language/language-type-property/language-type-property.component */ 7537); +/* harmony import */ var _language_language_text_property_language_text_property_component__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ./language/language-text-property/language-text-property.component */ 63785); +/* harmony import */ var _services_language_service__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ./_services/language.service */ 46368); +/* harmony import */ var _resources_kiosk_widgets_kiosk_widgets_component__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ./resources/kiosk-widgets/kiosk-widgets.component */ 16855); +/* harmony import */ var _editor_client_script_access_client_script_access_component__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ./editor/client-script-access/client-script-access.component */ 78776); +/* harmony import */ var _device_tag_property_tag_property_edit_webcam_tag_property_edit_webcam_component__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-webcam/tag-property-edit-webcam.component */ 4497); +/* harmony import */ var _gui_helpers_edit_placeholder_edit_placeholder_component__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ./gui-helpers/edit-placeholder/edit-placeholder.component */ 63167); +/* harmony import */ var _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ./device-adapter/device-adapter.service */ 24299); +/* harmony import */ var _gauges_controls_html_video_video_property_video_property_component__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ./gauges/controls/html-video/video-property/video-property.component */ 82385); +/* harmony import */ var _gauges_controls_html_input_input_property_input_property_component__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ./gauges/controls/html-input/input-property/input-property.component */ 99389); +/* harmony import */ var _device_tag_property_tag_property_edit_melsec_tag_property_edit_melsec_component__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ./device/tag-property/tag-property-edit-melsec/tag-property-edit-melsec.component */ 953); +/* harmony import */ var _gauges_controls_html_scheduler_scheduler_confirm_dialog_scheduler_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ./gauges/controls/html-scheduler/scheduler-confirm-dialog/scheduler-confirm-dialog.component */ 9181); +/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! @angular/material/icon */ 86515); +/* harmony import */ var _integrations_node_red_node_red_flows_node_red_flows_component__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ./integrations/node-red/node-red-flows/node-red-flows.component */ 95093); +// the start/root module that tells Angular how to assemble the application. +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function createTranslateLoader(http) { + return new _ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_205__.TranslateHttpLoader(http, './assets/i18n/', '.json'); +} +const myCustomTooltipDefaults = { + showDelay: 2000, + hideDelay: 500, + touchendHideDelay: 500 +}; +let AppModule = class AppModule { + constructor(iconReg, sanitizer) { + iconReg.addSvgIcon('group', sanitizer.bypassSecurityTrustResourceUrl('/assets/images/group.svg')); + iconReg.addSvgIcon('to_bottom', sanitizer.bypassSecurityTrustResourceUrl('/assets/images/to-bottom.svg')); + iconReg.addSvgIcon('to_top', sanitizer.bypassSecurityTrustResourceUrl('/assets/images/to-top.svg')); + iconReg.addSvgIcon('nodered-flows', sanitizer.bypassSecurityTrustResourceUrl('/assets/images/nodered-icon.svg')); + } + static ctorParameters = () => [{ + type: _angular_material_icon__WEBPACK_IMPORTED_MODULE_206__.MatIconRegistry + }, { + type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_207__.DomSanitizer + }]; +}; +AppModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_208__.NgModule)({ + declarations: [_home_home_component__WEBPACK_IMPORTED_MODULE_5__.HomeComponent, _editor_editor_component__WEBPACK_IMPORTED_MODULE_11__.EditorComponent, _header_header_component__WEBPACK_IMPORTED_MODULE_6__.HeaderComponent, _sidenav_sidenav_component__WEBPACK_IMPORTED_MODULE_10__.SidenavComponent, _iframe_iframe_component__WEBPACK_IMPORTED_MODULE_7__.IframeComponent, _app_component__WEBPACK_IMPORTED_MODULE_2__.AppComponent, _lab_lab_component__WEBPACK_IMPORTED_MODULE_29__.LabComponent, _device_device_component__WEBPACK_IMPORTED_MODULE_30__.DeviceComponent, _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_152__.DeviceTagSelectionComponent, _device_tag_property_tag_property_edit_s7_tag_property_edit_s7_component__WEBPACK_IMPORTED_MODULE_156__.TagPropertyEditS7Component, _device_tag_property_tag_property_edit_server_tag_property_edit_server_component__WEBPACK_IMPORTED_MODULE_157__.TagPropertyEditServerComponent, _device_tag_property_tag_property_edit_modbus_tag_property_edit_modbus_component__WEBPACK_IMPORTED_MODULE_158__.TagPropertyEditModbusComponent, _device_tag_property_tag_property_edit_internal_tag_property_edit_internal_component__WEBPACK_IMPORTED_MODULE_159__.TagPropertyEditInternalComponent, _device_tag_property_tag_property_edit_opcua_tag_property_edit_opcua_component__WEBPACK_IMPORTED_MODULE_160__.TagPropertyEditOpcuaComponent, _device_tag_property_tag_property_edit_bacnet_tag_property_edit_bacnet_component__WEBPACK_IMPORTED_MODULE_161__.TagPropertyEditBacnetComponent, _device_tag_property_tag_property_edit_webapi_tag_property_edit_webapi_component__WEBPACK_IMPORTED_MODULE_162__.TagPropertyEditWebapiComponent, _device_tag_property_tag_property_edit_ethernetip_tag_property_edit_ethernetip_component__WEBPACK_IMPORTED_MODULE_163__.TagPropertyEditEthernetipComponent, _device_tag_property_tag_property_edit_adsclient_tag_property_edit_adsclient_component__WEBPACK_IMPORTED_MODULE_190__.TagPropertyEditADSclientComponent, _device_tag_property_tag_property_edit_gpio_tag_property_edit_gpio_component__WEBPACK_IMPORTED_MODULE_191__.TagPropertyEditGpioComponent, _device_tag_property_tag_property_edit_melsec_tag_property_edit_melsec_component__WEBPACK_IMPORTED_MODULE_202__.TagPropertyEditMelsecComponent, _device_tag_options_tag_options_component__WEBPACK_IMPORTED_MODULE_32__.TagOptionsComponent, _device_topic_property_topic_property_component__WEBPACK_IMPORTED_MODULE_33__.TopicPropertyComponent, _device_device_property_device_property_component__WEBPACK_IMPORTED_MODULE_31__.DevicePropertyComponent, _device_device_map_device_webapi_property_dialog_device_webapi_property_dialog_component__WEBPACK_IMPORTED_MODULE_136__.DeviceWebapiPropertyDialogComponent, _editor_layout_property_layout_property_component__WEBPACK_IMPORTED_MODULE_12__.LayoutPropertyComponent, _editor_tags_ids_config_tags_ids_config_component__WEBPACK_IMPORTED_MODULE_144__.TagsIdsConfigComponent, _editor_plugins_plugins_component__WEBPACK_IMPORTED_MODULE_13__.PluginsComponent, _editor_app_settings_app_settings_component__WEBPACK_IMPORTED_MODULE_14__.AppSettingsComponent, _editor_setup_setup_component__WEBPACK_IMPORTED_MODULE_15__.SetupComponent, _editor_layout_property_layout_menu_item_property_layout_menu_item_property_component__WEBPACK_IMPORTED_MODULE_177__.LayoutMenuItemPropertyComponent, _editor_layout_property_layout_header_item_property_layout_header_item_property_component__WEBPACK_IMPORTED_MODULE_178__.LayoutHeaderItemPropertyComponent, _device_device_list_device_list_component__WEBPACK_IMPORTED_MODULE_34__.DeviceListComponent, _device_device_map_device_map_component__WEBPACK_IMPORTED_MODULE_35__.DeviceMapComponent, _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_36__.FuxaViewComponent, _fuxa_view_fuxa_view_dialog_fuxa_view_dialog_component__WEBPACK_IMPORTED_MODULE_151__.FuxaViewDialogComponent, _editor_view_property_view_property_component__WEBPACK_IMPORTED_MODULE_164__.ViewPropertyComponent, _editor_editor_component__WEBPACK_IMPORTED_MODULE_11__.DialogLinkProperty, _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_65__.EditNameComponent, _gui_helpers_edit_placeholder_edit_placeholder_component__WEBPACK_IMPORTED_MODULE_198__.EditPlaceholderComponent, _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_62__.ConfirmDialogComponent, _header_header_component__WEBPACK_IMPORTED_MODULE_6__.DialogInfo, _gui_helpers_daterange_dialog_daterange_dialog_component__WEBPACK_IMPORTED_MODULE_66__.DaterangeDialogComponent, _gauges_gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_76__.GaugeBaseComponent, _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_89__.HtmlInputComponent, _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_90__.HtmlButtonComponent, _gauges_controls_html_input_input_property_input_property_component__WEBPACK_IMPORTED_MODULE_201__.InputPropertyComponent, _gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_91__.HtmlSelectComponent, _gauges_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_92__.HtmlChartComponent, _gauges_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_93__.HtmlGraphComponent, _gauges_controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_94__.HtmlIframeComponent, _gauges_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_145__.HtmlImageComponent, _gauges_controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_95__.HtmlBagComponent, _gauges_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_98__.GaugeProgressComponent, _gauges_controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_99__.GaugeSemaphoreComponent, _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_80__.GaugePropertyComponent, _gauges_gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_179__.PermissionDialogComponent, _gauges_gauge_property_action_properties_dialog_action_properties_dialog_component__WEBPACK_IMPORTED_MODULE_182__.ActionPropertiesDialogComponent, _editor_svg_selector_svg_selector_component__WEBPACK_IMPORTED_MODULE_137__.SvgSelectorComponent, _gauges_controls_html_chart_chart_property_chart_property_component__WEBPACK_IMPORTED_MODULE_81__.ChartPropertyComponent, _gauges_controls_html_bag_bag_property_bag_property_component__WEBPACK_IMPORTED_MODULE_107__.BagPropertyComponent, _gauges_controls_pipe_pipe_property_pipe_property_component__WEBPACK_IMPORTED_MODULE_108__.PipePropertyComponent, _gauges_controls_slider_slider_property_slider_property_component__WEBPACK_IMPORTED_MODULE_111__.SliderPropertyComponent, _gauges_controls_html_switch_html_switch_property_html_switch_property_component__WEBPACK_IMPORTED_MODULE_112__.HtmlSwitchPropertyComponent, _gauges_shapes_shapes_component__WEBPACK_IMPORTED_MODULE_102__.ShapesComponent, _gauges_shapes_proc_eng_proc_eng_component__WEBPACK_IMPORTED_MODULE_103__.ProcEngComponent, _gauges_shapes_ape_shapes_ape_shapes_component__WEBPACK_IMPORTED_MODULE_104__.ApeShapesComponent, _tester_tester_component__WEBPACK_IMPORTED_MODULE_38__.TesterComponent, _help_tutorial_tutorial_component__WEBPACK_IMPORTED_MODULE_53__.TutorialComponent, _gauges_gauge_property_flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_82__.FlexInputComponent, _gauges_gauge_property_flex_device_tag_flex_device_tag_component__WEBPACK_IMPORTED_MODULE_147__.FlexDeviceTagComponent, _gauges_gauge_property_flex_auth_flex_auth_component__WEBPACK_IMPORTED_MODULE_83__.FlexAuthComponent, _gauges_gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_84__.FlexHeadComponent, _gauges_gauge_property_flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_85__.FlexEventComponent, _gauges_gauge_property_flex_action_flex_action_component__WEBPACK_IMPORTED_MODULE_86__.FlexActionComponent, _gauges_gauge_property_flex_variable_flex_variable_component__WEBPACK_IMPORTED_MODULE_87__.FlexVariableComponent, _gauges_gauge_property_flex_variables_mapping_flex_variables_mapping_component__WEBPACK_IMPORTED_MODULE_78__.FlexVariablesMappingComponent, _gauges_gauge_property_flex_variable_map_flex_variable_map_component__WEBPACK_IMPORTED_MODULE_79__.FlexVariableMapComponent, _gauges_gauge_property_flex_widget_property_flex_widget_property_component__WEBPACK_IMPORTED_MODULE_168__.FlexWidgetPropertyComponent, _gauges_controls_value_value_component__WEBPACK_IMPORTED_MODULE_77__.ValueComponent, _directives_dialog_draggable_directive__WEBPACK_IMPORTED_MODULE_70__.DialogDraggableDirective, _helpers_utils__WEBPACK_IMPORTED_MODULE_55__.EnumToArrayPipe, _helpers_utils__WEBPACK_IMPORTED_MODULE_55__.EscapeHtmlPipe, _directives_ngx_draggable_directive__WEBPACK_IMPORTED_MODULE_72__.DraggableDirective, _directives_number_directive__WEBPACK_IMPORTED_MODULE_73__.NumberOnlyDirective, _directives_stop_input_propagation_directive__WEBPACK_IMPORTED_MODULE_139__.StopInputPropagationDirective, _directives_number_directive__WEBPACK_IMPORTED_MODULE_73__.NumberOrNullOnlyDirective, _gui_helpers_fab_button_ngx_fab_button_component__WEBPACK_IMPORTED_MODULE_59__.NgxFabButtonComponent, _gui_helpers_fab_button_ngx_fab_item_button_component__WEBPACK_IMPORTED_MODULE_60__.NgxFabItemButtonComponent, _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_61__.TreetableComponent, _gui_helpers_bitmask_bitmask_component__WEBPACK_IMPORTED_MODULE_67__.BitmaskComponent, _gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_63__.SelOptionsComponent, _directives_lazyFor_directive__WEBPACK_IMPORTED_MODULE_74__.LazyForDirective, _gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_64__.NgxSwitchComponent, _editor_chart_config_chart_config_component__WEBPACK_IMPORTED_MODULE_16__.ChartConfigComponent, _editor_graph_config_graph_config_component__WEBPACK_IMPORTED_MODULE_17__.GraphConfigComponent, _editor_card_config_card_config_component__WEBPACK_IMPORTED_MODULE_18__.CardConfigComponent, _alarms_alarm_list_alarm_list_component__WEBPACK_IMPORTED_MODULE_20__.AlarmListComponent, _alarms_alarm_view_alarm_view_component__WEBPACK_IMPORTED_MODULE_19__.AlarmViewComponent, _alarms_alarm_property_alarm_property_component__WEBPACK_IMPORTED_MODULE_21__.AlarmPropertyComponent, _notifications_notification_list_notification_list_component__WEBPACK_IMPORTED_MODULE_22__.NotificationListComponent, _notifications_notification_property_notification_property_component__WEBPACK_IMPORTED_MODULE_23__.NotificationPropertyComponent, _scripts_script_list_script_list_component__WEBPACK_IMPORTED_MODULE_24__.ScriptListComponent, _scripts_script_editor_script_editor_component__WEBPACK_IMPORTED_MODULE_25__.ScriptEditorComponent, _scripts_script_scheduling_script_scheduling_component__WEBPACK_IMPORTED_MODULE_26__.ScriptSchedulingComponent, _scripts_script_permission_script_permission_component__WEBPACK_IMPORTED_MODULE_27__.ScriptPermissionComponent, _scripts_script_mode_script_mode_component__WEBPACK_IMPORTED_MODULE_135__.ScriptModeComponent, _reports_report_list_report_list_component__WEBPACK_IMPORTED_MODULE_127__.ReportListComponent, _reports_report_editor_report_editor_component__WEBPACK_IMPORTED_MODULE_128__.ReportEditorComponent, _scripts_script_editor_script_editor_param_script_editor_param_component__WEBPACK_IMPORTED_MODULE_155__.ScriptEditorParamComponent, _language_language_text_list_language_text_list_component__WEBPACK_IMPORTED_MODULE_28__.LanguageTextListComponent, _logs_view_logs_view_component__WEBPACK_IMPORTED_MODULE_9__.LogsViewComponent, _gui_helpers_ngx_gauge_ngx_gauge_component__WEBPACK_IMPORTED_MODULE_105__.NgxGaugeComponent, _gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_106__.NgxNouisliderComponent, _gui_helpers_ngx_scheduler_ngx_scheduler_component__WEBPACK_IMPORTED_MODULE_146__.NgxSchedulerComponent, _editor_chart_config_chart_line_property_chart_line_property_component__WEBPACK_IMPORTED_MODULE_176__.ChartLinePropertyComponent, _editor_graph_config_graph_source_edit_graph_source_edit_component__WEBPACK_IMPORTED_MODULE_169__.GraphSourceEditComponent, _users_users_component__WEBPACK_IMPORTED_MODULE_100__.UsersComponent, _users_users_roles_users_roles_component__WEBPACK_IMPORTED_MODULE_181__.UsersRolesComponent, _users_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_150__.UserEditComponent, _users_users_role_edit_users_role_edit_component__WEBPACK_IMPORTED_MODULE_180__.UsersRoleEditComponent, _login_login_component__WEBPACK_IMPORTED_MODULE_101__.LoginComponent, _home_home_component__WEBPACK_IMPORTED_MODULE_5__.DialogUserInfo, _view_view_component__WEBPACK_IMPORTED_MODULE_8__.ViewComponent, _gui_helpers_ngx_uplot_ngx_uplot_component__WEBPACK_IMPORTED_MODULE_113__.NgxUplotComponent, _gauges_controls_html_chart_chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_114__.ChartUplotComponent, _cards_view_cards_view_component__WEBPACK_IMPORTED_MODULE_37__.CardsViewComponent, _gauges_controls_html_graph_graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_116__.GraphBarComponent, _gauges_controls_html_graph_graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_117__.GraphPieComponent, _gauges_controls_html_graph_graph_property_graph_property_component__WEBPACK_IMPORTED_MODULE_118__.GraphPropertyComponent, _gauges_controls_html_graph_graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_119__.GraphBaseComponent, _gauges_controls_html_iframe_iframe_property_iframe_property_component__WEBPACK_IMPORTED_MODULE_120__.IframePropertyComponent, _gauges_controls_html_table_table_property_table_property_component__WEBPACK_IMPORTED_MODULE_121__.TablePropertyComponent, _gauges_controls_html_table_table_customizer_table_customizer_component__WEBPACK_IMPORTED_MODULE_122__.TableCustomizerComponent, _gauges_controls_html_table_table_customizer_table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_171__.TableCustomizerCellEditComponent, _odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_172__.OdbcBrowserComponent, _gauges_controls_html_table_table_alarms_table_alarms_component__WEBPACK_IMPORTED_MODULE_173__.TableAlarmsComponent, _gauges_controls_html_table_table_reports_table_reports_component__WEBPACK_IMPORTED_MODULE_174__.TableReportsComponent, _gauges_controls_html_table_data_table_data_table_component__WEBPACK_IMPORTED_MODULE_123__.DataTableComponent, _gui_helpers_range_number_range_number_component__WEBPACK_IMPORTED_MODULE_68__.RangeNumberComponent, _resources_lib_images_lib_images_component__WEBPACK_IMPORTED_MODULE_69__.LibImagesComponent, _resources_lib_widgets_lib_widgets_component__WEBPACK_IMPORTED_MODULE_170__.LibWidgetsComponent, _resources_kiosk_widgets_kiosk_widgets_component__WEBPACK_IMPORTED_MODULE_195__.KioskWidgetsComponent, _reports_report_editor_report_item_text_report_item_text_component__WEBPACK_IMPORTED_MODULE_130__.ReportItemTextComponent, _reports_report_editor_report_item_table_report_item_table_component__WEBPACK_IMPORTED_MODULE_131__.ReportItemTableComponent, _reports_report_editor_report_item_alarms_report_item_alarms_component__WEBPACK_IMPORTED_MODULE_133__.ReportItemAlarmsComponent, _reports_report_editor_report_item_chart_report_item_chart_component__WEBPACK_IMPORTED_MODULE_134__.ReportItemChartComponent, _gauges_controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_148__.PanelComponent, _gauges_controls_panel_panel_property_panel_property_component__WEBPACK_IMPORTED_MODULE_149__.PanelPropertyComponent, _gui_helpers_webcam_player_webcam_player_component__WEBPACK_IMPORTED_MODULE_153__.WebcamPlayerComponent, _gui_helpers_webcam_player_webcam_player_dialog_webcam_player_dialog_component__WEBPACK_IMPORTED_MODULE_154__.WebcamPlayerDialogComponent, _directives_resize_directive__WEBPACK_IMPORTED_MODULE_165__.ResizeDirective, _editor_editor_views_list_editor_views_list_component__WEBPACK_IMPORTED_MODULE_166__.EditorViewsListComponent, _maps_maps_location_list_maps_location_list_component__WEBPACK_IMPORTED_MODULE_184__.MapsLocationListComponent, _maps_maps_location_property_maps_location_property_component__WEBPACK_IMPORTED_MODULE_186__.MapsLocationPropertyComponent, _maps_maps_view_maps_view_component__WEBPACK_IMPORTED_MODULE_187__.MapsViewComponent, _maps_maps_location_import_maps_location_import_component__WEBPACK_IMPORTED_MODULE_188__.MapsLocationImportComponent, _maps_maps_view_maps_fab_button_menu_maps_fab_button_menu_component__WEBPACK_IMPORTED_MODULE_189__.MapsFabButtonMenuComponent, _language_language_type_property_language_type_property_component__WEBPACK_IMPORTED_MODULE_192__.LanguageTypePropertyComponent, _language_language_text_property_language_text_property_component__WEBPACK_IMPORTED_MODULE_193__.LanguageTextPropertyComponent, _language_language_text_list_language_text_list_component__WEBPACK_IMPORTED_MODULE_28__.LanguageTextListComponent, _editor_client_script_access_client_script_access_component__WEBPACK_IMPORTED_MODULE_196__.ClientScriptAccessComponent, _device_tag_property_tag_property_edit_webcam_tag_property_edit_webcam_component__WEBPACK_IMPORTED_MODULE_197__.TagPropertyEditWebcamComponent, _gauges_controls_html_video_video_property_video_property_component__WEBPACK_IMPORTED_MODULE_200__.VideoPropertyComponent, _gauges_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_124__.HtmlSchedulerComponent, _gauges_controls_html_scheduler_scheduler_scheduler_component__WEBPACK_IMPORTED_MODULE_125__.SchedulerComponent, _gauges_controls_html_scheduler_scheduler_property_scheduler_property_component__WEBPACK_IMPORTED_MODULE_126__.SchedulerPropertyComponent, _gauges_controls_html_scheduler_scheduler_confirm_dialog_scheduler_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_203__.SchedulerConfirmDialogComponent, _integrations_node_red_node_red_flows_node_red_flows_component__WEBPACK_IMPORTED_MODULE_204__.NodeRedFlowsComponent], + imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_207__.BrowserModule, _angular_forms__WEBPACK_IMPORTED_MODULE_209__.FormsModule, _angular_forms__WEBPACK_IMPORTED_MODULE_209__.ReactiveFormsModule, _angular_common_http__WEBPACK_IMPORTED_MODULE_210__.HttpClientModule, _app_routing__WEBPACK_IMPORTED_MODULE_3__.routing, _material_module__WEBPACK_IMPORTED_MODULE_0__.MaterialModule, _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_211__.BrowserAnimationsModule, ngx_color_picker__WEBPACK_IMPORTED_MODULE_212__.ColorPickerModule, angular2_draggable__WEBPACK_IMPORTED_MODULE_213__.AngularDraggableModule, _gui_helpers_mat_select_search_mat_select_search_module__WEBPACK_IMPORTED_MODULE_88__.MatSelectSearchModule, ngx_toastr__WEBPACK_IMPORTED_MODULE_214__.ToastrModule.forRoot({ + timeOut: 3000, + positionClass: 'toast-bottom-right', + preventDuplicates: false + }), _ngx_translate_core__WEBPACK_IMPORTED_MODULE_215__.TranslateModule.forRoot({ + loader: { + provide: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_215__.TranslateLoader, + useFactory: createTranslateLoader, + deps: [_angular_common_http__WEBPACK_IMPORTED_MODULE_210__.HttpClient] + } + }), angular_gridster2__WEBPACK_IMPORTED_MODULE_216__.GridsterModule, ng2_charts__WEBPACK_IMPORTED_MODULE_217__.NgChartsModule, _ctrl_ngx_codemirror__WEBPACK_IMPORTED_MODULE_218__.CodemirrorModule, _gui_helpers_daterangepicker__WEBPACK_IMPORTED_MODULE_1__.NgxDaterangepickerMd.forRoot(), _framework_framework_module__WEBPACK_IMPORTED_MODULE_138__.FrameworkModule], + providers: [ + // providersResourceService, + _services_rcgi_resclient_service__WEBPACK_IMPORTED_MODULE_49__.ResClientService, _services_rcgi_reswebapi_service__WEBPACK_IMPORTED_MODULE_47__.ResWebApiService, _services_rcgi_resdemo_service__WEBPACK_IMPORTED_MODULE_48__.ResDemoService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_51__.HmiService, _services_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_141__.RcgiService, _services_app_service__WEBPACK_IMPORTED_MODULE_52__.AppService, _services_project_service__WEBPACK_IMPORTED_MODULE_50__.ProjectService, _services_user_service__WEBPACK_IMPORTED_MODULE_40__.UserService, _services_diagnose_service__WEBPACK_IMPORTED_MODULE_44__.DiagnoseService, _services_command_service__WEBPACK_IMPORTED_MODULE_132__.CommandService, _services_heartbeat_service__WEBPACK_IMPORTED_MODULE_140__.HeartbeatService, _services_data_converter_service__WEBPACK_IMPORTED_MODULE_129__.DataConverterService, _services_script_service__WEBPACK_IMPORTED_MODULE_45__.ScriptService, _services_resources_service__WEBPACK_IMPORTED_MODULE_46__.ResourcesService, _services_plugin_service__WEBPACK_IMPORTED_MODULE_42__.PluginService, _services_settings_service__WEBPACK_IMPORTED_MODULE_41__.SettingsService, _tester_tester_service__WEBPACK_IMPORTED_MODULE_39__.TesterService, _helpers_auth_interceptor__WEBPACK_IMPORTED_MODULE_115__.httpInterceptorProviders, _services_auth_service__WEBPACK_IMPORTED_MODULE_43__.AuthService, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_75__.GaugesManager, _helpers_windowref__WEBPACK_IMPORTED_MODULE_54__.WindowRef, _helpers_utils__WEBPACK_IMPORTED_MODULE_55__.Utils, _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_167__.SvgUtils, _helpers_calc__WEBPACK_IMPORTED_MODULE_56__.Calc, _gauges_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_97__.HtmlSwitchComponent, _gauges_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_109__.PipeComponent, _gauges_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_110__.SliderComponent, _gauges_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_96__.HtmlTableComponent, _helpers_dictionary__WEBPACK_IMPORTED_MODULE_58__.Dictionary, _directives_modal_position_cache__WEBPACK_IMPORTED_MODULE_71__.ModalPositionCache, _helpers_define__WEBPACK_IMPORTED_MODULE_57__.Define, _auth_guard__WEBPACK_IMPORTED_MODULE_4__.AuthGuard, _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_142__.ToastNotifierService, _services_my_file_service__WEBPACK_IMPORTED_MODULE_143__.MyFileService, _services_reports_service__WEBPACK_IMPORTED_MODULE_175__.ReportsService, _gauges_gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_183__.ActionPropertyService, _services_maps_locations_service__WEBPACK_IMPORTED_MODULE_185__.MapsLocationsService, _services_language_service__WEBPACK_IMPORTED_MODULE_194__.LanguageService, _device_adapter_device_adapter_service__WEBPACK_IMPORTED_MODULE_199__.DeviceAdapterService, { + provide: _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_219__.MAT_TOOLTIP_DEFAULT_OPTIONS, + useValue: myCustomTooltipDefaults + }], + bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_2__.AppComponent] +}), __metadata("design:paramtypes", [_angular_material_icon__WEBPACK_IMPORTED_MODULE_206__.MatIconRegistry, _angular_platform_browser__WEBPACK_IMPORTED_MODULE_207__.DomSanitizer])], AppModule); + + +/***/ }), + +/***/ 70034: +/*!********************************!*\ + !*** ./src/app/app.routing.ts ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ routing: () => (/* binding */ routing) +/* harmony export */ }); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _auth_guard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./auth.guard */ 8407); +/* harmony import */ var _home_home_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home/home.component */ 6459); +/* harmony import */ var _editor_editor_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editor/editor.component */ 60359); +/* harmony import */ var _device_device_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./device/device.component */ 26270); +/* harmony import */ var _lab_lab_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lab/lab.component */ 90526); +/* harmony import */ var _users_users_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./users/users.component */ 42227); +/* harmony import */ var _view_view_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./view/view.component */ 18199); +/* harmony import */ var _alarms_alarm_view_alarm_view_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./alarms/alarm-view/alarm-view.component */ 65232); +/* harmony import */ var _logs_view_logs_view_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./logs-view/logs-view.component */ 46657); +/* harmony import */ var _alarms_alarm_list_alarm_list_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./alarms/alarm-list/alarm-list.component */ 71742); +/* harmony import */ var _notifications_notification_list_notification_list_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./notifications/notification-list/notification-list.component */ 86645); +/* harmony import */ var _scripts_script_list_script_list_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./scripts/script-list/script-list.component */ 4264); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_models/hmi */ 84126); +/* harmony import */ var _reports_report_list_report_list_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./reports/report-list/report-list.component */ 49191); +/* harmony import */ var _users_users_roles_users_roles_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./users/users-roles/users-roles.component */ 89473); +/* harmony import */ var _maps_maps_location_list_maps_location_list_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./maps/maps-location-list/maps-location-list.component */ 86909); +/* harmony import */ var _language_language_text_list_language_text_list_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./language/language-text-list/language-text-list.component */ 34839); +/* harmony import */ var _integrations_node_red_node_red_flows_node_red_flows_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./integrations/node-red/node-red-flows/node-red-flows.component */ 95093); + + + + + + + + + + + + + + + + + + + +const appRoutes = [{ + path: '', + component: _home_home_component__WEBPACK_IMPORTED_MODULE_1__.HomeComponent +}, { + path: 'home', + component: _home_home_component__WEBPACK_IMPORTED_MODULE_1__.HomeComponent +}, { + path: 'home/:viewName', + component: _home_home_component__WEBPACK_IMPORTED_MODULE_1__.HomeComponent +}, { + path: 'editor', + component: _editor_editor_component__WEBPACK_IMPORTED_MODULE_2__.EditorComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'lab', + component: _lab_lab_component__WEBPACK_IMPORTED_MODULE_4__.LabComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'device', + component: _device_device_component__WEBPACK_IMPORTED_MODULE_3__.DeviceComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: _models_hmi__WEBPACK_IMPORTED_MODULE_12__.DEVICE_READONLY, + component: _device_device_component__WEBPACK_IMPORTED_MODULE_3__.DeviceComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'users', + component: _users_users_component__WEBPACK_IMPORTED_MODULE_5__.UsersComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'userRoles', + component: _users_users_roles_users_roles_component__WEBPACK_IMPORTED_MODULE_14__.UsersRolesComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'alarms', + component: _alarms_alarm_view_alarm_view_component__WEBPACK_IMPORTED_MODULE_7__.AlarmViewComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'messages', + component: _alarms_alarm_list_alarm_list_component__WEBPACK_IMPORTED_MODULE_9__.AlarmListComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'notifications', + component: _notifications_notification_list_notification_list_component__WEBPACK_IMPORTED_MODULE_10__.NotificationListComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'scripts', + component: _scripts_script_list_script_list_component__WEBPACK_IMPORTED_MODULE_11__.ScriptListComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'reports', + component: _reports_report_list_report_list_component__WEBPACK_IMPORTED_MODULE_13__.ReportListComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'language', + component: _language_language_text_list_language_text_list_component__WEBPACK_IMPORTED_MODULE_16__.LanguageTextListComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'logs', + component: _logs_view_logs_view_component__WEBPACK_IMPORTED_MODULE_8__.LogsViewComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'events', + component: _logs_view_logs_view_component__WEBPACK_IMPORTED_MODULE_8__.LogsViewComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'view', + component: _view_view_component__WEBPACK_IMPORTED_MODULE_6__.ViewComponent +}, { + path: 'mapsLocations', + component: _maps_maps_location_list_maps_location_list_component__WEBPACK_IMPORTED_MODULE_15__.MapsLocationListComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, { + path: 'flows', + component: _integrations_node_red_node_red_flows_node_red_flows_component__WEBPACK_IMPORTED_MODULE_17__.NodeRedFlowsComponent, + canActivate: [_auth_guard__WEBPACK_IMPORTED_MODULE_0__.AuthGuard] +}, +// otherwise redirect to home +{ + path: '**', + redirectTo: '' +}]; +const routing = _angular_router__WEBPACK_IMPORTED_MODULE_18__.RouterModule.forRoot(appRoutes, {}); + +/***/ }), + +/***/ 8407: +/*!*******************************!*\ + !*** ./src/app/auth.guard.ts ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AuthGuard: () => (/* binding */ AuthGuard) +/* harmony export */ }); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_services/auth.service */ 48333); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_services/project.service */ 57610); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 79736); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs/operators */ 81891); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs/operators */ 72607); +/* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./login/login.component */ 2014); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let AuthGuard = class AuthGuard { + authService; + translateService; + toastr; + projectService; + dialog; + router; + constructor(authService, translateService, toastr, projectService, dialog, router) { + this.authService = authService; + this.translateService = translateService; + this.toastr = toastr; + this.projectService = projectService; + this.dialog = dialog; + this.router = router; + } + canActivate(next, state) { + if (!this.projectService.isSecurityEnabled()) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(true); + } + if (this.authService.isAdmin()) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(true); + } + const serverSecureEnabled$ = this.projectService.checkServer().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.map)(response => { + if (!response?.secureEnabled) { + return false; + } + return true; + })); + return serverSecureEnabled$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.switchMap)(secureEnabled => { + if (!secureEnabled) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(true); + } else { + const dialogRef = this.dialog.open(_login_login_component__WEBPACK_IMPORTED_MODULE_2__.LoginComponent); + return dialogRef.afterClosed().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.mergeMap)(result => { + if (result) { + if (this.authService.isAdmin()) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(true); + } + } + this.notifySaveError('msg.signin-unauthorized'); + this.router.navigateByUrl('/'); + return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(false); + })); + } + })); + } + notifySaveError(textKey) { + let msg = ''; + this.translateService.get(textKey).subscribe(txt => { + msg = txt; + }); + this.toastr.error(msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + static ctorParameters = () => [{ + type: _services_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_8__.ToastrService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_1__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialog + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_10__.Router + }]; +}; +AuthGuard = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_11__.Injectable)(), __metadata("design:paramtypes", [_services_auth_service__WEBPACK_IMPORTED_MODULE_0__.AuthService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_8__.ToastrService, _services_project_service__WEBPACK_IMPORTED_MODULE_1__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialog, _angular_router__WEBPACK_IMPORTED_MODULE_10__.Router])], AuthGuard); + + +/***/ }), + +/***/ 96697: +/*!****************************************************!*\ + !*** ./src/app/cards-view/cards-view.component.ts ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CardsViewComponent: () => (/* binding */ CardsViewComponent), +/* harmony export */ GridOptions: () => (/* binding */ GridOptions), +/* harmony export */ NgxNouisliderOptions: () => (/* binding */ NgxNouisliderOptions) +/* harmony export */ }); +/* harmony import */ var _cards_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cards-view.component.html?ngResource */ 60160); +/* harmony import */ var _cards_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cards-view.component.scss?ngResource */ 18234); +/* harmony import */ var _cards_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_cards_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var angular_gridster2__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! angular-gridster2 */ 52562); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../fuxa-view/fuxa-view.component */ 33814); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var CardsViewComponent_1; + + + + + + + + + +let CardsViewComponent = CardsViewComponent_1 = class CardsViewComponent { + renderer; + changeDetector; + options; + edit = true; + view; + hmi; + gaugesManager; + editCard = new _angular_core__WEBPACK_IMPORTED_MODULE_6__.EventEmitter(); + onGoTo = new _angular_core__WEBPACK_IMPORTED_MODULE_6__.EventEmitter(); + fuxaViews; + gridOptions; + dashboard = []; + cardType = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType; + mapsViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.maps; + loadOk = false; + constructor(renderer, changeDetector) { + this.renderer = renderer; + this.changeDetector = changeDetector; + this.gridOptions = new GridOptions(); + this.gridOptions.itemChangeCallback = this.itemChange; + this.gridOptions.itemResizeCallback = CardsViewComponent_1.itemResizeTrigger; + } + ngOnInit() { + this.gridOptions = { + ...this.gridOptions, + ...this.options + }; + } + ngAfterViewInit() { + this.reload(); + } + reload() { + if (this.loadOk) { + return; + } + let element = document.querySelector('gridster'); + if (element) { + if (this.view.profile.bkcolor) { + element.style.backgroundColor = this.view.profile.bkcolor; + } + if (!this.edit) { + this.renderer.setStyle(element?.parentElement, 'width', `100vw`); + } + } + this.gridOptions.gridType = this.view.profile.gridType ?? angular_gridster2__WEBPACK_IMPORTED_MODULE_7__.GridType.Fixed; + if (this.view.profile.margin >= 0) { + this.gridOptions.margin = this.view.profile.margin; + this.gridOptions.api.optionsChanged(); + } + this.initCardsEditor(this.view.svgcontent); + } + initCardsEditor(dashboardContent) { + this.dashboard = []; + if (dashboardContent) { + let dashboard = JSON.parse(dashboardContent); + for (let i = 0; i < dashboard.length; i++) { + this.addCardsWidget(dashboard[i].x, dashboard[i].y, dashboard[i].cols, dashboard[i].rows, dashboard[i].card); + } + } else { + this.addCardsWidget(0, 0, 10, 8, { + type: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.view + }); + } + } + onEditCard(item) { + this.editCard.emit(item); + } + onRemoveCard(item) { + this.dashboard.splice(this.dashboard.indexOf(item), 1); + this.view.svgcontent = JSON.stringify(this.dashboard); + } + onGoToPage($event) { + this.onGoTo.emit($event); + } + addCardsWidget(x = 0, y = 0, cols = 10, rows = 8, card = { + type: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.view, + zoom: 1 + }) { + let content = null; + let background = ''; + let item = { + x: x, + y: y, + cols: cols, + rows: rows, + card: card, + content: content, + background: background + }; + item.initCallback = (item, itemComponent) => { + if (card) { + if (card.type === this.cardType.view) { + let views = this.hmi.views.filter(v => v.name === card.data); + if (views && views.length) { + if (views[0].svgcontent) { + item.content = views[0]; //.svgcontent.replace('Layer 1', ''); + } + + if (views[0].profile.bkcolor) { + item.background = views[0].profile.bkcolor; + } + } + } else if (card.type === this.cardType.alarms) { + item.background = '#CCCCCC'; + item.content = ' '; + } else if (card.type === this.cardType.iframe) { + item.content = card.data; + } + this.itemChange(item, itemComponent); + this.changeDetector.detectChanges(); + } + }; + this.dashboard.push(item); + } + render() { + this.initCardsEditor(this.view.svgcontent); + } + getContent() { + return JSON.stringify(this.dashboard); + } + getWindgetViewName() { + let viewsName = this.dashboard.filter(c => c.card.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.view && c.card.data).map(c => c.card.data); + return viewsName; + } + onZoomChanged(item, $event) { + item.card.zoom = $event.value; + } + getFuxaView(index) { + return this.fuxaViews?.toArray()[index]; + } + itemChange(item, itemComponent) { + if (itemComponent.el) { + if (item.background) { + itemComponent.el.style.backgroundColor = item.background; + } + if (item.card.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.alarms || item.card.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.iframe) { + itemComponent.el.classList.add('card-html'); + } + } + } + static itemResizeTrigger(item, itemComponent) { + if (item.card?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.view) { + if (item.content?.type === 'maps') { + if (itemComponent.el.firstChild.style) { + itemComponent.el.firstChild.style.height = '100%'; + itemComponent.el.firstChild.style.width = '100%'; + } + } else { + let ratioWidth, ratioHeight, eleToResize; + ratioWidth = itemComponent.el.clientWidth / item.content?.profile?.width; + ratioHeight = itemComponent.el.clientHeight / item.content?.profile?.height; + eleToResize = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeTagName(itemComponent.el, 'svg'); + if (item.card?.scaleMode === 'contain') { + eleToResize?.setAttribute('transform', 'scale(' + Math.min(ratioWidth, ratioHeight) + ')'); + } else if (item.card?.scaleMode === 'stretch') { + eleToResize?.setAttribute('transform', 'scale(' + ratioWidth + ', ' + ratioHeight + ')'); + } + } + } else if (item.card.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.CardWidgetType.iframe) { + if (itemComponent.el.firstChild.style) { + itemComponent.el.firstChild.style.height = '100%'; + itemComponent.el.firstChild.style.width = '100%'; + } + } + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Renderer2 + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ChangeDetectorRef + }]; + static propDecorators = { + options: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + edit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + view: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + hmi: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + gaugesManager: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + editCard: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Output + }], + onGoTo: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Output + }], + fuxaViews: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ViewChildren, + args: [_fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_5__.FuxaViewComponent] + }] + }; +}; +CardsViewComponent = CardsViewComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-cards-view', + template: _cards_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_cards_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_6__.Renderer2, _angular_core__WEBPACK_IMPORTED_MODULE_6__.ChangeDetectorRef])], CardsViewComponent); + +class NgxNouisliderOptions { + orientation = 'vertical'; //'horizontal'; + direction = 'ltr'; + fontFamily = 'Sans-serif'; + shape = { + baseColor: '#dcdcdc', + connectColor: '#49b2ff', + handleColor: '#018ef5' + }; + marker = { + color: '#000', + subWidth: 5, + subHeight: 1, + fontSize: 18, + divHeight: 2, + divWidth: 12 + }; + range = { + min: 0, + max: 100 + }; + step = 1; + pips = { + mode: 'values', + values: [0, 50, 100], + density: 4 + }; + tooltip = { + type: 'none', + decimals: 0, + background: '#FFF', + color: '#000', + fontSize: 12 + }; +} +class GridOptions { + gridType = angular_gridster2__WEBPACK_IMPORTED_MODULE_7__.GridType.Fixed; + compactType = angular_gridster2__WEBPACK_IMPORTED_MODULE_7__.CompactType.None; + maxCols = 100; + maxRows = 100; + fixedColWidth = 35; + fixedRowHeight = 35; + margin = 10; + disableWarnings = true; + draggable = { + enabled: true + }; + resizable = { + enabled: true + }; +} +; + +/***/ }), + +/***/ 24299: +/*!**********************************************************!*\ + !*** ./src/app/device-adapter/device-adapter.service.ts ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceAdapterService: () => (/* binding */ DeviceAdapterService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var _device_adapter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./device-adapter */ 52659); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let DeviceAdapterService = class DeviceAdapterService { + projectService; + adapterMapping = {}; + mappingIdsAdapterToDevice = {}; // Adapter Tag Id -> Device Tag Id, of Alls Adapters + mappingIdsDeviceToAdapter = {}; // Devices Tags Id -> Adapter Tags Id + constructor(projectService) { + this.projectService = projectService; + this.projectService.onLoadHmi.subscribe(() => { + this.loadDevices(); + }); + } + loadDevices() { + this.adapterMapping = {}; + this.mappingIdsAdapterToDevice = {}; + const devices = this.projectService.getDeviceList().filter(device => device.type === _models_device__WEBPACK_IMPORTED_MODULE_1__.DeviceType.internal); + devices.forEach(device => { + this.adapterMapping[device.name] = new _device_adapter__WEBPACK_IMPORTED_MODULE_2__.DeviceAdapter(device); + const tagsIds = Object.keys(device.tags); + for (const id of tagsIds) { + this.mappingIdsAdapterToDevice[id] = null; + } + }); + } + setTargetDevice(adapterName, deviceName, onInitValue) { + const device = this.projectService.getDeviceList().find(device => device.name === deviceName); + const adapter = this.adapterMapping[adapterName]; + if (!adapter) { + console.error(`Adapter not found: ${adapterName}`); + return; + } + const adapterIds = Object.keys(adapter.tags); + const tagsIdOfDeviceRemoved = this.clearMappedDevice(adapterIds); + this.removeMappedAdapterIdsFromDevice(tagsIdOfDeviceRemoved); + if (device) { + const adapterIdsThatMatch = this.setMatchIdsAdapterDevice(device, Object.values(adapter.tags)); + this.mapAdapterIdsWithDevice(adapterIdsThatMatch); + onInitValue?.(adapterIdsThatMatch); + // onClearValue?.(Object.keys(adapterIdsThatMatch)); + } else if (deviceName) { + console.error(`Device not found: ${deviceName}`); + } + } + resolveAdapterTagsId(ids) { + const resolved = [...ids]; + for (let i = 0; i < ids.length; i++) { + if (!this.mappingIdsAdapterToDevice[ids[i]]) { + continue; + } + resolved[i] = this.mappingIdsAdapterToDevice[ids[i]]; + } + return resolved; + } + resolveDeviceTagIdForAdapter(id) { + return this.mappingIdsDeviceToAdapter[id]; + } + /** + * Map the Adapter Tags id in the Device Tag id + * @param adapterIds + */ + mapAdapterIdsWithDevice(adapterIds) { + for (const [adapterId, deviceId] of Object.entries(adapterIds)) { + (this.mappingIdsDeviceToAdapter[deviceId] ??= []).push(adapterId); + } + } + /** + * Remove the mapped adapter ids from the mapping of Device to Adapter + * @param tagsIdToRemove + */ + removeMappedAdapterIdsFromDevice(tagsIdToRemove) { + for (const [adapterId, deviceId] of Object.entries(tagsIdToRemove)) { + const adapterList = this.mappingIdsDeviceToAdapter[deviceId]; + if (adapterList) { + this.mappingIdsDeviceToAdapter[deviceId] = adapterList.filter(id => id !== adapterId); + } + } + } + /** + * Clear the mapping of the adapter ids if found a tagid of device + * @param adapterIds + * @returns Record list, Tag Id of Device -> Tag Id of Adapter + */ + clearMappedDevice(adapterIds) { + let tagsIdDevice = {}; + for (const id of adapterIds) { + const tagIdOfDevice = this.mappingIdsAdapterToDevice[id]; + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(tagIdOfDevice)) { + tagsIdDevice[id] = tagIdOfDevice; + this.mappingIdsAdapterToDevice[id] = null; + } + } + return tagsIdDevice; + } + /** + * Search and set the tags of the device that match the adapter with the tag name + * @param device + * @param adapterTags + * @returns Record list, Tag Id of Adapter -> TagId of Device + */ + setMatchIdsAdapterDevice(device, adapterTags) { + let result = {}; + const targetTags = Object.values(device.tags); + Object.values(adapterTags)?.forEach(tag => { + const targetTag = targetTags.find(t => t.name === tag.name); + if (targetTag) { + result[tag.id] = targetTag?.id; + this.mappingIdsAdapterToDevice[tag.id] = targetTag?.id; + } + }); + return result; + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_0__.ProjectService + }]; +}; +DeviceAdapterService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_0__.ProjectService])], DeviceAdapterService); + + +/***/ }), + +/***/ 52659: +/*!**************************************************!*\ + !*** ./src/app/device-adapter/device-adapter.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceAdapter: () => (/* binding */ DeviceAdapter) +/* harmony export */ }); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_models/device */ 15625); + +class DeviceAdapter extends _models_device__WEBPACK_IMPORTED_MODULE_0__.Device { + constructor(device) { + super(device.id); + this.tags = device.tags; + this.name = device.name; + } +} + +/***/ }), + +/***/ 15661: +/*!*************************************************************!*\ + !*** ./src/app/device/device-list/device-list.component.ts ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceListComponent: () => (/* binding */ DeviceListComponent) +/* harmony export */ }); +/* harmony import */ var _device_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device-list.component.html?ngResource */ 19006); +/* harmony import */ var _device_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./device-list.component.scss?ngResource */ 82337); +/* harmony import */ var _device_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_device_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/material/legacy-menu */ 10662); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/cdk/collections */ 20636); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _tag_options_tag_options_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../tag-options/tag-options.component */ 23328); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/hmi.service */ 69578); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _tag_property_tag_property_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../tag-property/tag-property.service */ 68750); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + + + + + +let DeviceListComponent = class DeviceListComponent { + dialog; + hmiService; + translateService; + changeDetector; + projectService; + tagPropertyService; + defAllColumns = ['select', 'name', 'address', 'device', 'type', 'value', 'timestamp', 'description', 'warning', 'logger', 'options', 'remove']; + defInternalColumns = ['select', 'name', 'device', 'type', 'value', 'timestamp', 'description', 'options', 'remove']; + defGpipColumns = ['select', 'name', 'device', 'address', 'direction', 'value', 'timestamp', 'description', 'logger', 'options', 'remove']; + defWebcamColumns = ['select', 'name', 'device', 'address', 'value', 'timestamp', 'description', 'logger', 'options', 'remove']; + defAllRowWidth = 1400; + defClientRowWidth = 1400; + defInternalRowWidth = 1200; + displayedColumns = this.defAllColumns; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_9__.MatLegacyTableDataSource([]); + selection = new _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_10__.SelectionModel(true, []); + devices; + deviceType = _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType; + tableWidth = this.defAllRowWidth; + tagsMap = {}; + deviceSelected = null; + isDeviceToEdit = true; + isWithOptions = true; + readonly = false; + save = new _angular_core__WEBPACK_IMPORTED_MODULE_11__.EventEmitter(); + goto = new _angular_core__WEBPACK_IMPORTED_MODULE_11__.EventEmitter(); + table; + sort; + trigger; + paginator; + constructor(dialog, hmiService, translateService, changeDetector, projectService, tagPropertyService) { + this.dialog = dialog; + this.hmiService = hmiService; + this.translateService = translateService; + this.changeDetector = changeDetector; + this.projectService = projectService; + this.tagPropertyService = tagPropertyService; + } + ngOnInit() { + this.devices = this.projectService.getDevices(); + if (!this.deviceSelected && this.devices) { + this.deviceSelected = this.devices[0]; + } + } + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + mapTags() { + this.devices = this.projectService.getDevices(); + Object.values(this.devices).forEach(d => { + if (d.tags) { + Object.values(d.tags).forEach(t => { + this.tagsMap[t.id] = t; + }); + } + }); + this.setSelectedDevice(this.deviceSelected); + } + bindToTable(tags) { + if (!tags) { + tags = {}; + } + this.dataSource.data = Object.values(tags); + this.hmiService.viewsTagsSubscribe(Object.keys(tags)); + } + onDeviceChange(source) { + this.dataSource.data = []; + this.deviceSelected = source.value; + this.setSelectedDevice(this.deviceSelected); + } + setSelectedDevice(device) { + this.devices = this.projectService.getDevices(); + this.updateDeviceValue(); + if (!device) { + return; + } + this.isDeviceToEdit = !_models_device__WEBPACK_IMPORTED_MODULE_3__.Device.isWebApiProperty(device); + Object.values(this.devices).forEach(d => { + if (d.name === device.name) { + this.deviceSelected = d; + this.bindToTable(this.deviceSelected.tags); + } + }); + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.internal) { + this.displayedColumns = this.defInternalColumns; + this.tableWidth = this.defInternalRowWidth; + } else if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.GPIO) { + this.displayedColumns = this.defGpipColumns; + this.tableWidth = this.defAllRowWidth; + } else if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebCam) { + this.displayedColumns = this.defWebcamColumns; + this.tableWidth = this.defAllRowWidth; + } else { + this.displayedColumns = this.defAllColumns; + this.tableWidth = this.defAllRowWidth; + } + this.isWithOptions = this.deviceSelected.type === this.deviceType.internal || this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebCam ? false : true; + } + onGoBack() { + this.goto.emit(); + } + onRemoveRow(row) { + const index = this.dataSource.data.indexOf(row, 0); + if (this.dataSource.data[index]) { + delete this.deviceSelected.tags[this.dataSource.data[index].id]; + } + this.bindToTable(this.deviceSelected.tags); + this.projectService.setDeviceTags(this.deviceSelected); + } + onRemoveAll() { + let msg = ''; + this.translateService.get('msg.tags-remove-all').subscribe(txt => { + msg = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_6__.ConfirmDialogComponent, { + disableClose: true, + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.clearTags(); + } + }); + } + clearTags() { + this.deviceSelected.tags = {}; + this.bindToTable(this.deviceSelected.tags); + this.projectService.setDeviceTags(this.deviceSelected); + } + /** Whether the number of selected elements matches the total number of rows. */ + isAllSelected() { + const numSelected = this.selection.selected.length; + const numRows = this.dataSource.data.length; + return numSelected === numRows; + } + /** Selects all rows if they are not all selected; otherwise clear selection. */ + masterToggle() { + this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row)); + } + applyFilter(filterValue) { + filterValue = filterValue.trim(); // Remove whitespace + filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches + this.dataSource.filter = filterValue; + } + /** Edit the tag */ + onEditRow(row) { + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.MQTTclient) { + this.editTopics(row); + } else { + this.editTag(row, false); + } + } + /** Edit tag options like DAQ settings */ + onEditOptions(row) { + this.editTagOptions([row]); + } + onAddTag() { + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.OPCUA || this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.BACnet || this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebAPI) { + this.addOpcTags(); + } else if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.MQTTclient) { + this.editTopics(); + } else { + let tag = new _models_device__WEBPACK_IMPORTED_MODULE_3__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_3__.TAG_PREFIX)); + this.editTag(tag, true); + } + } + addOpcTags() { + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.OPCUA) { + this.tagPropertyService.addTagsOpcUa(this.deviceSelected, this.tagsMap).subscribe(result => { + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.BACnet) { + this.tagPropertyService.editTagPropertyBacnet(this.deviceSelected, this.tagsMap).subscribe(result => { + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebAPI) { + this.tagPropertyService.editTagPropertyWebapi(this.deviceSelected, this.tagsMap).subscribe(result => { + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + } + getTagLabel(tag) { + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.BACnet || this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebAPI) { + return tag.label || tag.name; + } else if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.OPCUA) { + return tag.label; + } else { + return tag.name; + } + } + getAddress(tag) { + if (!tag.address) { + return ''; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ModbusRTU || this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ModbusTCP) { + return parseInt(tag.address) + parseInt(tag.memaddress); + } else if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebAPI) { + if (tag.options) { + return tag.address + ' / ' + tag.options.selval; + } + return tag.address; + } else if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.MQTTclient) { + if (tag.options && tag.options.subs && tag.type === 'json') { + return this.tagPropertyService.formatAddress(tag.address, tag.memaddress); + } + return tag.address; + } + return tag.address; + } + isToEdit(type, tag) { + if (type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.SiemensS7 || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ModbusTCP || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ModbusRTU || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.internal || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.EthernetIP || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.FuxaServer || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.OPCUA || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.GPIO || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ADSclient || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebCam || type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.MELSEC) { + return true; + } else if (type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.MQTTclient) { + if (tag && tag.options && (tag.options.pubs || tag.options.subs)) { + return true; + } + } + return false; + } + editTag(tag, checkToAdd) { + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.SiemensS7) { + this.tagPropertyService.editTagPropertyS7(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.FuxaServer) { + this.tagPropertyService.editTagPropertyServer(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ModbusRTU || this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ModbusTCP) { + this.tagPropertyService.editTagPropertyModbus(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.internal) { + this.tagPropertyService.editTagPropertyInternal(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.EthernetIP) { + this.tagPropertyService.editTagPropertyEthernetIp(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.OPCUA) { + this.tagPropertyService.editTagPropertyOpcUa(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.ADSclient) { + this.tagPropertyService.editTagPropertyADSclient(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.GPIO) { + this.tagPropertyService.editTagPropertyGpio(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.WebCam) { + this.tagPropertyService.editTagPropertyWebcam(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + if (this.deviceSelected.type === _models_device__WEBPACK_IMPORTED_MODULE_3__.DeviceType.MELSEC) { + this.tagPropertyService.editTagPropertyMelsec(this.deviceSelected, tag, checkToAdd).subscribe(result => { + this.tagsMap[tag.id] = tag; + this.bindToTable(this.deviceSelected.tags); + }); + return; + } + } + editTagOptions(tags) { + let dialogRef = this.dialog.open(_tag_options_tag_options_component__WEBPACK_IMPORTED_MODULE_2__.TagOptionsComponent, { + disableClose: true, + data: { + device: this.deviceSelected, + tags: tags + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(tagOption => { + if (tagOption) { + for (let i = 0; i < tags.length; i++) { + tags[i].daq = tagOption.daq; + tags[i].format = tagOption.format; + tags[i].deadband = tagOption.deadband; + tags[i].scale = tagOption.scale; + tags[i].scaleReadFunction = tagOption.scaleReadFunction; + tags[i].scaleReadParams = tagOption.scaleReadParams; + tags[i].scaleWriteFunction = tagOption.scaleWriteFunction; + tags[i].scaleWriteParams = tagOption.scaleWriteParams; + } + this.projectService.setDeviceTags(this.deviceSelected); + } + }); + } + updateDeviceValue() { + let sigs = this.hmiService.getAllSignals(); + for (let id in sigs) { + if (this.tagsMap[id]) { + this.tagsMap[id].value = sigs[id].value; + this.tagsMap[id].error = sigs[id].error; + this.tagsMap[id].timestamp = sigs[id].timestamp; + } + } + this.changeDetector.detectChanges(); + } + devicesValue() { + return Object.values(this.devices); + } + /** + * to add or edit MQTT topic for subscription or publish + */ + editTopics(topic = null) { + this.tagPropertyService.editTagPropertyMqtt(this.deviceSelected, topic, this.tagsMap, () => { + this.bindToTable(this.deviceSelected.tags); + }); + } + onCopyTagToClipboard(tag) { + _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.copyToClipboard(JSON.stringify(tag)); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialog + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_5__.HmiService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_13__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ChangeDetectorRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _tag_property_tag_property_service__WEBPACK_IMPORTED_MODULE_8__.TagPropertyService + }]; + static propDecorators = { + readonly: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Input + }], + save: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Output + }], + goto: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Output + }], + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_9__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_14__.MatSort, { + static: false + }] + }], + trigger: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_15__.MatLegacyMenuTrigger, { + static: false + }] + }], + paginator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_16__.MatLegacyPaginator, { + static: false + }] + }] + }; +}; +DeviceListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_11__.Component)({ + selector: 'app-device-list', + template: _device_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ChangeDetectionStrategy.OnPush, + styles: [(_device_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialog, _services_hmi_service__WEBPACK_IMPORTED_MODULE_5__.HmiService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_13__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_11__.ChangeDetectorRef, _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _tag_property_tag_property_service__WEBPACK_IMPORTED_MODULE_8__.TagPropertyService])], DeviceListComponent); + + +/***/ }), + +/***/ 21082: +/*!***********************************************************!*\ + !*** ./src/app/device/device-map/device-map.component.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceMapComponent: () => (/* binding */ DeviceMapComponent) +/* harmony export */ }); +/* harmony import */ var _device_map_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device-map.component.html?ngResource */ 16864); +/* harmony import */ var _device_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./device-map.component.scss?ngResource */ 38453); +/* harmony import */ var _device_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_device_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _device_property_device_property_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../device-property/device-property.component */ 10290); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _services_plugin_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/plugin.service */ 99232); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../../_models/device */ 15625); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../_services/app.service */ 49982); +/* harmony import */ var _device_webapi_property_dialog_device_webapi_property_dialog_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./device-webapi-property-dialog/device-webapi-property-dialog.component */ 58553); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + +let DeviceMapComponent = class DeviceMapComponent { + dialog; + translateService; + elementRef; + appService; + pluginService; + projectService; + goto = new _angular_core__WEBPACK_IMPORTED_MODULE_9__.EventEmitter(); + mode; + readonly = false; + subscriptionPluginsChange; + devicesViewMap = _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceViewModeType.map; + devicesViewList = _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceViewModeType.list; + deviceStatusType = _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceConnectionStatusType; + displayedColumns = ['select', 'name', 'type', 'polling', 'address', 'status', 'enabled', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_10__.MatLegacyTableDataSource([]); + tableWidth = 1200; + table; + sort; + paginator; + flowBorder = 5; + flowWidth = 160; + flowHeight = 70; + flowLineHeight = 60; + deviceBorder = 5; + deviceWidth = 160; + deviceHeight = 90; + deviceLineHeight = 60; + lineFlowSize = 6; + lineFlowHeight = 60; + lineDeviceSize = 6; + mainDeviceLineHeight = 60; + mainWidth = 160; + mainHeight = 90; + mainBorder = 5; + server; + devices = {}; + plugins = []; + devicesStatus = {}; + dirty = false; + domArea; + constructor(dialog, translateService, elementRef, appService, pluginService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.elementRef = elementRef; + this.appService = appService; + this.pluginService = pluginService; + this.projectService = projectService; + this.domArea = this.elementRef.nativeElement.parent; + } + ngOnInit() { + this.loadCurrentProject(); + this.loadAvailableType(); + this.subscriptionPluginsChange = this.pluginService.onPluginsChanged.subscribe(event => { + this.loadAvailableType(); + }); + Object.keys(this.deviceStatusType).forEach(key => { + this.translateService.get(this.deviceStatusType[key]).subscribe(txt => { + this.deviceStatusType[key] = txt; + }); + }); + } + ngAfterViewInit() { + if (this.appService.isClientApp) { + this.mainDeviceLineHeight = 0; + this.mainHeight = 0; + this.flowLineHeight = 0; + this.flowHeight = 0; + this.lineFlowHeight = 0; + } + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + try { + if (this.subscriptionPluginsChange) { + this.subscriptionPluginsChange.unsubscribe(); + } + } catch (e) {} + } + onEditDevice(device) { + if (_models_device__WEBPACK_IMPORTED_MODULE_5__.Device.isWebApiProperty(device)) { + this.showDeviceWebApiProperty(device); + } else { + this.editDevice(device, false); + } + } + loadCurrentProject() { + // take the copy of devices to save by leave + let prj = this.projectService.getProject(); + this.devices = this.projectService.getDevices(); + if (prj && prj.server) { + this.server = this.devices[prj.server.id]; + } + this.loadDevices(); + } + loadDevices() { + this.devices = this.projectService.checkSystemTags(); + this.dataSource.data = Object.values(this.devices); + } + loadAvailableType() { + // define available device type (plugins) + this.plugins = []; + if (!this.appService.isClientApp && !this.appService.isDemoApp) { + this.pluginService.getPlugins().subscribe(plugins => { + Object.values(plugins).forEach(pg => { + if (pg.current.length) { + this.plugins.push(pg.type); + } + }); + }, error => {}); + this.plugins.push(_models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.WebAPI); + this.plugins.push(_models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.MQTTclient); + this.plugins.push(_models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.internal); + } else { + this.plugins.push(_models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.internal); + } + } + addDevice() { + let device = new _models_device__WEBPACK_IMPORTED_MODULE_5__.Device(_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_5__.DEVICE_PREFIX)); + device.property = new _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceNetProperty(); + device.enabled = false; + device.tags = {}; + this.editDevice(device, false); + } + onRemoveDevice(device) { + this.editDevice(device, true); + } + removeDevice(device) { + delete this.devices[device.id]; + this.loadDevices(); + } + getWindowWidth() { + let result = window.innerWidth; + if (this.appService.isClientApp && this.elementRef.nativeElement && this.elementRef.nativeElement.parentElement) { + result = this.elementRef.nativeElement.parentElement.clientWidth; + } + if (this.devices) { + if (result < (this.plcs().length + 2) * this.deviceWidth) { + result = (this.plcs().length + 2) * this.deviceWidth; + } + if (result < (this.flows().length + 2) * this.deviceWidth) { + result = (this.flows().length + 2) * this.deviceWidth; + } + } + return result; + } + getHorizontalCenter() { + return this.getWindowWidth() / 2; + } + getVerticalCenter() { + if (this.devices && this.plcs().length && this.flows().length) { + return window.innerHeight / 5 * 2; + } else if (this.flows().length) { + return window.innerHeight / 2; + } else { + return window.innerHeight / 3; + } + } + getMainLeftPosition() { + return this.getHorizontalCenter() - this.mainWidth / 2; + } + getMainTopPosition() { + return this.getVerticalCenter() - this.mainHeight / 2; + } + getMainLineLeftPosition() { + return this.getHorizontalCenter() - 1 + this.lineDeviceSize / 2; + } + getMainLineTopPosition(type = null) { + if (type === 'flow') { + return this.getVerticalCenter() + this.mainBorder - (this.lineFlowHeight + this.mainHeight / 2); + } + return this.getVerticalCenter() + this.mainBorder + this.mainHeight / 2; + } + getMainLineHeight(type = null) { + if (this.devices) { + if (type === 'flow') { + if (this.flows().length) { + return this.lineFlowHeight; + } + } else { + if (this.plcs().length) { + return this.mainDeviceLineHeight; + } + } + } + return 0; + } + getDeviceLeftPosition(index, type = null) { + if (this.devices) { + if (type === 'flow') { + if (this.flows().length) { + let pos = index + 1; + let centerd = this.flows().length + 1; + let result = (this.getWindowWidth() - this.flowWidth) / centerd * pos; + return result; + } + } else { + if (this.plcs().length) { + let pos = index + 1; + let centerd = this.plcs().length + 1; + let result = (this.getWindowWidth() - this.deviceWidth) / centerd * pos; + return result; + } + } + } + return 0; + } + getDeviceTopPosition(type = null) { + if (!this.server) { + let pos = this.elementRef.nativeElement.parentElement.clientHeight / 2; + if (pos < 200) { + pos = 200; + } + if (type === 'flow') { + pos -= this.mainHeight * 2; + } else { + pos += this.mainHeight / 2; + } + return pos; + } else if (type === 'flow') { + return this.getDeviceLineTopPosition(type) - (this.flowHeight + this.flowBorder * 2); + } else { + return this.getVerticalCenter() + (this.mainHeight / 2 + this.deviceLineHeight + this.mainDeviceLineHeight); + } + } + getDeviceLineLeftPosition(index, type = null) { + if (this.devices) { + if (type === 'flow') { + if (this.flows().length) { + let pos = index + 1; + let centerd = this.flows().length + 1; + let result = (this.getWindowWidth() - this.flowWidth) / centerd * pos; + result += this.flowBorder + this.flowWidth / 2 - this.lineDeviceSize / 2; + return result; + } + } else { + if (this.plcs().length) { + let pos = index + 1; + let centerd = this.plcs().length + 1; + let result = (this.getWindowWidth() - this.deviceWidth) / centerd * pos; + result += this.deviceBorder + this.deviceWidth / 2 - this.lineDeviceSize / 2; + return result; + } + } + } + return 0; + } + getDeviceLineTopPosition(type = null) { + if (type === 'flow') { + return this.getDeviceConnectionTopPosition(type) + this.lineFlowSize - this.flowLineHeight; + } else { + return this.getDeviceTopPosition(type) - this.deviceLineHeight; + } + } + getDeviceConnectionLeftPosition(type = null) { + if (type === 'flow') { + let centerd = this.flows().length + 1; + let result = (this.getWindowWidth() - this.flowWidth) / centerd * 1; + result += this.deviceBorder + (this.flowWidth - this.lineFlowSize) / 2; + return result; + } else { + let centerd = this.plcs().length + 1; + let result = (this.getWindowWidth() - this.deviceWidth) / centerd * 1; + result += this.deviceBorder + (this.deviceWidth - this.lineDeviceSize) / 2; + return result; + } + } + getDeviceConnectionTopPosition(type = null) { + if (type === 'flow') { + return this.getMainLineTopPosition(type) - this.lineFlowSize; + } else { + return this.getDeviceLineTopPosition(); + } + } + getDeviceConnectionWidth(type = null) { + if (this.devices) { + if (type === 'flow') { + let count = this.flows().length; + if (count) { + let centerd = this.flows().length + 1; + let result = (this.getWindowWidth() - this.flowWidth) / centerd * count - (this.getWindowWidth() - this.flowWidth) / centerd * 1; + return result; + } + } else { + let count = this.plcs().length; + if (count) { + let centerd = this.plcs().length + 1; + let result = (this.getWindowWidth() - this.deviceWidth) / centerd * count - (this.getWindowWidth() - this.deviceWidth) / centerd * 1; + return result; + } + } + } + return 0; + } + devicesValue(type = null) { + if (this.devices) { + if (type === 'flow') { + if (this.flows().length) { + let result = this.flows(); + return result.sort((a, b) => a.name > b.name ? 1 : -1); + } + } else { + if (this.plcs().length) { + let result = this.plcs(); + return result.sort((a, b) => a.name > b.name ? 1 : -1); + } + } + } + return []; + } + onListDevice(device) { + this.goto.emit(device); + } + withListConfig(device) { + return device.type !== _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ODBC; + } + isDevicePropertyToShow(device) { + if (device.property && device.type !== 'OPCUA') { + return true; + } + } + isClientDevice(device) { + return this.appService.isClientApp; + } + isServer(device) { + return this.server.id === device.id; + } + getDeviceAddress(device) { + if (device.property) { + return device.property.address; + } + return ''; + } + getDevicePropertyToShow(device) { + let result = ''; + if (device.property) { + if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.OPCUA) { + result = 'OPC-UA'; + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.SiemensS7) { + result = 'Port: '; + if (device.property.port) { + result += device.property.port; + } + result += ' / Rack: '; + if (device.property.rack) { + result += device.property.rack; + } + result += ' / Slot: '; + if (device.property.slot) { + result += device.property.slot; + } + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ModbusTCP) { + result = 'Modbus-TCP ' + 'Slave ID: '; + if (device.property.slaveid) { + result += device.property.slaveid; + } + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ModbusRTU) { + result = 'Modbus-RTU ' + 'Slave ID: '; + if (device.property.slaveid) { + result += device.property.slaveid; + } + } + } + return result; + } + getDeviceStatusColor(device) { + if (this.devicesStatus[device.id]) { + let milli = new Date().getTime(); + if (this.devicesStatus[device.id].last + 15000 < milli) { + if (this.devicesStatus[device.id].status !== 'connect-off') { + this.devicesStatus[device.id].status = 'connect-error'; + this.devicesStatus[device.id].last = new Date().getTime(); + } + } + let st = this.devicesStatus[device.id].status; + if (st === 'connect-ok') { + return '#00b050'; + } else if (st === 'connect-error' || st === 'connect-failed') { + return '#ff2d2d'; + } else if (st === 'connect-off' || st === 'connect-busy') { + return '#ffc000'; + } + } + } + getDeviceStatusText(device) { + if (this.devicesStatus[device.id]) { + let st = this.devicesStatus[device.id]?.status?.replace('connect-', ''); + if (this.deviceStatusType[st]) { + return this.deviceStatusType[st]; + } + } + return '-'; + } + getNodeClass(device) { + if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.internal) { + return 'node-internal'; + } + return 'node-device'; + } + setDeviceStatus(event) { + this.devicesStatus[event.id] = { + status: event.status, + last: new Date().getTime() + }; + } + editDevice(device, toremove) { + let exist = Object.values(this.devices).filter(d => d.id !== device.id).map(d => d.name); + exist.push('server'); + let tempdevice = JSON.parse(JSON.stringify(device)); + let dialogRef = this.dialog.open(_device_property_device_property_component__WEBPACK_IMPORTED_MODULE_2__.DevicePropertyComponent, { + disableClose: true, + panelClass: 'dialog-property', + data: { + device: tempdevice, + remove: toremove, + exist: exist, + availableType: this.plugins, + projectService: this.projectService + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.dirty = true; + if (toremove) { + this.removeDevice(device); + this.projectService.removeDevice(device); + } else { + let olddevice = JSON.parse(JSON.stringify(device)); + device.name = tempdevice.name; + device.type = tempdevice.type; + device.enabled = tempdevice.enabled; + device.polling = tempdevice.polling; + if (this.appService.isClientApp || this.appService.isDemoApp) { + delete device.property; + } + if (device.property && tempdevice.property) { + device.property.address = tempdevice.property.address; + device.property.port = parseInt(tempdevice.property.port); + device.property.slot = parseInt(tempdevice.property.slot); + device.property.rack = parseInt(tempdevice.property.rack); + device.property.slaveid = tempdevice.property.slaveid; + device.property.baudrate = tempdevice.property.baudrate; + device.property.databits = tempdevice.property.databits; + device.property.stopbits = tempdevice.property.stopbits; + device.property.parity = tempdevice.property.parity; + device.property.options = tempdevice.property.options; + device.property.delay = tempdevice.property.delay; + device.property.method = tempdevice.property.method; + device.property.format = tempdevice.property.format; + device.property.broadcastAddress = tempdevice.property.broadcastAddress; + device.property.adpuTimeout = tempdevice.property.adpuTimeout; + device.property.local = tempdevice.property.local; + device.property.router = tempdevice.property.router; + if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.MELSEC) { + device.property.ascii = tempdevice.property.ascii; + device.property.octalIO = tempdevice.property.octalIO; + } + if (tempdevice.property.connectionOption) { + device.property.connectionOption = tempdevice.property.connectionOption; + } + device.property.socketReuse = device.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ModbusTCP ? tempdevice.property.socketReuse : null; + } + this.projectService.setDevice(device, olddevice, result.security); + } + this.loadDevices(); + } + }); + } + showDeviceWebApiProperty(device) { + let dialogRef = this.dialog.open(_device_webapi_property_dialog_device_webapi_property_dialog_component__WEBPACK_IMPORTED_MODULE_8__.DeviceWebapiPropertyDialogComponent, { + data: { + device: device + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(() => {}); + } + plcs() { + return Object.values(this.devices).filter(d => d.type !== _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.WebAPI && d.type !== _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.FuxaServer && d.type !== _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ODBC && d.type !== _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.internal); + } + flows() { + return Object.values(this.devices).filter(d => d.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.WebAPI || d.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ODBC || d.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.internal); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ElementRef + }, { + type: _services_app_service__WEBPACK_IMPORTED_MODULE_7__.AppService + }, { + type: _services_plugin_service__WEBPACK_IMPORTED_MODULE_4__.PluginService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }]; + static propDecorators = { + goto: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Output + }], + mode: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + readonly: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_10__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_13__.MatSort, { + static: false + }] + }], + paginator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: [_angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_14__.MatLegacyPaginator, { + static: false + }] + }] + }; +}; +DeviceMapComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-device-map', + template: _device_map_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_device_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_9__.ElementRef, _services_app_service__WEBPACK_IMPORTED_MODULE_7__.AppService, _services_plugin_service__WEBPACK_IMPORTED_MODULE_4__.PluginService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService])], DeviceMapComponent); + + +/***/ }), + +/***/ 58553: +/*!************************************************************************************************************!*\ + !*** ./src/app/device/device-map/device-webapi-property-dialog/device-webapi-property-dialog.component.ts ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceWebapiPropertyDialogComponent: () => (/* binding */ DeviceWebapiPropertyDialogComponent) +/* harmony export */ }); +/* harmony import */ var _device_webapi_property_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device-webapi-property-dialog.component.html?ngResource */ 32471); +/* harmony import */ var _device_webapi_property_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./device-webapi-property-dialog.component.css?ngResource */ 47488); +/* harmony import */ var _device_webapi_property_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_device_webapi_property_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/hmi.service */ 69578); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let DeviceWebapiPropertyDialogComponent = class DeviceWebapiPropertyDialogComponent { + projectService; + hmiService; + translateService; + dialogRef; + data; + cacheDevice; + subscriptionDeviceTagsRequest; + message = ''; + constructor(projectService, hmiService, translateService, dialogRef, data) { + this.projectService = projectService; + this.hmiService = hmiService; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.cacheDevice = JSON.parse(JSON.stringify(this.data.device)); + this.subscriptionDeviceTagsRequest = this.hmiService.onDeviceTagsRequest.subscribe(res => { + if (res.result && res.result.tags) { + this.translateService.get('msg.device-tags-request-result', { + value: res.result.newTagsCount, + current: res.result.tags.length + }).subscribe(txt => { + this.message = txt; + }); + if (res.result.newTagsCount) { + for (let i = 0; i < res.result.tags.length; i++) { + this.data.device.tags[res.result.tags[i][0].id] = res.result.tags[i][0]; + } + this.projectService.setDevice(this.data.device, this.data.device, null); + } + } + }); + } + ngOnDestroy() { + try { + if (this.subscriptionDeviceTagsRequest) { + this.subscriptionDeviceTagsRequest.unsubscribe(); + } + } catch (err) { + console.error(err); + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.cacheDevice.enabled !== this.data.device.enabled) { + this.projectService.setDevice(this.data.device, this.data.device, null); + } + this.dialogRef.close(); + } + onLoadTagsClick() { + this.message = ''; + this.hmiService.askDeviceTags(this.data.device.id); + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +DeviceWebapiPropertyDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-device-webapi-property-dialog', + template: _device_webapi_property_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_device_webapi_property_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef, Object])], DeviceWebapiPropertyDialogComponent); + + +/***/ }), + +/***/ 10290: +/*!*********************************************************************!*\ + !*** ./src/app/device/device-property/device-property.component.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DevicePropertyComponent: () => (/* binding */ DevicePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _device_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device-property.component.html?ngResource */ 4880); +/* harmony import */ var _device_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./device-property.component.scss?ngResource */ 38136); +/* harmony import */ var _device_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_device_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 77592); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/hmi.service */ 69578); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/app.service */ 49982); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../../_models/device */ 15625); +/* harmony import */ var _odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../odbc-browser/odbc-browser.component */ 11234); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let DevicePropertyComponent = class DevicePropertyComponent { + hmiService; + translateService; + appService; + dialog; + dialogRef; + data; + panelProperty; + panelCertificate; + tableRadio; + databaseTables = []; + securityRadio; + mode; + deviceType = {}; + showPassword; + pollingPlcType = [{ + text: '200 ms', + value: 200 + }, { + text: '350 ms', + value: 350 + }, { + text: '500 ms', + value: 500 + }, { + text: '700 ms', + value: 700 + }, { + text: '1 sec', + value: 1000 + }, { + text: '1.5 sec', + value: 1500 + }, { + text: '2 sec', + value: 2000 + }, { + text: '3 sec', + value: 3000 + }, { + text: '4 sec', + value: 4000 + }, { + text: '5 sec', + value: 5000 + }, { + text: '10 sec', + value: 10000 + }, { + text: '30 sec', + value: 30000 + }, { + text: '1 min', + value: 60000 + }]; + pollingWebApiType = [{ + text: '1 sec', + value: 1000 + }, { + text: '2 sec', + value: 2000 + }, { + text: '3 sec', + value: 3000 + }, { + text: '5 sec', + value: 5000 + }, { + text: '10 sec', + value: 10000 + }, { + text: '30 sec', + value: 30000 + }, { + text: '1 min', + value: 60000 + }, { + text: '2 min', + value: 60000 * 2 + }, { + text: '5 min', + value: 60000 * 5 + }, { + text: '10 min', + value: 60000 * 10 + }, { + text: '30 min', + value: 60000 * 30 + }, { + text: '60 min', + value: 60000 * 60 + }]; + pollingWebCamType = this.pollingWebApiType.concat([{ + text: 'Disabled', + value: -1 + }]); + pollingType = this.pollingPlcType; + isFuxaServer = false; + isToRemove = false; + propertyError = ''; + propertyExpanded; + propertyLoading; + securityMode = []; + security = new _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceSecurity(); + baudrateType = [110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200, 128000, 256000, 921600]; + databitsType = [7, 8]; + stopbitsType = [1, 1.5, 2]; + parityType = ['None', 'Odd', 'Even']; + methodType = ['GET']; //, 'POST']; + parserType = ['JSON']; //, 'CSV']; + hostInterfaces = []; + modbusRtuOptionType = [_models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.SerialPort, _models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.RTUBufferedPort, _models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.AsciiPort]; + modbusTcpOptionType = [_models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.TcpPort, _models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.UdpPort, _models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.TcpRTUBufferedPort, _models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusOptionType.TelnetPort]; + modbusReuseModeType = _models_device__WEBPACK_IMPORTED_MODULE_4__.ModbusReuseModeType; + result = ''; + subscriptionDeviceProperty; + subscriptionHostInterfaces; + subscriptionDeviceWebApiRequest; + projectService; + constructor(hmiService, translateService, appService, dialog, dialogRef, data) { + this.hmiService = hmiService; + this.translateService = translateService; + this.appService = appService; + this.dialog = dialog; + this.dialogRef = dialogRef; + this.data = data; + this.projectService = data.projectService; + } + ngOnInit() { + this.isToRemove = this.data.remove; + this.isFuxaServer = this.data.device.type && this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.FuxaServer ? true : false; + for (let key in _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType) { + if (!this.isFuxaServer && key !== _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.FuxaServer) { + for (let idx = 0; idx < this.data.availableType.length; idx++) { + if (key.startsWith(this.data.availableType[idx])) { + this.deviceType[key] = _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType[key]; + } + } + } + } + // set default is only one type + if (this.data.availableType.length === 1) { + this.data.device.type = this.data.availableType[0]; + } + this.subscriptionDeviceProperty = this.hmiService.onDeviceProperty.subscribe(res => { + if (res.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.OPCUA) { + this.securityMode = []; + if (res.result) { + let secPol = _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy; + for (let idx = 0; idx < res.result.length; idx++) { + let sec = res.result[idx]; + let mode = this.securityModeToString(sec.securityMode); + if (sec.securityPolicy.indexOf(secPol.None) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.None.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic128Rsa15) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic128Rsa15.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic128) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic128.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic192Rsa15) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic192Rsa15.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic192) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic192.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic256Rsa15) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic256Rsa15.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic256Sha256) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic256Sha256.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Basic256) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Basic256.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Aes128_Sha256_RsaOaep) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Aes128_Sha256_RsaOaep.toString() + ' - ' + mode + }); + } else if (sec.securityPolicy.indexOf(secPol.Aes256_Sha256_RsaPss) !== -1) { + this.securityMode.push({ + value: sec, + text: _models_device__WEBPACK_IMPORTED_MODULE_4__.SecurityPolicy.Aes256_Sha256_RsaPss.toString() + ' - ' + mode + }); + } + if (this.isSecurityMode(sec)) { + this.securityRadio = sec; + } + } + this.propertyError = ''; + } else if (res.error) { + this.propertyError = res.error; + } + } else if (res.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.BACnet) {} else if (res.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.ODBC) { + if (res?.error) { + this.propertyError = res.error; + } else { + this.databaseTables = res.result; + for (let idx = 0; idx < res.result?.length; idx++) { + if (this.isSecurityMode(res.result[idx])) { + this.tableRadio = res.result[idx]; + } + } + this.propertyError = ''; + } + } + this.propertyLoading = false; + }); + // check security + if (this.data.device.id && (this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.OPCUA || this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.MQTTclient || this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.ODBC)) { + this.projectService.getDeviceSecurity(this.data.device.id).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.delay)(500)).subscribe(result => { + if (result) { + this.setSecurity(result.value); + } + }, err => { + console.error('get Device Security err: ' + err); + }); + } + if (this.data.device.property) { + if (!this.data.device.property.baudrate) { + this.data.device.property.baudrate = 9600; + } + if (!this.data.device.property.databits) { + this.data.device.property.databits = 8; + } + if (!this.data.device.property.stopbits) { + this.data.device.property.stopbits = 1; + } + if (!this.data.device.property.parity) { + this.data.device.property.parity = 'None'; + } + } + this.subscriptionHostInterfaces = this.hmiService.onHostInterfaces.subscribe(res => { + if (res.result) { + this.hostInterfaces = res; + } + }); + this.subscriptionDeviceWebApiRequest = this.hmiService.onDeviceWebApiRequest.subscribe(res => { + if (res.result) { + this.result = JSON.stringify(res.result); + } + this.propertyLoading = false; + }); + this.onDeviceTypeChanged(); + } + ngOnDestroy() { + try { + if (this.subscriptionDeviceProperty) { + this.subscriptionDeviceProperty.unsubscribe(); + } + if (this.subscriptionHostInterfaces) { + this.subscriptionHostInterfaces.unsubscribe(); + } + if (this.subscriptionDeviceWebApiRequest) { + this.subscriptionDeviceWebApiRequest.unsubscribe(); + } + } catch (err) { + console.error(err); + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.security = this.getSecurity(); + } + onCheckOpcUaServer() { + this.propertyLoading = true; + this.propertyError = ''; + this.hmiService.askDeviceProperty(this.data.device.property.address, this.data.device.type); + } + onCheckWebApi() { + this.propertyLoading = true; + this.result = ''; + this.hmiService.askWebApiProperty(this.data.device.property); + } + onCheckOdbc() { + this.propertyLoading = true; + this.result = ''; + this.hmiService.askDeviceProperty({ + address: this.data.device.property.address, + uid: this.security.username, + pwd: this.security.password, + id: this.data.device.id + }, this.data.device.type); + } + // onCheckBACnetDevice() { + // this.propertyLoading = true; + // this.hmiService.askDeviceProperty(this.data.device.property.address, this.data.device.type); + // } + onPropertyExpand(status) { + this.propertyExpanded = status; + } + onAddressChanged() { + this.propertyLoading = false; + } + onDeviceTypeChanged() { + if (this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.WebAPI) { + this.pollingType = this.pollingWebApiType; + } else if (this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.WebCam) { + this.pollingType = this.pollingWebCamType; + } else { + this.pollingType = this.pollingPlcType; + } + } + isValid(device) { + if (!device.name || !device.type) { + return false; + } + return this.data.exist.find(n => n === device.name) ? false : true; + } + isSecurityMode(sec) { + if (JSON.stringify(this.mode) === JSON.stringify(sec)) { + return true; + } else { + return false; + } + } + getSecurity() { + if (this.propertyExpanded && this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.OPCUA) { + if (this.securityRadio || this.security.username || this.security.password) { + let result = { + mode: this.securityRadio, + uid: this.security.username, + pwd: this.security.password + }; + return result; + } + } else if (this.propertyExpanded && this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.MQTTclient) { + if (this.security.clientId || this.security.username || this.security.password || this.security.certificateFileName || this.security.privateKeyFileName || this.security.caCertificateFileName) { + let result = { + clientId: this.security.clientId, + uid: this.security.username, + pwd: this.security.password, + cert: this.security.certificateFileName, + pkey: this.security.privateKeyFileName, + caCert: this.security.caCertificateFileName + }; + return result; + } + } else if (this.data.device.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.ODBC) { + if (this.tableRadio || this.security.username || this.security.password) { + let result = { + mode: this.tableRadio, + uid: this.security.username, + pwd: this.security.password + }; + return result; + } + } + return null; + } + setSecurity(security) { + if (security && security !== 'null') { + let value = JSON.parse(security); + this.mode = value.mode; + this.security.username = value.uid; + this.security.password = value.pwd; + this.security.clientId = value.clientId; + this.security.grant_type = value.gt; + if (value.uid || value.pwd || value.clientId) { + this.panelProperty?.open(); + } + this.security.certificateFileName = value.cert; + this.security.privateKeyFileName = value.pkey; + this.security.caCertificateFileName = value.caCert; + if (value.cert || value.pkey || value.caCert) { + this.panelCertificate?.open(); + } + } + } + keyDownStopPropagation(event) { + event.stopPropagation(); + } + isWithPolling() { + if (this.data.device?.type === _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.internal) { + return false; + } + if (this.appService.isClientApp || this.appService.isDemoApp) { + return false; + } + return true; + } + canEnable() { + if (this.isFuxaServer || this.data.device?.type === this.deviceType.internal) { + return false; + } + return true; + } + securityModeToString(mode) { + let secMode = _models_device__WEBPACK_IMPORTED_MODULE_4__.MessageSecurityMode; + let result = ''; + if (mode === secMode.NONE) { + this.translateService.get('device.security-none').subscribe(txt => { + result = txt; + }); + } else if (mode === secMode.SIGN) { + this.translateService.get('device.security-sign').subscribe(txt => { + result = txt; + }); + } else if (mode === secMode.SIGNANDENCRYPT) { + this.translateService.get('device.security-signandencrypt').subscribe(txt => { + result = txt; + }); + } + return result; + } + /** + * Open ODBC Browser dialog for database management + */ + onOpenOdbcBrowser() { + const dialogRef = this.dialog.open(_odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_5__.OdbcBrowserComponent, { + width: '90vw', + height: '90vh', + maxWidth: '1400px', + data: { + deviceId: this.data.device.id, + selectColumn: false + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.query) { + // Optional: Handle the returned query if needed + console.log('ODBC Browser closed with query:', result.query); + } + }); + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }, { + type: _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + panelProperty: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['panelProperty', { + static: false + }] + }], + panelCertificate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['panelCertificate', { + static: false + }] + }] + }; +}; +DevicePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-device-property', + template: _device_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_device_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService, _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, Object])], DevicePropertyComponent); + + +/***/ }), + +/***/ 89697: +/*!*******************************************************************************!*\ + !*** ./src/app/device/device-tag-selection/device-tag-selection.component.ts ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceTagSelectionComponent: () => (/* binding */ DeviceTagSelectionComponent) +/* harmony export */ }); +/* harmony import */ var _device_tag_selection_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device-tag-selection.component.html?ngResource */ 75698); +/* harmony import */ var _device_tag_selection_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./device-tag-selection.component.scss?ngResource */ 31683); +/* harmony import */ var _device_tag_selection_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_device_tag_selection_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _tag_property_tag_property_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../tag-property/tag-property.service */ 68750); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let DeviceTagSelectionComponent = class DeviceTagSelectionComponent { + dialogRef; + projectService; + tagPropertyService; + data; + table; + sort; + paginator; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_7__.MatLegacyTableDataSource([]); + nameFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormControl(); + addressFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormControl(); + deviceFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormControl(); + tags = []; + devices = []; + filteredValues = { + name: '', + address: '', + device: '' + }; + defColumns = ['toogle', 'name', 'address', 'device', 'select']; + deviceTagNotEditable = [_models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.MQTTclient, _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ODBC]; + constructor(dialogRef, projectService, tagPropertyService, data) { + this.dialogRef = dialogRef; + this.projectService = projectService; + this.tagPropertyService = tagPropertyService; + this.data = data; + this.loadDevicesTags(); + } + ngOnInit() { + this.nameFilter.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.takeUntil)(this.destroy$)).subscribe(nameFilterValue => { + this.filteredValues['name'] = nameFilterValue; + this.dataSource.filter = JSON.stringify(this.filteredValues); + }); + this.addressFilter.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.takeUntil)(this.destroy$)).subscribe(addressFilterValue => { + this.filteredValues['address'] = addressFilterValue; + this.dataSource.filter = JSON.stringify(this.filteredValues); + }); + this.deviceFilter.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.takeUntil)(this.destroy$)).subscribe(deviceFilterValue => { + this.filteredValues['device'] = deviceFilterValue; + this.dataSource.filter = JSON.stringify(this.filteredValues); + }); + this.dataSource.filterPredicate = this.customFilterPredicate(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + customFilterPredicate() { + const myFilterPredicate = (data, filter) => { + let searchString = JSON.parse(filter); + return data.name.toString().trim().toLowerCase().indexOf(searchString.name.toLowerCase()) !== -1 && (searchString.address && data.address && data.address?.toString().trim().toLowerCase().indexOf(searchString.address.toLowerCase()) !== -1 || !searchString.address) && data.device.toString().trim().toLowerCase().indexOf(searchString.device.toLowerCase()) !== -1; + }; + return myFilterPredicate; + } + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + onToogle(element) { + if (element.checked && !this.data.multiSelection) { + this.dataSource.data.forEach(e => { + if (e.id !== element.id) { + e.checked = false; + } + }); + } + } + onClearSelection() { + this.dataSource.data.forEach(e => { + e.checked = false; + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.variableId = null; + this.data.variablesId = []; + this.dataSource.data.forEach(e => { + if (e.checked) { + this.data.variableId = e.id; + this.data.variablesId.push(e.id); + } + }); + this.dialogRef.close(this.data); + } + onSelect(element, deviceName) { + this.data.deviceName = deviceName; + this.data.variableId = element.id; + this.dialogRef.close(this.data); + } + onAddDeviceTag(device) { + let newTag = new _models_device__WEBPACK_IMPORTED_MODULE_2__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_2__.TAG_PREFIX)); + if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.OPCUA) { + this.tagPropertyService.addTagsOpcUa(device).subscribe(result => { + this.loadDevicesTags(); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.BACnet) { + this.tagPropertyService.editTagPropertyBacnet(device).subscribe(result => { + this.loadDevicesTags(); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.WebAPI) { + this.tagPropertyService.editTagPropertyWebapi(device).subscribe(result => { + this.loadDevicesTags(); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.SiemensS7) { + this.tagPropertyService.editTagPropertyS7(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.FuxaServer) { + this.tagPropertyService.editTagPropertyServer(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ModbusRTU || device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ModbusTCP) { + this.tagPropertyService.editTagPropertyModbus(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.internal) { + this.tagPropertyService.editTagPropertyInternal(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.EthernetIP) { + this.tagPropertyService.editTagPropertyEthernetIp(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ADSclient) { + this.tagPropertyService.editTagPropertyADSclient(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.GPIO) { + this.tagPropertyService.editTagPropertyGpio(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.WebCam) { + this.tagPropertyService.editTagPropertyWebcam(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } else if (device.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.MELSEC) { + this.tagPropertyService.editTagPropertyMelsec(device, newTag, true).subscribe(result => { + this.loadDevicesTags(newTag, device.name); + }); + } + } + isDeviceTagEditable(type) { + return !this.deviceTagNotEditable.includes(type); + } + loadDevicesTags(newTag, deviceName) { + this.tags = []; + this.devices = Object.values(this.projectService.getDevices()); + if (this.devices) { + this.devices.forEach(device => { + if (this.data.deviceFilter && this.data.deviceFilter.indexOf(device.type) !== -1) { + // filtered device + } else if (device.tags) { + if (this.data.isHistorical) { + Object.values(device.tags).filter(t => t.daq.enabled).forEach(t => { + this.tags.push({ + id: t.id, + name: t.name, + address: t.address, + device: device.name, + checked: t.id === this.data.variableId, + error: null + }); + }); + } else { + Object.values(device.tags).forEach(t => { + this.tags.push({ + id: t.id, + name: t.name, + address: t.address, + device: device.name, + checked: t.id === this.data.variableId, + error: null + }); + }); + } + } + }); + } + this.dataSource.data = this.tags; + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + if (newTag && deviceName) { + this.onSelect({ + id: newTag.id + }, deviceName); + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _tag_property_tag_property_service__WEBPACK_IMPORTED_MODULE_5__.TagPropertyService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_7__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_12__.MatSort, { + static: false + }] + }], + paginator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: [_angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_13__.MatLegacyPaginator, { + static: false + }] + }] + }; +}; +DeviceTagSelectionComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_11__.Component)({ + selector: 'app-device-tag-selection', + template: _device_tag_selection_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_device_tag_selection_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _tag_property_tag_property_service__WEBPACK_IMPORTED_MODULE_5__.TagPropertyService, Object])], DeviceTagSelectionComponent); + + +/***/ }), + +/***/ 26270: +/*!********************************************!*\ + !*** ./src/app/device/device.component.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DeviceComponent: () => (/* binding */ DeviceComponent) +/* harmony export */ }); +/* harmony import */ var _device_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./device.component.html?ngResource */ 93562); +/* harmony import */ var _device_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./device.component.css?ngResource */ 28370); +/* harmony import */ var _device_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_device_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _device_list_device_list_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./device-list/device-list.component */ 15661); +/* harmony import */ var _device_map_device_map_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./device-map/device-map.component */ 21082); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../_models/device */ 15625); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_services/hmi.service */ 69578); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + +let DeviceComponent = class DeviceComponent { + router; + projectService; + hmiService; + deviceList; + deviceMap; + fileImportInput; + tplFileImportInput; + subscriptionLoad; + subscriptionDeviceChange; + subscriptionVariableChange; + askStatusTimer; + devicesViewMode = _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceViewModeType.devices; + devicesViewMap = _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceViewModeType.map; + devicesViewList = _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceViewModeType.list; + tagsViewMode = _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceViewModeType.tags; + showMode = this.devicesViewMap; + readonly = false; + reloadActive = false; + constructor(router, projectService, hmiService) { + this.router = router; + this.projectService = projectService; + this.hmiService = hmiService; + if (this.router.url.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_7__.DEVICE_READONLY) >= 0) { + this.readonly = true; + } + this.showMode = localStorage.getItem('@frango.devicesview') || this.devicesViewMap; + } + ngOnInit() { + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(res => { + this.deviceMap.loadCurrentProject(); + this.deviceList.mapTags(); + }); + this.subscriptionDeviceChange = this.hmiService.onDeviceChanged.subscribe(event => { + this.deviceMap.setDeviceStatus(event); + }); + this.subscriptionVariableChange = this.hmiService.onVariableChanged.subscribe(event => { + this.deviceList.updateDeviceValue(); + }); + this.askStatusTimer = setInterval(() => { + this.hmiService.askDeviceStatus(); + }, 10000); + this.hmiService.askDeviceStatus(); + } + ngOnDestroy() { + // this.checkToSave(); + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + if (this.subscriptionDeviceChange) { + this.subscriptionDeviceChange.unsubscribe(); + } + if (this.subscriptionVariableChange) { + this.subscriptionVariableChange.unsubscribe(); + } + } catch (e) {} + try { + clearInterval(this.askStatusTimer); + this.askStatusTimer = null; + } catch {} + } + show(mode) { + // this.checkToSave(); + this.showMode = mode; + if (this.showMode === this.tagsViewMode) { + this.deviceList.updateDeviceValue(); + try { + if (Object.values(this.deviceMap.devicesValue()).length > 0) { + this.deviceList.setSelectedDevice(this.deviceMap.devicesValue()[0]); + } + } catch (e) {} + } else { + localStorage.setItem('@frango.devicesview', this.showMode); + } + } + gotoDevices(flag) { + if (flag) { + if (this.showMode === this.devicesViewMap) { + this.show(this.devicesViewList); + } else { + this.show(this.devicesViewMap); + } + return; + } + let mode = localStorage.getItem('@frango.devicesview') || this.devicesViewMap; + this.show(mode); + } + gotoList(device) { + this.onReload(); + this.show(this.tagsViewMode); + this.deviceList.setSelectedDevice(device); + } + addItem() { + if (this.showMode === this.tagsViewMode) { + this.deviceList.onAddTag(); + } else if (this.showMode.startsWith(this.devicesViewMode)) { + this.deviceMap.addDevice(); + } + } + onReload() { + this.projectService.onRefreshProject(); + this.reloadActive = true; + setTimeout(() => { + this.reloadActive = false; + }, 1000); + } + onExport(type) { + try { + this.projectService.exportDevices(type); + } catch (err) { + console.error(err); + } + } + onImport() { + let ele = document.getElementById('devicesConfigFileUpload'); + ele.click(); + } + onImportTpl() { + let ele = document.getElementById('devicesConfigTplUpload'); + ele.click(); + } + /** + * @deprecated use onDevTplChangeListener + * open Project event file loaded + * @param event file resource + */ + onFileChangeListener(event) { + return this.onDevTplChangeListener(event, false); + } + /** + * open Project event file loaded + * @param event file resource + * @param isTemplate use template for import, if true, generate new device id and tag id + */ + onDevTplChangeListener(event, isTemplate) { + let input = event.target; + let reader = new FileReader(); + reader.onload = data => { + let devices; + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_8__.Utils.isJson(reader.result)) { + // JSON + devices = JSON.parse(reader.result.toString()); + } else { + // CSV + devices = _models_device__WEBPACK_IMPORTED_MODULE_4__.DevicesUtils.csvToDevices(reader.result.toString()); + } + //generate new id and filte fuxa + let importDev = []; + if (isTemplate) { + devices.forEach(device => { + if (device.type != _models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.FuxaServer) { + device.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_8__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_4__.DEVICE_PREFIX); + device.name = _helpers_utils__WEBPACK_IMPORTED_MODULE_8__.Utils.getShortGUID(device.name + '_', ''); + if (device.tags) { + let newTags = {}; + Object.keys(device.tags).forEach(key => { + const id = _helpers_utils__WEBPACK_IMPORTED_MODULE_8__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_4__.TAG_PREFIX); + //change tags key to new id + newTags[id] = device.tags[key]; + newTags[id].id = id; + }); + device.tags = newTags; + } + importDev.push(device); + } + }); + } + this.projectService.importDevices(isTemplate ? importDev : devices); + setTimeout(() => { + this.projectService.onRefreshProject(); + }, 2000); + }; + reader.onerror = function () { + let msg = 'Unable to read ' + input.files[0]; + // this.translateService.get('msg.project-load-error', {value: input.files[0]}).subscribe((txt: string) => { msg = txt }); + alert(msg); + }; + reader.readAsText(input.files[0]); + this.tplFileImportInput.nativeElement.value = null; + } + static ctorParameters = () => [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_9__.Router + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_6__.HmiService + }]; + static propDecorators = { + deviceList: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['devicelist', { + static: false + }] + }], + deviceMap: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['devicemap', { + static: false + }] + }], + fileImportInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['fileImportInput', { + static: false + }] + }], + tplFileImportInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['tplFileImportInput', { + static: false + }] + }] + }; +}; +DeviceComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-device', + template: _device_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_device_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_9__.Router, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_6__.HmiService])], DeviceComponent); + + +/***/ }), + +/***/ 23328: +/*!*************************************************************!*\ + !*** ./src/app/device/tag-options/tag-options.component.ts ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagOptionsComponent: () => (/* binding */ TagOptionsComponent) +/* harmony export */ }); +/* harmony import */ var _tag_options_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-options.component.html?ngResource */ 49294); +/* harmony import */ var _tag_options_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-options.component.scss?ngResource */ 10563); +/* harmony import */ var _tag_options_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_options_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_models/script */ 10846); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +class ScriptAndParam extends _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptParam { + scriptId; +} +let TagOptionsComponent = class TagOptionsComponent { + dialogRef; + fb; + data; + projectService; + formGroup; + scaleModeType = _models_device__WEBPACK_IMPORTED_MODULE_2__.TagScaleModeType; + scripts; + configedReadParams = {}; + configedWriteParams = {}; + subscriptionLoad; + constructor(dialogRef, fb, data, projectService) { + this.dialogRef = dialogRef; + this.fb = fb; + this.data = data; + this.projectService = projectService; + } + ngOnInit() { + this.loadScripts(); + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(res => { + this.loadScripts(); + }); + this.formGroup = this.fb.group({ + interval: [{ + value: 60, + disabled: true + }, [_angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.min(0)]], + changed: [{ + value: false, + disabled: true + }], + enabled: [false], + restored: [false], + format: [null, [_angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.min(0)]], + deadband: null, + scaleMode: 'undefined', + rawLow: null, + rawHigh: null, + scaledLow: null, + scaledHigh: null, + dateTimeFormat: null, + scaleRead: null, + scaleReadFunction: null, + scaleWriteFunction: null + }); + this.formGroup.controls.enabled.valueChanges.subscribe(enabled => { + if (enabled) { + this.formGroup.controls.interval.enable(); + this.formGroup.controls.changed.enable(); + } else { + this.formGroup.controls.interval.disable(); + this.formGroup.controls.changed.disable(); + } + }); + // check if edit a group + if (this.data.tags.length > 0) { + let enabled = { + value: null, + valid: true + }; + let changed = { + value: null, + valid: true + }; + let interval = { + value: null, + valid: true + }; + let restored = { + value: null, + valid: true + }; + let format = { + value: null, + valid: true + }; + let deadband = { + value: null, + valid: true + }; + let scaleMode = { + value: null, + valid: true + }; + let rawLow = { + value: null, + valid: true + }; + let rawHigh = { + value: null, + valid: true + }; + let scaledLow = { + value: null, + valid: true + }; + let scaledHigh = { + value: null, + valid: true + }; + let dateTimeFormat = { + value: null, + valid: true + }; + let scaleReadFunction = { + value: null, + valid: true + }; + //let scaleReadParams = { value: [], valid: true }; + let scaleWriteFunction = { + value: null, + valid: true + }; + //let scaleWriteParams = { value: null, valid: true }; + for (let i = 0; i < this.data.tags.length; i++) { + if (!this.data.tags[i].daq) { + continue; + } + let daq = this.data.tags[i].daq; + if (!enabled.value) { + enabled.value = daq.enabled; + } else if (enabled.value !== daq.enabled) { + enabled.valid = false; + } + if (!changed.value) { + changed.value = daq.changed; + } else if (changed.value !== daq.changed) { + changed.valid = false; + } + if (!restored.value) { + restored.value = daq.restored; + } else if (restored.value !== daq.restored) { + restored.valid = false; + } + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(interval.value)) { + interval.value = daq.interval; + } else if (interval.value !== daq.interval) { + interval.valid = false; + } + if (!format.value) { + format.value = this.data.tags[i].format; + } else if (format.value !== this.data.tags[i].format) { + format.valid = false; + } + if (!deadband.value) { + deadband.value = this.data.tags[i].deadband?.value; + } else if (deadband.value !== this.data.tags[i].deadband?.value) { + deadband.valid = false; + } + if (!scaleMode.value) { + scaleMode.value = this.data.tags[i].scale?.mode; + rawLow.value = this.data.tags[i].scale?.rawLow; + rawHigh.value = this.data.tags[i].scale?.rawHigh; + scaledLow.value = this.data.tags[i].scale?.scaledLow; + scaledHigh.value = this.data.tags[i].scale?.scaledHigh; + dateTimeFormat.value = this.data.tags[i].scale?.dateTimeFormat; + } else if (scaleMode.value !== this.data.tags[i].scale?.mode) { + scaleMode.valid = false; + } + if (!scaleReadFunction.value) { + scaleReadFunction.value = this.data.tags[i].scaleReadFunction; + } + let script = this.scripts.find(s => s.id === this.data.tags[i].scaleReadFunction); + if (this.data.tags[i].scaleReadParams) { + const tagParams = JSON.parse(this.data.tags[i].scaleReadParams); + const notValid = this.initializeScriptParams(script, tagParams, this.configedReadParams); + } + if (!scaleWriteFunction.value) { + scaleWriteFunction.value = this.data.tags[i].scaleWriteFunction; + } + script = this.scripts.find(s => s.id === this.data.tags[i].scaleWriteFunction); + if (this.data.tags[i].scaleWriteParams) { + const tagParams = JSON.parse(this.data.tags[i].scaleWriteParams); + const notValid = this.initializeScriptParams(script, tagParams, this.configedWriteParams); + } + } + let values = {}; + if (enabled.valid && enabled.value !== null) { + values = { + ...values, + enabled: enabled.value + }; + } + if (changed.valid && changed.value !== null) { + values = { + ...values, + changed: changed.value + }; + } + if (restored.valid && restored.value !== null) { + values = { + ...values, + restored: restored.value + }; + } + if (interval.valid && !_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(interval.value)) { + values = { + ...values, + interval: interval.value + }; + } + if (format.valid && format.value) { + values = { + ...values, + format: format.value + }; + } + if (deadband.valid && deadband.value) { + values = { + ...values, + deadband: deadband.value + }; + } + if (scaleMode.valid && scaleMode.value) { + values = { + ...values, + scaleMode: scaleMode.value, + rawLow: rawLow.value, + rawHigh: rawHigh.value, + scaledLow: scaledLow.value, + scaledHigh: scaledHigh.value, + dateTimeFormat: dateTimeFormat.value + }; + } + if (scaleReadFunction.valid && scaleReadFunction.value) { + values = { + ...values, + scaleReadFunction: scaleReadFunction.value + }; + } + if (scaleWriteFunction.valid && scaleWriteFunction.value) { + values = { + ...values, + scaleWriteFunction: scaleWriteFunction.value + }; + } + this.formGroup.patchValue(values); + if (this.data.device?.id === _models_device__WEBPACK_IMPORTED_MODULE_2__.FuxaServer.id) { + this.formGroup.controls.scaleMode.disable(); + } + this.formGroup.updateValueAndValidity(); + this.onCheckScaleMode(this.formGroup.value.scaleMode); + } + this.formGroup.controls.scaleMode.valueChanges.subscribe(value => { + this.onCheckScaleMode(value); + }); + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + onCheckScaleMode(value) { + switch (value) { + case 'linear': + this.formGroup.controls.rawLow.setValidators(_angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required); + this.formGroup.controls.rawHigh.setValidators(_angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required); + this.formGroup.controls.scaledLow.setValidators(_angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required); + this.formGroup.controls.scaledHigh.setValidators(_angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required); + break; + default: + this.formGroup.controls.rawLow.clearValidators(); + this.formGroup.controls.rawHigh.clearValidators(); + this.formGroup.controls.scaledLow.clearValidators(); + this.formGroup.controls.scaledHigh.clearValidators(); + break; + } + this.formGroup.controls.rawLow.updateValueAndValidity(); + this.formGroup.controls.rawHigh.updateValueAndValidity(); + this.formGroup.controls.scaledLow.updateValueAndValidity(); + this.formGroup.controls.scaledHigh.updateValueAndValidity(); + this.formGroup.updateValueAndValidity(); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + let readParamsStr; + if (this.configedReadParams[this.formGroup.value.scaleReadFunction]) { + readParamsStr = JSON.stringify(this.configedReadParams[this.formGroup.value.scaleReadFunction]); + } else { + readParamsStr = undefined; + } + let writeParamsStr; + if (this.configedWriteParams[this.formGroup.value.scaleWriteFunction]) { + writeParamsStr = JSON.stringify(this.configedWriteParams[this.formGroup.value.scaleWriteFunction]); + } else { + writeParamsStr = undefined; + } + this.dialogRef.close({ + daq: new _models_device__WEBPACK_IMPORTED_MODULE_2__.TagDaq(this.formGroup.value.enabled, this.formGroup.value.changed, this.formGroup.value.interval, this.formGroup.value.restored), + format: this.formGroup.value.format, + deadband: this.formGroup.value.deadband ? { + value: this.formGroup.value.deadband, + mode: _models_device__WEBPACK_IMPORTED_MODULE_2__.TagDeadbandModeType.absolute + } : undefined, + scale: this.formGroup.value.scaleMode !== 'undefined' ? { + mode: this.formGroup.value.scaleMode, + rawLow: this.formGroup.value.rawLow, + rawHigh: this.formGroup.value.rawHigh, + scaledLow: this.formGroup.value.scaledLow, + scaledHigh: this.formGroup.value.scaledHigh, + dateTimeFormat: this.formGroup.value.dateTimeFormat + } : null, + scaleReadFunction: this.formGroup.value.scaleReadFunction, + scaleReadParams: readParamsStr, + scaleWriteFunction: this.formGroup.value.scaleWriteFunction, + scaleWriteParams: writeParamsStr + }); + } + disableForm() { + return this.formGroup.invalid || this.paramsInValid(); + } + paramsInValid() { + if (this.formGroup.value.scaleReadFunction && (this.configedReadParams[this.formGroup.value.scaleReadFunction] ?? []).some(p => !p.value)) { + return true; + } + if (this.formGroup.value.scaleWriteFunction && (this.configedWriteParams[this.formGroup.value.scaleWriteFunction] ?? []).some(p => !p.value)) { + return true; + } + return false; + } + isFuxaServerTag() { + return this.data.device?.id === _models_device__WEBPACK_IMPORTED_MODULE_2__.FuxaServer.id; + } + loadScripts() { + //scripts that can be used to scale a tag must have the first parameter named "value" of + // type value and be + //run on the server + //if additional parameters are used they must be of type value and the value to pass + //must be provided in this form ///// + const filteredScripts = this.projectService.getScripts().filter(script => { + if (script.parameters.length > 0 && script.mode === _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptMode.SERVER) { + if (script.parameters[0].name !== 'value' || script.parameters[0].type !== _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptParamType.value) { + return false; + } + for (const param of script.parameters) { + if (param.type !== _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptParamType.value) { + return false; + } + } + return true; + } + return false; + }); + // get default param/value list for each script + for (const script of filteredScripts) { + const paramCopy = []; + //skip the first param, as it is the value to scale + for (let i = 1; i < script.parameters.length; i++) { + const pc = new ScriptAndParam(script.parameters[i].name, script.parameters[i].type); + pc.scriptId = script.id; + pc.value = 'value' in script.parameters[i] ? script.parameters[i].value : null; + paramCopy.push(pc); + } + this.configedReadParams[script.id] = paramCopy; + this.configedWriteParams[script.id] = paramCopy; + } + this.scripts = filteredScripts; + } + /** + * updates this.configedParams list with the previously saved list of param/values for + * the script. + * @param script + * @param tagParams + * @returns returns true if the param/value list no longer matches script param/value list, + * in which case the this.configedParams is not updated (default list will be used) + */ + initializeScriptParams(script, tagParams, toUpdate) { + if (script) { + // verify current params list match script params/values list + let parametersChanged = false; + if (tagParams.length !== script.parameters.length - 1) { + parametersChanged = true; + } else { + for (const [index, param] of script.parameters.entries()) { + if (index === 0) { + continue; // skip first param as it is for the tag value + } + + if (!tagParams.some(p => p.name === param.name)) { + parametersChanged = true; + break; + } + } + } + if (parametersChanged) { + return true; + } else { + // haven't changed, update the working list with the previously saved + // param/values + toUpdate[script.id] = tagParams; + return false; + } + } + return true; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormBuilder + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }]; +}; +TagOptionsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-tag-options', + template: _tag_options_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ChangeDetectionStrategy.OnPush, + styles: [(_tag_options_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormBuilder, Object, _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService])], TagOptionsComponent); + + +/***/ }), + +/***/ 74542: +/*!**********************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-adsclient/tag-property-edit-adsclient.component.ts ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditADSclientComponent: () => (/* binding */ TagPropertyEditADSclientComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_adsclient_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-adsclient.component.html?ngResource */ 13987); +/* harmony import */ var _tag_property_edit_adsclient_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-adsclient.component.scss?ngResource */ 66341); +/* harmony import */ var _tag_property_edit_adsclient_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_adsclient_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 72513); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let TagPropertyEditADSclientComponent = class TagPropertyEditADSclientComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.AdsClientTagType; + existingNames = []; + error; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.Subject(); + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required, this.validateName()]], + tagType: [this.data.tag.type, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagAddress: [this.data.tag.address, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagDescription: [this.data.tag.description] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); + } + validateName() { + return control => { + this.error = null; + if (this.existingNames.indexOf(control.value) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditADSclientComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-adsclient', + template: _tag_property_edit_adsclient_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_adsclient_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, Object])], TagPropertyEditADSclientComponent); + + +/***/ }), + +/***/ 37409: +/*!****************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-bacnet/tag-property-edit-bacnet.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditBacnetComponent: () => (/* binding */ TagPropertyEditBacnetComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_bacnet_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-bacnet.component.html?ngResource */ 28537); +/* harmony import */ var _tag_property_edit_bacnet_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-bacnet.component.css?ngResource */ 67227); +/* harmony import */ var _tag_property_edit_bacnet_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_bacnet_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/hmi.service */ 69578); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gui-helpers/treetable/treetable.component */ 10236); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let TagPropertyEditBacnetComponent = class TagPropertyEditBacnetComponent { + hmiService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + treetable; + config = { + height: '640px', + width: '1000px' + }; + constructor(hmiService, dialogRef, data) { + this.hmiService = hmiService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.hmiService.onDeviceBrowse.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.takeUntil)(this.destroy$)).subscribe(values => { + if (this.data.device.id === values.device) { + if (values.error) { + this.addError(values.node, values.error); + } else { + this.addNodes(values.node, values.result); + } + } + }); + this.hmiService.onDeviceNodeAttribute.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.takeUntil)(this.destroy$)).subscribe(values => { + if (this.data.device.id === values.device) { + if (values.error) { + // this.addError(values.node, values.error); + } else if (values.node) { + if (values.node.attribute[14]) { + // datatype + values.node.type = values.node.attribute[14]; + } + this.treetable.setNodeProperty(values.node, this.attributeToString(values.node.attribute)); + } + } + }); + this.queryNext(null); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + queryNext(node) { + let n = node ? { + id: node.id + } : null; + if (node) { + n['parent'] = node.parent ? node.parent.id : null; + } + this.hmiService.askDeviceBrowse(this.data.device.id, n); + } + addNodes(parent, nodes) { + if (nodes) { + let tempTags = Object.values(this.data.device.tags); + nodes.forEach(n => { + let node = new _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.Node(n.id, n.name); + node.class = n.class; + node.property = this.getProperty(n); + node.class = _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.Node.strToType(n.class); + node.type = n.type; + var typeText = Object.values(_models_device__WEBPACK_IMPORTED_MODULE_3__.BACnetObjectType)[n.type]; + if (typeText) { + node.property = typeText; + } + let enabled = true; + if (node.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.NodeType.Variable) { + const selected = tempTags.find(t => t.address === n.id); + if (selected) { + enabled = false; + } + } + this.treetable.addNode(node, parent, enabled, false); + }); + this.treetable.update(); + } + } + attributeToString(attribute) { + let result = ''; + if (attribute) { + Object.values(attribute).forEach(x => { + if (result.length) { + result += ', '; + } + result += x; + }); + } + return result; + } + getProperty(n) { + if (n.class === 'Object') { + // Object + return ''; + } else if (n.class === 'Variable') { + return 'Variable'; + } else if (n.class === 'Method') { + return 'Method'; + } + return ''; + } + addError(parent, error) {} + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.nodes = []; + Object.keys(this.treetable.nodes).forEach(key => { + let n = this.treetable.nodes[key]; + if (n.checked && n.enabled && (n.type || !n.childs || n.childs.length == 0)) { + this.data.nodes.push(this.treetable.nodes[key]); + } + }); + this.result.emit(this.data); + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output + }], + treetable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewChild, + args: [_gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.TreetableComponent, { + static: false + }] + }] + }; +}; +TagPropertyEditBacnetComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-tag-property-edit-bacnet', + template: _tag_property_edit_bacnet_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_bacnet_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, Object])], TagPropertyEditBacnetComponent); + + +/***/ }), + +/***/ 89257: +/*!************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-ethernetip/tag-property-edit-ethernetip.component.ts ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditEthernetipComponent: () => (/* binding */ TagPropertyEditEthernetipComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_ethernetip_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-ethernetip.component.html?ngResource */ 90828); +/* harmony import */ var _tag_property_edit_ethernetip_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-ethernetip.component.scss?ngResource */ 87498); +/* harmony import */ var _tag_property_edit_ethernetip_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_ethernetip_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TagPropertyEditEthernetipComponent = class TagPropertyEditEthernetipComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + formGroup; + existingNames = []; + error; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.Subject(); + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.validateName()]], + tagAddress: [this.data.tag.address, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required]], + tagDescription: [this.data.tag.description] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }] + }; +}; +TagPropertyEditEthernetipComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-tag-property-edit-ethernetip', + template: _tag_property_edit_ethernetip_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_ethernetip_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], TagPropertyEditEthernetipComponent); + + +/***/ }), + +/***/ 43002: +/*!************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-gpio/tag-property-edit-gpio.component.ts ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditGpioComponent: () => (/* binding */ TagPropertyEditGpioComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_gpio_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-gpio.component.html?ngResource */ 10833); +/* harmony import */ var _tag_property_edit_gpio_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-gpio.component.scss?ngResource */ 91302); +/* harmony import */ var _tag_property_edit_gpio_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_gpio_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TagPropertyEditGpioComponent = class TagPropertyEditGpioComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + directionType = _models_device__WEBPACK_IMPORTED_MODULE_2__.GpioDirectionType; + edgeType = _models_device__WEBPACK_IMPORTED_MODULE_2__.GpioEdgeType; + existingNames = []; + error; + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.validateName()]], + tagAddress: [this.data.tag.address, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required]], + tagDescription: [this.data.tag.description], + tagDirection: [this.data.tag.direction, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagEdge: [this.data.tag.edge] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + GpioDirectionType = _models_device__WEBPACK_IMPORTED_MODULE_2__.GpioDirectionType; + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditGpioComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-gpio', + template: _tag_property_edit_gpio_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_gpio_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], TagPropertyEditGpioComponent); + + +/***/ }), + +/***/ 84583: +/*!********************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-internal/tag-property-edit-internal.component.ts ***! + \********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditInternalComponent: () => (/* binding */ TagPropertyEditInternalComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_internal_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-internal.component.html?ngResource */ 80691); +/* harmony import */ var _tag_property_edit_internal_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-internal.component.scss?ngResource */ 11808); +/* harmony import */ var _tag_property_edit_internal_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_internal_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TagPropertyEditInternalComponent = class TagPropertyEditInternalComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.ServerTagType; + existingNames = []; + error; + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.validateName()]], + tagType: [this.data.tag.type], + tagInit: [this.data.tag.init], + tagDescription: [this.data.tag.description] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditInternalComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-internal', + template: _tag_property_edit_internal_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_internal_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], TagPropertyEditInternalComponent); + + +/***/ }), + +/***/ 953: +/*!****************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-melsec/tag-property-edit-melsec.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditMelsecComponent: () => (/* binding */ TagPropertyEditMelsecComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_melsec_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-melsec.component.html?ngResource */ 47284); +/* harmony import */ var _tag_property_edit_melsec_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-melsec.component.scss?ngResource */ 69521); +/* harmony import */ var _tag_property_edit_melsec_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_melsec_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let TagPropertyEditMelsecComponent = class TagPropertyEditMelsecComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.MelsecTagType; + existingNames = []; + error; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.Subject(); + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required, this.validateName()]], + tagType: [this.data.tag.type, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagAddress: [this.data.tag.address, [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required]], + tagDescription: [this.data.tag.description] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditMelsecComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-melsec', + template: _tag_property_edit_melsec_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_melsec_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, Object])], TagPropertyEditMelsecComponent); + + +/***/ }), + +/***/ 67344: +/*!****************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-modbus/tag-property-edit-modbus.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditModbusComponent: () => (/* binding */ TagPropertyEditModbusComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_modbus_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-modbus.component.html?ngResource */ 44261); +/* harmony import */ var _tag_property_edit_modbus_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-modbus.component.scss?ngResource */ 21044); +/* harmony import */ var _tag_property_edit_modbus_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_modbus_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let TagPropertyEditModbusComponent = class TagPropertyEditModbusComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.ModbusTagType; + memAddress = { + 'Coil Status (Read/Write 000001-065536)': '000000', + 'Digital Inputs (Read 100001-165536)': '100000', + 'Input Registers (Read 300001-365536)': '300000', + 'Holding Registers (Read/Write 400001-465535)': '400000' + }; + existingNames = []; + error; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.Subject(); + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required, this.validateName()]], + tagType: [this.data.tag.type, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagAddress: [this.data.tag.address, [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.min(0)]], + tagMemoryAddress: [this.data.tag.memaddress, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.Validators.required], + tagDescription: [this.data.tag.description], + tagDivisor: [this.data.tag.divisor] + }); + this.formGroup.controls.tagMemoryAddress.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(memaddress => { + this.formGroup.controls.tagType.enable(); + if (!memaddress) { + this.formGroup.controls.tagType.disable(); + } else if (memaddress === '000000' || memaddress === '100000') { + this.formGroup.patchValue({ + tagType: _models_device__WEBPACK_IMPORTED_MODULE_2__.ModbusTagType.Bool + }); + this.formGroup.controls.tagType.disable(); + } + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditModbusComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-modbus', + template: _tag_property_edit_modbus_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_modbus_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, Object])], TagPropertyEditModbusComponent); + + +/***/ }), + +/***/ 91235: +/*!**************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-opcua/tag-property-edit-opcua.component.ts ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditOpcuaComponent: () => (/* binding */ TagPropertyEditOpcuaComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_opcua_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-opcua.component.html?ngResource */ 76429); +/* harmony import */ var _tag_property_edit_opcua_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-opcua.component.scss?ngResource */ 12788); +/* harmony import */ var _tag_property_edit_opcua_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_opcua_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/hmi.service */ 69578); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gui-helpers/treetable/treetable.component */ 10236); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/forms */ 28849); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let TagPropertyEditOpcuaComponent = class TagPropertyEditOpcuaComponent { + fb; + hmiService; + dialogRef; + data; + formGroup; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + treetable; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_3__.OpcUaTagType; + config = { + height: '640px', + width: '1000px' + }; + constructor(fb, hmiService, dialogRef, data) { + this.fb = fb; + this.hmiService = hmiService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + if (this.data.tag) { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.Validators.required], + tagName: [this.data.tag.name, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.Validators.required], + tagType: [this.data.tag.type], + tagDescription: [this.data.tag.description] + }); + } else { + this.hmiService.onDeviceBrowse.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.takeUntil)(this.destroy$)).subscribe(values => { + if (this.data.device.id === values.device) { + if (values.error) { + this.addError(values.node, values.error); + } else { + this.addNodes(values.node, values.result); + } + } + }); + this.hmiService.onDeviceNodeAttribute.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.takeUntil)(this.destroy$)).subscribe(values => { + if (this.data.device.id === values.device) { + if (values.error) { + // this.addError(values.node, values.error); + } else if (values.node) { + if (values.node.attribute[14]) { + // datatype + values.node.type = values.node.attribute[14]; + } + this.treetable.setNodeProperty(values.node, this.attributeToString(values.node.attribute)); + } + } + }); + this.queryNext(null); + } + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + queryNext(node) { + let n = node ? { + id: node.id + } : null; + if (node) { + n['parent'] = node.parent ? node.parent.id : null; + } + this.hmiService.askDeviceBrowse(this.data.device.id, n); + } + addNodes(parent, nodes) { + if (nodes) { + let tempTags = Object.values(this.data.device.tags); + nodes.forEach(n => { + let node = new _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.Node(n.id, n.name); + node.class = n.class; + node.property = this.getProperty(n); + let enabled = true; + if (node.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.NodeType.Variable) { + const selected = tempTags.find(t => t.address === n.id); + if (selected) { + enabled = false; + } + } + this.treetable.addNode(node, parent, enabled, false); + if (node.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.NodeType.Variable) { + this.hmiService.askNodeAttributes(this.data.device.id, n); + } + }); + this.treetable.update(); + } + } + attributeToString(attribute) { + let result = ''; + if (attribute) { + Object.values(attribute).forEach(x => { + if (result.length) { + result += ', '; + } + result += x; + }); + } + return result; + } + getProperty(n) { + if (n.class === 'Object') { + // Object + return ''; + } else if (n.class === 'Variable') { + return 'Variable'; + } else if (n.class === 'Method') { + return 'Method'; + } + return ''; + } + addError(parent, error) {} + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.data.tag) { + this.result.emit(this.formGroup.getRawValue()); + } else { + this.data.nodes = []; + Object.keys(this.treetable.nodes).forEach(key => { + let n = this.treetable.nodes[key]; + if (n.checked && n.enabled && (n.type || !n.childs || n.childs.length == 0)) { + this.data.nodes.push(this.treetable.nodes[key]); + } + }); + this.result.emit(this.data); + } + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_7__.UntypedFormBuilder + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output + }], + treetable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewChild, + args: [_gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_4__.TreetableComponent, { + static: false + }] + }] + }; +}; +TagPropertyEditOpcuaComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-tag-property-edit-opcua', + template: _tag_property_edit_opcua_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_opcua_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_7__.UntypedFormBuilder, _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef, Object])], TagPropertyEditOpcuaComponent); + + +/***/ }), + +/***/ 42771: +/*!********************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-s7/tag-property-edit-s7.component.ts ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditS7Component: () => (/* binding */ TagPropertyEditS7Component) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_s7_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-s7.component.html?ngResource */ 88789); +/* harmony import */ var _tag_property_edit_s7_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-s7.component.scss?ngResource */ 40950); +/* harmony import */ var _tag_property_edit_s7_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_s7_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TagPropertyEditS7Component = class TagPropertyEditS7Component { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.TagType; + existingNames = []; + error; + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.validateName()]], + tagType: [this.data.tag.type, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagAddress: [this.data.tag.address, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagDescription: [this.data.tag.description] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditS7Component = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-s7', + template: _tag_property_edit_s7_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_s7_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], TagPropertyEditS7Component); + + +/***/ }), + +/***/ 35048: +/*!****************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-server/tag-property-edit-server.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditServerComponent: () => (/* binding */ TagPropertyEditServerComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_server_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-server.component.html?ngResource */ 84327); +/* harmony import */ var _tag_property_edit_server_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-server.component.scss?ngResource */ 53808); +/* harmony import */ var _tag_property_edit_server_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_server_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TagPropertyEditServerComponent = class TagPropertyEditServerComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.ServerTagType; + existingNames = []; + error; + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.validateName()]], + tagType: [this.data.tag.type, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagInit: [this.data.tag.init], + tagDescription: [this.data.tag.description] + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + validateName() { + return control => { + this.error = null; + const name = control?.value; + if (this.existingNames.indexOf(name) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + if (name?.includes('@')) { + return { + name: this.translateService.instant('msg.device-tag-invalid-char') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditServerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-server', + template: _tag_property_edit_server_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_server_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], TagPropertyEditServerComponent); + + +/***/ }), + +/***/ 89064: +/*!****************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-webapi/tag-property-edit-webapi.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyEditWebapiComponent: () => (/* binding */ TagPropertyEditWebapiComponent) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_webapi_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-webapi.component.html?ngResource */ 30677); +/* harmony import */ var _tag_property_edit_webapi_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-webapi.component.css?ngResource */ 15188); +/* harmony import */ var _tag_property_edit_webapi_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_webapi_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/hmi.service */ 69578); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gui-helpers/treetable/treetable.component */ 10236); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let TagPropertyEditWebapiComponent = class TagPropertyEditWebapiComponent { + hmiService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + treetable; + config = { + height: '640px', + width: '1000px', + type: 'todefine' + }; + constructor(hmiService, dialogRef, data) { + this.hmiService = hmiService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.hmiService.onDeviceWebApiRequest.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.takeUntil)(this.destroy$)).subscribe(res => { + if (res.result) { + this.addTreeNodes(res.result); + this.treetable.update(false); + } + }); + this.hmiService.askWebApiProperty(this.data.device.property); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + queryNext(node) { + let n = node ? { + id: node.id + } : null; + if (node) { + n['parent'] = node.parent ? node.parent.id : null; + } + this.hmiService.askDeviceBrowse(this.data.device.id, n); + } + addTreeNodes(nodes, id = '', parent = null) { + let nodeId = id; + let nodeName = id; + if (parent && parent.id) { + nodeId = parent.id + ':' + nodeId; + } + let node = new _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.Node(nodeId, nodeName); + node.parent = parent; + if (Array.isArray(nodes)) { + // nodeId = nodeId + '[]'; + node.class = _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Array; + node.setToDefine(); + node.expanded = true; + this.treetable.addNode(node, parent, true); + let idx = 0; + for (var n in nodes) { + this.addTreeNodes(nodes[n], '[' + idx++ + ']', node); + } + } else if (nodes && typeof nodes === 'object') { + node.expanded = true; + node.class = _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Object; + this.treetable.addNode(node, parent, true); + for (var n in nodes) { + this.addTreeNodes(nodes[n], n, node); + if (parent) { + parent.addToDefine(n); + } + } + } else { + node.expandable = false; + node.class = _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Variable; + node.childs = []; + node.property = nodes; + let enabled = true; + const selected = Object.values(this.data.device.tags).find(t => t.address === nodeId); + if (node.parent && node.parent.parent && node.parent.parent.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Array) { + node.class = _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Item; + if (!node.parent.parent.todefine.id && this.data.device.tags[nodeId] && this.data.device.tags[nodeId].options) { + node.parent.parent.todefine.id = this.data.device.tags[nodeId].options.selid; + node.parent.parent.todefine.value = this.data.device.tags[nodeId].options.selval; + } + } else if (selected) { + enabled = false; + } + this.treetable.addNode(node, parent, enabled); + } + } + getSelectedTreeNodes(nodes, defined) { + let result = []; + for (let key in nodes) { + let n = nodes[key]; + if (n.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Array && n.todefine && n.todefine.id && n.todefine.value) { + let arrayResult = this.getSelectedTreeNodes(n.childs, n.todefine); + for (let ak in arrayResult) { + result.push(arrayResult[ak]); + } + } else if (n.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Object && defined && defined.id && defined.value) { + // search defined attributes + let childId = null, + childValue = null; + for (let childKey in n.childs) { + let child = n.childs[childKey]; + if (child.text === defined.id) { + childId = child; + } else if (child.text === defined.value) { + childValue = child; + } + } + if (childId && childValue) { + let objNode = new _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.Node(childId.id, childId.property); // node array element (id: id:id, text: current id value) + objNode.class = _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Reference; // to check + objNode.property = childValue.id; // value:id + objNode.todefine = { + selid: childId.text, + selval: childValue.text + }; + objNode.type = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getType(childValue.property); + objNode.checked = true; + objNode.enabled = n.enabled; + const exist = Object.values(this.data.device.tags).find(tag => tag.address === objNode.id && tag.memaddress === objNode.property); + if (exist) { + objNode.enabled = false; + } + result.push(objNode); + } + } else if (n.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.NodeType.Variable && n.checked) { + let objNode = new _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.Node(n.id, n.text); + objNode.type = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getType(n.property); + objNode.checked = n.checked; + objNode.enabled = n.enabled; + result.push(objNode); + } + } + return result; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.nodes = []; + let result = this.getSelectedTreeNodes(Object.values(this.treetable.nodes), null); + result.forEach(n => { + if (n.checked && n.enabled) { + this.data.nodes.push(n); + } + }); + this.result.emit(this.data); + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output + }], + treetable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewChild, + args: [_gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_3__.TreetableComponent, { + static: false + }] + }] + }; +}; +TagPropertyEditWebapiComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-tag-property-edit-webapi', + template: _tag_property_edit_webapi_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_webapi_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, Object])], TagPropertyEditWebapiComponent); + + +/***/ }), + +/***/ 4497: +/*!****************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-webcam/tag-property-edit-webcam.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ OutputType: () => (/* binding */ OutputType), +/* harmony export */ TagPropertyEditWebcamComponent: () => (/* binding */ TagPropertyEditWebcamComponent), +/* harmony export */ WebcamCallbackReturnType: () => (/* binding */ WebcamCallbackReturnType) +/* harmony export */ }); +/* harmony import */ var _tag_property_edit_webcam_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tag-property-edit-webcam.component.html?ngResource */ 96091); +/* harmony import */ var _tag_property_edit_webcam_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tag-property-edit-webcam.component.scss?ngResource */ 4462); +/* harmony import */ var _tag_property_edit_webcam_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tag_property_edit_webcam_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TagPropertyEditWebcamComponent = class TagPropertyEditWebcamComponent { + fb; + translateService; + dialogRef; + data; + result = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + formGroup; + tagType = _models_device__WEBPACK_IMPORTED_MODULE_2__.ServerTagType; + outputType = OutputType; + callbackReturnType = WebcamCallbackReturnType; + existingNames = []; + error; + constructor(fb, translateService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + deviceName: [this.data.device.name, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required], + tagName: [this.data.tag.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.validateName()]], + tagAddress: [this.data.tag.address], + tagType: [this.data.tag.type], + tagInit: [this.data.tag.init], + tagDescription: [this.data.tag.description], + tagOptions: this.fb.group({ + width: this.data.tag.options?.width || 1280, + height: this.data.tag.options?.height || 720, + frames: this.data.tag.options?.frames || 60, + quality: this.data.tag.options?.quality || 100, + output: this.data.tag.options?.output || OutputType.jpeg, + callbackReturn: this.data.tag.options?.callbackReturn || WebcamCallbackReturnType.location + }) + }); + this.formGroup.updateValueAndValidity(); + Object.keys(this.data.device.tags).forEach(key => { + let tag = this.data.device.tags[key]; + if (tag.id) { + if (tag.id !== this.data.tag.id) { + this.existingNames.push(tag.name); + } + } else if (tag.name !== this.data.tag.name) { + this.existingNames.push(tag.name); + } + }); + } + validateName() { + return control => { + this.error = null; + if (this.existingNames.indexOf(control.value) !== -1) { + return { + name: this.translateService.instant('msg.device-tag-exist') + }; + } + return null; + }; + } + onNoClick() { + this.result.emit(); + } + onOkClick() { + this.result.emit(this.formGroup.getRawValue()); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + result: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +TagPropertyEditWebcamComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tag-property-edit-internal', + template: _tag_property_edit_webcam_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tag_property_edit_webcam_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], TagPropertyEditWebcamComponent); + +var WebcamCallbackReturnType; +(function (WebcamCallbackReturnType) { + WebcamCallbackReturnType["location"] = "location"; + // buffer = 'buffer', not support now + WebcamCallbackReturnType["base64"] = "base64"; +})(WebcamCallbackReturnType || (WebcamCallbackReturnType = {})); +var OutputType; +(function (OutputType) { + OutputType["jpeg"] = "jpeg"; + OutputType["png"] = "png"; +})(OutputType || (OutputType = {})); + +/***/ }), + +/***/ 68750: +/*!*************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property.service.ts ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagPropertyService: () => (/* binding */ TagPropertyService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _tag_property_edit_s7_tag_property_edit_s7_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tag-property-edit-s7/tag-property-edit-s7.component */ 42771); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _tag_property_edit_server_tag_property_edit_server_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tag-property-edit-server/tag-property-edit-server.component */ 35048); +/* harmony import */ var _tag_property_edit_modbus_tag_property_edit_modbus_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tag-property-edit-modbus/tag-property-edit-modbus.component */ 67344); +/* harmony import */ var _tag_property_edit_internal_tag_property_edit_internal_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./tag-property-edit-internal/tag-property-edit-internal.component */ 84583); +/* harmony import */ var _tag_property_edit_opcua_tag_property_edit_opcua_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tag-property-edit-opcua/tag-property-edit-opcua.component */ 91235); +/* harmony import */ var _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../gui-helpers/treetable/treetable.component */ 10236); +/* harmony import */ var _tag_property_edit_bacnet_tag_property_edit_bacnet_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tag-property-edit-bacnet/tag-property-edit-bacnet.component */ 37409); +/* harmony import */ var _tag_property_edit_webapi_tag_property_edit_webapi_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./tag-property-edit-webapi/tag-property-edit-webapi.component */ 89064); +/* harmony import */ var _tag_property_edit_ethernetip_tag_property_edit_ethernetip_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./tag-property-edit-ethernetip/tag-property-edit-ethernetip.component */ 89257); +/* harmony import */ var _tag_property_edit_adsclient_tag_property_edit_adsclient_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./tag-property-edit-adsclient/tag-property-edit-adsclient.component */ 74542); +/* harmony import */ var _topic_property_topic_property_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../topic-property/topic-property.component */ 5885); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _tag_property_edit_gpio_tag_property_edit_gpio_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./tag-property-edit-gpio/tag-property-edit-gpio.component */ 43002); +/* harmony import */ var _tag_property_edit_webcam_tag_property_edit_webcam_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./tag-property-edit-webcam/tag-property-edit-webcam.component */ 4497); +/* harmony import */ var _tag_property_edit_melsec_tag_property_edit_melsec_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tag-property-edit-melsec/tag-property-edit-melsec.component */ 953); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + + + + + + + +let TagPropertyService = class TagPropertyService { + dialog; + translateService; + toastService; + projectService; + constructor(dialog, translateService, toastService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.toastService = toastService; + this.projectService = projectService; + } + editTagPropertyS7(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_s7_tag_property_edit_s7_component__WEBPACK_IMPORTED_MODULE_2__.TagPropertyEditS7Component, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.type = result.tagType; + tag.address = result.tagAddress; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyServer(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_server_tag_property_edit_server_component__WEBPACK_IMPORTED_MODULE_4__.TagPropertyEditServerComponent, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.type = result.tagType; + tag.init = result.tagInit; + tag.value = result.tagInit; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyModbus(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_modbus_tag_property_edit_modbus_component__WEBPACK_IMPORTED_MODULE_5__.TagPropertyEditModbusComponent, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.type = result.tagType; + tag.address = result.tagAddress; + tag.memaddress = result.tagMemoryAddress; + tag.divisor = result.tagDivisor; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyInternal(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_internal_tag_property_edit_internal_component__WEBPACK_IMPORTED_MODULE_6__.TagPropertyEditInternalComponent, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.type = result.tagType; + tag.init = result.tagInit; + tag.value = result.tagInit; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyEthernetIp(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_ethernetip_tag_property_edit_ethernetip_component__WEBPACK_IMPORTED_MODULE_11__.TagPropertyEditEthernetipComponent, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.address = result.tagAddress; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + addTagsOpcUa(device, tagsMap) { + let dialogRef = this.dialog.open(_tag_property_edit_opcua_tag_property_edit_opcua_component__WEBPACK_IMPORTED_MODULE_7__.TagPropertyEditOpcuaComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + device: device + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + result?.nodes.forEach(n => { + let tag = new _models_device__WEBPACK_IMPORTED_MODULE_0__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_0__.TAG_PREFIX)); + tag.name = n.text; + tag.label = n.text; + tag.type = n.type; + tag.address = n.id; + this.checkToAdd(tag, result.device); + if (tagsMap) { + tagsMap[tag.id] = tag; + } + }); + this.projectService.setDeviceTags(device); + dialogRef.close(); + return result; + })); + } + editTagPropertyOpcUa(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_opcua_tag_property_edit_opcua_component__WEBPACK_IMPORTED_MODULE_7__.TagPropertyEditOpcuaComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + device: device, + tag: tagToEdit + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.type = result.tagType; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyBacnet(device, tagsMap) { + let dialogRef = this.dialog.open(_tag_property_edit_bacnet_tag_property_edit_bacnet_component__WEBPACK_IMPORTED_MODULE_9__.TagPropertyEditBacnetComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + device: device + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + result?.nodes.forEach(n => { + let tag = new _models_device__WEBPACK_IMPORTED_MODULE_0__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_0__.TAG_PREFIX)); + tag.name = n.text; + tag.label = n.text; + tag.type = n.type; + tag.address = n.id; + tag.label = n.text; + tag.memaddress = n.parent?.id; + this.checkToAdd(tag, result.device); + if (tagsMap) { + tagsMap[tag.id] = tag; + } + }); + this.projectService.setDeviceTags(device); + dialogRef.close(); + return result; + })); + } + editTagPropertyWebapi(device, tagsMap) { + let dialogRef = this.dialog.open(_tag_property_edit_webapi_tag_property_edit_webapi_component__WEBPACK_IMPORTED_MODULE_10__.TagPropertyEditWebapiComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + device: device + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + result?.nodes.forEach(n => { + let tag = new _models_device__WEBPACK_IMPORTED_MODULE_0__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_0__.TAG_PREFIX)); + tag.name = n.text; + tag.label = n.text; + tag.type = n.type; + tag.label = n.text; + if (n.class === _gui_helpers_treetable_treetable_component__WEBPACK_IMPORTED_MODULE_8__.NodeType.Reference) { + tag.memaddress = n.property; // in memaddress save the address of the value + tag.options = n.todefine; // save the id and value in text to set by select list + tag.type = n.type; + } + tag.address = n.id; + this.checkToAdd(tag, result.device); + if (tagsMap) { + tagsMap[tag.id] = tag; + } + }); + this.projectService.setDeviceTags(device); + dialogRef.close(); + return result; + })); + } + editTagPropertyMqtt(device, topic, tagsMap, callbackModify) { + let dialogRef = this.dialog.open(_topic_property_topic_property_component__WEBPACK_IMPORTED_MODULE_13__.TopicPropertyComponent, { + disableClose: true, + panelClass: 'dialog-property', + data: { + device: device, + topic: topic, + devices: this.projectService.getServerDevices() + }, + position: { + top: '60px' + } + }); + dialogRef.componentInstance.invokeSubscribe = (oldtopic, newtopics, sendToProjectDevice = true) => this.addTopicSubscription(device, oldtopic, newtopics, tagsMap, sendToProjectDevice, callbackModify); + dialogRef.componentInstance.invokePublish = (oldtopic, newtopic) => this.addTopicToPublish(device, oldtopic, newtopic, tagsMap, callbackModify); + dialogRef.afterClosed().subscribe(); + } + editTagPropertyADSclient(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_adsclient_tag_property_edit_adsclient_component__WEBPACK_IMPORTED_MODULE_12__.TagPropertyEditADSclientComponent, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.address = result.tagAddress; + tag.type = result.tagType; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyGpio(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_gpio_tag_property_edit_gpio_component__WEBPACK_IMPORTED_MODULE_14__.TagPropertyEditGpioComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + device: device, + tag: tagToEdit + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.type = result.tagType; + tag.init = result.tagInit; + tag.value = result.tagInit; + tag.description = result.tagDescription; + tag.address = result.tagAddress; + tag.direction = result.tagDirection; + tag.edge = result.tagEdge; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyWebcam(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_webcam_tag_property_edit_webcam_component__WEBPACK_IMPORTED_MODULE_15__.TagPropertyEditWebcamComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + device: device, + tag: tagToEdit + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.type = _models_device__WEBPACK_IMPORTED_MODULE_0__.ServerTagType.string; + tag.init = result.tagInit; + tag.value = result.tagInit; + tag.description = result.tagDescription; + tag.address = result.tagAddress; + tag.options = result.tagOptions; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + editTagPropertyMelsec(device, tag, checkToAdd) { + let oldTagId = tag.id; + let tagToEdit = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.clone(tag); + let dialogRef = this.dialog.open(_tag_property_edit_melsec_tag_property_edit_melsec_component__WEBPACK_IMPORTED_MODULE_16__.TagPropertyEditMelsecComponent, { + disableClose: true, + data: { + device: device, + tag: tagToEdit + }, + position: { + top: '60px' + } + }); + return dialogRef.componentInstance.result.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_17__.map)(result => { + if (result) { + tag.name = result.tagName; + tag.address = result.tagAddress; + tag.type = result.tagType; + tag.description = result.tagDescription; + if (checkToAdd) { + this.checkToAdd(tag, device); + } else if (tag.id !== oldTagId) { + //remove old tag device reference + delete device.tags[oldTagId]; + this.checkToAdd(tag, device); + } + this.projectService.setDeviceTags(device); + } + dialogRef.close(); + return result; + })); + } + checkToAdd(tag, device, overwrite = false) { + let exist = false; + Object.keys(device.tags).forEach(key => { + if (device.tags[key].id) { + if (device.tags[key].id === tag.id) { + exist = true; + } + } else if (device.tags[key].name === tag.name) { + exist = true; + } + }); + if (!exist) { + device.tags[tag.id] = tag; + } + } + formatAddress(adr, mem) { + let result = adr; + if (mem) { + result += '[' + mem + ']'; + } + return result; + } + addTopicSubscription(device, oldTopic, topics, tagsMap, sendToProjectDevice, callbackModify) { + if (topics) { + let existNames = Object.values(device.tags).filter(t => { + if (!oldTopic || t.id !== oldTopic.id) { + return t.name; + } + }).map(t => t.name); + topics.forEach(topic => { + // check if name exist + if (existNames.indexOf(topic.name) !== -1) { + const msg = this.translateService.instant('device.topic-name-exist', { + value: topic.name + }); + this.notifyError(msg); + } else { + // check if subscriptions address exist for new topic + let exist = null; + if (!oldTopic) { + Object.keys(device.tags).forEach(key => { + if (device.tags[key].address === topic.address && device.tags[key].memaddress === topic.memaddress && device.tags[key].id != topic.id && device.tags[key].options.subs) { + exist = this.formatAddress(topic.address, topic.memaddress); + } + }); + } + if (exist) { + const msg = this.translateService.instant('device.topic-subs-address-exist', { + value: exist + }); + this.notifyError(msg); + } else { + device.tags[topic.id] = topic; + tagsMap[topic.id] = topic; + } + } + }); + } + if (sendToProjectDevice) { + this.projectService.setDeviceTags(device); + if (callbackModify) { + callbackModify(); + } + } + } + addTopicToPublish(device, oldTopic, topic, tagsMap, callbackModify) { + if (topic) { + let existNames = Object.values(device.tags).filter(t => { + if (!oldTopic || t.id !== oldTopic.id) { + return t.name; + } + }).map(t => t.name); + // check if name exist + if (existNames.indexOf(topic.name) !== -1) { + const msg = this.translateService.instant('device.topic-name-exist', { + value: topic.name + }); + this.notifyError(msg); + } else { + // check if publish address exist + let exist = null; + Object.keys(device.tags).forEach(key => { + if (device.tags[key].address === topic.address && device.tags[key].id != topic.id) { + exist = topic.address; + } + }); + if (exist) { + const msg = this.translateService.instant('device.topic-pubs-address-exist', { + value: exist + }); + this.notifyError(msg); + } else { + device.tags[topic.id] = topic; + tagsMap[topic.id] = topic; + } + this.projectService.setDeviceTags(device); + if (callbackModify) { + callbackModify(); + } + } + } + } + notifyError(error) { + this.toastService.error(error, '', { + timeOut: 3000, + closeButton: true + // disableTimeOut: true + }); + } + + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_18__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_19__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_20__.ToastrService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }]; +}; +TagPropertyService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_21__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_18__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_19__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_20__.ToastrService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService])], TagPropertyService); + + +/***/ }), + +/***/ 5885: +/*!*******************************************************************!*\ + !*** ./src/app/device/topic-property/topic-property.component.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MqttItemType: () => (/* binding */ MqttItemType), +/* harmony export */ MqttPayload: () => (/* binding */ MqttPayload), +/* harmony export */ MqttPayloadItem: () => (/* binding */ MqttPayloadItem), +/* harmony export */ TopicPropertyComponent: () => (/* binding */ TopicPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _topic_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./topic-property.component.html?ngResource */ 14214); +/* harmony import */ var _topic_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./topic-property.component.scss?ngResource */ 3222); +/* harmony import */ var _topic_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_topic_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/hmi.service */ 69578); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _helpers_json_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_helpers/json-utils */ 81889); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let TopicPropertyComponent = class TopicPropertyComponent { + hmiService; + translateService; + dialogRef; + data; + grptabs; + tabsub; + tabpub; + subscriptionBrowse; + editMode = false; + topicSource = '#'; + topicsList = {}; + topicContent = []; + topicSelectedSubType = 'raw'; + discoveryError = ''; + discoveryWait = false; + discoveryTimer = null; + selectedTopic = { + name: '', + key: '', + value: null, + subs: null + }; + topicToAdd = {}; + invokeSubscribe = null; + invokePublish = null; + topicSelectedPubType = 'raw'; + publishTopicName; + publishTopicPath; + pubPayload = new MqttPayload(); + pubPayloadResult = ''; + itemType = MqttItemType; + itemTag = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(MqttItemType, MqttItemType.tag); + itemTimestamp = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(MqttItemType, MqttItemType.timestamp); + itemValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(MqttItemType, MqttItemType.value); + itemStatic = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(MqttItemType, MqttItemType.static); + editSubscription = false; + allChecked = false; + constructor(hmiService, translateService, dialogRef, data) { + this.hmiService = hmiService; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.subscriptionBrowse = this.hmiService.onDeviceBrowse.subscribe(value => { + if (value.result === 'error') { + this.discoveryError = value.result; + } else if (value.topic) { + if (this.topicsList[value.topic]) { + this.topicsList[value.topic].value = value.msg; + } else { + let checked = false; + let enabled = true; + if (this.data.device.tags[value.topic]) { + checked = true; + enabled = false; + } + // key => value + this.topicsList[value.topic] = { + name: value.topic, + content: value.msg, + checked: checked, + enabled: enabled + }; + } + } + }); + Object.keys(this.itemType).forEach(key => { + this.translateService.get(this.itemType[key]).subscribe(txt => { + this.itemType[key] = txt; + }); + }); + // check if edit the topic + if (this.data.topic) { + let tag = this.data.topic; + if (tag.options) { + if (tag.options.subs) { + // sure a subscription + this.editSubscription = true; + this.grptabs.selectedIndex = 0; + this.tabpub.disabled = true; + this.topicSelectedSubType = tag.type; + this.editMode = true; + var topic = { + key: tag.address, + name: tag.name, + value: { + name: tag.address + }, + subs: tag.options.subs + }; + if (tag.type === 'json') { + const topicsOfAddress = Object.values(this.data.device.tags).filter(t => t.address === tag.address); + const content = {}; + tag.options.subs.forEach(key => { + content[key] = topicsOfAddress.find(t => t.memaddress === key); + }); + topic.value.content = content; + } else { + topic.name = tag.name; + topic.value.content = tag.value; + } + this.selectTopic(topic); + } else { + // publish topic + this.grptabs.selectedIndex = 1; + this.tabsub.disabled = true; + this.publishTopicPath = tag.address; + this.publishTopicName = tag.name; + this.topicSelectedPubType = tag.type; + if (tag.options.pubs) { + // sure publish + this.pubPayload.items = tag.options.pubs; + } + } + } + } + this.loadSelectedSubTopic(); + this.stringifyPublishItem(); + } + ngOnDestroy() { + // this.checkToSave(); + try { + if (this.subscriptionBrowse) { + this.subscriptionBrowse.unsubscribe(); + } + } catch (e) {} + if (this.discoveryTimer) { + clearInterval(this.discoveryTimer); + } + this.discoveryTimer = null; + } + //#region Subscription + onNoClick() { + this.dialogRef.close(); + } + onDiscoveryTopics(source) { + this.discoveryError = ''; + this.discoveryWait = true; + this.discoveryTimer = setTimeout(() => { + this.discoveryWait = false; + }, 10000); + this.hmiService.askDeviceBrowse(this.data.device.id, source); + } + onClearDiscovery() { + this.topicsList = {}; + this.discoveryError = ''; + this.discoveryWait = false; + try { + if (this.discoveryTimer) { + clearInterval(this.discoveryTimer); + } + } catch {} + } + selectTopic(topic) { + this.selectedTopic = JSON.parse(JSON.stringify(topic)); + this.loadSelectedSubTopic(); + } + loadSelectedSubTopic() { + this.topicContent = []; + if (this.selectedTopic.value) { + if (this.topicSelectedSubType === 'json') { + let content = _helpers_json_utils__WEBPACK_IMPORTED_MODULE_5__.JsonUtils.tryToParse(this.selectedTopic.value?.content, {}); + Object.keys(content).forEach(key => { + let checked = this.selectedTopic.subs ? false : true; + if (this.selectedTopic.subs && this.selectedTopic.subs.indexOf(key) !== -1) { + checked = true; + } + const topicToAdd = { + key: key, + value: '', + checked: checked, + type: this.topicSelectedSubType, + name: '' + }; + if (content[key]) { + if (this.editSubscription) { + topicToAdd.name = content[key]?.name || ''; + topicToAdd.tag = content[key]; + } else { + topicToAdd.value = content[key]; + } + } + this.topicContent.push(topicToAdd); + }); + } else if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(this.selectedTopic.value?.content) || this.editSubscription) { + this.topicContent = [{ + name: this.selectedTopic.name, + key: this.selectedTopic.key, + value: this.selectedTopic.value?.content, + checked: true, + type: this.topicSelectedSubType + }]; + } + } + } + onSubTopicValChange(topicSelType) { + this.loadSelectedSubTopic(); + } + isTopicSelected(topic) { + return this.selectedTopic === topic.key ? true : false; + } + isSubscriptionEdit() { + return this.editMode; + } + isSubscriptionValid() { + if (this.topicContent && this.topicContent.length) { + let onechecked = false; + for (let i = 0; i < this.topicContent.length; i++) { + if (this.topicContent[i].checked) { + onechecked = true; + } + } + return onechecked; + } + return false; + } + onAddSubscribeAttribute() { + if (this.selectedTopic.key && !this.topicContent.length || this.topicSelectedSubType === 'json') { + this.topicContent.push({ + name: this.selectedTopic.name, + key: this.selectedTopic.key, + value: this.selectedTopic.value?.content, + checked: true, + type: this.topicSelectedSubType + }); + } + } + onSelectedChanged() { + if (this.topicSelectedSubType === 'raw' && this.topicContent.length) { + this.topicContent[0].key = this.selectedTopic.key; + } + } + onAddToSubscribe() { + if (this.topicContent && this.topicContent.length && this.invokeSubscribe) { + for (let i = 0; i < this.topicContent.length; i++) { + if (this.topicContent[i].checked) { + let topic = new _models_device__WEBPACK_IMPORTED_MODULE_4__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_4__.TAG_PREFIX)); + if (this.data.topic) { + let id = this.topicContent[i]?.tag?.id || this.data.topic.id; + topic = new _models_device__WEBPACK_IMPORTED_MODULE_4__.Tag(id); + } + topic.type = this.topicSelectedSubType; + topic.address = this.selectedTopic.key; + topic.memaddress = this.topicContent[i].key; + topic.options = { + subs: [topic.memaddress] + }; + if (this.topicContent[i].name) { + topic.name = this.topicContent[i].name; + } else { + topic.name = this.selectedTopic.key; + if (topic.type === 'json') { + topic.name += '[' + topic.memaddress + ']'; + } + } + this.invokeSubscribe(this.topicContent[i]?.tag || this.data.topic, [topic], false); + } + } + this.invokeSubscribe(null, null, true); + } else if (this.selectedTopic.key?.length) { + let topic = new _models_device__WEBPACK_IMPORTED_MODULE_4__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_4__.TAG_PREFIX)); + topic.name = this.selectedTopic.key; + topic.type = 'raw'; + topic.address = this.selectedTopic.key; + topic.memaddress = this.selectedTopic.key; + topic.options = { + subs: this.selectedTopic.key + }; + this.invokeSubscribe(this.data.topic, [topic]); + } + } + //#endregion + //#region Publish + isPublishTypeToEnable(type) { + if (type === 'raw' || this.pubPayload.items && this.pubPayload.items.length) { + return true; + } + return false; + } + onAddToPuplish() { + if (this.publishTopicPath && this.invokePublish) { + let tag = new _models_device__WEBPACK_IMPORTED_MODULE_4__.Tag(_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getGUID(_models_device__WEBPACK_IMPORTED_MODULE_4__.TAG_PREFIX)); + if (this.data.topic) { + tag = new _models_device__WEBPACK_IMPORTED_MODULE_4__.Tag(this.data.topic.id); + } + tag.name = this.publishTopicName; + tag.address = this.publishTopicPath; + tag.type = this.topicSelectedPubType; + tag.options = { + pubs: this.pubPayload.items + }; + this.invokePublish(this.data.topic, tag); + } + } + onPubTopicValChange(topicSelType) { + this.stringifyPublishItem(); + } + onAddPublishItem() { + this.pubPayload.items.push(new MqttPayloadItem()); + this.stringifyPublishItem(); + } + onRemovePublishItem(index) { + this.pubPayload.items.splice(index, 1); + this.stringifyPublishItem(); + } + onSetPublishItemTag(item, event) { + item.value = event.variableId; + if (event.variableRaw) { + item.name = event.variableRaw.address; + } + this.stringifyPublishItem(); + } + onItemTypeChanged(item) { + if (item.type === this.itemTimestamp) { + item.value = new Date().toISOString(); + } else if (item.type === this.itemStatic) { + item.value = ''; + } else if (item.type === this.itemValue) { + item.name = this.publishTopicPath; + } + this.stringifyPublishItem(); + } + /** + * Render the payload content + */ + stringifyPublishItem() { + let obj = {}; + let row = ''; + if (this.pubPayload.items.length) { + for (let i = 0; i < this.pubPayload.items.length; i++) { + let item = this.pubPayload.items[i]; + let ivalue = item.value; + if (item.type === this.itemTimestamp) { + ivalue = new Date().toISOString(); + } else if (item.type === this.itemTag) { + ivalue = `$(${item.name})`; + } else if (item.type === this.itemStatic) { + ivalue = `${item.value}`; + } else if (item.type === this.itemValue) { + item.value = this.publishTopicPath; + ivalue = `$(${item.value})`; + } else { + ivalue = `${item.value}`; + } + if (this.topicSelectedPubType === 'json') { + let keys = item.key.split('.'); + let robj = obj; + for (let y = 0; y < keys.length; y++) { + if (!robj[keys[y]]) { + robj[keys[y]] = {}; + } + if (y >= keys.length - 1) { + robj[keys[y]] = ivalue; + } + robj = robj[keys[y]]; + } + } else { + // payload items in row format + if (row) { + ivalue = ';' + ivalue; + } + } + row += ivalue; + } + } else { + row = `$(${this.publishTopicPath})`; + obj = { + '': row + }; + } + if (this.topicSelectedPubType === 'json') { + this.pubPayloadResult = JSON.stringify(obj, undefined, 2); + } else { + this.pubPayloadResult = row; + } + } + isPublishValid() { + return this.publishTopicPath && this.publishTopicPath.length ? true : false; + } + toggleAllChecked() { + if (this.topicContent) { + this.topicContent.forEach(t => { + if (!this.editSubscription) { + t.checked = this.allChecked; + } + }); + } + this.isSubscriptionValid(); + } + updateAllChecked() { + this.allChecked = this.topicContent?.every(t => t.checked) ?? false; + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + grptabs: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['grptabs', { + static: true + }] + }], + tabsub: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['tabsub', { + static: true + }] + }], + tabpub: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['tabpub', { + static: true + }] + }] + }; +}; +TopicPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-topic-property', + template: _topic_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_topic_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, Object])], TopicPropertyComponent); + +var MqttItemType; +(function (MqttItemType) { + MqttItemType["tag"] = "device.topic-type-tag"; + MqttItemType["timestamp"] = "device.topic-type-timestamp"; + MqttItemType["value"] = "device.topic-type-value"; + MqttItemType["static"] = "device.topic-type-static"; +})(MqttItemType || (MqttItemType = {})); +class MqttPayload { + items = []; +} +class MqttPayloadItem { + type = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(MqttItemType, MqttItemType.tag); + key = ''; + value = ''; + name; +} + +/***/ }), + +/***/ 15449: +/*!***************************************************************!*\ + !*** ./src/app/editor/app-settings/app-settings.component.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AppSettingsComponent: () => (/* binding */ AppSettingsComponent) +/* harmony export */ }); +/* harmony import */ var _app_settings_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-settings.component.html?ngResource */ 92459); +/* harmony import */ var _app_settings_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-settings.component.css?ngResource */ 71547); +/* harmony import */ var _app_settings_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_app_settings_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/settings.service */ 22044); +/* harmony import */ var _services_diagnose_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/diagnose.service */ 90569); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _models_settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/settings */ 99234); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let AppSettingsComponent = class AppSettingsComponent { + settingsService; + diagnoseService; + translateService; + toastr; + dialogRef; + languageType = [{ + text: 'dlg.app-language-de', + value: 'de' + }, { + text: 'dlg.app-language-en', + value: 'en' + }, { + text: 'dlg.app-language-es', + value: 'es' + }, { + text: 'dlg.app-language-fr', + value: 'fr' + }, { + text: 'dlg.app-language-ko', + value: 'ko' + }, { + text: 'dlg.app-language-pt', + value: 'pt' + }, { + text: 'dlg.app-language-ru', + value: 'ru' + }, { + text: 'dlg.app-language-sv', + value: 'sv' + }, { + text: 'dlg.app-language-tr', + value: 'tr' + }, { + text: 'dlg.app-language-ua', + value: 'ua' + }, { + text: 'dlg.app-language-zh-cn', + value: 'zh-cn' + }, { + text: 'dlg.app-language-ja', + value: 'ja' + }]; + authType = [{ + text: 'dlg.app-auth-disabled', + value: '' + }, { + text: 'dlg.app-auth-expiration-15m', + value: '15m' + }, { + text: 'dlg.app-auth-expiration-1h', + value: '1h' + }, { + text: 'dlg.app-auth-expiration-3h', + value: '3h' + }, { + text: 'dlg.app-auth-expiration-1d', + value: '1d' + }]; + settings = new _models_settings__WEBPACK_IMPORTED_MODULE_4__.AppSettings(); + authentication = ''; + authenticationTooltip = ''; + smtpTesting = false; + smtpTestAddress = ''; + showPassword = false; + daqstoreType = _models_settings__WEBPACK_IMPORTED_MODULE_4__.DaqStoreType; + retationType = _models_settings__WEBPACK_IMPORTED_MODULE_4__.DaqStoreRetentionType; + alarmsRetationType = _models_settings__WEBPACK_IMPORTED_MODULE_4__.AlarmsRetentionType; + influxDB18 = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_settings__WEBPACK_IMPORTED_MODULE_4__.DaqStoreType, _models_settings__WEBPACK_IMPORTED_MODULE_4__.DaqStoreType.influxDB18); + constructor(settingsService, diagnoseService, translateService, toastr, dialogRef) { + this.settingsService = settingsService; + this.diagnoseService = diagnoseService; + this.translateService = translateService; + this.toastr = toastr; + this.dialogRef = dialogRef; + } + ngOnInit() { + this.settings = JSON.parse(JSON.stringify(this.settingsService.getSettings())); + for (let i = 0; i < this.languageType.length; i++) { + this.translateService.get(this.languageType[i].text).subscribe(txt => { + this.languageType[i].text = txt; + }); + } + for (let i = 0; i < this.authType.length; i++) { + this.translateService.get(this.authType[i].text).subscribe(txt => { + this.authType[i].text = txt; + }); + } + this.translateService.get('dlg.app-auth-tooltip').subscribe(txt => { + this.authenticationTooltip = txt; + }); + if (this.settings.secureEnabled) { + this.authentication = this.settings.tokenExpiresIn; + } + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.isNullOrUndefined(this.settings.broadcastAll)) { + this.settings.broadcastAll = true; + } + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.isNullOrUndefined(this.settings.logFull)) { + this.settings.logFull = false; + } + if (!this.settings.smtp) { + this.settings.smtp = new _models_settings__WEBPACK_IMPORTED_MODULE_4__.SmtpSettings(); + } + this.settings.daqstore = this.settings.daqstore || new _models_settings__WEBPACK_IMPORTED_MODULE_4__.DaqStore(); + if (!this.settings.daqstore.credentials) { + this.settings.daqstore.credentials = new _models_settings__WEBPACK_IMPORTED_MODULE_4__.StoreCredentials(); + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.settings.secureEnabled = this.authentication ? true : false; + this.settings.tokenExpiresIn = this.authentication; + if (this.settingsService.setSettings(this.settings)) { + this.settingsService.saveSettings(); + } + this.dialogRef.close(); + } + onLanguageChange(language) { + this.settings.language = language; + } + onAlarmsClear() { + this.settingsService.clearAlarms(true); + } + onSmtpTest() { + this.smtpTesting = true; + let msg = { + from: this.settings.smtp.mailsender || this.settings.smtp.username, + to: this.smtpTestAddress, + subject: 'FUXA', + text: 'TEST' + }; + this.diagnoseService.sendMail(msg, this.settings.smtp).subscribe(() => { + this.smtpTesting = false; + var msg = ''; + this.translateService.get('msg.sendmail-success').subscribe(txt => { + msg = txt; + }); + this.toastr.success(msg); + }, error => { + this.smtpTesting = false; + if (error.message) { + this.notifyError(error.message); + } else { + var msg = ''; + this.translateService.get('msg.sendmail-error').subscribe(txt => { + msg = txt; + }); + this.notifyError(msg); + } + }); + } + isSmtpTestReady() { + if (this.smtpTesting) { + return false; + } + if (!this.settings.smtp.host || !this.settings.smtp.host.length) { + return false; + } + if (!this.settings.smtp.username || !this.settings.smtp.username.length) { + return false; + } + if (!this.smtpTestAddress || !this.smtpTestAddress.length) { + return false; + } + return true; + } + keyDownStopPropagation(event) { + event.stopPropagation(); + } + notifyError(error) { + this.toastr.error(error, '', { + timeOut: 3000, + closeButton: true + // disableTimeOut: true + }); + } + + static ctorParameters = () => [{ + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_2__.SettingsService + }, { + type: _services_diagnose_service__WEBPACK_IMPORTED_MODULE_3__.DiagnoseService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_7__.ToastrService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }]; +}; +AppSettingsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-app-settings', + template: _app_settings_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_app_settings_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_settings_service__WEBPACK_IMPORTED_MODULE_2__.SettingsService, _services_diagnose_service__WEBPACK_IMPORTED_MODULE_3__.DiagnoseService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_7__.ToastrService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef])], AppSettingsComponent); + + +/***/ }), + +/***/ 53778: +/*!*************************************************************!*\ + !*** ./src/app/editor/card-config/card-config.component.ts ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CardConfigComponent: () => (/* binding */ CardConfigComponent) +/* harmony export */ }); +/* harmony import */ var _card_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./card-config.component.html?ngResource */ 49501); +/* harmony import */ var _card_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./card-config.component.scss?ngResource */ 69155); +/* harmony import */ var _card_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_card_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let CardConfigComponent = class CardConfigComponent { + translateService; + dialogRef; + data; + cardType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.CardWidgetType; + card; + scaleMode = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.PropertyScaleModeType; + constructor(translateService, dialogRef, data) { + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + this.card = this.data.item.card; + } + ngOnInit() { + Object.keys(this.cardType).forEach(key => { + this.translateService.get(this.cardType[key]).subscribe(txt => { + this.cardType[key] = txt; + }); + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.item.content = null; + if (this.card.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.CardWidgetType.view) {} else if (this.card.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.CardWidgetType.iframe) { + this.data.item.content = this.card.data; + } + this.dialogRef.close(this.data.item); + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +CardConfigComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-card-config', + template: _card_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_card_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, Object])], CardConfigComponent); + + +/***/ }), + +/***/ 20427: +/*!***************************************************************!*\ + !*** ./src/app/editor/chart-config/chart-config.component.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ChartConfigComponent: () => (/* binding */ ChartConfigComponent) +/* harmony export */ }); +/* harmony import */ var _chart_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart-config.component.html?ngResource */ 90221); +/* harmony import */ var _chart_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chart-config.component.css?ngResource */ 14158); +/* harmony import */ var _chart_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_chart_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_list__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/legacy-list */ 39038); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../gui-helpers/edit-name/edit-name.component */ 79962); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _chart_line_property_chart_line_property_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./chart-line-property/chart-line-property.component */ 29017); +/* harmony import */ var _gui_helpers_edit_placeholder_edit_placeholder_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../gui-helpers/edit-placeholder/edit-placeholder.component */ 63167); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + +let ChartConfigComponent = class ChartConfigComponent { + dialog; + dialogRef; + translateService; + projectService; + selTags; + selectedChart = { + id: null, + name: null, + lines: [] + }; + selectedDevice = { + id: null, + name: null, + tags: [] + }; + data = { + charts: [], + devices: [] + }; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.defaultColor; + lineColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.lineColor; + lineInterpolationType = [{ + text: 'chart.config-interpo-linear', + value: 0 + }, { + text: 'chart.config-interpo-stepAfter', + value: 1 + }, { + text: 'chart.config-interpo-stepBefore', + value: 2 + }, { + text: 'chart.config-interpo-spline', + value: 3 + }, { + text: 'chart.config-interpo-none', + value: 4 + }]; + constructor(dialog, dialogRef, translateService, projectService) { + this.dialog = dialog; + this.dialogRef = dialogRef; + this.translateService = translateService; + this.projectService = projectService; + this.loadData(); + } + ngOnInit() { + for (let i = 0; i < this.lineInterpolationType.length; i++) { + this.lineInterpolationType[i].text = this.translateService.instant(this.lineInterpolationType[i].text); + } + } + loadData() { + this.data.charts = JSON.parse(JSON.stringify(this.projectService.getCharts())); + this.data.devices = []; + let devices = this.projectService.getDevices(); + Object.values(devices).forEach(device => { + let devicobj = Object.assign({}, device); + devicobj.tags = device.tags; + this.data.devices.push(devicobj); + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.projectService.setCharts(this.data.charts); + this.dialogRef.close({ + charts: this.data.charts, + selected: this.selectedChart + }); + } + onRemoveChart(index) { + let msg = ''; + this.translateService.get('msg.chart-remove', { + value: this.data.charts[index].name + }).subscribe(txt => { + msg = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__.ConfirmDialogComponent, { + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.data.charts.splice(index, 1); + this.selectedChart = { + id: null, + name: null, + lines: [] + }; + } + }); + } + onSelectChart(item) { + this.selectedChart = item; + } + isChartSelected(item) { + if (item === this.selectedChart) { + return 'mychips-selected'; + } + } + onEditChart(chart) { + let title = 'dlg.item-title'; + let label = 'dlg.item-name'; + let error = 'dlg.item-name-error'; + let exist = this.data.charts.map(c => { + if (!chart || chart.name !== c.name) { + return c.name; + } + }); + this.translateService.get(title).subscribe(txt => { + title = txt; + }); + this.translateService.get(label).subscribe(txt => { + label = txt; + }); + this.translateService.get(error).subscribe(txt => { + error = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_6__.EditNameComponent, { + position: { + top: '60px' + }, + data: { + name: chart ? chart.name : '', + title: title, + label: label, + exist: exist, + error: error + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.name && result.name.length > 0) { + if (chart) { + chart.name = result.name; + } else { + let chart = { + id: _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getShortGUID(), + name: result.name, + lines: [] + }; + this.data.charts.push(chart); + this.onSelectChart(chart); + } + } + }); + } + onAddChartLine(chart) { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_7__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: null, + multiSelection: true + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let tagsId = []; + if (result.variablesId) { + tagsId = result.variablesId; + } else if (result.variableId) { + tagsId.push(result.variableId); + } + tagsId.forEach(id => { + let device = _models_device__WEBPACK_IMPORTED_MODULE_4__.DevicesUtils.getDeviceFromTagId(this.data.devices, id); + let tag = _models_device__WEBPACK_IMPORTED_MODULE_4__.DevicesUtils.getTagFromTagId([device], id); + if (tag) { + let exist = chart.lines.find(line => line.id === tag.id); + if (!exist) { + const myCopiedObject = { + id: tag.id, + name: this.getTagLabel(tag), + device: device.name, + color: this.getNextColor(), + label: this.getTagLabel(tag), + yaxis: 1, + spanGaps: true + }; + chart.lines.push(myCopiedObject); + } + } + }); + } + }); + } + onAddChartLinePlaceholder(chart) { + let dialogRef = this.dialog.open(_gui_helpers_edit_placeholder_edit_placeholder_component__WEBPACK_IMPORTED_MODULE_9__.EditPlaceholderComponent, { + disableClose: true, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(placeholder => { + if (placeholder) { + const label = placeholder; + placeholder = '@' + placeholder; + const myCopiedObject = { + id: placeholder, + name: placeholder, + device: '@', + color: this.getNextColor(), + label: label, + yaxis: 1, + spanGaps: true + }; + chart.lines.push(myCopiedObject); + } + }); + } + editChartLine(line) { + let dialogRef = this.dialog.open(_chart_line_property_chart_line_property_component__WEBPACK_IMPORTED_MODULE_8__.ChartLinePropertyComponent, { + position: { + top: '60px' + }, + data: { + id: line.id, + device: line.device, + name: line.name, + label: line.label, + color: line.color, + yaxis: line.yaxis, + lineInterpolation: line.lineInterpolation, + fill: line.fill, + lineInterpolationType: this.lineInterpolationType, + zones: line.zones, + lineWidth: line.lineWidth, + spanGaps: line.spanGaps + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + line.label = result.label; + line.color = result.color; + line.yaxis = result.yaxis; + line.lineInterpolation = result.lineInterpolation; + line.fill = result.fill; + line.zones = result.zones; + line.lineWidth = result.lineWidth; + line.spanGaps = result.spanGaps ?? false; + } + }); + } + removeChartLine(tag) { + for (let i = 0; i < this.selectedChart.lines.length; i++) { + if (this.selectedChart.lines[i].id === tag.id) { + this.selectedChart.lines.splice(i, 1); + break; + } + } + } + getTagLabel(tag) { + if (tag.label) { + return tag.label; + } else { + return tag.name; + } + } + getDeviceTagName(line) { + if (line.device === '@') { + return line.name; + } + let devices = this.data.devices.filter(x => x.name === line.device); + if (devices && devices.length > 0) { + let tags = Object.values(devices[0].tags); + for (let i = 0; i < tags.length; i++) { + if (line.id === tags[i].id) { + return this.getTagLabel(tags[i]); + } + } + } + return ''; + } + getNextColor() { + for (let x = 0; x < this.lineColor.length; x++) { + let found = false; + if (this.selectedChart.lines) { + for (let i = 0; i < this.selectedChart.lines.length; i++) { + if (this.selectedChart.lines[i].color === this.lineColor[x]) { + found = true; + } + } + } + if (!found) { + return this.lineColor[x]; + } + } + return _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.lineColor[0]; + } + getLineInterpolationName(line) { + let type = this.lineInterpolationType.find(type => type.value === line.lineInterpolation); + if (type) { + return type.text; + } + return ''; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; + static propDecorators = { + selTags: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_angular_material_legacy_list__WEBPACK_IMPORTED_MODULE_13__.MatLegacySelectionList, { + static: false + }] + }] + }; +}; +ChartConfigComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-chart-config', + template: _chart_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_chart_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], ChartConfigComponent); + + +/***/ }), + +/***/ 29017: +/*!******************************************************************************************!*\ + !*** ./src/app/editor/chart-config/chart-line-property/chart-line-property.component.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ChartLinePropertyComponent: () => (/* binding */ ChartLinePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _chart_line_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart-line-property.component.html?ngResource */ 3221); +/* harmony import */ var _chart_line_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chart-line-property.component.scss?ngResource */ 15341); +/* harmony import */ var _chart_line_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_chart_line_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 28849); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let ChartLinePropertyComponent = class ChartLinePropertyComponent { + fb; + dialogRef; + data; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.defaultColor; + chartAxesType = [1, 2, 3, 4]; + formGroup; + constructor(fb, dialogRef, data) { + this.fb = fb; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + name: [{ + value: this.data.name, + disabled: true + }, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required], + label: [this.data.label, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required], + yaxis: [this.data.yaxis], + lineInterpolation: [this.data.lineInterpolation], + lineWidth: [this.data.lineWidth], + spanGaps: [this.data.spanGaps] + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close({ + ...this.data, + ...this.formGroup.getRawValue() + }); + } + onAddZone() { + if (!this.data.zones) { + this.data.zones = []; + } + this.data.zones.push({ + min: 0, + max: 0, + stroke: '#FF2525', + fill: '#BFCDDB' + }); + } + onRemoveZone(index) { + this.data.zones.splice(index, 1); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ChartLinePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-chart-line-property', + template: _chart_line_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_chart_line_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, Object])], ChartLinePropertyComponent); + + +/***/ }), + +/***/ 78776: +/*!*******************************************************************************!*\ + !*** ./src/app/editor/client-script-access/client-script-access.component.ts ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ClientScriptAccessComponent: () => (/* binding */ ClientScriptAccessComponent) +/* harmony export */ }); +/* harmony import */ var _client_script_access_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./client-script-access.component.html?ngResource */ 22376); +/* harmony import */ var _client_script_access_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./client-script-access.component.scss?ngResource */ 14039); +/* harmony import */ var _client_script_access_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_client_script_access_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/script */ 10846); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let ClientScriptAccessComponent = class ClientScriptAccessComponent { + dialogRef; + projectService; + scriptFunctions = []; + constructor(dialogRef, projectService) { + this.dialogRef = dialogRef; + this.projectService = projectService; + } + ngOnInit() { + const systemFunctions = new _models_script__WEBPACK_IMPORTED_MODULE_2__.SystemFunctions(_models_script__WEBPACK_IMPORTED_MODULE_2__.ScriptMode.CLIENT); + const accessConfig = this.projectService.getClientAccess(); + this.scriptFunctions = systemFunctions.functions.map(fnc => ({ + name: fnc.name, + label: fnc.text, + tooltip: fnc.tooltip, + enabled: accessConfig?.scriptSystemFunctions?.includes(fnc.name) ?? false + })); + } + getClientAccess() { + return { + scriptSystemFunctions: this.scriptFunctions.filter(f => f.enabled).map(f => f.name) + }; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(); + const updatedAccess = this.getClientAccess(); + this.projectService.setClientAccess(updatedAccess); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }]; +}; +ClientScriptAccessComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-client-script-access', + template: _client_script_access_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_client_script_access_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService])], ClientScriptAccessComponent); + + +/***/ }), + +/***/ 98831: +/*!*************************************************************************!*\ + !*** ./src/app/editor/editor-views-list/editor-views-list.component.ts ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ EditorViewsListComponent: () => (/* binding */ EditorViewsListComponent) +/* harmony export */ }); +/* harmony import */ var _editor_views_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./editor-views-list.component.html?ngResource */ 32525); +/* harmony import */ var _editor_views_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor-views-list.component.scss?ngResource */ 39881); +/* harmony import */ var _editor_views_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_editor_views_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _view_property_view_property_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../view-property/view-property.component */ 27373); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! file-saver */ 46778); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../gui-helpers/edit-name/edit-name.component */ 79962); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let EditorViewsListComponent = class EditorViewsListComponent { + projectService; + translateService; + dialog; + views = []; + set select(view) { + this.currentView = view; + } + selected = new _angular_core__WEBPACK_IMPORTED_MODULE_8__.EventEmitter(); + viewPropertyChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_8__.EventEmitter(); + cloneView = new _angular_core__WEBPACK_IMPORTED_MODULE_8__.EventEmitter(); + currentView = null; + cardViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType.cards; + svgViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType.svg; + mapsViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType.maps; + constructor(projectService, translateService, dialog) { + this.projectService = projectService; + this.translateService = translateService; + this.dialog = dialog; + } + onSelectView(view, force = true) { + if (!force && this.currentView?.id === view?.id) { + return; + } + this.currentView = view; + this.selected.emit(this.currentView); + } + getViewsSorted() { + return this.views.sort((a, b) => { + if (a.name > b.name) { + return 1; + } + return -1; + }); + } + isViewActive(view) { + return this.currentView && this.currentView.name === view.name; + } + onDeleteView(view) { + let msg = ''; + this.translateService.get('msg.view-remove', { + value: view.name + }).subscribe(txt => { + msg = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_3__.ConfirmDialogComponent, { + position: { + top: '60px' + }, + data: { + msg: this.translateService.instant('msg.view-remove', { + value: view.name + }) + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && this.views) { + let toselect = null; + for (var i = 0; i < this.views.length; i++) { + if (this.views[i].id === view.id) { + this.views.splice(i, 1); + if (i > 0 && i < this.views.length) { + toselect = this.views[i]; + } + break; + } + } + this.currentView = null; + if (toselect) { + this.onSelectView(toselect); + } else if (this.views.length > 0) { + this.onSelectView(this.views[0]); + } + this.projectService.removeView(view); + } + }); + } + onRenameView(view) { + let exist = this.views.filter(v => v.id !== view.id).map(v => v.name); + let dialogRef = this.dialog.open(_gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_7__.EditNameComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + title: this.translateService.instant('dlg.docname-title'), + name: view.name, + exist: exist + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.name) { + view.name = result.name; + this.projectService.setView(view, false); + } + }); + } + onPropertyView(view) { + let dialogRef = this.dialog.open(_view_property_view_property_component__WEBPACK_IMPORTED_MODULE_5__.ViewPropertyComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: { + name: view.name, + type: view.type || _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType.svg, + profile: view.profile, + property: view.property + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result?.profile) { + if (result.profile.height) { + view.profile.height = parseInt(result.profile.height); + } + if (result.profile.width) { + view.profile.width = parseInt(result.profile.width); + } + if (result.profile.margin >= 0) { + view.profile.margin = parseInt(result.profile.margin); + } + view.profile.bkcolor = result.profile.bkcolor; + if (result.property?.events) { + view.property ??= { + events: [], + actions: [] + }; + view.property.events = result.property.events; + } + this.viewPropertyChanged.emit(view); + this.onSelectView(view); + } + }); + } + onCloneView(view) { + this.cloneView.emit(view); + } + onExportView(view) { + let filename = `${view.name}.json`; + let content = JSON.stringify(view); + let blob = new Blob([content], { + type: 'text/plain;charset=utf-8' + }); + file_saver__WEBPACK_IMPORTED_MODULE_6__.saveAs(blob, filename); + } + onCleanView(view) { + const changed = this.projectService.cleanView(view); + if (changed) { + this.onSelectView(view); + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }]; + static propDecorators = { + views: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + select: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input, + args: ['select'] + }], + selected: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Output + }], + viewPropertyChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Output + }], + cloneView: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Output + }] + }; +}; +EditorViewsListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-editor-views-list', + template: _editor_views_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_editor_views_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog])], EditorViewsListComponent); + + +/***/ }), + +/***/ 60359: +/*!********************************************!*\ + !*** ./src/app/editor/editor.component.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DialogLinkProperty: () => (/* binding */ DialogLinkProperty), +/* harmony export */ EditorComponent: () => (/* binding */ EditorComponent), +/* harmony export */ EditorModeType: () => (/* binding */ EditorModeType) +/* harmony export */ }); +/* harmony import */ var _editor_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./editor.component.html?ngResource */ 89958); +/* harmony import */ var _editor_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor.component.css?ngResource */ 44012); +/* harmony import */ var _editor_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_editor_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _linkproperty_dialog_html_ngResource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linkproperty.dialog.html?ngResource */ 37441); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! rxjs */ 81891); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _helpers_windowref__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/windowref */ 12780); +/* harmony import */ var _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../gauges/gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var _gauges_gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../gauges/gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../_helpers/define */ 94107); +/* harmony import */ var _resources_lib_images_lib_images_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../resources/lib-images/lib-images.component */ 8114); +/* harmony import */ var _gauges_controls_html_bag_bag_property_bag_property_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../gauges/controls/html-bag/bag-property/bag-property.component */ 31176); +/* harmony import */ var _gauges_controls_slider_slider_property_slider_property_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../gauges/controls/slider/slider-property/slider-property.component */ 23751); +/* harmony import */ var _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../gauges/controls/html-input/html-input.component */ 64428); +/* harmony import */ var _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../gauges/controls/html-button/html-button.component */ 66843); +/* harmony import */ var _gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../gauges/controls/html-select/html-select.component */ 87719); +/* harmony import */ var _gauges_controls_value_value_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../gauges/controls/value/value.component */ 98458); +/* harmony import */ var _gauges_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../gauges/controls/gauge-progress/gauge-progress.component */ 64421); +/* harmony import */ var _gauges_controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../gauges/controls/gauge-semaphore/gauge-semaphore.component */ 79069); +/* harmony import */ var _gauges_controls_html_switch_html_switch_property_html_switch_property_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../gauges/controls/html-switch/html-switch-property/html-switch-property.component */ 38710); +/* harmony import */ var _card_config_card_config_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./card-config/card-config.component */ 53778); +/* harmony import */ var _cards_view_cards_view_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../cards-view/cards-view.component */ 96697); +/* harmony import */ var _tags_ids_config_tags_ids_config_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./tags-ids-config/tags-ids-config.component */ 90936); +/* harmony import */ var _view_property_view_property_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./view-property/view-property.component */ 27373); +/* harmony import */ var _gauges_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../gauges/controls/html-image/html-image.component */ 44841); +/* harmony import */ var _resources_lib_widgets_lib_widgets_service__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../resources/lib-widgets/lib-widgets.service */ 13142); +/* harmony import */ var _maps_maps_view_maps_view_component__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../maps/maps-view/maps-view.component */ 64241); +/* harmony import */ var _resources_kiosk_widgets_kiosk_widgets_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../resources/kiosk-widgets/kiosk-widgets.component */ 16855); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../_services/resources.service */ 41878); +/* harmony import */ var _gauges_controls_html_input_input_property_input_property_component__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../gauges/controls/html-input/input-property/input-property.component */ 99389); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +let EditorComponent = class EditorComponent { + projectService; + winRef; + dialog; + changeDetector; + translateService; + gaugesManager; + viewContainerRef; + resolver; + resourcesService; + libWidgetsService; + gaugePanelComponent; + viewFileImportInput; + cardsview; + sidePanel; + svgSelectorPanel; + svgPreview; + mapsView; + svgElementSelected = null; + svgElements = []; + gaugeDialogType = _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType; + gaugeDialog = { + type: null, + data: null + }; + reloadGaugeDialog; + colorDefault = { + fill: '#FFFFFF', + stroke: '#000000' + }; + fonts = _helpers_define__WEBPACK_IMPORTED_MODULE_10__.Define.fonts; + isLoading = true; + editorModeType = EditorModeType; + editorMode = EditorModeType.SVG; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.defaultColor; + colorFill = this.colorDefault.fill; + colorStroke = this.colorDefault.stroke; + currentView = null; + hmi = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.Hmi(); // = {_id: '', name: '', networktype: '', ipaddress: '', maskaddress: '' }; + currentMode = ''; + setModeParam; + imagefile; + ctrlInitParams; + gridOn = false; + isAnySelected = false; + selectedElement = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.SelElement(); + panelsState = { + enabled: false, + panelView: true, + panelViewHeight: 200, + panelGeneral: true, + panelC: true, + panelD: true, + panelS: true, + panelWidgets: true + }; + panelPropertyIdOpenState; + panelPropertyTransformOpenState; + panelAlignOpenState; + panelFillOpenState; + panelEventOpenState; + panelMarkerOpenState; + panelHyperlinkOpenState; + gaugeSettingsHide = false; + gaugeSettingsLock = false; + dashboard; + cardViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.cards; + svgViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.svg; + mapsViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.maps; + shapesGrps = []; + gaugesRef = {}; + subscriptionSave; + subscriptionLoad; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_31__.Subject(); + constructor(projectService, winRef, dialog, changeDetector, translateService, gaugesManager, viewContainerRef, resolver, resourcesService, libWidgetsService) { + this.projectService = projectService; + this.winRef = winRef; + this.dialog = dialog; + this.changeDetector = changeDetector; + this.translateService = translateService; + this.gaugesManager = gaugesManager; + this.viewContainerRef = viewContainerRef; + this.resolver = resolver; + this.resourcesService = resourcesService; + this.libWidgetsService = libWidgetsService; + } + //#region Implemented onInit / onAfterInit event + /** + * Init Save Project event and clear gauge memory (to manage event signal/gauge) + */ + ngOnInit() { + try { + this.subscriptionSave = this.projectService.onSaveCurrent.subscribe(mode => { + if (mode === _services_project_service__WEBPACK_IMPORTED_MODULE_3__.SaveMode.Current) { + this.onSaveProject(); + } else if (mode === _services_project_service__WEBPACK_IMPORTED_MODULE_3__.SaveMode.SaveAs) { + this.projectService.saveAs(); + } else if (mode === _services_project_service__WEBPACK_IMPORTED_MODULE_3__.SaveMode.Save) { + this.onSaveProject(true); + } + }); + this.gaugesManager.clearMemory(); + } catch (err) { + console.error(err); + } + this.libWidgetsService.svgWidgetSelected$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_32__.switchMap)(widgetPath => fetch(widgetPath).then(response => response.text().then(content => ({ + content, + widgetPath + })))), (0,rxjs__WEBPACK_IMPORTED_MODULE_33__.takeUntil)(this.destroy$)).subscribe(({ + content, + widgetPath + }) => { + localStorage.setItem(widgetPath, content); + this.ctrlInitParams = widgetPath; + this.setMode('own_ctrl-image'); + }); + } + /** + * after init event + */ + ngAfterViewInit() { + this.myInit(); + this.setMode('select'); + let hmi = this.projectService.getHmi(); + if (hmi) { + this.loadHmi(true); + } + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(load => { + this.loadHmi(); + }, error => { + console.error('Error loadHMI'); + }); + this.changeDetector.detectChanges(); + } + ngOnDestroy() { + try { + if (this.subscriptionSave) { + this.subscriptionSave.unsubscribe(); + } + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) { + console.error(e); + } + this.onSaveProject(); + this.destroy$.next(null); + this.destroy$.complete(); + } + //#endregion + //#region General private function + /** + * Init, first init the svg-editor component + */ + myInit() { + try { + // first init svg-editor component + mypathseg.initPathSeg(); + mybrowser.initBrowser(); + mysvgutils.initSvgutils(); + myselect.initSelect(); + mydraw.initDraw(); + mysvgcanvas.initSvgCanvas(); + // init svg-editor + let toinit = mysvgeditor.initSvgEditor($, selected => { + this.isAnySelected = selected; + this.onSelectedElement(selected); + this.getGaugeSettings(selected); + this.checkSelectedGaugeSettings(); + }, (type, args) => { + this.onExtensionLoaded(args); + this.clearSelection(); + if (type === 'shapes') { + this.setShapes(); + } + }, (type, color) => { + if (type === 'fill') { + this.colorFill = color; + this.setFillColor(this.colorFill); + this.checkMySelectedToSetColor(this.colorFill, null, this.winRef.nativeWindow.svgEditor.getSelectedElements()); + } else if (type === 'stroke') { + this.colorStroke = color; + this.checkMySelectedToSetColor(null, this.colorStroke, this.winRef.nativeWindow.svgEditor.getSelectedElements()); + } + }, eleadded => { + let ga = this.getGaugeSettings(eleadded, this.ctrlInitParams); + this.checkGaugeAdded(ga); + setTimeout(() => { + this.setMode('select', false); + }, 700); + this.checkSvgElementsMap(true); + }, eleremoved => { + this.onRemoveElement(eleremoved); + this.checkSvgElementsMap(true); + }, eleresized => { + if (eleresized && eleresized.id) { + let ga = this.getGaugeSettings(eleresized); + this.gaugesManager.checkElementToResize(ga, this.resolver, this.viewContainerRef, eleresized.size); + } + }, copiedPasted => { + this.onCopyAndPaste(copiedPasted); + }, () => { + this.checkSvgElementsMap(true); + }); + this.winRef.nativeWindow.svgEditor.init(); + $(initContextmenu); + } catch (err) { + console.error(err); + } + this.setFillColor(this.colorFill); + this.setFillColor(this.colorStroke); + } + /** + * Search SVG elements in View, fill into select box and select the current svg element selected + * @param loadSvgElement + */ + checkSvgElementsMap(loadSvgElement = false) { + if (loadSvgElement) { + this.svgElements = Array.from(document.querySelectorAll('g, text, line, rect, image, path, circle, ellipse')).filter(svg => svg.attributes?.type?.value?.startsWith('svg-ext') || svg.id?.startsWith('svg_') && !svg.parentNode?.attributes?.type?.value?.startsWith('svg-ext')).map(ele => ({ + id: ele.id, + name: this.currentView.items[ele.id]?.name + })); + } + this.svgElementSelected = this.svgElements.find(se => se.id === this.selectedElement?.id); + } + /** + * Selected in select box will be selected in editor + */ + onSvgElementSelected(value) { + this.clearSelection(); + this.winRef.nativeWindow.svgEditor.selectOnly([document.getElementById(value.id)], true); + } + onSvgElementPreview(value) { + let elem = document.getElementById(value.element?.id); + let rect = elem?.getBoundingClientRect(); + if (elem && rect) { + this.svgPreview.nativeElement.style.width = `${rect.width}px`; + this.svgPreview.nativeElement.style.height = `${rect.height}px`; + this.svgPreview.nativeElement.style.top = `${rect.top}px`; + this.svgPreview.nativeElement.style.left = `${rect.left}px`; + } + this.svgPreview.nativeElement.style.display = value.preview ? 'flex' : 'none'; + } + /** + * Load the hmi resource and bind it + */ + loadHmi(firstTime = false) { + this.gaugesManager.initGaugesMap(); + this.currentView = null; + this.hmi = this.projectService.getHmi(); + // check new hmi + if (this.hmi.views?.length <= 0) { + this.hmi.views = []; + this.addView(_services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService.MainViewName); + } else { + let oldsel = localStorage.getItem('@frango.webeditor.currentview'); + if (!oldsel && this.hmi.views.length) { + oldsel = this.hmi.views[0].name; + } + for (let i = 0; i < this.hmi.views.length; i++) { + if (this.hmi.views[i].name === oldsel && this.hmi.views[i].type !== _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.maps) { + this.onSelectView(this.hmi.views[i]); + break; + } + } + if (!this.currentView) { + this.onSelectView(this.hmi.views[0]); + } + } + this.hmi.layout = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.mergeDeep(new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.LayoutSettings(), this.hmi.layout); + // check and set start page + if (!this.hmi.layout.start) { + this.hmi.layout.start = this.hmi.views[0]?.id; + } + this.loadPanelState(); + this.isLoading = false; + } + /** + * Set or Add the View to Project + * Save the View to Server + */ + saveView(view, notify = false) { + this.projectService.setView(view, notify); + } + /** + * Remove the View from Project + * Remove the View from Server + * @param view + */ + removeView(view) { + this.projectService.removeView(view); + } + getContent() { + if (this.currentView.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.cards) { + this.currentView.svgcontent = this.cardsview.getContent(); + return this.currentView.svgcontent; + // let temp = JSON.parse(JSON.stringify(this.dashboard)); + // for (let i = 0; i < temp.length; i++) { + // delete temp[i]['content']; + // delete temp[i]['background']; + // } + // return JSON.stringify(temp); + } else if (this.currentView.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.maps) { + return this.currentView.svgcontent; + } + return this.winRef.nativeWindow.svgEditor.getSvgString(); + } + /** + * Take shapes from svg-editor to show in panel + */ + setShapes() { + let temp = this.winRef.nativeWindow.svgEditor.getShapes(); + let grps = []; + Object.keys(temp).forEach(grpk => { + grps.push({ + name: grpk, + shapes: temp[grpk] + }); + }), this.shapesGrps = grps; + } + /** + * get gauge settings from current view items, if not exist create void settings from GaugesManager + * @param ele gauge id + */ + getGaugeSettings(ele, initParams = null) { + if (ele && this.currentView) { + if (this.currentView.items[ele.id]) { + return this.currentView.items[ele.id]; + } + let gs = this.gaugesManager.createSettings(ele.id, ele.type); + if (initParams) { + gs.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeProperty(); + gs.property.address = initParams; + } + return gs; + } + return null; + } + /** + * search gauge settings on all views items, if not exist create void settings from GaugesManager + * @param ele gauge element + */ + searchGaugeSettings(ele) { + if (ele) { + if (this.currentView) { + if (this.currentView.items[ele.id]) { + return this.currentView.items[ele.id]; + } + } + for (var i = 0; i < this.hmi.views.length; i++) { + if (this.hmi.views[i].items[ele.id]) { + return this.hmi.views[i].items[ele.id]; + } + } + return this.gaugesManager.createSettings(ele.id, ele.type); + } + return null; + } + /** + * add the gauge settings to the current view items list + * @param ga GaugeSettings + */ + setGaugeSettings(ga) { + if (ga.id) { + this.currentView.items[ga.id] = ga; + } else { + console.error('!TOFIX', ga); + } + } + /** + * check the gauge in current view of element + * @param ele element to check + */ + checkGaugeInView(ele) { + let g = this.getGaugeSettings(ele); + if (!g) {} + } + /** + * check and set the color panel with selected element + * @param ele selected element + */ + checkColors(ele) { + let eles = this.winRef.nativeWindow.svgEditor.getSelectedElements(); + let clrfill = null; + let clrstroke = null; + if (eles && (eles.length <= 1 || !eles[1]) && eles[0]) { + // check for gauge fill and stroke color + let colors = { + fill: clrfill, + stroke: clrstroke + }; + if (_gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.checkGaugeColor(ele, eles, colors)) { + if (colors.fill) { + this.colorFill = colors.fill; + } + if (colors.stroke) { + this.colorStroke = colors.stroke; + } + } else { + if (eles[0].attributes['fill']) { + clrfill = eles[0].attributes['fill'].value; + this.colorFill = clrfill; + } + if (eles[0].attributes['stroke']) { + clrstroke = eles[0].attributes['stroke'].value; + this.colorStroke = clrstroke; + } + // this.setFillColor(this.colorFill); + } + } + } + /** + * return the fill color of svg element 'g' + * @param eleId + */ + getFillColor(eleId) { + if (eleId) { + let ele = document.getElementById(eleId); + if (ele) { + return ele.getAttribute('fill'); + } + } + } + /** + * load the view to svg-editor and canvas + * @param view view to load + */ + loadView(view) { + if (view) { + this.clearEditor(); + if (this.isSvgEditMode(this.editorMode)) { + let svgcontent = ''; + let v = this.getView(view.name); + if (v) { + svgcontent = v.svgcontent; + } + if (svgcontent.length <= 0) { + svgcontent = '' + '' + 'Layer 1'; + } + if (this.winRef.nativeWindow.svgEditor) { + this.winRef.nativeWindow.svgEditor.setDocProperty(view.name, view.profile.width, view.profile.height, view.profile.bkcolor); + this.winRef.nativeWindow.svgEditor.setSvgString(svgcontent); + } + // check gauge to init + this.gaugesRef = {}; + setTimeout(() => { + for (let key in v.items) { + let ga = this.getGaugeSettings(v.items[key]); + this.checkGaugeAdded(ga); + } + this.winRef.nativeWindow.svgEditor.refreshCanvas(); + this.checkSvgElementsMap(true); + this.winRef.nativeWindow.svgEditor.resetUndoStack(); + }, 500); + } else if (this.isCardsEditMode(this.editorMode) && this.cardsview) { + this.cardsview.view = view; + this.cardsview.reload(); + } else if (this.isMapsEditMode(this.editorMode) && this.mapsView) { + this.mapsView.view = view; + this.mapsView.reload(); + } + } + } + isSvgEditMode(editMode) { + return editMode !== EditorModeType.CARDS && editMode !== EditorModeType.MAPS; + } + isCardsEditMode(editMode) { + return editMode === EditorModeType.CARDS; + } + isMapsEditMode(editMode) { + return editMode === EditorModeType.MAPS; + } + /** + * get view from hmi views list + * @param name view name + */ + getView(name) { + for (var i = 0; i < this.hmi.views.length; i++) { + if (this.hmi.views[i].name === name) { + return this.hmi.views[i]; + } + } + return null; + } + getViewsSorted() { + return this.hmi.views.sort((a, b) => { + if (a.name > b.name) { + return 1; + } + return -1; + }); + } + //#endregion + //#region Cards Widget + editCardsWidget(item) { + let exist = this.cardsview.getWindgetViewName(); + if (item.card.data && exist.indexOf(item.card.data) >= 0) { + exist = exist.filter(n => n !== item.card.data); + } + let cardType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.cards; + let views = this.hmi.views.filter(v => v.type !== cardType && exist.indexOf(v.name) < 0).map(v => v.name); + let dialogRef = this.dialog.open(_card_config_card_config_component__WEBPACK_IMPORTED_MODULE_21__.CardConfigComponent, { + position: { + top: '60px' + }, + data: { + item: JSON.parse(JSON.stringify(item)), + views: views + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + item.card = result.card; + this.onSaveProject(); + this.cardsview.render(); + } + }); + } + addCard() { + this.cardsview.addCardsWidget(); + } + saveCards(dashboard) {} + // #region + //#region Svg-editor event and function interface + /** + * set the mode to svg-editor (line,text,...) + * @param mode mode to set + */ + setMode(mode, clearSelection = true) { + this.currentMode = mode; + if (clearSelection) { + this.clearSelection(); + this.checkFillAndStrokeColor(); + } + this.winRef.nativeWindow.svgEditor.clickToSetMode(mode); + } + /** + * check with the current mode + * @param mode mode to check + */ + isModeActive(mode) { + return this.currentMode === mode; + } + /** + * clear svg-editor and the canvas + */ + clearEditor() { + if (this.winRef.nativeWindow.svgEditor) { + this.winRef.nativeWindow.svgEditor.clickClearAll(); + } + } + /** + * check if fill and stroke not the same color is, text and label set all to black + */ + checkFillAndStrokeColor() { + if (this.colorFill && this.colorStroke && this.colorFill === this.colorStroke) { + this.setFillColor(this.colorDefault.fill); + this.setStrokeColor(this.colorDefault.stroke); + } + } + /** + * event from svg-editor by new selection svg element + * @param event svg element + */ + onSelectedElement(elems) { + this.selectedElement = null; + try { + // to remove some strange effects + if (document.activeElement !== document.body) { + document.activeElement.blur(); + } + } catch (e) {} + if (elems) { + if (elems.length <= 1) { + this.selectedElement = elems[0]; + this.selectedElement.type = elems[0].type || 'svg-ext-shapes-' + (this.currentMode || 'default'); + this.checkColors(this.selectedElement); + this.checkGaugeInView(this.selectedElement); + } + } + this.checkSvgElementsMap(false); + if (this.sidePanel.opened) { + this.sidePanel.toggle(); + } + } + /** + * event from svg-editor: for every loaded extension + * @param args + */ + onExtensionLoaded(args) {} + /** + * event from svg-editor: change fill color + * @param event color code + */ + onChangeFillColor(event) { + this.setFillColor(event); + this.checkMySelectedToSetColor(this.colorFill, null, this.winRef.nativeWindow.svgEditor.getSelectedElements()); + } + /** + * event change stroke color (from bottom color panel) + * @param event color code + */ + onChangeStrokeColor(event) { + this.setStrokeColor(event); + this.checkMySelectedToSetColor(null, this.colorStroke, this.winRef.nativeWindow.svgEditor.getSelectedElements()); + } + onCopyAndPaste(copiedPasted) { + if (copiedPasted?.copy?.length && copiedPasted?.past?.length) { + const copied = copiedPasted.copy.filter(element => element !== null && !element?.symbols); + const pasted = copiedPasted.past.filter(element => element !== null); + if (copied.length == copiedPasted.past.length) { + let names = Object.values(this.currentView.items).map(gs => gs.name); + for (let i = 0; i < copied.length; i++) { + const copiedIdsAndTypes = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getInTreeIdAndType(copied[i]); + const pastedIdsAndTypes = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getInTreeIdAndType(pasted[i]); + if (copiedIdsAndTypes.length === pastedIdsAndTypes.length) { + for (let j = 0; j < copiedIdsAndTypes.length; j++) { + if (copiedIdsAndTypes[j].id && pastedIdsAndTypes[j].id && copiedIdsAndTypes[j].type === pastedIdsAndTypes[j].type) { + let gaSrc = this.searchGaugeSettings(copiedIdsAndTypes[j]); + if (gaSrc) { + let gaDest = this.gaugesManager.createSettings(pastedIdsAndTypes[j].id, pastedIdsAndTypes[j].type); + gaDest.name = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getNextName(_gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.getPrefixGaugeName(pastedIdsAndTypes[j].type), names); + gaDest.property = JSON.parse(JSON.stringify(gaSrc.property)); + gaDest.hide = gaSrc.hide; + this.setGaugeSettings(gaDest); + this.checkGaugeAdded(gaDest); + } + } else { + console.error(`Inconsistent elements!`, `${copiedIdsAndTypes[j]}`, `${pastedIdsAndTypes[j]}`); + } + } + } else { + let copyGaugeSettings = this.searchGaugeSettings(copiedIdsAndTypes[i]); + if (copyGaugeSettings.property?.type === _gauges_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_25__.HtmlImageComponent.propertyWidgetType) { + let gaugeSettingsDest = this.gaugesManager.createSettings(pastedIdsAndTypes[i].id, pastedIdsAndTypes[i].type); + gaugeSettingsDest.name = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getNextName(_gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.getPrefixGaugeName(pastedIdsAndTypes[i].type), names); + const svgGuid = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getShortGUID('', '_'); + gaugeSettingsDest.property = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.replaceStringInObject(copyGaugeSettings.property, copyGaugeSettings.property.svgGuid, svgGuid); + this.setGaugeSettings(gaugeSettingsDest); + this.checkGaugeAdded(gaugeSettingsDest); + } else { + console.error('Between copied and pasted there are inconsistent elements!'); + } + } + } + this.checkSvgElementsMap(true); + } + } + } + /** + * event from svg-editor: svg element removed + * @param ele svg element + */ + onRemoveElement(ele) { + if (this.currentView && this.currentView.items && ele) { + for (let i = 0; i < ele.length; i++) { + if (this.currentView.items[ele[i].id]) { + delete this.currentView.items[ele[i].id]; + if (this.gaugesRef.hasOwnProperty(ele[i].id)) { + if (this.gaugesRef[ele[i].id].ref && this.gaugesRef[ele[i].id].ref['ngOnDestroy']) { + try { + this.gaugesRef[ele[i].id].ref['ngOnDestroy'](); + } catch (e) { + console.error(e); + } + } + } + } + } + } + } + /** + * set the fill color (to svg-editor) + * @param event color code + */ + setFillColor(event) { + let color = event; + if (color.charAt(0) === '#') { + color = color.slice(1); + } + let alfa = 100; + if (this.winRef.nativeWindow.svgEditor) { + this.winRef.nativeWindow.svgEditor.setColor(color, alfa, 'fill'); + } + // this.fillcolor; + } + /** + * set stroke color (to svg-editor) + * @param event color code + */ + setStrokeColor(event) { + let color = event; + if (color.charAt(0) === '#') { + color = color.slice(1); + } + let alfa = 100; + this.winRef.nativeWindow.svgEditor.setColor(color, alfa, 'stroke'); + // this.fillcolor; + } + /** + * set the marker to selected element (->, <->, <-) + * @param id marker id (start,mid,end) + * @param marker marker type + */ + onSetMarker(id, marker) { + if (marker >= 0) { + this.winRef.nativeWindow.svgEditor.setMarker(id, marker); + } + } + /** + * align the selected element + * @param letter align type (left,center,right,top,middle,bottom) + */ + onAlignSelected(letter) { + this.winRef.nativeWindow.svgEditor.alignSelectedElements(letter.charAt(0)); + } + /** + * select the zoom area function + */ + onZoomSelect() { + this.winRef.nativeWindow.svgEditor.clickZoom(); + } + /** + * show grid in canvas + */ + onShowGrid() { + this.gridOn = this.gridOn = !this.gridOn; + this.winRef.nativeWindow.svgEditor.clickExtension('view_grid'); + this.winRef.nativeWindow.svgEditor.enableGridSnapping(this.gridOn); + } + /** + * add image to view + * @param event selected file + */ + onSetImage(event) { + if (event.target.files) { + let filename = event.target.files[0].name; + this.imagefile = 'assets/images/' + event.target.files[0].name; + let fileToUpload = { + type: filename.split('.').pop().toLowerCase(), + name: filename.split('/').pop(), + data: null + }; + let self = this; + if (fileToUpload.type === 'svg') { + let reader = new FileReader(); + reader.onloadend = function (e) { + localStorage.setItem(fileToUpload.name, reader.result.toString()); + self.ctrlInitParams = fileToUpload.name; + self.setMode('own_ctrl-image'); + }; + reader.readAsText(event.target.files[0]); + } else { + this.getBase64Image(event.target.files[0], function (imgdata) { + if (self.winRef.nativeWindow.svgEditor.setUrlImageToAdd) { + self.winRef.nativeWindow.svgEditor.setUrlImageToAdd(imgdata); + } + self.setMode('image'); + }); + } + } + } + /** + * add image to view + * the image will be upload into server/_appdata/_upload_files + * @param event selected file + */ + onSetImageAsLink(event) { + if (event.target.files) { + let filename = event.target.files[0].name; + let fileToUpload = { + type: filename.split('.').pop().toLowerCase(), + name: filename.split('/').pop(), + data: null + }; + let reader = new FileReader(); + this.ctrlInitParams = null; + reader.onload = () => { + try { + fileToUpload.data = reader.result; + this.projectService.uploadFile(fileToUpload).subscribe(result => { + this.ctrlInitParams = result.location; + this.setMode('own_ctrl-image'); + }); + } catch (err) { + console.error(err); + } + }; + if (fileToUpload.type === 'svg') { + reader.readAsText(event.target.files[0]); + } else { + reader.readAsDataURL(event.target.files[0]); + } + } + } + /** + * convert image file to code to attach in svg + * @param file image file + * @param callback event for end load image + */ + getBase64Image(file, callback) { + var fr = new FileReader(); + fr.onload = function () { + callback(fr.result); + }; + fr.readAsDataURL(file); + } + /** + * set stroke to svg selected (joinmieter, joinround, joinbevel, capbutt, capsquare, capround) + * @param option stroke type + */ + onSetStrokeOption(option) { + this.winRef.nativeWindow.svgEditor.setStrokeOption(option); + } + /** + * set shadow to svg selected + * @param event shadow + */ + onSetShadowOption(event) { + this.winRef.nativeWindow.svgEditor.onSetShadowOption(event); + } + /** + * set font to svg selected + * @param font font family + */ + onFontFamilyChange(font) { + this.winRef.nativeWindow.svgEditor.setFontFamily(font); + } + /** + * align the svg text (left,middle,right) + * @param align type + */ + onTextAlignChange(align) { + this.winRef.nativeWindow.svgEditor.setTextAlign(align); + } + checkMySelectedToSetColor(bkcolor, color, elems) { + _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.initElementColor(bkcolor, color, elems); + } + /** + * check and set the special gauge like ngx-uplot, ngx-gauge, ... if added + * if return true then the GaugeSettings is changed have to set again + * @param ga + */ + checkGaugeAdded(ga) { + this.gaugesManager.chackSetModeParamToAddedGauge(ga, this.setModeParam); + let gauge = this.gaugesManager.initElementAdded(ga, this.resolver, this.viewContainerRef, false); + if (gauge) { + if (gauge !== true) { + if (!this.gaugesRef.hasOwnProperty(ga.id)) { + this.gaugesRef[ga.id] = { + type: ga.type, + ref: gauge + }; + } + } + this.setGaugeSettings(ga); + } + this.setModeParam = null; // reset the mode param to null, because the gauge is added and not a new one; + } + /** + * dialog to define hyperlink + */ + onMakeHyperlink() { + let dialogRef = this.dialog.open(DialogLinkProperty, { + data: { + url: 'https://' + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.url) { + this.winRef.nativeWindow.svgEditor.makeHyperlink(result.url); + } + }); + } + //#endregion + //#region Toolbar Top Events + /** + * save current project and launch the Test in new Windows 'lab' + */ + onStartCurrent() { + this.onSaveProject(); + this.winRef.nativeWindow.open('lab', 'MyTest', 'width=800,height=640,menubar=0'); + } + //#endregion + //#region Project Events + /** + * Save Project + * Save the current View + */ + onSaveProject(notify = false) { + if (this.currentView) { + this.currentView.svgcontent = this.getContent(); + this.saveView(this.currentView, notify); + } + } + //#endregion + //#region View Events (Add/Rename/Delete/...) + onAddDoc() { + let dialogRef = this.dialog.open(_view_property_view_property_component__WEBPACK_IMPORTED_MODULE_24__.ViewPropertyComponent, { + position: { + top: '60px' + }, + data: { + name: '', + profile: new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.DocProfile(), + type: _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.svg, + existingNames: this.hmi.views.map(v => v.name), + newView: true + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let view = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.View(_helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getShortGUID('v_'), result.type, result.name); + view.profile = result.profile; + this.hmi.views.push(view); + this.onSelectView(view); + this.saveView(this.currentView); + } + }); + } + /** + * Add View to Project with a default name View_[x] + */ + addView(name, type) { + if (this.hmi.views) { + let nn = 'View_'; + let idx = 1; + for (idx = 1; idx < this.hmi.views.length + 2; idx++) { + let found = false; + for (var i = 0; i < this.hmi.views.length; i++) { + if (this.hmi.views[i].name === nn + idx) { + found = true; + break; + } + } + if (!found) { + break; + } + } + if (!name) { + name = nn + idx; + } + let v = this.projectService.getNewView(name, type); + this.hmi.views.push(v); + this.onSelectView(v); + this.saveView(this.currentView); + return v.id; + } + return null; + } + /** + * Clone the View, copy and change all ids + * @param view + */ + onCloneView(view) { + if (view) { + let nn = 'View_'; + let idx = 1; + for (idx = 1; idx < this.hmi.views.length + 2; idx++) { + let found = false; + for (var i = 0; i < this.hmi.views.length; i++) { + if (this.hmi.views[i].name === nn + idx) { + found = true; + break; + } + } + if (!found) { + break; + } + } + let torename = { + content: JSON.stringify(view), + id: '' + }; + // change all gauge ids + let idrenamed = []; + for (let key in view.items) { + torename.id = key; + let newid = this.winRef.nativeWindow.svgEditor.renameSvgExtensionId(torename); + idrenamed.push(newid); + } + let strv = this.winRef.nativeWindow.svgEditor.renameAllSvgExtensionId(torename.content, idrenamed); + let v = JSON.parse(strv); + v.id = 'v_' + _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getShortGUID(); + v.name = nn + idx; + this.hmi.views.push(v); + this.onSelectView(v); + this.saveView(this.currentView); + } + } + onViewPropertyChanged(view) { + this.winRef.nativeWindow.svgEditor.setDocProperty(view.name, view.profile.width, view.profile.height, view.profile.bkcolor); + this.onSelectView(view); + } + /** + * select the view, save current vieww before + * @param view selected view to load resource + */ + onSelectView(view, force = true) { + if (!force && this.currentView?.id === view?.id) { + return; + } + if (this.currentView) { + this.currentView.svgcontent = this.getContent(); + // this.hmi.views[this.currentView].svgcontent = this.winRef.nativeWindow.svgEditor.getSvgString(); + } else { + this.setFillColor(this.colorFill); + } + if (this.currentView) { + this.saveView(this.currentView); + } + this.currentView = view; + if (this.currentView.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.cards) { + this.editorMode = EditorModeType.CARDS; + } else if (this.currentView.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.ViewType.maps) { + this.editorMode = EditorModeType.MAPS; + } else { + this.editorMode = EditorModeType.SVG; + } + localStorage.setItem('@frango.webeditor.currentview', this.currentView.name); + this.loadView(this.currentView); + } + /** + * check with the current view + * @param view view to check + */ + isViewActive(view) { + return this.currentView && this.currentView.name === view.name; + } + /** + * Import view from file (exported in json format [View name].json) + */ + onImportView() { + let ele = document.getElementById('viewFileUpload'); + ele.click(); + } + /** + * open Project event file loaded + * @param event file resource + */ + onViewFileChangeListener(event) { + let text = []; + let files = event.srcElement.files; + let input = event.target; + let reader = new FileReader(); + reader.onload = data => { + let view = JSON.parse(reader.result.toString()); + if (this.projectService.verifyView(view)) { + let idx = 1; + let startname = view.name; + let existView = null; + while (existView = this.hmi.views.find(v => v.name === view.name)) { + view.name = startname + '_' + idx++; + } + view.id = 'v_' + _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getShortGUID(); + this.hmi.views.push(view); + this.onSelectView(view); + this.saveView(this.currentView); + } + // this.projectService.setProject(prj, true); + }; + + reader.onerror = function () { + let msg = 'Unable to read ' + input.files[0]; + // this.translateService.get('msg.project-load-error', {value: input.files[0]}).subscribe((txt: string) => { msg = txt }); + alert(msg); + }; + reader.readAsText(input.files[0]); + this.viewFileImportInput.nativeElement.value = null; + } + //#endregion + //#region Panels State + /** + * Load the left panels state copied in localstorage + */ + loadPanelState() { + let ps = localStorage.getItem('@frango.webeditor.panelsState'); + this.panelsState.enabled = true; + if (ps) { + this.panelsState = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.mergeDeep(this.panelsState, JSON.parse(ps)); + } + } + /** + * Save the panels state in localstorage (after every toggled) + */ + savePanelState() { + if (this.panelsState.enabled) { + if (this.panelsState.panelViewHeight < 100) { + this.panelsState.panelViewHeight = 100; + } + localStorage.setItem('@frango.webeditor.panelsState', JSON.stringify(this.panelsState)); + } + } + //#endregion + //#region Interactivity + /** + * to check from DOM and to control open close interaction panel + * @param ele selected gauge element + */ + onInteractivityClick(ele) { + if (ele?.type && _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.isGauge(ele.type)) { + this.onGaugeEditEx(); + } + } + /** + * callback to open edit gauge property form (from GaugeBase) + * @param event + */ + onGaugeEdit(event) { + this.openEditGauge(this.gaugePanelComponent?.settings, data => { + this.setGaugeSettings(data); + }); + } + /** + * callback to open edit gauge property form (from selected element context menu) + */ + onGaugeEditEx() { + setTimeout(() => { + this.gaugePanelComponent.onEdit(); + }, 500); + } + isWithEvents(type) { + return this.gaugesManager.isWithEvents(type); + } + isWithActions(type) { + return this.gaugesManager.isWithActions(type); + } + /** + * edit the gauges/chart settings property, the settings are composed from gauge id... and property + * in property will be the result values saved + * + * @param settings + * @param callback + */ + openEditGauge(settings, callback) { + if (!settings) { + return; + } + let tempsettings = JSON.parse(JSON.stringify(settings)); + let hmi = this.projectService.getHmi(); + let dlgType = _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.getEditDialogTypeToUse(settings.type); + let bitmaskSupported = _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.isBitmaskSupported(settings.type); + let eventsSupported = this.isWithEvents(settings.type); + let actionsSupported = this.isWithActions(settings.type); + let defaultValue = _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.getDefaultValue(settings.type); + let names = Object.values(this.currentView.items).map(gs => gs.name); + // set default name + if (!tempsettings.name) { + tempsettings.name = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getNextName(_gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager.getPrefixGaugeName(settings.type), names); + } + let dialogRef; + let elementWithLanguageText; + if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Chart) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + views: hmi.views, + dlgType: dlgType, + charts: this.projectService.getCharts(), + names: names + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Graph) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + views: hmi.views, + dlgType: dlgType, + graphs: this.projectService.getGraphs(), + names: names + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Iframe) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + dlgType: dlgType, + names: names + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Gauge) { + dialogRef = this.dialog.open(_gauges_controls_html_bag_bag_property_bag_property_component__WEBPACK_IMPORTED_MODULE_12__.BagPropertyComponent, { + position: { + top: '30px' + }, + data: { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + dlgType: dlgType, + names: names + } + }); + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Pipe) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + dlgType: dlgType, + names: names, + withEvents: eventsSupported, + withActions: actionsSupported + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Slider) { + dialogRef = this.dialog.open(_gauges_controls_slider_slider_property_slider_property_component__WEBPACK_IMPORTED_MODULE_13__.SliderPropertyComponent, { + position: { + top: '60px' + }, + data: { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + withEvents: eventsSupported, + withActions: actionsSupported, + names: names + } + }); + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Switch) { + dialogRef = this.dialog.open(_gauges_controls_html_switch_html_switch_property_html_switch_property_component__WEBPACK_IMPORTED_MODULE_20__.HtmlSwitchPropertyComponent, { + position: { + top: '60px' + }, + data: { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + withEvents: eventsSupported, + withActions: actionsSupported, + withBitmask: bitmaskSupported, + views: hmi.views, + view: this.currentView, + scripts: this.projectService.getScripts(), + inputs: Object.values(this.currentView.items).filter(gs => gs.name && (gs.id.startsWith('HXS_') || gs.id.startsWith('HXI_'))), + names: names + } + }); + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Table || dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Panel) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + dlgType: dlgType, + names: names + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Video) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + dlgType: dlgType, + names: names, + withActions: actionsSupported + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Input) { + dialogRef = this.dialog.open(_gauges_controls_html_input_input_property_input_property_component__WEBPACK_IMPORTED_MODULE_30__.InputPropertyComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + withEvents: eventsSupported, + withActions: actionsSupported, + inputs: Object.values(this.currentView.items).filter(gs => gs.name && (gs.id.startsWith('HXS_') || gs.id.startsWith('HXI_'))), + withBitmask: bitmaskSupported, + languageTextEnabled: !!this.isSelectedElementToEnableLanguageTextSettings() + } + }); + } else if (dlgType === _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugeDialogType.Scheduler) { + this.gaugeDialog.type = dlgType; + this.gaugeDialog.data = { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + withEvents: eventsSupported, + withActions: actionsSupported, + languageTextEnabled: !!this.isSelectedElementToEnableLanguageTextSettings() + }; + if (!this.sidePanel.opened) { + this.sidePanel.toggle(); + } + this.reloadGaugeDialog = !this.reloadGaugeDialog; + return; + } else { + //!TODO to be refactored (GaugePropertyComponent) + elementWithLanguageText = this.isSelectedElementToEnableLanguageTextSettings(); + let title = this.getGaugeTitle(settings.type); + dialogRef = this.dialog.open(_gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_6__.GaugePropertyComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: { + settings: tempsettings, + devices: Object.values(this.projectService.getDevices()), + title: title, + views: hmi.views, + view: this.currentView, + dlgType: dlgType, + withEvents: eventsSupported, + withActions: actionsSupported, + default: defaultValue, + inputs: Object.values(this.currentView.items).filter(gs => gs.name && (gs.id.startsWith('HXS_') || gs.id.startsWith('HXI_'))), + names: names, + scripts: this.projectService.getScripts(), + withBitmask: bitmaskSupported, + languageTextEnabled: !!elementWithLanguageText + } + }); + } + dialogRef.afterClosed().subscribe(result => { + if (result) { + callback(result.settings); + this.saveView(this.currentView); + this.gaugesManager.initInEditor(result.settings, this.resolver, this.viewContainerRef, elementWithLanguageText); + this.checkSvgElementsMap(true); + } + }); + } + isSelectedElementToEnableLanguageTextSettings() { + const elementsSelected = this.winRef.nativeWindow.svgEditor.getSelectedElements(); + return elementsSelected[0]?.tagName?.toLowerCase() === 'text' ? elementsSelected[0] : null; + } + editBindOfTags(selected) { + if (!selected) { + return; + } + const gaugesSettings = []; + const elesSelected = this.winRef.nativeWindow.svgEditor.getSelectedElements(); + const tagsIds = new Set(); + if (elesSelected?.length) { + const eleIdsAndTypes = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getInTreeIdAndType(elesSelected[0]); + if (eleIdsAndTypes?.length) { + for (let i = 0; i < eleIdsAndTypes.length; i++) { + let gaSrc = this.searchGaugeSettings(eleIdsAndTypes[i]); + const variablesIds = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.searchValuesByAttribute(gaSrc, 'variableId'); + if (variablesIds?.length) { + gaugesSettings.push(gaSrc); + variablesIds.forEach(id => { + tagsIds.add(id); + }); + } + } + } + } + const dialogRef = this.dialog.open(_tags_ids_config_tags_ids_config_component__WEBPACK_IMPORTED_MODULE_23__.TagsIdsConfigComponent, { + position: { + top: '60px' + }, + data: { + devices: Object.values(this.projectService.getDevices()), + tagsIds: Array.from(tagsIds).map(id => ({ + srcId: id, + destId: id + })) + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result?.length) { + gaugesSettings.forEach(gaSettings => { + result.forEach(tagIdRef => { + _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.changeAttributeValue(gaSettings, 'variableId', tagIdRef.srcId, tagIdRef.destId); + }); + }); + this.saveView(this.currentView); + } + }); + } + onGaugeDialogChanged(settings) { + if (settings) { + this.setGaugeSettings(settings); + this.saveView(this.currentView); + let result_gauge = this.gaugesManager.initInEditor(settings, this.resolver, this.viewContainerRef); + if (result_gauge?.element && result_gauge.element.id !== settings.id) { + // by init a path we need to change the id + delete this.currentView.items[settings.id]; + settings.id = result_gauge.element.id; + this.saveView(this.currentView); + } + } + } + getGaugeTitle(type) { + if (type.startsWith(_gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_14__.HtmlInputComponent.TypeTag)) { + return this.translateService.instant('editor.controls-input-settings'); + } else if (type.startsWith(_gauges_controls_value_value_component__WEBPACK_IMPORTED_MODULE_17__.ValueComponent.TypeTag)) { + return this.translateService.instant('editor.controls-output-settings'); + } else if (type.startsWith(_gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_15__.HtmlButtonComponent.TypeTag)) { + return this.translateService.instant('editor.controls-button-settings'); + } else if (type.startsWith(_gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_16__.HtmlSelectComponent.TypeTag)) { + return this.translateService.instant('editor.controls-select-settings'); + } else if (type.startsWith(_gauges_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_18__.GaugeProgressComponent.TypeTag)) { + return this.translateService.instant('editor.controls-progress-settings'); + } else if (type.startsWith(_gauges_controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_19__.GaugeSemaphoreComponent.TypeTag)) { + return this.translateService.instant('editor.controls-semaphore-settings'); + } else { + return this.translateService.instant('editor.controls-shape-settings'); + } + } + //#endregion + onAddResource() { + let dialogRef = this.dialog.open(_resources_lib_images_lib_images_component__WEBPACK_IMPORTED_MODULE_11__.LibImagesComponent, { + disableClose: true, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (result) { + this.imagefile = result; + let self = this; + if (this.imagefile.split('.').pop().toLowerCase() === 'svg') { + fetch(this.imagefile).then(r => r.text()).then(text => { + if (self.winRef.nativeWindow.svgEditor.setSvgImageToAdd) { + self.winRef.nativeWindow.svgEditor.setSvgImageToAdd(text); + } + self.setMode('svg-image'); + }); + } else if (this.resourcesService.isVideo(this.imagefile)) { + this.setModeParam = this.imagefile; + self.setMode('own_ctrl-video'); + } + // } else { + // this.getBase64Image(result, function (imgdata) { + // if (self.winRef.nativeWindow.svgEditor.setUrlImageToAdd) { + // self.winRef.nativeWindow.svgEditor.setUrlImageToAdd(imgdata); + // } + // self.setMode('image'); + // }); + // } + } + } + }); + } + + onWidgetKiosk() { + let dialogRef = this.dialog.open(_resources_kiosk_widgets_kiosk_widgets_component__WEBPACK_IMPORTED_MODULE_28__.KioskWidgetsComponent, { + disableClose: true, + position: { + top: '60px' + }, + width: '1020px' + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.libWidgetsService.refreshResources(); + } + }); + } + isWithShadow() { + if (this.selectedElement) {} + return false; + } + fileNew() {} + checkValid(hmi) { + if (!hmi.views) { + hmi.views = []; + return false; + } + return true; + } + clearSelection() { + this.winRef.nativeWindow.svgEditor.clearSelection(); + } + cloneElement() { + this.winRef.nativeWindow.svgEditor.clickExtension('view_grid'); + } + onHideSelectionToggle(checked) { + let gaugeSettings = this.getGaugeSettings(this.selectedElement); + if (gaugeSettings) { + gaugeSettings.hide = checked; + this.setGaugeSettings(gaugeSettings); + } + } + onLockSelectionToggle(checked) { + let gaugeSettings = this.getGaugeSettings(this.selectedElement); + if (gaugeSettings) { + gaugeSettings.lock = checked; + this.setGaugeSettings(gaugeSettings); + this.winRef.nativeWindow.svgEditor.lockSelection(gaugeSettings.lock); + } + } + checkSelectedGaugeSettings() { + let gaugeSettings = this.getGaugeSettings(this.selectedElement); + this.gaugeSettingsHide = gaugeSettings?.hide ?? false; + this.gaugeSettingsLock = gaugeSettings?.lock ?? false; + this.winRef.nativeWindow.svgEditor.lockSelection(gaugeSettings?.lock); + } + flipSelected(fliptype) {} + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _helpers_windowref__WEBPACK_IMPORTED_MODULE_5__.WindowRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialog + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ChangeDetectorRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_36__.TranslateService + }, { + type: _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewContainerRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ComponentFactoryResolver + }, { + type: _services_resources_service__WEBPACK_IMPORTED_MODULE_29__.ResourcesService + }, { + type: _resources_lib_widgets_lib_widgets_service__WEBPACK_IMPORTED_MODULE_26__.LibWidgetsService + }]; + static propDecorators = { + gaugePanelComponent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['gaugepanel', { + static: false + }] + }], + viewFileImportInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['viewFileImportInput', { + static: false + }] + }], + cardsview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['cardsview', { + static: false + }] + }], + sidePanel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['sidePanel', { + static: false + }] + }], + svgSelectorPanel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['svgSelectorPanel', { + static: false + }] + }], + svgPreview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['svgpreview', { + static: false + }] + }], + mapsView: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewChild, + args: ['mapsView', { + static: false + }] + }] + }; +}; +EditorComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_35__.Component)({ + template: _editor_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_editor_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _helpers_windowref__WEBPACK_IMPORTED_MODULE_5__.WindowRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialog, _angular_core__WEBPACK_IMPORTED_MODULE_35__.ChangeDetectorRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_36__.TranslateService, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_7__.GaugesManager, _angular_core__WEBPACK_IMPORTED_MODULE_35__.ViewContainerRef, _angular_core__WEBPACK_IMPORTED_MODULE_35__.ComponentFactoryResolver, _services_resources_service__WEBPACK_IMPORTED_MODULE_29__.ResourcesService, _resources_lib_widgets_lib_widgets_service__WEBPACK_IMPORTED_MODULE_26__.LibWidgetsService])], EditorComponent); + +let DialogLinkProperty = class DialogLinkProperty { + dialogRef; + data; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onNoClick() { + this.dialogRef.close(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_35__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +DialogLinkProperty = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_35__.Component)({ + selector: 'dialog-link-property', + template: _linkproperty_dialog_html_ngResource__WEBPACK_IMPORTED_MODULE_2__ +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialogRef, Object])], DialogLinkProperty); + +var EditorModeType; +(function (EditorModeType) { + EditorModeType[EditorModeType["SVG"] = 0] = "SVG"; + EditorModeType[EditorModeType["CARDS"] = 1] = "CARDS"; + EditorModeType[EditorModeType["MAPS"] = 2] = "MAPS"; +})(EditorModeType || (EditorModeType = {})); + +/***/ }), + +/***/ 71162: +/*!***************************************************************!*\ + !*** ./src/app/editor/graph-config/graph-config.component.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GraphConfigComponent: () => (/* binding */ GraphConfigComponent) +/* harmony export */ }); +/* harmony import */ var _graph_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph-config.component.html?ngResource */ 57715); +/* harmony import */ var _graph_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./graph-config.component.css?ngResource */ 34074); +/* harmony import */ var _graph_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_graph_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _models_graph__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_models/graph */ 88008); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../gui-helpers/edit-name/edit-name.component */ 79962); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _graph_source_edit_graph_source_edit_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./graph-source-edit/graph-source-edit.component */ 56932); +/* harmony import */ var _gui_helpers_edit_placeholder_edit_placeholder_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../gui-helpers/edit-placeholder/edit-placeholder.component */ 63167); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + +let GraphConfigComponent = class GraphConfigComponent { + dialog; + translateService; + dialogRef; + params; + projectService; + selectedGraph = new _models_graph__WEBPACK_IMPORTED_MODULE_5__.Graph(_models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphType.bar); + data = { + graphs: [], + devices: [] + }; + lineColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.lineColor; + barXType = _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarXType; + xTypeValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarXType, _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarXType.value); + xTypeDate = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarXType, _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarXType.date); + barDateFunctionType = _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarDateFunctionType; + dateFunction = new _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarFunction(); + constructor(dialog, translateService, dialogRef, params, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.params = params; + this.projectService = projectService; + this.loadData(); + } + ngOnInit() { + Object.keys(this.barXType).forEach(key => { + this.translateService.get(this.barXType[key]).subscribe(txt => { + this.barXType[key] = txt; + }); + }); + Object.keys(this.barDateFunctionType).forEach(key => { + this.translateService.get(this.barDateFunctionType[key]).subscribe(txt => { + this.barDateFunctionType[key] = txt; + }); + }); + } + loadData() { + this.data.graphs = JSON.parse(JSON.stringify(this.projectService.getGraphs())); + this.data.devices = []; + let devices = this.projectService.getDevices(); + Object.values(devices).forEach(device => { + let devicobj = Object.assign({}, device); + devicobj.tags = device.tags; + this.data.devices.push(devicobj); + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.projectService.setGraphs(this.data.graphs); + this.dialogRef.close({ + graphs: this.data.graphs, + selected: this.selectedGraph + }); + } + onAddNewCategory() {} + isSelection() { + return this.selectedGraph && this.selectedGraph.id ? true : false; + } + onEditGraph(item) { + let title = 'dlg.item-title'; + let label = 'dlg.item-name'; + let error = 'dlg.item-name-error'; + let exist = this.data.graphs.map(g => { + if (!item || item.name !== g.name) { + return g.name; + } + }); + this.translateService.get(title).subscribe(txt => { + title = txt; + }); + this.translateService.get(label).subscribe(txt => { + label = txt; + }); + this.translateService.get(error).subscribe(txt => { + error = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_6__.EditNameComponent, { + position: { + top: '60px' + }, + data: { + name: item ? item.name : '', + title: title, + label: label, + exist: exist, + error: error + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.name && result.name.length > 0) { + if (item) { + item.name = result.name; + } else { + let graph = new _models_graph__WEBPACK_IMPORTED_MODULE_5__.Graph(_models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphType.bar, _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getShortGUID(), result.name); + this.data.graphs.push(graph); + this.onSelectGraph(graph); + } + } + }); + } + onAddGraphSource(graph) { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_8__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: null, + multiSelection: false + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let tagsId = []; + if (result.variablesId) { + tagsId = result.variablesId; + } else if (result.variableId) { + tagsId.push(result.variableId); + } + tagsId.forEach(id => { + let device = _models_device__WEBPACK_IMPORTED_MODULE_4__.DevicesUtils.getDeviceFromTagId(this.data.devices, id); + let tag = _models_device__WEBPACK_IMPORTED_MODULE_4__.DevicesUtils.getTagFromTagId([device], id); + if (tag) { + let exist = graph.sources.find(source => source.id === tag.id); + if (!exist) { + let color = this.getNextColor(); + const myCopiedObject = { + id: tag.id, + name: this.getTagLabel(tag), + device: device.name, + label: this.getTagLabel(tag), + color: color, + fill: color + }; + graph.sources.push(myCopiedObject); + } + } + }); + } + }); + } + onAddGraphSourcePlaceholder(graph) { + let dialogRef = this.dialog.open(_gui_helpers_edit_placeholder_edit_placeholder_component__WEBPACK_IMPORTED_MODULE_10__.EditPlaceholderComponent, { + disableClose: true, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(placeholder => { + if (placeholder) { + const label = placeholder; + placeholder = '@' + placeholder; + let color = this.getNextColor(); + const myCopiedObject = { + id: placeholder, + name: placeholder, + device: '@', + label: label, + color: color, + fill: color + }; + graph.sources.push(myCopiedObject); + } + }); + } + onRemoveGraph(index) { + let msg = ''; + this.translateService.get('msg.graph-remove', { + value: this.data.graphs[index].name + }).subscribe(txt => { + msg = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_7__.ConfirmDialogComponent, { + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.data.graphs.splice(index, 1); + this.selectedGraph = new _models_graph__WEBPACK_IMPORTED_MODULE_5__.Graph(_models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphType.bar); + } + }); + } + editGraphSource(source) { + let dialogRef = this.dialog.open(_graph_source_edit_graph_source_edit_component__WEBPACK_IMPORTED_MODULE_9__.GraphSourceEditComponent, { + position: { + top: '60px' + }, + data: { + id: source.id, + device: source.device, + name: source.name, + label: source.label, + color: source.color, + fill: source.fill + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + source.label = result.label; + source.color = result.color; + source.fill = result.fill; + } + }); + } + removeGraphSource(source) { + for (let i = 0; i < this.selectedGraph.sources.length; i++) { + if (this.selectedGraph.sources[i].id === source.id) { + this.selectedGraph.sources.splice(i, 1); + break; + } + } + } + onSelectGraph(item) { + this.selectedGraph = item; + if (!this.selectedGraph.type) { + this.selectedGraph.type = _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphType.bar; + } + if (!this.selectedGraph.property) { + this.selectedGraph.property = new _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarProperty(); + } + this.checkPropertyFunction(this.selectedGraph.property); + } + isGraphSelected(item) { + if (item === this.selectedGraph) { + return 'mychips-selected'; + } + } + onGraphXTypeChanged(type) { + if (this.selectedGraph) { + this.selectedGraph.property.xtype = type; + this.checkPropertyFunction(this.selectedGraph.property); + } + } + onGraphDateFunctionTypeChanged(type) { + console.log(type); + } + checkPropertyFunction(property) { + if (property) { + if (property.xtype === this.xTypeDate) { + if (!property.function) { + property.function = new _models_graph__WEBPACK_IMPORTED_MODULE_5__.GraphBarDateFunction(); + } + this.dateFunction = property.function; + } + } + } + getTagLabel(tag) { + if (tag.label) { + return tag.label; + } else { + return tag.name; + } + } + getDeviceTagName(source) { + if (source.device === '@') { + return source.name; + } + let devices = this.data.devices.filter(x => x.name === source.device); + if (devices && devices.length > 0) { + let tags = Object.values(devices[0].tags); + for (let i = 0; i < tags.length; i++) { + if (source.id === tags[i].id) { + return this.getTagLabel(tags[i]); + } + } + } + return ''; + } + getNextColor() { + for (let x = 0; x < this.lineColor.length; x++) { + let found = false; + if (this.selectedGraph.sources) { + for (let i = 0; i < this.selectedGraph.sources.length; i++) { + if (this.selectedGraph.sources[i].color === this.lineColor[x]) { + found = true; + } + } + } + if (!found) { + return this.lineColor[x]; + } + } + return _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.lineColor[0]; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; +}; +GraphConfigComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_13__.Component)({ + selector: 'app-graph-config', + template: _graph_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_graph_config_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialogRef, Object, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], GraphConfigComponent); + + +/***/ }), + +/***/ 56932: +/*!**************************************************************************************!*\ + !*** ./src/app/editor/graph-config/graph-source-edit/graph-source-edit.component.ts ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GraphSourceEditComponent: () => (/* binding */ GraphSourceEditComponent) +/* harmony export */ }); +/* harmony import */ var _graph_source_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph-source-edit.component.html?ngResource */ 84833); +/* harmony import */ var _graph_source_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./graph-source-edit.component.css?ngResource */ 89648); +/* harmony import */ var _graph_source_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_graph_source_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/graph */ 88008); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let GraphSourceEditComponent = class GraphSourceEditComponent { + dialogRef; + data; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.defaultColor; + chartAxesType = [1, 2, 3, 4]; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphSource, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +GraphSourceEditComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-graph-source-edit', + template: _graph_source_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_graph_source_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphSource])], GraphSourceEditComponent); + + +/***/ }), + +/***/ 98555: +/*!*************************************************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-header-item-property/layout-header-item-property.component.ts ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LayoutHeaderItemPropertyComponent: () => (/* binding */ LayoutHeaderItemPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _layout_header_item_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./layout-header-item-property.component.html?ngResource */ 77185); +/* harmony import */ var _layout_header_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout-header-item-property.component.scss?ngResource */ 70288); +/* harmony import */ var _layout_header_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_layout_header_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 33839); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/define */ 94107); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let LayoutHeaderItemPropertyComponent = class LayoutHeaderItemPropertyComponent { + projectService; + dialogRef; + data; + item; + icons$; + filteredIcons$; + filterText = ''; + filterTextSubject = new rxjs__WEBPACK_IMPORTED_MODULE_5__.BehaviorSubject(''); + headerType = ['button', 'label', 'image']; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.defaultColor; + constructor(projectService, dialogRef, data) { + this.projectService = projectService; + this.dialogRef = dialogRef; + this.data = data; + this.item = data; + this.icons$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)(_helpers_define__WEBPACK_IMPORTED_MODULE_3__.Define.MaterialIconsRegular).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.map)(data => data.split('\n')), (0,rxjs__WEBPACK_IMPORTED_MODULE_7__.map)(lines => lines.map(line => line.split(' ')[0])), (0,rxjs__WEBPACK_IMPORTED_MODULE_7__.map)(names => names.filter(name => !!name))); + this.filteredIcons$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_8__.combineLatest)([this.icons$, this.filterTextSubject.asObservable()]).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.map)(([icons, filterText]) => icons.filter(icon => icon.toLowerCase().includes(filterText.toLowerCase())))); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.item); + } + onFilterChange() { + this.filterTextSubject.next(this.filterText); + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +LayoutHeaderItemPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-layout-header-item-property', + template: _layout_header_item_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_layout_header_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef, Object])], LayoutHeaderItemPropertyComponent); + + +/***/ }), + +/***/ 42350: +/*!*********************************************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-menu-item-property/layout-menu-item-property.component.ts ***! + \*********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LayoutMenuItemPropertyComponent: () => (/* binding */ LayoutMenuItemPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _layout_menu_item_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./layout-menu-item-property.component.html?ngResource */ 82033); +/* harmony import */ var _layout_menu_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout-menu-item-property.component.scss?ngResource */ 74244); +/* harmony import */ var _layout_menu_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_layout_menu_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../gui-helpers/sel-options/sel-options.component */ 84804); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ 33839); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/define */ 94107); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_models/user */ 252); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../_services/user.service */ 96155); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../_services/settings.service */ 22044); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let LayoutMenuItemPropertyComponent = class LayoutMenuItemPropertyComponent { + projectService; + userService; + cdr; + settingsService; + dialogRef; + data; + selected = []; + options = []; + icons$; + filteredIcons$; + filterText = ''; + filterTextSubject = new rxjs__WEBPACK_IMPORTED_MODULE_10__.BehaviorSubject(''); + linkAddress = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.LinkType.address; + linkAlarms = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.LinkType.alarms; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_11__.Subject(); + seloptions; + constructor(projectService, userService, cdr, settingsService, dialogRef, data) { + this.projectService = projectService; + this.userService = userService; + this.cdr = cdr; + this.settingsService = settingsService; + this.dialogRef = dialogRef; + this.data = data; + this.data.item.children = this.data.item.children || []; + this.icons$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_12__.of)(_helpers_define__WEBPACK_IMPORTED_MODULE_3__.Define.MaterialIconsRegular).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_13__.map)(data => data.split('\n')), (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.map)(lines => lines.map(line => line.split(' ')[0])), (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.map)(names => names.filter(name => !!name))); + this.filteredIcons$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_14__.combineLatest)([this.icons$, this.filterTextSubject.asObservable()]).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_13__.map)(([icons, filterText]) => icons.filter(icon => icon.toLowerCase().includes(filterText.toLowerCase())))); + } + ngAfterViewInit() { + if (this.isRolePermission()) { + this.userService.getRoles().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_13__.map)(roles => roles.sort((a, b) => a.index - b.index)), (0,rxjs__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe(roles => { + this.options = roles?.map(role => ({ + id: role.id, + label: role.name + })); + this.selected = this.options.filter(role => this.data.permissionRoles?.enabled?.includes(role.id)); + }, err => { + console.error('get Roles err: ' + err); + }); + } else { + this.selected = _models_user__WEBPACK_IMPORTED_MODULE_4__.UserGroups.ValueToGroups(this.data.permission); + this.options = _models_user__WEBPACK_IMPORTED_MODULE_4__.UserGroups.Groups; + } + this.cdr.detectChanges(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.isRolePermission()) { + if (!this.data.permissionRoles) { + this.data.permissionRoles = { + enabled: null + }; + } + this.data.permissionRoles.enabled = this.seloptions.selected?.map(role => role.id); + } else { + this.data.permission = _models_user__WEBPACK_IMPORTED_MODULE_4__.UserGroups.GroupsToValue(this.seloptions.selected); + } + this.dialogRef.close(this.data); + //Need to check this! + this.data.item.children = this.data.item.children || []; + } + /** + * add image to view + * @param event selected file + */ + onSetImage(event) { + if (event.target.files) { + let filename = event.target.files[0].name; + let fileToUpload = { + type: filename.split('.').pop().toLowerCase(), + name: filename.split('/').pop(), + data: null + }; + let reader = new FileReader(); + reader.onload = () => { + try { + fileToUpload.data = reader.result; + this.projectService.uploadFile(fileToUpload).subscribe(result => { + this.data.item.image = result.location; + this.data.item.icon = null; + this.cdr.detectChanges(); + }); + } catch (err) { + console.error(err); + } + }; + if (fileToUpload.type === 'svg') { + reader.readAsText(event.target.files[0]); + } else { + reader.readAsDataURL(event.target.files[0]); + } + } + } + onFilterChange() { + this.filterTextSubject.next(this.filterText); + } + onAddChild() { + const child = new _models_hmi__WEBPACK_IMPORTED_MODULE_5__.NaviItem(); + child.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getShortGUID(); + child.text = 'New Submenu Item'; + this.data.item.children = this.data.item.children || []; + this.data.item.children.push(child); + console.log('Added child:', child, 'Total children:', this.data.item.children); + this.cdr.detectChanges(); + } + onDeleteChild(index) { + this.data.item.children.splice(index, 1); + this.cdr.detectChanges(); + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_6__.ProjectService + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_7__.UserService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.ChangeDetectorRef + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_8__.SettingsService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + seloptions: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.ViewChild, + args: [_gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_2__.SelOptionsComponent, { + static: false + }] + }] + }; +}; +LayoutMenuItemPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_16__.Component)({ + selector: 'app-layout-menu-item-property', + template: _layout_menu_item_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_layout_menu_item_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_6__.ProjectService, _services_user_service__WEBPACK_IMPORTED_MODULE_7__.UserService, _angular_core__WEBPACK_IMPORTED_MODULE_16__.ChangeDetectorRef, _services_settings_service__WEBPACK_IMPORTED_MODULE_8__.SettingsService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialogRef, Object])], LayoutMenuItemPropertyComponent); + + +/***/ }), + +/***/ 51560: +/*!*********************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-property.component.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LayoutPropertyComponent: () => (/* binding */ LayoutPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _layout_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./layout-property.component.html?ngResource */ 72615); +/* harmony import */ var _layout_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout-property.component.scss?ngResource */ 17006); +/* harmony import */ var _layout_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_layout_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_helpers/define */ 94107); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_resources__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_models/resources */ 93226); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../_services/resources.service */ 41878); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ 13379); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../gauges/gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../gauges/controls/html-button/html-button.component */ 66843); +/* harmony import */ var _ctrl_ngx_codemirror__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @ctrl/ngx-codemirror */ 67476); +/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! codemirror/mode/css/css */ 92863); +/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var _layout_menu_item_property_layout_menu_item_property_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./layout-menu-item-property/layout-menu-item-property.component */ 42350); +/* harmony import */ var _layout_header_item_property_layout_header_item_property_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./layout-header-item-property/layout-header-item-property.component */ 98555); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + + + + + +let LayoutPropertyComponent = class LayoutPropertyComponent { + data; + dialog; + dialogRef; + projectService; + changeDetector; + translateService; + resourcesService; + draggableListLeft = []; + headerItems; + layout; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.defaultColor; + fonts = _helpers_define__WEBPACK_IMPORTED_MODULE_4__.Define.fonts; + anchorType = ['left', 'center', 'right']; + loginInfoType = ['nothing', 'username', 'fullname', 'both']; + languageShowModeType = ['nothing', 'simple', 'key', 'fullname']; + currentDateTime; + unsubscribeTimer$ = new rxjs__WEBPACK_IMPORTED_MODULE_13__.Subject(); + startView; + sideMode; + resources = []; + navMode; + navType; + notifyMode; + zoomMode; + inputMode = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputModeType; + headerMode = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.HeaderBarModeType; + logo = null; + loginOverlayColor = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.LoginOverlayColorType; + ready = false; + CodeMirror; + codeMirrorContent; + codeMirrorOptions = { + lineNumbers: true, + theme: 'material', + mode: 'css', + lint: true + }; + expandedItems = new Set(); + expandableNavItems = [_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItemType, _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItemType.text), _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItemType, _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItemType.inline)]; + constructor(data, dialog, dialogRef, projectService, changeDetector, translateService, resourcesService) { + this.data = data; + this.dialog = dialog; + this.dialogRef = dialogRef; + this.projectService = projectService; + this.changeDetector = changeDetector; + this.translateService = translateService; + this.resourcesService = resourcesService; + data.layout = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.mergeDeep(new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.LayoutSettings(), data.layout); + this.startView = data.layout.start; + this.sideMode = data.layout.navigation.mode; + if (!data.layout.navigation.items) { + data.layout.navigation.items = []; + } + this.headerItems = data.layout.header.items ?? []; + this.draggableListLeft = data.layout.navigation.items; + this.resourcesService.getResources(_models_resources__WEBPACK_IMPORTED_MODULE_6__.ResourceType.images).subscribe(result => { + if (result) { + result.groups.forEach(group => { + this.resources.push(...group.items); + }); + } + }); + } + ngOnInit() { + this.navMode = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviModeType; + this.navType = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItemType; + this.notifyMode = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NotificationModeType; + this.zoomMode = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ZoomModeType; + Object.keys(this.navMode).forEach(key => { + this.translateService.get(this.navMode[key]).subscribe(txt => { + this.navMode[key] = txt; + }); + }); + Object.keys(this.navType).forEach(key => { + this.translateService.get(this.navType[key]).subscribe(txt => { + this.navType[key] = txt; + }); + }); + Object.keys(this.notifyMode).forEach(key => { + this.translateService.get(this.notifyMode[key]).subscribe(txt => { + this.notifyMode[key] = txt; + }); + }); + Object.keys(this.zoomMode).forEach(key => { + this.translateService.get(this.zoomMode[key]).subscribe(txt => { + this.zoomMode[key] = txt; + }); + }); + Object.keys(this.inputMode).forEach(key => { + this.translateService.get(this.inputMode[key]).subscribe(txt => { + this.inputMode[key] = txt; + }); + }); + Object.keys(this.headerMode).forEach(key => { + this.translateService.get(this.headerMode[key]).subscribe(txt => { + this.headerMode[key] = txt; + }); + }); + } + ngOnDestroy() { + this.unsubscribeTimer$.next(null); + this.unsubscribeTimer$.complete(); + } + onTabChanged(event) { + if (event.index == 3) { + this.changeDetector.detectChanges(); + this.CodeMirror?.codeMirror?.refresh(); + } else if (event.index == 2) { + this.checkTimer(); + } + } + checkTimer() { + if (this.data.layout.header?.dateTimeDisplay) { + if (!this.currentDateTime) { + (0,rxjs__WEBPACK_IMPORTED_MODULE_14__.interval)(1000).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.unsubscribeTimer$)).subscribe(() => { + this.currentDateTime = new Date(); + }); + } + } else { + this.unsubscribeTimer$.next(null); + this.currentDateTime = null; + } + } + onAddMenuItem(item = null) { + let eitem = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItem(); + if (item) { + eitem = JSON.parse(JSON.stringify(item)); + } + let views = JSON.parse(JSON.stringify(this.data.views)); + views.unshift({ + id: '', + name: '' + }); + let dialogRef = this.dialog.open(_layout_menu_item_property_layout_menu_item_property_component__WEBPACK_IMPORTED_MODULE_11__.LayoutMenuItemPropertyComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + item: eitem, + views: views, + permission: eitem.permission, + permissionRoles: eitem.permissionRoles + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (item) { + Object.assign(item, result.item); + item.icon = result.item.icon; + item.image = result.item.image; + item.text = result.item.text; + item.view = result.item.view; + item.link = result.item.link; + item.permission = result.permission; + item.permissionRoles = result.permissionRoles; + } else { + let nitem = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.NaviItem(); + Object.assign(nitem, result.item); + nitem.icon = result.item.icon; + nitem.image = result.item.image; + nitem.text = result.item.text; + nitem.view = result.item.view; + nitem.link = result.item.link; + nitem.permission = result.permission; + nitem.permissionRoles = result.permissionRoles; + this.draggableListLeft.push(nitem); + } + } + }); + } + onRemoveMenuItem(index, item) { + this.draggableListLeft.splice(index, 1); + } + onMoveMenuItem(index, direction) { + if (direction === 'top' && index > 0) { + this.draggableListLeft.splice(index - 1, 0, this.draggableListLeft.splice(index, 1)[0]); + } else if (direction === 'bottom' && index < this.draggableListLeft.length) { + this.draggableListLeft.splice(index + 1, 0, this.draggableListLeft.splice(index, 1)[0]); + } + } + getViewName(vid) { + if (vid.view) { + const view = this.data.views.find(x => x.id === vid.view); + if (view) { + return view.name; + } + } else if (vid.link) { + return vid.link; + } else { + return ''; + } + } + onAddHeaderItem(item = null) { + let eitem = item ? JSON.parse(JSON.stringify(item)) : { + id: _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getShortGUID('i_'), + type: 'button', + marginLeft: 5, + marginRight: 5 + }; + let dialogRef = this.dialog.open(_layout_header_item_property_layout_header_item_property_component__WEBPACK_IMPORTED_MODULE_12__.LayoutHeaderItemPropertyComponent, { + position: { + top: '60px' + }, + data: eitem + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (item) { + const index = this.headerItems.findIndex(hi => hi.id === item.id); + this.headerItems[index] = result; + } else { + this.headerItems.push(result); + } + this.data.layout.header.items = this.headerItems; + } + }); + } + onRemoveHeaderItem(index, item) { + this.headerItems.splice(index, 1); + this.data.layout.header.items = this.headerItems; + } + onMoveHeaderItem(index, direction) { + if (direction === 'top' && index > 0) { + this.headerItems.splice(index - 1, 0, this.headerItems.splice(index, 1)[0]); + } else if (direction === 'bottom' && index < this.draggableListLeft.length) { + this.headerItems.splice(index + 1, 0, this.headerItems.splice(index, 1)[0]); + } + this.data.layout.header.items = this.headerItems; + } + onEditPropertyItem(item) { + let settingsProperty = { + property: item.property ?? new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeProperty() + }; + let hmi = this.projectService.getHmi(); + let dlgType = _gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_8__.GaugeDialogType.RangeAndText; + let title = this.translateService.instant('editor.header-item-settings'); + let dialogRef = this.dialog.open(_gauges_gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_8__.GaugePropertyComponent, { + position: { + top: '60px' + }, + data: { + settings: settingsProperty, + devices: Object.values(this.projectService.getDevices()), + title: title, + views: hmi.views, + dlgType: dlgType, + withEvents: true, + withActions: _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_9__.HtmlButtonComponent.actionsType, + withBitmask: false, + withProperty: item.type !== 'label', + scripts: this.projectService.getScripts() + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + item.property = result.settings.property; + } + }); + } + onNoClick() { + this.dialogRef.close(); + } + toggleSubMenu(item) { + if (item.id && item.children?.length) { + if (this.expandedItems.has(item.id)) { + this.expandedItems.delete(item.id); + } else { + this.expandedItems.add(item.id); + } + this.changeDetector.detectChanges(); + } + } + isExpanded(item) { + if (!item.id) { + item.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getShortGUID(); + } + return item.id ? this.expandedItems.has(item.id) : false; + } + isExpandable(item) { + return this.expandableNavItems.includes(this.data.layout.navigation.type) && item.children?.length > 0; + } + static ctorParameters = () => [{ + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialogRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.ChangeDetectorRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService + }, { + type: _services_resources_service__WEBPACK_IMPORTED_MODULE_7__.ResourcesService + }]; + static propDecorators = { + CodeMirror: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.ViewChild, + args: [_ctrl_ngx_codemirror__WEBPACK_IMPORTED_MODULE_19__.CodemirrorComponent, { + static: false + }] + }] + }; +}; +LayoutPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_16__.Component)({ + selector: 'app-layout-property', + template: _layout_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_layout_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [Object, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialogRef, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _angular_core__WEBPACK_IMPORTED_MODULE_16__.ChangeDetectorRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService, _services_resources_service__WEBPACK_IMPORTED_MODULE_7__.ResourcesService])], LayoutPropertyComponent); + + +/***/ }), + +/***/ 73911: +/*!*****************************************************!*\ + !*** ./src/app/editor/plugins/plugins.component.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PluginsComponent: () => (/* binding */ PluginsComponent) +/* harmony export */ }); +/* harmony import */ var _plugins_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./plugins.component.html?ngResource */ 95392); +/* harmony import */ var _plugins_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./plugins.component.scss?ngResource */ 54204); +/* harmony import */ var _plugins_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_plugins_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _services_plugin_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/plugin.service */ 99232); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let PluginsComponent = class PluginsComponent { + data; + dialog; + dialogRef; + translateService; + pluginService; + projectService; + plugins = []; + installing; + removing; + installed; + removed; + error; + constructor(data, dialog, dialogRef, translateService, pluginService, projectService) { + this.data = data; + this.dialog = dialog; + this.dialogRef = dialogRef; + this.translateService = translateService; + this.pluginService = pluginService; + this.projectService = projectService; + } + ngOnInit() { + this.translateService.get('dlg.plugins-status-installing').subscribe(txt => { + this.installing = txt; + }); + this.translateService.get('dlg.plugins-status-removing').subscribe(txt => { + this.removing = txt; + }); + this.translateService.get('dlg.plugins-status-installed').subscribe(txt => { + this.installed = txt; + }); + this.translateService.get('dlg.plugins-status-removed').subscribe(txt => { + this.removed = txt; + }); + this.translateService.get('dlg.plugins-status-error').subscribe(txt => { + this.error = txt; + }); + this.pluginService.getPlugins().subscribe(plugins => { + this.plugins = plugins; + }, error => { + console.error('Error getPlugin'); + }); + } + onNoClick() { + this.dialogRef.close(); + } + install(plugin) { + plugin.status = this.installing; + plugin['working'] = true; + let pg = JSON.parse(JSON.stringify(plugin)); + pg.pkg = true; + this.pluginService.installPlugin(pg).subscribe(plugins => { + plugin.status = this.installed; + plugin.current = plugin.version; + plugin['working'] = false; + }, error => { + plugin.status = this.error + error; + plugin['working'] = false; + }); + } + remove(plugin) { + plugin.status = this.removing; + plugin['working'] = true; + this.pluginService.removePlugin(plugin).subscribe(plugins => { + plugin.status = this.removed; + plugin.current = ''; + plugin['working'] = false; + }, error => { + plugin.status = this.error + error; + plugin['working'] = false; + }); + } + static ctorParameters = () => [{ + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: _services_plugin_service__WEBPACK_IMPORTED_MODULE_3__.PluginService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; +}; +PluginsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-plugins', + template: _plugins_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_plugins_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [Object, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, _services_plugin_service__WEBPACK_IMPORTED_MODULE_3__.PluginService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], PluginsComponent); + + +/***/ }), + +/***/ 59137: +/*!*************************************************!*\ + !*** ./src/app/editor/setup/setup.component.ts ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SetupComponent: () => (/* binding */ SetupComponent) +/* harmony export */ }); +/* harmony import */ var _setup_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setup.component.html?ngResource */ 9433); +/* harmony import */ var _setup_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setup.component.scss?ngResource */ 83849); +/* harmony import */ var _setup_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_setup_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/app.service */ 49982); +/* harmony import */ var _editor_chart_config_chart_config_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../editor/chart-config/chart-config.component */ 20427); +/* harmony import */ var _editor_graph_config_graph_config_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../editor/graph-config/graph-config.component */ 71162); +/* harmony import */ var _editor_layout_property_layout_property_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../editor/layout-property/layout-property.component */ 51560); +/* harmony import */ var _editor_plugins_plugins_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../editor/plugins/plugins.component */ 73911); +/* harmony import */ var _editor_app_settings_app_settings_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../editor/app-settings/app-settings.component */ 15449); +/* harmony import */ var _client_script_access_client_script_access_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../client-script-access/client-script-access.component */ 78776); +/* harmony import */ var _services_plugin_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../_services/plugin.service */ 99232); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 2389); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 21650); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + +const clientOnlyToDisable = ['messages', 'users', 'userRoles', 'plugins', 'notifications', 'scripts', 'reports', 'materials', 'logs', 'events', 'language']; +let SetupComponent = class SetupComponent { + router; + appService; + dialog; + projectService; + plugins; + dialogRef; + nodeRedExists$; + constructor(router, appService, dialog, projectService, plugins, dialogRef) { + this.router = router; + this.appService = appService; + this.dialog = dialog; + this.projectService = projectService; + this.plugins = plugins; + this.dialogRef = dialogRef; + this.router.routeReuseStrategy.shouldReuseRoute = function () { + return false; + }; + this.nodeRedExists$ = this.plugins.hasNodeRed$(true).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_11__.catchError)(() => (0,rxjs__WEBPACK_IMPORTED_MODULE_12__.of)(false)), (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.shareReplay)({ + bufferSize: 1, + refCount: false + })); + } + onNoClick() { + this.dialogRef.close(); + } + goTo(destination, type) { + this.onNoClick(); + let navigationExtras = { + queryParams: { + type: type + } + }; + this.router.navigate([destination], navigationExtras); + } + /** + * edit the chart configuration + */ + onChartConfig() { + this.onNoClick(); + let dialogRef = this.dialog.open(_editor_chart_config_chart_config_component__WEBPACK_IMPORTED_MODULE_4__.ChartConfigComponent, { + position: { + top: '60px' + }, + minWidth: '1090px', + width: '1090px' + }); + dialogRef.afterClosed().subscribe(); + } + /** + * edit the graph configuration, bar and pie + * @param type + */ + onGraphConfig(type) { + this.onNoClick(); + let dialogRef = this.dialog.open(_editor_graph_config_graph_config_component__WEBPACK_IMPORTED_MODULE_5__.GraphConfigComponent, { + position: { + top: '60px' + }, + minWidth: '1090px', + width: '1090px', + data: { + type: type + } + }); + dialogRef.afterClosed().subscribe(); + } + /** + * edit the layout property of views: menu, header + */ + onLayoutConfig() { + this.onNoClick(); + let templayout = null; + let hmi = this.projectService.getHmi(); + if (hmi.layout) { + templayout = JSON.parse(JSON.stringify(hmi.layout)); + } + if (templayout && templayout.showdev !== false) { + templayout.showdev = true; + } + let dialogRef = this.dialog.open(_editor_layout_property_layout_property_component__WEBPACK_IMPORTED_MODULE_6__.LayoutPropertyComponent, { + position: { + top: '60px' + }, + data: { + layout: templayout, + views: hmi.views, + securityEnabled: this.projectService.isSecurityEnabled() + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + hmi.layout = JSON.parse(JSON.stringify(result.layout)); + this.projectService.setLayout(hmi.layout); + } + }); + } + /** + * edit the plugins to install or remove + */ + onPlugins() { + this.onNoClick(); + let dialogRef = this.dialog.open(_editor_plugins_plugins_component__WEBPACK_IMPORTED_MODULE_7__.PluginsComponent, { + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => {}); + } + /** + * edit application settings + */ + onSettings() { + this.onNoClick(); + let dialogRef = this.dialog.open(_editor_app_settings_app_settings_component__WEBPACK_IMPORTED_MODULE_8__.AppSettingsComponent, { + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => {}); + } + isToDisable(section) { + if (clientOnlyToDisable.indexOf(section) !== -1) { + return this.appService.isClientApp; + } + return false; + } + onWidgets() { + this.onNoClick(); + let dialogRef = this.dialog.open(_client_script_access_client_script_access_component__WEBPACK_IMPORTED_MODULE_9__.ClientScriptAccessComponent, { + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => {}); + } + static ctorParameters = () => [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_14__.Router + }, { + type: _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _services_plugin_service__WEBPACK_IMPORTED_MODULE_10__.PluginService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__.MatLegacyDialogRef + }]; +}; +SetupComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_16__.Component)({ + selector: 'app-setup', + template: _setup_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_setup_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_14__.Router, _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _services_plugin_service__WEBPACK_IMPORTED_MODULE_10__.PluginService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__.MatLegacyDialogRef])], SetupComponent); + + +/***/ }), + +/***/ 14456: +/*!***************************************************************!*\ + !*** ./src/app/editor/svg-selector/svg-selector.component.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SvgSelectorComponent: () => (/* binding */ SvgSelectorComponent) +/* harmony export */ }); +/* harmony import */ var _svg_selector_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./svg-selector.component.html?ngResource */ 3505); +/* harmony import */ var _svg_selector_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svg-selector.component.scss?ngResource */ 2439); +/* harmony import */ var _svg_selector_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_svg_selector_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let SvgSelectorComponent = class SvgSelectorComponent { + onEdit = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + onSelect = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + onPreview = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + set selected(element) { + this.svgElementSelected = element; + } + set elements(values) { + this.svgElements = values; + this.filteredSvgElements = values; + } + svgElements = []; + filteredSvgElements = []; + svgElementSelected; + filterText; + constructor() {} + onSvgElementPreview(element, preview) { + this.onPreview?.emit({ + element, + preview + }); + } + onSelected(element) { + this.onSelect?.emit(element); + } + onEditElement(element) { + this.onSelect?.emit(element); + setTimeout(() => { + this.onEdit?.emit(element); + }, 500); + } + isSelected(element) { + return element?.id === this.svgElementSelected?.id; + } + filterElements() { + if (!this.filterText) { + this.filteredSvgElements = this.svgElements; + } else { + try { + const regex = new RegExp(this.filterText, 'i'); + this.filteredSvgElements = this.svgElements.filter(el => regex.test(el.name)); + } catch (error) { + this.filteredSvgElements = []; + } + } + } + static ctorParameters = () => []; + static propDecorators = { + onEdit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }], + onSelect: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }], + onPreview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }], + selected: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, + args: ['selected'] + }], + elements: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, + args: ['elements'] + }] + }; +}; +SvgSelectorComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-svg-selector', + template: _svg_selector_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_svg_selector_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], SvgSelectorComponent); + + +/***/ }), + +/***/ 90936: +/*!*********************************************************************!*\ + !*** ./src/app/editor/tags-ids-config/tags-ids-config.component.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TagsIdsConfigComponent: () => (/* binding */ TagsIdsConfigComponent) +/* harmony export */ }); +/* harmony import */ var _tags_ids_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tags-ids-config.component.html?ngResource */ 84001); +/* harmony import */ var _tags_ids_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tags-ids-config.component.scss?ngResource */ 74652); +/* harmony import */ var _tags_ids_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tags_ids_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let TagsIdsConfigComponent = class TagsIdsConfigComponent { + dialogRef; + data; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onOkClick() { + this.dialogRef.close(this.data.tagsIds); + } + onCancelClick() { + this.dialogRef.close(); + } + setVariable(tagIdRef, event) { + tagIdRef.destId = event.variableId; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +TagsIdsConfigComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-tags-ids-config', + template: _tags_ids_config_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tags_ids_config_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, Object])], TagsIdsConfigComponent); + + +/***/ }), + +/***/ 27373: +/*!*****************************************************************!*\ + !*** ./src/app/editor/view-property/view-property.component.ts ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ViewPropertyComponent: () => (/* binding */ ViewPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _view_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./view-property.component.html?ngResource */ 22565); +/* harmony import */ var _view_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./view-property.component.scss?ngResource */ 84616); +/* harmony import */ var _view_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_view_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var angular_gridster2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! angular-gridster2 */ 52562); +/* harmony import */ var _gauges_gauge_property_flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauges/gauge-property/flex-event/flex-event.component */ 70987); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 75043); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let ViewPropertyComponent = class ViewPropertyComponent { + fb; + translateService; + projectService; + dialogRef; + data; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.defaultColor; + viewType = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType; + alignType = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.DocAlignType; + formGroup; + gridType = angular_gridster2__WEBPACK_IMPORTED_MODULE_6__.GridType; + scripts; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_7__.Subject(); + flexEvent; + tabEvents; + propSizeType = [{ + text: 'dlg.docproperty-size-320-240', + value: { + width: 320, + height: 240 + } + }, { + text: 'dlg.docproperty-size-460-360', + value: { + width: 460, + height: 360 + } + }, { + text: 'dlg.docproperty-size-640-480', + value: { + width: 640, + height: 480 + } + }, { + text: 'dlg.docproperty-size-800-600', + value: { + width: 800, + height: 600 + } + }, { + text: 'dlg.docproperty-size-1024-768', + value: { + width: 1024, + height: 768 + } + }, { + text: 'dlg.docproperty-size-1280-960', + value: { + width: 1280, + height: 960 + } + }, { + text: 'dlg.docproperty-size-1600-1200', + value: { + width: 1600, + height: 1200 + } + }, { + text: 'dlg.docproperty-size-1920-1080', + value: { + width: 1920, + height: 1080 + } + }]; + constructor(fb, translateService, projectService, dialogRef, data) { + this.fb = fb; + this.translateService = translateService; + this.projectService = projectService; + this.dialogRef = dialogRef; + this.data = data; + this.scripts = this.projectService.getScripts(); + for (let i = 0; i < this.propSizeType.length; i++) { + this.translateService.get(this.propSizeType[i].text).subscribe(txt => { + this.propSizeType[i].text = txt; + }); + } + } + ngOnInit() { + this.formGroup = this.fb.group({ + name: [{ + value: this.data.name, + disabled: this.data.name + }, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.Validators.required], + type: [{ + value: this.data.type, + disabled: this.data.name + }], + width: [this.data.profile.width], + height: [this.data.profile.height], + margin: [this.data.profile.margin], + align: [this.data.profile.align], + gridType: [this.data.profile.gridType], + viewRenderDelay: [this.data.profile?.viewRenderDelay || 0] + }); + if (this.data.type !== _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.cards && this.data.type !== _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.maps) { + this.formGroup.controls.width.setValidators(_angular_forms__WEBPACK_IMPORTED_MODULE_8__.Validators.required); + this.formGroup.controls.height.setValidators(_angular_forms__WEBPACK_IMPORTED_MODULE_8__.Validators.required); + } + if (!this.data.name) { + this.formGroup.controls.name.addValidators(this.isValidName()); + } + this.formGroup.updateValueAndValidity(); + this.formGroup.controls.type.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.takeUntil)(this.destroy$), (0,rxjs__WEBPACK_IMPORTED_MODULE_10__.startWith)(this.formGroup.controls.type.value)).subscribe(type => { + this.tabEvents.disabled = type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.cards || type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.maps; + if (type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewType.cards && this.data.newView && this.data.profile.bkcolor === '#ffffffff') { + this.data.profile.bkcolor = '#E6E6E6'; + } + }); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + isValidName() { + return control => { + if (this.data.existingNames?.indexOf(control.value) !== -1) { + return { + name: this.translateService.instant('msg.view-name-exist') + }; + } + return null; + }; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.name = this.formGroup.controls.name.value; + this.data.type = this.formGroup.controls.type.value; + this.data.profile.width = this.formGroup.controls.width.value; + this.data.profile.height = this.formGroup.controls.height.value; + this.data.profile.margin = this.formGroup.controls.margin.value; + this.data.profile.align = this.formGroup.controls.align.value; + this.data.profile.gridType = this.formGroup.controls.gridType.value; + this.data.profile.viewRenderDelay = this.formGroup.controls.viewRenderDelay.value; + if (!this.data.property) { + this.data.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ViewProperty(); + } + this.data.property.events = this.flexEvent.getEvents(); + this.dialogRef.close(this.data); + } + onSizeChange(size) { + if (size?.width && size?.height) { + this.formGroup.controls.height.setValue(size.height); + this.formGroup.controls.width.setValue(size.width); + } + } + onAddEvent() { + this.flexEvent.onAddEvent(); + } + static ctorParameters = () => [{ + type: _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + flexEvent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['flexevent', { + static: false + }] + }], + tabEvents: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['tabEvents', { + static: true + }] + }] + }; +}; +ViewPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_13__.Component)({ + selector: 'app-view-property', + template: _view_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_view_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogRef, Object])], ViewPropertyComponent); + + +/***/ }), + +/***/ 38557: +/*!******************************************************!*\ + !*** ./src/app/framework/directives/json-tooltip.ts ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ JsonTooltipDirective: () => (/* binding */ JsonTooltipDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/material/legacy-tooltip */ 62899); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +let JsonTooltipDirective = class JsonTooltipDirective { + tooltip; + elementRef; + tooltipData; + constructor(tooltip, elementRef) { + this.tooltip = tooltip; + this.elementRef = elementRef; + } + onMouseEnter() { + if (this.tooltipData) { + this.tooltip.message = this.getObjectString(this.tooltipData); + this.tooltip.show(); + } + } + onMouseLeave() { + this.tooltip.hide(); + } + getObjectString(object) { + const topicString = JSON.stringify(object, null, 4); + return `${topicString}`; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_0__.MatLegacyTooltip + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ElementRef + }]; + static propDecorators = { + tooltipData: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input, + args: ['jsonTooltip'] + }], + onMouseEnter: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener, + args: ['mouseenter'] + }], + onMouseLeave: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener, + args: ['mouseleave'] + }] + }; +}; +JsonTooltipDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Directive)({ + selector: '[jsonTooltip]', + providers: [_angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_0__.MatLegacyTooltip] +}), __metadata("design:paramtypes", [_angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_0__.MatLegacyTooltip, _angular_core__WEBPACK_IMPORTED_MODULE_1__.ElementRef])], JsonTooltipDirective); + + +/***/ }), + +/***/ 45629: +/*!****************************************************************!*\ + !*** ./src/app/framework/file-upload/file-upload.component.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FileUploadComponent: () => (/* binding */ FileUploadComponent) +/* harmony export */ }); +/* harmony import */ var _file_upload_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./file-upload.component.html?ngResource */ 78387); +/* harmony import */ var _file_upload_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./file-upload.component.scss?ngResource */ 83181); +/* harmony import */ var _file_upload_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_file_upload_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_my_file_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/my-file.service */ 59944); +/* harmony import */ var _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/toast-notifier.service */ 50243); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let FileUploadComponent = class FileUploadComponent { + fileService; + toastNotifier; + fileName; + destination; + onFileChange = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); + selectedFile; + constructor(fileService, toastNotifier) { + this.fileService = fileService; + this.toastNotifier = toastNotifier; + } + onChange(event) { + this.selectedFile = event.target.files[0]; + this.fileService.upload(this.selectedFile, this.destination).subscribe(result => { + if (!result.result) { + this.toastNotifier.notifyError('msg.file-upload-failed', result.error); + } else { + this.onFileChange.emit(this.selectedFile); + this.fileName = this.selectedFile.name; + } + }); + } + removeFile() { + this.selectedFile = null; + this.onFileChange.emit(this.selectedFile); + this.fileName = null; + } + static ctorParameters = () => [{ + type: _services_my_file_service__WEBPACK_IMPORTED_MODULE_2__.MyFileService + }, { + type: _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_3__.ToastNotifierService + }]; + static propDecorators = { + fileName: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + destination: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + onFileChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output + }] + }; +}; +FileUploadComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-file-upload', + template: _file_upload_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_file_upload_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_my_file_service__WEBPACK_IMPORTED_MODULE_2__.MyFileService, _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_3__.ToastNotifierService])], FileUploadComponent); + + +/***/ }), + +/***/ 10060: +/*!***********************************************!*\ + !*** ./src/app/framework/framework.module.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FrameworkModule: () => (/* binding */ FrameworkModule) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _ngx_touch_keyboard_ngx_touch_keyboard_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-touch-keyboard/ngx-touch-keyboard.module */ 2557); +/* harmony import */ var _directives_json_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./directives/json-tooltip */ 38557); +/* harmony import */ var _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-tooltip */ 62899); +/* harmony import */ var _file_upload_file_upload_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./file-upload/file-upload.component */ 45629); +/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/icon */ 86515); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + +let FrameworkModule = class FrameworkModule {}; +FrameworkModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.NgModule)({ + declarations: [_directives_json_tooltip__WEBPACK_IMPORTED_MODULE_1__.JsonTooltipDirective, _file_upload_file_upload_component__WEBPACK_IMPORTED_MODULE_2__.FileUploadComponent], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule, _ngx_touch_keyboard_ngx_touch_keyboard_module__WEBPACK_IMPORTED_MODULE_0__.NgxTouchKeyboardModule, _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_5__.MatLegacyTooltipModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_6__.MatIconModule], + exports: [_ngx_touch_keyboard_ngx_touch_keyboard_module__WEBPACK_IMPORTED_MODULE_0__.NgxTouchKeyboardModule, _directives_json_tooltip__WEBPACK_IMPORTED_MODULE_1__.JsonTooltipDirective, _file_upload_file_upload_component__WEBPACK_IMPORTED_MODULE_2__.FileUploadComponent] +})], FrameworkModule); + + +/***/ }), + +/***/ 52140: +/*!******************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/Locale/constants.ts ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ fnButton: () => (/* binding */ fnButton), +/* harmony export */ fnDisplay: () => (/* binding */ fnDisplay) +/* harmony export */ }); +const fnButton = { + DONE: `{done}`, + ENTER: `{enter}`, + SHIFT: `{shift}`, + BACKSPACE: `{backspace}`, + LANGUAGE: `{language}`, + SPACE: `{space}`, + TAB: `{tab}` +}; +const fnDisplay = { + DONE: ``, + ENTER: ``, + SHIFT: ``, + BACKSPACE: ``, + LANGUAGE: ``, + SPACE: ` `, + TAB: `` +}; + +/***/ }), + +/***/ 80098: +/*!********************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/Locale/en-GB/index.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ 52140); + +const layouts = { + text_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + text_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + text_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['-', '/', ':', ';', '(', ')', '$', '&', '@', '"'], ['{symbolic}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + text_symbolic: [['[', ']', '{', '}', '#', '%', '^', '*', '+', '='], ['_', '\\', '|', '~', '<', '>', '€', 'Ā£', 'Ā„', '•'], ['{numeric}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + search_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + search_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + search_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['-', '/', ':', ';', '(', ')', '$', '&', '@', '"'], ['{symbolic}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + search_symbolic: [['[', ']', '{', '}', '#', '%', '^', '*', '+', '='], ['_', '\\', '|', '~', '<', '>', '€', 'Ā£', 'Ā„', '•'], ['{numeric}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + email_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '@', '{space}', '.', '{done}', '{enter}']], + email_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '@', '{space}', '.', '{done}', '{enter}']], + email_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['$', '!', '~', '&', '=', '#', '[', ']'], ['{symbolic}', '.', '_', '-', '+', '{backspace}'], ['{alphabetic}', '@', '{space}', '.', '{done}', '{enter}']], + email_symbolic: [['`', '|', '{', '}', '?', '%', '^', '*', '/', '\''], ['$', '!', '~', '&', '=', '#', '[', ']'], ['{numeric}', '.', '_', '-', '+', '{backspace}'], ['{alphabetic}', '@', '{space}', '.', '{done}', '{enter}']], + url_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '/', '.com', '.', '{done}', '{enter}']], + url_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '/', '.com', '.', '{done}', '{enter}']], + url_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['@', '&', '%', '?', ',', '=', '[', ']'], ['{symbolic}', '_', ':', '-', '+', '{backspace}'], ['{alphabetic}', '/', '.com', '.', '{done}', '{enter}']], + url_symbolic: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['*', '$', '#', '!', '\'', '^', '[', ']'], ['{numeric}', '~', ';', '(', ')', '{backspace}'], ['{alphabetic}', '/', '.com', '.', '{done}', '{enter}']], + numeric_default: [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['0', '{backspace}', '{enter}']], + decimal_default: [['1', '2', '3', '-'], ['4', '5', '6', '+'], ['7', '8', '9', '{backspace}'], ['{done}', '0', '.', '{enter}']], + tel_default: [['1', '2', '3', '*'], ['4', '5', '6', '#'], ['7', '8', '9', '+'], ['0', '{backspace}', '{enter}']] +}; +const display = { + '{enter}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.ENTER, + '{done}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.DONE, + '{shift}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.SHIFT, + '{backspace}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.BACKSPACE, + '{space}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.SPACE, + '{alphabetic}': 'ABC', + '{numeric}': '123', + '{symbolic}': '#+=' +}; +const locale = { + code: 'en-GB', + dir: 'ltr', + layouts: layouts, + display: display +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (locale); + +/***/ }), + +/***/ 66935: +/*!********************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/Locale/en-US/index.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ 52140); + +const layouts = { + text_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + text_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + text_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['-', '/', ':', ';', '(', ')', '$', '&', '@', '"'], ['{symbolic}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + text_symbolic: [['[', ']', '{', '}', '#', '%', '^', '*', '+', '='], ['_', '\\', '|', '~', '<', '>', '€', 'Ā£', 'Ā„', '•'], ['{numeric}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + search_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + search_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '{space}', '{done}', '{enter}']], + search_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['-', '/', ':', ';', '(', ')', '$', '&', '@', '"'], ['{symbolic}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + search_symbolic: [['[', ']', '{', '}', '#', '%', '^', '*', '+', '='], ['_', '\\', '|', '~', '<', '>', '€', 'Ā£', 'Ā„', '•'], ['{numeric}', '.', ',', '?', '!', '\'', '{backspace}'], ['{alphabetic}', '{space}', '{done}', '{enter}']], + email_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '@', '{space}', '.', '{done}', '{enter}']], + email_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '@', '{space}', '.', '{done}', '{enter}']], + email_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['$', '!', '~', '&', '=', '#', '[', ']'], ['{symbolic}', '.', '_', '-', '+', '{backspace}'], ['{alphabetic}', '@', '{space}', '.', '{done}', '{enter}']], + email_symbolic: [['`', '|', '{', '}', '?', '%', '^', '*', '/', '\''], ['$', '!', '~', '&', '=', '#', '[', ']'], ['{numeric}', '.', '_', '-', '+', '{backspace}'], ['{alphabetic}', '@', '{space}', '.', '{done}', '{enter}']], + url_alphabetic: [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'], ['{numeric}', '/', '.com', '.', '{done}', '{enter}']], + url_shift: [['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'], ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'], ['{numeric}', '/', '.com', '.', '{done}', '{enter}']], + url_numeric: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['@', '&', '%', '?', ',', '=', '[', ']'], ['{symbolic}', '_', ':', '-', '+', '{backspace}'], ['{alphabetic}', '/', '.com', '.', '{done}', '{enter}']], + url_symbolic: [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['*', '$', '#', '!', '\'', '^', '[', ']'], ['{numeric}', '~', ';', '(', ')', '{backspace}'], ['{alphabetic}', '/', '.com', '.', '{done}', '{enter}']], + numeric_default: [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['0', '{backspace}', '{enter}']], + decimal_default: [['1', '2', '3', '-'], ['4', '5', '6', '+'], ['7', '8', '9', '{backspace}'], ['{done}', '0', '.', '{enter}']], + tel_default: [['1', '2', '3', '*'], ['4', '5', '6', '#'], ['7', '8', '9', '+'], ['0', '{backspace}', '{enter}']] +}; +const display = { + '{enter}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.ENTER, + '{done}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.DONE, + '{shift}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.SHIFT, + '{backspace}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.BACKSPACE, + '{space}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.SPACE, + '{alphabetic}': 'ABC', + '{numeric}': '123', + '{symbolic}': '#+=' +}; +const locale = { + code: 'en-US', + dir: 'ltr', + layouts: layouts, + display: display +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (locale); + +/***/ }), + +/***/ 43515: +/*!********************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/Locale/fa-IR/index.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ 52140); + +const layouts = { + text_alphabetic: [['Ų¶', 'Ųµ', 'Ł‚', 'ف', 'Ųŗ', 'Ų¹', 'ه', 'Ų®', 'Ų­', 'Ų¬', 'چ'], ['Ų“', 'Ų³', 'ی', 'ŲØ', 'Ł„', 'Ų§', 'ŲŖ', 'ن', 'Ł…', 'Ś©', 'ŚÆ'], ['Ųø', 'Ų·', 'ژ', 'Ų²', 'Ų±', 'Ų°', 'ŲÆ', 'پ', 'و', 'Ų«', '{backspace}'], ['{numeric}', '{space}', '{done}']], + text_numeric: [['Ū±', 'Ū²', 'Ū³', 'Ū“', 'Ūµ', 'Ū¶', 'Ū·', 'Ūø', 'Ū¹', 'Ū°'], ['-', '/', ':', 'Ų›', ')', '(', '$', '@', 'Ā»', 'Ā«'], ['{symbolic}', '.', '،', '؟', '!', 'Ł«', '{backspace}'], ['{alphabetic}', '{space}', '{done}']], + text_symbolic: [[']', '[', '}', '{', '#', '%', '^', '*', '+', '='], ['_', '\\', '|', '~', '>', '<', '&', '•', 'ā€˜', 'ā€œ'], ['{numeric}', '.', '،', '؟', '!', '٬', '{backspace}'], ['{alphabetic}', '{space}', '{done}']], + search_alphabetic: [['Ų¶', 'Ųµ', 'Ł‚', 'ف', 'Ųŗ', 'Ų¹', 'ه', 'Ų®', 'Ų­', 'Ų¬', 'چ'], ['Ų“', 'Ų³', 'ی', 'ŲØ', 'Ł„', 'Ų§', 'ŲŖ', 'ن', 'Ł…', 'Ś©', 'ŚÆ'], ['Ųø', 'Ų·', 'ژ', 'Ų²', 'Ų±', 'Ų°', 'ŲÆ', 'پ', 'و', 'Ų«', '{backspace}'], ['{numeric}', '{space}', '{done}']], + search_numeric: [['Ū±', 'Ū²', 'Ū³', 'Ū“', 'Ūµ', 'Ū¶', 'Ū·', 'Ūø', 'Ū¹', 'Ū°'], ['-', '/', ':', 'Ų›', ')', '(', '$', '@', 'Ā»', 'Ā«'], ['{symbolic}', '.', '،', '؟', '!', 'Ł«', '{backspace}'], ['{alphabetic}', '{space}', '{done}']], + search_symbolic: [[']', '[', '}', '{', '#', '%', '^', '*', '+', '='], ['_', '\\', '|', '~', '>', '<', '&', '•', 'ā€˜', 'ā€œ'], ['{numeric}', '.', '،', '؟', '!', '٬', '{backspace}'], ['{alphabetic}', '{space}', '{done}']], + email_alphabetic: [['Ų¶', 'Ųµ', 'Ł‚', 'ف', 'Ųŗ', 'Ų¹', 'ه', 'Ų®', 'Ų­', 'Ų¬', 'چ'], ['Ų“', 'Ų³', 'ی', 'ŲØ', 'Ł„', 'Ų§', 'ŲŖ', 'ن', 'Ł…', 'Ś©', 'ŚÆ'], ['Ųø', 'Ų·', 'ژ', 'Ų²', 'Ų±', 'Ų°', 'ŲÆ', 'پ', 'و', 'Ų«', '{backspace}'], ['{numeric}', '@', '{space}', '.', '{done}']], + email_numeric: [['Ū±', 'Ū²', 'Ū³', 'Ū“', 'Ūµ', 'Ū¶', 'Ū·', 'Ūø', 'Ū¹', 'Ū°'], ['$', '!', '~', '&', '=', '#', ']', '['], ['{symbolic}', '.', '_', '-', '+', '{backspace}'], ['{alphabetic}', '@', '{space}', '.', '{done}']], + email_symbolic: [['`', '|', '{', '}', '?', '%', '^', '*', '/', '\''], ['$', '!', '~', '&', '=', '#', ']', '['], ['{numeric}', '.', '_', '-', '+', '{backspace}'], ['{alphabetic}', '@', '{space}', '.', '{done}']], + url_alphabetic: [['Ų¶', 'Ųµ', 'Ł‚', 'ف', 'Ųŗ', 'Ų¹', 'ه', 'Ų®', 'Ų­', 'Ų¬', 'چ'], ['Ų“', 'Ų³', 'ی', 'ŲØ', 'Ł„', 'Ų§', 'ŲŖ', 'ن', 'Ł…', 'Ś©', 'ŚÆ'], ['Ųø', 'Ų·', 'ژ', 'Ų²', 'Ų±', 'Ų°', 'ŲÆ', 'پ', 'و', 'Ų«', '{backspace}'], ['{numeric}', '/', '.com', '.', '{done}']], + url_numeric: [['Ū±', 'Ū²', 'Ū³', 'Ū“', 'Ūµ', 'Ū¶', 'Ū·', 'Ūø', 'Ū¹', 'Ū°'], ['@', '&', '%', '?', ',', '=', ']', '['], ['{symbolic}', '_', ':', '-', '+', '{backspace}'], ['{alphabetic}', '/', '.com', '.', '{done}']], + url_symbolic: [['Ū±', 'Ū²', 'Ū³', 'Ū“', 'Ūµ', 'Ū¶', 'Ū·', 'Ūø', 'Ū¹', 'Ū°'], ['*', '$', '#', '!', '\'', '^', ']', '['], ['{numeric}', '~', ';', ')', '(', '{backspace}'], ['{alphabetic}', '/', '.com', '.', '{done}']], + numeric_default: [['Ū±', 'Ū²', 'Ū³'], ['Ū“', 'Ūµ', 'Ū¶'], ['Ū·', 'Ūø', 'Ū¹'], ['Ū°', '{backspace}']], + decimal_default: [['Ū±', 'Ū²', 'Ū³'], ['Ū“', 'Ūµ', 'Ū¶'], ['Ū·', 'Ūø', 'Ū¹'], ['Ł«', 'Ū°', '{backspace}']], + tel_default: [['Ū±', 'Ū²', 'Ū³', '*'], ['Ū“', 'Ūµ', 'Ū¶', '#'], ['Ū·', 'Ūø', 'Ū¹', '+'], ['Ū°', '{backspace}']] +}; +const display = { + '{done}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.DONE, + '{backspace}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.BACKSPACE, + '{space}': _constants__WEBPACK_IMPORTED_MODULE_0__.fnDisplay.SPACE, + '{alphabetic}': 'Ų§ā€ŒŲØā€ŒŁ¾', + '{numeric}': 'Ū±Ū²Ū³', + '{symbolic}': '=+#' +}; +const locale = { + code: 'fa-IR', + dir: 'rtl', + layouts: layouts, + display: display +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (locale); + +/***/ }), + +/***/ 16336: +/*!**************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/Locale/index.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ enGB: () => (/* reexport safe */ _en_GB__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ enUS: () => (/* reexport safe */ _en_US__WEBPACK_IMPORTED_MODULE_1__["default"]), +/* harmony export */ faIR: () => (/* reexport safe */ _fa_IR__WEBPACK_IMPORTED_MODULE_2__["default"]) +/* harmony export */ }); +/* harmony import */ var _en_GB__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./en-GB */ 80098); +/* harmony import */ var _en_US__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en-US */ 66935); +/* harmony import */ var _fa_IR__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fa-IR */ 43515); + + + + +/***/ }), + +/***/ 58417: +/*!******************************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.component.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxTouchKeyboardComponent: () => (/* binding */ NgxTouchKeyboardComponent) +/* harmony export */ }); +/* harmony import */ var _ngx_touch_keyboard_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-touch-keyboard.component.html?ngResource */ 82367); +/* harmony import */ var _ngx_touch_keyboard_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-touch-keyboard.component.scss?ngResource */ 36513); +/* harmony import */ var _ngx_touch_keyboard_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ngx_touch_keyboard_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/platform-browser */ 36480); +/* harmony import */ var _Locale_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Locale/constants */ 52140); +/* harmony import */ var _Locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Locale */ 16336); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let NgxTouchKeyboardComponent = class NgxTouchKeyboardComponent { + _sanitizer; + _elementRef; + _defaultLocale; + locale = _Locale__WEBPACK_IMPORTED_MODULE_3__.enUS; + layoutMode = 'text'; + layoutName = 'alphabetic'; + debug = false; + fullScreen = false; + closePanel = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); + _activeButtonClass = 'active'; + _caretPosition = null; + _caretPositionEnd = null; + _activeInputElement; + /** + * Constructor + */ + constructor(_sanitizer, _elementRef, _defaultLocale) { + this._sanitizer = _sanitizer; + this._elementRef = _elementRef; + this._defaultLocale = _defaultLocale; + } + handleKeyUp(event) { + if (event.isTrusted) { + this._caretEventHandler(event); + this._handleHighlightKeyUp(event); + } + } + handleKeyDown(event) { + if (event.isTrusted) { + this._handleHighlightKeyDown(event); + } + } + handleMouseUp(event) { + this._caretEventHandler(event); + } + handleSelect(event) { + this._caretEventHandler(event); + } + handleSelectionChange(event) { + this._caretEventHandler(event); + } + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + /** + * Set layout keyboard for locale + * + * @param value + */ + setLocale(value = this._defaultLocale) { + // normalize value + value = value.replace('-', '').trim(); + // Set Locale if supported + if (Object.keys(_Locale__WEBPACK_IMPORTED_MODULE_3__).includes(value)) { + this.locale = _Locale__WEBPACK_IMPORTED_MODULE_3__[value]; + } + // Set default Locale if not supported + else { + this.locale = _Locale__WEBPACK_IMPORTED_MODULE_3__.enUS; + } + } + detachActiveInput() { + if (this._activeInputElement instanceof HTMLInputElement || this._activeInputElement instanceof HTMLTextAreaElement) { + this._activeInputElement.blur(); + } + } + /** + * Set active input + * + * @param input Input native element + */ + setActiveInput(input) { + this._activeInputElement = input; + /** + * Tracking keyboard layout + */ + const inputMode = this._activeInputElement?.inputMode; + if (inputMode && ['text', 'search', 'email', 'url', 'numeric', 'decimal', 'tel'].some(i => i === inputMode)) { + this.layoutMode = inputMode; + } else { + this.layoutMode = 'text'; + } + if (inputMode && ['numeric', 'decimal', 'tel'].some(i => i === inputMode)) { + const currentType = this._activeInputElement?.getAttribute('type'); + if (currentType === 'number') { + this._activeInputElement?.setAttribute('type', 'text'); + } + this.layoutName = 'default'; + } else { + this.layoutName = 'alphabetic'; + } + if (this.debug) { + console.log('Locale:', `${this.locale.code || this._defaultLocale}`); + console.log('Layout:', `${this.layoutMode}_${this.layoutName}`); + } + /** + * we must ensure caretPosition doesn't persist once reactivated. + */ + this._setCaretPosition(this._activeInputElement.selectionStart, this._activeInputElement.selectionEnd); + if (this.debug) { + console.log('Caret start at:', this._caretPosition, this._caretPositionEnd); + } + // And set focus to input + this._focusActiveInput(); + } + /** + * Check whether the button is a standard button + */ + isStandardButton = button => button && !(button[0] === '{' && button[button.length - 1] === '}'); + /** + * Retrieve button type + * + * @param button The button's layout name + * @return The button type + */ + getButtonType(button) { + return this.isStandardButton(button) ? 'standard-key' : 'function-key'; + } + /** + * Adds default classes to a given button + * + * @param button The button's layout name + * @return The classes to be added to the button + */ + getButtonClass(button) { + const buttonTypeClass = this.getButtonType(button); + const buttonWithoutBraces = button.replace('{', '').replace('}', ''); + let buttonNormalized = ''; + if (buttonTypeClass !== 'standard-key') { + buttonNormalized = `${buttonWithoutBraces}-key`; + } + return `${buttonTypeClass} ${buttonNormalized}`; + } + /** + * Returns the display (label) name for a given button + * + * @param button The button's layout name + * @return The display name to be show to the button + */ + getButtonDisplayName(button) { + return this._sanitizer.bypassSecurityTrustHtml(this.locale.display[button] || button); + } + /** + * Handles clicks made to keyboard buttons + * + * @param button The button layout name. + * @param event The button event. + */ + handleButtonClicked(button, e) { + if (this.debug) { + console.log('Key pressed:', button); + } + if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.SHIFT) { + this.layoutName = this.layoutName === 'alphabetic' ? 'shift' : 'alphabetic'; + return; + } else if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.DONE) { + this.closePanel.emit(); + this.detachActiveInput(); + return; + } + let commonParams = [this._caretPosition || 0, this._caretPositionEnd || 0, true]; + let output = this._activeInputElement?.value || ''; + if (this._caretPosition === null && this._caretPositionEnd === null) { + commonParams[0] = this._activeInputElement?.inputMode === 'decimal' ? output.length : 0; + commonParams[1] = this._activeInputElement?.inputMode === 'decimal' ? output.length : 0; + } + if (!this.isStandardButton(button)) { + // Handel functional button + if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.BACKSPACE) { + if (output.length > 0) { + output = this._removeAt(output, ...commonParams); + } + } else if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.SPACE) { + output = this._addStringAt(output, ' ', ...commonParams); + } else if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.TAB) { + output = this._addStringAt(output, '\t', ...commonParams); + } else if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.ENTER) { + // output = this._addStringAt(output, '\n', ...commonParams); + } else { + this.layoutName = button.substring(1, button.length - 1); + return; + } + } else { + // Handel standard button + output = this._addStringAt(output, button, ...commonParams); + } + if (this._activeInputElement) { + this._activeInputElement.value = output; + if (this.debug) { + console.log('Caret at:', this._caretPosition, this._caretPositionEnd, 'Button', e); + } + } + this._dispatchEvents(button); + if (button === _Locale_constants__WEBPACK_IMPORTED_MODULE_2__.fnButton.ENTER) { + this.closePanel.emit(); + return; + } + } + /** + * Handles button mousedown + * + * @param button The button layout name. + * @param event The button event. + */ + handleButtonMouseDown(button, e) { + if (e) { + /** + * Handle event options + */ + e.preventDefault(); + e.stopPropagation(); + } + /** + * Add active class + */ + this._setActiveButton(button); + } + /** + * Handles button mouseup + * + * @param button The button layout name. + * @param event The button event. + */ + handleButtonMouseUp(button, e) { + if (e) { + /** + * Handle event options + */ + e.preventDefault(); + e.stopPropagation(); + } + /** + * Remove active class + */ + this._removeActiveButton(); + } + get current() { + const currentType = this._activeInputElement?.getAttribute('type'); + const value = this._activeInputElement?.value || ''; + return currentType === 'password' ? '*'.repeat(value.length) : value; + } + // ----------------------------------------------------------------------------------------------------- + // @ Private methods + // ----------------------------------------------------------------------------------------------------- + /** + * Changes the internal caret position + * + * @private + * @param position The caret's start position + * @param positionEnd The caret's end position + */ + _setCaretPosition(position, endPosition = position) { + this._caretPosition = position; + this._caretPositionEnd = endPosition; + } + /** + * Moves the cursor position by a given amount + * + * @private + * @param length Represents by how many characters the input should be moved + * @param minus Whether the cursor should be moved to the left or not. + */ + _updateCaretPos(length, minus = false) { + const newCaretPos = this._updateCaretPosAction(length, minus); + this._setCaretPosition(newCaretPos); + } + /** + * Action method of updateCaretPos + * + * @private + * @param length Represents by how many characters the input should be moved + * @param minus Whether the cursor should be moved to the left or not. + */ + _updateCaretPosAction(length, minus = false) { + let caretPosition = this._caretPosition; + if (caretPosition != null) { + if (minus) { + if (caretPosition > 0) { + caretPosition = caretPosition - length; + } + } else { + caretPosition = caretPosition + length; + } + } + return caretPosition; + } + /** + * Removes an amount of characters before a given position + * + * @private + * @param source The source input + * @param position The (cursor) position from where the characters should be removed + * @param moveCaret Whether to update input cursor + */ + _removeAt(source, position = source.length, positionEnd = source.length, moveCaret = false) { + if (position === 0 && positionEnd === 0) { + position = source.length; + positionEnd = source.length; + } + let output; + if (position === positionEnd) { + let prevTwoChars; + let emojiMatched; + const emojiMatchedReg = /([\uD800-\uDBFF][\uDC00-\uDFFF])/g; + /** + * Emojis are made out of two characters, so we must take a custom approach to trim them. + * For more info: https://mathiasbynens.be/notes/javascript-unicode + */ + if (position && position >= 0) { + prevTwoChars = source.substring(position - 2, position); + emojiMatched = prevTwoChars.match(emojiMatchedReg); + if (emojiMatched) { + output = source.substr(0, position - 2) + source.substr(position); + if (moveCaret) { + this._updateCaretPos(2, true); + } + } else { + output = source.substr(0, position - 1) + source.substr(position); + if (moveCaret) { + this._updateCaretPos(1, true); + } + } + } else { + prevTwoChars = source.slice(-2); + emojiMatched = prevTwoChars.match(emojiMatchedReg); + if (emojiMatched) { + output = source.slice(0, -2); + if (moveCaret) { + this._updateCaretPos(2, true); + } + } else { + output = source.slice(0, -1); + if (moveCaret) { + this._updateCaretPos(1, true); + } + } + } + } else { + output = source.slice(0, position) + source.slice(positionEnd); + if (moveCaret) { + this._setCaretPosition(position); + } + } + return output; + } + /** + * Adds a string to the input at a given position + * + * @private + * @param source The source input + * @param str The string to add + * @param position The (cursor) position where the string should be added + * @param moveCaret Whether to update virtual-keyboard cursor + */ + _addStringAt(source, str, position = source.length, positionEnd = source.length, moveCaret = false) { + let output; + if (!position && position !== 0) { + output = source + str; + } else { + output = [source.slice(0, position), str, source.slice(positionEnd)].join(''); + if (moveCaret) { + this._updateCaretPos(str.length, false); + } + } + return output; + } + /** + * Method to dispatch necessary keyboard events to current input element. + * @see https://w3c.github.io/uievents/tools/key-event-viewer.html + * + * @param button + */ + _dispatchEvents(button) { + let key, code; + if (button.includes('{') && button.includes('}')) { + // Capitalize name + key = button.slice(1, button.length - 1).toLowerCase(); + key = key.charAt(0).toUpperCase() + key.slice(1); + code = key; + } else { + key = button; + code = Number.isInteger(Number(button)) ? `Digit${button}` : `Key${button.toUpperCase()}`; + } + const eventInit = { + bubbles: true, + cancelable: true, + shiftKey: this.layoutName == 'shift', + key: key, + code: code, + location: 0 + }; + // Simulate all needed events on base element + this._activeInputElement?.dispatchEvent(new KeyboardEvent('keydown', eventInit)); + this._activeInputElement?.dispatchEvent(new KeyboardEvent('keypress', eventInit)); + this._activeInputElement?.dispatchEvent(new Event('input', { + bubbles: true + })); + this._activeInputElement?.dispatchEvent(new KeyboardEvent('keyup', eventInit)); + // And set focus to input + this._focusActiveInput(); + } + /** + * Called when an event that warrants a cursor position update is triggered + * + * @private + * @param event + */ + _caretEventHandler(event) { + let targetTagName = ''; + if (event.target.tagName) { + targetTagName = event.target.tagName.toLowerCase(); + } + const isTextInput = targetTagName === 'textarea' || targetTagName === 'input' && ['text', 'search', 'email', 'password', 'url', 'tel'].includes(event.target.type); + const isKeyboard = event.target === this._elementRef.nativeElement || event.target && this._elementRef.nativeElement.contains(event.target); + if (this._activeInputElement == event.target) { + /** + * Tracks current cursor position + * As keys are pressed, text will be added/removed at that position within the input. + */ + this._setCaretPosition(event.target.selectionStart, event.target.selectionEnd); + if (this.debug) { + console.log('Caret at:', this._caretPosition, this._caretPositionEnd, event && event.target.tagName.toLowerCase(), event); + } + } else if (event.type === 'pointerup' && this._activeInputElement === document.activeElement) { + return; + } else if (!isKeyboard && event?.type !== 'selectionchange' && event?.type !== 'select') { + /** + * we must ensure caretPosition doesn't persist once reactivated. + */ + this._setCaretPosition(null); + if (this.debug) { + console.log(`Caret position reset due to "${event?.type}" event`, event); + } + /** + * Close panel + */ + this.closePanel.emit(); + } + } + /** + * Focus to input + * + * @private + */ + _focusActiveInput() { + this._activeInputElement?.focus(); + if (this._caretPosition && this._caretPositionEnd) { + this._activeInputElement?.setSelectionRange(this._caretPosition, this._caretPositionEnd); + } + } + /** + * Handel highlight on key down + * + * @private + * @param event The KeyboardEvent + */ + _handleHighlightKeyDown(event) { + const buttonPressed = this._getKeyboardLayoutKey(event); + /** + * Add active class + */ + this._setActiveButton(buttonPressed); + } + /** + * Handel highlight on key up + * + * @private + * @param event The KeyboardEvent + */ + _handleHighlightKeyUp(event) { + const buttonPressed = this._getKeyboardLayoutKey(event); + /** + * Remove active class + */ + this._removeActiveButton(buttonPressed); + } + /** + * Transforms a KeyboardEvent's "key.code" string into a virtual-keyboard layout format + * + * @private + * @param event The KeyboardEvent + */ + _getKeyboardLayoutKey(event) { + let output = ''; + const keyId = event.code || event.key; + if (keyId?.includes('Space') || keyId?.includes('Numpad') || keyId?.includes('Backspace') || keyId?.includes('CapsLock') || keyId?.includes('Meta')) { + output = `{${event.code}}` || ''; + } else if (keyId?.includes('Control') || keyId?.includes('Shift') || keyId?.includes('Alt')) { + output = `{${event.key}}` || ''; + } else { + output = event.key || ''; + } + return output.length > 1 ? output?.toLowerCase() : output; + } + /** + * Set active class in button + * + * @param buttonName + */ + _setActiveButton(buttonName) { + const node = this._elementRef.nativeElement.getElementsByTagName('button').namedItem(buttonName); + if (node && node.classList) { + node.classList.add(this._activeButtonClass); + } + } + /** + * Remove active button + * + * @param buttonName + */ + _removeActiveButton(buttonName) { + const nodes = this._elementRef.nativeElement.getElementsByTagName('button'); + if (buttonName) { + const node = nodes.namedItem(buttonName); + if (node && node.classList) { + node.classList.remove(this._activeButtonClass); + } + } else { + for (let i = 0; i < nodes.length; i++) { + nodes[i].classList.remove(this._activeButtonClass); + } + } + } + static ctorParameters = () => [{ + type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__.DomSanitizer + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ElementRef + }, { + type: String, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Inject, + args: [_angular_core__WEBPACK_IMPORTED_MODULE_4__.LOCALE_ID] + }] + }]; + static propDecorators = { + closePanel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output + }], + handleKeyUp: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostListener, + args: ['window:keyup', ['$event']] + }], + handleKeyDown: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostListener, + args: ['window:keydown', ['$event']] + }], + handleMouseUp: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostListener, + args: ['window:pointerup', ['$event']] + }], + handleSelect: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostListener, + args: ['window:select', ['$event']] + }], + handleSelectionChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostListener, + args: ['window:selectionchange', ['$event']] + }] + }; +}; +NgxTouchKeyboardComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'ngx-touch-keyboard', + template: _ngx_touch_keyboard_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewEncapsulation.None, + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectionStrategy.OnPush, + styles: [(_ngx_touch_keyboard_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_5__.DomSanitizer, _angular_core__WEBPACK_IMPORTED_MODULE_4__.ElementRef, String])], NgxTouchKeyboardComponent); + + +/***/ }), + +/***/ 7658: +/*!******************************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.directive.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxTouchKeyboardDirective: () => (/* binding */ NgxTouchKeyboardDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/portal */ 83517); +/* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/coercion */ 55998); +/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/cdk/overlay */ 72698); +/* harmony import */ var _ngx_touch_keyboard_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-touch-keyboard.component */ 58417); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 72513); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let NgxTouchKeyboardDirective = class NgxTouchKeyboardDirective { + _overlay; + _elementRef; + _document; + isOpen = false; + _locale; + get ngxTouchKeyboard() { + return this._locale; + } + set ngxTouchKeyboard(value) { + this._locale = value; + } + _debugMode; + get ngxTouchKeyboardDebug() { + return this._debugMode; + } + set ngxTouchKeyboardDebug(value) { + this._debugMode = (0,_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__.coerceBooleanProperty)(value); + } + _fullScreenMode; + get ngxTouchKeyboardFullScreen() { + return this._fullScreenMode; + } + set ngxTouchKeyboardFullScreen(value) { + this._fullScreenMode = (0,_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__.coerceBooleanProperty)(value); + } + _overlayRef; + _panelRef; + closePanelSubject = new rxjs__WEBPACK_IMPORTED_MODULE_2__.Subject(); + closePanelObservable; + /** + * Constructor + */ + constructor(_overlay, _elementRef, _document) { + this._overlay = _overlay; + this._elementRef = _elementRef; + this._document = _document; + this.closePanelObservable = this.closePanelSubject.asObservable(); + } + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + /** + * On destroy + */ + ngOnDestroy() { + // Dispose the overlay + if (this._overlayRef) { + this._overlayRef.dispose(); + } + } + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + /** + * Open keyboard panel + */ + openPanel(eleRef = null) { + if (eleRef) { + this._elementRef = eleRef; + this._overlayRef = null; + } + // return if panel is attached + if (this._overlayRef?.hasAttached()) { + return; + } + // Create the overlay if it doesn't exist + if (!this._overlayRef) { + this._createOverlay(); + } + // Update direction the overlay + this._overlayRef.setDirection(this._document.body.getAttribute('dir') || this._document.dir || 'ltr'); + // Update position the overlay + this._overlayRef.updatePositionStrategy(this._getPositionStrategy(this.ngxTouchKeyboardFullScreen)); + // Update size the overlay + this._overlayRef.updateSize(this._getOverlaySize(this.ngxTouchKeyboardFullScreen)); + // Attach the portal to the overlay + this._panelRef = this._overlayRef.attach(new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__.ComponentPortal(_ngx_touch_keyboard_component__WEBPACK_IMPORTED_MODULE_0__.NgxTouchKeyboardComponent)); + this._panelRef.instance.debug = this.ngxTouchKeyboardDebug; + this._panelRef.instance.fullScreen = this.ngxTouchKeyboardFullScreen; + this._panelRef.instance.setLocale(this._locale); + this._panelRef.instance.setActiveInput(this._elementRef.nativeElement); + this.isOpen = true; + // Reference the input element + this._panelRef.instance.closePanel.subscribe(() => this.closePanel()); + return this.closePanelObservable; + } + /** + * Close keyboard panel + */ + closePanel() { + this._overlayRef?.detach(); + this.isOpen = false; + this.closePanelSubject.next(null); + } + /** + * Toggle keyboard panel + */ + togglePanel() { + if (this.isOpen) { + this.closePanel(); + } else { + this.openPanel(); + } + } + // ----------------------------------------------------------------------------------------------------- + // @ Private methods + // ----------------------------------------------------------------------------------------------------- + /** + * Create the overlay + * + * @private + */ + _createOverlay() { + this._overlayRef = this._overlay.create({ + hasBackdrop: false, + scrollStrategy: this._overlay.scrollStrategies.noop() + }); + } + /** + * Get position strategy + * + * @param fullscreen + * @private + */ + _getPositionStrategy(fullscreen) { + if (fullscreen) { + return this._overlay.position().global().centerHorizontally().bottom('0'); + } + return this._overlay.position().flexibleConnectedTo(this._inputOrigin()).withLockedPosition(true).withPush(true).withPositions([{ + originX: 'start', + originY: 'bottom', + overlayX: 'start', + overlayY: 'top' + }, { + originX: 'start', + originY: 'top', + overlayX: 'start', + overlayY: 'bottom' + }, { + originX: 'end', + originY: 'bottom', + overlayX: 'end', + overlayY: 'top' + }, { + originX: 'end', + originY: 'top', + overlayX: 'end', + overlayY: 'bottom' + }]); + } + /** + * Get overlay size + * + * @param fullscreen + * @private + */ + _getOverlaySize(fullscreen) { + if (fullscreen) { + return { + width: '100%', + maxWidth: '100%', + minWidth: '100%' + }; + } + return { + width: this._inputOrigin().getBoundingClientRect().width, + maxWidth: this._inputOrigin().getBoundingClientRect().width, + minWidth: '260px' + }; + } + /** + * Get input origin + * + * @private + */ + _inputOrigin() { + const element = this._elementRef.nativeElement; + // Material form field - Check input in mat-form-field + if (element.classList.contains('mat-input-element')) { + // Return [mat-form-field-flex] element + return element.parentNode?.parentNode; + } + // Material form field - Check input in mat-form-field + if (element.classList.contains('mat-mdc-input-element')) { + // Return [mat-form-field] element + return element.parentNode?.parentNode?.parentNode; + } + // Return input + return element; + } + static ctorParameters = () => [{ + type: _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_4__.Overlay + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ElementRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.DOCUMENT] + }] + }]; + static propDecorators = { + ngxTouchKeyboard: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + ngxTouchKeyboardDebug: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + ngxTouchKeyboardFullScreen: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }] + }; +}; +NgxTouchKeyboardDirective = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Directive)({ + selector: 'input[ngxTouchKeyboard], textarea[ngxTouchKeyboard]', + exportAs: 'ngxTouchKeyboard' +}), __metadata("design:paramtypes", [_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_4__.Overlay, _angular_core__WEBPACK_IMPORTED_MODULE_5__.ElementRef, Object])], NgxTouchKeyboardDirective); + + +/***/ }), + +/***/ 2557: +/*!***************************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.module.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxTouchKeyboardModule: () => (/* binding */ NgxTouchKeyboardModule) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/cdk/overlay */ 72698); +/* harmony import */ var _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/cdk/portal */ 83517); +/* harmony import */ var _ngx_touch_keyboard_directive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-touch-keyboard.directive */ 7658); +/* harmony import */ var _ngx_touch_keyboard_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-touch-keyboard.component */ 58417); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +let NgxTouchKeyboardModule = class NgxTouchKeyboardModule {}; +NgxTouchKeyboardModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule)({ + declarations: [_ngx_touch_keyboard_directive__WEBPACK_IMPORTED_MODULE_0__.NgxTouchKeyboardDirective, _ngx_touch_keyboard_component__WEBPACK_IMPORTED_MODULE_1__.NgxTouchKeyboardComponent], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.CommonModule, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_4__.OverlayModule, _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_5__.PortalModule], + exports: [_ngx_touch_keyboard_directive__WEBPACK_IMPORTED_MODULE_0__.NgxTouchKeyboardDirective, _ngx_touch_keyboard_component__WEBPACK_IMPORTED_MODULE_1__.NgxTouchKeyboardComponent] +})], NgxTouchKeyboardModule); + + +/***/ }), + +/***/ 37006: +/*!**************************************************************************!*\ + !*** ./src/app/fuxa-view/fuxa-view-dialog/fuxa-view-dialog.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FuxaViewDialogComponent: () => (/* binding */ FuxaViewDialogComponent) +/* harmony export */ }); +/* harmony import */ var _fuxa_view_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fuxa-view-dialog.component.html?ngResource */ 85761); +/* harmony import */ var _fuxa_view_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fuxa-view-dialog.component.scss?ngResource */ 94623); +/* harmony import */ var _fuxa_view_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_fuxa_view_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let FuxaViewDialogComponent = class FuxaViewDialogComponent { + dialogRef; + projectService; + data; + view; + hmi; + gaugesManager; + variablesMapping = []; + constructor(dialogRef, projectService, data) { + this.dialogRef = dialogRef; + this.projectService = projectService; + this.data = data; + } + ngOnInit() { + this.hmi = this.projectService.getHmi(); + } + onCloseDialog() { + this.dialogRef.close(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +FuxaViewDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-fuxa-view-dialog', + template: _fuxa_view_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_fuxa_view_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, Object])], FuxaViewDialogComponent); + + +/***/ }), + +/***/ 33814: +/*!**************************************************!*\ + !*** ./src/app/fuxa-view/fuxa-view.component.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CardModel: () => (/* binding */ CardModel), +/* harmony export */ DialogModalModel: () => (/* binding */ DialogModalModel), +/* harmony export */ FuxaViewComponent: () => (/* binding */ FuxaViewComponent) +/* harmony export */ }); +/* harmony import */ var _fuxa_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fuxa-view.component.html?ngResource */ 27224); +/* harmony import */ var _fuxa_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fuxa-view.component.css?ngResource */ 33251); +/* harmony import */ var _fuxa_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_fuxa_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! rxjs */ 81527); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_models/script */ 10846); +/* harmony import */ var _services_script_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_services/script.service */ 67758); +/* harmony import */ var _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../gauges/controls/html-input/html-input.component */ 64428); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _framework_ngx_touch_keyboard_ngx_touch_keyboard_directive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../framework/ngx-touch-keyboard/ngx-touch-keyboard.directive */ 7658); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../_services/hmi.service */ 69578); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../_helpers/endpointapi */ 25266); +/* harmony import */ var _gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../gauges/controls/html-select/html-select.component */ 87719); +/* harmony import */ var _fuxa_view_dialog_fuxa_view_dialog_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./fuxa-view-dialog/fuxa-view-dialog.component */ 37006); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gui_helpers_webcam_player_webcam_player_dialog_webcam_player_dialog_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component */ 96941); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var _services_language_service__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../_services/language.service */ 46368); +/* harmony import */ var _helpers_event_utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../_helpers/event-utils */ 7061); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var FuxaViewComponent_1; + + + + + + + + + + + + + + + + + + + + + + + +let FuxaViewComponent = FuxaViewComponent_1 = class FuxaViewComponent { + translateService; + changeDetector; + viewContainerRef; + scriptService; + projectService; + hmiService; + languageService; + resolver; + fuxaDialog; + id; + variablesMapping = []; + view; + hmi; + child = false; + gaugesManager; + parentcards; + sourceDeviceId; + onclose = new _angular_core__WEBPACK_IMPORTED_MODULE_18__.EventEmitter(); + ongoto = new _angular_core__WEBPACK_IMPORTED_MODULE_18__.EventEmitter(); + dataContainer; + inputDialogRef; + inputValueRef; + touchKeyboard; + eventViewToPanel = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onViewToPanel); + eventRunScript = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + eventOpenTab = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onOpenTab); + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_11__.EndPointApi.getURL(); + scriptParameterValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptParamType, _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptParamType.value); + cards = []; + iframes = []; + mapGaugeStatus = {}; + mapControls = {}; + inputDialog = { + show: false, + timer: null, + x: 0, + y: 0, + target: null + }; + gaugeInput = ''; + gaugeInputCurrent = ''; + parent; + cardViewType = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType.cards); + viewLoaded = false; + viewRenderDelay = 0; // Delay to render view after loading SVG content + subscriptionOnChange; + staticValues = {}; + plainVariableMapping = {}; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_19__.Subject(); + loadOk = false; + zIndexCounter = 1000; + constructor(translateService, changeDetector, viewContainerRef, scriptService, projectService, hmiService, languageService, resolver, fuxaDialog) { + this.translateService = translateService; + this.changeDetector = changeDetector; + this.viewContainerRef = viewContainerRef; + this.scriptService = scriptService; + this.projectService = projectService; + this.hmiService = hmiService; + this.languageService = languageService; + this.resolver = resolver; + this.fuxaDialog = fuxaDialog; + } + ngOnInit() { + this.loadVariableMapping(); + } + ngAfterViewInit() { + this.loadHmi(this.view); + /* check if already loaded */ + // if (this.projectService.getHmi()) { + // this.initScheduledScripts(); + // } else { + // this.projectService.onLoadHmi.pipe( + // takeUntil(this.destroy$) + // ).subscribe(() => { + // this.initScheduledScripts(); + // }); + // } + try { + this.gaugesManager.emitBindedSignals(this.id); + } catch (err) { + console.error(err); + } + } + ngOnDestroy() { + try { + this.destroy$.next(null); + this.destroy$.complete(); + this.gaugesManager.unbindGauge(this.id); + this.clearGaugeStatus(); + if (this.subscriptionOnChange) { + this.subscriptionOnChange.unsubscribe(); + } + if (this['subscriptionOnGaugeEvent']) { + this['subscriptionOnGaugeEvent'].unsubscribe(); + } + if (this.inputDialogRef) { + this.inputDialogRef.nativeElement.style.display = 'none'; + } + // Execute onClose script + this.view?.property?.events?.forEach(event => { + if (event.type === _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType.onclose)) { + this.onRunScript(event); + } + }); + } catch (err) { + console.error(err); + } + } + loadVariableMapping(variablesMapped) { + try { + if (variablesMapped) { + this.variablesMapping = variablesMapped; + } + this.variablesMapping?.forEach(variableMapping => { + this.plainVariableMapping[variableMapping.from.variableId] = variableMapping.to; + }); + } catch (err) { + console.error(err); + } + } + clearGaugeStatus() { + Object.values(this.mapGaugeStatus).forEach(gs => { + try { + if (gs.actionRef) { + if (gs.actionRef.timer) { + clearTimeout(gs.actionRef.timer); + gs.actionRef.timer = null; + } + if (gs.actionRef.animr) { + if (gs.actionRef.animr.reset) { + gs.actionRef.animr.reset(); + } + delete gs.actionRef.animr; + } + } + } catch (err) { + console.error(err); + } + }); + this.mapGaugeStatus = {}; + } + /** + * load the svg content to show in browser, clear all binded to this view + * @param view + */ + loadHmi(view, legacyProfile) { + this.viewLoaded = false; + if (this.loadOk || !view) { + this.viewLoaded = true; + return; + } + try { + if (!this.hmi) { + this.hmi = this.projectService.getHmi(); + } + if (this.id) { + try { + this.gaugesManager.unbindGauge(this.id); + this.clearGaugeStatus(); + this.viewContainerRef.clear(); + this.dataContainer.nativeElement.innerHTML = ''; + } catch (err) { + console.error(err); + } + } + if (view?.id) { + this.id = view.id; + this.view = view; + if (view.type === this.cardViewType) { + this.ongoto.emit(view.id); + return; + } else { + this.dataContainer.nativeElement.innerHTML = view.svgcontent.replace('Layer 1', ''); + } + if (view.profile.bkcolor && (this.child || legacyProfile)) { + this.dataContainer.nativeElement.style.backgroundColor = view.profile.bkcolor; + } + if (view.profile.align && !this.child) { + FuxaViewComponent_1.setAlignStyle(view.profile.align, this.dataContainer.nativeElement); + } + } + this.changeDetector.detectChanges(); + this.loadWatch(this.view); + this.onResize(); + if (view) { + // Execute onOpen script for new current view + view.property?.events?.forEach(event => { + if (event.type === _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType.onopen)) { + this.onRunScript(event); + } + }); + this.viewRenderDelay = view.profile?.viewRenderDelay || 0; + } + } finally { + // Garantisce sempre il completamento + setTimeout(() => { + this.viewLoaded = true; + this.changeDetector.detectChanges(); + }, this.viewRenderDelay); + } + } + onResize(event) { + let hmi = this.projectService.getHmi(); + if (hmi && hmi.layout && _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ZoomModeType[hmi.layout.zoom] === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ZoomModeType.autoresize && !this.child) { + _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.resizeViewRev(this.dataContainer.nativeElement, this.dataContainer.nativeElement.parentElement?.parentElement, 'stretch'); + } + } + /** + * main function to check placeholder of property, events, action + * load all gauge settings, bind gauge with signals, bind gauge event + * @param view + */ + loadWatch(view) { + if (view && view.items) { + this.mapControls = {}; + const device = this.projectService.getDeviceFromId(this.sourceDeviceId); + let sourceTags = device?.tags ? Object.values(device.tags) : null; + let items = this.applyVariableMapping(view.items, sourceTags); + // add mapped placeholder -> variable to sourceTags + let tagsToAddForPlaceholderMapping = []; + Object.entries(this.plainVariableMapping ?? {}).forEach(([key, mappingEntry]) => { + if (mappingEntry?.variableId) { + const tagFound = this.projectService.getTagFromId(mappingEntry.variableId); + if (tagFound) { + const tag = new _models_device__WEBPACK_IMPORTED_MODULE_15__.Tag(tagFound.id); + const placeholder = _models_device__WEBPACK_IMPORTED_MODULE_15__.DevicesUtils.getPlaceholderContent(key); + tag.name = placeholder.firstContent; + tagsToAddForPlaceholderMapping.push(tag); + } + } + }); + sourceTags = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.mergeUniqueBy(sourceTags, tagsToAddForPlaceholderMapping, 'id'); + for (let key in items) { + if (!items.hasOwnProperty(key)) { + continue; + } + try { + // check language translation + const textTranslated = this.languageService.getTranslation(items[key].property?.text); + // init gauge and TagId + let gauge = this.gaugesManager.initElementAdded(items[key], this.resolver, this.viewContainerRef, true, this, textTranslated, sourceTags); + if (gauge) { + this.mapControls[key] = gauge; + } + // bind mouse/key events, signals in gage will be subscribe for notify changes in backend + this.gaugesManager.bindGauge(gauge, this.id, items[key], sourceTags, gaToBindMouseEvents => { + this.onBindMouseEvents(gaToBindMouseEvents); + }, gaToBindHtmlEvent => { + this.onBindHtmlEvent(gaToBindHtmlEvent); + if (items[key]?.property?.options?.selectOnClick) { + const existingOnClick = gaToBindHtmlEvent.dom.onclick; + gaToBindHtmlEvent.dom.onclick = function (ev) { + if (existingOnClick) { + existingOnClick.call(this, ev); + } + gaToBindHtmlEvent.dom.select(); + gaToBindHtmlEvent.dom.focus(); + }; + } + }); + if (items[key].property) { + let gaugeSetting = items[key]; + let gaugeStatus = this.getGaugeStatus(gaugeSetting); + let variables = []; + // prepare the start value to precess + if (items[key].property.variableValue || gaugeSetting.property.variableId) { + let variable = { + id: gaugeSetting.property.variableId, + value: gaugeSetting.property.variableValue + }; + if (this.checkStatusValue(gaugeSetting.id, gaugeStatus, variable)) { + variables = [variable]; + } + } + // get the the last signal value in memory of gauge, is important that last one is the value (variableId) + variables = variables.concat(this.gaugesManager.getBindSignalsValue(items[key])); + if (variables.length) { + let svgeles = FuxaViewComponent_1.getSvgElements(gaugeSetting.id); + for (let y = 0; y < svgeles.length; y++) { + variables.forEach(variable => { + this.gaugesManager.processValue(gaugeSetting, svgeles[y], variable, gaugeStatus); + }); + } + } + // run load events + if (gaugeSetting.property.events) { + const loadEventType = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.onLoad); + const loadEvents = gaugeSetting.property.events?.filter(ev => ev.type === loadEventType); + if (loadEvents?.length) { + this.runEvents(this, gaugeSetting, null, loadEvents); + } + } + } + } catch (err) { + console.error('loadWatch: ' + key, err); + } + } + if (!this.subscriptionOnChange) { + this.subscriptionOnChange = this.gaugesManager.onchange.subscribe(this.handleSignal.bind(this)); + } + // Subscribe to gauge events from scheduler (or other components) + if (!this['subscriptionOnGaugeEvent']) { + this['subscriptionOnGaugeEvent'] = this.hmiService.onGaugeEvent.subscribe(event => { + if (event && event.action) { + const gaugeSettings = { + id: 'scheduler-trigger', + property: {} + }; + this.runEvents(this, gaugeSettings, null, [event]); + } else {} + }); + } + for (let variableId in this.staticValues) { + if (!this.staticValues.hasOwnProperty(variableId)) { + continue; + } + this.handleSignal({ + id: variableId, + value: this.staticValues[variableId] + }); + } + // set subscription to server + this.hmiService.viewsTagsSubscribe(this.gaugesManager.getBindedSignalsId(), true); + } + } + handleSignal(sig) { + if (sig.value !== undefined) { + try { + // take all gauges settings binded to the signal id in this view + let gas = this.gaugesManager.getGaugeSettings(this.id, sig.id); + if (gas) { + for (let i = 0; i < gas.length; i++) { + let gaugeSetting = gas[i]; + let gaugeStatus = this.getGaugeStatus(gaugeSetting); + if (this.checkStatusValue(gaugeSetting.id, gaugeStatus, sig)) { + let svgeles = FuxaViewComponent_1.getSvgElements(gaugeSetting.id); + for (let y = 0; y < svgeles.length; y++) { + this.gaugesManager.processValue(gaugeSetting, svgeles[y], sig, gaugeStatus); + } + } + } + } + } catch (err) {} + } + } + /** + * return the mapped gauge status, if it doesn't exist add it + * @param ga + */ + getGaugeStatus(ga) { + if (this.mapGaugeStatus[ga.id]) { + return this.mapGaugeStatus[ga.id]; + } else { + this.mapGaugeStatus[ga.id] = this.gaugesManager.createGaugeStatus(ga); + return this.mapGaugeStatus[ga.id]; + } + } + /** + * Replace variables by defined mapping + * The variable should be placeholder that was configured in Events and context bind + * @param items + * @protected + */ + applyVariableMapping(items, sourceTags) { + // Deep clone + items = JSON.parse(JSON.stringify(items)); + for (let gaId in items) { + if (!items.hasOwnProperty(gaId)) { + continue; + } + const gaugeSettings = items[gaId]; + let property = gaugeSettings.property; + if (!property) { + continue; + } + this.applyVariableMappingTo(property, sourceTags); + if (property.actions) { + property.actions.forEach(action => { + this.applyVariableMappingTo(action, sourceTags); + }); + } + if (property.events) { + property.events.forEach(event => { + if (event.actoptions) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isObject(event.actoptions['variable'])) { + this.applyVariableMappingTo(event.actoptions['variable'], sourceTags); + } else { + this.applyVariableMappingTo(event.actoptions, sourceTags); + } + } + }); + } + if (property.ranges) { + property.ranges.forEach(range => { + if (range.textId) { + this.applyVariableMappingTo(range.textId, sourceTags); + } + }); + } + } + return items; + } + /** + * @param target variable to replace with TagId + * @param device if don't have a replace, check the device tags name to replace + * @returns + */ + applyVariableMappingTo(target, tags) { + if (!target || !target['variableId']) { + return; + } + if (this.plainVariableMapping.hasOwnProperty(target.variableId)) { + target.variableValue = this.plainVariableMapping[target.variableId]?.variableValue; + target.variableId = this.plainVariableMapping[target.variableId]?.variableId; + return; + } + if (tags) { + const tag = _models_device__WEBPACK_IMPORTED_MODULE_15__.DevicesUtils.placeholderToTag(target.variableId, tags); + if (tag) { + target.variableId = tag.id; + target.variableValue = tag.value; + return; + } + } + } + /** + * check the change of variable value in gauge status + * @param gaugeId + * @param gaugeStatus + * @param signal + */ + checkStatusValue(gaugeId, gaugeStatus, signal) { + let result = true; + if (gaugeStatus.onlyChange) { + if (gaugeStatus.takeValue) { + let value = this.gaugesManager.getGaugeValue(gaugeId); + gaugeStatus.variablesValue[signal.id] = value; + } + if (gaugeStatus.variablesValue[signal.id] === signal.value) { + result = false; + } + } + gaugeStatus.variablesValue[signal.id] = signal.value; + return result; + } + /** + * bind the gauge svg element with mouse events + * @param ga + */ + onBindMouseEvents(ga) { + let self = this.parent || this; + let svgele = FuxaViewComponent_1.getSvgElement(ga.id); + let clickTimeout; + if (svgele) { + let dblclickEvents = self.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.dblclick); + let clickEvents = self.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.click); + if (clickEvents?.length > 0) { + svgele.click(function (ev) { + clearTimeout(clickTimeout); + clickTimeout = setTimeout(function () { + self.runEvents(self, ga, ev, clickEvents); + }, dblclickEvents?.length > 0 ? 200 : 0); + }); + svgele.touchstart(function (ev) { + self.runEvents(self, ga, ev, clickEvents); + ev.preventDefault(); + }); + } else if (dblclickEvents?.length > 0) { + svgele.dblclick(function (ev) { + clearTimeout(clickTimeout); + self.runEvents(self, ga, ev, dblclickEvents); + ev.preventDefault(); + }); + } + let mouseDownEvents = self.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mousedown); + if (mouseDownEvents?.length > 0) { + svgele.mousedown(function (ev) { + self.runEvents(self, ga, ev, mouseDownEvents); + }); + svgele.touchstart(function (ev) { + self.runEvents(self, ga, ev, mouseDownEvents); + ev.preventDefault(); + }); + } + let mouseUpEvents = self.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseup); + if (mouseUpEvents?.length > 0) { + svgele.mouseup(function (ev) { + self.runEvents(self, ga, ev, mouseUpEvents); + }); + svgele.touchend(function (ev) { + self.runEvents(self, ga, ev, mouseUpEvents); + ev.preventDefault(); + }); + } + let mouseOverEvents = self.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseover); + if (mouseOverEvents?.length > 0) { + svgele.mouseover(function (ev) { + self.runEvents(self, ga, ev, mouseOverEvents); + }); + } + let mouseOutEvents = self.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseout); + if (mouseOutEvents?.length > 0) { + svgele.mouseout(function (ev) { + self.runEvents(self, ga, ev, mouseOutEvents); + }); + } + } + } + runEvents(self, ga, ev, events) { + for (let i = 0; i < events.length; i++) { + let actindex = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType).indexOf(events[i].action); + let eventTypes = Object.values(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType); + if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onpage) === actindex) { + self.loadPage(ev, events[i].actparam, events[i].actoptions); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onwindow) === actindex) { + self.onOpenCard(ga.id, ev, events[i].actparam, events[i].actoptions); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.ondialog) === actindex) { + self.openDialog(ev, events[i].actparam, events[i].actoptions); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onSetValue) === actindex) { + self.onSetValue(ga, events[i]); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onToggleValue) === actindex) { + self.onToggleValue(ga, events[i]); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onSetInput) === actindex) { + self.onSetInput(ga, events[i]); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oniframe) === actindex) { + self.openIframe(ga.id, ev, events[i].actparam, events[i].actoptions); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oncard) === actindex) { + self.openWindow(ga.id, ev, events[i].actparam, events[i].actoptions); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onclose) === actindex) { + self.onClose(ev); + } else if (eventTypes.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onMonitor) === actindex) { + self.onMonitor(ga, ev, events[i].actparam, events[i].actoptions); + } else if (events[i].action === this.eventRunScript) { + self.onRunScript(events[i]); + } else if (events[i].action === this.eventOpenTab) { + self.onOpenTab(events[i], events[i].actoptions); + } else if (events[i].action === this.eventViewToPanel) { + self.onSetViewToPanel(events[i]); + } + } + } + onToggleValue(ga, event) { + const actionOptions = event.actoptions; + if (actionOptions?.variable?.variableId) { + this.gaugesManager.toggleSignalValue(actionOptions.variable.variableId, actionOptions.variable.bitmask); + } else if (ga.property && ga.property.variableId) { + this.gaugesManager.toggleSignalValue(ga.property.variableId); + } + } + setInputValidityMessage(result, el) { + if (result.errorText === 'html-input.out-of-range') { + el.setCustomValidity(`${this.translateService.instant(result.errorText)}. ${this.translateService.instant('html-input.min')}=${result.min}, ${this.translateService.instant('html-input.max')}=${result.max}`); + } else { + el.setCustomValidity(this.translateService.instant(result.errorText)); + } + el.reportValidity(); + } + /** + * bind the html input control with key-enter event and select control with change event + * @param htmlevent + */ + onBindHtmlEvent(htmlevent) { + let self = this; + // let htmlevent = this.getHtmlElement(ga.id); + if (this.hmi.layout?.inputdialog === 'keyboardFullScreen') { + this.touchKeyboard.ngxTouchKeyboardFullScreen = true; + } + if (htmlevent.type === 'key-enter') { + htmlevent.dom.onkeydown = function (ev) { + if (ev.key === 'Enter') { + const isToSkip = _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.SkipEnterEvent.includes((htmlevent?.dom?.nodeName ?? '').toLowerCase()); + const ctrlOrMeta = ev.ctrlKey || ev.metaKey; + if (!ctrlOrMeta && isToSkip) { + return; + } + htmlevent.dbg = 'key pressed ' + htmlevent.dom.id + ' ' + htmlevent.dom.value; + htmlevent.id = htmlevent.dom.id; + htmlevent.value = htmlevent.dom.value; + let res = _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.validateValue(htmlevent.dom.value, htmlevent.ga); + if (!res.valid) { + self.setInputValidityMessage(res, htmlevent.dom); + } else { + htmlevent.value = res.value; + self.gaugesManager.putEvent(htmlevent); + htmlevent.dom.blur(); + } + if (htmlevent.ga.type === _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.TypeTag) { + // htmlevent.dom.focus(); + // htmlevent.dom.select(); + const events = JSON.parse(JSON.stringify(_gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.getEvents(htmlevent.ga.property, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.enter))); + self.eventForScript(events, htmlevent.value); + } + } else if (ev.key == 'Escape') { + htmlevent.dom.blur(); + } + }; + if (this.hmi?.layout?.inputdialog === 'true') { + htmlevent.dom.onfocus = function (ev) { + if (ev.currentTarget) { + var inputRect = ev.currentTarget.getBoundingClientRect(); + self.toggleShowInputDialog(true, inputRect.left + (inputRect.width < 80 ? -((80 - inputRect.width) / 2) : 0) - 7, inputRect.top - 8, htmlevent); + for (let i = 0; i < ev.currentTarget.attributes.length; i++) { + if (ev.currentTarget.attributes['style']) { + self.setInputDialogStyle(self.inputDialogRef.nativeElement, ev.currentTarget.attributes['style'].textContent, inputRect); + } + } + self.gaugeInputCurrent = htmlevent.dom.value; + document.body.appendChild(self.inputDialogRef.nativeElement); + _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.checkInputType(self.inputValueRef.nativeElement, htmlevent.ga.property?.options); + setTimeout(() => { + self.inputValueRef.nativeElement.focus(); + }, 300); + } + }; + } else { + // Register events to remove and add unit on input focus and blur. We don'w want units to be part of input value during editing + // When input dialog is enabled, these event gets overridden (by binding of HtmlEvent) and are not called. + if (this.hmi.layout?.inputdialog.startsWith('keyboard') && htmlevent.ga?.type === _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.TypeTag) { + htmlevent.dom.onfocus = function (ev) { + self.touchKeyboard.closePanel(); + let eleRef = new _angular_core__WEBPACK_IMPORTED_MODULE_18__.ElementRef(htmlevent.dom); + if (htmlevent.ga?.property?.options?.numeric || htmlevent.ga?.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.InputOptionType.number) { + eleRef.nativeElement.inputMode = 'decimal'; + } + if (htmlevent.ga?.property?.options?.type !== _models_hmi__WEBPACK_IMPORTED_MODULE_2__.InputOptionType.datetime && htmlevent.ga?.property?.options?.type !== _models_hmi__WEBPACK_IMPORTED_MODULE_2__.InputOptionType.date && htmlevent.ga?.property?.options?.type !== _models_hmi__WEBPACK_IMPORTED_MODULE_2__.InputOptionType.time) { + self.touchKeyboard.openPanel(eleRef).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_20__.take)(1)).subscribe(() => { + htmlevent.dom.blur(); + }); + } + // if(htmlevent.ga.property){ + // let unit = HtmlInputComponent.getUnit(htmlevent.ga.property, new GaugeStatus()); + // if(unit && htmlevent.dom.value.endsWith(unit)){ + // let len = htmlevent.dom.value.length; + // htmlevent.dom.value = htmlevent.dom.value.substr(0, len - unit.length - 1); + // } + // htmlevent.dom.select(); + // } + }; + } + + htmlevent.dom.onblur = function (ev) { + // Update variable value in case it has changed while input had focus + let variables = self.gaugesManager.getBindSignalsValue(htmlevent.ga); + let svgeles = FuxaViewComponent_1.getSvgElements(htmlevent.ga.id); + if (variables.length && svgeles.length) { + if (htmlevent.ga?.type !== _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.TypeTag && !_gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.InputDateTimeType.includes(htmlevent.ga?.property.options?.type)) { + self.gaugesManager.processValue(htmlevent.ga, svgeles[0], variables[0], new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeStatus()); + } + } + // Remove any error message when input is blured + htmlevent.dom.setCustomValidity(''); + self.checkRestoreValue(htmlevent); + }; + htmlevent.dom.oninput = function (ev) { + // Remove any error message when input changes + htmlevent.dom.setCustomValidity(''); + }; + } + } else if (htmlevent.type === 'change') { + htmlevent.dom.onchange = function (ev) { + htmlevent.dbg = 'key pressed ' + htmlevent.dom.id + ' ' + htmlevent.dom.value; + htmlevent.id = htmlevent.dom.id; + htmlevent.value = htmlevent.dom.value; + self.gaugesManager.putEvent(htmlevent); + if (htmlevent.ga.type === _gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_12__.HtmlSelectComponent.TypeTag) { + const events = JSON.parse(JSON.stringify(_gauges_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_12__.HtmlSelectComponent.getEvents(htmlevent.ga.property, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.select))); + self.eventForScript(events, htmlevent.value); + } + }; + } + } + checkRestoreValue(htmlevent) { + if (htmlevent.ga?.property?.options?.updated && (htmlevent.ga.property.options.updatedEsc || htmlevent.ga.property.options.actionOnEsc === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.InputActionEscType.update)) { + //ToDo there is definitely a better way + setTimeout(() => { + const gaugeStatus = this.getGaugeStatus(htmlevent.ga); + const currentInputValue = gaugeStatus?.variablesValue[htmlevent.ga?.property?.variableId]; + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(currentInputValue)) { + htmlevent.dom.value = currentInputValue; + } + }, 1000); + } else if (htmlevent.ga?.property?.options?.actionOnEsc === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.InputActionEscType.enter) { + this.emulateEnterKey(htmlevent.dom); + } + } + eventForScript(events, value) { + events?.forEach(ev => { + if (value) { + let parameters = ev.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_5__.SCRIPT_PARAMS_MAP]; + parameters.forEach(param => { + if (param.type === this.scriptParameterValue && !param.value) { + param.value = value; + } + }); + } + this.onRunScript(ev); + }); + } + setInputDialogStyle(element, style, sourceBound) { + for (let i = 0; i < element.children.length; i++) { + let el = element.children[i]; + if (el.tagName.toLowerCase() === 'input') { + el.value = ''; + style += 'width: ' + sourceBound.width + 'px !important;'; + el.setAttribute('style', style); + } + } + element.style.backgroundColor = this.view.profile.bkcolor; + } + getView(viewref) { + let view; + const hmi = this.hmi ?? this.hmiService.hmi; + for (let i = 0; i < hmi?.views?.length; i++) { + if (hmi.views[i]?.id === viewref) { + view = hmi.views[i]; + break; + } + } + return view; + } + static getSvgElements(svgid) { + let ele = document.getElementsByTagName('svg'); + let result = []; + for (let i = 0; i < ele.length; i++) { + let svgItems = ele[i].getElementById(svgid); + if (svgItems) { + result.push(SVG.adopt(svgItems)); + } + } + return result; + } + static getSvgElement(svgid) { + let ele = document.getElementsByTagName('svg'); + for (let i = 0; i < ele.length; i++) { + let svgItems = ele[i].getElementById(svgid); + if (svgItems) { + return SVG.adopt(svgItems); + } + } + } + closeAllCards() { + this.cards = []; + } + loadPage(param, viewref, options) { + let view = this.getView(viewref); + this.closeAllCards(); + if (view) { + if (options?.variablesMapping) { + this.loadVariableMapping(options.variablesMapping); + } + this.sourceDeviceId = options.sourceDeviceId; + this.loadHmi(view, true); + if (param.scaleMode) { + _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.resizeViewRev(this.dataContainer.nativeElement, this.dataContainer.nativeElement.parentElement?.parentElement, param.scaleMode); + } + } + } + openDialog(event, viewref, options = {}) { + let dialogData = { + view: this.getView(viewref), + bkColor: 'transparent', + variablesMapping: options.variablesMapping, + disableDefaultClose: options.hideClose, + gaugesManager: this.gaugesManager, + sourceDeviceId: options.sourceDeviceId + }; + let dialogRef = this.fuxaDialog.open(_fuxa_view_dialog_fuxa_view_dialog_component__WEBPACK_IMPORTED_MODULE_13__.FuxaViewDialogComponent, { + panelClass: 'fuxa-dialog-property', + disableClose: true, + data: dialogData, + autoFocus: false, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(); + } + bringCardToFront(card) { + card.zIndex = this.nextZIndex(); + } + nextZIndex() { + return ++this.zIndexCounter; + } + onOpenCard(id, event, viewref, options = {}) { + if (options?.singleCard) { + this.cards = []; + this.changeDetector.detectChanges(); + } + let view = this.getView(viewref); + if (!view) { + return; + } + // check existing card + let card = null; + this.cards.forEach(c => { + if (c.id === id) { + card = c; + } + }); + if (card) { + return; + } + card = new CardModel(id); + card.x = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.left) ? parseInt(options.left) : 0; + card.y = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.top) ? parseInt(options.top) : 0; + if (event && options.relativeFrom !== _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventRelativeFromType.window) { + const eventPos = _helpers_event_utils__WEBPACK_IMPORTED_MODULE_17__.EventUtils.getEventClientPosition(event); + if (eventPos) { + card.x += eventPos.x ?? 0; + card.y += eventPos.y ?? 0; + } + } + if (this.hmi.layout.hidenavigation) { + card.y -= 48; + } + card.width = view.profile.width; + card.height = view.profile.height; + card.view = view; + card.variablesMapping = options?.variablesMapping; + card.disableDefaultClose = options?.hideClose; + card.sourceDeviceId = options?.sourceDeviceId; + card.zIndex = this.nextZIndex(); + if (this.parentcards) { + this.parentcards.push(card); + } else { + this.cards.push(card); + } + this.changeDetector.detectChanges(); + } + onOpenTab(event, options) { + let link = event.actoptions?.addressType === 'resource' ? this.endPointConfig + '/' + event.actoptions.resource : event.actparam; + window.open(link, options.newTab ? '_blank' : '_self'); + } + openIframe(id, event, link, options) { + // check existing iframe + let iframe = null; + this.iframes.forEach(f => { + if (f.id === id) { + iframe = f; + } + }); + if (iframe) { + return; + } + iframe = new CardModel(id); + iframe.x = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.left) ? parseInt(options.left) : event.clientX; + iframe.y = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.top) ? parseInt(options.top) : event.clientY; + iframe.width = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.width) ? parseInt(options.width) : 600; + iframe.height = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.height) ? parseInt(options.height) : 400; + iframe.scale = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.scale) ? parseFloat(options.scale) : 1; + iframe.link = link; + iframe.name = link; + this.iframes.push(iframe); + this.onIframeResizing(iframe, { + size: { + width: iframe.width, + height: iframe.height + } + }); + } + onIframeResizing(iframe, event) { + iframe.width = event.size.width; + iframe.height = event.size.height; + } + onCloseIframe(iframe) { + this.iframes.forEach(f => { + if (f.id === iframe.id) { + this.iframes.splice(this.cards.indexOf(f), 1); + } + }); + } + openWindow(id, event, link, options) { + const width = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.width) ? parseInt(options.width) : 600; + const height = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.height) ? parseInt(options.height) : 400; + const left = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.left) ? parseInt(options.left) : event.clientX; + const top = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNumeric(options.top) ? parseInt(options.top) : event.clientY; + window.open(link, '_blank', options.newTab ? null : `height=${height},width=${width},left=${left},top=${top}`); + } + onCloseCard(card) { + this.cards.splice(this.cards.indexOf(card), 1); + } + onClose($event) { + if (this.onclose) { + this.onclose.emit($event); + } + } + onSetValue(ga, event) { + if (event.actparam) { + let variableId = this.fetchVariableId(event) || ga.property.variableId; + let fnc = this.fetchFunction(event); + this.gaugesManager.putSignalValue(variableId, event.actparam, fnc); + } + } + onSetInput(ga, event) { + if (event.actparam) { + let ele = document.getElementById(event.actparam); + if (ele) { + let input = null; + for (let i = 0; i < _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_3__.GaugesManager.GaugeWithProperty.length; i++) { + input = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_3__.GaugesManager.GaugeWithProperty[i]); + if (input) { + break; + } + } + if (input && !_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(input.value)) { + let variableId = this.fetchVariableId(event) || ga.property.variableId; + this.gaugesManager.putSignalValue(variableId, input.value); + } + } + } + } + onRunScript(event) { + if (event.actparam) { + let torun = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.clone(this.projectService.getScripts().find(dataScript => dataScript.id == event.actparam)); + torun.parameters = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.clone(event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_5__.SCRIPT_PARAMS_MAP]); + const placeholders = torun.parameters.filter(param => param.value?.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_15__.PlaceholderDevice.id)).map(param => param.value); + if (placeholders?.length) { + const placeholdersMap = this.getViewPlaceholderValue(placeholders); + torun.parameters.forEach(param => { + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(placeholdersMap[param.value])) { + param.value = placeholdersMap[param.value]; + } + }); + } + this.scriptService.runScript(torun).subscribe(result => {}, err => { + console.error(err); + }); + } + } + onMonitor(gaugeSettings, event, viewref, options = {}) { + let dialogData = { + view: this.getView(viewref), + bkColor: 'transparent', + gaugesManager: this.gaugesManager, + ga: gaugeSettings + }; + let pos = { + top: event.layerY + 30 + 'px', + left: event.layerX + 10 + 'px' + }; + let dialogRef = this.fuxaDialog.open(_gui_helpers_webcam_player_webcam_player_dialog_webcam_player_dialog_component__WEBPACK_IMPORTED_MODULE_14__.WebcamPlayerDialogComponent, { + panelClass: 'fuxa-dialog-property', + disableClose: false, + data: dialogData, + position: pos + }); + dialogRef.afterClosed().subscribe(); + } + onSetViewToPanel(event) { + if (event.actparam && event.actoptions) { + let panelCtrl = this.mapControls[event.actoptions['panelId']]; + const panelProperty = this.view.items[event.actoptions['panelId']]?.property; + panelCtrl.loadPage(panelProperty, event.actparam, event.actoptions); + } + } + getCardHeight(height) { + return parseInt(height) + 4; + } + getViewPlaceholderValue(placeholder) { + let result = {}; + Object.values(this.view.items).forEach(item => { + if (placeholder.indexOf(item.property?.variableId) !== -1) { + if (this.mapControls[item.id]) { + const ctrl = this.mapControls[item.id]; + if (ctrl && ctrl !== true && ctrl.getValue) { + result[item.property?.variableId] = ctrl.getValue(); + } + } + } + }); + this.variablesMapping?.forEach(mappedVariable => { + if (placeholder.indexOf(mappedVariable?.from?.variableId) !== -1 && mappedVariable?.to?.variableId) { + result[mappedVariable.from.variableId] = mappedVariable.to.variableId; + } + }); + return result; + } + fetchVariableId(event) { + if (!event.actoptions) { + return null; + } + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isObject(event.actoptions['variable']) && event.actoptions['variable']['variableId']) { + return event.actoptions['variable']['variableId']; + } + // For legacy events + if (event.actoptions['variableId']) { + return event.actoptions['variableId']; + } + return null; + } + fetchFunction(event) { + if (event.actoptions && event.actoptions.function) { + return event.actoptions.function; + } + return null; + } + toggleShowInputDialog(show, x = -1, y = -1, htmlev = null) { + if (show) { + // Evaluate top/bottom coordinate and adjust to dialog position to fit into window. We know that dialog height is 112 + let d = self.innerHeight - (y + 114); + if (y < 0) { + y = 0; + } else if (d < 0) { + y += d; + } + this.inputDialog.show = true; + if (x >= 0 && y >= 0) { + this.inputDialog.target = htmlev; + this.inputDialog.x = x; + this.inputDialog.y = y; + } + clearTimeout(this.inputDialog.timer); + } else { + this.inputDialog.timer = setTimeout(() => { + this.inputDialog.show = false; + this.gaugeInputCurrent = ''; + }, 300); + } + } + onNoClick() {} + inputOnChange() { + // Remove any error message when input changes + this.inputValueRef.nativeElement.setCustomValidity(''); + } + onOkClick(evintput) { + if (this.inputDialog.target.dom) { + let res = _gauges_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_7__.HtmlInputComponent.validateValue(evintput, this.inputDialog.target.ga); + if (!res.valid) { + this.setInputValidityMessage(res, this.inputValueRef.nativeElement); + } else { + this.inputValueRef.nativeElement.setCustomValidity(''); + this.inputDialog.target.dom.value = evintput; + this.inputDialog.target.dbg = 'key pressed ' + this.inputDialog.target.dom.id + ' ' + this.inputDialog.target.dom.value; + this.inputDialog.target.id = this.inputDialog.target.dom.id; + this.inputDialog.target.value = this.inputDialog.target.dom.value; + this.gaugesManager.putEvent({ + ...this.inputDialog.target, + value: res.value + }); + this.emulateEnterKey(this.inputDialog.target.dom); + } + } + } + emulateEnterKey(target) { + const event = new KeyboardEvent('keydown', { + key: 'Enter', + keyCode: 13, + code: 'Enter', + bubbles: true + }); + target.dispatchEvent(event); + } + static setAlignStyle(align, nativeElement) { + if (align === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.DocAlignType.middleCenter) { + nativeElement.style.position = 'absolute'; + nativeElement.style.top = '50%'; + nativeElement.style.left = '50%'; + nativeElement.style.transform = 'translate(-50%, -50%)'; + } + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_21__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ChangeDetectorRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ViewContainerRef + }, { + type: _services_script_service__WEBPACK_IMPORTED_MODULE_6__.ScriptService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_8__.ProjectService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_10__.HmiService + }, { + type: _services_language_service__WEBPACK_IMPORTED_MODULE_16__.LanguageService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ComponentFactoryResolver + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MatLegacyDialog + }]; + static propDecorators = { + id: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + variablesMapping: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + view: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + hmi: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + child: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + gaugesManager: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + parentcards: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + sourceDeviceId: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Input + }], + onclose: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Output + }], + ongoto: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.Output + }], + dataContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ViewChild, + args: ['dataContainer', { + static: false + }] + }], + inputDialogRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ViewChild, + args: ['inputDialogRef', { + static: false + }] + }], + inputValueRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ViewChild, + args: ['inputValueRef', { + static: false + }] + }], + touchKeyboard: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.ViewChild, + args: ['touchKeyboard', { + static: false + }] + }], + onResize: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_18__.HostListener, + args: ['window:resize', ['$event']] + }] + }; +}; +FuxaViewComponent = FuxaViewComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_18__.Component)({ + selector: 'app-fuxa-view', + template: _fuxa_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_fuxa_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_21__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_18__.ChangeDetectorRef, _angular_core__WEBPACK_IMPORTED_MODULE_18__.ViewContainerRef, _services_script_service__WEBPACK_IMPORTED_MODULE_6__.ScriptService, _services_project_service__WEBPACK_IMPORTED_MODULE_8__.ProjectService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_10__.HmiService, _services_language_service__WEBPACK_IMPORTED_MODULE_16__.LanguageService, _angular_core__WEBPACK_IMPORTED_MODULE_18__.ComponentFactoryResolver, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MatLegacyDialog])], FuxaViewComponent); + +class CardModel { + id; + name; + link; + x; + y; + scale; + scaleX; + scaleY; + width; + height; + variablesMapping = []; + view; + sourceDeviceId; + disableDefaultClose; + zIndex; + constructor(id) { + this.id = id; + } +} +class DialogModalModel { + id; + name; + width; + height; + bkcolor; + view; + variablesMapping = []; + disableDefaultClose; + constructor(id) { + this.id = id; + } +} + +/***/ }), + +/***/ 64421: +/*!****************************************************************************!*\ + !*** ./src/app/gauges/controls/gauge-progress/gauge-progress.component.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GaugeProgressComponent: () => (/* binding */ GaugeProgressComponent) +/* harmony export */ }); +/* harmony import */ var _gauge_progress_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gauge-progress.component.html?ngResource */ 23726); +/* harmony import */ var _gauge_progress_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gauge-progress.component.css?ngResource */ 36392); +/* harmony import */ var _gauge_progress_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_gauge_progress_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let GaugeProgressComponent = class GaugeProgressComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-gauge_progress'; + static LabelTag = 'HtmlProgress'; + static prefixA = 'A-GXP_'; + static prefixB = 'B-GXP_'; + static prefixH = 'H-GXP_'; + static prefixMax = 'M-GXP_'; + static prefixMin = 'm-GXP_'; + static prefixValue = 'V-GXP_'; + static barColor = '#3F4964'; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__.GaugeDialogType.Range; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node?.children?.length === 3) { + let value = parseFloat(sig.value); + const min = ga.property?.ranges?.reduce((lastMin, item) => item.min < lastMin.min ? item : lastMin, ga.property?.ranges?.length ? ga.property.ranges[0] : undefined)?.min ?? 0; + const max = ga.property?.ranges?.reduce((lastMax, item) => item.max > lastMax.max ? item : lastMax, ga.property?.ranges?.length ? ga.property.ranges[0] : undefined)?.max ?? 100; + const gap = ga.property?.ranges?.find(item => value >= item.min && value <= item.max); + let rectBase = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgele.node, this.prefixA); + let heightBase = parseFloat(rectBase.getAttribute('height')); + let yBase = parseFloat(rectBase.getAttribute('y')); + let rect = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgele.node, this.prefixB); + if (rectBase && rect) { + if (value > max) { + value = max; + } + if (value < min) { + value = min; + } + let k = (heightBase - 0) / (max - min); + let vtoy = gap ? k * (value - min) : 0; + if (!Number.isNaN(vtoy)) { + rect.setAttribute('y', yBase + heightBase - vtoy); + rect.setAttribute('height', vtoy); + if (gap?.color) { + rect.setAttribute('fill', gap.color); + } + if (gap?.stroke) { + rect.setAttribute('stroke', gap.stroke); + } + if (gap?.text) { + let htmlValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgele.node, this.prefixValue); + if (htmlValue) { + htmlValue.innerHTML = value; + if (gap.text) { + htmlValue.innerHTML += ' ' + gap.text; + } + htmlValue.style.top = (heightBase - vtoy - 7).toString() + 'px'; + } + } else { + let htmlValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgele.node, this.prefixValue); + if (htmlValue) { + htmlValue.innerHTML += 'ER'; + } + } + } + } + } + } catch (err) { + console.error(err); + } + } + static initElement(ga, isview = false) { + let ele = document.getElementById(ga.id); + if (ele) { + ele?.setAttribute('data-name', ga.name); + if (!ga.property) { + ga.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeProperty(); + let ip = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeRangeProperty(); + ip.type = this.getDialogType(); + ip.min = 0; + ip.max = 100; + ip.style = [true, true]; + ip.color = '#3F4964'; + ga.property.ranges = [ip]; + } + if (ga.property.ranges?.length > 0) { + let gap = ga.property.ranges[0]; + // label min + let htmlLabel = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixMin); + if (htmlLabel) { + htmlLabel.innerHTML = gap.min.toString(); + htmlLabel.style.display = gap.style[0] ? 'block' : 'none'; + } + // label max + htmlLabel = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixMax); + if (htmlLabel) { + htmlLabel.innerHTML = gap.max.toString(); + htmlLabel.style.display = gap.style[0] ? 'block' : 'none'; + } + // value + let htmlValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixValue); + if (htmlValue) { + htmlValue.style.display = gap.style[1] ? 'block' : 'none'; + } + // bar color + let rect = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixB); + if (rect) { + rect.setAttribute('fill', gap.color); + } + } + } + return ele; + } + static initElementColor(bkcolor, color, ele) { + let rectArea = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixA); + if (rectArea) { + if (bkcolor) { + rectArea.setAttribute('fill', bkcolor); + } + if (color) { + rectArea.setAttribute('stroke', color); + } + } + rectArea = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixB); + if (rectArea) { + if (color) { + rectArea.setAttribute('stroke', color); + } + } + } + static getFillColor(ele) { + let rectArea = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixA); + if (rectArea) { + return rectArea.getAttribute('fill'); + } + } + static getStrokeColor(ele) { + let rectArea = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixA); + if (rectArea) { + return rectArea.getAttribute('stroke'); + } + } + static getDefaultValue() { + return { + color: this.barColor + }; + } + static getMinByAttribute(arr, attr) { + return arr?.reduce((min, obj) => obj[attr] < min[attr] ? obj : min); + } + static ctorParameters = () => []; +}; +GaugeProgressComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'gauge-progress', + template: _gauge_progress_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_gauge_progress_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], GaugeProgressComponent); + + +/***/ }), + +/***/ 79069: +/*!******************************************************************************!*\ + !*** ./src/app/gauges/controls/gauge-semaphore/gauge-semaphore.component.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GaugeSemaphoreComponent: () => (/* binding */ GaugeSemaphoreComponent) +/* harmony export */ }); +/* harmony import */ var _gauge_semaphore_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gauge-semaphore.component.html?ngResource */ 3665); +/* harmony import */ var _gauge_semaphore_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gauge-semaphore.component.css?ngResource */ 78414); +/* harmony import */ var _gauge_semaphore_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_gauge_semaphore_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var GaugeSemaphoreComponent_1; + + + + + + +let GaugeSemaphoreComponent = GaugeSemaphoreComponent_1 = class GaugeSemaphoreComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-gauge_semaphore'; + static LabelTag = 'HtmlSemaphore'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Range; + } + static getActions() { + return this.actionsType; + } + static isBitmaskSupported() { + return true; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node && svgele.node.children && svgele.node.children.length <= 1) { + let g = svgele.node.children[0]; + let clr = ''; + let val = parseFloat(sig.value); + if (Number.isNaN(val)) { + // maybe boolean + val = Number(sig.value); + } + let procValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(ga.property.bitmask, val); + if (ga.property && ga.property.ranges) { + for (let idx = 0; idx < ga.property.ranges.length; idx++) { + if (ga.property.ranges[idx].min <= procValue && ga.property.ranges[idx].max >= procValue) { + clr = ga.property.ranges[idx].color; + } + } + g.setAttribute('fill', clr); + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + GaugeSemaphoreComponent_1.processAction(act, svgele, procValue, gaugeStatus); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static getFillColor(ele) { + if (ele.children && ele.children[0]) { + return ele.children[0].getAttribute('fill'); + } + return ele.getAttribute('fill'); + } + static getStrokeColor(ele) { + if (ele.children && ele.children[0]) { + return ele.children[0].getAttribute('stroke'); + } + return ele.getAttribute('stroke'); + } + static processAction(act, svgele, value, gaugeStatus) { + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.blink) { + let element = SVG.adopt(svgele.node); + let inRange = act.range.min <= value && act.range.max >= value; + this.checkActionBlink(element, act, gaugeStatus, inRange, false); + } + } + static ctorParameters = () => []; +}; +GaugeSemaphoreComponent = GaugeSemaphoreComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'gauge-semaphore', + template: _gauge_semaphore_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_gauge_semaphore_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], GaugeSemaphoreComponent); + + +/***/ }), + +/***/ 31176: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-bag/bag-property/bag-property.component.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ BagPropertyComponent: () => (/* binding */ BagPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _bag_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bag-property.component.html?ngResource */ 32749); +/* harmony import */ var _bag_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bag-property.component.css?ngResource */ 64990); +/* harmony import */ var _bag_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bag_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../gui-helpers/ngx-gauge/gaugeOptions */ 6898); +/* harmony import */ var _gui_helpers_ngx_gauge_ngx_gauge_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../gui-helpers/ngx-gauge/ngx-gauge.component */ 5769); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_helpers/define */ 94107); +/* harmony import */ var _gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../gauge-property/permission-dialog/permission-dialog.component */ 87570); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let BagPropertyComponent = class BagPropertyComponent { + cdRef; + dialog; + dialogRef; + data; + ngauge; + flexHead; + gauge = { + value: 30 + }; + property; + gaugeTypeEnum = _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType; + gaugeType = _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Gauge; + options = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + optionsGauge = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + optionsDonut = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + optionsZones = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + optcfg = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.defaultColor; + fonts = _helpers_define__WEBPACK_IMPORTED_MODULE_7__.Define.fonts; + constructor(cdRef, dialog, dialogRef, data) { + this.cdRef = cdRef; + this.dialog = dialog; + this.dialogRef = dialogRef; + this.data = data; + this.optionsGauge = this.getDefaultOptions(_gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Gauge); + this.optionsDonut = this.getDefaultOptions(_gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut); + this.optionsZones = this.getDefaultOptions(_gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones); + this.options = this.optionsGauge; + this.property = JSON.parse(JSON.stringify(this.data.settings.property)); + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_5__.GaugeProperty(); + } + } + ngAfterViewInit() { + setTimeout(() => { + this.gaugeType = _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Gauge; + if (this.property.options) { + this.options = this.property.options; + this.gaugeType = this.options.type; + if (this.gaugeType === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut) { + this.optionsDonut = this.options; + } else if (this.gaugeType === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones) { + this.optionsZones = this.options; + } else { + this.optionsGauge = this.options; + } + } + this.onGaugeChange(this.gaugeType); + this.cdRef.detectChanges(); + }, 500); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.settings.property = this.flexHead.getProperty(); + this.options.type = this.gaugeType; + this.data.settings.property.options = this.options; + } + onEditPermission() { + let dialogRef = this.dialog.open(_gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_8__.PermissionDialogComponent, { + position: { + top: '60px' + }, + data: { + permission: this.property.permission, + permissionRoles: this.property.permissionRoles + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.property.permission = result.permission; + this.property.permissionRoles = result.permissionRoles; + } + }); + } + onGaugeChange(type) { + if (type === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut) { + this.gaugeType = _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut; + this.initOptionsToConfig(this.optionsDonut); + this.initDonut(); + } else if (type === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones) { + this.gaugeType = _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones; + this.initOptionsToConfig(this.optionsZones); + this.initZones(); + } else { + this.gaugeType = _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Gauge; + this.initOptionsToConfig(this.optionsGauge); + this.initGauge(); + } + this.cdRef.detectChanges(); + } + onChangeValue(value) { + this.ngauge.setValue(value); + } + onChangeOptions(opt, value) { + this.optcfg[opt] = value; + this.configToOptions(this.optcfg[opt], opt); + this.setGaugeOptions(); + } + onChangeOptionsPointer(opt, value) { + this.options.pointer[opt] = value; + if (opt === 'pointerLength') { + this.options.pointer.length = value / 100; + } else if (opt === 'pointerStrokeWidth') { + this.options.pointer.strokeWidth = value / 1000; + } + if (opt === 'minValue') { + this.onChangeValue(value); + } + this.setGaugeOptions(); + } + onChangeOptionsTicks(opt, value) { + this.options.renderTicks[opt] = value; + if (opt === 'divLength') { + this.options.renderTicks.divLength = value / 100; + } else if (opt === 'divWidth') { + this.options.renderTicks.divWidth = value / 10; + } else if (opt === 'subLength') { + this.options.renderTicks.subLength = value / 100; + } else if (opt === 'subWidth') { + this.options.renderTicks.subWidth = value / 10; + } + this.setGaugeOptions(); + } + onChangeTicks(event) { + this.options.ticksEnabled = event; + if (event) { + let opt = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + this.options.renderTicks = JSON.parse(JSON.stringify(opt.renderTicks)); + } else { + this.options.renderTicks = {}; + } + this.onGaugeChange(this.gaugeType); + } + onChangeOptionsLabels(opt, value) { + if (opt === 'labels') { + let labels = []; + if (value) { + let tks = value.split(';'); + tks.forEach(tk => { + let v = parseFloat(tk); + if (!isNaN(v)) { + labels.push(v); + } + }); + } + this.options.staticLabels = { + labels: labels, + font: this.options.staticFontSize + 'px Sans-serif', + color: this.options.staticFontColor + }; + this.checkFontFamily(); + this.onGaugeChange(this.gaugeType); + } else if (opt === 'fontSize') { + this.options.staticFontSize = value; + if (this.options.staticLabels) { + this.options.staticLabels.font = this.options.staticFontSize + 'px Sans-serif'; + this.checkFontFamily(); + this.setGaugeOptions(); + } + } else if (opt === 'labelsColor') { + this.options.staticFontColor = value; + if (this.options.staticLabels) { + this.options.staticLabels.color = this.options.staticFontColor; + this.setGaugeOptions(); + } + } else if (opt === 'fontFamily') { + this.options.fontFamily = value; + this.checkFontFamily(); + this.setGaugeOptions(); + } + } + onAddZone() { + if (!this.optcfg.staticZones) { + this.optcfg.staticZones = []; + } + if (this.optcfg.staticZones.length < 5) { + this.optcfg.staticZones.push({ + min: null, + max: null, + strokeStyle: null + }); + } + this.options.staticZones = this.optcfg.staticZones; + this.onGaugeChange(this.gaugeType); + } + onRemoveZone(index) { + this.optcfg.staticZones.splice(index, 1); + if (this.optcfg.staticZones.length <= 0) { + delete this.optcfg.staticZones; + delete this.options.staticZones; + } else { + this.options.staticZones = this.optcfg.staticZones; + } + this.onGaugeChange(this.gaugeType); + } + onChangeStaticZones() { + this.options.staticZones = this.optcfg.staticZones; + this.setGaugeOptions(); + } + checkFontFamily() { + if (this.options.staticLabels && this.options.fontFamily) { + this.options.staticLabels.font = this.options.staticFontSize + 'px ' + this.options.fontFamily; + } + } + initGauge() { + this.setGaugeOptions(); + this.options = this.optionsGauge; + this.ngauge.init(_gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Gauge); + } + initDonut() { + this.setGaugeOptions(); + this.options = this.optionsDonut; + this.ngauge.init(_gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut); + } + initZones() { + this.setGaugeOptions(); + this.options = this.optionsZones; + this.ngauge.init(_gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones); + } + setGaugeOptions() { + if (this.gaugeType === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut) { + this.ngauge.setOptions(this.optionsDonut); + } else if (this.gaugeType === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones) { + this.ngauge.setOptions(this.optionsZones); + } else { + this.ngauge.setOptions(this.optionsGauge); + } + } + initOptionsToConfig(options) { + this.optcfg = JSON.parse(JSON.stringify(options)); + this.optcfg.angle *= 100; + this.optcfg.lineWidth *= 100; + this.optcfg.radiusScale *= 100; + this.optcfg.pointer.length *= 100; + this.optcfg.pointer.strokeWidth *= 1000; + if (this.optcfg.renderTicks) { + if (this.optcfg.renderTicks.divLength) { + this.optcfg.renderTicks.divLength *= 100; + } + if (this.optcfg.renderTicks.divWidth) { + this.optcfg.renderTicks.divWidth *= 10; + } + if (this.optcfg.renderTicks.subLength) { + this.optcfg.renderTicks.subLength *= 100; + } + if (this.optcfg.renderTicks.subWidth) { + this.optcfg.renderTicks.subWidth *= 10; + } + } + this.optcfg.staticLabelsText = ''; + if (this.optcfg.staticLabels && this.optcfg.staticLabels.labels.length) { + this.optcfg.staticLabels.labels.forEach(lb => { + if (this.optcfg.staticLabelsText) { + this.optcfg.staticLabelsText += ';'; + } + this.optcfg.staticLabelsText += lb; + }); + } + } + configToOptions(value, opt) { + if (opt === 'angle' || opt === 'lineWidth' || opt === 'radiusScale') { + value /= 100; + } + this.options[opt] = value; + } + getDefaultOptions(type) { + if (type === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Zones) { + var opts = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + opts.angle = -0.25; + opts.lineWidth = 0.2; + opts.radiusScale = 0.9; + opts.pointer.length = 0.6; + opts.pointer.strokeWidth = 0.05; + return opts; + } else if (type === _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeType.Donut) { + var optsd = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + optsd.angle = 0.3; + optsd.lineWidth = 0.1; + optsd.radiusScale = 0.8; + optsd.renderTicks.divisions = 0; + optsd.renderTicks.divWidth = 0; + optsd.renderTicks.divLength = 0; + optsd.renderTicks.subDivisions = 0; + optsd.renderTicks.subWidth = 0; + optsd.renderTicks.subLength = 0; + delete optsd.staticLabels; + delete optsd.staticZones; + optsd.ticksEnabled = false; + return optsd; + } else { + var optsa = new _gui_helpers_ngx_gauge_gaugeOptions__WEBPACK_IMPORTED_MODULE_3__.GaugeOptions(); + delete optsa.staticLabels; + delete optsa.staticZones; + optsa.ticksEnabled = false; + optsa.renderTicks = {}; + optsa.staticFontSize = 0; + optsa.staticLabelsText = ''; + return optsa; + } + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ChangeDetectorRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + ngauge: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['ngauge', { + static: false + }] + }], + flexHead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['flexhead', { + static: false + }] + }] + }; +}; +BagPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'bag-property', + template: _bag_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_bag_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_9__.ChangeDetectorRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef, Object])], BagPropertyComponent); + + +/***/ }), + +/***/ 16434: +/*!****************************************************************!*\ + !*** ./src/app/gauges/controls/html-bag/html-bag.component.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlBagComponent: () => (/* binding */ HtmlBagComponent) +/* harmony export */ }); +/* harmony import */ var _html_bag_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-bag.component.html?ngResource */ 52880); +/* harmony import */ var _html_bag_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-bag.component.css?ngResource */ 42373); +/* harmony import */ var _html_bag_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_bag_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gui_helpers_ngx_gauge_ngx_gauge_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../gui-helpers/ngx-gauge/ngx-gauge.component */ 5769); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlBagComponent_1; + + + + + + + +let HtmlBagComponent = HtmlBagComponent_1 = class HtmlBagComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + resolver; + static TypeTag = 'svg-ext-html_bag'; + static LabelTag = 'HtmlBag'; + static prefixD = 'D-BAG_'; + constructor(resolver) { + super(); + this.resolver = resolver; + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Gauge; + } + static processValue(ga, svgele, sig, gaugeStatus, gauge) { + try { + gauge.setValue(sig.value); + } catch (err) { + console.error(err); + } + } + static initElement(gab, resolver, viewContainerRef, isview) { + let ele = document.getElementById(gab.id); + if (ele) { + ele?.setAttribute('data-name', gab.name); + let htmlBag = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefixD); + if (htmlBag) { + const factory = resolver.resolveComponentFactory(_gui_helpers_ngx_gauge_ngx_gauge_component__WEBPACK_IMPORTED_MODULE_5__.NgxGaugeComponent); + const componentRef = viewContainerRef.createComponent(factory); + htmlBag.innerHTML = ''; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + htmlBag.appendChild(loaderComponentElement); + componentRef.instance.resize(htmlBag.clientHeight, htmlBag.clientWidth); + if (gab.property && gab.property.options) { + componentRef.instance.setOptions(gab.property.options); + componentRef.instance.init(gab.property.options.type); + } + componentRef.instance['name'] = gab.name; + return componentRef.instance; + } + } + } + static resize(gab, resolver, viewContainerRef, options) { + let ele = document.getElementById(gab.id); + if (ele) { + let htmlBag = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefixD); + if (htmlBag) { + const factory = resolver.resolveComponentFactory(_gui_helpers_ngx_gauge_ngx_gauge_component__WEBPACK_IMPORTED_MODULE_5__.NgxGaugeComponent); + const componentRef = viewContainerRef.createComponent(factory); + htmlBag.innerHTML = ''; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + htmlBag.appendChild(loaderComponentElement); + componentRef.instance.resize(htmlBag.clientHeight, htmlBag.clientWidth); + if (options) { + componentRef.instance.setOptions(options); + componentRef.instance.init(options.type); + } + return componentRef.instance; + } + } + } + static detectChange(gab, res, ref) { + let options; + if (gab.property && gab.property.options) { + options = gab.property.options; + } + return HtmlBagComponent_1.resize(gab, res, ref, options); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ComponentFactoryResolver + }]; +}; +HtmlBagComponent = HtmlBagComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-html-bag', + template: _html_bag_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_bag_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_6__.ComponentFactoryResolver])], HtmlBagComponent); + + +/***/ }), + +/***/ 66843: +/*!**********************************************************************!*\ + !*** ./src/app/gauges/controls/html-button/html-button.component.ts ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlButtonComponent: () => (/* binding */ HtmlButtonComponent) +/* harmony export */ }); +/* harmony import */ var _html_button_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-button.component.html?ngResource */ 19698); +/* harmony import */ var _html_button_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-button.component.css?ngResource */ 92155); +/* harmony import */ var _html_button_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_button_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlButtonComponent_1; + + + + + + + +let HtmlButtonComponent = HtmlButtonComponent_1 = class HtmlButtonComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-html_button'; + static LabelTag = 'HtmlButton'; + static prefixB = 'B-HXB_'; + static prefixRect = 'svg_'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro?.variableId) { + res.push(pro.variableId); + } + if (pro?.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__.GaugeDialogType.RangeAndText; + } + static getActions(type) { + return this.actionsType; + } + static initElement(gab, textTranslation) { + let ele = document.getElementById(gab.id); + if (ele && gab.property) { + let htmlButton = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixB); + if (htmlButton) { + let text = textTranslation || gab.property.text || gab.name; + htmlButton.innerHTML = text ? text : ' '; + } + } + return ele; + } + static initElementColor(bkcolor, color, ele) { + let htmlButton = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixB); + if (htmlButton) { + ele.setAttribute('fill', 'rgba(0, 0, 0, 0)'); + ele.setAttribute('stroke', 'rgba(0, 0, 0, 0)'); + for (let i = 0; i < ele.children.length; i++) { + ele.children[i].removeAttribute('fill'); + ele.children[i].removeAttribute('stroke'); + } + if (bkcolor) { + htmlButton.style.backgroundColor = bkcolor; + } + if (color) { + htmlButton.style.color = color; + } + } + } + static processValue(ga, element, sig, gaugeStatus, isLabelType = false) { + try { + let button = element instanceof HTMLElement ? element : null; + if (button === null && element.node?.children && element.node.children.length >= 1) { + button = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(element.node, this.prefixB); + } + if (button) { + if (isLabelType) { + button.textContent = sig.value; + return; + } + let val = parseFloat(sig.value); + if (Number.isNaN(val)) { + // maybe boolean + val = Number(sig.value); + } + if (ga.property) { + let propertyColor = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugePropertyColor(); + if (ga.property.ranges) { + for (let idx = 0; idx < ga.property.ranges.length; idx++) { + if (ga.property.ranges[idx].min <= val && ga.property.ranges[idx].max >= val) { + propertyColor.fill = ga.property.ranges[idx].color; + propertyColor.stroke = ga.property.ranges[idx].stroke; + } + } + if (propertyColor.fill) { + button.style.backgroundColor = propertyColor.fill; + } + if (propertyColor.stroke) { + button.style.color = propertyColor.stroke; + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + HtmlButtonComponent_1.processAction(act, element, button, val, gaugeStatus, propertyColor); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static getFillColor(ele) { + if (ele.children && ele.children[0]) { + let htmlButton = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixB); + if (htmlButton) { + let result = htmlButton.style['background-color']; + if (!result) { + result = htmlButton.getAttribute('fill'); + } + if (result) { + return result; + } + } + } + return ele.getAttribute('fill'); + } + static getStrokeColor(ele) { + if (ele.children && ele.children[0]) { + let htmlButton = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixB); + if (htmlButton) { + let result = htmlButton.style['color']; + if (!result) { + result = htmlButton.getAttribute('stroke'); + } + if (result) { + return result; + } + } + } + return ele.getAttribute('stroke'); + } + static processAction(act, svgele, button, value, gaugeStatus, propertyColor) { + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= value && act.range.max >= value) { + if (button === svgele) { + button.style.display = 'none'; + } else { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= value && act.range.max >= value) { + if (button === svgele) { + button.style.display = 'unset'; + } else { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } + } else if (this.actionsType[act.type] === this.actionsType.blink) { + let inRange = act.range.min <= value && act.range.max >= value; + this.checkActionBlink(button, act, gaugeStatus, inRange, true, propertyColor); + } + } + static ctorParameters = () => []; +}; +HtmlButtonComponent = HtmlButtonComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'html-button', + template: _html_button_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_button_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlButtonComponent); + + +/***/ }), + +/***/ 22858: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/chart-property/chart-property.component.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ChartPropertyComponent: () => (/* binding */ ChartPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _chart_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart-property.component.html?ngResource */ 93898); +/* harmony import */ var _chart_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chart-property.component.scss?ngResource */ 20264); +/* harmony import */ var _chart_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_chart_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 55400); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _models_chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_models/chart */ 38127); +/* harmony import */ var _chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../chart-uplot/chart-uplot.component */ 21047); +/* harmony import */ var _editor_chart_config_chart_config_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../editor/chart-config/chart-config.component */ 20427); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../_helpers/define */ 94107); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../_models/script */ 10846); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + + + +let ChartPropertyComponent = class ChartPropertyComponent { + dialog; + projectService; + translateService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_11__.EventEmitter(); + set reload(b) { + this._reload(); + } + lastRangeType = _models_chart__WEBPACK_IMPORTED_MODULE_3__.ChartRangeType; + chartViewType = _models_chart__WEBPACK_IMPORTED_MODULE_3__.ChartViewType; + dateFormat = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.DateFormatType; + timeFormat = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TimeFormatType; + legendModes = _models_chart__WEBPACK_IMPORTED_MODULE_3__.ChartLegendMode; + fonts = _helpers_define__WEBPACK_IMPORTED_MODULE_6__.Define.fonts; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.defaultColor; + chartViewValue = _models_chart__WEBPACK_IMPORTED_MODULE_3__.ChartViewType.realtime1; + chartCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_12__.UntypedFormControl(); + chartFilterCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_12__.UntypedFormControl(); + filteredChart = new rxjs__WEBPACK_IMPORTED_MODULE_13__.ReplaySubject(1); + options = _chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_4__.ChartUplotComponent.DefaultOptions(); + autoScala = { + enabled: true, + min: 0, + max: 10 + }; + scripts$; + property; + eventType = [_helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.click), _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.onLoad)]; + actionRunScript = _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + selectActionType = {}; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_14__.Subject(); + constructor(dialog, projectService, translateService) { + this.dialog = dialog; + this.projectService = projectService; + this.translateService = translateService; + this.selectActionType[_helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + } + ngOnInit() { + Object.keys(this.legendModes).forEach(key => { + this.translateService.get(this.legendModes[key]).subscribe(txt => { + this.legendModes[key] = txt; + }); + }); + this._reload(); + this.scripts$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_15__.of)(this.projectService.getScripts()).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.takeUntil)(this.destroy$)); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + _reload() { + // check default value, undefined if new + this.property = this.data.settings.property; + if (!this.property) { + this.property = { + id: null, + type: this.chartViewValue, + options: null + }; + } + if (!this.property.options) { + this.property.options = _chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_4__.ChartUplotComponent.DefaultOptions(); + } + this.options = this.property.options; + // // load charts list to choise + this.loadChart(); + this.chartViewValue = this.property.type; + let chart = this.data.charts.find(chart => chart.id === this.property.id); + if (this.property.options) { + this.options = Object.assign(this.options, this.property.options); + } + this.chartCtrl.setValue(chart); + } + onChartChanged() { + if (this.chartCtrl.value) { + this.property.id = this.chartCtrl.value.id; + } + this.onPropChanged.emit(this.data.settings); + this.data.settings.property = { + id: null, + type: this.chartViewValue, + options: JSON.parse(JSON.stringify(this.options)), + events: this.property.events + }; + if (this.chartCtrl.value) { + this.data.settings.property.id = this.chartCtrl.value.id; + } + this.onPropChanged.emit(this.data.settings); + } + onEditNewChart() { + let dialogRef = this.dialog.open(_editor_chart_config_chart_config_component__WEBPACK_IMPORTED_MODULE_5__.ChartConfigComponent, { + position: { + top: '60px' + }, + minWidth: '1090px', + width: '1090px' + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.data.charts = result.charts; + this.loadChart(); + if (result.selected) { + this.chartCtrl.setValue(result.selected); + } + this.onChartChanged(); + } + }); + } + onShowChartSelectionMessage(event) { + if (event.value === _models_chart__WEBPACK_IMPORTED_MODULE_3__.ChartViewType.custom) { + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_10__.ConfirmDialogComponent, { + data: { + msg: this.translateService.instant('msg.chart-with-script'), + hideCancel: true + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(); + } + } + loadChart(toset) { + // load the initial chart list + this.filteredChart.next(this.data.charts.slice()); + // listen for search field value changes + this.chartFilterCtrl.valueChanges.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.takeUntil)(this.destroy$)).subscribe(() => { + this.filterChart(); + }); + if (toset) { + let idx = -1; + this.data.charts.every(function (value, index, _arr) { + if (value.id === toset) { + idx = index; + return false; + } + return true; + }); + if (idx >= 0) { + this.chartCtrl.setValue(this.data.charts[idx]); + } + } + } + filterChart() { + if (!this.data.charts) { + return; + } + // get the search keyword + let search = this.chartFilterCtrl.value; + if (!search) { + this.filteredChart.next(this.data.charts.slice()); + return; + } else { + search = search.toLowerCase(); + } + // filter the variable + this.filteredChart.next(this.data.charts.filter(chart => chart.name.toLowerCase().indexOf(search) > -1)); + } + onAddEvent() { + const gaugeEvent = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEvent(); + this.addEvent(gaugeEvent); + } + addEvent(gaugeEvent) { + if (!this.property.events) { + this.property.events = []; + } + this.property.events.push(gaugeEvent); + } + onRemoveEvent(index) { + this.property.events.splice(index, 1); + this.onChartChanged(); + } + onScriptChanged(scriptId, event) { + const scripts = this.projectService.getScripts(); + if (event && scripts) { + let script = scripts.find(s => s.id === scriptId); + event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_9__.SCRIPT_PARAMS_MAP] = []; + if (script && script.parameters) { + event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_9__.SCRIPT_PARAMS_MAP] = _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.clone(script.parameters); + } + } + this.onChartChanged(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_8__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Input, + args: ['reload'] + }] + }; +}; +ChartPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_11__.Component)({ + selector: 'app-chart-property', + template: _chart_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_chart_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_8__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService])], ChartPropertyComponent); + + +/***/ }), + +/***/ 21047: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/chart-uplot/chart-uplot.component.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ChartUplotComponent: () => (/* binding */ ChartUplotComponent) +/* harmony export */ }); +/* harmony import */ var _chart_uplot_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart-uplot.component.html?ngResource */ 47791); +/* harmony import */ var _chart_uplot_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chart-uplot.component.scss?ngResource */ 36366); +/* harmony import */ var _chart_uplot_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_chart_uplot_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/chart */ 38127); +/* harmony import */ var _gui_helpers_ngx_uplot_ngx_uplot_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../gui-helpers/ngx-uplot/ngx-uplot.component */ 75261); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _gui_helpers_daterange_dialog_daterange_dialog_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../gui-helpers/daterange-dialog/daterange-dialog.component */ 28955); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 13379); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 89378); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs/operators */ 77592); +/* harmony import */ var _services_script_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_services/script.service */ 67758); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../_models/script */ 10846); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../_services/hmi.service */ 69578); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ChartUplotComponent_1; + + + + + + + + + + + + + + + + +let ChartUplotComponent = ChartUplotComponent_1 = class ChartUplotComponent { + projectService; + hmiService; + scriptService; + dialog; + translateService; + chartPanel; + nguplot; + options; + onTimeRange = new _angular_core__WEBPACK_IMPORTED_MODULE_11__.EventEmitter(); + loading = false; + id; + withToolbar = false; + isEditor = false; + reloadActive = false; + lastDaqQuery = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.DaqQuery(); + rangeTypeValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartRangeType, _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartRangeType.last8h); + rangeType; + range = { + from: Date.now(), + to: Date.now(), + zoomStep: 0 + }; + mapData = {}; + pauseMemoryValue = {}; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_12__.Subject(); + property; + chartName; + addValueInterval = 0; + zoomSize = 0; + eventChartClick = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeEventType.click); + constructor(projectService, hmiService, scriptService, dialog, translateService) { + this.projectService = projectService; + this.hmiService = hmiService; + this.scriptService = scriptService; + this.dialog = dialog; + this.translateService = translateService; + } + ngOnInit() { + if (!this.options) { + this.options = ChartUplotComponent_1.DefaultOptions(); + } + } + ngAfterViewInit() { + if (!this.isEditor && this.property?.type === _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartViewType.custom) { + this.getCustomData(); + } + if (this.nguplot) { + this.nguplot.languageLabels.serie = this.translateService.instant('chart.labels-serie'); + this.nguplot.languageLabels.time = this.translateService.instant('chart.labels-time'); + this.nguplot.languageLabels.title = this.translateService.instant('chart.labels-title'); + } + } + ngOnDestroy() { + try { + delete this.chartPanel; + if (this.nguplot) { + this.nguplot.ngOnDestroy(); + } + delete this.nguplot; + this.destroy$.next(null); + this.destroy$.unsubscribe(); + } catch (e) { + console.error(e); + } + } + onClick(evStep) { + if (this.isEditor) { + return; + } + this.lastDaqQuery.gid = this.id; + let timeStep = _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartRangeConverter.ChartRangeToHours(this.rangeTypeValue) * 60 * 60; + if (this.zoomSize) { + timeStep = this.zoomSize; + } + if (evStep === 'B') { + // back + this.range.to = new Date(this.range.from).getTime(); + this.range.from = new Date(this.range.from).setTime(new Date(this.range.from).getTime() - timeStep * 1000); + } else if (evStep === 'F') { + // forward + this.range.from = new Date(this.range.to).getTime(); + this.range.to = new Date(this.range.from).setTime(new Date(this.range.from).getTime() + timeStep * 1000); + } + this.lastDaqQuery.sids = Object.keys(this.mapData); + this.updateLastDaqQueryRange(this.range); + } + onRangeChanged(ev, fromRefresh) { + if (this.isEditor) { + return; + } + if (!fromRefresh) { + this.zoomSize = 0; + } + if (ev) { + this.range.from = Date.now(); + this.range.to = Date.now(); + let timeStep = _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartRangeConverter.ChartRangeToHours(ev) * 60 * 60; + if (this.zoomSize) { + timeStep = this.zoomSize; + } + this.range.from = new Date(this.range.from).setTime(new Date(this.range.from).getTime() - timeStep * 1000); + this.lastDaqQuery.event = ev; + this.lastDaqQuery.gid = this.id; + this.lastDaqQuery.sids = Object.keys(this.mapData); + this.updateLastDaqQueryRange(this.range); + } + } + onDateRange() { + let dialogRef = this.dialog.open(_gui_helpers_daterange_dialog_daterange_dialog_component__WEBPACK_IMPORTED_MODULE_6__.DaterangeDialogComponent, { + panelClass: 'light-dialog-container' + }); + dialogRef.afterClosed().subscribe(dateRange => { + if (dateRange) { + this.range.from = dateRange.start; + this.range.to = dateRange.end; + this.lastDaqQuery.gid = this.id; + this.lastDaqQuery.sids = Object.keys(this.mapData); + this.updateLastDaqQueryRange(this.range); + } + }); + } + onDaqQuery(daqQuery) { + if (daqQuery) { + this.lastDaqQuery = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.mergeDeep(this.lastDaqQuery, daqQuery); + } + this.lastDaqQuery.chunked = true; + this.onTimeRange.emit(this.lastDaqQuery); + if (this.withToolbar) { + this.setLoading(true); + } + } + onRefresh(fromRefresh) { + if (this.property?.type === _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartViewType.custom) { + this.getCustomData(); + } else { + this.onRangeChanged(this.lastDaqQuery.event, fromRefresh); + this.reloadActive = true; + } + } + onExportData() { + // let data = { name: 'data', columns: [] }; + // let columns = {}; + // Object.values(this.columnsStyle).forEach((column: TableColumn) => { + // columns[column.id] = { header: `${column.label}`, values: [] }; + // }); + // this.dataSource.data.forEach(row => { + // Object.keys(row).forEach(id => { + // columns[id].values.push(row[id].stringValue); + // }); + // }); + // data.columns = Object.values(columns); + // this.dataService.exportTagsData(data); + } + resize(height, width) { + if (!this.chartPanel) { + return; + } + let chart = this.chartPanel.nativeElement; + if (!height && chart.offsetParent) { + height = chart.offsetParent.clientHeight; + } + if (!width && chart.offsetParent) { + width = chart.offsetParent.clientWidth; + } + if (height && width) { + this.options.panel.width = width; + this.options.width = width; + this.options.panel.height = height; + this.options.height = height; + this.options.height -= 40; // legend + if (this.withToolbar && !this.options.hideToolbar) { + this.options.height -= 34; // toolbar + } + + let size = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getDomTextHeight(this.options.titleHeight, this.options.fontFamily); + this.options.height -= size; // title + size = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getDomTextHeight(this.options.axisLabelFontSize, this.options.fontFamily); + if (size < 10) { + size = 10; + } + this.options.height -= size; // axis + this.nguplot.resize(this.options.height, this.options.width); + } + } + init(options = null, reset = true) { + if (reset) { + this.mapData = {}; + } + if (options) { + this.options = options; + } + this.destroy$.next(null); + if (this.property?.type === _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartViewType.history && this.options.refreshInterval) { + (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.interval)(this.options.refreshInterval * 60000).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.takeUntil)(this.destroy$)).subscribe(res => { + this.onRefresh(); + }); + } + this.updateCanvasOptions(this.nguplot); + if (this.options.panel) { + this.resize(this.options.panel.height, this.options.panel.width); + } + this.nguplot.init(this.options, this.property?.type === _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartViewType.custom ? true : false); + this.updateDomOptions(this.nguplot); + if (!this.isEditor && this.property?.events?.find(ev => ev.type === this.eventChartClick)) { + this.nguplot.onChartClick = this.handleChartClick.bind(this); + } + } + setInitRange(startRange) { + if (this.withToolbar) { + if (startRange) { + this.rangeTypeValue = this.options.lastRange; + } else if (this.options.lastRange) { + this.rangeTypeValue = this.options.lastRange; + } + } + if (this.property?.type === _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartViewType.history) { + this.onRangeChanged(this.rangeTypeValue); + } else if (this.options.loadOldValues && this.options.realtime) { + this.lastDaqQuery.gid = this.id; + this.lastDaqQuery.sids = Object.keys(this.mapData); + var now = new Date(); + this.range.from = new Date(now.getTime() - this.options.realtime * 60000).getTime(); + this.range.to = Date.now(); + this.updateLastDaqQueryRange(this.range); + } + } + setOptions(options, clear = false) { + this.options = { + ...this.options, + ...options + }; + if (clear) { + this.options = { + ...this.options, + ...{ + series: [{}] + } + }; + } + this.init(this.options); + this.redraw(); + } + updateOptions(options) { + this.options = { + ...this.options, + ...options + }; + this.init(this.options, false); + Object.keys(this.mapData).forEach(key => { + this.nguplot.addSerie(this.mapData[key].index, this.mapData[key].attribute); + }); + this.setInitRange(); + this.redraw(); + } + getOptions() { + return this.options; + } + addLine(id, name, line, addYaxisToLabel) { + if (!this.mapData[id]) { + let linelabel = line.label || name; + if (addYaxisToLabel) { + linelabel = `Y${line.yaxis} - ${linelabel}`; + } + let serie = { + label: linelabel, + stroke: line.color, + spanGaps: true + }; + if (line.yaxis > 1) { + serie.scale = line.yaxis.toString(); + } else { + serie.scale = '1'; + } + serie.spanGaps = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.isNullOrUndefined(line.spanGaps) ? true : line.spanGaps; + if (line.lineWidth) { + serie.width = line.lineWidth; + } + const fallbackFill = line.fill || 'rgba(0,0,0,0)'; + const fallbackStroke = line.color || 'rgb(0,0,0)'; + if (line.zones?.some(zone => zone.fill)) { + const zones = this.generateZones(line.zones, 'fill', fallbackFill); + if (zones) { + serie.fill = (self, seriesIndex) => this.nguplot.scaleGradient(self, line.yaxis, 1, zones, true) || fallbackFill; + } + } else if (line.fill) { + serie.fill = line.fill; + } + if (line.zones?.some(zone => zone.stroke)) { + const zones = this.generateZones(line.zones, 'stroke', fallbackStroke); + if (zones) { + serie.stroke = (self, seriesIndex) => this.nguplot.scaleGradient(self, line.yaxis, 1, zones, true) || fallbackStroke; + } + } else if (line.color) { + serie.stroke = line.color; + } + serie.lineInterpolation = line.lineInterpolation; + this.mapData[id] = { + index: Object.keys(this.mapData).length + 1, + attribute: serie, + lastValueTime: 0 + }; + this.nguplot.addSerie(this.mapData[id].index, this.mapData[id].attribute); + } + if (this.isEditor) { + this.nguplot.setSample(); + } + } + generateZones(ranges, attribute, baseColor) { + const result = []; + const sorted = ranges.sort((a, b) => a.min - b.min); + // ── 1. Color for ā€“āˆž comes from the first zone ─────────────── + const firstColor = sorted[0]?.[attribute] || baseColor; + result.push([-Infinity, firstColor]); + // ── 2. Mid‑zone stops (same as before) ────────────────────── + sorted.forEach((r, i) => { + const color = r[attribute] || baseColor; + result.push([r.min, color]); + const nextMin = sorted[i + 1]?.min; + if (nextMin !== undefined && r.max < nextMin) { + result.push([r.max, color]); + } else if (nextMin === undefined) { + // last zone – we’ll add +āˆž after the loop + result.push([r.max, color]); + } + }); + // ── 3. Color for +āˆž comes from the last zone ──────────────── + const lastColor = sorted[sorted.length - 1]?.[attribute] || baseColor; + result.push([Infinity, lastColor]); + return result; + } + /** + * add value to a realtime chart + * @param id + * @param x + * @param y + */ + addValue(id, x, y) { + const property = this.mapData[id]; + if (property) { + if (this.addValueInterval && _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getTimeDifferenceInSeconds(property.lastValueTime) < this.addValueInterval) { + return; + } + if (this.range?.zoomStep) { + // save value in pause to if zoom will be resetted + if (!this.pauseMemoryValue[id]) { + this.pauseMemoryValue[id] = []; + } + this.pauseMemoryValue[id].push({ + x, + y + }); + return; + } + this.nguplot.addValue(property.index, x, y, this.zoomSize || this.options.realtime * 60); + property.lastValueTime = Date.now(); + this.range.to = Date.now(); + } + } + chunkBuffer = new Map(); // Buffer for received chunks + processedChunks = new Set(); // Prevent duplicates + totalChunks = 0; + setValues(values, chunk) { + const missingOrInvalidChunk = !chunk || !chunk.index || !chunk.of; + if (missingOrInvalidChunk) { + try { + const first = values?.[0]?.[0]; + // Case A: data unified -> [timestamps[], serie1[], serie2[], ...] + if (Array.isArray(values) && Array.isArray(values[0]) && typeof first === 'number') { + this.nguplot.setData(values); + this.nguplot.setXScala(this.range.from / 1e3, this.range.to / 1e3); + setTimeout(() => this.setLoading(false), 300); + return; + } + // Case B: array of object -> [[{dt,value|v}, ...], ...] -> normalize e unified + if (first && typeof first === 'object') { + const normalized = values.map(serie => serie.map(p => ({ + dt: p.dt ?? p.time, + value: p.value !== undefined ? p.value : p.v // tollera 'v' + }))); + + const mergedData = this.buildUnifiedData([normalized]); + this.nguplot.setData(mergedData); + this.nguplot.setXScala(this.range.from / 1e3, this.range.to / 1e3); + setTimeout(() => this.setLoading(false), 300); + return; + } + console.warn('setValues (not-chunk): format unknow', values); + } catch (err) { + console.error('setValues (not-chunk): error parsing/application', err); + } + return; + } + // Reset if this is the first chunk of a new series + if (chunk.index === 1) { + this.chunkBuffer.clear(); + this.processedChunks.clear(); + this.totalChunks = chunk.of; + } + // Skip duplicate chunks + if (this.processedChunks.has(chunk.index)) { + // console.warn(`āš ļø Duplicate chunk ignored: ${chunk.index}`); + return; + } + // Store chunk + this.chunkBuffer.set(chunk.index, values); + this.processedChunks.add(chunk.index); + // If all expected chunks have been received + if (this.chunkBuffer.size === this.totalChunks) { + const sortedChunks = Array.from(this.chunkBuffer.entries()).sort((a, b) => a[0] - b[0]).map(entry => entry[1]); + const mergedData = this.buildUnifiedData(sortedChunks); + this.nguplot.setData(mergedData); + this.nguplot.setXScala(this.range.from / 1e3, this.range.to / 1e3); + setTimeout(() => this.setLoading(false), 300); + } + } + // Converts chunks into format: [timestamps[], line1[], line2[], ...] + buildUnifiedData(chunks) { + const timestampsSet = new Set(); + const xmap = new Map(); + for (let chunk of chunks) { + for (let i = 0; i < chunk.length; i++) { + for (const v of chunk[i]) { + const t = Math.floor(v.dt / 1000); + timestampsSet.add(t); + if (!xmap.has(t)) { + xmap.set(t, {}); + } + xmap.get(t)[i] = v.value; + } + } + } + const sortedTimestamps = Array.from(timestampsSet).sort((a, b) => a - b); + const result = [sortedTimestamps]; + const seriesCount = chunks[0].length; + for (let i = 0; i < seriesCount; i++) { + const line = []; + for (const t of sortedTimestamps) { + const val = xmap.get(t)?.[i]; + line.push(val !== undefined ? val : null); + } + result.push(line); + } + return result; + } + redraw() { + this.nguplot.redraw(); + } + setZoom(range) { + this.range = range; + this.nguplot.setXScala(this.range.from / 1e3, this.range.to / 1e3); + this.zoomSize = this.range.to / 1e3 - this.range.from / 1e3; + // if zoom resetted then add values in saved in pause + if (!range.zoomStep) { + Object.keys(this.pauseMemoryValue).forEach(id => { + const data = this.pauseMemoryValue[id]; + if (data) { + Object.values(data).forEach(value => { + this.addValue(id, value.x, value.y); + }); + } + }); + this.pauseMemoryValue = {}; + } + this.updateLastDaqQueryRange(this.range); + } + updateLastDaqQueryRange(range) { + this.lastDaqQuery.from = range.from; + this.lastDaqQuery.to = range.to; + this.onDaqQuery(); + } + getZoomStatus() { + return this.range; + } + setProperty(property, value) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.isNullOrUndefined(this[property])) { + return false; + } + this[property] = value; + return true; + } + static DefaultOptions() { + return { + title: 'Title', + fontFamily: 'Roboto-Regular', + legendFontSize: 12, + colorBackground: 'rgba(255,255,255,0)', + legendBackground: 'rgba(255,255,255,0)', + titleHeight: 18, + axisLabelFontSize: 12, + labelsDivWidth: 0, + axisLineColor: 'rgba(0,0,0,1)', + axisLabelColor: 'rgba(0,0,0,1)', + legendMode: 'always', + series: [], + width: 360, + height: 200, + decimalsPrecision: 2, + realtime: 60, + dateFormat: _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.DateFormatType, _models_hmi__WEBPACK_IMPORTED_MODULE_4__.DateFormatType.MM_DD_YYYY), + timeFormat: _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.TimeFormatType, _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TimeFormatType.hh_mm_ss_AA) + }; + } + setLoading(load) { + if (load) { + (0,rxjs__WEBPACK_IMPORTED_MODULE_15__.timer)(10000).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.takeUntil)(this.destroy$)).subscribe(res => { + this.loading = false; + }); + } + this.loading = load; + } + updateCanvasOptions(ngup) { + if (!this.options.axes) { + this.options.axes = [{ + label: 'Time', + grid: { + show: true, + width: 1 / devicePixelRatio + }, + ticks: {} + }]; + this.options.axes.push({ + grid: { + show: true, + width: 1 / devicePixelRatio + }, + ticks: {}, + scale: '1' + }); + this.options.axes.push({ + grid: { + show: false, + width: 1 / devicePixelRatio + }, + ticks: {}, + side: 1, + scale: '2' + }); + this.options.axes.push({ + grid: { + show: false, + width: 1 / devicePixelRatio + }, + ticks: {}, + side: 3, + scale: '3' + }); + this.options.axes.push({ + grid: { + show: false, + width: 1 / devicePixelRatio + }, + ticks: {}, + side: 1, + scale: '4' + }); + } + for (let i = 0; i < this.options.axes.length; i++) { + let font = ''; + if (this.options.axisLabelFontSize) { + font = this.options.axisLabelFontSize + 'px'; + } + if (this.options.fontFamily) { + font += ' ' + this.options.fontFamily; + } + this.options.axes[i].font = font; + this.options.axes[i].labelFont = font; + this.options.axes[i].ticks = { + width: 1 / devicePixelRatio + }; + if (this.options.gridLineColor) { + this.options.axes[i].grid.stroke = this.options.gridLineColor; + this.options.axes[i].ticks.stroke = this.options.gridLineColor; + } + if (this.options.axisLabelColor) { + this.options.axes[i].stroke = this.options.axisLabelColor; + } + } + let always = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartLegendMode, _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartLegendMode.always); + let bottom = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartLegendMode, _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartLegendMode.bottom); + let follow = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartLegendMode, _models_chart__WEBPACK_IMPORTED_MODULE_2__.ChartLegendMode.follow); + this.options.legend = { + show: this.options.legendMode === always || this.options.legendMode === bottom, + width: 1 + }; + this.options.tooltip = { + show: this.options.legendMode === always || this.options.legendMode === follow + }; + // Axes label + if (this.options.axisLabelX) { + this.options.axes[0].label = this.options.axisLabelX; + } + if (this.options.axisLabelY1) { + this.options.axes[1].label = this.options.axisLabelY1; + } + if (this.options.axisLabelY2) { + this.options.axes[2].label = this.options.axisLabelY2; + } + if (this.options.axisLabelY3) { + this.options.axes[3].label = this.options.axisLabelY3; + } + if (this.options.axisLabelY4) { + this.options.axes[4].label = this.options.axisLabelY4; + } + } + updateDomOptions(ngup) { + let ele = this.chartPanel.nativeElement.getElementsByClassName('u-title'); + if (ele) { + let title = ele[0]; + if (this.options.titleHeight) { + if (this.options.axisLabelColor) { + title.style.color = this.options.axisLabelColor; + } + if (this.options.titleHeight) { + title.style.fontSize = this.options.titleHeight + 'px'; + } + if (this.options.fontFamily) { + title.style.fontFamily = this.options.fontFamily; + } + } else { + title.style.display = 'none'; + } + } + let legend = this.chartPanel.nativeElement.querySelector('.u-legend'); + if (legend) { + if (this.options.axisLabelColor) { + legend.style.color = this.options.axisLabelColor; + } + legend.style.lineHeight = 0; + } + this.chartPanel.nativeElement.style.backgroundColor = this.options.colorBackground; + } + getCustomData() { + const script = this.projectService.getScripts()?.find(script => script.id === this.property?.options?.scriptId); + if (script) { + let scriptToRun = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.clone(script); + let chart = this.hmiService.getChart(this.property.id); + this.reloadActive = true; + scriptToRun.parameters = this.getCustomParameters(script.parameters, chart); + this.scriptService.runScript(scriptToRun).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.delay)(200)).subscribe(customData => { + this.setCustomValues(customData); + }, err => { + console.error(err); + }, () => { + this.reloadActive = false; + }); + } + } + /** + * set custom values to a chart + * the values is composed of a matrix of array, array of lines[] + * the have to be transform in uplot format. a matrix with array of datetime and arrays of values [x[value], lineN[value]] + * @param values + */ + setCustomValues(lines) { + let result = []; + result.push([]); // timestamp, index 0 + let xmap = {}; + for (var i = 0; i < lines?.length; i++) { + result.push([]); // line + for (var xPos = 0; xPos < lines[i]?.x.length; xPos++) { + let xValue = lines[i].x[xPos]; + if (result[0].indexOf(xValue) === -1) { + result[0].push(xValue); + xmap[xValue] = {}; + } + const yValue = lines[i].y[xPos]; + xmap[xValue][i] = yValue; + } + } + result[0].sort(function (a, b) { + return a - b; + }); + for (var i = 0; i < result[0].length; i++) { + let t = result[0][i]; + for (var x = 1; x < result.length; x++) { + if (xmap[t][x - 1] !== undefined) { + result[x].push(xmap[t][x - 1]); + } else { + result[x].push(null); + } + } + } + this.nguplot?.setData(result); + setTimeout(() => { + this.setLoading(false); + }, 500); + } + handleChartClick(x, y) { + const eventClick = this.property?.events?.find(ev => ev.type === this.eventChartClick); + const script = this.projectService.getScripts()?.find(script => script.id === eventClick?.actparam); + if (eventClick && script) { + let scriptToRun = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.clone(script); + let chart = this.hmiService.getChart(this.property.id); + this.reloadActive = true; + scriptToRun.parameters = this.getCustomParameters(script.parameters, chart, x, y); + this.scriptService.runScript(scriptToRun).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.delay)(200)).subscribe(customData => { + this.setCustomValues(customData); + }, err => { + console.error(err); + }, () => { + this.reloadActive = false; + }); + } + } + getCustomParameters(params, chart, x = null, y = null) { + let result = []; + for (let param of params) { + if (param.type === _models_script__WEBPACK_IMPORTED_MODULE_9__.ScriptParamType.chart) { + result.push({ + type: _models_script__WEBPACK_IMPORTED_MODULE_9__.ScriptParamType.chart, + value: chart?.lines, + name: param?.name + }); + } else if (param.type === _models_script__WEBPACK_IMPORTED_MODULE_9__.ScriptParamType.value) { + let scriptParam = { + type: param.type, + value: param.value, + name: param.name + }; + if (param.name.toLocaleLowerCase().indexOf('x') !== -1) { + scriptParam.value = x; + } else if (param.name.toLocaleLowerCase().indexOf('y') !== -1) { + scriptParam.value = y; + } + result.push(scriptParam); + } else { + result.push(param); + } + } + return result; + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_8__.ProjectService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_10__.HmiService + }, { + type: _services_script_service__WEBPACK_IMPORTED_MODULE_7__.ScriptService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService + }]; + static propDecorators = { + chartPanel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: ['chartPanel', { + static: false + }] + }], + nguplot: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: ['nguplot', { + static: false + }] + }], + options: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Input + }], + onTimeRange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Output + }] + }; +}; +ChartUplotComponent = ChartUplotComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_11__.Component)({ + selector: 'chart-uplot', + template: _chart_uplot_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_chart_uplot_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_8__.ProjectService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_10__.HmiService, _services_script_service__WEBPACK_IMPORTED_MODULE_7__.ScriptService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService])], ChartUplotComponent); + + +/***/ }), + +/***/ 19775: +/*!********************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/html-chart.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlChartComponent: () => (/* binding */ HtmlChartComponent) +/* harmony export */ }); +/* harmony import */ var _html_chart_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-chart.component.html?ngResource */ 20192); +/* harmony import */ var _html_chart_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-chart.component.css?ngResource */ 11413); +/* harmony import */ var _html_chart_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_chart_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./chart-uplot/chart-uplot.component */ 21047); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlChartComponent_1; + + + + + + + +let HtmlChartComponent = HtmlChartComponent_1 = class HtmlChartComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + resolver; + static TypeTag = 'svg-ext-html_chart'; + static LabelTag = 'HtmlChart'; + static prefixD = 'D-HXC_'; + constructor(resolver) { + super(); + this.resolver = resolver; + } + static getSignals(pro) { + return pro.variableIds; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Chart; + } + static processValue(ga, svgele, sig, gaugeStatus, gauge) { + try { + gauge.addValue(sig.id, new Date().getTime() / 1000, sig.value); + } catch (err) { + console.error(err); + } + } + static initElement(gab, resolver, viewContainerRef, isview, chartRange) { + let ele = document.getElementById(gab.id); + if (ele) { + ele?.setAttribute('data-name', gab.name); + let htmlChart = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefixD); + if (htmlChart) { + const factory = resolver.resolveComponentFactory(_chart_uplot_chart_uplot_component__WEBPACK_IMPORTED_MODULE_5__.ChartUplotComponent); + const componentRef = viewContainerRef.createComponent(factory); + if (gab.property) { + componentRef.instance.withToolbar = gab.property.type === 'history' ? true : false; + } + htmlChart.innerHTML = ''; + componentRef.instance.isEditor = !isview; + componentRef.instance.rangeType = chartRange; + componentRef.instance.id = gab.id; + componentRef.instance.property = gab.property; + componentRef.instance.chartName = gab.name; + componentRef.changeDetectorRef.detectChanges(); + htmlChart.appendChild(componentRef.location.nativeElement); + let opt = { + title: '', + panel: { + height: htmlChart.clientHeight, + width: htmlChart.clientWidth + } + }; + componentRef.instance.setOptions(opt); + componentRef.instance['myComRef'] = componentRef; + componentRef.instance['name'] = gab.name; + return componentRef.instance; + } + } + } + static detectChange(gab, res, ref) { + return HtmlChartComponent_1.initElement(gab, res, ref, false, null); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ComponentFactoryResolver + }]; +}; +HtmlChartComponent = HtmlChartComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'html-chart', + template: _html_chart_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_chart_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_6__.ComponentFactoryResolver])], HtmlChartComponent); + + +/***/ }), + +/***/ 69225: +/*!*****************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-bar/graph-bar.component.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GraphBarComponent: () => (/* binding */ GraphBarComponent) +/* harmony export */ }); +/* harmony import */ var _graph_bar_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph-bar.component.html?ngResource */ 21918); +/* harmony import */ var _graph_bar_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./graph-bar.component.scss?ngResource */ 68028); +/* harmony import */ var _graph_bar_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_graph_bar_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../graph-base/graph-base.component */ 62160); +/* harmony import */ var _models_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_models/graph */ 88008); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _helpers_calc__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_helpers/calc */ 73520); +/* harmony import */ var ng2_charts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ng2-charts */ 46673); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var chartjs_plugin_datalabels__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! chartjs-plugin-datalabels */ 76709); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var GraphBarComponent_1; + + + + + + + + + + +let GraphBarComponent = GraphBarComponent_1 = class GraphBarComponent extends _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__.GraphBaseComponent { + chart; + height = 240; + width = 380; + onReload = new _angular_core__WEBPACK_IMPORTED_MODULE_8__.EventEmitter(); + barChartOptions = { + responsive: true, + maintainAspectRatio: false + }; + barChartLabels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012']; + barChartType = 'bar'; + barChartPlugins = [chartjs_plugin_datalabels__WEBPACK_IMPORTED_MODULE_7__["default"]]; + barChartData = [{ + data: [65, 59, 80, 81, 56, 55, 40], + label: 'Series A' + }, { + data: [28, 48, 40, 19, 86, 27, 90], + label: 'Series B' + }]; + id = ''; + isEditor = false; + title = ''; + property; + sourceMap = {}; + sourceCount = 0; + xTypeValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarXType, _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarXType.value); + xTypeDate = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarXType, _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarXType.date); + fncSumHourIntegral = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarDateFunctionType, _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarDateFunctionType.sumHourIntegral); + fncValueIntegral = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarDateFunctionType, _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphBarDateFunctionType.sumValueIntegral); + hoursDateGroup = _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphDateGroupType.hours; + daysDateGroup = _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphDateGroupType.days; + dateGroupTemplate; + currentQuery; + reloadActive = false; + static demoValues = []; + constructor() { + super(); + } + ngOnInit() { + if (!this.barChartOptions) { + this.barChartOptions = GraphBarComponent_1.DefaultOptions(); + } + if (this.isEditor && !GraphBarComponent_1.demoValues.length) { + for (let i = 0; i < 300; i++) { + GraphBarComponent_1.demoValues[i] = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.rand(10, 100); + } + } + } + ngAfterViewInit() { + if (this.barChartOptions.panel) { + this.resize(this.barChartOptions.panel.height, this.barChartOptions.panel.width); + } + } + ngOnDestroy() { + try {} catch (e) { + console.error(e); + } + } + init(title, property, sources) { + this.title = title; + this.property = property; + if (sources) { + this.setSources(sources); + } + } + setSources(sources) { + this.sourceMap = {}; + this.barChartData = []; + for (let i = 0; i < sources.length; i++) { + let dataset = { + label: sources[i].label, + data: [], + backgroundColor: [sources[i].fill], + borderColor: [sources[i].color], + hoverBackgroundColor: [sources[i].fill], + hoverBorderColor: [sources[i].color] + }; + this.sourceMap[sources[i].id] = dataset; + this.barChartData.push(dataset); + } + this.sourceCount = sources.length; + } + setOptions(options) { + if (options) { + options.scales['y'] = options.type === this.barChartType ? options.scales['y'] : options.scales['x']; + options.scales['x'] = options.type === this.barChartType ? options.scales['x'] : options.scales['y']; + // check axes grids property + for (let i = 0; i < options.scales.length; i++) { + options.scales[i].grid = _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__.GraphBaseComponent.getGridLines(options); + } + if (options.type) { + this.barChartType = options.type; + } + this.barChartOptions = { + ...this.barChartOptions, + ...options + }; + if (this.barChartOptions.panel) { + this.resize(this.barChartOptions.panel.height, this.barChartOptions.panel.width); + } + if (options.borderWidth) { + for (let i = 0; i < this.barChartData.length; i++) { + this.barChartData[i].borderWidth = options.borderWidth; + } + } + // check labels x axes + if (this.property) { + if (this.property.xtype === this.xTypeValue) { + this.barChartLabels = ['']; + } else if (this.property.xtype === this.xTypeDate) { + this.currentQuery = this.getQuery(); + this.dateGroupTemplate = this.getFunctionValues(this.property.function, [{ + dt: this.currentQuery.from, + value: 0 + }, { + dt: this.currentQuery.to, + value: 0 + }]); + this.barChartLabels = this.getDateLabels(this.dateGroupTemplate); + } else { + this.barChartLabels = this.barChartData.map(ds => ds.label); + } + } + this.barChartOptions.plugins.title.text = _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__.GraphBaseComponent.getTitle(options, this.title); + this.chart.update(); + if (!this.isEditor) { + setTimeout(() => { + this.onRefresh(); + }, 500); + } + this.setDemo(); + } + } + onRefresh(user) { + if (this.isEditor || !this.property) { + return false; + } + this.currentQuery = this.getQuery(); + this.onReload.emit(this.currentQuery); + if (user) { + this.reloadActive = true; + } + } + resize(height, width) { + if (height && width) { + this.height = height; + this.width = width; + this.barChartOptions.panel.width = width; + this.barChartOptions.panel.height = height; + } + } + setValue(sigid, timestamp, sigvalue) { + if (this.sourceMap[sigid]) { + let dataset = this.sourceMap[sigid]; + if (this.property.xtype === this.xTypeValue) { + dataset.data[0] = parseFloat(sigvalue).toFixed(this.barChartOptions.decimals); + this.chart.update(400); + } + } + } + setValues(sigsid, sigsvalues) { + try { + if (sigsvalues && this.property) { + if (this.property.xtype === this.xTypeValue) { + for (let i = 0; i < sigsvalues.length; i++) { + sigsvalues[i].forEach(v => { + if (v) { + this.setValue(v.id, v.ts, v.value.toFixed(this.barChartOptions.decimals)); + } + }); + } + } else if (this.property.xtype === this.xTypeDate) { + for (let i = 0; i < sigsvalues.length; i++) { + let data = []; + let fncvalues = this.getFunctionValues(this.property.function, sigsvalues[i]); + for (let key in this.dateGroupTemplate) { + let k = parseInt(key); + if (!fncvalues[k]) { + data.push(this.dateGroupTemplate[k]); + } else { + data.push(fncvalues[k].toFixed(this.barChartOptions.decimals)); + } + } + let dataset = this.sourceMap[sigsid[i]]; + dataset.data = data; + this.fullDataSetAttribute(dataset); + this.chart.update(); + } + } + } + } catch (err) { + console.error(err); + } + this.reloadActive = false; + } + isOffline() { + return this.barChartOptions.offline; + } + setDemo() { + if (!this.isEditor) { + return false; + } + this.barChartData = []; + for (let key in this.sourceMap) { + let dataset = this.sourceMap[key]; + if (this.property.xtype === this.xTypeValue) { + dataset.data = [_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.rand(10, 100)]; + } else if (this.dateGroupTemplate && this.property.xtype === this.xTypeDate) { + let datacount = Object.keys(this.dateGroupTemplate).length; + if (datacount === dataset.data.length) { + return false; + } + dataset.data = GraphBarComponent_1.demoValues.slice(0, datacount); + this.fullDataSetAttribute(dataset); + } + this.barChartData.push(dataset); + } + } + fullDataSetAttribute(dataset) { + dataset.backgroundColor = Array(dataset.data.length).fill(dataset.backgroundColor[0]); + dataset.borderColor = Array(dataset.data.length).fill(dataset.borderColor[0]); + dataset.hoverBackgroundColor = Array(dataset.data.length).fill(dataset.hoverBackgroundColor[0]); + dataset.hoverBorderColor = Array(dataset.data.length).fill(dataset.hoverBorderColor[0]); + } + getDateLabels(dtlist) { + let result = []; + for (let dt in dtlist) { + let date = new Date(parseInt(dt)); + result.push(`${date.toLocaleDateString()} ${_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.formatDate(date, 'HH:mm')}`); + } + return result; + } + getFunctionValues(fnc, values) { + if (fnc.type === this.fncSumHourIntegral) { + if (this.barChartOptions.dateGroup === this.hoursDateGroup) { + return _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.Calc.integralForHour(values, _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.CollectionType.Hour); + } else if (this.barChartOptions.dateGroup === this.daysDateGroup) { + return _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.Calc.integralForHour(values, _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.CollectionType.Day); + } + } else if (fnc.type === this.fncValueIntegral) { + if (this.barChartOptions.dateGroup === this.hoursDateGroup) { + return _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.Calc.integral(values, _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.CollectionType.Hour); + } else if (this.barChartOptions.dateGroup === this.daysDateGroup) { + return _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.Calc.integral(values, _helpers_calc__WEBPACK_IMPORTED_MODULE_5__.CollectionType.Day); + } + } + } + getQuery() { + let query = new _models_hmi__WEBPACK_IMPORTED_MODULE_6__.DaqQuery(); + query.gid = this.id; + if (this.property.xtype === this.xTypeValue) { + // last value + query.to = Date.now(); + query.from = query.to; + } else if (this.property.xtype === this.xTypeDate) { + query.to = Date.now(); + if (this.barChartOptions.lastRange === _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphRangeType.last1h) { + query.from = new Date(query.to); // - (1 * 60 * 60 * 1000)); + query.from = new Date(query.from.getFullYear(), query.from.getMonth(), query.from.getDate(), query.from.getHours(), 0, 0).getTime(); + } else if (this.barChartOptions.lastRange === _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphRangeType.last1d) { + query.from = new Date(query.to); // - (24 * 60 * 60 * 1000)); + query.from = new Date(query.from.getFullYear(), query.from.getMonth(), query.from.getDate(), 0, 0, 0).getTime(); + } else if (this.barChartOptions.lastRange === _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphRangeType.last3d) { + query.from = new Date(query.to - 3 * 24 * 60 * 60 * 1000); + query.from = new Date(query.from.getFullYear(), query.from.getMonth(), query.from.getDate(), 0, 0, 0).getTime(); + } else if (this.barChartOptions.lastRange === _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphRangeType.last1w) { + query.from = new Date(query.to - 7 * 24 * 60 * 60 * 1000); + query.from = new Date(query.from.getFullYear(), query.from.getMonth(), query.from.getDate(), 0, 0, 0).getTime(); + } else if (this.barChartOptions.lastRange === _models_graph__WEBPACK_IMPORTED_MODULE_3__.GraphRangeType.last1m) { + query.from = new Date(query.to - 30 * 24 * 60 * 60 * 1000); + query.from = new Date(query.from.getFullYear(), query.from.getMonth(), query.from.getDate(), 0, 0, 0).getTime(); + } + } + query.sids = Object.keys(this.sourceMap); + return query; + } + static DefaultOptions() { + let options = { + type: 'bar', + theme: _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__.GraphThemeType.light, + offline: false, + decimals: 0, + responsive: true, + backgroundColor: null, + maintainAspectRatio: false, + indexAxis: 'x', + gridLinesShow: true, + scales: { + y: { + display: true, + min: 0, + // stacked: true, + ticks: { + stepSize: 20, + font: { + size: 12 + } + // suggestedMin: 0 + }, + + grid: { + color: 'rgba(0, 0, 0, 0.2)', + display: true + } + }, + x: { + display: true, + // stacked: true, + ticks: { + font: { + size: 12 + } + }, + grid: { + color: 'rgba(0, 0, 0, 0.2)', + display: true + } + } + }, + plugins: { + title: { + display: true, + text: 'Title', + font: { + size: 12 + } + }, + tooltip: { + enabled: true, + intersect: false + }, + legend: { + display: true, + position: 'top', + align: 'center', + labels: { + font: { + size: 12 + }, + color: '' + } + }, + datalabels: { + display: true, + anchor: 'end', + align: 'end', + font: { + size: 12 + } + } + } + }; + return options; + } + static ctorParameters = () => []; + static propDecorators = { + chart: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: [ng2_charts__WEBPACK_IMPORTED_MODULE_9__.BaseChartDirective, { + static: false + }] + }], + height: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + width: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + onReload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Output + }] + }; +}; +GraphBarComponent = GraphBarComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'graph-bar', + template: _graph_bar_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_graph_bar_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], GraphBarComponent); + + +/***/ }), + +/***/ 62160: +/*!*******************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-base/graph-base.component.ts ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GraphBaseComponent: () => (/* binding */ GraphBaseComponent), +/* harmony export */ GraphThemeType: () => (/* binding */ GraphThemeType) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let GraphBaseComponent = class GraphBaseComponent { + onReload = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); + id; + isEditor; + static VerticalBarChartType = 'bar'; + static PieChartType = 'pie'; + isOffline() { + return false; + } + static getGridLines(options) { + let result = { + display: options.gridLinesShow + }; + if (options.gridLinesColor) { + result.color = options.gridLinesColor; + //result.zeroLineColor = options.gridLinesColor; + } + + return result; + } + static getTitle(options, title) { + if (title) { + options.plugins.title.text = title; + } + return options.plugins.title.text; + } + static propDecorators = { + onReload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output + }] + }; +}; +GraphBaseComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Component)({ + template: '' +})], GraphBaseComponent); + +var GraphThemeType; +(function (GraphThemeType) { + GraphThemeType["customise"] = "customise"; + GraphThemeType["dark"] = "dark"; + GraphThemeType["light"] = "light"; +})(GraphThemeType || (GraphThemeType = {})); + +/***/ }), + +/***/ 17361: +/*!*****************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-pie/graph-pie.component.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GraphPieComponent: () => (/* binding */ GraphPieComponent) +/* harmony export */ }); +/* harmony import */ var _graph_pie_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph-pie.component.html?ngResource */ 9195); +/* harmony import */ var _graph_pie_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./graph-pie.component.css?ngResource */ 74725); +/* harmony import */ var _graph_pie_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_graph_pie_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../graph-base/graph-base.component */ 62160); +/* harmony import */ var ng2_charts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ng2-charts */ 46673); +/* harmony import */ var chartjs_plugin_datalabels__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! chartjs-plugin-datalabels */ 76709); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var GraphPieComponent_1; + + + + + + +let GraphPieComponent = GraphPieComponent_1 = class GraphPieComponent extends _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__.GraphBaseComponent { + chart; + height = 380; + width = 380; + pieChartOptions = { + responsive: true, + maintainAspectRatio: false + }; + pieChartType = 'pie'; + barChartPlugins = [chartjs_plugin_datalabels__WEBPACK_IMPORTED_MODULE_3__["default"]]; + pieData = [300, 500, 100]; + pieChartData = { + labels: ['Download Sales', 'In Store Sales', 'Mail Sales'], + datasets: [{ + data: this.pieData, + backgroundColor: ['rgb(154, 162, 235)', 'rgb(63, 73, 100)', 'rgb(255, 105, 86)'] + }] + }; + id = ''; + isEditor = false; + title = ''; + property; + sourceMap = {}; + constructor() { + super(); + } + ngOnInit() { + if (!this.pieChartOptions) { + this.pieChartOptions = GraphPieComponent_1.DefaultOptions(); + } + } + ngAfterViewInit() { + if (this.pieChartOptions.panel) { + this.resize(this.pieChartOptions.panel.height, this.pieChartOptions.panel.width); + } + } + ngOnDestroy() { + try {} catch (e) { + console.error(e); + } + } + init(title, property, sources) { + this.title = title; + this.property = property; + if (sources) { + this.setSources(sources); + } + } + setSources(sources) { + this.sourceMap = {}; + let labels = []; + this.pieData = []; + let backgroundColor = []; + for (let i = 0; i < sources.length; i++) { + labels.push(sources[i].label || sources[i].name); + this.pieData.push((i + 1) * 10); + backgroundColor.push(sources[i].fill); + this.sourceMap[sources[i].id] = i; + } + this.pieChartData.labels = labels; + this.pieChartData.datasets = [{ + data: this.pieData, + backgroundColor: backgroundColor + }]; + } + resize(height, width) { + if (height && width) { + this.height = height; + this.width = width; + this.pieChartOptions.panel.width = width; + this.pieChartOptions.panel.height = height; + } + } + setValue(sigid, timestamp, sigvalue) { + this.pieData[this.sourceMap[sigid]] = sigvalue; + this.chart.update(400); + } + setOptions(options) { + if (options) { + this.pieChartOptions = { + ...this.pieChartOptions, + ...options + }; + if (this.pieChartOptions.panel) { + this.resize(this.pieChartOptions.panel.height, this.pieChartOptions.panel.width); + } + this.pieChartOptions.plugins.title.text = _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_2__.GraphBaseComponent.getTitle(options, this.title); + } + } + static DefaultOptions() { + let options = { + type: 'pie', + plugins: { + title: { + display: true, + text: 'Title', + font: { + size: 12 + } + }, + tooltip: { + enabled: true, + intersect: false + }, + legend: { + display: true, + position: 'top', + align: 'center', + labels: { + font: { + size: 12 + }, + color: '' + } + }, + datalabels: { + display: true, + anchor: 'end', + align: 'end', + font: { + size: 12 + } + } + } + }; + return options; + } + static ctorParameters = () => []; + static propDecorators = { + chart: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, + args: [ng2_charts__WEBPACK_IMPORTED_MODULE_5__.BaseChartDirective, { + static: false + }] + }], + height: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + width: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }] + }; +}; +GraphPieComponent = GraphPieComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-graph-pie', + template: _graph_pie_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_graph_pie_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], GraphPieComponent); + + +/***/ }), + +/***/ 50892: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-property/graph-property.component.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GraphPropertyComponent: () => (/* binding */ GraphPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _graph_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph-property.component.html?ngResource */ 24188); +/* harmony import */ var _graph_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./graph-property.component.scss?ngResource */ 13872); +/* harmony import */ var _graph_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_graph_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 55400); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_graph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/graph */ 88008); +/* harmony import */ var _editor_graph_config_graph_config_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../editor/graph-config/graph-config.component */ 71162); +/* harmony import */ var _graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../graph-bar/graph-bar.component */ 69225); +/* harmony import */ var _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../graph-base/graph-base.component */ 62160); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../graph-pie/graph-pie.component */ 17361); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + +let GraphPropertyComponent = class GraphPropertyComponent { + dialog; + translateService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_8__.EventEmitter(); + set reload(b) { + this._reload(); + } + themeType = _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_5__.GraphThemeType; + graphBarType = _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphType.bar; + graphType = _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphType.pie; + options; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.defaultColor; + lastRangeType = _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphRangeType; + dateGroupType = _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphDateGroupType; + dataXType = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.getEnumKey(_models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphBarXType, _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphBarXType.date); + graphCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_9__.UntypedFormControl(); + graphFilterCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_9__.UntypedFormControl(); + filteredGraph = new rxjs__WEBPACK_IMPORTED_MODULE_10__.ReplaySubject(1); + _onDestroy = new rxjs__WEBPACK_IMPORTED_MODULE_11__.Subject(); + constructor(dialog, translateService) { + this.dialog = dialog; + this.translateService = translateService; + } + ngOnInit() { + this.checkInitProperty(); + if (this.data.settings.type.endsWith('bar')) { + Object.keys(this.dateGroupType).forEach(key => { + this.translateService.get(this.dateGroupType[key]).subscribe(txt => { + this.dateGroupType[key] = txt; + }); + }); + } + this._reload(); + } + ngOnDestroy() { + this._onDestroy.next(null); + this._onDestroy.complete(); + } + _reload() { + // check default value, undefined if new + this.checkInitProperty(); + if (this.data.settings.type.endsWith('bar')) { + this.options = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.mergeDeep(_graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_4__.GraphBarComponent.DefaultOptions(), this.data.settings.property.options); + } else if (this.data.settings.type.endsWith('pie')) { + this.options = _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.mergeDeep(_graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_7__.GraphPieComponent.DefaultOptions(), this.data.settings.property.options); + } + // load graphs list to choise + this.loadGraphs(); + let graph = null; + if (this.data.settings.property) { + graph = this.data.graphs.find(graph => graph.id === this.data.settings.property.id); + } + this.graphCtrl.setValue(graph); + } + checkInitProperty() { + if (this.data.settings.type.endsWith('bar')) { + this.graphType = _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphType.bar; + if (!this.data.settings.property) { + this.data.settings.property = { + id: null, + type: null, + options: null + }; + } + if (!this.data.settings.property.options) { + this.data.settings.property.options = _graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_4__.GraphBarComponent.DefaultOptions(); + } + } else if (this.data.settings.type.endsWith('pie')) { + this.graphType = _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphType.pie; + if (!this.data.settings.property) { + this.data.settings.property = { + id: null, + type: null, + options: null + }; + } + if (!this.data.settings.property.options) { + this.data.settings.property.options = _graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_7__.GraphPieComponent.DefaultOptions(); + } + } + } + onGraphChanged() { + this.data.settings.property = { + id: null, + type: null, + options: null + }; + if (this.graphCtrl.value) { + this.data.settings.property.id = this.graphCtrl.value.id; + this.data.settings.property.type = this.graphCtrl.value.type; + if (this.data.settings.type.endsWith('bar')) { + if (!this.isDateTime(this.graphCtrl.value)) { + this.options.lastRange = null; + this.options.dateGroup = null; + } else { + this.options.offline = true; + this.options.lastRange = this.options.lastRange ?? _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphRangeType.last1d; + this.options.dateGroup = this.options.dateGroup ?? _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphDateGroupType.hours; + } + } + } + if (this.data.settings.type.endsWith('bar')) { + this.options.scales['y'].grid.color = this.options.gridLinesColor; + this.options.scales['y'].grid.display = this.options.gridLinesShow; + this.options.scales['x'].grid.color = this.options.gridLinesColor; + this.options.scales['x'].grid.display = this.options.gridLinesShow; + } + this.data.settings.property.options = JSON.parse(JSON.stringify(this.options)); + this.onPropChanged.emit(this.data.settings); + } + onGraphThemaChanged() { + const yScale = this.options.scales['y']; + const xScale = this.options.scales['x']; + if (this.options.theme === this.themeType.light) { + yScale.ticks.color = '#666'; + xScale.ticks.color = '#666'; + this.options.plugins.legend.labels.color = '#666'; + this.options.plugins.datalabels.color = '#666'; + this.options.plugins.title.color = '#666'; + this.options.gridLinesColor = 'rgba(0, 0, 0, 0.2)'; + this.options.backgroundColor = null; + } else if (this.options.theme === this.themeType.dark) { + yScale.ticks.color = '#fff'; + xScale.ticks.color = '#fff'; + this.options.plugins.legend.labels.color = '#fff'; + this.options.plugins.datalabels.color = '#fff'; + this.options.plugins.title.color = '#fff'; + this.options.gridLinesColor = '#808080'; + this.options.backgroundColor = '242424'; + } else if (this.options.theme === this.themeType.customise) { + this.options.backgroundColor = null; + } + this.onGraphChanged(); + } + onEditNewGraph() { + let dialogRef = this.dialog.open(_editor_graph_config_graph_config_component__WEBPACK_IMPORTED_MODULE_3__.GraphConfigComponent, { + position: { + top: '60px' + }, + minWidth: '1090px', + width: '1090px', + data: { + type: this.graphType === _models_graph__WEBPACK_IMPORTED_MODULE_2__.GraphType.bar ? 'bar' : 'pie' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.data.graphs = result.graphs; + this.loadGraphs(); + if (result.selected) { + this.graphCtrl.setValue(result.selected); + } + this.onGraphChanged(); + } + }); + } + isDateTime(graph) { + if (graph && graph.property && graph.property.xtype === this.dataXType) { + return true; + } + return false; + } + loadGraphs(toset) { + // load the initial graph list + this.filteredGraph.next(this.data.graphs.slice()); + // listen for search field value changes + this.graphFilterCtrl.valueChanges.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.takeUntil)(this._onDestroy)).subscribe(() => { + this.filterGraph(); + }); + if (toset) { + let idx = -1; + this.data.graphs.every(function (value, index, _arr) { + if (value.id === toset) { + idx = index; + return false; + } + return true; + }); + if (idx >= 0) { + this.graphCtrl.setValue(this.data.graphs[idx]); + } + } + } + filterGraph() { + if (!this.data.graphs) { + return; + } + // get the search keyword + let search = this.graphFilterCtrl.value; + if (!search) { + this.filteredGraph.next(this.data.graphs.slice()); + return; + } else { + search = search.toLowerCase(); + } + // filter the variable + this.filteredGraph.next(this.data.graphs.filter(graph => graph.name.toLowerCase().indexOf(search) > -1)); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_13__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__.TranslateService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input, + args: ['reload'] + }] + }; +}; +GraphPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-graph-property', + template: _graph_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_graph_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_13__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__.TranslateService])], GraphPropertyComponent); + + +/***/ }), + +/***/ 47981: +/*!********************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/html-graph.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlGraphComponent: () => (/* binding */ HtmlGraphComponent) +/* harmony export */ }); +/* harmony import */ var _html_graph_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-graph.component.html?ngResource */ 63670); +/* harmony import */ var _html_graph_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-graph.component.css?ngResource */ 73780); +/* harmony import */ var _html_graph_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_graph_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./graph-bar/graph-bar.component */ 69225); +/* harmony import */ var _graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graph-pie/graph-pie.component */ 17361); +/* harmony import */ var _graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graph-base/graph-base.component */ 62160); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlGraphComponent_1; + + + + + + + + + +let HtmlGraphComponent = HtmlGraphComponent_1 = class HtmlGraphComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-html_graph'; + static LabelTag = 'HtmlGraph'; + static prefixD = 'D-HXC_'; + static suffixPie = '-pie'; + static suffixBar = '-bar'; + constructor() { + super(); + } + static getSignals(pro) { + return pro.variableIds; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Graph; + } + static processValue(ga, svgele, sig, gaugeStatus, gauge) { + try { + if (gauge && !gauge.isOffline()) { + gauge.setValue(sig.id, new Date().getTime() / 1000, sig.value); + } + } catch (err) { + console.error(err); + } + } + static initElement(gab, resolver, viewContainerRef, isview) { + let ele = document.getElementById(gab.id); + if (ele) { + ele?.setAttribute('data-name', gab.name); + let htmlGraph = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefixD); + if (htmlGraph) { + let factory = resolver.resolveComponentFactory(_graph_base_graph_base_component__WEBPACK_IMPORTED_MODULE_7__.GraphBaseComponent); + if (gab.type.endsWith(this.suffixBar)) { + factory = resolver.resolveComponentFactory(_graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_5__.GraphBarComponent); + } else { + factory = resolver.resolveComponentFactory(_graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_6__.GraphPieComponent); + } + const componentRef = viewContainerRef.createComponent(factory); + // if (gab.property) { + // componentRef.instance.withToolbar = (gab.property.type === 'history') ? true : false; + // } + htmlGraph.innerHTML = ''; + componentRef.instance.isEditor = !isview; + // componentRef.instance.rangeType = chartRange; + componentRef.instance.id = gab.id; + componentRef.changeDetectorRef.detectChanges(); + htmlGraph.appendChild(componentRef.location.nativeElement); + let opt = { + panel: { + height: htmlGraph.clientHeight, + width: htmlGraph.clientWidth + } + }; + if (gab.type.endsWith(this.suffixBar)) { + opt = { + ..._graph_bar_graph_bar_component__WEBPACK_IMPORTED_MODULE_5__.GraphBarComponent.DefaultOptions(), + ...opt + }; + } else { + opt = { + ..._graph_pie_graph_pie_component__WEBPACK_IMPORTED_MODULE_6__.GraphPieComponent.DefaultOptions(), + ...opt + }; + } + componentRef.instance.setOptions(opt); + componentRef.instance['myComRef'] = componentRef; + componentRef.instance['name'] = gab.name; + return componentRef.instance; + } + } + } + static detectChange(gab, res, ref) { + return HtmlGraphComponent_1.initElement(gab, res, ref, false); + } + static ctorParameters = () => []; +}; +HtmlGraphComponent = HtmlGraphComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'html-graph', + template: _html_graph_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_graph_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlGraphComponent); + + +/***/ }), + +/***/ 39845: +/*!**********************************************************************!*\ + !*** ./src/app/gauges/controls/html-iframe/html-iframe.component.ts ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlIframeComponent: () => (/* binding */ HtmlIframeComponent) +/* harmony export */ }); +/* harmony import */ var _html_iframe_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-iframe.component.html?ngResource */ 50425); +/* harmony import */ var _html_iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-iframe.component.css?ngResource */ 27417); +/* harmony import */ var _html_iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlIframeComponent_1; + + + + + + +let HtmlIframeComponent = HtmlIframeComponent_1 = class HtmlIframeComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-own_ctrl-iframe'; + static LabelTag = 'HtmlIframe'; + static prefixD = 'D-OXC_'; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Iframe; + } + static processValue(ga, svgele, sig) { + try { + if (sig.value && svgele?.node?.children?.length >= 1) { + const parentIframe = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(svgele.node, this.prefixD); + const iframe = parentIframe.querySelector('iframe'); + const src = iframe.getAttribute('src'); + if (src !== sig.value && _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isValidUrl(sig.value)) { + iframe.setAttribute('src', sig.value); + } + } + } catch (err) { + console.error(err); + } + } + static initElement(gaugeSettings, isview) { + let svgIframeContainer = null; + let ele = document.getElementById(gaugeSettings.id); + if (ele) { + ele?.setAttribute('data-name', gaugeSettings.name); + svgIframeContainer = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefixD); + if (svgIframeContainer) { + svgIframeContainer.innerHTML = ''; + let iframe = document.createElement('iframe'); + iframe.setAttribute('name', gaugeSettings.name); + iframe.style['width'] = '100%'; + iframe.style['height'] = '100%'; + iframe.style['border'] = 'none'; + iframe.style['background-color'] = '#F1F3F4'; + if (!isview) { + svgIframeContainer.innerHTML = 'iframe'; + iframe.style['overflow'] = 'hidden'; + iframe.style['pointer-events'] = 'none'; + } + iframe.setAttribute('title', 'iframe'); + if (gaugeSettings.property && gaugeSettings.property.address && isview) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isValidUrl(gaugeSettings.property.address)) { + iframe.setAttribute('src', gaugeSettings.property.address); + } else { + console.error('IFRAME URL not valid'); + } + } + iframe.innerHTML = ' '; + svgIframeContainer.appendChild(iframe); + } + } + return svgIframeContainer; + } + static detectChange(gab) { + return HtmlIframeComponent_1.initElement(gab, false); + } + static ctorParameters = () => []; +}; +HtmlIframeComponent = HtmlIframeComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-html-iframe', + template: _html_iframe_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlIframeComponent); + + +/***/ }), + +/***/ 70083: +/*!******************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-iframe/iframe-property/iframe-property.component.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ IframePropertyComponent: () => (/* binding */ IframePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _iframe_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./iframe-property.component.html?ngResource */ 38331); +/* harmony import */ var _iframe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iframe-property.component.scss?ngResource */ 13889); +/* harmony import */ var _iframe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_iframe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let IframePropertyComponent = class IframePropertyComponent { + translateService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + set reload(b) { + this._reload(); + } + property; + constructor(translateService) { + this.translateService = translateService; + } + ngOnInit() { + this._reload(); + } + onPropertyChanged() { + this.onPropChanged.emit(this.data.settings); + } + onTagChanged(daveiceTag) { + this.data.settings.property.variableId = daveiceTag.variableId; + this.onPropChanged.emit(this.data.settings); + } + _reload() { + if (!this.data.settings.property) { + this.data.settings.property = { + address: null, + variableId: null + }; + } + this.property = this.data.settings.property; + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, + args: ['reload'] + }] + }; +}; +IframePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-iframe-property', + template: _iframe_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_iframe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService])], IframePropertyComponent); + + +/***/ }), + +/***/ 44841: +/*!********************************************************************!*\ + !*** ./src/app/gauges/controls/html-image/html-image.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlImageComponent: () => (/* binding */ HtmlImageComponent) +/* harmony export */ }); +/* harmony import */ var _html_image_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-image.component.html?ngResource */ 60706); +/* harmony import */ var _html_image_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-image.component.css?ngResource */ 2361); +/* harmony import */ var _html_image_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_image_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _shapes_shapes_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shapes/shapes.component */ 35896); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../_helpers/endpointapi */ 25266); +/* harmony import */ var _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../_helpers/svg-utils */ 39291); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../_models/device */ 15625); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlImageComponent_1; + + + + + + + + + + +let HtmlImageComponent = HtmlImageComponent_1 = class HtmlImageComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-own_ctrl-image'; + static LabelTag = 'HtmlImage'; + static prefixD = 'D-OXC_'; + static endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_6__.EndPointApi.getURL(); + static propertyWidgetType = 'widget'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink, + stop: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.stop, + clockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.clockwise, + anticlockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.anticlockwise, + rotate: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.rotate, + move: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.move, + refreshImage: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.refreshImage + }; + constructor() { + super(); + } + static initElement(gaugeSettings, isview) { + let svgImageContainer = null; + let ele = document.getElementById(gaugeSettings.id); + if (ele) { + ele?.setAttribute('data-name', gaugeSettings.name); + svgImageContainer = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixD); + if (svgImageContainer) { + let svgContent = gaugeSettings.property.svgContent ?? localStorage.getItem(gaugeSettings.property.address); + if (_helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.isSVG(gaugeSettings.property.address) && svgContent) { + svgImageContainer.innerHTML = ''; + svgImageContainer.setAttribute('type', HtmlImageComponent_1.propertyWidgetType); + const parser = new DOMParser(); + const svgDocument = parser.parseFromString(svgContent, 'image/svg+xml'); + const svgElement = svgDocument.querySelector('svg'); + const originSize = _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.getSvgSize(svgElement); + _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.resizeSvgNodes(svgImageContainer.parentElement.parentElement, originSize); + svgImageContainer.parentElement?.parentElement?.removeAttribute('stroke'); + svgElement.setAttribute('width', originSize.width.toString()); + svgElement.setAttribute('height', originSize.height.toString()); + if (!gaugeSettings.property.svgContent) { + const scripts = svgElement.querySelectorAll('script'); + const svgGuid = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getShortGUID('', '_'); + const svgIdsMap = _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.renameIdsInSvg(svgElement, svgGuid); + const moduleId = `wModule_${svgGuid}`; + let widgetResult; + scripts?.forEach(script => { + widgetResult = _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.processWidget(script.textContent, moduleId, svgIdsMap, gaugeSettings.property?.varsToBind); + script.parentNode.removeChild(script); + }); + svgImageContainer.appendChild(svgElement); + gaugeSettings.property = { + ...gaugeSettings.property, + type: HtmlImageComponent_1.propertyWidgetType, + svgGuid: svgGuid, + svgContent: svgImageContainer.innerHTML, + scriptContent: { + moduleId: moduleId, + content: widgetResult?.content + }, + varsToBind: _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.mergeArray([widgetResult?.vars, gaugeSettings.property.varsToBind], 'originalName') + }; + } else { + svgImageContainer.appendChild(svgElement); + } + if (gaugeSettings.property.scriptContent) { + const newScript = document.createElement('script'); + newScript.textContent = _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.initWidget(gaugeSettings.property.scriptContent.content, gaugeSettings.property.varsToBind); + document.body.appendChild(newScript); + } + } else { + svgImageContainer.innerHTML = ''; + let image = document.createElement('img'); + image.style['width'] = '100%'; + image.style['height'] = '100%'; + image.style['border'] = 'none'; + if (gaugeSettings.property && gaugeSettings.property.address) { + image.setAttribute('src', gaugeSettings.property.address); + } + svgImageContainer.appendChild(image); + } + } + } + return svgImageContainer; + } + static resize(gaugeSettings) { + const ele = document.getElementById(gaugeSettings.id); + if (ele) { + const svgImageContainer = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefixD); + const svgElement = svgImageContainer.querySelector('svg'); + if (svgElement && svgImageContainer.getAttribute('type') === HtmlImageComponent_1.propertyWidgetType) { + const boxSize = _helpers_svg_utils__WEBPACK_IMPORTED_MODULE_7__.SvgUtils.getSvgSize(svgImageContainer.parentElement); + svgElement.setAttribute('width', boxSize.width.toString()); + svgElement.setAttribute('height', boxSize.height.toString()); + gaugeSettings.property.svgContent = svgImageContainer.innerHTML; + } + } + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + pro.varsToBind?.forEach(varToBind => { + if (varToBind.variableId) { + res.push(varToBind.variableId); + } + }); + return res; + } + static getActions(type) { + return this.actionsType; + } + static isBitmaskSupported() { + return true; + } + /** + * process value from webcam + * @param ga + * @param svgele + * @param sig + * @param gaugeStatus + */ + static processWebcamValue(ga, svgele, sig, gaugeStatus) { + if (sig.value && ga.property.actions) { + ga.property.actions.forEach(act => { + //process refresh image only + if (act.variableId === sig.id && this.actionsType[act.type] === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.refreshImage) { + this.actionRefreshImage(act, svgele, sig, gaugeStatus); + return; + } + }); + } + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node) { + if (sig.device?.type === _models_device__WEBPACK_IMPORTED_MODULE_8__.DeviceType.WebCam) { + HtmlImageComponent_1.processWebcamValue(ga, svgele, sig, gaugeStatus); + return; + } + let value = parseFloat(sig.value); + if (Number.isNaN(value)) { + // maybe boolean + value = Number(sig.value); + } else { + value = parseFloat(value.toFixed(5)); + } + if (ga.property) { + let propValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(ga.property.bitmask, value); + let propertyColor = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugePropertyColor(); + if (ga.property.variableId === sig.id && ga.property.ranges) { + for (let idx = 0; idx < ga.property.ranges.length; idx++) { + if (ga.property.ranges[idx].min <= propValue && ga.property.ranges[idx].max >= propValue) { + propertyColor.fill = ga.property.ranges[idx].color; + propertyColor.stroke = ga.property.ranges[idx].stroke; + } + } + // check if general shape (line/path/fpath/text) to set the stroke + if (propertyColor.fill) { + svgele.node.setAttribute('fill', propertyColor.fill); + } + if (propertyColor.stroke) { + svgele.node.setAttribute('stroke', propertyColor.stroke); + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + _shapes_shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.processAction(act, svgele, value, gaugeStatus, propertyColor); + } + }); + } + // check widget + if (ga.property.type === HtmlImageComponent_1.propertyWidgetType && ga.property.scriptContent && ga.property.varsToBind?.length) { + const scriptContent = ga.property.scriptContent; + if (window[scriptContent.moduleId]['putValue']) { + const widgetVar = ga.property.varsToBind?.find(varToBind => varToBind.variableId === sig.id); + if (widgetVar) { + window[scriptContent.moduleId]['putValue'](widgetVar.name, sig.value); + } + } + } + } + } + } catch (err) { + console.error(err); + } + } + static bindEvents(ga, callback) { + if (ga.property.type === HtmlImageComponent_1.propertyWidgetType && ga.property.scriptContent && ga.property.varsToBind?.length) { + const scriptContent = ga.property.scriptContent; + if (window[scriptContent.moduleId]?.['postValue']) { + window[scriptContent.moduleId]['postValue'] = (varName, value) => { + const widgetVar = ga.property.varsToBind?.find(varToBind => varToBind.name === varName); + if (widgetVar) { + let event = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Event(); + event.type = HtmlImageComponent_1.propertyWidgetType; + event.ga = ga; + event.value = value; + event.variableId = widgetVar.variableId; + callback(event); + } else { + console.error(`Variable name (${varName}) not found!`); + } + }; + } else { + console.error(`Module (${scriptContent.moduleId}) or postValue function not found!`); + } + } + return null; + } + static detectChange(gab, isview) { + return HtmlImageComponent_1.initElement(gab, isview); + } + static actionRefreshImage(act, svgele, sig, gaugeStatus) { + let element = SVG.adopt(svgele.node); + let img = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeTagName(element.node, 'IMG'); + if (img) { + img.setAttribute('src', `/snapshots${sig.value}?${new Date().getTime()}`); + } + } + static ctorParameters = () => []; +}; +HtmlImageComponent = HtmlImageComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-html-image', + template: _html_image_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_image_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlImageComponent); + + +/***/ }), + +/***/ 64428: +/*!********************************************************************!*\ + !*** ./src/app/gauges/controls/html-input/html-input.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlInputComponent: () => (/* binding */ HtmlInputComponent), +/* harmony export */ HtmlInputElement: () => (/* binding */ HtmlInputElement) +/* harmony export */ }); +/* harmony import */ var _html_input_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-input.component.html?ngResource */ 93574); +/* harmony import */ var _html_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-input.component.css?ngResource */ 3007); +/* harmony import */ var _html_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlInputComponent_1; + + + + + + + +let HtmlInputComponent = HtmlInputComponent_1 = class HtmlInputComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-html_input'; + static LabelTag = 'HtmlInput'; + static prefix = 'I-HXI_'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show + }; + static InputDateTimeType = ['date', 'time', 'datetime']; + static SkipEnterEvent = ['textarea']; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__.GaugeDialogType.Input; + } + static getActions(type) { + return this.actionsType; + } + static getHtmlEvents(ga) { + let ele = document.getElementById(ga.id); + if (ele) { + let input = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (input) { + let event = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Event(); + event.dom = input; + event.type = 'key-enter'; + event.ga = ga; + return event; + } + } + return null; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node && svgele.node.children && svgele.node.children.length >= 1) { + let input = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgele.node, this.prefix); + if (input) { + let val = parseFloat(sig.value); + let unit = null; + let digit = null; + let datetime = ''; + if (ga.property.ranges) { + unit = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getUnit(ga.property, gaugeStatus); + digit = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getDigits(ga.property, gaugeStatus); + } + if (Number.isNaN(val)) { + // maybe boolean + val = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.toNumber(sig.value); + } else if (ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.time) { + datetime = sig.value; + if (ga.property?.options?.convertion === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputConvertionType.milliseconds) { + datetime = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.millisecondsToTimeString(val, ga.property?.options?.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.milliseconds ? 1000 : ga.property?.options?.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.seconds ? 100 : 0); + } + } else if (ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.date || ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.datetime) { + datetime = sig.value; + if (ga.property?.options?.convertion === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputConvertionType.milliseconds) { + if (ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.date) { + datetime = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.millisecondsToDateString(val); + } else { + datetime = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.millisecondsToDateString(val, ga.property?.options?.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.milliseconds ? 1000 : ga.property?.options?.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.seconds ? 100 : ga.property?.options?.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.normal ? 1 : 0); + } + } + } else { + val = parseFloat(val.toFixed(digit || 5)); + } + if (ga.property?.variableId == sig.id) { + // Do not update value if input is in focus! + if (ga.property?.options?.updated && !(document.hasFocus && input.id == document.activeElement.id)) { + if (datetime) { + input.value = datetime; + } else { + if (ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.text) { + input.value = sig.value; + } else { + input.value = val; + } + if (unit) { + input.value += ' ' + unit; + } + } + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + HtmlInputComponent_1.processAction(act, svgele, input, val, gaugeStatus); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static initElement(gab, isView = false) { + let input = null; + let ele = document.getElementById(gab.id); + if (ele && gab.property) { + ele?.setAttribute('data-name', gab.name); + input = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + // check textarea, have to be managed in any case + const isTextarea = gab?.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.textarea; + if (input && !isView) { + if (isTextarea && input instanceof HTMLInputElement) { + const ta = document.createElement('textarea'); + input.parentElement?.insertBefore(ta, input); + input.parentElement?.removeChild(input); + ta.setAttribute('style', input.getAttribute('style') ?? ''); + ta.setAttribute('wrap', 'soft'); + ta.style.textAlign = 'left'; + ta.style.border = 'unset'; + ta.style.setProperty('width', 'calc(100% - 2px)'); + ta.style.setProperty('height', 'calc(100% - 2px)'); + ta.style.setProperty('resize', 'none'); + ta.style.setProperty('padding', 'unset !important'); + ta.style.setProperty('overflow', 'auto'); + ta.id = input.id; + input = ta; + } else if (!isTextarea && input instanceof HTMLTextAreaElement) { + const inp = document.createElement('input'); + input.parentElement?.insertBefore(inp, input); + input.parentElement?.removeChild(input); + inp.setAttribute('style', input.getAttribute('style') ?? ''); + inp.style.textAlign = 'right'; + inp.id = input.id; + inp.style.setProperty('width', 'calc(100% - 7px)'); + inp.style.setProperty('height', 'calc(100% - 7px)'); + inp.value = '#.##'; + input = inp; + } + if (isTextarea) { + input.value = gab.property.options.startText || 'textarea'; + input.innerHTML = input.value; + } else { + input.value = '#.##'; + } + } + if (isView && input) { + input.value = ''; + if (isTextarea) { + input.value = gab.property.options.startText || 'textarea'; + input.readOnly = gab.property.options.readonly; + } + HtmlInputComponent_1.checkInputType(input, gab.property.options); + input.setAttribute('autocomplete', 'off'); + if (gab.property.options) { + if (gab.property.options.numeric || gab.property.options.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.number) { + const min = parseFloat(gab.property.options.min); + const max = parseFloat(gab.property.options.max); + input.addEventListener('keydown', event => { + try { + if (event.code === 'Enter' || event.code === 'NumpadEnter') { + const value = parseFloat(input.value); + let warningMessage = ''; + if (min > value) { + warningMessage += `Min=${min} `; + } + if (max < value) { + warningMessage += `Max=${max} `; + } + if (warningMessage) { + let inputPosition = input.getBoundingClientRect(); + const tooltip = document.createElement('div'); + tooltip.innerText = warningMessage; + tooltip.style.position = 'absolute'; + tooltip.style.top = `${inputPosition.top + input.offsetHeight + 3}px`; + tooltip.style.left = `${inputPosition.left}px`; + tooltip.style.zIndex = '99999'; + tooltip.style.padding = '3px 5px'; + tooltip.style.border = '1px solid black'; + tooltip.style.backgroundColor = 'white'; + document.body.appendChild(tooltip); + setTimeout(() => { + document.body.removeChild(tooltip); + }, 2000); + } + } + } catch (err) { + console.error(err); + } + }); + } + // Check DateTime + if (HtmlInputComponent_1.InputDateTimeType.includes(gab.property.options?.type)) { + const setButton = document.createElement('button'); + setButton.style.position = 'absolute'; + setButton.style.left = '0'; + setButton.style.height = '100%'; + setButton.style.display = 'flex'; + setButton.style.alignItems = 'center'; + setButton.style.padding = '0 5px'; + setButton.style.backgroundColor = 'unset'; + setButton.style.border = 'none'; + setButton.style.cursor = 'pointer'; + const icon = document.createElement('i'); + icon.className = 'material-icons'; + icon.innerText = 'done'; + icon.style.fontSize = window.getComputedStyle(input).getPropertyValue('font-size'); + icon.style.fontWeight = 'bold'; + setButton.appendChild(icon); + input.parentElement.insertBefore(setButton, input); + setButton.addEventListener('mousedown', startButtonPress); + setButton.addEventListener('touchstart', startButtonPress); + setButton.addEventListener('mouseup', resetButtonPress); + setButton.addEventListener('touchend', resetButtonPress); + function startButtonPress() { + setButton.style.backgroundColor = 'rgba(0,0,0,0.2)'; + } + function resetButtonPress() { + setButton.style.backgroundColor = 'unset'; + } + setButton.addEventListener('click', function () { + const enterKeyEvent = new KeyboardEvent('keydown', { + key: 'Enter' + }); + input.dispatchEvent(enterKeyEvent); + }); + } + } + // Adjust the width to better fit the surrounding svg rect + input.style.margin = '1px 1px'; + } + if (ele) { + // Input element is npt precisely aligned to the center of the surrounding rectangle. Compensate it with the padding. + let fobj = ele.getElementsByTagName('foreignObject'); + if (fobj) { + fobj[0].style.paddingLeft = '1px'; + } + // Set the border on the surrounding svg rect + let rects = ele.getElementsByTagName('rect'); + if (rects) { + rects[0].setAttribute('stroke-width', '0.5'); + } + } + } + return new HtmlInputElement(input); + } + static checkInputType(input, options) { + if (options?.type) { + if (options.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.datetime) { + input.setAttribute('type', 'datetime-local'); + } else { + input.setAttribute('type', options.type); + } + if (options.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.time) { + if (options.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.seconds) { + input.setAttribute('step', '1'); + } else if (options.timeformat === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputTimeFormatType.milliseconds) { + input.setAttribute('step', '0.001'); + } + } + } + } + static initElementColor(bkcolor, color, ele) { + let htmlInput = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlInput) { + if (bkcolor) { + htmlInput.style.backgroundColor = bkcolor; + } + if (color) { + htmlInput.style.color = color; + } + } + } + static getFillColor(ele) { + if (ele.children && ele.children[0]) { + let htmlInput = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlInput) { + return htmlInput.style.backgroundColor; + } + } + return ele.getAttribute('fill'); + } + static getStrokeColor(ele) { + if (ele.children && ele.children[0]) { + let htmlInput = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlInput) { + return htmlInput.style.color; + } + } + return ele.getAttribute('stroke'); + } + static processAction(act, svgele, input, value, gaugeStatus) { + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } + } + static validateValue(value, ga) { + let result = { + valid: true, + value: value, + errorText: '', + min: 0, + max: 0 + }; + if (ga.property?.options?.numeric || ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.number) { + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(ga.property.options.min) && !_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(ga.property.options.max)) { + if (Number.isNaN(value) || !/^-?[\d.]+$/.test(value)) { + return { + ...result, + valid: false, + errorText: 'html-input.not-a-number' + }; + } else { + let numVal = parseFloat(value); + if (numVal < ga.property.options.min || numVal > ga.property.options.max) { + return { + ...result, + valid: false, + errorText: 'html-input.out-of-range', + min: ga.property.options.min, + max: ga.property.options.max + }; + } + } + } + } else if (ga.property?.options?.convertion === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputConvertionType.milliseconds && ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.time) { + const [hour, minute, seconds, milliseconds] = value.split(/:|\./); + ; + result.value = ((hour ? parseInt(hour) * 3600 : 0) + (minute ? parseInt(minute) * 60 : 0) + (seconds ? parseInt(seconds) : 0)) * 1000 + (milliseconds ? parseInt(milliseconds) : 0); + } else if (ga.property?.options?.convertion === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputConvertionType.milliseconds && (ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.date || ga.property?.options?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.InputOptionType.datetime)) { + result.value = new Date(value).getTime(); + } + return result; + } + static ctorParameters = () => []; +}; +HtmlInputComponent = HtmlInputComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'html-input', + template: _html_input_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlInputComponent); + +class HtmlInputElement { + source; + constructor(input) { + this.source = input; + } + getValue() { + return this.source.value; + } +} + +/***/ }), + +/***/ 99389: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-input/input-property/input-property.component.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ InputPropertyComponent: () => (/* binding */ InputPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _input_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./input-property.component.html?ngResource */ 39706); +/* harmony import */ var _input_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./input-property.component.scss?ngResource */ 92474); +/* harmony import */ var _input_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_input_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _gauge_property_flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gauge-property/flex-event/flex-event.component */ 70987); +/* harmony import */ var _gauge_property_flex_action_flex_action_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gauge-property/flex-action/flex-action.component */ 68009); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _html_input_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../html-input.component */ 64428); +/* harmony import */ var _gauge_property_flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../gauge-property/flex-input/flex-input.component */ 50665); +/* harmony import */ var _gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../gauge-property/permission-dialog/permission-dialog.component */ 87570); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../_services/settings.service */ 22044); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let InputPropertyComponent = class InputPropertyComponent { + dialog; + dialogRef; + settingsService; + projectService; + cdr; + data; + flexHead; + flexEvent; + flexAction; + slideView = true; + slideActionView = true; + withBitmask = false; + property; + dialogType = _html_input_component__WEBPACK_IMPORTED_MODULE_6__.HtmlInputComponent.getDialogType(); + eventsSupported; + actionsSupported; + withProperty = _gauge_property_flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_7__.PropertyType.input; + views; + scripts; + inputOptionType = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputOptionType; + inputTimeFormatType = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputTimeFormatType; + inputConvertionType = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputConvertionType; + inputActionEscType = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputActionEscType; + constructor(dialog, dialogRef, settingsService, projectService, cdr, data) { + this.dialog = dialog; + this.dialogRef = dialogRef; + this.settingsService = settingsService; + this.projectService = projectService; + this.cdr = cdr; + this.data = data; + this.eventsSupported = this.data.withEvents; + this.actionsSupported = this.data.withActions; + this.property = JSON.parse(JSON.stringify(this.data.settings.property)); + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_5__.GaugeProperty(); + } + this.property.options = this.property.options || { + updated: false, + numeric: false + }; + this.property.options.type = this.property.options.type ? this.property.options.type : this.property.options.numeric ? this.inputOptionType.number : this.inputOptionType.text; + if (!this.property.options.actionOnEsc && this.property.options.updatedEsc) { + // compatibility 1.2.1 + this.property.options.actionOnEsc = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputActionEscType.update; + } else if (this.property.options.actionOnEsc) { + this.property.options.updatedEsc = null; + } + this.property.options.maxlength = this.property.options?.maxlength ?? null, this.property.options.readonly = !!this.property.options?.readonly; + this.views = this.projectService.getHmi()?.views ?? []; + this.scripts = this.projectService.getScripts(); + } + ngAfterViewInit() { + if (this.data.withBitmask) { + this.withBitmask = this.data.withBitmask; + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.settings.property = this.property; + if (this.flexEvent) { + this.data.settings.property.events = this.flexEvent.getEvents(); + } + if (this.flexAction) { + this.data.settings.property.actions = this.flexAction.getActions(); + } + if (this.property.readonly) { + this.property.readonly = true; + } else { + delete this.property.readonly; + } + } + onAddEvent() { + this.flexEvent.onAddEvent(); + } + onAddAction() { + this.flexAction.onAddAction(); + } + onRangeViewToggle() { + this.flexHead.onRangeViewToggle(this.slideView); + } + onActionRangeViewToggle() { + this.flexAction.onRangeViewToggle(this.slideActionView); + } + setVariable(event) { + this.property.variableId = event.variableId; + this.property.variableValue = event.variableValue; + this.property.bitmask = event.bitmask; + } + isTextToShow() { + return this.data.languageTextEnabled; + } + onEditPermission() { + let dialogRef = this.dialog.open(_gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_8__.PermissionDialogComponent, { + position: { + top: '60px' + }, + data: { + permission: this.property.permission, + permissionRoles: this.property.permissionRoles + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.property.permission = result.permission; + this.property.permissionRoles = result.permissionRoles; + } + this.cdr.detectChanges(); + }); + } + onTypeChange(select) { + if (!this.property.options.timeformat && (select.value === _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputOptionType.time || select.value === _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputOptionType.datetime)) { + this.property.options.timeformat = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputTimeFormatType.normal; + } + if (!this.property.options.convertion && (select.value === _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputOptionType.time || select.value === _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputOptionType.date || select.value === _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputOptionType.datetime)) { + this.property.options.convertion = _models_hmi__WEBPACK_IMPORTED_MODULE_5__.InputConvertionType.milliseconds; + } + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + havePermission() { + if (this.isRolePermission()) { + return this.property.permissionRoles?.show?.length || this.property.permissionRoles?.enabled?.length; + } else { + return this.property.permission; + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialogRef + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_9__.SettingsService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_10__.ProjectService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ChangeDetectorRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + flexHead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: ['flexhead', { + static: false + }] + }], + flexEvent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: ['flexevent', { + static: false + }] + }], + flexAction: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: ['flexaction', { + static: false + }] + }] + }; +}; +InputPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-input-property', + template: _input_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_input_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialogRef, _services_settings_service__WEBPACK_IMPORTED_MODULE_9__.SettingsService, _services_project_service__WEBPACK_IMPORTED_MODULE_10__.ProjectService, _angular_core__WEBPACK_IMPORTED_MODULE_12__.ChangeDetectorRef, Object])], InputPropertyComponent); + + +/***/ }), + +/***/ 98782: +/*!****************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/html-scheduler.component.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlSchedulerComponent: () => (/* binding */ HtmlSchedulerComponent) +/* harmony export */ }); +/* harmony import */ var _html_scheduler_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-scheduler.component.html?ngResource */ 60097); +/* harmony import */ var _html_scheduler_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-scheduler.component.css?ngResource */ 73529); +/* harmony import */ var _html_scheduler_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_scheduler_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gauges_controls_html_scheduler_scheduler_scheduler_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../gauges/controls/html-scheduler/scheduler/scheduler.component */ 36827); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlSchedulerComponent_1; + + + + + + + +let HtmlSchedulerComponent = HtmlSchedulerComponent_1 = class HtmlSchedulerComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-own_ctrl-scheduler'; + static LabelTag = 'HtmlScheduler'; + static prefixD = 'D-OXC_'; + constructor() { + super(); + } + static getSignals(pro) { + // Forward to the actual scheduler component's getSignals method + return _gauges_controls_html_scheduler_scheduler_scheduler_component__WEBPACK_IMPORTED_MODULE_5__.SchedulerComponent.getSignals(pro); + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Scheduler; + } + static processValue(ga, svgele, sig, gaugeStatus, gauge) { + if (sig && gauge) {} + } + static initElement(gab, resolver, viewContainerRef, isview) { + let ele = document.getElementById(gab.id); + if (ele) { + ele?.setAttribute('data-name', gab.name); + // Set default fill color for the scheduler shape + const rect = ele.querySelector('rect'); + if (rect && !rect.hasAttribute('data-initialized')) { + if (!rect.getAttribute('fill') || rect.getAttribute('fill') === '#FFFFFF' || rect.getAttribute('fill') === 'rgb(255, 255, 255)') { + rect.setAttribute('fill', '#f9f9f9ff'); + } + rect.setAttribute('data-initialized', 'true'); + } + let htmlScheduler = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefixD); + if (htmlScheduler) { + const factory = resolver.resolveComponentFactory(_gauges_controls_html_scheduler_scheduler_scheduler_component__WEBPACK_IMPORTED_MODULE_5__.SchedulerComponent); + const componentRef = viewContainerRef.createComponent(factory); + if (!gab.property) { + gab.property = { + id: null, + devices: [], + colors: { + background: '#ffffff', + text: '#000000', + accent: '#2196f3', + border: '#cccccc' + } + }; + } + // Set default color scheme if not already set + if (!gab.property.accentColor) { + gab.property.accentColor = '#556e82'; // RGB(85,110,130) - Theme + } + + if (!gab.property.backgroundColor) { + gab.property.backgroundColor = '#f0f0f0'; // RGB(240,240,240) - Background + } + + if (!gab.property.borderColor) { + gab.property.borderColor = '#cccccc'; // RGB(204,204,204) - Border + } + + if (!gab.property.textColor) { + gab.property.textColor = '#505050'; // RGB(80,80,80) - Primary Text + } + + if (!gab.property.secondaryTextColor) { + gab.property.secondaryTextColor = '#ffffff'; // RGB(255,255,255) - Secondary Text + } + + htmlScheduler.innerHTML = ''; + componentRef.instance.isEditor = !isview; + componentRef.instance.property = gab.property; + componentRef.instance.id = gab.id; + componentRef.changeDetectorRef.detectChanges(); + htmlScheduler.appendChild(componentRef.location.nativeElement); + componentRef.instance['myComRef'] = componentRef; + componentRef.instance['name'] = gab.name; + return componentRef.instance; + } + } + return null; + } + static detectChange(gab, res, ref) { + return HtmlSchedulerComponent_1.initElement(gab, res, ref, false); + } + static ctorParameters = () => []; +}; +HtmlSchedulerComponent = HtmlSchedulerComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'html-scheduler', + template: _html_scheduler_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_scheduler_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlSchedulerComponent); + + +/***/ }), + +/***/ 9181: +/*!***************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler-confirm-dialog/scheduler-confirm-dialog.component.ts ***! + \***************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SchedulerConfirmDialogComponent: () => (/* binding */ SchedulerConfirmDialogComponent) +/* harmony export */ }); +/* harmony import */ var _scheduler_confirm_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scheduler-confirm-dialog.component.html?ngResource */ 90736); +/* harmony import */ var _scheduler_confirm_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scheduler-confirm-dialog.component.scss?ngResource */ 28524); +/* harmony import */ var _scheduler_confirm_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scheduler_confirm_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let SchedulerConfirmDialogComponent = class SchedulerConfirmDialogComponent { + data; + dialogRef; + constructor(data, dialogRef) { + this.data = data; + this.dialogRef = dialogRef; + } + onCancel() { + this.dialogRef.close(false); + } + onConfirm() { + this.dialogRef.close(true); + } + static ctorParameters = () => [{ + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef + }]; +}; +SchedulerConfirmDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-scheduler-confirm-dialog.component', + template: _scheduler_confirm_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewEncapsulation.None, + styles: [(_scheduler_confirm_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [Object, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef])], SchedulerConfirmDialogComponent); + + +/***/ }), + +/***/ 52832: +/*!***************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler-property/scheduler-property.component.ts ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SchedulerPropertyComponent: () => (/* binding */ SchedulerPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _scheduler_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scheduler-property.component.html?ngResource */ 97325); +/* harmony import */ var _scheduler_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scheduler-property.component.scss?ngResource */ 88154); +/* harmony import */ var _scheduler_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scheduler_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../gauge-property/permission-dialog/permission-dialog.component */ 87570); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let SchedulerPropertyComponent = class SchedulerPropertyComponent { + dialog; + projectService; + translateService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + set reload(b) { + this._reload(); + } + deviceList = []; + deviceActionsOn = []; + deviceActionsOff = []; + views = []; + scripts = []; + inputs = []; + actionType = _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeEventActionType; + actionTypeKeys = {}; + property; + constructor(dialog, projectService, translateService) { + this.dialog = dialog; + this.projectService = projectService; + this.translateService = translateService; + } + ngOnInit() { + this._reload(); + } + _reload() { + if (this.projectService) { + this.views = this.projectService.getViews(); + this.scripts = this.projectService.getScripts(); + } + const serverSideActions = { + onSetValue: this.actionType.onSetValue, + onToggleValue: this.actionType.onToggleValue, + onRunScript: this.actionType.onRunScript + }; + if (this.translateService) { + Object.keys(serverSideActions).forEach(key => { + this.translateService.get(serverSideActions[key]).subscribe(txt => { + this.actionTypeKeys[key] = txt; + }); + }); + } + if (!this.data.settings.name) { + this.data.settings.name = 'scheduler_1'; + } + this.property = this.data.settings.property || {}; + this.property.accentColor ??= '#556e82'; + this.property.backgroundColor ??= '#f0f0f0'; + this.property.textColor ??= '#505050'; + this.property.secondaryTextColor ??= '#ffffff'; + this.property.borderColor ??= '#cccccc'; + this.property.hoverColor ??= '#f5f5f5'; + this.property.timeFormat ??= '12hr'; + if (this.property.devices && Array.isArray(this.property.devices) && this.property.devices.length > 0) { + this.deviceList = [...this.property.devices]; + } else { + this.deviceList = [{ + variableId: '', + name: 'Device 1' + }]; + this.property.devices = [...this.deviceList]; + } + if (this.property.deviceActions && Array.isArray(this.property.deviceActions)) { + this.deviceActionsOn = this.property.deviceActions.filter(e => e.eventTrigger === 'on' || !e.eventTrigger); + this.deviceActionsOff = this.property.deviceActions.filter(e => e.eventTrigger === 'off'); + this.deviceActionsOn.forEach(e => { + e.eventTrigger = 'on'; + if (!e.actoptions) e.actoptions = { + variable: {}, + params: [] + }; + }); + this.deviceActionsOff.forEach(e => { + e.eventTrigger = 'off'; + if (!e.actoptions) e.actoptions = { + variable: {}, + params: [] + }; + }); + } else { + this.deviceActionsOn = []; + this.deviceActionsOff = []; + } + if (this.deviceActionsOn.length === 0) this.addActionOn(); + if (this.deviceActionsOff.length === 0) this.addActionOff(); + } + addDevice() { + this.deviceList.push({ + variableId: '', + name: `Device ${this.deviceList.length + 1}` + }); + this.data.settings.property.devices = [...this.deviceList]; + this.onPropChanged.emit(this.data.settings); + } + removeDevice(index) { + if (this.deviceList.length > 1) { + this.deviceList.splice(index, 1); + this.data.settings.property.devices = [...this.deviceList]; + this.onPropChanged.emit(this.data.settings); + } + } + onFlexAuthChanged(flexAuth) { + this.data.settings.name = flexAuth.name; + this.property.permission = flexAuth.permission; + this.property.permissionRoles = flexAuth.permissionRoles; + this.onPropertyChanged(); + } + onTagChanged(index, event) { + if (event && event.variableId) { + this.deviceList[index].variableId = event.variableId; + this.onPropChanged.emit(this.data.settings); + } + } + onEditDevicePermission(index) { + const device = this.deviceList[index]; + let dialog = this.dialog.open(_gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_2__.PermissionDialogComponent, { + position: { + top: '60px' + }, + data: { + permission: device.permission, + permissionRoles: device.permissionRoles + } + }); + dialog.afterClosed().subscribe(result => { + if (result) { + device.permission = result.permission; + device.permissionRoles = result.permissionRoles; + } + }); + } + haveDevicePermission(device) { + return !!(device.permission || device.permissionRoles?.show?.length || device.permissionRoles?.enabled?.length); + } + onEditMasterPermission() { + const property = this.data.settings.property; + let dialog = this.dialog.open(_gauge_property_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_2__.PermissionDialogComponent, { + position: { + top: '60px' + }, + data: { + permission: property.permission, + permissionRoles: property.permissionRoles + } + }); + dialog.afterClosed().subscribe(result => { + if (result) { + property.permission = result.permission; + property.permissionRoles = result.permissionRoles; + } + }); + } + haveMasterPermission() { + const property = this.data.settings.property; + return !!(property.permission || property.permissionRoles?.show?.length || property.permissionRoles?.enabled?.length); + } + onPropertyChanged() { + this.data.settings.property = this.property; + this.data.settings.property.devices = [...this.deviceList]; + const validActionsOn = this.deviceActionsOn.filter(e => e.deviceName && e.action); + const validActionsOff = this.deviceActionsOff.filter(e => e.deviceName && e.action); + this.data.settings.property.deviceActions = [...validActionsOn, ...validActionsOff]; + this.onPropChanged.emit(this.data.settings); + } + addActionOn() { + this.deviceActionsOn.push({ + deviceName: this.deviceList[0]?.name || '', + action: '', + actparam: '', + actoptions: { + variable: {}, + params: [] + }, + eventTrigger: 'on' + }); + } + addActionOff() { + this.deviceActionsOff.push({ + deviceName: this.deviceList[0]?.name || '', + action: '', + actparam: '', + actoptions: { + variable: {}, + params: [] + }, + eventTrigger: 'off' + }); + } + removeActionOn(index) { + if (index > -1 && index < this.deviceActionsOn.length) { + this.deviceActionsOn.splice(index, 1); + this.onPropChanged.emit(this.data.settings); + } + } + removeActionOff(index) { + if (index > -1 && index < this.deviceActionsOff.length) { + this.deviceActionsOff.splice(index, 1); + this.onPropChanged.emit(this.data.settings); + } + } + withSetValue(action) { + return action === this.actionType.onSetValue; + } + withToggleValue(action) { + return action === this.actionType.onToggleValue; + } + isRunScript(action) { + return action === this.actionType.onRunScript; + } + onScriptChanged(value, action) { + action.actparam = value; + this.onPropChanged.emit(this.data.settings); + } + setScriptParam(scriptParam, event) { + scriptParam.value = event; + this.onPropChanged.emit(this.data.settings); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input, + args: ['reload'] + }] + }; +}; +SchedulerPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-scheduler-property', + template: _scheduler_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_scheduler_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService])], SchedulerPropertyComponent); + + +/***/ }), + +/***/ 36827: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler/scheduler.component.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SchedulerComponent: () => (/* binding */ SchedulerComponent) +/* harmony export */ }); +/* harmony import */ var _scheduler_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scheduler.component.html?ngResource */ 70382); +/* harmony import */ var _scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scheduler.component.scss?ngResource */ 96986); +/* harmony import */ var _scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 59016); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 81527); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_services/hmi.service */ 69578); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_services/auth.service */ 48333); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let SchedulerComponent = class SchedulerComponent { + hmiService; + cdr; + dialog; + authService; + translateService; + ngZone; + schedulerContainer; + deviceScrollContainer; + overviewScrollContainer; + property; + isEditor = false; + id; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Subject(); + dayLabelsShort = []; + dayLabelsLong = []; + monthLabelsShort = []; + monthLabelsLong = []; + periods = ['am', 'pm']; + unnamedDevice = '-'; + static getSignals(pro) { + let res = []; + if (pro && pro.devices) { + pro.devices.forEach(device => { + if (device.variableId) { + res.push(device.variableId); + } + }); + } + return res; + } + schedules = {}; + selectedDevice = 'OVERVIEW'; + selectedDeviceIndex = -1; + deviceList = []; + hoveredDevice = null; + activeStates = new Map(); + // Get time format from property (12hr or 24hr) + get timeFormat() { + return this.property?.timeFormat || '12hr'; // Default to 12hr + } + // Filter properties + showFilterOptions = false; + filterOptions = { + showDisabled: true, + showActive: true + }; + // Scrolling detection + needsScrolling = false; + overviewNeedsScrolling = false; + // Settings properties + showSettingsOptions = false; + // Event mode tracking + hasEventModeSchedules = false; + eventStartTimes = new Map(); + remainingTimes = new Map(); + // Form properties + isEditMode = false; + showAddForm = false; + editingIndex = -1; + eventMode = false; + formTimer = { + startTime: '08:00', + endTime: '18:00', + event: true, + days: [false, true, true, true, true, true, false], + months: Array(12).fill(false), + daysOfMonth: Array(31).fill(false), + monthMode: false, + disabled: false, + deviceName: '', + recurring: true, + eventMode: false, + durationHours: 0, + durationMinutes: 1, + durationSeconds: 0 + }; + // Ensure all schedules have months/daysOfMonth arrays + ensureScheduleArrays(schedule) { + if (!schedule.months) schedule.months = Array(12).fill(false); + if (!schedule.daysOfMonth) schedule.daysOfMonth = Array(31).fill(false); + if (!schedule.days) schedule.days = Array(7).fill(false); + } + daysOfMonth = Array.from({ + length: 31 + }, (_, i) => i + 1); + toggleMonth(index) { + if (!this.formTimer.months) this.formTimer.months = Array(12).fill(false); + this.formTimer.months[index] = !this.formTimer.months[index]; + } + toggleDayOfMonth(index) { + if (!this.formTimer.daysOfMonth) this.formTimer.daysOfMonth = Array(31).fill(false); + this.formTimer.daysOfMonth[index] = !this.formTimer.daysOfMonth[index]; + } + showCalendarPopup(schedule) { + if (!schedule) return; + this.ensureScheduleArrays(schedule); + // Create calendar details message using same grid layout as form + let message = '
    '; + // Months section + message += ``; + message += '
    '; + for (let i = 0; i < this.monthLabelsShort.length; i++) { + const isActive = schedule.months && schedule.months[i]; + message += `
    `; + message += this.monthLabelsShort[i]; + message += '
    '; + } + message += '
    '; + // Days of month section + message += ``; + message += '
    '; + for (let i = 0; i < 31; i++) { + const isActive = schedule.daysOfMonth && schedule.daysOfMonth[i]; + message += `
    `; + message += i + 1; + message += '
    '; + } + message += '
    '; + message += '
    '; + // Show calendar dialog + this.confirmDialogData = { + title: this.translateService.instant('scheduler.monthly-schedule-details'), + message: message, + confirmText: this.translateService.instant('general.close'), + icon: 'calendar_month', + showCancel: false, + action: () => this.closeConfirmDialog() + }; + this.showConfirmDialog = true; + } + // UI properties + // Required for external interface + tagValues = {}; + // TrackBy functions for ngFor performance + trackByDeviceGroup(index, item) { + return item.deviceName; + } + trackBySchedule(index, item) { + return `${item.deviceName}-${item.startTime}-${index}`; + } + constructor(hmiService, cdr, dialog, authService, translateService, ngZone) { + this.hmiService = hmiService; + this.cdr = cdr; + this.dialog = dialog; + this.authService = authService; + this.translateService = translateService; + this.ngZone = ngZone; + } + ngOnInit() { + this.initializeDevices(); + this.applyCustomColors(); + this.loadSchedulesFromServer(); + this.initI18nLists(); + // Listen for scheduler updates from server + this.hmiService.onSchedulerUpdated.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(message => { + if (message.id === this.id) { + this.loadSchedulesFromServer(); + } + }); + // Listen for scheduler event active state changes + this.hmiService.onSchedulerEventActive.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(message => { + if (message.schedulerId === this.id) { + const eventId = message.eventData?.id; + if (!eventId) { + return; + } + const stateKey = `${message.deviceName}_${eventId}`; + this.activeStates.set(stateKey, message.active); + // For event mode: track start time and duration + if (message.active && message.eventData?.eventMode && message.eventData?.duration) { + this.eventStartTimes.set(stateKey, Date.now()); + const duration = message.remainingTime !== undefined ? message.remainingTime : message.eventData.duration; + this.remainingTimes.set(stateKey, duration); + } else if (!message.active) { + this.eventStartTimes.delete(stateKey); + this.remainingTimes.delete(stateKey); + } + // Use NgZone.run() to force Angular change detection and UI update + this.ngZone.run(() => { + // Force multiple change detection cycles to ensure animation updates + this.cdr.detectChanges(); + setTimeout(() => this.cdr.detectChanges(), 0); + setTimeout(() => this.cdr.detectChanges(), 100); + }); + } + }); + // Listen for remaining time updates from server + this.hmiService.onSchedulerRemainingTime.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(message => { + if (message.schedulerId === this.id) { + const eventId = message.eventId; + if (!eventId) { + return; + } + const stateKey = `${message.deviceName}_${eventId}`; + this.remainingTimes.set(stateKey, message.remaining); + this.cdr.detectChanges(); + } + }); + // MASTER CONTROL: Start immediately + if (!this.isEditor) { + // Start master control as soon as possible + setTimeout(() => { + this.loadDeviceStatesForDisplay(); + }, 100); + } + // Force initial change detection + setTimeout(() => { + this.cdr.detectChanges(); + }, 100); + // Initialize event-driven scheduler + if (!this.isEditor) { + this.initializeEventDrivenScheduler(); + } + (0,rxjs__WEBPACK_IMPORTED_MODULE_7__.fromEvent)(document, 'click').pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(this.onDocumentClick.bind(this)); + } + ngOnChanges(changes) { + if (changes.property) { + if (changes.property.previousValue && changes.property.currentValue) { + this.migrateSchedulesOnPropertyChange(changes.property.previousValue.devices || [], changes.property.currentValue.devices || []); + } + this.initializeDevices(); + this.applyCustomColors(); + // we need to save to server so the actions are persisted and executed server-side + if (!this.isEditor) { + this.saveSchedulesToServer(true); + } + } + } + ngAfterViewInit() { + setTimeout(() => this.checkScrollingState(), 0); + } + checkScrollingState() { + setTimeout(() => { + let changed = false; + // Check device scroll container + if (this.deviceScrollContainer && this.deviceScrollContainer.nativeElement) { + const element = this.deviceScrollContainer.nativeElement; + const wasScrolling = this.needsScrolling; + this.needsScrolling = element.scrollHeight > element.clientHeight; + if (wasScrolling !== this.needsScrolling) { + changed = true; + } + } + // Check overview scroll container + if (this.overviewScrollContainer && this.overviewScrollContainer.nativeElement) { + const element = this.overviewScrollContainer.nativeElement; + const wasOverviewScrolling = this.overviewNeedsScrolling; + this.overviewNeedsScrolling = element.scrollHeight > element.clientHeight; + if (wasOverviewScrolling !== this.overviewNeedsScrolling) { + changed = true; + } + } + if (changed) { + this.cdr.detectChanges(); + } + }, 100); + } + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); + if (this.transitionWatcher) { + cancelAnimationFrame(this.transitionWatcher); + } + Object.values(this.tagWriteTimeout).forEach(timeout => { + if (timeout) clearTimeout(timeout); + }); + this.tagWriteTimeout = {}; + this.recentTagWrites.clear(); + } + initializeDevices() { + if (this.property && this.property.devices && this.property.devices.length > 0) { + this.deviceList = this.property.devices.map(device => ({ + name: device.name || device.label || this.unnamedDevice, + label: device.label || device.name || this.unnamedDevice, + variableId: device.variableId || '', + permission: device.permission, + permissionRoles: device.permissionRoles + })); + } else { + this.deviceList = []; + } + // Set initial view + if (this.deviceList.length > 1) { + this.selectedDevice = 'OVERVIEW'; + this.selectedDeviceIndex = -1; + } else if (this.deviceList.length === 1) { + this.selectedDevice = this.deviceList[0].name; + this.selectedDeviceIndex = 0; + } else { + this.selectedDevice = 'OVERVIEW'; + this.selectedDeviceIndex = -1; + } + } + // ==================== PERMISSION CHECKING METHODS ==================== + /** + * Check if user has master scheduler permission + * @returns { show: boolean, enabled: boolean } + */ + checkMasterPermission() { + if (this.isEditor) { + // In editor mode, always allow full access + return { + show: true, + enabled: true + }; + } + const permission = this.authService.checkPermission(this.property); + return permission || { + show: true, + enabled: true + }; + } + /** + * Check if user has permission for a specific device + * @param deviceName - The name of the device to check + * @returns { show: boolean, enabled: boolean } + */ + checkDevicePermission(deviceName) { + if (this.isEditor) { + return { + show: true, + enabled: true + }; + } + const device = this.deviceList.find(d => d.name === deviceName); + if (!device) { + return { + show: false, + enabled: false + }; + } + if (!device.permission && !device.permissionRoles) { + return this.checkMasterPermission(); + } + const permission = this.authService.checkPermission(device); + return permission || { + show: true, + enabled: true + }; + } + /** + * Check if user can modify the scheduler (add/remove devices, change settings) + * @returns boolean + */ + canModifyScheduler() { + const permission = this.checkMasterPermission(); + return permission.enabled; + } + /** + * Check if user can see a specific device + * @param deviceName - The name of the device + * @returns boolean + */ + canSeeDevice(deviceName) { + const permission = this.checkDevicePermission(deviceName); + return permission.show; + } + /** + * Check if user can modify a specific device's events + * @param deviceName - The name of the device + * @returns boolean + */ + canModifyDevice(deviceName) { + const device = this.deviceList.find(d => d.name === deviceName); + if (!device) { + return false; + } + const masterPermission = this.checkMasterPermission(); + // If device has no explicit permission set, inherit master permission + if (!device.permission && !device.permissionRoles) { + return masterPermission.enabled; + } + // If device has explicit permission, require BOTH master AND device enabled + const devicePermission = this.checkDevicePermission(deviceName); + return masterPermission.enabled && devicePermission.enabled; + } + /** + * Get list of devices that user has permission to modify (for form dropdown) + * @returns Array of devices user can modify + */ + getModifiableDevices() { + return this.deviceList.filter(device => this.canModifyDevice(device.name)); + } + /** + * CRITICAL: Migrate schedules when device names or variableIds change in properties + * This ensures data consistency when users update device configurations + */ + migrateSchedulesOnPropertyChange(oldDevices, newDevices) { + if (!oldDevices || !newDevices || oldDevices.length === 0) { + return; + } + let changesMade = false; + const newSchedules = {}; + // Create a map of old device data by index for comparison + const oldDeviceMap = new Map(); + oldDevices.forEach((device, index) => { + oldDeviceMap.set(index, { + name: device.name || device.label || this.unnamedDevice, + variableId: device.variableId || '' + }); + }); + // Process each new device and migrate/update schedules + newDevices.forEach((newDevice, index) => { + const newDeviceName = newDevice.name || newDevice.label || this.unnamedDevice; + const newVariableId = newDevice.variableId || ''; + // Get corresponding old device by index (same position in list) + const oldDevice = oldDeviceMap.get(index); + if (oldDevice) { + const oldDeviceName = oldDevice.name; + const oldVariableId = oldDevice.variableId; + // Check if device name changed + const nameChanged = oldDeviceName !== newDeviceName; + const tagChanged = oldVariableId !== newVariableId; + if (nameChanged || tagChanged) { + changesMade = true; + } + // Get schedules from old device name + const deviceSchedules = this.schedules[oldDeviceName] || []; + if (deviceSchedules.length > 0) { + // Update all schedules for this device + const updatedSchedules = deviceSchedules.map(schedule => ({ + ...schedule, + deviceName: newDeviceName, + variableId: newVariableId + })); + // Store under new device name + newSchedules[newDeviceName] = updatedSchedules; + if (nameChanged) {} + if (tagChanged) {} + } else { + // No schedules for this device, but preserve empty array if it exists + if (this.schedules[oldDeviceName] !== undefined) { + newSchedules[newDeviceName] = []; + } + } + } else { + // New device added (no corresponding old device) + // Check if schedules exist under the new name already + if (this.schedules[newDeviceName]) { + newSchedules[newDeviceName] = this.schedules[newDeviceName]; + } + } + }); + // Handle orphaned schedules (devices that were removed) + Object.keys(this.schedules).forEach(oldDeviceName => { + // Check if this device name still exists in new devices + const stillExists = newDevices.some(device => (device.name || device.label || this.unnamedDevice) === oldDeviceName); + if (!stillExists && !newSchedules[oldDeviceName]) { + changesMade = true; + // Don't copy to newSchedules - effectively deletes them + } + }); + // Apply migrated schedules + if (changesMade) { + this.schedules = newSchedules; + // Save to server to persist changes in database - force update to ensure changes are saved + this.saveSchedulesToServer(true); + } + } + /** + * Sync loaded schedules with current device list to ensure variableIds are current + * This handles cases where properties were changed but schedules weren't migrated + */ + syncSchedulesWithDeviceList() { + if (!this.deviceList || this.deviceList.length === 0) { + return; + } + let changesMade = false; + // Create a map of device name -> current variableId + const deviceMap = new Map(); + this.deviceList.forEach(device => { + deviceMap.set(device.name, device.variableId); + }); + // Update variableIds in all schedules to match current device configuration + Object.keys(this.schedules).forEach(deviceName => { + const currentVariableId = deviceMap.get(deviceName); + if (currentVariableId) { + // Device exists in current configuration + this.schedules[deviceName].forEach(schedule => { + if (schedule.variableId !== currentVariableId) { + schedule.variableId = currentVariableId; + changesMade = true; + } + }); + } else { + // Device no longer exists in configuration - orphaned schedules + } + }); + // Save if any changes were made + if (changesMade) { + this.saveSchedulesToServer(true); + } + } + loadSchedulesFromServer() { + if (!this.id) return; + this.hmiService.askSchedulerData(this.id).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.take)(1)).subscribe({ + next: data => { + if (data && data.schedules) { + // Convert old format to device name-based format if needed + if (Array.isArray(data.schedules)) { + this.convertToDeviceNameFormat(data.schedules); + } else { + // Already in device name format + this.schedules = data.schedules ? { + ...data.schedules + } : {}; + } + } else { + this.schedules = {}; + } + // Ensure all events have unique IDs for proper tracking + for (const deviceName in this.schedules) { + if (this.schedules[deviceName]) { + this.schedules[deviceName].forEach(event => { + if (!event.id) { + event.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getShortGUID('s_'); + } + // Ensure schedule has proper arrays for month/day support + this.ensureScheduleArrays(event); + }); + } + } + this.syncSchedulesWithDeviceList(); + this.initializeActiveStates(); + this.cdr.detectChanges(); + // This ensures server has deviceActions even without client intervention + if (this.property?.deviceActions && !data?.settings?.deviceActions) { + this.saveSchedulesToServer(true); + } else if (!this.property?.deviceActions && data?.settings?.deviceActions) {} + if (!this.isEditor) { + this.loadDeviceStatesForDisplay(); + } + }, + error: error => { + if (error.status === 404) {} else { + console.error('Error loading scheduler data:', error); + } + this.schedules = {}; + this.cdr.detectChanges(); + if (!this.isEditor) { + this.loadDeviceStatesForDisplay(); + } + } + }); + } + convertToDeviceNameFormat(oldSchedules) { + this.schedules = {}; + oldSchedules.forEach(deviceSchedule => { + if (deviceSchedule.schedules) { + deviceSchedule.schedules.forEach(schedule => { + const deviceOutput = schedule.output !== undefined ? schedule.output : deviceSchedule.deviceIndex; + const deviceName = this.getDeviceNameByIndex(deviceOutput); + if (deviceName) { + if (!this.schedules[deviceName]) { + this.schedules[deviceName] = []; + } + this.schedules[deviceName].push({ + ...schedule, + deviceName: deviceName + }); + } + }); + } + }); + this.saveSchedulesToServer(true); + } + getDeviceNameByIndex(index) { + if (this.deviceList && this.deviceList[index]) { + return this.deviceList[index].name; + } + return ''; + } + selectDevice(deviceIndexOrName) { + if (typeof deviceIndexOrName === 'string') { + // Handle string selection from custom dropdown + this.selectedDevice = deviceIndexOrName; + this.isDropdownOpen = false; + this.hoveredDevice = null; + this.onDeviceSelectionChange(deviceIndexOrName); + return; + } + // Handle number selection (existing logic) + const deviceIndex = deviceIndexOrName; + if (deviceIndex === -1) { + this.selectedDevice = 'OVERVIEW'; + this.selectedDeviceIndex = -1; + } else if (this.deviceList[deviceIndex]) { + this.selectedDevice = this.deviceList[deviceIndex].name; + this.selectedDeviceIndex = deviceIndex; + } else { + this.selectedDevice = 'OVERVIEW'; + this.selectedDeviceIndex = -1; + } + this.cdr.detectChanges(); + this.checkScrollingState(); + } + onDeviceSelectionChange(selectedValue) { + if (selectedValue === 'OVERVIEW') { + this.selectedDevice = 'OVERVIEW'; + this.selectedDeviceIndex = -1; + } else { + // Find the device index by name + const deviceIndex = this.deviceList.findIndex(device => device.name === selectedValue); + if (deviceIndex !== -1) { + this.selectedDevice = selectedValue; + this.selectedDeviceIndex = deviceIndex; + } else { + this.selectedDevice = 'OVERVIEW'; + this.selectedDeviceIndex = -1; + } + } + this.cdr.detectChanges(); + this.checkScrollingState(); + } + getFilteredOverviewSchedules() { + const deviceGroups = []; + Object.keys(this.schedules).forEach(deviceName => { + const schedules = this.schedules[deviceName] || []; + if (schedules.length === 0) return; + // Filter schedules based on filter options + const filteredSchedules = schedules.filter(schedule => { + const isCurrentlyActive = this.isScheduleActive(schedule); + // If schedule is currently running, only show it if showActive is true + if (isCurrentlyActive) { + return this.filterOptions.showActive; + } + // If schedule is currently off, only show it if showDisabled is true + else { + return this.filterOptions.showDisabled; + } + }); + // Separate Timer Mode and Event Mode schedules + const timerModeSchedules = filteredSchedules.filter(s => !s.eventMode); + const eventModeSchedules = filteredSchedules.filter(s => s.eventMode === true); + // Only include device group if it has schedules after filtering + if (filteredSchedules.length > 0) { + deviceGroups.push({ + deviceName: deviceName, + timerModeSchedules: timerModeSchedules, + eventModeSchedules: eventModeSchedules, + allSchedules: filteredSchedules + }); + } + }); + return deviceGroups.sort((a, b) => a.deviceName.localeCompare(b.deviceName)); + } + toggleFilter() { + this.showFilterOptions = !this.showFilterOptions; + this.cdr.detectChanges(); + } + toggleSettings() { + this.showSettingsOptions = !this.showSettingsOptions; + this.cdr.detectChanges(); + } + getSelectStyles() { + return { + backgroundColor: 'rgba(255, 255, 255, 0.2)', + border: '1px solid rgba(255, 255, 255, 0.5)', + color: this.property?.secondaryTextColor || '#ffffff', + borderRadius: '3px', + padding: '4px 8px', + height: '20px', + display: 'flex', + alignItems: 'center' + }; + } + getOptionStyle(isSelected) { + if (isSelected) { + return { + color: this.property?.secondaryTextColor || '#ffffff', + backgroundColor: this.property?.accentColor || '#2196f3' + }; + } else { + return { + color: this.property?.textColor || '#333333', + backgroundColor: this.property?.backgroundColor || '#ffffff' + }; + } + } + getDeviceSchedules() { + if (this.selectedDevice === 'OVERVIEW') { + // Return all schedules for overview + const allSchedules = []; + Object.keys(this.schedules).forEach(deviceName => { + const deviceSchedules = this.schedules[deviceName] || []; + allSchedules.push(...deviceSchedules); + }); + return [...allSchedules]; + } + // Get schedules for specific device + const deviceSchedules = this.schedules[this.selectedDevice] || []; + return [...deviceSchedules]; + } + getDeviceTimerModeSchedules() { + return this.getDeviceSchedules().filter(s => !s.eventMode); + } + getDeviceEventModeSchedules() { + return this.getDeviceSchedules().filter(s => s.eventMode === true); + } + hasDeviceTimerModeSchedules() { + return this.getDeviceTimerModeSchedules().length > 0; + } + hasDeviceEventModeSchedules() { + return this.getDeviceEventModeSchedules().length > 0; + } + saveSchedulesToServer(forceUpdate = false) { + if (!this.id) return; + if (this.isEditor && !forceUpdate) { + return; + } + const dataToSave = { + schedules: this.schedules, + settings: { + eventMode: this.eventMode, + devices: this.deviceList, + deviceActions: this.property?.deviceActions || [] + } + }; + this.hmiService.setSchedulerData(this.id, dataToSave).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.take)(1)).subscribe({ + next: response => { + // Server will handle device control + this.refreshTagSubscriptions(); + }, + error: error => { + console.error('Error saving schedules:', error); + } + }); + } + toggleAddView() { + // Check permission before allowing add + const deviceName = this.selectedDevice === 'OVERVIEW' ? this.deviceList[0]?.name || '' : this.selectedDevice; + if (!this.canModifyDevice(deviceName)) { + return; + } + this.isEditMode = !this.isEditMode; + this.showAddForm = this.isEditMode; + if (this.isEditMode) { + this.resetForm(); + this.editingIndex = -1; + } + this.cdr.detectChanges(); + } + resetForm() { + this.formTimer = { + startTime: '08:00', + endTime: '18:00', + event: true, + days: [false, true, true, true, true, true, false], + months: Array(12).fill(false), + daysOfMonth: Array(31).fill(false), + monthMode: false, + disabled: false, + deviceName: this.selectedDevice === 'OVERVIEW' ? this.deviceList[0]?.name || '' : this.selectedDevice, + recurring: true, + eventMode: false, + durationHours: 0, + durationMinutes: 1, + durationSeconds: 0 + }; + this.cdr.detectChanges(); + } + addOrUpdateSchedule() { + if (!this.formTimer.startTime || !this.formTimer.deviceName) return; + const deviceName = this.formTimer.deviceName; + const device = this.deviceList.find(d => d.name === deviceName); + if (!device) return; + // Check permission before allowing save + if (!this.canModifyDevice(deviceName)) { + return; + } + const newSchedule = { + startTime: this.formTimer.startTime, + days: this.formTimer.days, + months: this.formTimer.months, + daysOfMonth: this.formTimer.daysOfMonth, + monthMode: this.formTimer.monthMode, + disabled: this.formTimer.disabled, + deviceName: deviceName, + variableId: device.variableId, + recurring: this.formTimer.recurring !== undefined ? this.formTimer.recurring : true, + eventMode: this.formTimer.eventMode || false + }; + // Add mode-specific fields + if (this.formTimer.eventMode) { + // Event Mode: duration in seconds + newSchedule.duration = this.formTimer.durationHours * 3600 + this.formTimer.durationMinutes * 60 + this.formTimer.durationSeconds; + } else { + // Timer Mode: end time + newSchedule.endTime = this.formTimer.endTime; + } + // Show confirmation dialog with schedule details + const scheduleDetails = this.formatScheduleDetails(newSchedule); + this.confirmDialogData = { + title: this.editingIndex >= 0 ? this.translateService.instant('scheduler.update-schedule') : this.translateService.instant('scheduler.add-schedule'), + message: scheduleDetails, + confirmText: this.translateService.instant('general.confirm'), + icon: 'event', + action: () => this.executeSaveSchedule(newSchedule) + }; + this.showConfirmDialog = true; + } + executeSaveSchedule(newSchedule) { + const deviceName = newSchedule.deviceName; + if (!this.schedules[deviceName]) { + this.schedules[deviceName] = []; + } + if (this.editingIndex >= 0) { + const schedules = this.getDeviceSchedules(); + if (schedules[this.editingIndex]) { + const oldSchedule = schedules[this.editingIndex]; + const oldDeviceName = oldSchedule.deviceName; + // Preserve the ID from the old schedule + newSchedule.id = oldSchedule.id; + // Remove from old device if device changed + if (oldDeviceName && oldDeviceName !== deviceName) { + const oldIndex = this.schedules[oldDeviceName]?.findIndex(s => s === oldSchedule); + if (oldIndex >= 0) { + this.schedules[oldDeviceName].splice(oldIndex, 1); + } + } + // Add to new device + if (oldDeviceName === deviceName) { + const scheduleIndex = this.schedules[deviceName].findIndex(s => s === oldSchedule); + if (scheduleIndex >= 0) { + this.schedules[deviceName][scheduleIndex] = newSchedule; + } + } else { + this.schedules[deviceName].push(newSchedule); + } + } + } else { + // Add new schedule - generate ID + newSchedule.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getShortGUID('s_'); + this.schedules[deviceName].push(newSchedule); + } + this.saveSchedulesToServer(true); + this.showAddForm = false; + this.isEditMode = false; + this.editingIndex = -1; + // Return to OVERVIEW mode after save + this.selectedDevice = 'OVERVIEW'; + this.cdr.detectChanges(); + this.checkScheduleStates(); + } + editSchedule(index) { + const schedules = this.getDeviceSchedules(); + if (!schedules[index]) return; + const schedule = schedules[index]; + // Use schedule.deviceName if available (overview mode), otherwise use selectedDevice + const deviceName = schedule.deviceName || this.selectedDevice; + // Check permission before allowing edit + if (!this.canModifyDevice(deviceName)) { + return; + } + // Extract duration components from total seconds if in Event Mode + let durationHours = 0; + let durationMinutes = 1; + let durationSeconds = 0; + if (schedule.eventMode && schedule.duration !== undefined) { + const totalSeconds = schedule.duration; + durationHours = Math.floor(totalSeconds / 3600); + durationMinutes = Math.floor(totalSeconds % 3600 / 60); + durationSeconds = totalSeconds % 60; + } + this.formTimer = { + startTime: schedule.startTime, + endTime: schedule.endTime || '18:00', + event: schedule.event !== undefined ? schedule.event : true, + days: [...(schedule.days || [false, false, false, false, false, false, false])], + months: [...(schedule.months || new Array(12).fill(false))], + daysOfMonth: [...(schedule.daysOfMonth || new Array(31).fill(false))], + monthMode: schedule.monthMode || false, + disabled: schedule.disabled || false, + deviceName: deviceName, + recurring: schedule.recurring !== undefined ? schedule.recurring : true, + eventMode: schedule.eventMode || false, + durationHours: durationHours, + durationMinutes: durationMinutes, + durationSeconds: durationSeconds + }; + this.editingIndex = index; + this.showAddForm = true; + this.isEditMode = true; + } + editScheduleFromOverview(schedule, scheduleIndex) { + // Find the global index for this schedule + const allSchedules = this.getDeviceSchedules(); + const globalIndex = allSchedules.findIndex(s => s.deviceName === schedule.deviceName && s.startTime === schedule.startTime && s.endTime === schedule.endTime && JSON.stringify(s.days) === JSON.stringify(schedule.days)); + if (globalIndex >= 0) { + this.editSchedule(globalIndex); + } + } + confirmDeleteFromOverview(schedule, scheduleIndex) { + this.confirmDialogData = { + title: this.translateService.instant('scheduler.delete-schedule'), + message: this.translateService.instant('scheduler.to-remove', { + value: schedule.deviceName + }), + confirmText: this.translateService.instant('general.delete'), + icon: 'warning', + action: () => this.executeDeleteFromOverview(schedule, scheduleIndex) + }; + this.showConfirmDialog = true; + } + executeDeleteFromOverview(schedule, scheduleIndex) { + const deviceName = schedule.deviceName; + if (this.schedules[deviceName]) { + const scheduleIndex = this.schedules[deviceName].findIndex(s => s.startTime === schedule.startTime && s.endTime === schedule.endTime && JSON.stringify(s.days) === JSON.stringify(schedule.days)); + if (scheduleIndex >= 0) { + this.schedules[deviceName].splice(scheduleIndex, 1); + this.saveSchedulesToServer(true); + this.cdr.detectChanges(); + } + } + } + deleteSchedule(index) { + const schedules = this.getDeviceSchedules(); + const schedule = schedules[index]; + // Use schedule.deviceName if available (overview mode), otherwise use selectedDevice + const deviceName = schedule.deviceName || this.selectedDevice; + // Check permission before allowing delete + if (!this.canModifyDevice(deviceName)) { + return; + } + this.confirmDialogData = { + title: this.translateService.instant('scheduler.delete-schedule'), + message: this.translateService.instant('scheduler.to-remove', { + value: schedule.deviceName + }), + confirmText: this.translateService.instant('general.delete'), + icon: 'warning', + action: () => this.executeDeleteSchedule(index) + }; + this.showConfirmDialog = true; + } + executeDeleteSchedule(index) { + const schedules = this.getDeviceSchedules(); + if (schedules[index]) { + const scheduleToDelete = schedules[index]; + const deviceName = scheduleToDelete.deviceName || this.selectedDevice; + if (this.schedules[deviceName]) { + const scheduleIndex = this.schedules[deviceName].findIndex(s => s === scheduleToDelete); + if (scheduleIndex >= 0) { + this.schedules[deviceName].splice(scheduleIndex, 1); + this.saveSchedulesToServer(true); + this.cdr.detectChanges(); + this.checkScrollingState(); + } + } + } + } + toggleSchedule(index) { + const schedules = this.getDeviceSchedules(); + if (schedules[index]) { + const scheduleToToggle = schedules[index]; + // Use schedule.deviceName if available, otherwise use selectedDevice + const deviceName = scheduleToToggle.deviceName || this.selectedDevice; + // Check permission before allowing toggle + if (!this.canModifyDevice(deviceName)) { + return; + } + if (this.schedules[deviceName]) { + const scheduleIndex = this.schedules[deviceName].findIndex(s => s === scheduleToToggle); + if (scheduleIndex >= 0) { + this.schedules[deviceName][scheduleIndex].disabled = !this.schedules[deviceName][scheduleIndex].disabled; + // Re-evaluate device state after enabling/disabling schedule + const hasActiveSchedules = this.schedules[deviceName].some(s => !s.disabled); + if (!hasActiveSchedules) { + // No active schedules left, reset device to OFF + this.resetDeviceTag(deviceName); + } else { + // Has active schedules, re-evaluate current state + this.checkScheduleStates(); + } + this.saveSchedulesToServer(true); + this.cdr.detectChanges(); + this.checkScheduleStates(); + } + } + } + } + // Track previous states + deviceStates = {}; + signalSubscription = null; + scheduledTags = new Set(); + lastScheduleCheck = 0; + transitionWatcher = 0; + recentTagWrites = new Set(); + tagWriteTimeout = {}; + initializeEventDrivenScheduler() { + this.loadDeviceStatesForDisplay(); + this.subscribeToScheduledTags(); + this.startTransitionWatcher(); + } + subscribeToScheduledTags() { + this.scheduledTags.clear(); + this.deviceList.forEach(device => { + if (device.variableId && this.schedules[device.name]?.length > 0) { + this.scheduledTags.add(device.variableId); + } + }); + if (this.scheduledTags.size > 0) { + const tagIds = Array.from(this.scheduledTags); + this.hmiService.viewsTagsSubscribe(tagIds, true); + this.signalSubscription = this.hmiService.onVariableChanged.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(signal => this.handleSignalChange(signal)); + } + } + handleSignalChange(signal) { + if (!this.scheduledTags.has(signal.id)) { + return; + } + this.tagValues[signal.id] = signal.value; + const now = Date.now(); + if (now - this.lastScheduleCheck < 500) { + this.cdr.detectChanges(); + return; + } + this.lastScheduleCheck = now; + const tagWriteKey = `write_${signal.id}`; + if (this.recentTagWrites && this.recentTagWrites.has(tagWriteKey)) { + this.cdr.detectChanges(); + return; + } + this.enforceSchedulerControl(); + this.cdr.detectChanges(); + } + startTransitionWatcher() { + let lastCheck = 0; + const CHECK_INTERVAL = 2000; + const checkTransitions = timestamp => { + if (timestamp - lastCheck >= CHECK_INTERVAL) { + this.checkEventTransitions(); + this.checkScheduleStates(); + this.enforceSchedulerControl(); + lastCheck = timestamp; + } + this.transitionWatcher = requestAnimationFrame(checkTransitions); + }; + this.transitionWatcher = requestAnimationFrame(checkTransitions); + } + refreshTagSubscriptions() { + if (this.signalSubscription) { + this.signalSubscription.unsubscribe(); + } + this.subscribeToScheduledTags(); + } + loadDeviceStatesForDisplay() { + this.deviceList.forEach(device => { + const deviceName = device.name; + this.deviceStates[deviceName] = false; + }); + this.cdr.detectChanges(); + } + checkEventTransitions() { + if (this.isEditor) return; + } + checkScheduleStates() { + if (this.isEditor) return; + } + writeDeviceTag(deviceName, value) {} + enforceSchedulerControl() { + if (this.isEditor) return; + } + isValueTrue(value) { + // Helper method to check if a value represents "true" in various formats + if (typeof value === 'boolean') { + return value; + } + if (typeof value === 'number') { + return value !== 0; + } + if (typeof value === 'string') { + const strValue = value.toLowerCase(); + return strValue === 'true' || strValue === '1'; + } + return Boolean(value); + } + resetDeviceTag(deviceName) {} + deleteSchedulerData() { + // Delete this scheduler's data from database completely + // WARNING: This permanently deletes all schedule data for this scheduler! + if (this.id) { + this.hmiService.deleteSchedulerData(this.id).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.take)(1)).subscribe({ + next: result => {}, + error: error => { + console.error('Error deleting scheduler data:', error); + } + }); + } + } + // Method called when scheduler component is actually deleted from editor canvas + onCanvasDelete() { + if (this.isEditor) { + this.deleteSchedulerData(); + } + } + destroy() { + try { + this.ngOnDestroy(); + } catch (e) { + console.error('Error during scheduler destroy:', e); + } + } + startAddFromOverview() { + // Start adding a schedule from overview - select first device by default + if (this.deviceList.length > 0) { + this.selectedDevice = this.deviceList[0].name; + this.selectedDeviceIndex = 0; + this.toggleAddView(); + } + } + isTimeInRange(currentTime, startTime, endTime) { + const current = this.timeToMinutes(currentTime); + const start = this.timeToMinutes(startTime); + const end = this.timeToMinutes(endTime); + if (start <= end) { + return current >= start && current <= end; + } else { + // Overnight range + return current >= start || current <= end; + } + } + timeToMinutes(time) { + const [hours, minutes] = time.split(':').map(Number); + return hours * 60 + minutes; + } + getScheduleIndex(schedule) { + if (!schedule.deviceName || !this.schedules[schedule.deviceName]) { + return -1; + } + return this.schedules[schedule.deviceName].findIndex(s => s === schedule); + } + initializeActiveStates() { + Object.keys(this.schedules).forEach(deviceName => { + const deviceSchedules = this.schedules[deviceName] || []; + deviceSchedules.forEach((schedule, index) => { + // CRITICAL: Use event.id for stateKey (stable), NOT index + const eventId = schedule.id; + if (!eventId) { + return; + } + const stateKey = `${deviceName}_${eventId}`; + // Event Mode events are ONLY controlled by server emits (START/END callbacks) + if (schedule.eventMode === true) { + return; + } + // Use time-based calculation for Timer Mode events only + const now = new Date(); + const currentTime = now.getHours().toString().padStart(2, '0') + ':' + now.getMinutes().toString().padStart(2, '0'); + const currentDay = now.getDay(); + if (!schedule.disabled && schedule.days[currentDay]) { + const isActive = this.isTimeInRange(currentTime, schedule.startTime, schedule.endTime || '23:59'); + this.activeStates.set(stateKey, isActive); + } else { + this.activeStates.set(stateKey, false); + } + }); + }); + } + isScheduleActive(schedule) { + if (schedule.disabled) return false; + // ALWAYS use server-provided active state for both Timer Mode and Event Mode + const eventId = schedule.id; + if (!eventId) { + return false; + } + const stateKey = `${schedule.deviceName}_${eventId}`; + if (this.activeStates.has(stateKey)) { + const serverState = this.activeStates.get(stateKey); + return serverState; + } + return false; + } + formatTime(time) { + if (!time) return ''; + if (this.timeFormat === '12hr') { + const [hourStr, minute] = time.split(':'); + let hour = parseInt(hourStr); + const period = hour >= 12 ? 'pm' : 'am'; + // Convert to 12-hour format + if (hour === 0) hour = 12;else if (hour > 12) hour -= 12; + return `${hour}:${minute}${period}`; + } + return time; // 24hr format + } + + calculateDuration(schedule) { + if (schedule.event || !schedule.endTime) { + return 'Event'; + } + const start = this.timeToMinutes(schedule.startTime); + let end = this.timeToMinutes(schedule.endTime); + if (end < start) { + end += 24 * 60; // Next day + } + + const durationMinutes = end - start; + const hours = Math.floor(durationMinutes / 60); + const minutes = durationMinutes % 60; + return `${hours}h ${minutes}m`; + } + getDeviceName(deviceName) { + return deviceName; + } + isDeviceActive(deviceName) { + // Find the device's tag ID + const device = this.deviceList.find(d => d.name === deviceName); + if (!device || !device.variableId) { + // Fallback to schedule-based check if tag not found + const deviceSchedules = this.schedules[deviceName] || []; + return deviceSchedules.some(s => !s.disabled); + } + // Return actual tag value if available, otherwise fallback to schedule check + if (device.variableId in this.tagValues) { + return !!this.tagValues[device.variableId]; + } + // Fallback: check if any schedule exists and is not disabled + const deviceSchedules = this.schedules[deviceName] || []; + return deviceSchedules.some(s => !s.disabled); + } + getActiveDays(days) { + const activeDays = []; + days.forEach((active, index) => { + if (active) { + activeDays.push(this.dayLabelsShort[index]); + } + }); + return activeDays.join(', '); + } + cancelForm() { + this.showAddForm = false; + this.isEditMode = false; + this.editingIndex = -1; + } + toggleDay(index) { + if (index >= 0 && index < this.formTimer.days.length) { + this.formTimer.days[index] = !this.formTimer.days[index]; + this.cdr.detectChanges(); + } + } + getSelectAllText() { + const allSelected = Array.isArray(this.formTimer?.days) && this.formTimer.days.length && this.formTimer.days.every(Boolean); + return this.translateService.instant(allSelected ? 'scheduler.deselect-all' : 'scheduler.select-all'); + } + onSelectAllDays() { + const allSelected = this.formTimer.days.every(day => day); + this.formTimer.days = this.formTimer.days.map(() => !allSelected); + } + applyCustomColors() { + if (this.property && this.schedulerContainer) { + const element = this.schedulerContainer.nativeElement; + if (this.property.accentColor) { + element.style.setProperty('--scheduler-accent-color', this.property.accentColor); + // Create hover background as very light accent color + const hoverBg = this.hexToRgba(this.property.accentColor, 0.05); + element.style.setProperty('--scheduler-hover-bg', hoverBg); + // Also set hover-color for menu items (light version of accent) + const hoverColor = this.hexToRgba(this.property.accentColor, 0.20); // Increased opacity for better visibility + element.style.setProperty('--scheduler-hover-color', hoverColor); + } else { + // Set default hover background if no accent color + element.style.setProperty('--scheduler-hover-bg', 'rgba(33, 150, 243, 0.05)'); + element.style.setProperty('--scheduler-hover-color', 'rgba(33, 150, 243, 0.12)'); + } + if (this.property.backgroundColor) { + element.style.setProperty('--scheduler-bg-color', this.property.backgroundColor); + } + if (this.property.textColor) { + element.style.setProperty('--scheduler-text-color', this.property.textColor); + } + if (this.property.secondaryTextColor) { + element.style.setProperty('--scheduler-secondary-text-color', this.property.secondaryTextColor); + } + if (this.property.borderColor) { + element.style.setProperty('--scheduler-border-color', this.property.borderColor); + } + if (this.property.hoverColor) { + element.style.setProperty('--scheduler-hover-bg', this.property.hoverColor); + } + // Note: Don't override hover color here as it's already set above with the theme color + } + } + + hexToRgba(hex, alpha) { + try { + const originalHex = hex; + // Remove # if present + hex = hex.replace('#', ''); + // Handle 3-digit hex codes + if (hex.length === 3) { + hex = hex.split('').map(char => char + char).join(''); + } + // Ensure we have a 6-digit hex + if (hex.length !== 6) { + return `rgba(33, 150, 243, ${alpha})`; // Fallback to blue + } + // Parse hex values using substring instead of substr (deprecated) + const r = parseInt(hex.substring(0, 2), 16); + const g = parseInt(hex.substring(2, 4), 16); + const b = parseInt(hex.substring(4, 6), 16); + // Validate the parsed values + if (isNaN(r) || isNaN(g) || isNaN(b)) { + return `rgba(33, 150, 243, ${alpha})`; // Fallback to blue + } + + return `rgba(${r}, ${g}, ${b}, ${alpha})`; + } catch (error) { + console.error('Error converting hex to rgba:', error); + // Fallback to blue if anything goes wrong + return `rgba(33, 150, 243, ${alpha})`; + } + } + getOptionBackgroundColor(isSelected, isHovered) { + if (isSelected) { + return `${this.property?.accentColor || '#2196f3'} !important`; + } else if (isHovered) { + const accentColor = this.property?.accentColor || '#2196f3'; + return `${this.hexToRgba(accentColor, 0.4)} !important`; + } else { + return `${this.property?.backgroundColor || '#ffffff'} !important`; + } + } + getOptionTextColor(isSelected) { + return isSelected ? `${this.property?.secondaryTextColor || '#ffffff'} !important` : `${this.property?.textColor || '#333333'} !important`; + } + onOptionHover(deviceName, event) { + this.hoveredDevice = deviceName; + const element = event.target; + if (element && !element.classList.contains('mdc-list-item--selected')) { + const accentColor = this.property?.accentColor || '#2196f3'; + const hoverColor = this.hexToRgba(accentColor, 0.4); + element.style.setProperty('background-color', hoverColor, 'important'); + element.style.setProperty('color', this.property?.textColor || '#333333', 'important'); + } + } + onOptionLeave(event) { + this.hoveredDevice = null; + const element = event.target; + if (element && !element.classList.contains('mdc-list-item--selected')) { + element.style.setProperty('background-color', this.property?.backgroundColor || '#ffffff', 'important'); + element.style.setProperty('color', this.property?.textColor || '#333333', 'important'); + } + } + isDropdownOpen = false; + isFormDropdownOpen = false; + formHoveredDevice = null; + toggleDropdown() { + if (!this.isEditMode) { + this.isDropdownOpen = !this.isDropdownOpen; + } + } + toggleFormDropdown() { + this.isFormDropdownOpen = !this.isFormDropdownOpen; + } + selectFormDevice(deviceName) { + this.formTimer.deviceName = deviceName; + this.isFormDropdownOpen = false; + this.formHoveredDevice = null; + } + getFormSelectedDeviceLabel() { + if (!this.formTimer.deviceName) { + return this.translateService.instant('scheduler.device-selector-select-device'); + } + const device = this.deviceList.find(d => d.name === this.formTimer.deviceName); + return device?.label || device?.name || this.formTimer.deviceName; + } + getSelectedDeviceLabel() { + if (this.selectedDevice === 'OVERVIEW') { + return this.translateService.instant('scheduler.device-selector-overview'); + } + const device = this.deviceList.find(d => d.name === this.selectedDevice); + return device?.label || device?.name || this.translateService.instant('scheduler.device-selector-select-device'); + } + onDocumentClick(event) { + const target = event.target; + const headerDropdown = target.closest('.custom-select'); + const formDropdown = target.closest('.form-custom-select'); + const timePicker = target.closest('.custom-time-picker'); + const filterSection = target.closest('.filter-section'); + const settingsSection = target.closest('.settings-section'); + if (!headerDropdown && this.isDropdownOpen) { + this.isDropdownOpen = false; + this.hoveredDevice = null; + } + if (!formDropdown && this.isFormDropdownOpen) { + this.isFormDropdownOpen = false; + this.formHoveredDevice = null; + } + if (!timePicker && this.activeTimePicker) { + this.closeTimePicker(); + } + // Close filter dropdown when clicking outside + if (!filterSection && this.showFilterOptions) { + this.showFilterOptions = false; + this.cdr.detectChanges(); + } + // Close settings dropdown when clicking outside + if (!settingsSection && this.showSettingsOptions) { + this.showSettingsOptions = false; + this.cdr.detectChanges(); + } + } + // Custom time picker methods + activeTimePicker = null; + timeDropdowns = {}; + minuteInterval = 1; + // Confirmation dialog properties + showConfirmDialog = false; + confirmDialogData = null; + openTimePicker(type) { + this.activeTimePicker = type; + // Close other dropdowns + this.isDropdownOpen = false; + this.isFormDropdownOpen = false; + // Scroll to selected time after dropdown renders + setTimeout(() => { + this.scrollToSelectedTime(type); + }, 50); + } + closeTimePicker() { + this.activeTimePicker = null; + } + getHourOptions() { + const hours = []; + for (let i = 1; i <= 12; i++) { + hours.push(i.toString().padStart(2, '0')); + } + return hours; + } + getMinuteOptions() { + const minutes = []; + for (let i = 0; i < 60; i += this.minuteInterval) { + minutes.push(i.toString().padStart(2, '0')); + } + return minutes; + } + setMinuteInterval(interval) { + this.minuteInterval = interval; + // Don't close the picker, just update the options + this.cdr.detectChanges(); + } + scrollToSelectedTime(type) { + // Use setTimeout to ensure the DOM has updated + setTimeout(() => { + // Get the active time picker dropdown + const activePickerSelector = `[class*="activeTimePicker"][*ngIf="activeTimePicker === '${type}'"]`; + // Scroll hour into view within its container + const hourContainer = document.querySelector(`.time-picker-dropdown .time-part:nth-child(1) .time-options`); + const hourElement = document.querySelector(`.time-picker-dropdown .time-part:nth-child(1) .time-option.selected`); + if (hourElement && hourContainer) { + const containerRect = hourContainer.getBoundingClientRect(); + const elementRect = hourElement.getBoundingClientRect(); + const scrollOffset = elementRect.top - containerRect.top - containerRect.height / 2 + elementRect.height / 2; + hourContainer.scrollTop += scrollOffset; + } + // Scroll minute into view within its container + const minuteContainer = document.querySelector(`.time-picker-dropdown .time-part:nth-child(2) .time-options`); + let minuteElement = document.querySelector(`.time-picker-dropdown .time-part:nth-child(2) .time-option.selected`); + // If no exact match, find the closest minute option + if (!minuteElement && minuteContainer && (type === 'start' || type === 'end')) { + const currentMinute = parseInt(this.getTimeMinute(type)); + const minuteOptions = Array.from(minuteContainer.querySelectorAll('.time-option')); + let closestOption = null; + let closestDiff = Infinity; + minuteOptions.forEach(option => { + const optionValue = parseInt(option.textContent?.trim() || '0'); + const diff = Math.abs(optionValue - currentMinute); + if (diff < closestDiff) { + closestDiff = diff; + closestOption = option; + } + }); + minuteElement = closestOption; + } + if (minuteElement && minuteContainer) { + const containerRect = minuteContainer.getBoundingClientRect(); + const elementRect = minuteElement.getBoundingClientRect(); + const scrollOffset = elementRect.top - containerRect.top - containerRect.height / 2 + elementRect.height / 2; + minuteContainer.scrollTop += scrollOffset; + } + // For duration picker, also scroll seconds into view + if (type === 'duration') { + const secondContainer = document.querySelector(`.time-picker-dropdown .time-part:nth-child(3) .time-options`); + const secondElement = document.querySelector(`.time-picker-dropdown .time-part:nth-child(3) .time-option.selected`); + if (secondElement && secondContainer) { + const containerRect = secondContainer.getBoundingClientRect(); + const elementRect = secondElement.getBoundingClientRect(); + const scrollOffset = elementRect.top - containerRect.top - containerRect.height / 2 + elementRect.height / 2; + secondContainer.scrollTop += scrollOffset; + } + } + }, 100); + } + // Get formatted time for input field display (follows timeFormat setting) + getFormattedInputTime(type) { + const time = type === 'start' ? this.formTimer.startTime : this.formTimer.endTime; + if (!time) return ''; + // If 12hr format, convert for display + if (this.timeFormat === '12hr') { + const [hour, minute] = time.split(':'); + const hourNum = parseInt(hour); + const period = hourNum >= 12 ? 'pm' : 'am'; + let displayHour = hourNum % 12; + if (displayHour === 0) displayHour = 12; + return `${displayHour}:${minute}${period}`; + } + // 24hr format - return as is + return time; + } + // Update time from input (handles both 12hr and 24hr formats) + updateTimeFromInput(type, value) { + if (!value) return; + // Check if input includes am/pm (12hr format) + const ampmMatch = value.match(/(\d{1,2}):(\d{2})\s*(am|pm)/i); + if (ampmMatch) { + let hour = parseInt(ampmMatch[1]); + const minute = ampmMatch[2]; + const period = ampmMatch[3].toLowerCase(); + // Convert to 24hr format for storage + if (period === 'pm' && hour !== 12) hour += 12; + if (period === 'am' && hour === 12) hour = 0; + const time24 = `${hour.toString().padStart(2, '0')}:${minute}`; + if (type === 'start') { + this.formTimer.startTime = time24; + } else { + this.formTimer.endTime = time24; + } + } else { + // Assume 24hr format + if (type === 'start') { + this.formTimer.startTime = value; + } else { + this.formTimer.endTime = value; + } + } + } + getTimeHour(type) { + const time = type === 'start' ? this.formTimer.startTime : this.formTimer.endTime; + if (!time) return '12'; + const [hour] = time.split(':'); + const hourNum = parseInt(hour); + if (hourNum === 0) return '12'; + if (hourNum > 12) return (hourNum - 12).toString().padStart(2, '0'); + return hourNum.toString().padStart(2, '0'); + } + getTimeMinute(type) { + const time = type === 'start' ? this.formTimer.startTime : this.formTimer.endTime; + if (!time) return '00'; + const [, minute] = time.split(':'); + return minute || '00'; + } + getTimePeriod(type) { + const time = type === 'start' ? this.formTimer.startTime : this.formTimer.endTime; + if (!time) return 'am'; + const [hour] = time.split(':'); + const hourNum = parseInt(hour); + return hourNum >= 12 ? 'pm' : 'am'; + } + setTimeHour(type, hour) { + const currentMinute = this.getTimeMinute(type); + const currentPeriod = this.getTimePeriod(type); // 'am' | 'pm' + let hour24 = parseInt(hour); + if (currentPeriod === 'pm' && hour24 !== 12) hour24 += 12; + if (currentPeriod === 'am' && hour24 === 12) hour24 = 0; + const newTime = `${hour24.toString().padStart(2, '0')}:${currentMinute}`; + if (type === 'start') this.formTimer.startTime = newTime;else this.formTimer.endTime = newTime; + } + setTimeMinute(type, minute) { + const currentHour = this.getTimeHour(type); + const currentPeriod = this.getTimePeriod(type); // 'am' | 'pm' + let hour24 = parseInt(currentHour); + if (currentPeriod === 'pm' && hour24 !== 12) hour24 += 12; + if (currentPeriod === 'am' && hour24 === 12) hour24 = 0; + const newTime = `${hour24.toString().padStart(2, '0')}:${minute}`; + if (type === 'start') this.formTimer.startTime = newTime;else this.formTimer.endTime = newTime; + } + setTimePeriod(type, period) { + const p = (period || '').toLowerCase(); + const currentHour = this.getTimeHour(type); + const currentMinute = this.getTimeMinute(type); + let hour24 = parseInt(currentHour); + if (p === 'pm' && hour24 !== 12) hour24 += 12; + if (p === 'am' && hour24 === 12) hour24 = 0; + const newTime = `${hour24.toString().padStart(2, '0')}:${currentMinute}`; + if (type === 'start') this.formTimer.startTime = newTime;else this.formTimer.endTime = newTime; + } + setDurationValue(field, value) { + if (field === 'hours') { + this.formTimer.durationHours = Math.max(0, Math.min(24, value)); + } else if (field === 'minutes') { + this.formTimer.durationMinutes = Math.max(0, Math.min(59, value)); + } else if (field === 'seconds') { + this.formTimer.durationSeconds = Math.max(0, Math.min(59, value)); + } + } + formatScheduleMode(schedule) { + if (schedule.eventMode && schedule.duration !== undefined) { + const hours = Math.floor(schedule.duration / 3600); + const minutes = Math.floor(schedule.duration % 3600 / 60); + const seconds = schedule.duration % 60; + const parts = []; + if (hours > 0) parts.push(`${hours}h`); + if (minutes > 0) parts.push(`${minutes}m`); + if (seconds > 0) parts.push(`${seconds}s`); + return 'Event: ' + (parts.join(' ') || '0s'); + } else { + return this.formatTime(schedule.endTime); + } + } + hasEventMode() { + // Check if current device schedules have any event mode schedules + const schedules = this.getDeviceSchedules(); + return schedules.some(s => s.eventMode === true); + } + deviceHasEventMode(deviceGroup) { + // Check if device group has any event mode schedules + return deviceGroup.schedules && deviceGroup.schedules.some(s => s.eventMode === true); + } + getRemainingTime(deviceName, index) { + const schedule = this.schedules[deviceName]?.[index]; + const eventId = schedule?.id; + if (!eventId) { + return ''; + } + const stateKey = `${deviceName}_${eventId}`; + const remaining = this.remainingTimes.get(stateKey); + if (remaining === undefined || remaining === null) { + return '--'; + } + const hours = Math.floor(remaining / 3600); + const minutes = Math.floor(remaining % 3600 / 60); + const seconds = remaining % 60; + const parts = []; + if (hours > 0) parts.push(`${hours}h`); + if (minutes > 0 || hours > 0) parts.push(`${minutes}m`); + parts.push(`${seconds}s`); + return parts.join(' '); + } + validateTimeInput(type, event) { + const value = event.target.value; + // Allow manual typing validation + const timeRegex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/; + if (value && !timeRegex.test(value)) { + // Reset to previous valid value or empty + if (type === 'start') { + this.formTimer.startTime = this.formTimer.startTime || ''; + } else { + this.formTimer.endTime = this.formTimer.endTime || ''; + } + } + } + // Remove all schedules when component is deleted from canvas + removeAllSchedules() { + if (this.id) { + // Clear all device tags + Object.keys(this.schedules).forEach(deviceName => { + const device = this.deviceList.find(d => d.name === deviceName); + if (device && device.variableId) { + this.writeDeviceTag(deviceName, 0); + } + }); + // Clear database + this.hmiService.setSchedulerData(this.id, { + schedules: {}, + settings: {} + }).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.take)(1)).subscribe(); + } + } + // Confirmation dialog methods + confirmAction() { + if (this.confirmDialogData && this.confirmDialogData.action) { + this.confirmDialogData.action(); + } + this.closeConfirmDialog(); + } + closeConfirmDialog() { + this.showConfirmDialog = false; + this.confirmDialogData = null; + } + formatScheduleDetails(schedule) { + const dayNames = this.dayLabelsShort; + const monthNames = this.monthLabelsShort; + const selectedDays = schedule.days.map((isSelected, index) => isSelected ? dayNames[index] : null).filter(day => day !== null).join(', '); + const selectedMonths = schedule.months.map((isSelected, index) => isSelected ? monthNames[index] : null).filter(month => month !== null).join(', '); + const selectedDaysOfMonth = schedule.daysOfMonth.map((isSelected, index) => isSelected ? (index + 1).toString() : null).filter(day => day !== null).join(', '); + const formatTime = time => { + if (this.timeFormat === '12hr') { + const [hours, minutes] = time.split(':').map(Number); + const period = hours >= 12 ? 'PM' : 'AM'; + const hour12 = hours % 12 || 12; + return `${hour12}:${minutes.toString().padStart(2, '0')} ${period}`; + } + return time; + }; + const formatDuration = seconds => { + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor(seconds % 3600 / 60); + const secs = seconds % 60; + const parts = []; + if (hours > 0) parts.push(`${hours}h`); + if (minutes > 0) parts.push(`${minutes}m`); + if (secs > 0) parts.push(`${secs}s`); + return parts.join(' ') || '0s'; + }; + let details = ''; + details += ``; + details += ``; + details += ``; + if (schedule.eventMode) { + details += ``; + } else { + details += ``; + } + if (schedule.monthMode) { + details += ``; + details += ``; + } else { + details += ``; + } + details += ``; + details += ``; + details += '
    ${this.translateService.instant('scheduler.col-mode')}:${schedule.eventMode ? this.translateService.instant('scheduler.event-mode') : this.translateService.instant('scheduler.time-mode')}
    ${this.translateService.instant('scheduler.col-device')}:${schedule.deviceName}
    ${this.translateService.instant('scheduler.start-time')}:${formatTime(schedule.startTime)}
    ${this.translateService.instant('scheduler.col-duration')}:${formatDuration(schedule.duration)}
    ${this.translateService.instant('scheduler.end-time')}:${formatTime(schedule.endTime)}
    ${this.translateService.instant('scheduler.months')}:${selectedMonths || '-'}
    ${this.translateService.instant('scheduler.days-of-month')}:${selectedDaysOfMonth || '-'}
    ${this.translateService.instant('scheduler.days')}:${selectedDays || '-'}
    ${this.translateService.instant('scheduler.recurring')}:${schedule.recurring ? this.translateService.instant('general.yes') : this.translateService.instant('general.no')}
    ${this.translateService.instant('scheduler.col-status')}:${schedule.disabled ? this.translateService.instant('general.disabled') : this.translateService.instant('general.enabled')}
    '; + return details; + } + // Update clearAllSchedules to use confirmation dialog + clearAllSchedules() { + if (!this.canModifyScheduler()) { + return; + } + // Count how many schedules user can actually clear + let scheduleCount = 0; + if (this.selectedDevice === 'OVERVIEW') { + // Count schedules for devices user has permission to modify + Object.keys(this.schedules).forEach(deviceName => { + if (this.canModifyDevice(deviceName)) { + scheduleCount += (this.schedules[deviceName] || []).length; + } + }); + } else { + // Count schedules for selected device if user has permission + if (this.canModifyDevice(this.selectedDevice)) { + scheduleCount = this.getDeviceSchedules().length; + } + } + if (scheduleCount === 0) { + return; + } + this.confirmDialogData = { + title: this.translateService.instant('scheduler.clear-schedules'), + message: this.translateService.instant('scheduler.to-remove-permission', { + value: scheduleCount + }), + confirmText: this.translateService.instant('general.delete'), + icon: 'warning', + action: () => this.executeClearAllSchedules() + }; + this.showConfirmDialog = true; + } + executeClearAllSchedules() { + // Clear schedules only for devices user has permission to modify + if (this.selectedDevice === 'OVERVIEW') { + // In overview mode, clear schedules for all devices user can modify + let clearedCount = 0; + let blockedCount = 0; + Object.keys(this.schedules).forEach(deviceName => { + if (this.canModifyDevice(deviceName)) { + this.schedules[deviceName] = []; + this.resetDeviceTag(deviceName); + clearedCount++; + } else { + blockedCount++; + } + }); + } else { + // In device mode, clear schedules for selected device only if user has permission + if (this.canModifyDevice(this.selectedDevice)) { + this.schedules[this.selectedDevice] = []; + this.resetDeviceTag(this.selectedDevice); + } else { + return; // Don't save if nothing was cleared + } + } + + this.saveSchedulesToServer(true); + this.cdr.detectChanges(); + this.checkScheduleStates(); + } + /** Build localized arrays from translation JSON. */ + initI18nLists() { + // general.weekdays, general.weekdays-short, general.months, general.months-short + const wd = this.translateService.instant('general.weekdays'); + const wds = this.translateService.instant('general.weekdays-short'); + const mm = this.translateService.instant('general.months'); + const mms = this.translateService.instant('general.months-short'); + // Be defensive in case of misconfiguration: + this.dayLabelsLong = Array.isArray(wd) ? wd : []; + this.dayLabelsShort = Array.isArray(wds) ? wds : []; + this.monthLabelsLong = Array.isArray(mm) ? mm : []; + this.monthLabelsShort = Array.isArray(mms) ? mms : []; + // Optional: simple fallbacks if any array is missing + if (!this.dayLabelsShort.length && this.dayLabelsLong.length) { + this.dayLabelsShort = this.dayLabelsLong.map(s => s.substring(0, 3)); + } + if (!this.monthLabelsShort.length && this.monthLabelsLong.length) { + this.monthLabelsShort = this.monthLabelsLong.map(s => s.substring(0, 3)); + } + this.unnamedDevice = this.translateService.instant('scheduler.unnamed-device'); + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ChangeDetectorRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }, { + type: _services_auth_service__WEBPACK_IMPORTED_MODULE_3__.AuthService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.NgZone + }]; + static propDecorators = { + schedulerContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['schedulerContainer', { + static: true + }] + }], + deviceScrollContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['deviceScrollContainer', { + static: false + }] + }], + overviewScrollContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: ['overviewScrollContainer', { + static: false + }] + }], + property: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + isEditor: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + id: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }] + }; +}; +SchedulerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-scheduler', + template: _scheduler_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewEncapsulation.None, + styles: [(_scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _angular_core__WEBPACK_IMPORTED_MODULE_9__.ChangeDetectorRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog, _services_auth_service__WEBPACK_IMPORTED_MODULE_3__.AuthService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_9__.NgZone])], SchedulerComponent); + + +/***/ }), + +/***/ 87719: +/*!**********************************************************************!*\ + !*** ./src/app/gauges/controls/html-select/html-select.component.ts ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlSelectComponent: () => (/* binding */ HtmlSelectComponent) +/* harmony export */ }); +/* harmony import */ var _html_select_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-select.component.html?ngResource */ 86115); +/* harmony import */ var _html_select_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-select.component.css?ngResource */ 76937); +/* harmony import */ var _html_select_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_select_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlSelectComponent_1; + + + + + + + +let HtmlSelectComponent = HtmlSelectComponent_1 = class HtmlSelectComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-html_select'; + static LabelTag = 'HtmlSelect'; + static prefix = 'S-HXS_'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_5__.GaugeDialogType.Step; + } + static getActions(type) { + return this.actionsType; + } + static getHtmlEvents(ga) { + let ele = document.getElementById(ga.id); + if (ele) { + let select = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (select) { + let event = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Event(); + event.dom = select; + event.type = 'change'; + event.ga = ga; + return event; + } + } + return null; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + let select = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgele.node, this.prefix); + if (select) { + let val = parseFloat(sig.value); + if (Number.isNaN(val)) { + // maybe boolean + val = Number(sig.value); + } else { + val = parseFloat(val.toFixed(5)); + } + select.value = val; + // Set text and background color based on settings + let range = ga.property.ranges.find(e => e.min == val); + if (range) { + select.style.background = range.color; + select.style.color = range.stroke; + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + HtmlSelectComponent_1.processAction(act, svgele, select, val, gaugeStatus); + } + }); + } + } + } catch (err) { + console.error(err); + } + } + static initElement(ga, isview = false) { + let select = null; + let ele = document.getElementById(ga.id); + if (ele) { + ele?.setAttribute('data-name', ga.name); + select = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (select) { + if (ga.property) { + if (ga.property.readonly && isview) { + select.disabled = true; + select.style['appearance'] = 'none'; + select.style['border-width'] = '0px'; + } else { + select.style['appearance'] = 'menulist'; + } + let align = select.style['text-align']; + if (align) { + select.style['text-align-last'] = align; + } + } + select.innerHTML = ''; + if (!isview) { + let option = document.createElement('option'); + option.disabled = true; + option.selected = true; //''; + option.innerHTML = 'Choose...'; + select.appendChild(option); + } else { + ga.property?.ranges?.forEach(element => { + let option = document.createElement('option'); + option.value = element.min; + if (element.text) { + option.text = element.text; + } + select.appendChild(option); + }); + } + } + } + return select; + } + static initElementColor(bkcolor, color, ele) { + let select = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (select) { + if (bkcolor) { + select.style.backgroundColor = bkcolor; + } + if (color) { + select.style.color = color; + } + } + } + static getFillColor(ele) { + if (ele.children && ele.children[0]) { + let select = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (select) { + return select.style.backgroundColor; + } + } + return ele.getAttribute('fill'); + } + static getStrokeColor(ele) { + if (ele.children && ele.children[0]) { + let select = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, this.prefix); + if (select) { + return select.style.color; + } + } + return ele.getAttribute('stroke'); + } + static processAction(act, svgele, select, value, gaugeStatus) { + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } + } + static ctorParameters = () => []; +}; +HtmlSelectComponent = HtmlSelectComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'html-select', + template: _html_select_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_select_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlSelectComponent); + + +/***/ }), + +/***/ 38710: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-switch/html-switch-property/html-switch-property.component.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlSwitchPropertyComponent: () => (/* binding */ HtmlSwitchPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _html_switch_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-switch-property.component.html?ngResource */ 73904); +/* harmony import */ var _html_switch_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-switch-property.component.scss?ngResource */ 6776); +/* harmony import */ var _html_switch_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_switch_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_flex_auth_flex_auth_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gauge-property/flex-auth/flex-auth.component */ 31178); +/* harmony import */ var _gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _html_switch_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../html-switch.component */ 72134); +/* harmony import */ var _gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../gui-helpers/ngx-switch/ngx-switch.component */ 34254); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_helpers/define */ 94107); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../gauge-property/flex-event/flex-event.component */ 70987); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + +let HtmlSwitchPropertyComponent = class HtmlSwitchPropertyComponent { + dialogRef; + data; + switcher; + flexhead; + flexauth; + flexEvent; + property; + options; + name; + switchWidth = 80; + switchHeight = 40; + fonts = _helpers_define__WEBPACK_IMPORTED_MODULE_7__.Define.fonts; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_8__.Utils.defaultColor; + withBitmask = false; + eventsSupported; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + this.property = JSON.parse(JSON.stringify(this.data.settings.property)); + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeProperty(); + } + this.name = this.data.settings.name; + this.options = this.property.options; + if (!this.options) { + this.options = new _gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_6__.SwitchOptions(); + } + let switchsize = _html_switch_component__WEBPACK_IMPORTED_MODULE_5__.HtmlSwitchComponent.getSize(this.data.settings); + this.switchHeight = switchsize.height; + this.switchWidth = switchsize.width; + this.options.height = this.switchHeight; + this.eventsSupported = this.data.withEvents; + } + ngOnInit() { + if (this.data.withBitmask) { + this.withBitmask = this.data.withBitmask; + } + } + ngAfterViewInit() { + this.updateOptions(); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.settings.property = this.property; + this.data.settings.property.permission = this.flexauth.permission; + this.data.settings.property.permissionRoles = this.flexauth.permissionRoles; + this.data.settings.property.options = this.options; + this.data.settings.name = this.flexauth.name; + if (this.flexEvent) { + this.data.settings.property.events = this.flexEvent.getEvents(); + } + } + onAddEvent() { + this.flexEvent.onAddEvent(); + } + updateOptions() { + this.switcher?.setOptions(this.options); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + switcher: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: ['switcher', { + static: false + }] + }], + flexhead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: ['flexhead', { + static: false + }] + }], + flexauth: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: ['flexauth', { + static: false + }] + }], + flexEvent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_11__.ViewChild, + args: ['flexevent', { + static: false + }] + }] + }; +}; +HtmlSwitchPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_11__.Component)({ + selector: 'app-html-switch-property', + template: _html_switch_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_switch_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialogRef, Object])], HtmlSwitchPropertyComponent); + + +/***/ }), + +/***/ 72134: +/*!**********************************************************************!*\ + !*** ./src/app/gauges/controls/html-switch/html-switch.component.ts ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlSwitchComponent: () => (/* binding */ HtmlSwitchComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../gui-helpers/ngx-switch/ngx-switch.component */ 34254); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlSwitchComponent_1; + + + + + + +let HtmlSwitchComponent = HtmlSwitchComponent_1 = class HtmlSwitchComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_4__.GaugeBaseComponent { + static TypeTag = 'svg-ext-html_switch'; + static LabelTag = 'HtmlSwitch'; + static prefix = 'T-HXT_'; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_1__.GaugeDialogType.Switch; + } + static isBitmaskSupported() { + return true; + } + static bindEvents(ga, slider, callback) { + if (slider) { + slider.bindUpdate(val => { + let event = new _models_hmi__WEBPACK_IMPORTED_MODULE_0__.Event(); + event.type = 'on'; + event.ga = ga; + event.value = val; + callback(event); + }); + } + return null; + } + static processValue(ga, svgele, sig, gaugeStatus, switcher) { + try { + if (switcher) { + let value = parseFloat(sig.value); + if (Number.isNaN(value)) { + // maybe boolean + value = Number(sig.value); + } else { + value = parseFloat(value.toFixed(5)); + } + if (typeof sig.value !== 'boolean') { + value = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_4__.GaugeBaseComponent.checkBitmaskAndValue(ga.property.bitmask, value, ga.property.options.offValue, ga.property.options.onValue); + } + switcher.setValue(value); + } + } catch (err) { + console.error(err); + } + } + static initElement(ga, resolver, viewContainerRef, checkPermission) { + let ele = document.getElementById(ga.id); + if (ele) { + ele?.setAttribute('data-name', ga.name); + let htmlSwitch = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlSwitch) { + const permission = checkPermission ? checkPermission(ga.property) : null; + const factory = resolver.resolveComponentFactory(_gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_2__.NgxSwitchComponent); + const componentRef = viewContainerRef.createComponent(factory); + htmlSwitch.innerHTML = ''; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + htmlSwitch.appendChild(loaderComponentElement); + if (ga.property?.options) { + ga.property.options.height = htmlSwitch.clientHeight; + if (componentRef.instance.setOptions(ga.property.options)) { + if (ga.property.options.radius) { + htmlSwitch.style.borderRadius = ga.property.options.radius + 'px'; + } + } + } + componentRef.instance.isReadonly = !!ga.property?.events?.length; + componentRef.instance['name'] = ga.name; + if (permission?.enabled === false) { + componentRef.instance.setDisabled(true); + } + return componentRef.instance; + } + } + } + static resize(ga, resolver, viewContainerRef, options) { + let ele = document.getElementById(ga.id); + if (ele) { + let htmlSwitch = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlSwitch) { + const factory = resolver.resolveComponentFactory(_gui_helpers_ngx_switch_ngx_switch_component__WEBPACK_IMPORTED_MODULE_2__.NgxSwitchComponent); + const componentRef = viewContainerRef.createComponent(factory); + htmlSwitch.innerHTML = ''; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + htmlSwitch.appendChild(loaderComponentElement); + if (ga.property && ga.property.options) { + ga.property.options.height = htmlSwitch.clientHeight; + if (!componentRef.instance.setOptions(ga.property.options, true)) { + // componentRef.instance.init(); + } + } + return componentRef.instance; + } + } + } + static detectChange(ga, res, ref) { + return HtmlSwitchComponent_1.initElement(ga, res, ref); + } + static getSize(ga) { + let result = { + height: 0, + width: 0 + }; + let ele = document.getElementById(ga.id); + if (ele) { + let htmlSwitch = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlSwitch) { + result.height = htmlSwitch.clientHeight; + result.width = htmlSwitch.clientWidth; + } + } + return result; + } + static ctorParameters = () => []; +}; +HtmlSwitchComponent = HtmlSwitchComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)(), __metadata("design:paramtypes", [])], HtmlSwitchComponent); + + +/***/ }), + +/***/ 76588: +/*!*******************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/data-table/data-table.component.ts ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DataTableComponent: () => (/* binding */ DataTableComponent), +/* harmony export */ TableCellData: () => (/* binding */ TableCellData), +/* harmony export */ TableRangeConverter: () => (/* binding */ TableRangeConverter) +/* harmony export */ }); +/* harmony import */ var _data_table_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data-table.component.html?ngResource */ 75781); +/* harmony import */ var _data_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data-table.component.scss?ngResource */ 77636); +/* harmony import */ var _data_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_data_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @angular/material/legacy-menu */ 10662); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _gui_helpers_daterange_dialog_daterange_dialog_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../gui-helpers/daterange-dialog/daterange-dialog.component */ 28955); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_models/device */ 15625); +/* harmony import */ var fecha__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! fecha */ 40468); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! rxjs */ 89378); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! rxjs/operators */ 81891); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! rxjs/operators */ 39877); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! rxjs/operators */ 2389); +/* harmony import */ var _services_data_converter_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_services/data-converter.service */ 39231); +/* harmony import */ var _services_script_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../_services/script.service */ 67758); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../_models/script */ 10846); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../_services/hmi.service */ 69578); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../_models/alarm */ 38238); +/* harmony import */ var _services_reports_service__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../_services/reports.service */ 7839); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../_models/report */ 90440); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! file-saver */ 46778); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_15__); +/* harmony import */ var _services_command_service__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../../_services/command.service */ 80470); +/* harmony import */ var _services_language_service__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../_services/language.service */ 46368); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../gauge-base/gauge-base.component */ 57989); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var DataTableComponent_1; + + + + + + + + + + + + + + + + + + + + + + + + + + + + +let DataTableComponent = DataTableComponent_1 = class DataTableComponent { + dataService; + projectService; + hmiService; + scriptService; + reportsService; + languageService; + commandService; + dialog; + translateService; + cdr; + table; + sort; + trigger; + paginator; + onTimeRange$ = new rxjs__WEBPACK_IMPORTED_MODULE_19__.BehaviorSubject(null); + settings; + property; + pollingSubscription; + statusText = _models_alarm__WEBPACK_IMPORTED_MODULE_12__.AlarmStatusType; + priorityText = _models_alarm__WEBPACK_IMPORTED_MODULE_12__.AlarmPriorityType; + alarmColumnType = _models_alarm__WEBPACK_IMPORTED_MODULE_12__.AlarmColumnsType; + reportColumnType = _models_report__WEBPACK_IMPORTED_MODULE_14__.ReportColumnsType; + loading = false; + id; + type; + isEditor; + displayedColumns = []; + columnsStyle = {}; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_20__.MatLegacyTableDataSource([]); + tagsMap = {}; + timestampMap = {}; + odbcMap = {}; + executedQueries = new Set(); + pendingOdbcQueries = new Map(); + odbcQueryTimeout; + tagsColumnMap = {}; + range = { + from: Date.now(), + to: Date.now() + }; + pendingOdbcRequestIds = new Set(); // Track ODBC requests THIS component made + tableType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType; + tableHistoryType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history; + lastRangeType = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType; + tableOptions = DataTableComponent_1.DefaultOptions(); + data = []; + reloadActive = false; + withToolbar = false; + lastDaqQuery = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.DaqQuery(); + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_21__.Subject(); + historyDateformat = ''; + addValueInterval = 0; + pauseMemoryValue = {}; + setOfSourceTableData = false; + selectedRow = null; + events; + eventSelectionType = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeEventType.select); + dataFilter; + isRangeDropdownOpen = false; + isPageSizeDropdownOpen = false; + selectedPageSize = 25; + pageSizeOptions = [10, 25, 100]; + // ===== UNIFIED DATA SOURCE MANAGEMENT ===== + dataSourceState = { + odbc: { + loaded: false, + data: [], + lastHash: '' + }, + daq: { + loaded: false, + data: [], + accumulated: [], + expectedChunks: 0, + lastHash: '' + } + }; + // Final processed table data (single source of truth) + tableData = []; + currentTableDataHash = ''; + constructor(dataService, projectService, hmiService, scriptService, reportsService, languageService, commandService, dialog, translateService, cdr) { + this.dataService = dataService; + this.projectService = projectService; + this.hmiService = hmiService; + this.scriptService = scriptService; + this.reportsService = reportsService; + this.languageService = languageService; + this.commandService = commandService; + this.dialog = dialog; + this.translateService = translateService; + this.cdr = cdr; + } + ngOnInit() { + // For data tables, initialize with empty data + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.data) { + this.tableData = this.data; + this.updateTableIfChanged(); + } else if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history) { + // For history tables, initialize empty until data sources load + this.dataSource.data = []; + // Initialize default date range for DAQ queries (last 1 hour) + const now = Date.now(); + this.lastDaqQuery.from = now - 1 * 60 * 60 * 1000; // 1 hour ago + this.lastDaqQuery.to = now; + this.lastDaqQuery.gid = this.id; + this.lastDaqQuery.sids = this.getVariableIdsForQuery(); + this.range.from = this.lastDaqQuery.from; + this.range.to = this.lastDaqQuery.to; + } + Object.keys(this.lastRangeType).forEach(key => { + this.translateService.get(this.lastRangeType[key]).subscribe(txt => { + this.lastRangeType[key] = txt; + }); + }); + this.dataSource.filterPredicate = (match, filter) => { + const cells = Object.values(match).map(c => c.stringValue); + for (let i = 0; i < cells.length; i++) { + if (cells[i].toLowerCase().includes(filter)) { + return true; + } + } + return false; + }; + if (this.isAlarmsType()) { + Object.keys(this.statusText).forEach(key => { + this.statusText[key] = this.translateService.instant(this.statusText[key]); + }); + Object.keys(this.priorityText).forEach(key => { + this.priorityText[key] = this.translateService.instant(this.priorityText[key]); + }); + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.alarms) { + this.startPollingAlarms(); + } + } else if (this.isReportsType()) { + this.startPollingReports(); + } + // Subscribe to ODBC query results + this.hmiService.onDeviceOdbcQuery.subscribe(message => { + if (message && message.result) { + // CRITICAL: Only process responses for requests THIS component made + // This prevents tables with auto-refresh OFF from updating when other tables refresh + if (message.requestId && !this.pendingOdbcRequestIds.has(message.requestId)) { + return; + } + // Remove from pending set so we don't process it again + if (message.requestId) { + this.pendingOdbcRequestIds.delete(message.requestId); + } + // Check if we have cells for this query or its base query (without WHERE clause) + let hasCells = !!this.odbcMap[message.query]; + if (!hasCells) { + // Try to find the base query by removing WHERE clauses + const baseQuery = message.query.split(' WHERE ')[0]; + hasCells = !!this.odbcMap[baseQuery]; + } + if (hasCells) { + this.updateOdbcCells(message.query, message.result); + } + } + }); + } + // ===== CORE HELPER METHODS (SINGLE IMPLEMENTATION FOR EACH OPERATION) ===== + /** + * Normalize timestamp to seconds granularity (for matching rows within ~1 second) + */ + normalizeToSecond(timestampMs) { + return Math.floor(timestampMs / 1000); + } + /** + * Extract timestamp from a table row (handles both ODBC and DAQ formats) + * ODBC: Uses rowIndex field if present + * DAQ: Looks for timestamp column in displayedColumns + */ + getRowTimestampForMerge(row) { + if (!row) return 0; + // First, check if row has rowIndex (ODBC or DAQ with parsed timestamp) + for (const colId of this.displayedColumns) { + const cell = row[colId]; + if (cell && typeof cell.rowIndex === 'number' && cell.rowIndex > 0) { + return cell.rowIndex; // Already normalized + } + } + + return 0; + } + /** + * Create optimized hash of table data for change detection + * Samples large datasets (>1000 rows) for performance + */ + createDataHash(data) { + if (!data || data.length === 0) return 'empty'; + // For large datasets, always include first and last rows to catch updates + // This ensures incremental refreshes (which append to end) are detected + const hash = []; + if (data.length === 1) { + hash.push(this.hashRow(data[0])); + } else if (data.length <= 100) { + // Small dataset - hash all rows + hash.push(...data.map(row => this.hashRow(row))); + } else { + // Large dataset - hash first row, last 10 rows, and sample middle rows + hash.push(this.hashRow(data[0])); // First row + const sampleRate = Math.ceil((data.length - 11) / 1000); // Sample middle + for (let i = 1; i < data.length - 10; i += sampleRate) { + hash.push(this.hashRow(data[i])); + } + // Always include last 10 rows (where incremental data gets appended) + for (let i = Math.max(1, data.length - 10); i < data.length; i++) { + hash.push(this.hashRow(data[i])); + } + } + return hash.join('||'); + } + hashRow(row) { + return Object.keys(row).map(colId => { + const cell = row[colId]; + return `${colId}:${cell?.stringValue}:${cell?.rowIndex || ''}`; + }).join('|'); + } + /** + * UNIFIED CONSOLIDATION - SINGLE SOURCE OF TRUTH + * Combines ODBC and DAQ data into final table dataset + * + * Rules: + * - ODBC-only: Returns ODBC rows sorted by timestamp descending + * - DAQ-only: Returns DAQ rows sorted by timestamp descending + * - BOTH: Merges rows with timestamps within 1 second, combines columns, sorts descending + */ + consolidateAllData() { + const hasOdbc = this.dataSourceState.odbc.loaded && this.dataSourceState.odbc.data.length > 0; + const hasDaq = this.dataSourceState.daq.loaded && this.dataSourceState.daq.data.length > 0; + // Case 1: Only ODBC data + if (hasOdbc && !hasDaq) { + const rows = this.createOdbcTableRows(this.dataSourceState.odbc.data); + return rows; + } + // Case 2: Only DAQ data + if (hasDaq && !hasOdbc) { + const rows = this.createDaqTableRows(this.dataSourceState.daq.data); + return rows; + } + // Case 3: Both ODBC and DAQ data - merge by timestamp + if (hasOdbc && hasDaq) { + const odbcRows = this.createOdbcTableRows(this.dataSourceState.odbc.data); + const daqRows = this.createDaqTableRows(this.dataSourceState.daq.data); + const merged = this.mergeOdbcAndDaqRows(odbcRows, daqRows); + return merged; + } + // Case 4: No data + return []; + } + groupQueryByCellsByTable(queries) { + const tableQueries = new Map(); + queries.forEach(query => { + const tableName = this.extractTableNameFromQuery(query); + if (!tableQueries.has(tableName)) { + tableQueries.set(tableName, []); + } + const cells = this.odbcMap[query]; + if (cells) { + tableQueries.get(tableName).push(...cells); + } + }); + return tableQueries; + } + collectTimestampColumns() { + const timestampColumns = []; + if (this.tableOptions.columns) { + this.tableOptions.columns.forEach(col => { + if (col.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp && col.odbcTimestampColumn) { + timestampColumns.push(col.odbcTimestampColumn); + } + }); + } + return timestampColumns; + } + shouldApplyDateFilter() { + // Only apply date filter for history tables with date range picker shown + // Do NOT apply for real-time data tables, even if they have UTC conversion + // UTC conversion is just for display and doesn't require a time-based WHERE clause + const hasHistory = this.type === this.tableHistoryType && this.tableOptions.daterange?.show; + return hasHistory; + } + prepareAndExecuteQuery(baseQuery, cells, deviceId) { + let query = baseQuery; + if (this.shouldApplyDateFilter()) { + query = this.addDateFilterToOdbcQuery(baseQuery); + // DO NOT add to odbcMap during polling! Only register if it doesn't exist (first time) + if (!this.odbcMap[query]) { + this.odbcMap[query] = cells; + } + // But DO NOT push during auto-refresh - use the existing cells reference + } else { + // For data tables, just use base query without modification + if (!this.odbcMap[query]) { + this.odbcMap[query] = cells; + } + } + // Generate unique requestId for this query so we can track which responses belong to THIS table + const requestId = `${this.id}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; + this.pendingOdbcRequestIds.add(requestId); + this.hmiService.executeOdbcQuery(deviceId, query, requestId); + } + extractTimestampValue(column, dbRow) { + let timestampValue = null; + let shouldConvertUtc = false; + // PRIORITY: Check multi-source timestamps first (odbcTimestampColumns has the convertUtcToLocal flag) + if (column.odbcTimestampColumns && column.odbcTimestampColumns.length > 0) { + for (const tsSource of column.odbcTimestampColumns) { + if (dbRow[tsSource.column] !== undefined) { + timestampValue = dbRow[tsSource.column]; + shouldConvertUtc = tsSource.convertUtcToLocal || false; + break; + } + } + } + // FALLBACK: Use single source if available + else if (column.odbcTimestampColumn && dbRow[column.odbcTimestampColumn] !== undefined) { + timestampValue = dbRow[column.odbcTimestampColumn]; + shouldConvertUtc = column.convertUtcToLocal || false; + } + if (timestampValue !== null && shouldConvertUtc) { + // Database stores UTC timestamps as ISO strings like "2025-11-02 00:26:24.921845" + // These need to be parsed as UTC and converted to local timezone + if (typeof timestampValue === 'string' && /^\d{4}-\d{2}-\d{2}/.test(timestampValue)) { + // Replace space with 'T' and add 'Z' to make it valid ISO 8601 UTC format + // "2025-11-02 00:26:24.921845" -> "2025-11-02T00:26:24.921845Z" + const isoUtcString = timestampValue.replace(' ', 'T') + 'Z'; + const utcDate = new Date(isoUtcString); + if (!isNaN(utcDate.getTime())) { + // Convert from UTC to local by applying timezone offset + const localDate = this.convertUtcToLocal(utcDate); + // Return as ISO string WITHOUT 'Z' so it's interpreted as local time, not UTC + // This prevents double-conversion in formatTimestampValue + timestampValue = localDate.toISOString().replace('Z', ''); + } + } else { + // Regular number or other ISO string conversion + timestampValue = this.convertUtcToLocalTimestamp(timestampValue); + } + } + return timestampValue; + } + /** + * Create table rows from ODBC data source + */ + createOdbcTableRows(odbcData) { + const rows = []; + odbcData.forEach(source => { + source.result.forEach(dbRow => { + const tableRow = {}; + // Create cells for all displayed columns + this.displayedColumns.forEach(colId => { + const column = this.columnsStyle[colId]; + const cellData = { + stringValue: '' + }; + if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.odbc) { + // Extract database column name from query + const dbColumnName = this.extractColumnNameFromOdbcQuery(column.variableId); + if (dbColumnName && dbRow[dbColumnName] !== undefined) { + cellData.stringValue = this.formatOdbcValue(dbRow[dbColumnName]); + } + } else if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp) { + // Extract and format timestamp - check for UTC to local conversion + const timestampValue = this.extractTimestampValue(column, dbRow); + if (timestampValue !== null) { + cellData.stringValue = this.formatTimestampValue(timestampValue, column.valueFormat, false); + cellData.rowIndex = this.parseTimestampMs(timestampValue); + } + } + tableRow[colId] = cellData; + }); + rows.push(tableRow); + }); + }); + // Sort by timestamp descending (newest first) + rows.sort((a, b) => this.getRowTimestampForMerge(b) - this.getRowTimestampForMerge(a)); + return rows; + } + /** + * Create table rows from DAQ data source + */ + createDaqTableRows(daqData) { + const rounder = { + H: 3600000, + m: 60000, + s: 1000 + }; + const roundIndex = rounder[this.historyDateformat?.[this.historyDateformat?.length - 1]] ?? 1000; + const timestampsSet = new Set(); + const mergedMap = new Map(); + // Find columns of type variable in order + const variableColumns = this.displayedColumns.map(colId => this.columnsStyle[colId]).filter(col => col.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.variable); + // Build timestamp and value maps + daqData.forEach((variableValues, varIndex) => { + const column = variableColumns[varIndex]; + if (!column) return; + variableValues.forEach(entry => { + const roundedTime = Math.round(entry.dt / roundIndex) * roundIndex; + if (!mergedMap.has(roundedTime)) { + mergedMap.set(roundedTime, {}); + } + mergedMap.get(roundedTime)[column.id] = entry.value; + timestampsSet.add(roundedTime); + }); + }); + const sortedTimestamps = Array.from(timestampsSet).sort((a, b) => b - a); + const filledRows = []; + // Create table rows + sortedTimestamps.forEach(t => { + const row = {}; + this.displayedColumns.forEach(colId => { + const column = this.columnsStyle[colId]; + row[colId] = { + stringValue: '' + }; + if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp) { + row[colId].stringValue = (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(t), column.valueFormat || 'YYYY-MM-DD HH:mm:ss'); + row[colId].rowIndex = t; + } else if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.device) { + row[colId].stringValue = column.exname; + } else if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.variable) { + const val = mergedMap.get(t)?.[colId] ?? null; + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(val)) { + const rawValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_18__.GaugeBaseComponent.maskedShiftedValue(val, column.bitmask); + row[colId].stringValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.formatValue(rawValue?.toString(), column.valueFormat); + } else { + row[colId].stringValue = val ?? ''; + } + } + }); + filledRows.push(row); + }); + // Forward fill missing values + for (const col of variableColumns) { + let lastValue = ''; + for (let i = filledRows.length - 1; i >= 0; i--) { + if (!filledRows[i][col.id].stringValue) { + filledRows[i][col.id].stringValue = lastValue; + } else { + lastValue = filledRows[i][col.id].stringValue; + } + } + } + return filledRows; + } + /** + * Merge ODBC and DAQ rows by timestamp + * Rows with timestamps within 1 second are considered the same timestamp + * ODBC and DAQ columns are combined into merged rows + */ + mergeOdbcAndDaqRows(odbcRows, daqRows) { + const mergedMap = new Map(); + // Add ODBC rows first + odbcRows.forEach(row => { + const ts = this.normalizeToSecond(this.getRowTimestampForMerge(row)); + if (!mergedMap.has(ts)) { + mergedMap.set(ts, row); + } + }); + // Merge DAQ rows + daqRows.forEach(row => { + const ts = this.normalizeToSecond(this.getRowTimestampForMerge(row)); + if (mergedMap.has(ts)) { + // Merge into existing ODBC row + const existing = mergedMap.get(ts); + Object.keys(row).forEach(colId => { + // Fill empty cells from ODBC row with DAQ data + if (!existing[colId] || !existing[colId].stringValue) { + existing[colId] = row[colId]; + } + }); + } else { + // No ODBC row at this timestamp, add DAQ row standalone + mergedMap.set(ts, row); + } + }); + // Convert to sorted array (newest first) + const merged = Array.from(mergedMap.values()); + merged.sort((a, b) => this.getRowTimestampForMerge(b) - this.getRowTimestampForMerge(a)); + return merged; + } + /** + * Parse timestamp value to milliseconds + */ + parseTimestampMs(value) { + if (typeof value === 'number') { + // If it's a small number (seconds), convert to milliseconds + return value < 1e11 ? value * 1000 : value; + } else if (typeof value === 'string') { + const date = new Date(value); + return isNaN(date.getTime()) ? 0 : date.getTime(); + } + return 0; + } + /** + * Convert UTC timestamp value to local time + * Preserves the input format (number returns number, string returns string) + * Used to convert database timestamps immediately upon retrieval + */ + convertUtcToLocalTimestamp(value) { + const localDate = this.convertUtcToLocal(value); + if (!localDate) return value; // Return original if conversion fails + // Preserve input format + if (typeof value === 'number') { + // Return as milliseconds (same format as input if it was milliseconds) + return value < 1e11 ? Math.floor(localDate.getTime() / 1000) : localDate.getTime(); + } else if (typeof value === 'string') { + // Return as ISO string + return localDate.toISOString(); + } + return value; + } + /** + * Convert UTC timestamp to local time + * Handles both UTC ISO strings and Date objects + */ + convertUtcToLocal(value) { + let utcDate; + if (typeof value === 'number') { + utcDate = new Date(value < 1e11 ? value * 1000 : value); + } else if (typeof value === 'string') { + // Parse UTC string (ISO format) + utcDate = new Date(value); + } else { + utcDate = new Date(value); + } + if (isNaN(utcDate.getTime())) { + return null; + } + // JavaScript's Date object stores times in local timezone, + // so when we create a Date from a UTC string like "2025-11-02T12:00:00Z", + // we need to convert it to local time for display + // The offset is the difference between UTC and local time in milliseconds + const localDate = new Date(utcDate.getTime() - utcDate.getTimezoneOffset() * 60000); + return localDate; + } + /** + * Update table data with all consolidated data + * Only updates if hash has changed (prevents flickering) + */ + updateTableData() { + this.tableData = this.consolidateAllData(); + this.updateTableIfChanged(); + setTimeout(() => this.setLoading(false), 500); + } + /** + * Update table only if data changed (prevents flickering) + */ + updateTableIfChanged() { + const newHash = this.createDataHash(this.tableData); + if (newHash === this.currentTableDataHash) { + return false; // No change + } + + this.currentTableDataHash = newHash; + this.dataSource.data = [...this.tableData]; + this.bindTableControls(); + return true; + } + /** + * Check if ODBC data has changed + */ + hasOdbcDataChanged(newData) { + let newHash = ''; + if (newData && newData.length > 0) { + newHash = newData.map(source => source.result.map(row => JSON.stringify(row)).join('|')).join('||'); + } else { + newHash = 'empty'; + } + if (newHash === this.dataSourceState.odbc.lastHash) { + return false; + } + this.dataSourceState.odbc.lastHash = newHash; + return true; + } + /** + * Check if DAQ data has changed + */ + hasDaqDataChanged(newData) { + let newHash = ''; + if (newData && newData.length > 0) { + newHash = newData.map(arr => arr.map(item => `${item.dt}:${item.value}`).join('|')).join('||'); + } else { + newHash = 'empty'; + } + if (newHash === this.dataSourceState.daq.lastHash) { + return false; + } + this.dataSourceState.daq.lastHash = newHash; + return true; + } + ngAfterViewInit() { + this.sort.disabled = this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.data; + // Set default sort for history tables - newest first + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history && !this.sort.disabled) { + const timestampColumn = this.displayedColumns.find(colId => this.columnsStyle[colId]?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp); + if (timestampColumn) { + this.sort.sort({ + id: timestampColumn, + start: 'desc', + disableClear: true + }); + } + } + this.bindTableControls(); + if (this.paginator) { + this.selectedPageSize = this.paginator.pageSize; + } + // Reset tags for unselected state on initialization + if (this.events) { + this.events.forEach(event => { + if (event.type === 'select' && event.action === 'onSetTag') { + this.setTagValue(event, null); + } + }); + } + } + ngOnDestroy() { + // Unsubscribe from polling + if (this.pollingSubscription) { + this.pollingSubscription.unsubscribe(); + this.pollingSubscription = null; + } + try { + this.destroy$.next(null); + this.destroy$.complete(); + } catch (e) { + console.error(e); + } + } + toggleRangeDropdown() { + this.isRangeDropdownOpen = !this.isRangeDropdownOpen; + this.isPageSizeDropdownOpen = false; + } + togglePageSizeDropdown() { + this.isPageSizeDropdownOpen = !this.isPageSizeDropdownOpen; + this.isRangeDropdownOpen = false; + } + selectRange(key) { + this.tableOptions.lastRange = _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType[key]; + this.onRangeChanged(key); + this.isRangeDropdownOpen = false; + } + canGoPrevious() { + return this.paginator && this.paginator.pageIndex > 0; + } + canGoNext() { + return this.paginator && this.paginator.pageIndex < this.paginator.getNumberOfPages() - 1; + } + previousPage() { + if (this.canGoPrevious()) { + this.paginator.previousPage(); + } + } + nextPage() { + if (this.canGoNext()) { + this.paginator.nextPage(); + } + } + selectPageSize(value) { + this.selectedPageSize = value; + this.cdr.detectChanges(); + if (this.paginator) { + this.paginator.pageSize = value; + this.paginator.page.emit({ + pageIndex: this.paginator.pageIndex, + pageSize: value, + length: this.paginator.length + }); + } + this.isPageSizeDropdownOpen = false; + } + get selectedRangeLabel() { + if (this.tableOptions.lastRange === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType.none) return 'None'; + if (this.tableOptions.lastRange === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType.last1h) return 'Last 1 hour'; + if (this.tableOptions.lastRange === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType.last1d) return 'Last 1 day'; + if (this.tableOptions.lastRange === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType.last3d) return 'Last 3 days'; + return 'Last 1 hour'; + } + get selectedPageSizeLabel() { + return this.selectedPageSize.toString(); + } + getSelectStyles(isOpen = false) { + return { + backgroundColor: this.tableOptions.toolbar?.buttonColor || this.tableOptions.header.background, + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color, + borderRadius: '3px', + padding: '0px 8px', + height: '26px', + display: 'flex', + alignItems: 'center', + boxShadow: '0 2px 4px rgba(0,0,0,0.2)' + }; + } + getDropdownStyles() { + return { + backgroundColor: this.tableOptions.toolbar?.background || this.tableOptions.header.background, + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color + }; + } + getOptionStyle(isSelected) { + if (isSelected) { + return { + backgroundColor: this.tableOptions.toolbar?.buttonColor || this.tableOptions.header.background, + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color, + fontWeight: 'bold' + }; + } + return { + color: this.tableOptions.toolbar?.color || this.tableOptions.header.color + }; + } + startPollingAlarms() { + this.pollingSubscription = (0,rxjs__WEBPACK_IMPORTED_MODULE_22__.timer)(0, 2500).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_23__.takeUntil)(this.destroy$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_24__.switchMap)(() => this.hmiService.getAlarmsValues(this.dataFilter))).subscribe(result => { + this.updateAlarmsTable(result); + }); + } + startPollingReports() { + this.pollingSubscription = (0,rxjs__WEBPACK_IMPORTED_MODULE_22__.timer)(0, 60000 * 5).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_23__.takeUntil)(this.destroy$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_24__.switchMap)(() => this.reportsService.getReportsQuery(this.dataFilter))).subscribe(result => { + this.updateReportsTable(result); + }); + } + startPollingOdbc() { + // Use configurable interval, default to 5 seconds if not specified + // refreshInterval is now in seconds, convert to milliseconds + let refreshInterval = this.tableOptions.refreshInterval || 5; + // Safety check: if interval is too long (> 300 seconds = 5 minutes), cap it + if (refreshInterval > 300) { + console.warn('refreshInterval is very long:', refreshInterval, 'seconds, capping at 300 seconds'); + refreshInterval = 300; + } + const interval = refreshInterval * 1000; + this.pollingSubscription = (0,rxjs__WEBPACK_IMPORTED_MODULE_22__.timer)(0, interval).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_23__.takeUntil)(this.destroy$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_24__.switchMap)(() => { + try { + // Call the auto refresh logic that doesn't show loading + this.onAutoRefresh(); + return (0,rxjs__WEBPACK_IMPORTED_MODULE_25__.of)(null); + } catch (error) { + console.error('Error in auto-refresh polling:', error); + // Return a caught observable to prevent the entire polling chain from breaking + return (0,rxjs__WEBPACK_IMPORTED_MODULE_25__.of)(null); + } + })).subscribe({ + error: err => { + console.error('Fatal error in ODBC polling:', err); + // Reset the timer to stop polling on fatal error + this.pollingSubscription = null; + } + }); + } + executeOdbcQueriesImmediately() { + // Execute ALL ODBC queries immediately (used when date range changes) + const odbcQueries = Object.keys(this.odbcMap); + if (odbcQueries.length > 0) { + // Get the device ID (use the same logic as executeOdbcQuery) + const odbcDevices = Object.values(this.projectService.getDevices()).filter(d => d.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ODBC); + if (odbcDevices.length > 0) { + const deviceId = odbcDevices[0].id; + // Group queries by table for combining + const tableQueries = this.groupQueryByCellsByTable(odbcQueries); + // Execute combined queries per table + tableQueries.forEach((cells, tableName) => { + const timestampColumns = this.collectTimestampColumns(); + const combinedQuery = this.combineOdbcQueries(cells, timestampColumns); + if (combinedQuery) { + this.prepareAndExecuteQuery(combinedQuery, cells, deviceId); + } + }); + } + } + } + onRangeChanged(ev, showLoading = true) { + if (this.isEditor) { + return; + } + if (ev) { + const now = Date.now(); + this.range.to = now; + switch (ev) { + case 'none': + this.range.from = now - 10 * 365 * 24 * 60 * 60 * 1000; // 10 years ago + break; + case 'last1h': + this.range.from = now - 1 * 60 * 60 * 1000; + break; + case 'last1d': + this.range.from = now - 24 * 60 * 60 * 1000; + break; + case 'last3d': + this.range.from = now - 3 * 24 * 60 * 60 * 1000; + break; + default: + this.range.from = now - 1 * 60 * 60 * 1000; + break; + } + // Reset ODBC data for fresh query with new date range + this.dataSourceState.odbc.data = []; + this.dataSourceState.odbc.loaded = false; + this.dataSourceState.odbc.lastHash = ''; // Reset hash to force update on next data + this.currentTableDataHash = ''; // Reset table hash to ensure re-render + this.lastDaqQuery.event = ev; + this.lastDaqQuery.gid = this.id; + this.lastDaqQuery.sids = this.getVariableIdsForQuery(); + this.lastDaqQuery.from = this.range.from; + this.lastDaqQuery.to = this.range.to; + this.onDaqQuery(undefined, showLoading); + // Execute ODBC queries immediately with new date range + this.executeOdbcQueriesImmediately(); + } + } + onDateRange() { + let dialogRef = this.dialog.open(_gui_helpers_daterange_dialog_daterange_dialog_component__WEBPACK_IMPORTED_MODULE_3__.DaterangeDialogComponent, { + panelClass: 'light-dialog-container' + }); + dialogRef.afterClosed().subscribe(dateRange => { + if (dateRange) { + this.range.from = dateRange.start; + this.range.to = dateRange.end; + // Reset ODBC data for fresh query with new date range + this.dataSourceState.odbc.data = []; + this.dataSourceState.odbc.loaded = false; + this.dataSourceState.odbc.lastHash = ''; // Reset hash to force update on next data + this.currentTableDataHash = ''; // Reset table hash to ensure re-render + this.lastDaqQuery.gid = this.id; + this.lastDaqQuery.sids = this.getVariableIdsForQuery(); + this.lastDaqQuery.from = dateRange.start; + this.lastDaqQuery.to = dateRange.end; + this.onDaqQuery(undefined, true); + // Execute ODBC queries immediately with new date range + this.executeOdbcQueriesImmediately(); + } + }); + } + onDaqQuery(daqQuery, showLoading = true) { + if (daqQuery) { + this.lastDaqQuery = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.mergeDeep(this.lastDaqQuery, daqQuery); + } + // Reset DAQ data for new query, preserve ODBC data + this.dataSourceState.daq.loaded = false; + this.dataSourceState.daq.data = []; + this.dataSourceState.daq.accumulated = []; + this.dataSourceState.daq.expectedChunks = 0; + // Reconslidate table data (preserves ODBC data while resetting DAQ) + this.updateTableData(); + // this.lastDaqQuery.chunked = true; + this.onTimeRange$.next(this.lastDaqQuery); + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history && showLoading) { + this.setLoading(true); + } + } + onRefresh() { + try { + this.reloadActive = true; + // Handle different table types with incremental refresh + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history) { + // For history tables, always update to sliding window for incremental refresh + // This ensures we capture new data added since the last refresh + const now = Date.now(); + const rangeDuration = this.lastDaqQuery.to - this.lastDaqQuery.from; + this.lastDaqQuery.from = now - rangeDuration; + this.lastDaqQuery.to = now; + // CRITICAL: Sync this.range with lastDaqQuery so the ODBC date filter uses the new time window + this.range.from = this.lastDaqQuery.from; + this.range.to = this.lastDaqQuery.to; + // Reset ODBC hash so even if data is identical, it will trigger update + this.dataSourceState.odbc.lastHash = ''; + // Execute incremental DAQ and ODBC queries + this.executeDaqQueryForAutoRefresh(); + this.executeOdbcQueriesForAutoRefresh(); + } else { + // For data tables, do incremental ODBC refresh + this.executeOdbcQueriesForAutoRefresh(); + } + } catch (e) { + console.error('Error in onRefresh():', e); + } + } + onAutoRefresh() { + // Auto refresh should not show loading spinner or reload animation + // For history tables, refresh with updated time range (sliding window) + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history) { + // Always update date range to current sliding window for incremental refresh + // This ensures new data since last refresh is captured + const now = Date.now(); + const rangeDuration = this.lastDaqQuery.to - this.lastDaqQuery.from; + this.lastDaqQuery.from = now - rangeDuration; + this.lastDaqQuery.to = now; + // CRITICAL: Also sync this.range with the new time window for ODBC queries + this.range.from = this.lastDaqQuery.from; + this.range.to = this.lastDaqQuery.to; + // For auto-refresh with history tables, query for both ODBC and DAQ + // Both methods are safe to call even if no data exists - they handle empty cases + this.executeDaqQueryForAutoRefresh(); + this.executeOdbcQueriesForAutoRefresh(); + } else { + // For data tables, just re-execute ODBC queries + this.executeOdbcQueriesForAutoRefresh(); + } + } + executeDaqQueryForAutoRefresh() { + // For auto-refresh, query for new data since the last timestamp in DAQ data + // NOTE: Use DAQ data directly, NOT consolidated tableData, to avoid mixing timestamps from ODBC + if (this.dataSourceState.daq.data && this.dataSourceState.daq.data.length > 0) { + // Find the most recent timestamp from the LAST VARIABLE's data + // (all variables should have similar timestamps, but get the latest to be safe) + let lastTimestamp = 0; + for (const varData of this.dataSourceState.daq.data) { + if (varData && varData.length > 0) { + // For each variable, get the newest timestamp + const varTimestamp = Math.max(...varData.map(entry => entry.dt)); + lastTimestamp = Math.max(lastTimestamp, varTimestamp); + } + } + // Create a query for data from the last timestamp onwards + // NOTE: timestamps are in MILLISECONDS (from Date.now() or DAQ timestamps) + const autoRefreshQuery = { + ...this.lastDaqQuery, + from: lastTimestamp, + to: Date.now() // Current time in milliseconds + }; + + this.onTimeRange$.next(autoRefreshQuery); + } else { + // No existing DAQ data, do full refresh with original query + this.onTimeRange$.next(this.lastDaqQuery); + } + } + executeOdbcQueriesForAutoRefresh() { + // Execute ODBC queries for auto refresh - combine queries per table + const odbcQueries = Object.keys(this.odbcMap); + if (odbcQueries.length > 0) { + // Get the device ID (use the same logic as executeOdbcQuery) + const odbcDevices = Object.values(this.projectService.getDevices()).filter(d => d.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ODBC); + if (odbcDevices.length > 0) { + const deviceId = odbcDevices[0].id; + // Group queries by table for combining + const tableQueries = this.groupQueryByCellsByTable(odbcQueries); + // Execute combined queries per table + tableQueries.forEach((cells, tableName) => { + const timestampColumns = this.collectTimestampColumns(); + const combinedQuery = this.combineOdbcQueries(cells, timestampColumns); + if (combinedQuery) { + this.prepareAndExecuteQuery(combinedQuery, cells, deviceId); + } + }); + } + } + } + setOptions(options) { + this.tableOptions = { + ...this.tableOptions, + ...options + }; + this.loadData(); + const key = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType).find(k => _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType[k] === this.tableOptions.lastRange) || 'last1h'; + this.onRangeChanged(key, true); + // Start polling once after all data is loaded + if (this.tableOptions.realtime) { + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history) { + this.startPollingOdbc(); + } else if (this.isAlarmsType()) { + this.startPollingAlarms(); + } else if (this.isReportsType()) { + this.startPollingReports(); + } + } + } + addValue(variableId, dt, variableValue) { + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.data && this.tagsMap[variableId]) { + this.tagsMap[variableId].value = variableValue; + this.tagsMap[variableId].cells.forEach(cell => { + const rawValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_18__.GaugeBaseComponent.maskedShiftedValue(variableValue, cell.bitmask); + cell.stringValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.formatValue(rawValue?.toString(), cell.valueFormat); + }); + // update timestamp of all timestamp cells + this.tagsMap[variableId].rows.forEach(rowIndex => { + if (this.timestampMap[rowIndex]) { + this.timestampMap[rowIndex].forEach(cell => { + cell.stringValue = (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(dt * 1e3), cell.valueFormat || 'YYYY-MM-DD HH:mm:ss'); + }); + } + }); + } else if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history) { + if (this.tableOptions.realtime) { + if (this.addValueInterval && this.pauseMemoryValue[variableId] && _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getTimeDifferenceInSeconds(this.pauseMemoryValue[variableId]) < this.addValueInterval) { + return; + } + this.pauseMemoryValue[variableId] = dt * 1e3; + } + this.addRowDataToTable(dt * 1e3, variableId, variableValue); + } + } + setValues(values, chunk) { + // Handle chunked data accumulation using unified structure + if (chunk) { + if (chunk.index === 0) { + // First chunk - initialize accumulation + this.dataSourceState.daq.accumulated = values.map(arr => arr.slice()); + this.dataSourceState.daq.expectedChunks = chunk.of; + } else { + // Accumulate data from this chunk + values.forEach((variableData, varIndex) => { + if (!this.dataSourceState.daq.accumulated[varIndex]) { + this.dataSourceState.daq.accumulated[varIndex] = []; + } + this.dataSourceState.daq.accumulated[varIndex].push(...variableData); + }); + } + // If this is not the last chunk, wait for more data + if (chunk.index + 1 < chunk.of) { + return; + } + // Last chunk - use accumulated data + values = this.dataSourceState.daq.accumulated; + this.dataSourceState.daq.accumulated = []; + } + // Check if new DAQ data is different from previous + if (!this.hasDaqDataChanged(values)) { + return; // No new data, skip update + } + // IMPORTANT: For incremental refresh (auto-refresh), APPEND new data instead of replacing + // This preserves existing DAQ data while adding new rows + // For full range queries (range changes), replace all data + // Detect full query vs incremental by checking if current data is empty or if we're doing range query + const isIncrementalRefresh = this.dataSourceState.daq.data && this.dataSourceState.daq.data.length > 0; + if (isIncrementalRefresh) { + // Append new data to existing DAQ data (incremental refresh) + values.forEach((newVariableValues, varIndex) => { + if (!this.dataSourceState.daq.data[varIndex]) { + this.dataSourceState.daq.data[varIndex] = []; + } + this.dataSourceState.daq.data[varIndex].push(...newVariableValues); + }); + } else { + // Replace all data (full range query or initial load) + this.dataSourceState.daq.data = values; + } + this.dataSourceState.daq.loaded = true; + // Update table with all available data sources (properly merges with ODBC if available) + this.updateTableData(); + } + updateAlarmsTable(alrs) { + let rows = []; + alrs.forEach(alr => { + let alarm = { + type: { + stringValue: this.priorityText[alr.type] + }, + name: { + stringValue: alr.name + }, + status: { + stringValue: this.statusText[alr.status] + }, + text: { + stringValue: this.languageService.getTranslation(alr.text) ?? alr.text + }, + group: { + stringValue: this.languageService.getTranslation(alr.group) ?? alr.group + }, + ontime: { + stringValue: (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(alr.ontime), 'YYYY.MM.DD HH:mm:ss') + }, + color: alr.color, + bkcolor: alr.bkcolor, + toack: alr.toack + }; + if (alr.offtime) { + alarm['offtime'] = { + stringValue: (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(alr.offtime), 'YYYY.MM.DD HH:mm:ss') + }; + } + if (alr.acktime) { + alarm['acktime'] = { + stringValue: (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(alr.acktime), 'YYYY.MM.DD HH:mm:ss') + }; + } + if (alr.userack) { + alarm['userack'] = { + stringValue: (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(alr.userack), 'YYYY.MM.DD HH:mm:ss') + }; + } + rows.push(alarm); + }); + this.dataSource.data = rows; + } + updateReportsTable(reports) { + let rows = []; + reports.forEach(item => { + let report = { + name: { + stringValue: item.fileName + }, + ontime: { + stringValue: (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(item.created), 'YYYY.MM.DD HH:mm:ss') + }, + deletable: item.deletable, + fileName: item.fileName + }; + rows.push(report); + }); + this.dataSource.data = rows; + } + isSelectable(row) { + const selectable = this.events && this.events.length > 0 && this.events.some(event => event.type === 'select' && event.action === 'onSetTag'); + return selectable; + } + selectRow(row) { + if (this.isSelectable(row)) { + if (this.selectedRow === row) { + this.selectedRow = null; + } else { + this.selectedRow = row; + } + // Fire events only if they exist (guards against undefined events) + if (this.events && this.events.length > 0) { + this.events.forEach(event => { + if (event.action === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeEventActionType.onSetTag)) { + this.setTagValue(event, this.selectedRow); + } else { + this.runScript(event, this.selectedRow); + } + }); + } + } + } + isSelected(row) { + return this.selectedRow === row; + } + runScript(event, selected) { + if (event.actparam) { + let torun = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.clone(this.projectService.getScripts().find(dataScript => dataScript.id == event.actparam)); + torun.parameters = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.clone(event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_10__.SCRIPT_PARAMS_MAP]); + torun.parameters.forEach(param => { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNullOrUndefined(param.value)) { + param.value = selected; + } + }); + this.scriptService.runScript(torun).subscribe(result => {}, err => { + console.error(err); + }); + } + } + setTagValue(event, selected) { + if (event.actparam) { + const tagId = event.actparam; + const tag = this.projectService.getTagFromId(tagId); + if (tag) { + let value; + const type = tag.type.toLowerCase(); + if (type.includes('bool')) { + value = selected ? true : false; + } else if (type.includes('number') || type.includes('int') || type.includes('word') || type.includes('real')) { + value = selected ? this.dataSource.data.indexOf(selected) + 1 : 0; // 1-based index + } else if (type.includes('string') || type.includes('char')) { + if (selected) { + const rowData = {}; + this.displayedColumns.forEach(col => { + const cell = selected[col]; + if (cell && cell.stringValue !== undefined) { + const columnName = this.columnsStyle[col] && this.columnsStyle[col].label && this.columnsStyle[col].label !== 'undefined' ? this.columnsStyle[col].label : col; + let value = cell.stringValue; + // Try to parse as number if it looks like one + if (!isNaN(Number(value)) && value.trim() !== '' && !isNaN(parseFloat(value))) { + value = Number(value); + } + rowData[columnName] = value; + } + }); + value = JSON.stringify(rowData); + } else { + value = ''; + } + } else { + return; + } + this.scriptService.$setTag(tagId, value); + } + } + } + addRowDataToTable(dt, tagId, value) { + let row = {}; + let timestapColumnId = null; + let valueColumnId = null; + let exnameColumnId = null; + for (let x = 0; x < this.displayedColumns.length; x++) { + let column = this.columnsStyle[this.displayedColumns[x]]; + row[column.id] = { + stringValue: '' + }; + if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp) { + timestapColumnId = column.id; + row[column.id].stringValue = (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(dt), column.valueFormat || 'YYYY-MM-DD HH:mm:ss'); + row[column.id].timestamp = dt; + } else if (column.variableId === tagId) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(value)) { + const rawValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_18__.GaugeBaseComponent.maskedShiftedValue(value, column.bitmask); + row[column.id].stringValue = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.formatValue(rawValue?.toString(), column.valueFormat); + } else { + row[column.id].stringValue = value; + } + valueColumnId = column.id; + } else if (column.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.device) { + row[column.id].stringValue = column.exname; + exnameColumnId = column.id; + } + } + if (valueColumnId) { + const firstRow = this.dataSource.data[0]; + if (firstRow && firstRow[timestapColumnId].stringValue === row[timestapColumnId].stringValue) { + firstRow[valueColumnId].stringValue = row[valueColumnId].stringValue; + if (exnameColumnId) { + firstRow[exnameColumnId].stringValue = row[exnameColumnId].stringValue; + } + } else { + this.dataSource.data.unshift(row); + const rangeDiff = this.lastDaqQuery.to - this.lastDaqQuery.from; + this.lastDaqQuery.to = row[timestapColumnId].timestamp; + this.lastDaqQuery.from = this.lastDaqQuery.to - rangeDiff; + // remove out of range values + let count = 0; + for (let i = this.dataSource.data.length - 1; i >= 0; i--) { + if (this.dataSource.data[i][timestapColumnId].timestamp < this.lastDaqQuery.from) { + count++; + } else { + break; + } + } + if (count) { + this.dataSource.data.splice(-count, count); + } + this.dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_20__.MatLegacyTableDataSource(this.dataSource.data); + } + } + } + setProperty(property, value) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNullOrUndefined(this[property])) { + return false; + } + this[property] = value; + return true; + } + setTableAndData(tableData) { + this.setOfSourceTableData = true; + if (tableData.columns) { + this.displayedColumns = tableData.columns.map(cln => cln.id); + this.columnsStyle = tableData.columns; + tableData.columns.forEach((clnData, index) => { + let column = clnData; + column.label = column.label || 'Column ' + (index + 1); + column.fontSize = tableData.header?.fontSize; + column.color = column.color || tableData.header?.color; + column.background = column.background || tableData.header?.background; + column.width = column.width || 100; + column.align = column.align || _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellAlignType.left; + this.columnsStyle[column.id] = column; + }); + } + if (tableData.rows) { + this.dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_20__.MatLegacyTableDataSource(tableData.rows); + } + this.bindTableControls(); + } + applyFilter(filterValue) { + filterValue = filterValue.trim(); // Remove whitespace + filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches + this.dataSource.filter = filterValue; + } + setLoading(load) { + if (load) { + (0,rxjs__WEBPACK_IMPORTED_MODULE_22__.timer)(10000).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_23__.takeUntil)(this.destroy$)).subscribe(res => { + this.loading = false; + }); + } + this.loading = load; + } + onExportData() { + let data = { + name: 'data', + columns: [] + }; + let columns = {}; + Object.values(this.columnsStyle).forEach(column => { + columns[column.id] = { + header: `${column.label}`, + values: [] + }; + }); + this.dataSource.data.forEach(row => { + Object.keys(row).forEach(id => { + columns[id].values.push(row[id].stringValue); + }); + }); + data.columns = Object.values(columns); + this.dataService.exportTagsData(data); + } + bindTableControls() { + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history && this.tableOptions.paginator.show) { + this.dataSource.paginator = this.paginator; + } + this.dataSource.sort = this.sort; + this.dataSource.sortingDataAccessor = (data, sortHeaderId) => data[sortHeaderId].stringValue; + } + loadData() { + // columns + let columnIds = []; + this.columnsStyle = {}; + const columns = this.isAlarmsType() ? this.tableOptions.alarmsColumns : this.isReportsType() ? this.tableOptions.reportsColumns : this.tableOptions.columns; + columns.forEach(cn => { + columnIds.push(cn.id); + this.columnsStyle[cn.id] = cn; + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history) { + if (cn.variableId) { + this.addColumnToMap(cn); + } + if (cn.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp) { + this.historyDateformat = cn.valueFormat; + } + } + }); + this.displayedColumns = columnIds; + // For history tables, execute ODBC queries from template rows + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.history && this.tableOptions.rows) { + this.tableOptions.rows.forEach((row, rowIndex) => { + if (row.cells) { + row.cells.forEach(cell => { + if (cell && cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.odbc && cell.variableId) { + if (this.isEditor) { + // In editor, just set placeholder text + } else { + // Execute ODBC query + const cellData = { + stringValue: '', + rowIndex: rowIndex, + ...cell + }; + this.executeOdbcQuery(cellData); + this.addOdbcToMap(cellData); + } + } + }); + } + }); + } + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.data) { + // rows + this.data = []; + for (let i = 0; i < this.tableOptions.rows.length; i++) { + let r = this.tableOptions.rows[i]; + let row = {}; + r.cells.forEach(cell => { + if (cell) { + row[cell.id] = { + stringValue: '', + rowIndex: i, + ...cell + }; + this.mapCellContent(row[cell.id]); + } + }); + this.data.push(row); + } + } + // For data tables, update display with static data + // For history tables, display empty - will be populated by ODBC/DAQ + if (this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.data) { + this.tableData = this.data; + this.updateTableIfChanged(); + } else { + this.dataSource.data = []; + } + this.withToolbar = this.type === this.tableHistoryType && (this.tableOptions.paginator.show || this.tableOptions.filter.show || this.tableOptions.daterange.show); + } + mapCellContent(cell) { + cell.stringValue = ''; + if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.variable) { + if (cell.variableId) { + if (this.isEditor) { + cell.stringValue = numeral('123.56').format(cell.valueFormat); + } + this.addVariableToMap(cell); + } + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp) { + if (this.isEditor) { + cell.stringValue = (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(new Date(0), cell.valueFormat || 'YYYY-MM-DD HH:mm:ss'); + } + this.addTimestampToMap(cell); + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.label) { + cell.stringValue = cell.label; + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.device) { + cell.stringValue = cell.label; + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.odbc) { + if (cell.variableId) { + if (this.isEditor) { + cell.stringValue = 'ODBC Query Result'; + } else { + // Execute query if not already executed + this.executeOdbcQuery(cell); + } + this.addOdbcToMap(cell); + } + } + } + addVariableToMap(cell) { + if (!this.tagsMap[cell.variableId]) { + this.tagsMap[cell.variableId] = { + value: NaN, + cells: [], + rows: [] + }; + } + this.tagsMap[cell.variableId].cells.push(cell); + this.tagsMap[cell.variableId].rows.push(cell.rowIndex); + } + addTimestampToMap(cell) { + if (!this.timestampMap[cell.rowIndex]) { + this.timestampMap[cell.rowIndex] = []; + } + this.timestampMap[cell.rowIndex].push(cell); + } + addOdbcToMap(cell) { + if (!this.odbcMap[cell.variableId]) { + this.odbcMap[cell.variableId] = []; + } + this.odbcMap[cell.variableId].push(cell); + } + updateOdbcCells(query, result) { + // Check both the exact query and the base query (in case of modified queries) + let cells = this.odbcMap[query]; + if (!cells) { + // Try to find the base query by removing WHERE clauses + const baseQuery = query.split(' WHERE ')[0]; + cells = this.odbcMap[baseQuery]; + } + if (cells) { + if (result && result.length > 0) { + // Parse the query to extract column names + const columnNames = this.extractColumnNamesFromQuery(query); + if (columnNames.length > 0) { + // Process ALL ODBC queries (both single-column and multi-column) + // ACCUMULATE results from all queries, don't replace + const odbcData = { + query, + result, + columnNames, + cells + }; + // Check if data has changed before storing + const hasChanged = this.hasOdbcDataChanged([odbcData]); + if (hasChanged) { + // APPEND ODBC data (accumulate from multiple queries) + // First, check if this query result already exists + const existingIndex = this.dataSourceState.odbc.data.findIndex(d => d.query === query); + if (existingIndex >= 0) { + // Replace existing query result + this.dataSourceState.odbc.data[existingIndex] = odbcData; + } else { + // Add new query result + this.dataSourceState.odbc.data.push(odbcData); + } + this.dataSourceState.odbc.loaded = true; + // Update table with all available data sources (consolidates with DAQ if present) + this.updateTableData(); + } + } + } else { + // Empty result from ODBC query - still need to handle this + // Mark that we've received a response (even if empty) for this query + const existingIndex = this.dataSourceState.odbc.data.findIndex(d => d.query === query); + if (existingIndex >= 0) { + // Remove this query's previous results since we got empty results now + this.dataSourceState.odbc.data.splice(existingIndex, 1); + } + // Always mark as loaded and update table when we get empty results + this.dataSourceState.odbc.loaded = true; + this.updateTableData(); + } + } + } + formatTimestampValue(value, formatString, convertUtcToLocal = false) { + if (value == null) return ''; + try { + let date; + if (typeof value === 'number') { + // Detect if timestamp is in seconds or milliseconds + // Timestamps before year 2001 in ms would be < 1e11 + // So if value > 1e11, it's already in milliseconds + if (value > 1e11) { + date = new Date(value); + } else { + // Assume Unix timestamp in seconds, convert to milliseconds + date = new Date(value * 1000); + } + } else if (typeof value === 'string') { + date = new Date(value); + } else { + // Try to convert to date + date = new Date(value); + } + if (isNaN(date.getTime())) { + return value.toString(); + } + // If UTC to local conversion is requested, adjust the date + if (convertUtcToLocal) { + const localDate = this.convertUtcToLocal(value); + if (localDate) { + date = localDate; + } + } + return (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(date, formatString || 'YYYY-MM-DD HH:mm:ss'); + } catch (error) { + return value.toString(); + } + } + formatOdbcValue(value) { + if (!value) return ''; + const stringValue = value.toString(); + // Try to detect if this is a timestamp/date + // Check for ISO date strings, Unix timestamps, or common date formats + if (this.isTimestampValue(stringValue)) { + try { + const date = this.parseTimestampValue(stringValue); + if (date) { + // Use the same format as other timestamp cells in FUXA + return (0,fecha__WEBPACK_IMPORTED_MODULE_6__.format)(date, 'YYYY-MM-DD HH:mm:ss'); + } + } catch (e) { + // If parsing fails, return the original value + console.warn('Failed to parse timestamp from ODBC result:', stringValue); + } + } + return stringValue; + } + isTimestampValue(value) { + // Check for ISO date strings + if (value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/)) return true; + // Check for common date formats + if (value.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/)) return true; + // Check for Unix timestamp (10-13 digits) + if (value.match(/^\d{10,13}$/) && !isNaN(Number(value))) return true; + return false; + } + parseTimestampValue(value) { + if (!value || value.trim() === '') return null; + // Try various timestamp formats that databases might return + // 1. ISO string with timezone + if (value.includes('T') || value.includes('Z') || value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/)) { + const date = new Date(value); + if (!isNaN(date.getTime())) return date; + } + // 2. SQL datetime format: YYYY-MM-DD HH:MM:SS + if (value.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/)) { + const date = new Date(value.replace(' ', 'T')); + if (!isNaN(date.getTime())) return date; + } + // 3. SQL datetime with milliseconds: YYYY-MM-DD HH:MM:SS.sss + if (value.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{1,3}/)) { + const date = new Date(value.replace(' ', 'T')); + if (!isNaN(date.getTime())) return date; + } + // 4. Unix timestamp (seconds or milliseconds) + if (value.match(/^\d{10,13}$/) && !isNaN(Number(value))) { + const timestamp = Number(value); + // If it's milliseconds (13 digits), use as-is; if seconds (10 digits), multiply by 1000 + const date = new Date(timestamp < 1e12 ? timestamp * 1000 : timestamp); + if (!isNaN(date.getTime())) return date; + } + // 5. Try parsing as a regular date string + const date = new Date(value); + if (!isNaN(date.getTime())) return date; + return null; + } + executeOdbcQuery(cell) { + const baseQuery = cell.variableId; + if (!this.executedQueries.has(baseQuery)) { + this.executedQueries.add(baseQuery); + // Use device ID from cell if available, otherwise use first ODBC device + let deviceId = cell['deviceId']; + if (!deviceId) { + const odbcDevices = Object.values(this.projectService.getDevices()).filter(d => d.type === _models_device__WEBPACK_IMPORTED_MODULE_5__.DeviceType.ODBC); + if (odbcDevices.length > 0) { + deviceId = odbcDevices[0].id; + } + } + if (deviceId) { + // Add this query to pending queries + if (!this.pendingOdbcQueries.has(deviceId)) { + this.pendingOdbcQueries.set(deviceId, { + deviceId, + cells: [] + }); + } + this.pendingOdbcQueries.get(deviceId).cells.push(cell); + // Clear any existing timeout + if (this.odbcQueryTimeout) { + clearTimeout(this.odbcQueryTimeout); + } + // Schedule execution after a short delay to allow other queries to be collected + this.odbcQueryTimeout = setTimeout(() => { + this.executePendingOdbcQueries(); + }, 100); + } + } + } + executePendingOdbcQueries() { + this.pendingOdbcQueries.forEach(({ + deviceId, + cells + }) => { + // Group cells by table and get all queries for this table + const queries = cells.map(cell => cell.variableId); + const tableQueries = this.groupQueryByCellsByTable(queries); + tableQueries.forEach((tableCells, tableName) => { + const timestampColumns = this.collectTimestampColumns(); + const combinedQuery = this.combineOdbcQueries(tableCells, timestampColumns); + if (combinedQuery) { + // Update all cells to use the combined query + tableCells.forEach(cell => { + if (!this.odbcMap[combinedQuery]) { + this.odbcMap[combinedQuery] = []; + } + this.odbcMap[combinedQuery].push(cell); + }); + // Execute query with date filtering if needed + this.prepareAndExecuteQuery(combinedQuery, tableCells, deviceId); + } + }); + }); + this.pendingOdbcQueries.clear(); + } + extractTableNameFromQuery(query) { + const upperQuery = query.toUpperCase(); + const fromIndex = upperQuery.indexOf(' FROM '); + if (fromIndex === -1) return 'unknown'; + const afterFrom = query.substring(fromIndex + 6).trim(); + const tableNameMatch = afterFrom.match(/^([`\w\[\]]+)/); + return tableNameMatch ? tableNameMatch[1] : 'unknown'; + } + extractColumnNamesFromQuery(query) { + // Parse SELECT clause to extract column names + // Handles: SELECT col1, col2, col3 FROM table + // Also handles: SELECT * FROM table (returns empty array, will need different approach) + const selectMatch = query.match(/SELECT\s+(.+?)\s+FROM/i); + if (!selectMatch) return []; + const selectClause = selectMatch[1].trim(); + // If it's SELECT *, we can't determine column names from the query alone + if (selectClause === '*') return []; + // Split by commas and clean up column names + const columns = selectClause.split(',').map(col => { + col = col.trim(); + // Remove table prefix if present (e.g., "table.col" -> "col") + if (col.includes('.')) { + col = col.split('.').pop(); + } + // Remove AS aliases (e.g., "col AS alias" -> "col") + if (col.toUpperCase().includes(' AS ')) { + col = col.split(/\s+AS\s+/i)[0].trim(); + } + return col; + }); + return columns; + } + extractColumnNameFromOdbcQuery(query) { + const columns = this.extractColumnNamesFromQuery(query); + return columns.length === 1 ? columns[0] : null; + } + combineOdbcQueries(cells, timestampColumns = []) { + if (cells.length === 0) return null; + // Extract table name from first query + const firstQuery = cells[0].variableId; + const upperQuery = firstQuery.toUpperCase(); + const fromIndex = upperQuery.indexOf(' FROM '); + if (fromIndex === -1) return null; + const tablePart = firstQuery.substring(fromIndex); + // Extract column names from all queries + const odbcColumns = []; + cells.forEach(cell => { + const columnMatch = cell.variableId.match(/SELECT\s+(.+?)\s+FROM/i); + if (columnMatch) { + const selectClause = columnMatch[1].trim(); + // For single columns, just add them + if (!selectClause.includes(',')) { + odbcColumns.push(selectClause); + } else { + // For multi-column, split and add + selectClause.split(',').forEach(col => odbcColumns.push(col.trim())); + } + } + }); + // Combine ODBC columns with timestamp columns + const allColumns = [...odbcColumns, ...timestampColumns]; + if (allColumns.length === 0) return null; + // Remove duplicates + const uniqueColumns = [...new Set(allColumns)]; + return `SELECT ${uniqueColumns.join(', ')} ${tablePart}`; + } + addDateFilterToOdbcQuery(baseQuery) { + // Parse the base query to see if it has a FROM clause and potential timestamp columns + const upperQuery = baseQuery.toUpperCase(); + const fromIndex = upperQuery.indexOf(' FROM '); + if (fromIndex === -1) return baseQuery; + // Extract table name (simplified - assumes single table) + const afterFrom = baseQuery.substring(fromIndex + 6).trim(); + const tableNameMatch = afterFrom.match(/^([`\w\[\]]+)/); + if (!tableNameMatch) return baseQuery; + // For now, we'll assume common timestamp column names + // In a more advanced implementation, we could query the database schema + const timestampColumns = ['timestamp', 'created_at', 'created_date', 'date_created', 'time', 'datetime', 'dt']; + // Check if any timestamp columns have UTC to Local conversion enabled + // If so, we need to convert the query times from LOCAL to UTC + let shouldConvertToUtc = false; + for (const column of this.displayedColumns) { + const col = this.columnsStyle[column]; + if (col && col.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp) { + // Check single source UTC flag + if (col.convertUtcToLocal) { + shouldConvertToUtc = true; + break; + } + // Check multiple sources UTC flags + if (col.odbcTimestampColumns && col.odbcTimestampColumns.some(ts => ts.convertUtcToLocal)) { + shouldConvertToUtc = true; + break; + } + } + } + // Use the pre-calculated range from this.range (set in onRangeChanged or onDateRange) + // this.range is already in milliseconds and represents LOCAL times + let startDate = new Date(this.range.from); + let endDate = new Date(this.range.to); + // If UTC to Local conversion is enabled, we need to convert these LOCAL times to UTC + // for the database query. The database stores UTC times, but the user sees LOCAL times. + // To get the right records, we need to shift the query range by the timezone offset. + // Timezone offset is positive for west of GMT, negative for east + // We ADD the offset to convert LOCAL → UTC + if (shouldConvertToUtc) { + const tzOffsetMs = new Date().getTimezoneOffset() * 60 * 1000; + startDate = new Date(this.range.from + tzOffsetMs); + endDate = new Date(this.range.to + tzOffsetMs); + } + // Format timestamps for SQL queries + const formatSqlTimestamp = date => { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + const seconds = String(date.getSeconds()).padStart(2, '0'); + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + }; + const startTimestamp = formatSqlTimestamp(startDate); + const endTimestamp = formatSqlTimestamp(endDate); + // Try to add WHERE clause with common timestamp column names + // Use proper quoting based on database type - PostgreSQL uses double quotes + for (const col of timestampColumns) { + // Check if column appears in SELECT clause (with various separators) + const columnRegex = new RegExp(`(?:^|,|\\s)${col}(?:$|,|\\s)`, 'i'); + if (columnRegex.test(baseQuery) || upperQuery.includes(`"${col}"`) || upperQuery.includes(`\`${col}\``) || upperQuery.includes(`[${col}]`)) { + const whereClause = ` WHERE "${col}" >= '${startTimestamp}' AND "${col}" <= '${endTimestamp}'`; + if (!upperQuery.includes(' WHERE ')) { + return baseQuery + whereClause; + } else { + // If WHERE already exists, add with AND + return baseQuery + ` AND "${col}" >= '${startTimestamp}' AND "${col}" <= '${endTimestamp}'`; + } + } + } + // No timestamp column found, return original query (show all data) + return baseQuery; + } + addColumnToMap(cell) { + if (!this.tagsColumnMap[cell.variableId]) { + this.tagsColumnMap[cell.variableId] = []; + } + this.tagsColumnMap[cell.variableId].push(cell); + } + getVariableIdsForQuery() { + // Get all variable IDs from columns, even if tagsColumnMap isn't populated yet + // (tagsColumnMap is populated in loadData(), which might not have run yet at ngOnInit time) + return this.tableOptions.columns.filter(col => col.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.variable && col.variableId).map(col => col.variableId); + } + isAlarmsType() { + return this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.alarms || this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.alarmsHistory; + } + isReportsType() { + return this.type === _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableType.reports; + } + onAckAlarm(alarm) { + if (!this.isEditor) { + this.hmiService.setAlarmAck(alarm.name?.stringValue).subscribe(result => {}, error => { + console.error('Error setAlarmAck', error); + }); + } + } + onDownloadReport(report) { + this.commandService.getReportFile(report.fileName).subscribe(content => { + let blob = new Blob([content], { + type: 'application/pdf' + }); + file_saver__WEBPACK_IMPORTED_MODULE_15__.saveAs(blob, report.fileName); + }, err => { + console.error('Download Report File err:', err); + }); + } + onRemoveReportFile(report) { + const userConfirmed = window.confirm(this.translateService.instant('msg.file-remove', { + value: report.fileName + })); + if (userConfirmed) { + this.reportsService.removeReportFile(report.fileName).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_26__.concatMap)(() => (0,rxjs__WEBPACK_IMPORTED_MODULE_22__.timer)(2000)), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_27__.catchError)(err => { + console.error(`Remove Report File ${report.fileName} err:`, err); + return (0,rxjs__WEBPACK_IMPORTED_MODULE_25__.of)(null); + })).subscribe(() => { + // this.loadDetails(report); + }); + } + } + static DefaultOptions() { + let options = { + paginator: { + show: false + }, + filter: { + show: false + }, + daterange: { + show: false + }, + realtime: false, + refreshInterval: 5, + lastRange: _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType.none, + gridColor: '#E0E0E0', + header: { + show: true, + height: 30, + fontSize: 12, + background: '#F0F0F0', + color: '#757575' + }, + toolbar: { + background: '#F0F0F0', + color: '#757575', + buttonColor: '#F0F0F0' + }, + row: { + height: 30, + fontSize: 10, + background: '#F9F9F9', + color: '#757575ff' + }, + selection: { + background: '#e0e0e0ff', + color: '#757575ff', + fontBold: true + }, + columns: [new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableColumn(_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getShortGUID('c_'), _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.timestamp, 'Date/Time'), new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableColumn(_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getShortGUID('c_'), _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCellType.label, 'Tags')], + alarmsColumns: [], + alarmFilter: { + filterA: [], + filterB: [], + filterC: [] + }, + reportsColumns: [], + reportFilter: { + filterA: [] + }, + rows: [] + }; + return options; + } + remapVariableIds(options, targetSignalsId) { + if (!targetSignalsId) { + return; + } + const updateVariableId = cell => { + if (cell.variableId && targetSignalsId[cell.variableId]) { + cell.variableId = targetSignalsId[cell.variableId]; + } + }; + const processCells = cells => { + if (cells) { + for (const cell of cells) { + updateVariableId(cell); + } + } + }; + if (options.columns) { + processCells(options.columns); + } + if (options.alarmsColumns) { + processCells(options.alarmsColumns); + } + if (options.reportsColumns) { + processCells(options.reportsColumns); + } + if (options.rows) { + for (const row of options.rows) { + processCells(row.cells); + } + } + } + static ctorParameters = () => [{ + type: _services_data_converter_service__WEBPACK_IMPORTED_MODULE_7__.DataConverterService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_9__.ProjectService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_11__.HmiService + }, { + type: _services_script_service__WEBPACK_IMPORTED_MODULE_8__.ScriptService + }, { + type: _services_reports_service__WEBPACK_IMPORTED_MODULE_13__.ReportsService + }, { + type: _services_language_service__WEBPACK_IMPORTED_MODULE_17__.LanguageService + }, { + type: _services_command_service__WEBPACK_IMPORTED_MODULE_16__.CommandService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_28__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_29__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_30__.ChangeDetectorRef + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_30__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_20__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_30__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_31__.MatSort, { + static: false + }] + }], + trigger: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_30__.ViewChild, + args: [_angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_32__.MatLegacyMenuTrigger, { + static: false + }] + }], + paginator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_30__.ViewChild, + args: [_angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_33__.MatLegacyPaginator, { + static: false + }] + }] + }; +}; +DataTableComponent = DataTableComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_30__.Component)({ + selector: 'app-data-table', + template: _data_table_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_data_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_data_converter_service__WEBPACK_IMPORTED_MODULE_7__.DataConverterService, _services_project_service__WEBPACK_IMPORTED_MODULE_9__.ProjectService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_11__.HmiService, _services_script_service__WEBPACK_IMPORTED_MODULE_8__.ScriptService, _services_reports_service__WEBPACK_IMPORTED_MODULE_13__.ReportsService, _services_language_service__WEBPACK_IMPORTED_MODULE_17__.LanguageService, _services_command_service__WEBPACK_IMPORTED_MODULE_16__.CommandService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_28__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_29__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_30__.ChangeDetectorRef])], DataTableComponent); + +class TableCellData extends _models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableCell { + rowIndex; + stringValue; +} +class TableRangeConverter { + static TableRangeToHours(crt) { + let types = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_4__.TableRangeType); + if (crt === types[0]) { + // TableRangeType.none + return 0; // No filtering + } else if (crt === types[1]) { + // TableRangeType.last1h + return 1; + } else if (crt === types[2]) { + // TableRangeType.last1d + return 24; + } else if (crt === types[3]) { + // TableRangeType.last3d + return 24 * 3; + } + return 0; + } +} + +/***/ }), + +/***/ 2613: +/*!********************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/html-table.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlTableComponent: () => (/* binding */ HtmlTableComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data-table/data-table.component */ 76588); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var HtmlTableComponent_1; + + + + + +let HtmlTableComponent = HtmlTableComponent_1 = class HtmlTableComponent { + static TypeTag = 'svg-ext-own_ctrl-table'; + static LabelTag = 'HtmlTable'; + static prefixD = 'D-OXC_'; + static getSignals(pro) { + if (pro.type === _models_hmi__WEBPACK_IMPORTED_MODULE_0__.TableType.data && pro.options?.rows) { + let signalIds = []; + pro.options.rows.forEach(row => { + row.cells.forEach(cell => { + if (cell && cell.variableId && cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_0__.TableCellType.variable) { + signalIds.push(cell.variableId); + } + }); + }); + return signalIds; + } else if (pro.options?.realtime) { + let signalIds = []; + pro.options.columns?.forEach(col => { + if (col.variableId && col.type === _models_hmi__WEBPACK_IMPORTED_MODULE_0__.TableCellType.variable) { + signalIds.push(col.variableId); + } + }); + return signalIds; + } + return null; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_2__.GaugeDialogType.Table; + } + static processValue(ga, svgele, sig, gaugeStatus, gauge) { + try { + gauge.addValue(sig.id, (sig.timestamp || new Date().getTime()) / 1000, sig.value); + } catch (err) { + console.error(err); + } + } + static initElement(gab, resolver, viewContainerRef, isview) { + let ele = document.getElementById(gab.id); + if (ele) { + ele?.setAttribute('data-name', gab.name); + let htmlTable = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.searchTreeStartWith(ele, this.prefixD); + if (htmlTable) { + let factory = resolver.resolveComponentFactory(_data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__.DataTableComponent); + const componentRef = viewContainerRef.createComponent(factory); + // if (gab.property) { + // componentRef.instance.withToolbar = (gab.property.type === 'history') ? true : false; + // } + if (!gab.property) { + gab.property = { + id: null, + type: _models_hmi__WEBPACK_IMPORTED_MODULE_0__.TableType.data, + options: _data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__.DataTableComponent.DefaultOptions(), + events: [] + }; + } + htmlTable.innerHTML = ''; + componentRef.instance.isEditor = !isview; + // componentRef.instance.rangeType = chartRange; + componentRef.instance.id = gab.id; + componentRef.instance.type = gab.property.type; + componentRef.instance.events = gab.property.events; + componentRef.instance.dataFilter = null; + if (gab.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_0__.TableType.alarms && gab.property.options?.alarmFilter) { + const dataFilter = { + priority: gab.property.options?.alarmFilter?.filterA, + text: gab.property.options?.alarmFilter?.filterB[0], + group: gab.property.options?.alarmFilter?.filterB[1], + tagIds: gab.property.options?.alarmFilter?.filterC + }; + componentRef.instance.dataFilter = dataFilter; + } else if (gab.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_0__.TableType.reports && gab.property.options?.reportFilter) { + const dataFilter = { + name: gab.property.options?.reportFilter?.filterA[0], + count: gab.property.options?.reportFilter?.filterA[1] + }; + componentRef.instance.dataFilter = dataFilter; + } + componentRef.changeDetectorRef.detectChanges(); + htmlTable.appendChild(componentRef.location.nativeElement); + // let opt = { panel: { height: htmlGraph.clientHeight, width: htmlGraph.clientWidth } }; + let opt = _data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__.DataTableComponent.DefaultOptions(); + // componentRef.instance.setOptions(opt); + componentRef.instance['myComRef'] = componentRef; + componentRef.instance['name'] = gab.name; + return componentRef.instance; + } + } + } + static detectChange(gab, res, ref) { + return HtmlTableComponent_1.initElement(gab, res, ref, false); + } +}; +HtmlTableComponent = HtmlTableComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)()], HtmlTableComponent); + + +/***/ }), + +/***/ 32179: +/*!***********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-alarms/table-alarms.component.ts ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TableAlarmsComponent: () => (/* binding */ TableAlarmsComponent) +/* harmony export */ }); +/* harmony import */ var _table_alarms_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table-alarms.component.html?ngResource */ 33846); +/* harmony import */ var _table_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table-alarms.component.scss?ngResource */ 29805); +/* harmony import */ var _table_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_table_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_models/alarm */ 38238); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../_models/device */ 15625); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let TableAlarmsComponent = class TableAlarmsComponent { + dialog; + projectService; + dialogRef; + data; + alarmsColumns = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmColumns.filter(column => column !== _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmColumnsType.history); + historyColumns = _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmHistoryColumns.filter(column => column !== _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmHistoryColumnsType.history); + alarmPriorityType = [_models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmsType.HIGH_HIGH, _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmsType.HIGH, _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmsType.LOW, _models_alarm__WEBPACK_IMPORTED_MODULE_3__.AlarmsType.INFO]; + tableType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType; + alarmsFilter = { + priority: [], + text: '', + group: '', + tagIds: [] + }; + constructor(dialog, projectService, dialogRef, data) { + this.dialog = dialog; + this.projectService = projectService; + this.dialogRef = dialogRef; + this.data = data; + this.alarmsFilter.priority = this.data.filter?.filterA || []; + this.alarmsFilter.text = this.data.filter?.filterB[0]; + this.alarmsFilter.group = this.data.filter?.filterB[1]; + this.alarmsFilter.tagIds = this.data.filter?.filterC || []; + } + onAlarmColumChanged(clnId, selected) { + let indexToRemove = this.data.columns.indexOf(clnId); + if (selected) { + if (indexToRemove === -1) { + this.data.columns.push(clnId); + } + } else { + this.data.columns.splice(indexToRemove, 1); + } + } + onAlarmTypeChanged(prioId, selected) { + let indexToRemove = this.alarmsFilter.priority.indexOf(prioId); + if (selected) { + if (indexToRemove === -1) { + this.alarmsFilter.priority.push(prioId); + } + } else { + this.alarmsFilter.priority.splice(indexToRemove, 1); + } + } + removeFilterTag(tagId) { + const indexToRemove = this.alarmsFilter.tagIds.indexOf(tagId); + if (indexToRemove > -1) { + this.alarmsFilter.tagIds.splice(indexToRemove, 1); + } + } + getDeviceTagName(tagId) { + return this.projectService.getTagFromId(tagId)?.name; + } + getDeviceName(tagId) { + return this.projectService.getDeviceFromTagId(tagId)?.name; + } + onAddTags() { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_5__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: null, + multiSelection: true, + variablesId: this.alarmsFilter.tagIds, + deviceFilter: [_models_device__WEBPACK_IMPORTED_MODULE_6__.DeviceType.internal] + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.alarmsFilter.tagIds = result.variablesId || []; + } + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.filter = { + filterA: this.alarmsFilter.priority || [], + filterB: [this.alarmsFilter.text, this.alarmsFilter.group], + filterC: this.alarmsFilter.tagIds || [] + }; + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +TableAlarmsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-table-alarms', + template: _table_alarms_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_table_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, Object])], TableAlarmsComponent); + + +/***/ }), + +/***/ 75178: +/*!********************************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-customizer/table-customizer-cell-edit/table-customizer-cell-edit.component.ts ***! + \********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TableCustomizerCellEditComponent: () => (/* binding */ TableCustomizerCellEditComponent), +/* harmony export */ TableCustomizerCellRowType: () => (/* binding */ TableCustomizerCellRowType) +/* harmony export */ }); +/* harmony import */ var _table_customizer_cell_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table-customizer-cell-edit.component.html?ngResource */ 79668); +/* harmony import */ var _table_customizer_cell_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table-customizer-cell-edit.component.css?ngResource */ 62107); +/* harmony import */ var _table_customizer_cell_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_table_customizer_cell_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../_models/hmi */ 84126); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../_services/project.service */ 57610); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../odbc-browser/odbc-browser.component */ 11234); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TableCustomizerCellEditComponent = class TableCustomizerCellEditComponent { + projectService; + dialogRef; + data; + dialog; + tableType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType; + cellType = TableCustomizerCellRowType; + columnType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType; + devicesValues = { + devices: null + }; + constructor(projectService, dialogRef, data, dialog) { + this.projectService = projectService; + this.dialogRef = dialogRef; + this.data = data; + this.dialog = dialog; + this.devicesValues.devices = Object.values(this.projectService.getDevices()); + // Initialize odbcTimestampColumns array if not present + if (!this.data.cell.odbcTimestampColumns) { + this.data.cell.odbcTimestampColumns = []; + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.data); + } + onSetVariable(event) { + this.data.cell.variableId = event.variableId; + this.data.cell.bitmask = event.bitmask; + if (this.data.table === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.data) { + if (event.variableRaw) { + this.data.cell.label = event.variableRaw.name; + if (this.data.cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.device) { + let device = this.projectService.getDeviceFromTagId(event.variableId); + this.data.cell.label = device ? device.name : ''; + } + } else { + this.data.cell.label = null; + } + } else if (this.data.table === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.history) { + if (event.variableRaw) { + if (this.data.cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.device) { + let device = this.projectService.getDeviceFromTagId(event.variableId); + this.data.cell['exname'] = device ? device.name : ''; + } + } + } + } + openOdbcBrowser() { + const dialogRef = this.dialog.open(_odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_4__.OdbcBrowserComponent, { + data: { + deviceId: this.data.cell['deviceId'], + query: this.data.cell.variableId + }, + width: '600px', + height: '700px' + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.data.cell.variableId = result.query; + this.data.cell['deviceId'] = result.deviceId; // Store device ID for future reference + } + }); + } + + openOdbcTimestampBrowser() { + // Extract table name from the ODBC query + const tableNameMatch = this.data.cell.variableId.match(/FROM\s+([`\[\]"'\w]+)/i); + const tableName = tableNameMatch ? tableNameMatch[1].replace(/[`\[\]"']/g, '') : ''; + const dialogRef = this.dialog.open(_odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_4__.OdbcBrowserComponent, { + data: { + deviceId: this.data.cell['deviceId'], + selectColumn: true, + preselectedTable: tableName // Pass table name to pre-select + }, + + width: '600px', + height: '700px' + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.column && result.tableName) { + // For backward compatibility, store in single column as well + this.data.cell.odbcTimestampColumn = result.column; + // Also add to the multi-source array if not already present + if (!this.data.cell.odbcTimestampColumns) { + this.data.cell.odbcTimestampColumns = []; + } + const existing = this.data.cell.odbcTimestampColumns.find(ts => ts.table === result.tableName && ts.column === result.column); + if (!existing) { + this.data.cell.odbcTimestampColumns.push({ + table: result.tableName, + column: result.column, + convertUtcToLocal: false + }); + } + } + }); + } + /** + * Add a new ODBC timestamp column source from a different table + */ + onAddTimestampSource() { + const dialogRef = this.dialog.open(_odbc_browser_odbc_browser_component__WEBPACK_IMPORTED_MODULE_4__.OdbcBrowserComponent, { + data: { + deviceId: this.data.cell['deviceId'], + selectColumn: true, + selectTable: true // Allow table selection + }, + + width: '600px', + height: '700px' + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.column && result.tableName) { + if (!this.data.cell.odbcTimestampColumns) { + this.data.cell.odbcTimestampColumns = []; + } + // Check if this table/column combo already exists + const existing = this.data.cell.odbcTimestampColumns.find(ts => ts.table === result.tableName && ts.column === result.column); + if (!existing) { + this.data.cell.odbcTimestampColumns.push({ + table: result.tableName, + column: result.column, + convertUtcToLocal: false + }); + } + } + }); + } + /** + * Remove a timestamp source + */ + onRemoveTimestampSource(index) { + if (this.data.cell.odbcTimestampColumns) { + this.data.cell.odbcTimestampColumns.splice(index, 1); + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialog + }]; +}; +TableCustomizerCellEditComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-table-customizer-cell-edit', + template: _table_customizer_cell_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_table_customizer_cell_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef, Object, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialog])], TableCustomizerCellEditComponent); + +var TableCustomizerCellRowType; +(function (TableCustomizerCellRowType) { + TableCustomizerCellRowType[TableCustomizerCellRowType["column"] = 0] = "column"; + TableCustomizerCellRowType[TableCustomizerCellRowType["row"] = 1] = "row"; +})(TableCustomizerCellRowType || (TableCustomizerCellRowType = {})); + +/***/ }), + +/***/ 24908: +/*!*******************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-customizer/table-customizer.component.ts ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TableCustomizerComponent: () => (/* binding */ TableCustomizerComponent) +/* harmony export */ }); +/* harmony import */ var _table_customizer_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table-customizer.component.html?ngResource */ 17622); +/* harmony import */ var _table_customizer_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table-customizer.component.scss?ngResource */ 32849); +/* harmony import */ var _table_customizer_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_table_customizer_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./table-customizer-cell-edit/table-customizer-cell-edit.component */ 75178); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + +let TableCustomizerComponent = class TableCustomizerComponent { + dialog; + dialogRef; + data; + projectService; + tableType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType; + displayedColumns = []; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_6__.MatLegacyTableDataSource([]); + constructor(dialog, dialogRef, data, projectService) { + this.dialog = dialog; + this.dialogRef = dialogRef; + this.data = data; + this.projectService = projectService; + } + ngOnInit() { + this.loadData(); + } + loadData() { + this.displayedColumns = this.data.columns.map(c => c.id); + let data = []; + this.data.rows.forEach(r => { + let row = {}; + r.cells.forEach(c => { + if (c) { + row[c.id] = c; + } + }); + data.push(row); + }); + if (this.data.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.data) { + this.dataSource.data = data; + } + } + onAddColumn() { + this.onEditColumn(); + } + onAddRow() { + let cells = []; + this.data.columns.forEach(c => { + cells.push(new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCell(c.id, c.type)); + }); + this.data.rows.push(new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableRow(cells)); + this.loadData(); + } + onEditColumn(columnId) { + let colIndex = this.data.columns.findIndex(c => c.id === columnId); + let cell = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableColumn(_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getShortGUID('c_'), _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.label); + if (colIndex >= 0) { + cell = this.data.columns[colIndex]; + } + let dialogRef = this.dialog.open(_table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_5__.TableCustomizerCellEditComponent, { + data: { + table: this.data.type, + type: _table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_5__.TableCustomizerCellRowType.column, + cell: JSON.parse(JSON.stringify(cell)) + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let colIndex = this.data.columns.findIndex(c => c.id === result.cell.id); + if (colIndex >= 0) { + this.data.columns[colIndex] = result.cell; + } else { + this.data.columns.push(result.cell); + } + this.loadData(); + } + }); + } + onEditCell(row, columnId) { + const rowIndex = this.dataSource.data.indexOf(row, 0); + let colIndex = this.data.columns.findIndex(c => c.id === columnId); + let cell = this.data.rows[rowIndex].cells[colIndex]; + if (!cell) { + cell = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCell(columnId, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.label); + } + let dialogRef = this.dialog.open(_table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_5__.TableCustomizerCellEditComponent, { + data: { + table: this.data.type, + type: _table_customizer_cell_edit_table_customizer_cell_edit_component__WEBPACK_IMPORTED_MODULE_5__.TableCustomizerCellRowType.row, + cell: JSON.parse(JSON.stringify(cell)) + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.data.rows[rowIndex].cells[colIndex] = result.cell; + const currentData = this.dataSource.data.slice(); // Create a shallow copy + currentData[rowIndex][columnId] = result.cell; + this.dataSource.data = currentData; + } + }); + } + onRemoveColumn(column) { + this.data.columns.splice(this.data.columns.findIndex(c => c.id === column), 1); + this.ngOnInit(); + } + onRemoveRow(row) { + const index = this.dataSource.data.indexOf(row, 0); + this.data.rows.splice(index, 1); + const currentData = this.dataSource.data.slice(); + currentData.splice(index, 1); + this.dataSource.data = currentData; + } + getColumnType(colIndex) { + return this.getCellType(this.data.columns[colIndex]); + } + getColumnSetting(colIndex) { + return this.data.columns[colIndex].label || ''; + } + getCellType(cell) { + if (cell) { + return `${cell.type ? cell.type : ''}`; + } + return ''; + } + getCellSetting(cell) { + if (cell) { + if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.label) { + return cell.label || ''; + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.timestamp) { + return cell.valueFormat ? cell.valueFormat : ''; + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.variable) { + return (cell.label || '') + (cell.valueFormat ? ` (${cell.valueFormat})` : ''); + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.device) { + return cell.label || ''; + } else if (cell.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.odbc) { + const deviceName = cell['deviceId'] ? this.projectService.getDeviceFromId(cell['deviceId'])?.name : ''; + return `${cell.variableId || ''}${deviceName ? ` (${deviceName})` : ''}`; + } + } + return ''; + } + onMoveColumnLeft(index) { + if (index > 0) { + [this.data.columns[index - 1], this.data.columns[index]] = [this.data.columns[index], this.data.columns[index - 1]]; + this.data.rows.forEach(row => { + [row.cells[index - 1], row.cells[index]] = [row.cells[index], row.cells[index - 1]]; + }); + this.loadData(); + } + } + onMoveColumnRight(index) { + if (index < this.data.columns.length - 1) { + [this.data.columns[index + 1], this.data.columns[index]] = [this.data.columns[index], this.data.columns[index + 1]]; + this.data.rows.forEach(row => { + [row.cells[index + 1], row.cells[index]] = [row.cells[index], row.cells[index + 1]]; + }); + this.loadData(); + } + } + onMoveRowUp(row) { + const index = this.dataSource.data.indexOf(row); + if (index > 0) { + const temp = this.data.rows[index]; + this.data.rows[index] = this.data.rows[index - 1]; + this.data.rows[index - 1] = temp; + this.loadData(); + } + } + onMoveRowDown(row) { + const index = this.dataSource.data.indexOf(row); + if (index < this.data.rows.length - 1) { + const temp = this.data.rows[index]; + this.data.rows[index] = this.data.rows[index + 1]; + this.data.rows[index + 1] = temp; + this.loadData(); + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.rows.forEach(row => { + // check missing cell, happens if you add a column and do not set it in the rows + // or remove cells of deleted columns + if (row.cells.length < this.data.columns.length) { + for (let i = row.cells.length; i < this.data.columns.length; i++) { + row.cells.push(new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCell(this.data.columns[i].id, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.label, '')); + } + } else if (row.cells.length > this.data.columns.length) { + let columnIds = this.data.columns.map(column => column.id); + let cells = row.cells.filter(cell => columnIds.indexOf(cell.id) >= 0); + row.cells = cells; + } + }); + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }]; +}; +TableCustomizerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-table-customizer', + template: _table_customizer_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_table_customizer_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, Object, _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService])], TableCustomizerComponent); + + +/***/ }), + +/***/ 24191: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-property/table-property.component.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TablePropertyComponent: () => (/* binding */ TablePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _table_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table-property.component.html?ngResource */ 40069); +/* harmony import */ var _table_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table-property.component.scss?ngResource */ 6130); +/* harmony import */ var _table_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_table_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../data-table/data-table.component */ 76588); +/* harmony import */ var _table_customizer_table_customizer_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../table-customizer/table-customizer.component */ 24908); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../_models/script */ 10846); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _table_alarms_table_alarms_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../table-alarms/table-alarms.component */ 32179); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../_models/alarm */ 38238); +/* harmony import */ var _table_reports_table_reports_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../table-reports/table-reports.component */ 74719); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../_models/report */ 90440); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + + + +let TablePropertyComponent = class TablePropertyComponent { + dialog; + projectService; + translateService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_12__.EventEmitter(); + set reload(b) { + this._reload(); + } + grptabs; + tableTypeCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_13__.UntypedFormControl(); + options = _data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__.DataTableComponent.DefaultOptions(); + tableType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType; + columnType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType; + alignType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellAlignType; + lastRangeType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableRangeType; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.defaultColor; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_14__.Subject(); + property; + eventType = [_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.select)]; + selectActionType = {}; + actionRunScript = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + actionSetTag = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onSetTag); + scripts$; + constructor(dialog, projectService, translateService) { + this.dialog = dialog; + this.projectService = projectService; + this.translateService = translateService; + // this.selectActionType[Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.onwindow)] = this.translateService.instant(GaugeEventActionType.onwindow); + // this.selectActionType[Utils.getEnumKey(GaugeEventActionType, GaugeEventActionType.ondialog)] = this.translateService.instant(GaugeEventActionType.ondialog); + this.selectActionType[_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + this.selectActionType[_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onSetTag)] = 'Tag'; + } + ngOnInit() { + Object.keys(this.lastRangeType).forEach(key => { + this.translateService.get(this.lastRangeType[key]).subscribe(txt => { + this.lastRangeType[key] = txt; + }); + }); + this._reload(); + this.scripts$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_15__.of)(this.projectService.getScripts()).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_16__.takeUntil)(this.destroy$)); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + _reload() { + this.property = this.data.settings.property; + if (this.property) { + this.tableTypeCtrl.setValue(this.property.type); + this.options = Object.assign(this.options, _data_table_data_table_component__WEBPACK_IMPORTED_MODULE_3__.DataTableComponent.DefaultOptions(), this.property.options); + // If table type is history and date range is set to none, force date range toggle to false + if (this.tableTypeCtrl.value === this.tableType.history && this.options.lastRange === this.lastRangeType.none) { + this.options.daterange.show = false; + } + } else { + this.ngOnInit(); + } + } + onTableChanged() { + // If table type is history and date range is set to none, force date range toggle to false + if (this.tableTypeCtrl.value === this.tableType.history && this.options.lastRange === this.lastRangeType.none) { + this.options.daterange.show = false; + } + this.property.options = JSON.parse(JSON.stringify(this.options)); + this.property.type = this.tableTypeCtrl.value; + this.onPropChanged.emit(this.data.settings); + } + onCustomize() { + if (this.isAlarmsType()) { + this.customizeAlarmsTable(); + } else if (this.isReportsType()) { + this.customizeReportsTable(); + } else { + this.customizeTable(); + } + } + customizeTable() { + let dialogRef = this.dialog.open(_table_customizer_table_customizer_component__WEBPACK_IMPORTED_MODULE_4__.TableCustomizerComponent, { + data: { + columns: JSON.parse(JSON.stringify(this.options.columns)), + rows: JSON.parse(JSON.stringify(this.options.rows)), + type: this.property.type + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.options.columns = result.columns; + this.options.rows = result.rows; + this.onTableChanged(); + } + }); + } + customizeAlarmsTable() { + let dialogRef = this.dialog.open(_table_alarms_table_alarms_component__WEBPACK_IMPORTED_MODULE_8__.TableAlarmsComponent, { + data: { + columns: this.options.alarmsColumns.map(cln => cln.id), + filter: JSON.parse(JSON.stringify(this.options.alarmFilter)), + type: this.property.type + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let columns = []; + result.columns.forEach(clnId => { + const column = this.options.alarmsColumns.find(cln => cln.id === clnId); + if (!column) { + columns.push(new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableColumn(clnId, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.label, this.translateService.instant('alarms.view-' + clnId))); + } else { + columns.push(column); + } + }); + this.options.alarmsColumns = columns; + if (this.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.alarms) { + this.options.alarmsColumns = this.options.alarmsColumns.sort((a, b) => _models_alarm__WEBPACK_IMPORTED_MODULE_9__.AlarmColumns.indexOf(a.id) - _models_alarm__WEBPACK_IMPORTED_MODULE_9__.AlarmColumns.indexOf(b.id)); + } else if (this.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.alarmsHistory) { + this.options.alarmsColumns = this.options.alarmsColumns.sort((a, b) => _models_alarm__WEBPACK_IMPORTED_MODULE_9__.AlarmHistoryColumns.indexOf(a.id) - _models_alarm__WEBPACK_IMPORTED_MODULE_9__.AlarmHistoryColumns.indexOf(b.id)); + } + this.options.alarmFilter = result.filter; + this.onTableChanged(); + } + }); + } + customizeReportsTable() { + let dialogRef = this.dialog.open(_table_reports_table_reports_component__WEBPACK_IMPORTED_MODULE_10__.TableReportsComponent, { + data: { + columns: this.options.reportsColumns.map(cln => cln.id), + filter: JSON.parse(JSON.stringify(this.options.reportFilter)), + type: this.property.type + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let columns = []; + result.columns.forEach(clnId => { + const column = this.options.reportsColumns.find(cln => cln.id === clnId); + if (!column) { + columns.push(new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableColumn(clnId, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableCellType.label, this.translateService.instant('table.report-view-' + clnId))); + } else { + columns.push(column); + } + }); + this.options.reportsColumns = columns.sort((a, b) => _models_report__WEBPACK_IMPORTED_MODULE_11__.ReportColumns.indexOf(a.id) - _models_report__WEBPACK_IMPORTED_MODULE_11__.ReportColumns.indexOf(b.id)); + this.options.reportFilter = result.filter; + this.onTableChanged(); + } + }); + } + onAddEvent() { + const gaugeEvent = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEvent(); + this.addEvent(gaugeEvent); + } + addEvent(gaugeEvent) { + if (!this.property.events) { + this.property.events = []; + } + this.property.events.push(gaugeEvent); + } + getColumns() { + if (this.isAlarmsType()) { + return this.options.alarmsColumns; + } else if (this.isReportsType()) { + return this.options.reportsColumns; + } else { + return this.options.columns; + } + } + isAlarmsType() { + return this.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.alarms || this.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.alarmsHistory; + } + isReportsType() { + return this.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.reports; + } + onRemoveEvent(index) { + this.property.events.splice(index, 1); + this.onTableChanged(); + } + onScriptChanged(scriptId, event) { + const scripts = this.projectService.getScripts(); + if (event && scripts) { + let script = scripts.find(s => s.id === scriptId); + event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_6__.SCRIPT_PARAMS_MAP] = []; + if (script && script.parameters) { + event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_6__.SCRIPT_PARAMS_MAP] = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.clone(script.parameters); + } + } + this.onTableChanged(); + } + onTagSelected(deviceTag, event) { + event.actparam = deviceTag.variableId; + this.onTableChanged(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Input, + args: ['reload'] + }], + grptabs: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: ['grptabs', { + static: false + }] + }] + }; +}; +TablePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-table-property', + template: _table_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_table_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_17__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__.TranslateService])], TablePropertyComponent); + + +/***/ }), + +/***/ 74719: +/*!*************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-reports/table-reports.component.ts ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TableReportsComponent: () => (/* binding */ TableReportsComponent) +/* harmony export */ }); +/* harmony import */ var _table_reports_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table-reports.component.html?ngResource */ 86969); +/* harmony import */ var _table_reports_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table-reports.component.scss?ngResource */ 71999); +/* harmony import */ var _table_reports_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_table_reports_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/report */ 90440); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let TableReportsComponent = class TableReportsComponent { + dialog; + projectService; + dialogRef; + data; + reportsColumns = _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportColumns; + reportsFilter = { + name: '', + count: '' + }; + constructor(dialog, projectService, dialogRef, data) { + this.dialog = dialog; + this.projectService = projectService; + this.dialogRef = dialogRef; + this.data = data; + this.reportsFilter.name = this.data.filter?.filterA[0]; + this.reportsFilter.count = this.data.filter?.filterA[1]; + } + onReportColumChanged(clnId, selected) { + let indexToRemove = this.data.columns.indexOf(clnId); + if (selected) { + if (indexToRemove === -1) { + this.data.columns.push(clnId); + } + } else { + this.data.columns.splice(indexToRemove, 1); + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.filter = { + filterA: [this.reportsFilter.name, this.reportsFilter.count] + }; + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +TableReportsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-table-reports', + template: _table_reports_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_table_reports_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, Object])], TableReportsComponent); + + +/***/ }), + +/***/ 58858: +/*!********************************************************************!*\ + !*** ./src/app/gauges/controls/html-video/html-video.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ HtmlVideoComponent: () => (/* binding */ HtmlVideoComponent) +/* harmony export */ }); +/* harmony import */ var _html_video_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./html-video.component.html?ngResource */ 43498); +/* harmony import */ var _html_video_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-video.component.css?ngResource */ 53643); +/* harmony import */ var _html_video_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_video_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../_helpers/endpointapi */ 25266); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HtmlVideoComponent_1; + + + + + + + + +let HtmlVideoComponent = HtmlVideoComponent_1 = class HtmlVideoComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-own_ctrl-video'; + static LabelTag = 'HtmlVideo'; + static prefixD = 'D-OXC_'; + static actionsType = { + stop: _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeActionsType.stop, + start: _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeActionsType.start, + pause: _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeActionsType.pause, + reset: _models_hmi__WEBPACK_IMPORTED_MODULE_4__.GaugeActionsType.reset + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.actions) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getActions(type) { + return this.actionsType; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_3__.GaugeDialogType.Video; + } + static processValue(ga, svgele, sig) { + try { + if (svgele?.node?.children?.length >= 1) { + const parentIframe = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.searchTreeStartWith(svgele.node, this.prefixD); + const video = parentIframe.querySelector('video'); + if (!video) { + return; + } + if (sig.id === ga.property.variableId) { + const newSrc = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_6__.EndPointApi.resolveUrl(String(sig.value ?? '').trim()); + const same = newSrc === video.currentSrc || newSrc === video.src || video.querySelector('source')?.src === newSrc; + video.src = sig.value; + if (!same) { + video.pause(); + while (video.firstChild) { + video.removeChild(video.firstChild); + } + const source = document.createElement('source'); + source.src = newSrc; + source.type = HtmlVideoComponent_1.getMimeTypeFromUrl(newSrc); + video.appendChild(source); + video.load(); + } + const image = parentIframe.querySelector('img'); + if (image) { + if (sig.value) { + image.style.display = 'none'; + } else { + image.style.display = 'block'; + } + } + } else { + let value = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.toFloatOrNumber(sig.value); + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + HtmlVideoComponent_1.processAction(act, video, value); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static initElement(gaugeSettings, isView = false) { + let ele = document.getElementById(gaugeSettings.id); + if (!ele) { + return null; + } + ele?.setAttribute('data-name', gaugeSettings.name); + let svgVideoContainer = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.searchTreeStartWith(ele, this.prefixD); + if (svgVideoContainer) { + svgVideoContainer.innerHTML = ''; + const rawSrc = gaugeSettings.property?.options?.address; + const initImage = gaugeSettings.property?.options?.initImage; + const videoSrc = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_6__.EndPointApi.resolveUrl(rawSrc); + const hasVideo = !!rawSrc; + if (initImage && !hasVideo) { + const img = document.createElement('img'); + img.src = initImage; + img.style.width = '100%'; + img.style.height = '100%'; + img.style.objectFit = 'contain'; + svgVideoContainer.appendChild(img); + } + let video = document.createElement('video'); + video.setAttribute('playsinline', 'true'); + video.style.width = '100%'; + video.style.height = '100%'; + video.style.objectFit = 'contain'; + video.style.display = 'block'; + if (gaugeSettings.property?.options?.showControls) { + video.setAttribute('controls', ''); + } + const source = document.createElement('source'); + source.src = videoSrc; + if (hasVideo) { + source.type = HtmlVideoComponent_1.getMimeTypeFromUrl(videoSrc); + } + video.appendChild(source); + svgVideoContainer.appendChild(video); + } + return svgVideoContainer; + } + static processAction(act, video, value) { + let actValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(act.bitmask, value); + if (this.actionsType[act.type] === this.actionsType.start) { + if (act.range.min <= actValue && act.range.max >= actValue) { + video.play().catch(err => console.error('Video play failed:', err)); + } + } else if (this.actionsType[act.type] === this.actionsType.pause) { + if (act.range.min <= actValue && act.range.max >= actValue) { + video.pause(); + } + } else if (this.actionsType[act.type] === this.actionsType.stop) { + if (act.range.min <= actValue && act.range.max >= actValue) { + video.pause(); + } + } else if (this.actionsType[act.type] === this.actionsType.reset) { + if (act.range.min <= actValue && act.range.max >= actValue) { + video.pause(); + video.currentTime = 0; + } + } + } + static detectChange(gaugeSettings, res, ref) { + return HtmlVideoComponent_1.initElement(gaugeSettings, false); + } + static getMimeTypeFromUrl(url) { + const ext = url.split('.').pop()?.toLowerCase(); + switch (ext) { + case 'mp4': + return 'video/mp4'; + case 'webm': + return 'video/webm'; + case 'ogg': + case 'ogv': + return 'video/ogg'; + default: + return 'video/mp4'; + } + } + static ctorParameters = () => []; +}; +HtmlVideoComponent = HtmlVideoComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-html-video', + template: _html_video_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_html_video_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], HtmlVideoComponent); + + +/***/ }), + +/***/ 82385: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-video/video-property/video-property.component.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ VideoPropertyComponent: () => (/* binding */ VideoPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _video_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./video-property.component.html?ngResource */ 27606); +/* harmony import */ var _video_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./video-property.component.scss?ngResource */ 65894); +/* harmony import */ var _video_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_video_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_action_properties_dialog_action_properties_dialog_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gauge-property/action-properties-dialog/action-properties-dialog.component */ 3853); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../_models/device */ 15625); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../gauge-property/action-properties-dialog/action-property.service */ 8985); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let VideoPropertyComponent = class VideoPropertyComponent { + dialog; + projectService; + actionPropertyService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_7__.EventEmitter(); + set reload(b) { + this._reload(); + } + property; + name; + devices = []; + constructor(dialog, projectService, actionPropertyService) { + this.dialog = dialog; + this.projectService = projectService; + this.actionPropertyService = actionPropertyService; + } + ngOnInit() { + this.initFromInput(); + } + initFromInput() { + this.name = this.data.settings.name; + this.property = this.data.settings.property || new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeVideoProperty(); + this.devices = this.projectService.getDeviceList(); + } + onFlexAuthChanged(flexAuth) { + this.name = flexAuth.name; + this.property.permission = flexAuth.permission; + this.property.permissionRoles = flexAuth.permissionRoles; + this.onVideoChanged(); + } + onVideoChanged() { + this.data.settings.name = this.name; + this.data.settings.property = this.property; + this.onPropChanged.emit(this.data.settings); + } + onTagChanged(daveiceTag) { + this.data.settings.property.variableId = daveiceTag.variableId; + this.onPropChanged.emit(this.data.settings); + } + getActionTag(action) { + let tag = _models_device__WEBPACK_IMPORTED_MODULE_4__.DevicesUtils.getTagFromTagId(this.devices, action.variableId); + return tag?.label || tag?.name; + } + getActionType(action) { + return this.actionPropertyService.typeToText(action.type); + } + onEditActions() { + let dialogRef = this.dialog.open(_gauge_property_action_properties_dialog_action_properties_dialog_component__WEBPACK_IMPORTED_MODULE_3__.ActionPropertiesDialogComponent, { + disableClose: true, + data: { + withActions: this.data.withActions, + property: JSON.parse(JSON.stringify(this.property)) + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.property = result.property; + this.onVideoChanged(); + } + }); + } + onSetImage(event) { + const input = event.target; + if (!input.files || input.files.length === 0) { + return; + } + const file = input.files[0]; + const filename = file.name; + const fileExt = filename.split('.').pop().toLowerCase(); + const fileToUpload = { + type: fileExt, + name: filename.split('/').pop(), + data: null + }; + let reader = new FileReader(); + reader.onload = () => { + try { + fileToUpload.data = reader.result; + this.projectService.uploadFile(fileToUpload).subscribe(result => { + this.property.options.initImage = result.location; + this.onVideoChanged(); + }); + } catch (err) { + console.error(err); + } + }; + if (fileExt === 'svg') { + reader.readAsText(file); + } else { + reader.readAsDataURL(file); + } + } + onClearImage() { + this.property.options.initImage = null; + this.onVideoChanged(); + } + _reload() { + this.property = this.data?.settings?.property; + this.initFromInput(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: _gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_6__.ActionPropertyService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input, + args: ['reload'] + }] + }; +}; +VideoPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-video-property', + template: _video_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_video_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, _gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_6__.ActionPropertyService])], VideoPropertyComponent); + + +/***/ }), + +/***/ 24309: +/*!**********************************************************************************!*\ + !*** ./src/app/gauges/controls/panel/panel-property/panel-property.component.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PanelPropertyComponent: () => (/* binding */ PanelPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _panel_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./panel-property.component.html?ngResource */ 74337); +/* harmony import */ var _panel_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel-property.component.scss?ngResource */ 75430); +/* harmony import */ var _panel_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_panel_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let PanelPropertyComponent = class PanelPropertyComponent { + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + set reload(b) { + this._reload(); + } + property; + scaleMode = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.PropertyScaleModeType; + constructor() {} + ngOnInit() { + this._reload(); + } + onPropertyChanged() { + this.onPropChanged.emit(this.data.settings); + } + onTagChanged(daveiceTag) { + this.data.settings.property.variableId = daveiceTag.variableId; + this.onPropertyChanged(); + } + _reload() { + if (!this.data.settings.property) { + this.data.settings.property = { + viewName: null, + variableId: null, + scaleMode: null + }; + } + this.property = this.data.settings.property; + } + static ctorParameters = () => []; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input, + args: ['reload'] + }] + }; +}; +PanelPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-panel-property', + template: _panel_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_panel_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], PanelPropertyComponent); + + +/***/ }), + +/***/ 73444: +/*!**********************************************************!*\ + !*** ./src/app/gauges/controls/panel/panel.component.ts ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PanelComponent: () => (/* binding */ PanelComponent) +/* harmony export */ }); +/* harmony import */ var _panel_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./panel.component.html?ngResource */ 76448); +/* harmony import */ var _panel_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel.component.css?ngResource */ 93285); +/* harmony import */ var _panel_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_panel_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../fuxa-view/fuxa-view.component */ 33814); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var PanelComponent_1; + + + + + + + + + +let PanelComponent = PanelComponent_1 = class PanelComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_3__.GaugeBaseComponent { + projectService; + static TypeTag = 'svg-ext-own_ctrl-panel'; + static LabelTag = 'Panel'; + static prefixD = 'D-OXC_'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeActionsType.show + }; + static hmi; + constructor(projectService) { + super(); + this.projectService = projectService; + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.Panel; + } + static processValue(ga, svgele, sig, gaugeStatus, gauge) { + try { + const view = PanelComponent_1.hmi.views.find(x => x.name === sig.value); + if (view) { + gauge?.loadHmi(view, true); + if (ga?.property?.scaleMode) { + _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.resizeViewExt('.view-container', ga?.id, ga?.property?.scaleMode); + } + } + } catch (err) { + console.error(err); + } + } + static initElement(gaugeSettings, resolver, viewContainerRef, gaugeManager, hmi, isview, parent) { + if (hmi) { + PanelComponent_1.hmi = hmi; + } + let ele = document.getElementById(gaugeSettings.id); + if (ele) { + ele?.setAttribute('data-name', gaugeSettings.name); + let svgPanelContainer = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.searchTreeStartWith(ele, this.prefixD); + if (svgPanelContainer) { + const factory = resolver.resolveComponentFactory(_fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_6__.FuxaViewComponent); + const componentRef = viewContainerRef.createComponent(factory); + componentRef.instance.gaugesManager = gaugeManager; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + svgPanelContainer.innerHTML = ''; + svgPanelContainer.appendChild(loaderComponentElement); + componentRef.instance['myComRef'] = componentRef; + componentRef.instance.parent = parent; + if (!isview) { + let span = document.createElement('span'); + span.innerHTML = 'Panel'; + svgPanelContainer.appendChild(span); + return null; + } + PanelComponent_1.processValue(gaugeSettings, null, { + value: gaugeSettings.property.viewName + }, null, componentRef.instance); + componentRef.instance['name'] = gaugeSettings.name; + return componentRef.instance; + } + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService + }]; +}; +PanelComponent = PanelComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-panel', + template: _panel_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_panel_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService])], PanelComponent); + + +/***/ }), + +/***/ 89040: +/*!*******************************************************************************!*\ + !*** ./src/app/gauges/controls/pipe/pipe-property/pipe-property.component.ts ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PipePropertyComponent: () => (/* binding */ PipePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _pipe_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipe-property.component.html?ngResource */ 59472); +/* harmony import */ var _pipe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipe-property.component.scss?ngResource */ 77177); +/* harmony import */ var _pipe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_pipe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _gauge_property_flex_auth_flex_auth_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gauge-property/flex-auth/flex-auth.component */ 31178); +/* harmony import */ var _gauge_property_flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../gauge-property/flex-event/flex-event.component */ 70987); +/* harmony import */ var _gauge_property_flex_action_flex_action_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../gauge-property/flex-action/flex-action.component */ 68009); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _pipe_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../pipe.component */ 82916); +/* harmony import */ var _gauge_property_action_properties_dialog_action_properties_dialog_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../gauge-property/action-properties-dialog/action-properties-dialog.component */ 3853); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../_services/project.service */ 57610); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../_models/device */ 15625); +/* harmony import */ var _gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../gauge-property/action-properties-dialog/action-property.service */ 8985); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + +let PipePropertyComponent = class PipePropertyComponent { + dialog; + projectService; + actionPropertyService; + data; + onPropChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_13__.EventEmitter(); + set reload(b) { + this._reload(); + } + flexAuth; + flexHead; + flexEvent; + flexAction; + property; + options; + views; + name; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.defaultColor; + pipepath = { + bk: null, + fg: null, + hp: null + }; + devices = []; + constructor(dialog, projectService, actionPropertyService) { + this.dialog = dialog; + this.projectService = projectService; + this.actionPropertyService = actionPropertyService; + } + ngOnInit() { + this.initFromInput(); + } + initFromInput() { + let emitChange = _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.isNullOrUndefined(this.data.settings.property) || _helpers_utils__WEBPACK_IMPORTED_MODULE_7__.Utils.isNullOrUndefined(this.data.settings.property.options); + this.name = this.data.settings.name; + this.property = this.data.settings.property || new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeProperty(); + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeProperty(); + } + this.options = this.property.options ?? new _pipe_component__WEBPACK_IMPORTED_MODULE_8__.PipeOptions(); + this.devices = this.projectService.getDeviceList(); + if (emitChange) { + setTimeout(() => { + this.onPipeChanged(); + }, 0); + } + } + onFlexAuthChanged(flexAuth) { + this.name = flexAuth.name; + this.property.permission = flexAuth.permission; + this.property.permissionRoles = flexAuth.permissionRoles; + this.onPipeChanged(); + } + onPipeChanged() { + this.data.settings.name = this.name; + this.data.settings.property = this.property; + this.data.settings.property.options = this.options; + this.onPropChanged.emit(this.data.settings); + } + onEditActions() { + let dialogRef = this.dialog.open(_gauge_property_action_properties_dialog_action_properties_dialog_component__WEBPACK_IMPORTED_MODULE_9__.ActionPropertiesDialogComponent, { + disableClose: true, + data: { + withActions: this.data.withActions, + property: JSON.parse(JSON.stringify(this.property)) + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.property = result.property; + this.onPipeChanged(); + } + }); + } + onChangeValue(type, value) { + if (type == 'borderWidth') { + this.options.borderWidth = value; + } else if (type == 'border') { + this.options.border = value; + } else if (type == 'pipeWidth') { + this.options.pipeWidth = value; + } else if (type == 'pipe') { + this.options.pipe = value; + } else if (type == 'contentWidth') { + this.options.contentWidth = value; + } else if (type == 'content') { + this.options.content = value; + } else if (type == 'contentSpace') { + this.options.contentSpace = value; + } + this.onPipeChanged(); + } + onAddEvent() { + this.flexEvent.onAddEvent(); + } + onAddAction() { + this.flexAction.onAddAction(); + } + getActionTag(action) { + let tag = _models_device__WEBPACK_IMPORTED_MODULE_11__.DevicesUtils.getTagFromTagId(this.devices, action.variableId); + return tag?.label || tag?.name; + } + getActionType(action) { + return this.actionPropertyService.typeToText(action.type); + } + onSetImage(event) { + if (event.target.files) { + let filename = event.target.files[0].name; + let fileToUpload = { + type: filename.split('.').pop().toLowerCase(), + name: filename.split('/').pop(), + data: null + }; + let reader = new FileReader(); + reader.onload = () => { + try { + fileToUpload.data = reader.result; + this.projectService.uploadFile(fileToUpload).subscribe(result => { + this.options.imageAnimation = { + imageUrl: result.location, + delay: 3000, + count: 1 + }; + this.onPipeChanged(); + }); + } catch (err) { + console.error(err); + } + }; + if (fileToUpload.type === 'svg') { + reader.readAsText(event.target.files[0]); + } + } + } + onClearImage() { + this.options.imageAnimation = null; + this.onPipeChanged(); + } + _reload() { + this.property = this.data?.settings?.property; + this.initFromInput(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_14__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_10__.ProjectService + }, { + type: _gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_12__.ActionPropertyService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Input + }], + onPropChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Output + }], + reload: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Input, + args: ['reload'] + }], + flexAuth: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['flexauth', { + static: false + }] + }], + flexHead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['flexhead', { + static: false + }] + }], + flexEvent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['flexevent', { + static: false + }] + }], + flexAction: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: ['flexaction', { + static: false + }] + }] + }; +}; +PipePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_13__.Component)({ + selector: 'app-pipe-property', + template: _pipe_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_pipe_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_14__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_10__.ProjectService, _gauge_property_action_properties_dialog_action_property_service__WEBPACK_IMPORTED_MODULE_12__.ActionPropertyService])], PipePropertyComponent); + + +/***/ }), + +/***/ 82916: +/*!********************************************************!*\ + !*** ./src/app/gauges/controls/pipe/pipe.component.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PipeActionsType: () => (/* binding */ PipeActionsType), +/* harmony export */ PipeComponent: () => (/* binding */ PipeComponent), +/* harmony export */ PipeOptions: () => (/* binding */ PipeOptions) +/* harmony export */ }); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 71670); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); + +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var PipeComponent_1; + + + + + +var PipeActionsType; +(function (PipeActionsType) { + PipeActionsType["hidecontent"] = "pipe.action-hide-content"; +})(PipeActionsType || (PipeActionsType = {})); +let PipeComponent = PipeComponent_1 = class PipeComponent { + // TypeId = 'pipe'; + static TypeTag = 'svg-ext-pipe'; // used to identify shapes type, binded with the library svgeditor + static LabelTag = 'Pipe'; + static prefixB = 'PIE_'; + static prefixC = 'cPIE_'; + static prefixAnimation = 'aPIE_'; + static actionsType = { + stop: _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionsType.stop, + clockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionsType.clockwise, + anticlockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionsType.anticlockwise, + hidecontent: PipeActionsType.hidecontent, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionsType.blink + }; + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getActions(type) { + return this.actionsType; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_3__.GaugeDialogType.Pipe; + } + static isBitmaskSupported() { + return true; + } + static processValue(gaugeSettings, svgElement, signal, gaugeStatus) { + try { + if (svgElement.node) { + let value = parseFloat(signal.value); + if (Number.isNaN(value)) { + // maybe boolean + value = Number(signal.value); + } else { + value = parseFloat(value.toFixed(5)); + } + if (gaugeSettings.property) { + let defaultColor = new _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugePropertyColor(); + defaultColor.fill = gaugeSettings.property?.options?.pipe; + defaultColor.stroke = gaugeSettings.property?.options.content; + // check actions + if (gaugeSettings.property.actions) { + gaugeSettings.property.actions.forEach(action => { + if (action.variableId === signal.id) { + const inRange = PipeComponent_1.processAction(action, svgElement, value, gaugeStatus, defaultColor); + if (gaugeSettings.property?.options?.imageAnimation && inRange) { + PipeComponent_1.runImageAction(gaugeSettings, action, svgElement.node, gaugeStatus); + } + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static processAction(act, svgele, value, gaugeStatus, defaultColor) { + let actValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(act.bitmask, value); + if (this.actionsType[act.type] === this.actionsType.blink) { + let element = SVG.adopt(svgele.node); + var elePipe = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(element.node, 'p' + this.prefixB); + var eleContent = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(element.node, 'c' + this.prefixB); + let inRange = act.range.min <= actValue && act.range.max >= actValue; + this.runMyActionBlink(elePipe, eleContent, act, gaugeStatus, inRange, defaultColor); + } else if (act.range.min <= actValue && act.range.max >= actValue) { + var element = SVG.adopt(svgele.node); + PipeComponent_1.runMyAction(element, act.type, gaugeStatus); + return true; + } + return false; + } + static runMyAction(element, type, gaugeStatus) { + if (PipeComponent_1.actionsType[type] === PipeComponent_1.actionsType.stop) { + if (gaugeStatus.actionRef?.timer) { + clearTimeout(gaugeStatus.actionRef.timer); + gaugeStatus.actionRef.timer = null; + } + if (gaugeStatus.actionRef?.animr) { + gaugeStatus.actionRef.animr.stop(); + } + } else { + if (gaugeStatus.actionRef?.timer) { + if (gaugeStatus.actionRef.type === type) { + return; + } + clearTimeout(gaugeStatus.actionRef.timer); + gaugeStatus.actionRef.timer = null; + } + var eletoanim = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(element.node, 'c' + this.prefixB); + if (eletoanim) { + let len = 1000; + if (PipeComponent_1.actionsType[type] === PipeComponent_1.actionsType.clockwise) { + eletoanim.style.display = 'unset'; + let timeout = setInterval(() => { + if (len < 0) { + len = 1000; + } + eletoanim.style.strokeDashoffset = len; + len--; + }, 20); + gaugeStatus.actionRef ??= new _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionStatus(type); + gaugeStatus.actionRef.timer = timeout; + gaugeStatus.actionRef.type = type; + } else if (PipeComponent_1.actionsType[type] === PipeComponent_1.actionsType.anticlockwise) { + eletoanim.style.display = 'unset'; + let timeout = setInterval(() => { + if (len > 1000) { + len = 0; + } + eletoanim.style.strokeDashoffset = len; + len++; + }, 20); + gaugeStatus.actionRef ??= new _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionStatus(type); + gaugeStatus.actionRef.timer = timeout; + gaugeStatus.actionRef.type = type; + } else if (PipeComponent_1.actionsType[type] === PipeComponent_1.actionsType.hidecontent) { + eletoanim.style.display = 'none'; + } + } + } + } + static runImageAction(gaugeSettings, action, svgElement, gaugeStatus) { + return (0,_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { + if (!gaugeStatus.actionRef?.animr) { + gaugeStatus.actionRef ??= new _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionStatus(action.type); + PipeComponent_1.removeImageChildren(svgElement); + let anim = yield loadSvgAnimation(gaugeSettings, svgElement, true, 'forward'); + gaugeStatus.actionRef.animr = anim; + } + if (PipeComponent_1.actionsType[action.type] === PipeComponent_1.actionsType.stop) { + gaugeStatus.actionRef.animr.stop(); + } else { + if (PipeComponent_1.actionsType[action.type] === PipeComponent_1.actionsType.clockwise) { + gaugeStatus.actionRef.animr.setDirection('forward'); + } else if (PipeComponent_1.actionsType[action.type] === PipeComponent_1.actionsType.anticlockwise) { + gaugeStatus.actionRef.animr.setDirection('reverse'); + } + if (!gaugeStatus.actionRef.animr.isRunning) { + gaugeStatus.actionRef.animr.start(); + } + } + })(); + } + static runMyActionBlink(elePipe, eleContent, act, gaugeStatus, toEnable, defaultColor) { + if (!gaugeStatus.actionBlinkRef) { + gaugeStatus.actionBlinkRef = new _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeActionStatus(act.type); + } + gaugeStatus.actionBlinkRef.type = act.type; + if (toEnable) { + if (gaugeStatus.actionBlinkRef.timer && _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getBlinkActionId(act) === gaugeStatus.actionBlinkRef.spool?.actId) { + return; + } + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.clearAnimationTimer(gaugeStatus.actionBlinkRef); + var blinkStatus = false; + // save action (dummy) id and colors to restore on break + try { + const actId = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getBlinkActionId(act); + gaugeStatus.actionBlinkRef.spool = { + fill: elePipe.getAttribute('stroke'), + stroke: eleContent.getAttribute('stroke'), + actId: actId + }; + } catch (err) { + console.error(err); + } + gaugeStatus.actionBlinkRef.timer = setInterval(() => { + blinkStatus = blinkStatus ? false : true; + try { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(elePipe, 'stroke', blinkStatus ? act.options.fillA : act.options.fillB); + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(eleContent, 'stroke', blinkStatus ? act.options.strokeA : act.options.strokeB); + } catch (err) { + console.error(err); + } + }, act.options.interval); + } else if (!toEnable) { + try { + // restore gauge + if (gaugeStatus.actionBlinkRef?.spool?.actId === _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getBlinkActionId(act)) { + if (gaugeStatus.actionBlinkRef.timer) { + clearInterval(gaugeStatus.actionBlinkRef.timer); + gaugeStatus.actionBlinkRef.timer = null; + } + // check to overwrite with property color + if (defaultColor && gaugeStatus.actionBlinkRef.spool) { + if (defaultColor.fill) { + gaugeStatus.actionBlinkRef.spool.fill = defaultColor.fill; + } + if (defaultColor.stroke) { + gaugeStatus.actionBlinkRef.spool.stroke = defaultColor.stroke; + } + } + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(elePipe, 'stroke', gaugeStatus.actionBlinkRef.spool?.fill); + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(eleContent, 'stroke', gaugeStatus.actionBlinkRef.spool?.stroke); + } + } catch (err) { + console.error(err); + } + } + } + static initElement(gaugeSettings, isView, gaugeStatus) { + let ele = document.getElementById(gaugeSettings.id); + if (ele) { + PipeComponent_1.removeImageChildren(ele); + if (gaugeSettings.property?.options?.imageAnimation) { + loadSvgAnimation(gaugeSettings, ele, isView).then(anim => { + anim.stop(); + }).catch(error => { + console.error('Error occurred while initializing animation:', error); + }); + } + } + return ele; + } + static removeImageChildren(svgElement) { + // clear all children + let imageInPathForAnimation = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(svgElement, PipeComponent_1.prefixAnimation); + if (imageInPathForAnimation) { + svgElement.removeChild(imageInPathForAnimation); + } + const imagesBuffer = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.childrenStartWith(svgElement, 'svg_'); + imagesBuffer.forEach(img => { + svgElement.removeChild(img); + }); + } + static resize(gaugeSettings) { + PipeComponent_1.initElement(gaugeSettings, false); + } + static detectChange(gaugeSettings, res, ref) { + let data = { + id: gaugeSettings.id, + property: gaugeSettings.property.options + }; + let result = ref.nativeWindow.svgEditor.runExtension('pipe', 'initPipe', data); + PipeComponent_1.initElement(gaugeSettings, false); + return result; + } +}; +PipeComponent = PipeComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)()], PipeComponent); + +function loadSvgAnimation(gaugeSettings, ele, isView, direction = 'forward') { + let path = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.searchTreeStartWith(ele, PipeComponent.prefixC); + if (!path) { + return Promise.resolve(null); + } + return fetch(gaugeSettings.property.options.imageAnimation.imageUrl).then(response => { + if (!response.ok) { + throw new Error(`Failed to load SVG: ${response.statusText}`); + } + return response.text(); + }).then(svgContent => { + const parser = new DOMParser(); + const svgDoc = parser.parseFromString(svgContent, 'image/svg+xml'); + const imageInPathForAnimation = svgDoc.documentElement; + imageInPathForAnimation.setAttribute('id', _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getShortGUID('svg_')); + const imageInPath = new ImageInPath(imageInPathForAnimation, path, gaugeSettings.property.options.imageAnimation.count); + const anim = new ImageInPathAnimation(imageInPath, gaugeSettings.property.options.imageAnimation.delay, isView, direction); + anim.initialize(); + return anim; + }); +} +class PipeOptions { + border = '#3F4964'; + borderWidth = 11; + pipe = '#E79180'; + pipeWidth = 6; + content = '#DADADA'; + contentWidth = 6; + contentSpace = 20; + imageAnimation; +} +class PipeStatus extends _models_hmi__WEBPACK_IMPORTED_MODULE_1__.GaugeStatus { + actionBlinkRef; +} +class ImageInPath { + images = []; + path = null; + constructor(_image, _path, numImages) { + this.path = _path; + if (!_image || !this.path) { + throw new Error('Pipe Image or track element not found.'); + } + for (let i = 0; i < numImages; i++) { + const clone = _image.cloneNode(true); + this.images.push(clone); + } + this.images.forEach(image => { + this.path.parentElement?.appendChild(image); + }); + } + move(progress) { + if (!this.path) { + return; + } + const totalLength = this.path.getTotalLength(); + this.images.forEach((image, index) => { + const u = (progress + index / this.images.length) % 1; + const point = this.path.getPointAtLength(u * totalLength); + const bbox = image.getBoundingClientRect(); + const offsetX = bbox.width / 2; + const offsetY = bbox.height / 2; + image.setAttribute('x', `${point.x - offsetX}`); + image.setAttribute('y', `${point.y - offsetY}`); + }); + } +} +class ImageInPathAnimation { + duration; + tZero = 0; + multiImageInPath; + loop; + direction; + isRunning = false; + animationFrameId = null; + constructor(_multiImageInPath, duration, loop = true, direction = 'forward') { + this.multiImageInPath = _multiImageInPath; + this.duration = duration; + this.loop = loop; + this.direction = direction; + } + initialize() { + const progress = this.direction === 'forward' ? 0 : 1; + this.multiImageInPath.move(progress); + } + start() { + if (this.isRunning) { + return; + } + this.isRunning = true; + this.tZero = Date.now(); + requestAnimationFrame(() => this.run()); + } + stop() { + if (this.animationFrameId !== null) { + cancelAnimationFrame(this.animationFrameId); + this.animationFrameId = null; + } + this.isRunning = false; + } + setDirection(direction) { + this.direction = direction; + } + run() { + if (!this.isRunning) { + return; + } + const elapsed = Date.now() - this.tZero; + let progress = elapsed / this.duration; + let adjustedProgress = progress % 1; + if (this.direction === 'reverse') { + adjustedProgress = 1 - adjustedProgress; + } + this.multiImageInPath.move(adjustedProgress); + if (this.loop || progress < 1) { + this.animationFrameId = requestAnimationFrame(() => this.run()); + } else { + this.onFinish(); + } + } + onFinish() { + if (this.loop) { + setTimeout(() => this.start(), 1000); + } + } +} + +/***/ }), + +/***/ 23751: +/*!*************************************************************************************!*\ + !*** ./src/app/gauges/controls/slider/slider-property/slider-property.component.ts ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SliderPropertyComponent: () => (/* binding */ SliderPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _slider_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slider-property.component.html?ngResource */ 29869); +/* harmony import */ var _slider_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slider-property.component.css?ngResource */ 65699); +/* harmony import */ var _slider_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_slider_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../_helpers/utils */ 91019); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gauge-property/flex-head/flex-head.component */ 81841); +/* harmony import */ var _gauge_property_flex_auth_flex_auth_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../gauge-property/flex-auth/flex-auth.component */ 31178); +/* harmony import */ var _gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../gui-helpers/ngx-nouislider/ngx-nouislider.component */ 65554); +/* harmony import */ var _helpers_define__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../_helpers/define */ 94107); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + +let SliderPropertyComponent = class SliderPropertyComponent { + dialogRef; + translateService; + changeDetector; + data; + flexAuth; + flexHead; + slider; + property; + options = new _gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_6__.NgxNouisliderOptions(); + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.defaultColor; + fonts = _helpers_define__WEBPACK_IMPORTED_MODULE_7__.Define.fonts; + name; + layoutHorizontal = { + width: 400, + height: 80, + top: 180, + left: 0 + }; + layoutVertical = { + width: 80, + height: 400, + top: 20, + left: 150 + }; + sliderLayout = this.layoutVertical; + orientationType = { + horizontal: 'horizontal', + vertical: 'vertical' + }; + directionType = { + ltr: 'ltr', + rtl: 'rtl' + }; + tooltipType = { + none: 'none', + hide: 'hide', + show: 'show' + }; + staticScala = ''; + constructor(dialogRef, translateService, changeDetector, data) { + this.dialogRef = dialogRef; + this.translateService = translateService; + this.changeDetector = changeDetector; + this.data = data; + this.property = JSON.parse(JSON.stringify(this.data.settings.property)); + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeProperty(); + } + this.name = this.data.settings.name; + this.options = this.property.options; + if (!this.options) { + this.options = new _gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_6__.NgxNouisliderOptions(); + } + } + ngOnInit() { + Object.keys(this.orientationType).forEach(key => { + this.translateService.get('slider.property-' + this.orientationType[key]).subscribe(txt => { + this.orientationType[key] = txt; + }); + }); + Object.keys(this.directionType).forEach(key => { + this.translateService.get('slider.property-' + this.directionType[key]).subscribe(txt => { + this.directionType[key] = txt; + }); + }); + Object.keys(this.tooltipType).forEach(key => { + this.translateService.get('slider.property-tooltip-' + this.tooltipType[key]).subscribe(txt => { + this.tooltipType[key] = txt; + }); + }); + this.sliderLayout = this.options.orientation === 'vertical' ? this.layoutVertical : this.layoutHorizontal; + this.options.pips.values.forEach(k => { + if (this.staticScala.length) { + this.staticScala += ';'; + } + this.staticScala += k.toString(); + }); + } + ngAfterViewInit() { + this.setSliderOptions(); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.settings.property = this.property; + this.data.settings.property.permission = this.flexAuth.permission; + this.data.settings.property.options = this.options; + this.data.settings.name = this.flexAuth.name; + } + onChangeOptions(opt, value) { + if (opt === 'min' || opt === 'max') { + this.options.range[opt] = parseFloat(value); + } else if (opt === 'step') { + this.options[opt] = parseFloat(value); + } else if (opt === 'staticScala') { + this.options.pips.values = []; + if (value) { + let tks = value.split(';'); + tks.forEach(tk => { + let v = parseFloat(tk); + if (!isNaN(v)) { + this.options.pips.values.push(v); + } + }); + } + } else if (opt === 'tooltipType') { + this.options.tooltip.type = value; + } else { + this.options[opt] = value; + } + this.setSliderOptions(); + } + onChangeDirection(event) { + this.setSliderOptions(); + } + setSliderOptions() { + this.sliderLayout = this.options.orientation === 'vertical' ? this.layoutVertical : this.layoutHorizontal; + this.changeDetector.detectChanges(); + let opt = JSON.parse(JSON.stringify(this.options)); + this.slider.setOptions(opt); + this.slider.resize(this.sliderLayout.height, this.sliderLayout.width); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + flexAuth: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexauth', { + static: false + }] + }], + flexHead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexhead', { + static: false + }] + }], + slider: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['slider', { + static: false + }] + }] + }; +}; +SliderPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-slider-property', + template: _slider_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_slider_property_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef, Object])], SliderPropertyComponent); + + +/***/ }), + +/***/ 34493: +/*!************************************************************!*\ + !*** ./src/app/gauges/controls/slider/slider.component.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SliderComponent: () => (/* binding */ SliderComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gui-helpers/ngx-nouislider/ngx-nouislider.component */ 65554); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var SliderComponent_1; + + + + + +let SliderComponent = SliderComponent_1 = class SliderComponent { + // TypeId = 'html_slider'; + static TypeTag = 'svg-ext-html_slider'; + static LabelTag = 'HtmlSlider'; + static prefix = 'D-SLI_'; + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_2__.GaugeDialogType.Slider; + } + static bindEvents(ga, slider, callback) { + if (slider) { + slider.bindUpdate(val => { + let event = new _models_hmi__WEBPACK_IMPORTED_MODULE_0__.Event(); + event.type = 'on'; + event.ga = ga; + event.value = val; + callback(event); + }); + } + return null; + } + static processValue(ga, svgele, sig, gaugeStatus, slider) { + try { + if (slider) { + let val = parseFloat(sig.value); + if (Number.isNaN(val)) { + // maybe boolean + val = Number(sig.value); + } else { + val = parseFloat(val.toFixed(5)); + } + slider.setValue(val); + } + } catch (err) { + console.error(err); + } + } + static initElement(gab, resolver, viewContainerRef, options) { + let ele = document.getElementById(gab.id); + if (ele) { + ele?.setAttribute('data-name', gab.name); + let htmlSlider = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlSlider) { + const factory = resolver.resolveComponentFactory(_gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_3__.NgxNouisliderComponent); + const componentRef = viewContainerRef.createComponent(factory); + htmlSlider.innerHTML = ''; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + htmlSlider.appendChild(loaderComponentElement); + componentRef.instance.resize(htmlSlider.clientHeight, htmlSlider.clientWidth); + if (gab.property && gab.property.options) { + if (!componentRef.instance.setOptions(gab.property.options)) { + componentRef.instance.init(); + } + } + componentRef.instance['myComRef'] = componentRef; + componentRef.instance['name'] = gab.name; + return componentRef.instance; + } + } + } + static initElementColor(bkcolor, color, ele) { + if (ele) { + ele.setAttribute('fill', bkcolor); + } + } + static resize(gab, resolver, viewContainerRef, options) { + let ele = document.getElementById(gab.id); + if (ele) { + let htmlSlider = _helpers_utils__WEBPACK_IMPORTED_MODULE_1__.Utils.searchTreeStartWith(ele, this.prefix); + if (htmlSlider) { + const factory = resolver.resolveComponentFactory(_gui_helpers_ngx_nouislider_ngx_nouislider_component__WEBPACK_IMPORTED_MODULE_3__.NgxNouisliderComponent); + const componentRef = viewContainerRef.createComponent(factory); + htmlSlider.innerHTML = ''; + componentRef.changeDetectorRef.detectChanges(); + const loaderComponentElement = componentRef.location.nativeElement; + htmlSlider.appendChild(loaderComponentElement); + componentRef.instance.resize(htmlSlider.clientHeight, htmlSlider.clientWidth); + if (options) { + componentRef.instance.setOptions(options); + } + return componentRef.instance; + } + } + } + static getFillColor(ele) { + if (ele) { + return ele.getAttribute('fill'); + } + } + static detectChange(gab, res, ref) { + let options; + if (gab.property && gab.property.options) { + options = gab.property.options; + } + return SliderComponent_1.initElement(gab, res, ref, options); + } +}; +SliderComponent = SliderComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)()], SliderComponent); + + +/***/ }), + +/***/ 98458: +/*!**********************************************************!*\ + !*** ./src/app/gauges/controls/value/value.component.ts ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ValueComponent: () => (/* binding */ ValueComponent), +/* harmony export */ ValueProperty: () => (/* binding */ ValueProperty) +/* harmony export */ }); +/* harmony import */ var _value_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.component.html?ngResource */ 98033); +/* harmony import */ var _value_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./value.component.css?ngResource */ 86389); +/* harmony import */ var _value_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_value_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ValueComponent_1; + + + + + + + +let ValueComponent = ValueComponent_1 = class ValueComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + static TypeTag = 'svg-ext-value'; + static LabelTag = 'Value'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + if (pro.ranges) { + pro.ranges.forEach(range => { + if (range.textId) { + res.push(range.textId); + } + if (range['fractionDigitsId']) { + res.push(range['fractionDigitsId']); + } + }); + } + if (pro.variableId) { + res.push(pro.variableId); + } + return res; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.ValueAndUnit; + } + static getActions(type) { + return this.actionsType; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node && svgele.node.children && svgele.node.children.length <= 1) { + let g = svgele.node.children[0]; + let val = parseFloat(sig.value); + switch (typeof sig.value) { + case 'undefined': + break; + case 'boolean': + val = Number(sig.value); + break; + case 'number': + val = parseFloat(val.toFixed(5)); + break; + case 'string': + val = sig.value; + break; + default: + break; + } + if (ga.property) { + let unit = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getUnit(ga.property, gaugeStatus); + let digit = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.getDigits(ga.property, gaugeStatus); + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.isNullOrUndefined(digit) && _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.isNumeric(val)) { + val = parseFloat(sig.value).toFixed(digit); + } + if (ga.property.variableId === sig.id) { + try { + g.textContent = val; + if (unit) { + g.textContent += ' ' + unit; + } + } catch (err) { + console.error(ga, sig, err); + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + ValueComponent_1.processAction(act, svgele, parseFloat(val), gaugeStatus); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static processAction(act, svgele, value, gaugeStatus) { + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= value && act.range.max >= value) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.blink) { + let element = SVG.adopt(svgele.node.children[0]); + let inRange = act.range.min <= value && act.range.max >= value; + this.checkActionBlink(element, act, gaugeStatus, inRange, false); + } + } + static ctorParameters = () => []; +}; +ValueComponent = ValueComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'gauge-value', + template: _value_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_value_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], ValueComponent); + +class ValueProperty { + signalid = ''; + format = '##.##'; +} + +/***/ }), + +/***/ 57989: +/*!***********************************************************!*\ + !*** ./src/app/gauges/gauge-base/gauge-base.component.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GaugeBaseComponent: () => (/* binding */ GaugeBaseComponent) +/* harmony export */ }); +/* harmony import */ var _gauge_base_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gauge-base.component.html?ngResource */ 93941); +/* harmony import */ var _gauge_base_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gauge-base.component.css?ngResource */ 64440); +/* harmony import */ var _gauge_base_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_gauge_base_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _gauge_property_flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../gauge-property/flex-input/flex-input.component */ 50665); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var GaugeBaseComponent_1; + + + + + + +// declare var SVG: any; +let GaugeBaseComponent = GaugeBaseComponent_1 = class GaugeBaseComponent { + data; + settings; + edit = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + static GAUGE_TEXT = 'text'; + constructor() {} + onEdit() { + this.edit.emit(this.settings); + } + static pathToAbsolute(relativePath) { + var pattern = /([ml])\s*(-?\d*\.?\d+)\s*,\s*(-?\d*\.?\d+)/ig, + coords = []; + relativePath.replace(pattern, function (match, command, x, y) { + var prev; + x = parseFloat(x); + y = parseFloat(y); + if (coords.length === 0 || command.toUpperCase() === command) { + coords.push([x, y]); + } else { + prev = coords[coords.length - 1]; + coords.push([x + prev[0], y + prev[1]]); + } + }); + return coords; + } + static getEvents(pro, type) { + let res = []; + if (!pro || !pro.events) { + return null; + } + let idxtype = Object.values(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType).indexOf(type); + pro.events.forEach(ev => { + if (idxtype < 0 || Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType).indexOf(ev.type) === idxtype) { + res.push(ev); + } + }); + return res; + } + static getUnit(pro, gaugeStatus) { + if (pro) { + if (pro.ranges && pro.ranges.length > 0 && pro.ranges[0].type === _gauge_property_flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_4__.PropertyType.output) { + if (pro.ranges[0].textId && !_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(gaugeStatus.variablesValue[pro.ranges[0].textId])) { + pro.ranges[0].text = gaugeStatus.variablesValue[pro.ranges[0].textId]; + } + return pro.ranges[0].text; + } + } + return ''; + } + static getDigits(pro, gaugeStatus) { + if (pro) { + if (pro.ranges && pro.ranges.length > 0) { + if (pro.ranges[0]['fractionDigitsId'] && !_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(gaugeStatus.variablesValue[pro.ranges[0]['fractionDigitsId']])) { + pro.ranges[0]['fractionDigits'] = gaugeStatus.variablesValue[pro.ranges[0]['fractionDigitsId']]; + } + if (pro.ranges[0]['fractionDigits']) { + return pro.ranges[0]['fractionDigits']; + } + } + } + return null; + } + static runActionHide(element, type, gaugeStatus) { + let actionRef = { + type: type, + animr: element.hide() + }; + if (gaugeStatus.actionRef) { + actionRef.spool = gaugeStatus.actionRef.spool; + actionRef.timer = gaugeStatus.actionRef.timer; + } + gaugeStatus.actionRef = actionRef; + } + static runActionShow(element, type, gaugeStatus) { + let actionRef = { + type: type, + animr: element.show() + }; + if (gaugeStatus.actionRef) { + actionRef.spool = gaugeStatus.actionRef.spool; + actionRef.timer = gaugeStatus.actionRef.timer; + } + gaugeStatus.actionRef = actionRef; + } + static checkActionBlink(element, act, gaugeStatus, toEnable, dom, propertyColor) { + if (!gaugeStatus.actionRef) { + gaugeStatus.actionRef = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeActionStatus(act.type); + } + gaugeStatus.actionRef.type = act.type; + if (toEnable) { + if (gaugeStatus.actionRef.timer && GaugeBaseComponent_1.getBlinkActionId(act) === gaugeStatus.actionRef.spool?.actId) { + return; + } + GaugeBaseComponent_1.clearAnimationTimer(gaugeStatus.actionRef); + var blinkStatus = false; + // save action (dummy) id and colors to restore on break + try { + const actId = GaugeBaseComponent_1.getBlinkActionId(act); + if (dom) { + gaugeStatus.actionRef.spool = { + bk: element.style.backgroundColor, + clr: element.style.color, + actId: actId + }; + } else { + gaugeStatus.actionRef.spool = { + bk: element.node.getAttribute('fill'), + clr: element.node.getAttribute('stroke'), + actId: actId + }; + } + } catch (err) { + console.error(err); + } + gaugeStatus.actionRef.timer = setInterval(() => { + blinkStatus = blinkStatus ? false : true; + try { + if (blinkStatus) { + if (dom) { + element.style.backgroundColor = act.options.fillA; + element.style.color = act.options.strokeA; + } else { + GaugeBaseComponent_1.walkTreeNodeToSetAttribute(element.node, 'fill', act.options.fillA); + GaugeBaseComponent_1.walkTreeNodeToSetAttribute(element.node, 'stroke', act.options.strokeA); + } + } else { + if (dom) { + element.style.backgroundColor = act.options.fillB; + element.style.color = act.options.strokeB; + } else { + GaugeBaseComponent_1.walkTreeNodeToSetAttribute(element.node, 'fill', act.options.fillB); + GaugeBaseComponent_1.walkTreeNodeToSetAttribute(element.node, 'stroke', act.options.strokeB); + } + } + } catch (err) { + console.error(err); + } + }, act.options.interval); + } else if (!toEnable) { + try { + // restore gauge + if (!gaugeStatus.actionRef.spool || gaugeStatus.actionRef.spool.actId === GaugeBaseComponent_1.getBlinkActionId(act)) { + if (gaugeStatus.actionRef.timer) { + clearInterval(gaugeStatus.actionRef.timer); + gaugeStatus.actionRef.timer = null; + } + // check to overwrite with property color + if (propertyColor && gaugeStatus.actionRef.spool) { + if (propertyColor.fill) { + gaugeStatus.actionRef.spool.bk = propertyColor.fill; + } + if (propertyColor.stroke) { + gaugeStatus.actionRef.spool.clr = propertyColor.stroke; + } + } + if (dom) { + element.style.backgroundColor = gaugeStatus.actionRef.spool?.bk; + element.style.color = gaugeStatus.actionRef.spool?.clr; + } else if (gaugeStatus.actionRef.spool) { + GaugeBaseComponent_1.walkTreeNodeToSetAttribute(element.node, 'fill', gaugeStatus.actionRef.spool.bk); + GaugeBaseComponent_1.walkTreeNodeToSetAttribute(element.node, 'stroke', gaugeStatus.actionRef.spool.clr); + } + } + } catch (err) { + console.error(err); + } + } + } + static clearAnimationTimer(actref) { + if (actref && actref.timer) { + clearTimeout(actref.timer); + actref.timer = null; + } + } + static checkBitmask(bitmask, value) { + if (bitmask) { + return value & bitmask ? 1 : 0; + } + return value; + } + static checkBitmaskAndValue(bitmask, value, min, max) { + if (bitmask) { + return value & max & bitmask ? 1 : 0; + } + return value == min ? 0 : 1; + } + static valueBitmask(bitmask, value, source) { + if (bitmask) { + return value & bitmask | source & ~bitmask; + } + return value; + } + static toggleBitmask(value, bitmask) { + return value ^ bitmask; + } + /** + * maskedShiftedValue(0b11010110, 0b00011100) // → 5 + * @param rawValue + * @param bitmask + * @returns + */ + static maskedShiftedValue(rawValue, bitmask) { + if (!bitmask) { + return rawValue; + } + if (rawValue == null) { + return null; + } + const parsed = parseInt(rawValue, 0); + if (isNaN(parsed)) { + return null; + } + let shift = 0; + let mask = bitmask; + while ((mask & 1) === 0) { + mask >>= 1; + shift++; + } + return (parsed & bitmask) >> shift; + } + static getBlinkActionId(act) { + return `${act.variableId}-${act.range.max}-${act.range.min}`; + } + static walkTreeNodeToSetAttribute(node, attributeName, attributeValue) { + node?.setAttribute(attributeName, attributeValue); + _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.walkTree(node, element => { + if (element.id?.startsWith('SHE') || element.id?.startsWith('svg_')) { + element.setAttribute(attributeName, attributeValue); + } + }); + } + static setLanguageText(elementWithLanguageText, text) { + if (text) { + if (elementWithLanguageText?.tagName?.toLowerCase() === GaugeBaseComponent_1.GAUGE_TEXT) { + elementWithLanguageText.textContent = text; + } + } + } + static ctorParameters = () => []; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + settings: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + edit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output + }] + }; +}; +GaugeBaseComponent = GaugeBaseComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'gauge-base', + template: _gauge_base_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_gauge_base_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], GaugeBaseComponent); + + +/***/ }), + +/***/ 3853: +/*!******************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/action-properties-dialog/action-properties-dialog.component.ts ***! + \******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ActionPropertiesDialogComponent: () => (/* binding */ ActionPropertiesDialogComponent) +/* harmony export */ }); +/* harmony import */ var _action_properties_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./action-properties-dialog.component.html?ngResource */ 66275); +/* harmony import */ var _action_properties_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./action-properties-dialog.component.scss?ngResource */ 86907); +/* harmony import */ var _action_properties_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_action_properties_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +/* harmony import */ var _flex_action_flex_action_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../flex-action/flex-action.component */ 68009); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let ActionPropertiesDialogComponent = class ActionPropertiesDialogComponent { + projectService; + dialogRef; + data; + flexAction; + property; + constructor(projectService, dialogRef, data) { + this.projectService = projectService; + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + if (!this.data.devices) { + this.data.devices = Object.values(this.projectService.getDevices()); + } + this.property = this.data.property; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.property.actions = this.flexAction.getActions(); + this.dialogRef.close(this.data); + } + onAddAction() { + this.flexAction.onAddAction(); + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + flexAction: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewChild, + args: ['flexaction', { + static: false + }] + }] + }; +}; +ActionPropertiesDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-action-properties-dialog', + template: _action_properties_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_action_properties_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, Object])], ActionPropertiesDialogComponent); + + +/***/ }), + +/***/ 8985: +/*!*******************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/action-properties-dialog/action-property.service.ts ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ActionPropertyService: () => (/* binding */ ActionPropertyService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../controls/pipe/pipe.component */ 82916); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let ActionPropertyService = class ActionPropertyService { + translateService; + constructor(translateService) { + this.translateService = translateService; + } + getRange(range) { + return `range(${range?.min} - ${range?.max})`; + } + typeToText(type) { + let text = ''; + if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_1__.PipeActionsType, _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_1__.PipeActionsType.hidecontent)) { + text = this.translateService.instant(_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_1__.PipeActionsType.hidecontent); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.stop)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.stop); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.clockwise)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.clockwise); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.anticlockwise)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.anticlockwise); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.blink)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.blink); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.start)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.start); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.pause)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.pause); + } else if (type === _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType, _models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.reset)) { + text = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_0__.GaugeActionsType.reset); + } + return text; + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService + }]; +}; +ActionPropertyService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService])], ActionPropertyService); + + +/***/ }), + +/***/ 68009: +/*!****************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-action/flex-action.component.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexActionComponent: () => (/* binding */ FlexActionComponent) +/* harmony export */ }); +/* harmony import */ var _flex_action_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-action.component.html?ngResource */ 5994); +/* harmony import */ var _flex_action_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-action.component.css?ngResource */ 36336); +/* harmony import */ var _flex_action_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_action_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let FlexActionComponent = class FlexActionComponent { + translateService; + data; + property; + withBitmask = false; + actions; + actionsSupported; + actionBlink = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType).find(key => _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType[key] === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink); + actionRotate = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType).find(key => _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType[key] === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.rotate); + actionMove = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType).find(key => _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType[key] === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.move); + itemtype; + slideView = true; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.defaultColor; + constructor(translateService) { + this.translateService = translateService; + } + ngOnInit() { + if (this.property) { + this.actions = this.property.actions; + } + if (!this.actions || this.actions.length <= 0) { + this.onAddAction(); + } + if (this.data.withActions) { + this.actionsSupported = this.data.withActions; + Object.keys(this.actionsSupported).forEach(key => { + this.translateService.get(this.actionsSupported[key]).subscribe(txt => { + this.actionsSupported[key] = txt; + }); + }); + } + } + getActions() { + let result = null; + if (this.actions) { + result = []; + this.actions.forEach(act => { + if (act.variableId) { + result.push(act); + } + }); + } + return result; + } + onAddAction() { + let ga = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeAction(); + ga.range = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeRangeProperty(); + this.addAction(ga); + } + onRemoveAction(index) { + this.actions.splice(index, 1); + } + onRangeViewToggle(slideView) { + this.slideView = slideView; + // this.flexInput.changeTag(this.currentTag); + } + + setVariable(index, event) { + this.actions[index].variableId = event.variableId; + this.actions[index].bitmask = event.bitmask; + } + addAction(ga) { + if (!this.actions) { + this.actions = []; + } + this.actions.push(ga); + } + onCheckActionType(type, ga) { + if (type === this.actionBlink && typeof ga.options !== typeof _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionBlink) { + ga.options = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionBlink(); + } else if (type === this.actionRotate && typeof ga.options !== typeof _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionRotate) { + ga.options = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionRotate(); + } else if (type === this.actionMove && typeof ga.options !== typeof _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionMove) { + ga.options = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionMove(); + } + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + property: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + withBitmask: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }] + }; +}; +FlexActionComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'flex-action', + template: _flex_action_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_action_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__.TranslateService])], FlexActionComponent); + + +/***/ }), + +/***/ 31178: +/*!************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-auth/flex-auth.component.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexAuthComponent: () => (/* binding */ FlexAuthComponent) +/* harmony export */ }); +/* harmony import */ var _flex_auth_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-auth.component.html?ngResource */ 38284); +/* harmony import */ var _flex_auth_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-auth.component.css?ngResource */ 27786); +/* harmony import */ var _flex_auth_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_auth_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../permission-dialog/permission-dialog.component */ 87570); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_services/settings.service */ 22044); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let FlexAuthComponent = class FlexAuthComponent { + dialog; + settingsService; + cdr; + name; + permission; + permissionRoles; + permissionMode; + onChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); + constructor(dialog, settingsService, cdr) { + this.dialog = dialog; + this.settingsService = settingsService; + this.cdr = cdr; + } + onEditPermission() { + let permission = this.permission; + let dialogRef = this.dialog.open(_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_2__.PermissionDialogComponent, { + position: { + top: '60px' + }, + data: { + permission: permission, + permissionRoles: this.permissionRoles, + mode: this.permissionMode + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.permission = result.permission; + this.permissionRoles = result.permissionRoles; + this.onEmitValues(); + } + this.cdr.detectChanges(); + }); + } + getResult() { + return { + name: this.name, + permission: this.permission, + permissionRoles: this.permissionRoles + }; + } + onEmitValues() { + this.onChanged.emit(this.getResult()); + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + havePermission() { + if (this.isRolePermission()) { + return this.permissionRoles?.show?.length || this.permissionRoles?.enabled?.length; + } else { + return this.permission; + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialog + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_3__.SettingsService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectorRef + }]; + static propDecorators = { + name: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + permission: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + permissionRoles: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + permissionMode: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + onChanged: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output + }] + }; +}; +FlexAuthComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'flex-auth', + template: _flex_auth_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_auth_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialog, _services_settings_service__WEBPACK_IMPORTED_MODULE_3__.SettingsService, _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectorRef])], FlexAuthComponent); + + +/***/ }), + +/***/ 63866: +/*!************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-device-tag/flex-device-tag.component.ts ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexDeviceTagComponent: () => (/* binding */ FlexDeviceTagComponent), +/* harmony export */ _filter: () => (/* binding */ _filter) +/* harmony export */ }); +/* harmony import */ var _flex_device_tag_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-device-tag.component.html?ngResource */ 50164); +/* harmony import */ var _flex_device_tag_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-device-tag.component.scss?ngResource */ 69590); +/* harmony import */ var _flex_device_tag_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_device_tag_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 75043); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +const _filter = (opt, value) => { + const filterValue = value.toLowerCase(); + return opt.filter(item => item.name.toLowerCase().includes(filterValue)); +}; +let FlexDeviceTagComponent = class FlexDeviceTagComponent { + projectService; + dialog; + tagTitle = ''; + readonly = false; + variableId; + deviceTagValue; + onchange = new _angular_core__WEBPACK_IMPORTED_MODULE_6__.EventEmitter(); + devicesGroups = []; + devicesTags$; + tagFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_7__.UntypedFormControl(); + devices = []; + constructor(projectService, dialog) { + this.projectService = projectService; + this.dialog = dialog; + } + ngOnInit() { + if (!this.deviceTagValue) { + this.deviceTagValue = { + variableId: this.variableId + }; + } else { + this.variableId = this.deviceTagValue.variableId; + } + this.loadDevicesTags(); + } + ngOnChanges(changes) { + if (changes['variableId'] && !changes['variableId'].isFirstChange()) { + this.deviceTagValue = { + variableId: this.variableId + }; + this.loadDevicesTags(); + } + } + _tagToVariableName(tag) { + let result = tag.label || tag.name; + if (result && tag.address && result !== tag.address) { + result = result + ' - ' + tag.address; + } + return result; + } + _filterGroup(value) { + if (value) { + return this.devicesGroups.map(device => ({ + name: device.name, + tags: _filter(device.tags, value?.name || value) + })).filter(device => device.tags.length > 0); + } + return this.devicesGroups; + } + _getDeviceTag(tagId) { + for (let i = 0; i < this.devicesGroups.length; i++) { + const tag = this.devicesGroups[i].tags.find(tag => tag.id === tagId); + if (tag) { + return tag; + } + } + return null; + } + _setSelectedTag() { + const tag = this._getDeviceTag(this.variableId); + this.tagFilter.patchValue(tag); + } + displayFn(deviceTag) { + return deviceTag?.name; + } + onDeviceTagSelected(deviceTag) { + this.variableId = deviceTag.id; + this.onChanged(); + } + getDeviceName() { + const device = _models_device__WEBPACK_IMPORTED_MODULE_3__.DevicesUtils.getDeviceFromTagId(this.devices, this.variableId); + if (device) { + return device.name; + } + return ''; + } + onChanged() { + if (this.tagFilter.value?.startsWith && this.tagFilter.value.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_3__.PlaceholderDevice.id)) { + this.deviceTagValue.variableId = this.tagFilter.value; + this.deviceTagValue.variableRaw = null; + } else if (this.tagFilter.value?.id?.startsWith && this.tagFilter.value.id.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_3__.PlaceholderDevice.id)) { + this.deviceTagValue.variableId = this.tagFilter.value.id; + this.deviceTagValue.variableRaw = null; + } else { + let tag = _models_device__WEBPACK_IMPORTED_MODULE_3__.DevicesUtils.getTagFromTagId(this.devices, this.variableId); + if (tag) { + this.deviceTagValue.variableId = tag.id; + this.deviceTagValue.variableRaw = tag; + } else { + this.deviceTagValue.variableId = null; + this.deviceTagValue.variableRaw = null; + } + } + this.onchange.emit(this.deviceTagValue); // Legacy + } + + onBindTag() { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_4__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: this.variableId + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (result.deviceName) { + this.loadDevicesTags(); + } + this.variableId = result.variableId; + this._setSelectedTag(); + this.onChanged(); + } + }); + } + loadDevicesTags() { + this.devicesGroups = []; + this.devicesGroups.push(_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.clone(_models_device__WEBPACK_IMPORTED_MODULE_3__.PlaceholderDevice)); + this.devices = Object.values(this.projectService.getDevices()); + this.devices.forEach(device => { + let deviceGroup = { + name: device.name, + tags: [] + }; + Object.values(device.tags).forEach(tag => { + const deviceTag = { + id: tag.id, + name: this._tagToVariableName(tag), + device: device.name + }; + deviceGroup.tags.push(deviceTag); + }); + this.devicesGroups.push(deviceGroup); + }); + this.devicesTags$ = this.tagFilter.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_8__.startWith)(''), (0,rxjs__WEBPACK_IMPORTED_MODULE_9__.map)(value => this._filterGroup(value || ''))); + if (this.variableId?.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_3__.PlaceholderDevice.id)) { + this.devicesGroups[0].tags.push({ + id: this.variableId, + name: this.variableId, + device: '@' + }); + } + this._setSelectedTag(); + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }]; + static propDecorators = { + tagTitle: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + readonly: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + variableId: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + deviceTagValue: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + onchange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Output + }] + }; +}; +FlexDeviceTagComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-flex-device-tag', + template: _flex_device_tag_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_device_tag_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog])], FlexDeviceTagComponent); + + +/***/ }), + +/***/ 70987: +/*!**************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-event/flex-event.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexEventComponent: () => (/* binding */ FlexEventComponent) +/* harmony export */ }); +/* harmony import */ var _flex_event_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-event.component.html?ngResource */ 17412); +/* harmony import */ var _flex_event_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-event.component.css?ngResource */ 33078); +/* harmony import */ var _flex_event_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_event_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/script */ 10846); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../controls/html-input/html-input.component */ 64428); +/* harmony import */ var _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../controls/html-select/html-select.component */ 87719); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let FlexEventComponent = class FlexEventComponent { + translateService; + projectService; + property; + views; + inputs; + data; + scripts; + eventRunScript = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + events; + eventType = {}; + setValueType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventSetValueType; + enterActionType = {}; + actionType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType; + relativeFromType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventRelativeFromType; + eventActionOnCard = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onwindow); + eventWithPosition = [_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oncard), _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onwindow), _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oniframe)]; + cardDestination = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onwindow); + panelDestination = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onViewToPanel); + eventOnWindows = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oncard); + viewPanels; + eventOnOpenTab = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onOpenTab); + eventOnIframe = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oniframe); + constructor(translateService, projectService) { + this.translateService = translateService; + this.projectService = projectService; + } + ngOnInit() { + // Events for view + if (this.data?.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewType.svg) { + this.actionType = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventActionType; + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType.onopen)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType.onopen); + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType.onclose)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.ViewEventType.onclose); + } else if (this.data.settings?.type === _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_5__.HtmlInputComponent.TypeTag) { + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.enter)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.enter); + } else if (this.data.settings?.type === _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag) { + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.select)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.select); + } else { + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.click)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.click); + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.dblclick)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.dblclick); + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mousedown)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mousedown); + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseup)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseup); + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseover)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseover); + this.eventType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseout)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventType.mouseout); + } + this.viewPanels = Object.values(this.data.view?.items ?? [])?.filter(item => item.type === 'svg-ext-own_ctrl-panel'); //#issue on build PanelComponent.TypeTag); + this.enterActionType[_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript)] = this.translateService.instant(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onRunScript); + Object.keys(this.actionType).forEach(key => { + this.translateService.get(this.actionType[key]).subscribe(txt => { + this.actionType[key] = txt; + }); + }); + Object.keys(this.setValueType).forEach(key => { + this.translateService.get(this.setValueType[key]).subscribe(txt => { + this.setValueType[key] = txt; + }); + }); + if (this.property) { + this.events = this.property.events; + // compatibility with <= 1.0.4 + this.events.forEach(element => { + if (!element.actoptions || Object.keys(element.actoptions).length == 0) { + element.actoptions = { + variablesMapping: [] + }; + } + }); + } + if (!this.events || this.events.length <= 0) { + this.onAddEvent(); + } + } + getEvents() { + let result = []; + if (this.events) { + this.events.forEach(element => { + if (element.type) { + // clean unconfig + if (element.action === this.eventRunScript) { + delete element.actoptions['variablesMapping']; + } else { + delete element.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_3__.SCRIPT_PARAMS_MAP]; + } + result.push(element); + } + }); + } + return result; + } + onAddEvent() { + let ga = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEvent(); + this.addEvent(ga); + } + onRemoveEvent(index) { + this.events.splice(index, 1); + } + onScriptChanged(scriptId, event) { + if (event && this.scripts) { + let script = this.scripts.find(s => s.id === scriptId); + event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_3__.SCRIPT_PARAMS_MAP] = []; + if (script && script.parameters) { + event.actoptions[_models_script__WEBPACK_IMPORTED_MODULE_3__.SCRIPT_PARAMS_MAP] = JSON.parse(JSON.stringify(script.parameters)); + } + } + } + withDestination(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onpage); + let c = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onwindow); + let d = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.ondialog); + let e = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onViewToPanel); + return a > -1 && (a === b || a === c || a === d || a === e); + } + withPosition(eventAction) { + return this.eventWithPosition.indexOf(eventAction) !== -1; + } + withWindows(eventAction) { + return eventAction !== this.eventOnOpenTab; + } + withSetValue(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onSetValue); + return a > -1 && a === b; + } + withToggleValue(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onToggleValue); + return a > -1 && a === b; + } + withSetInput(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onSetInput); + return a > -1 && a === b; + } + withAddress(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oniframe); + let c = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oncard); + let tab = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onOpenTab); + return a > -1 && (a === b || a === c || a === tab); + } + withSize(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oniframe); + let c = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oncard); + return a > -1 && (a === b || a === c); + } + withScale(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.oniframe); + return a > -1 && a === b; + } + withRunScript(action) { + return action === this.eventRunScript; + } + getView(viewId) { + return this.views.find(function (item) { + return item.id === viewId; + }); + } + setScriptParam(scriptParam, event) { + scriptParam.value = event.variableId; + } + destinationWithHideClose(action) { + return action === _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onwindow) || action === _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.ondialog); + } + isEnterOrSelect(type) { + return type === 'enter' || type === 'select'; + } + isWithPanel(action) { + let a = Object.keys(this.actionType).indexOf(action); + let b = Object.values(this.actionType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeEventActionType.onViewToPanel); + return a === b; + } + addEvent(ge) { + if (!this.events) { + this.events = []; + } + this.events.push(ge); + } + getDevices() { + return this.projectService.getDeviceList(); + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService + }]; + static propDecorators = { + property: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + views: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + inputs: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }], + scripts: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input + }] + }; +}; +FlexEventComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'flex-event', + template: _flex_event_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_event_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService])], FlexEventComponent); + + +/***/ }), + +/***/ 81841: +/*!************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-head/flex-head.component.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexHeadComponent: () => (/* binding */ FlexHeadComponent) +/* harmony export */ }); +/* harmony import */ var _flex_head_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-head.component.html?ngResource */ 54535); +/* harmony import */ var _flex_head_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-head.component.css?ngResource */ 62069); +/* harmony import */ var _flex_head_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_head_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 55400); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../flex-input/flex-input.component */ 50665); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let FlexHeadComponent = class FlexHeadComponent { + data; + property; + withStaticValue = true; + withBitmask = false; + flexInput; + withProperty = null; + variable; + alarme; + currentTag = null; + defaultValue; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.defaultColor; + // alarm: string; + alarmDeviceCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + alarmDeviceFilterCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + alarmCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + alarmFilterCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + /** list of variable filtered by search keyword */ + filteredAlarmDevice = new rxjs__WEBPACK_IMPORTED_MODULE_6__.ReplaySubject(1); + /** list of variable filtered by search keyword */ + filteredAlarm = new rxjs__WEBPACK_IMPORTED_MODULE_6__.ReplaySubject(1); + /** Subject that emits when the component has been destroyed. */ + _onDestroy = new rxjs__WEBPACK_IMPORTED_MODULE_7__.Subject(); + constructor() {} + ngOnInit() { + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeProperty(); + } + } + ngOnDestroy() { + this._onDestroy.next(null); + this._onDestroy.complete(); + } + getProperty() { + if (this.withProperty) { + this.property.ranges = this.flexInput.getRanges(); + } + return this.property; + } + getVariableLabel(vari) { + if (vari.label) { + return vari.label; + } else { + return vari.name; + } + } + setVariable(event) { + this.property.variableId = event.variableId; + this.property.variableValue = event.variableValue; + this.property.bitmask = event.bitmask; + if (this.flexInput) { + this.flexInput.changeTag(event.variableRaw); + } + } + onAddInput() { + this.flexInput.onAddInput(); + } + onRangeViewToggle(slideView) { + this.flexInput.onRangeViewToggle(slideView); + this.flexInput.changeTag(this.currentTag); + } + static ctorParameters = () => []; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + property: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + withStaticValue: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + withBitmask: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + flexInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['flexinput', { + static: false + }] + }], + withProperty: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }] + }; +}; +FlexHeadComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'flex-head', + template: _flex_head_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewEncapsulation.None, + styles: [(_flex_head_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], FlexHeadComponent); + + +/***/ }), + +/***/ 50665: +/*!**************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-input/flex-input.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexInputComponent: () => (/* binding */ FlexInputComponent), +/* harmony export */ InputItemType: () => (/* binding */ InputItemType), +/* harmony export */ PropertyType: () => (/* binding */ PropertyType) +/* harmony export */ }); +/* harmony import */ var _flex_input_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-input.component.html?ngResource */ 52477); +/* harmony import */ var _flex_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-input.component.css?ngResource */ 85727); +/* harmony import */ var _flex_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _flex_variable_flex_variable_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../flex-variable/flex-variable.component */ 46677); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let FlexInputComponent = class FlexInputComponent { + data; + property; + ranges; + type; + propertyType; + default; + varunit; + vardigits; + tag = null; + withLabel = true; + withValue = true; + slideView = true; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.defaultColor; + valueresult = '123'; + constructor() {} + ngOnInit() { + if (!this.ranges) { + this.ranges = []; + let ip = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeRangeProperty(); + if (this.isWithStep()) { + ip.type = this.type; + ip.min = 1; + ip.max = 1; + } else if (this.isMinMax()) { + ip.type = this.type; + ip.min = 0; + ip.max = 100; + ip.style = [true, true]; + } else { + ip.type = this.type; + ip.min = 20; + ip.max = 80; + } + this.addInput(ip); + } else if (this.isMinMax()) { + if (this.ranges.length > 0 && this.ranges[0].style.length === 2) { + this.withLabel = this.ranges[0].style[0]; + this.withValue = this.ranges[0].style[1]; + } + } else if (this.isOutputCtrl()) {} + this.ranges.forEach(range => { + if (!range.color) { + range.color = ''; + } + if (!range.stroke) { + range.stroke = ''; + } + }); + } + onAddInput() { + let gap = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeRangeProperty(); + gap.type = this.type; + gap.color = ''; + gap.stroke = ''; + this.addInput(gap); + } + onRemoveInput(index) { + this.ranges.splice(index, 1); + } + onRangeViewToggle(slideView) { + this.slideView = slideView; + } + getRanges() { + let result = []; + this.ranges.forEach(element => { + element.type = this.propertyType; + if (this.isWithStep()) { + element.max = element.min; + if (element.min !== null && element.max !== null) { + result.push(element); + } + } else if (this.isMinMax()) { + element.style = [this.withLabel, this.withValue]; + result.push(element); + } else { + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(element.min) && !_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.isNullOrUndefined(element.max)) { + result.push(element); + } + } + }); + return result; + } + getColor(item) { + if (item && item.color) { + return item.color; + } else if (this.default && this.default.color) { + return this.default.color; + } + } + changeTag(_tag) { + this.tag = _tag; + if (this.isOutputCtrl()) { + let device = _models_device__WEBPACK_IMPORTED_MODULE_3__.DevicesUtils.getDeviceFromTagId(this.data.devices, _tag?.id); + if (device) { + if (this.varunit) { + this.varunit.setVariable(_models_device__WEBPACK_IMPORTED_MODULE_3__.DevicesUtils.getTagFromTagAddress(device, _tag.address + 'OpcEngUnit')); + } + if (this.vardigits) { + this.vardigits.setVariable(_models_device__WEBPACK_IMPORTED_MODULE_3__.DevicesUtils.getTagFromTagAddress(device, _tag.address + 'DecimalPlaces')); + } + } + } + } + isWithRange() { + return this.propertyType === PropertyType.range; + } + isMinMax() { + return this.propertyType === PropertyType.minmax; + } + isWithRangeColor() { + return this.propertyType === PropertyType.range; + } + isWithStep() { + return this.propertyType === PropertyType.step; + } + isOutputCtrl() { + return this.propertyType === PropertyType.output; + } + isInputMinMax() { + if (this.data.dlgType === 16) { + // GaugeDialogType.Input + return true; + } + return false; + } + onFormatDigitChanged(range, event) { + range['fractionDigitsId'] = event.variableId; + range['fractionDigits'] = event.variableValue; + } + onUnitChanged(range, event) { + range.textId = event.variableId; + range.text = event.variableValue; + } + addInput(gap) { + this.ranges.push(gap); + } + static ctorParameters = () => []; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + property: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + ranges: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + type: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + propertyType: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + default: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + varunit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ViewChild, + args: ['unit', { + static: false + }] + }], + vardigits: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ViewChild, + args: ['digits', { + static: false + }] + }] + }; +}; +FlexInputComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'flex-input', + template: _flex_input_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_input_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], FlexInputComponent); + +var InputItemType; +(function (InputItemType) { + InputItemType[InputItemType["Color"] = 0] = "Color"; +})(InputItemType || (InputItemType = {})); +var PropertyType; +(function (PropertyType) { + PropertyType[PropertyType["output"] = 1] = "output"; + PropertyType[PropertyType["range"] = 2] = "range"; + PropertyType[PropertyType["text"] = 3] = "text"; + PropertyType[PropertyType["step"] = 4] = "step"; + PropertyType[PropertyType["minmax"] = 5] = "minmax"; + PropertyType[PropertyType["input"] = 6] = "input"; +})(PropertyType || (PropertyType = {})); + +/***/ }), + +/***/ 55285: +/*!****************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variable-map/flex-variable-map.component.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexVariableMapComponent: () => (/* binding */ FlexVariableMapComponent) +/* harmony export */ }); +/* harmony import */ var _flex_variable_map_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-variable-map.component.html?ngResource */ 78588); +/* harmony import */ var _flex_variable_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-variable-map.component.scss?ngResource */ 45346); +/* harmony import */ var _flex_variable_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_variable_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let FlexVariableMapComponent = class FlexVariableMapComponent { + view; + data; + value; + placeholders = []; + valueChange = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + constructor() {} + ngOnInit() { + if (!this.value) { + this.value = {}; + } + this.value.from = this.value.from || {}; + this.value.to = this.value.to || {}; + } + onValueChange() { + this.valueChange.emit(this.value); + } + compareVariables(v1, v2) { + return v1 && v2 && v1.variableId == v2.variableId; + } + static ctorParameters = () => []; + static propDecorators = { + view: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + value: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + placeholders: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + valueChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +FlexVariableMapComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'flex-variable-map', + template: _flex_variable_map_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_variable_map_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], FlexVariableMapComponent); + + +/***/ }), + +/***/ 46677: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variable/flex-variable.component.ts ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexVariableComponent: () => (/* binding */ FlexVariableComponent), +/* harmony export */ _filter: () => (/* binding */ _filter) +/* harmony export */ }); +/* harmony import */ var _flex_variable_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-variable.component.html?ngResource */ 15921); +/* harmony import */ var _flex_variable_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-variable.component.scss?ngResource */ 78362); +/* harmony import */ var _flex_variable_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_variable_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _gui_helpers_bitmask_bitmask_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../gui-helpers/bitmask/bitmask.component */ 76977); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 75043); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +const _filter = (opt, value) => { + const filterValue = value?.toLowerCase(); + return opt.filter(item => item.name?.toLowerCase().includes(filterValue)); +}; +let FlexVariableComponent = class FlexVariableComponent { + dialog; + projectService; + data; + variableId; + value; + allowManualEdit = false; + variableValue; + variableLabel = 'gauges.property-variable-value'; + withStaticValue = true; + withStaticType = null; + withBitmask = false; + tagLabel = 'gauges.property-tag-label'; + tagTitle = ''; + bitmask; + readonly = false; + placeholders = []; + devicesOnly = false; + onchange = new _angular_core__WEBPACK_IMPORTED_MODULE_7__.EventEmitter(); + valueChange = new _angular_core__WEBPACK_IMPORTED_MODULE_7__.EventEmitter(); + manualEdit = false; + defaultColor = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.defaultColor; + variableList = []; + selectedTag; + devices = []; + devicesTags$; + tagFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormControl(); + constructor(dialog, projectService) { + this.dialog = dialog; + this.projectService = projectService; + } + ngOnInit() { + this.loadDevicesTags(); + this.devicesTags$ = this.tagFilter.valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.startWith)(''), (0,rxjs__WEBPACK_IMPORTED_MODULE_10__.map)(value => this._filterGroup(value || ''))); + if (!this.value) { + this.value = { + variableId: this.variableId + }; + } else { + this.variableId = this.value.variableId; + this.variableValue = this.value.variableValue; + } + if (!this.devicesOnly) { + let devPlaceholders = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.clone(_models_device__WEBPACK_IMPORTED_MODULE_2__.PlaceholderDevice); + this.placeholders?.forEach(placeholder => { + devPlaceholders.tags.push({ + id: placeholder.variableId, + name: placeholder.variableId, + device: '@' + }); + }); + if (this.variableId?.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_2__.PlaceholderDevice.id) && !devPlaceholders.tags.find(placeholder => placeholder.id === this.variableId)) { + devPlaceholders.tags.push({ + id: this.variableId, + name: this.variableId, + device: '@' + }); + } + this.devices.unshift(devPlaceholders); + } + this._setSelectedTag(); + } + _tagToVariableName(tag) { + let result = tag.label || tag.name; + if (result && tag.address && result !== tag.address) { + result = result + ' - ' + tag.address; + } + return result; + } + _filterGroup(value) { + if (value) { + return this.devices.map(device => ({ + name: device.name, + tags: _filter(device.tags, value?.name || value) + })).filter(device => device.tags.length > 0); + } + return this.devices; + } + _getDeviceTag(tagId) { + for (let i = 0; i < this.devices.length; i++) { + const tag = this.devices[i].tags.find(tag => tag.id === tagId); + if (tag) { + return tag; + } + } + return null; + } + _setSelectedTag() { + const tag = this._getDeviceTag(this.variableId); + this.tagFilter.patchValue(tag); + } + displayFn(deviceTag) { + return deviceTag?.name; + } + onDeviceTagSelected(deviceTag) { + this.variableId = deviceTag.id; + this.onChanged(); + } + getDeviceName() { + let device = _models_device__WEBPACK_IMPORTED_MODULE_2__.DevicesUtils.getDeviceFromTagId(this.data.devices || {}, this.variableId); + if (device) { + return device.name; + } + return ''; + } + getVariableName() { + let tag = _models_device__WEBPACK_IMPORTED_MODULE_2__.DevicesUtils.getTagFromTagId(this.data.devices || {}, this.variableId); + if (tag) { + let result = tag.label || tag.name; + if (result && tag.address && result !== tag.address) { + return result + ' - ' + tag.address; + } + if (tag.address) { + return tag.address; + } + return result; + } + return ''; + } + getVariableMask() { + if (this.bitmask) { + return `bit ${_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.findBitPosition(this.bitmask).toString()}`; // this.bitmask.toString(16); + } + + return ''; + } + onChanged() { + if (this.tagFilter.value?.startsWith && this.tagFilter.value.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_2__.PlaceholderDevice.id)) { + this.value.variableId = this.tagFilter.value; + this.value.variableRaw = null; + } else if (this.tagFilter.value?.id?.startsWith && this.tagFilter.value.id.startsWith(_models_device__WEBPACK_IMPORTED_MODULE_2__.PlaceholderDevice.id)) { + this.value.variableId = this.tagFilter.value.id; + this.value.variableRaw = null; + } else { + let tag = _models_device__WEBPACK_IMPORTED_MODULE_2__.DevicesUtils.getTagFromTagId(this.data.devices || {}, this.variableId); + if (tag) { + this.value.variableId = tag.id; + this.value.variableRaw = tag; + } else { + this.value.variableId = null; + this.value.variableRaw = null; + } + } + if (this.withBitmask) { + this.value.bitmask = this.bitmask; + } + this.value.variableValue = this.variableValue; + this.onchange.emit(this.value); // Legacy + this.valueChange.emit(this.value); + } + onBindTag() { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_5__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: this.variableId + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (result.deviceName) { + this.loadDevicesTags(result.deviceName); + } + this.variableId = result.variableId; + this.onChanged(); + this._setSelectedTag(); + } + }); + } + setVariable(tag) { + if (tag) { + this.variableId = tag.id; + } else { + this.variableId = null; + } + this.onChanged(); + } + onSetBitmask() { + let dialogRef = this.dialog.open(_gui_helpers_bitmask_bitmask_component__WEBPACK_IMPORTED_MODULE_4__.BitmaskComponent, { + position: { + top: '60px' + }, + data: { + bitmask: this.bitmask + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.bitmask = result.bitmask; + this.onChanged(); + } + }); + } + loadDevicesTags(deviceName) { + const deviceUpdated = Object.values(this.projectService.getDevices()).find(device => device.name === deviceName); + Object.values(this.data.devices || {}).forEach(device => { + let deviceGroup = { + name: device.name, + tags: [] + }; + let deviceTags = device.tags; + if (deviceUpdated && deviceUpdated.name === deviceName) { + deviceTags = deviceUpdated.tags; + } + Object.values(deviceTags).forEach(tag => { + const deviceTag = { + id: tag.id, + name: this._tagToVariableName(tag), + device: device.name + }; + deviceGroup.tags.push(deviceTag); + }); + this.devices.push(deviceGroup); + }); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_6__.ProjectService + }]; + static propDecorators = { + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + variableId: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + value: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + allowManualEdit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + variableValue: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + variableLabel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + withStaticValue: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + withStaticType: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + withBitmask: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + tagLabel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + tagTitle: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + bitmask: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + readonly: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + placeholders: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + devicesOnly: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }], + onchange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Output + }], + valueChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Output + }] + }; +}; +FlexVariableComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'flex-variable', + template: _flex_variable_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_variable_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_6__.ProjectService])], FlexVariableComponent); + + +/***/ }), + +/***/ 61029: +/*!**************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variables-mapping/flex-variables-mapping.component.ts ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexVariablesMappingComponent: () => (/* binding */ FlexVariablesMappingComponent) +/* harmony export */ }); +/* harmony import */ var _flex_variables_mapping_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-variables-mapping.component.html?ngResource */ 4962); +/* harmony import */ var _flex_variables_mapping_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-variables-mapping.component.css?ngResource */ 71184); +/* harmony import */ var _flex_variables_mapping_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_variables_mapping_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let FlexVariablesMappingComponent = class FlexVariablesMappingComponent { + view; + mapping; + data; + mappingChange = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + placeholders; + constructor() {} + ngOnInit() { + if (!this.mapping) { + this.mapping = []; + } + } + ngOnChanges(changes) { + if (changes.view) { + this.placeholders = null; + } + } + get viewPlaceholders() { + if (this.placeholders) { + return this.placeholders; + } + let viewVariables = {}; + if (this.view) { + Object.values(this.view.items).forEach(item => { + if (item && item.property) { + if (item.property.variableId) { + this.assignVariableTo(item.property, viewVariables); + } + if (item.property.actions) { + Object.values(item.property.actions).forEach(action => { + this.assignVariableTo(action, viewVariables); + }); + } + if (item.property.events) { + Object.values(item.property.events).forEach(event => { + if (event['actoptions'] && event['actoptions']['variableId']) { + this.assignVariableTo(event['actoptions'], viewVariables); + } else if (event['actoptions'] && event['actoptions']['variable']) { + this.assignVariableTo(event['actoptions']['variable'], viewVariables); + } + }); + } + } + }); + } + this.placeholders = Object.values(viewVariables); + return this.placeholders; + } + assignVariableTo(object, target) { + let variable = { + variableId: object['variableId'] + }; + target[variable.variableId] = variable; + } + addVariableMapping($event) { + $event.preventDefault(); + this.mapping.push({ + from: {}, + to: {} + }); + } + removeVariableMapping($event, i) { + $event.preventDefault(); + this.mapping.splice(i, 1); + } + onChange() { + this.mappingChange.emit(this.mapping); + } + static ctorParameters = () => []; + static propDecorators = { + view: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + mapping: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + mappingChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output + }] + }; +}; +FlexVariablesMappingComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'flex-variables-mapping', + template: _flex_variables_mapping_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_variables_mapping_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], FlexVariablesMappingComponent); + + +/***/ }), + +/***/ 62793: +/*!**********************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-widget-property/flex-widget-property.component.ts ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FlexWidgetPropertyComponent: () => (/* binding */ FlexWidgetPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _flex_widget_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./flex-widget-property.component.html?ngResource */ 12590); +/* harmony import */ var _flex_widget_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flex-widget-property.component.scss?ngResource */ 82535); +/* harmony import */ var _flex_widget_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flex_widget_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let FlexWidgetPropertyComponent = class FlexWidgetPropertyComponent { + projectService; + property; + dataDevices = { + devices: [] + }; + constructor(projectService) { + this.projectService = projectService; + this.dataDevices = { + devices: Object.values(this.projectService.getDevices()) + }; + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }]; + static propDecorators = { + property: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }] + }; +}; +FlexWidgetPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'flex-widget-property', + template: _flex_widget_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_flex_widget_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService])], FlexWidgetPropertyComponent); + + +/***/ }), + +/***/ 99633: +/*!*******************************************************************!*\ + !*** ./src/app/gauges/gauge-property/gauge-property.component.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GaugeDialogType: () => (/* binding */ GaugeDialogType), +/* harmony export */ GaugePropertyComponent: () => (/* binding */ GaugePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _gauge_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gauge-property.component.html?ngResource */ 46035); +/* harmony import */ var _gauge_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gauge-property.component.scss?ngResource */ 39342); +/* harmony import */ var _gauge_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_gauge_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _flex_head_flex_head_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flex-head/flex-head.component */ 81841); +/* harmony import */ var _flex_event_flex_event_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flex-event/flex-event.component */ 70987); +/* harmony import */ var _flex_action_flex_action_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flex-action/flex-action.component */ 68009); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flex-input/flex-input.component */ 50665); +/* harmony import */ var _permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./permission-dialog/permission-dialog.component */ 87570); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../_services/settings.service */ 22044); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + +let GaugePropertyComponent = class GaugePropertyComponent { + dialog; + dialogRef; + settingsService; + cdr; + data; + name; + flexHead; + flexEvent; + flexAction; + slideView = true; + slideActionView = true; + withBitmask = false; + property; + dialogType = GaugeDialogType.RangeWithAlarm; + eventsSupported; + actionsSupported; + views; + defaultValue; + inputs; + scripts; + constructor(dialog, dialogRef, settingsService, cdr, data) { + this.dialog = dialog; + this.dialogRef = dialogRef; + this.settingsService = settingsService; + this.cdr = cdr; + this.data = data; + this.dialogType = this.data.dlgType; + this.eventsSupported = this.data.withEvents; + this.actionsSupported = this.data.withActions; + this.views = this.data.views; + this.inputs = this.data.inputs; + this.scripts = this.data.scripts; + this.property = JSON.parse(JSON.stringify(this.data.settings.property)); + if (!this.property) { + this.property = new _models_hmi__WEBPACK_IMPORTED_MODULE_5__.GaugeProperty(); + } + } + ngAfterViewInit() { + this.defaultValue = this.data.default; + if (!this.isWidget() && this.data.withProperty !== false) { + // else undefined + if (this.dialogType === GaugeDialogType.Input) { + this.flexHead.withProperty = _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__.PropertyType.input; + } else if (this.dialogType === GaugeDialogType.ValueAndUnit) { + this.flexHead.withProperty = _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__.PropertyType.output; + } else { + this.flexHead.defaultValue = this.defaultValue; + this.flexHead.withProperty = _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__.PropertyType.range; + if (this.dialogType === GaugeDialogType.ValueWithRef) { + this.flexHead.withProperty = _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__.PropertyType.text; + } else if (this.dialogType === GaugeDialogType.Step) { + this.flexHead.withProperty = _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__.PropertyType.step; + } else if (this.dialogType === GaugeDialogType.MinMax) { + this.flexHead.withProperty = _flex_input_flex_input_component__WEBPACK_IMPORTED_MODULE_6__.PropertyType.minmax; + } + } + } + if (this.data.withBitmask) { + this.withBitmask = this.data.withBitmask; + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.isWidget()) { + this.data.settings.property = this.property; + } else { + this.data.settings.property = this.flexHead?.getProperty(); + } + if (this.flexEvent) { + this.data.settings.property.events = this.flexEvent.getEvents(); + } + if (this.flexAction) { + this.data.settings.property.actions = this.flexAction.getActions(); + } + if (this.property.readonly) { + this.property.readonly = true; + } else { + delete this.property.readonly; + } + } + onAddInput() { + this.flexHead.onAddInput(); + } + onAddEvent() { + this.flexEvent.onAddEvent(); + } + onAddAction() { + this.flexAction.onAddAction(); + } + onRangeViewToggle() { + this.flexHead.onRangeViewToggle(this.slideView); + } + onActionRangeViewToggle() { + this.flexAction.onRangeViewToggle(this.slideActionView); + } + isToolboxToShow() { + if (this.dialogType === GaugeDialogType.RangeWithAlarm || this.dialogType === GaugeDialogType.Range || this.dialogType === GaugeDialogType.Step || this.dialogType === GaugeDialogType.RangeAndText) { + return this.data.withProperty !== false; + } + return false; + } + isRangeToShow() { + if (this.dialogType === GaugeDialogType.RangeWithAlarm || this.dialogType === GaugeDialogType.Range || this.dialogType === GaugeDialogType.RangeAndText) { + return true; + } + return false; + } + isTextToShow() { + return this.data.languageTextEnabled || this.dialogType === GaugeDialogType.RangeAndText; + } + isAlarmToShow() { + if (this.dialogType === GaugeDialogType.RangeWithAlarm) { + return true; + } + return false; + } + isReadonlyToShow() { + if (this.dialogType === GaugeDialogType.Step) { + return true; + } + return false; + } + onEditPermission() { + let dialogRef = this.dialog.open(_permission_dialog_permission_dialog_component__WEBPACK_IMPORTED_MODULE_7__.PermissionDialogComponent, { + position: { + top: '60px' + }, + data: { + permission: this.property.permission, + permissionRoles: this.property.permissionRoles + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.property.permission = result.permission; + this.property.permissionRoles = result.permissionRoles; + } + this.cdr.detectChanges(); + }); + } + isWidget() { + return this.property.type; + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + havePermission() { + if (this.isRolePermission()) { + return this.property.permissionRoles?.show?.length || this.property.permissionRoles?.enabled?.length; + } else { + return this.property.permission; + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialog + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_8__.SettingsService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + name: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input + }], + flexHead: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexhead', { + static: false + }] + }], + flexEvent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexevent', { + static: false + }] + }], + flexAction: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: ['flexaction', { + static: false + }] + }] + }; +}; +GaugePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'gauge-property', + template: _gauge_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectionStrategy.OnPush, + styles: [(_gauge_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialog, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef, _services_settings_service__WEBPACK_IMPORTED_MODULE_8__.SettingsService, _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef, Object])], GaugePropertyComponent); + +var GaugeDialogType; +(function (GaugeDialogType) { + GaugeDialogType[GaugeDialogType["Range"] = 0] = "Range"; + GaugeDialogType[GaugeDialogType["RangeAndText"] = 1] = "RangeAndText"; + GaugeDialogType[GaugeDialogType["RangeWithAlarm"] = 2] = "RangeWithAlarm"; + GaugeDialogType[GaugeDialogType["ValueAndUnit"] = 3] = "ValueAndUnit"; + GaugeDialogType[GaugeDialogType["ValueWithRef"] = 4] = "ValueWithRef"; + GaugeDialogType[GaugeDialogType["Step"] = 5] = "Step"; + GaugeDialogType[GaugeDialogType["MinMax"] = 6] = "MinMax"; + GaugeDialogType[GaugeDialogType["Chart"] = 7] = "Chart"; + GaugeDialogType[GaugeDialogType["Gauge"] = 8] = "Gauge"; + GaugeDialogType[GaugeDialogType["Pipe"] = 9] = "Pipe"; + GaugeDialogType[GaugeDialogType["Slider"] = 10] = "Slider"; + GaugeDialogType[GaugeDialogType["Switch"] = 11] = "Switch"; + GaugeDialogType[GaugeDialogType["Graph"] = 12] = "Graph"; + GaugeDialogType[GaugeDialogType["Iframe"] = 13] = "Iframe"; + GaugeDialogType[GaugeDialogType["Table"] = 14] = "Table"; + GaugeDialogType[GaugeDialogType["Input"] = 15] = "Input"; + GaugeDialogType[GaugeDialogType["Panel"] = 16] = "Panel"; + GaugeDialogType[GaugeDialogType["Video"] = 17] = "Video"; + GaugeDialogType[GaugeDialogType["Scheduler"] = 18] = "Scheduler"; +})(GaugeDialogType || (GaugeDialogType = {})); + +/***/ }), + +/***/ 87570: +/*!****************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/permission-dialog/permission-dialog.component.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PermissionDialogComponent: () => (/* binding */ PermissionDialogComponent) +/* harmony export */ }); +/* harmony import */ var _permission_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./permission-dialog.component.html?ngResource */ 22086); +/* harmony import */ var _permission_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./permission-dialog.component.scss?ngResource */ 60762); +/* harmony import */ var _permission_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_permission_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/user */ 252); +/* harmony import */ var _gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../gui-helpers/sel-options/sel-options.component */ 84804); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_services/settings.service */ 22044); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_services/user.service */ 96155); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let PermissionDialogComponent = class PermissionDialogComponent { + dialogRef; + userService; + cdr; + settingsService; + data; + selected = []; + extension = []; + options = []; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + seloptions; + constructor(dialogRef, userService, cdr, settingsService, data) { + this.dialogRef = dialogRef; + this.userService = userService; + this.cdr = cdr; + this.settingsService = settingsService; + this.data = data; + } + ngAfterViewInit() { + if (this.isRolePermission()) { + this.userService.getRoles().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.map)(roles => roles.sort((a, b) => a.index - b.index)), (0,rxjs__WEBPACK_IMPORTED_MODULE_8__.takeUntil)(this.destroy$)).subscribe(roles => { + this.options = roles?.map(role => ({ + id: role.id, + label: role.name + })); + this.selected = this.options.filter(role => this.data.permissionRoles?.enabled?.includes(role.id)); + this.extension = this.data.mode ? null : this.options.filter(role => this.data.permissionRoles?.show?.includes(role.id)); + }, err => { + console.error('get Roles err: ' + err); + }); + } else { + this.selected = _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.ValueToGroups(this.data.permission); + this.extension = this.data.mode ? null : _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.ValueToGroups(this.data.permission, true); + this.options = _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.Groups; + } + this.cdr.detectChanges(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.isRolePermission()) { + if (!this.data.permissionRoles) { + this.data.permissionRoles = { + show: null, + enabled: null + }; + } + this.data.permissionRoles.enabled = this.seloptions.selected?.map(role => role.id); + if (this.data.mode === 'onlyShow') { + this.data.permissionRoles.show = this.seloptions.selected?.map(role => role.id); + } else { + this.data.permissionRoles.show = this.seloptions.extSelected?.map(role => role.id); + } + } else { + this.data.permission = _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.GroupsToValue(this.seloptions.selected); + if (this.data.mode === 'onlyShow') { + this.data.permission += _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.GroupsToValue(this.seloptions.selected, true); + } else { + this.data.permission += _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.GroupsToValue(this.seloptions.extSelected, true); + } + } + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_5__.UserService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_4__.SettingsService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + seloptions: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: [_gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_3__.SelOptionsComponent, { + static: false + }] + }] + }; +}; +PermissionDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-permission-dialog', + template: _permission_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_permission_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef, _services_user_service__WEBPACK_IMPORTED_MODULE_5__.UserService, _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef, _services_settings_service__WEBPACK_IMPORTED_MODULE_4__.SettingsService, Object])], PermissionDialogComponent); + + +/***/ }), + +/***/ 80655: +/*!********************************************!*\ + !*** ./src/app/gauges/gauges.component.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GaugesManager: () => (/* binding */ GaugesManager) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_services/hmi.service */ 69578); +/* harmony import */ var _models_chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_models/chart */ 38127); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _controls_value_value_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./controls/value/value.component */ 98458); +/* harmony import */ var _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./controls/html-input/html-input.component */ 64428); +/* harmony import */ var _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./controls/html-button/html-button.component */ 66843); +/* harmony import */ var _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./controls/html-select/html-select.component */ 87719); +/* harmony import */ var _controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./controls/html-chart/html-chart.component */ 19775); +/* harmony import */ var _controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./controls/html-graph/html-graph.component */ 47981); +/* harmony import */ var _controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./controls/html-bag/html-bag.component */ 16434); +/* harmony import */ var _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./controls/html-switch/html-switch.component */ 72134); +/* harmony import */ var _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./controls/gauge-progress/gauge-progress.component */ 64421); +/* harmony import */ var _controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./controls/gauge-semaphore/gauge-semaphore.component */ 79069); +/* harmony import */ var _shapes_shapes_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./shapes/shapes.component */ 35896); +/* harmony import */ var _shapes_proc_eng_proc_eng_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./shapes/proc-eng/proc-eng.component */ 93142); +/* harmony import */ var _shapes_ape_shapes_ape_shapes_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./shapes/ape-shapes/ape-shapes.component */ 69395); +/* harmony import */ var _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./controls/pipe/pipe.component */ 82916); +/* harmony import */ var _controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./controls/slider/slider.component */ 34493); +/* harmony import */ var _helpers_windowref__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../_helpers/windowref */ 12780); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./controls/html-iframe/html-iframe.component */ 39845); +/* harmony import */ var _controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./controls/html-table/html-table.component */ 2613); +/* harmony import */ var _controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./controls/html-scheduler/html-scheduler.component */ 98782); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./controls/html-image/html-image.component */ 44841); +/* harmony import */ var _controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./controls/panel/panel.component */ 73444); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../_services/auth.service */ 48333); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var _controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./controls/html-video/html-video.component */ 58858); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var GaugesManager_1; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +let GaugesManager = GaugesManager_1 = class GaugesManager { + hmiService; + authService; + winRef; + onchange = new _angular_core__WEBPACK_IMPORTED_MODULE_29__.EventEmitter(); + onevent = new _angular_core__WEBPACK_IMPORTED_MODULE_29__.EventEmitter(); + // signalGaugeMap = new ViewSignalGaugeMap(); // map of all gauges (GaugeSettings) pro signals + // map of gauges that have a click/html event + eventGauge = {}; + // map of gauges with views + mapGaugeView = {}; + // map of all signals and binded gauges of current view + memorySigGauges = {}; + mapChart = {}; + mapGauges = {}; + mapTable = {}; + // list of gauges tags to speed up the check + static gaugesTags = []; + // list of gauges with input + static GaugeWithProperty = [_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.prefix, _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.prefix, _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.prefix]; + // list of gauges tags to check who as events like mouse click + static GaugeWithEvents = [_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.TypeTag, _controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent.TypeTag, _shapes_shapes_component__WEBPACK_IMPORTED_MODULE_13__.ShapesComponent.TypeTag, _shapes_proc_eng_proc_eng_component__WEBPACK_IMPORTED_MODULE_14__.ProcEngComponent.TypeTag, _shapes_ape_shapes_ape_shapes_component__WEBPACK_IMPORTED_MODULE_15__.ApeShapesComponent.TypeTag, _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.TypeTag, _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag, _controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent.TypeTag, _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag, _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.TypeTag]; + // list of gauges tags to check who as events like mouse click + static GaugeWithActions = [_shapes_ape_shapes_ape_shapes_component__WEBPACK_IMPORTED_MODULE_15__.ApeShapesComponent, _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent, _shapes_proc_eng_proc_eng_component__WEBPACK_IMPORTED_MODULE_14__.ProcEngComponent, _shapes_shapes_component__WEBPACK_IMPORTED_MODULE_13__.ShapesComponent, _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent, _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent, _controls_value_value_component__WEBPACK_IMPORTED_MODULE_3__.ValueComponent, _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent, _controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent, _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent, _controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent, _controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent]; + // list of gauges components + static Gauges = [_controls_value_value_component__WEBPACK_IMPORTED_MODULE_3__.ValueComponent, _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent, _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent, _controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent, _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent, _controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent, _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent, _controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent, _shapes_shapes_component__WEBPACK_IMPORTED_MODULE_13__.ShapesComponent, _shapes_proc_eng_proc_eng_component__WEBPACK_IMPORTED_MODULE_14__.ProcEngComponent, _shapes_ape_shapes_ape_shapes_component__WEBPACK_IMPORTED_MODULE_15__.ApeShapesComponent, _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent, _controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent, _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent, _controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent, _controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__.HtmlIframeComponent, _controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent, _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent, _controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent, _controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent, _controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent]; + constructor(hmiService, authService, winRef) { + this.hmiService = hmiService; + this.authService = authService; + this.winRef = winRef; + // subscription to the change of variable value, then emit to the gauges of fuxa-view + this.hmiService.onVariableChanged.subscribe(sig => { + try { + this.onchange.emit(sig); + } catch (err) {} + }); + // subscription to DAQ values, then emit to charts gauges of fuxa-view + this.hmiService.onDaqResult.subscribe(message => { + try { + if (this.mapChart[message.gid]) { + let gauge = this.mapChart[message.gid]; + gauge.setValues(message.result, message.chunk); + } else if (this.mapTable[message.gid]) { + let gauge = this.mapTable[message.gid]; + gauge.setValues(message.result, message.chunk); + } + } catch (err) {} + }); + this.hmiService.getGaugeMapped = this.getGaugeFromName.bind(this); + // make the list of gauges tags to speed up the check + GaugesManager_1.Gauges.forEach(g => { + GaugesManager_1.gaugesTags.push(g.TypeTag); + }); + } + createSettings(id, type) { + let gs = null; + if (type) { + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + gs = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeSettings(id, type); + gs.label = GaugesManager_1.Gauges[i].LabelTag; + return gs; + } + } + } + return gs; + } + createGaugeStatus(ga) { + let result = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeStatus(); + if (!ga.type.startsWith(_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.TypeTag) && !ga.type.startsWith(_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.TypeTag) && !ga.type.startsWith(_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.TypeTag) && !ga.type.startsWith(_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.TypeTag)) { + result.onlyChange = true; + } + if (ga.type.startsWith(_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.TypeTag)) { + result.takeValue = true; + } + return result; + } + isWithEvents(type) { + if (type) { + for (let i = 0; i < GaugesManager_1.GaugeWithEvents.length; i++) { + if (type.startsWith(GaugesManager_1.GaugeWithEvents[i])) { + return true; + } + } + } + return false; + } + isWithActions(type) { + if (type) { + for (let i = 0; i < GaugesManager_1.GaugeWithActions.length; i++) { + if (type.startsWith(GaugesManager_1.GaugeWithActions[i].TypeTag)) { + if (typeof GaugesManager_1.GaugeWithActions[i]['getActions'] === 'function') { + return GaugesManager_1.GaugeWithActions[i]['getActions'](type); + } + } + } + } + return false; + } + /** + * Return if is a gauge by check the svg attribute 'type' = 'svg-ext-...' + * @param type + * @returns + */ + static isGauge(type) { + for (let tag in GaugesManager_1.gaugesTags) { + if (type.startsWith(GaugesManager_1.gaugesTags[tag])) { + return true; + } + } + return false; + } + /** + * gauges to update in editor after changed property (GaugePropertyComponent, ChartPropertyComponent) + * @param ga + */ + initInEditor(ga, res, ref, elementWithLanguageText) { + if (ga.type.startsWith(_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.TypeTag)) { + _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.initElement(ga); + } else if (ga.type.startsWith(_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.TypeTag)) { + _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.initElement(ga); + } else if (ga.type.startsWith(_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.TypeTag)) { + delete this.mapGauges[ga.id]; + let gauge = _controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.detectChange(ga, res, ref); + this.setChartPropety(gauge, ga.property); + this.mapGauges[ga.id] = gauge; + } else if (ga.type.startsWith(_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.TypeTag)) { + delete this.mapGauges[ga.id]; + let gauge = _controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.detectChange(ga, res, ref); + this.setGraphPropety(gauge, ga.property); + this.mapGauges[ga.id] = gauge; + } else if (ga.type.startsWith(_controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.TypeTag)) { + this.mapGauges[ga.id] = _controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.detectChange(ga, res, ref); + } else if (ga.type.startsWith(_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent.TypeTag)) { + this.mapGauges[ga.id] = _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent.detectChange(ga, res, this.winRef); + return this.mapGauges[ga.id]; + } else if (ga.type.startsWith(_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.TypeTag)) { + return this.mapGauges[ga.id] = _controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.detectChange(ga, res, ref); + } else if (ga.type.startsWith(_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.TypeTag)) { + return this.mapGauges[ga.id] = _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.detectChange(ga, res, ref); + } else if (ga.type.startsWith(_controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__.HtmlIframeComponent.TypeTag)) { + _controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__.HtmlIframeComponent.detectChange(ga); + } else if (ga.type.startsWith(_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.TypeTag)) { + delete this.mapGauges[ga.id]; + let gauge = _controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.detectChange(ga, res, ref); + this.setTablePropety(gauge, ga.property); + this.mapGauges[ga.id] = gauge; + } else if (ga.type.startsWith(_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.TypeTag)) { + delete this.mapGauges[ga.id]; + let gauge = _controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.detectChange(ga, res, ref); + this.mapGauges[ga.id] = gauge; + } else if (ga.type.startsWith(_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.TypeTag)) { + _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.detectChange(ga, true); + } else if (ga.type.startsWith(_controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent.TypeTag)) { + _controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent.initElement(ga); + } else if (elementWithLanguageText) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_23__.GaugeBaseComponent.setLanguageText(elementWithLanguageText, ga.property?.text); + } else if (ga.type.startsWith(_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag)) { + _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.initElement(ga); + } + return false; + } + /** + * emit the signal value to the frontend, used for user_defined variable to make logic in frontend + * @param sigId + * @param value + */ + setSignalValue(sigId, value) { + let variable = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.Variable(sigId, null, null); + variable.value = value; + this.onchange.emit(variable); + } + //! toremove + initGaugesMap() { + this.eventGauge = {}; + this.mapGaugeView = {}; + this.eventGauge = {}; + this.mapGaugeView = {}; + this.memorySigGauges = {}; + this.mapChart = {}; + this.mapGauges = {}; + this.mapTable = {}; + } + /** + * called from fuxa-view, is used to emit message for a refresh of all signals values and the gauges of view + * @param domViewId + */ + emitBindedSignals(domViewId) { + this.hmiService.emitMappedSignalsGauge(domViewId); + } + /** + * called from fuxa-view, bind dom view, gauge with signal (for animation) and event + * @param gaugekey + * @param gauge + * @param domViewId + * @param ga + * @param bindclick + * @param bindhtmlevent + */ + bindGauge(gauge, domViewId, ga, sourceDeviceTags, bindMouseEvent, bindhtmlevent) { + let sigsId = this.getBindSignals(ga, sourceDeviceTags); + if (sigsId) { + for (let i = 0; i < sigsId.length; i++) { + this.hmiService.addSignalGaugeToMap(domViewId, sigsId[i], ga); + // check for special gauge to save in memory binded to sigid (chart-html) + if (gauge) { + if (!this.memorySigGauges[sigsId[i]]) { + this.memorySigGauges[sigsId[i]] = {}; + this.memorySigGauges[sigsId[i]][ga.id] = gauge; + } else if (!this.memorySigGauges[sigsId[i]][ga.id]) { + this.memorySigGauges[sigsId[i]][ga.id] = gauge; + } + } + } + } + let mouseEvents = this.getBindMouseEvent(ga, null); + if (mouseEvents && mouseEvents.length > 0) { + this.eventGauge[ga.id] = ga; + if (!this.mapGaugeView[ga.id]) { + this.mapGaugeView[ga.id] = {}; + this.mapGaugeView[ga.id][domViewId] = ga; + bindMouseEvent(ga); + } else if (!this.mapGaugeView[ga.id][domViewId]) { + this.mapGaugeView[ga.id][domViewId] = ga; + bindMouseEvent(ga); + } + // add pointer + let ele = document.getElementById(ga.id); + if (ele) { + ele.style.cursor = 'pointer'; + } + } + let htmlEvents = this.getHtmlEvents(ga); + if (htmlEvents) { + this.eventGauge[htmlEvents.dom.id] = ga; + bindhtmlevent(htmlEvents); + } + this.bindGaugeEventToSignal(ga); + this.checkElementToInit(ga); + } + /** + * @param domViewId + * called from fuxa-view, remove bind of dom view gauge + */ + unbindGauge(domViewId) { + // first remove special gauge like chart from memorySigGauges + let sigGaugeSettingsIdremoved = this.hmiService.removeSignalGaugeFromMap(domViewId); + Object.keys(sigGaugeSettingsIdremoved).forEach(sid => { + if (this.memorySigGauges[sid]) { + for (let i = 0; i < sigGaugeSettingsIdremoved[sid].length; i++) { + let gsId = sigGaugeSettingsIdremoved[sid][i]; + if (this.memorySigGauges[sid][gsId]) { + let g = this.memorySigGauges[sid][gsId]; + try { + if (g.myComRef) { + g.myComRef.destroy(); + } + delete this.memorySigGauges[sid][gsId]; + if (this.mapChart[g.id]) { + delete this.mapChart[g.id]; + } + if (this.mapGauges[g.id]) { + delete this.mapGauges[g.id]; + } + if (this.mapTable[g.id]) { + delete this.mapTable[g.id]; + } + } catch (err) { + console.error(err); + } + } + } + } + }); + // remove mapped gauge for events of this view + Object.values(this.mapGaugeView).forEach(val => { + if (val[domViewId]) { + let g = val[domViewId]; + if (g.myComRef) { + g.myComRef.destroy(); + } + delete val[domViewId]; + } + }); + } + /** + * init element of fuxa-view, + * @param ga + */ + checkElementToInit(ga) { + if (ga.type.startsWith(_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag)) { + return _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.initElement(ga, true); + } + return null; + } + checkElementToResize(ga, res, ref, size) { + if (ga && this.mapGauges[ga.id]) { + if (typeof this.mapGauges[ga.id]['resize'] === 'function') { + let height, width; + if (size) { + height = size.height; + width = size.width; + } + this.mapGauges[ga.id]['resize'](height, width); + } else { + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (ga.type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + if (typeof GaugesManager_1.Gauges[i]['resize'] === 'function') { + let options; + if (this.mapGauges[ga.id].options) { + options = this.mapGauges[ga.id].options; + } + return GaugesManager_1.Gauges[i]['resize'](ga, res, ref, options); + } + return; + } + } + } + } + } + getGaugeFromName(gaugeName) { + const gauge = Object.values(this.mapGauges).find(gauge => gauge?.name === gaugeName); + return gauge; + } + getGaugeValue(gaugeId) { + if (this.mapGauges[gaugeId] && this.mapGauges[gaugeId].currentValue) { + return this.mapGauges[gaugeId].currentValue(); + } + } + /** + * get all gauge settings binded to dom view with the signal + * @param domViewId + * @param sigid + */ + getGaugeSettings(domViewId, sigid) { + let gslist = this.hmiService.getMappedSignalsGauges(domViewId, sigid); + return gslist; + } + /** + * get all signals mapped in all dom views, used from LabComponent + * @param fulltext a copy with item name and source + */ + getMappedGaugesSignals(fulltext) { + return this.hmiService.getMappedVariables(fulltext); + } + /** + * return all signals binded to the gauge + * @param ga + */ + getBindSignals(gaugeSettings, sourceDeviceTags) { + if (gaugeSettings.property) { + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (gaugeSettings.type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + if (gaugeSettings.type.startsWith(_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.TypeTag)) { + let sigsId = this.hmiService.getChartSignal(gaugeSettings.property.id); + if (sourceDeviceTags) { + sigsId = sigsId.map(signalId => { + const tag = _models_device__WEBPACK_IMPORTED_MODULE_27__.DevicesUtils.placeholderToTag(signalId, sourceDeviceTags); + return tag?.id ?? signalId; + }); + } + return sigsId; + } else if (gaugeSettings.type.startsWith(_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.TypeTag)) { + let sigsId = this.hmiService.getGraphSignal(gaugeSettings.property.id); + if (sourceDeviceTags) { + sigsId = sigsId.map(signalId => { + const tag = _models_device__WEBPACK_IMPORTED_MODULE_27__.DevicesUtils.placeholderToTag(signalId, sourceDeviceTags); + return tag?.id ?? signalId; + }); + } + return sigsId; + } else if (typeof GaugesManager_1.Gauges[i]['getSignals'] === 'function') { + return GaugesManager_1.Gauges[i]['getSignals'](gaugeSettings.property); + } else { + return null; + } + } + } + } + return null; + } + getBindSignalsValue(ga) { + let signals = this.getBindSignals(ga); + let result = []; + if (signals) { + signals.forEach(sigId => { + let variable = this.hmiService.getMappedVariable(sigId, false); + if (variable && !_helpers_utils__WEBPACK_IMPORTED_MODULE_19__.Utils.isNullOrUndefined(variable.value)) { + result.push(variable); + } + }); + } + return result; + } + /** + * return all events binded to the gauge with mouse event + * @param ga + */ + getBindMouseEvent(ga, evType) { + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (ga.type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + if (typeof GaugesManager_1.Gauges[i]['getEvents'] === 'function') { + return GaugesManager_1.Gauges[i]['getEvents'](ga.property, evType); + } else { + return null; + } + } + } + return null; + } + /** + * return all events binded to the html gauge ('key-enter' of input, 'change' of select) + * @param ga + */ + getHtmlEvents(ga) { + if (ga.type.startsWith(_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag)) { + return _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.getHtmlEvents(ga); + } else if (ga.type.startsWith(_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag)) { + return _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.getHtmlEvents(ga); + } + return null; + } + bindGaugeEventToSignal(ga) { + if (ga.type.startsWith(_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.TypeTag)) { + let self = this; + _controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.bindEvents(ga, this.mapGauges[ga.id], event => { + self.putEvent(event); + }); + } else if (ga.type.startsWith(_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.TypeTag)) { + let self = this; + _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.bindEvents(ga, this.mapGauges[ga.id], event => { + self.putEvent(event); + }); + } else if (ga.type.startsWith(_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.TypeTag)) { + let self = this; + _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.bindEvents(ga, event => { + self.putEvent(event); + }); + } + } + /** + * manage to which gauge to forward the process function + * @param ga + * @param svgele + * @param sig + */ + processValue(ga, svgele, sig, gaugeStatus) { + gaugeStatus.variablesValue[sig.id] = sig.value; + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (ga.type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + if (ga.type.startsWith(_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.TypeTag)) { + if (ga.property.type === _models_chart__WEBPACK_IMPORTED_MODULE_1__.ChartViewType.realtime1 && this.memorySigGauges[sig.id]) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + } + break; + } else if (ga.type.startsWith(_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.TypeTag)) { + if (ga.property.type !== 'history' && this.memorySigGauges[sig.id]) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + } + break; + } else if (ga.type.startsWith(_controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.TypeTag)) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + break; + } else if (ga.type.startsWith(_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.TypeTag)) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + break; + } else if (ga.type.startsWith(_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.TypeTag)) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + break; + } else if (ga.type.startsWith(_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.TypeTag)) { + if ((ga.property.type === _models_hmi__WEBPACK_IMPORTED_MODULE_2__.TableType.data || ga.property.options?.realtime) && this.memorySigGauges[sig.id]) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + } + break; + } else if (ga.type.startsWith(_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.TypeTag)) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + break; + } else if (ga.type.startsWith(_controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent.TypeTag)) { + if (this.memorySigGauges[sig.id]) { + Object.keys(this.memorySigGauges[sig.id]).forEach(k => { + if (k === ga.id && this.mapGauges[k]) { + _controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent.processValue(ga, svgele, sig, gaugeStatus, this.mapGauges[k]); + } + }); + } + break; + } else if (typeof GaugesManager_1.Gauges[i]['processValue'] === 'function') { + GaugesManager_1.Gauges[i]['processValue'](ga, svgele, sig, gaugeStatus); + break; + } else { + break; + } + } + } + } + toggleSignalValue(sigid, bitmask) { + if (this.hmiService.variables.hasOwnProperty(sigid)) { + let currentValue = this.hmiService.variables[sigid].value; + if (currentValue === null || currentValue === undefined) { + return; + } else { + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_19__.Utils.isNullOrUndefined(bitmask)) { + const value = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_23__.GaugeBaseComponent.toggleBitmask(currentValue, bitmask); + this.putSignalValue(sigid, value.toString()); + } else if (currentValue === 0 || currentValue === '0') { + this.putSignalValue(sigid, '1'); + } else if (currentValue === 1 || currentValue === '1') { + this.putSignalValue(sigid, '0'); + } else if (currentValue === 'false') { + this.putSignalValue(sigid, 'true'); + } else { + this.putSignalValue(sigid, String(!currentValue)); + } + } + } + } + /** + * called from fuxa-view to emit and send signal value from a gauge event ('key-enter' of input, 'change' of select) + * @param event + */ + putEvent(event) { + if (event.type === _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.propertyWidgetType) { + const value = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_23__.GaugeBaseComponent.valueBitmask(event.ga.property.bitmask, event.value, this.hmiService.variables[event.variableId]?.value); + this.hmiService.putSignalValue(event.variableId, String(value)); + event.dbg = 'put ' + event.variableId + ' ' + event.value; + } else if (event.ga.property && event.ga.property.variableId) { + const value = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_23__.GaugeBaseComponent.valueBitmask(event.ga.property.bitmask, event.value, this.hmiService.variables[event.ga.property.variableId]?.value); + this.hmiService.putSignalValue(event.ga.property.variableId, String(value)); + event.dbg = 'put ' + event.ga.property.variableId + ' ' + event.value; + } + this.onevent.emit(event); + } + /** + * called from fuxa-view to emit and send signal value from a gauge event (click) + * @param sigid + * @param val + */ + putSignalValue(sigid, val, fnc = null) { + this.hmiService.putSignalValue(sigid, val, fnc); + } + static getEditDialogTypeToUse(type) { + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + if (typeof GaugesManager_1.Gauges[i]['getDialogType'] === 'function') { + return GaugesManager_1.Gauges[i]['getDialogType'](); + } else { + return null; + } + } + } + } + static isBitmaskSupported(type) { + for (let i = 0; i < GaugesManager_1.Gauges.length; i++) { + if (type.startsWith(GaugesManager_1.Gauges[i].TypeTag)) { + if (typeof GaugesManager_1.Gauges[i]['isBitmaskSupported'] === 'function') { + return GaugesManager_1.Gauges[i]['isBitmaskSupported'](); + } else { + return false; + } + } + } + return false; + } + /** + * used from controls in editor to get default value of edit gauge property + */ + static getDefaultValue(type) { + if (type.startsWith(_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.TypeTag)) { + return _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.getDefaultValue(); + } + return null; + } + /** + * used from controls in editor, to set the colorpicker of selected control + */ + static checkGaugeColor(ele, eles, colors) { + if (ele && ele.type && eles && (eles.length <= 1 || !eles[1]) && colors) { + if (ele.type.startsWith(_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.TypeTag)) { + colors.fill = _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.getFillColor(eles[0]); + colors.stroke = _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.getStrokeColor(eles[0]); + return true; + } else if (ele.type.startsWith(_controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent.TypeTag)) { + colors.fill = _controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent.getFillColor(eles[0]); + colors.stroke = _controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent.getStrokeColor(eles[0]); + return true; + } else if (ele.type.startsWith(_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.TypeTag)) { + colors.fill = _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.getFillColor(eles[0]); + colors.stroke = _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.getStrokeColor(eles[0]); + return true; + } else if (ele.type.startsWith(_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag)) { + colors.fill = _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.getFillColor(eles[0]); + colors.stroke = _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.getStrokeColor(eles[0]); + return true; + } else if (ele.type.startsWith(_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag)) { + colors.fill = _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.getFillColor(eles[0]); + colors.stroke = _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.getStrokeColor(eles[0]); + return true; + } + } + return false; + } + /** + * used from controls in editor to change fill and stroke colors + * @param bkcolor + * @param color + * @param elements + */ + static initElementColor(bkcolor, color, elements) { + let elems = elements.filter(el => !!el); + for (let i = 0; i < elems.length; i++) { + let type = elems[i].getAttribute('type'); + if (type) { + if (type.startsWith(_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.TypeTag)) { + _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.initElementColor(bkcolor, color, elems[i]); + } else if (type.startsWith(_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.TypeTag)) { + _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.initElementColor(bkcolor, color, elems[i]); + } else if (type.startsWith(_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag)) { + _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.initElementColor(bkcolor, color, elems[i]); + } else if (type.startsWith(_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag)) { + _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.initElementColor(bkcolor, color, elems[i]); + } + } + } + } + /** + * Return the default prefix of gauge name + * @param type + */ + static getPrefixGaugeName(type) { + if (type.startsWith(_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.TypeTag)) { + return 'progress_'; + } else if (type.startsWith(_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.TypeTag)) { + return 'button_'; + } else if (type.startsWith(_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag)) { + return 'input_'; + } else if (type.startsWith(_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag)) { + return 'select_'; + } else if (type.startsWith(_controls_gauge_semaphore_gauge_semaphore_component__WEBPACK_IMPORTED_MODULE_12__.GaugeSemaphoreComponent.TypeTag)) { + return 'led_'; + } else if (type.startsWith(_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.TypeTag)) { + return 'slider_'; + } else if (type.startsWith(_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent.TypeTag)) { + return 'pipe_'; + } else if (type.startsWith(_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.TypeTag)) { + return 'chart_'; + } else if (type.startsWith(_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.TypeTag)) { + return 'graph_'; + } else if (type.startsWith(_controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.TypeTag)) { + return 'gauge_'; + } else if (type.startsWith(_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.TypeTag)) { + return 'switch_'; + } else if (type.startsWith(_controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__.HtmlIframeComponent.TypeTag)) { + return 'iframe_'; + } else if (type.startsWith(_controls_value_value_component__WEBPACK_IMPORTED_MODULE_3__.ValueComponent.TypeTag)) { + return 'output_'; + } else if (type.startsWith(_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.TypeTag)) { + return 'table_'; + } else if (type.startsWith(_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.TypeTag)) { + return 'scheduler_'; + } + return 'shape_'; + } + /** + * initialize the gauge element found in svg view and editor, like ngx-uplot, ngx-gauge + * in svg is only a 'div' that have to be dynamic build and render from angular + * @param ga gauge settings + * @param res reference to factory + * @param ref reference to factory + * @param isview in view or editor, in editor have to disable mouse activity + * @param parent parent that call the function, should be from a FuxaViewComponent + */ + initElementAdded(ga, res, ref, isview, parent, textTranslation, sourceDeviceTags) { + if (!ga || !ga.type) { + console.error('!TOFIX', ga); + return null; + } + var targetSignalsId = {}; + // add variable to hmi service and map placeholder targetSignalsId + let signalsId = this.getBindSignals(ga); + if (signalsId) { + signalsId.forEach(signalId => { + if (isview) { + const tag = _models_device__WEBPACK_IMPORTED_MODULE_27__.DevicesUtils.placeholderToTag(signalId, sourceDeviceTags); + targetSignalsId[signalId] = tag?.id ?? signalId; + this.hmiService.addSignal(targetSignalsId[signalId]); + } else { + this.hmiService.addSignal(signalId); + } + }); + } + if (isview && ga.hide) { + let ele = document.getElementById(ga.id); + if (ele) { + ele.style.display = 'none'; + } + } + if (ga.type.startsWith(_controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.TypeTag)) { + // prepare attribute + let gauge = _controls_html_chart_html_chart_component__WEBPACK_IMPORTED_MODULE_7__.HtmlChartComponent.initElement(ga, res, ref, isview, _models_chart__WEBPACK_IMPORTED_MODULE_1__.ChartRangeType); + if (gauge) { + this.setChartPropety(gauge, ga.property, targetSignalsId); + this.mapChart[ga.id] = gauge; + gauge.onTimeRange.subscribe(data => { + this.hmiService.queryDaqValues(data); + }); + if (isview) { + gauge.setInitRange(); + } + this.mapGauges[ga.id] = gauge; + } + return gauge; + } else if (ga.type.startsWith(_controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.TypeTag)) { + let gauge = _controls_html_graph_html_graph_component__WEBPACK_IMPORTED_MODULE_8__.HtmlGraphComponent.initElement(ga, res, ref, isview); + if (gauge) { + this.setGraphPropety(gauge, ga.property, targetSignalsId); + gauge.onReload.subscribe(query => { + this.hmiService.getDaqValues(query).subscribe(result => { + gauge.setValues(query.sids, result); + }, err => { + gauge.setValues(query.sids, null); + console.error('get DAQ values err: ' + err); + }); + }); + this.mapGauges[ga.id] = gauge; + } + return gauge; + } else if (ga.type.startsWith(_controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.TypeTag)) { + let gauge = _controls_html_bag_html_bag_component__WEBPACK_IMPORTED_MODULE_9__.HtmlBagComponent.initElement(ga, res, ref, isview); + this.mapGauges[ga.id] = gauge; + return gauge; + } else if (ga.type.startsWith(_controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.TypeTag)) { + let gauge = _controls_slider_slider_component__WEBPACK_IMPORTED_MODULE_17__.SliderComponent.initElement(ga, res, ref, isview); + this.mapGauges[ga.id] = gauge; + return gauge; + } else if (ga.type.startsWith(_controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.TypeTag)) { + let gauge = _controls_html_input_html_input_component__WEBPACK_IMPORTED_MODULE_4__.HtmlInputComponent.initElement(ga, isview); + return gauge || true; + } else if (ga.type.startsWith(_controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.TypeTag)) { + let gauge = _controls_html_select_html_select_component__WEBPACK_IMPORTED_MODULE_6__.HtmlSelectComponent.initElement(ga, isview); + return gauge || true; + } else if (ga.type.startsWith(_controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.TypeTag)) { + let gauge = _controls_gauge_progress_gauge_progress_component__WEBPACK_IMPORTED_MODULE_11__.GaugeProgressComponent.initElement(ga); + return gauge || true; + } else if (ga.type.startsWith(_controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.TypeTag)) { + let gauge = _controls_html_switch_html_switch_component__WEBPACK_IMPORTED_MODULE_10__.HtmlSwitchComponent.initElement(ga, res, ref, this.authService.checkPermission.bind(this.authService)); + this.mapGauges[ga.id] = gauge; + return gauge; + } else if (ga.type.startsWith(_controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.TypeTag)) { + let gauge = _controls_html_table_html_table_component__WEBPACK_IMPORTED_MODULE_21__.HtmlTableComponent.initElement(ga, res, ref, isview); + if (gauge) { + this.setTablePropety(gauge, ga.property, targetSignalsId); + this.mapTable[ga.id] = gauge; + gauge.onTimeRange$.subscribe(data => { + if (data) { + this.hmiService.queryDaqValues(data); + } + }); + this.mapGauges[ga.id] = gauge; + } + return gauge; + } else if (ga.type.startsWith(_controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.TypeTag)) { + let gauge = _controls_html_scheduler_html_scheduler_component__WEBPACK_IMPORTED_MODULE_22__.HtmlSchedulerComponent.initElement(ga, res, ref, isview); + if (gauge) { + this.mapGauges[ga.id] = gauge; + } + return gauge; + } else if (ga.type.startsWith(_controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__.HtmlIframeComponent.TypeTag)) { + let gauge = _controls_html_iframe_html_iframe_component__WEBPACK_IMPORTED_MODULE_20__.HtmlIframeComponent.initElement(ga, isview); + return gauge || true; + } else if (ga.type.startsWith(_controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.TypeTag)) { + let gauge = _controls_html_image_html_image_component__WEBPACK_IMPORTED_MODULE_24__.HtmlImageComponent.initElement(ga, isview); + this.mapGauges[ga.id] = gauge; + return gauge; + } else if (ga.type.startsWith(_controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent.TypeTag)) { + let gauge = _controls_panel_panel_component__WEBPACK_IMPORTED_MODULE_25__.PanelComponent.initElement(ga, res, ref, this, this.hmiService.hmi, isview, parent); + this.mapGauges[ga.id] = gauge; + return gauge; + } else if (ga.type.startsWith(_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.TypeTag)) { + let gauge = _controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_5__.HtmlButtonComponent.initElement(ga, textTranslation); + return gauge || true; + } else if (ga.type.startsWith(_controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent.TypeTag)) { + let gauge = _controls_pipe_pipe_component__WEBPACK_IMPORTED_MODULE_16__.PipeComponent.initElement(ga, isview, parent?.getGaugeStatus(ga)); + this.mapGauges[ga.id] = gauge; + return gauge || true; + } else if (ga.type.startsWith(_controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent.TypeTag)) { + let gauge = _controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent.initElement(ga, isview); + this.mapGauges[ga.id] = gauge; + return gauge || true; + } else { + let ele = document.getElementById(ga.id); + ele?.setAttribute('data-name', ga.name); + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_23__.GaugeBaseComponent.setLanguageText(ele, textTranslation); + return ele || true; + } + } + chackSetModeParamToAddedGauge(ga, param) { + if (!param) { + return; + } + if (ga?.type === _controls_html_video_html_video_component__WEBPACK_IMPORTED_MODULE_28__.HtmlVideoComponent.TypeTag) { + ga.property = ga.property || new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.GaugeVideoProperty(); + ga.property.options = ga.property.options || {}; + ga.property.options.address = param; + } + } + /** + * add the chart settings (line) and property options to the gauge + * @param gauge + * @param chart + * @param property + */ + setChartPropety(gauge, property, targetSignalsId) { + if (property) { + if (property.id) { + let chart = this.hmiService.getChart(property.id); + if (chart) { + const opt = { + ...property.options, + ...{ + title: chart.name, + id: chart.name, + scales: { + x: { + time: true + } + } + } + }; + gauge.setOptions(opt, true); + let yaxisNotOne = chart.lines.find(line => line.yaxis > 1); + for (let i = 0; i < chart.lines.length; i++) { + let line = chart.lines[i]; + // check for placeholder + let sigid = targetSignalsId?.[line.id] ?? line.id; + let sigProperty = this.hmiService.getMappedVariable(sigid, true); + if (sigProperty) { + gauge.addLine(sigid, sigProperty.name, line, yaxisNotOne ? true : false); + } + } + gauge.redraw(); + } + } else { + gauge.setOptions(property.options, true); + } + } + } + setGraphPropety(gauge, property, targetSignalsId) { + if (property) { + if (property.id) { + let graph = this.hmiService.getGraph(property.id); + if (graph) { + gauge.init(graph.name, graph.property, graph.sources); + // check for placeholder + if ('sourceMap' in gauge && targetSignalsId) { + const updatedSourceMap = {}; + for (const [key, index] of Object.entries(gauge.sourceMap)) { + const newKey = targetSignalsId[key] ?? key; + updatedSourceMap[newKey] = index; + } + gauge.sourceMap = updatedSourceMap; + } + } + } + if (property.options) { + gauge.setOptions(property.options); + } + } + } + setTablePropety(table, property, targetSignalsId) { + if (property) { + if (property.options) { + table.remapVariableIds(property.options, targetSignalsId); + table.setOptions(property.options); + } + } + } + /** + * clear memory object used from view, some reset + */ + clearMemory() { + this.memorySigGauges = {}; + } + /** + * + * @returns list of signals id (tag) that are binded to a gauge + */ + getBindedSignalsId() { + return Object.keys(this.memorySigGauges); + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_0__.HmiService + }, { + type: _services_auth_service__WEBPACK_IMPORTED_MODULE_26__.AuthService + }, { + type: _helpers_windowref__WEBPACK_IMPORTED_MODULE_18__.WindowRef + }]; + static propDecorators = { + onchange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_29__.Output + }], + onevent: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_29__.Output + }] + }; +}; +GaugesManager = GaugesManager_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_29__.Injectable)(), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_0__.HmiService, _services_auth_service__WEBPACK_IMPORTED_MODULE_26__.AuthService, _helpers_windowref__WEBPACK_IMPORTED_MODULE_18__.WindowRef])], GaugesManager); + + +/***/ }), + +/***/ 69395: +/*!******************************************************************!*\ + !*** ./src/app/gauges/shapes/ape-shapes/ape-shapes.component.ts ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ApeShapesComponent: () => (/* binding */ ApeShapesComponent) +/* harmony export */ }); +/* harmony import */ var _ape_shapes_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ape-shapes.component.html?ngResource */ 466); +/* harmony import */ var _ape_shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ape-shapes.component.css?ngResource */ 83011); +/* harmony import */ var _ape_shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ape_shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _shapes_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shapes.component */ 35896); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ApeShapesComponent_1; + + +/** + * Shape extension + */ + + + + + + +let ApeShapesComponent = ApeShapesComponent_1 = class ApeShapesComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + // TypeId = 'ape'; + static TypeTag = 'svg-ext-ape'; // used to identify shapes type, binded with the library svgeditor + static EliType = 'svg-ext-ape-eli'; + static PistonType = 'svg-ext-ape-piston'; + static LabelTag = 'AnimProcEng'; + static actionsType = { + stop: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.stop, + clockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.clockwise, + anticlockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.anticlockwise, + downup: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.downup, + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + rotate: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.rotate, + move: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.move + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getActions(type) { + let actions = Object.assign({}, ApeShapesComponent_1.actionsType); + if (type === ApeShapesComponent_1.EliType) { + delete actions.downup; + } else if (type === ApeShapesComponent_1.PistonType) { + delete actions.anticlockwise; + delete actions.clockwise; + } + return actions; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.RangeWithAlarm; + } + static isBitmaskSupported() { + return true; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node) { + let value = parseFloat(sig.value); + if (Number.isNaN(value)) { + // maybe boolean + value = Number(sig.value); + } else { + value = parseFloat(value.toFixed(5)); + } + if (ga.property) { + let propValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(ga.property.bitmask, value); + if (ga.property.variableId === sig.id && ga.property.ranges) { + let propertyColor = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugePropertyColor(); + for (let idx = 0; idx < ga.property.ranges.length; idx++) { + if (ga.property.ranges[idx].min <= propValue && ga.property.ranges[idx].max >= propValue) { + propertyColor.fill = ga.property.ranges[idx].color; + propertyColor.stroke = ga.property.ranges[idx].stroke; + } + } + if (propertyColor.fill) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(svgele.node, 'fill', propertyColor.fill); + } + if (propertyColor.stroke) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(svgele.node, 'stroke', propertyColor.stroke); + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + ApeShapesComponent_1.processAction(act, svgele, value, gaugeStatus); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static processAction(act, svgele, value, gaugeStatus) { + let actValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(act.bitmask, value); + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + ApeShapesComponent_1.clearAnimationTimer(gaugeStatus.actionRef); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.rotate) { + _shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.rotateShape(act, svgele, actValue); + } else if (_shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.actionsType[act.type] === _shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.actionsType.move) { + _shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.moveShape(act, svgele, actValue); + } else { + if (act.range.min <= actValue && act.range.max >= actValue) { + var element = SVG.adopt(svgele.node); + ApeShapesComponent_1.runMyAction(element, act.type, gaugeStatus); + } + } + } + static runMyAction(element, type, gaugeStatus) { + if (gaugeStatus.actionRef && gaugeStatus.actionRef.type === type) { + return; + } + if (element.timeline) { + element.timeline().stop(); + } + if (gaugeStatus.actionRef?.animr?.unschedule instanceof Function) { + gaugeStatus.actionRef?.animr.unschedule(); + } + if (ApeShapesComponent_1.actionsType[type] === ApeShapesComponent_1.actionsType.clockwise) { + gaugeStatus.actionRef = _shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.startRotateAnimationShape(element, type, 360); + } else if (ApeShapesComponent_1.actionsType[type] === ApeShapesComponent_1.actionsType.anticlockwise) { + gaugeStatus.actionRef = _shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.startRotateAnimationShape(element, type, -360); + } else if (ApeShapesComponent_1.actionsType[type] === ApeShapesComponent_1.actionsType.downup) { + let eletoanim = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.searchTreeStartWith(element.node, 'pm'); + if (eletoanim) { + element = SVG.adopt(eletoanim); + let elebox = eletoanim.getBBox(); + var movefrom = { + x: elebox.x, + y: elebox.y + }; + if (gaugeStatus.actionRef && gaugeStatus.actionRef.spool) { + movefrom = gaugeStatus.actionRef.spool; + } + var moveto = { + x: elebox.x, + y: elebox.y - 25 + }; + ApeShapesComponent_1.clearAnimationTimer(gaugeStatus.actionRef); + let timeout = setInterval(() => { + element.animate(1000).ease('-').move(moveto.x, moveto.y).animate(1000).ease('-').move(movefrom.x, movefrom.y); + }, 2000); + gaugeStatus.actionRef = { + type: type, + timer: timeout, + spool: movefrom + }; + } + } else if (ApeShapesComponent_1.actionsType[type] === ApeShapesComponent_1.actionsType.stop) { + _shapes_component__WEBPACK_IMPORTED_MODULE_6__.ShapesComponent.stopAnimationShape(gaugeStatus, type); + } + } + static ctorParameters = () => []; +}; +ApeShapesComponent = ApeShapesComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'ape-shapes', + template: _ape_shapes_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_ape_shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], ApeShapesComponent); + + +/***/ }), + +/***/ 93142: +/*!**************************************************************!*\ + !*** ./src/app/gauges/shapes/proc-eng/proc-eng.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ProcEngComponent: () => (/* binding */ ProcEngComponent) +/* harmony export */ }); +/* harmony import */ var _proc_eng_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./proc-eng.component.html?ngResource */ 61914); +/* harmony import */ var _proc_eng_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./proc-eng.component.css?ngResource */ 9489); +/* harmony import */ var _proc_eng_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_proc_eng_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gauge-property/gauge-property.component */ 99633); +/* harmony import */ var _shapes_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shapes.component */ 35896); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ProcEngComponent_1; + + +/** + * Shape extension + */ + + + + + +let ProcEngComponent = ProcEngComponent_1 = class ProcEngComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + // TypeId = 'proceng'; + static TypeTag = 'svg-ext-proceng'; // used to identify shapes type, binded with the library svgeditor + static LabelTag = 'Proc-Eng'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink, + stop: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.stop, + clockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.clockwise, + anticlockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.anticlockwise, + rotate: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.rotate, + move: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.move + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getActions(type) { + return this.actionsType; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.RangeWithAlarm; + } + static isBitmaskSupported() { + return true; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node) { + let value = parseFloat(sig.value); + if (Number.isNaN(value)) { + // maybe boolean + value = Number(sig.value); + } else { + value = parseFloat(value.toFixed(5)); + } + if (ga.property) { + let propValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(ga.property.bitmask, value); + let propertyColor = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugePropertyColor(); + if (ga.property.variableId === sig.id && ga.property.ranges) { + for (let idx = 0; idx < ga.property.ranges.length; idx++) { + if (ga.property.ranges[idx].min <= propValue && ga.property.ranges[idx].max >= propValue) { + propertyColor.fill = ga.property.ranges[idx].color; + propertyColor.stroke = ga.property.ranges[idx].stroke; + } + } + if (propertyColor.fill) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(svgele.node, 'fill', propertyColor.fill); + } + if (propertyColor.stroke) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(svgele.node, 'stroke', propertyColor.stroke); + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + ProcEngComponent_1.processAction(act, svgele, value, gaugeStatus, propertyColor); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static processAction(act, svgele, value, gaugeStatus, propertyColor) { + let actValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(act.bitmask, value); + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.blink) { + let element = SVG.adopt(svgele.node); + let inRange = act.range.min <= actValue && act.range.max >= actValue; + this.checkActionBlink(element, act, gaugeStatus, inRange, false, propertyColor); + } else if (this.actionsType[act.type] === this.actionsType.rotate) { + _shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.rotateShape(act, svgele, actValue); + } else if (_shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.actionsType[act.type] === _shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.actionsType.move) { + _shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.moveShape(act, svgele, actValue); + } else { + if (act.range.min <= actValue && act.range.max >= actValue) { + var element = SVG.adopt(svgele.node); + ProcEngComponent_1.runMyAction(element, act.type, gaugeStatus); + } + } + } + static runMyAction(element, type, gaugeStatus) { + if (gaugeStatus.actionRef && gaugeStatus.actionRef.type === type) { + return; + } + if (element.timeline) { + element.timeline().stop(); + } + if (gaugeStatus.actionRef?.animr) { + gaugeStatus.actionRef?.animr.unschedule(); + } + if (ProcEngComponent_1.actionsType[type] === ProcEngComponent_1.actionsType.clockwise) { + gaugeStatus.actionRef = _shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.startRotateAnimationShape(element, type, 360); + } else if (ProcEngComponent_1.actionsType[type] === ProcEngComponent_1.actionsType.anticlockwise) { + gaugeStatus.actionRef = _shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.startRotateAnimationShape(element, type, -360); + } else if (ProcEngComponent_1.actionsType[type] === ProcEngComponent_1.actionsType.stop) { + _shapes_component__WEBPACK_IMPORTED_MODULE_5__.ShapesComponent.stopAnimationShape(gaugeStatus, type); + } + } + static ctorParameters = () => []; +}; +ProcEngComponent = ProcEngComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'gauge-proc-eng', + template: _proc_eng_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_proc_eng_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], ProcEngComponent); + + +/***/ }), + +/***/ 35896: +/*!***************************************************!*\ + !*** ./src/app/gauges/shapes/shapes.component.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ShapesComponent: () => (/* binding */ ShapesComponent) +/* harmony export */ }); +/* harmony import */ var _shapes_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shapes.component.html?ngResource */ 55642); +/* harmony import */ var _shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shapes.component.css?ngResource */ 31969); +/* harmony import */ var _shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../gauge-base/gauge-base.component */ 57989); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../gauge-property/gauge-property.component */ 99633); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ShapesComponent_1; + + + + + + +let ShapesComponent = ShapesComponent_1 = class ShapesComponent extends _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent { + // TypeId = 'shapes'; // Standard shapes (General, Shapes) + static TypeTag = 'svg-ext-shapes'; // used to identify shapes type, binded with the library svgeditor + static LabelTag = 'Shapes'; + static actionsType = { + hide: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.hide, + show: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.show, + blink: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.blink, + stop: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.stop, + clockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.clockwise, + anticlockwise: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.anticlockwise, + rotate: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.rotate, + move: _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugeActionsType.move + }; + constructor() { + super(); + } + static getSignals(pro) { + let res = []; + if (pro.variableId) { + res.push(pro.variableId); + } + if (pro.alarmId) { + res.push(pro.alarmId); + } + if (pro.actions && pro.actions.length) { + pro.actions.forEach(act => { + res.push(act.variableId); + }); + } + return res; + } + static getActions(type) { + return this.actionsType; + } + static getDialogType() { + return _gauge_property_gauge_property_component__WEBPACK_IMPORTED_MODULE_4__.GaugeDialogType.RangeWithAlarm; + } + static isBitmaskSupported() { + return true; + } + static processValue(ga, svgele, sig, gaugeStatus) { + try { + if (svgele.node) { + let value = parseFloat(sig.value); + if (Number.isNaN(value)) { + // maybe boolean + value = Number(sig.value); + } else { + value = parseFloat(value.toFixed(5)); + } + if (ga.property) { + let propValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(ga.property.bitmask, value); + let propertyColor = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.GaugePropertyColor(); + if (ga.property.variableId === sig.id && ga.property.ranges) { + for (let idx = 0; idx < ga.property.ranges.length; idx++) { + if (ga.property.ranges[idx].min <= propValue && ga.property.ranges[idx].max >= propValue) { + propertyColor.fill = ga.property.ranges[idx].color; + propertyColor.stroke = ga.property.ranges[idx].stroke; + } + } + // check if general shape (line/path/fpath/text) to set the stroke + if (propertyColor.fill) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(svgele.node, 'fill', propertyColor.fill); + } + if (propertyColor.stroke) { + _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.walkTreeNodeToSetAttribute(svgele.node, 'stroke', propertyColor.stroke); + } + } + // check actions + if (ga.property.actions) { + ga.property.actions.forEach(act => { + if (act.variableId === sig.id) { + ShapesComponent_1.processAction(act, svgele, value, gaugeStatus, propertyColor); + } + }); + } + } + } + } catch (err) { + console.error(err); + } + } + static processAction(act, svgele, value, gaugeStatus, propertyColor) { + let actValue = _gauge_base_gauge_base_component__WEBPACK_IMPORTED_MODULE_2__.GaugeBaseComponent.checkBitmask(act.bitmask, value); + if (this.actionsType[act.type] === this.actionsType.hide) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + this.runActionHide(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.show) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + this.runActionShow(element, act.type, gaugeStatus); + } + } else if (this.actionsType[act.type] === this.actionsType.blink) { + let element = SVG.adopt(svgele.node); + let inRange = act.range.min <= actValue && act.range.max >= actValue; + this.checkActionBlink(element, act, gaugeStatus, inRange, false, propertyColor); + } else if (this.actionsType[act.type] === this.actionsType.rotate) { + ShapesComponent_1.rotateShape(act, svgele, actValue); + } else if (ShapesComponent_1.actionsType[act.type] === ShapesComponent_1.actionsType.move) { + ShapesComponent_1.moveShape(act, svgele, actValue); + } else { + if (act.range.min <= actValue && act.range.max >= actValue) { + var element = SVG.adopt(svgele.node); + ShapesComponent_1.runMyAction(element, act.type, gaugeStatus); + } + } + } + static runMyAction(element, type, gaugeStatus) { + if (gaugeStatus.actionRef && gaugeStatus.actionRef.type === type) { + return; + } + if (element.timeline) { + element.timeline().stop(); + } + if (gaugeStatus.actionRef?.animr) { + gaugeStatus.actionRef?.animr.unschedule(); + } + if (ShapesComponent_1.actionsType[type] === ShapesComponent_1.actionsType.clockwise) { + gaugeStatus.actionRef = ShapesComponent_1.startRotateAnimationShape(element, type, 360); + } else if (ShapesComponent_1.actionsType[type] === ShapesComponent_1.actionsType.anticlockwise) { + gaugeStatus.actionRef = ShapesComponent_1.startRotateAnimationShape(element, type, -360); + } else if (ShapesComponent_1.actionsType[type] === ShapesComponent_1.actionsType.stop) { + ShapesComponent_1.stopAnimationShape(gaugeStatus, type); + } + } + static startRotateAnimationShape(element, type, angle) { + return { + type: type, + animr: element.animate(3000).ease('-').rotate(angle).loop() + }; + } + static stopAnimationShape(gaugeStatus, type) { + if (gaugeStatus.actionRef) { + ShapesComponent_1.clearAnimationTimer(gaugeStatus.actionRef); + gaugeStatus.actionRef.type = type; + } + } + static rotateShape(act, svgele, actValue) { + if (act.range.min <= actValue && act.range.max >= actValue) { + let element = SVG.adopt(svgele.node); + let valRange = act.range.max - act.range.min; + if (act.range.max === act.range.min) { + valRange = 1; + } + let angleRange = act.options.maxAngle - act.options.minAngle; + // Calculate rotation based on defined ranges and actual value + let rotation = valRange > 0 ? act.options.minAngle + actValue * angleRange / valRange : 0; + // Don't allow rotation angle to exceed configured range + if (rotation > act.options.maxAngle) { + rotation = act.options.maxAngle; + } else if (rotation < act.options.minAngle) { + rotation = act.options.minAngle; + } + element.animate(200).ease('-').transform({ + rotate: rotation + }); + } + } + static moveShape(act, svgele, actValue) { + let element = SVG.adopt(svgele.node); + if (act.range.min <= actValue && act.range.max >= actValue) { + element.animate(act.options.duration || 500).ease('-').move(act.options.toX, act.options.toY); + } + } + static ctorParameters = () => []; +}; +ShapesComponent = ShapesComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'gauge-shapes', + template: _shapes_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_shapes_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], ShapesComponent); + + +/***/ }), + +/***/ 76977: +/*!**********************************************************!*\ + !*** ./src/app/gui-helpers/bitmask/bitmask.component.ts ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Bit: () => (/* binding */ Bit), +/* harmony export */ BitmaskComponent: () => (/* binding */ BitmaskComponent) +/* harmony export */ }); +/* harmony import */ var _bitmask_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bitmask.component.html?ngResource */ 9050); +/* harmony import */ var _bitmask_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bitmask.component.css?ngResource */ 73576); +/* harmony import */ var _bitmask_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bitmask_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let BitmaskComponent = class BitmaskComponent { + dialogRef; + data; + size = 32; + bits = []; + selected = []; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + ngOnInit() { + this.size = this.data.size || 32; + for (let i = 0; i < this.size; i++) { + let bit = { + id: Math.pow(2, i), + label: i.toString() + }; + this.bits.push(bit); + if (this.data.bitmask & bit.id) { + this.selected.push(bit); + } + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + let result = { + bitmask: this.getValue() + }; + this.dialogRef.close(result); + } + getValue() { + let result = 0; + for (let i = 0; i < this.selected.length; i++) { + result += this.selected[i].id; + } + return result; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +BitmaskComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-bitmask', + template: _bitmask_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_bitmask_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, Object])], BitmaskComponent); + +class Bit { + id; + label; + selected; +} + +/***/ }), + +/***/ 38620: +/*!************************************************************************!*\ + !*** ./src/app/gui-helpers/confirm-dialog/confirm-dialog.component.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ConfirmDialogComponent: () => (/* binding */ ConfirmDialogComponent) +/* harmony export */ }); +/* harmony import */ var _confirm_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./confirm-dialog.component.html?ngResource */ 81114); +/* harmony import */ var _confirm_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./confirm-dialog.component.css?ngResource */ 31123); +/* harmony import */ var _confirm_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_confirm_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let ConfirmDialogComponent = class ConfirmDialogComponent { + dialogRef; + data; + msgToConfirm = ''; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + this.msgToConfirm = this.data.msg; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(true); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ConfirmDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-confirm-dialog', + template: _confirm_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_confirm_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, Object])], ConfirmDialogComponent); + + +/***/ }), + +/***/ 28955: +/*!****************************************************************************!*\ + !*** ./src/app/gui-helpers/daterange-dialog/daterange-dialog.component.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DaterangeDialogComponent: () => (/* binding */ DaterangeDialogComponent) +/* harmony export */ }); +/* harmony import */ var _daterange_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./daterange-dialog.component.html?ngResource */ 98190); +/* harmony import */ var _daterange_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./daterange-dialog.component.css?ngResource */ 52398); +/* harmony import */ var _daterange_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_daterange_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _daterangepicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../daterangepicker */ 76699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let DaterangeDialogComponent = class DaterangeDialogComponent { + dialogRef; + dtrange; + options = {}; + constructor(dialogRef) { + this.dialogRef = dialogRef; + } + onOkClick() { + let dateRange = { + start: this.dtrange.startDate.toDate().getTime(), + end: this.dtrange.endDate.toDate().getTime() + }; + this.dialogRef.close(dateRange); + } + onNoClick() { + this.dialogRef.close(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef + }]; + static propDecorators = { + dtrange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, + args: ['dtrange', { + static: false + }] + }] + }; +}; +DaterangeDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-daterange-dialog', + template: _daterange_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_daterange_dialog_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef])], DaterangeDialogComponent); + + +/***/ }), + +/***/ 7075: +/*!**************************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/daterangepicker.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DaterangepickerComponent: () => (/* binding */ DaterangepickerComponent), +/* harmony export */ SideEnum: () => (/* binding */ SideEnum) +/* harmony export */ }); +/* harmony import */ var _daterangepicker_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./daterangepicker.component.scss?ngResource */ 95426); +/* harmony import */ var _daterangepicker_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_daterangepicker_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _daterangepicker_component_html_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./daterangepicker.component.html?ngResource */ 46608); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moment */ 58540); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _locale_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./locale.service */ 30883); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var DaterangepickerComponent_1; + + +/* eslint-disable @angular-eslint/no-host-metadata-property */ + + + + + +const moment = moment__WEBPACK_IMPORTED_MODULE_2__; +var SideEnum; +(function (SideEnum) { + SideEnum["left"] = "left"; + SideEnum["right"] = "right"; +})(SideEnum || (SideEnum = {})); +let DaterangepickerComponent = DaterangepickerComponent_1 = class DaterangepickerComponent { + el; + _ref; + _localeService; + _old = { + start: null, + end: null + }; + chosenLabel; + calendarVariables = { + left: {}, + right: {} + }; + timepickerVariables = { + left: {}, + right: {} + }; + daterangepicker = { + start: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), + end: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl() + }; + applyBtn = { + disabled: false + }; + startDate = moment().startOf('day'); + endDate = moment().endOf('day'); + dateLimit = null; + // used in template for compile time support of enum values. + sideEnum = SideEnum; + minDate = null; + maxDate = null; + autoApply = false; + singleDatePicker = false; + showDropdowns = false; + showWeekNumbers = false; + showISOWeekNumbers = false; + linkedCalendars = false; + autoUpdateInput = true; + alwaysShowCalendars = false; + maxSpan = false; + timePicker = false; + timePicker24Hour = false; + timePickerIncrement = 1; + timePickerSeconds = false; + showClearButton = false; + firstMonthDayClass = null; + lastMonthDayClass = null; + emptyWeekRowClass = null; + firstDayOfNextMonthClass = null; + lastDayOfPreviousMonthClass = null; + _locale = {}; + set locale(value) { + this._locale = { + ...this._localeService.config, + ...value + }; + } + get locale() { + return this._locale; + } + // custom ranges + _ranges = {}; + set ranges(value) { + this._ranges = value; + this.renderRanges(); + } + get ranges() { + return this._ranges; + } + showCustomRangeLabel; + showCancel = false; + keepCalendarOpeningWithRange = false; + showRangeLabelOnInput = false; + chosenRange; + rangesArray = []; + // some state information + isShown = false; + inline = true; + leftCalendar = {}; + rightCalendar = {}; + showCalInRanges = false; + options = {}; // should get some opt from user + drops; + opens; + choosedDate; + rangeClicked; + datesUpdated; + pickerContainer; + constructor(el, _ref, _localeService) { + this.el = el; + this._ref = _ref; + this._localeService = _localeService; + this.choosedDate = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + this.rangeClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + this.datesUpdated = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + } + ngOnInit() { + this._buildLocale(); + const daysOfWeek = [...this.locale.daysOfWeek]; + if (this.locale.firstDay != 0) { + var iterator = this.locale.firstDay; + while (iterator > 0) { + daysOfWeek.push(daysOfWeek.shift()); + iterator--; + } + } + this.locale.daysOfWeek = daysOfWeek; + if (this.inline) { + this._old.start = this.startDate.clone(); + this._old.end = this.endDate.clone(); + } + this.updateMonthsInView(); + this.renderCalendar(SideEnum.left); + this.renderCalendar(SideEnum.right); + this.renderRanges(); + } + renderRanges() { + this.rangesArray = []; + let start, end; + if (typeof this.ranges === 'object') { + for (const range in this.ranges) { + if (typeof this.ranges[range][0] === 'string') { + start = moment(this.ranges[range][0], this.locale.format); + } else { + start = moment(this.ranges[range][0]); + } + if (typeof this.ranges[range][1] === 'string') { + end = moment(this.ranges[range][1], this.locale.format); + } else { + end = moment(this.ranges[range][1]); + } + // If the start or end date exceed those allowed by the minDate or maxSpan + // options, shorten the range to the allowable period. + if (this.minDate && start.isBefore(this.minDate)) { + start = this.minDate.clone(); + } + var maxDate = this.maxDate; + if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) { + maxDate = start.clone().add(this.maxSpan); + } + if (maxDate && end.isAfter(maxDate)) { + end = maxDate.clone(); + } + // If the end of the range is before the minimum or the start of the range is + // after the maximum, don't display this range option at all. + if (this.minDate && end.isBefore(this.minDate, this.timePicker ? 'minute' : 'day') || maxDate && start.isAfter(maxDate, this.timePicker ? 'minute' : 'day')) { + continue; + } + //Support unicode chars in the range names. + var elem = document.createElement('textarea'); + elem.innerHTML = range; + var rangeHtml = elem.value; + this.ranges[rangeHtml] = [start, end]; + } + for (const range in this.ranges) { + this.rangesArray.push(range); + } + if (this.showCustomRangeLabel) { + this.rangesArray.push(this.locale.customRangeLabel); + } + this.showCalInRanges = !this.rangesArray.length || this.alwaysShowCalendars; + if (!this.timePicker) { + this.startDate = this.startDate.startOf('day'); + this.endDate = this.endDate.endOf('day'); + } + // can't be used together for now + if (this.timePicker && this.autoApply) { + this.autoApply = false; + } + } + } + renderTimePicker(side) { + if (side == SideEnum.right && !this.endDate) { + return; + } + let selected, minDate; + let maxDate = this.maxDate; + if (side === SideEnum.left) { + selected = this.startDate.clone(), minDate = this.minDate; + } else if (side === SideEnum.right) { + selected = this.endDate.clone(), minDate = this.startDate; + } + const start = this.timePicker24Hour ? 0 : 1; + const end = this.timePicker24Hour ? 23 : 12; + this.timepickerVariables[side] = { + hours: [], + minutes: [], + minutesLabel: [], + seconds: [], + secondsLabel: [], + disabledHours: [], + disabledMinutes: [], + disabledSeconds: [], + selectedHour: 0, + selectedMinute: 0, + selectedSecond: 0 + }; + // generate hours + for (let i = start; i <= end; i++) { + let i_in_24 = i; + if (!this.timePicker24Hour) { + i_in_24 = selected.hour() >= 12 ? i == 12 ? 12 : i + 12 : i == 12 ? 0 : i; + } + let time = selected.clone().hour(i_in_24); + let disabled = false; + if (minDate && time.minute(59).isBefore(minDate)) { + disabled = true; + } + if (maxDate && time.minute(0).isAfter(maxDate)) { + disabled = true; + } + this.timepickerVariables[side].hours.push(i); + if (i_in_24 == selected.hour() && !disabled) { + this.timepickerVariables[side].selectedHour = i; + } else if (disabled) { + this.timepickerVariables[side].disabledHours.push(i); + } + } + // generate minutes + for (var i = 0; i < 60; i += this.timePickerIncrement) { + var padded = i < 10 ? '0' + i : i; + var time = selected.clone().minute(i); + var disabled = false; + if (minDate && time.second(59).isBefore(minDate)) { + disabled = true; + } + if (maxDate && time.second(0).isAfter(maxDate)) { + disabled = true; + } + this.timepickerVariables[side].minutes.push(i); + this.timepickerVariables[side].minutesLabel.push(padded); + if (selected.minute() == i && !disabled) { + this.timepickerVariables[side].selectedMinute = i; + } else if (disabled) { + this.timepickerVariables[side].disabledMinutes.push(i); + } + } + // generate seconds + if (this.timePickerSeconds) { + for (var i = 0; i < 60; i++) { + var padded = i < 10 ? '0' + i : i; + var time = selected.clone().second(i); + var disabled = false; + if (minDate && time.isBefore(minDate)) { + disabled = true; + } + if (maxDate && time.isAfter(maxDate)) { + disabled = true; + } + this.timepickerVariables[side].seconds.push(i); + this.timepickerVariables[side].secondsLabel.push(padded); + if (selected.second() == i && !disabled) { + this.timepickerVariables[side].selectedSecond = i; + } else if (disabled) { + this.timepickerVariables[side].disabledSeconds.push(i); + } + } + } + // generate AM/PM + if (!this.timePicker24Hour) { + var am_html = ''; + var pm_html = ''; + if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate)) { + this.timepickerVariables[side].amDisabled = true; + } + if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate)) { + this.timepickerVariables[side].pmDisabled = true; + } + if (selected.hour() >= 12) { + this.timepickerVariables[side].ampmModel = 'PM'; + } else { + this.timepickerVariables[side].ampmModel = 'AM'; + } + } + this.timepickerVariables[side].selected = selected; + } + renderCalendar(side) { + let mainCalendar = side === SideEnum.left ? this.leftCalendar : this.rightCalendar; + const month = mainCalendar.month.month(); + const year = mainCalendar.month.year(); + const hour = mainCalendar.month.hour(); + const minute = mainCalendar.month.minute(); + const second = mainCalendar.month.second(); + const daysInMonth = moment([year, month]).daysInMonth(); + const firstDay = moment([year, month, 1]); + const lastDay = moment([year, month, daysInMonth]); + const lastMonth = moment(firstDay).subtract(1, 'month').month(); + const lastYear = moment(firstDay).subtract(1, 'month').year(); + const daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); + const dayOfWeek = firstDay.day(); + // initialize a 6 rows x 7 columns array for the calendar + let calendar = []; + calendar.firstDay = firstDay; + calendar.lastDay = lastDay; + for (let i = 0; i < 6; i++) { + calendar[i] = []; + } + // populate the calendar with date objects + let startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; + if (startDay > daysInLastMonth) { + startDay -= 7; + } + if (dayOfWeek === this.locale.firstDay) { + startDay = daysInLastMonth - 6; + } + let curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); + for (let i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { + if (i > 0 && col % 7 === 0) { + col = 0; + row++; + } + calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); + curDate.hour(12); + if (this.minDate && calendar[row][col].format('YYYY-MM-DD') === this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side === 'left') { + calendar[row][col] = this.minDate.clone(); + } + if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') === this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side === 'right') { + calendar[row][col] = this.maxDate.clone(); + } + } + // make the calendar object available to hoverDate/clickDate + if (side === SideEnum.left) { + this.leftCalendar.calendar = calendar; + } else { + this.rightCalendar.calendar = calendar; + } + // + // Display the calendar + // + const minDate = side === 'left' ? this.minDate : this.startDate; + let maxDate = this.maxDate; + // adjust maxDate to reflect the dateLimit setting in order to + // grey out end dates beyond the dateLimit + if (this.endDate === null && this.dateLimit) { + const maxLimit = this.startDate.clone().add(this.dateLimit, 'day').endOf('day'); + if (!maxDate || maxLimit.isBefore(maxDate)) { + maxDate = maxLimit; + } + } + this.calendarVariables[side] = { + month: month, + year: year, + hour: hour, + minute: minute, + second: second, + daysInMonth: daysInMonth, + firstDay: firstDay, + lastDay: lastDay, + lastMonth: lastMonth, + lastYear: lastYear, + daysInLastMonth: daysInLastMonth, + dayOfWeek: dayOfWeek, + // other vars + calRows: Array.from(Array(6).keys()), + calCols: Array.from(Array(7).keys()), + classes: {}, + minDate: minDate, + maxDate: maxDate, + calendar: calendar + }; + if (this.showDropdowns) { + const currentMonth = calendar[1][1].month(); + const currentYear = calendar[1][1].year(); + const maxYear = maxDate && maxDate.year() || currentYear + 5; + const minYear = minDate && minDate.year() || currentYear - 50; + const inMinYear = currentYear === minYear; + const inMaxYear = currentYear === maxYear; + const years = []; + for (var y = minYear; y <= maxYear; y++) { + years.push(y); + } + this.calendarVariables[side].dropdowns = { + currentMonth: currentMonth, + currentYear: currentYear, + maxYear: maxYear, + minYear: minYear, + inMinYear: inMinYear, + inMaxYear: inMaxYear, + monthArrays: Array.from(Array(12).keys()), + yearArrays: years + }; + } + this._buildCells(calendar, side); + } + setStartDate(startDate) { + if (typeof startDate === 'string') { + this.startDate = moment(startDate, this.locale.format); + } + if (typeof startDate === 'object') { + this.startDate = moment(startDate); + } + if (!this.timePicker) { + this.startDate = this.startDate.startOf('day'); + } + if (this.timePicker && this.timePickerIncrement) { + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + if (this.minDate && this.startDate.isBefore(this.minDate)) { + this.startDate = this.minDate.clone(); + if (this.timePicker && this.timePickerIncrement) { + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + } + if (this.maxDate && this.startDate.isAfter(this.maxDate)) { + this.startDate = this.maxDate.clone(); + if (this.timePicker && this.timePickerIncrement) { + this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + } + if (!this.isShown) { + this.updateElement(); + } + this.updateMonthsInView(); + } + setEndDate(endDate) { + if (typeof endDate === 'string') { + this.endDate = moment(endDate, this.locale.format); + } + if (typeof endDate === 'object') { + this.endDate = moment(endDate); + } + if (!this.timePicker) { + this.endDate = this.endDate.add(1, 'd').startOf('day').subtract(1, 'second'); + } + if (this.timePicker && this.timePickerIncrement) { + this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + if (this.endDate.isBefore(this.startDate)) { + this.endDate = this.startDate.clone(); + } + if (this.maxDate && this.endDate.isAfter(this.maxDate)) { + this.endDate = this.maxDate.clone(); + } + if (this.dateLimit && this.startDate.clone().add(this.dateLimit, 'day').isBefore(this.endDate)) { + this.endDate = this.startDate.clone().add(this.dateLimit, 'day'); + } + if (!this.isShown) { + // this.updateElement(); + } + this.updateMonthsInView(); + } + isInvalidDate(date) { + return false; + } + isCustomDate(date) { + return false; + } + updateView() { + if (this.timePicker) { + this.renderTimePicker(SideEnum.left); + this.renderTimePicker(SideEnum.right); + } + this.updateMonthsInView(); + this.updateCalendars(); + } + updateMonthsInView() { + if (this.endDate) { + // if both dates are visible already, do nothing + if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && (this.startDate && this.leftCalendar && this.startDate.format('YYYY-MM') === this.leftCalendar.month.format('YYYY-MM') || this.startDate && this.rightCalendar && this.startDate.format('YYYY-MM') === this.rightCalendar.month.format('YYYY-MM')) && (this.endDate.format('YYYY-MM') === this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') === this.rightCalendar.month.format('YYYY-MM'))) { + return; + } + if (this.startDate) { + this.leftCalendar.month = this.startDate.clone().date(2); + if (!this.linkedCalendars && (this.endDate.month() !== this.startDate.month() || this.endDate.year() !== this.startDate.year())) { + this.rightCalendar.month = this.endDate.clone().date(2); + } else { + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + } + } else { + if (this.leftCalendar.month.format('YYYY-MM') !== this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') !== this.startDate.format('YYYY-MM')) { + this.leftCalendar.month = this.startDate.clone().date(2); + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + } + if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) { + this.rightCalendar.month = this.maxDate.clone().date(2); + this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month'); + } + } + /** + * This is responsible for updating the calendars + */ + updateCalendars() { + this.renderCalendar(SideEnum.left); + this.renderCalendar(SideEnum.right); + if (this.endDate === null) { + return; + } + this.calculateChosenLabel(); + } + updateElement() { + if (!this.singleDatePicker && this.autoUpdateInput) { + if (this.startDate && this.endDate) { + // if we use ranges and should show range label on inpu + if (this.rangesArray.length && this.showRangeLabelOnInput === true && this.chosenRange && this.locale.customRangeLabel !== this.chosenRange) { + this.chosenLabel = this.chosenRange; + } else { + this.chosenLabel = this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format); + } + } + } else if (this.autoUpdateInput) { + this.chosenLabel = this.startDate.format(this.locale.format); + } + } + remove() { + this.isShown = false; + } + /** + * this should calculate the label + */ + calculateChosenLabel() { + if (!this.locale || !this.locale.separator) { + this._buildLocale(); + } + let customRange = true; + let i = 0; + if (this.rangesArray.length > 0) { + for (const range in this.ranges) { + if (this.timePicker) { + var format = this.timePickerSeconds ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD HH:mm'; + //ignore times when comparing dates if time picker seconds is not enabled + if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) { + customRange = false; + this.chosenRange = this.rangesArray[i]; + break; + } + } else { + //ignore times when comparing dates if time picker is not enabled + if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { + customRange = false; + this.chosenRange = this.rangesArray[i]; + break; + } + } + i++; + } + if (customRange) { + if (this.showCustomRangeLabel) { + this.chosenRange = this.locale.customRangeLabel; + } else { + this.chosenRange = null; + } + // if custom label: show calenar + this.showCalInRanges = true; + } + } + this.updateElement(); + } + clickApply(e) { + if (!this.singleDatePicker && this.startDate && !this.endDate) { + this.endDate = this.startDate.clone(); + this.calculateChosenLabel(); + } + if (this.isInvalidDate && this.startDate && this.endDate) { + // get if there are invalid date between range + let d = this.startDate.clone(); + while (d.isBefore(this.endDate)) { + if (this.isInvalidDate(d)) { + this.endDate = d.subtract(1, 'days'); + this.calculateChosenLabel(); + break; + } + d.add(1, 'days'); + } + } + if (this.chosenLabel) { + this.choosedDate.emit({ + chosenLabel: this.chosenLabel, + startDate: this.startDate, + endDate: this.endDate + }); + } + this.datesUpdated.emit({ + startDate: this.startDate, + endDate: this.endDate + }); + this.hide(); + } + clickCancel(e) { + this.startDate = this._old.start; + this.endDate = this._old.end; + if (this.inline) { + this.updateView(); + } + this.hide(); + } + /** + * called when month is changed + * @param monthEvent get value in event.target.value + * @param side left or right + */ + monthChanged(monthEvent, side) { + const year = this.calendarVariables[side].dropdowns.currentYear; + const month = parseInt(monthEvent.target.value, 10); + this.monthOrYearChanged(month, year, side); + } + /** + * called when year is changed + * @param yearEvent get value in event.target.value + * @param side left or right + */ + yearChanged(yearEvent, side) { + const month = this.calendarVariables[side].dropdowns.currentMonth; + const year = parseInt(yearEvent.target.value, 10); + this.monthOrYearChanged(month, year, side); + } + /** + * called when time is changed + * @param timeEvent an event + * @param side left or right + */ + timeChanged(timeEvent, side) { + var hour = parseInt(this.timepickerVariables[side].selectedHour, 10); + var minute = parseInt(this.timepickerVariables[side].selectedMinute, 10); + var second = this.timePickerSeconds ? parseInt(this.timepickerVariables[side].selectedSecond, 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.timepickerVariables[side].ampmModel; + if (ampm === 'PM' && hour < 12) { + hour += 12; + } + if (ampm === 'AM' && hour === 12) { + hour = 0; + } + } + if (side === SideEnum.left) { + var start = this.startDate.clone(); + start.hour(hour); + start.minute(minute); + start.second(second); + this.setStartDate(start); + if (this.singleDatePicker) { + this.endDate = this.startDate.clone(); + } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { + this.setEndDate(start.clone()); + } + } else if (this.endDate) { + var end = this.endDate.clone(); + end.hour(hour); + end.minute(minute); + end.second(second); + this.setEndDate(end); + } + //update the calendars so all clickable dates reflect the new time component + this.updateCalendars(); + //re-render the time pickers because changing one selection can affect what's enabled in another + this.renderTimePicker(SideEnum.left); + this.renderTimePicker(SideEnum.right); + } + /** + * call when month or year changed + * @param month month number 0 -11 + * @param year year eg: 1995 + * @param side left or right + */ + monthOrYearChanged(month, year, side) { + const isLeft = side === SideEnum.left; + if (!isLeft) { + if (year < this.startDate.year() || year === this.startDate.year() && month < this.startDate.month()) { + month = this.startDate.month(); + year = this.startDate.year(); + } + } + if (this.minDate) { + if (year < this.minDate.year() || year === this.minDate.year() && month < this.minDate.month()) { + month = this.minDate.month(); + year = this.minDate.year(); + } + } + if (this.maxDate) { + if (year > this.maxDate.year() || year === this.maxDate.year() && month > this.maxDate.month()) { + month = this.maxDate.month(); + year = this.maxDate.year(); + } + } + this.calendarVariables[side].dropdowns.currentYear = year; + this.calendarVariables[side].dropdowns.currentMonth = month; + if (isLeft) { + this.leftCalendar.month.month(month).year(year); + if (this.linkedCalendars) { + this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); + } + } else { + this.rightCalendar.month.month(month).year(year); + if (this.linkedCalendars) { + this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); + } + } + this.updateCalendars(); + } + /** + * Click on previous month + * @param side left or right calendar + */ + clickPrev(side) { + if (side === SideEnum.left) { + this.leftCalendar.month.subtract(1, 'month'); + if (this.linkedCalendars) { + this.rightCalendar.month.subtract(1, 'month'); + } + } else { + this.rightCalendar.month.subtract(1, 'month'); + } + this.updateCalendars(); + } + /** + * Click on next month + * @param side left or right calendar + */ + clickNext(side) { + if (side === SideEnum.left) { + this.leftCalendar.month.add(1, 'month'); + } else { + this.rightCalendar.month.add(1, 'month'); + if (this.linkedCalendars) { + this.leftCalendar.month.add(1, 'month'); + } + } + this.updateCalendars(); + } + /** + * When selecting a date + * @param e event: get value by e.target.value + * @param side left or right + * @param row row position of the current date clicked + * @param col col position of the current date clicked + */ + clickDate(e, side, row, col) { + if (e.target.tagName === 'TD') { + if (!e.target.classList.contains('available')) { + return; + } + } else if (e.target.tagName === 'SPAN') { + if (!e.target.parentElement.classList.contains('available')) { + return; + } + } + if (this.rangesArray.length) { + this.chosenRange = this.locale.customRangeLabel; + } + let date = side === SideEnum.left ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + if (this.endDate || date.isBefore(this.startDate, 'day')) { + // picking start + if (this.timePicker) { + date = this._getDateWithTime(date, SideEnum.left); + } + this.endDate = null; + this.setStartDate(date.clone()); + } else if (!this.endDate && date.isBefore(this.startDate)) { + // special case: clicking the same date for start/end, + // but the time of the end date is before the start date + this.setEndDate(this.startDate.clone()); + } else { + // picking end + if (this.timePicker) { + date = this._getDateWithTime(date, SideEnum.right); + } + this.setEndDate(date.clone()); + if (this.autoApply) { + this.calculateChosenLabel(); + this.clickApply(); + } + } + if (this.singleDatePicker) { + this.setEndDate(this.startDate); + this.updateElement(); + if (this.autoApply) { + this.clickApply(); + } + } + this.updateView(); + // This is to cancel the blur event handler if the mouse was in one of the inputs + e.stopPropagation(); + } + /** + * Click on the custom range + * @param e: Event + * @param label + */ + clickRange(e, label) { + this.chosenRange = label; + if (label == this.locale.customRangeLabel) { + this.isShown = true; // show calendars + this.showCalInRanges = true; + } else { + var dates = this.ranges[label]; + this.startDate = dates[0].clone(); + this.endDate = dates[1].clone(); + if (this.showRangeLabelOnInput && label !== this.locale.customRangeLabel) { + this.chosenLabel = label; + } else { + this.calculateChosenLabel(); + } + this.showCalInRanges = !this.rangesArray.length || this.alwaysShowCalendars; + if (!this.timePicker) { + this.startDate.startOf('day'); + this.endDate.endOf('day'); + } + if (!this.alwaysShowCalendars) { + this.isShown = false; // hide calendars + } + + this.rangeClicked.emit({ + label: label, + dates: dates + }); + if (!this.keepCalendarOpeningWithRange) { + this.clickApply(); + } else { + this.leftCalendar.month.month(dates[0].month()); + this.leftCalendar.month.year(dates[0].year()); + this.rightCalendar.month.month(dates[1].month()); + this.rightCalendar.month.year(dates[1].year()); + this.updateCalendars(); + if (this.timePicker) { + this.renderTimePicker(SideEnum.left); + this.renderTimePicker(SideEnum.right); + } + } + } + } + show(e) { + if (this.isShown) { + return; + } + this._old.start = this.startDate.clone(); + this._old.end = this.endDate.clone(); + this.isShown = true; + this.updateView(); + } + hide(e) { + if (!this.isShown) { + return; + } + // incomplete date selection, revert to last values + if (!this.endDate) { + if (this._old.start) { + this.startDate = this._old.start.clone(); + } + if (this._old.end) { + this.endDate = this._old.end.clone(); + } + } + // if a new date range was selected, invoke the user callback function + if (!this.startDate.isSame(this._old.start) || !this.endDate.isSame(this._old.end)) { + // this.callback(this.startDate, this.endDate, this.chosenLabel); + } + // if picker is attached to a text input, update it + this.updateElement(); + this.isShown = false; + this._ref.detectChanges(); + } + /** + * handle click on all element in the component, usefull for outside of click + * @param e event + */ + handleInternalClick(e) { + e.stopPropagation(); + } + /** + * update the locale options + * @param locale + */ + updateLocale(locale) { + for (const key in locale) { + if (locale.hasOwnProperty(key)) { + this.locale[key] = locale[key]; + } + } + } + /** + * clear the daterange picker + */ + clear() { + this.startDate = moment().startOf('day'); + this.endDate = moment().endOf('day'); + this.choosedDate.emit({ + chosenLabel: '', + startDate: null, + endDate: null + }); + this.datesUpdated.emit({ + startDate: null, + endDate: null + }); + this.hide(); + } + /** + * Find out if the selected range should be disabled if it doesn't + * fit into minDate and maxDate limitations. + */ + disableRange(range) { + if (range === this.locale.customRangeLabel) { + return false; + } + const rangeMarkers = this.ranges[range]; + const areBothBefore = rangeMarkers.every(date => { + if (!this.minDate) { + return false; + } + return date.isBefore(this.minDate); + }); + const areBothAfter = rangeMarkers.every(date => { + if (!this.maxDate) { + return false; + } + return date.isAfter(this.maxDate); + }); + return areBothBefore || areBothAfter; + } + /** + * + * @param date the date to add time + * @param side left or right + */ + _getDateWithTime(date, side) { + let hour = parseInt(this.timepickerVariables[side].selectedHour, 10); + if (!this.timePicker24Hour) { + var ampm = this.timepickerVariables[side].ampmModel; + if (ampm === 'PM' && hour < 12) { + hour += 12; + } + if (ampm === 'AM' && hour === 12) { + hour = 0; + } + } + var minute = parseInt(this.timepickerVariables[side].selectedMinute, 10); + var second = this.timePickerSeconds ? parseInt(this.timepickerVariables[side].selectedSecond, 10) : 0; + return date.clone().hour(hour).minute(minute).second(second); + } + /** + * build the locale config + */ + _buildLocale() { + this.locale = { + ...this._localeService.config, + ...this.locale + }; + if (!this.locale.format) { + if (this.timePicker) { + this.locale.format = moment.localeData().longDateFormat('lll'); + } else { + this.locale.format = moment.localeData().longDateFormat('L'); + } + } + } + _buildCells(calendar, side) { + for (let row = 0; row < 6; row++) { + this.calendarVariables[side].classes[row] = {}; + const rowClasses = []; + if (this.emptyWeekRowClass && !this.hasCurrentMonthDays(this.calendarVariables[side].month, calendar[row])) { + rowClasses.push(this.emptyWeekRowClass); + } + for (let col = 0; col < 7; col++) { + const classes = []; + // highlight today's date + if (calendar[row][col].isSame(new Date(), 'day')) { + classes.push('today'); + } + // highlight weekends + if (calendar[row][col].isoWeekday() > 5) { + classes.push('weekend'); + } + // grey out the dates in other months displayed at beginning and end of this calendar + if (calendar[row][col].month() !== calendar[1][1].month()) { + classes.push('off'); + // mark the last day of the previous month in this calendar + if (this.lastDayOfPreviousMonthClass && (calendar[row][col].month() < calendar[1][1].month() || calendar[1][1].month() === 0) && calendar[row][col].date() === this.calendarVariables[side].daysInLastMonth) { + classes.push(this.lastDayOfPreviousMonthClass); + } + // mark the first day of the next month in this calendar + if (this.firstDayOfNextMonthClass && (calendar[row][col].month() > calendar[1][1].month() || calendar[row][col].month() === 0) && calendar[row][col].date() === 1) { + classes.push(this.firstDayOfNextMonthClass); + } + } + // mark the first day of the current month with a custom class + if (this.firstMonthDayClass && calendar[row][col].month() === calendar[1][1].month() && calendar[row][col].date() === calendar.firstDay.date()) { + classes.push(this.firstMonthDayClass); + } + // mark the last day of the current month with a custom class + if (this.lastMonthDayClass && calendar[row][col].month() === calendar[1][1].month() && calendar[row][col].date() === calendar.lastDay.date()) { + classes.push(this.lastMonthDayClass); + } + // don't allow selection of dates before the minimum date + if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) { + classes.push('off', 'disabled'); + } + // don't allow selection of dates after the maximum date + if (this.calendarVariables[side].maxDate && calendar[row][col].isAfter(this.calendarVariables[side].maxDate, 'day')) { + classes.push('off', 'disabled'); + } + // don't allow selection of date if a custom function decides it's invalid + if (this.isInvalidDate(calendar[row][col])) { + classes.push('off', 'disabled'); + } + // highlight the currently selected start date + if (this.startDate && calendar[row][col].format('YYYY-MM-DD') === this.startDate.format('YYYY-MM-DD')) { + classes.push('active', 'start-date'); + } + // highlight the currently selected end date + if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') === this.endDate.format('YYYY-MM-DD')) { + classes.push('active', 'end-date'); + } + // highlight dates in-between the selected dates + if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) { + classes.push('in-range'); + } + // apply custom classes for this date + const isCustom = this.isCustomDate(calendar[row][col]); + if (isCustom !== false) { + if (typeof isCustom === 'string') { + classes.push(isCustom); + } else { + Array.prototype.push.apply(classes, isCustom); + } + } + // store classes var + let cname = '', + disabled = false; + for (let i = 0; i < classes.length; i++) { + cname += classes[i] + ' '; + if (classes[i] === 'disabled') { + disabled = true; + } + } + if (!disabled) { + cname += 'available'; + } + this.calendarVariables[side].classes[row][col] = cname.replace(/^\s+|\s+$/g, ''); + } + this.calendarVariables[side].classes[row].classList = rowClasses.join(' '); + } + } + /** + * Find out if the current calendar row has current month days + * (as opposed to consisting of only previous/next month days) + */ + hasCurrentMonthDays(currentMonth, row) { + for (let day = 0; day < 7; day++) { + if (row[day].month() === currentMonth) { + return true; + } + } + return false; + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ElementRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ChangeDetectorRef + }, { + type: _locale_service__WEBPACK_IMPORTED_MODULE_3__.LocaleService + }]; + static propDecorators = { + dateLimit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + minDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + maxDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + autoApply: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + singleDatePicker: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showDropdowns: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showWeekNumbers: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showISOWeekNumbers: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + linkedCalendars: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + autoUpdateInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + alwaysShowCalendars: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + maxSpan: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + timePicker: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + timePicker24Hour: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + timePickerIncrement: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + timePickerSeconds: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showClearButton: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + firstMonthDayClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + lastMonthDayClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + emptyWeekRowClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + firstDayOfNextMonthClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + lastDayOfPreviousMonthClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + locale: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + ranges: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showCustomRangeLabel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showCancel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + keepCalendarOpeningWithRange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + showRangeLabelOnInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + drops: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + opens: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + choosedDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output, + args: ['choosedDate'] + }], + rangeClicked: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output, + args: ['rangeClicked'] + }], + datesUpdated: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output, + args: ['datesUpdated'] + }], + pickerContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewChild, + args: ['pickerContainer', { + static: true + }] + }], + isInvalidDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + isCustomDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }] + }; +}; +DaterangepickerComponent = DaterangepickerComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'ngx-daterangepicker-material', + template: _daterangepicker_component_html_ngResource__WEBPACK_IMPORTED_MODULE_1__, + host: { + '(click)': 'handleInternalClick($event)' + }, + encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewEncapsulation.None, + providers: [{ + provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NG_VALUE_ACCESSOR, + useExisting: (0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.forwardRef)(() => DaterangepickerComponent_1), + multi: true + }], + styles: [(_daterangepicker_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_0___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_5__.ElementRef, _angular_core__WEBPACK_IMPORTED_MODULE_5__.ChangeDetectorRef, _locale_service__WEBPACK_IMPORTED_MODULE_3__.LocaleService])], DaterangepickerComponent); + + +/***/ }), + +/***/ 34261: +/*!***********************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/daterangepicker.config.ts ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DefaultLocaleConfig: () => (/* binding */ DefaultLocaleConfig), +/* harmony export */ LOCALE_CONFIG: () => (/* binding */ LOCALE_CONFIG) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ 58540); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__); + + +const moment = moment__WEBPACK_IMPORTED_MODULE_0__; +const LOCALE_CONFIG = new _angular_core__WEBPACK_IMPORTED_MODULE_1__.InjectionToken('daterangepicker.config'); +/** + * DefaultLocaleConfig + */ +const DefaultLocaleConfig = { + direction: 'ltr', + separator: ' - ', + weekLabel: 'W', + applyLabel: 'Apply', + cancelLabel: 'Cancel', + customRangeLabel: 'Custom range', + daysOfWeek: moment.weekdaysMin(), + monthNames: moment.monthsShort(), + firstDay: moment.localeData().firstDayOfWeek() +}; + +/***/ }), + +/***/ 54076: +/*!**************************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/daterangepicker.directive.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DaterangepickerDirective: () => (/* binding */ DaterangepickerDirective) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _daterangepicker_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./daterangepicker.component */ 7075); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ 58540); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _locale_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./locale.service */ 30883); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var DaterangepickerDirective_1; +/* eslint-disable @angular-eslint/no-conflicting-lifecycle */ +/* eslint @angular-eslint/no-host-metadata-property: off */ + + + + + +const moment = moment__WEBPACK_IMPORTED_MODULE_1__; +let DaterangepickerDirective = DaterangepickerDirective_1 = class DaterangepickerDirective { + viewContainerRef; + _changeDetectorRef; + _componentFactoryResolver; + _el; + _renderer; + differs; + _localeService; + picker; + _onChange = Function.prototype; + _onTouched = Function.prototype; + _validatorChange = Function.prototype; + _value; + localeDiffer; + minDate; + maxDate; + autoApply; + alwaysShowCalendars; + showCustomRangeLabel; + linkedCalendars; + dateLimit = null; + singleDatePicker; + showWeekNumbers; + showISOWeekNumbers; + showDropdowns; + isInvalidDate; + isCustomDate; + showClearButton; + ranges; + opens; + drops; + firstMonthDayClass; + lastMonthDayClass; + emptyWeekRowClass; + firstDayOfNextMonthClass; + lastDayOfPreviousMonthClass; + keepCalendarOpeningWithRange; + showRangeLabelOnInput; + showCancel = false; + timePicker = false; + timePicker24Hour = false; + timePickerIncrement = 1; + timePickerSeconds = false; + _locale = {}; + set locale(value) { + this._locale = { + ...this._localeService.config, + ...value + }; + } + get locale() { + return this._locale; + } + _endKey = 'endDate'; + _startKey = 'startDate'; + set startKey(value) { + if (value !== null) { + this._startKey = value; + } else { + this._startKey = 'startDate'; + } + } + set endKey(value) { + if (value !== null) { + this._endKey = value; + } else { + this._endKey = 'endDate'; + } + } + notForChangesProperty = ['locale', 'endKey', 'startKey']; + get value() { + return this._value || null; + } + set value(val) { + this._value = val; + this._onChange(val); + this._changeDetectorRef.markForCheck(); + } + onChange = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + rangeClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + datesUpdated = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + constructor(viewContainerRef, _changeDetectorRef, _componentFactoryResolver, _el, _renderer, differs, _localeService) { + this.viewContainerRef = viewContainerRef; + this._changeDetectorRef = _changeDetectorRef; + this._componentFactoryResolver = _componentFactoryResolver; + this._el = _el; + this._renderer = _renderer; + this.differs = differs; + this._localeService = _localeService; + this.drops = 'down'; + this.opens = 'right'; + const componentFactory = this._componentFactoryResolver.resolveComponentFactory(_daterangepicker_component__WEBPACK_IMPORTED_MODULE_0__.DaterangepickerComponent); + viewContainerRef.clear(); + const componentRef = viewContainerRef.createComponent(componentFactory); + this.picker = componentRef.instance; + this.picker.inline = false; // set inline to false for all directive usage + } + + ngOnInit() { + this.picker.rangeClicked.asObservable().subscribe(range => { + this.rangeClicked.emit(range); + }); + this.picker.datesUpdated.asObservable().subscribe(range => { + this.datesUpdated.emit(range); + }); + this.picker.choosedDate.asObservable().subscribe(change => { + if (change) { + const value = {}; + value[this._startKey] = change.startDate; + value[this._endKey] = change.endDate; + this.value = value; + this.onChange.emit(value); + if (typeof change.chosenLabel === 'string') { + this._el.nativeElement.value = change.chosenLabel; + } + } + }); + this.picker.firstMonthDayClass = this.firstMonthDayClass; + this.picker.lastMonthDayClass = this.lastMonthDayClass; + this.picker.emptyWeekRowClass = this.emptyWeekRowClass; + this.picker.firstDayOfNextMonthClass = this.firstDayOfNextMonthClass; + this.picker.lastDayOfPreviousMonthClass = this.lastDayOfPreviousMonthClass; + this.picker.drops = this.drops; + this.picker.opens = this.opens; + this.localeDiffer = this.differs.find(this.locale).create(); + } + ngOnChanges(changes) { + for (let change in changes) { + if (changes.hasOwnProperty(change)) { + if (this.notForChangesProperty.indexOf(change) === -1) { + this.picker[change] = changes[change].currentValue; + } + } + } + } + ngDoCheck() { + if (this.localeDiffer) { + const changes = this.localeDiffer.diff(this.locale); + if (changes) { + this.picker.updateLocale(this.locale); + } + } + } + onBlur() { + this._onTouched(); + } + open(event) { + this.picker.show(event); + setTimeout(() => { + this.setPosition(); + }); + } + hide(e) { + this.picker.hide(e); + } + toggle(e) { + if (this.picker.isShown) { + this.hide(e); + } else { + this.open(e); + } + } + clear() { + this.picker.clear(); + } + writeValue(value) { + this.value = value; + this.setValue(value); + } + registerOnChange(fn) { + this._onChange = fn; + } + registerOnTouched(fn) { + this._onTouched = fn; + } + setValue(val) { + if (val) { + if (val[this._startKey]) { + this.picker.setStartDate(val[this._startKey]); + } + if (val[this._endKey]) { + this.picker.setEndDate(val[this._endKey]); + } + this.picker.calculateChosenLabel(); + if (this.picker.chosenLabel) { + this._el.nativeElement.value = this.picker.chosenLabel; + } + } else { + this.picker.clear(); + } + } + /** + * Set position of the calendar + */ + setPosition() { + let style; + let containerTop; + const container = this.picker.pickerContainer.nativeElement; + const element = this._el.nativeElement; + if (this.drops && this.drops == 'up') { + containerTop = element.offsetTop - container.clientHeight + 'px'; + } else { + containerTop = 'auto'; + } + if (this.opens == 'left') { + style = { + top: containerTop, + left: element.offsetLeft - container.clientWidth + element.clientWidth + 'px', + right: 'auto' + }; + } else if (this.opens == 'center') { + style = { + top: containerTop, + left: element.offsetLeft + element.clientWidth / 2 - container.clientWidth / 2 + 'px', + right: 'auto' + }; + } else { + style = { + top: containerTop, + left: element.offsetLeft + 'px', + right: 'auto' + }; + } + if (style) { + this._renderer.setStyle(container, 'top', style.top); + this._renderer.setStyle(container, 'left', style.left); + this._renderer.setStyle(container, 'right', style.right); + } + } + outsideClick(event, targetElement) { + if (!targetElement) { + return; + } + if (targetElement.classList.contains('ngx-daterangepicker-action')) { + return; + } + const clickedInside = this._el.nativeElement.contains(targetElement); + if (!clickedInside) { + this.hide(); + } + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.ViewContainerRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.ChangeDetectorRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.ComponentFactoryResolver + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.ElementRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Renderer2 + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.KeyValueDiffers + }, { + type: _locale_service__WEBPACK_IMPORTED_MODULE_2__.LocaleService + }]; + static propDecorators = { + minDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + maxDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + autoApply: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + alwaysShowCalendars: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showCustomRangeLabel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + linkedCalendars: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + dateLimit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + singleDatePicker: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showWeekNumbers: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showISOWeekNumbers: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showDropdowns: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + isInvalidDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + isCustomDate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showClearButton: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + ranges: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + opens: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + drops: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + lastMonthDayClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + emptyWeekRowClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + firstDayOfNextMonthClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + lastDayOfPreviousMonthClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + keepCalendarOpeningWithRange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showRangeLabelOnInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + showCancel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + timePicker: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + timePicker24Hour: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + timePickerIncrement: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + timePickerSeconds: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + locale: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + _endKey: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + startKey: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + endKey: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + onChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output, + args: ['change'] + }], + rangeClicked: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output, + args: ['rangeClicked'] + }], + datesUpdated: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output, + args: ['datesUpdated'] + }], + outsideClick: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.HostListener, + args: ['document:click', ['$event', '$event.target']] + }] + }; +}; +DaterangepickerDirective = DaterangepickerDirective_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Directive)({ + selector: 'input[ngxDaterangepickerMd]', + host: { + '(keyup.esc)': 'hide()', + '(blur)': 'onBlur()', + '(click)': 'open()' + }, + providers: [{ + provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.NG_VALUE_ACCESSOR, + useExisting: (0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.forwardRef)(() => DaterangepickerDirective_1), + multi: true + }] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_3__.ViewContainerRef, _angular_core__WEBPACK_IMPORTED_MODULE_3__.ChangeDetectorRef, _angular_core__WEBPACK_IMPORTED_MODULE_3__.ComponentFactoryResolver, _angular_core__WEBPACK_IMPORTED_MODULE_3__.ElementRef, _angular_core__WEBPACK_IMPORTED_MODULE_3__.Renderer2, _angular_core__WEBPACK_IMPORTED_MODULE_3__.KeyValueDiffers, _locale_service__WEBPACK_IMPORTED_MODULE_2__.LocaleService])], DaterangepickerDirective); + + +/***/ }), + +/***/ 20977: +/*!***********************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/daterangepicker.module.ts ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxDaterangepickerMd: () => (/* binding */ NgxDaterangepickerMd) +/* harmony export */ }); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _daterangepicker_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./daterangepicker.component */ 7075); +/* harmony import */ var _daterangepicker_directive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./daterangepicker.directive */ 54076); +/* harmony import */ var _daterangepicker_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./daterangepicker.config */ 34261); +/* harmony import */ var _locale_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./locale.service */ 30883); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var NgxDaterangepickerMd_1; + + + + + + + +let NgxDaterangepickerMd = NgxDaterangepickerMd_1 = class NgxDaterangepickerMd { + constructor() {} + static forRoot(config = {}) { + return { + ngModule: NgxDaterangepickerMd_1, + providers: [{ + provide: _daterangepicker_config__WEBPACK_IMPORTED_MODULE_2__.LOCALE_CONFIG, + useValue: config + }, { + provide: _locale_service__WEBPACK_IMPORTED_MODULE_3__.LocaleService, + useClass: _locale_service__WEBPACK_IMPORTED_MODULE_3__.LocaleService, + deps: [_daterangepicker_config__WEBPACK_IMPORTED_MODULE_2__.LOCALE_CONFIG] + }] + }; + } + static ctorParameters = () => []; +}; +NgxDaterangepickerMd = NgxDaterangepickerMd_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.NgModule)({ + declarations: [_daterangepicker_component__WEBPACK_IMPORTED_MODULE_0__.DaterangepickerComponent, _daterangepicker_directive__WEBPACK_IMPORTED_MODULE_1__.DaterangepickerDirective], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.FormsModule, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.ReactiveFormsModule], + providers: [], + exports: [_daterangepicker_component__WEBPACK_IMPORTED_MODULE_0__.DaterangepickerComponent, _daterangepicker_directive__WEBPACK_IMPORTED_MODULE_1__.DaterangepickerDirective] +}), __metadata("design:paramtypes", [])], NgxDaterangepickerMd); + + +/***/ }), + +/***/ 76699: +/*!******************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/index.ts ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DaterangepickerComponent: () => (/* reexport safe */ _daterangepicker_component__WEBPACK_IMPORTED_MODULE_1__.DaterangepickerComponent), +/* harmony export */ DaterangepickerDirective: () => (/* reexport safe */ _daterangepicker_directive__WEBPACK_IMPORTED_MODULE_2__.DaterangepickerDirective), +/* harmony export */ DefaultLocaleConfig: () => (/* reexport safe */ _daterangepicker_config__WEBPACK_IMPORTED_MODULE_3__.DefaultLocaleConfig), +/* harmony export */ LOCALE_CONFIG: () => (/* reexport safe */ _daterangepicker_config__WEBPACK_IMPORTED_MODULE_3__.LOCALE_CONFIG), +/* harmony export */ LocaleService: () => (/* reexport safe */ _locale_service__WEBPACK_IMPORTED_MODULE_4__.LocaleService), +/* harmony export */ NgxDaterangepickerMd: () => (/* reexport safe */ _daterangepicker_module__WEBPACK_IMPORTED_MODULE_0__.NgxDaterangepickerMd) +/* harmony export */ }); +/* harmony import */ var _daterangepicker_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./daterangepicker.module */ 20977); +/* harmony import */ var _daterangepicker_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./daterangepicker.component */ 7075); +/* harmony import */ var _daterangepicker_directive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./daterangepicker.directive */ 54076); +/* harmony import */ var _daterangepicker_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./daterangepicker.config */ 34261); +/* harmony import */ var _locale_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./locale.service */ 30883); + + + + + + +/***/ }), + +/***/ 30883: +/*!***************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/locale.service.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LocaleService: () => (/* binding */ LocaleService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _daterangepicker_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./daterangepicker.config */ 34261); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +let LocaleService = class LocaleService { + _config; + constructor(_config) { + this._config = _config; + } + get config() { + if (!this._config) { + return _daterangepicker_config__WEBPACK_IMPORTED_MODULE_0__.DefaultLocaleConfig; + } + return { + ..._daterangepicker_config__WEBPACK_IMPORTED_MODULE_0__.DefaultLocaleConfig, + ...this._config + }; + } + static ctorParameters = () => [{ + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Inject, + args: [_daterangepicker_config__WEBPACK_IMPORTED_MODULE_0__.LOCALE_CONFIG] + }] + }]; +}; +LocaleService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Injectable)(), __metadata("design:paramtypes", [Object])], LocaleService); + + +/***/ }), + +/***/ 79962: +/*!**************************************************************!*\ + !*** ./src/app/gui-helpers/edit-name/edit-name.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ EditNameComponent: () => (/* binding */ EditNameComponent) +/* harmony export */ }); +/* harmony import */ var _edit_name_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./edit-name.component.html?ngResource */ 19419); +/* harmony import */ var _edit_name_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./edit-name.component.css?ngResource */ 94982); +/* harmony import */ var _edit_name_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_edit_name_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let EditNameComponent = class EditNameComponent { + dialogRef; + data; + error = ''; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.data); + } + isValid(name) { + if (this.data.validator) { + if (!this.data.validator(name)) { + return false; + } + } + if (this.data.exist && this.data.exist.length) { + return this.data.exist.find(n => n === name) ? false : true; + } + return true; + } + onCheckValue(input) { + if (this.data.exist && this.data.exist.length && input.target.value) { + if (this.data.exist.find(n => n === input.target.value)) { + this.error = this.data.error; + return; + } + } + this.error = ''; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +EditNameComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-edit-name', + template: _edit_name_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_edit_name_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, Object])], EditNameComponent); + + +/***/ }), + +/***/ 63167: +/*!****************************************************************************!*\ + !*** ./src/app/gui-helpers/edit-placeholder/edit-placeholder.component.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ EditPlaceholderComponent: () => (/* binding */ EditPlaceholderComponent) +/* harmony export */ }); +/* harmony import */ var _edit_placeholder_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./edit-placeholder.component.html?ngResource */ 97851); +/* harmony import */ var _edit_placeholder_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./edit-placeholder.component.scss?ngResource */ 88365); +/* harmony import */ var _edit_placeholder_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_edit_placeholder_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let EditPlaceholderComponent = class EditPlaceholderComponent { + dialogRef; + fb; + data; + formGroup; + constructor(dialogRef, fb, data) { + this.dialogRef = dialogRef; + this.fb = fb; + this.data = data; + } + ngOnInit() { + this.formGroup = this.fb.group({ + name: ['', _angular_forms__WEBPACK_IMPORTED_MODULE_2__.Validators.required] + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.formGroup.value.name); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_2__.UntypedFormBuilder + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +EditPlaceholderComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-edit-placeholder', + template: _edit_placeholder_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_edit_placeholder_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.UntypedFormBuilder, Object])], EditPlaceholderComponent); + + +/***/ }), + +/***/ 66053: +/*!********************************************************************!*\ + !*** ./src/app/gui-helpers/fab-button/ngx-fab-button.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxFabButtonComponent: () => (/* binding */ NgxFabButtonComponent) +/* harmony export */ }); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgOmhvc3QgewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAuZmFiLW1lbnUgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHdpZHRoOjQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogOTsKICB9CiAgLmZhYi10b2dnbGUgewogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgY29sb3I6IHdoaXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogYWxsIGVhc2Utb3V0IDIwMG1zOwogICAgei1pbmRleDogMjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4yNik7CiAgfQogIC5mYWItbWVudSAuZmFiLXRvZ2dsZTpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAgLmZhYi1tZW51IDo6bmctZGVlcCAuaXRlbSB7CiAgICAgb3BhY2l0eTogMDsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLml0ZW0gewogICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgOjpuZy1kZWVwIC5jb250ZW50LXdyYXBwZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLmNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgLmZhYi10b2dnbGUgewogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAg_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/app/gui-helpers/fab-button/ngx-fab-button.component.ts.css?ngResource!=!./node_modules/@ngtools/webpack/src/loaders/inline-resource.js?data=CiAgOmhvc3QgewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAuZmFiLW1lbnUgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHdpZHRoOjQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogOTsKICB9CiAgLmZhYi10b2dnbGUgewogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgY29sb3I6IHdoaXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogYWxsIGVhc2Utb3V0IDIwMG1zOwogICAgei1pbmRleDogMjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4yNik7CiAgfQogIC5mYWItbWVudSAuZmFiLXRvZ2dsZTpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAgLmZhYi1tZW51IDo6bmctZGVlcCAuaXRlbSB7CiAgICAgb3BhY2l0eTogMDsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLml0ZW0gewogICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgOjpuZy1kZWVwIC5jb250ZW50LXdyYXBwZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLmNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgLmZhYi10b2dnbGUgewogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAg!./src/app/gui-helpers/fab-button/ngx-fab-button.component.ts */ 84524); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgOmhvc3QgewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAuZmFiLW1lbnUgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHdpZHRoOjQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogOTsKICB9CiAgLmZhYi10b2dnbGUgewogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgY29sb3I6IHdoaXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogYWxsIGVhc2Utb3V0IDIwMG1zOwogICAgei1pbmRleDogMjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4yNik7CiAgfQogIC5mYWItbWVudSAuZmFiLXRvZ2dsZTpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAgLmZhYi1tZW51IDo6bmctZGVlcCAuaXRlbSB7CiAgICAgb3BhY2l0eTogMDsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLml0ZW0gewogICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgOjpuZy1kZWVwIC5jb250ZW50LXdyYXBwZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLmNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgLmZhYi10b2dnbGUgewogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAg_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgOmhvc3QgewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAuZmFiLW1lbnUgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHdpZHRoOjQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogOTsKICB9CiAgLmZhYi10b2dnbGUgewogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgY29sb3I6IHdoaXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogYWxsIGVhc2Utb3V0IDIwMG1zOwogICAgei1pbmRleDogMjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4yNik7CiAgfQogIC5mYWItbWVudSAuZmFiLXRvZ2dsZTpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAgLmZhYi1tZW51IDo6bmctZGVlcCAuaXRlbSB7CiAgICAgb3BhY2l0eTogMDsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLml0ZW0gewogICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgOjpuZy1kZWVwIC5jb250ZW50LXdyYXBwZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLmNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgLmZhYi10b2dnbGUgewogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAg_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 58071); +/* harmony import */ var _ngx_fab_item_button_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-fab-item-button.component */ 77202); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let NgxFabButtonComponent = class NgxFabButtonComponent { + element; + cd; + elementref; + subs = []; + state; + icon; + iconOpen; + direction; + spaceBetweenButtons = 45; + open; + color = '#dd0031'; + disabled = false; + events = new rxjs__WEBPACK_IMPORTED_MODULE_2__.Subject(); + opened = false; + buttons; + constructor(element, cd) { + this.element = element; + this.cd = cd; + this.elementref = element.nativeElement; + this.state = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject({ + display: false, + direction: 'top', + event: 'start', + spaceBetweenButtons: this.spaceBetweenButtons + }); + } + toggle() { + if (this.disabled) { + return this.disabled; + } + this.state.next({ + ...this.state.getValue(), + display: !this.state.getValue().display, + event: !this.state.getValue().display ? 'open' : 'close' + }); + this.opened = this.state.getValue().display; + } + // only top and bottom support content element + checkDirectionType() { + if (this.buttons.toArray()) { + let display = 'block'; + if (this.direction === 'right' || this.direction === 'left') { + display = 'none'; + } + this.buttons.toArray().forEach(element => { + element.contentref.nativeElement.style.display = display; + }); + } + } + // transition + animateButtons(eventType) { + this.buttons.toArray().forEach((btn, i) => { + i += 1; + if (btn.elementref) { + const style = btn.elementref.nativeElement.style; + if (eventType !== 'directionChanged' && this.state.getValue().display) { + style['transform'] = 'scale(1)'; + style['transition-duration'] = '0s'; + if (btn.timeout) { + clearTimeout(btn.timeout); + } + } + setTimeout(() => { + style['transition-duration'] = this.state.getValue().display ? `${90 + 100 * i}ms` : ''; + style['transform'] = this.state.getValue().display ? this.getTranslate(i) : ''; + }, 50); + if (eventType !== 'directionChanged' && !this.state.getValue().display) { + btn.timeout = setTimeout(() => { + style['transform'] = 'scale(0)'; + }, 90 + 100 * i); + } + } + }); + } + // get transition direction + getTranslate(i) { + let animation; + switch (this.direction) { + case 'right': + animation = `translate3d(${this.state.getValue().spaceBetweenButtons * i}px,0,0)`; + break; + case 'bottom': + animation = `translate3d(0,${this.state.getValue().spaceBetweenButtons * i}px,0)`; + break; + case 'left': + animation = `translate3d(-${this.state.getValue().spaceBetweenButtons * i}px,0,0)`; + break; + default: + animation = `translate3d(0,-${this.state.getValue().spaceBetweenButtons * i}px,0)`; + break; + } + return animation; + } + ngAfterContentInit() { + if (this.direction) { + // first time to check + this.checkDirectionType(); + } + const sub = this.state.subscribe(v => { + this.animateButtons(v.event); + this.events.next({ + display: v.display, + event: v.event, + direction: v.direction + }); + }); + this.subs.push(sub); + } + // if @Input values changes, we need check the direction type + ngOnChanges(changes) { + if (changes.direction && !changes.direction.firstChange) { + this.state.next({ + ...this.state.getValue(), + event: 'directionChanged', + direction: changes.direction.currentValue + }); + // if changes happens + this.checkDirectionType(); + } + if (changes.open && changes.open.currentValue) { + const sub = this.open.subscribe(v => { + if (v !== this.state.getValue().display) { + this.state.next({ + ...this.state.getValue(), + event: v ? 'open' : 'close', + display: v + }); + // make angular happy + this.cd.markForCheck(); + } + }); + this.subs.push(sub); + } + if (changes.spaceBetweenButtons && changes.spaceBetweenButtons.currentValue) { + this.state.next({ + ...this.state.getValue(), + event: 'spaceBetweenButtonsChanged', + spaceBetweenButtons: changes.spaceBetweenButtons.currentValue + }); + } + } + ngOnDestroy() { + this.subs.forEach(v => { + v.unsubscribe(); + }); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ElementRef + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectorRef + }]; + static propDecorators = { + icon: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + iconOpen: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + direction: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + spaceBetweenButtons: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + open: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + color: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + disabled: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }], + events: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output + }], + opened: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output + }], + buttons: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ContentChildren, + args: [_ngx_fab_item_button_component__WEBPACK_IMPORTED_MODULE_1__.NgxFabItemButtonComponent] + }] + }; +}; +NgxFabButtonComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectionStrategy.OnPush, + selector: 'ngx-fab-button', + template: ` + + `, + styles: [(_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgOmhvc3QgewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAuZmFiLW1lbnUgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHdpZHRoOjQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogOTsKICB9CiAgLmZhYi10b2dnbGUgewogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgY29sb3I6IHdoaXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogYWxsIGVhc2Utb3V0IDIwMG1zOwogICAgei1pbmRleDogMjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4yNik7CiAgfQogIC5mYWItbWVudSAuZmFiLXRvZ2dsZTpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAgLmZhYi1tZW51IDo6bmctZGVlcCAuaXRlbSB7CiAgICAgb3BhY2l0eTogMDsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLml0ZW0gewogICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgOjpuZy1kZWVwIC5jb250ZW50LXdyYXBwZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLmNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgLmZhYi10b2dnbGUgewogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAg_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_button_component_ts__WEBPACK_IMPORTED_MODULE_0___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_4__.ElementRef, _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectorRef])], NgxFabButtonComponent); + + +/***/ }), + +/***/ 77202: +/*!*************************************************************************!*\ + !*** ./src/app/gui-helpers/fab-button/ngx-fab-item-button.component.ts ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxFabItemButtonComponent: () => (/* binding */ NgxFabItemButtonComponent) +/* harmony export */ }); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgLml0ZW0gewogICAgLyogd2lkdGg6NDBweDsgKi8KICAgIGhlaWdodDogMzZweDsKICAgIGxlZnQ6IDNweDsKICAgIC8qIGxlZnQ6IC0zcHg7ICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCBvcGFjaXR5IGVhc2Utb3V0IDIwMG1zOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxODBtczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvcDo1cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB6LWluZGV4OiA5OTk5OwogIH0KICAuaXRlbS5kaXNhYmxlZCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLml0ZW0uZGlzYWJsZWQgLmZhYi1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICB9CiAgLmNvbnRlbnQgewogICAgei1pbmRleDogOTk5OTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgbGluZS1oZWlnaHQ6IDI1cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICAvKiB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyAqLwogICAgcGFkZGluZzogNXB4IDIwcHggM3B4IDIwcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMThweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgLyogbWFyZ2luLXRvcDogNHB4OyAqLwogICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMjYpOwogICAgd2hpdGUtc3BhY2U6bm93cmFwOwogIH0KICAuZmFiLWl0ZW0gewogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtLWV4IHsKICAgIHRvcDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtIGltZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgfQogIA_3D_3D_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/app/gui-helpers/fab-button/ngx-fab-item-button.component.ts.css?ngResource!=!./node_modules/@ngtools/webpack/src/loaders/inline-resource.js?data=CiAgLml0ZW0gewogICAgLyogd2lkdGg6NDBweDsgKi8KICAgIGhlaWdodDogMzZweDsKICAgIGxlZnQ6IDNweDsKICAgIC8qIGxlZnQ6IC0zcHg7ICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCBvcGFjaXR5IGVhc2Utb3V0IDIwMG1zOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxODBtczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvcDo1cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB6LWluZGV4OiA5OTk5OwogIH0KICAuaXRlbS5kaXNhYmxlZCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLml0ZW0uZGlzYWJsZWQgLmZhYi1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICB9CiAgLmNvbnRlbnQgewogICAgei1pbmRleDogOTk5OTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgbGluZS1oZWlnaHQ6IDI1cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICAvKiB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyAqLwogICAgcGFkZGluZzogNXB4IDIwcHggM3B4IDIwcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMThweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgLyogbWFyZ2luLXRvcDogNHB4OyAqLwogICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMjYpOwogICAgd2hpdGUtc3BhY2U6bm93cmFwOwogIH0KICAuZmFiLWl0ZW0gewogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtLWV4IHsKICAgIHRvcDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtIGltZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgfQogIA%3D%3D!./src/app/gui-helpers/fab-button/ngx-fab-item-button.component.ts */ 45710); +/* harmony import */ var _mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgLml0ZW0gewogICAgLyogd2lkdGg6NDBweDsgKi8KICAgIGhlaWdodDogMzZweDsKICAgIGxlZnQ6IDNweDsKICAgIC8qIGxlZnQ6IC0zcHg7ICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCBvcGFjaXR5IGVhc2Utb3V0IDIwMG1zOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxODBtczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvcDo1cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB6LWluZGV4OiA5OTk5OwogIH0KICAuaXRlbS5kaXNhYmxlZCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLml0ZW0uZGlzYWJsZWQgLmZhYi1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICB9CiAgLmNvbnRlbnQgewogICAgei1pbmRleDogOTk5OTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgbGluZS1oZWlnaHQ6IDI1cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICAvKiB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyAqLwogICAgcGFkZGluZzogNXB4IDIwcHggM3B4IDIwcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMThweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgLyogbWFyZ2luLXRvcDogNHB4OyAqLwogICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMjYpOwogICAgd2hpdGUtc3BhY2U6bm93cmFwOwogIH0KICAuZmFiLWl0ZW0gewogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtLWV4IHsKICAgIHRvcDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtIGltZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgfQogIA_3D_3D_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgLml0ZW0gewogICAgLyogd2lkdGg6NDBweDsgKi8KICAgIGhlaWdodDogMzZweDsKICAgIGxlZnQ6IDNweDsKICAgIC8qIGxlZnQ6IC0zcHg7ICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCBvcGFjaXR5IGVhc2Utb3V0IDIwMG1zOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxODBtczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvcDo1cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB6LWluZGV4OiA5OTk5OwogIH0KICAuaXRlbS5kaXNhYmxlZCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLml0ZW0uZGlzYWJsZWQgLmZhYi1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICB9CiAgLmNvbnRlbnQgewogICAgei1pbmRleDogOTk5OTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgbGluZS1oZWlnaHQ6IDI1cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICAvKiB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyAqLwogICAgcGFkZGluZzogNXB4IDIwcHggM3B4IDIwcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMThweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgLyogbWFyZ2luLXRvcDogNHB4OyAqLwogICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMjYpOwogICAgd2hpdGUtc3BhY2U6bm93cmFwOwogIH0KICAuZmFiLWl0ZW0gewogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtLWV4IHsKICAgIHRvcDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtIGltZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgfQogIA_3D_3D_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +let NgxFabItemButtonComponent = class NgxFabItemButtonComponent { + icon; + svgicon; + iconex; + svgiconex; + content; + color = 'white'; + clicked = new _angular_core__WEBPACK_IMPORTED_MODULE_1__.EventEmitter(); + exclicked = new _angular_core__WEBPACK_IMPORTED_MODULE_1__.EventEmitter(); + disabled = false; + elementref; + contentref; + emitClickEvent($event) { + if (this.disabled) { + return this.disabled; + } + this.clicked.emit($event); + } + emitClickExEvent($event) { + if (this.disabled) { + return this.disabled; + } + this.exclicked.emit($event); + } + stopPropagation($event) { + $event.stopPropagation(); + } + static propDecorators = { + icon: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + svgicon: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + iconex: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + svgiconex: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + content: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + color: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + clicked: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Output + }], + exclicked: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Output + }], + disabled: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.Input + }], + elementref: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ViewChild, + args: ['elementref', { + static: true + }] + }], + contentref: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ViewChild, + args: ['contentref', { + static: true + }] + }] + }; +}; +NgxFabItemButtonComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Component)({ + selector: 'ngx-fab-item-button', + template: ` +
    + + + {{ icon }} + +
    +
    {{content}} + + {{ iconex }} + +
    +
    +
    + `, + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ChangeDetectionStrategy.OnPush, + styles: [(_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts_css_ngResource_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_node_modules_ngtools_webpack_src_loaders_inline_resource_js_data_CiAgLml0ZW0gewogICAgLyogd2lkdGg6NDBweDsgKi8KICAgIGhlaWdodDogMzZweDsKICAgIGxlZnQ6IDNweDsKICAgIC8qIGxlZnQ6IC0zcHg7ICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCBvcGFjaXR5IGVhc2Utb3V0IDIwMG1zOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxODBtczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvcDo1cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB6LWluZGV4OiA5OTk5OwogIH0KICAuaXRlbS5kaXNhYmxlZCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLml0ZW0uZGlzYWJsZWQgLmZhYi1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICB9CiAgLmNvbnRlbnQgewogICAgei1pbmRleDogOTk5OTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgbGluZS1oZWlnaHQ6IDI1cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICAvKiB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyAqLwogICAgcGFkZGluZzogNXB4IDIwcHggM3B4IDIwcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMThweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgLyogbWFyZ2luLXRvcDogNHB4OyAqLwogICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMjYpOwogICAgd2hpdGUtc3BhY2U6bm93cmFwOwogIH0KICAuZmFiLWl0ZW0gewogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtLWV4IHsKICAgIHRvcDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtIGltZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgfQogIA_3D_3D_mnt_data_Users_Matthew_Documents_MR_Electrical_Automation_Fuxa_SCADA_Dev_FUXA_client_src_app_gui_helpers_fab_button_ngx_fab_item_button_component_ts__WEBPACK_IMPORTED_MODULE_0___default())] +})], NgxFabItemButtonComponent); + + +/***/ }), + +/***/ 81151: +/*!******************************************************************************!*\ + !*** ./src/app/gui-helpers/mat-select-search/mat-select-search.component.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MatSelectSearchComponent: () => (/* binding */ MatSelectSearchComponent) +/* harmony export */ }); +/* harmony import */ var _mat_select_search_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mat-select-search.component.html?ngResource */ 25745); +/* harmony import */ var _mat_select_search_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mat-select-search.component.scss?ngResource */ 83251); +/* harmony import */ var _mat_select_search_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_mat_select_search_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-select */ 92198); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs/operators */ 81527); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var MatSelectSearchComponent_1; + + + + + + + + +/** + * Component providing an input field for searching MatSelect options. + * + * Example usage: + * + * interface Bank { + * id: string; + * name: string; + * } + * + * @Component({ + * selector: 'my-app-data-selection', + * template: ` + * + * + * + * + * {{bank.name}} + * + * + * + * ` + * }) + * export class DataSelectionComponent implements OnInit, OnDestroy { + * + * // control for the selected bank + * public bankCtrl: FormControl = new FormControl(); + * // control for the MatSelect filter keyword + * public bankFilterCtrl: FormControl = new FormControl(); + * + * // list of banks + * private banks: Bank[] = [{name: 'Bank A', id: 'A'}, {name: 'Bank B', id: 'B'}, {name: 'Bank C', id: 'C'}]; + * // list of banks filtered by search keyword + * public filteredBanks: ReplaySubject = new ReplaySubject(1); + * + * // Subject that emits when the component has been destroyed. + * private _onDestroy = new Subject(); + * + * + * ngOnInit() { + * // load the initial bank list + * this.filteredBanks.next(this.banks.slice()); + * // listen for search field value changes + * this.bankFilterCtrl.valueChanges + * .pipe(takeUntil(this._onDestroy)) + * .subscribe(() => { + * this.filterBanks(); + * }); + * } + * + * ngOnDestroy() { + * this._onDestroy.next(null); + * this._onDestroy.complete(); + * } + * + * private filterBanks() { + * if (!this.banks) { + * return; + * } + * + * // get the search keyword + * let search = this.bankFilterCtrl.value; + * if (!search) { + * this.filteredBanks.next(this.banks.slice()); + * return; + * } else { + * search = search.toLowerCase(); + * } + * + * // filter the banks + * this.filteredBanks.next( + * this.banks.filter(bank => bank.name.toLowerCase().indexOf(search) > -1) + * ); + * } + * } + */ +let MatSelectSearchComponent = MatSelectSearchComponent_1 = class MatSelectSearchComponent { + matSelect; + translateService; + changeDetectorRef; + placeholderLabel = ''; + noEntriesFoundLabel = ''; + searchSelectInput; + /** Current search value */ + get value() { + return this._value; + } + _value; + onChange = _ => {}; + onTouched = _ => {}; + /** Reference to the MatSelect options */ + _options; + /** Previously selected values when using */ + previousSelectedValues; + /** Whether the backdrop class has been set */ + overlayClassSet = false; + /** Event that emits when the current value changes */ + change = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + /** Subject that emits when the component has been destroyed. */ + _onDestroy = new rxjs__WEBPACK_IMPORTED_MODULE_3__.Subject(); + constructor(matSelect, translateService, changeDetectorRef) { + this.matSelect = matSelect; + this.translateService = translateService; + this.changeDetectorRef = changeDetectorRef; + } + ngOnInit() { + // set custom panel class + const panelClass = 'mat-select-search-panel'; + if (this.matSelect.panelClass) { + if (Array.isArray(this.matSelect.panelClass)) { + this.matSelect.panelClass.push(panelClass); + } else if (typeof this.matSelect.panelClass === 'string') { + this.matSelect.panelClass = [this.matSelect.panelClass, panelClass]; + } else if (typeof this.matSelect.panelClass === 'object') { + this.matSelect.panelClass[panelClass] = true; + } + } else { + this.matSelect.panelClass = panelClass; + } + // when the select dropdown panel is opened or closed + this.matSelect.openedChange.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this._onDestroy)).subscribe(opened => { + if (opened) { + // focus the search field when opening + this._focus(); + } else { + // clear it when closing + this._reset(); + } + }); + // set the first item active after the options changed + this.matSelect.openedChange.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.take)(1)).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this._onDestroy)).subscribe(() => { + this._options = this.matSelect.options; + this._options.changes.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this._onDestroy)).subscribe(() => { + const keyManager = this.matSelect._keyManager; + if (keyManager && this.matSelect.panelOpen) { + // avoid "expression has been changed" error + setTimeout(() => { + keyManager.setFirstItemActive(); + }); + } + }); + }); + // detect changes when the input changes + this.change.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this._onDestroy)).subscribe(() => { + this.changeDetectorRef.detectChanges(); + }); + this.initMultipleHandling(); + } + ngOnDestroy() { + this._onDestroy.next(null); + this._onDestroy.complete(); + } + ngAfterViewInit() { + this.setOverlayClass(); + this.translateService.get('general.search').subscribe(txt => { + this.placeholderLabel = txt; + }); + this.translateService.get('general.search-notfound').subscribe(txt => { + this.noEntriesFoundLabel = txt; + }); + } + /** + * Handles the key down event with MatSelect. + * Allows e.g. selecting with enter key, navigation with arrow keys, etc. + * @param {KeyboardEvent} event + * @private + */ + _handleKeydown(event) { + if (event.keyCode === 32) { + // do not propagate spaces to MatSelect, as this would select the currently active option + event.stopPropagation(); + } + } + writeValue(value) { + const valueChanged = value !== this._value; + if (valueChanged) { + this._value = value; + this.change.emit(value); + } + } + onInputChange(value) { + const valueChanged = value !== this._value; + if (valueChanged) { + this._value = value; + this.onChange(value); + this.change.emit(value); + } + } + onBlur(value) { + this.writeValue(value); + this.onTouched(); + } + registerOnChange(fn) { + this.onChange = fn; + } + registerOnTouched(fn) { + this.onTouched = fn; + } + /** + * Focuses the search input field + * @private + */ + _focus() { + if (!this.searchSelectInput) { + return; + } + // save and restore scrollTop of panel, since it will be reset by focus() + // note: this is hacky + const panel = this.matSelect.panel.nativeElement; + const scrollTop = panel.scrollTop; + // focus + this.searchSelectInput.nativeElement.focus(); + panel.scrollTop = scrollTop; + } + /** + * Resets the current search value + * @param {boolean} focus whether to focus after resetting + * @private + */ + _reset(focus) { + if (!this.searchSelectInput) { + return; + } + this.searchSelectInput.nativeElement.value = ''; + this.onInputChange(''); + if (focus) { + this._focus(); + } + } + /** + * Sets the overlay class to correct offsetY + * so that the selected option is at the position of the select box when opening + */ + setOverlayClass() { + if (this.overlayClassSet) { + return; + } + const overlayClass = 'cdk-overlay-pane-select-search'; + this.matSelect.openedChange.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this._onDestroy)).subscribe(opened => { + if (opened) { + // note: this is hacky, but currently there is no better way to do this + let element = this.searchSelectInput.nativeElement; + let overlayElement; + while (element = element.parentElement) { + if (element.classList.contains('cdk-overlay-pane')) { + overlayElement = element; + break; + } + } + if (overlayElement) { + overlayElement.classList.add(overlayClass); + } + } + }); + this.overlayClassSet = true; + } + /** + * Initializes handling + * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering. + */ + initMultipleHandling() { + // if + // store previously selected values and restore them when they are deselected + // because the option is not available while we are currently filtering + this.matSelect.valueChange.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this._onDestroy)).subscribe(values => { + if (this.matSelect.multiple) { + let restoreSelectedValues = false; + if (this._value && this._value.length && this.previousSelectedValues && Array.isArray(this.previousSelectedValues)) { + if (!values || !Array.isArray(values)) { + values = []; + } + const optionValues = this.matSelect.options.map(option => option.value); + this.previousSelectedValues.forEach(previousValue => { + if (values.indexOf(previousValue) === -1 && optionValues.indexOf(previousValue) === -1) { + // if a value that was selected before is deselected and not found in the options, it was deselected + // due to the filtering, so we restore it. + values.push(previousValue); + restoreSelectedValues = true; + } + }); + } + if (restoreSelectedValues) { + this.matSelect._onChange(values); + } + this.previousSelectedValues = values; + } + }); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_6__.MatLegacySelect, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, + args: [_angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_6__.MatLegacySelect] + }] + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef + }]; + static propDecorators = { + placeholderLabel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + noEntriesFoundLabel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + searchSelectInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['searchSelectInput', { + read: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef, + static: true + }] + }] + }; +}; +MatSelectSearchComponent = MatSelectSearchComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'mat-select-search', + template: _mat_select_search_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + providers: [{ + provide: _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NG_VALUE_ACCESSOR, + useExisting: (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(() => MatSelectSearchComponent_1), + multi: true + }], + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectionStrategy.OnPush, + styles: [(_mat_select_search_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_6__.MatLegacySelect, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslateService, _angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef])], MatSelectSearchComponent); + + +/***/ }), + +/***/ 27083: +/*!***************************************************************************!*\ + !*** ./src/app/gui-helpers/mat-select-search/mat-select-search.module.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MatSelectSearchModule: () => (/* binding */ MatSelectSearchModule) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _mat_select_search_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mat-select-search.component */ 81151); +/* harmony import */ var _angular_material_legacy_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-button */ 78654); +/* harmony import */ var _angular_material_legacy_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-input */ 60166); +/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/icon */ 86515); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ 26575); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +let MatSelectSearchModule = class MatSelectSearchModule {}; +MatSelectSearchModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.NgModule)({ + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__.CommonModule, _angular_material_legacy_button__WEBPACK_IMPORTED_MODULE_3__.MatLegacyButtonModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_4__.MatIconModule, _angular_material_legacy_input__WEBPACK_IMPORTED_MODULE_5__.MatLegacyInputModule], + declarations: [_mat_select_search_component__WEBPACK_IMPORTED_MODULE_0__.MatSelectSearchComponent], + exports: [_angular_material_legacy_button__WEBPACK_IMPORTED_MODULE_3__.MatLegacyButtonModule, _angular_material_legacy_input__WEBPACK_IMPORTED_MODULE_5__.MatLegacyInputModule, _mat_select_search_component__WEBPACK_IMPORTED_MODULE_0__.MatSelectSearchComponent] +})], MatSelectSearchModule); + + +/***/ }), + +/***/ 6898: +/*!*******************************************************!*\ + !*** ./src/app/gui-helpers/ngx-gauge/gaugeOptions.ts ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GaugeOptions: () => (/* binding */ GaugeOptions), +/* harmony export */ GaugeType: () => (/* binding */ GaugeType) +/* harmony export */ }); +var GaugeType; +(function (GaugeType) { + GaugeType[GaugeType["Gauge"] = 0] = "Gauge"; + GaugeType[GaugeType["Donut"] = 1] = "Donut"; + GaugeType[GaugeType["Zones"] = 2] = "Zones"; +})(GaugeType || (GaugeType = {})); +class GaugeOptions { + minValue = 0; + maxValue = 3000; + animationSpeed = 40; + colorStart = '#6fadcf'; + colorStop = '#6fadcf'; + gradientType = ''; + strokeColor = '#e0e0e0'; + pointer = { + length: 0.5, + strokeWidth: 0.035, + iconScale: 1.0, + color: '#000000' + }; + angle = -0.2; + lineWidth = 0.2; + radiusScale = 0.9; + fontSize = 18; + fontFamily; + textFilePosition = 30; + limitMax = false; + limitMin = false; + highDpiSupport = true; + backgroundColor = 'rgba(255, 255, 255, 0)'; + shadowColor = '#d5d5d5'; + fractionDigits = 0; + ticksEnabled = true; + renderTicks = { + divisions: 5, + divWidth: 1.1, + divLength: 0.7, + divColor: '#333333', + subDivisions: 3, + subLength: 0.5, + subWidth: 0.6, + subColor: '#666666' + }; + staticLabelsText = '200;500;2100;2800'; + staticFontSize = 10; + staticFontColor = '#000000'; + staticLabels = { + font: '10px sans-serif', + labels: [200, 500, 2100, 2800], + fractionDigits: 0, + color: '#000000' + }; + staticZones = [{ + strokeStyle: '#F03E3E', + min: 0, + max: 200 + }, { + strokeStyle: '#FFDD00', + min: 200, + max: 500 + }, { + strokeStyle: '#3F4964', + min: 500, + max: 2100 + }, { + strokeStyle: '#FFDD00', + min: 2100, + max: 2800 + }, { + strokeStyle: '#F03E3E', + min: 2800, + max: 3000 + }]; +} + +/***/ }), + +/***/ 5769: +/*!**************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-gauge/ngx-gauge.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxGaugeComponent: () => (/* binding */ NgxGaugeComponent) +/* harmony export */ }); +/* harmony import */ var _ngx_gauge_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-gauge.component.html?ngResource */ 58651); +/* harmony import */ var _ngx_gauge_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-gauge.component.css?ngResource */ 65413); +/* harmony import */ var _ngx_gauge_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ngx_gauge_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gaugeOptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./gaugeOptions */ 6898); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 13379); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 81527); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let NgxGaugeComponent = class NgxGaugeComponent { + id; + options; + value; + panel; + canvas; + gaugetext; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.Subject(); + gauge; + type = _gaugeOptions__WEBPACK_IMPORTED_MODULE_2__.GaugeType.Gauge; + defOptions = new _gaugeOptions__WEBPACK_IMPORTED_MODULE_2__.GaugeOptions(); + initialized = false; + constructor() {} + ngOnInit() { + this.options = Object.assign(this.defOptions, this.options); + } + ngAfterViewInit() { + (0,rxjs__WEBPACK_IMPORTED_MODULE_5__.interval)(100).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.take)(10), (0,rxjs__WEBPACK_IMPORTED_MODULE_7__.takeUntil)(this.destroy$)).subscribe(() => { + this.onResize(null); + this.setOptions(this.options); + }); + } + ngOnDestroy() { + try { + this.destroy$.next(null); + this.destroy$.unsubscribe(); + } catch (e) { + console.error(e); + } + } + ngOnChanges(changes) { + if (this.gauge) { + if (changes) { + if (changes.value) { + this.setValue(changes.value.currentValue); + } + } + } + } + onResize(event) { + let canvas = this.canvas.nativeElement; + let w = canvas.parentNode.clientWidth; + let h = canvas.parentNode.clientHeight; + if (w < h) { + h = w; + } + this.canvas.nativeElement.height = h; + this.canvas.nativeElement.width = w; + this.reini(); + } + resize(height, width) { + if (height && width) { + this.canvas.nativeElement.height = height; + this.canvas.nativeElement.width = width; + this.reini(); + } else { + this.onResize(null); + } + } + reini() { + if (this.gauge) { + this.render(); + } + if (!this.initialized) { + this.init(this.type); + } + } + render() { + this.gauge.setOptions(this.options); + this.gauge.ctx.clearRect(0, 0, this.gauge.ctx.canvas.width, this.gauge.ctx.canvas.height); + this.gauge.render(); + } + setValue(val) { + let value = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.toFloatOrNumber(val); + value = Math.max(value, Number(this.options.minValue)); + value = Math.min(value, Number(this.options.maxValue)); + this.gauge.set(value); + } + setOptions(options) { + this.options = options; + // if (options.backgroundColor) { + // this.panel.nativeElement.style.backgroundColor = options.backgroundColor; + // } + this.gauge.animationSpeed = options.animationSpeed; + this.gauge.minValue = options.minValue; + this.gauge.maxValue = options.maxValue; + this.gaugetext.nativeElement.style.fontSize = options.fontSize + 'px'; + if (options.fontFamily) { + this.gaugetext.nativeElement.style.fontFamily = options.fontFamily; + } + if (options.pointer && options.pointer.color) { + this.gaugetext.nativeElement.style.color = options.pointer.color; + } + this.gaugetext.nativeElement.style.top = options.textFilePosition + '%'; + this.render(); + } + getOptions() { + return this.options; + } + init(type) { + this.type = type; + if (type === _gaugeOptions__WEBPACK_IMPORTED_MODULE_2__.GaugeType.Gauge) { + this.gauge = new Gauge(this.canvas.nativeElement); + this.gauge.setTextField(this.gaugetext.nativeElement); + } else if (type === _gaugeOptions__WEBPACK_IMPORTED_MODULE_2__.GaugeType.Zones) { + this.gauge = new Gauge(this.canvas.nativeElement); + this.gauge.setTextField(this.gaugetext.nativeElement); + } else if (type === _gaugeOptions__WEBPACK_IMPORTED_MODULE_2__.GaugeType.Donut) { + this.gauge = new Donut(this.canvas.nativeElement); + this.gauge.setTextField(this.gaugetext.nativeElement); + } + const value = Number(this.options.minValue) + 1; + this.setOptions(this.options); + this.setValue(value); + this.initialized = true; + } + static ctorParameters = () => []; + static propDecorators = { + id: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + options: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + value: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.Input + }], + panel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['panel', { + static: false + }] + }], + canvas: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['gauge', { + static: false + }] + }], + gaugetext: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['gaugetext', { + static: false + }] + }], + onResize: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.HostListener, + args: ['window:resize', ['$event']] + }] + }; +}; +NgxGaugeComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'ngx-gauge', + template: _ngx_gauge_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_ngx_gauge_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], NgxGaugeComponent); + + +/***/ }), + +/***/ 65554: +/*!************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-nouislider/ngx-nouislider.component.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxNouisliderComponent: () => (/* binding */ NgxNouisliderComponent), +/* harmony export */ NgxNouisliderOptions: () => (/* binding */ NgxNouisliderOptions) +/* harmony export */ }); +/* harmony import */ var _ngx_nouislider_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-nouislider.component.html?ngResource */ 2081); +/* harmony import */ var _ngx_nouislider_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-nouislider.component.css?ngResource */ 89046); +/* harmony import */ var _ngx_nouislider_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ngx_nouislider_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +class NgxNouisliderOptions { + orientation = 'vertical'; //'horizontal'; + direction = 'ltr'; + fontFamily = 'Sans-serif'; + shape = { + baseColor: '#cdcdcd', + connectColor: '#262c3b', + handleColor: '#3f4964' + }; + marker = { + color: '#222222', + subWidth: 5, + subHeight: 1, + fontSize: 18, + divHeight: 2, + divWidth: 12 + }; + range = { + min: 0, + max: 100 + }; + step = 1; + pips = { + mode: 'values', + values: [0, 50, 100], + density: 4 + }; + tooltip = { + type: 'none', + decimals: 0, + background: '#FFF', + color: '#000', + fontSize: 12 + }; +} +let NgxNouisliderComponent = class NgxNouisliderComponent { + id; + panel; + slider; + options; + size = { + w: 0, + h: 0 + }; + padding = 40; + defOptions = new NgxNouisliderOptions(); + uiSlider; + onUpdate; + uiWorking = false; + uiWorkingTimeout; + constructor() {} + ngOnInit() { + this.options = Object.assign(this.defOptions, this.options); + } + ngAfterViewInit() { + setTimeout(() => { + this.init(); + }, 200); + } + resize(height, width) { + this.size.h = height - 2 * this.padding; + this.size.w = width - 2 * this.padding; + this.init(); + } + ngOnDestroy() { + try { + this.slider.nativeElement.remove(); + this.panel.nativeElement.remove(); + if (this.uiWorkingTimeout) { + clearTimeout(this.uiWorkingTimeout); + } + if (this.uiSlider) { + this.uiSlider.off(); + this.uiSlider.destroy(); + delete this.uiSlider; + delete this.onUpdate; + } + } catch (e) {} + } + setOptions(options) { + let toInit = false; + if (this.options.orientation !== options.orientation || JSON.stringify(this.options.range) !== JSON.stringify(options.range) || JSON.stringify(this.options.pips) !== JSON.stringify(options.pips) || JSON.stringify(this.options.marker) !== JSON.stringify(options.marker) || JSON.stringify(this.options.tooltip) !== JSON.stringify(options.tooltip)) { + toInit = true; + } + if (options.fontFamily) { + this.panel.nativeElement.style.fontFamily = options.fontFamily; + } + this.options = options; + if (toInit) { + this.init(); + return true; + } + return false; + } + getOptions() { + return this.options; + } + init() { + if (this.options.orientation === 'vertical') { + this.slider.nativeElement.style.height = this.size.h + 'px'; + this.slider.nativeElement.style.width = null; + } else { + this.slider.nativeElement.style.width = this.size.w + 'px'; + this.slider.nativeElement.style.height = null; + } + let tooltip = [false]; + if (this.options.tooltip.type === 'hide' || this.options.tooltip.type === 'show') { + tooltip = [wNumb({ + decimals: this.options.tooltip.decimals + })]; + } + if (this.uiSlider) { + this.uiSlider.off(); + this.uiSlider.destroy(); + } + this.uiSlider = noUiSlider.create(this.slider.nativeElement, { + start: [this.options.range.min + Math.abs(this.options.range.max - this.options.range.min) / 2], + connect: [true, false], + orientation: this.options.orientation, + direction: this.options.direction, + tooltips: tooltip, + range: this.options.range, + step: this.options.step, + pips: { + mode: 'values', + values: this.options.pips.values, + density: this.options.pips.density + }, + shape: this.options.shape, + marker: this.options.marker + }); + // tooltip + if (this.options.tooltip.type === 'show') { + var tp = this.uiSlider.target.getElementsByClassName('noUi-tooltip'); + if (tp && tp.length > 0) { + tp[0].style.display = 'block'; + } + } else if (this.options.tooltip.type === 'hide') { + var tp = this.uiSlider.target.getElementsByClassName('noUi-active noUi-tooltip'); + if (tp && tp.length > 0) { + tp[0].style.display = 'block'; + } + } + if (this.options.tooltip.type !== 'none') { + var tp = this.uiSlider.target.getElementsByClassName('noUi-tooltip'); + if (tp && tp.length > 0) { + tp[0].style.color = this.options.tooltip.color; + tp[0].style.background = this.options.tooltip.background; + tp[0].style.fontSize = this.options.tooltip.fontSize + 'px'; + } + } + let self = this; + this.uiSlider.on('slide', function (values, handle) { + if (self.onUpdate) { + self.resetWorkingTimeout(); + self.onUpdate(values[handle]); + } + }); + } + resetWorkingTimeout() { + this.uiWorking = true; + if (this.uiWorkingTimeout) { + clearTimeout(this.uiWorkingTimeout); + } + let self = this; + this.uiWorkingTimeout = setTimeout(function () { + self.uiWorking = false; + }, 1000); + } + setValue(value) { + if (!this.uiWorking) { + this.uiSlider.set(value); + } + } + bindUpdate(calback) { + this.onUpdate = calback; + } + currentValue() { + return parseFloat(this.uiSlider.get()); + } + static ctorParameters = () => []; + static propDecorators = { + id: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + panel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['panel', { + static: false + }] + }], + slider: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['slider', { + static: false + }] + }], + options: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }] + }; +}; +NgxNouisliderComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'ngx-nouislider', + template: _ngx_nouislider_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_ngx_nouislider_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], NgxNouisliderComponent); + + +/***/ }), + +/***/ 18782: +/*!**********************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-scheduler/ngx-scheduler.component.ts ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxSchedulerComponent: () => (/* binding */ NgxSchedulerComponent) +/* harmony export */ }); +/* harmony import */ var _ngx_scheduler_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-scheduler.component.html?ngResource */ 26435); +/* harmony import */ var _ngx_scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-scheduler.component.scss?ngResource */ 47982); +/* harmony import */ var _ngx_scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ngx_scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 28849); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let NgxSchedulerComponent = class NgxSchedulerComponent { + removable = true; + formGroup; + onRemove = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + selectedTabIndex = 0; + selectedTabFormControl = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(this.selectedTabIndex); + constructor() {} + ngOnInit() { + this.selectedTabIndex = this.formGroup.value.type; + } + onTabSelectionChange(event) { + this.formGroup.controls.type.setValue(event); + } + onRemoveScheduling() { + this.onRemove.emit(); + } + static ctorParameters = () => []; + static propDecorators = { + removable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + formGroup: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + onRemove: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }] + }; +}; +NgxSchedulerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-ngx-scheduler', + template: _ngx_scheduler_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_ngx_scheduler_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], NgxSchedulerComponent); + + +/***/ }), + +/***/ 34254: +/*!****************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-switch/ngx-switch.component.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxSwitchComponent: () => (/* binding */ NgxSwitchComponent), +/* harmony export */ SwitchOptions: () => (/* binding */ SwitchOptions) +/* harmony export */ }); +/* harmony import */ var _ngx_switch_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-switch.component.html?ngResource */ 87059); +/* harmony import */ var _ngx_switch_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-switch.component.css?ngResource */ 13913); +/* harmony import */ var _ngx_switch_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ngx_switch_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-selector */ + +let NgxSwitchComponent = class NgxSwitchComponent { + switcher; + slider; + toggler; + options = new SwitchOptions(); + checked = false; + onUpdate; + isReadonly = false; + disabled = false; + constructor() {} + ngAfterViewInit() { + this.onRefresh(); + } + onClick() { + if (this.isReadonly) { + return; + } + this.onRefresh(); + if (this.onUpdate) { + this.onUpdate(this.checked ? this.options.onValue.toString() : this.options.offValue.toString()); + } + } + onRefresh() { + this.checked = this.switcher.nativeElement.checked; + this.toggler.nativeElement.classList.toggle('active', this.checked); + if (this.switcher.nativeElement.checked) { + this.toggler.nativeElement.style.backgroundColor = this.options.onBackground; + this.slider.nativeElement.style.backgroundColor = this.options.onSliderColor; + this.slider.nativeElement.style.color = this.options.onTextColor; + this.slider.nativeElement.innerHTML = this.options.onText; + } else { + this.toggler.nativeElement.style.backgroundColor = this.options.offBackground; + this.slider.nativeElement.style.backgroundColor = this.options.offSliderColor; + this.slider.nativeElement.style.color = this.options.offTextColor; + this.slider.nativeElement.innerHTML = this.options.offText; + } + this.slider.nativeElement.style.lineHeight = this.options.height + 'px'; + this.switcher.nativeElement.disabled = this.disabled; + this.toggler.nativeElement.style.opacity = this.disabled ? '0.5' : '1'; + this.toggler.nativeElement.style.pointerEvents = this.disabled ? 'none' : 'auto'; + } + setOptions(options, force = false) { + if (force) { + this.options = options; + this.onRefresh(); + } else { + setTimeout(() => { + this.options = options; + this.onRefresh(); + }, 200); + } + return true; + } + setValue(value) { + this.switcher.nativeElement.checked = value ? true : false; + this.onRefresh(); + } + setDisabled(state) { + this.disabled = state; + this.onRefresh(); + } + bindUpdate(calback) { + this.onUpdate = calback; + } + static ctorParameters = () => []; + static propDecorators = { + switcher: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['switcher', { + static: false + }] + }], + slider: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['slider', { + static: false + }] + }], + toggler: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['toggler', { + static: false + }] + }] + }; +}; +NgxSwitchComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'ngx-switch', + template: _ngx_switch_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_ngx_switch_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], NgxSwitchComponent); + +class SwitchOptions { + offValue = 0; + onValue = 1; + offBackground = '#ccc'; + onBackground = '#ccc'; + offText = ''; + onText = ''; + offSliderColor = '#fff'; + onSliderColor = '#0CC868'; + offTextColor = '#000'; + onTextColor = '#fff'; + fontSize = 12; + fontFamily = ''; + radius = 0; + height; +} + +/***/ }), + +/***/ 75261: +/*!**************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-uplot/ngx-uplot.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NgxUplotComponent: () => (/* binding */ NgxUplotComponent) +/* harmony export */ }); +/* harmony import */ var _ngx_uplot_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ngx-uplot.component.html?ngResource */ 51344); +/* harmony import */ var _ngx_uplot_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ngx-uplot.component.css?ngResource */ 13969); +/* harmony import */ var _ngx_uplot_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ngx_uplot_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-selector */ + + +let NgxUplotComponent = class NgxUplotComponent { + id; + options; + graph; + onChartClick; + lineInterpolations = { + linear: 0, + stepAfter: 1, + stepBefore: 2, + spline: 3, + none: 4 + }; + rawData = false; + overlay; + uplot; + data; + get xSample() { + return this.rawData ? [2, 7] : [new Date().getTime() / 1000 - 1, new Date().getTime() / 1000]; + } + // start and sample x time + sampleData = [this.xSample, [35, 71]]; + getShortTimeFormat(min = true) { + if (this.options && this.options.timeFormat === 'hh_mm_ss_AA') { + if (min) { + return '{h}:{mm} {AA}'; + } + return '{h} {AA}'; + } + if (min) { + return '{HH}:{mm}'; + } + return '{HH}'; + } + xTimeFormat = { + hh_mm_ss: '{HH}:{mm}:{ss}', + hh_mm_ss_AA: '{h}:{mm}:{ss} {AA}' + }; + xDateFormat = {}; + checkDateFormat() { + this.xDateFormat = { + YYYY_MM_DD: { + legendDate: '{YYYY}/{MM}/{DD}', + values: [ + // tick incr default: year (3600 * 24 * 365), month(3600 * 24 * 28), day(3600 * 24), hour, min, sec, mode + [31536000, '{YYYY}', null, null, null, null, null, null, 1], [2419200, '{MMM}', '\n{YYYY}', null, null, null, null, null, 1], [86400, '{DD}/{MM}', '\n{YYYY}', null, null, null, null, null, 1], [3600, '' + this.getShortTimeFormat(false), '\n{YYYY}/{MM}/{DD}', null, '\n{DD}/{MM}', null, null, null, 1], [60, '' + this.getShortTimeFormat(), '\n{YYYY}/{MM}/{DD}', null, '\n{DD}/{MM}', null, null, null, 1], [1, '{mm}:{ss}', '\n{YYYY}/{MM}/{DD} ' + this.getShortTimeFormat(), null, '\n{DD}/{MM} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1], [0.001, ':{ss}.{fff}', '\n{YYYY}/{MM}/{DD} ' + this.getShortTimeFormat(), null, '\n{DD}/{MM} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1]] + }, + MM_DD_YYYY: { + legendDate: '{MM}/{DD}/{YYYY}', + values: [ + // tick incr default: year (3600 * 24 * 365), month(3600 * 24 * 28), day(3600 * 24), hour, min, sec, mode + [31536000, '{YYYY}', null, null, null, null, null, null, 1], [2419200, '{MMM}', '\n{YYYY}', null, null, null, null, null, 1], [86400, '{MM}/{DD}', '\n{YYYY}', null, null, null, null, null, 1], [3600, '' + this.getShortTimeFormat(false), '\n{MM}/{DD}/{YYYY}', null, '\n{MM}/{DD}', null, null, null, 1], [60, '' + this.getShortTimeFormat(), '\n{MM}/{DD}/{YYYY}', null, '\n{MM}/{DD}', null, null, null, 1], [1, '{mm}:{ss}', '\n{MM}/{DD}/{YYYY} ' + this.getShortTimeFormat(), null, '\n{MM}/{DD} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1], [0.001, ':{ss}.{fff}', '\n{MM}/{DD}/{YYYY} ' + this.getShortTimeFormat(), null, '\n{MM}/{DD} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1]] + }, + DD_MM_YYYY: { + legendDate: '{DD}/{MM}/{YYYY}', + values: [ + // tick incr default: year (3600 * 24 * 365), month(3600 * 24 * 28), day(3600 * 24), hour, min, sec, mode + [31536000, '{YYYY}', null, null, null, null, null, null, 1], [2419200, '{MMM}', '\n{YYYY}', null, null, null, null, null, 1], [86400, '{DD}/{MM}', '\n{YYYY}', null, null, null, null, null, 1], [3600, '' + this.getShortTimeFormat(false), '\n{DD}/{MM}/{YYYY}', null, '\n{DD}/{MM}', null, null, null, 1], [60, '' + this.getShortTimeFormat(), '\n{DD}/{MM}/{YYYY}', null, '\n{DD}/{MM}', null, null, null, 1], [1, '{mm}:{ss}', '\n{DD}/{MM}/{YYYY} ' + this.getShortTimeFormat(), null, '\n{DD}/{MM} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1], [0.001, ':{ss}.{fff}', '\n{DD}/{MM}/{YYYY} ' + this.getShortTimeFormat(), null, '\n{DD}/{MM} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1]] + }, + MM_DD_YY: { + legendDate: '{MM}/{DD}/{YY}', + values: [ + // tick incr default: year (3600 * 24 * 365), month(3600 * 24 * 28), day(3600 * 24), hour, min, sec, mode + [31536000, '{YYYY}', null, null, null, null, null, null, 1], [2419200, '{MMM}', '\n{YYYY}', null, null, null, null, null, 1], [86400, '{MM}/{DD}', '\n{YYYY}', null, null, null, null, null, 1], [3600, '' + this.getShortTimeFormat(false), '\n{MM}/{DD}/{YY}', null, '\n{MM}/{DD}', null, null, null, 1], [60, '' + this.getShortTimeFormat(), '\n{MM}/{DD}/{YY}', null, '\n{MM}/{DD}', null, null, null, 1], [1, '{mm}:{ss}', '\n{MM}/{DD}/{YY} ' + this.getShortTimeFormat(), null, '\n{MM}/{DD} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1], [0.001, ':{ss}.{fff}', '\n{MM}/{DD}/{YY} ' + this.getShortTimeFormat(), null, '\n{MM}/{DD} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1]] + }, + DD_MM_YY: { + legendDate: '{DD}/{MM}/{YY}', + values: [ + // tick incr default: year (3600 * 24 * 365), month(3600 * 24 * 28), day(3600 * 24), hour, min, sec, mode + [31536000, '{YYYY}', null, null, null, null, null, null, 1], [2419200, '{MMM}', '\n{YYYY}', null, null, null, null, null, 1], [86400, '{DD}/{MM}', '\n{YYYY}', null, null, null, null, null, 1], [3600, '' + this.getShortTimeFormat(false), '\n{DD}/{MM}/{YY}', null, '\n{DD}/{MM}', null, null, null, 1], [60, '' + this.getShortTimeFormat(), '\n{DD}/{MM}/{YY}', null, '\n{DD}/{MM}', null, null, null, 1], [1, '{mm}:{ss}', '\n{DD}/{MM}/{YY} ' + this.getShortTimeFormat(), null, '\n{DD}/{MM} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1], [0.001, ':{ss}.{fff}', '\n{DD}/{MM}/{YY} ' + this.getShortTimeFormat(), null, '\n{DD}/{MM} ' + this.getShortTimeFormat(), null, '\n' + this.getShortTimeFormat(), null, 1]] + } + }; + } + fmtDate = uPlot.fmtDate('{DD}/{MM}/{YY} {HH}:{mm}:{ss}'); + sampleSerie = [{ + value: (self, rawValue) => this.fmtDate(new Date(rawValue * 1e3)) + }, { + // initial toggled state (optional) + show: true, + spanGaps: false, + // // in-legend display + label: 'Serie', + value: (self, rawValue) => rawValue?.toFixed(this.options.decimalsPrecision), + // // series style + stroke: 'red', + width: 1, + fill: 'rgba(255, 0, 0, 0.3)', + dash: [10, 5] + }]; + defOptions = { + title: 'Default Chart', + id: 'defchart', + class: 'my-chart', + width: 800, + height: 600, + legend: { + show: true, + width: 1 + }, + scales: { + x: { + time: true + } + }, + series: this.sampleSerie, + cursor: { + dataIdx: (self, seriesIdx, hoveredIdx, cursorXVal) => this._proximityIndex(self, seriesIdx, hoveredIdx, cursorXVal) + } + }; + languageLabels = { + time: 'Time', + serie: 'Serie', + title: 'Title' + }; + constructor() {} + ngOnInit() { + this.options = this.defOptions; + this.uplot = new uPlot(this.defOptions, this.sampleData, this.graph.nativeElement); + } + ngOnDestroy() { + try { + this.uplot.destroy(); + if (this.overlay.parentNode) { + this.overlay.parentNode.removeChild(this.overlay); + } + } catch (e) { + console.error(e); + } + } + resize(height, width) { + let chart = this.graph.nativeElement; + if (!height) { + height = chart.clientHeight; + } + if (!width) { + width = chart.clientWidth; + } + this.uplot.setSize({ + height: height, + width: width + }); + // this.uplot.redraw(false, true); + } + + init(options, rawData) { + this.data = [[]]; + this.rawData = rawData; + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNullOrUndefined(options?.rawData)) { + this.rawData = options.rawData; + } + if (options) { + this.options = options; + if (!options.id) { + this.data = this.sampleData; + this.options.series = this.sampleSerie; + } else { + // this.data = this.sampleData; + this.data = [this.xSample]; + } + } + let opt = this.options || this.defOptions; + opt.cursor = this.defOptions.cursor; + if (this.uplot) { + this.uplot.destroy(); + } + // set x axis format (date/time) + this.checkDateFormat(); + if (this.options.dateFormat && this.xDateFormat[this.options.dateFormat] && this.options.timeFormat && this.xTimeFormat[this.options.timeFormat]) { + this.fmtDate = uPlot.fmtDate(this.xDateFormat[this.options.dateFormat].legendDate + ' ' + this.xTimeFormat[this.options.timeFormat]); + if (this.rawData) { + this.options.axes[0].values = (self, rawValue) => rawValue; + } else { + this.options.axes[0].values = this.xDateFormat[this.options.dateFormat].values; + } + } + this.sampleSerie[1].label = this.languageLabels.serie; + if (this.options.series.length > 0) { + this.options.series[0].value = (self, rawValue) => this.rawData ? rawValue : this.fmtDate(new Date(rawValue * 1e3)); + this.options.series[0].label = this.languageLabels.time; + } + if (this.options.axes.length > 0) { + if (this.options.axes[0].label) { + this.options.series[0].label = this.options.axes[0].label; + } else { + this.options.axes[0].label = this.languageLabels.time; + } + } + if (!this.options.title) { + this.options.title = this.languageLabels.title; + } + this.options.scales = { + 1: { + range: [_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY1min) ? options.scaleY1min : null, _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY1max) ? options.scaleY1max : null] + }, + 2: { + range: [_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY2min) ? options.scaleY2min : null, _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY2max) ? options.scaleY2max : null] + }, + 3: { + range: [_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY3min) ? options.scaleY3min : null, _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY3max) ? options.scaleY3max : null] + }, + 4: { + range: [_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY4min) ? options.scaleY4min : null, _helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.isNumeric(options.scaleY4max) ? options.scaleY4max : null] + } + }; + // set plugins + opt.plugins = this.options.tooltip && this.options.tooltip.show ? [this.tooltipPlugin()] : []; + if (this.options.thouchZoom) { + opt.plugins.push(this.touchZoomPlugin(opt)); + } + this.uplot = new uPlot(opt, this.data, this.graph.nativeElement); + const over = this.uplot.root.querySelector('.u-over'); + if (over) { + over.addEventListener('click', e => { + if (this.onChartClick) { + const coords = this.getDataCoordsFromEvent(e); + if (coords) { + this.onChartClick(coords.x, coords.y); + } + } + }); + over.addEventListener('touchstart', e => { + if (this.onChartClick) { + const coords = this.getDataCoordsFromEvent(e); + if (coords) { + this.onChartClick(coords.x, coords.y); + } + } + }); + } + } + getDataCoordsFromEvent(e) { + const over = this.uplot?.root?.querySelector('.u-over'); + if (!over || !this.uplot) return null; + const rect = over.getBoundingClientRect(); + const clientX = e instanceof TouchEvent ? e.touches[0].clientX : e.clientX; + const clientY = e instanceof TouchEvent ? e.touches[0].clientY : e.clientY; + const left = clientX - rect.left; + const top = clientY - rect.top; + const x = this.uplot.posToVal(left, 'x'); + const yScaleKey = this.uplot.series[1]?.scale ?? 'y'; + const y = this.uplot.posToVal(top, yScaleKey); + return { + x, + y + }; + } + setOptions(options) { + this.options = options; + this.init(this.options, this.rawData); + } + addSerie(index, attribute) { + this.data.push([null, null]); + if (attribute.lineInterpolation === this.lineInterpolations.stepAfter) { + attribute.paths = uPlot.paths.stepped({ + align: 1 + }); + } else if (attribute.lineInterpolation === this.lineInterpolations.stepBefore) { + attribute.paths = uPlot.paths.stepped({ + align: -1 + }); + } else if (attribute.lineInterpolation === this.lineInterpolations.spline) { + attribute.paths = uPlot.paths.spline(); + } else if (attribute.lineInterpolation === this.lineInterpolations.none) { + attribute.points = { + show: true, + size: attribute.width ?? 5, + width: 1, + stroke: attribute.stroke, + fill: attribute.fill + }; + attribute.stroke = null; + attribute.fill = null; + } + this.uplot.addSeries(attribute, index); + this.uplot.setData(this.data); + } + setSample() { + let sample = [this.xSample]; + for (let i = 0; i < this.uplot.series.length; i++) { + sample.push([Math.floor(Math.random() * 20), Math.floor(Math.random() * 30)]); + } + this.setData(sample); + } + setData(data = [[]]) { + this.data = data; + this.uplot.setData(this.data); + } + addData(data = [[]]) { + for (var index = 0; index < data.length; index++) { + this.data[index] = this.data[index].concat(data[index]); + } + this.uplot.setData(this.data); + } + setXScala(min, max) { + this.uplot.setScale('x', { + min: min, + max: max + }); + } + addValue(index, x, y, size) { + let xpos = this.data[0].indexOf(x); + if (xpos < 0) { + this.data[0].push(x); + for (let i = 0; i < this.data.length; i++) { + if (i === index) { + this.data[i].push(y); + } else if (i) { + this.data[i].push(null); + } + } + } else { + this.data[index][xpos] = y; + } + // remove data out of size + let min = x - size; + while (this.data[0][0] < min) { + for (let i = 0; i < this.data.length; i++) { + this.data[i].shift(); + } + } + this.uplot.setData(this.data); + } + redraw(flag = false) { + this.uplot.redraw(flag); + } + checkAxisOptions() {} + tooltipPlugin(opts = null) { + let over, bound, bLeft, bTop; + function syncBounds() { + let bbox = over.getBoundingClientRect(); + bLeft = bbox.left; + bTop = bbox.top; + } + this.overlay = document.createElement('div'); + let overlay = this.overlay; + overlay.id = 'overlay'; + overlay.style.display = 'none'; + overlay.style.position = 'absolute'; + document.body.appendChild(overlay); + return { + hooks: { + init: u => { + over = u.root.querySelector('.u-over'); + bound = over; + // bound = document.body; + over.onmouseenter = () => { + overlay.style.display = 'block'; + }; + over.onmouseleave = () => { + overlay.style.display = 'none'; + }; + }, + setSize: u => { + syncBounds(); + }, + setCursor: u => { + this.paintLegendCuror(u, overlay, bLeft, bTop, bound); + }, + setSeries: u => { + this.paintLegendMarkers(u); + }, + setData: u => { + this.paintLegendMarkers(u); + } + } + }; + } + paintLegendCuror = (u, overlay, bLeft, bTop, bound) => { + const { + left, + top, + idx + } = u.cursor; + const x = u.data[0][idx]; + const anchor = { + left: left + bLeft, + top: top + bTop + }; + const time = this.fmtDate(new Date(x * 1e3)); + const xdiv = `
    ${u.series[0].label}: ${this.rawData ? x : time}
    `; + let series = ''; + for (let i = 1; i < u.series.length; i++) { + let value = ''; + try { + var ydx = this._proximityIndex(u, i, idx, x); + if (!isNaN(u.data[i][ydx])) { + value = u.data[i][ydx]; + } + } catch {} + var strokeColor = u.series[i]._stroke; + var fillColor = u.series[i]._fill; + if (u.series[i].lineInterpolation === this.lineInterpolations.none) { + strokeColor = u.series[i].points._stroke; + fillColor = u.series[i].points._fill; + } + series = series + `
    ${u.series[i].label}:
    ${value}
    `; + } + overlay.innerHTML = xdiv + series; // + `${x},${y} at ${Math.round(left)},${Math.round(top)}`; + placement(overlay, anchor, 'right', 'start', { + bound + }); + }; + paintLegendMarkers = u => { + const legend = u.root.querySelector('.u-legend'); + if (!legend) { + return; + } + const rows = legend.querySelectorAll('.u-series'); + for (let i = 1; i < u.series.length && i < rows.length; i++) { + if (u.series[i].lineInterpolation !== this.lineInterpolations?.none) { + continue; + } + if (!u.series[i].points) { + continue; + } + const row = rows[i]; + const swatch = row.firstElementChild; + if (!swatch) { + continue; + } + const markers = row.querySelectorAll('.u-marker'); + if (!markers || markers.length !== 1) { + continue; + } + const marker = markers[0]; + let strokeColor = u.series[i]._stroke; + let fillColor = u.series[i]._fill; + strokeColor = u.series[i].points._stroke ?? strokeColor; + fillColor = u.series[i].points._fill ?? fillColor; + if (fillColor) { + marker.style.background = String(fillColor); + } + if (strokeColor) { + marker.style.border = `2px solid ${strokeColor}`; + } + } + }; + getColorForValue(ranges, value) { + // Sort ranges by the min value (just in case) + const sortedRanges = ranges.sort((a, b) => a.min - b.min); + // Iterate through the sorted ranges to find the corresponding color for the value + for (let i = 0; i < sortedRanges.length; i++) { + const range = sortedRanges[i]; + // Check if the value falls within the range + if (value >= range.min && value <= range.max) { + return range.stroke; // Return the corresponding color + } + } + // If no range was found for the value, return a default color (base color) + return 'red'; // Or any other default color you prefer + } + + scaleGradient(u, scaleKey, ori, scaleStops, discrete = false) { + let scale = u.scales[scaleKey]; + // we want the stop below or at the scaleMax + // and the stop below or at the scaleMin, else the stop above scaleMin + let minStopIdx; + let maxStopIdx; + for (let i = 0; i < scaleStops.length; i++) { + let stopVal = scaleStops[i][0]; + if (stopVal <= scale.min || minStopIdx == null) { + minStopIdx = i; + } + maxStopIdx = i; + if (stopVal >= scale.max) { + break; + } + } + if (minStopIdx == maxStopIdx) { + return scaleStops[minStopIdx][1]; + } + let minStopVal = scaleStops[minStopIdx][0]; + let maxStopVal = scaleStops[maxStopIdx][0]; + if (minStopVal == -Infinity) { + minStopVal = scale.min; + } + if (maxStopVal == Infinity) { + maxStopVal = scale.max; + } + let minStopPos = u.valToPos(minStopVal, scaleKey, true); + let maxStopPos = u.valToPos(maxStopVal, scaleKey, true); + let range = minStopPos - maxStopPos; + let x0, y0, x1, y1; + if (ori == 1) { + x0 = x1 = 0; + y0 = minStopPos; + y1 = maxStopPos; + } else { + y0 = y1 = 0; + x0 = minStopPos; + x1 = maxStopPos; + } + if (Number.isNaN(y0) || Number.isNaN(y1)) { + return null; + } + let grd = this.uplot.ctx.createLinearGradient(x0, y0, x1, y1); + let prevColor; + for (let i = minStopIdx; i <= maxStopIdx; i++) { + let s = scaleStops[i]; + let stopPos = i == minStopIdx ? minStopPos : i == maxStopIdx ? maxStopPos : u.valToPos(s[0], scaleKey, true); + let pct = (minStopPos - stopPos) / range; + if (discrete && i > minStopIdx) { + grd.addColorStop(pct, prevColor); + } + grd.addColorStop(pct, prevColor = s[1]); + } + return grd; + } + _proximityIndex(self, seriesIdx, hoveredIdx, cursorXVal) { + let hoverProximityPx = 30; + let seriesData = self.data[seriesIdx]; + if (seriesData[hoveredIdx] == null) { + let nonNullLft = null, + nonNullRgt = null, + i; + i = hoveredIdx; + while (nonNullLft == null && i-- > 0) { + if (seriesData[i] != null) { + nonNullLft = i; + } + } + i = hoveredIdx; + while (nonNullRgt == null && i++ < seriesData.length) { + if (seriesData[i] != null) { + nonNullRgt = i; + } + } + let xVals = self.data[0]; + let curPos = self.valToPos(cursorXVal, 'x'); + let rgtPos = nonNullRgt == null ? Infinity : self.valToPos(xVals[nonNullRgt], 'x'); + let lftPos = nonNullLft == null ? -Infinity : self.valToPos(xVals[nonNullLft], 'x'); + let lftDelta = curPos - lftPos; + let rgtDelta = rgtPos - curPos; + if (lftDelta <= rgtDelta) { + if (lftDelta <= hoverProximityPx) { + hoveredIdx = nonNullLft; + } + } else { + if (rgtDelta <= hoverProximityPx) { + hoveredIdx = nonNullRgt; + } + } + } + return hoveredIdx; + } + touchZoomPlugin(opts) { + function init(u, opts, data) { + let over = u.over; + let rect, oxRange, oyRange, xVal, yVal; + let fr = { + x: 0, + y: 0, + dx: 0, + dy: 0 + }; + let to = { + x: 0, + y: 0, + dx: 0, + dy: 0 + }; + function storePos(t, e) { + let ts = e.touches; + let t0 = ts[0]; + let t0x = t0.clientX - rect.left; + let t0y = t0.clientY - rect.top; + if (ts.length == 1) { + t.x = t0x; + t.y = t0y; + t.d = t.dx = t.dy = 1; + } else { + let t1 = e.touches[1]; + let t1x = t1.clientX - rect.left; + let t1y = t1.clientY - rect.top; + let xMin = Math.min(t0x, t1x); + let yMin = Math.min(t0y, t1y); + let xMax = Math.max(t0x, t1x); + let yMax = Math.max(t0y, t1y); + // midpts + t.y = (yMin + yMax) / 2; + t.x = (xMin + xMax) / 2; + t.dx = xMax - xMin; + t.dy = yMax - yMin; + // dist + t.d = Math.sqrt(t.dx * t.dx + t.dy * t.dy); + } + } + let rafPending = false; + function zoom() { + rafPending = false; + let left = to.x; + let top = to.y; + // non-uniform scaling + // let xFactor = fr.dx / to.dx; + // let yFactor = fr.dy / to.dy; + // uniform x/y scaling + let xFactor = fr.dx / to.dx; + let yFactor = fr.dy / to.dy; + let leftPct = left / rect.width; + let btmPct = 1 - top / rect.height; + let nxRange = oxRange * xFactor; + let nxMin = xVal - leftPct * nxRange; + let nxMax = nxMin + nxRange; + let nyRange = oyRange * yFactor; + let nyMin = yVal - btmPct * nyRange; + let nyMax = nyMin + nyRange; + u.batch(() => { + u.setScale('x', { + min: nxMin, + max: nxMax + }); + u.setScale('y', { + min: nyMin, + max: nyMax + }); + }); + } + function touchmove(e) { + storePos(to, e); + if (!rafPending) { + rafPending = true; + requestAnimationFrame(zoom); + } + } + over.addEventListener('touchstart', function (e) { + rect = over.getBoundingClientRect(); + storePos(fr, e); + oxRange = u.scales.x.max - u.scales.x.min; + oyRange = u.scales.y.max - u.scales.y.min; + let left = fr.x; + let top = fr.y; + xVal = u.posToVal(left, 'x'); + yVal = u.posToVal(top, 'y'); + document.addEventListener('touchmove', touchmove, { + passive: true + }); + }); + over.addEventListener('touchend', function (e) { + document.removeEventListener('touchmove', touchmove, {}); + }); + } + return { + hooks: { + init + } + }; + } + static ctorParameters = () => []; + static propDecorators = { + id: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + options: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }], + graph: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.ViewChild, + args: ['graph', { + static: true + }] + }], + onChartClick: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input + }] + }; +}; +NgxUplotComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'ngx-uplot', + template: _ngx_uplot_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_ngx_uplot_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], NgxUplotComponent); + + +/***/ }), + +/***/ 85082: +/*!********************************************************************!*\ + !*** ./src/app/gui-helpers/range-number/range-number.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ RangeNumberComponent: () => (/* binding */ RangeNumberComponent) +/* harmony export */ }); +/* harmony import */ var _range_number_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./range-number.component.html?ngResource */ 98917); +/* harmony import */ var _range_number_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./range-number.component.css?ngResource */ 8227); +/* harmony import */ var _range_number_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_range_number_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-selector */ + +let RangeNumberComponent = class RangeNumberComponent { + range = { + min: 0, + max: 100 + }; + isNumber = true; + booleanValue = 1; + oldRange = { + min: 0, + max: 100 + }; + constructor() {} + ngOnInit() { + this.saveOld(this.range); + } + onBooleanChanged() { + this.range.min = this.booleanValue; + this.range.max = this.booleanValue; + } + onTypeChanged() { + if (this.isNumber) { + this.range.min = this.oldRange.min; + this.range.max = this.oldRange.max; + } else { + this.booleanValue = this.range.min === this.range.max && this.range.min >= 1 ? 1 : 0; + this.onBooleanChanged(); + } + } + saveOld(oldValue) { + this.oldRange.min = oldValue.min; + this.oldRange.max = oldValue.max; + } + static ctorParameters = () => []; + static propDecorators = { + range: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }] + }; +}; +RangeNumberComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'range-number', + template: _range_number_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_range_number_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], RangeNumberComponent); + + +/***/ }), + +/***/ 84804: +/*!******************************************************************!*\ + !*** ./src/app/gui-helpers/sel-options/sel-options.component.ts ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SelOptionsComponent: () => (/* binding */ SelOptionsComponent) +/* harmony export */ }); +/* harmony import */ var _sel_options_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sel-options.component.html?ngResource */ 86990); +/* harmony import */ var _sel_options_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sel-options.component.css?ngResource */ 80021); +/* harmony import */ var _sel_options_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_sel_options_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-selector */ + +let SelOptionsComponent = class SelOptionsComponent { + disabled; + selected = []; + options = []; + extSelected; + constructor() {} + static ctorParameters = () => []; + static propDecorators = { + disabled: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + selected: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + options: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + extSelected: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }] + }; +}; +SelOptionsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'sel-options', + template: _sel_options_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_sel_options_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], SelOptionsComponent); + + +/***/ }), + +/***/ 10236: +/*!**************************************************************!*\ + !*** ./src/app/gui-helpers/treetable/treetable.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Node: () => (/* binding */ Node), +/* harmony export */ NodeType: () => (/* binding */ NodeType), +/* harmony export */ TreeType: () => (/* binding */ TreeType), +/* harmony export */ TreetableComponent: () => (/* binding */ TreetableComponent) +/* harmony export */ }); +/* harmony import */ var _treetable_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treetable.component.html?ngResource */ 69470); +/* harmony import */ var _treetable_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./treetable.component.css?ngResource */ 54595); +/* harmony import */ var _treetable_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_treetable_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-selector */ + +let TreetableComponent = class TreetableComponent { + config; + expand = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); + treetable; + TypeOfTree = TreeType; + treeType = TreeType.Standard; + nodeType = NodeType; + nodes = {}; + list = []; + containerProperty = { + width: '100%', + height: '100%' + }; + constructor() {} + ngOnInit() { + if (this.config) { + if (this.config.width) { + this.containerProperty.width = this.config.width; + } + if (this.config.height) { + this.containerProperty.height = this.config.height; + } + if (this.config.type === TreeType.ToDefine) { + this.treeType = TreeType.ToDefine; + } + } + } + onExpandToggle(node) { + const currentPosition = this.treetable.nativeElement.scrollTop; + node.expanded = node.expanded ? false : true; + if (node.expanded) { + if (!node.childs.length) { + this.expand.emit(node); + } + this.hideNode(node, true); + } else { + this.hideNode(node, false); + } + this.list = this.nodeToItems(this.treeType === TreeType.ToDefine ? false : true); + setTimeout(() => { + this.treetable.nativeElement.scrollTop = currentPosition; + }, 1); + } + hideNode(node, visible) { + Object.values(node.childs).forEach(n => { + n.visible = visible; + this.hideNode(n, visible ? n.expanded : visible); + }); + } + addNode(node, parent, enabled, flat) { + if (parent) { + let refp = this.nodes[parent.id]; + node.setParent(refp); + if (node.parent) { + node.parent.waiting = false; + } + node.enabled = enabled; + if (!enabled) { + node.checked = true; + } + } + if (flat) { + node.enabled = enabled; + if (!enabled) { + node.checked = true; + } + } + if (Object.keys(this.nodes).indexOf(node.id) < 0) { + this.nodes[node.id] = node; + } + } + update(sort = true) { + this.list = this.nodeToItems(sort); + } + setNodeProperty(node, pro) { + if (this.nodes[node.id]) { + this.nodes[node.id].property = pro; + this.nodes[node.id].type = node.type; + } + } + nodeToItems(sort = true) { + if (this.nodes && Object.values(this.nodes).length) { + let result = []; + Object.values(this.nodes).forEach(value => { + if (value.visible) { + result.push(value); + } + }); + if (sort) { + return result.sort((a, b) => a.path > b.path ? 1 : -1); + } else { + return result; + } + } else { + return []; + } + } + changeStatus(node, $event) { + if (node.childs && node.childs.length > 0) { + node.childs.forEach(child => { + if (child.enabled && child.class === this.nodeType.Variable) { + child.checked = node.checked; + } + }); + } + } + expandable(type) { + if (type === NodeType.Object) { + return true; + } else { + return false; + } + } + getDefinedKey(todefine) { + return ''; + } + getToDefineOptions(todefine) { + return Object.keys(todefine.options); + } + static ctorParameters = () => []; + static propDecorators = { + config: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }], + expand: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output + }], + treetable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewChild, + args: ['treetable', { + static: true + }] + }] + }; +}; +TreetableComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'ngx-treetable', + template: _treetable_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_treetable_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], TreetableComponent); + +class Node { + static SEPARATOR = '>'; + id = ''; + path = ''; + text = ''; + class; + childPos = 0; + expandable = true; + expanded = false; + visible = true; + parent = null; + property = ''; + type = ''; // boolean, int ... + checked = false; + childs = []; + waiting = true; + enabled = true; + todefine = null; + constructor(id, text) { + this.id = id; + this.text = text; + this.path = this.text; + } + setParent(parent) { + if (parent) { + this.parent = parent; + this.path = parent.path + Node.SEPARATOR + this.text; + this.childPos = parent.childPos + 1; + this.parent.childs.push(this); + } + } + setToDefine() { + this.todefine = { + options: [''], + id: '', + value: '' + }; + } + addToDefine(opt) { + if (this.todefine && this.todefine.options.indexOf(opt) === -1) { + this.todefine.options.push(opt); + } + } + static strToType(str) { + if (NodeType[str]) { + return NodeType[str]; + } + return str; + } +} +var NodeType; +(function (NodeType) { + NodeType[NodeType["Unspecified"] = 0] = "Unspecified"; + NodeType[NodeType["Object"] = 1] = "Object"; + NodeType[NodeType["Variable"] = 2] = "Variable"; + NodeType[NodeType["Methode"] = 4] = "Methode"; + NodeType[NodeType["ObjectType"] = 8] = "ObjectType"; + NodeType[NodeType["VariableType"] = 16] = "VariableType"; + NodeType[NodeType["ReferenceType"] = 32] = "ReferenceType"; + NodeType[NodeType["DataType"] = 64] = "DataType"; + NodeType[NodeType["View"] = 128] = "View"; + NodeType[NodeType["Array"] = 256] = "Array"; + NodeType[NodeType["Item"] = 512] = "Item"; + NodeType[NodeType["Reference"] = 1024] = "Reference"; // JSON +})(NodeType || (NodeType = {})); +var TreeType; +(function (TreeType) { + TreeType["Standard"] = "standard"; + TreeType["ToDefine"] = "todefine"; // property to define (key and value) +})(TreeType || (TreeType = {})); + +/***/ }), + +/***/ 96941: +/*!**************************************************************************************************!*\ + !*** ./src/app/gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component.ts ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ WebcamPlayerDialogComponent: () => (/* binding */ WebcamPlayerDialogComponent) +/* harmony export */ }); +/* harmony import */ var _webcam_player_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcam-player-dialog.component.html?ngResource */ 31611); +/* harmony import */ var _webcam_player_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webcam-player-dialog.component.scss?ngResource */ 27150); +/* harmony import */ var _webcam_player_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_webcam_player_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let WebcamPlayerDialogComponent = class WebcamPlayerDialogComponent { + dialogRef; + data; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onCloseDialog() { + this.dialogRef.close(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +WebcamPlayerDialogComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-webcam-player-dialog', + template: _webcam_player_dialog_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_webcam_player_dialog_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, Object])], WebcamPlayerDialogComponent); + + +/***/ }), + +/***/ 55348: +/*!**********************************************************************!*\ + !*** ./src/app/gui-helpers/webcam-player/webcam-player.component.ts ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ WebcamPlayerComponent: () => (/* binding */ WebcamPlayerComponent) +/* harmony export */ }); +/* harmony import */ var _webcam_player_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcam-player.component.html?ngResource */ 95003); +/* harmony import */ var _webcam_player_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webcam-player.component.css?ngResource */ 49617); +/* harmony import */ var _webcam_player_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_webcam_player_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var xgplayer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! xgplayer */ 1759); +/* harmony import */ var xgplayer_es_presets_live__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! xgplayer/es/presets/live */ 32941); +/* harmony import */ var xgplayer_flv_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xgplayer-flv.js */ 85089); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/hmi.service */ 69578); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let WebcamPlayerComponent = class WebcamPlayerComponent { + hmiService; + xgplayerRef; + data; + onclose = new _angular_core__WEBPACK_IMPORTED_MODULE_5__.EventEmitter(); + player; + constructor(hmiService) { + this.hmiService = hmiService; + } + ngOnInit() { + let url = this.data.ga.property.variableValue; + if (this.data.ga.property.variableId) { + let variable = this.hmiService.getMappedVariable(this.data.ga.property.variableId, false); + if (!_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.isNullOrUndefined(variable?.value)) { + url = '' + variable.value; + } + } + let plugins = []; + //add http-flv support + if (new URL(url).pathname.endsWith('flv')) { + plugins.push(xgplayer_flv_js__WEBPACK_IMPORTED_MODULE_2__["default"]); + } + this.player = new xgplayer__WEBPACK_IMPORTED_MODULE_6__["default"]({ + el: this.xgplayerRef.nativeElement, + url, + autoplay: true, + presets: [xgplayer_es_presets_live__WEBPACK_IMPORTED_MODULE_7__["default"]], + plugins + }); + } + onClose($event) { + if (this.onclose) { + this.onclose.emit($event); + } + } + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_4__.HmiService + }]; + static propDecorators = { + xgplayerRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.ViewChild, + args: ['xgplayer', { + static: true + }] + }], + data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Input + }], + onclose: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Output + }] + }; +}; +WebcamPlayerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-webcam-player', + template: _webcam_player_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_webcam_player_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_4__.HmiService])], WebcamPlayerComponent); + + +/***/ }), + +/***/ 63767: +/*!********************************************!*\ + !*** ./src/app/header/header.component.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DialogInfo: () => (/* binding */ DialogInfo), +/* harmony export */ HeaderComponent: () => (/* binding */ HeaderComponent) +/* harmony export */ }); +/* harmony import */ var _header_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./header.component.html?ngResource */ 46727); +/* harmony import */ var _header_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./header.component.css?ngResource */ 4821); +/* harmony import */ var _header_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_header_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _info_dialog_html_ngResource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./info.dialog.html?ngResource */ 93173); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 74520); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../environments/environment */ 20553); +/* harmony import */ var _editor_setup_setup_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editor/setup/setup.component */ 59137); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _services_theme_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_services/theme.service */ 69053); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _help_tutorial_tutorial_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../help/tutorial/tutorial.component */ 9775); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../gui-helpers/edit-name/edit-name.component */ 79962); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +/* eslint-disable @angular-eslint/component-class-suffix */ +/* eslint-disable @angular-eslint/component-selector */ + + + + + + + + + + + + +const editorModeRouteKey = ['/editor', '/device', '/messages', '/language', '/users', '/userRoles', '/notifications', '/scripts', '/reports', '/materials', '/logs', '/events', '/mapsLocations', '/flows']; +const saveFromEditorRouteKey = ['/device', '/messages', '/language', '/users', '/userRoles', '/notifications', '/scripts', '/reports', '/materials', '/logs', '/events', '/mapsLocations', '/flows']; +let HeaderComponent = class HeaderComponent { + router; + dialog; + translateService; + themeService; + projectService; + sidenav; + tutorial; + fileImportInput; + darkTheme = true; + editorMode = false; + saveFromEditor = false; + subscriptionShowHelp; + subscriptionLoad; + constructor(router, dialog, translateService, themeService, projectService) { + this.router = router; + this.dialog = dialog; + this.translateService = translateService; + this.themeService = themeService; + this.projectService = projectService; + this.router.events.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_10__.filter)(val => val instanceof _angular_router__WEBPACK_IMPORTED_MODULE_11__.NavigationEnd)).subscribe(routeKey => { + const urlWithoutParams = routeKey.url.split('?')[0]; + this.editorMode = editorModeRouteKey.includes(urlWithoutParams) ? true : false; + this.saveFromEditor = saveFromEditorRouteKey.includes(urlWithoutParams) ? true : false; + if (this.router.url.indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_7__.DEVICE_READONLY) >= 0) { + this.editorMode = false; + } + }); + // this.router.events.subscribe(()=> { + // this.editorMode = (this.router.url.indexOf('editor') >= 0 || this.router.url.indexOf('device') >= 0 || + // this.router.url.indexOf('users') >= 0 || this.router.url.indexOf('text') >= 0 || + // this.router.url.indexOf('messages') >= 0 || this.router.url.indexOf('events') >= 0 || + // this.router.url.indexOf('notifications') >= 0 || this.router.url.indexOf('scripts') >= 0 || + // this.router.url.indexOf('reports') >= 0) ? true : false; + // this.savededitor = (this.router.url.indexOf('device') >= 0 || this.router.url.indexOf('users') >= 0 || + // this.router.url.indexOf('text') >= 0 || this.router.url.indexOf('messages') >= 0 || + // this.router.url.indexOf('events') >= 0 || this.router.url.indexOf('notifications') >= 0 || + // this.router.url.indexOf('scripts') >= 0 || this.router.url.indexOf('reports') >= 0) ? true : false; + // if (this.router.url.indexOf(DEVICE_READONLY) >= 0) { + // this.editorMode = false; + // } + // }); + this.themeService.setTheme(this.projectService.getLayoutTheme()); + } + ngAfterViewInit() { + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(load => { + let theme = this.projectService.getLayoutTheme(); + this.darkTheme = theme !== _services_theme_service__WEBPACK_IMPORTED_MODULE_6__.ThemeService.ThemeType.Default; + this.themeService.setTheme(this.projectService.getLayoutTheme()); + }, error => { + console.error('Error loadHMI'); + }); + } + ngOnDestroy() { + try { + if (this.subscriptionShowHelp) { + this.subscriptionShowHelp.unsubscribe(); + } + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + onClick(targetElement) { + this.sidenav.close(); + } + onShowHelp(page) { + let data = new _models_hmi__WEBPACK_IMPORTED_MODULE_7__.HelpData(); + data.page = page; + data.tag = 'device'; + this.showHelp(data); + } + onSetup() { + this.projectService.saveProject(_services_project_service__WEBPACK_IMPORTED_MODULE_5__.SaveMode.Current); + let dialogRef = this.dialog.open(_editor_setup_setup_component__WEBPACK_IMPORTED_MODULE_4__.SetupComponent, { + position: { + top: '60px' + } + }); + } + showHelp(data) { + if (data.page === 'help') { + this.tutorial.show = true; + } else if (data.page === 'info') { + this.showInfo(); + } + } + showInfo() { + let dialogRef = this.dialog.open(DialogInfo, { + data: { + name: 'Info', + version: _environments_environment__WEBPACK_IMPORTED_MODULE_3__.environment.version + } + }); + dialogRef.afterClosed().subscribe(result => {}); + } + goTo(destination) { + this.router.navigate([destination]); //, this.ID]); + } + + onChangeTheme() { + this.darkTheme = !this.darkTheme; + let theme = _services_theme_service__WEBPACK_IMPORTED_MODULE_6__.ThemeService.ThemeType.Default; + if (this.darkTheme) { + theme = _services_theme_service__WEBPACK_IMPORTED_MODULE_6__.ThemeService.ThemeType.Dark; + } + this.themeService.setTheme(theme); + this.projectService.setLayoutTheme(theme); + } + //#region Project Events + onNewProject() { + try { + let msg = ''; + this.translateService.get('msg.project-save-ask').subscribe(txt => { + msg = txt; + }); + if (window.confirm(msg)) { + this.projectService.setNewProject(); + this.onRenameProject(); + } + } catch (err) { + console.error(err); + } + } + /** + * Aave Project as JSON file and Download in Browser + */ + onSaveProjectAs() { + try { + if (this.saveFromEditor) { + this.projectService.saveAs(); + } else { + this.projectService.saveProject(_services_project_service__WEBPACK_IMPORTED_MODULE_5__.SaveMode.SaveAs); + } + } catch (e) {} + } + onOpenProject() { + let ele = document.getElementById('projectFileUpload'); + ele.click(); + } + /** + * open Project event file loaded + * @param event file resource + */ + onFileChangeListener(event) { + let input = event.target; + let reader = new FileReader(); + reader.onload = data => { + let prj = JSON.parse(reader.result.toString()); + this.projectService.setProject(prj, true); + }; + reader.onerror = function () { + let msg = 'Unable to read ' + input.files[0]; + // this.translateService.get('msg.project-load-error', {value: input.files[0]}).subscribe((txt: string) => { msg = txt }); + alert(msg); + }; + reader.readAsText(input.files[0]); + this.fileImportInput.nativeElement.value = null; + } + /** + * save Project and Download in Browser + */ + onSaveProject() { + try { + if (this.saveFromEditor) { + this.projectService.save(); + } else { + this.projectService.saveProject(_services_project_service__WEBPACK_IMPORTED_MODULE_5__.SaveMode.Save); + } + } catch (e) { + console.error(e); + } + } + /** + * rename the project + */ + onRenameProject() { + let title = ''; + this.translateService.get('project.name').subscribe(txt => { + title = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_9__.EditNameComponent, { + position: { + top: '60px' + }, + data: { + name: this.projectService.getProjectName(), + title: title + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.name !== this.projectService.getProjectName()) { + this.projectService.setProjectName(result.name.replace(/ /g, '')); + } + }); + } + static ctorParameters = () => [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_11__.Router + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_13__.TranslateService + }, { + type: _services_theme_service__WEBPACK_IMPORTED_MODULE_6__.ThemeService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }]; + static propDecorators = { + sidenav: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_14__.ViewChild, + args: ['sidenav', { + static: false + }] + }], + tutorial: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_14__.ViewChild, + args: ['tutorial', { + static: false + }] + }], + fileImportInput: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_14__.ViewChild, + args: ['fileImportInput', { + static: false + }] + }] + }; +}; +HeaderComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_14__.Component)({ + selector: 'app-header', + template: _header_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_header_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_11__.Router, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_13__.TranslateService, _services_theme_service__WEBPACK_IMPORTED_MODULE_6__.ThemeService, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService])], HeaderComponent); + +let DialogInfo = class DialogInfo { + dialogRef; + data; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onNoClick() { + this.dialogRef.close(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_14__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +DialogInfo = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_14__.Component)({ + selector: 'dialog-info', + template: _info_dialog_html_ngResource__WEBPACK_IMPORTED_MODULE_2__ +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogRef, Object])], DialogInfo); + + +/***/ }), + +/***/ 9775: +/*!*****************************************************!*\ + !*** ./src/app/help/tutorial/tutorial.component.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TutorialComponent: () => (/* binding */ TutorialComponent) +/* harmony export */ }); +/* harmony import */ var _tutorial_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tutorial.component.html?ngResource */ 85757); +/* harmony import */ var _tutorial_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tutorial.component.css?ngResource */ 88523); +/* harmony import */ var _tutorial_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tutorial_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let TutorialComponent = class TutorialComponent { + show = false; + constructor() {} + close() { + this.show = false; + } + static ctorParameters = () => []; +}; +TutorialComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-tutorial', + template: _tutorial_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tutorial_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [])], TutorialComponent); + + +/***/ }), + +/***/ 6459: +/*!****************************************!*\ + !*** ./src/app/home/home.component.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DialogUserInfo: () => (/* binding */ DialogUserInfo), +/* harmony export */ HomeComponent: () => (/* binding */ HomeComponent) +/* harmony export */ }); +/* harmony import */ var _home_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.component.html?ngResource */ 64715); +/* harmony import */ var _home_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.component.scss?ngResource */ 42095); +/* harmony import */ var _home_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_home_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _userinfo_dialog_html_ngResource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./userinfo.dialog.html?ngResource */ 21978); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! rxjs */ 33839); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! rxjs */ 7835); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! rxjs */ 89378); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! rxjs */ 13379); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _sidenav_sidenav_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sidenav/sidenav.component */ 79839); +/* harmony import */ var _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../fuxa-view/fuxa-view.component */ 33814); +/* harmony import */ var _cards_view_cards_view_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../cards-view/cards-view.component */ 96697); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_services/hmi.service */ 69578); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../_services/auth.service */ 48333); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../login/login.component */ 2014); +/* harmony import */ var _alarms_alarm_view_alarm_view_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../alarms/alarm-view/alarm-view.component */ 65232); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../_models/alarm */ 38238); +/* harmony import */ var panzoom__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! panzoom */ 10418); +/* harmony import */ var panzoom__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(panzoom__WEBPACK_IMPORTED_MODULE_15__); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! rxjs/operators */ 81891); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! rxjs/operators */ 79736); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! rxjs/operators */ 75043); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! rxjs/operators */ 74520); +/* harmony import */ var _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../gauges/controls/html-button/html-button.component */ 66843); +/* harmony import */ var _users_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../users/user-edit/user-edit.component */ 42906); +/* harmony import */ var _helpers_intervals__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../_helpers/intervals */ 57541); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../_models/script */ 10846); +/* harmony import */ var _services_script_service__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../_services/script.service */ 67758); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _services_language_service__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../_services/language.service */ 46368); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +/* eslint-disable @angular-eslint/component-class-suffix */ +/* eslint-disable @angular-eslint/component-selector */ + + + + + + + + + + + + + + + + + + + + + + + + + +// declare var panzoom: any; + + +let HomeComponent = class HomeComponent { + projectService; + changeDetector; + dialog; + router; + route; + hmiService; + toastr; + scriptService; + languageService; + authService; + gaugesManager; + sidenav; + matsidenav; + fuxaview; + cardsview; + alarmsview; + container; + header; + iframes = []; + isLoading = true; + homeView = new _models_hmi__WEBPACK_IMPORTED_MODULE_10__.View(); + hmi = new _models_hmi__WEBPACK_IMPORTED_MODULE_10__.Hmi(); + showSidenav = 'over'; + homeLink = ''; + showHomeLink = false; + securityEnabled = false; + backgroudColor = 'unset'; + title = ''; + alarms = { + show: false, + count: 0, + mode: '' + }; + infos = { + show: false, + count: 0, + mode: '' + }; + headerButtonMode = _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType; + layoutHeader = new _models_hmi__WEBPACK_IMPORTED_MODULE_10__.HeaderSettings(); + showNavigation = true; + viewAsAlarms = _models_hmi__WEBPACK_IMPORTED_MODULE_10__.LinkType.alarms; + alarmPanelWidth = '100%'; + serverErrorBanner$; + cardViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_10__.ViewType.cards; + mapsViewType = _models_hmi__WEBPACK_IMPORTED_MODULE_10__.ViewType.maps; + gridOptions = new _cards_view_cards_view_component__WEBPACK_IMPORTED_MODULE_5__.GridOptions(); + intervalsScript = new _helpers_intervals__WEBPACK_IMPORTED_MODULE_18__.Intervals(); + currentDateTime = new Date(); + headerItemsMap = new Map(); + subscriptionLoad; + subscriptionAlarmsStatus; + subscriptiongoTo; + subscriptionOpen; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_22__.Subject(); + loggedUser$; + language$; + constructor(projectService, changeDetector, dialog, router, route, hmiService, toastr, scriptService, languageService, authService, gaugesManager) { + this.projectService = projectService; + this.changeDetector = changeDetector; + this.dialog = dialog; + this.router = router; + this.route = route; + this.hmiService = hmiService; + this.toastr = toastr; + this.scriptService = scriptService; + this.languageService = languageService; + this.authService = authService; + this.gaugesManager = gaugesManager; + this.gridOptions.draggable = { + enabled: false + }; + this.gridOptions.resizable = { + enabled: false + }; + } + ngOnInit() { + try { + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(() => { + if (this.projectService.getHmi()) { + this.loadHmi(); + this.initScheduledScripts(); + this.checkDateTimeTimer(); + } + }, error => { + console.error(`Error loadHMI: ${error}`); + }); + this.subscriptionAlarmsStatus = this.hmiService.onAlarmsStatus.subscribe(event => { + this.setAlarmsStatus(event); + }); + this.subscriptiongoTo = this.hmiService.onGoTo.subscribe(viewToGo => { + this.onGoToPage(this.projectService.getViewId(viewToGo.viewName), viewToGo.force); + }); + this.subscriptionOpen = this.hmiService.onOpen.subscribe(viewToOpen => { + const viewId = this.projectService.getViewId(viewToOpen.viewName); + this.fuxaview.onOpenCard(viewId, null, viewId, viewToOpen.options); + }); + this.serverErrorBanner$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_23__.combineLatest)([this.hmiService.onServerConnection$, this.authService.currentUser$]).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_24__.switchMap)(([connectionStatus, userProfile]) => (0,rxjs__WEBPACK_IMPORTED_MODULE_25__.merge)((0,rxjs__WEBPACK_IMPORTED_MODULE_26__.of)(false), (0,rxjs__WEBPACK_IMPORTED_MODULE_27__.timer)(20000).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_28__.map)(() => this.securityEnabled && !userProfile ? false : true))).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_29__.startWith)(false))), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_30__.takeUntil)(this.destroy$)); + this.language$ = this.languageService.languageConfig$; + this.loggedUser$ = this.authService.currentUser$; + this.gaugesManager.onchange.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_30__.takeUntil)(this.destroy$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_31__.filter)(varTag => this.headerItemsMap.has(varTag.id))).subscribe(varTag => { + this.processValueInHeaderItem(varTag); + }); + } catch (err) { + console.error(err); + } + } + ngAfterViewInit() { + try { + // TODO + setTimeout(() => { + this.projectService.notifyToLoadHmi(); + }, 0); + this.hmiService.askAlarmsStatus(); + this.changeDetector.detectChanges(); + } catch (err) { + console.error(err); + } + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + if (this.subscriptionAlarmsStatus) { + this.subscriptionAlarmsStatus.unsubscribe(); + } + if (this.subscriptionOpen) { + this.subscriptionOpen.unsubscribe(); + } + if (this.subscriptiongoTo) { + this.subscriptiongoTo.unsubscribe(); + } + this.destroy$.next(null); + this.destroy$.complete(); + this.intervalsScript.clearIntervals(); + } catch (e) {} + } + checkDateTimeTimer() { + if (this.hmi.layout?.header?.dateTimeDisplay) { + (0,rxjs__WEBPACK_IMPORTED_MODULE_32__.interval)(1000).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_30__.takeUntil)(this.destroy$)).subscribe(() => { + this.currentDateTime = new Date(); + }); + } + } + initScheduledScripts() { + this.intervalsScript.clearIntervals(); + this.projectService.getScripts()?.forEach(script => { + if (script.mode === _models_script__WEBPACK_IMPORTED_MODULE_19__.ScriptMode.CLIENT && script.scheduling?.interval > 0) { + this.intervalsScript.addInterval(script.scheduling.interval * 1000, this.scriptService.evalScript, script, this.scriptService); + } + }); + } + onGoToPage(viewId, force = false) { + if (viewId === this.viewAsAlarms) { + this.onAlarmsShowMode('expand'); + this.checkToCloseSideNav(); + } else if (!this.homeView || viewId !== this.homeView?.id || force || this.fuxaview?.view?.id !== viewId) { + const view = this.hmi.views.find(x => x.id === viewId); + this.setIframe(); + this.showHomeLink = false; + this.changeDetector.detectChanges(); + if (view) { + this.homeView = view; + this.changeDetector.detectChanges(); + this.setBackground(); + if (this.homeView.type !== this.cardViewType && this.homeView.type !== this.mapsViewType) { + this.checkZoom(); + this.fuxaview.hmi.layout = this.hmi.layout; + this.fuxaview.loadHmi(this.homeView); + } else if (this.cardsview) { + this.cardsview.reload(); + } + } + this.onAlarmsShowMode('close'); + this.checkToCloseSideNav(); + } + } + onGoToLink(event) { + if (event.indexOf('://') >= 0 || event[0] == '/') { + this.showHomeLink = true; + this.changeDetector.detectChanges(); + this.setIframe(event); + } else { + this.router.navigate([event]).then(data => {}).catch(err => { + console.error('Route ' + event + ' not found, redirection stopped with no error raised'); + // try iframe link + }); + } + + this.checkToCloseSideNav(); + } + setIframe(link = null) { + this.homeView = null; + let currentLink; + this.iframes.forEach(iframe => { + if (!iframe.hide) { + currentLink = iframe.link; + } + iframe.hide = true; + }); + if (link) { + let iframe = this.iframes.find(f => f.link === link); + if (!iframe) { + this.iframes.push({ + link: link, + hide: false + }); + } else { + iframe.hide = false; + if (currentLink === link) { + // to refresh + iframe.link = ''; + this.changeDetector.detectChanges(); + iframe.link = link; + } + } + } + } + checkToCloseSideNav() { + if (this.hmi.layout) { + let nvoid = _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType[this.hmi.layout.navigation.mode]; + if (nvoid !== _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType.fix && this.matsidenav) { + this.matsidenav.close(); + } + } + } + onLogin() { + let cuser = this.authService.getUser(); + if (cuser) { + let dialogRef = this.dialog.open(DialogUserInfo, { + id: 'myuserinfo', + // minWidth: '250px', + position: { + top: '50px', + right: '15px' + }, + backdropClass: 'user-info', + data: cuser + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.authService.signOut(); + this.projectService.reload(); + } + }); + } else { + let dialogConfig = { + data: {}, + disableClose: true, + autoFocus: false, + ...(this.hmi.layout.loginoverlaycolor && this.hmi.layout.loginoverlaycolor !== _models_hmi__WEBPACK_IMPORTED_MODULE_10__.LoginOverlayColorType.none && { + backdropClass: this.hmi.layout.loginoverlaycolor === _models_hmi__WEBPACK_IMPORTED_MODULE_10__.LoginOverlayColorType.black ? 'backdrop-black' : 'backdrop-white' + }) + }; + let dialogRef = this.dialog.open(_login_login_component__WEBPACK_IMPORTED_MODULE_11__.LoginComponent, dialogConfig); + dialogRef.afterClosed().subscribe(result => { + const userInfo = new _users_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_17__.UserInfo(this.authService.getUser()?.info); + if (userInfo.start) { + this.onGoToPage(userInfo.start); + } + }); + } + } + askValue() { + this.hmiService.askDeviceValues(); + } + askStatus() { + this.hmiService.askDeviceStatus(); + } + isLoggedIn() { + return this.authService.getUser() ? true : false; + } + onAlarmsShowMode(mode) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType, _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType.fix) === this.hmi.layout.navigation.mode && this.matsidenav) { + this.alarmPanelWidth = `calc(100% - ${this.matsidenav._getWidth()}px)`; + } + let ele = document.getElementById('alarms-panel'); + if (mode === 'expand') { + ele.classList.add('is-full-active'); + // ele.classList.remove('is-active'); + this.alarmsview.startAskAlarmsValues(); + } else if (mode === 'collapse') { + ele.classList.add('is-active'); + ele.classList.remove('is-full-active'); + this.alarmsview.startAskAlarmsValues(); + } else { + // ele.classList.toggle("is-active"); + ele.classList.remove('is-active'); + ele.classList.remove('is-full-active'); + } + } + onSetLanguage(language) { + this.languageService.setCurrentLanguage(language); + window.location.reload(); + } + processValueInHeaderItem(varTag) { + this.headerItemsMap.get(varTag.id)?.forEach(item => { + if (item.status.variablesValue[varTag.id] !== varTag.value) { + _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_16__.HtmlButtonComponent.processValue({ + property: item.property + }, item.element ?? _helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.findElementByIdRecursive(this.header.nativeElement, item.id), varTag, item.status, item.type === 'label'); + } + item.status.variablesValue[varTag.id] = varTag.value; + }); + } + goTo(destination) { + this.router.navigate([destination]); //, this.ID]); + } + + loadHmi() { + let hmi = this.projectService.getHmi(); + if (hmi) { + this.hmi = hmi; + } + if (this.hmi && this.hmi.views && this.hmi.views.length > 0) { + let viewToShow = null; + if (this.hmi.layout?.start) { + viewToShow = this.hmi.views.find(x => x.id === this.hmi.layout.start); + } + if (!viewToShow) { + viewToShow = this.hmi.views[0]; + } + let startView = this.hmi.views.find(x => x.name === this.route.snapshot.queryParamMap.get('viewName')?.trim()); + if (startView) { + viewToShow = startView; + } + this.homeView = viewToShow; + this.setBackground(); + // check sidenav + this.showSidenav = null; + if (this.hmi.layout) { + if (_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.Boolify(this.hmi.layout.hidenavigation)) { + this.showNavigation = false; + } + let nvoid = _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType[this.hmi.layout.navigation.mode]; + if (this.hmi.layout && nvoid !== _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType.void) { + if (nvoid === _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType.over) { + this.showSidenav = 'over'; + } else if (nvoid === _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType.fix) { + this.showSidenav = 'side'; + if (this.matsidenav) { + this.matsidenav.open(); + } + } else if (nvoid === _models_hmi__WEBPACK_IMPORTED_MODULE_10__.NaviModeType.push) { + this.showSidenav = 'push'; + } + this.sidenav.setLayout(this.hmi.layout); + } + if (this.hmi.layout.header) { + this.title = this.hmi.layout.header.title; + if (this.hmi.layout.header.alarms) { + this.alarms.mode = this.hmi.layout.header.alarms; + } + if (this.hmi.layout.header.infos) { + this.infos.mode = this.hmi.layout.header.infos; + } + this.checkHeaderButton(); + this.layoutHeader = _helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.clone(this.hmi.layout.header); + this.changeDetector.detectChanges(); + this.loadHeaderItems(); + } + this.checkZoom(); + } + } + if (this.homeView && this.fuxaview) { + this.fuxaview.hmi.layout = this.hmi.layout; + this.fuxaview.loadHmi(this.homeView); + } + this.isLoading = false; + this.securityEnabled = this.projectService.isSecurityEnabled(); + if (this.securityEnabled && !this.isLoggedIn() && this.hmi.layout.loginonstart) { + this.onLogin(); + } + } + checkZoom() { + if (this.hmi.layout?.zoom && _models_hmi__WEBPACK_IMPORTED_MODULE_10__.ZoomModeType[this.hmi.layout.zoom] === _models_hmi__WEBPACK_IMPORTED_MODULE_10__.ZoomModeType.enabled) { + setTimeout(() => { + let element = document.querySelector('#home'); + if (element && (panzoom__WEBPACK_IMPORTED_MODULE_15___default())) { + panzoom__WEBPACK_IMPORTED_MODULE_15___default()(element, { + bounds: true, + boundsPadding: 0.05 + }); + } + this.container.nativeElement.style.overflow = 'hidden'; + }, 1000); + } + } + loadHeaderItems() { + this.headerItemsMap.clear(); + if (!this.showNavigation) { + return; + } + this.layoutHeader.items?.forEach(item => { + item.status = item.status ?? new _models_hmi__WEBPACK_IMPORTED_MODULE_10__.GaugeStatus(); + item.status.onlyChange = true; + item.status.variablesValue = {}; + item.element = _helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.findElementByIdRecursive(this.header.nativeElement, item.id); + item.text = this.languageService.getTranslation(item.property?.text) ?? item.property?.text; + const signalsIds = _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_16__.HtmlButtonComponent.getSignals(item.property); + signalsIds.forEach(sigId => { + if (!this.headerItemsMap.has(sigId)) { + this.headerItemsMap.set(sigId, []); + } + this.headerItemsMap.get(sigId).push(item); + }); + const settingsProperty = new _models_hmi__WEBPACK_IMPORTED_MODULE_10__.GaugeSettings(null, _gauges_controls_html_button_html_button_component__WEBPACK_IMPORTED_MODULE_16__.HtmlButtonComponent.TypeTag); + settingsProperty.property = item.property; + this.onBindMouseEvents(item.element, settingsProperty); + }); + this.hmiService.homeTagsSubscribe(Array.from(this.headerItemsMap.keys())); + } + onBindMouseEvents(element, ga) { + if (element) { + let clickEvents = this.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_10__.GaugeEventType.click); + if (clickEvents?.length > 0) { + element.onclick = ev => { + this.handleMouseEvent(ga, ev, clickEvents); + }; + element.ontouchstart = ev => { + this.handleMouseEvent(ga, ev, clickEvents); + }; + } + let mouseDownEvents = this.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_10__.GaugeEventType.mousedown); + if (mouseDownEvents?.length > 0) { + element.onmousedown = ev => { + this.handleMouseEvent(ga, ev, mouseDownEvents); + }; + } + let mouseUpEvents = this.gaugesManager.getBindMouseEvent(ga, _models_hmi__WEBPACK_IMPORTED_MODULE_10__.GaugeEventType.mouseup); + if (mouseUpEvents?.length > 0) { + element.onmouseup = ev => { + this.handleMouseEvent(ga, ev, mouseUpEvents); + }; + } + } + } + handleMouseEvent(ga, ev, events) { + let fuxaviewRef = this.fuxaview ?? this.cardsview.getFuxaView(0); + if (!fuxaviewRef) { + return; + } + const homeEvents = events.filter(event => event.action === 'onpage'); + homeEvents.forEach(event => { + this.onGoToPage(event.actparam); + }); + const fuxaViewEvents = events.filter(event => event.action !== 'onpage'); + if (fuxaViewEvents.length > 0) { + fuxaviewRef.runEvents(fuxaviewRef, ga, ev, events); + } + } + setBackground() { + if (this.homeView?.profile) { + this.backgroudColor = this.homeView.profile.bkcolor; + } + } + checkHeaderButton() { + let fix = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType)[Object.values(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType.fix)]; + let float = Object.keys(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType)[Object.values(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType).indexOf(_models_hmi__WEBPACK_IMPORTED_MODULE_10__.NotificationModeType.float)]; + if (this.alarms.mode === fix || this.alarms.mode === float && this.alarms.count > 0) { + this.alarms.show = true; + } else { + this.alarms.show = false; + } + if (this.infos.mode === fix || this.infos.mode === float && this.infos.count > 0) { + this.infos.show = true; + } else { + this.infos.show = false; + } + } + setAlarmsStatus(status) { + if (status) { + this.alarms.count = status.highhigh + status.high + status.low; + this.infos.count = status.info; + this.checkHeaderButton(); + this.checkActions(status.actions); + } + } + checkActions(actions) { + if (actions) { + actions.forEach(act => { + if (act.type === _helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_14__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_14__.AlarmActionsType.popup)) { + this.fuxaview.openDialog(null, act.params, {}); + } else if (act.type === _helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_14__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_14__.AlarmActionsType.setView)) { + this.onGoToPage(act.params); + } else if (act.type === _helpers_utils__WEBPACK_IMPORTED_MODULE_13__.Utils.getEnumKey(_models_alarm__WEBPACK_IMPORTED_MODULE_14__.AlarmActionsType, _models_alarm__WEBPACK_IMPORTED_MODULE_14__.AlarmActionsType.toastMessage)) { + var msg = act.params; + // Check if the toast with the same message is already being displayed + const resetOnDuplicate = true; // Reset the duplicate toast + // Use findDuplicate to check if the toast already exists + const duplicateToast = this.toastr.findDuplicate('', msg, resetOnDuplicate, false); + if (!duplicateToast) { + const toastType = act.options?.type ?? 'info'; + // If no duplicate exists, show the toast + this.toastr[toastType](msg, '', { + timeOut: 3000, + closeButton: true, + disableTimeOut: true + }); + } + } + }); + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ChangeDetectorRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialog + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_35__.Router + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_35__.ActivatedRoute + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_6__.HmiService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_36__.ToastrService + }, { + type: _services_script_service__WEBPACK_IMPORTED_MODULE_20__.ScriptService + }, { + type: _services_language_service__WEBPACK_IMPORTED_MODULE_21__.LanguageService + }, { + type: _services_auth_service__WEBPACK_IMPORTED_MODULE_8__.AuthService + }, { + type: _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_9__.GaugesManager + }]; + static propDecorators = { + sidenav: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['sidenav', { + static: false + }] + }], + matsidenav: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['matsidenav', { + static: false + }] + }], + fuxaview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['fuxaview', { + static: false + }] + }], + cardsview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['cardsview', { + static: false + }] + }], + alarmsview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['alarmsview', { + static: false + }] + }], + container: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['container', { + static: false + }] + }], + header: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.ViewChild, + args: ['header', { + static: false + }] + }] + }; +}; +HomeComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_33__.Component)({ + selector: 'app-home', + template: _home_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_home_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_7__.ProjectService, _angular_core__WEBPACK_IMPORTED_MODULE_33__.ChangeDetectorRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialog, _angular_router__WEBPACK_IMPORTED_MODULE_35__.Router, _angular_router__WEBPACK_IMPORTED_MODULE_35__.ActivatedRoute, _services_hmi_service__WEBPACK_IMPORTED_MODULE_6__.HmiService, ngx_toastr__WEBPACK_IMPORTED_MODULE_36__.ToastrService, _services_script_service__WEBPACK_IMPORTED_MODULE_20__.ScriptService, _services_language_service__WEBPACK_IMPORTED_MODULE_21__.LanguageService, _services_auth_service__WEBPACK_IMPORTED_MODULE_8__.AuthService, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_9__.GaugesManager])], HomeComponent); + +let DialogUserInfo = class DialogUserInfo { + dialogRef; + data; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onOkClick() { + this.dialogRef.close(true); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_33__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +DialogUserInfo = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_33__.Component)({ + selector: 'user-info', + template: _userinfo_dialog_html_ngResource__WEBPACK_IMPORTED_MODULE_2__ +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_34__.MatLegacyDialogRef, Object])], DialogUserInfo); + + +/***/ }), + +/***/ 4575: +/*!********************************************!*\ + !*** ./src/app/iframe/iframe.component.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ IframeComponent: () => (/* binding */ IframeComponent) +/* harmony export */ }); +/* harmony import */ var _iframe_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./iframe.component.html?ngResource */ 97965); +/* harmony import */ var _iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iframe.component.css?ngResource */ 74929); +/* harmony import */ var _iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 36480); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 27947); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let IframeComponent = class IframeComponent { + activeroute; + sanitizer; + subscription; + urlSafe; + _link; + set link(value) { + this._link = value; + this.loadLink(value); + } + constructor(activeroute, sanitizer) { + this.activeroute = activeroute; + this.sanitizer = sanitizer; + } + ngOnInit() { + if (this._link) { + // input + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this._link); + } else { + this.subscription = this.activeroute.params.subscribe(params => { + // routing + this._link = params['url']; + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this._link); + }); + } + } + ngOnDestroy() { + if (this.subscription) { + this.subscription.unsubscribe(); + } + } + loadLink(link) { + this._link = link; + if (this._link) { + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this._link); + } + } + static ctorParameters = () => [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_2__.ActivatedRoute + }, { + type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.DomSanitizer + }]; + static propDecorators = { + link: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input + }] + }; +}; +IframeComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ + selector: 'app-iframe', + template: _iframe_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_iframe_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_2__.ActivatedRoute, _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.DomSanitizer])], IframeComponent); + + +/***/ }), + +/***/ 95093: +/*!**********************************************************************************!*\ + !*** ./src/app/integrations/node-red/node-red-flows/node-red-flows.component.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NodeRedFlowsComponent: () => (/* binding */ NodeRedFlowsComponent) +/* harmony export */ }); +/* harmony import */ var _node_red_flows_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node-red-flows.component.html?ngResource */ 83172); +/* harmony import */ var _node_red_flows_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node-red-flows.component.scss?ngResource */ 5453); +/* harmony import */ var _node_red_flows_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_red_flows_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/platform-browser */ 36480); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let NodeRedFlowsComponent = class NodeRedFlowsComponent { + activeroute; + sanitizer; + projectService; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.Subject(); + urlSafe; + _link; + set link(value) { + this._link = value; + this.loadLink(value); + } + constructor(activeroute, sanitizer, projectService) { + this.activeroute = activeroute; + this.sanitizer = sanitizer; + this.projectService = projectService; + } + ngOnInit() { + if (this._link) { + // input + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this._link); + } else { + this.activeroute.params.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this.destroy$)).subscribe(params => { + // routing + this._link = params['url'] || '/nodered/'; + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this._link); + }); + } + } + ngOnDestroy() { + this.projectService.saveProject(_services_project_service__WEBPACK_IMPORTED_MODULE_2__.SaveMode.Current); + this.destroy$.next(null); + this.destroy$.complete(); + } + loadLink(link) { + this._link = link; + if (this._link) { + // Convert relative URLs to absolute URLs + let absoluteUrl = this._link; + if (this._link.startsWith('/')) { + // Relative URL starting with / - add current origin + absoluteUrl = window.location.origin + this._link; + } else if (!this._link.startsWith('http://') && !this._link.startsWith('https://')) { + // Relative URL without leading / - add current origin and / + absoluteUrl = window.location.origin + '/' + this._link; + } + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(absoluteUrl); + } + } + static ctorParameters = () => [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_5__.ActivatedRoute + }, { + type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__.DomSanitizer + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; + static propDecorators = { + link: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input + }] + }; +}; +NodeRedFlowsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-node-red-flows', + template: _node_red_flows_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_node_red_flows_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_5__.ActivatedRoute, _angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__.DomSanitizer, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], NodeRedFlowsComponent); + + +/***/ }), + +/***/ 90526: +/*!**************************************!*\ + !*** ./src/app/lab/lab.component.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LabComponent: () => (/* binding */ LabComponent) +/* harmony export */ }); +/* harmony import */ var _lab_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lab.component.html?ngResource */ 2103); +/* harmony import */ var _lab_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lab.component.css?ngResource */ 51778); +/* harmony import */ var _lab_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lab_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/app.service */ 49982); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var _tester_tester_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../tester/tester.service */ 34605); +/* harmony import */ var _tester_tester_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../tester/tester.component */ 54442); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let LabComponent = class LabComponent { + projectService; + appService; + gaugesManager; + changeDetector; + testerService; + entry; + tester; + currentView = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.View(); + hmi = new _models_hmi__WEBPACK_IMPORTED_MODULE_4__.Hmi(); + svgMain; + componentRef; + labView = null; + backgroudColor = 'unset'; + subscriptionLoad; + constructor(projectService, appService, gaugesManager, changeDetector, testerService) { + this.projectService = projectService; + this.appService = appService; + this.gaugesManager = gaugesManager; + this.changeDetector = changeDetector; + this.testerService = testerService; + } + ngOnInit() { + try { + this.appService.showLoading(true); + let hmi = this.projectService.getHmi(); + if (!hmi) { + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(load => { + this.appService.showLoading(false); + this.loadHmi(); + }, error => { + this.appService.showLoading(false); + console.error('Error loadHMI'); + }); + } else { + this.appService.showLoading(false); + this.loadHmi(); + } + this.changeDetector.detectChanges(); + } catch (err) { + this.appService.showLoading(false); + console.error(err); + } + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + onTest() { + this.tester.setSignals(this.gaugesManager.getMappedGaugesSignals(true)); + this.testerService.toggle(true); + } + loadHmi() { + this.hmi = this.projectService.getHmi(); + if (this.hmi && this.hmi.views && this.hmi.views.length > 0) { + this.currentView = this.hmi.views[0]; + this.labView = this.hmi.views[0]; + let oldsel = localStorage.getItem('@frango.webeditor.currentview'); + if (oldsel) { + for (let i = 0; i < this.hmi.views.length; i++) { + if (this.hmi.views[i].name === oldsel) { + this.currentView = this.hmi.views[i]; + this.setBackground(); + break; + } + } + } + } + } + setBackground() { + if (this.currentView && this.currentView.profile) { + this.backgroudColor = this.currentView.profile.bkcolor; + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService + }, { + type: _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_5__.GaugesManager + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ChangeDetectorRef + }, { + type: _tester_tester_service__WEBPACK_IMPORTED_MODULE_6__.TesterService + }]; + static propDecorators = { + entry: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['messagecontainer', { + read: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewContainerRef, + static: false + }] + }], + tester: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['tester', { + static: false + }] + }] + }; +}; +LabComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + template: _lab_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_lab_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_5__.GaugesManager, _angular_core__WEBPACK_IMPORTED_MODULE_8__.ChangeDetectorRef, _tester_tester_service__WEBPACK_IMPORTED_MODULE_6__.TesterService])], LabComponent); + + +/***/ }), + +/***/ 34839: +/*!*****************************************************************************!*\ + !*** ./src/app/language/language-text-list/language-text-list.component.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LanguageTextListComponent: () => (/* binding */ LanguageTextListComponent) +/* harmony export */ }); +/* harmony import */ var _language_text_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./language-text-list.component.html?ngResource */ 8928); +/* harmony import */ var _language_text_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./language-text-list.component.scss?ngResource */ 27590); +/* harmony import */ var _language_text_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_language_text_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/cdk/collections */ 20636); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _language_text_property_language_text_property_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../language-text-property/language-text-property.component */ 63785); +/* harmony import */ var _language_type_property_language_type_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../language-type-property/language-type-property.component */ 7537); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + +let LanguageTextListComponent = class LanguageTextListComponent { + dialog; + translateService; + projectService; + displayedColumns = ['select', 'id', 'group', 'value', 'remove']; + languages = []; + defaultLanguage; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_6__.MatLegacyTableDataSource([]); + selection = new _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_7__.SelectionModel(true, []); + subscriptionLoad; + table; + sort; + constructor(dialog, translateService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + } + ngOnInit() { + this.loadTexts(); + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(res => { + this.loadTexts(); + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + onAddText() { + this.editText(); + } + onEditText(text) { + this.editText(text); + } + onRemoveText(text) { + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__.ConfirmDialogComponent, { + position: { + top: '60px' + }, + data: { + msg: this.translateService.instant('msg.texts-text-remove', { + value: text.name + }) + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.removeText(text); + this.loadTexts(); + } + }); + } + editText(text) { + let dialogRef = this.dialog.open(_language_text_property_language_text_property_component__WEBPACK_IMPORTED_MODULE_3__.LanguageTextPropertyComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: { + text: text + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.setText(result); + this.loadTexts(); + } + }); + } + onEditLanguage() { + let dialogRef = this.dialog.open(_language_type_property_language_type_property_component__WEBPACK_IMPORTED_MODULE_4__.LanguageTypePropertyComponent, { + position: { + top: '60px' + }, + disableClose: true + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.setLanguages(result); + this.loadTexts(); + } + }); + } + loadTexts() { + const rawLanguages = this.projectService.getLanguages().options; + this.defaultLanguage = this.projectService.getLanguages().default; + this.languages = Array.isArray(rawLanguages) ? rawLanguages : Object.values(rawLanguages); + const valueIndex = this.displayedColumns.indexOf('value'); + const removeIndex = this.displayedColumns.indexOf('remove'); + this.displayedColumns = [...this.displayedColumns.slice(0, valueIndex + 1), ...this.languages.map(lang => `lang-${lang.id}`), ...this.displayedColumns.slice(removeIndex)]; + const texts = this.projectService.getTexts(); + texts.forEach(text => { + if (!text.translations) { + text.translations = {}; + } + this.languages.forEach(lang => { + if (!(lang.id in text.translations)) { + text.translations[lang.id] = ''; + } + }); + }); + this.dataSource.data = texts; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_6__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_11__.MatSort, { + static: false + }] + }] + }; +}; +LanguageTextListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-language-text-list', + template: _language_text_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_language_text_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], LanguageTextListComponent); + + +/***/ }), + +/***/ 63785: +/*!*************************************************************************************!*\ + !*** ./src/app/language/language-text-property/language-text-property.component.ts ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LanguageTextPropertyComponent: () => (/* binding */ LanguageTextPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _language_text_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./language-text-property.component.html?ngResource */ 12787); +/* harmony import */ var _language_text_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./language-text-property.component.scss?ngResource */ 86218); +/* harmony import */ var _language_text_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_language_text_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let LanguageTextPropertyComponent = class LanguageTextPropertyComponent { + dialogRef; + fb; + projectService; + data; + formGroup; + languages = []; + defaultLanguage; + nameExists = false; + constructor(dialogRef, fb, projectService, data) { + this.dialogRef = dialogRef; + this.fb = fb; + this.projectService = projectService; + this.data = data; + } + ngOnInit() { + let controls = { + name: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(this.data.text?.name || '', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.pattern(/^[a-zA-Z0-9_]+$/)]), + group: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(this.data.text?.group || ''), + value: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(this.data.text?.value || '') + }; + this.languages = this.projectService.getLanguages().options || []; + this.defaultLanguage = this.projectService.getLanguages().default; + this.languages.forEach(lang => { + controls[`translation_${lang.id}`] = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(this.data.text?.translations?.[lang.id] || ''); + }); + this.formGroup = this.fb.group(controls); + } + checkNameExists() { + const name = this.formGroup?.get('name')?.value; + this.nameExists = this.projectService.getTexts()?.find(text => text.name === name && text.id !== this.data.text.id) ? true : false; + return this.nameExists ? { + nameTaken: true + } : null; + } + clearNameError() { + this.nameExists = false; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + if (this.formGroup.valid) { + const updatedText = { + ...this.data.text, + name: this.formGroup.value.name, + group: this.formGroup.value.group, + value: this.formGroup.value.value, + translations: this.languages.reduce((acc, lang) => { + acc[lang.id] = this.formGroup.value[`translation_${lang.id}`]; + return acc; + }, {}) + }; + this.dialogRef.close(updatedText); + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +LanguageTextPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-language-text-property', + template: _language_text_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_language_text_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, Object])], LanguageTextPropertyComponent); + + +/***/ }), + +/***/ 7537: +/*!*************************************************************************************!*\ + !*** ./src/app/language/language-type-property/language-type-property.component.ts ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LanguageTypePropertyComponent: () => (/* binding */ LanguageTypePropertyComponent) +/* harmony export */ }); +/* harmony import */ var _language_type_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./language-type-property.component.html?ngResource */ 93934); +/* harmony import */ var _language_type_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./language-type-property.component.scss?ngResource */ 20457); +/* harmony import */ var _language_type_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_language_type_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let LanguageTypePropertyComponent = class LanguageTypePropertyComponent { + dialogRef; + fb; + projectService; + languagesForm; + constructor(dialogRef, fb, projectService) { + this.dialogRef = dialogRef; + this.fb = fb; + this.projectService = projectService; + } + ngOnInit() { + const languages = this.projectService.getLanguages(); + this.languagesForm = this.fb.group({ + languages: this.fb.array([], this.uniqueLanguageIdValidator), + defaultId: [languages.default?.id || 'EN', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.pattern('^[A-Za-z]{2}$')]], + defaultName: [languages.default?.name || 'English', _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required] + }); + this.setLanguages(languages.options); + } + get languages() { + return this.languagesForm?.get('languages') || new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormArray([]); + } + setLanguages(langs) { + const languagesArray = this.languagesForm.get('languages'); + langs.forEach(lang => { + languagesArray.push(this.createLanguageForm(lang)); + }); + } + createLanguageForm(lang) { + return this.fb.group({ + id: [lang?.id || '', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.pattern('^[A-Za-z]{2}$')]], + name: [lang?.name || '', _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required] + }); + } + uniqueLanguageIdValidator(control) { + const formArray = control; + const ids = formArray.controls.map(group => group.get('id')?.value?.toLowerCase()); + const hasDuplicates = ids.some((id, index) => id && ids.indexOf(id) !== index); + return hasDuplicates ? { + duplicateId: true + } : null; + } + onAddLanguage() { + this.languages.push(this.createLanguageForm()); + } + onRemoveLanguage(index) { + this.languages.removeAt(index); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close({ + options: this.languagesForm.getRawValue().languages, + default: { + id: this.languagesForm.get('defaultId').value, + name: this.languagesForm.get('defaultName').value + } + }); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; +}; +LanguageTypePropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-language-type-property', + template: _language_type_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_language_type_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], LanguageTypePropertyComponent); + + +/***/ }), + +/***/ 2014: +/*!******************************************!*\ + !*** ./src/app/login/login.component.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LoginComponent: () => (/* binding */ LoginComponent) +/* harmony export */ }); +/* harmony import */ var _login_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./login.component.html?ngResource */ 82010); +/* harmony import */ var _login_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./login.component.css?ngResource */ 61049); +/* harmony import */ var _login_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_login_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_services/auth.service */ 48333); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _framework_ngx_touch_keyboard_ngx_touch_keyboard_directive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../framework/ngx-touch-keyboard/ngx-touch-keyboard.directive */ 7658); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let LoginComponent = class LoginComponent { + authService; + projectService; + translateService; + dialogRef; + data; + touchKeyboard; + loading = false; + showPassword = false; + submitLoading = false; + messageError; + username = new _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormControl(); + password = new _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormControl(); + errorEnabled = false; + disableCancel = false; + constructor(authService, projectService, translateService, dialogRef, data) { + this.authService = authService; + this.projectService = projectService; + this.translateService = translateService; + this.dialogRef = dialogRef; + this.data = data; + const hmi = this.projectService.getHmi(); + this.disableCancel = hmi?.layout?.loginonstart && hmi.layout?.loginoverlaycolor !== _models_hmi__WEBPACK_IMPORTED_MODULE_5__.LoginOverlayColorType.none; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.errorEnabled = true; + this.messageError = ''; + this.signIn(); + } + isValidate() { + if (this.username.value && this.password.value) { + return true; + } + return false; + } + signIn() { + this.submitLoading = true; + this.authService.signIn(this.username.value, this.password.value).subscribe(result => { + this.submitLoading = false; + this.dialogRef.close(true); + this.projectService.reload(); + }, error => { + this.submitLoading = false; + this.translateService.get('msg.signin-failed').subscribe(txt => this.messageError = txt); + }); + } + keyDownStopPropagation(event) { + event.stopPropagation(); + } + onFocus(event) { + const hmi = this.projectService.getHmi(); + if (hmi?.layout?.inputdialog?.includes('keyboard')) { + if (hmi.layout.inputdialog === 'keyboardFullScreen') { + this.touchKeyboard.ngxTouchKeyboardFullScreen = true; + } + this.touchKeyboard.closePanel(); + const targetElement = event.target; + const elementRef = new _angular_core__WEBPACK_IMPORTED_MODULE_7__.ElementRef(targetElement); + this.touchKeyboard.openPanel(elementRef); + } + } + static ctorParameters = () => [{ + type: _services_auth_service__WEBPACK_IMPORTED_MODULE_2__.AuthService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + touchKeyboard: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, + args: ['touchKeyboard', { + static: false + }] + }] + }; +}; +LoginComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-login', + template: _login_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_login_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_auth_service__WEBPACK_IMPORTED_MODULE_2__.AuthService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef, Object])], LoginComponent); + + +/***/ }), + +/***/ 46657: +/*!**************************************************!*\ + !*** ./src/app/logs-view/logs-view.component.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LogsViewComponent: () => (/* binding */ LogsViewComponent) +/* harmony export */ }); +/* harmony import */ var _logs_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logs-view.component.html?ngResource */ 20130); +/* harmony import */ var _logs_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logs-view.component.css?ngResource */ 65427); +/* harmony import */ var _logs_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_logs_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _services_diagnose_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_services/diagnose.service */ 90569); +/* harmony import */ var _services_app_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/app.service */ 49982); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let LogsViewComponent = class LogsViewComponent { + diagnoseService; + appService; + table; + sort; + paginator; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_4__.MatLegacyTableDataSource([]); + ontimeFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + typeFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + sourceFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + textFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__.UntypedFormControl(); + filteredValues = { + ontime: '', + source: '', + type: '', + text: '' + }; + displayColumns = ['ontime', 'type', 'source', 'text']; + tableView = false; + content = ''; + logs = { + selected: 'fuxa.log', + files: [] + }; + constructor(diagnoseService, appService) { + this.diagnoseService = diagnoseService; + this.appService = appService; + } + ngAfterViewInit() { + this.diagnoseService.getLogsDir().subscribe(result => { + this.logs.files = result; + }, err => { + console.error('get Logs err: ' + err); + }); + this.loadLogs(this.logs.selected); + } + loadLogs(logfile) { + this.appService.showLoading(true); + this.diagnoseService.getLogs({ + file: logfile + }).subscribe(result => { + this.content = result.body.replace(new RegExp('\n', 'g'), '
    '); + this.appService.showLoading(false); + }, err => { + this.appService.showLoading(false); + console.error('get Logs err: ' + err); + }); + } + static ctorParameters = () => [{ + type: _services_diagnose_service__WEBPACK_IMPORTED_MODULE_2__.DiagnoseService + }, { + type: _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_4__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_7__.MatSort, { + static: false + }] + }], + paginator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ViewChild, + args: [_angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_8__.MatLegacyPaginator, { + static: false + }] + }] + }; +}; +LogsViewComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-logs-view', + template: _logs_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_logs_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_diagnose_service__WEBPACK_IMPORTED_MODULE_2__.DiagnoseService, _services_app_service__WEBPACK_IMPORTED_MODULE_3__.AppService])], LogsViewComponent); + + +/***/ }), + +/***/ 81721: +/*!*****************************************************************************!*\ + !*** ./src/app/maps/maps-location-import/maps-location-import.component.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MapsLocationImportComponent: () => (/* binding */ MapsLocationImportComponent) +/* harmony export */ }); +/* harmony import */ var _maps_location_import_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-location-import.component.html?ngResource */ 29155); +/* harmony import */ var _maps_location_import_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-location-import.component.scss?ngResource */ 15684); +/* harmony import */ var _maps_location_import_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_maps_location_import_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 75043); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 79736); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let MapsLocationImportComponent = class MapsLocationImportComponent { + dialogRef; + projectService; + data; + formGroup; + locationFilter = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(''); + locations$; + allLocations = []; + constructor(dialogRef, projectService, data) { + this.dialogRef = dialogRef; + this.projectService = projectService; + this.data = data; + this.formGroup = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormGroup({ + location: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.FormControl(null, [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required, this.locationValidator.bind(this)]) + }); + } + ngOnInit() { + this.allLocations = this.projectService.getMapsLocations()?.filter(location => !this.data?.some(d => d.id === location.id)); + this.locations$ = this.formGroup.get('location').valueChanges.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_4__.startWith)(''), (0,rxjs__WEBPACK_IMPORTED_MODULE_5__.map)(value => this._filterLocations(value || ''))); + } + _filterLocations(value) { + let filterValue = ''; + if (typeof value === 'string') { + filterValue = value.toLowerCase(); + } else if (value && value.name) { + filterValue = value.name.toLowerCase(); + } + return this.allLocations.filter(location => location.name.toLowerCase().includes(filterValue)); + } + displayFn(location) { + return location ? location.name : ''; + } + locationValidator(control) { + const selectedLocation = control.value; + if (selectedLocation && typeof selectedLocation === 'object' && selectedLocation.id) { + return null; + } + if (typeof selectedLocation === 'string') { + const match = this.allLocations.find(loc => loc.name.toLowerCase() === selectedLocation.toLowerCase()); + return match ? null : { + invalidLocation: true + }; + } + return { + invalidLocation: true + }; + } + onLocationSelected(location) { + this.formGroup.get('location').setValue(location); + this.formGroup.get('location').updateValueAndValidity(); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + const selectedLocation = this.formGroup.get('location').value; + let location; + if (selectedLocation && typeof selectedLocation === 'object' && selectedLocation.id) { + location = selectedLocation; + } else if (typeof selectedLocation === 'string') { + location = this.allLocations.find(loc => loc.name === selectedLocation); + } + if (location) { + this.dialogRef.close(location); + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: Array, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +MapsLocationImportComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-maps-location-import', + template: _maps_location_import_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_maps_location_import_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, Array])], MapsLocationImportComponent); + + +/***/ }), + +/***/ 86909: +/*!*************************************************************************!*\ + !*** ./src/app/maps/maps-location-list/maps-location-list.component.ts ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MapsLocationListComponent: () => (/* binding */ MapsLocationListComponent) +/* harmony export */ }); +/* harmony import */ var _maps_location_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-location-list.component.html?ngResource */ 69969); +/* harmony import */ var _maps_location_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-location-list.component.scss?ngResource */ 38829); +/* harmony import */ var _maps_location_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_maps_location_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _maps_location_property_maps_location_property_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../maps-location-property/maps-location-property.component */ 64008); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let MapsLocationListComponent = class MapsLocationListComponent { + dialog; + translateService; + projectService; + displayedColumns = ['select', 'name', 'view', 'description', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_5__.MatLegacyTableDataSource([]); + locations; + viewNameMap = {}; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + table; + sort; + constructor(dialog, translateService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + } + ngOnInit() { + this.loadLocations(); + this.projectService.onLoadHmi.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.takeUntil)(this.destroy$)).subscribe(_ => { + this.loadLocations(); + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onAddLocation() { + this.editLocation(); + } + onEditLocation(location) { + this.editLocation(location); + } + onRemoveLocation(location) { + let msg = this.translateService.instant('msg.maps-location-remove', { + value: location.name + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_2__.ConfirmDialogComponent, { + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && location) { + this.projectService.removeMapsLocation(location).subscribe(result => { + this.loadLocations(); + }, err => { + console.error('remove Locations err: ' + err); + }); + } + }); + } + getViewName(viewId) { + return this.viewNameMap[viewId]; + } + loadLocations() { + this.viewNameMap = this.projectService.getViews().reduce((acc, obj) => { + acc[obj.id] = obj.name; + return acc; + }, {}); + this.dataSource.data = this.projectService.getMapsLocations(); + } + editLocation(location) { + let dialogRef = this.dialog.open(_maps_location_property_maps_location_property_component__WEBPACK_IMPORTED_MODULE_4__.MapsLocationPropertyComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: location + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.setMapsLocation(result, location).subscribe(() => { + this.loadLocations(); + }); + } + }); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_5__.MatLegacyTable, { + static: true + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_11__.MatSort, { + static: false + }] + }] + }; +}; +MapsLocationListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-maps-location-list', + template: _maps_location_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_maps_location_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService])], MapsLocationListComponent); + + +/***/ }), + +/***/ 64008: +/*!*********************************************************************************!*\ + !*** ./src/app/maps/maps-location-property/maps-location-property.component.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MapsLocationPropertyComponent: () => (/* binding */ MapsLocationPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _maps_location_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-location-property.component.html?ngResource */ 17272); +/* harmony import */ var _maps_location_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-location-property.component.scss?ngResource */ 96780); +/* harmony import */ var _maps_location_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_maps_location_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _models_maps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/maps */ 92688); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let MapsLocationPropertyComponent = class MapsLocationPropertyComponent { + dialogRef; + fb; + translateService; + projectService; + data; + location; + formGroup; + views = []; + constructor(dialogRef, fb, translateService, projectService, data) { + this.dialogRef = dialogRef; + this.fb = fb; + this.translateService = translateService; + this.projectService = projectService; + this.data = data; + this.location = this.data ?? new _models_maps__WEBPACK_IMPORTED_MODULE_3__.MapsLocation(_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getGUID(_models_maps__WEBPACK_IMPORTED_MODULE_3__.MAPSLOCATION_PREFIX)); + } + ngOnInit() { + this.views = this.projectService.getViews()?.filter(view => view.type !== _models_hmi__WEBPACK_IMPORTED_MODULE_5__.ViewType.maps); + this.formGroup = this.fb.group({ + name: [this.location.name, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required], + latitude: [this.location.latitude], + longitude: [this.location.longitude], + viewId: [this.location.viewId], + pageId: [this.location.pageId], + url: [this.location.url], + description: [this.location.description] + }); + this.formGroup.controls.name.addValidators(this.isValidName()); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.location = { + ...this.location, + ...this.formGroup.getRawValue() + }; + this.dialogRef.close(this.location); + } + isValidName() { + const names = this.projectService.getMapsLocations().map(ml => ml.name); + return control => { + if (this.location?.name === control.value) { + return null; + } + if (names?.indexOf(control.value) !== -1) { + return { + name: this.translateService.instant('msg.maps-location-name-exist') + }; + } + return null; + }; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _models_maps__WEBPACK_IMPORTED_MODULE_3__.MapsLocation, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +MapsLocationPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-maps-location-property', + template: _maps_location_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_maps_location_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _models_maps__WEBPACK_IMPORTED_MODULE_3__.MapsLocation])], MapsLocationPropertyComponent); + + +/***/ }), + +/***/ 84722: +/*!***************************************************************************************!*\ + !*** ./src/app/maps/maps-view/maps-fab-button-menu/maps-fab-button-menu.component.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MapsFabButtonMenuComponent: () => (/* binding */ MapsFabButtonMenuComponent) +/* harmony export */ }); +/* harmony import */ var _maps_fab_button_menu_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-fab-button-menu.component.html?ngResource */ 76810); +/* harmony import */ var _maps_fab_button_menu_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-fab-button-menu.component.scss?ngResource */ 56285); +/* harmony import */ var _maps_fab_button_menu_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_maps_fab_button_menu_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + +let MapsFabButtonMenuComponent = class MapsFabButtonMenuComponent { + changeDetector; + buttons = []; + isOpen = false; + buttonStyles = []; + constructor(changeDetector) { + this.changeDetector = changeDetector; + } + ngAfterViewInit() { + this.toggleMenu(); + this.changeDetector.detectChanges(); + } + toggleMenu() { + this.isOpen = !this.isOpen; + if (this.isOpen) { + this.calculateButtonPositions(); + } + } + calculateButtonPositions() { + const totalButtons = this.buttons.length; + let angles = []; + if (totalButtons === 1) { + angles = [0]; + } else if (totalButtons === 2) { + angles = [-30, 30]; + } else { + // 3 bottons + const angleStep = 120 / (totalButtons - 1); + angles = Array.from({ + length: totalButtons + }, (_, i) => -60 + i * angleStep); + } + const topPosition = 30; + const radius = 55; + this.buttonStyles = angles.map(angle => { + const radian = angle * (Math.PI / 180); + const x = Math.sin(radian) * radius; + const y = -Math.cos(radian) * radius; + return { + transform: `translate(${x}px, ${y - topPosition}px)` + }; + }); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef + }]; + static propDecorators = { + buttons: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input + }] + }; +}; +MapsFabButtonMenuComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Component)({ + selector: 'app-maps-fab-button-menu', + template: _maps_fab_button_menu_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_maps_fab_button_menu_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef])], MapsFabButtonMenuComponent); + + +/***/ }), + +/***/ 64241: +/*!*******************************************************!*\ + !*** ./src/app/maps/maps-view/maps-view.component.ts ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MapsViewComponent: () => (/* binding */ MapsViewComponent) +/* harmony export */ }); +/* harmony import */ var _maps_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maps-view.component.html?ngResource */ 2112); +/* harmony import */ var _maps_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maps-view.component.scss?ngResource */ 80896); +/* harmony import */ var _maps_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_maps_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! leaflet */ 97198); +/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gauges/gauges.component */ 80655); +/* harmony import */ var _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../fuxa-view/fuxa-view.component */ 33814); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_models/hmi */ 84126); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/material/legacy-menu */ 10662); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_maps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../_models/maps */ 92688); +/* harmony import */ var _maps_location_property_maps_location_property_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../maps-location-property/maps-location-property.component */ 64008); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var ngx_toastr__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ngx-toastr */ 37240); +/* harmony import */ var _maps_location_import_maps_location_import_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../maps-location-import/maps-location-import.component */ 81721); +/* harmony import */ var _maps_fab_button_menu_maps_fab_button_menu_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./maps-fab-button-menu/maps-fab-button-menu.component */ 84722); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + + + +let MapsViewComponent = class MapsViewComponent { + resolver; + injector; + dialog; + projectService; + appRef; + translateService; + toastr; + view; + hmi; + gaugesManager; + editMode; + onGoTo = new _angular_core__WEBPACK_IMPORTED_MODULE_12__.EventEmitter(); + menuTrigger; + menuTriggerButton; + mapContainer; + map = null; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_13__.Subject(); + lastClickLatLng; + lastClickMarker; + menuPosition = { + x: '0px', + y: '0px' + }; + locations = []; + lastClickMapLocation; + openPopups = []; + currentPopup = null; + constructor(resolver, injector, dialog, projectService, appRef, translateService, toastr) { + this.resolver = resolver; + this.injector = injector; + this.dialog = dialog; + this.projectService = projectService; + this.appRef = appRef; + this.translateService = translateService; + this.toastr = toastr; + } + ngAfterViewInit() { + let startLocation = [46.9466746335407, 7.444236656153662]; // Bern + if (this.view.property?.startLocation) { + startLocation = [this.view.property.startLocation.latitude, this.view.property.startLocation.longitude]; + } + setTimeout(() => { + this.map = leaflet__WEBPACK_IMPORTED_MODULE_2__.map('map').setView(startLocation, this.view.property?.startZoom || 13); + leaflet__WEBPACK_IMPORTED_MODULE_2__.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: '© FUXA' + }).addTo(this.map); + this.loadMapsResources(); + this.projectService.onLoadHmi.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_14__.takeUntil)(this.destroy$)).subscribe(_ => { + this.loadMapsResources(); + }); + this.initMapEvents(); + this.map.invalidateSize(); + }, 200); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + reload() { + this.loadMapsResources(); + } + initMapEvents() { + this.map.on('contextmenu', event => { + this.showContextMenu(event); + }); + this.map.on('click', () => { + this.menuTrigger.closeMenu(); + }); + } + loadMapsResources() { + this.hmi = this.projectService.getHmi(); + this.locations = this.view?.svgcontent ? this.projectService.getMapsLocations(JSON.parse(this.view.svgcontent)) : []; + this.clearMarker(); + const newIcon = leaflet__WEBPACK_IMPORTED_MODULE_2__.icon({ + iconUrl: 'assets/images/marker-icon.png', + shadowUrl: 'assets/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 45], + popupAnchor: [0, -34] + }); + this.locations.forEach(loc => { + const marker = leaflet__WEBPACK_IMPORTED_MODULE_2__.marker([loc.latitude, loc.longitude]).addTo(this.map); + marker['locationId'] = loc.id; + this.openMarkerTooltip(marker, loc); + marker.setIcon(newIcon); + marker.on('click', () => { + this.onClickMarker(loc, marker); + }); + marker.on('contextmenu', event => { + this.showContextMenu(event, marker); + }); + }); + this.map.on('popupopen', e => { + this.openPopups.push(e.popup); + }); + this.map.on('popupclose', e => { + const index = this.openPopups.indexOf(e.popup); + if (index > -1) { + this.openPopups.splice(index, 1); + } + e.popup = null; + }); + } + openMarkerTooltip(marker, location) { + marker.bindTooltip(`${location.name}`, { + permanent: false, + direction: 'top', + offset: [2, -35] + // className: "marker-label" + }); + } + + closeAllPopups() { + this.openPopups.forEach(popup => popup.close()); + this.openPopups.length = 0; + } + showContextMenu(event, marker) { + this.lastClickLatLng = event.latlng; + this.lastClickMarker = marker; + const mapContainer = this.map.getContainer().getBoundingClientRect(); + const posX = event.originalEvent.clientX - mapContainer.left; + const posY = event.originalEvent.clientY - mapContainer.top; + const triggerButton = this.menuTriggerButton.nativeElement; + triggerButton.style.left = `${posX}px`; + triggerButton.style.top = `${posY}px`; + triggerButton.style.position = 'absolute'; + triggerButton.style.display = 'block'; + this.menuTrigger.openMenu(); + } + onClickMarker(location, marker) { + if (this.currentPopup) { + this.currentPopup.on('remove', () => { + this.currentPopup = null; + this.showPopup(location, marker); + }); + this.map.closePopup(this.currentPopup); + } else { + this.showPopup(location, marker); + } + } + showPopup(location, marker) { + this.lastClickMapLocation = location; + if (!this.isToOpenMenu()) { + this.createCardPopup(location, marker); + } else { + this.showFabButton(location, marker); + } + } + showFabButton(location, marker) { + const container = document.createElement('div'); + const factory = this.resolver.resolveComponentFactory(_maps_fab_button_menu_maps_fab_button_menu_component__WEBPACK_IMPORTED_MODULE_11__.MapsFabButtonMenuComponent); + const componentRef = factory.create(this.injector); + this.appRef.attachView(componentRef.hostView); + container.appendChild(componentRef.hostView.rootNodes[0]); + container.style.width = '40px'; + var buttons = []; + if (location.viewId) { + buttons.push({ + icon: 'chat_bubble_outline', + action: () => { + this.map.closePopup(this.currentPopup); + this.createCardPopup(location, marker); + } + }); + } + if (location.pageId) { + buttons.push({ + icon: 'arrow_outward', + action: () => { + this.map.closePopup(this.currentPopup); + this.onGoTo?.emit(location.pageId); + } + }); + } + if (location.url) { + buttons.push({ + icon: 'open_in_new', + action: () => { + this.map.closePopup(this.currentPopup); + window.open(location.url, '_blank'); + } + }); + } + componentRef.instance.buttons = buttons; + this.currentPopup = leaflet__WEBPACK_IMPORTED_MODULE_2__.popup({ + closeButton: false, + autoClose: false, + closeOnClick: true, + offset: leaflet__WEBPACK_IMPORTED_MODULE_2__.point(0, 0) + }).setLatLng([location.latitude, location.longitude]).setContent(container).openOn(this.map); + this.currentPopup.on('remove', () => { + this.currentPopup = null; + }); + } + createCardPopup(location, marker) { + setTimeout(() => { + let viewIdToBind = 'map' + location?.viewId; + if (!location?.viewId || document.getElementById(viewIdToBind)) { + return; + } + const container = document.createElement('div'); + const factory = this.resolver.resolveComponentFactory(_fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_4__.FuxaViewComponent); + const componentRef = factory.create(this.injector); + componentRef.instance.gaugesManager = this.gaugesManager; + componentRef.instance.hmi = this.hmi; + componentRef.instance.view = this.hmi.views.find(view => view.id === location.viewId); + componentRef.instance.child = true; + container.setAttribute('id', viewIdToBind); + this.appRef.attachView(componentRef.hostView); + container.appendChild(componentRef.hostView.rootNodes[0]); + container.style.width = componentRef.instance.view.profile.width + 'px'; + this.currentPopup = leaflet__WEBPACK_IMPORTED_MODULE_2__.popup({ + autoClose: false, + closeOnClick: false, + offset: leaflet__WEBPACK_IMPORTED_MODULE_2__.point(0, -20) + }).setLatLng([location.latitude, location.longitude]).setContent(container).openOn(this.map); + this.currentPopup.on('remove', () => { + this.currentPopup = null; + }); + }, 250); + } + onCloseAllPopup() { + this.closeAllPopups(); + } + onAddLocation() { + let location = new _models_maps__WEBPACK_IMPORTED_MODULE_7__.MapsLocation(_helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getGUID(_models_maps__WEBPACK_IMPORTED_MODULE_7__.MAPSLOCATION_PREFIX)); + location.latitude = this.lastClickLatLng.lat; + location.longitude = this.lastClickLatLng.lng; + this.editLocation(location); + } + onEditLocation() { + var location = this.locations.find(loc => loc.id === this.lastClickMarker['locationId']); + if (location) { + this.editLocation(location); + } + } + onRemoveLocation() { + if (this.lastClickMarker) { + var locationIndex = this.locations.findIndex(loc => loc.id === this.lastClickMarker['locationId']); + if (locationIndex !== -1) { + this.locations.splice(locationIndex, 1); + this.view.svgcontent = JSON.stringify(this.locations.map(loc => loc.id)); + this.projectService.setViewAsync(this.view).then(() => { + this.map.removeLayer(this.lastClickMarker); + this.lastClickMarker = null; + this.loadMapsResources(); + }); + } + } + } + onSetStartLocation() { + this.view.property ??= new _models_hmi__WEBPACK_IMPORTED_MODULE_6__.ViewProperty(); + this.view.property.startLocation = new _models_maps__WEBPACK_IMPORTED_MODULE_7__.MapsLocation(_helpers_utils__WEBPACK_IMPORTED_MODULE_9__.Utils.getGUID(_models_maps__WEBPACK_IMPORTED_MODULE_7__.MAPSLOCATION_PREFIX)); + this.view.property.startLocation.latitude = this.lastClickLatLng.lat; + this.view.property.startLocation.longitude = this.lastClickLatLng.lng; + this.view.property.startZoom = this.map.getZoom(); + this.projectService.setViewAsync(this.view).then(() => { + this.toastr.success(this.translateService.instant('maps.edit-start-location-saved')); + }); + } + onImportLocation() { + let dialogRef = this.dialog.open(_maps_location_import_maps_location_import_component__WEBPACK_IMPORTED_MODULE_10__.MapsLocationImportComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: this.locations + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.insertLocations(result); + } + }); + } + isToOpenMenu() { + if (!this.lastClickMapLocation) { + return false; + } + const fields = [this.lastClickMapLocation.pageId, this.lastClickMapLocation.url]; + const definedCount = fields.filter(field => field !== undefined && field !== null && field !== '').length; + return definedCount >= 1; + } + clearMarker() { + this.map.eachLayer(layer => { + if (layer instanceof leaflet__WEBPACK_IMPORTED_MODULE_2__.Marker) { + this.map.removeLayer(layer); + } + }); + } + editLocation(location) { + let dialogRef = this.dialog.open(_maps_location_property_maps_location_property_component__WEBPACK_IMPORTED_MODULE_8__.MapsLocationPropertyComponent, { + position: { + top: '60px' + }, + disableClose: true, + data: location + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.setMapsLocation(result, location).subscribe(() => { + if (!this.locations.find(loc => loc.id === location.id)) { + this.insertLocations(location); + } else { + this.loadMapsResources(); + } + }); + } + }); + } + insertLocations(location) { + this.locations.push(location); + this.view.svgcontent = JSON.stringify(this.locations.map(loc => loc.id)); + this.projectService.setViewAsync(this.view).then(() => { + this.loadMapsResources(); + }); + } + static ctorParameters = () => [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ComponentFactoryResolver + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Injector + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ApplicationRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__.TranslateService + }, { + type: ngx_toastr__WEBPACK_IMPORTED_MODULE_17__.ToastrService + }]; + static propDecorators = { + view: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Input + }], + hmi: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Input + }], + gaugesManager: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Input + }], + editMode: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Input + }], + onGoTo: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Output + }], + menuTrigger: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_18__.MatLegacyMenuTrigger] + }], + menuTriggerButton: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: ['menuTrigger', { + read: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ElementRef + }] + }], + mapContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: ['mapContainer', { + static: false + }] + }] + }; +}; +MapsViewComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-maps-view', + template: _maps_view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_maps_view_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_12__.ComponentFactoryResolver, _angular_core__WEBPACK_IMPORTED_MODULE_12__.Injector, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_15__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, _angular_core__WEBPACK_IMPORTED_MODULE_12__.ApplicationRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__.TranslateService, ngx_toastr__WEBPACK_IMPORTED_MODULE_17__.ToastrService])], MapsViewComponent); + + +/***/ }), + +/***/ 29099: +/*!************************************!*\ + !*** ./src/app/material.module.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ MaterialModule: () => (/* binding */ MaterialModule) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_autocomplete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-autocomplete */ 92718); +/* harmony import */ var _angular_material_legacy_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-button */ 78654); +/* harmony import */ var _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/button-toggle */ 10727); +/* harmony import */ var _angular_material_legacy_card__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-card */ 57665); +/* harmony import */ var _angular_material_legacy_checkbox__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-checkbox */ 61612); +/* harmony import */ var _angular_material_legacy_chips__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-chips */ 38940); +/* harmony import */ var _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/datepicker */ 82226); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_expansion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/expansion */ 88060); +/* harmony import */ var _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/material/grid-list */ 647); +/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/material/icon */ 86515); +/* harmony import */ var _angular_material_legacy_input__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/material/legacy-input */ 60166); +/* harmony import */ var _angular_material_legacy_list__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/legacy-list */ 39038); +/* harmony import */ var _angular_material_legacy_core__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/material/legacy-core */ 60773); +/* harmony import */ var _angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @angular/material/legacy-menu */ 10662); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 57796); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 39687); +/* harmony import */ var _paginator_paginator_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./paginator/paginator-intl */ 94741); +/* harmony import */ var _angular_material_legacy_progress_bar__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/material/legacy-progress-bar */ 27863); +/* harmony import */ var _angular_material_legacy_progress_spinner__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/material/legacy-progress-spinner */ 3401); +/* harmony import */ var _angular_material_legacy_radio__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @angular/material/legacy-radio */ 57404); +/* harmony import */ var _angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/material/legacy-select */ 92198); +/* harmony import */ var _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @angular/material/sidenav */ 31465); +/* harmony import */ var _angular_material_legacy_slider__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/material/legacy-slider */ 52098); +/* harmony import */ var _angular_material_legacy_slide_toggle__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @angular/material/legacy-slide-toggle */ 86837); +/* harmony import */ var _angular_material_legacy_snack_bar__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/material/legacy-snack-bar */ 59074); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_tabs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @angular/material/legacy-tabs */ 53101); +/* harmony import */ var _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @angular/material/toolbar */ 52484); +/* harmony import */ var _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @angular/material/legacy-tooltip */ 62899); +/* harmony import */ var _angular_material_stepper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/stepper */ 86272); +/* harmony import */ var _angular_material_moment_adapter__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material-moment-adapter */ 73392); +/* harmony import */ var _angular_cdk_table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/table */ 70845); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +let MaterialModule = class MaterialModule {}; +MaterialModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.NgModule)({ + imports: [_angular_cdk_table__WEBPACK_IMPORTED_MODULE_2__.CdkTableModule, _angular_material_legacy_autocomplete__WEBPACK_IMPORTED_MODULE_3__.MatLegacyAutocompleteModule, _angular_material_legacy_button__WEBPACK_IMPORTED_MODULE_4__.MatLegacyButtonModule, _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_5__.MatButtonToggleModule, _angular_material_legacy_card__WEBPACK_IMPORTED_MODULE_6__.MatLegacyCardModule, _angular_material_legacy_checkbox__WEBPACK_IMPORTED_MODULE_7__.MatLegacyCheckboxModule, _angular_material_legacy_chips__WEBPACK_IMPORTED_MODULE_8__.MatLegacyChipsModule, _angular_material_stepper__WEBPACK_IMPORTED_MODULE_9__.MatStepperModule, _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_10__.MatDatepickerModule, _angular_material_moment_adapter__WEBPACK_IMPORTED_MODULE_11__.MatMomentDateModule, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogModule, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_13__.MatExpansionModule, _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__.MatGridListModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__.MatIconModule, _angular_material_legacy_input__WEBPACK_IMPORTED_MODULE_16__.MatLegacyInputModule, _angular_material_legacy_list__WEBPACK_IMPORTED_MODULE_17__.MatLegacyListModule, _angular_material_legacy_core__WEBPACK_IMPORTED_MODULE_18__.MatLegacyOptionModule, _angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_19__.MatLegacyMenuModule, _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_20__.MatLegacyPaginatorModule, _angular_material_legacy_progress_bar__WEBPACK_IMPORTED_MODULE_21__.MatLegacyProgressBarModule, _angular_material_legacy_progress_spinner__WEBPACK_IMPORTED_MODULE_22__.MatLegacyProgressSpinnerModule, _angular_material_legacy_radio__WEBPACK_IMPORTED_MODULE_23__.MatLegacyRadioModule, _angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_24__.MatLegacySelectModule, _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_25__.MatSidenavModule, _angular_material_legacy_slider__WEBPACK_IMPORTED_MODULE_26__.MatLegacySliderModule, _angular_material_legacy_slide_toggle__WEBPACK_IMPORTED_MODULE_27__.MatLegacySlideToggleModule, _angular_material_legacy_snack_bar__WEBPACK_IMPORTED_MODULE_28__.MatLegacySnackBarModule, _angular_material_sort__WEBPACK_IMPORTED_MODULE_29__.MatSortModule, _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_30__.MatLegacyTableModule, _angular_material_legacy_tabs__WEBPACK_IMPORTED_MODULE_31__.MatLegacyTabsModule, _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__.MatToolbarModule, _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_33__.MatLegacyTooltipModule], + exports: [_angular_cdk_table__WEBPACK_IMPORTED_MODULE_2__.CdkTableModule, _angular_material_legacy_autocomplete__WEBPACK_IMPORTED_MODULE_3__.MatLegacyAutocompleteModule, _angular_material_legacy_button__WEBPACK_IMPORTED_MODULE_4__.MatLegacyButtonModule, _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_5__.MatButtonToggleModule, _angular_material_legacy_card__WEBPACK_IMPORTED_MODULE_6__.MatLegacyCardModule, _angular_material_legacy_checkbox__WEBPACK_IMPORTED_MODULE_7__.MatLegacyCheckboxModule, _angular_material_legacy_chips__WEBPACK_IMPORTED_MODULE_8__.MatLegacyChipsModule, _angular_material_stepper__WEBPACK_IMPORTED_MODULE_9__.MatStepperModule, _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_10__.MatDatepickerModule, _angular_material_moment_adapter__WEBPACK_IMPORTED_MODULE_11__.MatMomentDateModule, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogModule, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_13__.MatExpansionModule, _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__.MatGridListModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__.MatIconModule, _angular_material_legacy_input__WEBPACK_IMPORTED_MODULE_16__.MatLegacyInputModule, _angular_material_legacy_core__WEBPACK_IMPORTED_MODULE_18__.MatLegacyOptionModule, _angular_material_legacy_list__WEBPACK_IMPORTED_MODULE_17__.MatLegacyListModule, _angular_material_legacy_menu__WEBPACK_IMPORTED_MODULE_19__.MatLegacyMenuModule, _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_20__.MatLegacyPaginatorModule, _angular_material_legacy_progress_bar__WEBPACK_IMPORTED_MODULE_21__.MatLegacyProgressBarModule, _angular_material_legacy_progress_spinner__WEBPACK_IMPORTED_MODULE_22__.MatLegacyProgressSpinnerModule, _angular_material_legacy_radio__WEBPACK_IMPORTED_MODULE_23__.MatLegacyRadioModule, _angular_material_legacy_select__WEBPACK_IMPORTED_MODULE_24__.MatLegacySelectModule, _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_25__.MatSidenavModule, _angular_material_legacy_slider__WEBPACK_IMPORTED_MODULE_26__.MatLegacySliderModule, _angular_material_legacy_slide_toggle__WEBPACK_IMPORTED_MODULE_27__.MatLegacySlideToggleModule, _angular_material_legacy_snack_bar__WEBPACK_IMPORTED_MODULE_28__.MatLegacySnackBarModule, _angular_material_sort__WEBPACK_IMPORTED_MODULE_29__.MatSortModule, _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_30__.MatLegacyTableModule, _angular_material_legacy_tabs__WEBPACK_IMPORTED_MODULE_31__.MatLegacyTabsModule, _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__.MatToolbarModule, _angular_material_legacy_tooltip__WEBPACK_IMPORTED_MODULE_33__.MatLegacyTooltipModule], + providers: [{ + provide: _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_34__.MatPaginatorIntl, + useClass: _paginator_paginator_intl__WEBPACK_IMPORTED_MODULE_0__.CustomMatPaginatorIntl + }] +})], MaterialModule); + + +/***/ }), + +/***/ 86645: +/*!********************************************************************************!*\ + !*** ./src/app/notifications/notification-list/notification-list.component.ts ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NotificationListComponent: () => (/* binding */ NotificationListComponent) +/* harmony export */ }); +/* harmony import */ var _notification_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification-list.component.html?ngResource */ 43169); +/* harmony import */ var _notification_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notification-list.component.scss?ngResource */ 89645); +/* harmony import */ var _notification_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_notification_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _notification_property_notification_property_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../notification-property/notification-property.component */ 67597); +/* harmony import */ var _models_notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_models/notification */ 96841); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_models/alarm */ 38238); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + +let NotificationListComponent = class NotificationListComponent { + dialog; + translateService; + projectService; + displayedColumns = ['select', 'name', 'receiver', 'delay', 'interval', 'type', 'enabled', 'subscriptions', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_7__.MatLegacyTableDataSource([]); + notificationAlarm = Object.keys(_models_notification__WEBPACK_IMPORTED_MODULE_4__.NotificationsType).find(key => _models_notification__WEBPACK_IMPORTED_MODULE_4__.NotificationsType[key] === _models_notification__WEBPACK_IMPORTED_MODULE_4__.NotificationsType.alarms); + notificationTrigger = Object.keys(_models_notification__WEBPACK_IMPORTED_MODULE_4__.NotificationsType).find(key => _models_notification__WEBPACK_IMPORTED_MODULE_4__.NotificationsType[key] === _models_notification__WEBPACK_IMPORTED_MODULE_4__.NotificationsType.trigger); + alarmsType = {}; + alarmsEnum = _models_alarm__WEBPACK_IMPORTED_MODULE_5__.AlarmsType; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_8__.Subject(); + table; + sort; + constructor(dialog, translateService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + } + ngOnInit() { + this.loadNotifications(); + this.projectService.onLoadHmi.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.takeUntil)(this.destroy$)).subscribe(res => { + this.loadNotifications(); + }); + Object.values(this.alarmsEnum).forEach(key => { + this.alarmsType[key] = this.translateService.instant('alarm.property-' + key); + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onAddNotification() { + this.editNotification(); + } + onEditNotification(notification) { + this.editNotification(notification); + } + onRemoveNotification(notification) { + let msg = this.translateService.instant('msg.notification-remove', { + value: notification.name + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_6__.ConfirmDialogComponent, { + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.removeNotification(notification).subscribe(() => { + this.loadNotifications(); + }); + } + }); + } + editNotification(notification) { + let dialogRef = this.dialog.open(_notification_property_notification_property_component__WEBPACK_IMPORTED_MODULE_3__.NotificationPropertyComponent, { + disableClose: true, + data: { + notification: notification + }, + position: { + top: '80px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.projectService.setNotification(result, notification).subscribe(() => { + this.loadNotifications(); + }); + } + }); + } + getSubProperty(notification) { + if (notification) { + if (notification.type === this.notificationAlarm) { + let result = ''; + Object.keys(notification.subscriptions ?? []).forEach(key => { + if (notification.subscriptions[key]) { + if (result) { + result += ', '; + } + result += this.alarmsType[key]; + } + }); + return result; + } + } + return ''; + } + loadNotifications() { + this.dataSource.data = this.projectService.getNotifications(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_7__.MatLegacyTable, { + static: true + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_13__.MatSort, { + static: false + }] + }] + }; +}; +NotificationListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-notification-list', + template: _notification_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_notification_list_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], NotificationListComponent); + + +/***/ }), + +/***/ 67597: +/*!****************************************************************************************!*\ + !*** ./src/app/notifications/notification-property/notification-property.component.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NotificationPropertyComponent: () => (/* binding */ NotificationPropertyComponent) +/* harmony export */ }); +/* harmony import */ var _notification_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification-property.component.html?ngResource */ 18018); +/* harmony import */ var _notification_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notification-property.component.scss?ngResource */ 50524); +/* harmony import */ var _notification_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_notification_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/alarm */ 38238); +/* harmony import */ var _models_notification__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/notification */ 96841); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let NotificationPropertyComponent = class NotificationPropertyComponent { + dialogRef; + fb; + translateService; + projectService; + data; + notification; + notificationsType = _models_notification__WEBPACK_IMPORTED_MODULE_3__.NotificationsType; + notificationAlarm = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_notification__WEBPACK_IMPORTED_MODULE_3__.NotificationsType, _models_notification__WEBPACK_IMPORTED_MODULE_3__.NotificationsType.alarms); + notificationTrigger = _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getEnumKey(_models_notification__WEBPACK_IMPORTED_MODULE_3__.NotificationsType, _models_notification__WEBPACK_IMPORTED_MODULE_3__.NotificationsType.trigger); + formGroup; + alarmsType = [_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.HIGH_HIGH, _models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.HIGH, _models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.LOW, _models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.INFO]; + constructor(dialogRef, fb, translateService, projectService, data) { + this.dialogRef = dialogRef; + this.fb = fb; + this.translateService = translateService; + this.projectService = projectService; + this.data = data; + this.notification = this.data.notification ?? new _models_notification__WEBPACK_IMPORTED_MODULE_3__.Notification(_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getGUID(_models_notification__WEBPACK_IMPORTED_MODULE_3__.NOTIFY_PREFIX)); + } + ngOnInit() { + this.formGroup = this.fb.group({ + name: [this.notification.name, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required], + receiver: [this.notification.receiver, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required], + type: [this.notification.type, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.Validators.required], + delay: [this.notification.delay], + interval: [this.notification.interval], + enabled: [this.notification.enabled] + }); + this.formGroup.controls.name.addValidators(this.isValidName()); + Object.keys(this.notificationsType).forEach(key => { + this.notificationsType[key] = this.translateService.instant(this.notificationsType[key]); + }); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.notification = { + ...this.notification, + ...this.formGroup.getRawValue() + }; + this.dialogRef.close(this.notification); + } + onTypeChanged(type) {} + onSubscriptionChanged(type, value) { + this.notification.subscriptions[type] = value; + } + getTypeValue(type) { + if (this.notification?.type === this.notificationAlarm) { + return this.notification.subscriptions[type]; + } + return false; + } + isValidName() { + const names = this.projectService.getNotifications().map(not => not.name); + return control => { + if (this.notification?.name === control.value) { + return null; + } + if (names?.indexOf(control.value) !== -1) { + return { + name: this.translateService.instant('msg.notification-name-exist') + }; + } + return null; + }; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormBuilder + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +NotificationPropertyComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-notification-property', + template: _notification_property_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_notification_property_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.UntypedFormBuilder, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, Object])], NotificationPropertyComponent); + + +/***/ }), + +/***/ 11234: +/*!********************************************************!*\ + !*** ./src/app/odbc-browser/odbc-browser.component.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ OdbcBrowserComponent: () => (/* binding */ OdbcBrowserComponent) +/* harmony export */ }); +/* harmony import */ var _odbc_browser_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./odbc-browser.component.html?ngResource */ 90409); +/* harmony import */ var _odbc_browser_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./odbc-browser.component.css?ngResource */ 9565); +/* harmony import */ var _odbc_browser_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_odbc_browser_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/device */ 15625); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_services/hmi.service */ 69578); +/* harmony import */ var _query_builder_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./query-builder.service */ 55545); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let OdbcBrowserComponent = class OdbcBrowserComponent { + projectService; + hmiService; + queryBuilderService; + dialogRef; + data; + // Tab management + selectedTabIndex = 0; + // Device & Table Selection + devices = []; + selectedDevice = null; + tables = []; + selectedTable = ''; + columns = []; + selectedColumns = []; + selectedColumn = ''; + // Data Viewer + tableData = { + columns: [], + rows: [], + rowCount: 0 + }; + rowLimit = 10; + rowLimitOptions = [10, 50, 100, 500]; + displayedColumns = []; + // SQL Query Editor + sqlQuery = ''; + customSqlQuery = ''; + sqlExecutionResult = { + columns: [], + rows: [], + rowCount: 0 + }; + sqlExecutionError = ''; + // Table Creator + newTableName = ''; + newTableColumns = []; + primaryKeyColumn = ''; + foreignKeyColumn = ''; // Column that has the FK + foreignKeyReferencedTable = ''; // Table being referenced + foreignKeyReferencedColumn = ''; // Column being referenced + foreignKeyReferencedTableColumns = []; // Columns of selected FK table + selectedDataType = 'VARCHAR(255)'; + dataTypeOptions = [ + // String types + 'VARCHAR(255)', 'TEXT', 'CHAR(10)', 'UUID', 'JSON', 'JSONB', + // Numeric types + 'INTEGER', 'BIGINT', 'SMALLINT', 'FLOAT', 'REAL', 'DECIMAL(10,2)', 'NUMERIC(10,2)', + // Auto-increment types (for PRIMARY KEY) + 'SERIAL', 'BIGSERIAL', 'SMALLSERIAL', + // Date/Time types + 'DATE', 'TIME', 'TIMESTAMP', 'TIMESTAMP WITH TIME ZONE', 'TIMESTAMP WITHOUT TIME ZONE', + // Boolean and other + 'BOOLEAN', 'ENUM', 'ARRAY', 'BYTEA']; + // Table Management + isEditingTable = false; + editingTableName = ''; + originalTableName = ''; + originalTableColumns = []; + originalPrimaryKeyColumn = ''; + generatedQuery = ''; + showQueryPreview = false; + deleteConfirmation = { + show: false, + tableName: '' + }; + // Query Builder + queryBuilderConfig; + queryBuilderResults = null; + availableColumns = []; + queryBuilderSelectAll = false; + queryBuilderConditionOperators = []; + // State flags + loading = false; + error = ''; + success = ''; + selectColumnMode = false; + tableCreationMode = false; + showHelpDialog = false; + // SQL Syntax Reference + sqlSyntaxReference = [{ + name: 'SELECT', + description: 'Retrieves data from one or more tables. The most fundamental SQL command.', + syntax: 'SELECT column_name(s)\nFROM table_name' + }, { + name: 'SELECT *', + description: 'Retrieves all columns from a table.', + syntax: 'SELECT *\nFROM table_name' + }, { + name: 'SELECT DISTINCT', + description: 'Returns only distinct (different) values from a column.', + syntax: 'SELECT DISTINCT column_name(s)\nFROM table_name' + }, { + name: 'WHERE', + description: 'Filters records based on specified conditions.', + syntax: 'SELECT column_name(s)\nFROM table_name\nWHERE column_name operator value' + }, { + name: 'AND / OR', + description: 'Combines multiple conditions. AND requires all conditions to be true, OR requires at least one.', + syntax: 'SELECT column_name(s)\nFROM table_name\nWHERE condition\nAND|OR condition' + }, { + name: 'BETWEEN', + description: 'Selects values within a given range (inclusive).', + syntax: 'SELECT column_name(s)\nFROM table_name\nWHERE column_name\nBETWEEN value1 AND value2' + }, { + name: 'IN', + description: 'Specifies multiple values for a WHERE clause.', + syntax: 'SELECT column_name(s)\nFROM table_name\nWHERE column_name\nIN (value1,value2,..)' + }, { + name: 'LIKE', + description: 'Searches for a specified pattern in a column.', + syntax: 'SELECT column_name(s)\nFROM table_name\nWHERE column_name LIKE pattern' + }, { + name: 'ORDER BY', + description: 'Sorts results in ascending (ASC) or descending (DESC) order.', + syntax: 'SELECT column_name(s)\nFROM table_name\nORDER BY column_name [ASC|DESC]' + }, { + name: 'GROUP BY', + description: 'Groups rows with the same values and is often used with aggregate functions.', + syntax: 'SELECT column_name, aggregate_function(column_name)\nFROM table_name\nGROUP BY column_name' + }, { + name: 'HAVING', + description: 'Like WHERE but filters groups instead of rows (used after GROUP BY).', + syntax: 'SELECT column_name, aggregate_function(column_name)\nFROM table_name\nGROUP BY column_name\nHAVING aggregate_function(column_name) operator value' + }, { + name: 'INSERT INTO', + description: 'Inserts new records/rows into a table.', + syntax: 'INSERT INTO table_name\n(column1, column2, column3,...)\nVALUES (value1, value2, value3,....)' + }, { + name: 'UPDATE', + description: 'Modifies existing records in a table.', + syntax: 'UPDATE table_name\nSET column1=value, column2=value,...\nWHERE some_column=some_value' + }, { + name: 'DELETE', + description: 'Removes records from a table. Use WHERE to specify which records to delete.', + syntax: 'DELETE FROM table_name\nWHERE some_column=some_value' + }, { + name: 'CREATE TABLE', + description: 'Creates a new table in the database.', + syntax: 'CREATE TABLE table_name\n(\ncolumn_name1 data_type,\ncolumn_name2 data_type,\ncolumn_name3 data_type,\n...\n)' + }, { + name: 'ALTER TABLE', + description: 'Modifies the structure of an existing table (add/drop columns).', + syntax: 'ALTER TABLE table_name\nADD column_name datatype\nor\nALTER TABLE table_name\nDROP COLUMN column_name' + }, { + name: 'DROP TABLE', + description: 'Completely removes a table from the database.', + syntax: 'DROP TABLE table_name' + }, { + name: 'TRUNCATE TABLE', + description: 'Removes all records from a table but keeps the structure.', + syntax: 'TRUNCATE TABLE table_name' + }, { + name: 'CREATE INDEX', + description: 'Creates an index on one or more columns to improve query performance.', + syntax: 'CREATE INDEX index_name\nON table_name (column_name)\nor\nCREATE UNIQUE INDEX index_name\nON table_name (column_name)' + }, { + name: 'DROP INDEX', + description: 'Removes an index from a table.', + syntax: 'DROP INDEX index_name' + }, { + name: 'INNER JOIN', + description: 'Returns records that have matching values in both tables.', + syntax: 'SELECT column_name(s)\nFROM table_name1\nINNER JOIN table_name2\nON table_name1.column_name=table_name2.column_name' + }, { + name: 'LEFT JOIN', + description: 'Returns all records from the left table, and matched records from the right table.', + syntax: 'SELECT column_name(s)\nFROM table_name1\nLEFT JOIN table_name2\nON table_name1.column_name=table_name2.column_name' + }, { + name: 'RIGHT JOIN', + description: 'Returns all records from the right table, and matched records from the left table.', + syntax: 'SELECT column_name(s)\nFROM table_name1\nRIGHT JOIN table_name2\nON table_name1.column_name=table_name2.column_name' + }, { + name: 'FULL JOIN', + description: 'Returns all records when there is a match in either the left or right table.', + syntax: 'SELECT column_name(s)\nFROM table_name1\nFULL JOIN table_name2\nON table_name1.column_name=table_name2.column_name' + }, { + name: 'UNION', + description: 'Combines results from multiple SELECT statements (removes duplicates).', + syntax: 'SELECT column_name(s) FROM table_name1\nUNION\nSELECT column_name(s) FROM table_name2' + }, { + name: 'UNION ALL', + description: 'Combines results from multiple SELECT statements (includes duplicates).', + syntax: 'SELECT column_name(s) FROM table_name1\nUNION ALL\nSELECT column_name(s) FROM table_name2' + }, { + name: 'AS (alias)', + description: 'Gives a temporary name to a column or table (useful for readability).', + syntax: 'SELECT column_name AS column_alias\nFROM table_name\nor\nSELECT column_name\nFROM table_name AS table_alias' + }, { + name: 'CREATE VIEW', + description: 'Creates a virtual table based on a SELECT query.', + syntax: 'CREATE VIEW view_name AS\nSELECT column_name(s)\nFROM table_name\nWHERE condition' + }, { + name: 'CREATE DATABASE', + description: 'Creates a new database.', + syntax: 'CREATE DATABASE database_name' + }, { + name: 'DROP DATABASE', + description: 'Removes a database and all its contents.', + syntax: 'DROP DATABASE database_name' + }, { + name: 'SELECT TOP', + description: 'Limits the number of records returned in the result set.', + syntax: 'SELECT TOP number|percent column_name(s)\nFROM table_name' + }, { + name: 'SELECT INTO', + description: 'Copies data from one table to a new table.', + syntax: 'SELECT column_name(s)\nINTO new_table_name\nFROM old_table_name' + }, { + name: 'EXISTS', + description: 'Tests whether a subquery returns any rows.', + syntax: 'IF EXISTS (SELECT * FROM table_name WHERE id = ?)\nBEGIN\n--do what needs to be done if exists\nEND\nELSE\nBEGIN\n--do what needs to be done if not\nEND' + }]; + // Subscriptions + subscriptions = []; + browseSubscription; + propertySubscription; + constructor(projectService, hmiService, queryBuilderService, dialogRef, data) { + this.projectService = projectService; + this.hmiService = hmiService; + this.queryBuilderService = queryBuilderService; + this.dialogRef = dialogRef; + this.data = data; + this.queryBuilderConfig = this.queryBuilderService.createEmptyConfig(); + } + ngOnInit() { + this.devices = Object.values(this.projectService.getDevices()).filter(d => d.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ODBC); + if (this.data.deviceId) { + this.selectedDevice = this.devices.find(d => d.id === this.data.deviceId); + // Auto-load tables if device is pre-selected + if (this.selectedDevice) { + this.loadTables(); + } + } + this.selectColumnMode = this.data.selectColumn || false; + } + ngOnDestroy() { + // Unsubscribe from all active subscriptions + this.subscriptions.forEach(sub => sub.unsubscribe()); + if (this.browseSubscription) { + this.browseSubscription.unsubscribe(); + } + if (this.propertySubscription) { + this.propertySubscription.unsubscribe(); + } + } + onDeviceChange() { + if (this.selectedDevice) { + this.loadTables(); + } else { + this.tables = []; + this.selectedTable = ''; + this.columns = []; + this.selectedColumns = []; + } + } + loadTables() { + if (!this.selectedDevice) return; + this.loading = true; + this.error = ''; + this.tables = []; + this.selectedTable = ''; + this.columns = []; + this.selectedColumns = []; + // Use the existing askDeviceProperty to get tables + this.hmiService.askDeviceProperty({ + address: this.selectedDevice.property?.address, + uid: null, + pwd: null + }, _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ODBC); + // Listen for the response + this.propertySubscription = this.hmiService.onDeviceProperty.subscribe(result => { + if (result && result.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ODBC && result.result) { + this.tables = result.result; + this.loading = false; + // If a table is pre-selected, select and load it + if (this.data.preselectedTable && this.tables.includes(this.data.preselectedTable)) { + this.selectedTable = this.data.preselectedTable; + this.loadColumns(); + } + if (this.propertySubscription) { + this.propertySubscription.unsubscribe(); + } + } else if (result && result.type === _models_device__WEBPACK_IMPORTED_MODULE_2__.DeviceType.ODBC && result.error) { + this.error = result.error; + this.loading = false; + if (this.propertySubscription) { + this.propertySubscription.unsubscribe(); + } + } + }); + this.subscriptions.push(this.propertySubscription); + } + onTableSelect(table) { + console.log('ODBC Browser: Table selected:', table); + this.selectedTable = table; + this.selectedColumns = []; + this.sqlQuery = ''; + this.tableData = { + columns: [], + rows: [], + rowCount: 0 + }; + this.loadColumns(); + } + loadColumns() { + console.log('ODBC Browser: loadColumns called. Device:', this.selectedDevice?.id, 'Table:', this.selectedTable); + if (!this.selectedDevice || !this.selectedTable) { + console.warn('ODBC Browser: Missing device or table, returning'); + return; + } + this.loading = true; + this.error = ''; + this.columns = []; + this.selectedColumns = []; + // Unsubscribe from any previous subscription + if (this.browseSubscription) { + this.browseSubscription.unsubscribe(); + } + this.browseSubscription = this.hmiService.onDeviceBrowse.subscribe(result => { + if (result && Array.isArray(result)) { + // Direct array response (from callback) + console.log('ODBC Browser: Columns received (direct):', result); + this.columns = result.map(col => ({ + name: col.id || col.name, + type: col.type || 'string' + })); + console.log('ODBC Browser: Mapped columns:', this.columns); + this.loading = false; + } else if (result && result.result && Array.isArray(result.result)) { + // Object with result property containing array + console.log('ODBC Browser: Columns received (wrapped):', result.result); + this.columns = result.result.map(col => ({ + name: col.id || col.name, + type: col.type || 'string' + })); + console.log('ODBC Browser: Mapped columns:', this.columns); + this.loading = false; + } else if (result && result.error) { + console.error('ODBC Browser: Error loading columns:', result.error); + this.error = result.error; + this.loading = false; + } + }); + console.log('ODBC Browser: Requesting columns for table:', this.selectedTable); + this.hmiService.askDeviceBrowse(this.selectedDevice.id, this.selectedTable); + } + onColumnToggle(column, checked) { + if (this.selectColumnMode) { + // Single selection mode for timestamp column + this.selectedColumn = checked ? column : ''; + } else { + // Multiple selection mode for query building + if (checked) { + if (!this.selectedColumns.includes(column)) { + this.selectedColumns.push(column); + this.updateSqlQuery(); + } + } else { + this.selectedColumns = this.selectedColumns.filter(c => c !== column); + this.updateSqlQuery(); + } + } + } + updateSqlQuery() { + if (this.selectedColumns.length > 0) { + const columns = this.selectedColumns.join(', '); + this.sqlQuery = `SELECT ${columns} FROM ${this.selectedTable}`; + } else { + this.sqlQuery = ''; + } + } + generateQuery() { + return this.sqlQuery; + } + copyQueryToSqlEditor() { + if (this.sqlQuery) { + this.customSqlQuery = this.sqlQuery; + this.selectedTabIndex = 3; // Switch to SQL Editor tab + } + } + // Data Viewer Methods + loadTableData() { + if (!this.selectedDevice || !this.selectedTable || this.selectedColumns.length === 0) { + this.error = 'Please select table and columns first'; + return; + } + this.loading = true; + this.error = ''; + const query = `SELECT ${this.selectedColumns.join(', ')} FROM ${this.selectedTable} LIMIT ${this.rowLimit}`; + console.log('ODBC Browser: Loading table data with query:', query); + // Create a subscription to listen for ODBC query results + const querySubscription = this.hmiService.onDeviceOdbcQuery.subscribe(result => { + console.log('ODBC Browser: Query result received:', result); + if (result && result.result && Array.isArray(result.result)) { + console.log('ODBC Browser: Found result array:', result.result); + this.tableData = { + columns: this.selectedColumns, + rows: result.result || [], + rowCount: result.result?.length || 0 + }; + this.displayedColumns = this.selectedColumns; + console.log('ODBC Browser: Table data set:', this.tableData); + } else if (result && result.error) { + console.error('ODBC Browser: Query error:', result.error); + this.error = result.error; + } else { + console.warn('ODBC Browser: Unexpected result format:', result); + } + this.loading = false; + if (querySubscription) { + querySubscription.unsubscribe(); + } + }); + this.subscriptions.push(querySubscription); + // Execute the query through ODBC device + this.hmiService.executeOdbcQuery(this.selectedDevice.id, query); + } + onRowLimitChange() { + this.loadTableData(); + } + // SQL Editor Methods + executeSqlQuery() { + if (!this.selectedDevice || !this.customSqlQuery.trim()) { + this.sqlExecutionError = 'Please enter a SQL query'; + return; + } + this.loading = true; + this.sqlExecutionError = ''; + this.success = ''; + // Create a subscription to listen for ODBC query results + const querySubscription = this.hmiService.onDeviceOdbcQuery.subscribe(result => { + if (result && Array.isArray(result)) { + // Direct array response + const rows = result; + const columns = rows.length > 0 ? Object.keys(rows[0]) : []; + this.sqlExecutionResult = { + columns: columns, + rows: rows, + rowCount: rows.length + }; + this.success = 'Query executed successfully!'; + setTimeout(() => this.success = '', 4000); + } else if (result && result.result && Array.isArray(result.result)) { + // Wrapped array response + const rows = result.result; + const columns = rows.length > 0 ? Object.keys(rows[0]) : []; + this.sqlExecutionResult = { + columns: columns, + rows: rows, + rowCount: rows.length + }; + this.success = 'Query executed successfully!'; + setTimeout(() => this.success = '', 4000); + } else if (result && result.result && result.result.columns) { + // Response with explicit columns property + this.sqlExecutionResult = { + columns: result.result.columns || [], + rows: result.result.rows || [], + rowCount: result.result.rows?.length || 0 + }; + this.success = 'Query executed successfully!'; + setTimeout(() => this.success = '', 4000); + } else if (result && result.error) { + this.sqlExecutionError = result.error; + } + this.loading = false; + if (querySubscription) { + querySubscription.unsubscribe(); + } + }); + this.subscriptions.push(querySubscription); + // Execute the custom query + this.hmiService.executeOdbcQuery(this.selectedDevice.id, this.customSqlQuery); + } + copySqlQuery() { + const textArea = document.createElement('textarea'); + textArea.value = this.sqlQuery; + document.body.appendChild(textArea); + textArea.select(); + document.execCommand('copy'); + document.body.removeChild(textArea); + } + clearSqlEditor() { + this.customSqlQuery = ''; + this.sqlExecutionResult = { + columns: [], + rows: [], + rowCount: 0 + }; + this.sqlExecutionError = ''; + } + // Table Creator Methods + addColumnField() { + this.newTableColumns.push({ + name: '', + type: 'VARCHAR(255)', + nullable: true + }); + } + removeColumnField(index) { + this.newTableColumns.splice(index, 1); + } + createTable() { + if (!this.selectedDevice || !this.newTableName.trim()) { + this.error = 'Please provide a table name'; + return; + } + if (this.newTableColumns.length === 0) { + this.error = 'Please add at least one column'; + return; + } + const columns = this.newTableColumns.map(col => { + let columnDef = `${col.name} ${col.type}`; + // Add AUTO_INCREMENT if enabled + if (col.autoIncrement) { + columnDef += ' AUTO_INCREMENT'; + } + // Add DEFAULT CURRENT_TIMESTAMP if enabled (before NOT NULL) + if (col.autoTimestamp) { + columnDef += ' DEFAULT CURRENT_TIMESTAMP'; + } + // Add NOT NULL constraint + if (!col.nullable) { + columnDef += ' NOT NULL'; + } + // Add DEFAULT VALUE if provided (and not using autoTimestamp) + if (col.defaultValue && !col.autoTimestamp) { + columnDef += ` DEFAULT '${col.defaultValue}'`; + } + return columnDef; + }).join(', '); + let primaryKeyClause = ''; + if (this.primaryKeyColumn) { + primaryKeyClause = `, PRIMARY KEY (${this.primaryKeyColumn})`; + } + // Generate the query and display it instead of executing immediately + if (this.isEditingTable) { + // For ALTER TABLE, build the appropriate statement + this.generatedQuery = this.generateAlterTableQuery(); + } else { + // For CREATE TABLE + this.generatedQuery = `CREATE TABLE ${this.newTableName} (${columns}${primaryKeyClause})`; + } + this.showQueryPreview = true; + this.error = ''; + } + /** + * Generate ALTER TABLE query for editing existing tables + */ + generateAlterTableQuery() { + // Generate clean standard SQL - the ODBC server driver will normalize for the specific database + let alterQueries = []; + const tableName = this.newTableName || this.originalTableName; + // 1. Handle table rename + if (this.newTableName !== this.originalTableName && this.originalTableName) { + alterQueries.push(`ALTER TABLE ${this.originalTableName} RENAME TO ${this.newTableName};`); + } + // 2. Detect column additions, deletions, and modifications + const originalColMap = new Map(this.originalTableColumns.map(c => [c.name, c])); + const newColMap = new Map(this.newTableColumns.map(c => [c.name, c])); + // Detect deleted columns + for (const [colName, originalCol] of originalColMap.entries()) { + if (!newColMap.has(colName)) { + alterQueries.push(`ALTER TABLE ${tableName} DROP COLUMN ${colName};`); + } + } + // Detect new columns and modified columns + for (const [colName, newCol] of newColMap.entries()) { + const originalCol = originalColMap.get(colName); + if (!originalCol) { + // New column added - server normalizes types + let columnDef = `${colName} ${newCol.type}`; + // Add AUTO_INCREMENT if enabled + if (newCol.autoIncrement) { + columnDef += ' AUTO_INCREMENT'; + } + // Add DEFAULT CURRENT_TIMESTAMP if enabled (before NOT NULL) + if (newCol.autoTimestamp) { + columnDef += ' DEFAULT CURRENT_TIMESTAMP'; + } + if (!newCol.nullable) { + columnDef += ' NOT NULL'; + } + if (newCol.defaultValue && !newCol.autoTimestamp) { + columnDef += ` DEFAULT '${newCol.defaultValue}'`; + } + alterQueries.push(`ALTER TABLE ${tableName} ADD COLUMN ${columnDef};`); + } else if (originalCol.type !== newCol.type || originalCol.nullable !== newCol.nullable || originalCol.defaultValue !== newCol.defaultValue || originalCol.autoIncrement !== newCol.autoIncrement || originalCol.autoTimestamp !== newCol.autoTimestamp) { + // Column was modified - server normalizes types + let columnDef = `${colName} ${newCol.type}`; + // Add AUTO_INCREMENT if enabled + if (newCol.autoIncrement) { + columnDef += ' AUTO_INCREMENT'; + } + // Add DEFAULT CURRENT_TIMESTAMP if enabled (before NOT NULL) + if (newCol.autoTimestamp) { + columnDef += ' DEFAULT CURRENT_TIMESTAMP'; + } + if (!newCol.nullable) { + columnDef += ' NOT NULL'; + } + if (newCol.defaultValue && !newCol.autoTimestamp) { + columnDef += ` DEFAULT '${newCol.defaultValue}'`; + } + alterQueries.push(`ALTER TABLE ${tableName} MODIFY COLUMN ${columnDef};`); + } + } + if (alterQueries.length > 0) { + return alterQueries.join('\n') + `\n\n-- ODBC Server normalizes types and syntax for your database\n` + `-- Table: ${this.originalTableName}\n` + `-- Statements: ${alterQueries.length}`; + } else { + return `-- No structural changes to apply`; + } + } + /** + * Execute the generated CREATE/ALTER TABLE query + */ + executeTableQuery() { + if (!this.generatedQuery || !this.generatedQuery.trim()) { + this.error = 'No query to execute'; + return; + } + this.loading = true; + this.error = ''; + this.success = ''; + // For ALTER TABLE, split by semicolons and execute each statement + const queries = this.generatedQuery.split(';').filter(q => q.trim() && !q.trim().startsWith('--')); + const executeQuery = (queryList, index = 0) => { + if (index >= queryList.length) { + // All queries executed successfully + this.success = this.isEditingTable ? 'Table updated successfully!' : 'Table created successfully!'; + setTimeout(() => this.success = '', 4000); + this.newTableName = ''; + this.newTableColumns = []; + this.primaryKeyColumn = ''; + this.foreignKeyColumn = ''; + this.foreignKeyReferencedTable = ''; + this.foreignKeyReferencedColumn = ''; + this.foreignKeyReferencedTableColumns = []; + this.tableCreationMode = false; + this.isEditingTable = false; + this.showQueryPreview = false; + this.loadTables(); + this.loading = false; + return; + } + const querySubscription = this.hmiService.onDeviceOdbcQuery.subscribe(result => { + if (result && result.success !== false && !result.error) { + // Execute next query + executeQuery(queryList, index + 1); + } else if (result && result.error) { + this.error = result.error; + this.loading = false; + } + if (querySubscription) { + querySubscription.unsubscribe(); + } + }); + this.subscriptions.push(querySubscription); + // Execute the current query + this.hmiService.executeOdbcQuery(this.selectedDevice.id, queryList[index].trim() + ';'); + }; + executeQuery(queries); + } + /** + * Copy generated query to SQL editor and switch tabs + */ + copyQueryToSqlEditorFromTableCreator() { + if (!this.generatedQuery) return; + this.customSqlQuery = this.generatedQuery; + this.selectedTabIndex = 3; // Switch to SQL Editor tab + this.showQueryPreview = false; + } + /** + * Cancel table creation and close preview + */ + cancelTableCreation() { + this.newTableName = ''; + this.newTableColumns = []; + this.primaryKeyColumn = ''; + this.foreignKeyColumn = ''; + this.foreignKeyReferencedTable = ''; + this.foreignKeyReferencedColumn = ''; + this.foreignKeyReferencedTableColumns = []; + this.originalTableColumns = []; + this.originalPrimaryKeyColumn = ''; + this.tableCreationMode = false; + this.isEditingTable = false; + this.showQueryPreview = false; + } + onOkClick() { + if (this.selectColumnMode) { + if (this.selectedColumn) { + this.dialogRef.close({ + deviceId: this.selectedDevice?.id, + column: this.selectedColumn, + tableName: this.selectedTable + }); + } + } else { + const query = this.generateQuery(); + if (query) { + this.dialogRef.close({ + deviceId: this.selectedDevice?.id, + query: query + }); + } + } + } + onCancelClick() { + this.dialogRef.close(); + } + /** + * Edit an existing table - load it into the Table Creator for modification + */ + editTable(tableName) { + if (!this.selectedDevice) { + this.error = 'No device selected'; + return; + } + this.loading = true; + this.error = ''; + // First, select the table to trigger column loading + this.selectedTable = tableName; + this.isEditingTable = true; + this.editingTableName = tableName; + this.originalTableName = tableName; + this.newTableName = tableName; + // Set up subscription to listen for columns to load + if (this.browseSubscription) { + this.browseSubscription.unsubscribe(); + } + this.browseSubscription = this.hmiService.onDeviceBrowse.subscribe(result => { + if (result && Array.isArray(result)) { + // Direct array response + console.log('ODBC Browser: Edit mode - Columns received (direct):', result); + this.newTableColumns = result.map(col => ({ + name: col.id || col.name, + type: col.type || 'VARCHAR(255)', + nullable: col.nullable !== false, + defaultValue: col.defaultValue || '', + autoIncrement: col.isIdentity || false, + autoTimestamp: col.isAutoTimestamp || false, + isPrimaryKey: col.isPrimaryKey || false, + foreignKey: col.foreignKey + })); + // Store original columns for change detection + this.originalTableColumns = JSON.parse(JSON.stringify(this.newTableColumns)); + this.tableCreationMode = true; + this.selectedTabIndex = 4; // Switch to Create Table tab + this.loading = false; + } else if (result && result.result && Array.isArray(result.result)) { + // Object with result property containing array + console.log('ODBC Browser: Edit mode - Columns received (wrapped):', result.result); + this.newTableColumns = result.result.map(col => ({ + name: col.id || col.name, + type: col.type || 'VARCHAR(255)', + nullable: col.nullable !== false, + defaultValue: col.defaultValue || '', + autoIncrement: col.isIdentity || false, + autoTimestamp: col.isAutoTimestamp || false, + isPrimaryKey: col.isPrimaryKey || false, + foreignKey: col.foreignKey + })); + // Find and set the primary key column + const pkCol = result.result.find(col => col.isPrimaryKey); + if (pkCol) { + this.primaryKeyColumn = pkCol.id || pkCol.name; + } + // Store original columns for change detection + this.originalTableColumns = JSON.parse(JSON.stringify(this.newTableColumns)); + this.tableCreationMode = true; + this.selectedTabIndex = 4; // Switch to Create Table tab + this.loading = false; + } else if (result && result.error) { + console.error('ODBC Browser: Error loading columns for edit:', result.error); + this.error = result.error; + this.loading = false; + } + }); + // Trigger column loading + this.hmiService.askDeviceBrowse(this.selectedDevice.id, tableName); + } + /** + * Delete a table with confirmation + */ + deleteTable(tableName) { + this.deleteConfirmation = { + show: true, + tableName: tableName + }; + } + /** + * Confirm table deletion + */ + confirmDeleteTable() { + if (!this.deleteConfirmation.tableName || !this.selectedDevice) { + this.error = 'Cannot delete table'; + this.deleteConfirmation = { + show: false, + tableName: '' + }; + return; + } + const dropTableQuery = `DROP TABLE ${this.deleteConfirmation.tableName}`; + this.loading = true; + this.error = ''; + const querySubscription = this.hmiService.onDeviceOdbcQuery.subscribe(result => { + if (result && result.success !== false && !result.error) { + // Reload tables after deletion + this.loadTables(); + } else if (result && result.error) { + this.error = `Failed to delete table: ${result.error}`; + } + this.loading = false; + this.deleteConfirmation = { + show: false, + tableName: '' + }; + if (querySubscription) { + querySubscription.unsubscribe(); + } + }); + this.subscriptions.push(querySubscription); + this.hmiService.executeOdbcQuery(this.selectedDevice.id, dropTableQuery); + } + /** + * Cancel table deletion + */ + cancelDeleteTable() { + this.deleteConfirmation = { + show: false, + tableName: '' + }; + } + /** + * Reorder columns in table definition + */ + moveColumn(fromIndex, toIndex) { + if (fromIndex >= 0 && fromIndex < this.newTableColumns.length && toIndex >= 0 && toIndex < this.newTableColumns.length) { + const [column] = this.newTableColumns.splice(fromIndex, 1); + this.newTableColumns.splice(toIndex, 0, column); + // Trigger change detection + this.newTableColumns = [...this.newTableColumns]; + } + } + /** + * Rename a column + */ + renameColumn(index, newName) { + if (index >= 0 && index < this.newTableColumns.length) { + this.newTableColumns[index].name = newName; + } + } + /** + * Update column type + */ + updateColumnType(index, newType) { + if (index >= 0 && index < this.newTableColumns.length) { + this.newTableColumns[index].type = newType; + } + } + /** + * Remove a column from the definition + */ + removeColumn(index) { + if (index >= 0 && index < this.newTableColumns.length) { + this.newTableColumns.splice(index, 1); + // If this was the primary key column, clear it + if (this.primaryKeyColumn === this.newTableColumns[index]?.name) { + this.primaryKeyColumn = ''; + } + // Trigger change detection + this.newTableColumns = [...this.newTableColumns]; + } + } + /** + * Add foreign key constraint to selected column + */ + addForeignKey() { + if (this.foreignKeyColumn && this.foreignKeyReferencedTable && this.foreignKeyReferencedColumn) { + // Find the column and set its foreign key + const column = this.newTableColumns.find(col => col.name === this.foreignKeyColumn); + if (column) { + column.foreignKey = { + tableName: this.foreignKeyReferencedTable, + columnName: this.foreignKeyReferencedColumn + }; + // Trigger change detection + this.newTableColumns = [...this.newTableColumns]; + // Clear the form + this.foreignKeyColumn = ''; + this.foreignKeyReferencedTable = ''; + this.foreignKeyReferencedColumn = ''; + } + } + } + /** + * Clear foreign key constraint from selected column + */ + clearForeignKey() { + if (this.foreignKeyColumn) { + const column = this.newTableColumns.find(col => col.name === this.foreignKeyColumn); + if (column) { + column.foreignKey = undefined; + // Trigger change detection + this.newTableColumns = [...this.newTableColumns]; + // Clear the form + this.foreignKeyColumn = ''; + this.foreignKeyReferencedTable = ''; + this.foreignKeyReferencedColumn = ''; + } + } + } + /** + * Load columns for the selected foreign key table + */ + onForeignKeyTableSelected(tableName) { + if (tableName) { + // Reset column selection + this.foreignKeyReferencedColumn = ''; + // Ask for columns of the selected table + this.hmiService.askDeviceBrowse(this.selectedDevice.id, tableName); + // Subscribe to get the columns + if (this.browseSubscription) { + this.browseSubscription.unsubscribe(); + } + this.browseSubscription = this.hmiService.onDeviceBrowse.subscribe(result => { + if (result && Array.isArray(result)) { + // Direct array response + this.foreignKeyReferencedTableColumns = result.map(col => col.name || col.id); + } else if (result && result.result && Array.isArray(result.result)) { + // Object with result property containing array + this.foreignKeyReferencedTableColumns = result.result.map(col => col.name || col.id); + } + }); + } else { + this.foreignKeyReferencedTableColumns = []; + this.foreignKeyReferencedColumn = ''; + } + } + // ================================ + // QUERY BUILDER METHODS + // ================================ + /** + * Set the query type (SELECT, INSERT, UPDATE, DELETE) + */ + setQueryType(type) { + this.queryBuilderConfig.queryType = type; + this.queryBuilderResults = null; + } + /** + * Handle main table selection in query builder + */ + onQueryBuilderTableSelected() { + // Load columns for the selected table + if (this.queryBuilderConfig.mainTable) { + this.hmiService.askDeviceBrowse(this.selectedDevice.id, this.queryBuilderConfig.mainTable); + if (this.browseSubscription) { + this.browseSubscription.unsubscribe(); + } + this.browseSubscription = this.hmiService.onDeviceBrowse.subscribe(result => { + if (result && Array.isArray(result)) { + this.availableColumns = result.map(col => ({ + name: col.name || col.id, + type: col.type || 'VARCHAR', + selected: false + })); + } else if (result && result.result && Array.isArray(result.result)) { + this.availableColumns = result.result.map(col => ({ + name: col.name || col.id, + type: col.type || 'VARCHAR', + selected: false + })); + } + this.queryBuilderSelectAll = false; + }); + } + } + /** + * Toggle select all columns + */ + toggleSelectAll() { + this.availableColumns.forEach(col => col.selected = this.queryBuilderSelectAll); + this.updateSelectedColumns(); + } + /** + * Update selected columns array from column checkboxes + */ + updateSelectedColumns() { + this.queryBuilderConfig.selectColumns = this.availableColumns.filter(col => col.selected).map(col => { + const selectCol = { + column: col.name, + alias: undefined + }; + if (col.aggregate && col.aggregate !== '') { + selectCol.aggregate = col.aggregate; + } + return selectCol; + }); + this.queryBuilderSelectAll = this.availableColumns.length > 0 && this.availableColumns.every(col => col.selected); + } + /** + * Compare function for mat-select + */ + compareByValue(a, b) { + return a === b; + } + /** + * Add a new JOIN + */ + addJoin() { + this.queryBuilderConfig.joins.push({ + id: this.queryBuilderService.generateId(), + type: 'INNER', + table: '', + onColumn: '', + withColumn: '' + }); + } + /** + * Remove a JOIN + */ + removeJoin(index) { + this.queryBuilderConfig.joins.splice(index, 1); + } + /** + * Add a new WHERE condition + */ + addCondition() { + this.queryBuilderConfig.conditions.conditions.push({ + id: this.queryBuilderService.generateId(), + column: '', + operator: '=', + value: '', + dataType: 'STRING' + }); + } + /** + * Remove a WHERE condition + */ + removeCondition(index) { + this.queryBuilderConfig.conditions.conditions.splice(index, 1); + } + /** + * Update available operators based on condition column data type + */ + updateConditionOperators(condition) { + const column = this.availableColumns.find(c => c.name === condition.column); + if (column) { + condition.dataType = column.type; + const operators = this.queryBuilderService.getOperatorsForType(column.type); + this.queryBuilderConditionOperators = operators; + } + } + /** + * Get operators for a specific condition + */ + getConditionOperators(condition) { + if (condition.dataType) { + return this.queryBuilderService.getOperatorsForType(condition.dataType); + } + return this.queryBuilderService.getOperatorsForType('STRING'); + } + /** + * Add HAVING condition + */ + addHavingCondition() { + this.queryBuilderConfig.havingConditions.conditions.push({ + id: this.queryBuilderService.generateId(), + column: '', + operator: '=', + value: '', + dataType: 'STRING' + }); + } + /** + * Remove a HAVING condition + */ + removeHavingCondition(index) { + this.queryBuilderConfig.havingConditions.conditions.splice(index, 1); + } + /** + * Add ORDER BY clause + */ + addOrderBy() { + this.queryBuilderConfig.orderByColumns.push({ + column: '', + direction: 'ASC' + }); + } + /** + * Remove ORDER BY clause + */ + removeOrderBy(index) { + this.queryBuilderConfig.orderByColumns.splice(index, 1); + } + /** + * Generate the SQL query from builder configuration + */ + getGeneratedQueryBuilderQuery() { + if (!this.queryBuilderConfig.mainTable) { + return '-- Select a table first'; + } + // Determine database type from device + const dbType = this.selectedDevice?.type?.toLowerCase() || 'postgresql'; + return this.queryBuilderService.generateQuery(this.queryBuilderConfig, dbType); + } + /** + * Copy the generated query to clipboard + */ + copyQueryBuilderQuery() { + const query = this.getGeneratedQueryBuilderQuery(); + navigator.clipboard.writeText(query).then(() => { + this.error = 'Query copied to clipboard!'; + setTimeout(() => this.error = '', 3000); + }); + } + /** + * Edit the generated query in SQL Editor tab + */ + editQueryInSqlEditor() { + this.customSqlQuery = this.getGeneratedQueryBuilderQuery(); + this.selectedTabIndex = 3; // Switch to SQL Editor tab (index 3) + } + /** + * Execute the generated query + */ + executeQueryBuilderQuery() { + if (!this.selectedDevice) { + this.error = 'No device selected'; + return; + } + const query = this.getGeneratedQueryBuilderQuery(); + if (!query || query.startsWith('--')) { + this.error = 'Please complete the query configuration'; + return; + } + this.loading = true; + this.error = ''; + this.success = ''; + this.queryBuilderResults = null; + const querySubscription = this.hmiService.onDeviceOdbcQuery.subscribe(result => { + this.loading = false; + if (result && result.error) { + this.error = result.error; + } else if (result && result.result) { + const queryResult = result.result; + this.queryBuilderResults = { + columns: queryResult.columns || [], + rows: queryResult.rows || [], + rowCount: (queryResult.rows || []).length + }; + this.success = 'Query executed successfully!'; + setTimeout(() => this.success = '', 4000); + } + if (querySubscription) { + querySubscription.unsubscribe(); + } + }); + this.subscriptions.push(querySubscription); + // Execute the query + this.hmiService.executeOdbcQuery(this.selectedDevice.id, query); + } + /** + * Add a new INSERT row + */ + addInsertRow() { + this.queryBuilderConfig.insertRows.push({ + id: this.queryBuilderService.generateId(), + values: {} + }); + } + /** + * Remove an INSERT row + */ + removeInsertRow(index) { + this.queryBuilderConfig.insertRows.splice(index, 1); + } + /** + * Add an UPDATE value assignment + */ + addUpdateValue() { + this.queryBuilderConfig.updateValues.push({ + column: '', + value: '' + }); + } + /** + * Remove an UPDATE value assignment + */ + removeUpdateValue(index) { + this.queryBuilderConfig.updateValues.splice(index, 1); + } + /** + * Open/Close help dialog + */ + toggleHelpDialog() { + this.showHelpDialog = !this.showHelpDialog; + } + /** + * Copy SQL syntax to clipboard + */ + copySyntaxToClipboard(syntax) { + navigator.clipboard.writeText(syntax).then(() => { + this.success = 'Syntax copied to clipboard!'; + setTimeout(() => this.success = '', 3000); + }).catch(err => { + this.error = 'Failed to copy to clipboard'; + console.error('Copy failed:', err); + }); + } + /** + * Edit SQL syntax in the SQL Editor + */ + editSyntaxInSqlEditor(syntax) { + this.customSqlQuery = syntax; + this.selectedTabIndex = 3; // Switch to SQL Editor tab + this.showHelpDialog = false; + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_4__.HmiService + }, { + type: _query_builder_service__WEBPACK_IMPORTED_MODULE_5__.QueryBuilderService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +OdbcBrowserComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-odbc-browser', + template: _odbc_browser_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_odbc_browser_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_4__.HmiService, _query_builder_service__WEBPACK_IMPORTED_MODULE_5__.QueryBuilderService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_6__.MatLegacyDialogRef, Object])], OdbcBrowserComponent); + + +/***/ }), + +/***/ 55545: +/*!*******************************************************!*\ + !*** ./src/app/odbc-browser/query-builder.service.ts ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ QueryBuilderService: () => (/* binding */ QueryBuilderService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + +let QueryBuilderService = class QueryBuilderService { + // Operators for different data types + operatorsByType = { + 'STRING': ['=', '!=', 'LIKE', 'NOT LIKE', 'ILIKE', 'SIMILAR TO', 'IN', 'NOT IN', 'IS NULL', 'IS NOT NULL'], + 'NUMBER': ['=', '!=', '>', '<', '>=', '<=', 'BETWEEN', 'IN', 'NOT IN', 'IS NULL', 'IS NOT NULL'], + 'DATE': ['=', '!=', '>', '<', '>=', '<=', 'BETWEEN', 'IS NULL', 'IS NOT NULL'], + 'BOOLEAN': ['=', '!=', 'IS NULL', 'IS NOT NULL'] + }; + // Aggregate functions + aggregateFunctions = ['COUNT', 'SUM', 'AVG', 'MIN', 'MAX', 'COUNT(DISTINCT)']; + // SQL keywords that need to be escaped + sqlKeywords = ['SELECT', 'FROM', 'WHERE', 'AND', 'OR', 'JOIN', 'LEFT', 'RIGHT', 'INNER', 'OUTER', 'CROSS', 'ON', 'GROUP', 'BY', 'HAVING', 'ORDER', 'LIMIT', 'OFFSET', 'AS', 'DISTINCT', 'INSERT', 'UPDATE', 'DELETE', 'VALUES', 'SET']; + constructor() {} + /** + * Get available operators for a given data type + */ + getOperatorsForType(dataType) { + if (!dataType) return this.operatorsByType['STRING']; + const typeUpper = dataType.toUpperCase(); + if (typeUpper.includes('INT') || typeUpper.includes('DECIMAL') || typeUpper.includes('NUMERIC') || typeUpper.includes('FLOAT') || typeUpper.includes('REAL') || typeUpper.includes('BIGINT')) { + return this.operatorsByType['NUMBER']; + } else if (typeUpper.includes('DATE') || typeUpper.includes('TIME') || typeUpper.includes('TIMESTAMP')) { + return this.operatorsByType['DATE']; + } else if (typeUpper.includes('BOOL')) { + return this.operatorsByType['BOOLEAN']; + } + return this.operatorsByType['STRING']; + } + /** + * Generate SQL query from builder configuration + */ + generateQuery(config, dbType = 'postgresql') { + switch (config.queryType) { + case 'SELECT': + return this.generateSelectQuery(config, dbType); + case 'INSERT': + return this.generateInsertQuery(config, dbType); + case 'UPDATE': + return this.generateUpdateQuery(config, dbType); + case 'DELETE': + return this.generateDeleteQuery(config, dbType); + default: + return ''; + } + } + /** + * Generate SELECT query + */ + generateSelectQuery(config, dbType) { + let query = 'SELECT '; + // DISTINCT + if (config.distinct) { + query += 'DISTINCT '; + } + // Columns with aggregate functions + if (config.selectColumns.length === 0) { + query += '* '; + } else { + query += config.selectColumns.map(col => { + let colPart = ''; + // Add aggregate function if present + if (col.aggregate) { + if (col.aggregate === 'COUNT(DISTINCT)') { + colPart = `COUNT(DISTINCT ${this.escapeIdentifier(col.column, dbType)})`; + } else { + colPart = `${col.aggregate}(${this.escapeIdentifier(col.column, dbType)})`; + } + } else { + colPart = this.escapeIdentifier(col.column, dbType); + } + // Add alias if present + if (col.alias) { + colPart += ` AS ${this.escapeIdentifier(col.alias, dbType)}`; + } + return colPart; + }).join(', ') + ' '; + } + // FROM + query += `FROM ${this.escapeIdentifier(config.mainTable, dbType)} `; + // JOINS + if (config.joins && config.joins.length > 0) { + config.joins.forEach(join => { + query += `${join.type} JOIN ${this.escapeIdentifier(join.table, dbType)} ON ${this.escapeIdentifier(join.onColumn, dbType)} = ${this.escapeIdentifier(join.withColumn, dbType)} `; + }); + } + // WHERE + if (config.conditions && this.hasConditions(config.conditions)) { + query += `WHERE ${this.buildConditionsString(config.conditions, dbType)} `; + } + // GROUP BY + if (config.groupByColumns && config.groupByColumns.length > 0) { + query += `GROUP BY ${config.groupByColumns.map(col => this.escapeIdentifier(col, dbType)).join(', ')} `; + } + // HAVING + if (config.havingConditions && this.hasConditions(config.havingConditions)) { + query += `HAVING ${this.buildConditionsString(config.havingConditions, dbType)} `; + } + // ORDER BY + if (config.orderByColumns && config.orderByColumns.length > 0) { + query += `ORDER BY ${config.orderByColumns.map(o => `${this.escapeIdentifier(o.column, dbType)} ${o.direction}`).join(', ')} `; + } + // LIMIT + if (config.limit) { + query += `LIMIT ${config.limit} `; + } + // OFFSET + if (config.offset) { + query += `OFFSET ${config.offset} `; + } + return query.trim() + ';'; + } + /** + * Generate INSERT query + */ + generateInsertQuery(config, dbType) { + if (!config.insertRows || config.insertRows.length === 0) { + return ''; + } + // Get all unique columns from all rows + const allColumns = new Set(); + config.insertRows.forEach(row => { + Object.keys(row.values).forEach(col => allColumns.add(col)); + }); + if (allColumns.size === 0) { + return ''; + } + const columnNames = Array.from(allColumns); + const columnList = columnNames.map(col => this.escapeIdentifier(col, dbType)).join(', '); + // Generate values for each row + const valueSets = config.insertRows.map(row => { + const rowValues = columnNames.map(col => { + const value = row.values[col]; + return this.formatValue(value, dbType); + }); + return `(${rowValues.join(', ')})`; + }); + return `INSERT INTO ${this.escapeIdentifier(config.mainTable, dbType)} (${columnList}) VALUES ${valueSets.join(', ')};`; + } + /** + * Generate UPDATE query + */ + generateUpdateQuery(config, dbType) { + if (!config.updateValues || config.updateValues.length === 0) { + return ''; + } + let query = `UPDATE ${this.escapeIdentifier(config.mainTable, dbType)} SET `; + query += config.updateValues.map(v => `${this.escapeIdentifier(v.column, dbType)} = ${this.formatValue(v.value, dbType)}`).join(', ') + ' '; + if (config.conditions && this.hasConditions(config.conditions)) { + query += `WHERE ${this.buildConditionsString(config.conditions, dbType)} `; + } + return query.trim() + ';'; + } + /** + * Generate DELETE query + */ + generateDeleteQuery(config, dbType) { + let query = `DELETE FROM ${this.escapeIdentifier(config.mainTable, dbType)} `; + if (config.conditions && this.hasConditions(config.conditions)) { + query += `WHERE ${this.buildConditionsString(config.conditions, dbType)} `; + } + return query.trim() + ';'; + } + /** + * Build WHERE conditions string + */ + buildConditionsString(group, dbType) { + if (!group || !group.conditions || group.conditions.length === 0) { + return ''; + } + let conditionStrings = []; + // Process conditions in this group + group.conditions.forEach(condition => { + const conditionStr = this.buildConditionString(condition, dbType); + if (conditionStr) { + conditionStrings.push(conditionStr); + } + }); + // Process nested groups + if (group.joinedGroups && group.joinedGroups.length > 0) { + group.joinedGroups.forEach(nestedGroup => { + const nestedStr = this.buildConditionsString(nestedGroup, dbType); + if (nestedStr) { + conditionStrings.push(`(${nestedStr})`); + } + }); + } + if (conditionStrings.length === 0) { + return ''; + } + const logic = group.logic || 'AND'; + return conditionStrings.join(` ${logic} `); + } + /** + * Build single condition string + */ + buildConditionString(condition, dbType) { + const column = this.escapeIdentifier(condition.column, dbType); + const operator = condition.operator.toUpperCase(); + if (operator === 'IS NULL' || operator === 'IS NOT NULL') { + return `${column} ${operator}`; + } + if (operator === 'IN' || operator === 'NOT IN') { + return `${column} ${operator} (${condition.value})`; + } + const value = this.formatValue(condition.value, dbType); + return `${column} ${operator} ${value}`; + } + /** + * Check if group has any conditions + */ + hasConditions(group) { + if (!group) return false; + if (group.conditions && group.conditions.length > 0) return true; + if (group.joinedGroups && group.joinedGroups.some(g => this.hasConditions(g))) return true; + return false; + } + /** + * Escape identifier (table/column names) + */ + escapeIdentifier(identifier, dbType) { + if (!identifier) return identifier; + // If identifier contains dots (table.column), escape each part + if (identifier.includes('.')) { + return identifier.split('.').map(part => this.escapeIdentifier(part, dbType)).join('.'); + } + // If it's a SQL keyword, quote it + if (this.sqlKeywords.includes(identifier.toUpperCase())) { + return this.getQuoteChar(dbType) + identifier + this.getQuoteChar(dbType); + } + // If it contains special characters, quote it + if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(identifier)) { + return this.getQuoteChar(dbType) + identifier + this.getQuoteChar(dbType); + } + return identifier; + } + /** + * Format value based on type + */ + formatValue(value, dbType) { + if (value === null || value === undefined) { + return 'NULL'; + } + if (typeof value === 'boolean') { + if (dbType === 'postgresql' || dbType === 'mysql' || dbType === 'mariadb') { + return value ? 'true' : 'false'; + } else if (dbType === 'mssql' || dbType === 'freetds') { + return value ? '1' : '0'; + } else { + return value ? '1' : '0'; + } + } + if (typeof value === 'number') { + return value.toString(); + } + if (typeof value === 'string') { + // Escape single quotes + const escaped = value.replace(/'/g, "''"); + return `'${escaped}'`; + } + return value.toString(); + } + /** + * Get quote character for database type + */ + getQuoteChar(dbType) { + if (dbType === 'mssql' || dbType === 'freetds') { + return '"'; + } + return '"'; // PostgreSQL, MySQL use backticks for MySQL or quotes for PostgreSQL + } + /** + * Parse query (for loading/editing existing queries) + */ + parseQuery(query, dbType) { + // This is a simplified parser - for full support, would need proper SQL parser + const config = { + queryType: 'SELECT', + tables: [], + selectColumns: [], + conditions: { + id: 'root', + conditions: [], + logic: 'AND' + } + }; + // Basic parsing to extract main table and columns + const selectMatch = query.match(/SELECT\s+(.+?)\s+FROM\s+(\w+)/i); + if (selectMatch) { + // Parse columns - convert strings to QueryBuilderSelectColumn objects + config.selectColumns = selectMatch[1].split(',').map(c => { + const col = c.trim(); + return { + column: col, + aggregate: undefined, + alias: undefined + }; + }); + config.mainTable = selectMatch[2]; + } + return config; + } + /** + * Create new empty configuration + */ + createEmptyConfig() { + return { + queryType: 'SELECT', + tables: [], + mainTable: '', + joins: [], + selectColumns: [], + conditions: { + id: this.generateId(), + conditions: [], + logic: 'AND' + }, + havingConditions: { + id: this.generateId(), + conditions: [], + logic: 'AND' + }, + groupByColumns: [], + orderByColumns: [], + insertRows: [], + updateValues: [], + distinct: false, + limit: undefined, + offset: undefined + }; + } + /** + * Generate unique ID + */ + generateId() { + return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; + } + static ctorParameters = () => []; +}; +QueryBuilderService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [])], QueryBuilderService); + + +/***/ }), + +/***/ 94741: +/*!*********************************************!*\ + !*** ./src/app/paginator/paginator-intl.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CustomMatPaginatorIntl: () => (/* binding */ CustomMatPaginatorIntl) +/* harmony export */ }); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/material/legacy-paginator */ 39687); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + +let CustomMatPaginatorIntl = class CustomMatPaginatorIntl extends _angular_material_legacy_paginator__WEBPACK_IMPORTED_MODULE_0__.MatPaginatorIntl { + translateService; + ofLabel = 'of'; + unsubscribe = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); + constructor(translateService) { + super(); + this.translateService = translateService; + this.translateService.onLangChange.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.takeUntil)(this.unsubscribe)).subscribe(() => { + this.getAndInitTranslations(); + }); + this.getAndInitTranslations(); + } + getAndInitTranslations() { + this.translateService.get(['table.property-paginator-items-per-page', 'table.property-paginator-next-page', 'table.property-paginator-prev-page', 'table.property-paginator-of-label']).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.takeUntil)(this.unsubscribe)).subscribe(translation => { + this.itemsPerPageLabel = translation['table.property-paginator-items-per-page']; + this.nextPageLabel = translation['table.property-paginator-next-page']; + this.previousPageLabel = translation['Ptable.property-paginator-prev-page']; + this.ofLabel = translation['table.property-paginator-of-label']; + this.changes.next(null); + }); + } + getRangeLabel = (page, pageSize, length) => { + if (length === 0 || pageSize === 0) { + return `0 ${this.ofLabel} ${length}`; + } + length = Math.max(length, 0); + const startIndex = page * pageSize; + const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize; + return `${startIndex + 1} - ${endIndex} ${this.ofLabel} ${length}`; + }; + ngOnDestroy() { + this.unsubscribe.next(null); + this.unsubscribe.complete(); + } + static ctorParameters = () => [{ + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService + }]; +}; +CustomMatPaginatorIntl = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)(), __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__.TranslateService])], CustomMatPaginatorIntl); + + +/***/ }), + +/***/ 90489: +/*!******************************************************************!*\ + !*** ./src/app/reports/report-editor/report-editor.component.ts ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportEditorComponent: () => (/* binding */ ReportEditorComponent) +/* harmony export */ }); +/* harmony import */ var _report_editor_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-editor.component.html?ngResource */ 81083); +/* harmony import */ var _report_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-editor.component.scss?ngResource */ 71101); +/* harmony import */ var _report_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_report_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/report */ 90440); +/* harmony import */ var pdfmake_build_pdfmake__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! pdfmake/build/pdfmake */ 98853); +/* harmony import */ var pdfmake_build_pdfmake__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(pdfmake_build_pdfmake__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var pdfmake_build_vfs_fonts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! pdfmake/build/vfs_fonts */ 45217); +/* harmony import */ var pdfmake_build_vfs_fonts__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(pdfmake_build_vfs_fonts__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _report_item_text_report_item_text_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./report-item-text/report-item-text.component */ 43882); +/* harmony import */ var _report_item_table_report_item_table_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./report-item-table/report-item-table.component */ 30421); +/* harmony import */ var _report_item_alarms_report_item_alarms_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./report-item-alarms/report-item-alarms.component */ 23645); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../_models/alarm */ 38238); +/* harmony import */ var _report_item_chart_report_item_chart_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./report-item-chart/report-item-chart.component */ 20470); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../_services/resources.service */ 41878); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! rxjs */ 84980); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! rxjs */ 74300); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! rxjs/operators */ 79736); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _services_plugin_service__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../_services/plugin.service */ 99232); +/* harmony import */ var _models_plugin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../_models/plugin */ 2594); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ReportEditorComponent_1; + + + + + + + + + + + + + + + + + + + + + +pdfmake_build_pdfmake__WEBPACK_IMPORTED_MODULE_3__.vfs = pdfmake_build_vfs_fonts__WEBPACK_IMPORTED_MODULE_4__; +let ReportEditorComponent = ReportEditorComponent_1 = class ReportEditorComponent { + dialogRef; + dialog; + fb; + projectService; + translateService; + resourcesService; + pluginService; + data; + myForm; + itemTextType = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType.text); + itemTableType = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType.table); + itemAlarmsType = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType.alarms); + itemChartType = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportItemType.chart); + fontSize = [6, 8, 10, 12, 14, 16, 18, 20]; + report; + schedulingType = _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportSchedulingType; + chartImageAvailable$; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_15__.Subject(); + imagesList = {}; + constructor(dialogRef, dialog, fb, projectService, translateService, resourcesService, pluginService, data) { + this.dialogRef = dialogRef; + this.dialog = dialog; + this.fb = fb; + this.projectService = projectService; + this.translateService = translateService; + this.resourcesService = resourcesService; + this.pluginService = pluginService; + this.data = data; + const existingReportNames = this.projectService.getReports()?.filter(report => report.id !== data.report.id)?.map(report => report.name); + this.report = data.report; + this.myForm = this.fb.group({ + id: [this.report.id, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.Validators.required], + name: [this.report.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_16__.Validators.required, control => { + if (existingReportNames?.indexOf(control.value) !== -1) { + return { + invalidName: true + }; + } + return null; + }]], + receiver: [this.report.receiver], + scheduling: [this.report.scheduling], + marginLeft: [this.report.docproperty.pageMargins[0]], + marginTop: [this.report.docproperty.pageMargins[1]], + marginRight: [this.report.docproperty.pageMargins[2]], + marginBottom: [this.report.docproperty.pageMargins[3]] + }); + this.chartImageAvailable$ = this.pluginService.getPlugins().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_17__.takeUntil)(this.destroy$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.map)(plugins => plugins.some(plugin => plugin.type === _models_plugin__WEBPACK_IMPORTED_MODULE_14__.PluginGroupType.Chart && plugin.current))); + } + ngOnInit() { + Object.keys(this.schedulingType).forEach(key => { + this.translateService.get(this.schedulingType[key]).subscribe(txt => { + this.schedulingType[key] = txt; + }); + }); + } + ngAfterViewInit() { + this.onReportChanged(); + this.myForm.markAsPristine(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.report.id = this.myForm.controls.id.value; + this.report.name = this.myForm.controls.name.value; + this.report.receiver = this.myForm.controls.receiver.value; + this.report.scheduling = this.myForm.controls.scheduling.value; + if (this.data.editmode < 0) { + this.dialogRef.close(this.report); + } else if (this.myForm.valid) { + this.dialogRef.close(this.report); + } + } + onSchedulingChanged() { + this.report.content.items.forEach(item => { + if (item.type === this.itemTableType) { + item.range = this.myForm.controls.scheduling.value; + } else if (item.type === this.itemAlarmsType) { + item.range = this.myForm.controls.scheduling.value; + } + }); + this.onReportChanged(); + } + onReportChanged() { + this.report.docproperty.pageMargins = [this.myForm.controls.marginLeft.value, this.myForm.controls.marginTop.value, this.myForm.controls.marginRight.value, this.myForm.controls.marginBottom.value]; + this.getPdfContent(this.report).subscribe(content => { + const pdfDocGenerator = pdfmake_build_pdfmake__WEBPACK_IMPORTED_MODULE_3__.createPdf(content); + pdfDocGenerator.getDataUrl(dataUrl => { + const targetIframe = document.querySelector('iframe'); + targetIframe.src = dataUrl; + targetIframe.style.width = '100%'; + targetIframe.style.height = '100%'; + }); + }); + } + getPdfContent(report) { + return new rxjs__WEBPACK_IMPORTED_MODULE_19__.Observable(observer => { + let docDefinition = { + ...report.docproperty + }; + docDefinition['header'] = { + text: 'FUXA by frangoteam', + style: [{ + fontSize: 6 + }] + }; + docDefinition['footer'] = (currentPage, pageCount) => ({ + text: currentPage.toString() + ' / ' + pageCount, + style: [{ + alignment: 'right', + fontSize: 8 + }] + }); + // first resolve async images from server + this.checkImages(report.content.items.filter(item => item.type === this.itemChartType)).subscribe(images => { + images.forEach(item => { + if (!this.imagesList[item.id]) { + this.imagesList[item.id] = item.content; + } + }); + docDefinition['content'] = []; + report.content.items.forEach(item => { + if (item.type === this.itemTextType) { + const itemText = item; + docDefinition['content'].push({ + text: itemText.text, + style: [{ + alignment: item.align, + fontSize: item.size + }] + }); + } else if (item.type === this.itemTableType) { + const itemTable = ReportEditorComponent_1.getTableContent(item); + const tableDateRange = ReportEditorComponent_1.getDateRange(item.range); + docDefinition['content'].push({ + text: `${tableDateRange.begin.toLocaleDateString()} - ${tableDateRange.end.toLocaleDateString()}`, + style: [{ + fontSize: item.size + }] + }); + docDefinition['content'].push(itemTable); + } else if (item.type === this.itemAlarmsType) { + const itemTable = ReportEditorComponent_1.getAlarmsContent(item); + const tableDateRange = ReportEditorComponent_1.getDateRange(item.range); + docDefinition['content'].push({ + text: `${tableDateRange.begin.toLocaleDateString()} - ${tableDateRange.end.toLocaleDateString()}`, + style: [{ + fontSize: item.size + }] + }); + docDefinition['content'].push(itemTable); + } else if (item.type === this.itemChartType) { + const itemChart = item; + if (itemChart.chart && this.imagesList[itemChart.chart.id]) { + docDefinition['content'].push({ + image: `data:image/png;base64,${this.imagesList[itemChart.chart.id]}`, + // if you specify both width and height - image will be stretched + width: itemChart.width || 500, + height: itemChart.height || 350 + // height: 70 + }); + } + } + }); + + observer.next(docDefinition); + }, error => { + console.error('get Resources images error: ' + error); + observer.next(docDefinition); + }); + }); + } + checkImages(items) { + if (items.length <= 0) { + return (0,rxjs__WEBPACK_IMPORTED_MODULE_20__.of)([]); + } + let source = []; + items.forEach(item => { + const chartItem = item; + if (chartItem.chart && !this.imagesList[chartItem.chart.id]) { + source.push(this.resourcesService.generateImage(item).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.map)(result => ({ + id: item.chart.id, + content: result + })))); + } + }); + return (0,rxjs__WEBPACK_IMPORTED_MODULE_21__.forkJoin)(source).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.map)(results => [...results])); + } + onAddItem(type, index = 0, edit = false) { + let item = { + type: type, + align: 'left', + size: 10 + }; + if (type === this.itemTextType) { + item = { + ...item, + ...{ + text: '' + }, + ...{ + style: [{ + alignment: item.align + }] + } + }; + } else if (type === this.itemTableType) { + item = { + ...item, + ...{ + columns: [], + interval: _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportIntervalType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportIntervalType.hour), + range: this.myForm.value.scheduling + } + }; + } else if (type === this.itemAlarmsType) { + item = { + ...item, + ...{ + priority: _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.convertArrayToObject(Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_9__.AlarmsType), true), + property: _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.convertArrayToObject(Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_9__.AlarmPropertyType), true), + range: this.myForm.value.scheduling + } + }; + } else if (type === this.itemChartType) { + item = { + ...item, + ...{ + range: this.myForm.value.scheduling, + width: 500, + height: 350, + size: 14 + } + }; + } + this.onEditItem(item, index, edit); + } + onEditItem(item, index, edit) { + let dialogRef = null; + const dlgconfig = { + data: JSON.parse(JSON.stringify(item)), + position: { + top: '60px' + } + }; + if (item.type === this.itemTableType) { + dialogRef = this.dialog.open(_report_item_table_report_item_table_component__WEBPACK_IMPORTED_MODULE_7__.ReportItemTableComponent, dlgconfig); + } else if (item.type === this.itemAlarmsType) { + dialogRef = this.dialog.open(_report_item_alarms_report_item_alarms_component__WEBPACK_IMPORTED_MODULE_8__.ReportItemAlarmsComponent, dlgconfig); + } else if (item.type === this.itemChartType) { + dialogRef = this.dialog.open(_report_item_chart_report_item_chart_component__WEBPACK_IMPORTED_MODULE_10__.ReportItemChartComponent, dlgconfig); + } else { + dialogRef = this.dialog.open(_report_item_text_report_item_text_component__WEBPACK_IMPORTED_MODULE_6__.ReportItemTextComponent, dlgconfig); + } + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (index <= this.report.content.items.length) { + if (edit) { + this.checkToRemoveImage(index); + this.report.content.items.splice(index, 1, result); + } else { + this.report.content.items.splice(index, 0, result); + } + } else { + this.report.content.items.push(result); + } + this.onReportChanged(); + } + }); + } + onDeleteItem(index) { + this.checkToRemoveImage(index); + this.report.content.items.splice(index, 1); + this.onReportChanged(); + } + onAlignItem(item, align) { + item.align = align; + this.onReportChanged(); + } + onFontSizeItem(index, item, size) { + item.size = size; + this.checkToRemoveImage(index); + this.onReportChanged(); + } + static getTableContent(item) { + let content = { + layout: 'lightHorizontalLines', + fontSize: item.size + }; // optional + let header = item.columns.map(col => ({ + text: col.label || col.tag.label || col.tag.name, + bold: true, + style: [{ + alignment: col.align + }] + })); + let values = item.columns.map(col => col.tag.address || '...'); + content['table'] = { + // headers are automatically repeated if the table spans over multiple pages + // you can declare how many rows should be treated as headers + headerRows: 1, + widths: item.columns.map(col => col.width), + body: [header, values] + }; + return content; + } + static getAlarmsContent(item) { + let content = { + layout: 'lightHorizontalLines', + fontSize: item.size + }; // optional + let header = Object.values(item.propertyText).map(col => ({ + text: col, + bold: true, + style: [{ + alignment: 'left' + }] + })); + let values = Object.values(item.propertyText).map(col => '...'); + content['table'] = { + // headers are automatically repeated if the table spans over multiple pages + // you can declare how many rows should be treated as headers + headerRows: 1, + widths: Object.values(item.propertyText).map(col => '*'), + body: [header, values] + }; + return content; + } + checkToRemoveImage(index) { + if (this.report.content.items[index] && this.report.content.items[index].type === this.itemChartType) { + const reportChart = this.report.content.items[index]; + if (reportChart.chart) { + delete this.imagesList[reportChart.chart.id]; + } + } + } + static getDateRange(dateRange) { + if (dateRange === _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType.day)) { + var yesterday = new Date(); + yesterday.setDate(yesterday.getDate() - 1); + return { + begin: new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate()), + end: new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate(), 23, 59, 59) + }; + } else if (dateRange === _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType.week)) { + var lastWeek = new Date(); + lastWeek = new Date(lastWeek.setDate(lastWeek.getDate() - 7 - (lastWeek.getDay() + 6) % 7)); + var diff = lastWeek.getDate() - lastWeek.getDay() + (lastWeek.getDay() == 0 ? -6 : 1); // adjust when day is sunday + lastWeek = new Date(lastWeek.setDate(diff)); + return { + begin: new Date(lastWeek.getFullYear(), lastWeek.getMonth(), lastWeek.getDate()), + end: new Date(lastWeek.getFullYear(), lastWeek.getMonth(), lastWeek.getDate() + 6, 23, 59, 59) + }; + } else if (dateRange === _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType, _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType.month)) { + var lastMonth = new Date(); + lastMonth.setMonth(lastMonth.getMonth() - 1); + lastMonth.setDate(-1); + return { + begin: new Date(lastMonth.getFullYear(), lastMonth.getMonth(), 1), + end: new Date(lastMonth.getFullYear(), lastMonth.getMonth(), lastMonth.getDate(), 23, 59, 59) + }; + } else { + return { + begin: new Date(), + end: new Date() + }; + } + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MatLegacyDialogRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MatLegacyDialog + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_16__.UntypedFormBuilder + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_12__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_23__.TranslateService + }, { + type: _services_resources_service__WEBPACK_IMPORTED_MODULE_11__.ResourcesService + }, { + type: _services_plugin_service__WEBPACK_IMPORTED_MODULE_13__.PluginService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_24__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ReportEditorComponent = ReportEditorComponent_1 = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_24__.Component)({ + selector: 'app-report-editor', + template: _report_editor_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_report_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MatLegacyDialogRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_22__.MatLegacyDialog, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.UntypedFormBuilder, _services_project_service__WEBPACK_IMPORTED_MODULE_12__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_23__.TranslateService, _services_resources_service__WEBPACK_IMPORTED_MODULE_11__.ResourcesService, _services_plugin_service__WEBPACK_IMPORTED_MODULE_13__.PluginService, Object])], ReportEditorComponent); + + +/***/ }), + +/***/ 23645: +/*!******************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-alarms/report-item-alarms.component.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportItemAlarmsComponent: () => (/* binding */ ReportItemAlarmsComponent) +/* harmony export */ }); +/* harmony import */ var _report_item_alarms_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-item-alarms.component.html?ngResource */ 61713); +/* harmony import */ var _report_item_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-item-alarms.component.scss?ngResource */ 72847); +/* harmony import */ var _report_item_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_report_item_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _models_alarm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/alarm */ 38238); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_models/report */ 90440); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let ReportItemAlarmsComponent = class ReportItemAlarmsComponent { + projectService; + dialogRef; + translateService; + data; + dateRangeType = _models_report__WEBPACK_IMPORTED_MODULE_3__.ReportDateRangeType; + alarmsType = [_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.HIGH_HIGH, _models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.HIGH, _models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.LOW, _models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmsType.INFO]; + alarmPropertyType = Object.values(_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmPropertyType).map(a => a); + alarmsList = []; + alarmsListSelected = []; + constructor(projectService, dialogRef, translateService, data) { + this.projectService = projectService; + this.dialogRef = dialogRef; + this.translateService = translateService; + this.data = data; + } + ngOnInit() { + Object.keys(this.dateRangeType).forEach(key => { + this.translateService.get(this.dateRangeType[key]).subscribe(txt => { + this.dateRangeType[key] = txt; + }); + }); + this.alarmsList = this.projectService.getAlarms().map(alarm => { + let tag = this.projectService.getTagFromId(alarm.property?.variableId); + return { + name: alarm.name, + variableName: tag?.label || tag?.name, + variableId: alarm.property?.variableId + }; + }); + if (this.data.alarmFilter) { + this.alarmsListSelected = this.alarmsList.filter(alarm => !!this.data.alarmFilter?.find(name => alarm.name === name)); + } else { + this.alarmsListSelected = this.alarmsList; + } + } + onPriorityChanged(type, value) { + this.data.priority[type] = value; + } + onPropertyChanged(property, value) { + this.data.property[property] = value; + } + getPriorityValue(type) { + return this.data.priority[type]; + } + getPropertyValue(type) { + return this.data.property[type]; + } + toggleAlarmFilterSelection(event) { + this.alarmsListSelected = this.alarmsList.filter(alarm => event.checked); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.priorityText = {}; + Object.keys(_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmPriorityType).forEach(key => { + this.translateService.get(_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmPriorityType[key]).subscribe(txt => { + this.data.priorityText[key] = txt; + }); + }); + this.data.propertyText = {}; + Object.keys(this.data.property).forEach(key => { + if (this.data.property[key]) { + this.translateService.get('alarms.view-' + key).subscribe(txt => { + this.data.propertyText[key] = txt; + }); + } + }); + this.data.statusText = {}; + Object.keys(_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmStatusType).forEach(key => { + this.translateService.get(_models_alarm__WEBPACK_IMPORTED_MODULE_2__.AlarmStatusType[key]).subscribe(txt => { + this.data.statusText[key] = txt; + }); + }); + this.data.alarmFilter = this.alarmsListSelected.map(alarm => alarm.name); + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ReportItemAlarmsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-report-item-alarms', + template: _report_item_alarms_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_report_item_alarms_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, Object])], ReportItemAlarmsComponent); + + +/***/ }), + +/***/ 20470: +/*!****************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-chart/report-item-chart.component.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportItemChartComponent: () => (/* binding */ ReportItemChartComponent) +/* harmony export */ }); +/* harmony import */ var _report_item_chart_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-item-chart.component.html?ngResource */ 41658); +/* harmony import */ var _report_item_chart_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-item-chart.component.scss?ngResource */ 67845); +/* harmony import */ var _report_item_chart_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_report_item_chart_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 55400); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs/operators */ 20274); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/report */ 90440); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let ReportItemChartComponent = class ReportItemChartComponent { + dialogRef; + translateService; + projectService; + data; + chartCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(); + chartFilterCtrl = new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(); + filteredChart = new rxjs__WEBPACK_IMPORTED_MODULE_5__.ReplaySubject(1); + dateRangeType = _models_report__WEBPACK_IMPORTED_MODULE_2__.ReportDateRangeType; + charts; + _onDestroy = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + constructor(dialogRef, translateService, projectService, data) { + this.dialogRef = dialogRef; + this.translateService = translateService; + this.projectService = projectService; + this.data = data; + this.charts = this.projectService.getCharts(); + } + ngOnInit() { + Object.keys(this.dateRangeType).forEach(key => { + this.translateService.get(this.dateRangeType[key]).subscribe(txt => { + this.dateRangeType[key] = txt; + }); + }); + this.loadChart(); + let chart = null; + if (this.data.chart) { + chart = this.charts.find(chart => chart.id === this.data.chart.id); + } + this.chartCtrl.setValue(chart); + } + ngOnDestroy() { + this._onDestroy.next(null); + this._onDestroy.complete(); + } + onChartChanged() { + // this.data.settings.property = { id: null, type: this.chartViewValue, options: JSON.parse(JSON.stringify(this.options)) }; + // if (this.chartCtrl.value) { + // this.data.settings.name = this.chartCtrl.value.name; + // this.data.settings.property.id = this.chartCtrl.value.id; + // } else { + // this.data.settings.name = ''; + // } + // this.onPropChanged.emit(this.data.settings); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.chart = this.chartCtrl.value; + this.dialogRef.close(this.data); + } + loadChart(toset) { + // load the initial chart list + this.filteredChart.next(this.charts.slice()); + // listen for search field value changes + this.chartFilterCtrl.valueChanges.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.takeUntil)(this._onDestroy)).subscribe(() => { + this.filterChart(); + }); + if (toset) { + let idx = -1; + this.charts.every(function (value, index, _arr) { + if (value.id === toset) { + idx = index; + return false; + } + return true; + }); + if (idx >= 0) { + this.chartCtrl.setValue(this.charts[idx]); + } + } + } + filterChart() { + if (!this.charts) { + return; + } + // get the search keyword + let search = this.chartFilterCtrl.value; + if (!search) { + this.filteredChart.next(this.charts.slice()); + return; + } else { + search = search.toLowerCase(); + } + // filter the variable + this.filteredChart.next(this.charts.filter(chart => chart.name.toLowerCase().indexOf(search) > -1)); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ReportItemChartComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-report-item-chart', + template: _report_item_chart_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_report_item_chart_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, Object])], ReportItemChartComponent); + + +/***/ }), + +/***/ 30421: +/*!****************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-table/report-item-table.component.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportItemTableComponent: () => (/* binding */ ReportItemTableComponent) +/* harmony export */ }); +/* harmony import */ var _report_item_table_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-item-table.component.html?ngResource */ 17772); +/* harmony import */ var _report_item_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-item-table.component.scss?ngResource */ 44820); +/* harmony import */ var _report_item_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_report_item_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../gui-helpers/edit-name/edit-name.component */ 79962); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../_models/device */ 15625); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_models/report */ 90440); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../_services/project.service */ 57610); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../device/device-tag-selection/device-tag-selection.component */ 89697); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let ReportItemTableComponent = class ReportItemTableComponent { + dialogRef; + dialog; + translateService; + projectService; + data; + dateRangeType = _models_report__WEBPACK_IMPORTED_MODULE_5__.ReportDateRangeType; + intervalType = _models_report__WEBPACK_IMPORTED_MODULE_5__.ReportIntervalType; + functionType = _models_report__WEBPACK_IMPORTED_MODULE_5__.ReportFunctionType; + columns; + constructor(dialogRef, dialog, translateService, projectService, data) { + this.dialogRef = dialogRef; + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + this.data = data; + if (this.data.columns.length <= 0) { + let tag = { + label: 'Timestamp' + }; + this.data.columns = [{ + type: _models_report__WEBPACK_IMPORTED_MODULE_5__.ReportTableColumnType.timestamp, + tag: tag, + label: tag.label || tag.name, + align: 'left', + width: 'auto' + }]; + } + this.columns = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.clone(this.data.columns); + } + ngOnInit() { + Object.keys(this.dateRangeType).forEach(key => { + this.translateService.get(this.dateRangeType[key]).subscribe(txt => { + this.dateRangeType[key] = txt; + }); + }); + Object.keys(this.intervalType).forEach(key => { + this.translateService.get(this.intervalType[key]).subscribe(txt => { + this.intervalType[key] = txt; + }); + }); + Object.keys(this.functionType).forEach(key => { + this.translateService.get(this.functionType[key]).subscribe(txt => { + this.functionType[key] = txt; + }); + }); + } + onAddItem(index) { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_7__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: null, + multiSelection: true, + deviceFilter: [_models_device__WEBPACK_IMPORTED_MODULE_4__.DeviceType.internal] + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let varsId = result.variablesId || [result.variableId]; + varsId.forEach(tagId => { + let tag = this.projectService.getTagFromId(tagId); + this.columns.splice(++index, 0, { + tag: tag, + width: 'auto', + align: 'left', + label: tag.label || tag.name, + function: _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.getEnumKey(_models_report__WEBPACK_IMPORTED_MODULE_5__.ReportFunctionType, _models_report__WEBPACK_IMPORTED_MODULE_5__.ReportFunctionType.average) + }); + }); + } + }); + } + onSetLabel(index) { + let title = ''; + this.translateService.get('report.tags-table-setlabel').subscribe(txt => { + title = txt; + }); + let label = this.columns[index].label || this.columns[index].tag.label || this.columns[index].tag.name; + let dialogRef = this.dialog.open(_gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_2__.EditNameComponent, { + position: { + top: '60px' + }, + data: { + name: label, + title: title + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.columns[index].label = result.name; + } + }); + } + onDeleteItem(index) { + this.columns.splice(index, 1); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.columns = this.columns; + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_6__.ProjectService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ReportItemTableComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-report-item-table', + template: _report_item_table_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_report_item_table_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_6__.ProjectService, Object])], ReportItemTableComponent); + + +/***/ }), + +/***/ 43882: +/*!**************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-text/report-item-text.component.ts ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportItemTextComponent: () => (/* binding */ ReportItemTextComponent) +/* harmony export */ }); +/* harmony import */ var _report_item_text_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-item-text.component.html?ngResource */ 54556); +/* harmony import */ var _report_item_text_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-item-text.component.css?ngResource */ 34381); +/* harmony import */ var _report_item_text_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_report_item_text_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let ReportItemTextComponent = class ReportItemTextComponent { + dialogRef; + data; + constructor(dialogRef, data) { + this.dialogRef = dialogRef; + this.data = data; + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.data); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ReportItemTextComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ + selector: 'app-report-item-text', + template: _report_item_text_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_report_item_text_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_2__.MatLegacyDialogRef, Object])], ReportItemTextComponent); + + +/***/ }), + +/***/ 49191: +/*!**************************************************************!*\ + !*** ./src/app/reports/report-list/report-list.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ReportListComponent: () => (/* binding */ ReportListComponent) +/* harmony export */ }); +/* harmony import */ var _report_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-list.component.html?ngResource */ 52372); +/* harmony import */ var _report_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-list.component.css?ngResource */ 74989); +/* harmony import */ var _report_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_report_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_animations__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/animations */ 12501); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 39877); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs */ 89378); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_report__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/report */ 90440); +/* harmony import */ var _services_command_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/command.service */ 80470); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _report_editor_report_editor_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../report-editor/report-editor.component */ 90489); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! file-saver */ 46778); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _services_reports_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../_services/reports.service */ 7839); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + + + + +let ReportListComponent = class ReportListComponent { + dialog; + translateService; + projectService; + commandService; + reportsService; + displayedColumns = ['select', 'name', 'receiver', 'scheduling', 'type', 'expand', 'create', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_10__.MatLegacyTableDataSource([]); + subscriptionLoad; + schedulingType = _models_report__WEBPACK_IMPORTED_MODULE_3__.ReportSchedulingType; + expandedElement; + currentDetails; + table; + sort; + constructor(dialog, translateService, projectService, commandService, reportsService) { + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + this.commandService = commandService; + this.reportsService = reportsService; + } + ngOnInit() { + this.loadReports(); + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(res => { + this.loadReports(); + }); + Object.keys(this.schedulingType).forEach(key => { + this.translateService.get(this.schedulingType[key]).subscribe(txt => { + this.schedulingType[key] = txt; + }); + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + getScheduling(scheduling) { + return this.schedulingType[scheduling] || ''; + } + onAddReport() { + this.editReport(new _models_report__WEBPACK_IMPORTED_MODULE_3__.Report(_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.Utils.getGUID(_models_report__WEBPACK_IMPORTED_MODULE_3__.REPORT_PREFIX)), 1); + } + onEditReport(report) { + this.editReport(report, 0); + } + onStartReport(report) { + this.reportsService.buildReport(report).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_11__.concatMap)(() => (0,rxjs__WEBPACK_IMPORTED_MODULE_12__.timer)(5000))).subscribe(() => { + this.loadDetails(report); + }); + } + onRemoveReport(report) { + this.editReport(report, -1); + } + editReport(report, toAdd) { + let dlgwidth = toAdd < 0 ? 'auto' : '80%'; + let mreport = JSON.parse(JSON.stringify(report)); + let dialogRef = this.dialog.open(_report_editor_report_editor_component__WEBPACK_IMPORTED_MODULE_6__.ReportEditorComponent, { + data: { + report: mreport, + editmode: toAdd + }, + width: dlgwidth, + position: { + top: '80px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (toAdd < 0) { + this.projectService.removeReport(result).subscribe(result => { + this.loadReports(); + }); + } else { + this.projectService.setReport(result, report).subscribe(() => { + this.loadReports(); + }); + } + } + }); + } + loadReports() { + this.dataSource.data = this.projectService.getReports().sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0); + } + toogleDetails(element) { + this.expandedElement = this.expandedElement === element ? null : element; + this.loadDetails(this.expandedElement); + } + loadDetails(element) { + this.currentDetails = []; + if (element) { + this.reportsService.getReportsDir(element).subscribe(result => { + this.currentDetails = result; + }, err => { + console.error('loadDetails err: ' + err); + }); + } + } + onDownloadDetail(file) { + this.commandService.getReportFile(file).subscribe(content => { + let blob = new Blob([content], { + type: 'application/pdf' + }); + file_saver__WEBPACK_IMPORTED_MODULE_7__.saveAs(blob, file); + }, err => { + console.error('Download Report File err:', err); + }); + } + onRemoveFile(file, report) { + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_9__.ConfirmDialogComponent, { + position: { + top: '60px' + }, + data: { + msg: this.translateService.instant('msg.file-remove', { + value: file + }) + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.reportsService.removeReportFile(file).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_11__.concatMap)(() => (0,rxjs__WEBPACK_IMPORTED_MODULE_12__.timer)(2000))).subscribe(() => { + this.loadDetails(report); + }); + } + }); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_13__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: _services_command_service__WEBPACK_IMPORTED_MODULE_4__.CommandService + }, { + type: _services_reports_service__WEBPACK_IMPORTED_MODULE_8__.ReportsService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_15__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_10__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_15__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_16__.MatSort, { + static: false + }] + }] + }; +}; +ReportListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_15__.Component)({ + selector: 'app-report-list', + template: _report_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + animations: [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.trigger)('detailExpand', [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.state)('collapsed', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.style)({ + height: '0px', + minHeight: '0' + })), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.state)('expanded', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.style)({ + height: '*' + })), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.transition)('expanded <=> collapsed', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_17__.animate)('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))])], + styles: [(_report_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_13__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, _services_command_service__WEBPACK_IMPORTED_MODULE_4__.CommandService, _services_reports_service__WEBPACK_IMPORTED_MODULE_8__.ReportsService])], ReportListComponent); + + +/***/ }), + +/***/ 16855: +/*!********************************************************************!*\ + !*** ./src/app/resources/kiosk-widgets/kiosk-widgets.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ KioskWidgetsComponent: () => (/* binding */ KioskWidgetsComponent) +/* harmony export */ }); +/* harmony import */ var _kiosk_widgets_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kiosk-widgets.component.html?ngResource */ 56332); +/* harmony import */ var _kiosk_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./kiosk-widgets.component.scss?ngResource */ 76275); +/* harmony import */ var _kiosk_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_kiosk_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _kiosk_widgets_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./kiosk-widgets.service */ 63353); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var _models_resources__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/resources */ 93226); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/resources.service */ 41878); +/* harmony import */ var _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/toast-notifier.service */ 50243); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let KioskWidgetsComponent = class KioskWidgetsComponent { + dialogRef; + resourcesService; + toastNotifier; + kioskWidgetService; + resourceWidgets$; + groupContent = {}; + loadingGroups = {}; + existingWidgets = []; + assetBaseUrl; + changed = false; + constructor(dialogRef, resourcesService, toastNotifier, kioskWidgetService) { + this.dialogRef = dialogRef; + this.resourcesService = resourcesService; + this.toastNotifier = toastNotifier; + this.kioskWidgetService = kioskWidgetService; + this.assetBaseUrl = this.kioskWidgetService.widgetAssetBaseUrl; + } + ngOnInit() { + this.resourceWidgets$ = this.kioskWidgetService.resourceWidgets$; + this.resourcesService.getResources(_models_resources__WEBPACK_IMPORTED_MODULE_3__.ResourceType.widgets).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.map)(res => res.groups.reduce((acc, group) => acc.concat(group.items || []), []).map(item => item.name).filter(name => !!name))).subscribe(items => { + this.existingWidgets = items; + }); + } + onGroupExpand(groupPath) { + if (!this.groupContent[groupPath]) { + this.loadingGroups[groupPath] = true; + this.kioskWidgetService.getWidgetsGroupContent(groupPath).subscribe(res => { + const enrichedItems = res.map(item => ({ + ...item, + exist: this.existingWidgets.includes(item.name || '') + })); + this.groupContent[groupPath] = enrichedItems; + this.loadingGroups[groupPath] = false; + }, err => { + console.error('Load Widgets resources error: ', err); + this.loadingGroups[groupPath] = false; + }); + } + } + onDownload(item) { + const fileUrl = this.assetBaseUrl + item.path; + const fileName = item.name || item.path.split('/').pop(); + this.kioskWidgetService.uploadWidgetFromUrl(fileUrl, item.path, fileName).subscribe({ + next: result => { + if (!result.result && result.error) { + console.error(result.error); + this.toastNotifier.notifyError('msg.file-upload-failed', result.error); + } else { + item.exist = true; + this.changed = true; + } + }, + error: err => { + console.error('Download or upload failed:', err); + this.toastNotifier.notifyError('msg.file-download-failed', err.message || err); + } + }); + } + onNoClick() { + this.dialogRef.close(this.changed); + } + onOkClick() { + this.dialogRef.close(this.changed); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef + }, { + type: _services_resources_service__WEBPACK_IMPORTED_MODULE_4__.ResourcesService + }, { + type: _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_5__.ToastNotifierService + }, { + type: _kiosk_widgets_service__WEBPACK_IMPORTED_MODULE_2__.KioskWidgetsService + }]; +}; +KioskWidgetsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-kiosk-widgets', + template: _kiosk_widgets_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_kiosk_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialogRef, _services_resources_service__WEBPACK_IMPORTED_MODULE_4__.ResourcesService, _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_5__.ToastNotifierService, _kiosk_widgets_service__WEBPACK_IMPORTED_MODULE_2__.KioskWidgetsService])], KioskWidgetsComponent); + + +/***/ }), + +/***/ 63353: +/*!******************************************************************!*\ + !*** ./src/app/resources/kiosk-widgets/kiosk-widgets.service.ts ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ KioskWidgetsService: () => (/* binding */ KioskWidgetsService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 12235); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ 54860); +/* harmony import */ var _services_my_file_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_services/my-file.service */ 59944); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let KioskWidgetsService = class KioskWidgetsService { + http; + fileService; + endPointWidgetResources = 'https://frangoteam.org/api/list-widgets.php'; + resourceWidgets$; + widgetAssetBaseUrl = 'https://frangoteam.org/widgets/'; + constructor(http, fileService) { + this.http = http; + this.fileService = fileService; + this.resourceWidgets$ = this.getWidgetsResource(); + } + getWidgetsResource() { + const headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpHeaders({ + 'Skip-Auth': 'true' + }); + return this.http.get(this.endPointWidgetResources, { + headers: headers + }); + } + getWidgetsGroupContent(path) { + const headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpHeaders({ + 'Skip-Auth': 'true' + }); + return this.http.get(`${this.endPointWidgetResources}?path=${encodeURIComponent(path)}`, { + headers + }); + } + uploadWidgetFromUrl(fullUrl, filePath, filename) { + return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(observer => { + fetch(fullUrl).then(res => { + if (!res.ok) { + throw new Error('Download failed'); + } + return res.text(); + }).then(svgText => { + const name = filename || filePath.split('/').pop() || fullUrl.split('/').pop() || 'widget.svg'; + const blob = new Blob([svgText], { + type: 'image/svg+xml' + }); + const file = new File([blob], name, { + type: 'image/svg+xml' + }); + this.fileService.upload(file, 'widgets', filePath).subscribe({ + next: result => observer.next(result), + error: err => observer.error(err), + complete: () => observer.complete() + }); + }).catch(err => observer.error(err)); + }); + } + static ctorParameters = () => [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpClient + }, { + type: _services_my_file_service__WEBPACK_IMPORTED_MODULE_0__.MyFileService + }]; +}; +KioskWidgetsService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpClient, _services_my_file_service__WEBPACK_IMPORTED_MODULE_0__.MyFileService])], KioskWidgetsService); + + +/***/ }), + +/***/ 8114: +/*!**************************************************************!*\ + !*** ./src/app/resources/lib-images/lib-images.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LibImagesComponent: () => (/* binding */ LibImagesComponent) +/* harmony export */ }); +/* harmony import */ var _lib_images_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib-images.component.html?ngResource */ 3897); +/* harmony import */ var _lib_images_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib-images.component.css?ngResource */ 91435); +/* harmony import */ var _lib_images_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lib_images_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/resources */ 93226); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/resources.service */ 41878); +/* harmony import */ var _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_helpers/endpointapi */ 25266); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let LibImagesComponent = class LibImagesComponent { + dialogRef; + resourcesService; + endPointConfig = _helpers_endpointapi__WEBPACK_IMPORTED_MODULE_4__.EndPointApi.getURL(); + resImages; + subscription; + constructor(dialogRef, resourcesService) { + this.dialogRef = dialogRef; + this.resourcesService = resourcesService; + } + ngAfterViewInit() { + this.loadResources(); + } + ngOnDestroy() { + try { + this.subscription.unsubscribe(); + } catch (err) { + console.error(err); + } + } + loadResources() { + this.subscription = this.resourcesService.getResources(_models_resources__WEBPACK_IMPORTED_MODULE_2__.ResourceType.images).subscribe(result => { + const groups = result?.groups || []; + groups.forEach(group => { + group.items.forEach(item => { + item.path = `${this.endPointConfig}/${item.path}`; + }); + }); + this.resImages = groups; + }, err => { + console.error('get Resources images error: ' + err); + }); + } + onSelect(imgPath) { + this.dialogRef.close(imgPath); + } + onNoClick() { + this.dialogRef.close(); + } + isVideo(path) { + return this.resourcesService.isVideo(path); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef + }, { + type: _services_resources_service__WEBPACK_IMPORTED_MODULE_3__.ResourcesService + }]; +}; +LibImagesComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-lib-images', + template: _lib_images_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_lib_images_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef, _services_resources_service__WEBPACK_IMPORTED_MODULE_3__.ResourcesService])], LibImagesComponent); + + +/***/ }), + +/***/ 57379: +/*!****************************************************************!*\ + !*** ./src/app/resources/lib-widgets/lib-widgets.component.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LibWidgetsComponent: () => (/* binding */ LibWidgetsComponent) +/* harmony export */ }); +/* harmony import */ var _lib_widgets_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib-widgets.component.html?ngResource */ 39433); +/* harmony import */ var _lib_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib-widgets.component.scss?ngResource */ 73702); +/* harmony import */ var _lib_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lib_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _lib_widgets_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib-widgets.service */ 13142); +/* harmony import */ var _services_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/rcgi/rcgi.service */ 31865); +/* harmony import */ var _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/toast-notifier.service */ 50243); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let LibWidgetsComponent = class LibWidgetsComponent { + libWidgetService; + toastNotifier; + rcgiService; + resourceWidgets$; + selectedWidgetPath; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Subject(); + rootPath = ''; + contextMenuWidget = null; + expandedGroups = {}; + menuTrigger; + triggerButtonRef; + constructor(libWidgetService, toastNotifier, rcgiService) { + this.libWidgetService = libWidgetService; + this.toastNotifier = toastNotifier; + this.rcgiService = rcgiService; + this.rootPath = this.rcgiService.rcgi.endPointConfig; + } + ngOnInit() { + this.resourceWidgets$ = this.libWidgetService.resourceWidgets$; + this.libWidgetService.clearSelection$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(() => { + this.clearSelection(); + }); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onSelect(widgetPath) { + this.selectedWidgetPath = widgetPath; + this.libWidgetService.widgetSelected(`${this.rootPath}/${widgetPath}`); + } + clearSelection() { + this.selectedWidgetPath = null; + } + onRemoveWidget(widget) { + this.libWidgetService.removeWidget(widget).subscribe(() => { + this.libWidgetService.refreshResources(); + }, err => { + console.error('Remove failed:', err); + this.toastNotifier.notifyError('msg.file-download-failed', err.message || err); + }); + } + static ctorParameters = () => [{ + type: _lib_widgets_service__WEBPACK_IMPORTED_MODULE_2__.LibWidgetsService + }, { + type: _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_4__.ToastNotifierService + }, { + type: _services_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_3__.RcgiService + }]; + static propDecorators = { + menuTrigger: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, + args: ['menuTriggerButton'] + }], + triggerButtonRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, + args: ['menuTriggerEl', { + read: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ElementRef + }] + }] + }; +}; +LibWidgetsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-lib-widgets', + template: _lib_widgets_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_lib_widgets_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_lib_widgets_service__WEBPACK_IMPORTED_MODULE_2__.LibWidgetsService, _services_toast_notifier_service__WEBPACK_IMPORTED_MODULE_4__.ToastNotifierService, _services_rcgi_rcgi_service__WEBPACK_IMPORTED_MODULE_3__.RcgiService])], LibWidgetsComponent); + + +/***/ }), + +/***/ 13142: +/*!**************************************************************!*\ + !*** ./src/app/resources/lib-widgets/lib-widgets.service.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LibWidgetsService: () => (/* binding */ LibWidgetsService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 75043); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 81891); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var _models_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_models/resources */ 93226); +/* harmony import */ var _services_resources_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../_services/resources.service */ 41878); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + +let LibWidgetsService = class LibWidgetsService { + resourcesService; + clearSelection$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__.Subject(); + svgWidgetSelected$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__.Subject(); + refreshSubject = new rxjs__WEBPACK_IMPORTED_MODULE_2__.Subject(); + constructor(resourcesService) { + this.resourcesService = resourcesService; + } + resourceWidgets$ = this.refreshSubject.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.startWith)(0), (0,rxjs__WEBPACK_IMPORTED_MODULE_4__.switchMap)(() => this.resourcesService.getResources(_models_resources__WEBPACK_IMPORTED_MODULE_0__.ResourceType.widgets).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_5__.map)(images => images.groups)))); + clearSelection() { + this.clearSelection$.next(null); + } + widgetSelected(widgetPath) { + if (widgetPath.split('.').pop().toLowerCase() === 'svg') { + this.svgWidgetSelected$.next(widgetPath); + } + } + refreshResources() { + this.refreshSubject.next(null); + } + removeWidget(widget) { + return this.resourcesService.removeWidget(widget); + } + static ctorParameters = () => [{ + type: _services_resources_service__WEBPACK_IMPORTED_MODULE_1__.ResourcesService + }]; +}; +LibWidgetsService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({ + providedIn: 'root' +}), __metadata("design:paramtypes", [_services_resources_service__WEBPACK_IMPORTED_MODULE_1__.ResourcesService])], LibWidgetsService); + + +/***/ }), + +/***/ 85011: +/*!********************************************************************************************!*\ + !*** ./src/app/scripts/script-editor/script-editor-param/script-editor-param.component.ts ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptEditorParamComponent: () => (/* binding */ ScriptEditorParamComponent) +/* harmony export */ }); +/* harmony import */ var _script_editor_param_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./script-editor-param.component.html?ngResource */ 41578); +/* harmony import */ var _script_editor_param_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script-editor-param.component.css?ngResource */ 26326); +/* harmony import */ var _script_editor_param_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_script_editor_param_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../_models/script */ 10846); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let ScriptEditorParamComponent = class ScriptEditorParamComponent { + dialogRef; + translateService; + data; + error = ''; + existError; + paramType = _helpers_utils__WEBPACK_IMPORTED_MODULE_3__.Utils.enumKeys(_models_script__WEBPACK_IMPORTED_MODULE_2__.ScriptParamType); + constructor(dialogRef, translateService, data) { + this.dialogRef = dialogRef; + this.translateService = translateService; + this.data = data; + this.existError = this.translateService.instant('script.param-name-exist'); + } + onNoClick() { + this.dialogRef.close(); + } + isValid(name) { + if (this.data.validator && !this.data.validator(name)) { + return false; + } + if (!this.data.type) { + return false; + } + if (!this.data.name) { + return false; + } + return this.data.exist.find(n => n === name) ? false : true; + } + onCheckValue(input) { + if (this.data.exist && this.data.exist.length && input.target.value) { + if (this.data.exist.find(n => n === input.target.value)) { + this.error = this.existError; + return; + } + } + this.error = ''; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ScriptEditorParamComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-script-editor-param', + template: _script_editor_param_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_script_editor_param_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_4__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService, Object])], ScriptEditorParamComponent); + + +/***/ }), + +/***/ 1709: +/*!******************************************************************!*\ + !*** ./src/app/scripts/script-editor/script-editor.component.ts ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptEditorComponent: () => (/* binding */ ScriptEditorComponent) +/* harmony export */ }); +/* harmony import */ var _script_editor_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./script-editor.component.html?ngResource */ 60778); +/* harmony import */ var _script_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script-editor.component.scss?ngResource */ 23217); +/* harmony import */ var _script_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_script_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _ctrl_ngx_codemirror__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ctrl/ngx-codemirror */ 67476); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/hmi.service */ 69578); +/* harmony import */ var _services_script_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/script.service */ 67758); +/* harmony import */ var _gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../gui-helpers/edit-name/edit-name.component */ 79962); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_models/script */ 10846); +/* harmony import */ var _models_device__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../_models/device */ 15625); +/* harmony import */ var _device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../device/device-tag-selection/device-tag-selection.component */ 89697); +/* harmony import */ var _script_editor_param_script_editor_param_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./script-editor-param/script-editor-param.component */ 85011); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + + + +let ScriptEditorComponent = class ScriptEditorComponent { + dialogRef; + dialog; + changeDetector; + translateService; + hmiService; + scriptService; + data; + CodeMirror; + codeMirrorContent; + codeMirrorOptions = { + lineNumbers: true, + theme: 'material', + mode: 'javascript', + // lineWrapping: true, + // foldGutter: true, + // gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter', 'CodeMirror-lint-markers'], + // gutters: ["CodeMirror-lint-markers"], + // lint: {options: {esversion: 2021}}, + lint: true + }; + systemFunctions; + templatesCode; + checkSystemFnc = []; + parameters = []; + testParameters = []; + tagParamType = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptParamType, _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptParamType.tagid); + console = []; + script; + msgRemoveScript = ''; + ready = false; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_10__.Subject(); + constructor(dialogRef, dialog, changeDetector, translateService, hmiService, scriptService, data) { + this.dialogRef = dialogRef; + this.dialog = dialog; + this.changeDetector = changeDetector; + this.translateService = translateService; + this.hmiService = hmiService; + this.scriptService = scriptService; + this.data = data; + this.script = data.script; + this.dialogRef.afterOpened().subscribe(() => setTimeout(() => { + this.ready = true; + this.setCM(); + }, 0)); + this.systemFunctions = new _models_script__WEBPACK_IMPORTED_MODULE_6__.SystemFunctions(this.script.mode); + this.templatesCode = new _models_script__WEBPACK_IMPORTED_MODULE_6__.TemplatesCode(this.script.mode); + this.checkSystemFnc = this.systemFunctions.functions.map(sf => sf.name); + } + ngOnInit() { + if (!this.script) { + this.script = new _models_script__WEBPACK_IMPORTED_MODULE_6__.Script(_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getGUID(_models_script__WEBPACK_IMPORTED_MODULE_6__.SCRIPT_PREFIX)); + } + this.parameters = this.script.parameters; + this.codeMirrorContent = this.script.code; + this.translateService.get('msg.script-remove', { + value: this.script.name + }).subscribe(txt => { + this.msgRemoveScript = txt; + }); + this.systemFunctions.functions.forEach(fnc => { + this.translateService.get(fnc.text).subscribe(txt => { + fnc.text = txt; + }); + this.translateService.get(fnc.tooltip).subscribe(txt => { + fnc.tooltip = txt; + }); + }); + this.templatesCode.functions.forEach(fnc => { + fnc.text = this.translateService.instant(fnc.text); + fnc.tooltip = this.translateService.instant(fnc.tooltip); + }); + this.hmiService.onScriptConsole.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_11__.takeUntil)(this.destroy$)).subscribe(scriptConsole => { + this.console.push(scriptConsole.msg); + }); + this.loadTestParameter(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + setCM() { + this.changeDetector.detectChanges(); + this.CodeMirror?.codeMirror?.refresh(); + let spellCheckOverlay = { + token: stream => { + for (let i = 0; i < this.checkSystemFnc.length; i++) { + if (stream.match(this.checkSystemFnc[i])) { + return 'system-function'; + } + } + while (stream.next(null) != null && this.checkSystemFnc.indexOf(stream) !== -1) {} + return null; + } + }; + this.CodeMirror?.codeMirror?.addOverlay(spellCheckOverlay); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.script); + } + getParameters() { + return ''; + } + isValid() { + if (this.script && this.script.name) { + return true; + } + return false; + } + onEditScriptName() { + let title = 'dlg.item-title'; + let label = 'dlg.item-req-name'; + let error = 'dlg.item-name-error'; + let exist = this.data.scripts.map(s => s.name); + this.translateService.get(title).subscribe(txt => { + title = txt; + }); + this.translateService.get(label).subscribe(txt => { + label = txt; + }); + this.translateService.get(error).subscribe(txt => { + error = txt; + }); + let dialogRef = this.dialog.open(_gui_helpers_edit_name_edit_name_component__WEBPACK_IMPORTED_MODULE_4__.EditNameComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + name: this.script.name, + title: title, + label: label, + exist: exist, + error: error, + validator: this.validateName + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.name && result.name.length > 0) { + this.script.name = result.name; + } + }); + } + onAddFunctionParam() { + let error = 'dlg.item-name-error'; + let exist = this.parameters.map(p => p.name); + let dialogRef = this.dialog.open(_script_editor_param_script_editor_param_component__WEBPACK_IMPORTED_MODULE_9__.ScriptEditorParamComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + name: '', + exist: exist, + error: error, + validator: this.validateName + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.name && result.type) { + this.parameters.push(new _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptParam(result.name, result.type)); + this.loadTestParameter(); + } + }); + } + onRemoveParameter(index) { + this.parameters.splice(index, 1); + this.loadTestParameter(); + } + onEditorContent(event) { + this.script.code = this.codeMirrorContent; + } + onAddSystemFunction(sysfnc) { + if (sysfnc.params.filter(value => value)?.length) { + this.onAddSystemFunctionTag(sysfnc); + } else { + this.insertText(this.getFunctionText(sysfnc)); + } + } + onAddTemplateCode(tmpfnc) { + if (tmpfnc.code) { + this.insertText(tmpfnc.code); + } + } + onAddSystemFunctionTag(sysfnc) { + const withMultTagsParam = sysfnc.params?.find(p => p === 'array'); + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_8__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: null, + multiSelection: withMultTagsParam ? true : false, + deviceFilter: [this.script.mode === _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptMode.SERVER ? _models_device__WEBPACK_IMPORTED_MODULE_7__.DeviceType.internal : null], + isHistorical: sysfnc.paramFilter === _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptParamFilterType.history + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let text; + if (withMultTagsParam && result.variablesId) { + const tags = result.variablesId.map(varId => ({ + id: varId, + comment: _models_device__WEBPACK_IMPORTED_MODULE_7__.DevicesUtils.getDeviceTagText(this.data.devices, varId) + })); + text = this.getTagFunctionText(sysfnc, tags); + } else if (result.variableId) { + const tag = { + id: result.variableId, + comment: _models_device__WEBPACK_IMPORTED_MODULE_7__.DevicesUtils.getDeviceTagText(this.data.devices, result.variableId) + }; + text = this.getTagFunctionText(sysfnc, [tag]); + } + this.insertText(text); + } + }); + } + onSetTestTagParam(param) { + let dialogRef = this.dialog.open(_device_device_tag_selection_device_tag_selection_component__WEBPACK_IMPORTED_MODULE_8__.DeviceTagSelectionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + variableId: null, + multiSelection: false, + deviceFilter: [_models_device__WEBPACK_IMPORTED_MODULE_7__.DeviceType.internal] + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && result.variableId) { + param.value = result.variableId; + } + }); + } + onRunTest() { + let torun = new _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptTest(this.script.id, this.script.name); + torun.parameters = this.testParameters; + torun.mode = this.script.mode; + torun.outputId = this.script.id; + torun.code = this.script.code; + this.scriptService.runScript(torun).subscribe(result => { + this.console.push(JSON.stringify(result)); + }, err => { + this.console.push(err.message ? err.message : err); + if (err.error) { + this.console.push(err.error.message ? err.error.message : err.error); + } + }); + } + toggleSync() { + this.script.sync = !this.script.sync; + } + onConsoleClear() { + this.console = []; + } + validateName(name) { + const regex = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/; + return regex.test(name); + } + insertText(text) { + let doc = this.CodeMirror.codeMirror.getDoc(); + var cursor = doc.getCursor(); // gets the line number in the cursor position + doc.replaceRange(text, cursor); + } + getTagFunctionText(sysfnc, params) { + let paramText = ''; + for (let i = 0; i < sysfnc.params.length; i++) { + if (paramText.length) { + // parameters separator + paramText += ', '; + } + let toAdd = ''; + if (sysfnc.params[i] && params) { + if (sysfnc.params[i] === 'array') { + toAdd = '[' + params.map(param => `'${param.id}' /* ${param.comment} */`).join(', ') + ']'; + } else if (params[i]) { + // tag ID + toAdd = `'${params[i].id}' /* ${params[i].comment} */`; + } + } else {} + paramText += toAdd; + } + return `${sysfnc.name}(${paramText});`; + } + getFunctionText(sysfnc) { + let paramText = '\'params\''; + const fx = this.systemFunctions.functions.find(sf => sf.name === sysfnc.name); + if (!fx?.params?.length) { + paramText = ''; + } else if (fx?.paramsText) { + paramText = this.translateService.instant(fx.paramsText) || paramText; + } + return `${sysfnc.name}(${paramText});`; + } + loadTestParameter() { + let params = []; + for (let i = 0; i < this.parameters.length; i++) { + let p = new _models_script__WEBPACK_IMPORTED_MODULE_6__.ScriptParam(this.parameters[i].name, this.parameters[i].type); + if (this.testParameters[i]) { + p.value = this.testParameters[i].value; + } + params.push(p); + } + this.testParameters = params; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogRef + }, { + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialog + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ChangeDetectorRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__.TranslateService + }, { + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService + }, { + type: _services_script_service__WEBPACK_IMPORTED_MODULE_3__.ScriptService + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MAT_LEGACY_DIALOG_DATA] + }] + }]; + static propDecorators = { + CodeMirror: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: [_ctrl_ngx_codemirror__WEBPACK_IMPORTED_MODULE_15__.CodemirrorComponent, { + static: false + }] + }] + }; +}; +ScriptEditorComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_13__.Component)({ + selector: 'app-script-editor', + template: _script_editor_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_script_editor_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialogRef, _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_12__.MatLegacyDialog, _angular_core__WEBPACK_IMPORTED_MODULE_13__.ChangeDetectorRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_14__.TranslateService, _services_hmi_service__WEBPACK_IMPORTED_MODULE_2__.HmiService, _services_script_service__WEBPACK_IMPORTED_MODULE_3__.ScriptService, Object])], ScriptEditorComponent); + + +/***/ }), + +/***/ 4264: +/*!**************************************************************!*\ + !*** ./src/app/scripts/script-list/script-list.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptListComponent: () => (/* binding */ ScriptListComponent) +/* harmony export */ }); +/* harmony import */ var _script_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./script-list.component.html?ngResource */ 56383); +/* harmony import */ var _script_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script-list.component.css?ngResource */ 88038); +/* harmony import */ var _script_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_script_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _script_editor_script_editor_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../script-editor/script-editor.component */ 1709); +/* harmony import */ var _script_scheduling_script_scheduling_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../script-scheduling/script-scheduling.component */ 59622); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_models/script */ 10846); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var _script_permission_script_permission_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../script-permission/script-permission.component */ 61903); +/* harmony import */ var _script_mode_script_mode_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../script-mode/script-mode.component */ 20394); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + + + + +let ScriptListComponent = class ScriptListComponent { + dialog; + translateService; + projectService; + displayedColumns = ['select', 'name', 'params', 'scheduling', 'mode', 'options', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_9__.MatLegacyTableDataSource([]); + subscriptionLoad; + table; + sort; + constructor(dialog, translateService, projectService) { + this.dialog = dialog; + this.translateService = translateService; + this.projectService = projectService; + } + ngOnInit() { + this.loadScripts(); + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(res => { + this.loadScripts(); + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + onAddScript() { + let dialogRef = this.dialog.open(_script_mode_script_mode_component__WEBPACK_IMPORTED_MODULE_8__.ScriptModeComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + mode: _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptMode.SERVER, + name: _helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.getNextName('script_', this.dataSource.data.map(s => s.name)), + newScript: true + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + let script = new _models_script__WEBPACK_IMPORTED_MODULE_5__.Script(_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.getGUID(_models_script__WEBPACK_IMPORTED_MODULE_5__.SCRIPT_PREFIX)); + script.name = result.name; + script.mode = result.mode; + this.editScript(script, 1); + } + }); + } + onEditScript(script) { + this.editScript(script, 0); + } + onRemoveScript(script) { + this.editScript(script, -1); + } + editScript(script, toAdd) { + let dlgwidth = toAdd < 0 ? 'auto' : '80%'; + let scripts = this.dataSource.data.filter(s => s.id !== script.id); + let mscript = JSON.parse(JSON.stringify(script)); + let dialogRef = this.dialog.open(_script_editor_script_editor_component__WEBPACK_IMPORTED_MODULE_3__.ScriptEditorComponent, { + data: { + script: mscript, + editmode: toAdd, + scripts: scripts, + devices: Object.values(this.projectService.getDevices()) + }, + disableClose: true, + width: dlgwidth, + position: { + top: '80px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + if (toAdd < 0) { + this.projectService.removeScript(result).subscribe(result => { + this.loadScripts(); + }); + } else { + this.projectService.setScript(result, script).subscribe(() => { + this.loadScripts(); + }); + } + } + }); + } + getParameters(script) { + if (script.parameters) { + let result = ''; + Object.values(script.parameters).forEach(param => { + if (result) { + result += ', '; + } + result += `${param.name}: ${param.type}`; + }); + return result; + } + return ''; + } + getScheduling(script) { + if (script.scheduling) { + let result = ''; + if (script.scheduling.mode) { + result = this.translateService.instant('script.scheduling-' + script.scheduling.mode) + ' - '; + } + if (script.scheduling.mode === _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptSchedulingMode.interval || script.scheduling.mode === _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptSchedulingMode.start) { + if (script.scheduling.interval) { + result += `${script.scheduling.interval} sec.`; + } else { + result += this.translateService.instant('report.scheduling-none'); + } + } else if (script.scheduling.mode === _models_script__WEBPACK_IMPORTED_MODULE_5__.ScriptSchedulingMode.scheduling) { + result += `${script.scheduling.schedules?.length}`; + } + return result; + } + return ''; + } + onEditScriptScheduling(script) { + let dialogRef = this.dialog.open(_script_scheduling_script_scheduling_component__WEBPACK_IMPORTED_MODULE_4__.ScriptSchedulingComponent, { + data: { + scheduling: script.scheduling + }, + disableClose: true, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + script.scheduling = result; + this.projectService.setScript(script, null).subscribe(() => { + this.loadScripts(); + }); + } + }); + } + onEditScriptPermission(script) { + let permission = script.permission; + let dialogRef = this.dialog.open(_script_permission_script_permission_component__WEBPACK_IMPORTED_MODULE_7__.ScriptPermissionComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + permission: permission, + permissionRoles: script.permissionRoles + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + script.permission = result.permission; + script.permissionRoles = result.permissionRoles; + this.projectService.setScript(script, null).subscribe(() => { + this.loadScripts(); + }); + } + }); + } + onEditScriptMode(script) { + let dialogRef = this.dialog.open(_script_mode_script_mode_component__WEBPACK_IMPORTED_MODULE_8__.ScriptModeComponent, { + disableClose: true, + position: { + top: '60px' + }, + data: { + mode: script.mode + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + script.mode = result.mode; + this.projectService.setScript(script, null).subscribe(() => { + this.loadScripts(); + }); + } + }); + } + loadScripts() { + this.dataSource.data = this.projectService.getScripts(); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_9__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_13__.MatSort, { + static: false + }] + }] + }; +}; +ScriptListComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-script-list', + template: _script_list_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_script_list_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_10__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService])], ScriptListComponent); + + +/***/ }), + +/***/ 20394: +/*!**************************************************************!*\ + !*** ./src/app/scripts/script-mode/script-mode.component.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptModeComponent: () => (/* binding */ ScriptModeComponent) +/* harmony export */ }); +/* harmony import */ var _script_mode_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./script-mode.component.html?ngResource */ 51016); +/* harmony import */ var _script_mode_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script-mode.component.css?ngResource */ 67936); +/* harmony import */ var _script_mode_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_script_mode_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/script */ 10846); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + +let ScriptModeComponent = class ScriptModeComponent { + dialogRef; + translateService; + projectService; + fb; + data; + formGroup; + scriptMode = _models_script__WEBPACK_IMPORTED_MODULE_2__.ScriptMode; + existingNames = []; + constructor(dialogRef, translateService, projectService, fb, data) { + this.dialogRef = dialogRef; + this.translateService = translateService; + this.projectService = projectService; + this.fb = fb; + this.data = data; + } + ngOnInit() { + this.existingNames = this.projectService.getScripts()?.map(script => script.name); + this.formGroup = this.fb.group({ + name: [this.data.name], + mode: [this.data.mode, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required] + }); + if (this.data.newScript) { + this.formGroup.controls.name.setValidators([_angular_forms__WEBPACK_IMPORTED_MODULE_4__.Validators.required, this.isValidScriptName()]); + } + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + this.dialogRef.close(this.formGroup.getRawValue()); + } + isValidScriptName() { + return control => { + const value = control.value?.trim(); + if (!value) { + return null; + } + const functionNameRegex = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/; + if (!functionNameRegex.test(value)) { + return { + message: this.translateService.instant('msg.invalid-script-name') + }; + } + if (this.existingNames.includes(value)) { + return { + message: this.translateService.instant('msg.script-name-exist') + }; + } + return null; + }; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ScriptModeComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ + selector: 'app-script-mode', + template: _script_mode_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_script_mode_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_5__.MatLegacyDialogRef, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, Object])], ScriptModeComponent); + + +/***/ }), + +/***/ 61903: +/*!**************************************************************************!*\ + !*** ./src/app/scripts/script-permission/script-permission.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptPermissionComponent: () => (/* binding */ ScriptPermissionComponent) +/* harmony export */ }); +/* harmony import */ var _script_permission_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./script-permission.component.html?ngResource */ 44511); +/* harmony import */ var _script_permission_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script-permission.component.css?ngResource */ 91138); +/* harmony import */ var _script_permission_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_script_permission_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gui-helpers/sel-options/sel-options.component */ 84804); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_models/user */ 252); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/settings.service */ 22044); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/user.service */ 96155); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 20274); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let ScriptPermissionComponent = class ScriptPermissionComponent { + dialogRef; + data; + cdr; + userService; + settingsService; + userInfo; + selected = []; + options = []; + seloptions; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_6__.Subject(); + constructor(dialogRef, data, cdr, userService, settingsService) { + this.dialogRef = dialogRef; + this.data = data; + this.cdr = cdr; + this.userService = userService; + this.settingsService = settingsService; + } + ngOnInit() { + if (this.isRolePermission()) { + this.userService.getRoles().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.map)(roles => roles.sort((a, b) => a.index - b.index)), (0,rxjs__WEBPACK_IMPORTED_MODULE_8__.takeUntil)(this.destroy$)).subscribe(roles => { + this.options = roles?.map(role => ({ + id: role.id, + label: role.name + })); + this.selected = this.options.filter(role => this.data.permissionRoles?.enabled?.includes(role.id)); + }, err => { + console.error('get Roles err: ' + err); + }); + } else { + this.selected = _models_user__WEBPACK_IMPORTED_MODULE_3__.UserGroups.ValueToGroups(this.data.permission); + this.options = _models_user__WEBPACK_IMPORTED_MODULE_3__.UserGroups.Groups; + } + this.cdr.detectChanges(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + let result = { + permission: null, + permissionRoles: { + enabled: null + } + }; + if (this.seloptions) { + if (this.isRolePermission()) { + result.permissionRoles.enabled = this.seloptions.selected?.map(role => role.id); + } else { + result.permission = _models_user__WEBPACK_IMPORTED_MODULE_3__.UserGroups.GroupsToValue(this.seloptions.selected); + } + } + this.dialogRef.close(result); + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_5__.UserService + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_4__.SettingsService + }]; + static propDecorators = { + seloptions: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, + args: [_gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_2__.SelOptionsComponent, { + static: false + }] + }] + }; +}; +ScriptPermissionComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({ + selector: 'app-script-permission', + template: _script_permission_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_script_permission_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_9__.MatLegacyDialogRef, Object, _angular_core__WEBPACK_IMPORTED_MODULE_10__.ChangeDetectorRef, _services_user_service__WEBPACK_IMPORTED_MODULE_5__.UserService, _services_settings_service__WEBPACK_IMPORTED_MODULE_4__.SettingsService])], ScriptPermissionComponent); + + +/***/ }), + +/***/ 59622: +/*!**************************************************************************!*\ + !*** ./src/app/scripts/script-scheduling/script-scheduling.component.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ScriptSchedulingComponent: () => (/* binding */ ScriptSchedulingComponent) +/* harmony export */ }); +/* harmony import */ var _script_scheduling_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./script-scheduling.component.html?ngResource */ 84367); +/* harmony import */ var _script_scheduling_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script-scheduling.component.scss?ngResource */ 80855); +/* harmony import */ var _script_scheduling_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_script_scheduling_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_script__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/script */ 10846); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 28849); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + +let ScriptSchedulingComponent = class ScriptSchedulingComponent { + dialogRef; + fb; + data; + formGroup; + scheduling = { + interval: 0 + }; + schedulingMode = Object.keys(_models_script__WEBPACK_IMPORTED_MODULE_2__.ScriptSchedulingMode); + constructor(dialogRef, fb, data) { + this.dialogRef = dialogRef; + this.fb = fb; + this.data = data; + if (this.data.scheduling) { + this.scheduling = JSON.parse(JSON.stringify(this.data.scheduling)); + } + } + ngOnInit() { + this.formGroup = this.fb.group({ + mode: [this.scheduling?.mode || 'interval'], + interval: [this.scheduling?.interval || 0], + schedules: [this.fb.array([])] + }); + if (this.scheduling?.schedules) { + this.scheduling.schedules.forEach(schedule => { + this.onAddScheduling(schedule); + }); + } + } + onAddScheduling(value) { + let schedules = this.formGroup.get('schedules'); + const sch = this.fb.group({ + date: [value?.date], + days: [value?.days], + time: [value?.time], + hour: [value?.hour], + minute: [value?.minute], + type: [value?.type] + }); + schedules.value.controls.push(sch); + } + onRemoveScheduling(index) { + let schedules = this.formGroup.get('schedules'); + schedules.value.controls.splice(index, 1); + } + onNoClick() { + this.dialogRef.close(); + } + onOkClick() { + let schedules = this.formGroup.get('schedules'); + this.scheduling = this.formGroup.value; + this.scheduling.schedules = schedules.value.controls.map(control => control.value); + this.dialogRef.close(this.scheduling); + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MAT_LEGACY_DIALOG_DATA] + }] + }]; +}; +ScriptSchedulingComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ + selector: 'app-script-scheduling', + template: _script_scheduling_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_script_scheduling_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_3__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder, Object])], ScriptSchedulingComponent); + + +/***/ }), + +/***/ 79839: +/*!**********************************************!*\ + !*** ./src/app/sidenav/sidenav.component.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SidenavComponent: () => (/* binding */ SidenavComponent) +/* harmony export */ }); +/* harmony import */ var _sidenav_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidenav.component.html?ngResource */ 51638); +/* harmony import */ var _sidenav_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidenav.component.scss?ngResource */ 55338); +/* harmony import */ var _sidenav_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_sidenav_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common */ 26575); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _services_language_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_services/language.service */ 46368); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/utils */ 91019); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + +let SidenavComponent = class SidenavComponent { + location; + router; + projectService; + languageService; + changeDetector; + sidenav; + goToPage = new _angular_core__WEBPACK_IMPORTED_MODULE_6__.EventEmitter(); + goToLink = new _angular_core__WEBPACK_IMPORTED_MODULE_6__.EventEmitter(); + viewAsLink = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.LinkType.address; + viewAsAlarms = _models_hmi__WEBPACK_IMPORTED_MODULE_2__.LinkType.alarms; + logo = null; + layout = null; + showSidenav = false; + layoutNavigation = new _models_hmi__WEBPACK_IMPORTED_MODULE_2__.NavigationSettings(); + expandedItems = new Set(); + expandableNavItems = [_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.NaviItemType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.NaviItemType.text), _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getEnumKey(_models_hmi__WEBPACK_IMPORTED_MODULE_2__.NaviItemType, _models_hmi__WEBPACK_IMPORTED_MODULE_2__.NaviItemType.inline)]; + constructor(location, router, projectService, languageService, changeDetector) { + this.location = location; + this.router = router; + this.projectService = projectService; + this.languageService = languageService; + this.changeDetector = changeDetector; + } + ngAfterContentChecked() { + this.showSidenav = this.layout ? true : false; + this.changeDetector.detectChanges(); + } + onGoTo(item) { + if (this.location.path().startsWith('/home/')) { + const view = this.projectService.getViewFromId(item.view); + if (view) { + this.router.navigate(['/home', view.name]); + } + } + if (item.link && item.view === this.viewAsLink) { + this.goToLink.emit(item.link); + } else if (item.view) { + this.goToPage.emit(item.view); + } + } + toggleSubMenu(item) { + if (item.id && item.children?.length) { + if (this.expandedItems.has(item.id)) { + this.expandedItems.delete(item.id); + } else { + this.expandedItems.add(item.id); + } + this.changeDetector.detectChanges(); + } + } + isExpanded(item) { + return item.id ? this.expandedItems.has(item.id) : false; + } + isExpandable(item) { + return this.expandableNavItems.includes(this.layout.navigation.type) && item.children?.length > 0; + } + setLayout(layout) { + this.layout = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.clone(layout); + if (this.layout.navigation) { + this.layoutNavigation = this.layout.navigation; + this.logo = this.layout.navigation.logo; + this.layout.navigation.items?.forEach(item => { + item.text = this.languageService.getTranslation(item.text) ?? item.text; + if (!item.id) { + item.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getShortGUID(); + } + item.children?.forEach(child => { + child.text = this.languageService.getTranslation(child.text) ?? child.text; + if (!child.id) { + child.id = _helpers_utils__WEBPACK_IMPORTED_MODULE_5__.Utils.getShortGUID(); + } + }); + }); + } + } + static ctorParameters = () => [{ + type: _angular_common__WEBPACK_IMPORTED_MODULE_7__.Location + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_8__.Router + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService + }, { + type: _services_language_service__WEBPACK_IMPORTED_MODULE_4__.LanguageService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ChangeDetectorRef + }]; + static propDecorators = { + sidenav: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input + }], + goToPage: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Output + }], + goToLink: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Output + }] + }; +}; +SidenavComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-sidenav', + template: _sidenav_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_sidenav_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_common__WEBPACK_IMPORTED_MODULE_7__.Location, _angular_router__WEBPACK_IMPORTED_MODULE_8__.Router, _services_project_service__WEBPACK_IMPORTED_MODULE_3__.ProjectService, _services_language_service__WEBPACK_IMPORTED_MODULE_4__.LanguageService, _angular_core__WEBPACK_IMPORTED_MODULE_6__.ChangeDetectorRef])], SidenavComponent); + + +/***/ }), + +/***/ 54442: +/*!********************************************!*\ + !*** ./src/app/tester/tester.component.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TesterComponent: () => (/* binding */ TesterComponent) +/* harmony export */ }); +/* harmony import */ var _tester_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tester.component.html?ngResource */ 90897); +/* harmony import */ var _tester_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tester.component.css?ngResource */ 27634); +/* harmony import */ var _tester_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_tester_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 89378); +/* harmony import */ var _services_hmi_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_services/hmi.service */ 69578); +/* harmony import */ var _tester_tester_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../tester/tester.service */ 34605); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + +let TesterComponent = class TesterComponent { + hmiService; + gaugesManager; + testerService; + show = false; + items = []; + output = []; + subscription; + demoSwitch = true; + // items: Map = new Map(); + constructor(hmiService, gaugesManager, testerService) { + this.hmiService = hmiService; + this.gaugesManager = gaugesManager; + this.testerService = testerService; + } + ngOnInit() { + this.testerService.change.subscribe(isOpen => { + this.show = isOpen; + }); + this.gaugesManager.onevent.subscribe(event => { + if (event.dbg) { + this.addOutput(event.dbg); + } + }); + } + ngOnDestroy() { + this.stopDemo(); + } + setSignal(sig) { + this.hmiService.setSignalValue(sig); + this.addOutput(' > ' + sig.source + ' - ' + sig.name + ' = ' + sig.value); + } + setSignals(items) { + this.items = items; + } + setDemo(flag) { + if (flag) { + // this.gaugesManager.startDemo(); + } else { + // this.gaugesManager.stopDemo(); + } + } + addOutput(item) { + this.output.unshift(item); + } + close() { + this.testerService.toggle(false); + } + startDemo() { + this.stopDemo(); + let sourcetimer = (0,rxjs__WEBPACK_IMPORTED_MODULE_5__.timer)(2000, 1500); + this.subscription = sourcetimer.subscribe(t => { + this.demoValue(); + }); + } + stopDemo() { + try { + if (this.subscription) { + this.subscription.unsubscribe(); + } + } catch (e) {} + } + demoValue() {} + static ctorParameters = () => [{ + type: _services_hmi_service__WEBPACK_IMPORTED_MODULE_3__.HmiService + }, { + type: _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_2__.GaugesManager + }, { + type: _tester_tester_service__WEBPACK_IMPORTED_MODULE_4__.TesterService + }]; +}; +TesterComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({ + selector: 'app-tester', + template: _tester_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_tester_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_hmi_service__WEBPACK_IMPORTED_MODULE_3__.HmiService, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_2__.GaugesManager, _tester_tester_service__WEBPACK_IMPORTED_MODULE_4__.TesterService])], TesterComponent); + + +/***/ }), + +/***/ 34605: +/*!******************************************!*\ + !*** ./src/app/tester/tester.service.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TesterService: () => (/* binding */ TesterService) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 61699); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +let TesterService = class TesterService { + change = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); + toggle(flag) { + this.change.emit(flag); + } + static propDecorators = { + change: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output + }] + }; +}; +TesterService = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable)()], TesterService); + + +/***/ }), + +/***/ 42906: +/*!********************************************************!*\ + !*** ./src/app/users/user-edit/user-edit.component.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ UserEditComponent: () => (/* binding */ UserEditComponent), +/* harmony export */ UserInfo: () => (/* binding */ UserInfo) +/* harmony export */ }); +/* harmony import */ var _user_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-edit.component.html?ngResource */ 69316); +/* harmony import */ var _user_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-edit.component.css?ngResource */ 35189); +/* harmony import */ var _user_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_user_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/user */ 252); +/* harmony import */ var _gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gui-helpers/sel-options/sel-options.component */ 84804); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/project.service */ 57610); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../_services/settings.service */ 22044); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../_services/user.service */ 96155); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 79736); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let UserEditComponent = class UserEditComponent { + dialogRef; + fb; + data; + projectService; + cdr; + userService; + settingsService; + formGroup; + selected = []; + options = []; + showPassword; + views; + userInfo; + languages; + seloptions; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_7__.Subject(); + constructor(dialogRef, fb, data, projectService, cdr, userService, settingsService) { + this.dialogRef = dialogRef; + this.fb = fb; + this.data = data; + this.projectService = projectService; + this.cdr = cdr; + this.userService = userService; + this.settingsService = settingsService; + } + ngOnInit() { + this.views = this.projectService.getViews(); + this.languages = this.projectService.getLanguages(); + this.userInfo = new UserInfo(this.data.user?.info); + this.formGroup = this.fb.group({ + username: [this.data.user?.username, [_angular_forms__WEBPACK_IMPORTED_MODULE_8__.Validators.required, this.isValidUserName()]], + fullname: [this.data.user?.fullname], + password: [], + start: [this.userInfo.start], + languageId: [this.userInfo.languageId] + }); + if (this.data.current?.username) { + this.formGroup.get('username').disable(); + } + this.formGroup.updateValueAndValidity(); + } + ngAfterViewInit() { + if (this.isRolePermission()) { + this.userService.getRoles().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.map)(roles => roles.sort((a, b) => a.index - b.index)), (0,rxjs__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)).subscribe(roles => { + this.options = roles?.map(role => ({ + id: role.id, + label: role.name + })); + this.selected = this.options.filter(role => this.userInfo.roleIds?.includes(role.id)); + }, err => { + console.error('get Roles err: ' + err); + }); + } else { + this.selected = _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.ValueToGroups(this.data.user.groups); + this.options = _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.Groups; + } + this.cdr.detectChanges(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onCancelClick() { + this.dialogRef.close(); + } + onOkClick() { + let roles; + if (this.seloptions) { + if (this.isRolePermission()) { + roles = this.seloptions.selected?.map(role => role.id); + } else { + this.data.user.groups = _models_user__WEBPACK_IMPORTED_MODULE_2__.UserGroups.GroupsToValue(this.seloptions.selected); + } + } + this.data.user.username = this.formGroup.controls.username.value; + this.data.user.fullname = this.formGroup.controls.fullname.value || ''; + this.data.user.password = this.formGroup.controls.password.value; + this.data.user.info = JSON.stringify({ + start: this.formGroup.controls.start.value || '', + roles: roles, + languageId: this.formGroup.controls.languageId.value + }); + this.dialogRef.close(this.data.user); + } + isValidUserName() { + return control => { + if (control.value && this.isValid(control.value)) { + return null; + } else { + return { + UserNameNotValid: true + }; + } + }; + } + isValid(name) { + if (this.data.current?.username) { + return true; + } else if (name) { + return this.data.users.find(uname => uname === name && uname !== this.data.user?.username) ? false : true; + } + return false; + } + isAdmin() { + if (this.data.user && this.data.user.username === 'admin') { + return true; + } else { + return false; + } + } + keyDownStopPropagation(event) { + event.stopPropagation(); + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormBuilder + }, { + type: undefined, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ChangeDetectorRef + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_6__.UserService + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_5__.SettingsService + }]; + static propDecorators = { + seloptions: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_12__.ViewChild, + args: [_gui_helpers_sel_options_sel_options_component__WEBPACK_IMPORTED_MODULE_3__.SelOptionsComponent, { + static: false + }] + }] + }; +}; +UserEditComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_12__.Component)({ + selector: 'app-user-edit', + template: _user_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_user_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.UntypedFormBuilder, Object, _services_project_service__WEBPACK_IMPORTED_MODULE_4__.ProjectService, _angular_core__WEBPACK_IMPORTED_MODULE_12__.ChangeDetectorRef, _services_user_service__WEBPACK_IMPORTED_MODULE_6__.UserService, _services_settings_service__WEBPACK_IMPORTED_MODULE_5__.SettingsService])], UserEditComponent); + +class UserInfo { + start; + roleIds; + languageId; + constructor(info) { + if (info) { + const obj = JSON.parse(info); + this.start = obj.start; + this.roleIds = obj.roles; + this.languageId = obj.languageId; + } + } +} + +/***/ }), + +/***/ 65734: +/*!********************************************************************!*\ + !*** ./src/app/users/users-role-edit/users-role-edit.component.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ UsersRoleEditComponent: () => (/* binding */ UsersRoleEditComponent) +/* harmony export */ }); +/* harmony import */ var _users_role_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./users-role-edit.component.html?ngResource */ 38815); +/* harmony import */ var _users_role_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./users-role-edit.component.css?ngResource */ 87602); +/* harmony import */ var _users_role_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_users_role_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/forms */ 28849); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/user */ 252); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../_services/user.service */ 96155); +/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_helpers/utils */ 91019); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let UsersRoleEditComponent = class UsersRoleEditComponent { + dialogRef; + fb; + data; + userService; + formGroup; + roles = []; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Subject(); + constructor(dialogRef, fb, data, userService) { + this.dialogRef = dialogRef; + this.fb = fb; + this.data = data; + this.userService = userService; + } + ngOnInit() { + this.userService.getRoles().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe(roles => this.roles = roles); + this.formGroup = this.fb.group({ + id: this.data.id || _helpers_utils__WEBPACK_IMPORTED_MODULE_4__.Utils.getShortGUID('r_'), + name: [this.data.name, [_angular_forms__WEBPACK_IMPORTED_MODULE_7__.Validators.required, this.isValidRoleName()]], + index: [this.data?.index], + description: [this.data?.description] + }); + this.formGroup.updateValueAndValidity(); + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onCancelClick() { + this.dialogRef.close(); + } + onOkClick() { + this.data.id = this.formGroup.controls.id.value; + this.data.name = this.formGroup.controls.name.value; + this.data.index = this.formGroup.controls.index.value; + this.data.description = this.formGroup.controls.description.value || ''; + this.dialogRef.close(this.data); + } + isValidRoleName() { + return control => { + if (control.value && this.isValid(control.value)) { + return null; + } else { + return { + UserNameNotValid: true + }; + } + }; + } + isValid(roleName) { + if (roleName) { + return this.roles.find(role => role.name === roleName && this.data?.name !== roleName) ? false : true; + } + return false; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef + }, { + type: _angular_forms__WEBPACK_IMPORTED_MODULE_7__.UntypedFormBuilder + }, { + type: _models_user__WEBPACK_IMPORTED_MODULE_2__.Role, + decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Inject, + args: [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MAT_LEGACY_DIALOG_DATA] + }] + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_3__.UserService + }]; +}; +UsersRoleEditComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-users-role-edit', + template: _users_role_edit_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_users_role_edit_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_8__.MatLegacyDialogRef, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.UntypedFormBuilder, _models_user__WEBPACK_IMPORTED_MODULE_2__.Role, _services_user_service__WEBPACK_IMPORTED_MODULE_3__.UserService])], UsersRoleEditComponent); + + +/***/ }), + +/***/ 89473: +/*!************************************************************!*\ + !*** ./src/app/users/users-roles/users-roles.component.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ UsersRolesComponent: () => (/* binding */ UsersRolesComponent) +/* harmony export */ }); +/* harmony import */ var _users_roles_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./users-roles.component.html?ngResource */ 42519); +/* harmony import */ var _users_roles_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./users-roles.component.scss?ngResource */ 3241); +/* harmony import */ var _users_roles_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_users_roles_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/table */ 46798); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_models/user */ 252); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _users_role_edit_users_role_edit_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../users-role-edit/users-role-edit.component */ 65734); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_services/user.service */ 96155); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + + + +let UsersRolesComponent = class UsersRolesComponent { + dialog; + translateService; + userService; + displayedColumns = ['select', 'index', 'name', 'description', 'remove']; + dataSource = new _angular_material_table__WEBPACK_IMPORTED_MODULE_6__.MatTableDataSource([]); + roles; + table; + sort; + constructor(dialog, translateService, userService) { + this.dialog = dialog; + this.translateService = translateService; + this.userService = userService; + } + ngOnInit() { + this.loadRoles(); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + onAddRole() { + let role = new _models_user__WEBPACK_IMPORTED_MODULE_2__.Role(); + this.editRole(role); + } + onEditRole(role) { + this.editRole(role); + } + onRemoveRole(role) { + let msg = this.translateService.instant('msg.role-remove', { + value: role.name + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_5__.ConfirmDialogComponent, { + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && role) { + this.userService.removeRole(role).subscribe(result => { + this.loadRoles(); + }, err => { + console.error('remove Roles err: ' + err); + }); + } + }); + } + loadRoles() { + this.roles = []; + this.userService.getRoles().subscribe(result => { + Object.values(result).forEach(role => { + this.roles.push(role); + }); + this.bindToTable(this.roles); + }, err => { + console.error('get Roles err: ' + err); + }); + } + editRole(role) { + let mrole = JSON.parse(JSON.stringify(role)); + let dialogRef = this.dialog.open(_users_role_edit_users_role_edit_component__WEBPACK_IMPORTED_MODULE_3__.UsersRoleEditComponent, { + position: { + top: '60px' + }, + data: mrole + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.userService.setRole(result).subscribe(result => { + this.loadRoles(); + }, err => { + console.error('set Roles err: ' + err); + }); + } + }, err => {}); + } + bindToTable(roles) { + this.dataSource.data = roles; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialog + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_4__.UserService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: [_angular_material_table__WEBPACK_IMPORTED_MODULE_6__.MatTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_10__.MatSort, { + static: false + }] + }] + }; +}; +UsersRolesComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({ + selector: 'app-user-roles', + template: _users_roles_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_users_roles_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_7__.MatLegacyDialog, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService, _services_user_service__WEBPACK_IMPORTED_MODULE_4__.UserService])], UsersRolesComponent); + + +/***/ }), + +/***/ 42227: +/*!******************************************!*\ + !*** ./src/app/users/users.component.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ UsersComponent: () => (/* binding */ UsersComponent) +/* harmony export */ }); +/* harmony import */ var _users_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./users.component.html?ngResource */ 230); +/* harmony import */ var _users_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./users.component.css?ngResource */ 86983); +/* harmony import */ var _users_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_users_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/legacy-table */ 49000); +/* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/material/sort */ 87963); +/* harmony import */ var _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/legacy-dialog */ 51035); +/* harmony import */ var _services_user_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_services/user.service */ 96155); +/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_models/user */ 252); +/* harmony import */ var _user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./user-edit/user-edit.component */ 42906); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../gui-helpers/confirm-dialog/confirm-dialog.component */ 38620); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ngx-translate/core */ 21916); +/* harmony import */ var _services_settings_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_services/settings.service */ 22044); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 72513); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ 20274); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + +/* eslint-disable @angular-eslint/component-class-suffix */ + + + + + + + + + + + + +let UsersComponent = class UsersComponent { + dialog; + projectService; + translateService; + settingsService; + userService; + displayedColumns = ['select', 'username', 'fullname', 'groups', 'start', 'remove']; + dataSource = new _angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_8__.MatLegacyTableDataSource([]); + users; + usersInfo = {}; + roles; + table; + sort; + destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_9__.Subject(); + constructor(dialog, projectService, translateService, settingsService, userService) { + this.dialog = dialog; + this.projectService = projectService; + this.translateService = translateService; + this.settingsService = settingsService; + this.userService = userService; + } + ngOnInit() { + this.loadUsers(); + this.userService.getRoles().pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)).subscribe(roles => { + this.roles = roles; + }, err => { + console.error('get Roles err: ' + err); + }); + } + ngAfterViewInit() { + this.dataSource.sort = this.sort; + } + ngOnDestroy() { + this.destroy$.next(null); + this.destroy$.complete(); + } + onAddUser() { + let user = new _models_user__WEBPACK_IMPORTED_MODULE_3__.User(); + this.editUser(user, user); + } + onEditUser(user) { + this.editUser(user, user); + } + onRemoveUser(user) { + let msg = this.translateService.instant('msg.user-remove', { + value: user.username + }); + let dialogRef = this.dialog.open(_gui_helpers_confirm_dialog_confirm_dialog_component__WEBPACK_IMPORTED_MODULE_6__.ConfirmDialogComponent, { + data: { + msg: msg + }, + position: { + top: '60px' + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result && user) { + this.userService.removeUser(user).subscribe(result => { + this.users = this.users.filter(function (el) { + return el.username !== user.username; + }); + this.bindToTable(this.users); + }, err => {}); + } + }); + } + isAdmin(user) { + if (user && user.username === 'admin') { + return true; + } else { + return false; + } + } + isRolePermission() { + return this.settingsService.getSettings()?.userRole; + } + permissionValueToLabel(user) { + if (this.isRolePermission()) { + const userInfo = new _user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_4__.UserInfo(user?.info); + return this.roles?.filter(role => userInfo.roleIds?.includes(role.id)).map(role => role.name).join(', '); + } else { + return _models_user__WEBPACK_IMPORTED_MODULE_3__.UserGroups.GroupToLabel(user.groups); + } + } + getViewStartName(username) { + return this.usersInfo[username]; + } + loadUsers() { + this.users = []; + this.usersInfo = {}; + this.userService.getUsers(null).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)).subscribe(result => { + Object.values(result).forEach(user => { + if (user.info) { + const start = JSON.parse(user.info)?.start; + const view = this.projectService.getViewFromId(start); + this.usersInfo[user.username] = view?.name; + } + this.users.push(user); + }); + this.bindToTable(this.users); + }, err => { + console.error('get Users err: ' + err); + }); + } + editUser(user, current) { + let muser = JSON.parse(JSON.stringify(user)); + muser.password = ''; + let dialogRef = this.dialog.open(_user_edit_user_edit_component__WEBPACK_IMPORTED_MODULE_4__.UserEditComponent, { + position: { + top: '60px' + }, + data: { + user: muser, + current: current, + users: this.users.map(u => u.username) + } + }); + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.userService.setUser(result).subscribe(result => { + this.loadUsers(); + }, err => {}); + } + }, err => {}); + } + bindToTable(users) { + this.dataSource.data = users; + } + static ctorParameters = () => [{ + type: _angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog + }, { + type: _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService + }, { + type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__.TranslateService + }, { + type: _services_settings_service__WEBPACK_IMPORTED_MODULE_7__.SettingsService + }, { + type: _services_user_service__WEBPACK_IMPORTED_MODULE_2__.UserService + }]; + static propDecorators = { + table: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: [_angular_material_legacy_table__WEBPACK_IMPORTED_MODULE_8__.MatLegacyTable, { + static: false + }] + }], + sort: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_13__.ViewChild, + args: [_angular_material_sort__WEBPACK_IMPORTED_MODULE_14__.MatSort, { + static: false + }] + }] + }; +}; +UsersComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_13__.Component)({ + selector: 'app-users', + template: _users_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_users_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_angular_material_legacy_dialog__WEBPACK_IMPORTED_MODULE_11__.MatLegacyDialog, _services_project_service__WEBPACK_IMPORTED_MODULE_5__.ProjectService, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__.TranslateService, _services_settings_service__WEBPACK_IMPORTED_MODULE_7__.SettingsService, _services_user_service__WEBPACK_IMPORTED_MODULE_2__.UserService])], UsersComponent); + + +/***/ }), + +/***/ 18199: +/*!****************************************!*\ + !*** ./src/app/view/view.component.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ViewComponent: () => (/* binding */ ViewComponent) +/* harmony export */ }); +/* harmony import */ var _view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./view.component.html?ngResource */ 77251); +/* harmony import */ var _view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./view.component.css?ngResource */ 11206); +/* harmony import */ var _view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/router */ 27947); +/* harmony import */ var _services_project_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_services/project.service */ 57610); +/* harmony import */ var _models_hmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_models/hmi */ 84126); +/* harmony import */ var _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../gauges/gauges.component */ 80655); +/* harmony import */ var _fuxa_view_fuxa_view_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../fuxa-view/fuxa-view.component */ 33814); +/* harmony import */ var panzoom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! panzoom */ 10418); +/* harmony import */ var panzoom__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(panzoom__WEBPACK_IMPORTED_MODULE_6__); +var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = undefined && undefined.__metadata || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; + + + + + + + + + +let ViewComponent = class ViewComponent { + projectService; + route; + changeDetector; + gaugesManager; + fuxaview; + container; + startView = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.View(); + hmi = new _models_hmi__WEBPACK_IMPORTED_MODULE_3__.Hmi(); + viewName; + subscriptionLoad; + constructor(projectService, route, changeDetector, gaugesManager) { + this.projectService = projectService; + this.route = route; + this.changeDetector = changeDetector; + this.gaugesManager = gaugesManager; + } + ngOnInit() { + this.viewName = this.route.snapshot.queryParamMap.get('name'); + } + ngAfterViewInit() { + try { + let hmi = this.projectService.getHmi(); + if (hmi) { + this.loadHmi(); + } + this.subscriptionLoad = this.projectService.onLoadHmi.subscribe(load => { + this.loadHmi(); + }, error => { + console.error('Error loadHMI'); + }); + this.changeDetector.detectChanges(); + } catch (err) { + console.error(err); + } + } + ngOnDestroy() { + try { + if (this.subscriptionLoad) { + this.subscriptionLoad.unsubscribe(); + } + } catch (e) {} + } + loadHmi() { + let hmi = this.projectService.getHmi(); + if (hmi) { + this.hmi = hmi; + } + if (this.hmi && this.hmi.views && this.hmi.views.length > 0) { + this.startView = this.hmi.views.find(x => x.name === this.viewName); + this.setBackground(); + if (this.startView && this.fuxaview) { + this.fuxaview.loadHmi(this.startView); + } + if (this.hmi.layout && this.hmi.layout.zoom && _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ZoomModeType[this.hmi.layout.zoom] === _models_hmi__WEBPACK_IMPORTED_MODULE_3__.ZoomModeType.enabled) { + setTimeout(() => { + let element = document.querySelector('#view'); + if (element && (panzoom__WEBPACK_IMPORTED_MODULE_6___default())) { + panzoom__WEBPACK_IMPORTED_MODULE_6___default()(element, { + bounds: true, + boundsPadding: 0.05 + }); + this.container.nativeElement.style.overflow = 'hidden'; + } + }, 1000); + } + } + } + setBackground() { + if (this.startView && this.startView.profile) { + document.getElementById('main-container').style.backgroundColor = this.startView.profile.bkcolor; + } + } + static ctorParameters = () => [{ + type: _services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_7__.ActivatedRoute + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ChangeDetectorRef + }, { + type: _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_4__.GaugesManager + }]; + static propDecorators = { + fuxaview: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['fuxaview', { + static: true + }] + }], + container: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ViewChild, + args: ['container', { + read: _angular_core__WEBPACK_IMPORTED_MODULE_8__.ElementRef, + static: true + }] + }] + }; +}; +ViewComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_8__.Component)({ + selector: 'app-view', + template: _view_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, + styles: [(_view_component_css_ngResource__WEBPACK_IMPORTED_MODULE_1___default())] +}), __metadata("design:paramtypes", [_services_project_service__WEBPACK_IMPORTED_MODULE_2__.ProjectService, _angular_router__WEBPACK_IMPORTED_MODULE_7__.ActivatedRoute, _angular_core__WEBPACK_IMPORTED_MODULE_8__.ChangeDetectorRef, _gauges_gauges_component__WEBPACK_IMPORTED_MODULE_4__.GaugesManager])], ViewComponent); + + +/***/ }), + +/***/ 20553: +/*!*****************************************!*\ + !*** ./src/environments/environment.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ environment: () => (/* binding */ environment) +/* harmony export */ }); +const environment = { + version: (__webpack_require__(/*! ../../package.json */ 4147).version), + production: false, + apiEndpoint: null, + apiPort: 1881, + serverEnabled: true, + type: null +}; + +/***/ }), + +/***/ 14913: +/*!*********************!*\ + !*** ./src/main.ts ***! + \*********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 61699); +/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ 94737); +/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app/app.module */ 78629); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ 20553); +/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! codemirror/mode/javascript/javascript */ 82219); +/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! codemirror/mode/markdown/markdown */ 10608); +/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! codemirror/addon/lint/lint */ 86139); +/* harmony import */ var codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_4__); + + + + + + + +if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) { + (0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.enableProdMode)(); +} +(0,_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_6__.platformBrowserDynamic)().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_0__.AppModule).catch(err => console.log(err)); + +/***/ }), + +/***/ 45710: +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./src/app/gui-helpers/fab-button/ngx-fab-item-button.component.ts.css?ngResource!=!./node_modules/@ngtools/webpack/src/loaders/inline-resource.js?data=CiAgLml0ZW0gewogICAgLyogd2lkdGg6NDBweDsgKi8KICAgIGhlaWdodDogMzZweDsKICAgIGxlZnQ6IDNweDsKICAgIC8qIGxlZnQ6IC0zcHg7ICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCBvcGFjaXR5IGVhc2Utb3V0IDIwMG1zOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxODBtczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvcDo1cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB6LWluZGV4OiA5OTk5OwogIH0KICAuaXRlbS5kaXNhYmxlZCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLml0ZW0uZGlzYWJsZWQgLmZhYi1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICB9CiAgLmNvbnRlbnQgewogICAgei1pbmRleDogOTk5OTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgbGluZS1oZWlnaHQ6IDI1cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICAvKiB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyAqLwogICAgcGFkZGluZzogNXB4IDIwcHggM3B4IDIwcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMThweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgLyogbWFyZ2luLXRvcDogNHB4OyAqLwogICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMjYpOwogICAgd2hpdGUtc3BhY2U6bm93cmFwOwogIH0KICAuZmFiLWl0ZW0gewogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtLWV4IHsKICAgIHRvcDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsMTM4LDI1NSwgMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDM2cHg7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIC8qIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjI2KTsgKi8KICB9CiAgLmZhYi1pdGVtIGltZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgfQogIA%3D%3D!./src/app/gui-helpers/fab-button/ngx-fab-item-button.component.ts ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` + .item { + /* width:40px; */ + height: 36px; + left: 3px; + /* left: -3px; */ + transform: translate3d(0, 0, 0); + transition: transform, opacity ease-out 200ms; + transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1); + transition-duration: 180ms; + position: absolute; + cursor: pointer; + top:5px; + display: flex; + justify-content: flex-end; + align-items: center; + z-index: 9999; + } + .item.disabled { + pointer-events: none; + } + .item.disabled .fab-item { + background-color: lightgray; + } + .content { + z-index: 9999; + background: rgba(68,138,255, 1); + margin-left: 0px; + line-height: 25px; + color: white; + /* text-transform: lowercase; */ + padding: 5px 20px 3px 20px; + border-top-right-radius: 18px; + border-bottom-right-radius: 18px; + border-bottom-left-radius: 18px; + border-top-left-radius: 18px; + display: none; + font-size: 13px; + height: 28px; + /* margin-top: 4px; */ + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); + white-space:nowrap; + } + .fab-item { + left: 0; + background: rgba(68,138,255, 1); + border-radius: 100%; + width: 36px; + height: 36px; + position: absolute; + color: white; + text-align: center; + cursor: pointer; + line-height: 50px; + /* box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); */ + } + .fab-item-ex { + top: 0; + background: rgba(68,138,255, 1); + border-radius: 100%; + width: 36px; + height: 36px; + position: absolute; + color: white; + text-align: center; + cursor: pointer; + line-height: 45px; + /* box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); */ + } + .fab-item img { + padding-bottom: 2px; + padding-left: 5px; + } + `, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/fab-button/ngx-fab-item-button.component.ts"],"names":[],"mappings":";EACE;IACE,gBAAgB;IAChB,YAAY;IACZ,SAAS;IACT,gBAAgB;IAChB,+BAA+B;IAC/B,6CAA6C;IAC7C,8DAA8D;IAC9D,0BAA0B;IAC1B,kBAAkB;IAClB,eAAe;IACf,OAAO;IACP,aAAa;IACb,yBAAyB;IACzB,mBAAmB;IACnB,aAAa;EACf;EACA;IACE,oBAAoB;EACtB;EACA;IACE,2BAA2B;EAC7B;EACA;IACE,aAAa;IACb,+BAA+B;IAC/B,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,+BAA+B;IAC/B,0BAA0B;IAC1B,6BAA6B;IAC7B,gCAAgC;IAChC,+BAA+B;IAC/B,4BAA4B;IAC5B,aAAa;IACb,eAAe;IACf,YAAY;IACZ,qBAAqB;IACrB,uCAAuC;IACvC,kBAAkB;EACpB;EACA;IACE,OAAO;IACP,+BAA+B;IAC/B,mBAAmB;IACnB,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,6CAA6C;EAC/C;EACA;IACE,MAAM;IACN,+BAA+B;IAC/B,mBAAmB;IACnB,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,6CAA6C;EAC/C;EACA;IACE,mBAAmB;IACnB,iBAAiB;EACnB","sourcesContent":["\n .item {\n /* width:40px; */\n height: 36px;\n left: 3px;\n /* left: -3px; */\n transform: translate3d(0, 0, 0);\n transition: transform, opacity ease-out 200ms;\n transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);\n transition-duration: 180ms;\n position: absolute;\n cursor: pointer;\n top:5px;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n z-index: 9999;\n }\n .item.disabled {\n pointer-events: none;\n }\n .item.disabled .fab-item {\n background-color: lightgray;\n }\n .content {\n z-index: 9999;\n background: rgba(68,138,255, 1);\n margin-left: 0px;\n line-height: 25px;\n color: white;\n /* text-transform: lowercase; */\n padding: 5px 20px 3px 20px;\n border-top-right-radius: 18px;\n border-bottom-right-radius: 18px;\n border-bottom-left-radius: 18px;\n border-top-left-radius: 18px;\n display: none;\n font-size: 13px;\n height: 28px;\n /* margin-top: 4px; */\n box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);\n white-space:nowrap;\n }\n .fab-item {\n left: 0;\n background: rgba(68,138,255, 1);\n border-radius: 100%;\n width: 36px;\n height: 36px;\n position: absolute;\n color: white;\n text-align: center;\n cursor: pointer;\n line-height: 50px;\n /* box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); */\n }\n .fab-item-ex {\n top: 0;\n background: rgba(68,138,255, 1);\n border-radius: 100%;\n width: 36px;\n height: 36px;\n position: absolute;\n color: white;\n text-align: center;\n cursor: pointer;\n line-height: 45px;\n /* box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); */\n }\n .fab-item img {\n padding-bottom: 2px;\n padding-left: 5px;\n }\n "],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 84524: +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./src/app/gui-helpers/fab-button/ngx-fab-button.component.ts.css?ngResource!=!./node_modules/@ngtools/webpack/src/loaders/inline-resource.js?data=CiAgOmhvc3QgewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAuZmFiLW1lbnUgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHdpZHRoOjQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgei1pbmRleDogOTsKICB9CiAgLmZhYi10b2dnbGUgewogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgY29sb3I6IHdoaXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgdHJhbnNpdGlvbjogYWxsIGVhc2Utb3V0IDIwMG1zOwogICAgei1pbmRleDogMjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4yNik7CiAgfQogIC5mYWItbWVudSAuZmFiLXRvZ2dsZTpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAgLmZhYi1tZW51IDo6bmctZGVlcCAuaXRlbSB7CiAgICAgb3BhY2l0eTogMDsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLml0ZW0gewogICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgOjpuZy1kZWVwIC5jb250ZW50LXdyYXBwZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgLmZhYi1tZW51LmFjdGl2ZSA6Om5nLWRlZXAgLmNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5mYWItbWVudS5hY3RpdmUgLmZhYi10b2dnbGUgewogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB9CiAg!./src/app/gui-helpers/fab-button/ngx-fab-button.component.ts ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` + :host { + position: absolute; + } + .fab-menu { + box-sizing: border-box; + font-size: 12px; + width:40px; + height: 40px; + text-align: left; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + z-index: 9; + } + .fab-toggle { + border-radius: 100%; + width: 36px; + height: 36px; + color: white; + text-align: center; + line-height: 50px; + transform: translate3d(0, 0, 0); + transition: all ease-out 200ms; + z-index: 2; + transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); + transition-duration: 400ms; + transform: scale(1, 1) translate3d(0, 0, 0); + cursor: pointer; + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); + } + .fab-menu .fab-toggle:hover { + transform: scale(1.2, 1.2) translate3d(0, 0, 0); + } + .fab-menu ::ng-deep .item { + opacity: 0; + } + .fab-menu.active ::ng-deep .item { + opacity: 1; + } + .fab-menu.active ::ng-deep .content-wrapper { + display: flex; + justify-content: center; + align-items: center; + } + .fab-menu.active ::ng-deep .content { + display: block; + } + .fab-menu.active .fab-toggle { + transition-timing-function: linear; + transition-duration: 200ms; + transform: scale(1, 1) translate3d(0, 0, 0); + } + `, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/fab-button/ngx-fab-button.component.ts"],"names":[],"mappings":";EACE;IACE,kBAAkB;EACpB;EACA;MACI,sBAAsB;MACtB,eAAe;MACf,UAAU;MACV,YAAY;MACZ,gBAAgB;MAChB,aAAa;MACb,mBAAmB;MACnB,uBAAuB;MACvB,eAAe;MACf,UAAU;EACd;EACA;IACE,mBAAmB;IACnB,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,+BAA+B;IAC/B,8BAA8B;IAC9B,UAAU;IACV,mEAAmE;IACnE,0BAA0B;IAC1B,2CAA2C;IAC3C,eAAe;IACf,uCAAuC;EACzC;EACA;IACE,+CAA+C;EACjD;EACA;KACG,UAAU;EACb;EACA;KACG,UAAU;EACb;EACA;IACE,aAAa;IACb,uBAAuB;IACvB,mBAAmB;EACrB;EACA;IACE,cAAc;EAChB;EACA;IACE,kCAAkC;IAClC,0BAA0B;IAC1B,2CAA2C;EAC7C","sourcesContent":["\n :host {\n position: absolute;\n }\n .fab-menu {\n box-sizing: border-box;\n font-size: 12px;\n width:40px;\n height: 40px;\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 9;\n }\n .fab-toggle {\n border-radius: 100%;\n width: 36px;\n height: 36px;\n color: white;\n text-align: center;\n line-height: 50px;\n transform: translate3d(0, 0, 0);\n transition: all ease-out 200ms;\n z-index: 2;\n transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n transition-duration: 400ms;\n transform: scale(1, 1) translate3d(0, 0, 0);\n cursor: pointer;\n box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);\n }\n .fab-menu .fab-toggle:hover {\n transform: scale(1.2, 1.2) translate3d(0, 0, 0);\n }\n .fab-menu ::ng-deep .item {\n opacity: 0;\n }\n .fab-menu.active ::ng-deep .item {\n opacity: 1;\n }\n .fab-menu.active ::ng-deep .content-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .fab-menu.active ::ng-deep .content {\n display: block;\n }\n .fab-menu.active .fab-toggle {\n transition-timing-function: linear;\n transition-duration: 200ms;\n transform: scale(1, 1) translate3d(0, 0, 0);\n }\n "],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 89385: +/*!***********************************************************************!*\ + !*** ./src/app/alarms/alarm-list/alarm-list.component.css?ngResource ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} + +.header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; +} + +.container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 0px; + left:0px; + right:0px; +} + +.filter { + display: inline-block; + min-height: 60px; + padding: 8px 24px 0; +} + +.filter .mat-form-field { + font-size: 14px; + width: 100%; +} + +.table { + height: 705px; +} + +.mat-table { + overflow: auto; + height: 100%; +} + +.mat-row { + min-height: 40px; + height: 43px; +} + +.mat-cell { + font-size: 13px; +} + +.mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} + +.mat-header-cell { + font-size: 15px; +} + +.mat-column-select { + overflow: visible; + flex: 0 0 80px; +} + +.mat-column-name { + flex: 1 1 200px; +} + + +.mat-column-device { + flex: 2 1 350px; +} + +.mat-column-highhigh { + flex: 0 0 140px; +} + +.mat-column-high { + flex: 0 0 140px; +} +.mat-column-low { + flex: 0 0 140px; +} +.mat-column-info { + flex: 0 0 140px; +} +.mat-column-actions { + flex: 0 0 140px; +} +.mat-column-value { + flex: 0 0 800px; +} + +.mat-column-remove { + flex: 0 0 60px; +} + +.selectidthClass{ + flex: 0 0 50px; + } + +.message-error { + display: inline-block; + color:red; +} + +.my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} + +.my-header-filter ::ng-deep .mat-sort-header-arrow { + top: -12px; + right: 20px; +} + +.my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + padding: 3px 1px 3px 2px; + border-radius: 2px; +}`, "",{"version":3,"sources":["webpack://./src/app/alarms/alarm-list/alarm-list.component.css"],"names":[],"mappings":"AAAA;IACI,yCAAyC;IACzC,yBAAyB;IACzB,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,4CAA4C;AAChD;;AAEA;IACI,qBAAqB;IACrB,wBAAwB;AAC5B;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;AACf;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,SAAS;AACb;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,WAAW;AACf;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,cAAc;IACd,YAAY;AAChB;;AAEA;IACI,gBAAgB;IAChB,YAAY;AAChB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,MAAM;IACN,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;AAGA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;CACjB;;AAED;IACI,qBAAqB;IACrB,SAAS;AACb;;AAEA;IACI,cAAc;IACd,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,UAAU;IACV,WAAW;AACf;;AAEA;IACI,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;AACtB","sourcesContent":[".header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left:0px;\n right:0px;\n}\n\n.filter {\n display: inline-block;\n min-height: 60px;\n padding: 8px 24px 0;\n}\n\n.filter .mat-form-field {\n font-size: 14px;\n width: 100%;\n}\n\n.table {\n height: 705px;\n}\n\n.mat-table {\n overflow: auto;\n height: 100%;\n}\n\n.mat-row {\n min-height: 40px;\n height: 43px;\n}\n\n.mat-cell {\n font-size: 13px;\n}\n\n.mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n\n.mat-header-cell {\n font-size: 15px;\n}\n\n.mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n}\n\n.mat-column-name {\n flex: 1 1 200px;\n}\n\n\n.mat-column-device {\n flex: 2 1 350px;\n}\n\n.mat-column-highhigh {\n flex: 0 0 140px;\n}\n\n.mat-column-high {\n flex: 0 0 140px;\n}\n.mat-column-low {\n flex: 0 0 140px;\n}\n.mat-column-info {\n flex: 0 0 140px;\n}\n.mat-column-actions {\n flex: 0 0 140px;\n}\n.mat-column-value {\n flex: 0 0 800px;\n}\n\n.mat-column-remove {\n flex: 0 0 60px;\n}\n\n.selectidthClass{\n flex: 0 0 50px;\n }\n\n.message-error {\n display: inline-block;\n color:red;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n}\n\n.my-header-filter-input {\n display: block; \n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 65773: +/*!***********************************************************************!*\ + !*** ./src/app/alarms/alarm-view/alarm-view.component.css?ngResource ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + /* z-index: 9999 !important; */ + /* position: fixed; */ + /* top: 0px; */ + /* left: 0px; */ + background-color: var(--headerBackground); + color: var(--headerColor); + height: 36px; + width: 100%; + text-align: center; + line-height: 32px; + /* border-top: 1px solid var(--headerBorder); */ + border-bottom: 1px solid var(--headerBorder); +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); +} + +.table-pagination { + position: absolute; + right: 20px; + bottom: 0px; + background: rgba(0,0,0,0) !important; +} + +.filter { + display: inline-block; + min-height: 60px; + padding: 8px 24px 0; +} + +.filter .mat-form-field { + font-size: 14px; + width: 100%; +} + +.mat-table { + overflow: auto; + height: 100%; +} + +.mat-header-cell.mat-sort-header-sorted { + /* color: black; */ +} + +.mat-header-row { + top: 0; + position: relative; + z-index: 1; + /* background-color: rgba(76,76,76,1); */ + /* color: white; */ + min-height: 35px; +} +.mat-header-cell { + font-size: 14px; +} +.mat-row { + min-height: 34px; +} +.mat-column-ontime { + flex: 0 0 150px; +} +.mat-column-offtime { + flex: 0 0 150px; +} +.mat-column-text { + flex: 2 1 200px; +} +.mat-column-type { + flex: 0 1 120px; +} +.mat-column-group { + flex: 1 1 100px; +} + +.mat-column-status { + flex: 0 1 160px; +} +.mat-column-ack { + flex: 0 0 60px; +} +.mat-column-acktime { + flex: 0 0 150px; +} +.mat-column-userack { + flex: 0 0 120px; +} +.mat-column-history { + flex: 0 0 90px; +} + +.header-tools { + /* position: fixed; */ + /* right: 30px; */ + line-height: 32px; +} + +.header-tools div { + display: inline-block; + padding-left: 10px; +} + +.header-tools-options { + width: 30px; + height: 30px; + line-height: 30px; + vertical-align: bottom; +} + +.spinner { + position: absolute; + top: 50%; + left: calc(50% - 20px); +} + +.spinner-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.6); + z-index: 99; +} + +::ng-deep .mat-datepicker-popup { + position: absolute; + bottom: 50% !important; + left: 50% !important; + transform: translate(-50%, 50%); +}`, "",{"version":3,"sources":["webpack://./src/app/alarms/alarm-view/alarm-view.component.css"],"names":[],"mappings":"AAAA;IACI,8BAA8B;IAC9B,qBAAqB;IACrB,cAAc;IACd,eAAe;IACf,yCAAyC;IACzC,yBAAyB;IACzB,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,+CAA+C;IAC/C,4CAA4C;AAChD;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,4CAA4C;AAChD;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,oCAAoC;AACxC;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,WAAW;AACf;;AAEA;IACI,cAAc;IACd,YAAY;AAChB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,MAAM;IACN,kBAAkB;IAClB,UAAU;IACV,wCAAwC;IACxC,kBAAkB;IAClB,gBAAgB;AACpB;AACA;IACI,eAAe;AACnB;AACA;IACI,gBAAgB;AACpB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;AACA;IACI,cAAc;AAClB;AACA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,cAAc;AAClB;;AAEA;IACI,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;AACrB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;AACtB;;AAEA;IACI,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;AAC1B;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,sBAAsB;AAC1B;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,8BAA8B;IAC9B,WAAW;AACf;;AAEA;IACI,kBAAkB;IAClB,sBAAsB;IACtB,oBAAoB;IACpB,+BAA+B;AACnC","sourcesContent":[".header-panel {\n /* z-index: 9999 !important; */\n /* position: fixed; */\n /* top: 0px; */\n /* left: 0px; */\n background-color: var(--headerBackground);\n color: var(--headerColor);\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 32px;\n /* border-top: 1px solid var(--headerBorder); */\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n}\n\n.table-pagination {\n position: absolute;\n right: 20px;\n bottom: 0px;\n background: rgba(0,0,0,0) !important;\n}\n\n.filter {\n display: inline-block;\n min-height: 60px;\n padding: 8px 24px 0;\n}\n\n.filter .mat-form-field {\n font-size: 14px;\n width: 100%;\n}\n\n.mat-table {\n overflow: auto;\n height: 100%;\n}\n \n.mat-header-cell.mat-sort-header-sorted {\n /* color: black; */\n}\n\n.mat-header-row {\n top: 0;\n position: relative;\n z-index: 1;\n /* background-color: rgba(76,76,76,1); */\n /* color: white; */\n min-height: 35px;\n}\n.mat-header-cell {\n font-size: 14px;\n}\n.mat-row {\n min-height: 34px;\n}\n.mat-column-ontime {\n flex: 0 0 150px;\n}\n.mat-column-offtime {\n flex: 0 0 150px;\n}\n.mat-column-text {\n flex: 2 1 200px;\n}\n.mat-column-type {\n flex: 0 1 120px;\n}\n.mat-column-group {\n flex: 1 1 100px;\n}\n\n.mat-column-status {\n flex: 0 1 160px;\n}\n.mat-column-ack {\n flex: 0 0 60px;\n}\n.mat-column-acktime {\n flex: 0 0 150px;\n}\n.mat-column-userack {\n flex: 0 0 120px;\n}\n.mat-column-history {\n flex: 0 0 90px;\n}\n\n.header-tools {\n /* position: fixed; */\n /* right: 30px; */\n line-height: 32px;\n}\n\n.header-tools div {\n display: inline-block;\n padding-left: 10px;\n}\n\n.header-tools-options {\n width: 30px;\n height: 30px;\n line-height: 30px;\n vertical-align: bottom;\n}\n\n.spinner {\n position: absolute;\n top: 50%;\n left: calc(50% - 20px);\n}\n\n.spinner-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n z-index: 99;\n}\n\n::ng-deep .mat-datepicker-popup {\n position: absolute;\n bottom: 50% !important;\n left: 50% !important;\n transform: translate(-50%, 50%);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 56715: +/*!**********************************************!*\ + !*** ./src/app/app.component.css?ngResource ***! + \**********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.container { + width: 100%; + height: 100% !important; + background-color:#FFFFFF +} + +.work-void { + height: 100%; + width: 100%; +} + +.work-editor { + background-color:#FFFFFF; + height: calc(100% - (46px)); + min-width: 800px; +} + +.work-home { + background-color:#FFFFFF; + height: 100%; + min-width: 640px; +} + +.header { + /* height: 40px !important; */ +} + +.footer { + height: 20px; + position:absolute; + bottom:0px; +} + +.fab-button { + position: absolute; + bottom: 20px; + left: 10px; + color: rgba(255,255,255,1); + background-color: rgba(68,138,255, 0); + /* background-color: rgba(0,0,0,0.9); */ +}`, "",{"version":3,"sources":["webpack://./src/app/app.component.css"],"names":[],"mappings":";AACA;IACI,WAAW;IACX,uBAAuB;IACvB;AACJ;;AAEA;IACI,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,wBAAwB;IACxB,2BAA2B;IAC3B,gBAAgB;AACpB;;AAEA;IACI,wBAAwB;IACxB,YAAY;IACZ,gBAAgB;AACpB;;AAEA;IACI,iCAAiC;AACrC;;AAEA;IACI,YAAY;IACZ,iBAAiB;IACjB,UAAU;AACd;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,UAAU;IACV,0BAA0B;IAC1B,qCAAqC;IACrC,uCAAuC;AAC3C","sourcesContent":["\n.container {\n width: 100%;\n height: 100% !important;\n background-color:#FFFFFF\n}\n\n.work-void {\n height: 100%;\n width: 100%;\n}\n\n.work-editor {\n background-color:#FFFFFF;\n height: calc(100% - (46px));\n min-width: 800px;\n}\n\n.work-home {\n background-color:#FFFFFF;\n height: 100%;\n min-width: 640px;\n}\n\n.header {\n /* height: 40px !important; */\n}\n\n.footer {\n height: 20px;\n position:absolute;\n bottom:0px;\n}\n\n.fab-button {\n position: absolute;\n bottom: 20px;\n left: 10px;\n color: rgba(255,255,255,1);\n background-color: rgba(68,138,255, 0);\n /* background-color: rgba(0,0,0,0.9); */\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 47488: +/*!************************************************************************************************************************!*\ + !*** ./src/app/device/device-map/device-webapi-property-dialog/device-webapi-property-dialog.component.css?ngResource ***! + \************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.content { + /* min-width: 400px; */ + /* margin-top: 20px; */ + /* min-height: 250px; */ + display: block; +}`, "",{"version":3,"sources":["webpack://./src/app/device/device-map/device-webapi-property-dialog/device-webapi-property-dialog.component.css"],"names":[],"mappings":"AAAA;IACI,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,cAAc;AAClB","sourcesContent":[".content {\n /* min-width: 400px; */\n /* margin-top: 20px; */\n /* min-height: 250px; */\n display: block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 28370: +/*!********************************************************!*\ + !*** ./src/app/device/device.component.css?ngResource ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + /* z-index: 9999 !important; */ + top: 0px; + left: 0px; + background-color: var(--headerBackground); + color: var(--headerColor); + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} + +.device-btn { + height: 34px; + width: 34px; + min-width: unset !important; + padding:unset !important; + line-height: 34px; + margin-left: 5px; + margin-right: 5px; + float: right; +} + +.device-btn mat-icon { + font-size: 24px; + height: unset; + width: unset; +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + overflow: auto; + background-color: var(--workPanelBackground); +} + +.mat-table { + overflow: auto; + /* min-width: 1500px; */ + height: 100%; +} + +.mat-header-cell.mat-sort-header-sorted { + /* color: black; */ +} + +.mat-row { + min-height: 34px; + height: 34px; + border-bottom-color: rgba(0,0,0,0.06); +} + +.mat-cell { + font-size: 13px; +} + +.mat-cell ::ng-deep .mat-checkbox-inner-container { + height: 16px; + width: 16px; + margin-left: 2px; +} + +.mat-header-row { + top: 0; + position: sticky; + z-index: 1; + /* background-color: rgba(0,0,0,0.7); */ + /* background-color: rgb(30, 30, 30); */ + /* color: white; */ +} +.mat-header-cell { + /* color: white; */ + font-size: 11px; +} + +.mat-column-toogle { + overflow: visible; + flex: 0 0 40px; +} + +.mat-column-name { + flex: 0 0 220px; +} + +.mat-column-address { + flex: 0 0 380px; +} + +.mat-column-device { + flex: 0 0 220px; +} + +.mat-column-select { + flex: 0 0 40px; +} + +.my-header-filter ::ng-deep .mat-sort-header-content { + display: unset; + text-align: left; +} + +.my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} + +.my-header-filter span { + padding-left: 5px; + +} + +.my-header-filter ::ng-deep .mat-sort-header-arrow { + /* color: white; */ + top: -14px; + right: 20px; +} + +.my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + /* color: white; */ + padding: 3px 1px 3px 2px; + border-radius: 2px; + border: 1px solid var(--formInputBackground); + background-color: var(--formInputBackground); + color: var(--formInputColor); +} + +.my-header-filter-input:focus { + padding: 3px 1px 3px 2px; + border: 1px solid var(--formInputBorderFocus); + background-color: var(--formInputBackgroundFocus); +} + +.fab-reload { + position: fixed !important; + right: 10px !important; + top: 40px !important; + z-index: 9999 !important; + color: var(--headerColor); +} + +.fab-reload-active { + transform: rotate(360deg); + transition: all 0.5s ease-in-out; +}`, "",{"version":3,"sources":["webpack://./src/app/device/device.component.css"],"names":[],"mappings":"AAAA;IACI,8BAA8B;IAC9B,QAAQ;IACR,SAAS;IACT,yCAAyC;IACzC,yBAAyB;IACzB,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,4CAA4C;AAChD;;AAEA;IACI,YAAY;IACZ,WAAW;IACX,2BAA2B;IAC3B,wBAAwB;IACxB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;AAChB;;AAEA;IACI,eAAe;IACf,aAAa;IACb,YAAY;AAChB;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,cAAc;IACd,4CAA4C;AAChD;;AAEA;IACI,cAAc;IACd,uBAAuB;IACvB,YAAY;AAChB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,qCAAqC;AACzC;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,YAAY;IACZ,WAAW;IACX,gBAAgB;AACpB;;AAEA;IACI,MAAM;IACN,gBAAgB;IAChB,UAAU;IACV,uCAAuC;IACvC,uCAAuC;IACvC,kBAAkB;AACtB;AACA;IACI,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;IACd,gBAAgB;AACpB;;AAEA;IACI,cAAc;IACd,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,iBAAiB;;AAErB;;AAEA;IACI,kBAAkB;IAClB,UAAU;IACV,WAAW;AACf;;AAEA;IACI,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;IAClB,4CAA4C;IAC5C,4CAA4C;IAC5C,4BAA4B;AAChC;;AAEA;IACI,wBAAwB;IACxB,6CAA6C;IAC7C,iDAAiD;AACrD;;AAEA;IACI,0BAA0B;IAC1B,sBAAsB;IACtB,oBAAoB;IACpB,wBAAwB;IACxB,yBAAyB;AAC7B;;AAEA;IACI,yBAAyB;IAIzB,gCAAgC;AACpC","sourcesContent":[".header-panel {\n /* z-index: 9999 !important; */\n top: 0px;\n left: 0px;\n background-color: var(--headerBackground);\n color: var(--headerColor);\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.device-btn {\n height: 34px;\n width: 34px;\n min-width: unset !important;\n padding:unset !important;\n line-height: 34px;\n margin-left: 5px;\n margin-right: 5px;\n float: right;\n}\n \n.device-btn mat-icon {\n font-size: 24px;\n height: unset;\n width: unset;\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n overflow: auto;\n background-color: var(--workPanelBackground);\n}\n\n.mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n}\n \n.mat-header-cell.mat-sort-header-sorted {\n /* color: black; */\n}\n\n.mat-row {\n min-height: 34px;\n height: 34px;\n border-bottom-color: rgba(0,0,0,0.06);\n}\n\n.mat-cell {\n font-size: 13px;\n}\n\n.mat-cell ::ng-deep .mat-checkbox-inner-container {\n height: 16px;\n width: 16px;\n margin-left: 2px;\n}\n\n.mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n /* background-color: rgba(0,0,0,0.7); */\n /* background-color: rgb(30, 30, 30); */\n /* color: white; */\n}\n.mat-header-cell {\n /* color: white; */\n font-size: 11px;\n}\n\n.mat-column-toogle {\n overflow: visible;\n flex: 0 0 40px;\n}\n\n.mat-column-name {\n flex: 0 0 220px;\n}\n\n.mat-column-address {\n flex: 0 0 380px;\n}\n\n.mat-column-device {\n flex: 0 0 220px;\n}\n\n.mat-column-select {\n flex: 0 0 40px;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-content {\n display: unset;\n text-align: left;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n\n.my-header-filter span {\n padding-left: 5px;\n\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-arrow {\n /* color: white; */\n top: -14px;\n right: 20px;\n}\n\n.my-header-filter-input {\n display: block; \n margin-top: 4px;\n margin-bottom: 6px;\n /* color: white; */\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n border: 1px solid var(--formInputBackground);\n background-color: var(--formInputBackground);\n color: var(--formInputColor);\n}\n\n.my-header-filter-input:focus {\n padding: 3px 1px 3px 2px;\n border: 1px solid var(--formInputBorderFocus);\n background-color: var(--formInputBackgroundFocus);\n}\n\n.fab-reload {\n position: fixed !important;\n right: 10px !important;\n top: 40px !important;\n z-index: 9999 !important;\n color: var(--headerColor);\n}\n\n.fab-reload-active {\n transform: rotate(360deg);\n -webkit-transition: all 0.5s ease-in-out;\n -moz-transition: all 0.5s ease-in-out;\n -o-transition: all 0.5s ease-in-out;\n transition: all 0.5s ease-in-out;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 67227: +/*!****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-bacnet/tag-property-edit-bacnet.component.css?ngResource ***! + \****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + display: block; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-bacnet/tag-property-edit-bacnet.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;AAClB","sourcesContent":[":host {\n display: block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 15188: +/*!****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-webapi/tag-property-edit-webapi.component.css?ngResource ***! + \****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + display: block; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-webapi/tag-property-edit-webapi.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;AAClB","sourcesContent":[":host {\n display: block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 71547: +/*!***************************************************************************!*\ + !*** ./src/app/editor/app-settings/app-settings.component.css?ngResource ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +::ng-deep .mat-tab-label { + height: 34px !important; + padding: 0; +} + +.tabs-container { + min-height: 500px; + min-width: 620px; +} + +.tabs-container .tab-system { + min-width: 320px; +} + +.tabs-container .tab-smtp { + padding-right: 10px; +} + +.tabs-container .tab-daq { + padding-right: 10px; +} + +.tabs-container .tab-alarms { + padding-right: 10px; +} + +.input-row { + width: 100%; +} + +.system-input { + width: 320px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/app-settings/app-settings.component.css"],"names":[],"mappings":";AACA;IACI,uBAAuB;IACvB,UAAU;AACd;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,YAAY;AAChB","sourcesContent":["\n::ng-deep .mat-tab-label {\n height: 34px !important;\n padding: 0;\n}\n\n.tabs-container {\n min-height: 500px;\n min-width: 620px;\n}\n\n.tabs-container .tab-system {\n min-width: 320px;\n}\n\n.tabs-container .tab-smtp {\n padding-right: 10px;\n}\n\n.tabs-container .tab-daq {\n padding-right: 10px;\n}\n\n.tabs-container .tab-alarms {\n padding-right: 10px;\n}\n\n.input-row {\n width: 100%;\n}\n\n.system-input {\n width: 320px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 14158: +/*!***************************************************************************!*\ + !*** ./src/app/editor/chart-config/chart-config.component.css?ngResource ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.panelTop { + display: block; + width: 100%; + height: 180px; + border: 1px solid var(--formBorder); + position: relative; + overflow: auto; +} + +.mychips { + display: inline-block; + font-size: 14px; + height: 32px; + line-height: 30px; + border-radius: 20px; + background-color: var(--chipsBackground); + cursor: pointer; + margin: 2px 2px; +} + +.mychips mat-icon { + margin: 5px 5px 5px 5px; + opacity: 0.5; + font-size: 20px; + text-align: center; +} + +.mychips span { + padding-left: 3px; + padding-right: 3px; + vertical-align: top; +} +.mychips:hover { + opacity: 0.9; +} + +.mychips-selected { + background-color: var(--chipSelectedBackground); + color: var(--chipSelectedColor); +} + +.toolbox-toadd { + position: absolute; + right: 50px; + top: -40px; +} + +.panelTop .chart-list, +.device-list, +.tag-list { + height: 480px; +} + +.panelBottom { + display: block; + width: 100%; + height: 300px; + margin-top: 10px; +} + +.list { + width: 100% !important; + height: 100% !important; + font-size: 16px !important; + padding-top: 0px !important; +} + +.list > span { + padding-left: 10px; +} + +.list mat-list-option { + padding-left: 10px; +} + +.chart-list { + overflow-y: auto; +} + +.list-item { + display: block; + font-size: 14px; + height: 26px !important; + cursor: pointer; + overflow: hidden; + padding-left: 10px; +} + +.list-item mat-icon { + font-size: 20px; +} + +.list-item span { + text-overflow: ellipsis; + overflow: hidden; +} + +.list-item-text { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.list-item-hover:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +.list-item-selected { + background-color: rgba(0, 0, 0, 0.1); +} + +.list-item-sel { + padding-left: 5px !important; +} + +.list-header { + background-color: rgba(0, 0, 0, 0.8); + color: #ffffff; + line-height: 26px; + cursor: unset; +} + +.list-item-remove { + width: 20px; + max-width: 20px; +} + +.list-item-name { + width: 25%; + max-width: 25%; +} + +.list-item-label { + width: 30%; + max-width: 30%; +} + +.list-item-device { + width: 25%; + max-width: 25%; +} + +.list-item-yaxis { + width: 10%; + max-width: 10%; +} + +.list-item-interpolation { + width: 10%; + max-width: 10%; +} + +.list-item-color { + width: 5%; + max-width: 5%; +} + +.list-panel { + height: calc(100% - 26px); + overflow-x: hidden; +} + +.device-list { + margin-right: 2px; + overflow-y: auto; +} + +.tag-list { + margin-right: 2px; + overflow-y: auto; +} + +.color-line { + width: 30px; + border: unset; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 2px; + opacity: 1; + background-color: #f1f3f4; +} +`, "",{"version":3,"sources":["webpack://./src/app/editor/chart-config/chart-config.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,WAAW;IACX,aAAa;IACb,mCAAmC;IACnC,kBAAkB;IAClB,cAAc;AAClB;;AAEA;IACI,qBAAqB;IACrB,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,mBAAmB;IACnB,wCAAwC;IACxC,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,uBAAuB;IACvB,YAAY;IACZ,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;AACvB;AACA;IACI,YAAY;AAChB;;AAEA;IACI,+CAA+C;IAC/C,+BAA+B;AACnC;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,UAAU;AACd;;AAEA;;;IAGI,aAAa;AACjB;;AAEA;IACI,cAAc;IACd,WAAW;IACX,aAAa;IACb,gBAAgB;AACpB;;AAEA;IACI,sBAAsB;IACtB,uBAAuB;IACvB,0BAA0B;IAC1B,2BAA2B;AAC/B;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,cAAc;IACd,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,uBAAuB;IACvB,gBAAgB;AACpB;;AAEA;IACI,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;AACpB;;AAEA;IACI,oCAAoC;AACxC;;AAEA;IACI,oCAAoC;AACxC;;AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,oCAAoC;IACpC,cAAc;IACd,iBAAiB;IACjB,aAAa;AACjB;;AAEA;IACI,WAAW;IACX,eAAe;AACnB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,yBAAyB;IACzB,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,WAAW;IACX,aAAa;IACb,oCAAoC;IACpC,kBAAkB;IAClB,UAAU;IACV,yBAAyB;AAC7B","sourcesContent":[".panelTop {\n display: block;\n width: 100%;\n height: 180px;\n border: 1px solid var(--formBorder);\n position: relative;\n overflow: auto;\n}\n\n.mychips {\n display: inline-block;\n font-size: 14px;\n height: 32px;\n line-height: 30px;\n border-radius: 20px;\n background-color: var(--chipsBackground);\n cursor: pointer;\n margin: 2px 2px;\n}\n\n.mychips mat-icon {\n margin: 5px 5px 5px 5px;\n opacity: 0.5;\n font-size: 20px;\n text-align: center;\n}\n\n.mychips span {\n padding-left: 3px;\n padding-right: 3px;\n vertical-align: top;\n}\n.mychips:hover {\n opacity: 0.9;\n}\n\n.mychips-selected {\n background-color: var(--chipSelectedBackground);\n color: var(--chipSelectedColor);\n}\n\n.toolbox-toadd {\n position: absolute;\n right: 50px;\n top: -40px;\n}\n\n.panelTop .chart-list,\n.device-list,\n.tag-list {\n height: 480px;\n}\n\n.panelBottom {\n display: block;\n width: 100%;\n height: 300px;\n margin-top: 10px;\n}\n\n.list {\n width: 100% !important;\n height: 100% !important;\n font-size: 16px !important;\n padding-top: 0px !important;\n}\n\n.list > span {\n padding-left: 10px;\n}\n\n.list mat-list-option {\n padding-left: 10px;\n}\n\n.chart-list {\n overflow-y: auto;\n}\n\n.list-item {\n display: block;\n font-size: 14px;\n height: 26px !important;\n cursor: pointer;\n overflow: hidden;\n padding-left: 10px;\n}\n\n.list-item mat-icon {\n font-size: 20px;\n}\n\n.list-item span {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.list-item-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.list-item-hover:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.list-item-selected {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.list-item-sel {\n padding-left: 5px !important;\n}\n\n.list-header {\n background-color: rgba(0, 0, 0, 0.8);\n color: #ffffff;\n line-height: 26px;\n cursor: unset;\n}\n\n.list-item-remove {\n width: 20px;\n max-width: 20px;\n}\n\n.list-item-name {\n width: 25%;\n max-width: 25%;\n}\n\n.list-item-label {\n width: 30%;\n max-width: 30%;\n}\n\n.list-item-device {\n width: 25%;\n max-width: 25%;\n}\n\n.list-item-yaxis {\n width: 10%;\n max-width: 10%;\n}\n\n.list-item-interpolation {\n width: 10%;\n max-width: 10%;\n}\n\n.list-item-color {\n width: 5%;\n max-width: 5%;\n}\n\n.list-panel {\n height: calc(100% - 26px); \n overflow-x: hidden;\n}\n\n.device-list {\n margin-right: 2px;\n overflow-y: auto;\n}\n\n.tag-list {\n margin-right: 2px;\n overflow-y: auto;\n}\n\n.color-line {\n width: 30px;\n border: unset;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 2px;\n opacity: 1;\n background-color: #f1f3f4;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 44012: +/*!********************************************************!*\ + !*** ./src/app/editor/editor.component.css?ngResource ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.editor-sidenav { + position: fixed; + margin-top: 36px; + height: calc(100% - 74px); + padding: 7px; + width: 350px; +} + +.sidepanel-selector { + position: fixed; + margin-top: 36px; + height: calc(100% - 74px); + padding: 7px; + width: 370px; +} + +@media (min-width: 1601px) { + .editor-sidenav { + width: 450px; + } +} + +#svg_editor_container { + background: #aaa; + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + position: absolute; + top: 0px; + left: 0px; +} + +.svg-workarea-toolbar { + min-height: 46px; + height: 46px; +} +.svg-workarea-leftbar-p { + box-shadow: none !important; + background-color: var(--toolboxBackground); + color: var(--toolboxColor); +} + +.svg-workarea-leftbar-h { + max-height: 23px; + text-align: center; + vertical-align: middle; + padding-left: 0px; + padding-right: 0px; + border-top: 1px solid var(--toolboxBorder); + margin-bottom: 0px; + box-shadow: 0px 1px 3px 0px #000; +} + +.svg-workarea-leftbar-h span { + padding-top: 5px !important; + padding-left: 3px; + font-size: 11px; +} + +/* .mat-expansion-panel-content { + background-color: rgb(53, 3, 3); +} */ + +.svg-workarea-flybar-h { + max-height: 23px; + text-align: center; + vertical-align: middle; + padding-left: 0px; + padding-right: 0px; + border-top: 1px solid var(--toolboxBorder); + box-shadow: 0px 1px 3px 0px #000; + } + + .svg-workarea-flybar-h span { + padding-top: 5px !important; + padding-left: 3px; + font-size: 11px; + } + + /* .svg-workarea-flybar-h:hover { + } */ + + .svg-workarea-flybar-h:enabled .svg-workarea-flybar-h::selection{ + color: rgba(255,255,255,1); + } + +.svg-workarea-fly-p { + box-shadow: none !important; + background-color: var(--toolboxBackground); + color: var(--toolboxColor); + width: 200px; + padding-left: 0px; + padding-right: 0px; +} + +.svg-property-split3:after { + display: table; + clear: both; +} + +.svg-property-split3 div { + /* float: left; */ + /* width: 49%; */ + display: inline-block; +} + +.svg-property-split2:after { + display: table; + clear: both; +} + +.svg-property-split2 div { + /* float: left; */ + /* width: 49%; */ + display: inline-block; +} + +.svg-property { + color: var(--toolboxFlyColor); +} + +.svg-property span { + /* float: left; */ + display: block; + font-size: 10px; + margin: 0px 5px 0px 10px; +} + +.svg-property input { + /* float: right; */ + /* position: relative; */ + /* left: 0px; */ + /* right: 0px; */ + display: block; + margin: 0px 10px 12px 10px; + border: unset; + background-color: inherit; + color: inherit; + border-bottom: 1px solid var(--toolboxFlyColor); +} + +.svg-workarea-container { + display: block; + height: 100%; +} + +.svg-preview { + background-color: #3058af36; + height: 0px; + width: 0px; + z-index: 1; + position: absolute; +} + +#rulers > div { + background-color: var(--svgEditRulersBackground) !important; + color: var(--svgEditRulersColor) !important; +} + +#svgcanvas { + background-color: var(--svgEditWorkareaBackground) !important; +} + +.contextMenu { + background-color: var(--svgEditWorkareaContextMenu) !important; +} + +.contextMenu A { + color: var(--svgEditWorkareaContextColor) !important; +} + +.contextMenu LI:not(.disabled) A:hover { + color: var(--toolboxItemActiveColor) !important; +} + +.contextMenu LI.separator { + margin-top: 0px !important; + border-color: var(--svgEditWorkareaContextBorder) !important; +} + +.svg-tools-fly { + z-index: 9999; + position: absolute; + right: 15px; + top: 55px; + /* overflow-y: auto; */ + max-height: calc(100% - 75px); + background-color: var(--toolboxBackground); + box-shadow: 0px 1px 4px 0px #000; +} + +.svg-tool-button { + vertical-align: middle; + display: inline-table; + /* display: inline-block; */ + cursor: pointer; + height: 30px; + width: 30px; + border-radius: 50%; + margin: 2px 2px 2px 2px; + background-color: var(--toolboxButton); + /* padding-top: 5px; */ +} + +.svg-tool-button span { + display: block; + margin: auto; +} + +.svg-tool-button:hover { + background: rgba(0, 0, 0, 0.1); +} + +.svg-tool-active, .svg-tool-active:active, .svg-tool-active:hover { + background-color: rgba(48,89,175,1); +} + +.leave-header-area { + margin-top: 36px; +} + +.svg-sidenav { + min-width: 160px; + max-width: 300px; + width: 300px; + background: var(--sidenavBackground); +} + +/* tool bar top */ +.tools_panel { + background-color: var(--headerBackground); + color: var(--headerColor); +} +.main-btn { + height: 34px; + width: 34px; + min-width: unset !important; + padding: unset !important; + line-height: 34px; + margin-left: 5px; + margin-right: 5px; +} + +.main-btn mat-icon { + font-size: 24px; + height: unset; + width: unset; +} + +.main-btn .to-top { + display: inline-block; ; + height: 34px; + width: 34px; +} + +.main-btn .to-bottom { + display: inline-block; + height: 34px; + width: 34px; +} + +.main-btn .to-path { + display: inline-block; + height: 34px; + width: 34px; +} + +.main-btn .group { + background: url("/assets/images/group.svg") no-repeat center center; + background-size: contain; + display: inline-block; + height: 34px; + width: 34px; +} + +.main-btn .ungroup { + background: url("/assets/images/ungroup.svg") no-repeat center center; + background-size: contain; + display: inline-block; + height: 34px; + width: 34px; +} + +.main-btn-sep { + width: 1px; + background: #888; + border-left: 1px outset #888; + margin: 5px 3px; + padding: 0; + height: 24px; +} + +.svg-element-selected { + display: inline-flex; +} + +/* --------------- */ +/* left panel */ +/* --------------- */ +.view-panel { + overflow: auto; + cursor: s-resize; +} +.leftbar-edit-btn { + margin-top: 2px; + font-size: 18px; + height: 18px; + width: 18px; + padding-right: 15px; +} + +.leftbar-panel { + margin-top: 4px; + padding: 0px 0px 0px 0px; + font-size: 11px; + background-color: var(--toolboxPanelBackground); + color: var(--toolboxColor); + overflow: auto; +} + +.leftbar-panel.h200 { + max-height: 200px; +} + +.leftbar-item { + padding: 3px 0px 1px 0px; + display: flow-root; +} + +.leftbar-item-active { + background-color: var(--toolboxItemActiveBackground); + color: var(--toolboxItemActiveColor); +} + +.leftbar-item span { + float: left; +} + +.leftbar-item .leftbar-item-type { + float: left; + padding-left: 4px; + font-size: 16px; + line-height: 20px; + opacity:0.5; +} + +.leftbar-item mat-icon { + float: right; + font-size: 18px; +} + +::ng-deep .svg-workarea-leftbar-p .mat-expansion-panel-body { + margin: 0px 0px 0px 0px !important; + padding: 0px 0px 0px 0px !important; + /* padding-left: 10px !important; */ + flex-wrap: wrap !important; +} + +::ng-deep .svg-workarea-fly-p .mat-expansion-panel-body { + margin: 0px 0px 0px 0px !important; + padding: 0px 0px 0px 0px !important; + /* padding-left: 10px !important; */ + flex-wrap: wrap !important; +} + +::ng-deep .mat-menu-item { + font-size: 11px; + height: 30px !important; + line-height: unset !important; +} + +.rightbar-panel { + margin-top: 4px; + background-color: var(--toolboxPanelBackground); + color: var(--toolboxColor); +} + +.rightbar-input { + width: 70px; +} + +.mat-expansion-panel-header-title span { + padding-top: 3px; +} +.mat-expansion-panel-spacing { + margin: 0px 0px 0px 0px !important; +} + +.bottom-bar { + position: absolute; + left: 0px; + right: 0; + bottom: 0; + height: 30px; + overflow: visible; +} + +.zoom-menu { + float: left; + padding-left: 5px; + width: 90px; +} + +.zoom-value { + border: unset; + display: inline-block; +} + +.zoom-label { + display: inline-block; + height: 25px; +} +.zoom-value span { + display: inline-block; +} + +.zoom-value .selection, +button { + display: inline-block; +} +.zoom-value button { + /* width: unset; */ + z-index: 9999; + background-color: var(--footZoomBackground); + color: var(--footZoomColor); + border: unset; +} + +.zoom-value ul, +li { + /* width: unset; */ + background-color: var(--footZoomBackground); + color: var(--footZoomColor); + border: unset; +} + +.zoom-value ul { + left: 0px; +} + +.zoom-value li:hover { + background-color: var(--footZoomBackgroundHover); +} + +.colors { + position: absolute; + left: 25px; + top: 0px; +} + +.colors-palette { + position: absolute; + left: 165px; + top: 0px; + right: 0px; + bottom: 0px; +} + +.color-fill { + position: relative; + top: 4px; + left: 12px; + cursor: pointer; + width: 13px; + height: 13px; + border: 1px solid rgba(71, 71, 71, 1); +} + +.color-stroke { + position: absolute; + top: 4px; + left: 30px; + cursor: pointer; + width: 13px; + height: 13px; + border: 1px solid rgba(71, 71, 71, 1); +} + +.style-stroke { + display: block !important; + margin: 0px 10px 12px 10px; + background-color: inherit; + color: inherit; + background-color: var(--toolboxPanelBackground); + color: var(--toolboxColor); +} + +.style-stroke option { + background-color: var(--toolboxPanelBackground); + color: var(--toolboxColor); +} + +.font-family { + display: block; + margin: 0px 10px 12px 10px; + background-color: inherit; + color: inherit; + width: 174px; +} + +.font-family option { + background-color: var(--toolboxPanelBackground); + color: var(--toolboxColor); +} + +.text-align { + display: block; + margin: 0px 10px 12px 10px; + background-color: inherit; + color: inherit; + width: 75px; +} + +.text-align option { + background-color: var(--toolboxPanelBackground); + color: var(--toolboxColor); +} + +.view-item-text { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: calc(100% - 54px); +} + +select#start_marker option[value="A"] { + background: url("/assets/images/select-pointer.svg"); +} +select#start_marker option[value="B"] { + background: url("/assets/images/select-pointer.svg"); +} +select#start_marker option[value="C"] { + background: url("/assets/images/select-pointer.svg"); +} +select#start_marker option[value="D"] { + background: url("/assets/images/select-pointer.svg"); +} + +.icon-select { + background: url("/assets/images/select-pointer.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-pencil { + background: url("/assets/images/pencil.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-line { + background: url("/assets/images/line.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-rect { + background: url("/assets/images/rect.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-circle { + background: url("/assets/images/circle.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-ellipse { + background: url("/assets/images/ellipse.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-path { + background: url("/assets/images/path.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-text { + background: url("/assets/images/text.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-image { + background: url("/assets/images/image.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-align-left { + background: url("/assets/images/align-left.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-align-center { + background: url("/assets/images/align-center.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-align-right { + background: url("/assets/images/align-right.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-align-top { + background: url("/assets/images/align-top.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-align-middle { + background: url("/assets/images/align-middle.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-align-bottom { + background: url("/assets/images/align-bottom.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-flip-orizontal { + background: url("/assets/images/flip-orizontal.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-flip-vertical { + background: url("/assets/images/flip-vertical.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-linejoin-miter { + background: url("/assets/images/linejoin-miter.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-linejoin-round { + background: url("/assets/images/linejoin-round.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-linejoin-bevel { + background: url("/assets/images/linejoin-bevel.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-linecap-butt { + background: url("/assets/images/linecap-butt.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-linecap-square { + background: url("/assets/images/linecap-square.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-linecap-round { + background: url("/assets/images/linecap-round.svg") no-repeat center center; + background-size: contain; + height: 30px; + width: 30px; +} + +.icon-tool { + background-size: auto; + height: 30px; + width: 30px; + color: rgba(255, 255, 255, 1); + background-position: center; /* Center the image */ + background-repeat: no-repeat; /* Do not repeat the image */ +} + +.material-icon-tool { + text-align: center; + line-height: 30px; + font-size: 22px; +} + +.icon-switch { + background: url("/assets/images/switch.svg") no-repeat center center; +} +.icon-value { + background: url("/assets/images/value.svg") no-repeat center center; +} +.icon-editvalue { + background: url("/assets/images/editvalue.svg") no-repeat center center; +} +.icon-selectvalue { + background: url("/assets/images/selectvalue.svg") no-repeat center center; +} +.icon-progress-v { + background: url("/assets/images/progress-v.svg") no-repeat center center; +} +.icon-semaphore { + background: url("/assets/images/semaphore.svg") no-repeat center center; +} +.icon-button { + background: url("/assets/images/button.svg") no-repeat center center; +} +.icon-chart { + background: url("/assets/images/chart.svg") no-repeat center center; +} +.icon-bag { + background: url("/assets/images/bag.svg") no-repeat center center; +} +.icon-pipe { + background: url("/assets/images/pipe.svg") no-repeat center center; +} +.icon-slider { + background: url("/assets/images/slider.svg") no-repeat center center; +} +.icon-graphbar { + background: url("/assets/images/graphbar.svg") no-repeat center center; +} +.icon-table { + background: url("/assets/images/table.svg") no-repeat center center; +} +.icon-iframe { + background: url("/assets/images/iframe.svg") no-repeat center center; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/editor.component.css"],"names":[],"mappings":"AAAA;IACI,eAAe;IACf,gBAAgB;IAChB,yBAAyB;IACzB,YAAY;IACZ,YAAY;AAChB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,yBAAyB;IACzB,YAAY;IACZ,YAAY;AAChB;;AAEA;IACI;QACI,YAAY;IAChB;AACJ;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,WAAW;IACX,aAAa;IACb,sBAAsB;IACtB,kBAAkB;IAClB,QAAQ;IACR,SAAS;AACb;;AAEA;IACI,gBAAgB;IAChB,YAAY;AAChB;AACA;IACI,2BAA2B;IAC3B,0CAA0C;IAC1C,0BAA0B;AAC9B;;AAEA;IACI,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;IAClB,0CAA0C;IAC1C,kBAAkB;IAClB,gCAAgC;AACpC;;AAEA;IACI,2BAA2B;IAC3B,iBAAiB;IACjB,eAAe;AACnB;;AAEA;;GAEG;;AAEH;IACI,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;IAClB,0CAA0C;IAC1C,gCAAgC;CACnC;;CAEA;KACI,2BAA2B;KAC3B,iBAAiB;KACjB,eAAe;CACnB;;CAEA;IACG;;CAEH;KACI,0BAA0B;CAC9B;;AAED;IACI,2BAA2B;IAC3B,0CAA0C;IAC1C,0BAA0B;IAC1B,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,cAAc;IACd,WAAW;AACf;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,WAAW;AACf;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;AACzB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,wBAAwB;AAC5B;;AAEA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,0BAA0B;IAC1B,aAAa;IACb,yBAAyB;IACzB,cAAc;IACd,+CAA+C;AACnD;;AAEA;IACI,cAAc;IACd,YAAY;AAChB;;AAEA;IACI,2BAA2B;IAC3B,WAAW;IACX,UAAU;IACV,UAAU;IACV,kBAAkB;AACtB;;AAEA;IACI,2DAA2D;IAC3D,2CAA2C;AAC/C;;AAEA;IACI,6DAA6D;AACjE;;AAEA;IACI,8DAA8D;AAClE;;AAEA;IACI,oDAAoD;AACxD;;AAEA;IACI,+CAA+C;AACnD;;AAEA;IACI,0BAA0B;IAC1B,4DAA4D;AAChE;;AAEA;IACI,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,sBAAsB;IACtB,6BAA6B;IAC7B,0CAA0C;IAC1C,gCAAgC;AACpC;;AAEA;IACI,sBAAsB;IACtB,qBAAqB;IACrB,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,uBAAuB;IACvB,sCAAsC;IACtC,sBAAsB;AAC1B;;AAEA;IACI,cAAc;IACd,YAAY;AAChB;;AAEA;IACI,8BAA8B;AAClC;;AAEA;IACI,mCAAmC;AACvC;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,oCAAoC;AACxC;;AAEA,iBAAiB;AACjB;IACI,yCAAyC;IACzC,yBAAyB;AAC7B;AACA;IACI,YAAY;IACZ,WAAW;IACX,2BAA2B;IAC3B,yBAAyB;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,aAAa;IACb,YAAY;AAChB;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,mEAAmE;IACnE,wBAAwB;IACxB,qBAAqB;IACrB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,qEAAqE;IACrE,wBAAwB;IACxB,qBAAqB;IACrB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,4BAA4B;IAC5B,eAAe;IACf,UAAU;IACV,YAAY;AAChB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,oBAAoB;AACpB,eAAe;AACf,oBAAoB;AACpB;IACI,cAAc;IACd,gBAAgB;AACpB;AACA;IACI,eAAe;IACf,eAAe;IACf,YAAY;IACZ,WAAW;IACX,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,wBAAwB;IACxB,eAAe;IACf,+CAA+C;IAC/C,0BAA0B;IAC1B,cAAc;AAClB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;AACtB;;AAEA;IACI,oDAAoD;IACpD,oCAAoC;AACxC;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,WAAW;AACf;;AAEA;IACI,YAAY;IACZ,eAAe;AACnB;;AAEA;IACI,kCAAkC;IAClC,mCAAmC;IACnC,mCAAmC;IACnC,0BAA0B;AAC9B;;AAEA;IACI,kCAAkC;IAClC,mCAAmC;IACnC,mCAAmC;IACnC,0BAA0B;AAC9B;;AAEA;IACI,eAAe;IACf,uBAAuB;IACvB,6BAA6B;AACjC;;AAEA;IACI,eAAe;IACf,+CAA+C;IAC/C,0BAA0B;AAC9B;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,gBAAgB;AACpB;AACA;IACI,kCAAkC;AACtC;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,iBAAiB;AACrB;;AAEA;IACI,WAAW;IACX,iBAAiB;IACjB,WAAW;AACf;;AAEA;IACI,aAAa;IACb,qBAAqB;AACzB;;AAEA;IACI,qBAAqB;IACrB,YAAY;AAChB;AACA;IACI,qBAAqB;AACzB;;AAEA;;IAEI,qBAAqB;AACzB;AACA;IACI,kBAAkB;IAClB,aAAa;IACb,2CAA2C;IAC3C,2BAA2B;IAC3B,aAAa;AACjB;;AAEA;;IAEI,kBAAkB;IAClB,2CAA2C;IAC3C,2BAA2B;IAC3B,aAAa;AACjB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,gDAAgD;AACpD;;AAEA;IACI,kBAAkB;IAClB,UAAU;IACV,QAAQ;AACZ;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,UAAU;IACV,WAAW;AACf;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,eAAe;IACf,WAAW;IACX,YAAY;IACZ,qCAAqC;AACzC;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,eAAe;IACf,WAAW;IACX,YAAY;IACZ,qCAAqC;AACzC;;AAEA;IACI,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,cAAc;IACd,+CAA+C;IAC/C,0BAA0B;AAC9B;;AAEA;IACI,+CAA+C;IAC/C,0BAA0B;AAC9B;;AAEA;IACI,cAAc;IACd,0BAA0B;IAC1B,yBAAyB;IACzB,cAAc;IACd,YAAY;AAChB;;AAEA;IACI,+CAA+C;IAC/C,0BAA0B;AAC9B;;AAEA;IACI,cAAc;IACd,0BAA0B;IAC1B,yBAAyB;IACzB,cAAc;IACd,WAAW;AACf;;AAEA;IACI,+CAA+C;IAC/C,0BAA0B;AAC9B;;AAEA;IACI,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;IACvB,4BAA4B;AAChC;;AAEA;IACI,oDAAoD;AACxD;AACA;IACI,oDAAoD;AACxD;AACA;IACI,oDAAoD;AACxD;AACA;IACI,oDAAoD;AACxD;;AAEA;IACI,4EAA4E;IAC5E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,oEAAoE;IACpE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,kEAAkE;IAClE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,kEAAkE;IAClE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,oEAAoE;IACpE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,qEAAqE;IACrE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,kEAAkE;IAClE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,kEAAkE;IAClE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,mEAAmE;IACnE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,wEAAwE;IACxE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,0EAA0E;IAC1E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,yEAAyE;IACzE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,uEAAuE;IACvE,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,0EAA0E;IAC1E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,0EAA0E;IAC1E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,4EAA4E;IAC5E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,2EAA2E;IAC3E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,4EAA4E;IAC5E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,4EAA4E;IAC5E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,4EAA4E;IAC5E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,0EAA0E;IAC1E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,4EAA4E;IAC5E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,2EAA2E;IAC3E,wBAAwB;IACxB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,WAAW;IACX,6BAA6B;IAC7B,2BAA2B,EAAE,qBAAqB;IAClD,4BAA4B,EAAE,4BAA4B;AAC9D;;AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;AACnB;;AAEA;IACI,oEAAoE;AACxE;AACA;IACI,mEAAmE;AACvE;AACA;IACI,uEAAuE;AAC3E;AACA;IACI,yEAAyE;AAC7E;AACA;IACI,wEAAwE;AAC5E;AACA;IACI,uEAAuE;AAC3E;AACA;IACI,oEAAoE;AACxE;AACA;IACI,mEAAmE;AACvE;AACA;IACI,iEAAiE;AACrE;AACA;IACI,kEAAkE;AACtE;AACA;IACI,oEAAoE;AACxE;AACA;IACI,sEAAsE;AAC1E;AACA;IACI,mEAAmE;AACvE;AACA;IACI,oEAAoE;AACxE","sourcesContent":[".editor-sidenav {\n position: fixed;\n margin-top: 36px;\n height: calc(100% - 74px);\n padding: 7px;\n width: 350px;\n}\n\n.sidepanel-selector {\n position: fixed;\n margin-top: 36px;\n height: calc(100% - 74px);\n padding: 7px;\n width: 370px;\n}\n\n@media (min-width: 1601px) {\n .editor-sidenav {\n width: 450px;\n }\n}\n\n#svg_editor_container {\n background: #aaa;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n position: absolute;\n top: 0px;\n left: 0px;\n}\n\n.svg-workarea-toolbar {\n min-height: 46px;\n height: 46px;\n}\n.svg-workarea-leftbar-p {\n box-shadow: none !important;\n background-color: var(--toolboxBackground);\n color: var(--toolboxColor);\n}\n\n.svg-workarea-leftbar-h {\n max-height: 23px;\n text-align: center;\n vertical-align: middle;\n padding-left: 0px;\n padding-right: 0px;\n border-top: 1px solid var(--toolboxBorder);\n margin-bottom: 0px;\n box-shadow: 0px 1px 3px 0px #000;\n}\n\n.svg-workarea-leftbar-h span {\n padding-top: 5px !important;\n padding-left: 3px;\n font-size: 11px;\n}\n\n/* .mat-expansion-panel-content {\n background-color: rgb(53, 3, 3);\n} */\n\n.svg-workarea-flybar-h {\n max-height: 23px;\n text-align: center;\n vertical-align: middle;\n padding-left: 0px;\n padding-right: 0px;\n border-top: 1px solid var(--toolboxBorder);\n box-shadow: 0px 1px 3px 0px #000;\n }\n\n .svg-workarea-flybar-h span {\n padding-top: 5px !important;\n padding-left: 3px;\n font-size: 11px;\n }\n\n /* .svg-workarea-flybar-h:hover {\n } */\n\n .svg-workarea-flybar-h:enabled .svg-workarea-flybar-h::selection{\n color: rgba(255,255,255,1);\n }\n\n.svg-workarea-fly-p {\n box-shadow: none !important;\n background-color: var(--toolboxBackground);\n color: var(--toolboxColor);\n width: 200px;\n padding-left: 0px;\n padding-right: 0px;\n}\n\n.svg-property-split3:after {\n display: table;\n clear: both;\n}\n\n.svg-property-split3 div {\n /* float: left; */\n /* width: 49%; */\n display: inline-block;\n}\n\n.svg-property-split2:after {\n display: table;\n clear: both;\n}\n\n.svg-property-split2 div {\n /* float: left; */\n /* width: 49%; */\n display: inline-block;\n}\n\n.svg-property {\n color: var(--toolboxFlyColor);\n}\n\n.svg-property span {\n /* float: left; */\n display: block;\n font-size: 10px;\n margin: 0px 5px 0px 10px;\n}\n\n.svg-property input {\n /* float: right; */\n /* position: relative; */\n /* left: 0px; */\n /* right: 0px; */\n display: block;\n margin: 0px 10px 12px 10px;\n border: unset;\n background-color: inherit;\n color: inherit;\n border-bottom: 1px solid var(--toolboxFlyColor);\n}\n\n.svg-workarea-container {\n display: block;\n height: 100%;\n}\n\n.svg-preview {\n background-color: #3058af36;\n height: 0px;\n width: 0px;\n z-index: 1;\n position: absolute;\n}\n\n#rulers > div {\n background-color: var(--svgEditRulersBackground) !important;\n color: var(--svgEditRulersColor) !important;\n}\n\n#svgcanvas {\n background-color: var(--svgEditWorkareaBackground) !important;\n}\n\n.contextMenu {\n background-color: var(--svgEditWorkareaContextMenu) !important;\n}\n\n.contextMenu A {\n color: var(--svgEditWorkareaContextColor) !important;\n}\n\n.contextMenu LI:not(.disabled) A:hover {\n color: var(--toolboxItemActiveColor) !important;\n}\n\n.contextMenu LI.separator {\n margin-top: 0px !important;\n border-color: var(--svgEditWorkareaContextBorder) !important;\n}\n\n.svg-tools-fly {\n z-index: 9999;\n position: absolute;\n right: 15px;\n top: 55px;\n /* overflow-y: auto; */\n max-height: calc(100% - 75px);\n background-color: var(--toolboxBackground);\n box-shadow: 0px 1px 4px 0px #000;\n}\n\n.svg-tool-button {\n vertical-align: middle;\n display: inline-table;\n /* display: inline-block; */\n cursor: pointer;\n height: 30px;\n width: 30px;\n border-radius: 50%;\n margin: 2px 2px 2px 2px;\n background-color: var(--toolboxButton);\n /* padding-top: 5px; */\n}\n\n.svg-tool-button span {\n display: block;\n margin: auto;\n}\n\n.svg-tool-button:hover {\n background: rgba(0, 0, 0, 0.1);\n}\n\n.svg-tool-active, .svg-tool-active:active, .svg-tool-active:hover {\n background-color: rgba(48,89,175,1);\n}\n\n.leave-header-area {\n margin-top: 36px;\n}\n\n.svg-sidenav {\n min-width: 160px;\n max-width: 300px;\n width: 300px;\n background: var(--sidenavBackground);\n}\n\n/* tool bar top */\n.tools_panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n}\n.main-btn {\n height: 34px;\n width: 34px;\n min-width: unset !important;\n padding: unset !important;\n line-height: 34px;\n margin-left: 5px;\n margin-right: 5px;\n}\n\n.main-btn mat-icon {\n font-size: 24px;\n height: unset;\n width: unset;\n}\n\n.main-btn .to-top {\n display: inline-block; ;\n height: 34px;\n width: 34px; \n}\n\n.main-btn .to-bottom {\n display: inline-block;\n height: 34px;\n width: 34px;\n}\n\n.main-btn .to-path {\n display: inline-block;\n height: 34px;\n width: 34px;\n}\n\n.main-btn .group {\n background: url(\"/assets/images/group.svg\") no-repeat center center;\n background-size: contain;\n display: inline-block;\n height: 34px;\n width: 34px;\n}\n\n.main-btn .ungroup {\n background: url(\"/assets/images/ungroup.svg\") no-repeat center center;\n background-size: contain;\n display: inline-block;\n height: 34px;\n width: 34px;\n}\n\n.main-btn-sep {\n width: 1px;\n background: #888;\n border-left: 1px outset #888;\n margin: 5px 3px;\n padding: 0;\n height: 24px;\n}\n\n.svg-element-selected {\n display: inline-flex;\n}\n\n/* --------------- */\n/* left panel */\n/* --------------- */\n.view-panel {\n overflow: auto;\n cursor: s-resize;\n}\n.leftbar-edit-btn {\n margin-top: 2px;\n font-size: 18px;\n height: 18px;\n width: 18px;\n padding-right: 15px;\n}\n\n.leftbar-panel {\n margin-top: 4px;\n padding: 0px 0px 0px 0px;\n font-size: 11px;\n background-color: var(--toolboxPanelBackground);\n color: var(--toolboxColor);\n overflow: auto;\n}\n\n.leftbar-panel.h200 {\n max-height: 200px;\n}\n\n.leftbar-item {\n padding: 3px 0px 1px 0px;\n display: flow-root;\n}\n\n.leftbar-item-active {\n background-color: var(--toolboxItemActiveBackground);\n color: var(--toolboxItemActiveColor);\n}\n\n.leftbar-item span {\n float: left;\n}\n\n.leftbar-item .leftbar-item-type {\n float: left;\n padding-left: 4px;\n font-size: 16px;\n line-height: 20px;\n opacity:0.5;\n}\n\n.leftbar-item mat-icon {\n float: right;\n font-size: 18px;\n}\n\n::ng-deep .svg-workarea-leftbar-p .mat-expansion-panel-body {\n margin: 0px 0px 0px 0px !important;\n padding: 0px 0px 0px 0px !important;\n /* padding-left: 10px !important; */\n flex-wrap: wrap !important;\n}\n\n::ng-deep .svg-workarea-fly-p .mat-expansion-panel-body {\n margin: 0px 0px 0px 0px !important;\n padding: 0px 0px 0px 0px !important;\n /* padding-left: 10px !important; */\n flex-wrap: wrap !important;\n}\n\n::ng-deep .mat-menu-item {\n font-size: 11px;\n height: 30px !important;\n line-height: unset !important;\n}\n\n.rightbar-panel {\n margin-top: 4px;\n background-color: var(--toolboxPanelBackground);\n color: var(--toolboxColor);\n}\n\n.rightbar-input {\n width: 70px;\n}\n\n.mat-expansion-panel-header-title span {\n padding-top: 3px;\n}\n.mat-expansion-panel-spacing {\n margin: 0px 0px 0px 0px !important;\n}\n\n.bottom-bar {\n position: absolute;\n left: 0px;\n right: 0;\n bottom: 0;\n height: 30px;\n overflow: visible;\n}\n\n.zoom-menu {\n float: left;\n padding-left: 5px;\n width: 90px;\n}\n\n.zoom-value {\n border: unset;\n display: inline-block;\n}\n\n.zoom-label {\n display: inline-block;\n height: 25px;\n}\n.zoom-value span {\n display: inline-block;\n}\n\n.zoom-value .selection,\nbutton {\n display: inline-block;\n}\n.zoom-value button {\n /* width: unset; */\n z-index: 9999;\n background-color: var(--footZoomBackground);\n color: var(--footZoomColor);\n border: unset;\n}\n\n.zoom-value ul,\nli {\n /* width: unset; */\n background-color: var(--footZoomBackground);\n color: var(--footZoomColor);\n border: unset;\n}\n\n.zoom-value ul {\n left: 0px;\n}\n\n.zoom-value li:hover {\n background-color: var(--footZoomBackgroundHover);\n}\n\n.colors {\n position: absolute;\n left: 25px;\n top: 0px;\n}\n\n.colors-palette {\n position: absolute;\n left: 165px;\n top: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.color-fill {\n position: relative;\n top: 4px;\n left: 12px;\n cursor: pointer;\n width: 13px;\n height: 13px;\n border: 1px solid rgba(71, 71, 71, 1);\n}\n\n.color-stroke {\n position: absolute;\n top: 4px;\n left: 30px;\n cursor: pointer;\n width: 13px;\n height: 13px;\n border: 1px solid rgba(71, 71, 71, 1);\n}\n\n.style-stroke {\n display: block !important;\n margin: 0px 10px 12px 10px;\n background-color: inherit;\n color: inherit;\n background-color: var(--toolboxPanelBackground);\n color: var(--toolboxColor);\n}\n\n.style-stroke option {\n background-color: var(--toolboxPanelBackground);\n color: var(--toolboxColor);\n}\n\n.font-family {\n display: block;\n margin: 0px 10px 12px 10px;\n background-color: inherit;\n color: inherit;\n width: 174px;\n}\n\n.font-family option {\n background-color: var(--toolboxPanelBackground);\n color: var(--toolboxColor);\n}\n\n.text-align {\n display: block;\n margin: 0px 10px 12px 10px;\n background-color: inherit;\n color: inherit;\n width: 75px;\n}\n\n.text-align option {\n background-color: var(--toolboxPanelBackground);\n color: var(--toolboxColor);\n}\n\n.view-item-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: calc(100% - 54px);\n}\n\nselect#start_marker option[value=\"A\"] {\n background: url(\"/assets/images/select-pointer.svg\");\n}\nselect#start_marker option[value=\"B\"] {\n background: url(\"/assets/images/select-pointer.svg\");\n}\nselect#start_marker option[value=\"C\"] {\n background: url(\"/assets/images/select-pointer.svg\");\n}\nselect#start_marker option[value=\"D\"] {\n background: url(\"/assets/images/select-pointer.svg\");\n}\n\n.icon-select {\n background: url(\"/assets/images/select-pointer.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-pencil {\n background: url(\"/assets/images/pencil.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-line {\n background: url(\"/assets/images/line.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-rect {\n background: url(\"/assets/images/rect.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-circle {\n background: url(\"/assets/images/circle.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-ellipse {\n background: url(\"/assets/images/ellipse.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-path {\n background: url(\"/assets/images/path.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-text {\n background: url(\"/assets/images/text.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-image {\n background: url(\"/assets/images/image.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-align-left {\n background: url(\"/assets/images/align-left.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-align-center {\n background: url(\"/assets/images/align-center.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-align-right {\n background: url(\"/assets/images/align-right.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-align-top {\n background: url(\"/assets/images/align-top.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-align-middle {\n background: url(\"/assets/images/align-middle.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-align-bottom {\n background: url(\"/assets/images/align-bottom.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-flip-orizontal {\n background: url(\"/assets/images/flip-orizontal.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-flip-vertical {\n background: url(\"/assets/images/flip-vertical.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-linejoin-miter {\n background: url(\"/assets/images/linejoin-miter.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-linejoin-round {\n background: url(\"/assets/images/linejoin-round.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-linejoin-bevel {\n background: url(\"/assets/images/linejoin-bevel.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-linecap-butt {\n background: url(\"/assets/images/linecap-butt.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-linecap-square {\n background: url(\"/assets/images/linecap-square.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-linecap-round {\n background: url(\"/assets/images/linecap-round.svg\") no-repeat center center;\n background-size: contain;\n height: 30px;\n width: 30px;\n}\n\n.icon-tool {\n background-size: auto;\n height: 30px;\n width: 30px;\n color: rgba(255, 255, 255, 1);\n background-position: center; /* Center the image */\n background-repeat: no-repeat; /* Do not repeat the image */\n}\n\n.material-icon-tool {\n text-align: center;\n line-height: 30px;\n font-size: 22px;\n}\n\n.icon-switch {\n background: url(\"/assets/images/switch.svg\") no-repeat center center;\n}\n.icon-value {\n background: url(\"/assets/images/value.svg\") no-repeat center center;\n}\n.icon-editvalue {\n background: url(\"/assets/images/editvalue.svg\") no-repeat center center;\n}\n.icon-selectvalue {\n background: url(\"/assets/images/selectvalue.svg\") no-repeat center center;\n}\n.icon-progress-v {\n background: url(\"/assets/images/progress-v.svg\") no-repeat center center;\n}\n.icon-semaphore {\n background: url(\"/assets/images/semaphore.svg\") no-repeat center center;\n}\n.icon-button {\n background: url(\"/assets/images/button.svg\") no-repeat center center;\n}\n.icon-chart {\n background: url(\"/assets/images/chart.svg\") no-repeat center center;\n}\n.icon-bag {\n background: url(\"/assets/images/bag.svg\") no-repeat center center;\n}\n.icon-pipe {\n background: url(\"/assets/images/pipe.svg\") no-repeat center center;\n}\n.icon-slider {\n background: url(\"/assets/images/slider.svg\") no-repeat center center;\n}\n.icon-graphbar {\n background: url(\"/assets/images/graphbar.svg\") no-repeat center center;\n}\n.icon-table {\n background: url(\"/assets/images/table.svg\") no-repeat center center;\n}\n.icon-iframe {\n background: url(\"/assets/images/iframe.svg\") no-repeat center center;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 34074: +/*!***************************************************************************!*\ + !*** ./src/app/editor/graph-config/graph-config.component.css?ngResource ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.panelTop { + display: block; + width: 100%; + height: 180px; + border: 1px solid var(--formBorder); + position: relative; + overflow: auto; +} + +.mychips { + display: inline-block; + font-size: 14px; + height: 32px; + line-height: 30px; + border-radius: 20px; + background-color: var(--chipsBackground); + cursor: pointer; + margin: 2px 2px; +} + +.mychips mat-icon { + margin: 5px 5px 5px 5px; + opacity: 0.5; + font-size: 20px; + text-align: center; +} + +.mychips span { + padding-left: 3px; + padding-right: 3px; + vertical-align: top; +} +.mychips:hover { + opacity: 0.9; +} + +.mychips-selected { + background-color: var(--chipSelectedBackground); + color: var(--chipSelectedColor); +} + +.toolbox-toadd { + position: absolute; + right: 50px; + top: -40px; +} + +.panelBottom { + display: block; + width: 100%; + height: 300px; + margin-top: 10px; +} + + +.list { + width: 100% !important; + height: 100% !important; + font-size: 16px !important; + padding-top: 0px !important; +} + +.list > span { + padding-left: 10px; +} + +.list mat-list-option { + padding-left: 10px; +} + +.list-item { + display: block; + font-size: 12px; + height: 28px !important; + line-height: 26px; + cursor: pointer; + overflow: hidden; + padding-left: 10px; +} + +.list-item mat-icon { + font-size: 20px; +} + +.list-item span { + text-overflow: ellipsis; + overflow: hidden; +} + +.list-item-text { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.list-item-hover:hover { + background-color: rgba(0, 0, 0, 0.1); +} + + +.list-header { + background-color: rgba(0, 0, 0, 0.8); + color: #ffffff; + line-height: 26px; + cursor: unset; +} + +/* Tags Table */ +.list-item-remove { + width: 20px; + max-width: 20px; + color:gray; +} + +.list-item-name { + width: 30%; + max-width: 30%; +} + +.list-item-label { + width: 30%; + max-width: 30%; +} + +.list-item-device { + width: 30%; + max-width: 30%; +} + +.list-item-color { + width: 5%; + max-width: 5%; + height: 14px; + border-style: solid; + border-width: 3px; +} + +.list-panel { + height: calc(100% - 26px); + overflow-x: hidden; +} + +.device-list { + margin-right: 2px; + overflow-y: auto; +} + +.tag-list { + margin-right: 2px; + overflow-y: auto; +} + +.color-line { + width: 30px; + border: unset; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 2px; + opacity: 1; + background-color: #f1f3f4; +} +/* Tags Table */ + + + + +/* Tags Section */ +.showEditor { + display: block; +} + +.hideEditor { + display: none; +} + +.section-panel { + height: 100%; + font-size: 12px; +} + +.section-category { + width: 25%; + display: inline-block; +} + +.section-header { + width: 100%; + background-color: var(--chipsBackground); + color: #ffffff; + height: 26px; + line-height: 26px; +} + +.section-header span { + padding-left: 5px; +} + +.section-item { + width: 100%; + margin-bottom: 3px; +} + +.section-item mat-select { + width:calc(100% - 7px); +} + +.section-list { + border: 1px solid var(--formBorder); + height: calc(100% - 30px); + padding: 2px 2px 2px 2px; + overflow-x: hidden; + overflow-y: auto; +} + +.section-sources { + width: 74%; + float: right; +} +/* Section */ +`, "",{"version":3,"sources":["webpack://./src/app/editor/graph-config/graph-config.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,WAAW;IACX,aAAa;IACb,mCAAmC;IACnC,kBAAkB;IAClB,cAAc;AAClB;;AAEA;IACI,qBAAqB;IACrB,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,mBAAmB;IACnB,wCAAwC;IACxC,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,uBAAuB;IACvB,YAAY;IACZ,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;AACvB;AACA;IACI,YAAY;AAChB;;AAEA;IACI,+CAA+C;IAC/C,+BAA+B;AACnC;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,UAAU;AACd;;AAEA;IACI,cAAc;IACd,WAAW;IACX,aAAa;IACb,gBAAgB;AACpB;;;AAGA;IACI,sBAAsB;IACtB,uBAAuB;IACvB,0BAA0B;IAC1B,2BAA2B;AAC/B;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,cAAc;IACd,eAAe;IACf,uBAAuB;IACvB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,uBAAuB;IACvB,gBAAgB;AACpB;;AAEA;IACI,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;AACpB;;AAEA;IACI,oCAAoC;AACxC;;;AAGA;IACI,oCAAoC;IACpC,cAAc;IACd,iBAAiB;IACjB,aAAa;AACjB;;AAEA,eAAe;AACf;IACI,WAAW;IACX,eAAe;IACf,UAAU;AACd;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,UAAU;IACV,cAAc;AAClB;;AAEA;IACI,SAAS;IACT,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,yBAAyB;IACzB,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,WAAW;IACX,aAAa;IACb,oCAAoC;IACpC,kBAAkB;IAClB,UAAU;IACV,yBAAyB;AAC7B;AACA,eAAe;;;;;AAKf,iBAAiB;AACjB;IACI,cAAc;AAClB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY;IACZ,eAAe;AACnB;;AAEA;IACI,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,WAAW;IACX,wCAAwC;IACxC,cAAc;IACd,YAAY;IACZ,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;IACX,kBAAkB;AACtB;;AAEA;IACI,sBAAsB;AAC1B;;AAEA;IACI,mCAAmC;IACnC,yBAAyB;IACzB,wBAAwB;IACxB,kBAAkB;IAClB,gBAAgB;AACpB;;AAEA;IACI,UAAU;IACV,YAAY;AAChB;AACA,YAAY","sourcesContent":[".panelTop {\n display: block;\n width: 100%;\n height: 180px;\n border: 1px solid var(--formBorder);\n position: relative;\n overflow: auto;\n}\n\n.mychips {\n display: inline-block;\n font-size: 14px;\n height: 32px;\n line-height: 30px;\n border-radius: 20px;\n background-color: var(--chipsBackground);\n cursor: pointer;\n margin: 2px 2px;\n}\n\n.mychips mat-icon {\n margin: 5px 5px 5px 5px;\n opacity: 0.5;\n font-size: 20px;\n text-align: center;\n}\n\n.mychips span {\n padding-left: 3px;\n padding-right: 3px;\n vertical-align: top;\n}\n.mychips:hover {\n opacity: 0.9;\n}\n\n.mychips-selected {\n background-color: var(--chipSelectedBackground);\n color: var(--chipSelectedColor);\n}\n\n.toolbox-toadd {\n position: absolute;\n right: 50px;\n top: -40px;\n}\n\n.panelBottom {\n display: block;\n width: 100%;\n height: 300px;\n margin-top: 10px;\n}\n\n\n.list {\n width: 100% !important;\n height: 100% !important;\n font-size: 16px !important;\n padding-top: 0px !important;\n}\n\n.list > span {\n padding-left: 10px;\n}\n\n.list mat-list-option {\n padding-left: 10px;\n}\n\n.list-item {\n display: block;\n font-size: 12px;\n height: 28px !important;\n line-height: 26px;\n cursor: pointer;\n overflow: hidden;\n padding-left: 10px;\n}\n\n.list-item mat-icon {\n font-size: 20px;\n}\n\n.list-item span {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.list-item-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.list-item-hover:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n\n.list-header {\n background-color: rgba(0, 0, 0, 0.8);\n color: #ffffff;\n line-height: 26px;\n cursor: unset;\n}\n\n/* Tags Table */\n.list-item-remove {\n width: 20px;\n max-width: 20px;\n color:gray;\n}\n\n.list-item-name {\n width: 30%;\n max-width: 30%;\n}\n\n.list-item-label {\n width: 30%;\n max-width: 30%;\n}\n\n.list-item-device {\n width: 30%;\n max-width: 30%;\n}\n\n.list-item-color {\n width: 5%;\n max-width: 5%;\n height: 14px;\n border-style: solid;\n border-width: 3px;\n}\n\n.list-panel {\n height: calc(100% - 26px); \n overflow-x: hidden;\n}\n\n.device-list {\n margin-right: 2px;\n overflow-y: auto;\n}\n\n.tag-list {\n margin-right: 2px;\n overflow-y: auto;\n}\n\n.color-line {\n width: 30px;\n border: unset;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 2px;\n opacity: 1;\n background-color: #f1f3f4;\n}\n/* Tags Table */\n\n\n\n\n/* Tags Section */\n.showEditor {\n display: block;\n}\n\n.hideEditor {\n display: none;\n}\n\n.section-panel {\n height: 100%;\n font-size: 12px;\n}\n\n.section-category {\n width: 25%;\n display: inline-block;\n}\n\n.section-header {\n width: 100%;\n background-color: var(--chipsBackground);\n color: #ffffff;\n height: 26px;\n line-height: 26px;\n}\n\n.section-header span {\n padding-left: 5px;\n}\n\n.section-item {\n width: 100%;\n margin-bottom: 3px;\n}\n\n.section-item mat-select {\n width:calc(100% - 7px);\n}\n\n.section-list {\n border: 1px solid var(--formBorder);\n height: calc(100% - 30px);\n padding: 2px 2px 2px 2px;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.section-sources {\n width: 74%;\n float: right;\n}\n/* Section */\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 89648: +/*!**************************************************************************************************!*\ + !*** ./src/app/editor/graph-config/graph-source-edit/graph-source-edit.component.css?ngResource ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 33251: +/*!**************************************************************!*\ + !*** ./src/app/fuxa-view/fuxa-view.component.css?ngResource ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.view-container { + display: table; +} + +.fab-card { + position: absolute; + width: 1300px; + height: 800px; + /* background-color:black; */ + /* box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); */ + box-shadow: 0px 1px 4px 1px #888888; +} + +.card-close { + position: absolute; + top: 0px; + right: 0px; + height: 22px; + width: 22px; + color: rgba(0, 0, 0, 0.7); + background-color: transparent; + font-size: 12px; + cursor: move !important; +} + +.card-move-area { + z-index: 999; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + height: 22px; +} + +.card-close i { + float: right; +} + +.fab-iframe { + position: absolute; + width: 800px; + height: 600px; + background-color: black; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); + /* box-shadow: 0px 2px 6px -1px #888888; */ +} + +.iframe-header { + display: block; + height: 22px; + width: 100%; + color: white; + background-color: black; + font-size: 12px; + text-align: center; + line-height: 22px; +} + +.iframe-header i { + float: right; + color: white; +} + +.iframe-class { + display: block; + height: 100%; + transform-origin: 0 0; + /* transform-origin:left top; */ +} + +.ng-draggable { + cursor: move; +} + +.dialog-modal { + /* display: none; */ + position: fixed; /* Stay in place */ + z-index: 1; /* Sit on top */ + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + overflow: auto; /* Enable scroll if needed */ + /*background-color: rgb(0,0,0); /* Fallback color */ + /*background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ +} + +/* Modal Content/Box */ +::ng-deep .fuxa-dialog-property .mat-dialog-container { + padding: 0; +} + +.dialog-modal-content { + border: 1px solid #888; + box-shadow: 0 0 12px #000000 !important; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.dialog-modal-close { + position: relative; + top: 0px; + right: 0px; + height: 22px; + width: 100%; + color: rgba(0, 0, 0, 0.7); + background-color: transparent; + font-size: 12px; + cursor: move !important; +} + +.dialog-modal-close i { + float: right; +} + +/* input */ +.dialog-input { + z-index: 9999; /* Sit on top */ + box-shadow: 1px 2px 5px -1px #888; + position: absolute; + padding: 5px; + background-color: #fff; + min-width: 80px; + border: 0.5px solid #888; + border-radius: 2px; +} + +.dialog-input input { + border: 0.5px solid rgba(0,0,0,0.1); + border-radius: 2px; + padding: 6px 3px 7px 4px; + width: 100%; + display: block; + margin: 2px auto; +} + +.dialog-input button { + min-width: 80px; +}`, "",{"version":3,"sources":["webpack://./src/app/fuxa-view/fuxa-view.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,4BAA4B;IAC5B,6CAA6C;IAC7C,mCAAmC;AACvC;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,WAAW;IACX,yBAAyB;IACzB,6BAA6B;IAC7B,eAAe;IACf,uBAAuB;AAC3B;;AAEA;IACI,YAAY;IACZ,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;AAChB;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,uBAAuB;IACvB,2CAA2C;IAC3C,0CAA0C;AAC9C;;AAEA;IACI,cAAc;IACd,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,uBAAuB;IACvB,eAAe;IACf,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,YAAY;IACZ,YAAY;AAChB;;AAEA;IACI,cAAc;IACd,YAAY;IACZ,qBAAqB;IACrB,+BAA+B;AACnC;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,mBAAmB;IACnB,eAAe,EAAE,kBAAkB;IACnC,UAAU,EAAE,eAAe;IAC3B,OAAO;IACP,MAAM;IACN,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,4BAA4B;IAC5C,mDAAmD;IACnD,0DAA0D;AAC9D;;AAEA,sBAAsB;AACtB;IACI,UAAU;AACd;;AAEA;IACI,sBAAsB;IACtB,uCAAuC;IACvC,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,gCAAgC;AACpC;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,WAAW;IACX,yBAAyB;IACzB,6BAA6B;IAC7B,eAAe;IACf,uBAAuB;AAC3B;;AAEA;IACI,YAAY;AAChB;;AAEA,UAAU;AACV;IACI,aAAa,EAAE,eAAe;IAC9B,iCAAiC;IACjC,kBAAkB;IAClB,YAAY;IACZ,sBAAsB;IACtB,eAAe;IACf,wBAAwB;IACxB,kBAAkB;AACtB;;AAEA;IACI,mCAAmC;IACnC,kBAAkB;IAClB,wBAAwB;IACxB,WAAW;IACX,cAAc;IACd,gBAAgB;AACpB;;AAEA;IACI,eAAe;AACnB","sourcesContent":[".view-container {\n display: table;\n}\n\n.fab-card {\n position: absolute;\n width: 1300px;\n height: 800px;\n /* background-color:black; */\n /* box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); */\n box-shadow: 0px 1px 4px 1px #888888;\n}\n\n.card-close {\n position: absolute;\n top: 0px;\n right: 0px;\n height: 22px;\n width: 22px;\n color: rgba(0, 0, 0, 0.7);\n background-color: transparent;\n font-size: 12px;\n cursor: move !important;\n}\n\n.card-move-area {\n z-index: 999;\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n height: 22px;\n}\n\n.card-close i {\n float: right;\n}\n\n.fab-iframe {\n position: absolute;\n width: 800px;\n height: 600px;\n background-color: black;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n /* box-shadow: 0px 2px 6px -1px #888888; */\n}\n\n.iframe-header {\n display: block;\n height: 22px;\n width: 100%;\n color: white;\n background-color: black;\n font-size: 12px;\n text-align: center;\n line-height: 22px;\n}\n\n.iframe-header i {\n float: right;\n color: white;\n}\n\n.iframe-class {\n display: block;\n height: 100%;\n transform-origin: 0 0;\n /* transform-origin:left top; */\n}\n\n.ng-draggable {\n cursor: move;\n}\n\n.dialog-modal {\n /* display: none; */\n position: fixed; /* Stay in place */\n z-index: 1; /* Sit on top */\n left: 0;\n top: 0;\n width: 100%; /* Full width */\n height: 100%; /* Full height */\n overflow: auto; /* Enable scroll if needed */\n /*background-color: rgb(0,0,0); /* Fallback color */\n /*background-color: rgba(0,0,0,0.4); /* Black w/ opacity */\n}\n\n/* Modal Content/Box */\n::ng-deep .fuxa-dialog-property .mat-dialog-container {\n padding: 0;\n}\n\n.dialog-modal-content {\n border: 1px solid #888;\n box-shadow: 0 0 12px #000000 !important;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.dialog-modal-close {\n position: relative;\n top: 0px;\n right: 0px;\n height: 22px;\n width: 100%;\n color: rgba(0, 0, 0, 0.7);\n background-color: transparent;\n font-size: 12px;\n cursor: move !important;\n}\n\n.dialog-modal-close i {\n float: right;\n}\n\n/* input */\n.dialog-input {\n z-index: 9999; /* Sit on top */\n box-shadow: 1px 2px 5px -1px #888;\n position: absolute;\n padding: 5px;\n background-color: #fff;\n min-width: 80px;\n border: 0.5px solid #888;\n border-radius: 2px;\n}\n\n.dialog-input input {\n border: 0.5px solid rgba(0,0,0,0.1);\n border-radius: 2px;\n padding: 6px 3px 7px 4px;\n width: 100%;\n display: block;\n margin: 2px auto;\n}\n\n.dialog-input button {\n min-width: 80px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 36392: +/*!****************************************************************************************!*\ + !*** ./src/app/gauges/controls/gauge-progress/gauge-progress.component.css?ngResource ***! + \****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 78414: +/*!******************************************************************************************!*\ + !*** ./src/app/gauges/controls/gauge-semaphore/gauge-semaphore.component.css?ngResource ***! + \******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 64990: +/*!*********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-bag/bag-property/bag-property.component.css?ngResource ***! + \*********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.slider { + display:inline-block; + width: 100px; +} + +.gauge { + display: inline-block; + position: absolute; + top: 0px; + width: 360px; + height: 350px; + margin: 0 auto; + padding-top: 30px; + padding-left: 70px; +} + +.gauge-select { + width: 280px; + text-align: center; +} + +.gauge-view { + border: 1px solid var(--formSeparatorColor); + width: 280px; + height: 220px; + margin-top: -5px; + padding-top: 30px; +} + +.btn-gauge { + z-index: 99; + display: inline-block; + width: 50px; + height:38px; + border: 1px solid var(--formSeparatorColor); +} + +.btn-gauge-mat { + background: url('/assets/images/gauge-mat.png') no-repeat center center; + background-size: 45px 30px; +} + +.btn-gauge-donut { + background: url('/assets/images/gauge-donut.png') no-repeat center center; + background-size: 52px 28px; +} + +.btn-gauge-zone { + background: url('/assets/images/gauge-zone.png') no-repeat center center; + background-size: 45px 30px; +} + +.toolbox { + position: absolute; + width: 100%; + height: 310px; +} + +.toolbox-left { + display: inline-block; + width: 460px; + padding-top: 20px; +} + +.toolbox-right { + width: 300px; + position: absolute; + top: 0px; + right: 0px; + height: 270px; +} + +.toolbox-det { + display: inline-block; + width: 312px; + height: 300px; + position: absolute; + top: 15px; + right: 0px; +} + +.slider-field span { + padding-left: 2px; + text-overflow: clip; + max-width: 125px; + white-space: nowrap; + overflow: hidden; +} + +.slider-field mat-slider { + background-color: var(--formSliderBackground); + height: 30px; +} + +.field-row { + display: block; + margin-bottom: 5px; +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-bag/bag-property/bag-property.component.css"],"names":[],"mappings":";AACA;IACI,oBAAoB;IACpB,YAAY;AAChB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,YAAY;IACZ,kBAAkB;AACtB;;AAEA;IACI,2CAA2C;IAC3C,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,iBAAiB;AACrB;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,WAAW;IACX,WAAW;IACX,2CAA2C;AAC/C;;AAEA;IACI,uEAAuE;IACvE,0BAA0B;AAC9B;;AAEA;IACI,yEAAyE;IACzE,0BAA0B;AAC9B;;AAEA;IACI,wEAAwE;IACxE,0BAA0B;AAC9B;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,iBAAiB;AACrB;;AAEA;IACI,YAAY;IACZ,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,aAAa;AACjB;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,UAAU;AACd;;AAEA;IACI,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;AACpB;;AAEA;IACI,6CAA6C;IAC7C,YAAY;AAChB;;AAEA;IACI,cAAc;IACd,kBAAkB;AACtB","sourcesContent":["\n.slider {\n display:inline-block; \n width: 100px;\n}\n\n.gauge {\n display: inline-block;\n position: absolute;\n top: 0px;\n width: 360px;\n height: 350px;\n margin: 0 auto;\n padding-top: 30px;\n padding-left: 70px;\n}\n\n.gauge-select {\n width: 280px; \n text-align: center;\n}\n\n.gauge-view {\n border: 1px solid var(--formSeparatorColor);\n width: 280px; \n height: 220px;\n margin-top: -5px;\n padding-top: 30px;\n}\n\n.btn-gauge {\n z-index: 99;\n display: inline-block;\n width: 50px;\n height:38px;\n border: 1px solid var(--formSeparatorColor);\n}\n\n.btn-gauge-mat {\n background: url('/assets/images/gauge-mat.png') no-repeat center center;\n background-size: 45px 30px;\n}\n\n.btn-gauge-donut {\n background: url('/assets/images/gauge-donut.png') no-repeat center center;\n background-size: 52px 28px;\n} \n\n.btn-gauge-zone {\n background: url('/assets/images/gauge-zone.png') no-repeat center center;\n background-size: 45px 30px;\n}\n\n.toolbox {\n position: absolute;\n width: 100%;\n height: 310px;\n}\n\n.toolbox-left {\n display: inline-block;\n width: 460px;\n padding-top: 20px;\n}\n\n.toolbox-right {\n width: 300px;\n position: absolute;\n top: 0px;\n right: 0px;\n height: 270px;\n}\n\n.toolbox-det {\n display: inline-block;\n width: 312px;\n height: 300px;\n position: absolute;\n top: 15px;\n right: 0px;\n}\n\n.slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n max-width: 125px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 30px;\n}\n\n.field-row {\n display: block;\n margin-bottom: 5px;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 42373: +/*!****************************************************************************!*\ + !*** ./src/app/gauges/controls/html-bag/html-bag.component.css?ngResource ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 92155: +/*!**********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-button/html-button.component.css?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 11413: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/html-chart.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 74725: +/*!*****************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-pie/graph-pie.component.css?ngResource ***! + \*****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 73780: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/html-graph.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 27417: +/*!**********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-iframe/html-iframe.component.css?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 2361: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-image/html-image.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 3007: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-input/html-input.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 73529: +/*!****************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/html-scheduler.component.css?ngResource ***! + \****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/* HTML Scheduler component styles */`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-scheduler/html-scheduler.component.css"],"names":[],"mappings":"AAAA,oCAAoC","sourcesContent":["/* HTML Scheduler component styles */"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 76937: +/*!**********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-select/html-select.component.css?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 62107: +/*!********************************************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-customizer/table-customizer-cell-edit/table-customizer-cell-edit.component.css?ngResource ***! + \********************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.item { + display: block; + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 0px 0px 5px 0px; + margin-bottom: 3px; + position: relative; +} + +.item-remove { + float: right; +} + +.remove { + position: relative; + top: 4px; + right: 0px; +} + +.toolbox-btn { + margin-right: -8px; +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-table/table-customizer/table-customizer-cell-edit/table-customizer-cell-edit.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,WAAW;IACX,2CAA2C;IAC3C,wBAAwB;IACxB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;AACd;;AAEA;IACI,kBAAkB;AACtB","sourcesContent":[".item {\n display: block;\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 0px 0px 5px 0px;\n margin-bottom: 3px;\n position: relative;\n}\n\n.item-remove {\n float: right;\n}\n\n.remove {\n position: relative;\n top: 4px;\n right: 0px;\n}\n\n.toolbox-btn {\n margin-right: -8px;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 53643: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-video/html-video.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 93285: +/*!**********************************************************************!*\ + !*** ./src/app/gauges/controls/panel/panel.component.css?ngResource ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 65699: +/*!*************************************************************************************************!*\ + !*** ./src/app/gauges/controls/slider/slider-property/slider-property.component.css?ngResource ***! + \*************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.field-row { + display: block; + margin-bottom: 5px; +} + +.slider-field span { + padding-left: 2px; + text-overflow: clip; + max-width: 125px; + white-space: nowrap; + overflow: hidden; +} + +.slider-field mat-slider { + background-color: var(--formSliderBackground); + height: 30px; +} + +::ng-deep .mat-tab-label { + height: 34px !important; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/slider/slider-property/slider-property.component.css"],"names":[],"mappings":";AACA;IACI,cAAc;IACd,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;AACpB;;AAEA;IACI,6CAA6C;IAC7C,YAAY;AAChB;;AAEA;IACI,uBAAuB;AAC3B","sourcesContent":["\n.field-row {\n display: block;\n margin-bottom: 5px;\n}\n\n.slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n max-width: 125px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 30px;\n}\n\n::ng-deep .mat-tab-label {\n height: 34px !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 86389: +/*!**********************************************************************!*\ + !*** ./src/app/gauges/controls/value/value.component.css?ngResource ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 64440: +/*!***********************************************************************!*\ + !*** ./src/app/gauges/gauge-base/gauge-base.component.css?ngResource ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.svg-property-split2:after { + display: table; + clear: both; +} + +.svg-property-split2 div { + display: inline-block; +} + +.svg-property { + color: rgba(255, 255, 255, 0.75); + +} + +.svg-property span { + display: block; + font-size: 10px; + margin: 0px 5px 0px 10px; +} + +.svg-property input { + display: block; + margin: 0px 10px 12px 10px; + border: unset; + background-color: inherit; + color: var(--toolboxFlyColor); + border-bottom: 1px solid var(--toolboxFlyColor); +} + +.mat-button { + min-width: 60px; +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-base/gauge-base.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,WAAW;AACf;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,gCAAgC;;AAEpC;;AAEA;IACI,cAAc;IACd,eAAe;IACf,wBAAwB;AAC5B;;AAEA;IACI,cAAc;IACd,0BAA0B;IAC1B,aAAa;IACb,yBAAyB;IACzB,6BAA6B;IAC7B,+CAA+C;AACnD;;AAEA;IACI,eAAe;AACnB","sourcesContent":[".svg-property-split2:after {\n display: table;\n clear: both;\n}\n\n.svg-property-split2 div {\n display: inline-block;\n}\n\n.svg-property {\n color: rgba(255, 255, 255, 0.75);\n\n}\n\n.svg-property span {\n display: block;\n font-size: 10px;\n margin: 0px 5px 0px 10px;\n}\n\n.svg-property input {\n display: block;\n margin: 0px 10px 12px 10px;\n border: unset;\n background-color: inherit;\n color: var(--toolboxFlyColor);\n border-bottom: 1px solid var(--toolboxFlyColor);\n}\n\n.mat-button {\n min-width: 60px;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 36336: +/*!****************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-action/flex-action.component.css?ngResource ***! + \****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.item { + display: block; + /* min-height: 100px; */ + width: 100%; + border-bottom: 1px solid rgba(0,0,0,0.1); + padding: 0px 0px 5px 0px; + margin-bottom: 3px; +} + +.item-head { + display: block; +} + +.remove { + position: relative; + top: 4px; + right: 0px; +} + +.item-remove { + float: right; + /* padding-top: 6px; */ + /* min-width: 140px; */ +} + +.action-content { + display: block; + padding-top: 2px; + margin-left: 30px; +} + +.item-range { + display: inline-block; + min-width: 240px; + width: 240px; +} + +.action-params { + display: inline-block; + padding-top: 5px; +} + +.input-slider { + display: inline; + /* max-width: 160px; */ +} +::ng-deep .input-slider span { + font-size: 14px !important; +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-action/flex-action.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,uBAAuB;IACvB,WAAW;IACX,wCAAwC;IACxC,wBAAwB;IACxB,kBAAkB;AACtB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;AACd;;AAEA;IACI,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;AAC1B;;AAEA;IACI,cAAc;IACd,gBAAgB;IAChB,iBAAiB;AACrB;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;AAChB;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,sBAAsB;AAC1B;AACA;IACI,0BAA0B;AAC9B","sourcesContent":[".item {\n display: block;\n /* min-height: 100px; */\n width: 100%;\n border-bottom: 1px solid rgba(0,0,0,0.1);\n padding: 0px 0px 5px 0px;\n margin-bottom: 3px;\n}\n\n.item-head {\n display: block;\n}\n\n.remove {\n position: relative;\n top: 4px;\n right: 0px;\n}\n\n.item-remove {\n float: right;\n /* padding-top: 6px; */\n /* min-width: 140px; */\n}\n\n.action-content {\n display: block;\n padding-top: 2px;\n margin-left: 30px;\n}\n\n.item-range {\n display: inline-block;\n min-width: 240px;\n width: 240px;\n}\n\n.action-params {\n display: inline-block;\n padding-top: 5px;\n}\n\n.input-slider {\n display: inline;\n /* max-width: 160px; */\n}\n::ng-deep .input-slider span {\n font-size: 14px !important;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 27786: +/*!************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-auth/flex-auth.component.css?ngResource ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 33078: +/*!**************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-event/flex-event.component.css?ngResource ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.item { + display: block; + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 0px 0px 5px 0px; + min-width: 664px; + margin-bottom: 3px; +} + +.remove { + position: relative; + top: 4px; + right: 0px; +} + +.item-remove { + /* display: inline-block; */ + float: right; + /* padding-top: 6px; */ + /* min-width: 140px; */ +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-event/flex-event.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,WAAW;IACX,2CAA2C;IAC3C,wBAAwB;IACxB,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;AACd;;AAEA;IACI,2BAA2B;IAC3B,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;AAC1B","sourcesContent":[".item {\n display: block;\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 0px 0px 5px 0px;\n min-width: 664px;\n margin-bottom: 3px;\n}\n\n.remove {\n position: relative;\n top: 4px;\n right: 0px;\n}\n\n.item-remove {\n /* display: inline-block; */\n float: right;\n /* padding-top: 6px; */\n /* min-width: 140px; */\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 62069: +/*!************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-head/flex-head.component.css?ngResource ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.container { + /* border: 1px solid rgba(248,249,250, 1); */ +} + +.head { + /* background-color: rgba(243,243,243, 1); */ + /* padding-left: 10px; */ + /* padding-right: 10px; */ + padding-top: 0; +} + +.selection { + margin-right: 20px; + margin-bottom: -10px; + margin-top: 2px; + width: 220px; +} + +.selection .mat-form-field-wrapper { + padding-bottom: 15px !important; +} + +.item-set { + display: inline-block; + float: right; + padding-top: 13px; + min-width: 140px; +} + +.panel-color-class { + position: relative; + top: 30px; +} + +.panel-color { + display: inline-block; + padding-top: 10px; + max-width: 60px; + /* border: 1px solid rgba(0,0,0,0.1); */ + height: 20px; + line-height: 12px; + margin-right: 25px; +} + +.option-color { + height: 32px !important; +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-head/flex-head.component.css"],"names":[],"mappings":"AAAA;IACI,4CAA4C;AAChD;;AAEA;IACI,4CAA4C;IAC5C,wBAAwB;IACxB,yBAAyB;IACzB,cAAc;AAClB;;AAEA;IACI,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,YAAY;AAChB;;AAEA;IACI,+BAA+B;AACnC;;AAEA;IACI,qBAAqB;IACrB,YAAY;IACZ,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,kBAAkB;IAClB,SAAS;AACb;;AAEA;IACI,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,uCAAuC;IACvC,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,uBAAuB;AAC3B","sourcesContent":[".container {\n /* border: 1px solid rgba(248,249,250, 1); */\n}\n\n.head {\n /* background-color: rgba(243,243,243, 1); */\n /* padding-left: 10px; */\n /* padding-right: 10px; */\n padding-top: 0;\n}\n\n.selection {\n margin-right: 20px;\n margin-bottom: -10px;\n margin-top: 2px;\n width: 220px;\n}\n\n.selection .mat-form-field-wrapper {\n padding-bottom: 15px !important;\n}\n\n.item-set {\n display: inline-block;\n float: right;\n padding-top: 13px;\n min-width: 140px;\n}\n\n.panel-color-class {\n position: relative;\n top: 30px;\n}\n\n.panel-color {\n display: inline-block;\n padding-top: 10px;\n max-width: 60px;\n /* border: 1px solid rgba(0,0,0,0.1); */\n height: 20px;\n line-height: 12px;\n margin-right: 25px;\n}\n\n.option-color {\n height: 32px !important;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 85727: +/*!**************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-input/flex-input.component.css?ngResource ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.grid-conta { + /* margin-left: 30px; */ + /* max-height: 260px; */ + /* overflow: auto; */ +} + +.item { + display: block; + /* min-height: 54px; */ + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 0px 0px 5px 0px; +} + +.item-alarm { + margin-left: -30px; + width: calc(100% + 30px); +} + +.remove { + position: relative; + top: 4px; + right: 0px; +} + +.item-range { + display: inline-block; + min-width: 320px; + max-width: 320px; + width: 320px; +} + +.item-minmax { + display: inline-block; + width: 100%; +} + +.item-step { + display: inline-block; + width: 100%; + margin-top: 5px; +} + +.item-unit { + display: inline-block; + /* width: 520px; */ +} + +.item-remove { + float: right; + /* padding-top: 6px; */ + /* min-width: 140px; */ +} + +.panel-color-class { + position: relative; + top: 30px; +} + +.panel-color { + display: inline-block; + padding-top: 10px; + max-width: 60px; + /* border: 1px solid rgba(0,0,0,0.1); */ + height: 21px; + line-height: 12px; + margin-right: 25px; +} + +.option-color { + height: 32px !important; +} + +.panel-color-class { + margin-top: 30px !important; +} + +.input-range { + display: inline-block; + max-width: 80px; +} + +.input-range input { + font-size: 15px; + text-align: center; +} + +.input-minmax { + display: inline-block; + max-width: 80px; +} + +.input-minmax input { + font-size: 15px; + text-align: center; +} + +.input-step { + display: inline-block; + max-width: 80px; +} + +.input-step input { + font-size: 15px; + text-align: center; +} + +.input-minmax-cb { + font-size: 15px; +} + +::ng-deep .input-range .input-step .input-minmax .mat-form-field-wrapper { + margin-bottom: -15px !important; +} + +::ng-deep .input-range .input-step .input-minmax .mat-form-field-infix { + padding-top: 1px; + padding-bottom: 5px; +} + +.input-step input { + font-size: 15px; + text-align: center; +} + +.input-slider { + display: inline; + /* max-width: 160px; */ +} + +::ng-deep .input-slider span { + font-size: 14px !important; +} + +.toolbox { + margin-top: 3px; + margin-bottom: 3px; +} + +.toolbox button { + margin-right: 8px; + margin-left: 8px; +} + +.slider-field span { + padding-left: 2px; + text-overflow: clip; + max-width: 125px; + white-space: nowrap; + overflow: hidden; +} + +.slider-field mat-slider { + background-color: #f1f3f4; + height: 30px; +} +`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-input/flex-input.component.css"],"names":[],"mappings":"AAAA;IACI,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB;AACxB;;AAEA;IACI,cAAc;IACd,sBAAsB;IACtB,WAAW;IACX,2CAA2C;IAC3C,wBAAwB;AAC5B;;AAEA;IACI,kBAAkB;IAClB,wBAAwB;AAC5B;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;AACd;;AAEA;IACI,qBAAqB;IACrB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;AAChB;;AAEA;IACI,qBAAqB;IACrB,WAAW;AACf;;AAEA;IACI,qBAAqB;IACrB,WAAW;IACX,eAAe;AACnB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;AACtB;;AAEA;IACI,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;AAC1B;;AAEA;IACI,kBAAkB;IAClB,SAAS;AACb;;AAEA;IACI,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,uCAAuC;IACvC,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,uBAAuB;AAC3B;;AAEA;IACI,2BAA2B;AAC/B;;AAEA;IACI,qBAAqB;IACrB,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,qBAAqB;IACrB,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,qBAAqB;IACrB,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,+BAA+B;AACnC;;AAEA;IACI,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,sBAAsB;AAC1B;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;AACpB;;AAEA;IACI,yBAAyB;IACzB,YAAY;AAChB","sourcesContent":[".grid-conta {\n /* margin-left: 30px; */\n /* max-height: 260px; */\n /* overflow: auto; */\n}\n\n.item {\n display: block;\n /* min-height: 54px; */\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 0px 0px 5px 0px;\n}\n\n.item-alarm {\n margin-left: -30px;\n width: calc(100% + 30px);\n}\n\n.remove {\n position: relative;\n top: 4px;\n right: 0px;\n}\n\n.item-range {\n display: inline-block;\n min-width: 320px;\n max-width: 320px;\n width: 320px;\n}\n\n.item-minmax {\n display: inline-block;\n width: 100%;\n}\n\n.item-step {\n display: inline-block;\n width: 100%;\n margin-top: 5px;\n}\n\n.item-unit {\n display: inline-block;\n /* width: 520px; */\n}\n\n.item-remove {\n float: right;\n /* padding-top: 6px; */\n /* min-width: 140px; */\n}\n\n.panel-color-class {\n position: relative;\n top: 30px;\n}\n\n.panel-color {\n display: inline-block;\n padding-top: 10px;\n max-width: 60px;\n /* border: 1px solid rgba(0,0,0,0.1); */\n height: 21px;\n line-height: 12px;\n margin-right: 25px;\n}\n\n.option-color {\n height: 32px !important;\n}\n\n.panel-color-class {\n margin-top: 30px !important;\n}\n\n.input-range {\n display: inline-block;\n max-width: 80px;\n}\n\n.input-range input {\n font-size: 15px;\n text-align: center;\n}\n\n.input-minmax {\n display: inline-block;\n max-width: 80px;\n}\n\n.input-minmax input {\n font-size: 15px;\n text-align: center;\n}\n\n.input-step {\n display: inline-block;\n max-width: 80px;\n}\n\n.input-step input {\n font-size: 15px;\n text-align: center;\n}\n\n.input-minmax-cb {\n font-size: 15px;\n}\n\n::ng-deep .input-range .input-step .input-minmax .mat-form-field-wrapper {\n margin-bottom: -15px !important;\n}\n\n::ng-deep .input-range .input-step .input-minmax .mat-form-field-infix {\n padding-top: 1px;\n padding-bottom: 5px;\n}\n\n.input-step input {\n font-size: 15px;\n text-align: center;\n}\n\n.input-slider {\n display: inline;\n /* max-width: 160px; */\n}\n\n::ng-deep .input-slider span {\n font-size: 14px !important;\n}\n\n.toolbox {\n margin-top: 3px;\n margin-bottom: 3px;\n}\n\n.toolbox button {\n margin-right: 8px;\n margin-left: 8px;\n}\n\n.slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n max-width: 125px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.slider-field mat-slider {\n background-color: #f1f3f4;\n height: 30px;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 71184: +/*!**************************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variables-mapping/flex-variables-mapping.component.css?ngResource ***! + \**************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 83011: +/*!******************************************************************************!*\ + !*** ./src/app/gauges/shapes/ape-shapes/ape-shapes.component.css?ngResource ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 9489: +/*!**************************************************************************!*\ + !*** ./src/app/gauges/shapes/proc-eng/proc-eng.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 31969: +/*!***************************************************************!*\ + !*** ./src/app/gauges/shapes/shapes.component.css?ngResource ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 73576: +/*!**********************************************************************!*\ + !*** ./src/app/gui-helpers/bitmask/bitmask.component.css?ngResource ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.bitmask-item { + font-size: 13px; + height: 26px !important; + cursor: pointer; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/bitmask/bitmask.component.css"],"names":[],"mappings":"AAAA;IACI,eAAe;IACf,uBAAuB;IACvB,eAAe;AACnB","sourcesContent":[".bitmask-item {\n font-size: 13px;\n height: 26px !important;\n cursor: pointer;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 31123: +/*!************************************************************************************!*\ + !*** ./src/app/gui-helpers/confirm-dialog/confirm-dialog.component.css?ngResource ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 52398: +/*!****************************************************************************************!*\ + !*** ./src/app/gui-helpers/daterange-dialog/daterange-dialog.component.css?ngResource ***! + \****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.container { + background-color: white; +} + +.custom-datapicker { + display: flex; +} + +.action-panel { + float: right; + padding-right: 20px; + margin-bottom: 8px; +} + +.action-panel .btn-cancel { + background-color: white; + color: black; + margin-right: 10px; +} + +::ng-deep .light-dialog-container .mat-dialog-container { + background-color: white !important; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/daterange-dialog/daterange-dialog.component.css"],"names":[],"mappings":"AAAA;IACI,uBAAuB;AAC3B;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY;IACZ,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA;IACI,uBAAuB;IACvB,YAAY;IACZ,kBAAkB;AACtB;;AAEA;IACI,kCAAkC;AACtC","sourcesContent":[".container {\n background-color: white;\n}\n\n.custom-datapicker {\n display: flex;\n}\n\n.action-panel {\n float: right;\n padding-right: 20px;\n margin-bottom: 8px;\n}\n\n.action-panel .btn-cancel {\n background-color: white;\n color: black;\n margin-right: 10px;\n}\n\n::ng-deep .light-dialog-container .mat-dialog-container {\n background-color: white !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 94982: +/*!**************************************************************************!*\ + !*** ./src/app/gui-helpers/edit-name/edit-name.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 65413: +/*!**************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-gauge/ngx-gauge.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.mygauge-container { + z-index: 1; + position: relative; + width: 100%; + height:100%; + padding: 20; +} + +.mygauge-canvas { + margin: 0; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.mygauge-value { + text-align: center; + font-size: 18px; + font-weight: bold; + color: black; + font-family: "Segoe UI Symbol", "Roboto-Regular", "Helvetica Neue", sans-serif !important; + position: absolute; + top: 5px; + left: 0; + right: 0; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/ngx-gauge/ngx-gauge.component.css"],"names":[],"mappings":";AACA;IACI,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA;IACI,SAAS;IACT,kBAAkB;IAClB,QAAQ;IACR,SAAS;IAET,gCAAgC;AACpC;;AAEA;IACI,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,YAAY;IACZ,yFAAyF;IACzF,kBAAkB;IAClB,QAAQ;IACR,OAAO;IACP,QAAQ;AACZ","sourcesContent":["\n.mygauge-container {\n z-index: 1;\n position: relative;\n width: 100%; \n height:100%;\n padding: 20;\n}\n\n.mygauge-canvas {\n margin: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n\n.mygauge-value {\n text-align: center; \n font-size: 18px; \n font-weight: bold;\n color: black; \n font-family: \"Segoe UI Symbol\", \"Roboto-Regular\", \"Helvetica Neue\", sans-serif !important;\n position: absolute; \n top: 5px; \n left: 0; \n right: 0;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 89046: +/*!************************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-nouislider/ngx-nouislider.component.css?ngResource ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.myslider-container { + z-index: 1; + margin: auto; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/ngx-nouislider/ngx-nouislider.component.css"],"names":[],"mappings":"AAAA;IACI,UAAU;IACV,YAAY;AAChB","sourcesContent":[".myslider-container {\n z-index: 1;\n margin: auto;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 13913: +/*!****************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-switch/ngx-switch.component.css?ngResource ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 13969: +/*!**************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-uplot/ngx-uplot.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 8227: +/*!********************************************************************************!*\ + !*** ./src/app/gui-helpers/range-number/range-number.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.range-container { + width: 200px; +} + +.range-type { + display: inline-block; +} + +.range-type-switch { + float: right; +} + +.range-type-switch button { + margin-top: 11px; + line-height: 30px; + height:30px; + width:30px; +} + +.boolean-selection { + width: 157px; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/range-number/range-number.component.css"],"names":[],"mappings":"AAAA;IACI,YAAY;AAChB;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,UAAU;AACd;;AAEA;IACI,YAAY;AAChB","sourcesContent":[".range-container {\n width: 200px;\n}\n\n.range-type {\n display: inline-block;\n}\n\n.range-type-switch {\n float: right;\n}\n\n.range-type-switch button {\n margin-top: 11px;\n line-height: 30px;\n height:30px; \n width:30px;\n}\n\n.boolean-selection {\n width: 157px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 80021: +/*!******************************************************************************!*\ + !*** ./src/app/gui-helpers/sel-options/sel-options.component.css?ngResource ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 54595: +/*!**************************************************************************!*\ + !*** ./src/app/gui-helpers/treetable/treetable.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.container { + overflow: auto; +} + +.item { + width: 100%; + height: 40px; +} +.item:hover { + background-color: rgba(0,0,0,0.1); +} + +.item-text { + width: 500px; + position: relative; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.item-text div { + display: inline-block; + overflow-wrap: break-word; + text-overflow: ellipsis; + /* word-wrap: break-word; */ + white-space: nowrap; +} + +.item-property { + position: relative; + /* left: 400px; */ + width: 400px; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 40px; +} + +.item-info { + position: relative; + /* left: 400px; */ + width: 200px; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 40px; +} + +.item-check { + float: right; + margin-right: 20px; + line-height: 32px; + /* display: inline-block; */ +} + +.item-waiting { + /* -moz-transition: height .5s; + -ms-transition: height .5s; + -o-transition: height .5s; + -webkit-transition: height .5s; + transition: height .5s; */ + display:inline-block; + height: 40; + vertical-align: middle; + /* width: 80%; */ + overflow: hidden; +} + `, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/treetable/treetable.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;AAClB;;AAEA;IACI,WAAW;IACX,YAAY;AAChB;AACA;IACI,iCAAiC;AACrC;;AAEA;IACI,YAAY;IACZ,kBAAkB;IAClB,qBAAqB;IACrB,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,yBAAyB;IACzB,uBAAuB;IACvB,2BAA2B;IAC3B,mBAAmB;AACvB;;AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,qBAAqB;IACrB,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,qBAAqB;IACrB,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,2BAA2B;AAC/B;;AAEA;IACI;;;;6BAIyB;IACzB,oBAAoB;IACpB,UAAU;IACV,sBAAsB;IACtB,gBAAgB;IAChB,gBAAgB;AACpB","sourcesContent":[".container {\n overflow: auto;\n}\n\n.item {\n width: 100%;\n height: 40px;\n}\n.item:hover {\n background-color: rgba(0,0,0,0.1);\n}\n\n.item-text {\n width: 500px;\n position: relative;\n display: inline-block;\n overflow: hidden; \n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.item-text div {\n display: inline-block;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n /* word-wrap: break-word; */\n white-space: nowrap;\n}\n\n.item-property {\n position: relative;\n /* left: 400px; */\n width: 400px;\n display: inline-block;\n overflow: hidden; \n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 40px;\n}\n\n.item-info {\n position: relative;\n /* left: 400px; */\n width: 200px;\n display: inline-block;\n overflow: hidden; \n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 40px;\n}\n\n.item-check {\n float: right;\n margin-right: 20px;\n line-height: 32px;\n /* display: inline-block; */\n}\n\n.item-waiting {\n /* -moz-transition: height .5s;\n -ms-transition: height .5s;\n -o-transition: height .5s;\n -webkit-transition: height .5s;\n transition: height .5s; */\n display:inline-block;\n height: 40;\n vertical-align: middle;\n /* width: 80%; */\n overflow: hidden;\n}\n "],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 49617: +/*!**********************************************************************************!*\ + !*** ./src/app/gui-helpers/webcam-player/webcam-player.component.css?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/*@import "~xgplayer/dist/index.min.css";*/ +.webcam-player-container { + min-width: 600px; + /*min-height: 30px;*/ +} +`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/webcam-player/webcam-player.component.css"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C;IACI,gBAAgB;IAChB,oBAAoB;AACxB","sourcesContent":["/*@import \"~xgplayer/dist/index.min.css\";*/\n.webcam-player-container {\n min-width: 600px;\n /*min-height: 30px;*/\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 4821: +/*!********************************************************!*\ + !*** ./src/app/header/header.component.css?ngResource ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.header-panel { + z-index: 99 !important; + position: fixed; + top: 0px; + left: 0px; + background-color: var(--headerBackground); + color: var(--headerColor); + height: 36px; + width: 200px; +} + +.header-right { + z-index: 99 !important; + position: fixed; + top: 0px; + right: 0px; + background-color: var(--headerBackground); + color: var(--headerColor); + height: 36px; + width: 120px; +} + +.header-help { + float: right; + height: 36px; + width: 36px; + margin-right: 20px; +} + +.header-theme { + float: right; + height: 36px; + width: 36px; + margin-right: 5px; +} + +.main-btn { + height: 34px; + width: 34px; + min-width: unset !important; + padding:unset !important; + line-height: 34px; + margin-left: 5px; + margin-right: 5px; + } + + .main-btn mat-icon { + font-size: 24px; + height: unset; + width: unset; + } + +.header-menu { + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); +} + +.header-icon { + padding: 0 14px; +} + +.menu-separator { + border-top-color: rgba(0,0,0,0.2); +} + +::ng-deep .mat-menu-item { + font-size: 11px; + height: 30px !important; + line-height: unset !important; + }`, "",{"version":3,"sources":["webpack://./src/app/header/header.component.css"],"names":[],"mappings":";AACA;IACI,sBAAsB;IACtB,eAAe;IACf,QAAQ;IACR,SAAS;IACT,yCAAyC;IACzC,yBAAyB;IACzB,YAAY;IACZ,YAAY;AAChB;;AAEA;IACI,sBAAsB;IACtB,eAAe;IACf,QAAQ;IACR,UAAU;IACV,yCAAyC;IACzC,yBAAyB;IACzB,YAAY;IACZ,YAAY;AAChB;;AAEA;IACI,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,kBAAkB;AACtB;;AAEA;IACI,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,iBAAiB;AACrB;;AAEA;IACI,YAAY;IACZ,WAAW;IACX,2BAA2B;IAC3B,wBAAwB;IACxB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;EACnB;;EAEA;IACE,eAAe;IACf,aAAa;IACb,YAAY;EACd;;AAEF;IACI,sGAAsG;AAC1G;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,iCAAiC;AACrC;;AAEA;IACI,eAAe;IACf,uBAAuB;IACvB,6BAA6B;EAC/B","sourcesContent":["\n.header-panel {\n z-index: 99 !important;\n position: fixed;\n top: 0px;\n left: 0px;\n background-color: var(--headerBackground);\n color: var(--headerColor);\n height: 36px;\n width: 200px;\n}\n\n.header-right {\n z-index: 99 !important;\n position: fixed;\n top: 0px;\n right: 0px;\n background-color: var(--headerBackground);\n color: var(--headerColor);\n height: 36px;\n width: 120px;\n}\n\n.header-help {\n float: right;\n height: 36px;\n width: 36px;\n margin-right: 20px;\n}\n\n.header-theme {\n float: right;\n height: 36px;\n width: 36px;\n margin-right: 5px;\n}\n\n.main-btn {\n height: 34px;\n width: 34px;\n min-width: unset !important;\n padding:unset !important;\n line-height: 34px;\n margin-left: 5px;\n margin-right: 5px;\n }\n \n .main-btn mat-icon {\n font-size: 24px;\n height: unset;\n width: unset;\n }\n\n.header-menu {\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); \n}\n\n.header-icon {\n padding: 0 14px;\n}\n\n.menu-separator {\n border-top-color: rgba(0,0,0,0.2);\n}\n\n::ng-deep .mat-menu-item {\n font-size: 11px;\n height: 30px !important;\n line-height: unset !important;\n }"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 88523: +/*!*****************************************************************!*\ + !*** ./src/app/help/tutorial/tutorial.component.css?ngResource ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.tutorial-panel { + width: 460px; + height: 720px; + z-index: 99999 !important; + position: absolute; + right: 10px; + top: 50px; + background-color: rgb(88 88 88); + /* background-color: rgb(250,250,250); */ + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2), + 0 2px 6px 0 rgba(0, 0, 0, 0.188235); /*1px 2px 5px 1px rgba(0,0,0,.26);*/ + border: 0px !important; +} + +.tutorial-header { + height: 36px; + background-color: #212121; + color: #ffffff; + padding-left: 5px; + cursor: move; + line-height: 30px; +} + +.tutorial-title { + padding: 5px 10px 5px 20px; + font-size: 16px; +} + +.tutorial-close { + font-size: 28px; + /* float: right; */ + cursor: pointer; + /* padding-right: 5px; */ + right: 5px; + position: absolute; + top: 0px; +} + +.tutorial-content { + font-size: 13px; +} + +.my-expansion-panel { + margin: 0px; +} + +.header mat-panel-title { + font-size: 16px; + font-weight: 100; +} + +::ng-deep .mat-expansion-panel-body { + padding: unset !important; +}`, "",{"version":3,"sources":["webpack://./src/app/help/tutorial/tutorial.component.css"],"names":[],"mappings":"AAAA;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;IACzB,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,+BAA+B;IAC/B,wCAAwC;IACxC;2CACuC,EAAE,mCAAmC;IAC5E,sBAAsB;AAC1B;;AAEA;IACI,YAAY;IACZ,yBAAyB;IACzB,cAAc;IACd,iBAAiB;IACjB,YAAY;IACZ,iBAAiB;AACrB;;AAEA;IACI,0BAA0B;IAC1B,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IACxB,UAAU;IACV,kBAAkB;IAClB,QAAQ;AACZ;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,yBAAyB;AAC7B","sourcesContent":[".tutorial-panel {\n width: 460px;\n height: 720px;\n z-index: 99999 !important;\n position: absolute;\n right: 10px;\n top: 50px;\n background-color: rgb(88 88 88);\n /* background-color: rgb(250,250,250); */\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2),\n 0 2px 6px 0 rgba(0, 0, 0, 0.188235); /*1px 2px 5px 1px rgba(0,0,0,.26);*/\n border: 0px !important;\n}\n\n.tutorial-header {\n height: 36px;\n background-color: #212121;\n color: #ffffff;\n padding-left: 5px;\n cursor: move;\n line-height: 30px;\n}\n\n.tutorial-title {\n padding: 5px 10px 5px 20px;\n font-size: 16px;\n}\n\n.tutorial-close {\n font-size: 28px;\n /* float: right; */\n cursor: pointer;\n /* padding-right: 5px; */\n right: 5px;\n position: absolute;\n top: 0px;\n}\n\n.tutorial-content {\n font-size: 13px;\n}\n\n.my-expansion-panel {\n margin: 0px;\n}\n\n.header mat-panel-title {\n font-size: 16px;\n font-weight: 100;\n}\n\n::ng-deep .mat-expansion-panel-body {\n padding: unset !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 74929: +/*!********************************************************!*\ + !*** ./src/app/iframe/iframe.component.css?ngResource ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 51778: +/*!**************************************************!*\ + !*** ./src/app/lab/lab.component.css?ngResource ***! + \**************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.lab-body { + display: table; + margin: 0 auto; +} +.box_shadow { + box-shadow: 0px 2px 6px -1px #888888; + filter: + drop-shadow( 3px 3px 2px rgba(0,0,0,.7) ); +} + +.fab-btn { + position: absolute; + right: 10px; + bottom: 10px; +}`, "",{"version":3,"sources":["webpack://./src/app/lab/lab.component.css"],"names":[],"mappings":";AACA;IACI,cAAc;IACd,cAAc;AAClB;AACA;IAGI,oCAAoC;IAG9B;6CACmC;AAC7C;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,YAAY;AAChB","sourcesContent":["\n.lab-body {\n display: table;\n margin: 0 auto;\n}\n.box_shadow {\n -webkit-box-shadow: 0px 2px 6px -1px #888888;\n -moz-box-shadow: 0px 2px 6px -1px #888888;\n box-shadow: 0px 2px 6px -1px #888888;\n -webkit-filter: \n drop-shadow( 3px 3px 2px rgba(0,0,0,.7) );\n filter: \n drop-shadow( 3px 3px 2px rgba(0,0,0,.7) );\n}\n\n.fab-btn {\n position: absolute;\n right: 10px;\n bottom: 10px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 61049: +/*!******************************************************!*\ + !*** ./src/app/login/login.component.css?ngResource ***! + \******************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.error { + display: block; + font-size: 12px; +} + +.message-error { + width: 100%; + /* background-color: red;; */ + color: red; + padding-bottom: 20px; + font-size: 13px; +} + +.show-password { + bottom: 2px; + right: 0px; + position: absolute; +} +`, "",{"version":3,"sources":["webpack://./src/app/login/login.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,eAAe;AACnB;;AAEA;IACI,WAAW;IACX,4BAA4B;IAC5B,UAAU;IACV,oBAAoB;IACpB,eAAe;AACnB;;AAEA;IACI,WAAW;IACX,UAAU;IACV,kBAAkB;AACtB","sourcesContent":[".error {\n display: block;\n font-size: 12px;\n}\n\n.message-error {\n width: 100%;\n /* background-color: red;; */\n color: red;\n padding-bottom: 20px;\n font-size: 13px;\n}\n\n.show-password {\n bottom: 2px;\n right: 0px;\n position: absolute;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 65427: +/*!**************************************************************!*\ + !*** ./src/app/logs-view/logs-view.component.css?ngResource ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + /* z-index: 9999 !important; */ + /* position: fixed; */ + /* top: 0px; */ + /* left: 0px; */ + background-color: var(--headerBackground); + color: var(--headerColor); + height: 36px; + width: 100%; + text-align: center; + line-height: 32px; + /* border-top: 1px solid var(--headerBorder); */ + border-bottom: 1px solid var(--headerBorder); +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); + min-width: 930px; +} + +.text-content { + overflow-y: auto; + overflow-x: auto; + padding-left: 10px; + color: rgb(172, 172, 172); + font-family: "Segoe UI Symbol", "Roboto-Regular", "Helvetica Neue", sans-serif; + font-size: 12px; +} + +.mat-row { + min-height: 34px; + height: 34px; + border-bottom-color: rgba(0, 0, 0, 0.06); +} + +.mat-cell { + font-size: 13px; +} + +.mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +.mat-header-cell { + font-size: 13px; +} + +.my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} + +.my-header-filter ::ng-deep .mat-sort-header-arrow { + /* color: white; */ + top: -12px; + right: 20px; +} + +.my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + /* color: white; */ + padding: 3px 1px 3px 2px; + border-radius: 2px; + border: 1px solid var(--formInputBackground); + background-color: var(--formInputBackground); + color: var(--formInputColor); +} + +.my-header-filter-input:focus { + padding: 3px 1px 3px 2px; + border: 1px solid var(--formInputBorderFocus); + background-color: var(--formInputBackgroundFocus); +} + +.mat-column-ontime { + overflow: visible; + flex: 0 0 160px; +} + +.mat-column-type { + flex: 0 0 100px; +} + +.mat-column-source { + flex: 1 1 300px; +} + +.mat-column-text { + flex: 3 1 400px; +} + +.logs-selector { + position: absolute; + top: 50px; + right: 40px; + z-index: 999; + padding: 5px 7px; + background-color: var(--toolboxBackground); + color: var(--toolboxColor); + box-shadow: 0px 1px 3px 0px #000; +} +`, "",{"version":3,"sources":["webpack://./src/app/logs-view/logs-view.component.css"],"names":[],"mappings":"AAAA;IACI,8BAA8B;IAC9B,qBAAqB;IACrB,cAAc;IACd,eAAe;IACf,yCAAyC;IACzC,yBAAyB;IACzB,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,+CAA+C;IAC/C,4CAA4C;AAChD;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,4CAA4C;IAC5C,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,8EAA8E;IAC9E,eAAe;AACnB;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,wCAAwC;AAC5C;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,MAAM;IACN,gBAAgB;IAChB,UAAU;AACd;AACA;IACI,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,kBAAkB;IAClB,UAAU;IACV,WAAW;AACf;;AAEA;IACI,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;IAClB,4CAA4C;IAC5C,4CAA4C;IAC5C,4BAA4B;AAChC;;AAEA;IACI,wBAAwB;IACxB,6CAA6C;IAC7C,iDAAiD;AACrD;;AAEA;IACI,iBAAiB;IACjB,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,0CAA0C;IAC1C,0BAA0B;IAC1B,gCAAgC;AACpC","sourcesContent":[".header-panel {\n /* z-index: 9999 !important; */\n /* position: fixed; */\n /* top: 0px; */\n /* left: 0px; */\n background-color: var(--headerBackground);\n color: var(--headerColor);\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 32px;\n /* border-top: 1px solid var(--headerBorder); */\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n min-width: 930px;\n}\n\n.text-content {\n overflow-y: auto;\n overflow-x: auto;\n padding-left: 10px;\n color: rgb(172, 172, 172);\n font-family: \"Segoe UI Symbol\", \"Roboto-Regular\", \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n}\n\n.mat-row {\n min-height: 34px;\n height: 34px;\n border-bottom-color: rgba(0, 0, 0, 0.06);\n}\n\n.mat-cell {\n font-size: 13px;\n}\n\n.mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n.mat-header-cell {\n font-size: 13px;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-arrow {\n /* color: white; */\n top: -12px;\n right: 20px;\n}\n\n.my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n /* color: white; */\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n border: 1px solid var(--formInputBackground);\n background-color: var(--formInputBackground);\n color: var(--formInputColor);\n}\n\n.my-header-filter-input:focus {\n padding: 3px 1px 3px 2px;\n border: 1px solid var(--formInputBorderFocus);\n background-color: var(--formInputBackgroundFocus);\n}\n\n.mat-column-ontime {\n overflow: visible;\n flex: 0 0 160px;\n}\n\n.mat-column-type {\n flex: 0 0 100px;\n}\n\n.mat-column-source {\n flex: 1 1 300px;\n}\n\n.mat-column-text {\n flex: 3 1 400px;\n}\n\n.logs-selector {\n position: absolute;\n top: 50px;\n right: 40px;\n z-index: 999;\n padding: 5px 7px;\n background-color: var(--toolboxBackground);\n color: var(--toolboxColor);\n box-shadow: 0px 1px 3px 0px #000;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 9565: +/*!********************************************************************!*\ + !*** ./src/app/odbc-browser/odbc-browser.component.css?ngResource ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/* Container & Layout */ +.odbc-browser-container { + display: flex; + flex-direction: column; + height: 100%; +} + +.dialog-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0; + flex-shrink: 0; + position: relative; +} + +.dialog-title { + margin: 0; + padding: 16px 24px; + font-size: 20px; + font-weight: 500; + flex: 1; +} + +.header-actions { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + padding-right: 8px; +} + +.header-actions button { + margin-top: -12px; +} + +.dialog-close-btn { + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; +} + +.dialog-content-tabs { + flex: 1; + overflow: hidden; + min-height: 0; + position: relative; +} + +.dialog-action { + padding: 16px; + display: flex !important; + justify-content: flex-end; + gap: 8px; + flex-shrink: 0; + border-top: 1px solid rgba(0, 0, 0, 0.12); + margin-top: auto; +} + +/* Help Dialog */ +.help-dialog { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgb(66, 66, 66); + border: 1px solid rgba(0, 0, 0, 0.12); + display: flex; + flex-direction: column; + z-index: 1000; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); +} + +.help-dialog-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + flex-shrink: 0; +} + +.help-dialog-header h2 { + margin: 0; + font-size: 18px; + font-weight: 500; +} + +.help-close-btn { + flex-shrink: 0; +} + +.help-dialog-content { + flex: 1; + overflow-y: auto; + padding: 16px; +} + +.syntax-item { + margin-bottom: 24px; + border: 1px solid #e0e0e0; + border-radius: 4px; + padding: 12px; +} + +.syntax-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; +} + +.syntax-header h3 { + margin: 0; + font-size: 16px; + font-weight: 500; +} + +.syntax-actions { + display: flex; + gap: 4px; +} + +.syntax-description { + margin: 8px 0; + font-size: 13px; + font-style: italic; +} + +.syntax-code { + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 3px; + padding: 8px; + margin: 8px 0 0 0; + font-size: 12px; + font-family: 'Courier New', monospace; + white-space: pre-wrap; + word-wrap: break-word; + overflow-x: auto; +} + +/* Device Selector */ +.device-selector { + display: flex; + align-items: center; + gap: 12px; + margin: 16px; + flex-shrink: 0; +} + +.device-selector .label { + font-weight: 500; + min-width: 150px; +} + +.device-select { + flex: 1; + max-width: 300px; +} + +/* Error Banner */ +.error-banner { + display: flex; + align-items: center; + gap: 12px; + padding: 12px 16px; + margin: 8px 16px; + border-radius: 2px; + background-color: rgba(244, 67, 54, 0.1); + color: #f44336; + flex-shrink: 0; +} + +.error-banner mat-icon { + flex-shrink: 0; +} + +/* Success Banner */ +.success-banner { + display: flex; + align-items: center; + gap: 12px; + padding: 12px 16px; + margin: 8px 16px; + border-radius: 2px; + background-color: rgba(76, 175, 80, 0.1); + color: #4caf50; + flex-shrink: 0; +} + +.success-banner mat-icon { + flex-shrink: 0; +} + +/* Tabs */ +.browser-tabs { + margin: 0 16px 16px 16px; + height: 100%; +} + +.browser-tabs ::ng-deep .mat-mdc-tab-body-content { + display: flex; + flex-direction: column; + height: 100%; +} + +.tab-content { + padding: 16px; + flex: 1; + overflow-y: auto; + min-height: 0; +} + +/* Sections */ +.section { + margin-bottom: 60px; + padding: 16px; + background-color: rgba(255, 255, 255, 0.05); + border-radius: 6px; + position: relative; + border-left: 6px solid #64b5f6; + border: 1px solid rgba(255, 255, 255, 0.08); + border-left: 6px solid #64b5f6; +} + +.section:not(:last-child)::after { + content: '⬇'; + display: block; + text-align: center; + color: #64b5f6; + font-size: 32px; + margin: 30px auto -60px; + opacity: 0.7; + line-height: 1; + position: relative; + z-index: 10; + padding: 0; +} + +.section-title { + font-size: 13px; + font-weight: 700; + margin: 0 0 12px 0; + color: #64b5f6; + text-transform: uppercase; + letter-spacing: 1.5px; +} + +/* Query Builder Section Colors */ +.query-type-section { + border-left-color: #1976d2; +} + +.query-type-section .section-title { + color: #1976d2; +} + +.select-section { + border-left-color: #673ab7; +} + +.select-section .section-title { + color: #673ab7; +} + +.join-section { + border-left-color: #1976d2; +} + +.join-section .section-title { + color: #1976d2; +} + +.join-section .joins-container { + background-color: rgba(25, 118, 210, 0.05) !important; +} + +.join-section .join-item { + border-color: #1976d2 !important; +} + +.where-section { + border-left-color: #4caf50; +} + +.where-section .section-title { + color: #4caf50; +} + +.where-section .conditions-builder { + background-color: rgba(76, 175, 80, 0.05) !important; +} + +.where-section .condition-item { + border-color: #4caf50 !important; +} + +.group-section { + border-left-color: #9c27b0; +} + +.group-section .section-title { + color: #9c27b0; +} + +.having-section { + border-left-color: #e91e63; +} + +.having-section .section-title { + color: #e91e63; +} + +.having-section .having-container { + background-color: rgba(233, 30, 99, 0.05) !important; +} + +.having-section .having-item { + border-color: #e91e63 !important; +} + +.order-section { + border-left-color: #ff9800; +} + +.order-section .section-title { + color: #ff9800; +} + +.order-section .order-by-container { + background-color: rgba(255, 152, 0, 0.05) !important; +} + +.order-section .order-by-item { + border-color: #ff9800 !important; +} + +.insert-section { + border-left-color: #009688; +} + +.insert-section .section-title { + color: #009688; +} + +.insert-section .insert-rows-container { + background-color: rgba(0, 150, 136, 0.05) !important; +} + +.insert-section .insert-row { + border-color: #009688 !important; +} + +.update-section { + border-left-color: #3f51b5; +} + +.update-section .section-title { + color: #3f51b5; +} + +.update-section .update-values-container { + background-color: rgba(63, 81, 181, 0.05) !important; +} + +.update-section .update-value-item { + border-color: #3f51b5 !important; +} + +.subsection-title { + font-size: 13px; + font-weight: 500; + margin: 12px 0 8px 0; +} + +/* Lists */ +.table-selection-wrapper, +.column-selection-wrapper { + max-height: 300px; + overflow-y: auto; +} + +.selection-table { + width: 100%; + border-collapse: collapse; + font-size: 14px; + table-layout: auto; +} + +.selection-table tbody tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + cursor: pointer; + display: table-row; +} + +.selection-table tbody tr:hover { + background-color: rgba(0, 0, 0, 0.04); +} + +.selection-table tbody tr.selected { + background-color: rgba(0, 0, 0, 0.08); +} + +.selection-table td { + padding: 8px; + vertical-align: middle; + display: table-cell; +} + +.checkbox-cell { + width: 48px; + text-align: center; + padding: 8px 4px; + vertical-align: middle; + white-space: nowrap; +} + +.content-cell { + display: table-cell; + padding: 8px; + vertical-align: middle; +} + +.content-cell > * { + display: inline-block; + vertical-align: middle; +} + +.column-type { + margin-left: 8px; + opacity: 0.7; + font-size: 12px; +} + +.no-items { + padding: 24px 16px; + text-align: center; + opacity: 0.6; + font-size: 13px; +} + +/* Query Preview */ +.query-preview { + display: flex; + align-items: center; + gap: 8px; + padding: 8px; + border-radius: 2px; + font-family: 'Courier New', monospace; + font-size: 12px; + overflow-x: auto; + border: 1px solid rgba(0, 0, 0, 0.12); +} + +.query-preview code { + flex: 1; + white-space: nowrap; +} + +.copy-btn { + flex-shrink: 0; +} + +/* Data Viewer */ +.viewer-controls { + display: flex; + align-items: flex-end; + gap: 12px; + margin-bottom: 12px; +} + +.control-group { + display: flex; + flex-direction: column; + gap: 4px; +} + +.control-group label { + font-size: 12px; + font-weight: 500; +} + +.row-limit-field { + width: 150px; +} + +.data-info { + padding: 8px; + margin-bottom: 8px; + font-size: 13px; + opacity: 0.8; +} + +.table-scroll { + overflow-x: auto; + border-radius: 2px; +} + +.data-table { + width: 100%; + border-collapse: collapse; + font-size: 12px; +} + +.data-table th { + background-color: rgba(0, 0, 0, 0.12); + padding: 8px; + text-align: left; + font-weight: 500; +} + +.data-table td { + padding: 8px; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); +} + +.data-table tbody tr:hover { + background-color: rgba(0, 0, 0, 0.04); +} + +/* SQL Editor */ +.editor-section { + margin-bottom: 12px; +} + +.sql-editor { + width: 100%; + min-height: 150px; + padding: 8px; + font-family: 'Courier New', monospace; + font-size: 12px; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 2px; + resize: vertical; +} + +.sql-editor:focus { + outline: none; + border-color: #3f51b5; +} + +.editor-controls { + display: flex; + gap: 8px; + margin-top: 8px; +} + +.error-container { + display: flex; + align-items: flex-start; + gap: 8px; + padding: 8px; + border-radius: 2px; + background-color: rgba(244, 67, 54, 0.1); + color: #f44336; + margin-bottom: 12px; +} + +.error-container mat-icon { + flex-shrink: 0; +} + +.error-text { + font-size: 12px; +} + +.results-section { + margin-top: 12px; +} + +/* Create Table */ +.create-table-section { + max-width: 500px; +} + +.full-width { + width: 100% !important; + margin-bottom: 8px; +} + +.columns-definition { + margin-bottom: 12px; +} + +.column-row { + display: flex; + gap: 8px; + align-items: center; + margin-bottom: 8px; +} + +.column-name { + flex: 1; +} + +.column-type { + width: 120px; +} + +.nullable-check { + flex-shrink: 0; +} + +.remove-btn { + flex-shrink: 0; +} + +.add-column-btn { + margin-bottom: 8px; +} + +.create-table-controls { + display: flex; + gap: 8px; + margin-top: 12px; +} + +/* Loading */ +.loading-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 8px; + padding: 32px 16px; +} + +/* No Device */ +.no-device-message { + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + padding: 48px 24px; + text-align: center; + opacity: 0.6; +} + +.no-device-message mat-icon { + font-size: 32px; + width: 32px; + height: 32px; +} + +.query-preview { + border: 1px solid #ddd; + border-radius: 4px; + padding: 12px; + font-family: 'Courier New', monospace; + font-size: 14px; + overflow-x: auto; +} + +mat-selection-list { + max-height: 200px; + overflow-y: auto; + border: 1px solid #ddd; + border-radius: 4px; +} + +mat-list-option { + height: 48px !important; +} + +/* Action Buttons in Table List */ +.action-cell { + display: table-cell; + vertical-align: middle; + padding: 0 8px !important; + white-space: nowrap; + text-align: right; + width: 100px; +} + +.action-cell button { + height: 40px; + width: 40px; + margin: 0; + display: inline-block; + vertical-align: middle; +} + +.edit-btn, .delete-btn { + color: var(--primary, #1976d2); +} + +.delete-btn { + color: var(--warn, #d32f2f); +} + +/* Query Preview Section */ +.query-preview-section { + padding: 16px; + display: flex; + flex-direction: column; + gap: 16px; +} + +.query-display { + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 4px; + padding: 12px; + background-color: rgba(0, 0, 0, 0.02); + max-height: 300px; + overflow: auto; +} + +.query-display pre { + margin: 0; + font-family: 'Courier New', monospace; + font-size: 13px; + white-space: pre-wrap; + word-break: break-word; + line-height: 1.5; +} + +.query-actions { + display: flex; + gap: 12px; + justify-content: flex-end; + padding: 12px; + border-top: 1px solid rgba(0, 0, 0, 0.12); +} + +.query-actions button { + display: flex; + align-items: center; + gap: 8px; +} + +/* Delete Confirmation Modal */ +.delete-confirmation-modal { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} + +.modal-content { + background: white; + border-radius: 8px; + padding: 32px; + max-width: 400px; + text-align: center; + box-shadow: 0 5px 25px rgba(0, 0, 0, 0.2); +} + +.warning-icon { + font-size: 48px; + width: 48px; + height: 48px; + color: #ff9800; + margin: 0 auto 16px; +} + +.modal-content h2 { + margin: 16px 0 12px 0; + font-size: 20px; +} + +.modal-content p { + margin: 8px 0; + color: rgba(0, 0, 0, 0.7); + line-height: 1.5; +} + +.warning-text { + color: #d32f2f; + font-weight: 500; + margin-top: 16px !important; +} + +.modal-actions { + display: flex; + gap: 12px; + justify-content: center; + margin-top: 24px; +} + +.modal-actions button { + min-width: 120px; +} + +/* Column Row with Move Buttons */ +.column-row { + display: flex; + gap: 8px; + align-items: center; + margin-bottom: 12px; +} + +.column-row button[matTooltip] { + flex-shrink: 0; +} + +/* Edit Table Title */ +.create-table-section h3 { + color: var(--primary, #1976d2); +} + +/* Foreign Key Section */ +.foreign-key-section { + margin-top: 24px; + padding: 16px; + background-color: rgba(25, 118, 210, 0.03); + border-left: 4px solid #1976d2; + border-radius: 4px; +} + +.foreign-key-section h4 { + color: #1976d2; + margin: 0 0 12px 0; + font-size: 14px; + font-weight: 500; +} + +.foreign-key-controls { + display: grid; + grid-template-columns: 1fr 1.2fr 1fr auto auto; + gap: 12px; + align-items: flex-end; +} + +.fk-column-select { + min-width: 120px; +} + +.fk-table-select { + min-width: 150px; +} + +.create-table-controls { + display: flex; + gap: 8px; + justify-content: flex-end; + margin-top: 24px; + padding-top: 16px; + border-top: 1px solid rgba(0, 0, 0, 0.12); +} + +/* Primary Key Indicator */ +.pk-indicator { + color: var(--warn, #d32f2f); + font-size: 20px; + width: 24px; + height: 24px; + flex-shrink: 0; + margin: 8px 4px 0 0; +} + +.fk-indicator { + color: #1976d2; + font-size: 20px; + width: 24px; + height: 24px; + flex-shrink: 0; + margin: 8px 4px 0 0; +} + +.pk-placeholder { + width: 24px; + height: 24px; + flex-shrink: 0; + margin: 8px 4px 0 0; + visibility: hidden; +} + +.column-row.is-primary-key { + background-color: rgba(211, 47, 47, 0.05); + padding: 8px; + border-radius: 4px; +} + +.column-row.has-foreign-key { + background-color: rgba(25, 118, 210, 0.05); + padding: 8px; + border-radius: 4px; +} + +.info-badge { + display: inline-block; + background-color: #e3f2fd; + color: #1976d2; + padding: 4px 12px; + border-radius: 16px; + font-size: 12px; + font-weight: 500; + margin-left: 16px; +} + + +/* INSERT/UPDATE Containers */ +.insert-rows-container { + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + background-color: transparent; + border-radius: 0; +} + +.update-values-container { + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + background-color: transparent; + border-radius: 0; +} + +.insert-row { + display: grid; + grid-template-columns: 1fr 1fr 1fr auto; + gap: 8px; + align-items: center; + padding: 12px; + background-color: transparent; + border: 1px solid rgba(0, 150, 136, 0.3); + border-radius: 4px; +} + +.update-value-item { + display: grid; + grid-template-columns: 1fr 1fr 1fr auto; + gap: 8px; + align-items: center; + padding: 12px; + background-color: transparent; + border: 1px solid rgba(63, 81, 181, 0.3); + border-radius: 4px; +} + +.insert-field, +.update-field { + width: 100%; +} + +/* Add Button */ +.add-button { + margin-top: 8px; + margin-bottom: 8px; +} + +/* Query Display Section */ +.query-display { + background-color: transparent; + border: 1px solid rgba(255, 255, 255, 0.12); + border-radius: 6px; + padding: 16px; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace; + font-size: 13px; + font-weight: 400; + overflow-x: auto; + white-space: pre-wrap; + word-break: break-word; + color: rgba(255, 255, 255, 0.87); + line-height: 1.6; + box-shadow: none; +} + +/* Query Actions */ +.query-actions { + display: flex; + gap: 8px; + margin-top: 12px; + justify-content: flex-end; +} + +.query-actions button { + margin: 0; +} + +/* Section-Specific Color Themes */ +.query-type-section .section-title { + color: #64b5f6; +} + +.query-type-section { + background-color: rgba(100, 181, 246, 0.05); + border-left-color: #64b5f6; +} + +.select-section .section-title { + color: #64b5f6; +} + +.select-section { + background-color: rgba(100, 181, 246, 0.05); + border-left-color: #64b5f6; +} + +.join-section .section-title { + color: #64b5f6; +} + +.join-section { + background-color: rgba(100, 181, 246, 0.05); + border-left-color: #64b5f6; +} + +.join-section .joins-container { + background-color: transparent; + border: none; +} + +.join-item { + background-color: transparent; +} + +.where-section .section-title { + color: #81c784; +} + +.where-section { + background-color: rgba(129, 199, 132, 0.05); + border-left-color: #81c784; +} + +.where-section .conditions-builder { + background-color: transparent; + border: none; +} + +.condition-item { + background-color: transparent; +} + +.group-section .section-title { + color: #ba68c8; +} + +.group-section { + background-color: rgba(186, 104, 200, 0.05); + border-left-color: #ba68c8; +} + +.having-section .section-title { + color: #f06292; +} + +.having-section { + background-color: rgba(240, 98, 146, 0.05); + border-left-color: #f06292; +} + +.having-section .conditions-builder { + background-color: transparent; + border: none; +} + +.having-item { + background-color: transparent; +} + +.order-section .section-title { + color: #ffb74d; +} + +.order-section { + background-color: rgba(255, 183, 77, 0.05); + border-left-color: #ffb74d; +} + +.order-section .order-by-container { + background-color: transparent; + border: none; +} + +.order-by-item { + background-color: transparent; +} + +.insert-section .section-title { + color: #4db8a8; +} + +.insert-section { + background-color: rgba(77, 184, 168, 0.05); + border-left-color: #4db8a8; +} + +.insert-section .insert-rows-container { + background-color: transparent; + border: none; +} + +.insert-row { + background-color: transparent; +} + +.update-section .section-title { + color: #7986cb; +} + +.update-section { + background-color: rgba(121, 134, 203, 0.05); + border-left-color: #7986cb; +} + +.update-section .update-values-container { + background-color: transparent; + border: none; +} + +.update-value-item { + background-color: transparent; +} + +.query-display-section .section-title { + color: #90a4ae; +} + +.query-display-section { + background-color: rgba(144, 164, 174, 0.05); + border-left-color: #90a4ae; +} + +/*=========================================== + QUERY BUILDER STYLES - CONSOLIDATED +===========================================*/ + +/* Query Builder Tab Container */ +.query-builder-tab { + padding: 16px; +} + +/* Query Type Buttons */ +.query-type-buttons { + display: flex; + gap: 8px; + margin-bottom: 16px; + flex-wrap: wrap; +} + +.query-type-buttons button { + min-width: 100px; +} + +.query-type-buttons button.active { + background-color: #1976d2; + color: white; +} + +.query-type-buttons button.active:hover { + background-color: #1565c0; +} + +/* Column Selection Styles */ +.column-selection { + display: flex; + flex-direction: column; + gap: 8px; +} + +.column-checkboxes { + display: flex; + flex-direction: column; + gap: 8px; + padding: 8px 0; +} + +.column-checkboxes mat-checkbox { + display: flex; + align-items: center; +} + +.column-type { + font-size: 11px; + opacity: 0.7; + margin-left: 8px; + font-style: italic; +} + +.column-row { + display: flex; + align-items: center; + gap: 8px; +} + +.distinct-checkbox { + margin-left: 16px; +} + +.aggregate-field { + max-width: 150px; + margin-left: auto; +} + +/* JOINs Builder Styles */ +.joins-container { + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + background-color: transparent; + border-radius: 0; +} + +.join-item { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr auto; + gap: 8px; + align-items: center; + padding: 12px; + background-color: transparent; + border: 1px solid rgba(25, 118, 210, 0.3); + border-radius: 4px; +} + +.join-field { + width: 100%; +} + +/* WHERE Conditions Builder Styles */ +.conditions-builder { + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + background-color: transparent; + border-radius: 0; +} + +.condition-item { + display: grid; + grid-template-columns: 1fr 1fr 1fr auto; + gap: 8px; + align-items: center; + padding: 12px; + background-color: transparent; + border: 1px solid rgba(76, 175, 80, 0.3); + border-radius: 4px; +} + +.condition-field { + width: 100%; +} + +/* HAVING Conditions Builder Styles */ +.having-container { + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + background-color: transparent; + border-radius: 0; +} + +.having-item { + display: grid; + grid-template-columns: 1fr 1fr 1fr auto; + gap: 8px; + align-items: center; + padding: 12px; + background-color: transparent; + border: 1px solid rgba(233, 30, 99, 0.3); + border-radius: 4px; +} + +.having-field { + width: 100%; +} + +/* ORDER BY Container Styles */ +.order-by-container { + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + background-color: transparent; + border-radius: 0; +} + +.order-by-item { + display: grid; + grid-template-columns: 1.5fr 1fr auto; + gap: 8px; + align-items: center; + padding: 12px; + background-color: transparent; + border: 1px solid rgba(255, 152, 0, 0.3); + border-radius: 4px; +} + +.order-field { + width: 100%; +} + +/* LIMIT / OFFSET Row */ +.limit-offset-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; +} + +.limit-field { + width: 100%; +} + +/* Responsive adjustments */ +@media (max-width: 1200px) { + .join-item { + grid-template-columns: 1fr 1fr auto; + } + + .condition-item, + .having-item { + grid-template-columns: 1fr 1fr auto; + } +} + +@media (max-width: 768px) { + .join-item, + .condition-item, + .having-item, + .order-by-item, + .insert-row, + .update-value-item { + grid-template-columns: 1fr; + } + + .limit-offset-row { + grid-template-columns: 1fr; + } + + .column-row { + flex-direction: column; + align-items: flex-start; + } + + .aggregate-field { + width: 100%; + margin-left: 0; + } +} +`, "",{"version":3,"sources":["webpack://./src/app/odbc-browser/odbc-browser.component.css"],"names":[],"mappings":"AAAA,uBAAuB;AACvB;IACI,aAAa;IACb,sBAAsB;IACtB,YAAY;AAChB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,UAAU;IACV,cAAc;IACd,kBAAkB;AACtB;;AAEA;IACI,SAAS;IACT,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,OAAO;AACX;;AAEA;IACI,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,QAAQ;IACR,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,aAAa;IACb,mBAAmB;IACnB,uBAAuB;AAC3B;;AAEA;IACI,OAAO;IACP,gBAAgB;IAChB,aAAa;IACb,kBAAkB;AACtB;;AAEA;IACI,aAAa;IACb,wBAAwB;IACxB,yBAAyB;IACzB,QAAQ;IACR,cAAc;IACd,yCAAyC;IACzC,gBAAgB;AACpB;;AAEA,gBAAgB;AAChB;IACI,kBAAkB;IAClB,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;IACT,2BAA2B;IAC3B,qCAAqC;IACrC,aAAa;IACb,sBAAsB;IACtB,aAAa;IACb,wCAAwC;AAC5C;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,aAAa;IACb,4CAA4C;IAC5C,cAAc;AAClB;;AAEA;IACI,SAAS;IACT,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,OAAO;IACP,gBAAgB;IAChB,aAAa;AACjB;;AAEA;IACI,mBAAmB;IACnB,yBAAyB;IACzB,kBAAkB;IAClB,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA;IACI,SAAS;IACT,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,QAAQ;AACZ;;AAEA;IACI,aAAa;IACb,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,qCAAqC;IACrC,kBAAkB;IAClB,YAAY;IACZ,iBAAiB;IACjB,eAAe;IACf,qCAAqC;IACrC,qBAAqB;IACrB,qBAAqB;IACrB,gBAAgB;AACpB;;AAEA,oBAAoB;AACpB;IACI,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,YAAY;IACZ,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,OAAO;IACP,gBAAgB;AACpB;;AAEA,iBAAiB;AACjB;IACI,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,wCAAwC;IACxC,cAAc;IACd,cAAc;AAClB;;AAEA;IACI,cAAc;AAClB;;AAEA,mBAAmB;AACnB;IACI,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,wCAAwC;IACxC,cAAc;IACd,cAAc;AAClB;;AAEA;IACI,cAAc;AAClB;;AAEA,SAAS;AACT;IACI,wBAAwB;IACxB,YAAY;AAChB;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,YAAY;AAChB;;AAEA;IACI,aAAa;IACb,OAAO;IACP,gBAAgB;IAChB,aAAa;AACjB;;AAEA,aAAa;AACb;IACI,mBAAmB;IACnB,aAAa;IACb,2CAA2C;IAC3C,kBAAkB;IAClB,kBAAkB;IAClB,8BAA8B;IAC9B,2CAA2C;IAC3C,8BAA8B;AAClC;;AAEA;IACI,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,uBAAuB;IACvB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,UAAU;AACd;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,yBAAyB;IACzB,qBAAqB;AACzB;;AAEA,iCAAiC;AACjC;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,qDAAqD;AACzD;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,oDAAoD;AACxD;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,oDAAoD;AACxD;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,oDAAoD;AACxD;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,oDAAoD;AACxD;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,oDAAoD;AACxD;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,oBAAoB;AACxB;;AAEA,UAAU;AACV;;IAEI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,WAAW;IACX,yBAAyB;IACzB,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,4CAA4C;IAC5C,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,qCAAqC;AACzC;;AAEA;IACI,qCAAqC;AACzC;;AAEA;IACI,YAAY;IACZ,sBAAsB;IACtB,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,kBAAkB;IAClB,gBAAgB;IAChB,sBAAsB;IACtB,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;IACnB,YAAY;IACZ,sBAAsB;AAC1B;;AAEA;IACI,qBAAqB;IACrB,sBAAsB;AAC1B;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,eAAe;AACnB;;AAEA;IACI,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,eAAe;AACnB;;AAEA,kBAAkB;AAClB;IACI,aAAa;IACb,mBAAmB;IACnB,QAAQ;IACR,YAAY;IACZ,kBAAkB;IAClB,qCAAqC;IACrC,eAAe;IACf,gBAAgB;IAChB,qCAAqC;AACzC;;AAEA;IACI,OAAO;IACP,mBAAmB;AACvB;;AAEA;IACI,cAAc;AAClB;;AAEA,gBAAgB;AAChB;IACI,aAAa;IACb,qBAAqB;IACrB,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,QAAQ;AACZ;;AAEA;IACI,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,YAAY;AAChB;;AAEA;IACI,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,WAAW;IACX,yBAAyB;IACzB,eAAe;AACnB;;AAEA;IACI,qCAAqC;IACrC,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,YAAY;IACZ,4CAA4C;AAChD;;AAEA;IACI,qCAAqC;AACzC;;AAEA,eAAe;AACf;IACI,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,qCAAqC;IACrC,eAAe;IACf,qCAAqC;IACrC,kBAAkB;IAClB,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,qBAAqB;AACzB;;AAEA;IACI,aAAa;IACb,QAAQ;IACR,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,uBAAuB;IACvB,QAAQ;IACR,YAAY;IACZ,kBAAkB;IAClB,wCAAwC;IACxC,cAAc;IACd,mBAAmB;AACvB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,gBAAgB;AACpB;;AAEA,iBAAiB;AACjB;IACI,gBAAgB;AACpB;;AAEA;IACI,sBAAsB;IACtB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA;IACI,OAAO;AACX;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,aAAa;IACb,QAAQ;IACR,gBAAgB;AACpB;;AAEA,YAAY;AACZ;IACI,aAAa;IACb,sBAAsB;IACtB,mBAAmB;IACnB,uBAAuB;IACvB,QAAQ;IACR,kBAAkB;AACtB;;AAEA,cAAc;AACd;IACI,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,SAAS;IACT,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;AAChB;;AAEA;IACI,eAAe;IACf,WAAW;IACX,YAAY;AAChB;;AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,aAAa;IACb,qCAAqC;IACrC,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;AACtB;;AAEA;IACI,uBAAuB;AAC3B;;AAEA,iCAAiC;AACjC;IACI,mBAAmB;IACnB,sBAAsB;IACtB,yBAAyB;IACzB,mBAAmB;IACnB,iBAAiB;IACjB,YAAY;AAChB;;AAEA;IACI,YAAY;IACZ,WAAW;IACX,SAAS;IACT,qBAAqB;IACrB,sBAAsB;AAC1B;;AAEA;IACI,8BAA8B;AAClC;;AAEA;IACI,2BAA2B;AAC/B;;AAEA,0BAA0B;AAC1B;IACI,aAAa;IACb,aAAa;IACb,sBAAsB;IACtB,SAAS;AACb;;AAEA;IACI,qCAAqC;IACrC,kBAAkB;IAClB,aAAa;IACb,qCAAqC;IACrC,iBAAiB;IACjB,cAAc;AAClB;;AAEA;IACI,SAAS;IACT,qCAAqC;IACrC,eAAe;IACf,qBAAqB;IACrB,sBAAsB;IACtB,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,SAAS;IACT,yBAAyB;IACzB,aAAa;IACb,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,mBAAmB;IACnB,QAAQ;AACZ;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;IACT,oCAAoC;IACpC,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,aAAa;AACjB;;AAEA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,eAAe;IACf,WAAW;IACX,YAAY;IACZ,cAAc;IACd,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,eAAe;AACnB;;AAEA;IACI,aAAa;IACb,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;IACd,gBAAgB;IAChB,2BAA2B;AAC/B;;AAEA;IACI,aAAa;IACb,SAAS;IACT,uBAAuB;IACvB,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;AACpB;;AAEA,iCAAiC;AACjC;IACI,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,mBAAmB;AACvB;;AAEA;IACI,cAAc;AAClB;;AAEA,qBAAqB;AACrB;IACI,8BAA8B;AAClC;;AAEA,wBAAwB;AACxB;IACI,gBAAgB;IAChB,aAAa;IACb,0CAA0C;IAC1C,8BAA8B;IAC9B,kBAAkB;AACtB;;AAEA;IACI,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,8CAA8C;IAC9C,SAAS;IACT,qBAAqB;AACzB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,QAAQ;IACR,yBAAyB;IACzB,gBAAgB;IAChB,iBAAiB;IACjB,yCAAyC;AAC7C;;AAEA,0BAA0B;AAC1B;IACI,2BAA2B;IAC3B,eAAe;IACf,WAAW;IACX,YAAY;IACZ,cAAc;IACd,mBAAmB;AACvB;;AAEA;IACI,cAAc;IACd,eAAe;IACf,WAAW;IACX,YAAY;IACZ,cAAc;IACd,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA;IACI,yCAAyC;IACzC,YAAY;IACZ,kBAAkB;AACtB;;AAEA;IACI,0CAA0C;IAC1C,YAAY;IACZ,kBAAkB;AACtB;;AAEA;IACI,qBAAqB;IACrB,yBAAyB;IACzB,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;AACrB;;;AAGA,6BAA6B;AAC7B;IACI,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,6BAA6B;IAC7B,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,6BAA6B;IAC7B,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,uCAAuC;IACvC,QAAQ;IACR,mBAAmB;IACnB,aAAa;IACb,6BAA6B;IAC7B,wCAAwC;IACxC,kBAAkB;AACtB;;AAEA;IACI,aAAa;IACb,uCAAuC;IACvC,QAAQ;IACR,mBAAmB;IACnB,aAAa;IACb,6BAA6B;IAC7B,wCAAwC;IACxC,kBAAkB;AACtB;;AAEA;;IAEI,WAAW;AACf;;AAEA,eAAe;AACf;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA,0BAA0B;AAC1B;IACI,6BAA6B;IAC7B,2CAA2C;IAC3C,kBAAkB;IAClB,aAAa;IACb,uEAAuE;IACvE,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,qBAAqB;IACrB,sBAAsB;IACtB,gCAAgC;IAChC,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA,kBAAkB;AAClB;IACI,aAAa;IACb,QAAQ;IACR,gBAAgB;IAChB,yBAAyB;AAC7B;;AAEA;IACI,SAAS;AACb;;AAEA,kCAAkC;AAClC;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,YAAY;AAChB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,YAAY;AAChB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,0CAA0C;IAC1C,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,YAAY;AAChB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,0CAA0C;IAC1C,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,YAAY;AAChB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,0CAA0C;IAC1C,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,YAAY;AAChB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,YAAY;AAChB;;AAEA;IACI,6BAA6B;AACjC;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,2CAA2C;IAC3C,0BAA0B;AAC9B;;AAEA;;4CAE4C;;AAE5C,gCAAgC;AAChC;IACI,aAAa;AACjB;;AAEA,uBAAuB;AACvB;IACI,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,yBAAyB;IACzB,YAAY;AAChB;;AAEA;IACI,yBAAyB;AAC7B;;AAEA,4BAA4B;AAC5B;IACI,aAAa;IACb,sBAAsB;IACtB,QAAQ;AACZ;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,QAAQ;IACR,cAAc;AAClB;;AAEA;IACI,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,aAAa;IACb,mBAAmB;IACnB,QAAQ;AACZ;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,gBAAgB;IAChB,iBAAiB;AACrB;;AAEA,yBAAyB;AACzB;IACI,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,6BAA6B;IAC7B,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,2CAA2C;IAC3C,QAAQ;IACR,mBAAmB;IACnB,aAAa;IACb,6BAA6B;IAC7B,yCAAyC;IACzC,kBAAkB;AACtB;;AAEA;IACI,WAAW;AACf;;AAEA,oCAAoC;AACpC;IACI,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,6BAA6B;IAC7B,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,uCAAuC;IACvC,QAAQ;IACR,mBAAmB;IACnB,aAAa;IACb,6BAA6B;IAC7B,wCAAwC;IACxC,kBAAkB;AACtB;;AAEA;IACI,WAAW;AACf;;AAEA,qCAAqC;AACrC;IACI,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,6BAA6B;IAC7B,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,uCAAuC;IACvC,QAAQ;IACR,mBAAmB;IACnB,aAAa;IACb,6BAA6B;IAC7B,wCAAwC;IACxC,kBAAkB;AACtB;;AAEA;IACI,WAAW;AACf;;AAEA,8BAA8B;AAC9B;IACI,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,UAAU;IACV,6BAA6B;IAC7B,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,qCAAqC;IACrC,QAAQ;IACR,mBAAmB;IACnB,aAAa;IACb,6BAA6B;IAC7B,wCAAwC;IACxC,kBAAkB;AACtB;;AAEA;IACI,WAAW;AACf;;AAEA,uBAAuB;AACvB;IACI,aAAa;IACb,8BAA8B;IAC9B,SAAS;AACb;;AAEA;IACI,WAAW;AACf;;AAEA,2BAA2B;AAC3B;IACI;QACI,mCAAmC;IACvC;;IAEA;;QAEI,mCAAmC;IACvC;AACJ;;AAEA;IACI;;;;;;QAMI,0BAA0B;IAC9B;;IAEA;QACI,0BAA0B;IAC9B;;IAEA;QACI,sBAAsB;QACtB,uBAAuB;IAC3B;;IAEA;QACI,WAAW;QACX,cAAc;IAClB;AACJ","sourcesContent":["/* Container & Layout */\n.odbc-browser-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dialog-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0;\n flex-shrink: 0;\n position: relative;\n}\n\n.dialog-title {\n margin: 0;\n padding: 16px 24px;\n font-size: 20px;\n font-weight: 500;\n flex: 1;\n}\n\n.header-actions {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding-right: 8px;\n}\n\n.header-actions button {\n margin-top: -12px;\n}\n\n.dialog-close-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dialog-content-tabs {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n position: relative;\n}\n\n.dialog-action {\n padding: 16px;\n display: flex !important;\n justify-content: flex-end;\n gap: 8px;\n flex-shrink: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n margin-top: auto;\n}\n\n/* Help Dialog */\n.help-dialog {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgb(66, 66, 66);\n border: 1px solid rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n z-index: 1000;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n.help-dialog-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n flex-shrink: 0;\n}\n\n.help-dialog-header h2 {\n margin: 0;\n font-size: 18px;\n font-weight: 500;\n}\n\n.help-close-btn {\n flex-shrink: 0;\n}\n\n.help-dialog-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n.syntax-item {\n margin-bottom: 24px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 12px;\n}\n\n.syntax-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.syntax-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 500;\n}\n\n.syntax-actions {\n display: flex;\n gap: 4px;\n}\n\n.syntax-description {\n margin: 8px 0;\n font-size: 13px;\n font-style: italic;\n}\n\n.syntax-code {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 3px;\n padding: 8px;\n margin: 8px 0 0 0;\n font-size: 12px;\n font-family: 'Courier New', monospace;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-x: auto;\n}\n\n/* Device Selector */\n.device-selector {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 16px;\n flex-shrink: 0;\n}\n\n.device-selector .label {\n font-weight: 500;\n min-width: 150px;\n}\n\n.device-select {\n flex: 1;\n max-width: 300px;\n}\n\n/* Error Banner */\n.error-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n margin: 8px 16px;\n border-radius: 2px;\n background-color: rgba(244, 67, 54, 0.1);\n color: #f44336;\n flex-shrink: 0;\n}\n\n.error-banner mat-icon {\n flex-shrink: 0;\n}\n\n/* Success Banner */\n.success-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n margin: 8px 16px;\n border-radius: 2px;\n background-color: rgba(76, 175, 80, 0.1);\n color: #4caf50;\n flex-shrink: 0;\n}\n\n.success-banner mat-icon {\n flex-shrink: 0;\n}\n\n/* Tabs */\n.browser-tabs {\n margin: 0 16px 16px 16px;\n height: 100%;\n}\n\n.browser-tabs ::ng-deep .mat-mdc-tab-body-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.tab-content {\n padding: 16px;\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n/* Sections */\n.section {\n margin-bottom: 60px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.05);\n border-radius: 6px;\n position: relative;\n border-left: 6px solid #64b5f6;\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-left: 6px solid #64b5f6;\n}\n\n.section:not(:last-child)::after {\n content: '⬇';\n display: block;\n text-align: center;\n color: #64b5f6;\n font-size: 32px;\n margin: 30px auto -60px;\n opacity: 0.7;\n line-height: 1;\n position: relative;\n z-index: 10;\n padding: 0;\n}\n\n.section-title {\n font-size: 13px;\n font-weight: 700;\n margin: 0 0 12px 0;\n color: #64b5f6;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n}\n\n/* Query Builder Section Colors */\n.query-type-section {\n border-left-color: #1976d2;\n}\n\n.query-type-section .section-title {\n color: #1976d2;\n}\n\n.select-section {\n border-left-color: #673ab7;\n}\n\n.select-section .section-title {\n color: #673ab7;\n}\n\n.join-section {\n border-left-color: #1976d2;\n}\n\n.join-section .section-title {\n color: #1976d2;\n}\n\n.join-section .joins-container {\n background-color: rgba(25, 118, 210, 0.05) !important;\n}\n\n.join-section .join-item {\n border-color: #1976d2 !important;\n}\n\n.where-section {\n border-left-color: #4caf50;\n}\n\n.where-section .section-title {\n color: #4caf50;\n}\n\n.where-section .conditions-builder {\n background-color: rgba(76, 175, 80, 0.05) !important;\n}\n\n.where-section .condition-item {\n border-color: #4caf50 !important;\n}\n\n.group-section {\n border-left-color: #9c27b0;\n}\n\n.group-section .section-title {\n color: #9c27b0;\n}\n\n.having-section {\n border-left-color: #e91e63;\n}\n\n.having-section .section-title {\n color: #e91e63;\n}\n\n.having-section .having-container {\n background-color: rgba(233, 30, 99, 0.05) !important;\n}\n\n.having-section .having-item {\n border-color: #e91e63 !important;\n}\n\n.order-section {\n border-left-color: #ff9800;\n}\n\n.order-section .section-title {\n color: #ff9800;\n}\n\n.order-section .order-by-container {\n background-color: rgba(255, 152, 0, 0.05) !important;\n}\n\n.order-section .order-by-item {\n border-color: #ff9800 !important;\n}\n\n.insert-section {\n border-left-color: #009688;\n}\n\n.insert-section .section-title {\n color: #009688;\n}\n\n.insert-section .insert-rows-container {\n background-color: rgba(0, 150, 136, 0.05) !important;\n}\n\n.insert-section .insert-row {\n border-color: #009688 !important;\n}\n\n.update-section {\n border-left-color: #3f51b5;\n}\n\n.update-section .section-title {\n color: #3f51b5;\n}\n\n.update-section .update-values-container {\n background-color: rgba(63, 81, 181, 0.05) !important;\n}\n\n.update-section .update-value-item {\n border-color: #3f51b5 !important;\n}\n\n.subsection-title {\n font-size: 13px;\n font-weight: 500;\n margin: 12px 0 8px 0;\n}\n\n/* Lists */\n.table-selection-wrapper,\n.column-selection-wrapper {\n max-height: 300px;\n overflow-y: auto;\n}\n\n.selection-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 14px;\n table-layout: auto;\n}\n\n.selection-table tbody tr {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n cursor: pointer;\n display: table-row;\n}\n\n.selection-table tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n\n.selection-table tbody tr.selected {\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.selection-table td {\n padding: 8px;\n vertical-align: middle;\n display: table-cell;\n}\n\n.checkbox-cell {\n width: 48px;\n text-align: center;\n padding: 8px 4px;\n vertical-align: middle;\n white-space: nowrap;\n}\n\n.content-cell {\n display: table-cell;\n padding: 8px;\n vertical-align: middle;\n}\n\n.content-cell > * {\n display: inline-block;\n vertical-align: middle;\n}\n\n.column-type {\n margin-left: 8px;\n opacity: 0.7;\n font-size: 12px;\n}\n\n.no-items {\n padding: 24px 16px;\n text-align: center;\n opacity: 0.6;\n font-size: 13px;\n}\n\n/* Query Preview */\n.query-preview {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n border-radius: 2px;\n font-family: 'Courier New', monospace;\n font-size: 12px;\n overflow-x: auto;\n border: 1px solid rgba(0, 0, 0, 0.12);\n}\n\n.query-preview code {\n flex: 1;\n white-space: nowrap;\n}\n\n.copy-btn {\n flex-shrink: 0;\n}\n\n/* Data Viewer */\n.viewer-controls {\n display: flex;\n align-items: flex-end;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.control-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.control-group label {\n font-size: 12px;\n font-weight: 500;\n}\n\n.row-limit-field {\n width: 150px;\n}\n\n.data-info {\n padding: 8px;\n margin-bottom: 8px;\n font-size: 13px;\n opacity: 0.8;\n}\n\n.table-scroll {\n overflow-x: auto;\n border-radius: 2px;\n}\n\n.data-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.data-table th {\n background-color: rgba(0, 0, 0, 0.12);\n padding: 8px;\n text-align: left;\n font-weight: 500;\n}\n\n.data-table td {\n padding: 8px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n\n.data-table tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n\n/* SQL Editor */\n.editor-section {\n margin-bottom: 12px;\n}\n\n.sql-editor {\n width: 100%;\n min-height: 150px;\n padding: 8px;\n font-family: 'Courier New', monospace;\n font-size: 12px;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 2px;\n resize: vertical;\n}\n\n.sql-editor:focus {\n outline: none;\n border-color: #3f51b5;\n}\n\n.editor-controls {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n\n.error-container {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px;\n border-radius: 2px;\n background-color: rgba(244, 67, 54, 0.1);\n color: #f44336;\n margin-bottom: 12px;\n}\n\n.error-container mat-icon {\n flex-shrink: 0;\n}\n\n.error-text {\n font-size: 12px;\n}\n\n.results-section {\n margin-top: 12px;\n}\n\n/* Create Table */\n.create-table-section {\n max-width: 500px;\n}\n\n.full-width {\n width: 100% !important;\n margin-bottom: 8px;\n}\n\n.columns-definition {\n margin-bottom: 12px;\n}\n\n.column-row {\n display: flex;\n gap: 8px;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.column-name {\n flex: 1;\n}\n\n.column-type {\n width: 120px;\n}\n\n.nullable-check {\n flex-shrink: 0;\n}\n\n.remove-btn {\n flex-shrink: 0;\n}\n\n.add-column-btn {\n margin-bottom: 8px;\n}\n\n.create-table-controls {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n}\n\n/* Loading */\n.loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 32px 16px;\n}\n\n/* No Device */\n.no-device-message {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 48px 24px;\n text-align: center;\n opacity: 0.6;\n}\n\n.no-device-message mat-icon {\n font-size: 32px;\n width: 32px;\n height: 32px;\n}\n\n.query-preview {\n border: 1px solid #ddd;\n border-radius: 4px;\n padding: 12px;\n font-family: 'Courier New', monospace;\n font-size: 14px;\n overflow-x: auto;\n}\n\nmat-selection-list {\n max-height: 200px;\n overflow-y: auto;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n\nmat-list-option {\n height: 48px !important;\n}\n\n/* Action Buttons in Table List */\n.action-cell {\n display: table-cell;\n vertical-align: middle;\n padding: 0 8px !important;\n white-space: nowrap;\n text-align: right;\n width: 100px;\n}\n\n.action-cell button {\n height: 40px;\n width: 40px;\n margin: 0;\n display: inline-block;\n vertical-align: middle;\n}\n\n.edit-btn, .delete-btn {\n color: var(--primary, #1976d2);\n}\n\n.delete-btn {\n color: var(--warn, #d32f2f);\n}\n\n/* Query Preview Section */\n.query-preview-section {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.query-display {\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 4px;\n padding: 12px;\n background-color: rgba(0, 0, 0, 0.02);\n max-height: 300px;\n overflow: auto;\n}\n\n.query-display pre {\n margin: 0;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n white-space: pre-wrap;\n word-break: break-word;\n line-height: 1.5;\n}\n\n.query-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n padding: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\n\n.query-actions button {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Delete Confirmation Modal */\n.delete-confirmation-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.modal-content {\n background: white;\n border-radius: 8px;\n padding: 32px;\n max-width: 400px;\n text-align: center;\n box-shadow: 0 5px 25px rgba(0, 0, 0, 0.2);\n}\n\n.warning-icon {\n font-size: 48px;\n width: 48px;\n height: 48px;\n color: #ff9800;\n margin: 0 auto 16px;\n}\n\n.modal-content h2 {\n margin: 16px 0 12px 0;\n font-size: 20px;\n}\n\n.modal-content p {\n margin: 8px 0;\n color: rgba(0, 0, 0, 0.7);\n line-height: 1.5;\n}\n\n.warning-text {\n color: #d32f2f;\n font-weight: 500;\n margin-top: 16px !important;\n}\n\n.modal-actions {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 24px;\n}\n\n.modal-actions button {\n min-width: 120px;\n}\n\n/* Column Row with Move Buttons */\n.column-row {\n display: flex;\n gap: 8px;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.column-row button[matTooltip] {\n flex-shrink: 0;\n}\n\n/* Edit Table Title */\n.create-table-section h3 {\n color: var(--primary, #1976d2);\n}\n\n/* Foreign Key Section */\n.foreign-key-section {\n margin-top: 24px;\n padding: 16px;\n background-color: rgba(25, 118, 210, 0.03);\n border-left: 4px solid #1976d2;\n border-radius: 4px;\n}\n\n.foreign-key-section h4 {\n color: #1976d2;\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 500;\n}\n\n.foreign-key-controls {\n display: grid;\n grid-template-columns: 1fr 1.2fr 1fr auto auto;\n gap: 12px;\n align-items: flex-end;\n}\n\n.fk-column-select {\n min-width: 120px;\n}\n\n.fk-table-select {\n min-width: 150px;\n}\n\n.create-table-controls {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\n\n/* Primary Key Indicator */\n.pk-indicator {\n color: var(--warn, #d32f2f);\n font-size: 20px;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n margin: 8px 4px 0 0;\n}\n\n.fk-indicator {\n color: #1976d2;\n font-size: 20px;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n margin: 8px 4px 0 0;\n}\n\n.pk-placeholder {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n margin: 8px 4px 0 0;\n visibility: hidden;\n}\n\n.column-row.is-primary-key {\n background-color: rgba(211, 47, 47, 0.05);\n padding: 8px;\n border-radius: 4px;\n}\n\n.column-row.has-foreign-key {\n background-color: rgba(25, 118, 210, 0.05);\n padding: 8px;\n border-radius: 4px;\n}\n\n.info-badge {\n display: inline-block;\n background-color: #e3f2fd;\n color: #1976d2;\n padding: 4px 12px;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n margin-left: 16px;\n}\n\n\n/* INSERT/UPDATE Containers */\n.insert-rows-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border-radius: 0;\n}\n\n.update-values-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border-radius: 0;\n}\n\n.insert-row {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 12px;\n background-color: transparent;\n border: 1px solid rgba(0, 150, 136, 0.3);\n border-radius: 4px;\n}\n\n.update-value-item {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 12px;\n background-color: transparent;\n border: 1px solid rgba(63, 81, 181, 0.3);\n border-radius: 4px;\n}\n\n.insert-field,\n.update-field {\n width: 100%;\n}\n\n/* Add Button */\n.add-button {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n/* Query Display Section */\n.query-display {\n background-color: transparent;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 6px;\n padding: 16px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace;\n font-size: 13px;\n font-weight: 400;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n color: rgba(255, 255, 255, 0.87);\n line-height: 1.6;\n box-shadow: none;\n}\n\n/* Query Actions */\n.query-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n justify-content: flex-end;\n}\n\n.query-actions button {\n margin: 0;\n}\n\n/* Section-Specific Color Themes */\n.query-type-section .section-title {\n color: #64b5f6;\n}\n\n.query-type-section {\n background-color: rgba(100, 181, 246, 0.05);\n border-left-color: #64b5f6;\n}\n\n.select-section .section-title {\n color: #64b5f6;\n}\n\n.select-section {\n background-color: rgba(100, 181, 246, 0.05);\n border-left-color: #64b5f6;\n}\n\n.join-section .section-title {\n color: #64b5f6;\n}\n\n.join-section {\n background-color: rgba(100, 181, 246, 0.05);\n border-left-color: #64b5f6;\n}\n\n.join-section .joins-container {\n background-color: transparent;\n border: none;\n}\n\n.join-item {\n background-color: transparent;\n}\n\n.where-section .section-title {\n color: #81c784;\n}\n\n.where-section {\n background-color: rgba(129, 199, 132, 0.05);\n border-left-color: #81c784;\n}\n\n.where-section .conditions-builder {\n background-color: transparent;\n border: none;\n}\n\n.condition-item {\n background-color: transparent;\n}\n\n.group-section .section-title {\n color: #ba68c8;\n}\n\n.group-section {\n background-color: rgba(186, 104, 200, 0.05);\n border-left-color: #ba68c8;\n}\n\n.having-section .section-title {\n color: #f06292;\n}\n\n.having-section {\n background-color: rgba(240, 98, 146, 0.05);\n border-left-color: #f06292;\n}\n\n.having-section .conditions-builder {\n background-color: transparent;\n border: none;\n}\n\n.having-item {\n background-color: transparent;\n}\n\n.order-section .section-title {\n color: #ffb74d;\n}\n\n.order-section {\n background-color: rgba(255, 183, 77, 0.05);\n border-left-color: #ffb74d;\n}\n\n.order-section .order-by-container {\n background-color: transparent;\n border: none;\n}\n\n.order-by-item {\n background-color: transparent;\n}\n\n.insert-section .section-title {\n color: #4db8a8;\n}\n\n.insert-section {\n background-color: rgba(77, 184, 168, 0.05);\n border-left-color: #4db8a8;\n}\n\n.insert-section .insert-rows-container {\n background-color: transparent;\n border: none;\n}\n\n.insert-row {\n background-color: transparent;\n}\n\n.update-section .section-title {\n color: #7986cb;\n}\n\n.update-section {\n background-color: rgba(121, 134, 203, 0.05);\n border-left-color: #7986cb;\n}\n\n.update-section .update-values-container {\n background-color: transparent;\n border: none;\n}\n\n.update-value-item {\n background-color: transparent;\n}\n\n.query-display-section .section-title {\n color: #90a4ae;\n}\n\n.query-display-section {\n background-color: rgba(144, 164, 174, 0.05);\n border-left-color: #90a4ae;\n}\n\n/*===========================================\n QUERY BUILDER STYLES - CONSOLIDATED\n===========================================*/\n\n/* Query Builder Tab Container */\n.query-builder-tab {\n padding: 16px;\n}\n\n/* Query Type Buttons */\n.query-type-buttons {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.query-type-buttons button {\n min-width: 100px;\n}\n\n.query-type-buttons button.active {\n background-color: #1976d2;\n color: white;\n}\n\n.query-type-buttons button.active:hover {\n background-color: #1565c0;\n}\n\n/* Column Selection Styles */\n.column-selection {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.column-checkboxes {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 8px 0;\n}\n\n.column-checkboxes mat-checkbox {\n display: flex;\n align-items: center;\n}\n\n.column-type {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 8px;\n font-style: italic;\n}\n\n.column-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.distinct-checkbox {\n margin-left: 16px;\n}\n\n.aggregate-field {\n max-width: 150px;\n margin-left: auto;\n}\n\n/* JOINs Builder Styles */\n.joins-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border-radius: 0;\n}\n\n.join-item {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 12px;\n background-color: transparent;\n border: 1px solid rgba(25, 118, 210, 0.3);\n border-radius: 4px;\n}\n\n.join-field {\n width: 100%;\n}\n\n/* WHERE Conditions Builder Styles */\n.conditions-builder {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border-radius: 0;\n}\n\n.condition-item {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 12px;\n background-color: transparent;\n border: 1px solid rgba(76, 175, 80, 0.3);\n border-radius: 4px;\n}\n\n.condition-field {\n width: 100%;\n}\n\n/* HAVING Conditions Builder Styles */\n.having-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border-radius: 0;\n}\n\n.having-item {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 12px;\n background-color: transparent;\n border: 1px solid rgba(233, 30, 99, 0.3);\n border-radius: 4px;\n}\n\n.having-field {\n width: 100%;\n}\n\n/* ORDER BY Container Styles */\n.order-by-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border-radius: 0;\n}\n\n.order-by-item {\n display: grid;\n grid-template-columns: 1.5fr 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 12px;\n background-color: transparent;\n border: 1px solid rgba(255, 152, 0, 0.3);\n border-radius: 4px;\n}\n\n.order-field {\n width: 100%;\n}\n\n/* LIMIT / OFFSET Row */\n.limit-offset-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n}\n\n.limit-field {\n width: 100%;\n}\n\n/* Responsive adjustments */\n@media (max-width: 1200px) {\n .join-item {\n grid-template-columns: 1fr 1fr auto;\n }\n\n .condition-item,\n .having-item {\n grid-template-columns: 1fr 1fr auto;\n }\n}\n\n@media (max-width: 768px) {\n .join-item,\n .condition-item,\n .having-item,\n .order-by-item,\n .insert-row,\n .update-value-item {\n grid-template-columns: 1fr;\n }\n\n .limit-offset-row {\n grid-template-columns: 1fr;\n }\n\n .column-row {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .aggregate-field {\n width: 100%;\n margin-left: 0;\n }\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 34381: +/*!**************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-text/report-item-text.component.css?ngResource ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.report-textarea { + min-width: 400px; + min-height: 200px; + font-family: inherit; +}`, "",{"version":3,"sources":["webpack://./src/app/reports/report-editor/report-item-text/report-item-text.component.css"],"names":[],"mappings":"AAAA;IACI,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;AACxB","sourcesContent":[".report-textarea {\n min-width: 400px;\n min-height: 200px;\n font-family: inherit;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 74989: +/*!**************************************************************************!*\ + !*** ./src/app/reports/report-list/report-list.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} + +.header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); +} + +.container { + /* background-color: var(); */ + display: inline-table; + width: 100%; +} + +.mat-table { + overflow: auto; + height: 100%; + width: 100%; +} + +.mat-row { + min-height: 40px; + height: 43px; +} + +.mat-cell { + font-size: 13px; +} + +.mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} + +.mat-header-cell { + font-size: 15px; +} + +.mat-column-select { + overflow: visible; + width: 50px; +} + +.mat-column-name { + flex: 1 1 120px; +} + +.mat-column-type { + flex: 0 0 100px; +} + +.mat-column-receiver { + flex: 3 1 180px; +} +.mat-column-scheduling { + flex: 3 1 180px; +} +.mat-column-enabled { + flex: 0 0 60px; +} + +.mat-column-create { + width: 50px; +} + +.mat-column-remove { + width: 50px; +} + +.mat-column-expand { + width: 50px; +} + +tr.detail-row { + height: 0; +} + + /* .example-element-row td { + border-bottom-width: 0; + } */ + +.report-details { + overflow: hidden; + display: flex; +} + +.details-description { + min-height: 100px; + max-height: 360px; + margin: 5px 10px; + padding-left: 40px; + width: 100%; + overflow: auto; +} + +.report-detail div { + min-width: 600px; + display: inline-block; +} + +td.details-container { + background-color: var(--workPanelExpandBackground); +}`, "",{"version":3,"sources":["webpack://./src/app/reports/report-list/report-list.component.css"],"names":[],"mappings":"AAAA;IACI,yCAAyC;IACzC,yBAAyB;IACzB,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,4CAA4C;AAChD;;AAEA;IACI,qBAAqB;IACrB,wBAAwB;AAC5B;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,4CAA4C;AAChD;;AAEA;IACI,6BAA6B;IAC7B,qBAAqB;IACrB,WAAW;AACf;;AAEA;IACI,cAAc;IACd,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,gBAAgB;IAChB,YAAY;AAChB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,MAAM;IACN,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,WAAW;AACf;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,cAAc;AAClB;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,SAAS;AACb;;EAEE;;KAEG;;AAEL;IACI,gBAAgB;IAChB,aAAa;AACjB;;AAEA;IACI,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,qBAAqB;AACzB;;AAEA;IACI,kDAAkD;AACtD","sourcesContent":[".header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n}\n\n.container {\n /* background-color: var(); */\n display: inline-table;\n width: 100%;\n}\n\n.mat-table {\n overflow: auto;\n height: 100%;\n width: 100%;\n}\n\n.mat-row {\n min-height: 40px;\n height: 43px;\n}\n\n.mat-cell {\n font-size: 13px;\n}\n\n.mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n\n.mat-header-cell {\n font-size: 15px;\n}\n\n.mat-column-select {\n overflow: visible;\n width: 50px;\n}\n\n.mat-column-name {\n flex: 1 1 120px;\n}\n\n.mat-column-type {\n flex: 0 0 100px;\n}\n\n.mat-column-receiver {\n flex: 3 1 180px;\n}\n.mat-column-scheduling {\n flex: 3 1 180px;\n}\n.mat-column-enabled {\n flex: 0 0 60px;\n}\n\n.mat-column-create {\n width: 50px;\n}\n\n.mat-column-remove {\n width: 50px;\n}\n\n.mat-column-expand {\n width: 50px;\n}\n\ntr.detail-row {\n height: 0;\n}\n \n /* .example-element-row td {\n border-bottom-width: 0;\n } */\n \n.report-details {\n overflow: hidden;\n display: flex;\n}\n\n.details-description {\n min-height: 100px;\n max-height: 360px;\n margin: 5px 10px;\n padding-left: 40px;\n width: 100%;\n overflow: auto;\n}\n\n.report-detail div {\n min-width: 600px;\n display: inline-block;\n}\n\ntd.details-container {\n background-color: var(--workPanelExpandBackground);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 91435: +/*!**************************************************************************!*\ + !*** ./src/app/resources/lib-images/lib-images.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.lib-image-panel { + max-width: 900px; +} + +.lib-image-item { + display: inline-block; + margin: 5px 5px 5px 5px; + padding: 2px 2px 2px 2px; +} + +.lib-image-item img:hover { + background-color: rgba(182, 182, 182, 0.3); +} + +.lib-image-item img { + min-width: 100px; + width: 100px; + object-fit: cover; + cursor: pointer; +}`, "",{"version":3,"sources":["webpack://./src/app/resources/lib-images/lib-images.component.css"],"names":[],"mappings":"AAAA;IACI,gBAAgB;AACpB;;AAEA;IACI,qBAAqB;IACrB,uBAAuB;IACvB,wBAAwB;AAC5B;;AAEA;IACI,0CAA0C;AAC9C;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,eAAe;AACnB","sourcesContent":[".lib-image-panel {\n max-width: 900px;\n}\n\n.lib-image-item {\n display: inline-block;\n margin: 5px 5px 5px 5px;\n padding: 2px 2px 2px 2px;\n}\n\n.lib-image-item img:hover {\n background-color: rgba(182, 182, 182, 0.3);\n}\n\n.lib-image-item img {\n min-width: 100px;\n width: 100px;\n object-fit: cover;\n cursor: pointer;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 26326: +/*!********************************************************************************************************!*\ + !*** ./src/app/scripts/script-editor/script-editor-param/script-editor-param.component.css?ngResource ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 88038: +/*!**************************************************************************!*\ + !*** ./src/app/scripts/script-list/script-list.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} + +.header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; +} + +.container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 0px; + left:0px; + right:0px; +} + +.mat-table { + overflow: auto; + height: 100%; +} + +.mat-row { + min-height: 40px; + height: 43px; +} + +.mat-cell { + font-size: 13px; +} + +.mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} + +.mat-header-cell { + font-size: 15px; +} + +.mat-column-select { + overflow: visible; + flex: 0 0 80px; +} + +.mat-column-name { + flex: 1 1 120px; +} + +.mat-column-params { + flex: 3 1 180px; +} +.mat-column-scheduling { + flex: 3 1 280px; +} +.mat-column-options { + flex: 0 0 60px; +} + +.mat-column-remove { + flex: 0 0 60px; +} + +.selectidthClass{ + flex: 0 0 50px; + } + +.my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} + +.my-header-filter ::ng-deep .mat-sort-header-arrow { + top: -12px; + right: 20px; +} + +.my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + padding: 3px 1px 3px 2px; + border-radius: 2px; +}`, "",{"version":3,"sources":["webpack://./src/app/scripts/script-list/script-list.component.css"],"names":[],"mappings":"AAAA;IACI,yCAAyC;IACzC,yBAAyB;IACzB,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,4CAA4C;AAChD;;AAEA;IACI,qBAAqB;IACrB,wBAAwB;AAC5B;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;AACf;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,SAAS;AACb;;AAEA;IACI,cAAc;IACd,YAAY;AAChB;;AAEA;IACI,gBAAgB;IAChB,YAAY;AAChB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,MAAM;IACN,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;AACA;IACI,eAAe;AACnB;AACA;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;CACjB;;AAED;IACI,cAAc;IACd,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,UAAU;IACV,WAAW;AACf;;AAEA;IACI,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;AACtB","sourcesContent":[".header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left:0px;\n right:0px;\n}\n\n.mat-table {\n overflow: auto;\n height: 100%;\n}\n\n.mat-row {\n min-height: 40px;\n height: 43px;\n}\n\n.mat-cell {\n font-size: 13px;\n}\n\n.mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n\n.mat-header-cell {\n font-size: 15px;\n}\n\n.mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n}\n\n.mat-column-name {\n flex: 1 1 120px;\n}\n\n.mat-column-params {\n flex: 3 1 180px;\n}\n.mat-column-scheduling {\n flex: 3 1 280px;\n}\n.mat-column-options {\n flex: 0 0 60px;\n}\n\n.mat-column-remove {\n flex: 0 0 60px;\n}\n\n.selectidthClass{\n flex: 0 0 50px;\n }\n\n.my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n}\n\n.my-header-filter-input {\n display: block; \n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 67936: +/*!**************************************************************************!*\ + !*** ./src/app/scripts/script-mode/script-mode.component.css?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 91138: +/*!**************************************************************************************!*\ + !*** ./src/app/scripts/script-permission/script-permission.component.css?ngResource ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 27634: +/*!********************************************************!*\ + !*** ./src/app/tester/tester.component.css?ngResource ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.tester-panel { + width: 300px; + height: 563px; + z-index: 99999 !important; + position: absolute; + right: 10px; + top: 50px; + color: rgb(240, 240, 240); + background-color: rgb(46, 46, 48); + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2), 0 2px 6px 0 rgba(0, 0, 0, 0.18); + border: 0px !important; +} + +.tester-header { + height: 30px; + color: rgb(230, 230, 230); + padding-left: 10px; + cursor: move; + line-height: 30px; + background-color: rgb(0, 0, 0); +} + +.tester-close { + font-size: 28px; + cursor: pointer; + right: 5px; + position: absolute; + top: 0px; +} + +.tester-body { + overflow-y: auto; + height: 350px; + color: rgb(230, 230, 230); +} + +.tester-output { + overflow-y: auto; + height: 180px; + border-top: 1px solid gray; + padding: 2px 2px 0px 2px; + color: rgb(230, 230, 230); + padding-left: 5px; +} + +.output-item { + display: block; + font-size: 12px; +} + +.svg-property { + color: rgba(0, 0, 0, 0.75); +} + +.svg-property span { + display: block; + font-size: 12px; + margin: 0px 5px 0px 10px; + color: rgb(230, 230, 230); +} + +.svg-property input { + width: 50%; + display: inline-block; + margin: 0px 10px 12px 10px; + border: unset; + background-color: inherit; + color: rgb(230, 230, 230); + background-color: rgb(66, 66, 66); + height: 22px; +} + +.svg-property button { + height: 26px; +} +`, "",{"version":3,"sources":["webpack://./src/app/tester/tester.component.css"],"names":[],"mappings":"AAAA;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;IACzB,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,yBAAyB;IACzB,iCAAiC;IACjC,2EAA2E;IAC3E,sBAAsB;AAC1B;;AAEA;IACI,YAAY;IACZ,yBAAyB;IACzB,kBAAkB;IAClB,YAAY;IACZ,iBAAiB;IACjB,8BAA8B;AAClC;;AAEA;IACI,eAAe;IACf,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,QAAQ;AACZ;;AAEA;IACI,gBAAgB;IAChB,aAAa;IACb,yBAAyB;AAC7B;;AAEA;IACI,gBAAgB;IAChB,aAAa;IACb,0BAA0B;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,iBAAiB;AACrB;;AAEA;IACI,cAAc;IACd,eAAe;AACnB;;AAEA;IACI,0BAA0B;AAC9B;;AAEA;IACI,cAAc;IACd,eAAe;IACf,wBAAwB;IACxB,yBAAyB;AAC7B;;AAEA;IACI,UAAU;IACV,qBAAqB;IACrB,0BAA0B;IAC1B,aAAa;IACb,yBAAyB;IACzB,yBAAyB;IACzB,iCAAiC;IACjC,YAAY;AAChB;;AAEA;IACI,YAAY;AAChB","sourcesContent":[".tester-panel {\n width: 300px;\n height: 563px;\n z-index: 99999 !important;\n position: absolute;\n right: 10px;\n top: 50px;\n color: rgb(240, 240, 240);\n background-color: rgb(46, 46, 48);\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2), 0 2px 6px 0 rgba(0, 0, 0, 0.18);\n border: 0px !important;\n}\n\n.tester-header {\n height: 30px;\n color: rgb(230, 230, 230);\n padding-left: 10px;\n cursor: move;\n line-height: 30px;\n background-color: rgb(0, 0, 0);\n}\n\n.tester-close {\n font-size: 28px;\n cursor: pointer;\n right: 5px;\n position: absolute;\n top: 0px;\n}\n\n.tester-body {\n overflow-y: auto;\n height: 350px;\n color: rgb(230, 230, 230);\n}\n\n.tester-output {\n overflow-y: auto;\n height: 180px;\n border-top: 1px solid gray;\n padding: 2px 2px 0px 2px;\n color: rgb(230, 230, 230);\n padding-left: 5px;\n}\n\n.output-item {\n display: block;\n font-size: 12px;\n}\n\n.svg-property {\n color: rgba(0, 0, 0, 0.75);\n}\n\n.svg-property span {\n display: block;\n font-size: 12px;\n margin: 0px 5px 0px 10px;\n color: rgb(230, 230, 230);\n}\n\n.svg-property input {\n width: 50%;\n display: inline-block;\n margin: 0px 10px 12px 10px;\n border: unset;\n background-color: inherit;\n color: rgb(230, 230, 230);\n background-color: rgb(66, 66, 66);\n height: 22px;\n}\n\n.svg-property button {\n height: 26px;\n}\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 35189: +/*!********************************************************************!*\ + !*** ./src/app/users/user-edit/user-edit.component.css?ngResource ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 87602: +/*!********************************************************************************!*\ + !*** ./src/app/users/users-role-edit/users-role-edit.component.css?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 86983: +/*!******************************************************!*\ + !*** ./src/app/users/users.component.css?ngResource ***! + \******************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + /* z-index: 9999 !important; */ + background-color: var(--headerBackground); + color: var(--headerColor); + position: fixed; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); +} + +.container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 0px; + left:0px; + right:0px; +} + +.mat-table { + overflow: auto; + /* min-width: 1560px; */ +} + +.mat-row { + min-height: 40px; + height: 43px; +} + +.mat-cell { + font-size: 13px; +} + +.mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} + + +.mat-header-cell { + font-size: 15px; +} + +.mat-column-select { + overflow: visible; + flex: 0 0 100px; +} + +.mat-column-username { + flex: 0 0 200px; +} + +.mat-column-fullname { + flex: 2 1 250px; +} + +.mat-column-groups { + flex: 2 1 650px; +} + +.mat-column-start { + flex: 2 1 250px; +} + +.mat-column-remove { + flex: 0 0 60px; +} + +.selectidthClass{ + flex: 0 0 50px; + } + +.show-password { + bottom: 2px; + right: 8px; + position: absolute; +} + +.my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} + +.my-header-filter ::ng-deep .mat-sort-header-arrow { + top: -12px; + right: 20px; +} + +.my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + padding: 3px 1px 3px 2px; + border-radius: 2px; +}`, "",{"version":3,"sources":["webpack://./src/app/users/users.component.css"],"names":[],"mappings":"AAAA;IACI,8BAA8B;IAC9B,yCAAyC;IACzC,yBAAyB;IACzB,eAAe;IACf,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,4CAA4C;AAChD;;AAEA;IACI,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,4CAA4C;AAChD;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,SAAS;AACb;;AAEA;IACI,cAAc;IACd,uBAAuB;AAC3B;;AAEA;IACI,gBAAgB;IAChB,YAAY;AAChB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,MAAM;IACN,gBAAgB;IAChB,UAAU;AACd;;;AAGA;IACI,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,cAAc;CACjB;;AAED;IACI,WAAW;IACX,UAAU;IACV,kBAAkB;AACtB;;AAEA;IACI,cAAc;IACd,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,UAAU;IACV,WAAW;AACf;;AAEA;IACI,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;AACtB","sourcesContent":[".header-panel {\n /* z-index: 9999 !important; */\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: fixed;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n}\n\n.container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left:0px;\n right:0px;\n}\n\n.mat-table {\n overflow: auto;\n /* min-width: 1560px; */\n}\n \n.mat-row {\n min-height: 40px;\n height: 43px;\n}\n\n.mat-cell {\n font-size: 13px;\n}\n\n.mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n\n\n.mat-header-cell {\n font-size: 15px;\n}\n\n.mat-column-select {\n overflow: visible;\n flex: 0 0 100px;\n}\n\n.mat-column-username {\n flex: 0 0 200px;\n}\n\n.mat-column-fullname {\n flex: 2 1 250px;\n}\n\n.mat-column-groups {\n flex: 2 1 650px;\n}\n\n.mat-column-start {\n flex: 2 1 250px;\n}\n\n.mat-column-remove {\n flex: 0 0 60px;\n}\n\n.selectidthClass{\n flex: 0 0 50px;\n }\n\n.show-password {\n bottom: 2px;\n right: 8px;\n position: absolute;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n\n.my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n}\n\n.my-header-filter-input {\n display: block; \n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 11206: +/*!****************************************************!*\ + !*** ./src/app/view/view.component.css?ngResource ***! + \****************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.view-body { + display: table; + margin: 0 auto; +} + +.view-container { + position: absolute; + left: 0px; + top: 0px; + bottom: 0px; + right: 0px; + overflow: auto; +}`, "",{"version":3,"sources":["webpack://./src/app/view/view.component.css"],"names":[],"mappings":"AAAA;IACI,cAAc;IACd,cAAc;AAClB;;AAEA;IACI,kBAAkB;CACrB,SAAS;CACT,QAAQ;CACR,WAAW;CACX,UAAU;CACV,cAAc;AACf","sourcesContent":[".view-body {\n display: table;\n margin: 0 auto;\n}\n\n.view-container {\n position: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\tbottom: 0px;\n\tright: 0px;\n\toverflow: auto;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 73618: +/*!********************************************************************************!*\ + !*** ./src/app/alarms/alarm-property/alarm-property.component.scss?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .alarm-sample { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +:host .message-error { + display: inline-block; + /* background-color: red;; */ + color: red; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; + min-width: 120px !important; +} +:host .action-item { + display: block; + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + margin-top: 5px; + margin-bottom: 5px; +}`, "",{"version":3,"sources":["webpack://./src/app/alarms/alarm-property/alarm-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/alarms/alarm-property/alarm-property.component.scss"],"names":[],"mappings":"AAEI;EACI,mBAAA;EACA,gBAAA;EACA,uBAAA;ACDR;ADII;EACI,qBAAA;EACA,4BAAA;EACA,UAAA;ACFR;ADKI;EACI,uBAAA;EACA,2BAAA;ACHR;ADMI;EACI,cAAA;EACA,WAAA;EACA,2CAAA;EACA,eAAA;EACA,kBAAA;ACJR","sourcesContent":[":host {\n\n .alarm-sample {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .message-error {\n display: inline-block;\n /* background-color: red;; */\n color:red;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 120px !important;\n }\n\n .action-item {\n display: block;\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 5px;\n margin-bottom: 5px;\n }\n}\n",":host .alarm-sample {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n:host .message-error {\n display: inline-block;\n /* background-color: red;; */\n color: red;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 120px !important;\n}\n:host .action-item {\n display: block;\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 5px;\n margin-bottom: 5px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 18234: +/*!*****************************************************************!*\ + !*** ./src/app/cards-view/cards-view.component.scss?ngResource ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 100%; + height: 100%; +} +:host .container .card-html .card-content { + width: 100% !important; + height: 100% !important; +} +:host .container .card-content { + margin: 0 auto; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: -moz-fit-content; + width: fit-content; +} +:host .container .card-iframe-edit span { + color: black; + display: block; + text-align: center; +} +:host .container .card-content div { + width: 100% !important; + height: 100% !important; +} +:host .container .card-tool { + background-color: rgba(0, 0, 0, 0.6); + color: white; + position: absolute; + bottom: -15px; + padding-left: 10px; + font-size: 11px; + left: 50%; + transform: translate(-50%, -50%); + width: 194px; + border-radius: 2px; +}`, "",{"version":3,"sources":["webpack://./src/app/cards-view/cards-view.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/cards-view/cards-view.component.scss"],"names":[],"mappings":"AACI;EACI,WAAA;EACA,YAAA;ACAR;ADEQ;EACI,sBAAA;EACA,uBAAA;ACAZ;ADGQ;EACI,cAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;EACA,uBAAA;EAAA,kBAAA;ACDZ;ADKY;EACI,YAAA;EACA,cAAA;EACA,kBAAA;ACHhB;ADOQ;EACI,sBAAA;EACA,uBAAA;ACLZ;ADQQ;EACI,oCAAA;EACA,YAAA;EACA,kBAAA;EACA,aAAA;EACA,kBAAA;EACA,eAAA;EACA,SAAA;EACA,gCAAA;EACA,YAAA;EACA,kBAAA;ACNZ","sourcesContent":[":host {\n .container {\n width: 100%;\n height: 100%;\n\n .card-html .card-content {\n width: 100% !important;\n height: 100% !important;\n }\n\n .card-content {\n margin: 0 auto;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: fit-content;\n }\n\n .card-iframe-edit {\n span {\n color: black;\n display: block;\n text-align: center;\n }\n }\n\n .card-content div {\n width: 100% !important;\n height: 100% !important;\n }\n\n .card-tool {\n background-color: rgba(0,0,0,0.6);\n color:white;\n position:absolute;\n bottom: -15px;\n padding-left: 10px;\n font-size: 11px;\n left: 50%;\n transform: translate(-50%, -50%); \n width: 194px;\n border-radius: 2px;\n }\n }\n}",":host .container {\n width: 100%;\n height: 100%;\n}\n:host .container .card-html .card-content {\n width: 100% !important;\n height: 100% !important;\n}\n:host .container .card-content {\n margin: 0 auto;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: fit-content;\n}\n:host .container .card-iframe-edit span {\n color: black;\n display: block;\n text-align: center;\n}\n:host .container .card-content div {\n width: 100% !important;\n height: 100% !important;\n}\n:host .container .card-tool {\n background-color: rgba(0, 0, 0, 0.6);\n color: white;\n position: absolute;\n bottom: -15px;\n padding-left: 10px;\n font-size: 11px;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 194px;\n border-radius: 2px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 82337: +/*!**************************************************************************!*\ + !*** ./src/app/device/device-list/device-list.component.scss?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 1px; + left: 0px; + right: 0px; +} +:host .filter { + display: inline-block; + min-height: 50px; + padding: 8px 24px 0; +} +:host .filter .mat-form-field { + font-size: 14px; + width: 100%; +} +:host .mat-table { + overflow: auto; + /* min-width: 1500px; */ + height: 100%; +} +:host .mat-row { + min-height: 40px; + height: 43px; +} +:host .mat-cell { + font-size: 13px; +} +:host .mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +:host .mat-header-cell { + font-size: 15px; +} +:host .mat-column-select { + overflow: visible; + flex: 0 0 80px; +} +:host .mat-column-name { + flex: 1 1 200px; +} +:host .mat-column-address { + flex: 2 1 280px; +} +:host .mat-column-device { + flex: 1 1 140px; +} +:host .mat-column-type { + flex: 0 0 120px; +} +:host .mat-column-value { + flex: 1 1 180px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-right: 10px; +} +:host .mat-column-timestamp { + flex: 0 0 140px; +} +:host .mat-column-description { + flex: 1 1 140px; +} +:host .mat-column-logger { + flex: 0 0 80px; + font-size: 10px; +} +:host .mat-column-logger mat-icon { + font-size: 20px; + height: 20px; +} +:host .mat-column-info { + flex: 0 0 40px; +} +:host .mat-column-warning { + flex: 0 0 30px; +} +:host .mat-column-options { + flex: 0 0 60px; +} +:host .mat-column-min { + flex: 0 0 100px; +} +:host .mat-column-max { + flex: 0 0 100px; +} +:host .mat-column-remove { + flex: 0 0 60px; +} +:host .mat-column-direction { + flex: 0 0 120px; +} +:host .selectidthClass { + flex: 0 0 50px; +} +:host .warning { + color: red; +} +:host .my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} +:host .my-header-filter ::ng-deep .mat-sort-header-arrow { + top: -12px; + right: 20px; +} +:host .my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + padding: 3px 1px 3px 2px; + border-radius: 2px; +} +:host .context-menu { + font-size: 13px; +}`, "",{"version":3,"sources":["webpack://./src/app/device/device-list/device-list.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/device-list/device-list.component.scss"],"names":[],"mappings":"AACI;EACI,aAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;ACAR;ADGI;EACI,qBAAA;EACA,gBAAA;EACA,mBAAA;ACDR;ADII;EACI,eAAA;EACA,WAAA;ACFR;ADKI;EACI,cAAA;EACA,uBAAA;EACA,YAAA;ACHR;ADMI;EACI,gBAAA;EACA,YAAA;ACJR;ADOI;EACI,eAAA;ACLR;ADQI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;ACNR;ADSI;EACI,eAAA;ACPR;ADUI;EACI,iBAAA;EACA,cAAA;ACRR;ADWI;EACI,eAAA;ACTR;ADaI;EACI,eAAA;ACXR;ADcI;EACI,eAAA;ACZR;ADeI;EACI,eAAA;ACbR;ADgBI;EACI,eAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,kBAAA;ACdR;ADiBI;EACI,eAAA;ACfR;ADkBI;EACI,eAAA;AChBR;ADmBI;EACI,cAAA;EACA,eAAA;ACjBR;ADoBI;EACI,eAAA;EACA,YAAA;AClBR;ADqBI;EACI,cAAA;ACnBR;ADsBI;EACI,cAAA;ACpBR;ADuBI;EACI,cAAA;ACrBR;ADwBI;EACI,eAAA;ACtBR;ADyBI;EACI,eAAA;ACvBR;AD0BI;EACI,cAAA;ACxBR;AD2BI;EACI,eAAA;ACzBR;AD4BI;EACI,cAAA;AC1BR;AD6BI;EACI,UAAA;AC3BR;AD8BI;EACI,cAAA;EACA,gBAAA;EACA,eAAA;AC5BR;AD+BI;EACI,UAAA;EACA,WAAA;AC7BR;ADgCI;EACI,cAAA;EACA,eAAA;EACA,kBAAA;EACA,wBAAA;EACA,kBAAA;AC9BR;ADiCI;EACI,eAAA;AC/BR","sourcesContent":[":host {\n .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 1px;\n left:0px;\n right:0px;\n }\n\n .filter {\n display: inline-block;\n min-height: 50px;\n padding: 8px 24px 0;\n }\n\n .filter .mat-form-field {\n font-size: 14px;\n width: 100%;\n }\n\n .mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n }\n\n .mat-row {\n min-height: 40px;\n height: 43px;\n }\n\n .mat-cell {\n font-size: 13px;\n }\n\n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n }\n\n .mat-header-cell {\n font-size: 15px;\n }\n\n .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n }\n\n .mat-column-name {\n flex: 1 1 200px;\n }\n\n\n .mat-column-address {\n flex: 2 1 280px;\n }\n\n .mat-column-device {\n flex: 1 1 140px;\n }\n\n .mat-column-type {\n flex: 0 0 120px;\n }\n\n .mat-column-value {\n flex: 1 1 180px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 10px;\n }\n\n .mat-column-timestamp {\n flex: 0 0 140px;\n }\n\n .mat-column-description {\n flex: 1 1 140px;\n }\n\n .mat-column-logger {\n flex: 0 0 80px;\n font-size: 10px;\n }\n\n .mat-column-logger mat-icon {\n font-size: 20px;\n height: 20px;\n }\n\n .mat-column-info {\n flex: 0 0 40px;\n }\n\n .mat-column-warning {\n flex: 0 0 30px;\n }\n\n .mat-column-options {\n flex: 0 0 60px;\n }\n\n .mat-column-min {\n flex: 0 0 100px;\n }\n\n .mat-column-max {\n flex: 0 0 100px;\n }\n\n .mat-column-remove {\n flex: 0 0 60px;\n }\n\n .mat-column-direction {\n flex: 0 0 120px;\n }\n\n .selectidthClass{\n flex: 0 0 50px;\n }\n\n .warning {\n color: red;\n }\n\n .my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n }\n\n .my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n }\n\n .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n }\n\n .context-menu {\n font-size: 13px;\n }\n}\n",":host .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 1px;\n left: 0px;\n right: 0px;\n}\n:host .filter {\n display: inline-block;\n min-height: 50px;\n padding: 8px 24px 0;\n}\n:host .filter .mat-form-field {\n font-size: 14px;\n width: 100%;\n}\n:host .mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n}\n:host .mat-row {\n min-height: 40px;\n height: 43px;\n}\n:host .mat-cell {\n font-size: 13px;\n}\n:host .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n:host .mat-header-cell {\n font-size: 15px;\n}\n:host .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n}\n:host .mat-column-name {\n flex: 1 1 200px;\n}\n:host .mat-column-address {\n flex: 2 1 280px;\n}\n:host .mat-column-device {\n flex: 1 1 140px;\n}\n:host .mat-column-type {\n flex: 0 0 120px;\n}\n:host .mat-column-value {\n flex: 1 1 180px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 10px;\n}\n:host .mat-column-timestamp {\n flex: 0 0 140px;\n}\n:host .mat-column-description {\n flex: 1 1 140px;\n}\n:host .mat-column-logger {\n flex: 0 0 80px;\n font-size: 10px;\n}\n:host .mat-column-logger mat-icon {\n font-size: 20px;\n height: 20px;\n}\n:host .mat-column-info {\n flex: 0 0 40px;\n}\n:host .mat-column-warning {\n flex: 0 0 30px;\n}\n:host .mat-column-options {\n flex: 0 0 60px;\n}\n:host .mat-column-min {\n flex: 0 0 100px;\n}\n:host .mat-column-max {\n flex: 0 0 100px;\n}\n:host .mat-column-remove {\n flex: 0 0 60px;\n}\n:host .mat-column-direction {\n flex: 0 0 120px;\n}\n:host .selectidthClass {\n flex: 0 0 50px;\n}\n:host .warning {\n color: red;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n}\n:host .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n}\n:host .context-menu {\n font-size: 13px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 38453: +/*!************************************************************************!*\ + !*** ./src/app/device/device-map/device-map.component.scss?ngResource ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .main-device { + position: absolute; + text-align: center; + background-color: rgb(12, 101, 189); + color: white; + border-style: solid; + border-color: var(--mapBorderColor); +} +:host .node-device { + position: absolute; + background-color: rgb(79, 86, 93); + text-align: center; + padding-top: 17px; + border-style: solid; + border-color: var(--mapBorderColor); +} +:host .node-device mat-icon { + color: white; +} +:host .node-internal { + position: absolute; + background-color: rgb(114, 120, 125); + text-align: center; + padding-top: 17px; + border-style: solid; + border-color: var(--mapBorderColor); +} +:host .node-internal mat-icon { + color: white; +} +:host .node-flow { + position: absolute; + background-color: rgb(218, 218, 218); + text-align: center; + padding-top: 17px; + border-style: solid; + border-color: var(--mapBorderColor); +} +:host .node-flow mat-icon { + color: black; +} +:host .main-line { + position: absolute; + background-color: var(--mapBorderColor); +} +:host .main-line-flow { + position: absolute; + background-color: var(--mapBorderColor); +} +:host .device-line { + position: absolute; + background-color: var(--mapBorderColor); +} +:host .flow-line { + position: absolute; + background-color: var(--mapBorderColor); +} +:host .connection-line { + position: absolute; + background-color: var(--mapBorderColor); +} +:host .device-header { + display: block; + font-size: 17px; + padding-bottom: 7px; + padding-top: 0px; + min-height: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +:host .device-pro { + display: block; + font-size: 12px; + padding-top: 0px; + min-height: 14px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +:host .device-pro-line { + display: inline-block; + font-size: 12px; + padding-top: 5px; +} +:host .device-icon { + position: absolute; + cursor: pointer; +} +:host .device-edit { + position: absolute; + bottom: 0px; + right: 0px; + font-size: 17px; +} +:host .device-edit-disabled { + color: rgb(136, 136, 136) !important; + cursor: default; +} +:host .device-delete { + position: absolute; + top: 0px; + right: 0px; + font-size: 17px; +} +:host .device-list { + position: absolute; + right: 30px; + font-size: 24px; + bottom: 0px; +} +:host .device-status { + position: absolute; + bottom: 10px; + left: 10px; + width: 10px; + height: 10px; + border-radius: 4px; +} +:host .container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 1px; + left: 0px; + right: 0px; +} +:host .mat-table { + overflow: auto; + /* min-width: 1500px; */ + height: 100%; +} +:host .mat-row { + min-height: 40px; + height: 43px; +} +:host .mat-cell { + font-size: 13px; +} +:host .mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +:host .mat-header-cell { + font-size: 15px; +} +:host .mat-column-select { + flex: 0 0 100px; +} +:host .mat-column-name { + flex: 1 1 160px; +} +:host .mat-column-type { + flex: 0 0 150px; +} +:host .mat-column-polling { + flex: 0 0 100px; +} +:host .mat-column-address { + flex: 2 1 300px; +} +:host .mat-column-status { + flex: 0 0 120px; +} +:host .mat-column-enabled { + flex: 0 0 160px; +} +:host .mat-column-remove { + flex: 0 0 60px; +} +:host .selectWidthClass { + flex: 0 0 100px; +} +:host .selectHideClass { + flex: 0 0 10px; +} +:host .my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + padding: 3px 1px 3px 2px; + border-radius: 2px; +} +:host .showTable { + display: flex; +} +:host .hideTable { + display: none; +}`, "",{"version":3,"sources":["webpack://./src/app/device/device-map/device-map.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/device-map/device-map.component.scss"],"names":[],"mappings":"AAUI;EACI,kBAAA;EACA,kBAAA;EACA,mCAbS;EAcT,YAAA;EACA,mBAAA;EACA,mCAfW;ACMnB;ADYI;EACI,kBAAA;EACA,iCAnBO;EAoBP,kBAAA;EACA,iBAAA;EACA,mBAAA;EACA,mCAtBK;ACYb;ADYQ;EACI,YAAA;ACVZ;ADcI;EACI,kBAAA;EACA,oCA3Ba;EA4Bb,kBAAA;EACA,iBAAA;EACA,mBAAA;EACA,mCAnCK;ACuBb;ADcQ;EACI,YAAA;ACZZ;ADgBI;EACI,kBAAA;EACA,oCA3CS;EA4CT,kBAAA;EACA,iBAAA;EACA,mBAAA;EACA,mCA9CW;ACgCnB;ADgBQ;EACI,YAAA;ACdZ;ADkBI;EACI,kBAAA;EACA,uCAzDK;ACyCb;ADmBI;EACI,kBAAA;EACA,uCA3DS;AC0CjB;ADoBI;EACI,kBAAA;EACA,uCAnEK;ACiDb;ADqBI;EACI,kBAAA;EACA,uCArES;ACkDjB;ADsBI;EACI,kBAAA;EACA,uCA7EK;ACyDb;AD8BI;EACI,cAAA;EACA,eAAA;EACA,mBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;AC5BR;AD+BI;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;AC7BR;ADgCI;EACI,qBAAA;EACA,eAAA;EACA,gBAAA;AC9BR;ADiCI;EACI,kBAAA;EACA,eAAA;AC/BR;ADkCI;EACI,kBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;AChCR;ADmCI;EACI,oCAAA;EACA,eAAA;ACjCR;ADoCI;EACI,kBAAA;EACA,QAAA;EACA,UAAA;EACA,eAAA;AClCR;ADqCI;EACI,kBAAA;EACA,WAAA;EACA,eAAA;EACA,WAAA;ACnCR;ADsCI;EACI,kBAAA;EACA,YAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;ACpCR;ADwCI;EACI,aAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;ACtCR;ADyCI;EACI,cAAA;EACA,uBAAA;EACA,YAAA;ACvCR;AD0CI;EACI,gBAAA;EACA,YAAA;ACxCR;AD2CI;EACI,eAAA;ACzCR;AD4CI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;AC1CR;AD6CI;EACI,eAAA;AC3CR;AD8CI;EAEI,eAAA;AC7CR;ADgDI;EACI,eAAA;AC9CR;ADiDI;EACI,eAAA;AC/CR;ADkDI;EACI,eAAA;AChDR;ADmDI;EACI,eAAA;ACjDR;ADoDI;EACI,eAAA;AClDR;ADqDI;EACI,eAAA;ACnDR;ADsDI;EACI,cAAA;ACpDR;ADuDI;EACI,eAAA;ACrDR;ADwDI;EACI,cAAA;ACtDR;ADyDI;EACI,cAAA;EACA,eAAA;EACA,kBAAA;EACA,wBAAA;EACA,kBAAA;ACvDR;AD0DI;EACI,aAAA;ACxDR;AD2DI;EACI,aAAA;ACzDR","sourcesContent":["$main-backcolor: rgb(12, 101, 189);\n$main-bordercolor: var(--mapBorderColor); //rgb(5, 65, 123);\n$device-color: rgb(79, 86, 93);\n$line-color: var(--mapBorderColor);\n$flow-backcolor: rgb(218, 218, 218);\n$flow-bordercolor: var(--mapBorderColor); //rgb(117, 117, 117);\n$flowline-color: var(--mapBorderColor); //rgb(117, 117, 117);\n$internal-backcolor: rgb(114, 120, 125);\n\n:host {\n .main-device {\n position: absolute;\n text-align: center;\n background-color: $main-backcolor;\n color: white;\n border-style: solid;\n border-color: $main-bordercolor;\n }\n\n .node-device {\n position: absolute;\n background-color: $device-color;\n text-align: center;\n padding-top: 17px;\n border-style: solid;\n border-color: $line-color;\n\n mat-icon {\n color: white;\n }\n }\n\n .node-internal {\n position: absolute;\n background-color: $internal-backcolor;\n text-align: center;\n padding-top: 17px;\n border-style: solid;\n border-color: $line-color;\n\n mat-icon {\n color: white;\n }\n }\n\n .node-flow {\n position: absolute;\n background-color: $flow-backcolor;\n text-align: center;\n padding-top: 17px;\n border-style: solid;\n border-color: $flow-bordercolor;\n\n mat-icon {\n color: black;\n }\n }\n\n .main-line {\n position: absolute;\n background-color: $line-color;\n }\n\n .main-line-flow {\n position: absolute;\n background-color: $flowline-color;\n }\n\n .device-line {\n position: absolute;\n background-color: $line-color;\n }\n\n .flow-line {\n position: absolute;\n background-color: $flowline-color;\n }\n\n .connection-line {\n position: absolute;\n background-color: $line-color;\n }\n\n // .main-device mat-icon {\n // font-size: 0px;\n // }\n // .main-device:hover mat-icon {\n // font-size: 17px;\n // }\n\n .device-header {\n display: block;\n font-size: 17px;\n padding-bottom: 7px;\n padding-top: 0px;\n min-height: 20px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .device-pro {\n display: block;\n font-size: 12px;\n padding-top: 0px;\n min-height: 14px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .device-pro-line {\n display: inline-block;\n font-size: 12px;\n padding-top: 5px;\n }\n\n .device-icon {\n position: absolute;\n cursor: pointer;\n }\n\n .device-edit {\n position: absolute;\n bottom: 0px;\n right: 0px;\n font-size: 17px;\n }\n\n .device-edit-disabled {\n color: rgb(136, 136, 136) !important;\n cursor: default;\n }\n\n .device-delete {\n position: absolute;\n top: 0px;\n right: 0px;\n font-size: 17px;\n }\n\n .device-list {\n position: absolute;\n right: 30px;\n font-size: 24px;\n bottom: 0px;\n }\n\n .device-status {\n position: absolute;\n bottom: 10px;\n left: 10px;\n width: 10px;\n height: 10px;\n border-radius: 4px;\n }\n\n // Table View Mode\n .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 1px;\n left: 0px;\n right: 0px;\n }\n\n .mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n }\n\n .mat-row {\n min-height: 40px;\n height: 43px;\n }\n\n .mat-cell {\n font-size: 13px;\n }\n\n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n }\n\n .mat-header-cell {\n font-size: 15px;\n }\n\n .mat-column-select {\n // overflow: visible;\n flex: 0 0 100px;\n }\n\n .mat-column-name {\n flex: 1 1 160px;\n }\n\n .mat-column-type {\n flex: 0 0 150px;\n }\n\n .mat-column-polling {\n flex: 0 0 100px;\n }\n\n .mat-column-address {\n flex: 2 1 300px;\n }\n\n .mat-column-status {\n flex: 0 0 120px;\n }\n\n .mat-column-enabled {\n flex: 0 0 160px;\n }\n\n .mat-column-remove {\n flex: 0 0 60px;\n }\n\n .selectWidthClass {\n flex: 0 0 100px;\n }\n\n .selectHideClass {\n flex: 0 0 10px;\n }\n\n .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n }\n\n .showTable {\n display: flex;\n }\n\n .hideTable {\n display: none;\n }\n}",":host .main-device {\n position: absolute;\n text-align: center;\n background-color: rgb(12, 101, 189);\n color: white;\n border-style: solid;\n border-color: var(--mapBorderColor);\n}\n:host .node-device {\n position: absolute;\n background-color: rgb(79, 86, 93);\n text-align: center;\n padding-top: 17px;\n border-style: solid;\n border-color: var(--mapBorderColor);\n}\n:host .node-device mat-icon {\n color: white;\n}\n:host .node-internal {\n position: absolute;\n background-color: rgb(114, 120, 125);\n text-align: center;\n padding-top: 17px;\n border-style: solid;\n border-color: var(--mapBorderColor);\n}\n:host .node-internal mat-icon {\n color: white;\n}\n:host .node-flow {\n position: absolute;\n background-color: rgb(218, 218, 218);\n text-align: center;\n padding-top: 17px;\n border-style: solid;\n border-color: var(--mapBorderColor);\n}\n:host .node-flow mat-icon {\n color: black;\n}\n:host .main-line {\n position: absolute;\n background-color: var(--mapBorderColor);\n}\n:host .main-line-flow {\n position: absolute;\n background-color: var(--mapBorderColor);\n}\n:host .device-line {\n position: absolute;\n background-color: var(--mapBorderColor);\n}\n:host .flow-line {\n position: absolute;\n background-color: var(--mapBorderColor);\n}\n:host .connection-line {\n position: absolute;\n background-color: var(--mapBorderColor);\n}\n:host .device-header {\n display: block;\n font-size: 17px;\n padding-bottom: 7px;\n padding-top: 0px;\n min-height: 20px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n:host .device-pro {\n display: block;\n font-size: 12px;\n padding-top: 0px;\n min-height: 14px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n:host .device-pro-line {\n display: inline-block;\n font-size: 12px;\n padding-top: 5px;\n}\n:host .device-icon {\n position: absolute;\n cursor: pointer;\n}\n:host .device-edit {\n position: absolute;\n bottom: 0px;\n right: 0px;\n font-size: 17px;\n}\n:host .device-edit-disabled {\n color: rgb(136, 136, 136) !important;\n cursor: default;\n}\n:host .device-delete {\n position: absolute;\n top: 0px;\n right: 0px;\n font-size: 17px;\n}\n:host .device-list {\n position: absolute;\n right: 30px;\n font-size: 24px;\n bottom: 0px;\n}\n:host .device-status {\n position: absolute;\n bottom: 10px;\n left: 10px;\n width: 10px;\n height: 10px;\n border-radius: 4px;\n}\n:host .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 1px;\n left: 0px;\n right: 0px;\n}\n:host .mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n}\n:host .mat-row {\n min-height: 40px;\n height: 43px;\n}\n:host .mat-cell {\n font-size: 13px;\n}\n:host .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n:host .mat-header-cell {\n font-size: 15px;\n}\n:host .mat-column-select {\n flex: 0 0 100px;\n}\n:host .mat-column-name {\n flex: 1 1 160px;\n}\n:host .mat-column-type {\n flex: 0 0 150px;\n}\n:host .mat-column-polling {\n flex: 0 0 100px;\n}\n:host .mat-column-address {\n flex: 2 1 300px;\n}\n:host .mat-column-status {\n flex: 0 0 120px;\n}\n:host .mat-column-enabled {\n flex: 0 0 160px;\n}\n:host .mat-column-remove {\n flex: 0 0 60px;\n}\n:host .selectWidthClass {\n flex: 0 0 100px;\n}\n:host .selectHideClass {\n flex: 0 0 10px;\n}\n:host .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n}\n:host .showTable {\n display: flex;\n}\n:host .hideTable {\n display: none;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 38136: +/*!**********************************************************************************!*\ + !*** ./src/app/device/device-property/device-property.component.scss?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `::ng-deep .mat-expansion-panel-body { + padding-left: 5px !important; + padding-right: 5px !important; +} + +.my-expansion-panel { + width: 356px; + display: block; + margin-top: 10px; +} +.my-expansion-panel mat-expansion-panel { + box-shadow: none !important; + background-color: var(--formExtBackground); + border-radius: 2px; +} +.my-expansion-panel .my-expansion-conent { + padding-bottom: 10px !important; + max-height: 320px; + overflow: auto; +} +.my-expansion-panel .error { + display: block; + line-height: 20px; + width: 315px; + color: red; + font-size: 13px; +} + +.multiline { + overflow: auto; + max-height: 300px; +} + +.address { + width: 350px; +} + +.adpu { + width: 120px; +} + +.header { + font-size: 13px; + padding-left: 5px; + padding-right: 15px; +} + +.expand-panel { + display: block; + margin: 5px 10px 10px 10px; +} +.expand-panel .my-form-field { + margin-top: 5px; +}`, "",{"version":3,"sources":["webpack://./src/app/device/device-property/device-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/device-property/device-property.component.scss"],"names":[],"mappings":"AAAA;EACI,4BAAA;EACA,6BAAA;ACCJ;;ADEA;EACI,YAAA;EACA,cAAA;EACA,gBAAA;ACCJ;ADAI;EACI,2BAAA;EACA,0CAAA;EACA,kBAAA;ACER;ADCI;EACI,+BAAA;EACA,iBAAA;EACA,cAAA;ACCR;ADEI;EACI,cAAA;EACA,iBAAA;EACA,YAAA;EACA,UAAA;EACA,eAAA;ACAR;;ADIA;EACI,cAAA;EACA,iBAAA;ACDJ;;ADIA;EACI,YAAA;ACDJ;;ADIA;EACI,YAAA;ACDJ;;ADIA;EACI,eAAA;EACA,iBAAA;EACA,mBAAA;ACDJ;;ADIA;EACI,cAAA;EACA,0BAAA;ACDJ;ADGI;EACI,eAAA;ACDR","sourcesContent":["::ng-deep .mat-expansion-panel-body {\n padding-left: 5px !important;\n padding-right: 5px !important;\n}\n\n.my-expansion-panel {\n width: 356px; \n display: block;\n margin-top: 10px;\n mat-expansion-panel {\n box-shadow: none !important;\n background-color:var(--formExtBackground);\n border-radius: 2px;\n }\n\n .my-expansion-conent {\n padding-bottom: 10px !important;\n max-height: 320px;\n overflow: auto;\n }\n\n .error {\n display: block;\n line-height: 20px;\n width: 315px;\n color: red;\n font-size: 13px;\n }\n}\n\n.multiline {\n overflow: auto;\n max-height: 300px;\n}\n\n.address {\n width: 350px;\n}\n\n.adpu {\n width: 120px;\n}\n\n.header {\n font-size: 13px;\n padding-left: 5px;\n padding-right: 15px;\n}\n\n.expand-panel {\n display: block;\n margin: 5px 10px 10px 10px;\n\n .my-form-field {\n margin-top: 5px;\n }\n}","::ng-deep .mat-expansion-panel-body {\n padding-left: 5px !important;\n padding-right: 5px !important;\n}\n\n.my-expansion-panel {\n width: 356px;\n display: block;\n margin-top: 10px;\n}\n.my-expansion-panel mat-expansion-panel {\n box-shadow: none !important;\n background-color: var(--formExtBackground);\n border-radius: 2px;\n}\n.my-expansion-panel .my-expansion-conent {\n padding-bottom: 10px !important;\n max-height: 320px;\n overflow: auto;\n}\n.my-expansion-panel .error {\n display: block;\n line-height: 20px;\n width: 315px;\n color: red;\n font-size: 13px;\n}\n\n.multiline {\n overflow: auto;\n max-height: 300px;\n}\n\n.address {\n width: 350px;\n}\n\n.adpu {\n width: 120px;\n}\n\n.header {\n font-size: 13px;\n padding-left: 5px;\n padding-right: 15px;\n}\n\n.expand-panel {\n display: block;\n margin: 5px 10px 10px 10px;\n}\n.expand-panel .my-form-field {\n margin-top: 5px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 31683: +/*!********************************************************************************************!*\ + !*** ./src/app/device/device-tag-selection/device-tag-selection.component.scss?ngResource ***! + \********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + min-width: 930px; +} +:host .mat-table { + overflow: auto; + /* min-width: 1500px; */ + height: 100%; +} +:host .mat-header-cell.mat-sort-header-sorted { + /* color: black; */ +} +:host .mat-row { + min-height: 34px; + height: 34px; + border-bottom-color: rgba(0, 0, 0, 0.06); +} +:host .mat-cell { + font-size: 13px; +} +:host .mat-cell ::ng-deep .mat-checkbox-inner-container { + height: 16px; + width: 16px; + margin-left: 2px; +} +:host .mat-header-row { + top: 0; + position: sticky; + z-index: 1; + /* background-color: rgba(0,0,0,0.7); */ + /* background-color: rgb(30, 30, 30); */ + /* color: white; */ +} +:host .mat-header-cell { + /* color: white; */ + font-size: 11px; +} +:host .mat-column-toogle { + overflow: visible; + flex: 0 0 40px; +} +:host .mat-column-name { + flex: 0 0 220px; +} +:host .mat-column-address { + flex: 0 0 380px; +} +:host .mat-column-device { + flex: 0 0 220px; +} +:host .mat-column-select { + flex: 0 0 40px; +} +:host .my-header-filter ::ng-deep .mat-sort-header-content { + display: unset; + text-align: left; +} +:host .my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} +:host .my-header-filter span { + padding-left: 5px; +} +:host .my-header-filter ::ng-deep .mat-sort-header-arrow { + /* color: white; */ + top: -14px; + right: 20px; +} +:host .my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + /* color: white; */ + padding: 3px 1px 3px 2px; + border-radius: 2px; + border: 1px solid var(--formInputBackground); + background-color: var(--formInputBackground); + color: var(--formInputColor); +} +:host .my-header-filter-input:focus { + padding: 3px 1px 3px 2px; + border: 1px solid var(--formInputBorderFocus); + background-color: var(--formInputBackgroundFocus); +}`, "",{"version":3,"sources":["webpack://./src/app/device/device-tag-selection/device-tag-selection.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/device-tag-selection/device-tag-selection.component.scss"],"names":[],"mappings":"AACI;EACI,gBAAA;ACAR;ADGI;EACI,cAAA;EACA,uBAAA;EACA,YAAA;ACDR;ADII;EACI,kBAAA;ACFR;ADKI;EACI,gBAAA;EACA,YAAA;EACA,wCAAA;ACHR;ADMI;EACI,eAAA;ACJR;ADOI;EACI,YAAA;EACA,WAAA;EACA,gBAAA;ACLR;ADQI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;EACA,uCAAA;EACA,uCAAA;EACA,kBAAA;ACNR;ADQI;EACI,kBAAA;EACA,eAAA;ACNR;ADSI;EACI,iBAAA;EACA,cAAA;ACPR;ADUI;EACI,eAAA;ACRR;ADWI;EACI,eAAA;ACTR;ADYI;EACI,eAAA;ACVR;ADaI;EACI,cAAA;ACXR;ADcI;EACI,cAAA;EACA,gBAAA;ACZR;ADeI;EACI,cAAA;EACA,gBAAA;EACA,eAAA;ACbR;ADgBI;EACI,iBAAA;ACdR;ADkBI;EACI,kBAAA;EACA,UAAA;EACA,WAAA;AChBR;ADmBI;EACI,cAAA;EACA,eAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;EACA,kBAAA;EACA,4CAAA;EACA,4CAAA;EACA,4BAAA;ACjBR;ADoBI;EACI,wBAAA;EACA,6CAAA;EACA,iDAAA;AClBR","sourcesContent":[":host {\n .container {\n min-width: 930px;\n }\n\n .mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n }\n \n .mat-header-cell.mat-sort-header-sorted {\n /* color: black; */\n }\n \n .mat-row {\n min-height: 34px;\n height: 34px;\n border-bottom-color: rgba(0,0,0,0.06);\n }\n \n .mat-cell {\n font-size: 13px;\n }\n \n .mat-cell ::ng-deep .mat-checkbox-inner-container {\n height: 16px;\n width: 16px;\n margin-left: 2px;\n }\n \n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n /* background-color: rgba(0,0,0,0.7); */\n /* background-color: rgb(30, 30, 30); */\n /* color: white; */\n }\n .mat-header-cell {\n /* color: white; */\n font-size: 11px;\n }\n \n .mat-column-toogle {\n overflow: visible;\n flex: 0 0 40px;\n }\n \n .mat-column-name {\n flex: 0 0 220px;\n }\n \n .mat-column-address {\n flex: 0 0 380px;\n }\n \n .mat-column-device {\n flex: 0 0 220px;\n }\n \n .mat-column-select {\n flex: 0 0 40px;\n }\n \n .my-header-filter ::ng-deep .mat-sort-header-content {\n display: unset;\n text-align: left;\n }\n \n .my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n }\n \n .my-header-filter span {\n padding-left: 5px;\n \n }\n \n .my-header-filter ::ng-deep .mat-sort-header-arrow {\n /* color: white; */\n top: -14px;\n right: 20px;\n }\n \n .my-header-filter-input {\n display: block; \n margin-top: 4px;\n margin-bottom: 6px;\n /* color: white; */\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n border: 1px solid var(--formInputBackground);\n background-color: var(--formInputBackground);\n color: var(--formInputColor);\n }\n \n .my-header-filter-input:focus {\n padding: 3px 1px 3px 2px;\n border: 1px solid var(--formInputBorderFocus);\n background-color: var(--formInputBackgroundFocus);\n }\n}\n",":host .container {\n min-width: 930px;\n}\n:host .mat-table {\n overflow: auto;\n /* min-width: 1500px; */\n height: 100%;\n}\n:host .mat-header-cell.mat-sort-header-sorted {\n /* color: black; */\n}\n:host .mat-row {\n min-height: 34px;\n height: 34px;\n border-bottom-color: rgba(0, 0, 0, 0.06);\n}\n:host .mat-cell {\n font-size: 13px;\n}\n:host .mat-cell ::ng-deep .mat-checkbox-inner-container {\n height: 16px;\n width: 16px;\n margin-left: 2px;\n}\n:host .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n /* background-color: rgba(0,0,0,0.7); */\n /* background-color: rgb(30, 30, 30); */\n /* color: white; */\n}\n:host .mat-header-cell {\n /* color: white; */\n font-size: 11px;\n}\n:host .mat-column-toogle {\n overflow: visible;\n flex: 0 0 40px;\n}\n:host .mat-column-name {\n flex: 0 0 220px;\n}\n:host .mat-column-address {\n flex: 0 0 380px;\n}\n:host .mat-column-device {\n flex: 0 0 220px;\n}\n:host .mat-column-select {\n flex: 0 0 40px;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-content {\n display: unset;\n text-align: left;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n:host .my-header-filter span {\n padding-left: 5px;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-arrow {\n /* color: white; */\n top: -14px;\n right: 20px;\n}\n:host .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n /* color: white; */\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n border: 1px solid var(--formInputBackground);\n background-color: var(--formInputBackground);\n color: var(--formInputColor);\n}\n:host .my-header-filter-input:focus {\n padding: 3px 1px 3px 2px;\n border: 1px solid var(--formInputBorderFocus);\n background-color: var(--formInputBackgroundFocus);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 10563: +/*!**************************************************************************!*\ + !*** ./src/app/device/tag-options/tag-options.component.scss?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 350px; +} +:host .container .item-block { + display: block; +} +:host .container .item-block mat-select, +:host .container .item-block input, +:host .container .item-block span { + width: calc(100% - 5px); +} +:host .container .item-param { + display: block; +} +:host .container .item-param input { + width: 150px; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-options/tag-options.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-options/tag-options.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEQ;EACI,cAAA;ACAZ;ADEY;;;EAGI,uBAAA;ACAhB;ADIQ;EACI,cAAA;ACFZ;ADIY;EACI,YAAA;ACFhB","sourcesContent":[":host {\n .container {\n width: 350px;\n\n .item-block {\n display: block;\n\n mat-select,\n input,\n span {\n width: calc(100% - 5px);\n }\n }\n\n .item-param {\n display: block;\n\n input {\n width: 150px;\n }\n }\n }\n}",":host .container {\n width: 350px;\n}\n:host .container .item-block {\n display: block;\n}\n:host .container .item-block mat-select,\n:host .container .item-block input,\n:host .container .item-block span {\n width: calc(100% - 5px);\n}\n:host .container .item-param {\n display: block;\n}\n:host .container .item-param input {\n width: 150px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 66341: +/*!***********************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-adsclient/tag-property-edit-adsclient.component.scss?ngResource ***! + \***********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-adsclient/tag-property-edit-adsclient.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-adsclient/tag-property-edit-adsclient.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n}",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 87498: +/*!*************************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-ethernetip/tag-property-edit-ethernetip.component.scss?ngResource ***! + \*************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-ethernetip/tag-property-edit-ethernetip.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-ethernetip/tag-property-edit-ethernetip.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n}\n",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 91302: +/*!*************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-gpio/tag-property-edit-gpio.component.scss?ngResource ***! + \*************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +} +:host .item-combi { + width: 100%; +} +:host .item-combi .item-inline { + width: calc(50% - 10px); + display: inline-block; +} +:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span { + width: 100%; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-gpio/tag-property-edit-gpio.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-gpio/tag-property-edit-gpio.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ;ADEI;EACI,WAAA;ACAR;ADCQ;EACI,uBAAA;EACA,qBAAA;ACCZ;ADAY;EACI,WAAA;ACEhB","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n .item-combi {\n width: 100%;\n .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n mat-select, input, span {\n width: 100%;\n }\n }\n }\n\n}",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}\n:host .item-combi {\n width: 100%;\n}\n:host .item-combi .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n}\n:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span {\n width: 100%;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 11808: +/*!*********************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-internal/tag-property-edit-internal.component.scss?ngResource ***! + \*********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +} +:host .item-combi { + width: 100%; +} +:host .item-combi .item-inline { + width: calc(50% - 10px); + display: inline-block; +} +:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span { + width: 100%; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-internal/tag-property-edit-internal.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-internal/tag-property-edit-internal.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ;ADEI;EACI,WAAA;ACAR;ADCQ;EACI,uBAAA;EACA,qBAAA;ACCZ;ADAY;EACI,WAAA;ACEhB","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n .item-combi {\n width: 100%;\n .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n mat-select, input, span {\n width: 100%;\n }\n }\n }\n}",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}\n:host .item-combi {\n width: 100%;\n}\n:host .item-combi .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n}\n:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span {\n width: 100%;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 69521: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-melsec/tag-property-edit-melsec.component.scss?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-melsec/tag-property-edit-melsec.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-melsec/tag-property-edit-melsec.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n}\n",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 21044: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-modbus/tag-property-edit-modbus.component.scss?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-modbus/tag-property-edit-modbus.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-modbus/tag-property-edit-modbus.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n}",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 12788: +/*!***************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-opcua/tag-property-edit-opcua.component.scss?ngResource ***! + \***************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + display: block; +} +:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-opcua/tag-property-edit-opcua.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-opcua/tag-property-edit-opcua.component.scss"],"names":[],"mappings":"AAAA;EACI,cAAA;ACCJ;ADCI;EACI,YAAA;ACCR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ","sourcesContent":[":host {\n display: block;\n\n .container {\n width: 400px;\n }\n\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n}",":host {\n display: block;\n}\n:host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 40950: +/*!*********************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-s7/tag-property-edit-s7.component.scss?ngResource ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-s7/tag-property-edit-s7.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-s7/tag-property-edit-s7.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n}\n",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 53808: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-server/tag-property-edit-server.component.scss?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +} +:host .item-combi { + width: 100%; +} +:host .item-combi .item-inline { + width: calc(50% - 10px); + display: inline-block; +} +:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span { + width: 100%; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-server/tag-property-edit-server.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-server/tag-property-edit-server.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ;ADEI;EACI,WAAA;ACAR;ADCQ;EACI,uBAAA;EACA,qBAAA;ACCZ;ADAY;EACI,WAAA;ACEhB","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n .item-combi {\n width: 100%;\n .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n mat-select, input, span {\n width: 100%;\n }\n }\n }\n\n}",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}\n:host .item-combi {\n width: 100%;\n}\n:host .item-combi .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n}\n:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span {\n width: 100%;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 4462: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-webcam/tag-property-edit-webcam.component.scss?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 400px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 5px); +} +:host .item-combi { + width: 100%; +} +:host .item-combi .item-inline { + width: calc(50% - 10px); + display: inline-block; +} +:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span { + width: 100%; +}`, "",{"version":3,"sources":["webpack://./src/app/device/tag-property/tag-property-edit-webcam/tag-property-edit-webcam.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/tag-property/tag-property-edit-webcam/tag-property-edit-webcam.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,uBAAA;ACCZ;ADEI;EACI,WAAA;ACAR;ADCQ;EACI,uBAAA;EACA,qBAAA;ACCZ;ADAY;EACI,WAAA;ACEhB","sourcesContent":[":host {\n .container {\n width: 400px;\n }\n .item-block {\n display: block;\n mat-select, input, span {\n width:calc(100% - 5px);\n }\n }\n .item-combi {\n width: 100%;\n .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n mat-select, input, span {\n width: 100%;\n }\n }\n }\n}",":host .container {\n width: 400px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 5px);\n}\n:host .item-combi {\n width: 100%;\n}\n:host .item-combi .item-inline {\n width: calc(50% - 10px);\n display: inline-block;\n}\n:host .item-combi .item-inline mat-select, :host .item-combi .item-inline input, :host .item-combi .item-inline span {\n width: 100%;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 3222: +/*!********************************************************************************!*\ + !*** ./src/app/device/topic-property/topic-property.component.scss?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .topic { + font-size: 12px; + width: 100%; + height: 24px; + cursor: pointer; + margin-bottom: 1px; +} +:host .topic-active { + width: 100%; + height: 26px; + background-color: violet; +} +:host .browser-result { + height: 240px; + border: 1px solid var(--formBorder); + padding: 5px 5px 3px 8px; + overflow: auto; +} +:host .browser-result .browser-item:hover { + background-color: rgba(0, 0, 0, 0.1); +} +:host .select-tool { + margin-top: 10px; + display: block; +} +:host .select-tool .select-item { + display: inline-block; + margin-right: 10px; +} +:host .select-tool .select-item input { + width: 300px; +} +:host .select-tool .add-payload { + margin-right: 20px; +} +:host .topic-text { + width: 250px; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 24px; +} +:host .topic-name { + display: inline-block; + width: 220px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 12px; + font-family: monospace; +} +:host .topic-name input { + width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 12px; + font-family: monospace; + background-color: var(--formExtInputBackground); + padding: 4px 2px 4px 3px !important; +} +:host .topic-name input:focus { + padding: 3px 1px 3px 2px !important; + border: 1px solid var(--formInputBorderFocus); + background-color: var(--formInputBackgroundFocus); +} +:host .topic-value { + font-size: 12px; + color: gray; + width: 280px; + display: inline-block; + overflow-wrap: break-word; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + line-height: 24px; +} +:host .topic-check { + float: right; + margin-right: 12px; +} +:host .topic-publish-result { + height: 160px; + width: 100%; + background-color: var(--formInputBackground); + padding: 5px 5px 3px 8px; + overflow: auto; + white-space: pre; + font-family: monospace; + font-size: 12px; +} +:host .topic-subscription-header { + display: inline-block; + font-size: 12px; + width: 100%; +} +:host .topic-subscription-header span { + vertical-align: sub; +} +:host .topic-subscription-result { + height: 160px; + background-color: var(--formInputBackground); + padding: 5px 5px 3px 8px; + overflow-y: auto; + overflow-x: hidden; + white-space: pre; + font-family: monospace; + font-size: 12px; +} +:host .separator-line { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + height: 1px; + width: 100%; +} +:host .toggle-group { + height: 29px; + align-items: center; +}`, "",{"version":3,"sources":["webpack://./src/app/device/topic-property/topic-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/device/topic-property/topic-property.component.scss"],"names":[],"mappings":"AACI;EACI,eAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;ACAR;ADGI;EACI,WAAA;EACA,YAAA;EACA,wBAAA;ACDR;ADII;EACI,aAAA;EACA,mCAAA;EACA,wBAAA;EACA,cAAA;ACFR;ADIQ;EACI,oCAAA;ACFZ;ADMI;EACI,gBAAA;EACA,cAAA;ACJR;ADMQ;EACI,qBAAA;EACA,kBAAA;ACJZ;ADMY;EACI,YAAA;ACJhB;ADQQ;EACI,kBAAA;ACNZ;ADWI;EACI,YAAA;EACA,qBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,iBAAA;ACTR;ADYI;EACI,qBAAA;EACA,YAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;ACVR;ADcQ;EACI,YAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,+CAAA;EACA,mCAAA;ACZZ;ADeQ;EACI,mCAAA;EACA,6CAAA;EACA,iDAAA;ACbZ;ADiBI;EACI,eAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;EACA,yBAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,iBAAA;ACfR;ADkBI;EACI,YAAA;EACA,kBAAA;AChBR;ADmBI;EACI,aAAA;EACA,WAAA;EACA,4CAAA;EACA,wBAAA;EACA,cAAA;EACA,gBAAA;EACA,sBAAA;EACA,eAAA;ACjBR;ADoBI;EACI,qBAAA;EACA,eAAA;EACA,WAAA;AClBR;ADoBQ;EACI,mBAAA;AClBZ;ADsBI;EACI,aAAA;EACA,4CAAA;EACA,wBAAA;EACA,gBAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,eAAA;ACpBR;ADuBI;EACI,2CAAA;EACA,WAAA;EACA,WAAA;ACrBR;ADwBI;EACI,YAAA;EACA,mBAAA;ACtBR","sourcesContent":[":host {\n .topic {\n font-size: 12px;\n width: 100%;\n height: 24px;\n cursor: pointer;\n margin-bottom: 1px;\n }\n\n .topic-active {\n width: 100%;\n height: 26px;\n background-color: violet;\n }\n\n .browser-result {\n height: 240px;\n border: 1px solid var(--formBorder);\n padding: 5px 5px 3px 8px;\n overflow: auto;\n\n .browser-item:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n }\n\n .select-tool {\n margin-top: 10px;\n display: block;\n\n .select-item {\n display: inline-block;\n margin-right: 10px;\n\n input {\n width: 300px;\n }\n }\n\n .add-payload {\n margin-right: 20px;\n ;\n }\n }\n\n .topic-text {\n width: 250px;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 24px;\n }\n\n .topic-name {\n display: inline-block;\n width: 220px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n font-family: monospace;\n }\n\n .topic-name {\n input {\n width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n font-family: monospace;\n background-color: var(--formExtInputBackground);\n padding: 4px 2px 4px 3px !important;\n }\n\n input:focus {\n padding: 3px 1px 3px 2px !important;\n border: 1px solid var(--formInputBorderFocus);\n background-color: var(--formInputBackgroundFocus);\n }\n }\n\n .topic-value {\n font-size: 12px;\n color: gray;\n width: 280px;\n display: inline-block;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n line-height: 24px;\n }\n\n .topic-check {\n float: right;\n margin-right: 12px;\n }\n\n .topic-publish-result {\n height: 160px;\n width: 100%;\n background-color: var(--formInputBackground);\n padding: 5px 5px 3px 8px;\n overflow: auto;\n white-space: pre;\n font-family: monospace;\n font-size: 12px;\n }\n\n .topic-subscription-header {\n display: inline-block;\n font-size: 12px;\n width: 100%;\n\n span {\n vertical-align: sub;\n }\n }\n\n .topic-subscription-result {\n height: 160px;\n background-color: var(--formInputBackground);\n padding: 5px 5px 3px 8px;\n overflow-y: auto;\n overflow-x: hidden;\n white-space: pre;\n font-family: monospace;\n font-size: 12px;\n }\n\n .separator-line {\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n height: 1px;\n width: 100%;\n }\n\n .toggle-group {\n height: 29px;\n align-items: center;\n }\n}",":host .topic {\n font-size: 12px;\n width: 100%;\n height: 24px;\n cursor: pointer;\n margin-bottom: 1px;\n}\n:host .topic-active {\n width: 100%;\n height: 26px;\n background-color: violet;\n}\n:host .browser-result {\n height: 240px;\n border: 1px solid var(--formBorder);\n padding: 5px 5px 3px 8px;\n overflow: auto;\n}\n:host .browser-result .browser-item:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n:host .select-tool {\n margin-top: 10px;\n display: block;\n}\n:host .select-tool .select-item {\n display: inline-block;\n margin-right: 10px;\n}\n:host .select-tool .select-item input {\n width: 300px;\n}\n:host .select-tool .add-payload {\n margin-right: 20px;\n}\n:host .topic-text {\n width: 250px;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 24px;\n}\n:host .topic-name {\n display: inline-block;\n width: 220px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n font-family: monospace;\n}\n:host .topic-name input {\n width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n font-family: monospace;\n background-color: var(--formExtInputBackground);\n padding: 4px 2px 4px 3px !important;\n}\n:host .topic-name input:focus {\n padding: 3px 1px 3px 2px !important;\n border: 1px solid var(--formInputBorderFocus);\n background-color: var(--formInputBackgroundFocus);\n}\n:host .topic-value {\n font-size: 12px;\n color: gray;\n width: 280px;\n display: inline-block;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n line-height: 24px;\n}\n:host .topic-check {\n float: right;\n margin-right: 12px;\n}\n:host .topic-publish-result {\n height: 160px;\n width: 100%;\n background-color: var(--formInputBackground);\n padding: 5px 5px 3px 8px;\n overflow: auto;\n white-space: pre;\n font-family: monospace;\n font-size: 12px;\n}\n:host .topic-subscription-header {\n display: inline-block;\n font-size: 12px;\n width: 100%;\n}\n:host .topic-subscription-header span {\n vertical-align: sub;\n}\n:host .topic-subscription-result {\n height: 160px;\n background-color: var(--formInputBackground);\n padding: 5px 5px 3px 8px;\n overflow-y: auto;\n overflow-x: hidden;\n white-space: pre;\n font-family: monospace;\n font-size: 12px;\n}\n:host .separator-line {\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n height: 1px;\n width: 100%;\n}\n:host .toggle-group {\n height: 29px;\n align-items: center;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 69155: +/*!**************************************************************************!*\ + !*** ./src/app/editor/card-config/card-config.component.scss?ngResource ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 700px; + height: 500px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/card-config/card-config.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/card-config/card-config.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;EACA,aAAA;ACAR","sourcesContent":[":host {\n .container {\n width: 700px;\n height: 500px;\n }\n}",":host .container {\n width: 700px;\n height: 500px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 15341: +/*!*******************************************************************************************************!*\ + !*** ./src/app/editor/chart-config/chart-line-property/chart-line-property.component.scss?ngResource ***! + \*******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 340px; +} +:host .block-input { + display: block; + width: 100%; +} +:host .block-input input { + width: calc(100% - 5px); +} +:host .block-zones { + display: block; + max-height: 220px; + overflow-y: auto; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/chart-config/chart-line-property/chart-line-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/chart-config/chart-line-property/chart-line-property.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADGI;EACI,cAAA;EACA,WAAA;ACDR;ADGQ;EACI,uBAAA;ACDZ;ADKI;EACI,cAAA;EACA,iBAAA;EACA,gBAAA;ACHR","sourcesContent":[":host {\n .container {\n width: 340px;\n }\n\n .block-input {\n display: block;\n width: 100%;\n\n input {\n width: calc(100% - 5px);\n }\n }\n\n .block-zones {\n display: block;\n max-height: 220px;\n overflow-y: auto;\n }\n}",":host .container {\n width: 340px;\n}\n:host .block-input {\n display: block;\n width: 100%;\n}\n:host .block-input input {\n width: calc(100% - 5px);\n}\n:host .block-zones {\n display: block;\n max-height: 220px;\n overflow-y: auto;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 14039: +/*!********************************************************************************************!*\ + !*** ./src/app/editor/client-script-access/client-script-access.component.scss?ngResource ***! + \********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + max-width: 900px; + width: 100%; + min-width: 700px; + margin: 0 auto; +} +:host .container .info { + display: flex; + margin-bottom: 20px; +} +:host .container .function-list { + display: flex; + flex-direction: column; + gap: 8px; + margin-bottom: 20px; +} +:host .container .function-item { + padding: 1px; +} +:host .container .function-item span { + font-size: 13px; + color: gray; + margin-left: 6px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/client-script-access/client-script-access.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/client-script-access/client-script-access.component.scss"],"names":[],"mappings":"AACI;EACI,gBAAA;EACA,WAAA;EACA,gBAAA;EACA,cAAA;ACAR;ADEQ;EACI,aAAA;EACA,mBAAA;ACAZ;ADGQ;EACI,aAAA;EACA,sBAAA;EACA,QAAA;EACA,mBAAA;ACDZ;ADIQ;EACI,YAAA;ACFZ;ADKQ;EACI,eAAA;EACA,WAAA;EACA,gBAAA;ACHZ","sourcesContent":[":host {\n .container {\n max-width: 900px;\n width: 100%;\n min-width: 700px;\n margin: 0 auto;\n\n .info {\n display: flex;\n margin-bottom: 20px;\n }\n\n .function-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 20px;\n }\n\n .function-item {\n padding: 1px;\n }\n\n .function-item span {\n font-size: 13px;\n color: gray;\n margin-left: 6px;\n }\n }\n}",":host .container {\n max-width: 900px;\n width: 100%;\n min-width: 700px;\n margin: 0 auto;\n}\n:host .container .info {\n display: flex;\n margin-bottom: 20px;\n}\n:host .container .function-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 20px;\n}\n:host .container .function-item {\n padding: 1px;\n}\n:host .container .function-item span {\n font-size: 13px;\n color: gray;\n margin-left: 6px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 39881: +/*!**************************************************************************************!*\ + !*** ./src/app/editor/editor-views-list/editor-views-list.component.scss?ngResource ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .leftbar-item { + padding: 3px 0px 1px 0px; + display: flow-root; +} +:host .leftbar-item-active { + background-color: var(--toolboxItemActiveBackground); + color: var(--toolboxItemActiveColor); +} +:host .leftbar-item span { + float: left; +} +:host .leftbar-item .leftbar-item-type { + float: left; + padding-left: 4px; + font-size: 16px; + line-height: 20px; +} +:host .leftbar-item mat-icon { + float: right; + font-size: 18px; +} +:host .view-item-text { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: calc(100% - 54px); +} +:host .item-icon-view { + color: #7CACF8; +} +:host .item-icon-cards { + color: #F8A57C; +} +:host .item-icon-maps { + color: #37BE5F; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/editor-views-list/editor-views-list.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/editor-views-list/editor-views-list.component.scss"],"names":[],"mappings":"AACI;EACI,wBAAA;EACA,kBAAA;ACAR;ADGI;EACI,oDAAA;EACA,oCAAA;ACDR;ADII;EACI,WAAA;ACFR;ADKI;EACI,WAAA;EACA,iBAAA;EACA,eAAA;EACA,iBAAA;ACHR;ADMI;EACI,YAAA;EACA,eAAA;ACJR;ADOI;EACI,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,4BAAA;ACLR;ADQI;EACI,cAAA;ACNR;ADSI;EACI,cAAA;ACPR;ADUI;EACI,cAAA;ACRR","sourcesContent":[":host {\n .leftbar-item {\n padding: 3px 0px 1px 0px;\n display: flow-root;\n }\n\n .leftbar-item-active {\n background-color: var(--toolboxItemActiveBackground);\n color: var(--toolboxItemActiveColor);\n }\n\n .leftbar-item span {\n float: left;\n }\n\n .leftbar-item .leftbar-item-type {\n float: left;\n padding-left: 4px;\n font-size: 16px;\n line-height: 20px;\n }\n\n .leftbar-item mat-icon {\n float: right;\n font-size: 18px;\n }\n\n .view-item-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: calc(100% - 54px);\n }\n\n .item-icon-view {\n color: #7CACF8;\n }\n\n .item-icon-cards {\n color: #F8A57C;\n }\n\n .item-icon-maps {\n color: #37BE5F;\n }\n}",":host .leftbar-item {\n padding: 3px 0px 1px 0px;\n display: flow-root;\n}\n:host .leftbar-item-active {\n background-color: var(--toolboxItemActiveBackground);\n color: var(--toolboxItemActiveColor);\n}\n:host .leftbar-item span {\n float: left;\n}\n:host .leftbar-item .leftbar-item-type {\n float: left;\n padding-left: 4px;\n font-size: 16px;\n line-height: 20px;\n}\n:host .leftbar-item mat-icon {\n float: right;\n font-size: 18px;\n}\n:host .view-item-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: calc(100% - 54px);\n}\n:host .item-icon-view {\n color: #7CACF8;\n}\n:host .item-icon-cards {\n color: #F8A57C;\n}\n:host .item-icon-maps {\n color: #37BE5F;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 70288: +/*!**************************************************************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-header-item-property/layout-header-item-property.component.scss?ngResource ***! + \**************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .icons-selector { + width: 60px; + height: 30px; +} +:host .field-input-60 input { + width: 60px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/layout-property/layout-header-item-property/layout-header-item-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/layout-property/layout-header-item-property/layout-header-item-property.component.scss"],"names":[],"mappings":"AACI;EACI,WAAA;EACA,YAAA;ACAR;ADIQ;EACI,WAAA;ACFZ","sourcesContent":[":host {\n .icons-selector {\n width: 60px;\n height: 30px;\n }\n\n .field-input-60 {\n input {\n width: 60px;\n }\n }\n}",":host .icons-selector {\n width: 60px;\n height: 30px;\n}\n:host .field-input-60 input {\n width: 60px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 74244: +/*!**********************************************************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-menu-item-property/layout-menu-item-property.component.scss?ngResource ***! + \**********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host mat-option .my-form-field { + width: 100%; +} +:host mat-option .my-form-field input { + width: calc(100% - 17px); + margin-left: 5px; + height: 13px; +} +:host .submenu-header span { + font-size: 14px; + margin-left: 10px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/layout-property/layout-menu-item-property/layout-menu-item-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/layout-property/layout-menu-item-property/layout-menu-item-property.component.scss"],"names":[],"mappings":"AAEQ;EACI,WAAA;ACDZ;ADEY;EACI,wBAAA;EACA,gBAAA;EACA,YAAA;ACAhB;ADMQ;EACI,eAAA;EACA,iBAAA;ACJZ","sourcesContent":[":host {\n mat-option {\n .my-form-field {\n width: 100%;\n input {\n width: calc(100% - 17px);\n margin-left: 5px;\n height: 13px;;\n }\n }\n }\n\n .submenu-header {\n span {\n font-size: 14px;\n margin-left: 10px;\n }\n }}",":host mat-option .my-form-field {\n width: 100%;\n}\n:host mat-option .my-form-field input {\n width: calc(100% - 17px);\n margin-left: 5px;\n height: 13px;\n}\n:host .submenu-header span {\n font-size: 14px;\n margin-left: 10px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 17006: +/*!**********************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-property.component.scss?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .content { + min-width: 950px; + min-height: 700px; +} +:host .tab-container { + display: block; + margin-top: 10px; + width: 100%; + min-height: 500px; + overflow-y: auto; + height: 650px; +} +:host .layout-menu-item-icon { + /* position: absolute; */ + font-size: 17px; + height: 18px; + width: 18px; + /* color: rgba(255,255,255,0.8); */ + cursor: pointer; +} +:host .layout-menu-item-link { + /* min-width: 150px; */ + /* color: rgba(0,0,0,0.3); */ + display: block; + font-size: 12px; + white-space: nowrap; +} +:host .nav-config { + overflow-y: auto; +} +:host .nav-config .config-left { + display: inline-block; +} +:host .nav-config .config-left .nav-item { + display: flex; + line-height: 35px; + min-width: max-content; +} +:host .nav-config .config-left .nav-item .position { + display: inline-block; + line-height: 35px; + margin-left: 15px; + vertical-align: bottom; +} +:host .nav-config .config-left .nav-item .position mat-icon { + display: block; +} +:host .nav-config .config-left .nav-item .edit { + display: inline-block; + line-height: 35px; +} +:host .nav-config .config-left .nav-item .edit mat-icon { + margin-left: 10px; + vertical-align: middle; +} +:host .nav-config .config-left .nav-item .edit .type { + display: inline-block; + font-size: 12px; + margin-left: 10px; + white-space: nowrap; +} +:host .nav-config .config-left .nav-item .remove { + display: inline-block; + line-height: 35px; + margin-left: 10px; +} +:host .nav-config .config-left .nav-item .remove mat-icon { + vertical-align: middle; +} +:host .nav-config .config-right { + float: right; + margin-top: 30px; +} +:host .header-layout { + display: flex; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important; + height: 46px !important; + line-height: 46px; + padding-left: 4px; + padding-right: 10px; + background-color: rgb(255, 255, 255); +} +:host .header-layout .header-menu { + display: inline-block; +} +:host .header-layout .header-title { + display: inline-block; + margin-left: 20px; + min-width: 200px; + text-align: right; + line-height: 46px; +} +:host .header-layout .header-login { + line-height: 46px; + border-left-width: 1px; + border-left-style: solid; + padding-left: 10px; +} +:host .header-layout .header-login .info { + display: inline-block; + line-height: 46px; + vertical-align: middle; +} +:host .header-layout .header-login .primary { + display: block; + font-size: 14px; + font-weight: 600; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: -moz-fit-content; + max-width: fit-content; + line-height: 16px; +} +:host .header-layout .header-login .secondary { + display: block; + font-size: 14px; + font-weight: 100; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: -moz-fit-content; + max-width: fit-content; + color: gray; + line-height: 16px; +} +:host .header-layout .header-date-time { + border-left-width: 1px; + border-left-style: solid; + padding-left: 10px; + padding-right: 10px; + display: inline-block; +} +:host .header-layout .header-language { + padding-left: 10px; + padding-right: 10px; + display: inline-block; +} +:host .header-layout .header-notify-button { + display: flex; + line-height: 46px; + text-align: right; + margin-left: 10px; + margin-right: 10px; + padding-right: 10px; + align-items: center; +} +:host .header-layout .header-notify-button mat-icon { + font-size: 28px; + width: 28px; + height: 28px; +} +:host .header-layout .header-notify-button .alarm-button, :host .header-layout .header-notify-button .info-button { + margin-right: 20px; +} +:host .header-layout .items { + flex: 1; + align-items: center; +} +:host .header-config { + padding-top: 30px; + overflow-y: auto; +} +:host .header-config .config-left { + display: inline-block; +} +:host .header-config .config-left .add-item { + display: inline-block; + vertical-align: top; + width: 50px; +} +:host .header-config .config-left .header-items { + display: inline-block; +} +:host .header-config .config-left .header-items mat-list-item { + min-height: 50px; +} +:host .header-config .config-left .header-items .header-item { + display: flex; +} +:host .header-config .config-left .header-items .header-item .position { + display: inline-block; + vertical-align: bottom; +} +:host .header-config .config-left .header-items .header-item .position mat-icon { + display: block; +} +:host .header-config .config-left .header-items .header-item .edit { + display: inline-block; + line-height: 35px; +} +:host .header-config .config-left .header-items .header-item .edit mat-icon { + vertical-align: middle; +} +:host .header-config .config-left .header-items .header-item .edit .type { + display: inline-block; + font-size: 12px; + margin-left: 10px; + width: 60px; +} +:host .header-config .config-left .header-items .header-item .property { + display: inline-block; + line-height: 35px; +} +:host .header-config .config-left .header-items .header-item .property button { + background-color: dimgrey; + color: white; +} +:host .header-config .config-left .header-items .header-item .remove { + display: inline-block; + line-height: 35px; + margin-left: 10px; +} +:host .header-config .config-left .header-items .header-item .remove mat-icon { + vertical-align: middle; +} +:host .header-config .config-right { + float: right; +} +:host .header-config .config-right .colors { + display: block; + margin-top: 10px; + width: 268px; +} +:host .icons-selector { + width: 60px; + height: 30px; +} +:host .my-form-field mat-icon { + padding-left: 10px; + vertical-align: middle; +} +:host .dndList { + transition: all 600ms ease; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; +} +:host ::ng-deep .CodeMirror { + height: 100%; +} +:host .sidenav-submenu-btn { + position: relative; +} +:host .sidenav-submenu-item { + width: unset; + min-height: unset; + height: unset; +} +:host .sidenav-submenu-icon { + position: absolute; + right: 12px; + top: 50%; + transform: translateY(-50%); +} +:host .submenu-list { + padding: 0; + margin: 0; + list-style: none; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/layout-property/layout-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/layout-property/layout-property.component.scss"],"names":[],"mappings":"AACI;EACI,gBAAA;EACA,iBAAA;ACAR;ADGI;EACI,cAAA;EACA,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,gBAAA;EACA,aAAA;ACDR;ADII;EACI,wBAAA;EACA,eAAA;EACA,YAAA;EACA,WAAA;EACA,kCAAA;EACA,eAAA;ACFR;ADKI;EACI,sBAAA;EACA,4BAAA;EACA,cAAA;EACA,eAAA;EACA,mBAAA;ACHR;ADMI;EACI,gBAAA;ACJR;ADMQ;EACI,qBAAA;ACJZ;ADMY;EACI,aAAA;EACA,iBAAA;EACA,sBAAA;ACJhB;ADMgB;EACI,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,sBAAA;ACJpB;ADMoB;EACI,cAAA;ACJxB;ADQgB;EACI,qBAAA;EACA,iBAAA;ACNpB;ADQoB;EACI,iBAAA;EACA,sBAAA;ACNxB;ADSoB;EACI,qBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;ACPxB;ADWgB;EACI,qBAAA;EACA,iBAAA;EACA,iBAAA;ACTpB;ADWoB;EACI,sBAAA;ACTxB;ADeQ;EACI,YAAA;EACA,gBAAA;ACbZ;ADiBI;EACI,aAAA;EACA,0HAAA;EACA,uBAAA;EACA,iBAAA;EACA,iBAAA;EACA,mBAAA;EACA,oCAAA;ACfR;ADiBQ;EACI,qBAAA;ACfZ;ADkBQ;EACI,qBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;AChBZ;ADmBQ;EACI,iBAAA;EACA,sBAAA;EACA,wBAAA;EACA,kBAAA;ACjBZ;ADmBY;EACI,qBAAA;EACA,iBAAA;EACA,sBAAA;ACjBhB;ADoBY;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,2BAAA;EAAA,sBAAA;EACA,iBAAA;AClBhB;ADqBY;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,2BAAA;EAAA,sBAAA;EACA,WAAA;EACA,iBAAA;ACnBhB;ADuBQ;EACI,sBAAA;EACA,wBAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ACrBZ;ADwBQ;EACI,kBAAA;EACA,mBAAA;EACA,qBAAA;ACtBZ;ADyBQ;EACI,aAAA;EACA,iBAAA;EACA,iBAAA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;EACA,mBAAA;ACvBZ;ADyBY;EACI,eAAA;EACA,WAAA;EACA,YAAA;ACvBhB;AD0BY;EACI,kBAAA;ACxBhB;AD4BQ;EACI,OAAA;EACA,mBAAA;AC1BZ;AD8BI;EACI,iBAAA;EACA,gBAAA;AC5BR;AD8BQ;EACI,qBAAA;AC5BZ;AD8BY;EACI,qBAAA;EACA,mBAAA;EACA,WAAA;AC5BhB;AD+BY;EACI,qBAAA;AC7BhB;AD+BgB;EACI,gBAAA;AC7BpB;ADgCgB;EACI,aAAA;AC9BpB;ADgCoB;EACI,qBAAA;EACA,sBAAA;AC9BxB;ADgCwB;EACI,cAAA;AC9B5B;ADkCoB;EACI,qBAAA;EACA,iBAAA;AChCxB;ADkCwB;EACI,sBAAA;AChC5B;ADmCwB;EACI,qBAAA;EACA,eAAA;EACA,iBAAA;EACA,WAAA;ACjC5B;ADqCoB;EACI,qBAAA;EACA,iBAAA;ACnCxB;ADqCwB;EACI,yBAAA;EACA,YAAA;ACnC5B;ADuCoB;EACI,qBAAA;EACA,iBAAA;EACA,iBAAA;ACrCxB;ADuCwB;EACI,sBAAA;ACrC5B;AD6CQ;EACI,YAAA;AC3CZ;AD6CY;EACI,cAAA;EACA,gBAAA;EACA,YAAA;AC3ChB;ADoDI;EACI,WAAA;EACA,YAAA;AClDR;ADqDI;EACI,kBAAA;EACA,sBAAA;ACnDR;ADsDI;EACI,0BAAA;ACpDR;ADuDI;EACI,uBAAA;ACrDR;ADwDI;EACI,YAAA;ACtDR;ADyDI;EACI,kBAAA;ACvDR;AD0DI;EACI,YAAA;EACA,iBAAA;EACA,aAAA;ACxDR;AD2DI;EACI,kBAAA;EACA,WAAA;EACA,QAAA;EACA,2BAAA;ACzDR;AD2DI;EACI,UAAA;EACA,SAAA;EACA,gBAAA;ACzDR","sourcesContent":[":host {\n .content {\n min-width: 950px;\n min-height: 700px;\n }\n\n .tab-container {\n display: block;\n margin-top: 10px;\n width: 100%;\n min-height: 500px;\n overflow-y: auto;\n height: 650px;\n }\n\n .layout-menu-item-icon {\n /* position: absolute; */\n font-size: 17px;\n height: 18px;\n width: 18px;\n /* color: rgba(255,255,255,0.8); */\n cursor: pointer;\n }\n\n .layout-menu-item-link {\n /* min-width: 150px; */\n /* color: rgba(0,0,0,0.3); */\n display: block;\n font-size: 12px;\n white-space: nowrap;\n }\n\n .nav-config {\n overflow-y: auto;\n\n .config-left {\n display: inline-block;\n\n .nav-item {\n display: flex;\n line-height: 35px;\n min-width: max-content;\n\n .position {\n display: inline-block;\n line-height: 35px;\n margin-left: 15px;\n vertical-align: bottom;\n\n mat-icon {\n display: block;\n }\n }\n\n .edit {\n display: inline-block;\n line-height: 35px;\n\n mat-icon {\n margin-left: 10px;\n vertical-align: middle;\n }\n\n .type {\n display: inline-block;\n font-size: 12px;\n margin-left: 10px;\n white-space: nowrap;\n }\n }\n\n .remove {\n display: inline-block;\n line-height: 35px;\n margin-left: 10px;\n\n mat-icon {\n vertical-align: middle;\n }\n }\n }\n }\n\n .config-right {\n float: right;\n margin-top: 30px;\n }\n }\n\n .header-layout {\n display: flex;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important;\n height: 46px !important;\n line-height: 46px;\n padding-left: 4px;\n padding-right: 10px;\n background-color: rgba(255, 255, 255, 1);\n\n .header-menu {\n display: inline-block;\n }\n\n .header-title {\n display: inline-block;\n margin-left: 20px;\n min-width: 200px;\n text-align: right;\n line-height: 46px\n }\n\n .header-login {\n line-height: 46px;\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n\n .info {\n display: inline-block;\n line-height: 46px;\n vertical-align: middle;\n }\n\n .primary {\n display: block;\n font-size: 14px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n line-height: 16px;\n }\n\n .secondary {\n display: block;\n font-size: 14px;\n font-weight: 100;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n color: gray;\n line-height: 16px;\n }\n }\n\n .header-date-time {\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n }\n\n .header-language {\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n }\n\n .header-notify-button {\n display: flex;\n line-height: 46px;\n text-align: right;\n margin-left: 10px;\n margin-right: 10px;\n padding-right: 10px;\n align-items: center;\n\n mat-icon {\n font-size: 28px;\n width: 28px;\n height: 28px;\n }\n\n .alarm-button, .info-button {\n margin-right: 20px;\n }\n }\n\n .items {\n flex: 1;\n align-items: center;\n }\n }\n\n .header-config {\n padding-top: 30px;\n overflow-y: auto;\n\n .config-left {\n display: inline-block;\n\n .add-item {\n display: inline-block;\n vertical-align: top;\n width: 50px;\n }\n\n .header-items {\n display: inline-block;\n\n mat-list-item {\n min-height: 50px;\n }\n\n .header-item {\n display: flex;\n\n .position {\n display: inline-block;\n vertical-align: bottom;\n\n mat-icon {\n display: block;\n }\n }\n\n .edit {\n display: inline-block;\n line-height: 35px;\n\n mat-icon {\n vertical-align: middle;\n }\n\n .type {\n display: inline-block;\n font-size: 12px;\n margin-left: 10px;\n width: 60px;\n }\n }\n\n .property {\n display: inline-block;\n line-height: 35px;\n\n button {\n background-color: dimgrey;\n color: white;\n }\n }\n\n .remove {\n display: inline-block;\n line-height: 35px;\n margin-left: 10px;\n\n mat-icon {\n vertical-align: middle;\n }\n }\n }\n }\n\n }\n\n .config-right {\n float: right;\n\n .colors {\n display: block;\n margin-top: 10px;\n width: 268px\n }\n }\n }\n\n .header-item-dialog {\n // min-width: 350px;\n }\n\n .icons-selector {\n width: 60px;\n height: 30px;\n }\n\n .my-form-field mat-icon {\n padding-left: 10px;\n vertical-align: middle;\n }\n\n .dndList {\n transition: all 600ms ease;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n }\n\n ::ng-deep .CodeMirror {\n height: 100%;\n }\n\n .sidenav-submenu-btn {\n position: relative;\n }\n\n .sidenav-submenu-item {\n width: unset;\n min-height: unset;\n height: unset;\n }\n\n .sidenav-submenu-icon {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n }\n .submenu-list {\n padding: 0;\n margin: 0;\n list-style: none;\n }\n}",":host .content {\n min-width: 950px;\n min-height: 700px;\n}\n:host .tab-container {\n display: block;\n margin-top: 10px;\n width: 100%;\n min-height: 500px;\n overflow-y: auto;\n height: 650px;\n}\n:host .layout-menu-item-icon {\n /* position: absolute; */\n font-size: 17px;\n height: 18px;\n width: 18px;\n /* color: rgba(255,255,255,0.8); */\n cursor: pointer;\n}\n:host .layout-menu-item-link {\n /* min-width: 150px; */\n /* color: rgba(0,0,0,0.3); */\n display: block;\n font-size: 12px;\n white-space: nowrap;\n}\n:host .nav-config {\n overflow-y: auto;\n}\n:host .nav-config .config-left {\n display: inline-block;\n}\n:host .nav-config .config-left .nav-item {\n display: flex;\n line-height: 35px;\n min-width: max-content;\n}\n:host .nav-config .config-left .nav-item .position {\n display: inline-block;\n line-height: 35px;\n margin-left: 15px;\n vertical-align: bottom;\n}\n:host .nav-config .config-left .nav-item .position mat-icon {\n display: block;\n}\n:host .nav-config .config-left .nav-item .edit {\n display: inline-block;\n line-height: 35px;\n}\n:host .nav-config .config-left .nav-item .edit mat-icon {\n margin-left: 10px;\n vertical-align: middle;\n}\n:host .nav-config .config-left .nav-item .edit .type {\n display: inline-block;\n font-size: 12px;\n margin-left: 10px;\n white-space: nowrap;\n}\n:host .nav-config .config-left .nav-item .remove {\n display: inline-block;\n line-height: 35px;\n margin-left: 10px;\n}\n:host .nav-config .config-left .nav-item .remove mat-icon {\n vertical-align: middle;\n}\n:host .nav-config .config-right {\n float: right;\n margin-top: 30px;\n}\n:host .header-layout {\n display: flex;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important;\n height: 46px !important;\n line-height: 46px;\n padding-left: 4px;\n padding-right: 10px;\n background-color: rgb(255, 255, 255);\n}\n:host .header-layout .header-menu {\n display: inline-block;\n}\n:host .header-layout .header-title {\n display: inline-block;\n margin-left: 20px;\n min-width: 200px;\n text-align: right;\n line-height: 46px;\n}\n:host .header-layout .header-login {\n line-height: 46px;\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n}\n:host .header-layout .header-login .info {\n display: inline-block;\n line-height: 46px;\n vertical-align: middle;\n}\n:host .header-layout .header-login .primary {\n display: block;\n font-size: 14px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n line-height: 16px;\n}\n:host .header-layout .header-login .secondary {\n display: block;\n font-size: 14px;\n font-weight: 100;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n color: gray;\n line-height: 16px;\n}\n:host .header-layout .header-date-time {\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n}\n:host .header-layout .header-language {\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n}\n:host .header-layout .header-notify-button {\n display: flex;\n line-height: 46px;\n text-align: right;\n margin-left: 10px;\n margin-right: 10px;\n padding-right: 10px;\n align-items: center;\n}\n:host .header-layout .header-notify-button mat-icon {\n font-size: 28px;\n width: 28px;\n height: 28px;\n}\n:host .header-layout .header-notify-button .alarm-button, :host .header-layout .header-notify-button .info-button {\n margin-right: 20px;\n}\n:host .header-layout .items {\n flex: 1;\n align-items: center;\n}\n:host .header-config {\n padding-top: 30px;\n overflow-y: auto;\n}\n:host .header-config .config-left {\n display: inline-block;\n}\n:host .header-config .config-left .add-item {\n display: inline-block;\n vertical-align: top;\n width: 50px;\n}\n:host .header-config .config-left .header-items {\n display: inline-block;\n}\n:host .header-config .config-left .header-items mat-list-item {\n min-height: 50px;\n}\n:host .header-config .config-left .header-items .header-item {\n display: flex;\n}\n:host .header-config .config-left .header-items .header-item .position {\n display: inline-block;\n vertical-align: bottom;\n}\n:host .header-config .config-left .header-items .header-item .position mat-icon {\n display: block;\n}\n:host .header-config .config-left .header-items .header-item .edit {\n display: inline-block;\n line-height: 35px;\n}\n:host .header-config .config-left .header-items .header-item .edit mat-icon {\n vertical-align: middle;\n}\n:host .header-config .config-left .header-items .header-item .edit .type {\n display: inline-block;\n font-size: 12px;\n margin-left: 10px;\n width: 60px;\n}\n:host .header-config .config-left .header-items .header-item .property {\n display: inline-block;\n line-height: 35px;\n}\n:host .header-config .config-left .header-items .header-item .property button {\n background-color: dimgrey;\n color: white;\n}\n:host .header-config .config-left .header-items .header-item .remove {\n display: inline-block;\n line-height: 35px;\n margin-left: 10px;\n}\n:host .header-config .config-left .header-items .header-item .remove mat-icon {\n vertical-align: middle;\n}\n:host .header-config .config-right {\n float: right;\n}\n:host .header-config .config-right .colors {\n display: block;\n margin-top: 10px;\n width: 268px;\n}\n:host .icons-selector {\n width: 60px;\n height: 30px;\n}\n:host .my-form-field mat-icon {\n padding-left: 10px;\n vertical-align: middle;\n}\n:host .dndList {\n transition: all 600ms ease;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n}\n:host ::ng-deep .CodeMirror {\n height: 100%;\n}\n:host .sidenav-submenu-btn {\n position: relative;\n}\n:host .sidenav-submenu-item {\n width: unset;\n min-height: unset;\n height: unset;\n}\n:host .sidenav-submenu-icon {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n}\n:host .submenu-list {\n padding: 0;\n margin: 0;\n list-style: none;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 54204: +/*!******************************************************************!*\ + !*** ./src/app/editor/plugins/plugins.component.scss?ngResource ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .info { + margin-bottom: 20px; +} +:host .list { + min-width: 600px; + height: 400px; + font-size: 16px !important; + padding-top: 0px !important; + overflow: auto; +} +:host .list-header { + display: block; + height: 20px !important; +} +:host .list-header span { + text-overflow: ellipsis; + overflow: hidden; + color: gray; + font-size: 12px; +} +:host .list-item { + display: block; + font-size: 14px; + height: 40px !important; + /* cursor: pointer; */ + overflow: hidden; +} +:host .list-item .list-type { + width: 160px; +} +:host .list-item .list-name { + width: 200px; +} +:host .list-item .list-version { + width: 100px; +} +:host .list-item .list-description { + width: 260px; +} +:host .list-item .list-status { + width: 200px; +} +:host .list-item .list-tool { + display: flex; + min-width: 120px; +} +:host .list-item span { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +:host .list-item-text { + text-overflow: ellipsis; + overflow: hidden; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/plugins/plugins.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/plugins/plugins.component.scss"],"names":[],"mappings":"AAEI;EACI,mBAAA;ACDR;ADGI;EACI,gBAAA;EACA,aAAA;EACA,0BAAA;EACA,2BAAA;EACA,cAAA;ACDR;ADII;EACI,cAAA;EACA,uBAAA;ACFR;ADIQ;EACI,uBAAA;EACA,gBAAA;EACA,WAAA;EACA,eAAA;ACFZ;ADMI;EACI,cAAA;EACA,eAAA;EACA,uBAAA;EACA,qBAAA;EACA,gBAAA;ACJR;ADMQ;EACI,YAAA;ACJZ;ADMQ;EACI,YAAA;ACJZ;ADMQ;EACI,YAAA;ACJZ;ADMQ;EACI,YAAA;ACJZ;ADMQ;EACI,YAAA;ACJZ;ADMQ;EACI,aAAA;EACA,gBAAA;ACJZ;ADMQ;EACI,mBAAA;EACA,uBAAA;EACA,gBAAA;ACJZ;ADQI;EACI,uBAAA;EACA,gBAAA;ACNR","sourcesContent":["\n:host {\n .info {\n margin-bottom: 20px;;\n }\n .list {\n min-width: 600px;\n height: 400px;\n font-size: 16px !important;\n padding-top: 0px !important;\n overflow: auto;\n }\n\n .list-header {\n display: block;\n height: 20px !important;\n\n span {\n text-overflow: ellipsis;\n overflow: hidden;\n color: gray;\n font-size: 12px;\n }\n }\n\n .list-item {\n display: block;\n font-size: 14px;\n height: 40px !important;\n /* cursor: pointer; */\n overflow: hidden;\n\n .list-type {\n width:160px;\n }\n .list-name {\n width:200px;\n }\n .list-version {\n width:100px;\n }\n .list-description {\n width:260px;\n }\n .list-status {\n width:200px;\n }\n .list-tool {\n display: flex;\n min-width:120px;\n }\n span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .list-item-text {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n}",":host .info {\n margin-bottom: 20px;\n}\n:host .list {\n min-width: 600px;\n height: 400px;\n font-size: 16px !important;\n padding-top: 0px !important;\n overflow: auto;\n}\n:host .list-header {\n display: block;\n height: 20px !important;\n}\n:host .list-header span {\n text-overflow: ellipsis;\n overflow: hidden;\n color: gray;\n font-size: 12px;\n}\n:host .list-item {\n display: block;\n font-size: 14px;\n height: 40px !important;\n /* cursor: pointer; */\n overflow: hidden;\n}\n:host .list-item .list-type {\n width: 160px;\n}\n:host .list-item .list-name {\n width: 200px;\n}\n:host .list-item .list-version {\n width: 100px;\n}\n:host .list-item .list-description {\n width: 260px;\n}\n:host .list-item .list-status {\n width: 200px;\n}\n:host .list-item .list-tool {\n display: flex;\n min-width: 120px;\n}\n:host .list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n:host .list-item-text {\n text-overflow: ellipsis;\n overflow: hidden;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 83849: +/*!**************************************************************!*\ + !*** ./src/app/editor/setup/setup.component.scss?ngResource ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .mat-button .mat-button-focus-overlay { + background-color: transparent; +} +:host .dlg-container { + position: relative; + height: 600px; +} +:host .separator { + align-items: center; + display: flex; + position: relative; + margin-top: 10px; + margin-bottom: 10px; +} +:host .separator-line { + border-bottom: 1px solid var(--setupSeparatorColor); + height: 1px; + width: 35%; +} +:host .separator-text { + left: 50%; + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + font-size: 13px; +} +:host .btn-cards { + display: flex; + flex-wrap: wrap; + margin-left: -8px; + margin-right: -8px; + margin-top: 16px; + margin-bottom: 18px; + justify-content: center; +} +:host .btn-card { + margin-left: 3px; + margin-right: 3px; + padding-left: 4px; + padding-right: 4px; + flex: 1; +} +:host .card-btn { + height: 85px; + min-height: auto; + min-width: 100px; + width: 100px; + font-size: 16px; + text-align: center; + align-content: center; + overflow: hidden; + padding: 0px !important; +} +:host .card-btn span { + display: block; + font-weight: normal !important; + font-size: 13px; + text-align: center; +} +:host .card-btn-content { + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + padding: 10px 0 5px 0; + text-align: center; + height: 100%; +} +:host .card-btn-content .mat-icon { + font-size: 32px; + margin-bottom: 6px; + height: 32px; + width: 32px; +} +:host .card-btn-content span { + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + text-align: center; + white-space: normal; + overflow: hidden; + text-overflow: ellipsis; + line-height: 1.2; + min-height: 2.4em; + max-height: 2.4em; + padding: 0 4px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/setup/setup.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/setup/setup.component.scss"],"names":[],"mappings":"AACI;EACI,6BAAA;ACAR;ADGI;EACI,kBAAA;EAEA,aAAA;ACFR;ADKI;EACI,mBAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,mBAAA;ACHR;ADMI;EACI,mDAAA;EACA,WAAA;EACA,UAAA;ACJR;ADOI;EACI,SAAA;EACA,kBAAA;EACA,QAAA;EACA,gCAAA;EACA,eAAA;ACLR;ADQI;EACI,aAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,mBAAA;EACA,uBAAA;ACNR;ADSI;EAEI,gBAAA;EACA,iBAAA;EACA,iBAAA;EACA,kBAAA;EACA,OAAA;ACRR;ADWI;EACI,YAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;EAEA,qBAAA;EACA,gBAAA;EACA,uBAAA;ACTR;ADYI;EACI,cAAA;EACA,8BAAA;EACA,eAAA;EACA,kBAAA;ACVR;ADaI;EACI,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,2BAAA;EACA,qBAAA;EACA,kBAAA;EACA,YAAA;ACXR;ADcI;EACI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,WAAA;ACZR;ADeI;EACI,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;EACA,cAAA;ACbR","sourcesContent":[":host {\n .mat-button .mat-button-focus-overlay {\n background-color: transparent;\n }\n\n .dlg-container {\n position: relative;\n // width: 300px;\n height: 600px;\n }\n\n .separator {\n align-items: center;\n display: flex;\n position: relative;\n margin-top: 10px;\n margin-bottom: 10px;\n }\n\n .separator-line {\n border-bottom: 1px solid var(--setupSeparatorColor);\n height: 1px;\n width: 35%;\n }\n\n .separator-text {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n font-size: 13px;\n }\n\n .btn-cards {\n display: flex;\n flex-wrap: wrap;\n margin-left: -8px;\n margin-right: -8px;\n margin-top: 16px;\n margin-bottom: 18px;\n justify-content: center;\n }\n\n .btn-card {\n // flex-basis: 25%;\n margin-left: 3px;\n margin-right: 3px;\n padding-left: 4px;\n padding-right: 4px;\n flex: 1;\n }\n\n .card-btn {\n height: 85px;\n min-height: auto;\n min-width: 100px;\n width: 100px;\n font-size: 16px;\n text-align: center;\n -webkit-align-content: center;\n align-content: center;\n overflow: hidden;\n padding: 0px !important;\n }\n\n .card-btn span {\n display: block;\n font-weight: normal !important;\n font-size: 13px;\n text-align: center;\n }\n\n .card-btn-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding: 10px 0 5px 0;\n text-align: center;\n height: 100%;\n }\n\n .card-btn-content .mat-icon {\n font-size: 32px;\n margin-bottom: 6px;\n height: 32px;\n width: 32px;\n }\n\n .card-btn-content span {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n text-align: center;\n white-space: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n min-height: 2.4em;\n max-height: 2.4em;\n padding: 0 4px;\n }\n}",":host .mat-button .mat-button-focus-overlay {\n background-color: transparent;\n}\n:host .dlg-container {\n position: relative;\n height: 600px;\n}\n:host .separator {\n align-items: center;\n display: flex;\n position: relative;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n:host .separator-line {\n border-bottom: 1px solid var(--setupSeparatorColor);\n height: 1px;\n width: 35%;\n}\n:host .separator-text {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n font-size: 13px;\n}\n:host .btn-cards {\n display: flex;\n flex-wrap: wrap;\n margin-left: -8px;\n margin-right: -8px;\n margin-top: 16px;\n margin-bottom: 18px;\n justify-content: center;\n}\n:host .btn-card {\n margin-left: 3px;\n margin-right: 3px;\n padding-left: 4px;\n padding-right: 4px;\n flex: 1;\n}\n:host .card-btn {\n height: 85px;\n min-height: auto;\n min-width: 100px;\n width: 100px;\n font-size: 16px;\n text-align: center;\n -webkit-align-content: center;\n align-content: center;\n overflow: hidden;\n padding: 0px !important;\n}\n:host .card-btn span {\n display: block;\n font-weight: normal !important;\n font-size: 13px;\n text-align: center;\n}\n:host .card-btn-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding: 10px 0 5px 0;\n text-align: center;\n height: 100%;\n}\n:host .card-btn-content .mat-icon {\n font-size: 32px;\n margin-bottom: 6px;\n height: 32px;\n width: 32px;\n}\n:host .card-btn-content span {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n text-align: center;\n white-space: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n min-height: 2.4em;\n max-height: 2.4em;\n padding: 0 4px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 2439: +/*!****************************************************************************!*\ + !*** ./src/app/editor/svg-selector/svg-selector.component.scss?ngResource ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .svg-selector-list { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + margin-top: 10px; + right: 0px; + left: 5px; +} +:host .svg-selector-item { + font-size: 12px; + line-height: 24px; + cursor: pointer; + padding-left: 5px; + display: block; +} +:host .svg-selector-item .name { + display: inline-block; + width: 170px; + font-size: 13px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + vertical-align: bottom; +} +:host .svg-selector-item .id { + display: inline-block; + margin-left: 10px; + color: darkgray; + width: 150px; +} +:host .svg-selector-item .edit { + width: 22px; + height: 22px; + line-height: 22px; +} +:host .svg-selector-item .edit mat-icon { + font-size: 16px; +} +:host .svg-selector-item:hover { + background-color: rgba(156, 156, 156, 0.2117647059); +} +:host .svg-selector-active { + background-color: rgb(48, 89, 175); +} +:host .search-input-container { + position: relative; + width: 100%; + margin-bottom: 10px; + margin-top: 3px; +} +:host .search-input-container input { + width: calc(100% - 10px); +} +:host .search-input-container .search-icon { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + color: #757575; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/svg-selector/svg-selector.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/svg-selector/svg-selector.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,gBAAA;EACA,UAAA;EACA,SAAA;ACAR;ADGI;EACI,eAAA;EACA,iBAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;ACDR;ADGQ;EACI,qBAAA;EACA,YAAA;EACA,eAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,sBAAA;ACDZ;ADIQ;EACI,qBAAA;EACA,iBAAA;EACA,eAAA;EACA,YAAA;ACFZ;ADKQ;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACHZ;ADKY;EACI,eAAA;ACHhB;ADQI;EACI,mDAAA;ACNR;ADSI;EACI,kCAAA;ACPR;ADUI;EACI,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;ACRR;ADUQ;EACI,wBAAA;ACRZ;ADWQ;EACI,kBAAA;EACA,UAAA;EACA,QAAA;EACA,2BAAA;EACA,cAAA;ACTZ","sourcesContent":[":host {\n .svg-selector-list {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n margin-top: 10px;\n right: 0px;\n left: 5px;\n }\n\n .svg-selector-item {\n font-size: 12px;\n line-height: 24px;\n cursor: pointer;\n padding-left: 5px;\n display: block;\n\n .name {\n display: inline-block;\n width: 170px;\n font-size: 13px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n vertical-align: bottom;\n }\n\n .id {\n display: inline-block;\n margin-left: 10px;\n color: darkgray;\n width: 150px;\n }\n\n .edit {\n width: 22px;\n height: 22px;\n line-height: 22px;\n\n mat-icon {\n font-size: 16px;\n }\n }\n }\n\n .svg-selector-item:hover {\n background-color: #9c9c9c36;\n }\n\n .svg-selector-active {\n background-color: rgba(48, 89, 175, 1);\n }\n\n .search-input-container {\n position: relative;\n width: 100%;\n margin-bottom: 10px;\n margin-top: 3px;\n\n input {\n width: calc(100% - 10px);\n }\n\n .search-icon {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n color: #757575;\n }\n }\n}",":host .svg-selector-list {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n margin-top: 10px;\n right: 0px;\n left: 5px;\n}\n:host .svg-selector-item {\n font-size: 12px;\n line-height: 24px;\n cursor: pointer;\n padding-left: 5px;\n display: block;\n}\n:host .svg-selector-item .name {\n display: inline-block;\n width: 170px;\n font-size: 13px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n vertical-align: bottom;\n}\n:host .svg-selector-item .id {\n display: inline-block;\n margin-left: 10px;\n color: darkgray;\n width: 150px;\n}\n:host .svg-selector-item .edit {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n:host .svg-selector-item .edit mat-icon {\n font-size: 16px;\n}\n:host .svg-selector-item:hover {\n background-color: rgba(156, 156, 156, 0.2117647059);\n}\n:host .svg-selector-active {\n background-color: rgb(48, 89, 175);\n}\n:host .search-input-container {\n position: relative;\n width: 100%;\n margin-bottom: 10px;\n margin-top: 3px;\n}\n:host .search-input-container input {\n width: calc(100% - 10px);\n}\n:host .search-input-container .search-icon {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n color: #757575;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 74652: +/*!**********************************************************************************!*\ + !*** ./src/app/editor/tags-ids-config/tags-ids-config.component.scss?ngResource ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.content { + min-height: 400px; + min-width: 800px; + margin-top: 10px; +} + +.tag-Id-ref { + display: block; +} +.tag-Id-ref flex-variable { + display: inline-block; +} +.tag-Id-ref span { + margin-left: 5px; + margin-right: 5px; + display: inline-block; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/tags-ids-config/tags-ids-config.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/tags-ids-config/tags-ids-config.component.scss"],"names":[],"mappings":"AAAA;EACI,iBAAA;EACA,gBAAA;EACA,gBAAA;ACCJ;;ADCA;EACI,cAAA;ACEJ;ADDI;EACI,qBAAA;ACGR;ADDI;EACI,gBAAA;EACA,iBAAA;EACA,qBAAA;ACGR","sourcesContent":[".content {\n min-height: 400px;\n min-width: 800px;\n margin-top: 10px;\n}\n.tag-Id-ref {\n display: block;\n flex-variable {\n display: inline-block;\n }\n span {\n margin-left: 5px;\n margin-right: 5px;\n display: inline-block;\n }\n}",".content {\n min-height: 400px;\n min-width: 800px;\n margin-top: 10px;\n}\n\n.tag-Id-ref {\n display: block;\n}\n.tag-Id-ref flex-variable {\n display: inline-block;\n}\n.tag-Id-ref span {\n margin-left: 5px;\n margin-right: 5px;\n display: inline-block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 84616: +/*!******************************************************************************!*\ + !*** ./src/app/editor/view-property/view-property.component.scss?ngResource ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 700px; +} +:host .property-container { + width: 300px; +} +:host .item-block { + display: block; +} +:host .item-block mat-select, :host .item-block input, :host .item-block span { + width: calc(100% - 7px); +} +:host .slider-field span { + padding-left: 2px; + text-overflow: clip; + max-width: 125px; + white-space: nowrap; + overflow: hidden; +} +:host .slider-field mat-slider { + background-color: var(--formSliderBackground); + height: 30px; +} +:host .toolbox { + float: right; + line-height: 44px; +} +:host .toolbox button { + /* margin-right: 8px; */ + margin-left: 10px; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; +} +:host .mat-tab-container { + min-height: 300px; + height: 60vmin; + overflow-y: auto; + overflow-x: hidden; + padding-top: 15px; +}`, "",{"version":3,"sources":["webpack://./src/app/editor/view-property/view-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/editor/view-property/view-property.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADGI;EACI,YAAA;ACDR;ADII;EACI,cAAA;ACFR;ADGQ;EACI,uBAAA;ACDZ;ADKI;EACI,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;ACHR;ADMI;EACI,6CAAA;EACA,YAAA;ACJR;ADOI;EACI,YAAA;EACA,iBAAA;ACLR;ADQI;EACI,uBAAA;EACA,iBAAA;ACNR;ADSI;EACI,uBAAA;ACPR;ADUI;EACI,iBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,iBAAA;ACRR","sourcesContent":[":host {\n .container {\n width: 700px;\n }\n\n .property-container {\n width: 300px;\n }\n\n .item-block {\n display: block;\n mat-select, input, span {\n width: calc(100% - 7px);\n }\n }\n\n .slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n max-width: 125px;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 30px;\n }\n\n .toolbox {\n float: right;\n line-height: 44px;\n }\n\n .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n }\n\n .mat-tab-container {\n min-height:300px;\n height: 60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n }\n}\n",":host .container {\n width: 700px;\n}\n:host .property-container {\n width: 300px;\n}\n:host .item-block {\n display: block;\n}\n:host .item-block mat-select, :host .item-block input, :host .item-block span {\n width: calc(100% - 7px);\n}\n:host .slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n max-width: 125px;\n white-space: nowrap;\n overflow: hidden;\n}\n:host .slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 30px;\n}\n:host .toolbox {\n float: right;\n line-height: 44px;\n}\n:host .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n}\n:host .mat-tab-container {\n min-height: 300px;\n height: 60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 83181: +/*!*****************************************************************************!*\ + !*** ./src/app/framework/file-upload/file-upload.component.scss?ngResource ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.file-upload { + background-color: rgba(0, 0, 0, 0.1); +} +.file-upload mat-icon { + line-height: 30px; +} +.file-upload .clear { + float: right; +} +.file-upload span { + vertical-align: text-bottom; + margin-left: 10px; + font-size: 13px; +}`, "",{"version":3,"sources":["webpack://./src/app/framework/file-upload/file-upload.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/framework/file-upload/file-upload.component.scss"],"names":[],"mappings":"AAAA;EACI,oCAAA;ACCJ;ADAI;EACI,iBAAA;ACER;ADAI;EACI,YAAA;ACER;ADAI;EACI,2BAAA;EACA,iBAAA;EACA,eAAA;ACER","sourcesContent":[".file-upload {\n background-color: rgba(0,0,0, 0.1);\n mat-icon {\n line-height: 30px;\n }\n .clear {\n float: right;\n }\n span {\n vertical-align: text-bottom;\n margin-left: 10px;\n font-size: 13px;\n }\n}",".file-upload {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.file-upload mat-icon {\n line-height: 30px;\n}\n.file-upload .clear {\n float: right;\n}\n.file-upload span {\n vertical-align: text-bottom;\n margin-left: 10px;\n font-size: 13px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 36513: +/*!*******************************************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.component.scss?ngResource ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:root { + --tk-color-text: #27272a; + --tk-background: rgba(238, 238, 238, 0.87); + --tk-background-button: rgba(255, 255, 255, 0.96); + --tk-background-button-fn: rgba(255, 255, 255, 0.5); + --tk-background-button-active: rgba(0, 0, 0, 0.04); +} + +.dark { + --tk-color-text: #ffffff; + --tk-background: rgba(33, 33, 33, 0.87); + --tk-background-button: rgba(66, 66, 66, 0.96); + --tk-background-button-fn: rgba(66, 66, 66, 0.5); + --tk-background-button-active: rgba(255, 255, 255, 0.2); +} + +ngx-touch-keyboard { + z-index: 999999; + width: 100%; + padding: 0.25rem; + padding-bottom: 0.375rem; + border-radius: 0.375rem; + touch-action: manipulation; + -webkit-user-select: none; + user-select: none; + display: flex; + justify-content: center; + -webkit-backdrop-filter: blur(8px); + backdrop-filter: blur(8px); + background: var(--tk-background); + box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); +} + +.touch-keyboard { + z-index: 999999; + flex: 1 1 auto; + max-width: 840px; +} +.touch-keyboard .content { + margin: 5px 5px 8px 5px; + text-align: center; + display: block; +} +.touch-keyboard .content span { + padding: 3px 5px 3px 5px; + background-color: rgba(255, 255, 255, 0.7); +} +.touch-keyboard .touch-keyboard-row { + display: flex; + flex-direction: row; +} +.touch-keyboard .touch-keyboard-row:not(:last-child) { + margin-bottom: 0.25rem; +} +.touch-keyboard .touch-keyboard-key { + z-index: 999999; + width: 20px; + box-sizing: border-box; + position: relative; + -webkit-user-select: none; + user-select: none; + cursor: pointer; + outline: none; + border: none; + text-align: center; + margin: 0; + line-height: 32px; + padding: 0.25rem; + border-radius: 0.375rem; + font-size: 14px; + font-weight: 500; + display: flex; + flex-grow: 1; + align-items: center; + justify-content: center; + color: var(--tk-color-text); + background-color: var(--tk-background-button); + box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); +} +.touch-keyboard .touch-keyboard-key > svg { + fill: var(--tk-color-text); +} +.touch-keyboard .touch-keyboard-key.function-key:not(.space-key) { + background-color: var(--tk-background-button-fn); +} +.touch-keyboard .touch-keyboard-key.active { + background-color: var(--tk-background-button-active) !important; +} +.touch-keyboard .touch-keyboard-key.alphabetic-key, .touch-keyboard .touch-keyboard-key.numeric-key, .touch-keyboard .touch-keyboard-key.symbolic-key, .touch-keyboard .touch-keyboard-key.language-key, .touch-keyboard .touch-keyboard-key.done-key { + max-width: 4rem; +} +.touch-keyboard .touch-keyboard-key.space-key { + min-width: 40%; +} +.touch-keyboard .touch-keyboard-key[data-layout=numeric], .touch-keyboard .touch-keyboard-key[data-layout=decimal], .touch-keyboard .touch-keyboard-key[data-layout=tel] { + width: 33%; + max-width: none; +} +.touch-keyboard .touch-keyboard-key:not(:last-child) { + margin-right: 0.25rem; +} + +@media (min-width: 600px) { + .touch-keyboard .touch-keyboard-key.alphabetic-key, .touch-keyboard .touch-keyboard-key.numeric-key, .touch-keyboard .touch-keyboard-key.symbolic-key, .touch-keyboard .touch-keyboard-key.done-key { + max-width: 6rem; + } +}`, "",{"version":3,"sources":["webpack://./src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.component.scss"],"names":[],"mappings":"AAAA;EACE,wBAAA;EACA,0CAAA;EACA,iDAAA;EACA,mDAAA;EACA,kDAAA;ACCF;;ADEA;EACE,wBAAA;EACA,uCAAA;EACA,8CAAA;EACA,gDAAA;EACA,uDAAA;ACCF;;ADEA;EACE,eAAA;EACA,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,uBAAA;EACA,0BAAA;EACA,yBAAA;EAGA,iBAAA;EACA,aAAA;EACA,uBAAA;EACA,kCAAA;EACA,0BAAA;EACA,gCAAA;EACA,yHAAA;ACCF;;ADGA;EACE,eAAA;EACA,cAAA;EACA,gBAAA;ACAF;ADEE;EACE,uBAAA;EACA,kBAAA;EACA,cAAA;ACAJ;ADEI;EACE,wBAAA;EACA,0CAAA;ACAN;ADIE;EACE,aAAA;EACA,mBAAA;ACFJ;ADII;EACE,sBAAA;ACFN;ADME;EACE,eAAA;EACA,WAAA;EACA,sBAAA;EACA,kBAAA;EACA,yBAAA;EACA,iBAAA;EACA,eAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,SAAA;EACA,iBAAA;EACA,gBAAA;EACA,uBAAA;EACA,eAAA;EACA,gBAAA;EACA,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,2BAAA;EACA,6CAAA;EACA,yHAAA;ACJJ;ADOI;EACE,0BAAA;ACLN;ADQI;EACE,gDAAA;ACNN;ADSI;EACE,+DAAA;ACPN;ADUI;EAKE,eAAA;ACZN;ADeI;EACE,cAAA;ACbN;ADgBI;EAGE,UAAA;EACA,eAAA;AChBN;ADmBI;EACE,qBAAA;ACjBN;;ADsBA;EAGM;IAIE,eAAA;ECxBN;AACF","sourcesContent":[":root {\n --tk-color-text: #27272a;\n --tk-background: rgba(238, 238, 238, 0.87);\n --tk-background-button: rgba(255, 255, 255, 0.96);\n --tk-background-button-fn: rgba(255, 255, 255, 0.5);\n --tk-background-button-active: rgba(0, 0, 0, 0.04);\n}\n\n.dark {\n --tk-color-text: #ffffff;\n --tk-background: rgba(33, 33, 33, 0.87);\n --tk-background-button: rgba(66, 66, 66, 0.96);\n --tk-background-button-fn: rgba(66, 66, 66, 0.5);\n --tk-background-button-active: rgba(255, 255, 255, 0.2);\n}\n\nngx-touch-keyboard {\n z-index: 999999;\n width: 100%;\n padding: 0.25rem;\n padding-bottom: 0.375rem;\n border-radius: 0.375rem;\n touch-action: manipulation;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: flex;\n justify-content: center;\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n background: var(--tk-background);\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),\n 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n\n.touch-keyboard {\n z-index: 999999;\n flex: 1 1 auto;\n max-width: 840px;\n\n .content {\n margin: 5px 5px 8px 5px;\n text-align: center;\n display: block;\n\n span {\n padding: 3px 5px 3px 5px;\n background-color: rgba(255, 255, 255, 0.7);\n }\n }\n\n .touch-keyboard-row {\n display: flex;\n flex-direction: row;\n\n &:not(:last-child) {\n margin-bottom: 0.25rem;\n }\n }\n\n .touch-keyboard-key {\n z-index: 999999;\n width: 20px;\n box-sizing: border-box;\n position: relative;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer;\n outline: none;\n border: none;\n text-align: center;\n margin: 0;\n line-height: 32px;\n padding: 0.25rem;\n border-radius: 0.375rem;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n color: var(--tk-color-text);\n background-color: var(--tk-background-button);\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.20),\n 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n\n > svg {\n fill: var(--tk-color-text);\n }\n\n &.function-key:not(.space-key) {\n background-color: var(--tk-background-button-fn);\n }\n\n &.active {\n background-color: var(--tk-background-button-active) !important;\n }\n\n &.alphabetic-key,\n &.numeric-key,\n &.symbolic-key,\n &.language-key,\n &.done-key {\n max-width: 4rem;\n }\n\n &.space-key {\n min-width: 40%;\n }\n\n &[data-layout=\"numeric\"],\n &[data-layout=\"decimal\"],\n &[data-layout=\"tel\"] {\n width: 33%;\n max-width: none;\n }\n\n &:not(:last-child) {\n margin-right: 0.25rem;\n }\n }\n}\n\n@media (min-width: 600px) {\n .touch-keyboard {\n .touch-keyboard-key {\n &.alphabetic-key,\n &.numeric-key,\n &.symbolic-key,\n &.done-key {\n max-width: 6rem;\n }\n }\n }\n}\n",":root {\n --tk-color-text: #27272a;\n --tk-background: rgba(238, 238, 238, 0.87);\n --tk-background-button: rgba(255, 255, 255, 0.96);\n --tk-background-button-fn: rgba(255, 255, 255, 0.5);\n --tk-background-button-active: rgba(0, 0, 0, 0.04);\n}\n\n.dark {\n --tk-color-text: #ffffff;\n --tk-background: rgba(33, 33, 33, 0.87);\n --tk-background-button: rgba(66, 66, 66, 0.96);\n --tk-background-button-fn: rgba(66, 66, 66, 0.5);\n --tk-background-button-active: rgba(255, 255, 255, 0.2);\n}\n\nngx-touch-keyboard {\n z-index: 999999;\n width: 100%;\n padding: 0.25rem;\n padding-bottom: 0.375rem;\n border-radius: 0.375rem;\n touch-action: manipulation;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: flex;\n justify-content: center;\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n background: var(--tk-background);\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n\n.touch-keyboard {\n z-index: 999999;\n flex: 1 1 auto;\n max-width: 840px;\n}\n.touch-keyboard .content {\n margin: 5px 5px 8px 5px;\n text-align: center;\n display: block;\n}\n.touch-keyboard .content span {\n padding: 3px 5px 3px 5px;\n background-color: rgba(255, 255, 255, 0.7);\n}\n.touch-keyboard .touch-keyboard-row {\n display: flex;\n flex-direction: row;\n}\n.touch-keyboard .touch-keyboard-row:not(:last-child) {\n margin-bottom: 0.25rem;\n}\n.touch-keyboard .touch-keyboard-key {\n z-index: 999999;\n width: 20px;\n box-sizing: border-box;\n position: relative;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer;\n outline: none;\n border: none;\n text-align: center;\n margin: 0;\n line-height: 32px;\n padding: 0.25rem;\n border-radius: 0.375rem;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n color: var(--tk-color-text);\n background-color: var(--tk-background-button);\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.touch-keyboard .touch-keyboard-key > svg {\n fill: var(--tk-color-text);\n}\n.touch-keyboard .touch-keyboard-key.function-key:not(.space-key) {\n background-color: var(--tk-background-button-fn);\n}\n.touch-keyboard .touch-keyboard-key.active {\n background-color: var(--tk-background-button-active) !important;\n}\n.touch-keyboard .touch-keyboard-key.alphabetic-key, .touch-keyboard .touch-keyboard-key.numeric-key, .touch-keyboard .touch-keyboard-key.symbolic-key, .touch-keyboard .touch-keyboard-key.language-key, .touch-keyboard .touch-keyboard-key.done-key {\n max-width: 4rem;\n}\n.touch-keyboard .touch-keyboard-key.space-key {\n min-width: 40%;\n}\n.touch-keyboard .touch-keyboard-key[data-layout=numeric], .touch-keyboard .touch-keyboard-key[data-layout=decimal], .touch-keyboard .touch-keyboard-key[data-layout=tel] {\n width: 33%;\n max-width: none;\n}\n.touch-keyboard .touch-keyboard-key:not(:last-child) {\n margin-right: 0.25rem;\n}\n\n@media (min-width: 600px) {\n .touch-keyboard .touch-keyboard-key.alphabetic-key, .touch-keyboard .touch-keyboard-key.numeric-key, .touch-keyboard .touch-keyboard-key.symbolic-key, .touch-keyboard .touch-keyboard-key.done-key {\n max-width: 6rem;\n }\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 94623: +/*!***************************************************************************************!*\ + !*** ./src/app/fuxa-view/fuxa-view-dialog/fuxa-view-dialog.component.scss?ngResource ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.fuxa-view-dialog { + position: relative; +} +.fuxa-view-dialog .dialog-modal-close { + top: 0px; + right: 0px; + height: 22px; + width: 100%; + color: rgba(0, 0, 0, 0.7); + font-size: 12px; +} +.fuxa-view-dialog .dialog-modal-close i { + float: right; +}`, "",{"version":3,"sources":["webpack://./src/app/fuxa-view/fuxa-view-dialog/fuxa-view-dialog.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/fuxa-view/fuxa-view-dialog/fuxa-view-dialog.component.scss"],"names":[],"mappings":"AACA;EACI,kBAAA;ACAJ;ADCI;EAEI,QAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,yBAAA;EAEA,eAAA;ACDR;ADIQ;EACI,YAAA;ACFZ","sourcesContent":["\n.fuxa-view-dialog {\n position: relative;\n .dialog-modal-close {\n //position: absolute;\n top: 0px;\n right: 0px;\n height: 22px;\n width: 100%;\n color: rgba(0, 0, 0, 0.7);\n // background-color: transparent;\n font-size: 12px;\n // cursor: move !important;\n\n i {\n float: right;\n }\n }\n}\n",".fuxa-view-dialog {\n position: relative;\n}\n.fuxa-view-dialog .dialog-modal-close {\n top: 0px;\n right: 0px;\n height: 22px;\n width: 100%;\n color: rgba(0, 0, 0, 0.7);\n font-size: 12px;\n}\n.fuxa-view-dialog .dialog-modal-close i {\n float: right;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 20264: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/chart-property/chart-property.component.scss?ngResource ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .chart-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); + padding-top: 5px; +} +:host .section-item { + width: 100%; +} +:host .field-block { + width: 100%; +} +:host .field-block mat-select, :host .field-block input, :host .field-block span { + width: calc(100% - 15px); +} +:host .field-text input { + width: 70px; +} +:host .field-number { + width: 60px; +} +:host .field-number input { + width: inherit; + text-align: center; +} +:host .field-number span { + width: 65px; + text-align: left; +} +:host .section-inline-margin-s { + display: inline-block; + width: 5px; +} +:host .section-inline-color { + display: inline-block; + width: 60px; +} +:host .section-inline-color input { + width: 60px !important; + text-align: center; +} +:host .section-inline-color span { + width: 60px; +} +:host .section-inline-margin { + display: inline-block; + width: 12px; +} +:host .section-inline-margin2 { + display: inline-block; + width: 16px; +} +:host .section-newline { + height: 8px; + display: block; +} +:host ::ng-deep .slider-field mat-slider { + background-color: var(--formSliderBackground); + height: 30px; + width: 100px; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; + min-width: 110px !important; + width: 110px !important; +} +:host .events-section { + display: contents; +} +:host .events-section .event-item { + margin-top: 5px; +} +:host .events-section .event-type { + width: 120px; +} +:host .events-section .event-action { + width: 120px; +} +:host .events-section .event-remove { + float: right; +} +:host .events-section .event-action-ext { + padding-bottom: 10px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} +:host .events-section .event-script { + padding-left: 10px; +} +:host .events-section .event-script .script-selection { + width: calc(100% - 15px); +} +:host .events-section .event-script .event-script-param { + width: 120px; +} +:host .events-section .event-script .event-script-value { + width: calc(100% - 120px); +} +:host .events-section .event-script .event-script-tag { + width: calc(100% - 125px); +} +:host .events-toolbox { + display: block; + width: 100%; +} +:host .events-toolbox button { + margin-left: 10px; +} +:host .section-item-block mat-select, :host input { + width: calc(100% - 15px); +} + +::ng-deep .chart-filter-option { + line-height: 28px !important; + height: 28px !important; +} +::ng-deep .chart-filter-option span { + font-size: 13px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-chart/chart-property/chart-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-chart/chart-property/chart-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;EACA,gBAAA;ACAR;ADGI;EACI,WAAA;ACDR;ADII;EACI,WAAA;ACFR;ADGQ;EACI,wBAAA;ACDZ;ADKI;EACI,WAAA;ACHR;ADMI;EACI,WAAA;ACJR;ADOI;EACI,cAAA;EACA,kBAAA;ACLR;ADQI;EACI,WAAA;EACA,gBAAA;ACNR;ADSI;EACI,qBAAA;EACA,UAAA;ACPR;ADUI;EACI,qBAAA;EACA,WAAA;ACRR;ADWI;EACI,sBAAA;EACA,kBAAA;ACTR;ADYI;EACI,WAAA;ACVR;ADaI;EACI,qBAAA;EACA,WAAA;ACXR;ADcI;EACI,qBAAA;EACA,WAAA;ACZR;ADeI;EACI,WAAA;EACA,cAAA;ACbR;ADgBI;EACI,6CAAA;EACA,YAAA;EACA,YAAA;ACdR;ADiBI;EACI,uBAAA;EACA,2BAAA;EACA,uBAAA;ACfR;ADkBI;EACI,iBAAA;AChBR;ADkBQ;EACI,eAAA;AChBZ;ADkBQ;EACI,YAAA;AChBZ;ADkBQ;EACI,YAAA;AChBZ;ADkBQ;EACI,YAAA;AChBZ;ADkBQ;EACI,oBAAA;EACA,2CAAA;AChBZ;ADkBQ;EACI,kBAAA;AChBZ;ADiBY;EACI,wBAAA;ACfhB;ADiBY;EACI,YAAA;ACfhB;ADiBY;EACI,yBAAA;ACfhB;ADiBY;EACI,yBAAA;ACfhB;ADmBI;EACI,cAAA;EACA,WAAA;ACjBR;ADmBQ;EACI,iBAAA;ACjBZ;ADqBI;EACI,wBAAA;ACnBR;;ADuBA;EAEI,4BAAA;EACA,uBAAA;ACrBJ;ADuBI;EACI,eAAA;ACrBR","sourcesContent":[":host {\n .chart-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n padding-top: 5px;\n }\n\n .section-item {\n width: 100%;\n }\n\n .field-block {\n width: 100%;\n mat-select, input, span {\n width:calc(100% - 15px);\n }\n }\n\n .field-text input {\n width: 70px;\n }\n\n .field-number {\n width: 60px;\n }\n\n .field-number input {\n width: inherit;\n text-align: center;\n }\n\n .field-number span {\n width: 65px;\n text-align: left;\n }\n\n .section-inline-margin-s {\n display: inline-block;\n width: 5px;\n }\n\n .section-inline-color {\n display: inline-block;\n width: 60px;\n }\n\n .section-inline-color input {\n width: 60px !important;\n text-align: center;\n }\n\n .section-inline-color span {\n width: 60px;\n }\n\n .section-inline-margin {\n display: inline-block;\n width: 12px;\n }\n\n .section-inline-margin2 {\n display: inline-block;\n width: 16px;\n }\n\n .section-newline {\n height: 8px;\n display: block;\n }\n\n ::ng-deep .slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 30px;\n width: 100px;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n }\n\n .events-section {\n display: contents;\n\n .event-item {\n margin-top: 5px;\n }\n .event-type {\n width: 120px;\n }\n .event-action {\n width: 120px;\n }\n .event-remove {\n float: right;\n }\n .event-action-ext {\n padding-bottom: 10px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n }\n .event-script {\n padding-left: 10px;\n .script-selection {\n width: calc(100% - 15px);\n }\n .event-script-param {\n width: 120px;\n }\n .event-script-value {\n width: calc(100% - 120px);\n }\n .event-script-tag {\n width: calc(100% - 125px);\n }\n }\n }\n .events-toolbox {\n display: block;\n width: 100%;\n\n button {\n margin-left: 10px;\n }\n }\n\n .section-item-block mat-select, input {\n width:calc(100% - 15px);\n }\n}\n\n::ng-deep .chart-filter-option {\n\n line-height: 28px !important;\n height: 28px !important;\n\n span {\n font-size: 13px;\n }\n}",":host .chart-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n padding-top: 5px;\n}\n:host .section-item {\n width: 100%;\n}\n:host .field-block {\n width: 100%;\n}\n:host .field-block mat-select, :host .field-block input, :host .field-block span {\n width: calc(100% - 15px);\n}\n:host .field-text input {\n width: 70px;\n}\n:host .field-number {\n width: 60px;\n}\n:host .field-number input {\n width: inherit;\n text-align: center;\n}\n:host .field-number span {\n width: 65px;\n text-align: left;\n}\n:host .section-inline-margin-s {\n display: inline-block;\n width: 5px;\n}\n:host .section-inline-color {\n display: inline-block;\n width: 60px;\n}\n:host .section-inline-color input {\n width: 60px !important;\n text-align: center;\n}\n:host .section-inline-color span {\n width: 60px;\n}\n:host .section-inline-margin {\n display: inline-block;\n width: 12px;\n}\n:host .section-inline-margin2 {\n display: inline-block;\n width: 16px;\n}\n:host .section-newline {\n height: 8px;\n display: block;\n}\n:host ::ng-deep .slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 30px;\n width: 100px;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n}\n:host .events-section {\n display: contents;\n}\n:host .events-section .event-item {\n margin-top: 5px;\n}\n:host .events-section .event-type {\n width: 120px;\n}\n:host .events-section .event-action {\n width: 120px;\n}\n:host .events-section .event-remove {\n float: right;\n}\n:host .events-section .event-action-ext {\n padding-bottom: 10px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n:host .events-section .event-script {\n padding-left: 10px;\n}\n:host .events-section .event-script .script-selection {\n width: calc(100% - 15px);\n}\n:host .events-section .event-script .event-script-param {\n width: 120px;\n}\n:host .events-section .event-script .event-script-value {\n width: calc(100% - 120px);\n}\n:host .events-section .event-script .event-script-tag {\n width: calc(100% - 125px);\n}\n:host .events-toolbox {\n display: block;\n width: 100%;\n}\n:host .events-toolbox button {\n margin-left: 10px;\n}\n:host .section-item-block mat-select, :host input {\n width: calc(100% - 15px);\n}\n\n::ng-deep .chart-filter-option {\n line-height: 28px !important;\n height: 28px !important;\n}\n::ng-deep .chart-filter-option span {\n font-size: 13px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 36366: +/*!**********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/chart-uplot/chart-uplot.component.scss?ngResource ***! + \**********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host ::ng-deep .mychart-panel { + display: block; + margin: 0 auto; + height: inherit; + width: inherit; +} +:host ::ng-deep .mychart-graph { + display: block; + margin: 0 auto; +} +:host ::ng-deep .mychart-toolbar { + display: block; + height: 34px !important; + width: 100% !important; + background-color: transparent; +} +:host ::ng-deep .mychart-toolbar-editor { + margin-left: 5px; + border: 0px; + height: 28px; + width: 140px; + vertical-align: middle; + line-height: 20px; + box-shadow: 1px 1px 3px -1px #888; +} +:host ::ng-deep .mychart-toolbar-srange { + width: 140px; + background-color: inherit !important; + /* border: 0.5px solid #888; */ + box-shadow: 1px 1px 3px -1px #888; +} +:host ::ng-deep ::ng-deep .mychart-toolbar-srange .mat-select-value { + color: inherit !important; +} +:host ::ng-deep ::ng-deep .mychart-toolbar-srange .mat-select-arrow { + color: inherit !important; +} +:host ::ng-deep .mychart-toolbar-step { + margin-left: 5px; + border: 0px; + height: 28px; + width: 40px; + cursor: pointer; + vertical-align: middle; + line-height: 20px; + /* border: 0.5px solid #888; */ + box-shadow: 1px 1px 3px -1px #888 !important; + min-width: 40px; + padding: unset; +} +:host ::ng-deep ::ng-deep .my-select-panel-class { + background: inherit !important; + color: inherit !important; +} +:host ::ng-deep .spinner { + position: absolute; + top: 40%; + left: calc(50% - 20px); +} +:host ::ng-deep .small-icon-button { + width: 24px; + height: 24px; + line-height: 24px; +} +:host ::ng-deep .small-icon-button .mat-icon { + width: 20px; + height: 20px; + line-height: 20px; +} +:host ::ng-deep .small-icon-button .material-icons { + font-size: 20px; +} +:host ::ng-deep .reload-btn { + position: absolute; + top: 0px; + right: 5px; + z-index: 9999; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-chart/chart-uplot/chart-uplot.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-chart/chart-uplot/chart-uplot.component.scss"],"names":[],"mappings":"AACI;EACI,cAAA;EACA,cAAA;EACA,eAAA;EACA,cAAA;ACAR;ADGI;EACI,cAAA;EACA,cAAA;ACDR;ADII;EACI,cAAA;EACA,uBAAA;EACA,sBAAA;EACA,6BAAA;ACFR;ADKI;EACI,gBAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,sBAAA;EACA,iBAAA;EACA,iCAAA;ACHR;ADMI;EACI,YAAA;EACA,oCAAA;EACA,8BAAA;EACA,iCAAA;ACJR;ADOI;EACI,yBAAA;ACLR;ADQI;EACI,yBAAA;ACNR;ADSI;EACI,gBAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,eAAA;EACA,sBAAA;EACA,iBAAA;EACA,8BAAA;EACA,4CAAA;EACA,eAAA;EACA,cAAA;ACPR;ADUI;EACI,8BAAA;EACA,yBAAA;ACRR;ADWI;EACI,kBAAA;EACA,QAAA;EACA,sBAAA;ACTR;ADYI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACVR;ADYQ;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACVZ;ADaQ;EACI,eAAA;ACXZ;ADeI;EACI,kBAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;ACbR","sourcesContent":[":host ::ng-deep {\n .mychart-panel {\n display: block;\n margin: 0 auto;\n height: inherit;\n width: inherit;\n }\n\n .mychart-graph {\n display: block;\n margin: 0 auto;\n }\n\n .mychart-toolbar {\n display: block;\n height: 34px !important;\n width: 100% !important;\n background-color: transparent;\n }\n\n .mychart-toolbar-editor {\n margin-left:5px;\n border: 0px;\n height: 28px;\n width: 140px;\n vertical-align: middle;\n line-height: 20px;\n box-shadow: 1px 1px 3px -1px #888;\n }\n\n .mychart-toolbar-srange {\n width: 140px; \n background-color: inherit !important;\n /* border: 0.5px solid #888; */\n box-shadow: 1px 1px 3px -1px #888;\n }\n\n ::ng-deep .mychart-toolbar-srange .mat-select-value {\n color: inherit !important;\n }\n\n ::ng-deep .mychart-toolbar-srange .mat-select-arrow {\n color: inherit !important;\n }\n\n .mychart-toolbar-step {\n margin-left:5px;\n border: 0px;\n height: 28px;\n width: 40px;\n cursor: pointer;\n vertical-align: middle;\n line-height: 20px;\n /* border: 0.5px solid #888; */\n box-shadow: 1px 1px 3px -1px #888 !important;\n min-width: 40px;\n padding: unset;\n }\n\n ::ng-deep .my-select-panel-class {\n background: inherit !important;\n color: inherit !important;\n }\n\n .spinner {\n position: absolute;\n top: 40%;\n left: calc(50% - 20px);\n }\n\n .small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n\n .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n }\n\n .material-icons {\n font-size: 20px;\n }\n }\n\n .reload-btn {\n position: absolute;\n top: 0px;\n right: 5px;\n z-index: 9999;\n }\n}",":host ::ng-deep .mychart-panel {\n display: block;\n margin: 0 auto;\n height: inherit;\n width: inherit;\n}\n:host ::ng-deep .mychart-graph {\n display: block;\n margin: 0 auto;\n}\n:host ::ng-deep .mychart-toolbar {\n display: block;\n height: 34px !important;\n width: 100% !important;\n background-color: transparent;\n}\n:host ::ng-deep .mychart-toolbar-editor {\n margin-left: 5px;\n border: 0px;\n height: 28px;\n width: 140px;\n vertical-align: middle;\n line-height: 20px;\n box-shadow: 1px 1px 3px -1px #888;\n}\n:host ::ng-deep .mychart-toolbar-srange {\n width: 140px;\n background-color: inherit !important;\n /* border: 0.5px solid #888; */\n box-shadow: 1px 1px 3px -1px #888;\n}\n:host ::ng-deep ::ng-deep .mychart-toolbar-srange .mat-select-value {\n color: inherit !important;\n}\n:host ::ng-deep ::ng-deep .mychart-toolbar-srange .mat-select-arrow {\n color: inherit !important;\n}\n:host ::ng-deep .mychart-toolbar-step {\n margin-left: 5px;\n border: 0px;\n height: 28px;\n width: 40px;\n cursor: pointer;\n vertical-align: middle;\n line-height: 20px;\n /* border: 0.5px solid #888; */\n box-shadow: 1px 1px 3px -1px #888 !important;\n min-width: 40px;\n padding: unset;\n}\n:host ::ng-deep ::ng-deep .my-select-panel-class {\n background: inherit !important;\n color: inherit !important;\n}\n:host ::ng-deep .spinner {\n position: absolute;\n top: 40%;\n left: calc(50% - 20px);\n}\n:host ::ng-deep .small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n:host ::ng-deep .small-icon-button .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n}\n:host ::ng-deep .small-icon-button .material-icons {\n font-size: 20px;\n}\n:host ::ng-deep .reload-btn {\n position: absolute;\n top: 0px;\n right: 5px;\n z-index: 9999;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 68028: +/*!******************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-bar/graph-bar.component.scss?ngResource ***! + \******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.graph-toolbar { + position: fixed; + right: 0px; + top: 0px; + z-index: 9999; +} + +.small-icon-button { + width: 24px; + height: 24px; + line-height: 24px; +} +.small-icon-button .mat-icon { + width: 20px; + height: 20px; + line-height: 20px; +} +.small-icon-button .material-icons { + font-size: 20px; +} + +.reload-active { + animation: spin 1.2s linear infinite; +} +@keyframes spin { + 0% { + transform: rotate(0deg); + transform-origin: center center; + } + 100% { + transform: rotate(360deg); + transform-origin: center center; + } +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-graph/graph-bar/graph-bar.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-graph/graph-bar/graph-bar.component.scss"],"names":[],"mappings":"AAAA;EACI,eAAA;EACA,UAAA;EACA,QAAA;EACA,aAAA;ACCJ;;ADEA;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACCJ;ADCI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACCR;ADEI;EACI,eAAA;ACAR;;ADIA;EAEI,oCAAA;ACDJ;ADaA;EACI;IACI,uBAAA;IACA,+BAAA;ECFN;EDIE;IACI,yBAAA;IACA,+BAAA;ECFN;AACF","sourcesContent":[".graph-toolbar {\n position: fixed;\n right: 0px;\n top: 0px;\n z-index: 9999;\n}\n\n.small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n\n .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n }\n\n .material-icons {\n font-size: 20px;\n }\n}\n\n.reload-active {\n -webkit-animation: spin 1.2s linear infinite;\n animation: spin 1.2s linear infinite;\n}\n\n@-webkit-keyframes spin {\n 0% { \n -webkit-transform: rotate(0deg);\n }\n 100% { \n -webkit-transform: rotate(360deg);\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n transform-origin: center center;\n }\n 100% {\n transform: rotate(360deg);\n transform-origin: center center;\n }\n}",".graph-toolbar {\n position: fixed;\n right: 0px;\n top: 0px;\n z-index: 9999;\n}\n\n.small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n.small-icon-button .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n}\n.small-icon-button .material-icons {\n font-size: 20px;\n}\n\n.reload-active {\n -webkit-animation: spin 1.2s linear infinite;\n animation: spin 1.2s linear infinite;\n}\n\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n transform-origin: center center;\n }\n 100% {\n transform: rotate(360deg);\n transform-origin: center center;\n }\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 13872: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-property/graph-property.component.scss?ngResource ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .graph-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); +} +:host .section-item { + width: 100%; +} +:host .section-item-block mat-select, :host input, :host span { + width: calc(100% - 15px); +} +:host .section-inline-number { + display: inline-block; + width: 60px; +} +:host .section-inline-number input { + width: inherit; + text-align: center; +} +:host .section-inline-number span { + width: 65px; + text-align: left; +} +:host .section-inline-toggle { + display: inline-block; + width: 50px; + text-align: center; +} +:host .section-inline-toggle span { + width: inherit; +} +:host .section-inline-toggle mat-slide-toggle { + width: inherit; + padding-left: 10px; +} +:host .section-inline-toggle-ext span { + width: 85px; +} +:host .section-inline-toggle-ext mat-slide-toggle { + padding-left: 20px; +} +:host .section-inline-color { + display: inline-block; + width: 60px; +} +:host .section-inline-color input { + width: 60px !important; + text-align: center; +} +:host .section-inline-color span { + width: 65px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-graph/graph-property/graph-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-graph/graph-property/graph-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;ACAR;ADGI;EACI,WAAA;ACDR;ADII;EACI,wBAAA;ACFR;ADKI;EACI,qBAAA;EACA,WAAA;ACHR;ADMI;EACI,cAAA;EACA,kBAAA;ACJR;ADOI;EACI,WAAA;EACA,gBAAA;ACLR;ADQI;EACI,qBAAA;EACA,WAAA;EACA,kBAAA;ACNR;ADSI;EACI,cAAA;ACPR;ADUI;EACI,cAAA;EACA,kBAAA;ACRR;ADWI;EACI,WAAA;ACTR;ADYI;EACI,kBAAA;ACVR;ADaI;EACI,qBAAA;EACA,WAAA;ACXR;ADcI;EACI,sBAAA;EACA,kBAAA;ACZR;ADeI;EACI,WAAA;ACbR","sourcesContent":[":host {\n .graph-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n }\n\n .section-item {\n width: 100%;\n }\n\n .section-item-block mat-select, input, span {\n width:calc(100% - 15px);\n }\n\n .section-inline-number {\n display: inline-block;\n width: 60px;\n }\n\n .section-inline-number input {\n width: inherit;\n text-align: center;\n }\n\n .section-inline-number span {\n width: 65px;\n text-align: left;\n }\n\n .section-inline-toggle {\n display: inline-block;\n width: 50px;\n text-align: center;\n }\n\n .section-inline-toggle span {\n width: inherit;\n }\n\n .section-inline-toggle mat-slide-toggle {\n width: inherit;\n padding-left: 10px;\n }\n\n .section-inline-toggle-ext span {\n width: 85px;\n }\n\n .section-inline-toggle-ext mat-slide-toggle {\n padding-left: 20px;\n }\n\n .section-inline-color {\n display: inline-block;\n width: 60px;\n }\n\n .section-inline-color input {\n width: 60px !important;\n text-align: center;\n }\n\n .section-inline-color span {\n width: 65px;\n }\n}",":host .graph-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n}\n:host .section-item {\n width: 100%;\n}\n:host .section-item-block mat-select, :host input, :host span {\n width: calc(100% - 15px);\n}\n:host .section-inline-number {\n display: inline-block;\n width: 60px;\n}\n:host .section-inline-number input {\n width: inherit;\n text-align: center;\n}\n:host .section-inline-number span {\n width: 65px;\n text-align: left;\n}\n:host .section-inline-toggle {\n display: inline-block;\n width: 50px;\n text-align: center;\n}\n:host .section-inline-toggle span {\n width: inherit;\n}\n:host .section-inline-toggle mat-slide-toggle {\n width: inherit;\n padding-left: 10px;\n}\n:host .section-inline-toggle-ext span {\n width: 85px;\n}\n:host .section-inline-toggle-ext mat-slide-toggle {\n padding-left: 20px;\n}\n:host .section-inline-color {\n display: inline-block;\n width: 60px;\n}\n:host .section-inline-color input {\n width: 60px !important;\n text-align: center;\n}\n:host .section-inline-color span {\n width: 65px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 13889: +/*!*******************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-iframe/iframe-property/iframe-property.component.scss?ngResource ***! + \*******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .iframe-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); +} +:host .section-item { + width: 100%; +} +:host .section-item-block input, :host span { + width: calc(100% - 15px); +} +:host .item-device-tag { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-iframe/iframe-property/iframe-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-iframe/iframe-property/iframe-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;ACAR;ADGI;EACI,WAAA;ACDR;ADII;EACI,wBAAA;ACFR;ADKI;EACI,uBAAA;ACHR","sourcesContent":[":host {\n .iframe-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n }\n\n .section-item {\n width: 100%;\n }\n\n .section-item-block input, span {\n width:calc(100% - 15px);\n }\n\n .item-device-tag {\n width:calc(100% - 5px);\n }\n}",":host .iframe-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n}\n:host .section-item {\n width: 100%;\n}\n:host .section-item-block input, :host span {\n width: calc(100% - 15px);\n}\n:host .item-device-tag {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 92474: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-input/input-property/input-property.component.scss?ngResource ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 760px; + position: relative; +} +:host ::ng-deep .input-text .mat-form-field-infix { + padding-top: 5px; + padding-bottom: 0px; +} +:host ::ng-deep .mat-dialog-container { + display: inline-table !important; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; +} +:host .mat-tab-container { + min-height: 300px; + height: 60vmin; + overflow-y: auto; + overflow-x: hidden; + padding-top: 15px; +} +:host .mat-tab-container > div { + display: block; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-input/input-property/input-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-input/input-property/input-property.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;EACA,kBAAA;ACAR;ADGI;EACI,gBAAA;EACA,mBAAA;ACDR;ADII;EACI,gCAAA;ACFR;ADKI;EACI,uBAAA;ACHR;ADMI;EACI,iBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,iBAAA;ACJR;ADOI;EACI,cAAA;ACLR","sourcesContent":[":host {\n .container {\n width: 760px;\n position: relative;\n }\n\n ::ng-deep .input-text .mat-form-field-infix {\n padding-top: 5px;\n padding-bottom: 0px;\n }\n\n ::ng-deep .mat-dialog-container {\n display: inline-table !important;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n }\n\n .mat-tab-container {\n min-height: 300px;\n height: 60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n }\n\n .mat-tab-container>div {\n display: block;\n }\n}",":host .container {\n width: 760px;\n position: relative;\n}\n:host ::ng-deep .input-text .mat-form-field-infix {\n padding-top: 5px;\n padding-bottom: 0px;\n}\n:host ::ng-deep .mat-dialog-container {\n display: inline-table !important;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n}\n:host .mat-tab-container {\n min-height: 300px;\n height: 60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n}\n:host .mat-tab-container > div {\n display: block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 28524: +/*!****************************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler-confirm-dialog/scheduler-confirm-dialog.component.scss?ngResource ***! + \****************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .confirmation-overlay { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.4); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} +:host .confirmation-dialog { + width: 520px; + max-width: calc(100vw - 32px); + background: #1e1f24; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6); + padding: 16px 20px; +} +:host .dialog-header { + display: flex; + align-items: center; + gap: 8px; +} +:host .warning-icon { + font-size: 28px; + color: #ffb74d; +} +:host .dialog-content { + margin: 12px 0 8px; +} +:host .dialog-actions { + display: flex; + justify-content: flex-end; + gap: 8px; +} +.scheduler-confirm-panel .mat-mdc-dialog-container { + padding: 0 !important; + background: transparent !important; + box-shadow: none !important; +} +.scheduler-confirm-panel .mat-mdc-dialog-surface { + padding: 0 !important; + background: transparent !important; + box-shadow: none !important; + border-radius: 0 !important; +} +.scheduler-confirm-panel .mat-dialog-container { + padding: 0 !important; + background: transparent !important; + box-shadow: none !important; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-scheduler/scheduler-confirm-dialog/scheduler-confirm-dialog.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-scheduler/scheduler-confirm-dialog/scheduler-confirm-dialog.component.scss"],"names":[],"mappings":"AACI;EACI,eAAA;EACA,QAAA;EACA,8BAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,aAAA;ACAR;ADGI;EACI,YAAA;EACA,6BAAA;EACA,mBAAA;EACA,mBAAA;EACA,0CAAA;EACA,kBAAA;ACDR;ADII;EACI,aAAA;EACA,mBAAA;EACA,QAAA;ACFR;ADKI;EACI,eAAA;EACA,cAAA;ACHR;ADMI;EACI,kBAAA;ACJR;ADOI;EACI,aAAA;EACA,yBAAA;EACA,QAAA;ACLR;ADgBI;EACI,qBAAA;EACA,kCAAA;EACA,2BAAA;ACdR;ADiBI;EACI,qBAAA;EACA,kCAAA;EACA,2BAAA;EACA,2BAAA;ACfR;ADkBI;EACI,qBAAA;EACA,kCAAA;EACA,2BAAA;AChBR","sourcesContent":[":host {\n .confirmation-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, .4);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n }\n\n .confirmation-dialog {\n width: 520px;\n max-width: calc(100vw - 32px);\n background: #1e1f24;\n border-radius: 12px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, .6);\n padding: 16px 20px;\n }\n\n .dialog-header {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .warning-icon {\n font-size: 28px;\n color: #ffb74d;\n }\n\n .dialog-content {\n margin: 12px 0 8px;\n }\n\n .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n }\n\n .cancel-btn {\n }\n\n .confirm-btn {\n }\n}\n\n.scheduler-confirm-panel {\n .mat-mdc-dialog-container {\n padding: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n\n .mat-mdc-dialog-surface {\n padding: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n border-radius: 0 !important;\n }\n\n .mat-dialog-container {\n padding: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n}",":host .confirmation-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n:host .confirmation-dialog {\n width: 520px;\n max-width: calc(100vw - 32px);\n background: #1e1f24;\n border-radius: 12px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);\n padding: 16px 20px;\n}\n:host .dialog-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n:host .warning-icon {\n font-size: 28px;\n color: #ffb74d;\n}\n:host .dialog-content {\n margin: 12px 0 8px;\n}\n:host .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.scheduler-confirm-panel .mat-mdc-dialog-container {\n padding: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n}\n.scheduler-confirm-panel .mat-mdc-dialog-surface {\n padding: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n border-radius: 0 !important;\n}\n.scheduler-confirm-panel .mat-dialog-container {\n padding: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 88154: +/*!****************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler-property/scheduler-property.component.scss?ngResource ***! + \****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); + padding-top: 5px; +} +:host .toolbox { + line-height: 44px; + display: block; +} +:host .devices-content .row-item { + padding-top: 5px; + padding-bottom: 10px; + border-bottom: 1px solid var(--toolboxBorder); +} +:host ::ng-deep .mat-dialog-container { + display: inline-table !important; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; +} +:host .my-form-field .input-color { + border: none; + background: rgba(255, 255, 255, 0.1); + border-radius: 3px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-scheduler/scheduler-property/scheduler-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-scheduler/scheduler-property/scheduler-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;EACA,gBAAA;ACAR;ADGI;EACI,iBAAA;EACA,cAAA;ACDR;ADMQ;EACI,gBAAA;EACA,oBAAA;EACA,6CAAA;ACJZ;ADWI;EACI,gCAAA;ACTR;ADYI;EACI,uBAAA;ACVR;ADeQ;EACI,YAAA;EACA,oCAAA;EACA,kBAAA;ACbZ","sourcesContent":[":host {\n .container {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n padding-top: 5px;\n }\n\n .toolbox {\n line-height: 44px;\n display: block;\n }\n\n .devices-content {\n\n .row-item {\n padding-top: 5px;\n padding-bottom: 10px;\n border-bottom: 1px solid var(--toolboxBorder);\n }\n }\n\n .layout-content {\n }\n\n ::ng-deep .mat-dialog-container {\n display: inline-table !important;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n }\n\n\n .my-form-field {\n .input-color {\n border: none;\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n }\n }\n\n // .mat-tab-container {\n // min-height: 300px;\n // height: 60vmin;\n // overflow-y: auto;\n // overflow-x: hidden;\n // padding-top: 15px;\n // }\n\n // .mat-tab-container>div {\n // display: block;\n // }\n\n\n // ::ng-deep .input-text .mat-form-field-infix {\n // padding-top: 5px;\n // padding-bottom: 0px;\n // }\n\n // .grid-conta {\n // .item {\n // .device-item {\n // display: flex;\n // align-items: flex-start;\n // gap: 15px;\n // padding: 10px 0;\n\n // .name-auth-container {\n // display: flex;\n // align-items: flex-end;\n\n // .my-form-field {\n // margin-bottom: 0;\n\n // input {\n // background-color: var(--formInputBackground);\n // color: var(--formInputColor);\n // height: 32px;\n // box-sizing: border-box;\n // }\n // }\n\n // .ml10 {\n // margin-left: 13px;\n // }\n\n // .my-form-field-permission {\n // width: 32px;\n // height: 32px;\n // border: 1px solid rgba(255, 255, 255, 0.3);\n // border-radius: 4px;\n // display: flex;\n // align-items: center;\n // justify-content: center;\n // background-color: var(--formInputBackground);\n\n // &:hover {\n // background-color: rgba(255, 255, 255, 0.1);\n // }\n\n // mat-icon {\n // color: var(--formInputColor);\n // font-size: 18px;\n // }\n // }\n\n // .pointer {\n // cursor: pointer;\n // }\n // }\n\n // .tag-field {\n // flex: 1;\n\n // ::ng-deep flex-variable {\n // .container {\n // display: block;\n // margin-bottom: 0;\n // }\n // }\n // }\n\n // .item-remove {\n // flex-shrink: 0;\n // display: flex;\n // align-items: center;\n // margin-left: 10px;\n\n // button {\n // width: 32px;\n // height: 32px;\n // min-height: 32px;\n // line-height: 32px;\n // color: white;\n // background: transparent;\n\n // &:disabled {\n // opacity: 0.5;\n // cursor: not-allowed;\n // }\n\n // mat-icon {\n // font-size: 18px;\n // width: 18px;\n // height: 18px;\n // }\n // }\n // }\n // }\n // }\n // }\n\n\n // .mat-tab-container {\n // background: transparent;\n\n // .mat-dialog-content {\n // background: transparent;\n // }\n\n // .grid-conta {\n // margin-bottom: 15px;\n\n // .item {\n // .item-step {\n // display: flex;\n // align-items: flex-end;\n // gap: 15px;\n\n // .my-form-field {\n // margin-bottom: 0;\n // }\n // }\n // }\n // }\n\n // }\n}\n\n// .dialog-action {\n// padding-top: 20px;\n\n// button {\n// margin-right: 10px;\n// }\n// }\n\n// ::ng-deep .mat-autocomplete-panel {\n// background: #424242;\n// color: white;\n\n// .mat-option {\n// color: white;\n\n// &:hover,\n// &:focus {\n// background: rgba(255, 255, 255, 0.1);\n// }\n\n// &.mat-selected {\n// background: rgba(255, 255, 255, 0.2);\n// }\n// }\n\n// .mat-optgroup-label {\n// color: rgba(255, 255, 255, 0.8);\n// background: rgba(255, 255, 255, 0.05);\n// font-weight: 500;\n// }\n// }\n\n// // Events Tab Styles\n// .event-item {\n// border: 1px solid rgba(255, 255, 255, 0.2);\n// border-radius: 4px;\n// padding: 15px;\n// margin-bottom: 15px;\n// position: relative;\n// background: rgba(0, 0, 0, 0.2);\n// }\n\n// .event-header {\n// position: absolute;\n// top: 5px;\n// right: 5px;\n// }\n\n// .remove-btn {\n// color: rgba(255, 255, 255, 0.7);\n\n// &:hover {\n// color: #ff4444;\n// }\n// }\n\n// .event-row {\n// display: flex;\n// align-items: flex-end;\n// gap: 10px;\n// flex-wrap: wrap;\n// }\n\n// .add-event-btn {\n// text-align: center;\n// padding: 10px;\n\n// button {\n// color: rgba(255, 255, 255, 0.9);\n// border: 1px dashed rgba(255, 255, 255, 0.3);\n\n// &:hover {\n// border-color: rgba(255, 255, 255, 0.6);\n// background: rgba(255, 255, 255, 0.05);\n// }\n// }\n// }\n\n// .mb10 {\n// margin-bottom: 10px;\n// }\n\n// .mt10 {\n// margin-top: 10px;\n// }\n\n// .mt15 {\n// margin-top: 15px;\n// }\n\n// .ml10 {\n// margin-left: 10px;\n// }\n\n// .dialog-hint {\n// padding: 10px;\n// background: rgba(85, 110, 130, 0.2);\n// border-left: 3px solid rgba(85, 110, 130, 0.8);\n// border-radius: 4px;\n\n// label {\n// color: rgba(255, 255, 255, 0.9);\n// font-size: 13px;\n// margin: 0;\n// }\n// }\n\n// // Event items styling (matching flex-event component)\n// .item {\n// display: block;\n// width: 100%;\n// border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n// padding: 0px 0px 5px 0px;\n// min-width: 664px;\n// margin-bottom: 3px;\n// }\n\n// .remove {\n// position: relative;\n// top: 4px;\n// right: 0px;\n// }\n\n// .item-remove {\n// float: right;\n// }\n\n// .inbk {\n// display: inline-block;\n// }\n\n// .lbk {\n// display: block;\n// }\n\n// .ml15 {\n// margin-left: 15px;\n// }\n\n// .mt5 {\n// margin-top: 5px;\n// }\n\n// .mt8 {\n// margin-top: 8px;\n// }",":host .container {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n padding-top: 5px;\n}\n:host .toolbox {\n line-height: 44px;\n display: block;\n}\n:host .devices-content .row-item {\n padding-top: 5px;\n padding-bottom: 10px;\n border-bottom: 1px solid var(--toolboxBorder);\n}\n:host ::ng-deep .mat-dialog-container {\n display: inline-table !important;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n}\n:host .my-form-field .input-color {\n border: none;\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 96986: +/*!**********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler/scheduler.component.scss?ngResource ***! + \**********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `@charset "UTF-8"; +.months-row { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(40px, 1fr)); + gap: 4px; + margin-bottom: 8px; +} + +.days-of-month-calendar { + display: grid; + grid-template-columns: repeat(7, minmax(14px, 38px)); + gap: 6px; +} + +.month-btn { + flex: 1; + padding: 8px 4px; + border: 1px solid #ccc; + background: #f9f9f9; + color: var(--scheduler-text-color, #333333); + cursor: pointer; + border-radius: 3px; + font-size: 11px; + font-weight: 500; + margin: 2px; + display: inline-flex; + align-items: center; + justify-content: center; + transition: background 0.2s, color 0.2s; +} + +.month-btn.active { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); +} + +.month-btn:hover { + background: #e0e0e0; + color: var(--scheduler-text-color, #333333); +} + +.month-btn.active:hover { + background: var(--scheduler-accent-color, #1976d2); + color: var(--scheduler-secondary-text-color, #ffffff); +} + +.month-indicator { + flex: 1; + padding: 8px 4px; + border: 1px solid #ccc; + background: #f9f9f9; + color: var(--scheduler-text-color, #333333); + border-radius: 3px; + font-size: 11px; + font-weight: 500; + margin: 2px; + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 40px; + max-width: 50px; +} + +.month-indicator[style*="background: #2196f3"] { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; + border-color: var(--scheduler-accent-color, #2196f3) !important; +} + +.toggle-row-responsive { + display: flex; + gap: 16px; + align-items: center; + margin-bottom: 12px; + flex-wrap: wrap; + justify-content: center; +} + +.toggle-item { + min-width: 120px; + flex: 1 1 120px; + display: flex; + align-items: center; + justify-content: center; +} + +.day-of-month-btn { + aspect-ratio: 1; + border-radius: 50%; + padding: 0; + margin: 0; + display: flex; + align-items: center; + justify-content: center; + font-size: 11px; + font-weight: 500; + background: #f9f9f9; + color: var(--scheduler-text-color, #333333); + border: 1px solid #ccc; + cursor: pointer; + transition: background 0.2s, color 0.2s; + width: 100%; + min-width: 24px; + max-width: 100%; +} + +@media (min-width: 768px) { + .day-of-month-btn { + font-size: 12px; + } +} +@media (min-width: 1200px) { + .day-of-month-btn { + font-size: 13px; + } +} +.day-of-month-btn.active { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); +} + +.day-of-month-btn:hover { + background: #e0e0e0; + color: var(--scheduler-text-color, #333333); +} + +.day-of-month-btn.active:hover { + background: var(--scheduler-accent-color, #1976d2); + color: var(--scheduler-secondary-text-color, #ffffff); +} + +.day-indicator { + aspect-ratio: 1; + border-radius: 50%; + padding: 0; + margin: 0; + display: flex; + align-items: center; + justify-content: center; + font-size: 11px; + font-weight: 500; + background: #f9f9f9; + color: var(--scheduler-text-color, #333333); + border: 1px solid #ccc; + width: 32px; + height: 32px; + min-width: 32px; +} + +.day-indicator[style*="background: #2196f3"] { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; + border-color: var(--scheduler-accent-color, #2196f3) !important; +} + +.day-btn.round-btn { + border-radius: 50%; + width: 32px; + height: 32px; + padding: 0; + margin: 2px; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 14px; + background: #e0e0e0; + color: #333; + border: 1px solid #bbb; + transition: background 0.2s, color 0.2s; +} + +.day-btn.round-btn.active { + background: var(--scheduler-accent-color, #2196f3); + color: #fff; + border: 2px solid var(--scheduler-accent-color, #2196f3); +} + +.days-grid { + display: flex; + flex-direction: column; + gap: 4px; + flex-wrap: wrap; +} + +.days-row { + display: flex; + flex-direction: row; + gap: 4px; + flex-wrap: wrap; +} + +.months-grid-responsive, .days-of-month-grid-responsive { + display: flex; + flex-wrap: wrap; + gap: 4px; + margin-bottom: 8px; +} + +.scheduler-container { + position: relative; + --mdc-theme-primary: var(--scheduler-accent-color) !important; + --mdc-theme-surface: var(--scheduler-bg-color) !important; + --mdc-theme-on-surface: var(--scheduler-text-color) !important; + --mdc-theme-text-primary-on-background: var(--scheduler-text-color) !important; + --mdc-filled-select-container-color: rgba(255, 255, 255, 0.2) !important; + --mdc-filled-select-ink-color: var(--scheduler-text-color) !important; + --mdc-select-ink-color: var(--scheduler-text-color) !important; + --mdc-select-container-fill-color: rgba(255, 255, 255, 0.2) !important; + --mdc-select-dropdown-icon-color: var(--scheduler-secondary-text-color, #ffffff) !important; + --mdc-select-hover-container-fill-color: rgba(255, 255, 255, 0.3) !important; + --mdc-select-focused-container-fill-color: var(--scheduler-accent-color) !important; + --mdc-select-focused-ink-color: var(--scheduler-secondary-text-color, #ffffff) !important; + --mdc-menu-container-shape: 4px !important; + --mdc-menu-container-color: var(--scheduler-bg-color) !important; + --mdc-menu-container-surface-tint-color: var(--scheduler-bg-color) !important; + --mdc-menu-item-container-height: 48px !important; + --mdc-menu-item-label-text-color: var(--scheduler-text-color) !important; + --mdc-menu-item-selected-container-fill-color: var(--scheduler-accent-color) !important; + --mdc-menu-item-selected-label-text-color: var(--scheduler-secondary-text-color, #ffffff) !important; + --mdc-menu-item-hover-container-fill-color: var(--scheduler-hover-color) !important; + display: flex; + flex-direction: column; + height: 100%; + min-height: 400px; + font-size: 14px; +} + +.scheduler-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 12px; + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-bottom: 1px solid var(--scheduler-border-color, #cccccc); +} +.scheduler-header .device-selector, .scheduler-header .device-name { + flex: none; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select { + background: rgba(255, 255, 255, 0.2) !important; + border: 1px solid rgba(255, 255, 255, 0.3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; + padding: 6px 8px !important; + border-radius: 3px !important; + cursor: pointer !important; + min-width: 150px !important; + display: flex !important; + align-items: center !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-value, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-value { + color: var(--scheduler-secondary-text-color, #ffffff) !important; + flex: 1 !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-arrow, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-arrow { + color: var(--scheduler-secondary-text-color, #ffffff) !important; + margin-left: 8px !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select:hover, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select:hover { + background: rgba(255, 255, 255, 0.3) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select:hover .mat-mdc-select-arrow, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select:hover .mat-mdc-select-arrow { + color: var(--scheduler-accent-color) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused { + background: var(--scheduler-accent-color) !important; + border-color: var(--scheduler-accent-color) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-value, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-value { + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-arrow, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-arrow { + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel { + background: var(--scheduler-bg-color) !important; + border: 1px solid var(--scheduler-border-color) !important; + border-radius: 4px !important; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option { + color: var(--scheduler-text-color) !important; + background: transparent !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected { + background: var(--scheduler-accent-color) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected), .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color) !important; + background-color: var(--scheduler-hover-color) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected), .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color) !important; + background-color: var(--scheduler-hover-color) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-select-panel-wrap, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-select-panel-wrap { + background: var(--scheduler-bg-color) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .cdk-overlay-pane, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .cdk-overlay-pane { + background: var(--scheduler-bg-color) !important; +} +.scheduler-header .device-selector .device-select ::ng-deep .mat-primary .mat-mdc-option.mdc-list-item--selected, .scheduler-header .device-name .device-select ::ng-deep .mat-primary .mat-mdc-option.mdc-list-item--selected { + background: var(--scheduler-accent-color) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} + +::ng-deep .custom-select-panel { + background: var(--scheduler-bg-color) !important; + border: 1px solid var(--scheduler-border-color) !important; + border-radius: 4px !important; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important; +} +::ng-deep .custom-select-panel .mat-mdc-option { + color: var(--scheduler-text-color) !important; + transition: background-color 0.2s ease !important; +} +::ng-deep .custom-select-panel .mat-mdc-option.mdc-list-item--selected { + background: var(--scheduler-accent-color) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} +::ng-deep ::ng-deep .custom-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important; +} + +::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected), +::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected), +::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected), +::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected), +::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected), +::ng-deep .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected), +::ng-deep .mat-option:hover:not(.mat-selected), +::ng-deep .mat-option.mat-option-highlighted:not(.mat-selected) { + background: var(--scheduler-hover-color) !important; + background-color: var(--scheduler-hover-color) !important; +} + +::ng-deep .mat-mdc-option .mdc-list-item__ripple::before, +::ng-deep .mat-mdc-option .mdc-list-item__ripple::after { + background-color: var(--scheduler-hover-color) !important; +} + +::ng-deep .mat-mdc-option:hover .mdc-list-item__ripple::before { + opacity: 0.04 !important; + background-color: var(--scheduler-hover-color) !important; +} + +.custom-select { + position: relative; + min-width: 150px; +} +.custom-select .custom-select-trigger { + background: rgba(255, 255, 255, 0.2); + border: 1px solid rgba(255, 255, 255, 0.3); + color: var(--scheduler-secondary-text-color, #ffffff); + padding: 6px 8px; + border-radius: 3px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: space-between; + transition: background-color 0.2s ease; +} +.custom-select .custom-select-trigger:hover:not(.disabled) { + background: rgba(255, 255, 255, 0.3); +} +.custom-select .custom-select-trigger .selected-text { + flex: 1; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.custom-select .custom-select-trigger .arrow { + margin-left: 8px; + font-size: 18px; + transition: transform 0.2s ease; +} +.custom-select.open .custom-select-trigger .arrow { + transform: rotate(180deg); +} +.custom-select.disabled .custom-select-trigger { + opacity: 0.6; + cursor: not-allowed; +} +.custom-select .custom-select-dropdown { + position: absolute; + top: 100%; + left: 0; + right: 0; + background: var(--scheduler-bg-color, #ffffff); + border: 1px solid var(--scheduler-border-color, #cccccc); + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + z-index: 1000; + max-height: 200px; + overflow-y: auto; +} +.custom-select .custom-select-dropdown .custom-option { + padding: 12px 16px; + cursor: pointer; + color: var(--scheduler-text-color, #333333); + background: transparent; + transition: background-color 0.2s ease; +} +.custom-select .custom-select-dropdown .custom-option:hover { + background: var(--scheduler-hover-color) !important; + color: var(--scheduler-text-color, #333333); +} +.custom-select .custom-select-dropdown .custom-option.selected { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); +} +.custom-select .custom-select-dropdown .custom-option.selected:hover { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} + +::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important; +} + +::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important; +} + +::ng-deep .mat-mdc-option:hover { + background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important; +} + +::ng-deep .mdc-list-item:hover:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important; +} + +.scheduler-container .header-actions { + display: flex; + gap: 8px; + align-items: center; +} +.scheduler-container .header-actions button { + background: rgba(255, 255, 255, 0.2); + border: 1px solid rgba(255, 255, 255, 0.3); + color: var(--scheduler-secondary-text-color, #ffffff); + padding: 6px; + border-radius: 3px; + cursor: pointer; + height: 32px; + display: flex; + align-items: center; + justify-content: center; +} +.scheduler-container .header-actions button:hover { + background: rgba(255, 255, 255, 0.3); +} +.scheduler-container .header-actions button.active { + background: rgba(76, 175, 80, 0.8); +} +.scheduler-container .header-actions button.status-btn, .scheduler-container .header-actions button.action-btn { + background: rgba(255, 255, 255, 0.2); + border: 1px solid rgba(255, 255, 255, 0.3); +} +.scheduler-container .header-actions button.status-btn .material-icons, .scheduler-container .header-actions button.action-btn .material-icons { + color: var(--scheduler-secondary-text-color, #ffffff); +} +.scheduler-container .header-actions button.status-btn:hover, .scheduler-container .header-actions button.action-btn:hover { + background: rgba(255, 255, 255, 0.3); +} +.scheduler-container .header-actions button.status-btn.active, .scheduler-container .header-actions button.action-btn.active { + background: var(--scheduler-accent-color, #2196f3); + border: 1px solid var(--scheduler-accent-color, #2196f3); +} +.scheduler-container .header-actions button.status-btn.active .material-icons, .scheduler-container .header-actions button.action-btn.active .material-icons { + color: var(--scheduler-secondary-text-color, #ffffff); +} +.scheduler-container .header-actions .filter-menu { + position: relative; +} +.scheduler-container .header-actions .filter-menu .filter-dropdown { + position: absolute; + top: 100%; + right: 0; + background: white; + border: 1px solid #ccc; + border-radius: 4px; + padding: 8px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + z-index: 1000; + min-width: 120px; +} +.scheduler-container .header-actions .filter-menu .filter-dropdown label { + display: block; + color: #333; + font-size: 12px; + margin-bottom: 4px; + cursor: pointer; +} +.scheduler-container .header-actions .filter-menu .filter-dropdown label input[type=checkbox] { + margin-right: 6px; +} +.scheduler-container .header-actions .filter-section, .scheduler-container .header-actions .settings-section { + position: relative; + display: flex; + align-items: center; + gap: 8px; +} +.scheduler-container .header-actions .filter-section .filter-btn, .scheduler-container .header-actions .filter-section .settings-btn, .scheduler-container .header-actions .settings-section .filter-btn, .scheduler-container .header-actions .settings-section .settings-btn { + background: rgba(255, 255, 255, 0.2); + border: 1px solid rgba(255, 255, 255, 0.3); + color: var(--scheduler-secondary-text-color, #ffffff); + padding: 6px; + border-radius: 3px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + height: 32px; +} +.scheduler-container .header-actions .filter-section .filter-btn:hover, .scheduler-container .header-actions .filter-section .settings-btn:hover, .scheduler-container .header-actions .settings-section .filter-btn:hover, .scheduler-container .header-actions .settings-section .settings-btn:hover { + background: rgba(255, 255, 255, 0.3); +} +.scheduler-container .header-actions .filter-section .filter-btn.active, .scheduler-container .header-actions .filter-section .settings-btn.active, .scheduler-container .header-actions .settings-section .filter-btn.active, .scheduler-container .header-actions .settings-section .settings-btn.active { + background: rgba(76, 175, 80, 0.8); +} +.scheduler-container .header-actions .filter-section .settings-dropdown, .scheduler-container .header-actions .settings-section .settings-dropdown { + position: absolute; + top: 100%; + right: 0; + z-index: 1000; + margin-top: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); +} +.scheduler-container .header-actions .filter-section .settings-option, .scheduler-container .header-actions .settings-section .settings-option { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border: 1px solid rgba(255, 255, 255, 0.3); + padding: 6px 12px; + border-radius: 3px; + cursor: pointer; + font-size: 12px; + display: flex; + align-items: center; + gap: 4px; + white-space: nowrap; +} +.scheduler-container .header-actions .filter-section .settings-option:hover, .scheduler-container .header-actions .settings-section .settings-option:hover { + background: var(--scheduler-accent-color, #1976d2); +} +.scheduler-container .header-actions .filter-section .settings-option .material-icons, .scheduler-container .header-actions .settings-section .settings-option .material-icons { + font-size: 14px; +} +.scheduler-container .header-actions .filter-section .edit-mode-actions, .scheduler-container .header-actions .settings-section .edit-mode-actions { + display: flex; + flex-direction: row; + align-items: center; + gap: 12px; +} +.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn { + background: rgba(255, 255, 255, 0.2); + border: 1px solid rgba(255, 255, 255, 0.3); + width: 32px; + height: 32px; + border-radius: 3px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; +} +.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn .material-icons, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn .material-icons { + color: var(--scheduler-secondary-text-color, #ffffff); + font-size: 18px; +} +.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn:hover, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn:hover { + background: rgba(255, 255, 255, 0.3); +} +.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn:disabled, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} +.scheduler-container .header-actions .filter-section .edit-mode-actions .save-btn, .scheduler-container .header-actions .settings-section .edit-mode-actions .save-btn { + background: var(--scheduler-accent-color, #2196f3); + border: 1px solid var(--scheduler-accent-color, #2196f3); +} +.scheduler-container .header-actions .filter-section .edit-mode-actions .save-btn:hover, .scheduler-container .header-actions .settings-section .edit-mode-actions .save-btn:hover { + background: var(--scheduler-accent-color, #1976d2); + border-color: var(--scheduler-accent-color, #1976d2); +} + +.schedule-display { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + margin-top: 2px; +} + +.device-mode, .overview-mode { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; +} + +.device-scroll-container { + flex: 1; + overflow-y: auto; + overflow-x: hidden; +} +.device-scroll-container::-webkit-scrollbar { + width: 6px; +} +.device-scroll-container::-webkit-scrollbar-track { + background: transparent; +} +.device-scroll-container::-webkit-scrollbar-thumb { + background: var(--scheduler-accent-color, #2196f3); + border-radius: 3px; +} +.device-scroll-container::-webkit-scrollbar-thumb:hover { + background: var(--scheduler-accent-hover, #1976d2); +} +.device-scroll-container.has-scrollbar .header-row, +.device-scroll-container.has-scrollbar .schedule-item { + margin-right: 6px; +} + +.overview-message { + text-align: center; + padding: 40px 20px; + color: #666; + font-style: italic; +} +.overview-message p { + margin: 0; + font-size: 14px; +} + +.schedule-headers .header-row { + display: grid; + grid-template-columns: 30px 1fr 1fr 1fr 40px 40px; + gap: 4px; + padding: 6px 8px; + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + font-weight: 500; + font-size: 12px; + border-radius: 4px 4px 0 0; +} +.schedule-headers .header-row .header-cell { + display: flex; + align-items: center; + justify-content: center; +} +.schedule-headers .header-row .header-cell.schedule-num { + justify-content: center; +} +.schedule-headers .header-row .header-cell.device-name { + justify-content: flex-start; +} +.schedule-headers .header-row .header-cell.actions { + justify-content: flex-end; +} + +.schedule-list .schedule-item { + border: 1px solid var(--scheduler-border-color, #e0e0e0); + border-radius: 0; + margin-bottom: 0; + border-bottom: none; + background: var(--scheduler-bg-color, #ffffff); + color: var(--scheduler-text-color, #333333); +} +.schedule-list .schedule-item:first-child { + border-radius: 0 0 0 0; +} +.schedule-list .schedule-item:last-child { + border-radius: 0 0 4px 4px; + border-bottom: 1px solid var(--scheduler-border-color, #e0e0e0); +} +.schedule-list .schedule-item:hover { + background: var(--scheduler-hover-color, #f5f5f5); +} +.schedule-list .schedule-item:hover .schedule-main-row { + background: var(--scheduler-hover-color, #f5f5f5); +} +.schedule-list .schedule-item.disabled { + opacity: 0.6; + background: #f9f9f9; +} +.schedule-list .schedule-item.read-only { + cursor: default !important; + pointer-events: none !important; + opacity: 0.7; + position: relative; +} +.schedule-list .schedule-item.read-only::after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(128, 128, 128, 0.05); + pointer-events: none; +} +.schedule-list .schedule-item.read-only .schedule-main-row { + cursor: default !important; + pointer-events: none !important; +} +.schedule-list .schedule-item.read-only:hover { + background: var(--scheduler-bg-color, #ffffff); +} +.schedule-list .schedule-item.read-only:hover .schedule-main-row { + background: var(--scheduler-bg-color, #ffffff); +} +.schedule-list .schedule-item .schedule-main-row { + display: grid; + grid-template-columns: 30px 1fr 1fr 1fr 40px 40px; + gap: 4px; + padding: 6px 8px; + align-items: center; + font-size: 14px; + cursor: pointer; + transition: background-color 0.2s ease; +} +.schedule-list .schedule-item .schedule-main-row > * { + display: flex; + align-items: center; + justify-content: center; +} +.schedule-list .schedule-item .schedule-main-row .schedule-number { + justify-content: center; +} +.schedule-list .schedule-item .schedule-main-row .start-time, .schedule-list .schedule-item .schedule-main-row .end-time, .schedule-list .schedule-item .schedule-main-row .duration { + justify-content: center; +} +.schedule-list .schedule-item .schedule-main-row .start-time ::ng-deep .time-period, .schedule-list .schedule-item .schedule-main-row .end-time ::ng-deep .time-period { + font-size: 0.7em; + opacity: 0.7; + margin-left: 1px; + font-weight: 400; +} +.schedule-list .schedule-item .schedule-main-row .status-switch { + justify-content: center; +} +.schedule-list .schedule-item .schedule-main-row .actions { + justify-content: flex-end; +} +.schedule-list .schedule-item .schedule-main-row .actions .delete-btn { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border: none; + border-radius: 3px; + padding: 3px 4px; + cursor: pointer; + transition: background-color 0.2s ease; + display: flex; + align-items: center; + justify-content: center; + min-width: 0; +} +.schedule-list .schedule-item .schedule-main-row .actions .delete-btn:hover { + background: var(--scheduler-accent-color, #1976d2); +} +.schedule-list .schedule-item .schedule-main-row .actions .delete-btn .material-icons, .schedule-list .schedule-item .schedule-main-row .actions .delete-btn .material-icons-outlined { + font-size: 14px; +} +.schedule-list .schedule-item .calendar-view-btn { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border: none; + border-radius: 3px; + padding: 6px 48px; + cursor: pointer; + transition: background-color 0.2s ease; + display: flex; + align-items: center; + justify-content: center; + min-width: 0; +} +.schedule-list .schedule-item .calendar-view-btn:hover { + background: var(--scheduler-accent-color, #1976d2); +} +.schedule-list .schedule-item .calendar-view-btn .material-icons { + font-size: 14px; + margin-right: 4px; +} +.schedule-list .schedule-item .calendar-view-btn .calendar-btn-text { + font-size: 11px; + font-weight: 500; + white-space: nowrap; +} +.schedule-list .schedule-item .schedule-number { + font-weight: bold; + color: var(--scheduler-accent-color, #2196f3); +} +.schedule-list .schedule-item .device-name { + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: var(--scheduler-text-color, #333333); +} +.schedule-list .schedule-item .start-time, .schedule-list .schedule-item .end-time { + font-family: "Courier New", monospace; + font-size: 13px; + color: var(--scheduler-text-color, #333333); +} +.schedule-list .schedule-item .duration { + font-size: 12px; + color: var(--scheduler-text-color, #333333); +} +.schedule-list .schedule-item .status-switch { + display: flex; + justify-content: center; +} +.schedule-list .schedule-item .actions { + display: flex; + gap: 4px; + justify-content: flex-end; +} +.schedule-list .schedule-item .actions button { + padding: 4px 8px; + border: 1px solid #ccc; + border-radius: 3px; + cursor: pointer; + font-size: 11px; +} +.schedule-list .schedule-item .actions button.edit-btn { + background: #e3f2fd; + border-color: #2196f3; + color: #1976d2; +} +.schedule-list .schedule-item .actions button.edit-btn:hover { + background: #bbdefb; +} +.schedule-list .schedule-item .actions button.delete-btn { + background: #ffebee; + border-color: #f44336; + color: #d32f2f; +} +.schedule-list .schedule-item .actions button.delete-btn:hover { + background: #ffcdd2; +} +.schedule-list .days-display { + display: flex; + gap: 3px; + justify-content: center; + padding: 6px 8px 8px 8px; +} +.schedule-list .days-display .day-circle { + width: 18px; + height: 18px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 9px; + font-weight: 500; + background: var(--scheduler-border-color, #cccccc); + border: 1px solid var(--scheduler-border-color, #cccccc); + color: var(--scheduler-text-color, #333333); +} +.schedule-list .days-display .day-circle.active { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); +} +.schedule-list .calendar-display { + display: flex; + justify-content: center; + padding: 6px 8px 8px 8px; +} +.schedule-list .schedule-days-row { + padding: 8px 12px 12px 12px; +} +.schedule-list .schedule-days-row .days-display { + display: flex; + gap: 4px; + justify-content: center; +} +.schedule-list .schedule-days-row .days-display .day-circle { + width: 24px; + height: 24px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 11px; + font-weight: bold; + background: var(--scheduler-border-color, #cccccc); + border: 1px solid var(--scheduler-border-color, #cccccc); + color: var(--scheduler-text-color, #333333); +} +.schedule-list .schedule-days-row .days-display .day-circle.active { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); +} + +.overview-scroll-container { + flex: 1; + overflow-y: auto; +} +.overview-scroll-container::-webkit-scrollbar { + width: 6px; +} +.overview-scroll-container::-webkit-scrollbar-track { + background: transparent; +} +.overview-scroll-container::-webkit-scrollbar-thumb { + background: var(--scheduler-accent-color, #2196f3); + border-radius: 3px; +} +.overview-scroll-container::-webkit-scrollbar-thumb:hover { + background: var(--scheduler-accent-color, #1976d2); +} +.overview-scroll-container::-webkit-scrollbar-corner { + background: transparent; +} +.overview-scroll-container.has-scrollbar .header-row, +.overview-scroll-container.has-scrollbar .schedule-item, +.overview-scroll-container.has-scrollbar .device-header { + margin-right: 6px; +} + +.switch { + position: relative; + display: inline-block; + width: 40px; + height: 20px; +} +.switch input { + opacity: 0; + width: 0; + height: 0; +} +.switch .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--scheduler-border-color, #cccccc); + transition: 0.4s; + border-radius: 20px; +} +.switch .slider:before { + position: absolute; + content: ""; + height: 16px; + width: 16px; + left: 2px; + bottom: 2px; + background-color: var(--scheduler-secondary-text-color, #ffffff); + transition: 0.4s; + border-radius: 50%; +} +.switch input:checked + .slider { + background-color: var(--scheduler-accent-color, #2196f3); +} +.switch input:checked + .slider:before { + transform: translateX(20px); +} + +.device-assignment { + margin-bottom: 16px; +} +.device-assignment label { + display: block; + font-size: 12px; + font-weight: 500; + color: var(--scheduler-text-color); + margin-bottom: 4px; +} +.device-assignment select { + width: 100%; + padding: 8px 12px; + border: 1px solid var(--scheduler-border-color); + border-radius: 4px; + background: var(--scheduler-bg-color); + color: var(--scheduler-text-color); + font-size: 14px; +} +.device-assignment select:focus { + outline: none; + border-color: var(--scheduler-accent-color); +} + +.schedule-form { + max-height: calc(100vh - 600px); + overflow-y: auto; + overflow-x: visible; + padding: 16px 16px 200px 16px; + background: var(--scheduler-bg-color, #ffffff); + border: 1px solid var(--scheduler-border-color, #cccccc); + border-radius: 4px; + color: var(--scheduler-text-color, #333333); +} +.schedule-form::-webkit-scrollbar { + width: 6px; +} +.schedule-form::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 3px; +} +.schedule-form::-webkit-scrollbar-thumb { + background: var(--scheduler-accent-color, #2196f3); + border-radius: 3px; +} +.schedule-form::-webkit-scrollbar-thumb:hover { + background: var(--scheduler-accent-hover, #1976d2); +} +.schedule-form h3 { + margin: 0 0 16px 0; + color: var(--scheduler-accent-color, #2196f3); +} +.schedule-form .form-row { + margin-bottom: 12px; +} +.schedule-form .form-row label { + display: block; + font-size: 12px; + font-weight: 500; + margin-bottom: 4px; + color: var(--scheduler-text-color, #333333); +} +.schedule-form .form-row input, .schedule-form .form-row select { + width: 100%; + padding: 8px; + border: 1px solid #ccc; + border-radius: 3px; + background: var(--scheduler-bg-color, #ffffff); + color: var(--scheduler-text-color, #333333); +} +.schedule-form .form-row input:focus, .schedule-form .form-row select:focus { + outline: none; + border-color: var(--scheduler-accent-color, #2196f3); +} +.schedule-form .recurring-toggle { + margin-bottom: 16px; + padding: 12px; + background: rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.05); + border: 1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.2); + border-radius: 4px; +} +.schedule-form .recurring-toggle .toggle-label { + display: flex; + flex-direction: row; + gap: 8px; + margin: 0; + pointer-events: none; + align-items: center; + justify-content: center; +} +.schedule-form .recurring-toggle .toggle-label .toggle-text { + font-size: 12px; + font-weight: 500; + color: var(--scheduler-text-color, #333333); + cursor: default; +} +.schedule-form .recurring-toggle .toggle-label .toggle-switch-container { + display: flex; + align-items: center; + gap: 12px; +} +.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .switch { + flex-shrink: 0; + cursor: pointer; + pointer-events: auto; +} +.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .switch .slider { + cursor: pointer; +} +.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .toggle-description { + font-size: 11px; + color: var(--scheduler-text-color, #666666); + font-style: italic; + cursor: default; +} +.schedule-form .toggle-row-horizontal { + display: flex; + gap: 16px; + margin-bottom: 16px; + padding: 12px; + background: rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.05); + border: 1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.2); + border-radius: 4px; +} +.schedule-form .toggle-row-horizontal .toggle-item { + flex: 1; +} +.schedule-form .toggle-row-horizontal .toggle-item .toggle-label { + display: flex; + align-items: center; + gap: 8px; + margin: 0; +} +.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-text { + font-size: 12px; + font-weight: 500; + color: var(--scheduler-text-color, #333333); + white-space: nowrap; +} +.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-switch-container { + display: flex; + align-items: center; +} +.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-switch-container .switch { + cursor: pointer; +} +.schedule-form .days-selection { + margin-bottom: 16px; +} +.schedule-form .days-selection label { + display: block; + font-size: 12px; + font-weight: 500; + margin-bottom: 8px; +} +.schedule-form .days-selection .days-grid { + display: flex; + gap: 4px; + margin-bottom: 8px; +} +.schedule-form .days-selection .days-grid .day-btn { + flex: 1; + padding: 8px 4px; + border: 1px solid #ccc; + background: #f9f9f9; + color: var(--scheduler-text-color, #333333); + cursor: pointer; + border-radius: 3px; + font-size: 11px; +} +.schedule-form .days-selection .days-grid .day-btn.active { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); +} +.schedule-form .days-selection .days-grid .day-btn:hover { + background: #e0e0e0; + color: var(--scheduler-text-color, #333333); +} +.schedule-form .days-selection .days-grid .day-btn:hover.active { + background: var(--scheduler-accent-color, #1976d2); + color: var(--scheduler-secondary-text-color, #ffffff); +} +.schedule-form .days-selection .select-all-btn { + width: 100%; + padding: 6px; + border: 1px solid var(--scheduler-border-color, #cccccc); + background: var(--scheduler-bg-color, #ffffff); + color: var(--scheduler-text-color, #333333); + cursor: pointer; + border-radius: 3px; + font-size: 11px; +} +.schedule-form .days-selection .select-all-btn:hover { + background: var(--scheduler-hover-bg, #f5f5f5); +} +.schedule-form .form-actions { + display: flex; + gap: 8px; + justify-content: flex-end; +} +.schedule-form .form-actions button { + padding: 8px 16px; + border: 1px solid #ccc; + border-radius: 3px; + cursor: pointer; +} +.schedule-form .form-actions button.cancel-btn { + background: #f5f5f5; + color: var(--scheduler-text-color, #333333); +} +.schedule-form .form-actions button.cancel-btn:hover { + background: #e0e0e0; +} +.schedule-form .form-actions button.save-btn { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); +} +.schedule-form .form-actions button.save-btn:hover { + background: var(--scheduler-accent-color, #1976d2); +} + +.empty-schedule { + text-align: center; + padding: 32px; + color: #666; + font-style: italic; +} + +.device-group .device-header { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + padding: 8px 12px; + margin: 0 0 0 0; + border-radius: 4px 4px 0 0; + font-size: 14px; + font-weight: 500; +} +.device-group .mode-section { + margin-bottom: 1px; +} +.device-group .mode-section .schedule-headers .header-row { + background: color-mix(in srgb, var(--scheduler-accent-color, #2196f3) 70%, white 30%); +} + +.editor-placeholder { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + color: #666; +} +.editor-placeholder .material-icons { + font-size: 48px; + margin-bottom: 8px; +} +.editor-placeholder p { + margin: 0 0 4px 0; + font-size: 16px; + font-weight: 500; +} +.editor-placeholder small { + font-size: 12px; + opacity: 0.7; +} + +::ng-deep .cdk-overlay-pane .mat-mdc-select-panel { + background: var(--scheduler-bg-color, #ffffff) !important; +} +::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option { + background: transparent !important; + color: var(--scheduler-text-color, #333333) !important; +} +::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) { + background: var(--scheduler-hover-color, rgba(0, 0, 0, 0.1)) !important; +} +::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} + +.form-custom-select { + position: relative; + width: 100%; +} +.form-custom-select.error .form-custom-select-trigger { + border-color: #f44336; + background-color: rgba(244, 67, 54, 0.1); +} +.form-custom-select .form-custom-select-trigger { + background: var(--scheduler-bg-color, #ffffff); + border: 1px solid var(--scheduler-border-color, #cccccc); + color: var(--scheduler-text-color, #333333); + padding: 4px 8px; + border-radius: 4px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: space-between; + transition: all 0.2s ease; + min-height: 28px; + max-height: 28px; + height: 28px; +} +.form-custom-select .form-custom-select-trigger:hover { + border-color: var(--scheduler-accent-color, #2196f3); + background-color: rgba(33, 150, 243, 0.05); +} +.form-custom-select .form-custom-select-trigger:focus-within { + border-color: var(--scheduler-accent-color, #2196f3); + box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2); + outline: none; +} +.form-custom-select .form-custom-select-trigger .selected-text { + flex: 1; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + text-align: left; +} +.form-custom-select .form-custom-select-trigger .arrow { + margin-left: 8px; + font-size: 20px; + transition: transform 0.2s ease; + color: var(--scheduler-accent-color, #2196f3); +} +.form-custom-select.open .form-custom-select-trigger .arrow { + transform: rotate(180deg); +} +.form-custom-select .form-custom-select-dropdown { + position: absolute; + top: 100%; + left: 0; + right: 0; + background: var(--scheduler-bg-color, #ffffff); + border: 1px solid var(--scheduler-border-color, #cccccc); + border-radius: 4px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + z-index: 1001; + max-height: 120px !important; + overflow-y: auto; + overflow-x: hidden; + scrollbar-width: thin; + scrollbar-color: var(--scheduler-accent-color, #2196f3) rgba(0, 0, 0, 0.05); +} +.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar { + width: 8px; +} +.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.05); + border-radius: 4px; +} +.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-thumb { + background: var(--scheduler-accent-color, #2196f3); + border-radius: 4px; + opacity: 0.6; +} +.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-thumb:hover { + opacity: 0.8; +} +.form-custom-select .form-custom-select-dropdown .form-custom-option { + padding: 6px 10px; + cursor: pointer; + color: var(--scheduler-text-color, #333333); + background: transparent; + transition: all 0.2s ease; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + display: flex; + align-items: center; + min-height: 28px; + max-height: 28px; + height: 28px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.form-custom-select .form-custom-select-dropdown .form-custom-option:last-child { + border-bottom: none; +} +.form-custom-select .form-custom-select-dropdown .form-custom-option:hover { + background: var(--scheduler-hover-color) !important; + color: var(--scheduler-text-color, #333333); + transform: translateX(2px); +} +.form-custom-select .form-custom-select-dropdown .form-custom-option.selected { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + font-weight: 500; +} +.form-custom-select .form-custom-select-dropdown .form-custom-option.selected::after { + content: "āœ“"; + margin-left: auto; + font-size: 16px; +} +.form-custom-select .form-custom-select-dropdown .form-custom-option.selected:hover { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; + transform: none; +} +.form-custom-select .form-custom-select-dropdown .loading-more { + padding: 8px 16px; + text-align: center; + color: var(--scheduler-accent-color, #2196f3); + font-size: 12px; + font-style: italic; +} +.form-custom-select .form-custom-select-dropdown .no-devices { + padding: 16px; + text-align: center; + color: rgba(0, 0, 0, 0.5); + font-style: italic; +} + +.custom-time-picker { + position: relative; +} +.custom-time-picker .time-input-wrapper { + position: relative; + display: flex; + align-items: center; +} +.custom-time-picker .time-input-wrapper .time-input { + width: 100%; + padding: 8px 35px 8px 12px; + border: 1px solid var(--scheduler-border-color, #cccccc); + border-radius: 4px; + background: var(--scheduler-bg-color, #ffffff); + color: var(--scheduler-text-color, #333333); + font-family: "Courier New", monospace; + font-size: 14px; + cursor: pointer; + transition: all 0.2s ease; +} +.custom-time-picker .time-input-wrapper .time-input:hover { + border-color: var(--scheduler-accent-color, #2196f3); + background-color: rgba(33, 150, 243, 0.05); +} +.custom-time-picker .time-input-wrapper .time-input:focus, .custom-time-picker .time-input-wrapper .time-input.active { + outline: none; + border-color: var(--scheduler-accent-color, #2196f3); + box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2); + background-color: rgba(33, 150, 243, 0.05); +} +.custom-time-picker .time-input-wrapper .time-input::placeholder { + color: rgba(0, 0, 0, 0.4); +} +.custom-time-picker .time-input-wrapper .time-icon { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + color: var(--scheduler-accent-color, #2196f3); + font-size: 18px; + pointer-events: none; + transition: color 0.2s ease; +} +.custom-time-picker .time-picker-dropdown { + position: absolute; + top: 100%; + left: 0; + width: 280px; + background: var(--scheduler-bg-color, #ffffff); + border: 1px solid var(--scheduler-border-color, #cccccc); + border-radius: 4px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + z-index: 2000; + padding: 12px; +} +.custom-time-picker .time-picker-dropdown.align-right { + left: auto; + right: 0; +} +.custom-time-picker .time-picker-dropdown .time-controls { + display: flex; + gap: 8px; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part { + flex: 1; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part label { + font-size: 11px; + font-weight: 500; + color: var(--scheduler-text-color, #333333); + margin-bottom: 4px; + display: block; + text-align: center; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options { + background: var(--scheduler-bg-color, #ffffff); + border: 1px solid var(--scheduler-border-color, #cccccc); + border-radius: 3px; + max-height: 140px; + overflow-y: auto; + padding-right: 2px; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar { + width: 6px; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.05); + border-radius: 3px; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar-thumb { + background: var(--scheduler-accent-color, #2196f3); + border-radius: 3px; + opacity: 0.6; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option { + padding: 6px 8px; + cursor: pointer; + font-size: 13px; + color: var(--scheduler-text-color, #333333); + transition: background-color 0.2s ease; + text-align: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option:last-child { + border-bottom: none; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option:hover { + background: var(--scheduler-hover-color) !important; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option.selected { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + font-weight: 500; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option.selected:hover { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector { + margin-top: 8px; + padding-top: 8px; + border-top: 1px solid var(--scheduler-border-color, #cccccc); +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector label { + font-size: 10px; + font-weight: 500; + color: var(--scheduler-text-color, #666666); + margin-bottom: 4px; + display: block; + text-align: center; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 4px; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn { + padding: 4px 6px; + font-size: 11px; + border: 1px solid var(--scheduler-border-color, #cccccc); + background: var(--scheduler-bg-color, #ffffff); + color: var(--scheduler-text-color, #333333); + border-radius: 3px; + cursor: pointer; + transition: all 0.2s ease; + font-weight: 500; +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn:hover { + background: var(--scheduler-hover-color); + border-color: var(--scheduler-accent-color, #2196f3); +} +.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn.active { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); + border-color: var(--scheduler-accent-color, #2196f3); + font-weight: 600; +} + +.confirmation-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} + +.confirmation-dialog { + background: white; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); + padding: 0; + min-width: 300px; + max-width: 400px; + animation: scaleIn 0.2s ease-out; +} + +.dialog-header { + display: flex; + align-items: center; + gap: 8px; + padding: 16px 20px; + border-bottom: 1px solid #e0e0e0; +} +.dialog-header .material-icons { + color: var(--scheduler-accent-color, #2196f3); + font-size: 24px; +} +.dialog-header h3 { + margin: 0; + font-size: 18px; + font-weight: 500; + color: var(--scheduler-text-color, #333333); +} + +.dialog-content { + padding: 16px 20px; + color: #666; + line-height: 1.4; +} +.dialog-content .schedule-label { + font-weight: 700; +} +.dialog-content .calendar-popup-content label { + display: block; + font-weight: 600; + color: var(--scheduler-text-color, #333333); + margin-bottom: 8px; + font-size: 14px; +} +.dialog-content .calendar-popup-content .day-btn, +.dialog-content .calendar-popup-content .month-btn, +.dialog-content .calendar-popup-content .day-of-month-btn { + cursor: default !important; + pointer-events: none !important; +} +.dialog-content .calendar-popup-content .day-btn:hover, +.dialog-content .calendar-popup-content .month-btn:hover, +.dialog-content .calendar-popup-content .day-of-month-btn:hover { + background: #f9f9f9 !important; + color: var(--scheduler-text-color, #333333) !important; + border-color: #ccc !important; +} +.dialog-content .calendar-popup-content .day-btn.active:hover, +.dialog-content .calendar-popup-content .month-btn.active:hover, +.dialog-content .calendar-popup-content .day-of-month-btn.active:hover { + background: var(--scheduler-accent-color, #2196f3) !important; + color: var(--scheduler-secondary-text-color, #ffffff) !important; + border-color: var(--scheduler-accent-color, #2196f3) !important; +} + +.dialog-actions { + display: flex; + gap: 8px; + padding: 16px 20px; + border-top: 1px solid #e0e0e0; + justify-content: flex-end; +} +.dialog-actions button { + padding: 8px 16px; + border: none; + border-radius: 4px; + cursor: pointer; + font-weight: 500; + transition: background-color 0.2s ease; +} +.dialog-actions button.cancel-btn { + background: #f5f5f5; + color: var(--scheduler-text-color, #666666); +} +.dialog-actions button.cancel-btn:hover { + background: #e0e0e0; +} +.dialog-actions button.confirm-btn { + background: var(--scheduler-accent-color, #2196f3); + color: var(--scheduler-secondary-text-color, #ffffff); +} +.dialog-actions button.confirm-btn:hover { + background: var(--scheduler-accent-color, #1976d2); +} + +@keyframes scaleIn { + from { + transform: scale(0.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} +.filter-options { + position: absolute; + top: 100%; + right: 0; + z-index: 1000; + background: var(--scheduler-accent-color, #2196f3); + border: 1px solid rgba(255, 255, 255, 0.3); + border-radius: 4px; + padding: 8px 12px; + margin-top: 4px; + display: flex; + align-items: center; + gap: 12px; + white-space: nowrap; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); +} + +.custom-checkbox { + display: flex; + align-items: center; + cursor: pointer; + color: var(--scheduler-secondary-text-color, #ffffff); + font-size: 12px; +} +.custom-checkbox input[type=checkbox] { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} +.custom-checkbox .checkmark { + height: 16px; + width: 16px; + background-color: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(255, 255, 255, 0.5); + border-radius: 3px; + margin-right: 6px; + position: relative; + transition: all 0.2s ease; +} +.custom-checkbox .checkmark:after { + content: ""; + position: absolute; + display: none; + left: 4px; + top: 1px; + width: 4px; + height: 8px; + border: solid var(--scheduler-secondary-text-color, #ffffff); + border-width: 0 2px 2px 0; + transform: rotate(45deg); +} +.custom-checkbox:hover .checkmark { + background-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.6)); + border-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.8)); +} +.custom-checkbox input:checked ~ .checkmark { + background-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.9)); + border-color: var(--scheduler-hover-color, rgb(173, 216, 230)); +} +.custom-checkbox input:checked ~ .checkmark:after { + display: block; +} +.custom-checkbox .checkbox-label { + -webkit-user-select: none; + user-select: none; +}`, "",{"version":3,"sources":["webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-scheduler/scheduler/scheduler.component.scss","webpack://./src/app/gauges/controls/html-scheduler/scheduler/scheduler.component.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;EACI,aAAA;EACA,0DAAA;EACA,QAAA;EACA,kBAAA;ADEJ;;ACAA;EACI,aAAA;EACA,oDAAA;EACA,QAAA;ADGJ;;ACAA;EACI,OAAA;EACA,gBAAA;EACA,sBAAA;EACA,mBAAA;EACA,2CAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,uCAAA;ADGJ;;ACDA;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;ADIJ;;ACFA;EACI,mBAAA;EACA,2CAAA;ADKJ;;ACHA;EACI,kDAAA;EACA,qDAAA;ADMJ;;ACFA;EACI,OAAA;EACA,gBAAA;EACA,sBAAA;EACA,mBAAA;EACA,2CAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,eAAA;ADKJ;;ACDA;EACI,6DAAA;EACA,gEAAA;EACA,+DAAA;ADIJ;;ACAA;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,mBAAA;EACA,eAAA;EACA,uBAAA;ADGF;;ACAA;EACE,gBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;ADGF;;ACDA;EACI,eAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,gBAAA;EACA,mBAAA;EACA,2CAAA;EACA,sBAAA;EACA,eAAA;EACA,uCAAA;EACA,WAAA;EACA,eAAA;EACA,eAAA;ADIJ;;ACDA;EACI;IACI,eAAA;EDIN;AACF;ACDA;EACI;IACI,eAAA;EDGN;AACF;ACDA;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;ADGJ;;ACDA;EACI,mBAAA;EACA,2CAAA;ADIJ;;ACFA;EACI,kDAAA;EACA,qDAAA;ADKJ;;ACDA;EACI,eAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,gBAAA;EACA,mBAAA;EACA,2CAAA;EACA,sBAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;ADIJ;;ACAA;EACI,6DAAA;EACA,gEAAA;EACA,+DAAA;ADGJ;;ACAA;EACI,kBAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,WAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,mBAAA;EACA,WAAA;EACA,sBAAA;EACA,uCAAA;ADGJ;;ACDA;EACI,kDAAA;EACA,WAAA;EACA,wDAAA;ADIJ;;ACAA;EACI,aAAA;EACA,sBAAA;EACA,QAAA;EACA,eAAA;ADGJ;;ACDA;EACI,aAAA;EACA,mBAAA;EACA,QAAA;EACA,eAAA;ADIJ;;ACAA;EACI,aAAA;EACA,eAAA;EACA,QAAA;EACA,kBAAA;ADGJ;;ACAA;EACI,kBAAA;EACA,6DAAA;EACA,yDAAA;EACA,8DAAA;EACA,8EAAA;EACA,wEAAA;EACA,qEAAA;EACA,8DAAA;EACA,sEAAA;EACA,2FAAA;EACA,4EAAA;EACA,mFAAA;EACA,yFAAA;EACA,0CAAA;EACA,gEAAA;EACA,6EAAA;EACA,iDAAA;EACA,wEAAA;EACA,uFAAA;EACA,oGAAA;EACA,mFAAA;EAGA,aAAA;EACA,sBAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;ADCJ;;ACEA;EACI,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,iBAAA;EACA,kDAAA;EACA,qDAAA;EACA,+DAAA;ADCJ;ACCQ;EACA,UAAA;ADCR;ACEY;EACI,+CAAA;EACA,qDAAA;EACA,gEAAA;EACA,2BAAA;EACA,6BAAA;EACA,0BAAA;EACA,2BAAA;EACA,wBAAA;EACA,8BAAA;ADAhB;ACEgB;EACI,gEAAA;EACA,kBAAA;ADApB;ACGgB;EACI,gEAAA;EACA,2BAAA;ADDpB;ACIgB;EACI,+CAAA;ADFpB;ACIoB;EACI,+CAAA;ADFxB;ACMgB;EACI,oDAAA;EACA,sDAAA;EACA,gEAAA;ADJpB;ACMoB;EACI,gEAAA;ADJxB;ACOoB;EACI,gEAAA;ADLxB;ACUY;EACI,gDAAA;EACA,0DAAA;EACA,6BAAA;EACA,oDAAA;ADRhB;ACUgB;EACI,6CAAA;EACA,kCAAA;ADRpB;ACUoB;EACI,oDAAA;EACA,gEAAA;ADRxB;ACWoB;EACI,mDAAA;EACA,yDAAA;ADTxB;ACYoB;EACI,mDAAA;EACA,yDAAA;ADVxB;ACcgB;EACI,gDAAA;ADZpB;ACegB;EACI,gDAAA;ADbpB;ACmBgB;EACI,oDAAA;EACA,gEAAA;ADjBpB;;ACyBA;EACI,gDAAA;EACA,0DAAA;EACA,6BAAA;EACA,oDAAA;ADtBJ;ACwBI;EACI,6CAAA;EACA,iDAAA;ADtBR;ACwBQ;EACI,oDAAA;EACA,gEAAA;ADtBZ;ACyBQ;EACI,6EAAA;ADvBZ;;AC4BA;;;;;;;;EAQI,mDAAA;EACA,yDAAA;ADzBJ;;AC6BA;;EAEI,yDAAA;AD1BJ;;AC8BA;EACI,wBAAA;EACA,yDAAA;AD3BJ;;AC+BA;EACI,kBAAA;EACA,gBAAA;AD5BJ;AC8BI;EACI,oCAAA;EACA,0CAAA;EACA,qDAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,sCAAA;AD5BR;AC8BQ;EACI,oCAAA;AD5BZ;AC+BQ;EACI,OAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;AD7BZ;ACgCQ;EACI,gBAAA;EACA,eAAA;EACA,+BAAA;AD9BZ;ACkCI;EACI,yBAAA;ADhCR;ACmCI;EACI,YAAA;EACA,mBAAA;ADjCR;ACoCI;EACI,kBAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,8CAAA;EACA,wDAAA;EACA,kBAAA;EACA,yCAAA;EACA,aAAA;EACA,iBAAA;EACA,gBAAA;ADlCR;ACoCQ;EACI,kBAAA;EACA,eAAA;EACA,2CAAA;EACA,uBAAA;EACA,sCAAA;ADlCZ;ACoCY;EACI,mDAAA;EACA,2CAAA;ADlChB;ACqCY;EACI,kDAAA;EACA,qDAAA;ADnChB;ACsCY;EACI,6DAAA;EACA,gEAAA;ADpChB;;AC0CA;EACI,6EAAA;ADvCJ;;AC0CA;EACI,6EAAA;ADvCJ;;AC0CA;EACI,6EAAA;ADvCJ;;AC0CA;EACI,6EAAA;ADvCJ;;AC6CI;EACI,aAAA;EACA,QAAA;EACA,mBAAA;AD1CR;AC4CQ;EACI,oCAAA;EACA,0CAAA;EACA,qDAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;AD1CZ;AC4CY;EACI,oCAAA;AD1ChB;AC6CY;EACI,kCAAA;AD3ChB;AC8CY;EACI,oCAAA;EACA,0CAAA;AD5ChB;AC8CgB;EACI,qDAAA;AD5CpB;AC+CgB;EACI,oCAAA;AD7CpB;ACgDgB;EACI,kDAAA;EACA,wDAAA;AD9CpB;ACgDoB;EACI,qDAAA;AD9CxB;ACoDQ;EACI,kBAAA;ADlDZ;ACoDY;EACI,kBAAA;EACA,SAAA;EACA,QAAA;EACA,iBAAA;EACA,sBAAA;EACA,kBAAA;EACA,YAAA;EACA,yCAAA;EACA,aAAA;EACA,gBAAA;ADlDhB;ACoDgB;EACI,cAAA;EACA,WAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;ADlDpB;ACoDoB;EACI,iBAAA;ADlDxB;ACyDQ;EACI,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;ADvDZ;ACyDY;EACI,oCAAA;EACA,0CAAA;EACA,qDAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;ADvDhB;ACyDgB;EACI,oCAAA;ADvDpB;AC0DgB;EACI,kCAAA;ADxDpB;AC6DY;EACI,kBAAA;EACA,SAAA;EACA,QAAA;EACA,aAAA;EACA,eAAA;EACA,wCAAA;AD3DhB;AC8DY;EACI,kDAAA;EACA,qDAAA;EACA,0CAAA;EACA,iBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;EACA,mBAAA;AD5DhB;AC8DgB;EACI,kDAAA;AD5DpB;AC+DgB;EACI,eAAA;AD7DpB;ACiEY;EACI,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,SAAA;AD/DhB;ACiEgB;EACI,oCAAA;EACA,0CAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;AD/DpB;ACiEoB;EACI,qDAAA;EACA,eAAA;AD/DxB;ACkEoB;EACI,oCAAA;ADhExB;ACmEoB;EACI,YAAA;EACA,mBAAA;ADjExB;ACqEgB;EACI,kDAAA;EACA,wDAAA;ADnEpB;ACqEoB;EACI,kDAAA;EACA,oDAAA;ADnExB;;AC2EA;EACI,OAAA;EACA,aAAA;EACA,sBAAA;EACA,aAAA;EACA,eAAA;ADxEJ;;AC2EA;EACI,OAAA;EACA,aAAA;EACA,sBAAA;EACA,aAAA;ADxEJ;;AC2EA;EACI,OAAA;EACA,gBAAA;EACA,kBAAA;ADxEJ;AC2EI;EACI,UAAA;ADzER;AC4EI;EACI,uBAAA;AD1ER;AC6EI;EACI,kDAAA;EACA,kBAAA;AD3ER;AC8EI;EACI,kDAAA;AD5ER;ACiFQ;;EAEI,iBAAA;AD/EZ;;ACoFA;EACI,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,kBAAA;ADjFJ;ACmFI;EACI,SAAA;EACA,eAAA;ADjFR;;ACsFI;EACI,aAAA;EACA,iDAAA;EACA,QAAA;EACA,gBAAA;EACA,kDAAA;EACA,qDAAA;EACA,gBAAA;EACA,eAAA;EACA,0BAAA;ADnFR;ACqFQ;EACI,aAAA;EACA,mBAAA;EACA,uBAAA;ADnFZ;ACqFY;EACI,uBAAA;ADnFhB;ACsFY;EACI,2BAAA;ADpFhB;ACuFY;EACI,yBAAA;ADrFhB;;AC8FI;EACI,wDAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,8CAAA;EACA,2CAAA;AD3FR;AC8FQ;EACI,sBAAA;AD5FZ;ACgGQ;EACI,0BAAA;EACA,+DAAA;AD9FZ;ACiGQ;EACI,iDAAA;AD/FZ;ACiGY;EACI,iDAAA;AD/FhB;ACmGQ;EACI,YAAA;EACA,mBAAA;ADjGZ;ACoGQ;EACI,0BAAA;EACA,+BAAA;EACA,YAAA;EACA,kBAAA;ADlGZ;ACqGY;EACI,WAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,qCAAA;EACA,oBAAA;ADnGhB;ACsGY;EACI,0BAAA;EACA,+BAAA;ADpGhB;ACuGY;EACI,8CAAA;ADrGhB;ACuGgB;EACI,8CAAA;ADrGpB;AC0GY;EACI,aAAA;EACA,iDAAA;EACA,QAAA;EACA,gBAAA;EACA,mBAAA;EACA,eAAA;EACA,eAAA;EACA,sCAAA;ADxGhB;AC0GgB;EACI,aAAA;EACA,mBAAA;EACA,uBAAA;ADxGpB;AC2GgB;EACI,uBAAA;ADzGpB;AC4GgB;EACI,uBAAA;AD1GpB;AC+GoB;EACI,gBAAA;EACA,YAAA;EACA,gBAAA;EACA,gBAAA;AD7GxB;ACiHgB;EACI,uBAAA;AD/GpB;ACkHgB;EACI,yBAAA;ADhHpB;ACkHoB;EACI,kDAAA;EACA,qDAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,sCAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;ADhHxB;ACkHwB;EACI,kDAAA;ADhH5B;ACmHwB;EACI,eAAA;ADjH5B;ACuHY;EACI,kDAAA;EACA,qDAAA;EACA,YAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,sCAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;ADrHhB;ACuHgB;EACI,kDAAA;ADrHpB;ACwHgB;EACI,eAAA;EACA,iBAAA;ADtHpB;ACyHgB;EACI,eAAA;EACA,gBAAA;EACA,mBAAA;ADvHpB;AC2HY;EACI,iBAAA;EACA,6CAAA;ADzHhB;AC4HY;EACI,gBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,2CAAA;AD1HhB;AC6HY;EACI,qCAAA;EACA,eAAA;EACA,2CAAA;AD3HhB;AC8HY;EACI,eAAA;EACA,2CAAA;AD5HhB;AC+HY;EACI,aAAA;EACA,uBAAA;AD7HhB;ACgIY;EACI,aAAA;EACA,QAAA;EACA,yBAAA;AD9HhB;ACgIgB;EACI,gBAAA;EACA,sBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;AD9HpB;ACgIoB;EACI,mBAAA;EACA,qBAAA;EACA,cAAA;AD9HxB;ACgIwB;EACI,mBAAA;AD9H5B;ACkIoB;EACI,mBAAA;EACA,qBAAA;EACA,cAAA;ADhIxB;ACkIwB;EACI,mBAAA;ADhI5B;ACuIQ;EACI,aAAA;EACA,QAAA;EACA,uBAAA;EACA,wBAAA;ADrIZ;ACuIY;EACI,WAAA;EACA,YAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,cAAA;EACA,gBAAA;EACA,kDAAA;EACA,wDAAA;EACA,2CAAA;ADrIhB;ACuIgB;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;ADrIpB;AC0IQ;EACI,aAAA;EACA,uBAAA;EACA,wBAAA;ADxIZ;AC2IQ;EACI,2BAAA;ADzIZ;AC2IY;EACI,aAAA;EACA,QAAA;EACA,uBAAA;ADzIhB;AC2IgB;EACI,WAAA;EACA,YAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,iBAAA;EACA,kDAAA;EACA,wDAAA;EACA,2CAAA;ADzIpB;AC2IoB;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;ADzIxB;;ACgJA;EACI,OAAA;EACA,gBAAA;AD7IJ;ACgJI;EACI,UAAA;AD9IR;ACiJI;EACI,uBAAA;AD/IR;ACkJI;EACI,kDAAA;EACA,kBAAA;ADhJR;ACkJQ;EACI,kDAAA;ADhJZ;ACqJI;EACI,uBAAA;ADnJR;ACwJQ;;;EAGI,iBAAA;ADtJZ;;AC4JA;EACI,kBAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;ADzJJ;AC2JI;EACI,UAAA;EACA,QAAA;EACA,SAAA;ADzJR;AC4JI;EACI,kBAAA;EACA,eAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,wDAAA;EACA,gBAAA;EACA,mBAAA;AD1JR;AC4JQ;EACI,kBAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,SAAA;EACA,WAAA;EACA,gEAAA;EACA,gBAAA;EACA,kBAAA;AD1JZ;AC8JI;EACI,wDAAA;AD5JR;AC+JI;EACI,2BAAA;AD7JR;;ACkKA;EACI,mBAAA;AD/JJ;ACiKI;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,kCAAA;EACA,kBAAA;AD/JR;ACkKI;EACI,WAAA;EACA,iBAAA;EACA,+CAAA;EACA,kBAAA;EACA,qCAAA;EACA,kCAAA;EACA,eAAA;ADhKR;ACkKQ;EACI,aAAA;EACA,2CAAA;ADhKZ;;ACsKA;EACI,+BAAA;EACA,gBAAA;EACA,mBAAA;EACA,6BAAA;EACA,8CAAA;EACA,wDAAA;EACA,kBAAA;EACA,2CAAA;ADnKJ;ACsKI;EACI,UAAA;ADpKR;ACuKI;EACI,mBAAA;EACA,kBAAA;ADrKR;ACwKI;EACI,kDAAA;EACA,kBAAA;ADtKR;ACyKI;EACI,kDAAA;ADvKR;AC0KI;EACI,kBAAA;EACA,6CAAA;ADxKR;AC2KI;EACI,mBAAA;ADzKR;AC2KQ;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,2CAAA;ADzKZ;AC4KQ;EACI,WAAA;EACA,YAAA;EACA,sBAAA;EACA,kBAAA;EACA,8CAAA;EACA,2CAAA;AD1KZ;AC4KY;EACI,aAAA;EACA,oDAAA;AD1KhB;AC+KI;EACI,mBAAA;EACA,aAAA;EACA,uEAAA;EACA,4EAAA;EACA,kBAAA;AD7KR;AC+KQ;EACI,aAAA;EACA,mBAAA;EACA,QAAA;EACA,SAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;AD7KZ;AC+KY;EACI,eAAA;EACA,gBAAA;EACA,2CAAA;EACA,eAAA;AD7KhB;ACgLY;EACI,aAAA;EACA,mBAAA;EACA,SAAA;AD9KhB;ACgLgB;EACI,cAAA;EACA,eAAA;EACA,oBAAA;AD9KpB;ACgLoB;EACI,eAAA;AD9KxB;ACkLgB;EACI,eAAA;EACA,2CAAA;EACA,kBAAA;EACA,eAAA;ADhLpB;ACsLI;EACI,aAAA;EACA,SAAA;EACA,mBAAA;EACA,aAAA;EACA,uEAAA;EACA,4EAAA;EACA,kBAAA;ADpLR;ACsLQ;EACI,OAAA;ADpLZ;ACsLY;EACI,aAAA;EACA,mBAAA;EACA,QAAA;EACA,SAAA;ADpLhB;ACsLgB;EACI,eAAA;EACA,gBAAA;EACA,2CAAA;EACA,mBAAA;ADpLpB;ACuLgB;EACI,aAAA;EACA,mBAAA;ADrLpB;ACuLoB;EACI,eAAA;ADrLxB;AC4LI;EACI,mBAAA;AD1LR;AC4LQ;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;AD1LZ;AC6LQ;EACI,aAAA;EACA,QAAA;EACA,kBAAA;AD3LZ;AC6LY;EACI,OAAA;EACA,gBAAA;EACA,sBAAA;EACA,mBAAA;EACA,2CAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;AD3LhB;AC6LgB;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;AD3LpB;AC8LgB;EACI,mBAAA;EACA,2CAAA;AD5LpB;AC8LoB;EACI,kDAAA;EACA,qDAAA;AD5LxB;ACkMQ;EACI,WAAA;EACA,YAAA;EACA,wDAAA;EACA,8CAAA;EACA,2CAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;ADhMZ;ACkMY;EACI,8CAAA;ADhMhB;ACqMI;EACI,aAAA;EACA,QAAA;EACA,yBAAA;ADnMR;ACqMQ;EACI,iBAAA;EACA,sBAAA;EACA,kBAAA;EACA,eAAA;ADnMZ;ACqMY;EACI,mBAAA;EACA,2CAAA;ADnMhB;ACqMgB;EACI,mBAAA;ADnMpB;ACuMY;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;ADrMhB;ACuMgB;EACI,kDAAA;ADrMpB;;AC6MA;EACI,kBAAA;EACA,aAAA;EACA,WAAA;EACA,kBAAA;AD1MJ;;ACgNI;EACI,kDAAA;EACA,qDAAA;EACA,iBAAA;EACA,eAAA;EACA,0BAAA;EACA,eAAA;EACA,gBAAA;AD7MR;ACiNI;EACI,kBAAA;AD/MR;ACiNQ;EAEI,qFAAA;ADhNZ;;ACsNA;EACI,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;EACA,WAAA;ADnNJ;ACqNI;EACI,eAAA;EACA,kBAAA;ADnNR;ACsNI;EACI,iBAAA;EACA,eAAA;EACA,gBAAA;ADpNR;ACuNI;EACI,eAAA;EACA,YAAA;ADrNR;;AC0NA;EACI,yDAAA;ADvNJ;ACyNI;EACI,kCAAA;EACA,sDAAA;ADvNR;ACyNQ;EACI,uEAAA;ADvNZ;AC0NQ;EACI,6DAAA;EACA,gEAAA;ADxNZ;;AC8NA;EACI,kBAAA;EACA,WAAA;AD3NJ;AC6NI;EACI,qBAAA;EACA,wCAAA;AD3NR;AC8NI;EACI,8CAAA;EACA,wDAAA;EACA,2CAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,yBAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;AD5NR;AC8NQ;EACI,oDAAA;EACA,0CAAA;AD5NZ;AC+NQ;EACI,oDAAA;EACA,6CAAA;EACA,aAAA;AD7NZ;ACgOQ;EACI,OAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;AD9NZ;ACiOQ;EACI,gBAAA;EACA,eAAA;EACA,+BAAA;EACA,6CAAA;AD/NZ;ACmOI;EACI,yBAAA;ADjOR;ACoOI;EACI,kBAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,8CAAA;EACA,wDAAA;EACA,kBAAA;EACA,0CAAA;EACA,aAAA;EACA,4BAAA;EACA,gBAAA;EACA,kBAAA;EAsBA,qBAAA;EACA,2EAAA;ADvPR;ACmOQ;EACI,UAAA;ADjOZ;ACoOQ;EACI,+BAAA;EACA,kBAAA;ADlOZ;ACqOQ;EACI,kDAAA;EACA,kBAAA;EACA,YAAA;ADnOZ;ACsOQ;EACI,YAAA;ADpOZ;AC0OQ;EACI,iBAAA;EACA,eAAA;EACA,2CAAA;EACA,uBAAA;EACA,yBAAA;EACA,4CAAA;EACA,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EA+BA,gBAAA;EACA,uBAAA;EACA,mBAAA;ADtQZ;ACuOY;EACI,mBAAA;ADrOhB;ACwOY;EACI,mDAAA;EACA,2CAAA;EACA,0BAAA;ADtOhB;ACyOY;EACI,kDAAA;EACA,qDAAA;EACA,gBAAA;ADvOhB;ACyOgB;EACI,YAAA;EACA,iBAAA;EACA,eAAA;ADvOpB;AC2OY;EACI,6DAAA;EACA,gEAAA;EACA,eAAA;ADzOhB;ACmPQ;EACI,iBAAA;EACA,kBAAA;EACA,6CAAA;EACA,eAAA;EACA,kBAAA;ADjPZ;ACqPQ;EACI,aAAA;EACA,kBAAA;EACA,yBAAA;EACA,kBAAA;ADnPZ;;ACyPA;EACI,kBAAA;ADtPJ;ACwPI;EACI,kBAAA;EACA,aAAA;EACA,mBAAA;ADtPR;ACwPQ;EACI,WAAA;EACA,0BAAA;EACA,wDAAA;EACA,kBAAA;EACA,8CAAA;EACA,2CAAA;EACA,qCAAA;EACA,eAAA;EACA,eAAA;EACA,yBAAA;ADtPZ;ACwPY;EACI,oDAAA;EACA,0CAAA;ADtPhB;ACyPY;EACI,aAAA;EACA,oDAAA;EACA,6CAAA;EACA,0CAAA;ADvPhB;AC0PY;EACI,yBAAA;ADxPhB;AC4PQ;EACI,kBAAA;EACA,UAAA;EACA,QAAA;EACA,2BAAA;EACA,6CAAA;EACA,eAAA;EACA,oBAAA;EACA,2BAAA;AD1PZ;AC8PI;EACI,kBAAA;EACA,SAAA;EACA,OAAA;EACA,YAAA;EACA,8CAAA;EACA,wDAAA;EACA,kBAAA;EACA,0CAAA;EACA,aAAA;EACA,aAAA;AD5PR;AC+PQ;EACI,UAAA;EACA,QAAA;AD7PZ;ACgQQ;EACI,aAAA;EACA,QAAA;AD9PZ;ACgQY;EACI,OAAA;AD9PhB;ACgQgB;EACI,eAAA;EACA,gBAAA;EACA,2CAAA;EACA,kBAAA;EACA,cAAA;EACA,kBAAA;AD9PpB;ACiQgB;EACI,8CAAA;EACA,wDAAA;EACA,kBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;AD/PpB;ACkQoB;EACI,UAAA;ADhQxB;ACmQoB;EACI,+BAAA;EACA,kBAAA;ADjQxB;ACoQoB;EACI,kDAAA;EACA,kBAAA;EACA,YAAA;ADlQxB;ACqQoB;EACI,gBAAA;EACA,eAAA;EACA,eAAA;EACA,2CAAA;EACA,sCAAA;EACA,kBAAA;EACA,4CAAA;ADnQxB;ACqQwB;EACI,mBAAA;ADnQ5B;ACsQwB;EACI,mDAAA;ADpQ5B;ACuQwB;EACI,kDAAA;EACA,qDAAA;EACA,gBAAA;ADrQ5B;ACwQwB;EACI,6DAAA;EACA,gEAAA;ADtQ5B;AC2QgB;EACI,eAAA;EACA,gBAAA;EACA,4DAAA;ADzQpB;AC2QoB;EACI,eAAA;EACA,gBAAA;EACA,2CAAA;EACA,kBAAA;EACA,cAAA;EACA,kBAAA;ADzQxB;AC4QoB;EACI,aAAA;EACA,qCAAA;EACA,QAAA;AD1QxB;AC4QwB;EACI,gBAAA;EACA,eAAA;EACA,wDAAA;EACA,8CAAA;EACA,2CAAA;EACA,kBAAA;EACA,eAAA;EACA,yBAAA;EACA,gBAAA;AD1Q5B;AC4Q4B;EACI,wCAAA;EACA,oDAAA;AD1QhC;AC6Q4B;EACI,kDAAA;EACA,qDAAA;EACA,oDAAA;EACA,gBAAA;AD3QhC;;ACsRA;EACI,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,8BAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,aAAA;ADnRJ;;ACsRA;EACI,iBAAA;EACA,kBAAA;EACA,yCAAA;EACA,UAAA;EACA,gBAAA;EACA,gBAAA;EACA,gCAAA;ADnRJ;;ACsRA;EACI,aAAA;EACA,mBAAA;EACA,QAAA;EACA,kBAAA;EACA,gCAAA;ADnRJ;ACqRI;EACI,6CAAA;EACA,eAAA;ADnRR;ACsRI;EACI,SAAA;EACA,eAAA;EACA,gBAAA;EACA,2CAAA;ADpRR;;ACwRA;EACI,kBAAA;EACA,WAAA;EACA,gBAAA;ADrRJ;ACuRI;EACI,gBAAA;ADrRR;ACyRQ;EACI,cAAA;EACA,gBAAA;EACA,2CAAA;EACA,kBAAA;EACA,eAAA;ADvRZ;AC2RQ;;;EAGI,0BAAA;EACA,+BAAA;ADzRZ;AC2RY;;;EACI,8BAAA;EACA,sDAAA;EACA,6BAAA;ADvRhB;AC0RY;;;EACI,6DAAA;EACA,gEAAA;EACA,+DAAA;ADtRhB;;AC4RA;EACI,aAAA;EACA,QAAA;EACA,kBAAA;EACA,6BAAA;EACA,yBAAA;ADzRJ;AC2RI;EACI,iBAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,sCAAA;ADzRR;AC2RQ;EACI,mBAAA;EACA,2CAAA;ADzRZ;AC2RY;EACI,mBAAA;ADzRhB;AC6RQ;EACI,kDAAA;EACA,qDAAA;AD3RZ;AC6RY;EACI,kDAAA;AD3RhB;;ACiSA;EACI;IACI,qBAAA;IACA,UAAA;ED9RN;ECgSE;IACI,mBAAA;IACA,UAAA;ED9RN;AACF;ACkSA;EACI,kBAAA;EACA,SAAA;EACA,QAAA;EACA,aAAA;EACA,kDAAA;EACA,0CAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,SAAA;EACA,mBAAA;EACA,wCAAA;ADhSJ;;ACmSA;EACI,aAAA;EACA,mBAAA;EACA,eAAA;EACA,qDAAA;EACA,eAAA;ADhSJ;ACkSI;EACI,kBAAA;EACA,UAAA;EACA,eAAA;EACA,SAAA;EACA,QAAA;ADhSR;ACmSI;EACI,YAAA;EACA,WAAA;EACA,0CAAA;EACA,0CAAA;EACA,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,yBAAA;ADjSR;ACmSQ;EACI,WAAA;EACA,kBAAA;EACA,aAAA;EACA,SAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EACA,4DAAA;EACA,yBAAA;EACA,wBAAA;ADjSZ;ACqSI;EACI,wEAAA;EACA,oEAAA;ADnSR;ACsSI;EACI,wEAAA;EACA,8DAAA;ADpSR;ACsSQ;EACI,cAAA;ADpSZ;ACwSI;EACI,yBAAA;UAAA,iBAAA;ADtSR","sourcesContent":["@charset \"UTF-8\";\n.months-row {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(40px, 1fr));\n gap: 4px;\n margin-bottom: 8px;\n}\n\n.days-of-month-calendar {\n display: grid;\n grid-template-columns: repeat(7, minmax(14px, 38px));\n gap: 6px;\n}\n\n.month-btn {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid #ccc;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n cursor: pointer;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n margin: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s, color 0.2s;\n}\n\n.month-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n\n.month-btn:hover {\n background: #e0e0e0;\n color: var(--scheduler-text-color, #333333);\n}\n\n.month-btn.active:hover {\n background: var(--scheduler-accent-color, #1976d2);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n\n.month-indicator {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid #ccc;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n margin: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 40px;\n max-width: 50px;\n}\n\n.month-indicator[style*=\"background: #2196f3\"] {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n border-color: var(--scheduler-accent-color, #2196f3) !important;\n}\n\n.toggle-row-responsive {\n display: flex;\n gap: 16px;\n align-items: center;\n margin-bottom: 12px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.toggle-item {\n min-width: 120px;\n flex: 1 1 120px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.day-of-month-btn {\n aspect-ratio: 1;\n border-radius: 50%;\n padding: 0;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 500;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n border: 1px solid #ccc;\n cursor: pointer;\n transition: background 0.2s, color 0.2s;\n width: 100%;\n min-width: 24px;\n max-width: 100%;\n}\n\n@media (min-width: 768px) {\n .day-of-month-btn {\n font-size: 12px;\n }\n}\n@media (min-width: 1200px) {\n .day-of-month-btn {\n font-size: 13px;\n }\n}\n.day-of-month-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n\n.day-of-month-btn:hover {\n background: #e0e0e0;\n color: var(--scheduler-text-color, #333333);\n}\n\n.day-of-month-btn.active:hover {\n background: var(--scheduler-accent-color, #1976d2);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n\n.day-indicator {\n aspect-ratio: 1;\n border-radius: 50%;\n padding: 0;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 500;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n border: 1px solid #ccc;\n width: 32px;\n height: 32px;\n min-width: 32px;\n}\n\n.day-indicator[style*=\"background: #2196f3\"] {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n border-color: var(--scheduler-accent-color, #2196f3) !important;\n}\n\n.day-btn.round-btn {\n border-radius: 50%;\n width: 32px;\n height: 32px;\n padding: 0;\n margin: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n background: #e0e0e0;\n color: #333;\n border: 1px solid #bbb;\n transition: background 0.2s, color 0.2s;\n}\n\n.day-btn.round-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: #fff;\n border: 2px solid var(--scheduler-accent-color, #2196f3);\n}\n\n.days-grid {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex-wrap: wrap;\n}\n\n.days-row {\n display: flex;\n flex-direction: row;\n gap: 4px;\n flex-wrap: wrap;\n}\n\n.months-grid-responsive, .days-of-month-grid-responsive {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 8px;\n}\n\n.scheduler-container {\n position: relative;\n --mdc-theme-primary: var(--scheduler-accent-color) !important;\n --mdc-theme-surface: var(--scheduler-bg-color) !important;\n --mdc-theme-on-surface: var(--scheduler-text-color) !important;\n --mdc-theme-text-primary-on-background: var(--scheduler-text-color) !important;\n --mdc-filled-select-container-color: rgba(255, 255, 255, 0.2) !important;\n --mdc-filled-select-ink-color: var(--scheduler-text-color) !important;\n --mdc-select-ink-color: var(--scheduler-text-color) !important;\n --mdc-select-container-fill-color: rgba(255, 255, 255, 0.2) !important;\n --mdc-select-dropdown-icon-color: var(--scheduler-secondary-text-color, #ffffff) !important;\n --mdc-select-hover-container-fill-color: rgba(255, 255, 255, 0.3) !important;\n --mdc-select-focused-container-fill-color: var(--scheduler-accent-color) !important;\n --mdc-select-focused-ink-color: var(--scheduler-secondary-text-color, #ffffff) !important;\n --mdc-menu-container-shape: 4px !important;\n --mdc-menu-container-color: var(--scheduler-bg-color) !important;\n --mdc-menu-container-surface-tint-color: var(--scheduler-bg-color) !important;\n --mdc-menu-item-container-height: 48px !important;\n --mdc-menu-item-label-text-color: var(--scheduler-text-color) !important;\n --mdc-menu-item-selected-container-fill-color: var(--scheduler-accent-color) !important;\n --mdc-menu-item-selected-label-text-color: var(--scheduler-secondary-text-color, #ffffff) !important;\n --mdc-menu-item-hover-container-fill-color: var(--scheduler-hover-color) !important;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 400px;\n font-size: 14px;\n}\n\n.scheduler-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-bottom: 1px solid var(--scheduler-border-color, #cccccc);\n}\n.scheduler-header .device-selector, .scheduler-header .device-name {\n flex: none;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select {\n background: rgba(255, 255, 255, 0.2) !important;\n border: 1px solid rgba(255, 255, 255, 0.3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n padding: 6px 8px !important;\n border-radius: 3px !important;\n cursor: pointer !important;\n min-width: 150px !important;\n display: flex !important;\n align-items: center !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-value, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-value {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n flex: 1 !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-arrow, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select .mat-mdc-select-arrow {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n margin-left: 8px !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select:hover, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select:hover {\n background: rgba(255, 255, 255, 0.3) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select:hover .mat-mdc-select-arrow, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select:hover .mat-mdc-select-arrow {\n color: var(--scheduler-accent-color) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused {\n background: var(--scheduler-accent-color) !important;\n border-color: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-value, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-value {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-arrow, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select.mat-focused .mat-mdc-select-arrow {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel {\n background: var(--scheduler-bg-color) !important;\n border: 1px solid var(--scheduler-border-color) !important;\n border-radius: 4px !important;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option {\n color: var(--scheduler-text-color) !important;\n background: transparent !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected {\n background: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected), .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color) !important;\n background-color: var(--scheduler-hover-color) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected), .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color) !important;\n background-color: var(--scheduler-hover-color) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-select-panel-wrap, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .mat-mdc-select-panel-wrap {\n background: var(--scheduler-bg-color) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-mdc-select-panel .cdk-overlay-pane, .scheduler-header .device-name .device-select ::ng-deep .mat-mdc-select-panel .cdk-overlay-pane {\n background: var(--scheduler-bg-color) !important;\n}\n.scheduler-header .device-selector .device-select ::ng-deep .mat-primary .mat-mdc-option.mdc-list-item--selected, .scheduler-header .device-name .device-select ::ng-deep .mat-primary .mat-mdc-option.mdc-list-item--selected {\n background: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n\n::ng-deep .custom-select-panel {\n background: var(--scheduler-bg-color) !important;\n border: 1px solid var(--scheduler-border-color) !important;\n border-radius: 4px !important;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;\n}\n::ng-deep .custom-select-panel .mat-mdc-option {\n color: var(--scheduler-text-color) !important;\n transition: background-color 0.2s ease !important;\n}\n::ng-deep .custom-select-panel .mat-mdc-option.mdc-list-item--selected {\n background: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n::ng-deep ::ng-deep .custom-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),\n::ng-deep .mat-option:hover:not(.mat-selected),\n::ng-deep .mat-option.mat-option-highlighted:not(.mat-selected) {\n background: var(--scheduler-hover-color) !important;\n background-color: var(--scheduler-hover-color) !important;\n}\n\n::ng-deep .mat-mdc-option .mdc-list-item__ripple::before,\n::ng-deep .mat-mdc-option .mdc-list-item__ripple::after {\n background-color: var(--scheduler-hover-color) !important;\n}\n\n::ng-deep .mat-mdc-option:hover .mdc-list-item__ripple::before {\n opacity: 0.04 !important;\n background-color: var(--scheduler-hover-color) !important;\n}\n\n.custom-select {\n position: relative;\n min-width: 150px;\n}\n.custom-select .custom-select-trigger {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 6px 8px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: background-color 0.2s ease;\n}\n.custom-select .custom-select-trigger:hover:not(.disabled) {\n background: rgba(255, 255, 255, 0.3);\n}\n.custom-select .custom-select-trigger .selected-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.custom-select .custom-select-trigger .arrow {\n margin-left: 8px;\n font-size: 18px;\n transition: transform 0.2s ease;\n}\n.custom-select.open .custom-select-trigger .arrow {\n transform: rotate(180deg);\n}\n.custom-select.disabled .custom-select-trigger {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.custom-select .custom-select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n max-height: 200px;\n overflow-y: auto;\n}\n.custom-select .custom-select-dropdown .custom-option {\n padding: 12px 16px;\n cursor: pointer;\n color: var(--scheduler-text-color, #333333);\n background: transparent;\n transition: background-color 0.2s ease;\n}\n.custom-select .custom-select-dropdown .custom-option:hover {\n background: var(--scheduler-hover-color) !important;\n color: var(--scheduler-text-color, #333333);\n}\n.custom-select .custom-select-dropdown .custom-option.selected {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n.custom-select .custom-select-dropdown .custom-option.selected:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n\n::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .mat-mdc-option:hover {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .mdc-list-item:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n.scheduler-container .header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n.scheduler-container .header-actions button {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 6px;\n border-radius: 3px;\n cursor: pointer;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.scheduler-container .header-actions button:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n.scheduler-container .header-actions button.active {\n background: rgba(76, 175, 80, 0.8);\n}\n.scheduler-container .header-actions button.status-btn, .scheduler-container .header-actions button.action-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n}\n.scheduler-container .header-actions button.status-btn .material-icons, .scheduler-container .header-actions button.action-btn .material-icons {\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n.scheduler-container .header-actions button.status-btn:hover, .scheduler-container .header-actions button.action-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n.scheduler-container .header-actions button.status-btn.active, .scheduler-container .header-actions button.action-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n border: 1px solid var(--scheduler-accent-color, #2196f3);\n}\n.scheduler-container .header-actions button.status-btn.active .material-icons, .scheduler-container .header-actions button.action-btn.active .material-icons {\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n.scheduler-container .header-actions .filter-menu {\n position: relative;\n}\n.scheduler-container .header-actions .filter-menu .filter-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n min-width: 120px;\n}\n.scheduler-container .header-actions .filter-menu .filter-dropdown label {\n display: block;\n color: #333;\n font-size: 12px;\n margin-bottom: 4px;\n cursor: pointer;\n}\n.scheduler-container .header-actions .filter-menu .filter-dropdown label input[type=checkbox] {\n margin-right: 6px;\n}\n.scheduler-container .header-actions .filter-section, .scheduler-container .header-actions .settings-section {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.scheduler-container .header-actions .filter-section .filter-btn, .scheduler-container .header-actions .filter-section .settings-btn, .scheduler-container .header-actions .settings-section .filter-btn, .scheduler-container .header-actions .settings-section .settings-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 6px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n}\n.scheduler-container .header-actions .filter-section .filter-btn:hover, .scheduler-container .header-actions .filter-section .settings-btn:hover, .scheduler-container .header-actions .settings-section .filter-btn:hover, .scheduler-container .header-actions .settings-section .settings-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n.scheduler-container .header-actions .filter-section .filter-btn.active, .scheduler-container .header-actions .filter-section .settings-btn.active, .scheduler-container .header-actions .settings-section .filter-btn.active, .scheduler-container .header-actions .settings-section .settings-btn.active {\n background: rgba(76, 175, 80, 0.8);\n}\n.scheduler-container .header-actions .filter-section .settings-dropdown, .scheduler-container .header-actions .settings-section .settings-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n z-index: 1000;\n margin-top: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n.scheduler-container .header-actions .filter-section .settings-option, .scheduler-container .header-actions .settings-section .settings-option {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border: 1px solid rgba(255, 255, 255, 0.3);\n padding: 6px 12px;\n border-radius: 3px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n}\n.scheduler-container .header-actions .filter-section .settings-option:hover, .scheduler-container .header-actions .settings-section .settings-option:hover {\n background: var(--scheduler-accent-color, #1976d2);\n}\n.scheduler-container .header-actions .filter-section .settings-option .material-icons, .scheduler-container .header-actions .settings-section .settings-option .material-icons {\n font-size: 14px;\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions, .scheduler-container .header-actions .settings-section .edit-mode-actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 12px;\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n width: 32px;\n height: 32px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn .material-icons, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn .material-icons {\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-size: 18px;\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn:hover, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions .action-btn:disabled, .scheduler-container .header-actions .settings-section .edit-mode-actions .action-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions .save-btn, .scheduler-container .header-actions .settings-section .edit-mode-actions .save-btn {\n background: var(--scheduler-accent-color, #2196f3);\n border: 1px solid var(--scheduler-accent-color, #2196f3);\n}\n.scheduler-container .header-actions .filter-section .edit-mode-actions .save-btn:hover, .scheduler-container .header-actions .settings-section .edit-mode-actions .save-btn:hover {\n background: var(--scheduler-accent-color, #1976d2);\n border-color: var(--scheduler-accent-color, #1976d2);\n}\n\n.schedule-display {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n margin-top: 2px;\n}\n\n.device-mode, .overview-mode {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.device-scroll-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n.device-scroll-container::-webkit-scrollbar {\n width: 6px;\n}\n.device-scroll-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.device-scroll-container::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n}\n.device-scroll-container::-webkit-scrollbar-thumb:hover {\n background: var(--scheduler-accent-hover, #1976d2);\n}\n.device-scroll-container.has-scrollbar .header-row,\n.device-scroll-container.has-scrollbar .schedule-item {\n margin-right: 6px;\n}\n\n.overview-message {\n text-align: center;\n padding: 40px 20px;\n color: #666;\n font-style: italic;\n}\n.overview-message p {\n margin: 0;\n font-size: 14px;\n}\n\n.schedule-headers .header-row {\n display: grid;\n grid-template-columns: 30px 1fr 1fr 1fr 40px 40px;\n gap: 4px;\n padding: 6px 8px;\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-weight: 500;\n font-size: 12px;\n border-radius: 4px 4px 0 0;\n}\n.schedule-headers .header-row .header-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.schedule-headers .header-row .header-cell.schedule-num {\n justify-content: center;\n}\n.schedule-headers .header-row .header-cell.device-name {\n justify-content: flex-start;\n}\n.schedule-headers .header-row .header-cell.actions {\n justify-content: flex-end;\n}\n\n.schedule-list .schedule-item {\n border: 1px solid var(--scheduler-border-color, #e0e0e0);\n border-radius: 0;\n margin-bottom: 0;\n border-bottom: none;\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-list .schedule-item:first-child {\n border-radius: 0 0 0 0;\n}\n.schedule-list .schedule-item:last-child {\n border-radius: 0 0 4px 4px;\n border-bottom: 1px solid var(--scheduler-border-color, #e0e0e0);\n}\n.schedule-list .schedule-item:hover {\n background: var(--scheduler-hover-color, #f5f5f5);\n}\n.schedule-list .schedule-item:hover .schedule-main-row {\n background: var(--scheduler-hover-color, #f5f5f5);\n}\n.schedule-list .schedule-item.disabled {\n opacity: 0.6;\n background: #f9f9f9;\n}\n.schedule-list .schedule-item.read-only {\n cursor: default !important;\n pointer-events: none !important;\n opacity: 0.7;\n position: relative;\n}\n.schedule-list .schedule-item.read-only::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(128, 128, 128, 0.05);\n pointer-events: none;\n}\n.schedule-list .schedule-item.read-only .schedule-main-row {\n cursor: default !important;\n pointer-events: none !important;\n}\n.schedule-list .schedule-item.read-only:hover {\n background: var(--scheduler-bg-color, #ffffff);\n}\n.schedule-list .schedule-item.read-only:hover .schedule-main-row {\n background: var(--scheduler-bg-color, #ffffff);\n}\n.schedule-list .schedule-item .schedule-main-row {\n display: grid;\n grid-template-columns: 30px 1fr 1fr 1fr 40px 40px;\n gap: 4px;\n padding: 6px 8px;\n align-items: center;\n font-size: 14px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.schedule-list .schedule-item .schedule-main-row > * {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.schedule-list .schedule-item .schedule-main-row .schedule-number {\n justify-content: center;\n}\n.schedule-list .schedule-item .schedule-main-row .start-time, .schedule-list .schedule-item .schedule-main-row .end-time, .schedule-list .schedule-item .schedule-main-row .duration {\n justify-content: center;\n}\n.schedule-list .schedule-item .schedule-main-row .start-time ::ng-deep .time-period, .schedule-list .schedule-item .schedule-main-row .end-time ::ng-deep .time-period {\n font-size: 0.7em;\n opacity: 0.7;\n margin-left: 1px;\n font-weight: 400;\n}\n.schedule-list .schedule-item .schedule-main-row .status-switch {\n justify-content: center;\n}\n.schedule-list .schedule-item .schedule-main-row .actions {\n justify-content: flex-end;\n}\n.schedule-list .schedule-item .schedule-main-row .actions .delete-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border: none;\n border-radius: 3px;\n padding: 3px 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n}\n.schedule-list .schedule-item .schedule-main-row .actions .delete-btn:hover {\n background: var(--scheduler-accent-color, #1976d2);\n}\n.schedule-list .schedule-item .schedule-main-row .actions .delete-btn .material-icons, .schedule-list .schedule-item .schedule-main-row .actions .delete-btn .material-icons-outlined {\n font-size: 14px;\n}\n.schedule-list .schedule-item .calendar-view-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border: none;\n border-radius: 3px;\n padding: 6px 48px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n}\n.schedule-list .schedule-item .calendar-view-btn:hover {\n background: var(--scheduler-accent-color, #1976d2);\n}\n.schedule-list .schedule-item .calendar-view-btn .material-icons {\n font-size: 14px;\n margin-right: 4px;\n}\n.schedule-list .schedule-item .calendar-view-btn .calendar-btn-text {\n font-size: 11px;\n font-weight: 500;\n white-space: nowrap;\n}\n.schedule-list .schedule-item .schedule-number {\n font-weight: bold;\n color: var(--scheduler-accent-color, #2196f3);\n}\n.schedule-list .schedule-item .device-name {\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-list .schedule-item .start-time, .schedule-list .schedule-item .end-time {\n font-family: \"Courier New\", monospace;\n font-size: 13px;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-list .schedule-item .duration {\n font-size: 12px;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-list .schedule-item .status-switch {\n display: flex;\n justify-content: center;\n}\n.schedule-list .schedule-item .actions {\n display: flex;\n gap: 4px;\n justify-content: flex-end;\n}\n.schedule-list .schedule-item .actions button {\n padding: 4px 8px;\n border: 1px solid #ccc;\n border-radius: 3px;\n cursor: pointer;\n font-size: 11px;\n}\n.schedule-list .schedule-item .actions button.edit-btn {\n background: #e3f2fd;\n border-color: #2196f3;\n color: #1976d2;\n}\n.schedule-list .schedule-item .actions button.edit-btn:hover {\n background: #bbdefb;\n}\n.schedule-list .schedule-item .actions button.delete-btn {\n background: #ffebee;\n border-color: #f44336;\n color: #d32f2f;\n}\n.schedule-list .schedule-item .actions button.delete-btn:hover {\n background: #ffcdd2;\n}\n.schedule-list .days-display {\n display: flex;\n gap: 3px;\n justify-content: center;\n padding: 6px 8px 8px 8px;\n}\n.schedule-list .days-display .day-circle {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 9px;\n font-weight: 500;\n background: var(--scheduler-border-color, #cccccc);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-list .days-display .day-circle.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.schedule-list .calendar-display {\n display: flex;\n justify-content: center;\n padding: 6px 8px 8px 8px;\n}\n.schedule-list .schedule-days-row {\n padding: 8px 12px 12px 12px;\n}\n.schedule-list .schedule-days-row .days-display {\n display: flex;\n gap: 4px;\n justify-content: center;\n}\n.schedule-list .schedule-days-row .days-display .day-circle {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: bold;\n background: var(--scheduler-border-color, #cccccc);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-list .schedule-days-row .days-display .day-circle.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n\n.overview-scroll-container {\n flex: 1;\n overflow-y: auto;\n}\n.overview-scroll-container::-webkit-scrollbar {\n width: 6px;\n}\n.overview-scroll-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.overview-scroll-container::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n}\n.overview-scroll-container::-webkit-scrollbar-thumb:hover {\n background: var(--scheduler-accent-color, #1976d2);\n}\n.overview-scroll-container::-webkit-scrollbar-corner {\n background: transparent;\n}\n.overview-scroll-container.has-scrollbar .header-row,\n.overview-scroll-container.has-scrollbar .schedule-item,\n.overview-scroll-container.has-scrollbar .device-header {\n margin-right: 6px;\n}\n\n.switch {\n position: relative;\n display: inline-block;\n width: 40px;\n height: 20px;\n}\n.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n.switch .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--scheduler-border-color, #cccccc);\n transition: 0.4s;\n border-radius: 20px;\n}\n.switch .slider:before {\n position: absolute;\n content: \"\";\n height: 16px;\n width: 16px;\n left: 2px;\n bottom: 2px;\n background-color: var(--scheduler-secondary-text-color, #ffffff);\n transition: 0.4s;\n border-radius: 50%;\n}\n.switch input:checked + .slider {\n background-color: var(--scheduler-accent-color, #2196f3);\n}\n.switch input:checked + .slider:before {\n transform: translateX(20px);\n}\n\n.device-assignment {\n margin-bottom: 16px;\n}\n.device-assignment label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: var(--scheduler-text-color);\n margin-bottom: 4px;\n}\n.device-assignment select {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--scheduler-border-color);\n border-radius: 4px;\n background: var(--scheduler-bg-color);\n color: var(--scheduler-text-color);\n font-size: 14px;\n}\n.device-assignment select:focus {\n outline: none;\n border-color: var(--scheduler-accent-color);\n}\n\n.schedule-form {\n max-height: calc(100vh - 600px);\n overflow-y: auto;\n overflow-x: visible;\n padding: 16px 16px 200px 16px;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-form::-webkit-scrollbar {\n width: 6px;\n}\n.schedule-form::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n.schedule-form::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n}\n.schedule-form::-webkit-scrollbar-thumb:hover {\n background: var(--scheduler-accent-hover, #1976d2);\n}\n.schedule-form h3 {\n margin: 0 0 16px 0;\n color: var(--scheduler-accent-color, #2196f3);\n}\n.schedule-form .form-row {\n margin-bottom: 12px;\n}\n.schedule-form .form-row label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 4px;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-form .form-row input, .schedule-form .form-row select {\n width: 100%;\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 3px;\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-form .form-row input:focus, .schedule-form .form-row select:focus {\n outline: none;\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.schedule-form .recurring-toggle {\n margin-bottom: 16px;\n padding: 12px;\n background: rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.05);\n border: 1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.2);\n border-radius: 4px;\n}\n.schedule-form .recurring-toggle .toggle-label {\n display: flex;\n flex-direction: row;\n gap: 8px;\n margin: 0;\n pointer-events: none;\n align-items: center;\n justify-content: center;\n}\n.schedule-form .recurring-toggle .toggle-label .toggle-text {\n font-size: 12px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n cursor: default;\n}\n.schedule-form .recurring-toggle .toggle-label .toggle-switch-container {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .switch {\n flex-shrink: 0;\n cursor: pointer;\n pointer-events: auto;\n}\n.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .switch .slider {\n cursor: pointer;\n}\n.schedule-form .recurring-toggle .toggle-label .toggle-switch-container .toggle-description {\n font-size: 11px;\n color: var(--scheduler-text-color, #666666);\n font-style: italic;\n cursor: default;\n}\n.schedule-form .toggle-row-horizontal {\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n padding: 12px;\n background: rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.05);\n border: 1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.2);\n border-radius: 4px;\n}\n.schedule-form .toggle-row-horizontal .toggle-item {\n flex: 1;\n}\n.schedule-form .toggle-row-horizontal .toggle-item .toggle-label {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n}\n.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-text {\n font-size: 12px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n white-space: nowrap;\n}\n.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-switch-container {\n display: flex;\n align-items: center;\n}\n.schedule-form .toggle-row-horizontal .toggle-item .toggle-label .toggle-switch-container .switch {\n cursor: pointer;\n}\n.schedule-form .days-selection {\n margin-bottom: 16px;\n}\n.schedule-form .days-selection label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 8px;\n}\n.schedule-form .days-selection .days-grid {\n display: flex;\n gap: 4px;\n margin-bottom: 8px;\n}\n.schedule-form .days-selection .days-grid .day-btn {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid #ccc;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n cursor: pointer;\n border-radius: 3px;\n font-size: 11px;\n}\n.schedule-form .days-selection .days-grid .day-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.schedule-form .days-selection .days-grid .day-btn:hover {\n background: #e0e0e0;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-form .days-selection .days-grid .day-btn:hover.active {\n background: var(--scheduler-accent-color, #1976d2);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n.schedule-form .days-selection .select-all-btn {\n width: 100%;\n padding: 6px;\n border: 1px solid var(--scheduler-border-color, #cccccc);\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n cursor: pointer;\n border-radius: 3px;\n font-size: 11px;\n}\n.schedule-form .days-selection .select-all-btn:hover {\n background: var(--scheduler-hover-bg, #f5f5f5);\n}\n.schedule-form .form-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n}\n.schedule-form .form-actions button {\n padding: 8px 16px;\n border: 1px solid #ccc;\n border-radius: 3px;\n cursor: pointer;\n}\n.schedule-form .form-actions button.cancel-btn {\n background: #f5f5f5;\n color: var(--scheduler-text-color, #333333);\n}\n.schedule-form .form-actions button.cancel-btn:hover {\n background: #e0e0e0;\n}\n.schedule-form .form-actions button.save-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.schedule-form .form-actions button.save-btn:hover {\n background: var(--scheduler-accent-color, #1976d2);\n}\n\n.empty-schedule {\n text-align: center;\n padding: 32px;\n color: #666;\n font-style: italic;\n}\n\n.device-group .device-header {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 8px 12px;\n margin: 0 0 0 0;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n font-weight: 500;\n}\n.device-group .mode-section {\n margin-bottom: 1px;\n}\n.device-group .mode-section .schedule-headers .header-row {\n background: color-mix(in srgb, var(--scheduler-accent-color, #2196f3) 70%, white 30%);\n}\n\n.editor-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #666;\n}\n.editor-placeholder .material-icons {\n font-size: 48px;\n margin-bottom: 8px;\n}\n.editor-placeholder p {\n margin: 0 0 4px 0;\n font-size: 16px;\n font-weight: 500;\n}\n.editor-placeholder small {\n font-size: 12px;\n opacity: 0.7;\n}\n\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel {\n background: var(--scheduler-bg-color, #ffffff) !important;\n}\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option {\n background: transparent !important;\n color: var(--scheduler-text-color, #333333) !important;\n}\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(0, 0, 0, 0.1)) !important;\n}\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n\n.form-custom-select {\n position: relative;\n width: 100%;\n}\n.form-custom-select.error .form-custom-select-trigger {\n border-color: #f44336;\n background-color: rgba(244, 67, 54, 0.1);\n}\n.form-custom-select .form-custom-select-trigger {\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n color: var(--scheduler-text-color, #333333);\n padding: 4px 8px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: all 0.2s ease;\n min-height: 28px;\n max-height: 28px;\n height: 28px;\n}\n.form-custom-select .form-custom-select-trigger:hover {\n border-color: var(--scheduler-accent-color, #2196f3);\n background-color: rgba(33, 150, 243, 0.05);\n}\n.form-custom-select .form-custom-select-trigger:focus-within {\n border-color: var(--scheduler-accent-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2);\n outline: none;\n}\n.form-custom-select .form-custom-select-trigger .selected-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n text-align: left;\n}\n.form-custom-select .form-custom-select-trigger .arrow {\n margin-left: 8px;\n font-size: 20px;\n transition: transform 0.2s ease;\n color: var(--scheduler-accent-color, #2196f3);\n}\n.form-custom-select.open .form-custom-select-trigger .arrow {\n transform: rotate(180deg);\n}\n.form-custom-select .form-custom-select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n max-height: 120px !important;\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: thin;\n scrollbar-color: var(--scheduler-accent-color, #2196f3) rgba(0, 0, 0, 0.05);\n}\n.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar {\n width: 8px;\n}\n.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n}\n.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 4px;\n opacity: 0.6;\n}\n.form-custom-select .form-custom-select-dropdown::-webkit-scrollbar-thumb:hover {\n opacity: 0.8;\n}\n.form-custom-select .form-custom-select-dropdown .form-custom-option {\n padding: 6px 10px;\n cursor: pointer;\n color: var(--scheduler-text-color, #333333);\n background: transparent;\n transition: all 0.2s ease;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n display: flex;\n align-items: center;\n min-height: 28px;\n max-height: 28px;\n height: 28px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.form-custom-select .form-custom-select-dropdown .form-custom-option:last-child {\n border-bottom: none;\n}\n.form-custom-select .form-custom-select-dropdown .form-custom-option:hover {\n background: var(--scheduler-hover-color) !important;\n color: var(--scheduler-text-color, #333333);\n transform: translateX(2px);\n}\n.form-custom-select .form-custom-select-dropdown .form-custom-option.selected {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-weight: 500;\n}\n.form-custom-select .form-custom-select-dropdown .form-custom-option.selected::after {\n content: \"āœ“\";\n margin-left: auto;\n font-size: 16px;\n}\n.form-custom-select .form-custom-select-dropdown .form-custom-option.selected:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n transform: none;\n}\n.form-custom-select .form-custom-select-dropdown .loading-more {\n padding: 8px 16px;\n text-align: center;\n color: var(--scheduler-accent-color, #2196f3);\n font-size: 12px;\n font-style: italic;\n}\n.form-custom-select .form-custom-select-dropdown .no-devices {\n padding: 16px;\n text-align: center;\n color: rgba(0, 0, 0, 0.5);\n font-style: italic;\n}\n\n.custom-time-picker {\n position: relative;\n}\n.custom-time-picker .time-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n.custom-time-picker .time-input-wrapper .time-input {\n width: 100%;\n padding: 8px 35px 8px 12px;\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n font-family: \"Courier New\", monospace;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.custom-time-picker .time-input-wrapper .time-input:hover {\n border-color: var(--scheduler-accent-color, #2196f3);\n background-color: rgba(33, 150, 243, 0.05);\n}\n.custom-time-picker .time-input-wrapper .time-input:focus, .custom-time-picker .time-input-wrapper .time-input.active {\n outline: none;\n border-color: var(--scheduler-accent-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2);\n background-color: rgba(33, 150, 243, 0.05);\n}\n.custom-time-picker .time-input-wrapper .time-input::placeholder {\n color: rgba(0, 0, 0, 0.4);\n}\n.custom-time-picker .time-input-wrapper .time-icon {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--scheduler-accent-color, #2196f3);\n font-size: 18px;\n pointer-events: none;\n transition: color 0.2s ease;\n}\n.custom-time-picker .time-picker-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n width: 280px;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 2000;\n padding: 12px;\n}\n.custom-time-picker .time-picker-dropdown.align-right {\n left: auto;\n right: 0;\n}\n.custom-time-picker .time-picker-dropdown .time-controls {\n display: flex;\n gap: 8px;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part {\n flex: 1;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part label {\n font-size: 11px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n margin-bottom: 4px;\n display: block;\n text-align: center;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options {\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 3px;\n max-height: 140px;\n overflow-y: auto;\n padding-right: 2px;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar {\n width: 6px;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n opacity: 0.6;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option {\n padding: 6px 8px;\n cursor: pointer;\n font-size: 13px;\n color: var(--scheduler-text-color, #333333);\n transition: background-color 0.2s ease;\n text-align: center;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option:last-child {\n border-bottom: none;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option:hover {\n background: var(--scheduler-hover-color) !important;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option.selected {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-weight: 500;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .time-options .time-option.selected:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector {\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--scheduler-border-color, #cccccc);\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector label {\n font-size: 10px;\n font-weight: 500;\n color: var(--scheduler-text-color, #666666);\n margin-bottom: 4px;\n display: block;\n text-align: center;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 4px;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn {\n padding: 4px 6px;\n font-size: 11px;\n border: 1px solid var(--scheduler-border-color, #cccccc);\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n border-radius: 3px;\n cursor: pointer;\n transition: all 0.2s ease;\n font-weight: 500;\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn:hover {\n background: var(--scheduler-hover-color);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.custom-time-picker .time-picker-dropdown .time-controls .time-part .minute-interval-selector .interval-buttons .interval-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n font-weight: 600;\n}\n\n.confirmation-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.4);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.confirmation-dialog {\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n padding: 0;\n min-width: 300px;\n max-width: 400px;\n animation: scaleIn 0.2s ease-out;\n}\n\n.dialog-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n.dialog-header .material-icons {\n color: var(--scheduler-accent-color, #2196f3);\n font-size: 24px;\n}\n.dialog-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n}\n\n.dialog-content {\n padding: 16px 20px;\n color: #666;\n line-height: 1.4;\n}\n.dialog-content .schedule-label {\n font-weight: 700;\n}\n.dialog-content .calendar-popup-content label {\n display: block;\n font-weight: 600;\n color: var(--scheduler-text-color, #333333);\n margin-bottom: 8px;\n font-size: 14px;\n}\n.dialog-content .calendar-popup-content .day-btn,\n.dialog-content .calendar-popup-content .month-btn,\n.dialog-content .calendar-popup-content .day-of-month-btn {\n cursor: default !important;\n pointer-events: none !important;\n}\n.dialog-content .calendar-popup-content .day-btn:hover,\n.dialog-content .calendar-popup-content .month-btn:hover,\n.dialog-content .calendar-popup-content .day-of-month-btn:hover {\n background: #f9f9f9 !important;\n color: var(--scheduler-text-color, #333333) !important;\n border-color: #ccc !important;\n}\n.dialog-content .calendar-popup-content .day-btn.active:hover,\n.dialog-content .calendar-popup-content .month-btn.active:hover,\n.dialog-content .calendar-popup-content .day-of-month-btn.active:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n border-color: var(--scheduler-accent-color, #2196f3) !important;\n}\n\n.dialog-actions {\n display: flex;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n justify-content: flex-end;\n}\n.dialog-actions button {\n padding: 8px 16px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: background-color 0.2s ease;\n}\n.dialog-actions button.cancel-btn {\n background: #f5f5f5;\n color: var(--scheduler-text-color, #666666);\n}\n.dialog-actions button.cancel-btn:hover {\n background: #e0e0e0;\n}\n.dialog-actions button.confirm-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n.dialog-actions button.confirm-btn:hover {\n background: var(--scheduler-accent-color, #1976d2);\n}\n\n@keyframes scaleIn {\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n.filter-options {\n position: absolute;\n top: 100%;\n right: 0;\n z-index: 1000;\n background: var(--scheduler-accent-color, #2196f3);\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 4px;\n padding: 8px 12px;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 12px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n.custom-checkbox {\n display: flex;\n align-items: center;\n cursor: pointer;\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-size: 12px;\n}\n.custom-checkbox input[type=checkbox] {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n}\n.custom-checkbox .checkmark {\n height: 16px;\n width: 16px;\n background-color: rgba(255, 255, 255, 0.9);\n border: 1px solid rgba(255, 255, 255, 0.5);\n border-radius: 3px;\n margin-right: 6px;\n position: relative;\n transition: all 0.2s ease;\n}\n.custom-checkbox .checkmark:after {\n content: \"\";\n position: absolute;\n display: none;\n left: 4px;\n top: 1px;\n width: 4px;\n height: 8px;\n border: solid var(--scheduler-secondary-text-color, #ffffff);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n}\n.custom-checkbox:hover .checkmark {\n background-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.6));\n border-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.8));\n}\n.custom-checkbox input:checked ~ .checkmark {\n background-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.9));\n border-color: var(--scheduler-hover-color, rgb(173, 216, 230));\n}\n.custom-checkbox input:checked ~ .checkmark:after {\n display: block;\n}\n.custom-checkbox .checkbox-label {\n user-select: none;\n}",".months-row {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(40px, 1fr));\n gap: 4px;\n margin-bottom: 8px;\n}\n.days-of-month-calendar {\n display: grid;\n grid-template-columns: repeat(7, minmax(14px, 38px));\n gap: 6px;\n //justify-content: center;\n}\n.month-btn {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid #ccc;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n cursor: pointer;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n margin: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s, color 0.2s;\n}\n.month-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.month-btn:hover {\n background: #e0e0e0;\n color: var(--scheduler-text-color, #333333);\n}\n.month-btn.active:hover {\n background: var(--scheduler-accent-color, #1976d2);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n\n// Month indicator for calendar popup (non-interactive)\n.month-indicator {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid #ccc;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n margin: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 40px;\n max-width: 50px;\n}\n\n// Active state for month indicator\n.month-indicator[style*=\"background: #2196f3\"] {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n border-color: var(--scheduler-accent-color, #2196f3) !important;\n}\n\n// Responsive toggle row\n.toggle-row-responsive {\n display: flex;\n gap: 16px;\n align-items: center;\n margin-bottom: 12px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.toggle-item {\n min-width: 120px;\n flex: 1 1 120px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.day-of-month-btn {\n aspect-ratio: 1;\n border-radius: 50%;\n padding: 0;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 500;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n border: 1px solid #ccc;\n cursor: pointer;\n transition: background 0.2s, color 0.2s;\n width: 100%;\n min-width: 24px;\n max-width: 100%;\n}\n\n@media (min-width: 768px) {\n .day-of-month-btn {\n font-size: 12px;\n }\n}\n\n@media (min-width: 1200px) {\n .day-of-month-btn {\n font-size: 13px;\n }\n}\n.day-of-month-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n}\n.day-of-month-btn:hover {\n background: #e0e0e0;\n color: var(--scheduler-text-color, #333333);\n}\n.day-of-month-btn.active:hover {\n background: var(--scheduler-accent-color, #1976d2);\n color: var(--scheduler-secondary-text-color, #ffffff);\n}\n\n// Day indicator for calendar popup (non-interactive)\n.day-indicator {\n aspect-ratio: 1;\n border-radius: 50%;\n padding: 0;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 500;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n border: 1px solid #ccc;\n width: 32px;\n height: 32px;\n min-width: 32px;\n}\n\n// Active state for day indicator\n.day-indicator[style*=\"background: #2196f3\"] {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n border-color: var(--scheduler-accent-color, #2196f3) !important;\n}\n\n.day-btn.round-btn {\n border-radius: 50%;\n width: 32px;\n height: 32px;\n padding: 0;\n margin: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n background: #e0e0e0;\n color: #333;\n border: 1px solid #bbb;\n transition: background 0.2s, color 0.2s;\n}\n.day-btn.round-btn.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: #fff;\n border: 2px solid var(--scheduler-accent-color, #2196f3);\n}\n\n// Days grid with two rows for up to 14 days\n.days-grid {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex-wrap: wrap;\n}\n.days-row {\n display: flex;\n flex-direction: row;\n gap: 4px;\n flex-wrap: wrap;\n}\n\n// Responsive months and days-of-month grid\n.months-grid-responsive, .days-of-month-grid-responsive {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 8px;\n}\n// Override Angular Material theme colors for this component\n.scheduler-container {\n position: relative;\n --mdc-theme-primary: var(--scheduler-accent-color) !important;\n --mdc-theme-surface: var(--scheduler-bg-color) !important;\n --mdc-theme-on-surface: var(--scheduler-text-color) !important;\n --mdc-theme-text-primary-on-background: var(--scheduler-text-color) !important;\n --mdc-filled-select-container-color: rgba(255, 255, 255, 0.2) !important;\n --mdc-filled-select-ink-color: var(--scheduler-text-color) !important;\n --mdc-select-ink-color: var(--scheduler-text-color) !important;\n --mdc-select-container-fill-color: rgba(255, 255, 255, 0.2) !important;\n --mdc-select-dropdown-icon-color: var(--scheduler-secondary-text-color, #ffffff) !important;\n --mdc-select-hover-container-fill-color: rgba(255, 255, 255, 0.3) !important;\n --mdc-select-focused-container-fill-color: var(--scheduler-accent-color) !important;\n --mdc-select-focused-ink-color: var(--scheduler-secondary-text-color, #ffffff) !important;\n --mdc-menu-container-shape: 4px !important;\n --mdc-menu-container-color: var(--scheduler-bg-color) !important;\n --mdc-menu-container-surface-tint-color: var(--scheduler-bg-color) !important;\n --mdc-menu-item-container-height: 48px !important;\n --mdc-menu-item-label-text-color: var(--scheduler-text-color) !important;\n --mdc-menu-item-selected-container-fill-color: var(--scheduler-accent-color) !important;\n --mdc-menu-item-selected-label-text-color: var(--scheduler-secondary-text-color, #ffffff) !important;\n --mdc-menu-item-hover-container-fill-color: var(--scheduler-hover-color) !important;\n\n // Main container layout\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 400px;\n font-size: 14px;\n}\n\n.scheduler-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-bottom: 1px solid var(--scheduler-border-color, #cccccc);\n\n .device-selector, .device-name {\n flex: none;\n\n .device-select {\n ::ng-deep .mat-mdc-select {\n background: rgba(255, 255, 255, 0.2) !important;\n border: 1px solid rgba(255, 255, 255, 0.3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n padding: 6px 8px !important;\n border-radius: 3px !important;\n cursor: pointer !important;\n min-width: 150px !important;\n display: flex !important;\n align-items: center !important;\n\n .mat-mdc-select-value {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n flex: 1 !important;\n }\n\n .mat-mdc-select-arrow {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n margin-left: 8px !important;\n }\n\n &:hover {\n background: rgba(255, 255, 255, 0.3) !important;\n\n .mat-mdc-select-arrow {\n color: var(--scheduler-accent-color) !important;\n }\n }\n\n &.mat-focused {\n background: var(--scheduler-accent-color) !important;\n border-color: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n\n .mat-mdc-select-value {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n\n .mat-mdc-select-arrow {\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n }\n }\n\n ::ng-deep .mat-mdc-select-panel {\n background: var(--scheduler-bg-color) !important;\n border: 1px solid var(--scheduler-border-color) !important;\n border-radius: 4px !important;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;\n\n .mat-mdc-option {\n color: var(--scheduler-text-color) !important;\n background: transparent !important;\n\n &.mdc-list-item--selected {\n background: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n\n &:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color) !important;\n background-color: var(--scheduler-hover-color) !important;\n }\n\n &.mdc-list-item--highlighted:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color) !important;\n background-color: var(--scheduler-hover-color) !important;\n }\n }\n\n .mat-mdc-select-panel-wrap {\n background: var(--scheduler-bg-color) !important;\n }\n\n .cdk-overlay-pane {\n background: var(--scheduler-bg-color) !important;\n }\n }\n\n // Override Angular Material theme colors\n ::ng-deep .mat-primary {\n .mat-mdc-option.mdc-list-item--selected {\n background: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n }\n }\n }\n}\n\n// Custom select panel styling\n::ng-deep .custom-select-panel {\n background: var(--scheduler-bg-color) !important;\n border: 1px solid var(--scheduler-border-color) !important;\n border-radius: 4px !important;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;\n\n .mat-mdc-option {\n color: var(--scheduler-text-color) !important;\n transition: background-color 0.2s ease !important;\n\n &.mdc-list-item--selected {\n background: var(--scheduler-accent-color) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n\n ::ng-deep &:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n }\n }\n}\n// Target all possible Material Design hover/focus states\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected),\n::ng-deep .mat-mdc-option.mdc-list-item--highlighted:not(.mdc-list-item--selected),\n::ng-deep .mat-option:hover:not(.mat-selected),\n::ng-deep .mat-option.mat-option-highlighted:not(.mat-selected) {\n background: var(--scheduler-hover-color) !important;\n background-color: var(--scheduler-hover-color) !important;\n}\n\n// Target MDC ripple effects\n::ng-deep .mat-mdc-option .mdc-list-item__ripple::before,\n::ng-deep .mat-mdc-option .mdc-list-item__ripple::after {\n background-color: var(--scheduler-hover-color) !important;\n}\n\n// Override the MDC ripple surface\n::ng-deep .mat-mdc-option:hover .mdc-list-item__ripple::before {\n opacity: 0.04 !important;\n background-color: var(--scheduler-hover-color) !important;\n}\n\n// Custom dropdown styles\n.custom-select {\n position: relative;\n min-width: 150px;\n\n .custom-select-trigger {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 6px 8px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: background-color 0.2s ease;\n\n &:hover:not(.disabled) {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .selected-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .arrow {\n margin-left: 8px;\n font-size: 18px;\n transition: transform 0.2s ease;\n }\n }\n\n &.open .custom-select-trigger .arrow {\n transform: rotate(180deg);\n }\n\n &.disabled .custom-select-trigger {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .custom-select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n z-index: 1000;\n max-height: 200px;\n overflow-y: auto;\n\n .custom-option {\n padding: 12px 16px;\n cursor: pointer;\n color: var(--scheduler-text-color, #333333);\n background: transparent;\n transition: background-color 0.2s ease;\n\n &:hover {\n background: var(--scheduler-hover-color) !important;\n color: var(--scheduler-text-color, #333333);\n }\n\n &.selected {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n }\n\n &.selected:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n }\n }\n}\n\n::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .mat-mdc-option:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .mat-mdc-option:hover {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n::ng-deep .mdc-list-item:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(173, 216, 230, 0.3)) !important;\n}\n\n\n\n.scheduler-container {\n .header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n\n button {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 6px;\n border-radius: 3px;\n cursor: pointer;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n &.active {\n background: rgba(76, 175, 80, 0.8);\n }\n\n &.status-btn, &.action-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n\n .material-icons {\n color: var(--scheduler-secondary-text-color, #ffffff);\n }\n\n &:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n &.active {\n background: var(--scheduler-accent-color, #2196f3);\n border: 1px solid var(--scheduler-accent-color, #2196f3);\n\n .material-icons {\n color: var(--scheduler-secondary-text-color, #ffffff);\n }\n }\n }\n }\n\n .filter-menu {\n position: relative;\n\n .filter-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 8px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n z-index: 1000;\n min-width: 120px;\n\n label {\n display: block;\n color: #333;\n font-size: 12px;\n margin-bottom: 4px;\n cursor: pointer;\n\n input[type=\"checkbox\"] {\n margin-right: 6px;\n }\n }\n }\n }\n\n // Inline filter and settings sections\n .filter-section, .settings-section {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n\n .filter-btn, .settings-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 6px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n\n &:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n &.active {\n background: rgba(76, 175, 80, 0.8);\n }\n }\n\n // Settings dropdown container\n .settings-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n z-index: 1000;\n margin-top: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n }\n\n .settings-option {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border: 1px solid rgba(255, 255, 255, 0.3);\n padding: 6px 12px;\n border-radius: 3px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n }\n\n .material-icons {\n font-size: 14px;\n }\n }\n\n .edit-mode-actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 12px;\n\n .action-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n width: 32px;\n height: 32px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .material-icons {\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-size: 18px;\n }\n\n &:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .save-btn {\n background: var(--scheduler-accent-color, #2196f3);\n border: 1px solid var(--scheduler-accent-color, #2196f3);\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n border-color: var(--scheduler-accent-color, #1976d2);\n }\n }\n }\n }\n }\n}\n\n.schedule-display {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n margin-top: 2px;\n}\n\n.device-mode, .overview-mode {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.device-scroll-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n\n // Custom scrollbar styling\n &::-webkit-scrollbar {\n width: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: var(--scheduler-accent-hover, #1976d2);\n }\n\n // Only add margin when scrollbar is present\n &.has-scrollbar {\n .header-row,\n .schedule-item {\n margin-right: 6px;\n }\n }\n}\n\n.overview-message {\n text-align: center;\n padding: 40px 20px;\n color: #666;\n font-style: italic;\n\n p {\n margin: 0;\n font-size: 14px;\n }\n}\n\n.schedule-headers {\n .header-row {\n display: grid;\n grid-template-columns: 30px 1fr 1fr 1fr 40px 40px;\n gap: 4px;\n padding: 6px 8px;\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-weight: 500;\n font-size: 12px;\n border-radius: 4px 4px 0 0;\n\n .header-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.schedule-num {\n justify-content: center;\n }\n\n &.device-name {\n justify-content: flex-start;\n }\n\n &.actions {\n justify-content: flex-end;\n }\n }\n }\n}\n\n.schedule-list {\n // No scrolling properties - handled by parent device-scroll-container\n\n .schedule-item {\n border: 1px solid var(--scheduler-border-color, #e0e0e0);\n border-radius: 0;\n margin-bottom: 0;\n border-bottom: none;\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n\n // First item gets top border radius\n &:first-child {\n border-radius: 0 0 0 0;\n }\n\n // Last item gets bottom border radius and border\n &:last-child {\n border-radius: 0 0 4px 4px;\n border-bottom: 1px solid var(--scheduler-border-color, #e0e0e0);\n }\n\n &:hover {\n background: var(--scheduler-hover-color, #f5f5f5);\n\n .schedule-main-row {\n background: var(--scheduler-hover-color, #f5f5f5);\n }\n }\n\n &.disabled {\n opacity: 0.6;\n background: #f9f9f9;\n }\n\n &.read-only {\n cursor: default !important;\n pointer-events: none !important;\n opacity: 0.7;\n position: relative;\n\n // Add visual indicator that item is read-only\n &::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(128, 128, 128, 0.05);\n pointer-events: none;\n }\n\n .schedule-main-row {\n cursor: default !important;\n pointer-events: none !important;\n }\n\n &:hover {\n background: var(--scheduler-bg-color, #ffffff);\n\n .schedule-main-row {\n background: var(--scheduler-bg-color, #ffffff);\n }\n }\n }\n\n .schedule-main-row {\n display: grid;\n grid-template-columns: 30px 1fr 1fr 1fr 40px 40px;\n gap: 4px;\n padding: 6px 8px;\n align-items: center;\n font-size: 14px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n > * {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .schedule-number {\n justify-content: center;\n }\n\n .start-time, .end-time, .duration {\n justify-content: center;\n }\n\n // Small am/pm indicator in 12hr format\n .start-time, .end-time {\n ::ng-deep .time-period {\n font-size: 0.7em;\n opacity: 0.7;\n margin-left: 1px;\n font-weight: 400;\n }\n }\n\n .status-switch {\n justify-content: center;\n }\n\n .actions {\n justify-content: flex-end;\n\n .delete-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border: none;\n border-radius: 3px;\n padding: 3px 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n }\n\n .material-icons, .material-icons-outlined {\n font-size: 14px;\n }\n }\n }\n }\n\n .calendar-view-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border: none;\n border-radius: 3px;\n padding: 6px 48px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n }\n\n .material-icons {\n font-size: 14px;\n margin-right: 4px;\n }\n\n .calendar-btn-text {\n font-size: 11px;\n font-weight: 500;\n white-space: nowrap;\n }\n }\n\n .schedule-number {\n font-weight: bold;\n color: var(--scheduler-accent-color, #2196f3);\n }\n\n .device-name {\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--scheduler-text-color, #333333);\n }\n\n .start-time, .end-time {\n font-family: 'Courier New', monospace;\n font-size: 13px;\n color: var(--scheduler-text-color, #333333);\n }\n\n .duration {\n font-size: 12px;\n color: var(--scheduler-text-color, #333333);\n }\n\n .status-switch {\n display: flex;\n justify-content: center;\n }\n\n .actions {\n display: flex;\n gap: 4px;\n justify-content: flex-end;\n\n button {\n padding: 4px 8px;\n border: 1px solid #ccc;\n border-radius: 3px;\n cursor: pointer;\n font-size: 11px;\n\n &.edit-btn {\n background: #e3f2fd;\n border-color: #2196f3;\n color: #1976d2;\n\n &:hover {\n background: #bbdefb;\n }\n }\n\n &.delete-btn {\n background: #ffebee;\n border-color: #f44336;\n color: #d32f2f;\n\n &:hover {\n background: #ffcdd2;\n }\n }\n }\n }\n }\n\n .days-display {\n display: flex;\n gap: 3px;\n justify-content: center;\n padding: 6px 8px 8px 8px;\n\n .day-circle {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 9px;\n font-weight: 500;\n background: var(--scheduler-border-color, #cccccc);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n color: var(--scheduler-text-color, #333333);\n\n &.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n }\n }\n }\n\n .calendar-display {\n display: flex;\n justify-content: center;\n padding: 6px 8px 8px 8px;\n }\n\n .schedule-days-row {\n padding: 8px 12px 12px 12px;\n\n .days-display {\n display: flex;\n gap: 4px;\n justify-content: center;\n\n .day-circle {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: bold;\n background: var(--scheduler-border-color, #cccccc);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n color: var(--scheduler-text-color, #333333);\n\n &.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n }\n }\n }\n }\n }\n\n.overview-scroll-container {\n flex: 1;\n overflow-y: auto;\n\n // Custom scrollbar styling - only visible when scrolling\n &::-webkit-scrollbar {\n width: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n }\n }\n\n // Hide scrollbar track when not needed\n &::-webkit-scrollbar-corner {\n background: transparent;\n }\n\n // Only add margin when scrollbar is present\n &.has-scrollbar {\n .header-row,\n .schedule-item,\n .device-header {\n margin-right: 6px;\n }\n }\n}\n\n// Toggle Switch Styles\n.switch {\n position: relative;\n display: inline-block;\n width: 40px;\n height: 20px;\n\n input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n\n .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--scheduler-border-color, #cccccc);\n transition: .4s;\n border-radius: 20px;\n\n &:before {\n position: absolute;\n content: \"\";\n height: 16px;\n width: 16px;\n left: 2px;\n bottom: 2px;\n background-color: var(--scheduler-secondary-text-color, #ffffff);\n transition: .4s;\n border-radius: 50%;\n }\n }\n\n input:checked + .slider {\n background-color: var(--scheduler-accent-color, #2196f3);\n }\n\n input:checked + .slider:before {\n transform: translateX(20px);\n }\n}\n\n// Device assignment form styling\n.device-assignment {\n margin-bottom: 16px;\n\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: var(--scheduler-text-color);\n margin-bottom: 4px;\n }\n\n select {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--scheduler-border-color);\n border-radius: 4px;\n background: var(--scheduler-bg-color);\n color: var(--scheduler-text-color);\n font-size: 14px;\n\n &:focus {\n outline: none;\n border-color: var(--scheduler-accent-color);\n }\n }\n}\n\n// Form styles\n.schedule-form {\n max-height: calc(100vh - 600px);\n overflow-y: auto;\n overflow-x: visible;\n padding: 16px 16px 200px 16px;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n color: var(--scheduler-text-color, #333333);\n\n // Custom scrollbar styling for the form\n &::-webkit-scrollbar {\n width: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: var(--scheduler-accent-hover, #1976d2);\n }\n\n h3 {\n margin: 0 0 16px 0;\n color: var(--scheduler-accent-color, #2196f3);\n }\n\n .form-row {\n margin-bottom: 12px;\n\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 4px;\n color: var(--scheduler-text-color, #333333);\n }\n\n input, select {\n width: 100%;\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 3px;\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n\n &:focus {\n outline: none;\n border-color: var(--scheduler-accent-color, #2196f3);\n }\n }\n }\n\n .recurring-toggle {\n margin-bottom: 16px;\n padding: 12px;\n background: rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.05);\n border: 1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.2);\n border-radius: 4px;\n\n .toggle-label {\n display: flex;\n flex-direction: row;\n gap: 8px;\n margin: 0;\n pointer-events: none;\n align-items: center;\n justify-content: center;\n\n .toggle-text {\n font-size: 12px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n cursor: default;\n }\n\n .toggle-switch-container {\n display: flex;\n align-items: center;\n gap: 12px;\n\n .switch {\n flex-shrink: 0;\n cursor: pointer;\n pointer-events: auto;\n\n .slider {\n cursor: pointer;\n }\n }\n\n .toggle-description {\n font-size: 11px;\n color: var(--scheduler-text-color, #666666);\n font-style: italic;\n cursor: default;\n }\n }\n }\n }\n\n .toggle-row-horizontal {\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n padding: 12px;\n background: rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.05);\n border: 1px solid rgba(var(--scheduler-accent-color-rgb, 33, 150, 243), 0.2);\n border-radius: 4px;\n\n .toggle-item {\n flex: 1;\n\n .toggle-label {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n\n .toggle-text {\n font-size: 12px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n white-space: nowrap;\n }\n\n .toggle-switch-container {\n display: flex;\n align-items: center;\n\n .switch {\n cursor: pointer;\n }\n }\n }\n }\n }\n\n .days-selection {\n margin-bottom: 16px;\n\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 8px;\n }\n\n .days-grid {\n display: flex;\n gap: 4px;\n margin-bottom: 8px;\n\n .day-btn {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid #ccc;\n background: #f9f9f9;\n color: var(--scheduler-text-color, #333333);\n cursor: pointer;\n border-radius: 3px;\n font-size: 11px;\n\n &.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n }\n\n &:hover {\n background: #e0e0e0;\n color: var(--scheduler-text-color, #333333);\n\n &.active {\n background: var(--scheduler-accent-color, #1976d2);\n color: var(--scheduler-secondary-text-color, #ffffff);\n }\n }\n }\n }\n\n .select-all-btn {\n width: 100%;\n padding: 6px;\n border: 1px solid var(--scheduler-border-color, #cccccc);\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n cursor: pointer;\n border-radius: 3px;\n font-size: 11px;\n\n &:hover {\n background: var(--scheduler-hover-bg, #f5f5f5);\n }\n }\n }\n\n .form-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n\n button {\n padding: 8px 16px;\n border: 1px solid #ccc;\n border-radius: 3px;\n cursor: pointer;\n\n &.cancel-btn {\n background: #f5f5f5;\n color: var(--scheduler-text-color, #333333);\n\n &:hover {\n background: #e0e0e0;\n }\n }\n\n &.save-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n }\n }\n }\n }\n}\n\n// Empty state\n.empty-schedule {\n text-align: center;\n padding: 32px;\n color: #666;\n font-style: italic;\n}\n\n// Overview mode\n.device-group {\n\n .device-header {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n padding: 8px 12px;\n margin: 0 0 0 0;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n font-weight: 500;\n }\n\n // Mode section tables (Timer Mode and Event Mode)\n .mode-section {\n margin-bottom: 1px;\n\n .schedule-headers .header-row {\n // Lighter shade of accent color for mode table headers\n background: color-mix(in srgb, var(--scheduler-accent-color, #2196f3) 70%, white 30%);\n }\n }\n}\n\n// Editor placeholder\n.editor-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #666;\n\n .material-icons {\n font-size: 48px;\n margin-bottom: 8px;\n }\n\n p {\n margin: 0 0 4px 0;\n font-size: 16px;\n font-weight: 500;\n }\n\n small {\n font-size: 12px;\n opacity: 0.7;\n }\n}\n\n// Global override for dropdown panel background - applied to entire component\n::ng-deep .cdk-overlay-pane .mat-mdc-select-panel {\n background: var(--scheduler-bg-color, #ffffff) !important;\n\n .mat-mdc-option {\n background: transparent !important;\n color: var(--scheduler-text-color, #333333) !important;\n\n &:hover:not(.mdc-list-item--selected) {\n background: var(--scheduler-hover-color, rgba(0, 0, 0, 0.1)) !important;\n }\n\n &.mdc-list-item--selected {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n }\n}\n\n// Form custom dropdown styles\n.form-custom-select {\n position: relative;\n width: 100%;\n\n &.error .form-custom-select-trigger {\n border-color: #f44336;\n background-color: rgba(244, 67, 54, 0.1);\n }\n\n .form-custom-select-trigger {\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n color: var(--scheduler-text-color, #333333);\n padding: 4px 8px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: all 0.2s ease;\n min-height: 28px;\n max-height: 28px;\n height: 28px;\n\n &:hover {\n border-color: var(--scheduler-accent-color, #2196f3);\n background-color: rgba(33, 150, 243, 0.05);\n }\n\n &:focus-within {\n border-color: var(--scheduler-accent-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2);\n outline: none;\n }\n\n .selected-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n text-align: left;\n }\n\n .arrow {\n margin-left: 8px;\n font-size: 20px;\n transition: transform 0.2s ease;\n color: var(--scheduler-accent-color, #2196f3);\n }\n }\n\n &.open .form-custom-select-trigger .arrow {\n transform: rotate(180deg);\n }\n\n .form-custom-select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 1001;\n max-height: 120px !important;\n overflow-y: auto;\n overflow-x: hidden;\n\n // Enhanced scrollbar styling\n &::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-track {\n background: rgba(0,0,0,0.05);\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 4px;\n opacity: 0.6;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n opacity: 0.8;\n }\n\n scrollbar-width: thin;\n scrollbar-color: var(--scheduler-accent-color, #2196f3) rgba(0,0,0,0.05);\n\n .form-custom-option {\n padding: 6px 10px;\n cursor: pointer;\n color: var(--scheduler-text-color, #333333);\n background: transparent;\n transition: all 0.2s ease;\n border-bottom: 1px solid rgba(0,0,0,0.05);\n display: flex;\n align-items: center;\n min-height: 28px;\n max-height: 28px;\n height: 28px;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: var(--scheduler-hover-color) !important;\n color: var(--scheduler-text-color, #333333);\n transform: translateX(2px);\n }\n\n &.selected {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-weight: 500;\n\n &::after {\n content: 'āœ“';\n margin-left: auto;\n font-size: 16px;\n }\n }\n\n &.selected:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n transform: none;\n }\n\n // Long device name handling\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Loading state for many devices\n .loading-more {\n padding: 8px 16px;\n text-align: center;\n color: var(--scheduler-accent-color, #2196f3);\n font-size: 12px;\n font-style: italic;\n }\n\n // Empty state\n .no-devices {\n padding: 16px;\n text-align: center;\n color: rgba(0,0,0,0.5);\n font-style: italic;\n }\n }\n}\n\n// Custom time picker styles\n.custom-time-picker {\n position: relative;\n\n .time-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n\n .time-input {\n width: 100%;\n padding: 8px 35px 8px 12px;\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n font-family: 'Courier New', monospace;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s ease;\n\n &:hover {\n border-color: var(--scheduler-accent-color, #2196f3);\n background-color: rgba(33, 150, 243, 0.05);\n }\n\n &:focus, &.active {\n outline: none;\n border-color: var(--scheduler-accent-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2);\n background-color: rgba(33, 150, 243, 0.05);\n }\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.4);\n }\n }\n\n .time-icon {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--scheduler-accent-color, #2196f3);\n font-size: 18px;\n pointer-events: none;\n transition: color 0.2s ease;\n }\n }\n\n .time-picker-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n width: 280px;\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 2000;\n padding: 12px;\n\n // Ensure it doesn't go off screen\n &.align-right {\n left: auto;\n right: 0;\n }\n\n .time-controls {\n display: flex;\n gap: 8px;\n\n .time-part {\n flex: 1;\n\n label {\n font-size: 11px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n margin-bottom: 4px;\n display: block;\n text-align: center;\n }\n\n .time-options {\n background: var(--scheduler-bg-color, #ffffff);\n border: 1px solid var(--scheduler-border-color, #cccccc);\n border-radius: 3px;\n max-height: 140px;\n overflow-y: auto;\n padding-right: 2px;\n\n // Custom scrollbar for time options\n &::-webkit-scrollbar {\n width: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: rgba(0,0,0,0.05);\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--scheduler-accent-color, #2196f3);\n border-radius: 3px;\n opacity: 0.6;\n }\n\n .time-option {\n padding: 6px 8px;\n cursor: pointer;\n font-size: 13px;\n color: var(--scheduler-text-color, #333333);\n transition: background-color 0.2s ease;\n text-align: center;\n border-bottom: 1px solid rgba(0,0,0,0.05);\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: var(--scheduler-hover-color) !important;\n }\n\n &.selected {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-weight: 500;\n }\n\n &.selected:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n }\n }\n }\n\n .minute-interval-selector {\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--scheduler-border-color, #cccccc);\n\n label {\n font-size: 10px;\n font-weight: 500;\n color: var(--scheduler-text-color, #666666);\n margin-bottom: 4px;\n display: block;\n text-align: center;\n }\n\n .interval-buttons {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 4px;\n\n .interval-btn {\n padding: 4px 6px;\n font-size: 11px;\n border: 1px solid var(--scheduler-border-color, #cccccc);\n background: var(--scheduler-bg-color, #ffffff);\n color: var(--scheduler-text-color, #333333);\n border-radius: 3px;\n cursor: pointer;\n transition: all 0.2s ease;\n font-weight: 500;\n\n &:hover {\n background: var(--scheduler-hover-color);\n border-color: var(--scheduler-accent-color, #2196f3);\n }\n\n &.active {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n border-color: var(--scheduler-accent-color, #2196f3);\n font-weight: 600;\n }\n }\n }\n }\n }\n }\n }\n}\n\n// Confirmation Dialog Styles\n.confirmation-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.4);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.confirmation-dialog {\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n padding: 0;\n min-width: 300px;\n max-width: 400px;\n animation: scaleIn 0.2s ease-out;\n}\n\n.dialog-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n\n .material-icons {\n color: var(--scheduler-accent-color, #2196f3);\n font-size: 24px;\n }\n\n h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 500;\n color: var(--scheduler-text-color, #333333);\n }\n}\n\n.dialog-content {\n padding: 16px 20px;\n color: #666;\n line-height: 1.4;\n\n .schedule-label {\n font-weight: 700;\n }\n\n .calendar-popup-content {\n label {\n display: block;\n font-weight: 600;\n color: var(--scheduler-text-color, #333333);\n margin-bottom: 8px;\n font-size: 14px;\n }\n\n // Disable hover effects and cursor for popup indicators\n .day-btn,\n .month-btn,\n .day-of-month-btn {\n cursor: default !important;\n pointer-events: none !important;\n\n &:hover {\n background: #f9f9f9 !important;\n color: var(--scheduler-text-color, #333333) !important;\n border-color: #ccc !important;\n }\n\n &.active:hover {\n background: var(--scheduler-accent-color, #2196f3) !important;\n color: var(--scheduler-secondary-text-color, #ffffff) !important;\n border-color: var(--scheduler-accent-color, #2196f3) !important;\n }\n }\n }\n}\n\n.dialog-actions {\n display: flex;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n justify-content: flex-end;\n\n button {\n padding: 8px 16px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: background-color 0.2s ease;\n\n &.cancel-btn {\n background: #f5f5f5;\n color: var(--scheduler-text-color, #666666);\n\n &:hover {\n background: #e0e0e0;\n }\n }\n\n &.confirm-btn {\n background: var(--scheduler-accent-color, #2196f3);\n color: var(--scheduler-secondary-text-color, #ffffff);\n\n &:hover {\n background: var(--scheduler-accent-color, #1976d2);\n }\n }\n }\n}\n\n@keyframes scaleIn {\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n// Custom Checkbox Styles\n.filter-options {\n position: absolute;\n top: 100%;\n right: 0;\n z-index: 1000;\n background: var(--scheduler-accent-color, #2196f3);\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 4px;\n padding: 8px 12px;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 12px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n.custom-checkbox {\n display: flex;\n align-items: center;\n cursor: pointer;\n color: var(--scheduler-secondary-text-color, #ffffff);\n font-size: 12px;\n\n input[type=\"checkbox\"] {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n }\n\n .checkmark {\n height: 16px;\n width: 16px;\n background-color: rgba(255, 255, 255, 0.9);\n border: 1px solid rgba(255, 255, 255, 0.5);\n border-radius: 3px;\n margin-right: 6px;\n position: relative;\n transition: all 0.2s ease;\n\n &:after {\n content: \"\";\n position: absolute;\n display: none;\n left: 4px;\n top: 1px;\n width: 4px;\n height: 8px;\n border: solid var(--scheduler-secondary-text-color, #ffffff);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n }\n\n &:hover .checkmark {\n background-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.6));\n border-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.8));\n }\n\n input:checked ~ .checkmark {\n background-color: var(--scheduler-hover-color, rgba(173, 216, 230, 0.9));\n border-color: var(--scheduler-hover-color, rgba(173, 216, 230, 1));\n\n &:after {\n display: block;\n }\n }\n\n .checkbox-label {\n user-select: none;\n }\n}\n\n\n"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 6776: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-switch/html-switch-property/html-switch-property.component.scss?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 740px; + position: relative; +} +:host .container .input-radius input { + width: 80px; +} +:host .container .input-font-size input { + width: 80px; +} +:host .container .input-font mat-select { + width: 160px; +} +:host .field-row { + display: block; + margin-bottom: 5px; +} +:host .slider-field span { + padding-left: 2px; + text-overflow: clip; + width: 150px; + white-space: nowrap; + overflow: hidden; +} +:host .slider-field mat-slider { + background-color: var(--formSliderBackground); + height: 29px; +} +:host .slider-small > .mat-slider-horizontal { + min-width: 80px; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; +} +:host .mat-tab-container { + min-height: 300px; + height: 60vmin; + overflow-y: auto; + overflow-x: hidden; + padding-top: 15px; +} +:host .mat-tab-container > div { + display: block; +} +:host .toolbox { + float: right; + line-height: 44px; +} +:host .toolbox button { + /* margin-right: 8px; */ + margin-left: 10px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-switch/html-switch-property/html-switch-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-switch/html-switch-property/html-switch-property.component.scss"],"names":[],"mappings":"AAEI;EACI,YAAA;EACA,kBAAA;ACDR;ADMY;EACI,WAAA;ACJhB;ADOQ;EACI,WAAA;ACLZ;ADQQ;EACI,YAAA;ACNZ;ADUI;EACI,cAAA;EACA,kBAAA;ACRR;ADWI;EACI,iBAAA;EACA,mBAAA;EACA,YAAA;EACA,mBAAA;EACA,gBAAA;ACTR;ADYI;EACI,6CAAA;EACA,YAAA;ACVR;ADaI;EACI,eAAA;ACXR;ADcI;EACI,uBAAA;ACZR;ADeI;EACI,iBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,iBAAA;ACbR;ADgBI;EACI,cAAA;ACdR;ADiBI;EACI,YAAA;EACA,iBAAA;ACfR;ADgBQ;EACI,uBAAA;EACA,iBAAA;ACdZ","sourcesContent":[":host {\n\n .container {\n width: 740px;\n position: relative;\n \n .input-radius {\n // margin-left: 60px;\n \n input {\n width: 80px;\n }\n }\n .input-font-size input {\n width: 80px;\n }\n \n .input-font mat-select {\n width: 160px;\n }\n }\n \n .field-row {\n display: block;\n margin-bottom: 5px;\n }\n \n .slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n width: 150px;\n white-space: nowrap;\n overflow: hidden;\n }\n \n .slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 29px;\n }\n \n .slider-small > .mat-slider-horizontal {\n min-width: 80px;\n }\n \n ::ng-deep .mat-tab-label {\n height: 34px !important;\n }\n \n .mat-tab-container {\n min-height:300px;\n height:60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n }\n \n .mat-tab-container > div {\n display: block;\n }\n\n .toolbox {\n float: right;\n line-height: 44px;\n button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n }\n}\n",":host .container {\n width: 740px;\n position: relative;\n}\n:host .container .input-radius input {\n width: 80px;\n}\n:host .container .input-font-size input {\n width: 80px;\n}\n:host .container .input-font mat-select {\n width: 160px;\n}\n:host .field-row {\n display: block;\n margin-bottom: 5px;\n}\n:host .slider-field span {\n padding-left: 2px;\n text-overflow: clip;\n width: 150px;\n white-space: nowrap;\n overflow: hidden;\n}\n:host .slider-field mat-slider {\n background-color: var(--formSliderBackground);\n height: 29px;\n}\n:host .slider-small > .mat-slider-horizontal {\n min-width: 80px;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n}\n:host .mat-tab-container {\n min-height: 300px;\n height: 60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n}\n:host .mat-tab-container > div {\n display: block;\n}\n:host .toolbox {\n float: right;\n line-height: 44px;\n}\n:host .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 77636: +/*!********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/data-table/data-table.component.scss?ngResource ***! + \********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host ::ng-deep .mat-table { + /* background-color: transparent !important; */ + height: 100%; + overflow: auto; + /* display: grid; */ +} +:host ::ng-deep .mat-table::-webkit-scrollbar-track { + background: var(--row-bg); +} +:host ::ng-deep .mat-table::-webkit-scrollbar-thumb { + background: var(--header-bg); +} +:host .mat-header-row { + position: sticky; + z-index: 1; + padding-left: 10px; + padding-right: 5px; +} +:host .mat-row { + padding-left: 10px; + padding-right: 5px; +} +:host .data-table-header { + min-height: 0px; +} +:host .data-table-row { + min-height: 0px; +} +:host .mat-table.selectable .mat-row:hover { + background-color: rgba(0, 0, 0, 0.1) !important; +} +:host .table-toolbar { + min-height: 42px; + display: flex; + justify-content: space-between; + align-items: center; + line-height: normal; + flex-wrap: wrap; + gap: 5px; +} +:host .toolbar-left { + display: flex; + align-items: center; + gap: 10px; + min-width: 0; + flex-wrap: wrap; +} +:host .toolbar-right { + display: flex; + align-items: center; + gap: 2px; + padding-right: 10px; + justify-content: flex-start; + min-width: 0; + flex-wrap: wrap; +} +:host .data-table-paginator { + height: 42px; + background-color: transparent; + margin-right: -10px; + margin-left: auto; +} +:host .moka-toolbar-editor { + display: inline-block; + margin-left: 5px; + border: 0px; + height: 28px; + cursor: pointer; + vertical-align: middle; + line-height: 20px; + box-shadow: 1px 1px 3px -1px #888 !important; + min-width: 40px; +} +:host .moka-toolbar-select { + width: 100px; + line-height: 28px; + padding-left: 5px; +} +:host .moka-toolbar-button { + width: 40px; + padding: unset; +} +:host .moka-toolbar-button:hover:not([disabled]) { + background-color: rgba(0, 0, 0, 0.1) !important; +} +:host .my-form-field { + float: none !important; +} +:host ::ng-deep .data-table-paginator .mat-paginator-container { + min-height: unset; + height: 42px; + justify-content: flex-end; +} +:host ::ng-deep .data-table-paginator .mat-paginator-container .mat-paginator-page-size { + height: inherit; + margin: unset; + display: none; +} +:host ::ng-deep .data-table-paginator .mat-paginator-navigation-previous, +:host ::ng-deep .data-table-paginator .mat-paginator-navigation-next { + display: none; +} +:host ::ng-deep .data-table-paginator .mat-paginator-container .mat-paginator-page-size-select { + margin: unset; +} +:host ::ng-deep .dark-theme .mat-select-value { + color: inherit !important; +} +:host ::ng-deep .mat-select-trigger, :host .mat-select-value { + color: inherit !important; +} +:host ::ng-deep .left .mat-sort-header-container { + text-align: left; + justify-content: left; +} +:host ::ng-deep .center .mat-sort-header-container { + text-align: center; + justify-content: center; +} +:host ::ng-deep .right .mat-sort-header-container { + text-align: right; + justify-content: right; +} +:host .spinner { + position: absolute; + top: 50%; + left: calc(50% - 20px); +} +:host .small-icon-button { + width: 24px; + height: 24px; + line-height: 24px; +} +:host .small-icon-button .mat-icon { + width: 20px; + height: 20px; + line-height: 20px; +} +:host .small-icon-button .material-icons { + font-size: 20px; +} +:host .reload-btn { + position: absolute; + right: 10px; + top: 0px; + z-index: 9999; +} +:host .custom-disabled-button[disabled] { + color: inherit; +} +:host .custom-disabled-button[disabled] mat-icon { + color: inherit; + opacity: 0.2; +} + +.custom-select { + position: relative; + min-width: 120px; +} +.custom-select .custom-select-trigger { + background: rgba(255, 255, 255, 0.2); + border: 1px solid rgba(255, 255, 255, 0.3); + color: #ffffff; + padding: 6px 8px; + border-radius: 3px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: space-between; + transition: background-color 0.2s ease; +} +.custom-select .custom-select-trigger:hover:not(.disabled) { + background: rgba(0, 0, 0, 0.1) !important; +} +.custom-select .custom-select-trigger .selected-text { + flex: 1; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.custom-select .custom-select-trigger .arrow { + margin-left: 8px; + font-size: 18px; + transition: transform 0.2s ease; + color: inherit; +} +.custom-select.open .custom-select-trigger .arrow { + transform: rotate(180deg); +} +.custom-select.disabled .custom-select-trigger { + opacity: 0.6; + cursor: not-allowed; +} +.custom-select .custom-select-dropdown { + position: absolute; + top: 100%; + left: 0; + right: 0; + border: 1px solid #cccccc; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + z-index: 1000; + max-height: 200px; + overflow-y: auto; +} +.custom-select .custom-select-dropdown .custom-option { + padding: 8px 12px; + cursor: pointer; + transition: background-color 0.2s ease; +} +.custom-select .custom-select-dropdown .custom-option:hover { + background: rgba(0, 0, 0, 0.1); +} +.custom-select .custom-select-dropdown .custom-option.selected { + font-weight: bold; +} + +.my-form-field { + padding-left: 20px; +} + +.date-range { + width: 160px; + flex-shrink: 0; + padding-left: 10px; +} + +.date-range-inner { + display: flex; + align-items: center; + gap: 5px; +} + +.page-size { + width: 70px; + flex-shrink: 0; +} +.page-size .custom-select { + min-width: 60px; +} + +.data-table-paginator { + height: 42px; + background-color: transparent; +} + +.my-form-field input::placeholder { + color: var(--toolbar-color) !important; +} + +.my-form-field input::-webkit-input-placeholder { + color: var(--toolbar-color) !important; +} + +.my-form-field input::-moz-placeholder { + color: var(--toolbar-color) !important; +} + +.my-form-field input:-ms-input-placeholder { + color: var(--toolbar-color) !important; +} + +.my-form-field input:hover { + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important; + border: 1px solid rgba(0, 0, 0, 0.3) !important; +} + +.my-form-field input:focus { + border-color: rgba(0, 0, 0, 0.5) !important; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-table/data-table/data-table.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-table/data-table/data-table.component.scss"],"names":[],"mappings":"AACI;EACI,8CAAA;EACA,YAAA;EACA,cAAA;EACA,mBAAA;ACAR;ADEQ;EACI,yBAAA;ACAZ;ADGQ;EACI,4BAAA;ACDZ;ADKI;EACI,gBAAA;EACA,UAAA;EACA,kBAAA;EACA,kBAAA;ACHR;ADMI;EACI,kBAAA;EACA,kBAAA;ACJR;ADOI;EACI,eAAA;ACLR;ADQI;EACI,eAAA;ACNR;ADSI;EACI,+CAAA;ACPR;ADUI;EACI,gBAAA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,mBAAA;EACA,eAAA;EACA,QAAA;ACRR;ADWI;EACI,aAAA;EACA,mBAAA;EACA,SAAA;EACA,YAAA;EACA,eAAA;ACTR;ADYI;EACI,aAAA;EACA,mBAAA;EACA,QAAA;EACA,mBAAA;EACA,2BAAA;EACA,YAAA;EACA,eAAA;ACVR;ADaI;EACI,YAAA;EACA,6BAAA;EACA,mBAAA;EACA,iBAAA;ACXR;ADcI;EACI,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,sBAAA;EACA,iBAAA;EACA,4CAAA;EACA,eAAA;ACZR;ADcI;EACI,YAAA;EACA,iBAAA;EACA,iBAAA;ACZR;ADeI;EACI,WAAA;EACA,cAAA;ACbR;ADeQ;EACI,+CAAA;ACbZ;ADiBI;EACI,sBAAA;ACfR;ADkBI;EACI,iBAAA;EACA,YAAA;EACA,yBAAA;AChBR;ADmBI;EACI,eAAA;EACA,aAAA;EACA,aAAA;ACjBR;ADoBI;;EAEI,aAAA;AClBR;ADqBI;EACI,aAAA;ACnBR;ADsBI;EACI,yBAAA;ACpBR;ADuBI;EACI,yBAAA;ACrBR;ADwBI;EACI,gBAAA;EACA,qBAAA;ACtBR;ADyBI;EACI,kBAAA;EACA,uBAAA;ACvBR;AD0BI;EACI,iBAAA;EACA,sBAAA;ACxBR;AD2BI;EACI,kBAAA;EACA,QAAA;EACA,sBAAA;ACzBR;AD4BI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;AC1BR;AD4BQ;EACI,WAAA;EACA,YAAA;EACA,iBAAA;AC1BZ;AD6BQ;EACI,eAAA;AC3BZ;AD+BI;EACI,kBAAA;EACA,WAAA;EACA,QAAA;EACA,aAAA;AC7BR;ADgCI;EACI,cAAA;AC9BR;ADgCQ;EACI,cAAA;EACA,YAAA;AC9BZ;;ADmCI;EACI,kBAAA;EACA,gBAAA;AChCR;ADkCQ;EACI,oCAAA;EACA,0CAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,sCAAA;AChCZ;ADkCY;EACI,yCAAA;AChChB;ADmCY;EACI,OAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;ACjChB;ADoCY;EACI,gBAAA;EACA,eAAA;EACA,+BAAA;EACA,cAAA;AClChB;ADsCQ;EACI,yBAAA;ACpCZ;ADuCQ;EACI,YAAA;EACA,mBAAA;ACrCZ;ADwCQ;EACI,kBAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,yBAAA;EACA,kBAAA;EACA,yCAAA;EACA,aAAA;EACA,iBAAA;EACA,gBAAA;ACtCZ;ADwCY;EACI,iBAAA;EACA,eAAA;EACA,sCAAA;ACtChB;ADwCgB;EACI,8BAAA;ACtCpB;ADyCgB;EACI,iBAAA;ACvCpB;;AD6CA;EACI,kBAAA;AC1CJ;;AD6CA;EACI,YAAA;EACA,cAAA;EACA,kBAAA;AC1CJ;;AD6CA;EACI,aAAA;EACA,mBAAA;EACA,QAAA;AC1CJ;;AD6CA;EACI,WAAA;EACA,cAAA;AC1CJ;AD4CI;EACI,eAAA;AC1CR;;AD8CA;EACI,YAAA;EACA,6BAAA;AC3CJ;;AD8CA;EACI,sCAAA;AC3CJ;;AD8CA;EACI,sCAAA;AC3CJ;;AD8CA;EACI,sCAAA;AC3CJ;;AD8CA;EACI,sCAAA;AC3CJ;;AD8CA;EACI,mDAAA;EACA,+CAAA;AC3CJ;;AD8CA;EACI,2CAAA;AC3CJ","sourcesContent":[":host {\n ::ng-deep .mat-table {\n /* background-color: transparent !important; */\n height: 100%;\n overflow: auto;\n /* display: grid; */\n\n &::-webkit-scrollbar-track {\n background: var(--row-bg);\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--header-bg);\n }\n }\n\n .mat-header-row {\n position: sticky;\n z-index: 1;\n padding-left: 10px;\n padding-right: 5px;\n }\n\n .mat-row {\n padding-left: 10px;\n padding-right: 5px;\n }\n\n .data-table-header {\n min-height: 0px;\n }\n\n .data-table-row {\n min-height: 0px;\n }\n\n .mat-table.selectable .mat-row:hover {\n background-color: rgba(0, 0, 0, 0.1) !important;\n }\n\n .table-toolbar {\n min-height: 42px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n line-height: normal;\n flex-wrap: wrap;\n gap: 5px;\n }\n\n .toolbar-left {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n flex-wrap: wrap;\n }\n\n .toolbar-right {\n display: flex;\n align-items: center;\n gap: 2px;\n padding-right: 10px;\n justify-content: flex-start;\n min-width: 0;\n flex-wrap: wrap;\n }\n\n .data-table-paginator {\n height: 42px;\n background-color: transparent;\n margin-right: -10px;\n margin-left: auto;\n }\n\n .moka-toolbar-editor {\n display: inline-block;\n margin-left:5px;\n border: 0px;\n height: 28px;\n cursor: pointer;\n vertical-align: middle;\n line-height: 20px;\n box-shadow: 1px 1px 3px -1px #888 !important;\n min-width: 40px;\n }\n .moka-toolbar-select {\n width: 100px;\n line-height: 28px;\n padding-left: 5px;\n }\n\n .moka-toolbar-button {\n width: 40px;\n padding: unset;\n\n &:hover:not([disabled]) {\n background-color: rgba(0, 0, 0, 0.1) !important;\n }\n }\n\n .my-form-field {\n float: none !important;\n }\n\n ::ng-deep .data-table-paginator .mat-paginator-container {\n min-height: unset;\n height: 42px;\n justify-content: flex-end;\n }\n\n ::ng-deep .data-table-paginator .mat-paginator-container .mat-paginator-page-size {\n height: inherit;\n margin: unset;\n display: none;\n }\n\n ::ng-deep .data-table-paginator .mat-paginator-navigation-previous,\n ::ng-deep .data-table-paginator .mat-paginator-navigation-next {\n display: none;\n }\n\n ::ng-deep .data-table-paginator .mat-paginator-container .mat-paginator-page-size-select {\n margin: unset;\n }\n\n ::ng-deep .dark-theme .mat-select-value {\n color: inherit !important;\n }\n\n ::ng-deep .mat-select-trigger,.mat-select-value {\n color: inherit !important;\n }\n\n ::ng-deep .left .mat-sort-header-container {\n text-align: left;\n justify-content: left;\n }\n\n ::ng-deep .center .mat-sort-header-container {\n text-align: center;\n justify-content: center;\n }\n\n ::ng-deep .right .mat-sort-header-container {\n text-align: right;\n justify-content: right;\n }\n\n .spinner {\n position: absolute;\n top: 50%;\n left: calc(50% - 20px);\n }\n\n .small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n\n .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n }\n\n .material-icons {\n font-size: 20px;\n }\n }\n\n .reload-btn {\n position: absolute;\n right: 10px;\n top: 0px;\n z-index: 9999;\n }\n\n .custom-disabled-button[disabled] {\n color: inherit;\n\n mat-icon {\n color: inherit;\n opacity: 0.2;\n }\n }\n}\n\n .custom-select {\n position: relative;\n min-width: 120px;\n\n .custom-select-trigger {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: #ffffff;\n padding: 6px 8px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: background-color 0.2s ease;\n\n &:hover:not(.disabled) {\n background: rgba(0, 0, 0, 0.1) !important;\n }\n\n .selected-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .arrow {\n margin-left: 8px;\n font-size: 18px;\n transition: transform 0.2s ease;\n color: inherit;\n }\n }\n\n &.open .custom-select-trigger .arrow {\n transform: rotate(180deg);\n }\n\n &.disabled .custom-select-trigger {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .custom-select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n border: 1px solid #cccccc;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n z-index: 1000;\n max-height: 200px;\n overflow-y: auto;\n\n .custom-option {\n padding: 8px 12px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n }\n\n &.selected {\n font-weight: bold;\n }\n }\n }\n }\n\n.my-form-field {\n padding-left: 20px;\n}\n\n.date-range {\n width: 160px;\n flex-shrink: 0;\n padding-left: 10px;\n}\n\n.date-range-inner {\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n.page-size {\n width: 70px;\n flex-shrink: 0;\n\n .custom-select {\n min-width: 60px;\n }\n}\n\n.data-table-paginator {\n height: 42px;\n background-color: transparent;\n}\n\n.my-form-field input::placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input::-webkit-input-placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input::-moz-placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input:-ms-input-placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input:hover {\n box-shadow: 0 2px 4px rgba(0,0,0,0.2) !important;\n border: 1px solid rgba(0,0,0,0.3) !important;\n}\n\n.my-form-field input:focus {\n border-color: rgba(0,0,0,0.5) !important;\n}\n\n\n",":host ::ng-deep .mat-table {\n /* background-color: transparent !important; */\n height: 100%;\n overflow: auto;\n /* display: grid; */\n}\n:host ::ng-deep .mat-table::-webkit-scrollbar-track {\n background: var(--row-bg);\n}\n:host ::ng-deep .mat-table::-webkit-scrollbar-thumb {\n background: var(--header-bg);\n}\n:host .mat-header-row {\n position: sticky;\n z-index: 1;\n padding-left: 10px;\n padding-right: 5px;\n}\n:host .mat-row {\n padding-left: 10px;\n padding-right: 5px;\n}\n:host .data-table-header {\n min-height: 0px;\n}\n:host .data-table-row {\n min-height: 0px;\n}\n:host .mat-table.selectable .mat-row:hover {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n:host .table-toolbar {\n min-height: 42px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n line-height: normal;\n flex-wrap: wrap;\n gap: 5px;\n}\n:host .toolbar-left {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n flex-wrap: wrap;\n}\n:host .toolbar-right {\n display: flex;\n align-items: center;\n gap: 2px;\n padding-right: 10px;\n justify-content: flex-start;\n min-width: 0;\n flex-wrap: wrap;\n}\n:host .data-table-paginator {\n height: 42px;\n background-color: transparent;\n margin-right: -10px;\n margin-left: auto;\n}\n:host .moka-toolbar-editor {\n display: inline-block;\n margin-left: 5px;\n border: 0px;\n height: 28px;\n cursor: pointer;\n vertical-align: middle;\n line-height: 20px;\n box-shadow: 1px 1px 3px -1px #888 !important;\n min-width: 40px;\n}\n:host .moka-toolbar-select {\n width: 100px;\n line-height: 28px;\n padding-left: 5px;\n}\n:host .moka-toolbar-button {\n width: 40px;\n padding: unset;\n}\n:host .moka-toolbar-button:hover:not([disabled]) {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n:host .my-form-field {\n float: none !important;\n}\n:host ::ng-deep .data-table-paginator .mat-paginator-container {\n min-height: unset;\n height: 42px;\n justify-content: flex-end;\n}\n:host ::ng-deep .data-table-paginator .mat-paginator-container .mat-paginator-page-size {\n height: inherit;\n margin: unset;\n display: none;\n}\n:host ::ng-deep .data-table-paginator .mat-paginator-navigation-previous,\n:host ::ng-deep .data-table-paginator .mat-paginator-navigation-next {\n display: none;\n}\n:host ::ng-deep .data-table-paginator .mat-paginator-container .mat-paginator-page-size-select {\n margin: unset;\n}\n:host ::ng-deep .dark-theme .mat-select-value {\n color: inherit !important;\n}\n:host ::ng-deep .mat-select-trigger, :host .mat-select-value {\n color: inherit !important;\n}\n:host ::ng-deep .left .mat-sort-header-container {\n text-align: left;\n justify-content: left;\n}\n:host ::ng-deep .center .mat-sort-header-container {\n text-align: center;\n justify-content: center;\n}\n:host ::ng-deep .right .mat-sort-header-container {\n text-align: right;\n justify-content: right;\n}\n:host .spinner {\n position: absolute;\n top: 50%;\n left: calc(50% - 20px);\n}\n:host .small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n:host .small-icon-button .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n}\n:host .small-icon-button .material-icons {\n font-size: 20px;\n}\n:host .reload-btn {\n position: absolute;\n right: 10px;\n top: 0px;\n z-index: 9999;\n}\n:host .custom-disabled-button[disabled] {\n color: inherit;\n}\n:host .custom-disabled-button[disabled] mat-icon {\n color: inherit;\n opacity: 0.2;\n}\n\n.custom-select {\n position: relative;\n min-width: 120px;\n}\n.custom-select .custom-select-trigger {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: #ffffff;\n padding: 6px 8px;\n border-radius: 3px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: background-color 0.2s ease;\n}\n.custom-select .custom-select-trigger:hover:not(.disabled) {\n background: rgba(0, 0, 0, 0.1) !important;\n}\n.custom-select .custom-select-trigger .selected-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.custom-select .custom-select-trigger .arrow {\n margin-left: 8px;\n font-size: 18px;\n transition: transform 0.2s ease;\n color: inherit;\n}\n.custom-select.open .custom-select-trigger .arrow {\n transform: rotate(180deg);\n}\n.custom-select.disabled .custom-select-trigger {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.custom-select .custom-select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n border: 1px solid #cccccc;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n max-height: 200px;\n overflow-y: auto;\n}\n.custom-select .custom-select-dropdown .custom-option {\n padding: 8px 12px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.custom-select .custom-select-dropdown .custom-option:hover {\n background: rgba(0, 0, 0, 0.1);\n}\n.custom-select .custom-select-dropdown .custom-option.selected {\n font-weight: bold;\n}\n\n.my-form-field {\n padding-left: 20px;\n}\n\n.date-range {\n width: 160px;\n flex-shrink: 0;\n padding-left: 10px;\n}\n\n.date-range-inner {\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n.page-size {\n width: 70px;\n flex-shrink: 0;\n}\n.page-size .custom-select {\n min-width: 60px;\n}\n\n.data-table-paginator {\n height: 42px;\n background-color: transparent;\n}\n\n.my-form-field input::placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input::-webkit-input-placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input::-moz-placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input:-ms-input-placeholder {\n color: var(--toolbar-color) !important;\n}\n\n.my-form-field input:hover {\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important;\n border: 1px solid rgba(0, 0, 0, 0.3) !important;\n}\n\n.my-form-field input:focus {\n border-color: rgba(0, 0, 0, 0.5) !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 29805: +/*!************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-alarms/table-alarms.component.scss?ngResource ***! + \************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + min-width: 680px; + min-height: 400px; +} +:host .container .alarm-column mat-checkbox { + font-size: 14px; + margin: 7px 30px 7px 10px; +} +:host .container .alarm-priority mat-checkbox { + font-size: 14px; + margin: 7px 30px 7px 10px; +} +:host .container .alarm-filter { + font-size: 16px; +} +:host .container .alarm-tags span { + display: inline-block; +} +:host .container .alarm-tags .add-tags { + float: right; +} +:host .container .alarm-tags .list-panel { + height: 200px; + overflow-x: hidden; +} +:host .container .alarm-tags .list-item { + display: block; + font-size: 14px; + height: 26px !important; + overflow: hidden; + padding-left: 10px; +} +:host .container .alarm-tags .list-item mat-icon { + font-size: 20px; +} +:host .container .alarm-tags .list-item span { + text-overflow: ellipsis; + overflow: hidden; +} +:host .container .alarm-tags .list-item-text { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +:host .container .alarm-tags .list-item-remove { + width: 20px; + max-width: 20px; + cursor: pointer; +} +:host .container .alarm-tags .list-item-name { + width: 50%; + max-width: 50%; +} +:host .container .alarm-tags .list-item-label { + width: 50%; + max-width: 50%; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-table/table-alarms/table-alarms.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-table/table-alarms/table-alarms.component.scss"],"names":[],"mappings":"AAEI;EACI,gBAAA;EACA,iBAAA;ACDR;ADIY;EACI,eAAA;EACA,yBAAA;ACFhB;ADMY;EACI,eAAA;EACA,yBAAA;ACJhB;ADQQ;EACI,eAAA;ACNZ;ADUY;EACI,qBAAA;ACRhB;ADUY;EACI,YAAA;ACRhB;ADWY;EACI,aAAA;EACA,kBAAA;ACThB;ADYY;EACI,cAAA;EACA,eAAA;EACA,uBAAA;EACA,gBAAA;EACA,kBAAA;ACVhB;ADaY;EACI,eAAA;ACXhB;ADcY;EACI,uBAAA;EACA,gBAAA;ACZhB;ADeY;EACI,mBAAA;EACA,uBAAA;EACA,gBAAA;ACbhB;ADgBY;EACI,WAAA;EACA,eAAA;EACA,eAAA;ACdhB;ADiBY;EACI,UAAA;EACA,cAAA;ACfhB;ADkBY;EACI,UAAA;EACA,cAAA;AChBhB","sourcesContent":[":host {\n\n .container {\n min-width: 680px;\n min-height: 400px;\n\n .alarm-column {\n mat-checkbox {\n font-size: 14px;\n margin: 7px 30px 7px 10px;\n }\n }\n .alarm-priority {\n mat-checkbox {\n font-size: 14px;\n margin: 7px 30px 7px 10px;\n }\n }\n\n .alarm-filter {\n font-size: 16px;\n }\n\n .alarm-tags {\n span {\n display: inline-block;\n }\n .add-tags {\n float: right;\n }\n\n .list-panel {\n height: 200px;\n overflow-x: hidden;\n }\n\n .list-item {\n display: block;\n font-size: 14px;\n height: 26px !important;\n overflow: hidden;\n padding-left: 10px;\n }\n\n .list-item mat-icon {\n font-size: 20px;\n }\n\n .list-item span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .list-item-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .list-item-remove {\n width: 20px;\n max-width: 20px;\n cursor: pointer;\n }\n\n .list-item-name {\n width: 50%;\n max-width: 50%;\n }\n\n .list-item-label {\n width: 50%;\n max-width: 50%;\n }\n }\n }\n}",":host .container {\n min-width: 680px;\n min-height: 400px;\n}\n:host .container .alarm-column mat-checkbox {\n font-size: 14px;\n margin: 7px 30px 7px 10px;\n}\n:host .container .alarm-priority mat-checkbox {\n font-size: 14px;\n margin: 7px 30px 7px 10px;\n}\n:host .container .alarm-filter {\n font-size: 16px;\n}\n:host .container .alarm-tags span {\n display: inline-block;\n}\n:host .container .alarm-tags .add-tags {\n float: right;\n}\n:host .container .alarm-tags .list-panel {\n height: 200px;\n overflow-x: hidden;\n}\n:host .container .alarm-tags .list-item {\n display: block;\n font-size: 14px;\n height: 26px !important;\n overflow: hidden;\n padding-left: 10px;\n}\n:host .container .alarm-tags .list-item mat-icon {\n font-size: 20px;\n}\n:host .container .alarm-tags .list-item span {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n:host .container .alarm-tags .list-item-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n:host .container .alarm-tags .list-item-remove {\n width: 20px;\n max-width: 20px;\n cursor: pointer;\n}\n:host .container .alarm-tags .list-item-name {\n width: 50%;\n max-width: 50%;\n}\n:host .container .alarm-tags .list-item-label {\n width: 50%;\n max-width: 50%;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 32849: +/*!********************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-customizer/table-customizer.component.scss?ngResource ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + /* ::ng-deep .customer-table .mat-table { + background-color: transparent !important; + overflow: auto; + display: block; + } */ +} +:host .toolbox-column { + z-index: 1000; + position: absolute; + right: 10px; + top: 40px; +} +:host .toolbox-column button { + /* margin-right: 8px; */ + margin-left: 10px; +} +:host .toolbox-row { + z-index: 1000; + position: absolute; + left: 0px; + bottom: -50px; +} +:host .toolbox-row button { + /* margin-right: 8px; */ + margin-left: 10px; +} +:host .data-table-header { + min-height: 0px; + /* background-color: darkgray; */ +} +:host .column-options { + margin-left: 10px; + margin-right: 20px; +} +:host .data-table-edit-row { + max-width: 40px; + min-width: 40px; + width: 40px; + height: 40px; + padding-left: 0px; + padding-right: 0px; + margin-left: -24px; +} +:host .data-table-cell { + white-space: nowrap; + overflow: hidden; +} +:host .variable-input { + display: block; + margin-top: 10px; +} +:host .table-menu-item { + font-size: 14px; +} + +::ng-deep .table-menu-item .mat-icon { + font-size: 20px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-table/table-customizer/table-customizer.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-table/table-customizer/table-customizer.component.scss"],"names":[],"mappings":"AAAA;EACI;;;;KAAA;ACKJ;ADCI;EACI,aAAA;EACA,kBAAA;EACA,WAAA;EACA,SAAA;ACCR;ADEI;EACI,uBAAA;EACA,iBAAA;ACAR;ADGI;EACI,aAAA;EACA,kBAAA;EACA,SAAA;EACA,aAAA;ACDR;ADII;EACI,uBAAA;EACA,iBAAA;ACFR;ADKI;EACI,eAAA;EACA,gCAAA;ACHR;ADMI;EACI,iBAAA;EACA,kBAAA;ACJR;ADOI;EACI,eAAA;EACA,eAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,kBAAA;ACLR;ADQI;EACI,mBAAA;EACA,gBAAA;ACNR;ADSI;EACI,cAAA;EACA,gBAAA;ACPR;ADUI;EACI,eAAA;ACRR;;ADWA;EACI,eAAA;ACRJ","sourcesContent":[":host {\n /* ::ng-deep .customer-table .mat-table {\n background-color: transparent !important;\n overflow: auto;\n display: block;\n } */\n\n .toolbox-column {\n z-index: 1000;\n position: absolute;\n right: 10px;\n top: 40px;\n }\n\n .toolbox-column button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n\n .toolbox-row {\n z-index: 1000;\n position: absolute;\n left: 0px;\n bottom: -50px;\n }\n\n .toolbox-row button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n\n .data-table-header {\n min-height: 0px;\n /* background-color: darkgray; */\n }\n\n .column-options {\n margin-left: 10px;\n margin-right: 20px;\n }\n\n .data-table-edit-row {\n max-width: 40px;\n min-width: 40px;\n width: 40px;\n height: 40px;\n padding-left: 0px;\n padding-right: 0px;\n margin-left: -24px;\n }\n\n .data-table-cell {\n white-space: nowrap;\n overflow: hidden;\n }\n\n .variable-input {\n display: block;\n margin-top: 10px;\n }\n\n .table-menu-item {\n font-size: 14px;\n }\n}\n::ng-deep .table-menu-item .mat-icon {\n font-size: 20px;\n}",":host {\n /* ::ng-deep .customer-table .mat-table {\n background-color: transparent !important;\n overflow: auto;\n display: block;\n } */\n}\n:host .toolbox-column {\n z-index: 1000;\n position: absolute;\n right: 10px;\n top: 40px;\n}\n:host .toolbox-column button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}\n:host .toolbox-row {\n z-index: 1000;\n position: absolute;\n left: 0px;\n bottom: -50px;\n}\n:host .toolbox-row button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}\n:host .data-table-header {\n min-height: 0px;\n /* background-color: darkgray; */\n}\n:host .column-options {\n margin-left: 10px;\n margin-right: 20px;\n}\n:host .data-table-edit-row {\n max-width: 40px;\n min-width: 40px;\n width: 40px;\n height: 40px;\n padding-left: 0px;\n padding-right: 0px;\n margin-left: -24px;\n}\n:host .data-table-cell {\n white-space: nowrap;\n overflow: hidden;\n}\n:host .variable-input {\n display: block;\n margin-top: 10px;\n}\n:host .table-menu-item {\n font-size: 14px;\n}\n\n::ng-deep .table-menu-item .mat-icon {\n font-size: 20px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 6130: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-property/table-property.component.scss?ngResource ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .table-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); + padding-top: 5px; +} +:host .table-selection .table-type { + width: 120px; +} +:host .table-selection .data-range { + width: 100px; +} +:host .table-selection .data-realtime { + width: 100px; +} +:host .table-selection .data-refresh-interval { + width: 120px; +} +:host .table-selection .data-refresh-interval input { + width: 80px; + margin-right: 5px; +} +:host .table-selection .data-refresh-interval .unit { + font-size: 12px; + color: #666; +} +:host .section-item { + width: 100%; +} +:host .section-item-newline { + margin-top: 5px; +} +:host .section-newline { + height: 8px; + display: block; +} +:host .section-item-block mat-select, :host input, :host span { + width: calc(100% - 15px); +} +:host .section-inline-name input { + width: 140px; +} +:host .section-inline-number input { + max-width: 100px; +} +:host .section-inline-type { + width: 160px; +} +:host .section-inline-toggle { + display: inline-block; + width: 60px; + text-align: center; +} +:host .section-inline-toggle span { + width: inherit; +} +:host .section-inline-toggle-ext span { + width: 85px; + text-align: left; +} +:host .section-inline-toggle-ext mat-slide-toggle { + padding-left: 20px; +} +:host .section-inline-color { + display: inline-block; + width: 60px; +} +:host .section-inline-color input { + width: 60px !important; + text-align: center; +} +:host .section-inline-color span { + width: 65px; +} +:host .section-inline-margin { + display: inline-block; + width: 12px; +} +:host .section-inline-margin2 { + display: inline-block; + width: 16px; +} +:host .toolbox { + z-index: 1000; + position: absolute; + right: 10px; + top: -8px; + line-height: 44px; +} +:host .toolbox button { + /* margin-right: 8px; */ + margin-left: 10px; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; + min-width: 110px !important; + width: 110px !important; +} +:host .tab-columns-rows { + width: calc(100% - 15px); +} +:host .cell-item { + padding-top: 5px; + padding-bottom: 5px; + border-bottom: 1px solid var(--toolboxBorder); +} +:host .events-section { + display: contents; +} +:host .events-section .event-item { + margin-top: 5px; +} +:host .events-section .event-type { + width: 120px; +} +:host .events-section .event-action { + width: 120px; +} +:host .events-section .event-remove { + float: right; +} +:host .events-section .event-action-ext { + padding-bottom: 10px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} +:host .events-section .event-script { + padding-left: 10px; +} +:host .events-section .event-script .script-selection { + width: calc(100% - 15px); +} +:host .events-section .event-script .event-script-param { + width: 120px; +} +:host .events-section .event-script .event-script-value { + width: calc(100% - 120px); +} +:host .events-section .event-script .event-script-tag { + width: calc(100% - 125px); +} +:host .events-toolbox { + display: block; + width: 100%; +} +:host .events-toolbox button { + margin-left: 10px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-table/table-property/table-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-table/table-property/table-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;EACA,gBAAA;ACAR;ADCQ;EACI,YAAA;ACCZ;ADEQ;EACI,YAAA;ACAZ;ADGQ;EACI,YAAA;ACDZ;ADIQ;EACI,YAAA;ACFZ;ADIY;EACI,WAAA;EACA,iBAAA;ACFhB;ADKY;EACI,eAAA;EACA,WAAA;ACHhB;ADQI;EACI,WAAA;ACNR;ADSI;EACI,eAAA;ACPR;ADUI;EACI,WAAA;EACA,cAAA;ACRR;ADWI;EACI,wBAAA;ACTR;ADYI;EACI,YAAA;ACVR;ADaI;EACI,gBAAA;ACXR;ADcI;EACI,YAAA;ACZR;ADeI;EACI,qBAAA;EACA,WAAA;EACA,kBAAA;ACbR;ADgBI;EACI,cAAA;ACdR;ADiBI;EACI,WAAA;EACA,gBAAA;ACfR;ADkBI;EACI,kBAAA;AChBR;ADmBI;EACI,qBAAA;EACA,WAAA;ACjBR;ADoBI;EACI,sBAAA;EACA,kBAAA;AClBR;ADqBI;EACI,WAAA;ACnBR;ADsBI;EACI,qBAAA;EACA,WAAA;ACpBR;ADuBI;EACI,qBAAA;EACA,WAAA;ACrBR;ADwBI;EACI,aAAA;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,iBAAA;ACtBR;ADyBI;EACI,uBAAA;EACA,iBAAA;ACvBR;AD0BI;EACI,uBAAA;EACA,2BAAA;EACA,uBAAA;ACxBR;AD2BI;EACI,wBAAA;ACzBR;AD4BI;EACI,gBAAA;EACA,mBAAA;EACA,6CAAA;AC1BR;AD6BI;EACI,iBAAA;AC3BR;AD6BQ;EACI,eAAA;AC3BZ;AD6BQ;EACI,YAAA;AC3BZ;AD6BQ;EACI,YAAA;AC3BZ;AD6BQ;EACI,YAAA;AC3BZ;AD6BQ;EACI,oBAAA;EACA,2CAAA;AC3BZ;AD6BQ;EACI,kBAAA;AC3BZ;AD4BY;EACI,wBAAA;AC1BhB;AD4BY;EACI,YAAA;AC1BhB;AD4BY;EACI,yBAAA;AC1BhB;AD4BY;EACI,yBAAA;AC1BhB;AD8BI;EACI,cAAA;EACA,WAAA;AC5BR;AD8BQ;EACI,iBAAA;AC5BZ","sourcesContent":[":host {\n .table-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n padding-top: 5px;\n .table-type {\n width: 120px;\n }\n\n .data-range {\n width: 100px;\n }\n\n .data-realtime {\n width: 100px;\n }\n\n .data-refresh-interval {\n width: 120px;\n \n input {\n width: 80px;\n margin-right: 5px;\n }\n \n .unit {\n font-size: 12px;\n color: #666;\n }\n }\n }\n\n .section-item {\n width: 100%;\n }\n\n .section-item-newline {\n margin-top: 5px;\n }\n\n .section-newline {\n height: 8px;\n display: block;\n }\n\n .section-item-block mat-select, input, span {\n width:calc(100% - 15px);\n }\n\n .section-inline-name input {\n width: 140px;\n }\n\n .section-inline-number input {\n max-width: 100px;\n }\n\n .section-inline-type {\n width: 160px;\n }\n\n .section-inline-toggle {\n display: inline-block;\n width: 60px;\n text-align: center;\n }\n\n .section-inline-toggle span {\n width: inherit;\n }\n\n .section-inline-toggle-ext span {\n width: 85px;\n text-align: left;\n }\n\n .section-inline-toggle-ext mat-slide-toggle {\n padding-left: 20px;\n }\n\n .section-inline-color {\n display: inline-block;\n width: 60px;\n }\n\n .section-inline-color input {\n width: 60px !important;\n text-align: center;\n }\n\n .section-inline-color span {\n width: 65px;\n }\n\n .section-inline-margin {\n display: inline-block;\n width: 12px;\n }\n\n .section-inline-margin2 {\n display: inline-block;\n width: 16px;\n }\n\n .toolbox {\n z-index: 1000;\n position: absolute;\n right: 10px;\n top: -8px;\n line-height: 44px;\n }\n\n .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n }\n\n .tab-columns-rows {\n width:calc(100% - 15px);\n }\n\n .cell-item {\n padding-top: 5px;\n padding-bottom: 5px;\n border-bottom: 1px solid var(--toolboxBorder);\n }\n\n .events-section {\n display: contents;\n\n .event-item {\n margin-top: 5px;\n }\n .event-type {\n width: 120px;\n }\n .event-action {\n width: 120px;\n }\n .event-remove {\n float: right;\n }\n .event-action-ext {\n padding-bottom: 10px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n }\n .event-script {\n padding-left: 10px;\n .script-selection {\n width: calc(100% - 15px);\n }\n .event-script-param {\n width: 120px;\n }\n .event-script-value {\n width: calc(100% - 120px);\n }\n .event-script-tag {\n width: calc(100% - 125px);\n }\n }\n }\n .events-toolbox {\n display: block;\n width: 100%;\n\n button {\n margin-left: 10px;\n }\n }\n}",":host .table-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n padding-top: 5px;\n}\n:host .table-selection .table-type {\n width: 120px;\n}\n:host .table-selection .data-range {\n width: 100px;\n}\n:host .table-selection .data-realtime {\n width: 100px;\n}\n:host .table-selection .data-refresh-interval {\n width: 120px;\n}\n:host .table-selection .data-refresh-interval input {\n width: 80px;\n margin-right: 5px;\n}\n:host .table-selection .data-refresh-interval .unit {\n font-size: 12px;\n color: #666;\n}\n:host .section-item {\n width: 100%;\n}\n:host .section-item-newline {\n margin-top: 5px;\n}\n:host .section-newline {\n height: 8px;\n display: block;\n}\n:host .section-item-block mat-select, :host input, :host span {\n width: calc(100% - 15px);\n}\n:host .section-inline-name input {\n width: 140px;\n}\n:host .section-inline-number input {\n max-width: 100px;\n}\n:host .section-inline-type {\n width: 160px;\n}\n:host .section-inline-toggle {\n display: inline-block;\n width: 60px;\n text-align: center;\n}\n:host .section-inline-toggle span {\n width: inherit;\n}\n:host .section-inline-toggle-ext span {\n width: 85px;\n text-align: left;\n}\n:host .section-inline-toggle-ext mat-slide-toggle {\n padding-left: 20px;\n}\n:host .section-inline-color {\n display: inline-block;\n width: 60px;\n}\n:host .section-inline-color input {\n width: 60px !important;\n text-align: center;\n}\n:host .section-inline-color span {\n width: 65px;\n}\n:host .section-inline-margin {\n display: inline-block;\n width: 12px;\n}\n:host .section-inline-margin2 {\n display: inline-block;\n width: 16px;\n}\n:host .toolbox {\n z-index: 1000;\n position: absolute;\n right: 10px;\n top: -8px;\n line-height: 44px;\n}\n:host .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n}\n:host .tab-columns-rows {\n width: calc(100% - 15px);\n}\n:host .cell-item {\n padding-top: 5px;\n padding-bottom: 5px;\n border-bottom: 1px solid var(--toolboxBorder);\n}\n:host .events-section {\n display: contents;\n}\n:host .events-section .event-item {\n margin-top: 5px;\n}\n:host .events-section .event-type {\n width: 120px;\n}\n:host .events-section .event-action {\n width: 120px;\n}\n:host .events-section .event-remove {\n float: right;\n}\n:host .events-section .event-action-ext {\n padding-bottom: 10px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n:host .events-section .event-script {\n padding-left: 10px;\n}\n:host .events-section .event-script .script-selection {\n width: calc(100% - 15px);\n}\n:host .events-section .event-script .event-script-param {\n width: 120px;\n}\n:host .events-section .event-script .event-script-value {\n width: calc(100% - 120px);\n}\n:host .events-section .event-script .event-script-tag {\n width: calc(100% - 125px);\n}\n:host .events-toolbox {\n display: block;\n width: 100%;\n}\n:host .events-toolbox button {\n margin-left: 10px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 71999: +/*!**************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-reports/table-reports.component.scss?ngResource ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + min-width: 680px; + min-height: 400px; +} +:host .container .report-column mat-checkbox { + font-size: 14px; + margin: 7px 30px 7px 10px; +} +:host .container .report-filter { + font-size: 16px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-table/table-reports/table-reports.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-table/table-reports/table-reports.component.scss"],"names":[],"mappings":"AAEI;EACI,gBAAA;EACA,iBAAA;ACDR;ADIY;EACI,eAAA;EACA,yBAAA;ACFhB;ADMQ;EACI,eAAA;ACJZ","sourcesContent":[":host {\n\n .container {\n min-width: 680px;\n min-height: 400px;\n\n .report-column {\n mat-checkbox {\n font-size: 14px;\n margin: 7px 30px 7px 10px;\n }\n }\n\n .report-filter {\n font-size: 16px;\n }\n }\n}",":host .container {\n min-width: 680px;\n min-height: 400px;\n}\n:host .container .report-column mat-checkbox {\n font-size: 14px;\n margin: 7px 30px 7px 10px;\n}\n:host .container .report-filter {\n font-size: 16px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 65894: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-video/video-property/video-property.component.scss?ngResource ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .video-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); +} +:host .section-item { + width: 100%; +} +:host .section-item-block input, :host span { + width: calc(100% - 15px); +} +:host .item-device-tag { + width: calc(100% - 5px); +} +:host .item-slider { + margin-left: 20px; + width: 100px; +} +:host .toolbox { + float: right; + margin-bottom: 3px; +} +:host .toolbox button { + margin-right: 8px; + margin-left: 8px; +} +:host .action-readonly-item { + display: block; + /* min-height: 100px; */ + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 5px 0px 5px 0px; +} +:host .action-readonly-item .tag { + width: calc(100% - 5px); +} +:host .action-readonly-item .tag input { + width: inherit; +} +:host .action-readonly-item .value { + width: calc(100% - 5px); +} +:host .action-readonly-item .value .number > input { + width: 50px; +} +:host .action-readonly-item .value .type > input { + width: auto; +} +:host .static-image mat-select, :host .static-image span { + width: calc(100% - 15px); +} +:host .static-image img { + max-width: 200px; + max-height: 160px; +} +:host .static-image button { + float: right; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; + min-width: 110px !important; + width: 110px !important; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/html-video/video-property/video-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/html-video/video-property/video-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;ACAR;ADGI;EACI,WAAA;ACDR;ADII;EACI,wBAAA;ACFR;ADKI;EACI,uBAAA;ACHR;ADMI;EACI,iBAAA;EACA,YAAA;ACJR;ADOI;EACI,YAAA;EAEA,kBAAA;ACNR;ADSI;EACI,iBAAA;EACA,gBAAA;ACPR;ADUI;EACI,cAAA;EACA,uBAAA;EACA,WAAA;EACA,2CAAA;EACA,wBAAA;ACRR;ADWQ;EACI,uBAAA;ACTZ;ADUY;EACI,cAAA;ACRhB;ADWQ;EACI,uBAAA;ACTZ;ADWY;EACI,WAAA;ACThB;ADWY;EACI,WAAA;ACThB;ADeQ;EACI,wBAAA;ACbZ;ADgBQ;EACI,gBAAA;EACA,iBAAA;ACdZ;ADgBQ;EACI,YAAA;ACdZ;ADkBI;EACI,uBAAA;EACA,2BAAA;EACA,uBAAA;AChBR","sourcesContent":[":host {\n .video-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n }\n\n .section-item {\n width: 100%;\n }\n\n .section-item-block input, span {\n width:calc(100% - 15px);\n }\n\n .item-device-tag {\n width:calc(100% - 5px);\n }\n\n .item-slider {\n margin-left: 20px;\n width: 100px;\n }\n\n .toolbox {\n float: right;\n // margin-top: 5px;\n margin-bottom: 3px;\n }\n\n .toolbox button {\n margin-right: 8px;\n margin-left: 8px;\n }\n\n .action-readonly-item {\n display: block;\n /* min-height: 100px; */\n width: 100%;\n border-bottom: 1px solid rgba(0,0,0,0.1);\n padding: 5px 0px 5px 0px;\n\n\n .tag {\n width: calc(100% - 5px);\n input {\n width: inherit;\n }\n }\n .value {\n width: calc(100% - 5px);\n\n .number > input {\n width: 50px;\n }\n .type > input {\n width: auto;\n }\n }\n }\n\n .static-image {\n mat-select, span {\n width: calc(100% - 15px);\n }\n\n img {\n max-width: 200px;\n max-height: 160px;\n }\n button {\n float: right;\n }\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n }\n}",":host .video-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n}\n:host .section-item {\n width: 100%;\n}\n:host .section-item-block input, :host span {\n width: calc(100% - 15px);\n}\n:host .item-device-tag {\n width: calc(100% - 5px);\n}\n:host .item-slider {\n margin-left: 20px;\n width: 100px;\n}\n:host .toolbox {\n float: right;\n margin-bottom: 3px;\n}\n:host .toolbox button {\n margin-right: 8px;\n margin-left: 8px;\n}\n:host .action-readonly-item {\n display: block;\n /* min-height: 100px; */\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 5px 0px 5px 0px;\n}\n:host .action-readonly-item .tag {\n width: calc(100% - 5px);\n}\n:host .action-readonly-item .tag input {\n width: inherit;\n}\n:host .action-readonly-item .value {\n width: calc(100% - 5px);\n}\n:host .action-readonly-item .value .number > input {\n width: 50px;\n}\n:host .action-readonly-item .value .type > input {\n width: auto;\n}\n:host .static-image mat-select, :host .static-image span {\n width: calc(100% - 15px);\n}\n:host .static-image img {\n max-width: 200px;\n max-height: 160px;\n}\n:host .static-image button {\n float: right;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 75430: +/*!***********************************************************************************************!*\ + !*** ./src/app/gauges/controls/panel/panel-property/panel-property.component.scss?ngResource ***! + \***********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .panel-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); +} +:host .section-item { + width: 100%; +} +:host .section-item-block input, :host span, :host mat-select { + width: calc(100% - 15px); +} +:host .item-device-tag { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/panel/panel-property/panel-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/panel/panel-property/panel-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;ACAR;ADGI;EACI,WAAA;ACDR;ADII;EACI,wBAAA;ACFR;ADKI;EACI,uBAAA;ACHR","sourcesContent":[":host {\n .panel-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n }\n\n .section-item {\n width: 100%;\n }\n\n .section-item-block input, span, mat-select {\n width:calc(100% - 15px);\n }\n\n .item-device-tag {\n width:calc(100% - 5px);\n }\n}",":host .panel-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n}\n:host .section-item {\n width: 100%;\n}\n:host .section-item-block input, :host span, :host mat-select {\n width: calc(100% - 15px);\n}\n:host .item-device-tag {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 77177: +/*!********************************************************************************************!*\ + !*** ./src/app/gauges/controls/pipe/pipe-property/pipe-property.component.scss?ngResource ***! + \********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .pipe-selection { + position: absolute; + top: 35px; + bottom: 0px; + overflow: auto; + width: calc(100% - 10px); + padding-top: 5px; +} +:host .pipe-selection .style-size { + width: 80px; + text-align: left; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; + min-width: 110px !important; + width: 110px !important; +} +:host .toolbox { + float: right; + margin-bottom: 3px; +} +:host .toolbox button { + margin-right: 8px; + margin-left: 8px; +} +:host .action-readonly-item { + display: block; + /* min-height: 100px; */ + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 5px 0px 5px 0px; +} +:host .action-readonly-item .tag { + width: calc(100% - 5px); +} +:host .action-readonly-item .tag input { + width: inherit; +} +:host .action-readonly-item .value { + width: calc(100% - 5px); +} +:host .action-readonly-item .value .number > input { + width: 50px; +} +:host .action-readonly-item .value .type > input { + width: auto; +} +:host .image-animation mat-select, :host .image-animation span { + width: calc(100% - 10px); +} +:host .image-animation img { + max-width: 200px; +} +:host .image-animation button { + float: right; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/controls/pipe/pipe-property/pipe-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/controls/pipe/pipe-property/pipe-property.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;EACA,SAAA;EACA,WAAA;EACA,cAAA;EACA,wBAAA;EACA,gBAAA;ACAR;ADEQ;EACI,WAAA;EACA,gBAAA;ACAZ;ADII;EACI,uBAAA;EACA,2BAAA;EACA,uBAAA;ACFR;ADKI;EACI,YAAA;EAEA,kBAAA;ACJR;ADOI;EACI,iBAAA;EACA,gBAAA;ACLR;ADQI;EACI,cAAA;EACA,uBAAA;EACA,WAAA;EACA,2CAAA;EACA,wBAAA;ACNR;ADSQ;EACI,uBAAA;ACPZ;ADQY;EACI,cAAA;ACNhB;ADSQ;EACI,uBAAA;ACPZ;ADSY;EACI,WAAA;ACPhB;ADSY;EACI,WAAA;ACPhB;ADaQ;EACI,wBAAA;ACXZ;ADcQ;EACI,gBAAA;ACZZ;ADcQ;EACI,YAAA;ACZZ","sourcesContent":[":host {\n .pipe-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width:calc(100% - 10px);\n padding-top: 5px;\n\n .style-size {\n width: 80px;\n text-align: left;\n }\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n }\n\n .toolbox {\n float: right;\n // margin-top: 5px;\n margin-bottom: 3px;\n }\n\n .toolbox button {\n margin-right: 8px;\n margin-left: 8px;\n }\n\n .action-readonly-item {\n display: block;\n /* min-height: 100px; */\n width: 100%;\n border-bottom: 1px solid rgba(0,0,0,0.1);\n padding: 5px 0px 5px 0px;\n\n\n .tag {\n width: calc(100% - 5px);\n input {\n width: inherit;\n }\n }\n .value {\n width: calc(100% - 5px);\n\n .number > input {\n width: 50px;\n }\n .type > input {\n width: auto;\n }\n }\n }\n\n .image-animation {\n mat-select, span {\n width: calc(100% - 10px);\n }\n\n img {\n max-width: 200px;\n }\n button {\n float: right;\n }\n }\n}\n",":host .pipe-selection {\n position: absolute;\n top: 35px;\n bottom: 0px;\n overflow: auto;\n width: calc(100% - 10px);\n padding-top: 5px;\n}\n:host .pipe-selection .style-size {\n width: 80px;\n text-align: left;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 110px !important;\n width: 110px !important;\n}\n:host .toolbox {\n float: right;\n margin-bottom: 3px;\n}\n:host .toolbox button {\n margin-right: 8px;\n margin-left: 8px;\n}\n:host .action-readonly-item {\n display: block;\n /* min-height: 100px; */\n width: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 5px 0px 5px 0px;\n}\n:host .action-readonly-item .tag {\n width: calc(100% - 5px);\n}\n:host .action-readonly-item .tag input {\n width: inherit;\n}\n:host .action-readonly-item .value {\n width: calc(100% - 5px);\n}\n:host .action-readonly-item .value .number > input {\n width: 50px;\n}\n:host .action-readonly-item .value .type > input {\n width: auto;\n}\n:host .image-animation mat-select, :host .image-animation span {\n width: calc(100% - 10px);\n}\n:host .image-animation img {\n max-width: 200px;\n}\n:host .image-animation button {\n float: right;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 86907: +/*!*******************************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/action-properties-dialog/action-properties-dialog.component.scss?ngResource ***! + \*******************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 760px; + position: relative; +} +:host .content { + min-height: 300px; +} +:host .toolbox { + position: absolute; + right: 10px; + top: 20px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/action-properties-dialog/action-properties-dialog.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/action-properties-dialog/action-properties-dialog.component.scss"],"names":[],"mappings":"AACI;EACE,YAAA;EACA,kBAAA;ACAN;ADGI;EACI,iBAAA;ACDR;ADGI;EACI,kBAAA;EACA,WAAA;EACA,SAAA;ACDR","sourcesContent":[":host {\n .container {\n width: 760px;\n position: relative;\n }\n\n .content {\n min-height:300px;\n }\n .toolbox {\n position: absolute;\n right: 10px;\n top: 20px;\n }\n}",":host .container {\n width: 760px;\n position: relative;\n}\n:host .content {\n min-height: 300px;\n}\n:host .toolbox {\n position: absolute;\n right: 10px;\n top: 20px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 69590: +/*!*************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-device-tag/flex-device-tag.component.scss?ngResource ***! + \*************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.device-input { + display: inline-block; + width: 100%; +} +.device-input input { + padding-left: 30px; + width: calc(100% - 36px); +} +.device-input button { + position: absolute; + left: 0px; + line-height: 22px; + height: 28px; + width: 28px; + vertical-align: middle; +} +.device-input span { + width: calc(100% - 5px); +} + +::ng-deep .device-group-label span { + line-height: 28px; + height: 28px; +} + +::ng-deep .device-option-label { + line-height: 28px !important; + height: 28px !important; +} +::ng-deep .device-option-label span { + font-size: 13px; +} + +::ng-deep .device-variable-input { + font-size: 13px; + vertical-align: unset !important; + width: unset; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-device-tag/flex-device-tag.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/flex-device-tag/flex-device-tag.component.scss"],"names":[],"mappings":"AACA;EACI,qBAAA;EACA,WAAA;ACAJ;ADCI;EACI,kBAAA;EACA,wBAAA;ACCR;ADEI;EACI,kBAAA;EACA,SAAA;EACA,iBAAA;EACA,YAAA;EACA,WAAA;EACA,sBAAA;ACAR;ADEI;EACI,uBAAA;ACAR;;ADIA;EACI,iBAAA;EACA,YAAA;ACDJ;;ADIA;EAEI,4BAAA;EACA,uBAAA;ACFJ;ADII;EACI,eAAA;ACFR;;ADKA;EACI,eAAA;EACA,gCAAA;EACA,YAAA;ACFJ","sourcesContent":["\n.device-input {\n display: inline-block;\n width: 100%;\n input {\n padding-left: 30px;\n width: calc(100% - 36px);\n\n }\n button {\n position: absolute;\n left: 0px;\n line-height: 22px;\n height:28px;\n width:28px;\n vertical-align: middle;\n }\n span {\n width: calc(100% - 5px);\n }\n}\n\n::ng-deep .device-group-label span {\n line-height: 28px;\n height: 28px;\n}\n\n::ng-deep .device-option-label {\n\n line-height: 28px !important;\n height: 28px !important;\n\n span {\n font-size: 13px;\n }\n}\n::ng-deep .device-variable-input {\n font-size: 13px;\n vertical-align: unset !important;\n width: unset;\n}",".device-input {\n display: inline-block;\n width: 100%;\n}\n.device-input input {\n padding-left: 30px;\n width: calc(100% - 36px);\n}\n.device-input button {\n position: absolute;\n left: 0px;\n line-height: 22px;\n height: 28px;\n width: 28px;\n vertical-align: middle;\n}\n.device-input span {\n width: calc(100% - 5px);\n}\n\n::ng-deep .device-group-label span {\n line-height: 28px;\n height: 28px;\n}\n\n::ng-deep .device-option-label {\n line-height: 28px !important;\n height: 28px !important;\n}\n::ng-deep .device-option-label span {\n font-size: 13px;\n}\n\n::ng-deep .device-variable-input {\n font-size: 13px;\n vertical-align: unset !important;\n width: unset;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 45346: +/*!*****************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variable-map/flex-variable-map.component.scss?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .flex-variable-mapping { + border-bottom: 1px solid rgba(0, 0, 0, 0.08); + padding-bottom: 3px; + padding-top: 3px; +} +:host .flex-join { + float: left; + position: relative; + left: 0px; + top: 28px; + margin-bottom: 2px; + width: 8px; + border-radius: 2px; + height: 45px; + margin-right: 3px; + border-radius: 3px 0px 0px 3px; + border-top: 2px solid #cacaca; + border-left: 2px solid #cacaca; + border-bottom: 2px solid #cacaca; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-variable-map/flex-variable-map.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/flex-variable-map/flex-variable-map.component.scss"],"names":[],"mappings":"AACI;EACI,4CAAA;EACA,mBAAA;EACA,gBAAA;ACAR;ADGI;EACI,WAAA;EACA,kBAAA;EACA,SAAA;EACA,SAAA;EACA,kBAAA;EACA,UAAA;EACA,kBAAA;EACA,YAAA;EACA,iBAAA;EACA,8BAAA;EACA,6BAAA;EACA,8BAAA;EACA,gCAAA;ACDR","sourcesContent":[":host {\n .flex-variable-mapping {\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n padding-bottom: 3px;\n padding-top: 3px;\n }\n \n .flex-join {\n float: left;\n position: relative;\n left: 0px;\n top: 28px;\n margin-bottom: 2px;\n width: 8px;\n border-radius: 2px;\n height: 45px; \n margin-right: 3px;\n border-radius: 3px 0px 0px 3px;\n border-top: 2px solid #cacaca;\n border-left: 2px solid #cacaca;\n border-bottom: 2px solid #cacaca;\n }\n}",":host .flex-variable-mapping {\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n padding-bottom: 3px;\n padding-top: 3px;\n}\n:host .flex-join {\n float: left;\n position: relative;\n left: 0px;\n top: 28px;\n margin-bottom: 2px;\n width: 8px;\n border-radius: 2px;\n height: 45px;\n margin-right: 3px;\n border-radius: 3px 0px 0px 3px;\n border-top: 2px solid #cacaca;\n border-left: 2px solid #cacaca;\n border-bottom: 2px solid #cacaca;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 78362: +/*!*********************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variable/flex-variable.component.scss?ngResource ***! + \*********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.container { + display: block; + margin-bottom: 5px; +} +.container .value { + max-width: 100px; + margin-right: 18px; +} +.container .link { + display: inline-block; + vertical-align: bottom; +} +.container .link .span-link { + text-overflow: clip; + white-space: nowrap; + width: 28px; +} +.container .link button { + line-height: 28px; + height: 28px; + width: 28px; + vertical-align: middle; +} +.container .input { + margin-left: 0px; +} + +::ng-deep .group-label span { + line-height: 28px; + height: 28px; +} + +::ng-deep .option-label { + line-height: 28px !important; + height: 28px !important; +} +::ng-deep .option-label span { + font-size: 13px; +} + +::ng-deep .variable-input { + font-size: 13px; + min-width: 450px; + vertical-align: unset !important; + width: unset; +} + +.tag-link { + position: absolute; + bottom: 0px; + right: 0px; + height: 28px; + width: 28px; + border-radius: 2px 0px 0px 2px; + background-color: var(--formInputBackground); + color: var(--formInputColor); +} + +.bitmask { + vertical-align: bottom; + margin-left: 7px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-variable/flex-variable.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/flex-variable/flex-variable.component.scss"],"names":[],"mappings":"AAAA;EACI,cAAA;EACA,kBAAA;ACCJ;ADAI;EACI,gBAAA;EACA,kBAAA;ACER;ADAI;EACI,qBAAA;EACA,sBAAA;ACER;ADDQ;EACI,mBAAA;EACA,mBAAA;EACA,WAAA;ACGZ;ADAQ;EACI,iBAAA;EACA,YAAA;EACA,WAAA;EACA,sBAAA;ACEZ;ADCI;EACI,gBAAA;ACCR;;ADGA;EACI,iBAAA;EACA,YAAA;ACAJ;;ADGA;EAEI,4BAAA;EACA,uBAAA;ACDJ;ADGI;EACI,eAAA;ACDR;;ADIA;EACI,eAAA;EACA,gBAAA;EACA,gCAAA;EACA,YAAA;ACDJ;;ADIA;EACI,kBAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,8BAAA;EACA,4CAAA;EACA,4BAAA;ACDJ;;ADIA;EACI,sBAAA;EACA,gBAAA;ACDJ","sourcesContent":[".container {\n display: block;\n margin-bottom: 5px;\n .value {\n max-width: 100px;\n margin-right: 18px;\n }\n .link {\n display:inline-block;\n vertical-align: bottom;\n .span-link {\n text-overflow:clip;\n white-space:nowrap;\n width: 28px\n }\n\n button {\n line-height: 28px;\n height:28px;\n width:28px;\n vertical-align: middle;\n }\n }\n .input {\n margin-left: 0px;\n }\n}\n\n::ng-deep .group-label span {\n line-height: 28px;\n height: 28px;\n}\n\n::ng-deep .option-label {\n\n line-height: 28px !important;\n height: 28px !important;\n\n span {\n font-size: 13px;\n }\n}\n::ng-deep .variable-input {\n font-size: 13px;\n min-width: 450px;\n vertical-align: unset !important;\n width: unset;\n}\n\n.tag-link {\n position:absolute;\n bottom: 0px;\n right: 0px;\n height: 28px;\n width: 28px;\n border-radius: 2px 0px 0px 2px;\n background-color: var(--formInputBackground);\n color: var(--formInputColor);\n}\n\n.bitmask {\n vertical-align: bottom;\n margin-left: 7px;\n}",".container {\n display: block;\n margin-bottom: 5px;\n}\n.container .value {\n max-width: 100px;\n margin-right: 18px;\n}\n.container .link {\n display: inline-block;\n vertical-align: bottom;\n}\n.container .link .span-link {\n text-overflow: clip;\n white-space: nowrap;\n width: 28px;\n}\n.container .link button {\n line-height: 28px;\n height: 28px;\n width: 28px;\n vertical-align: middle;\n}\n.container .input {\n margin-left: 0px;\n}\n\n::ng-deep .group-label span {\n line-height: 28px;\n height: 28px;\n}\n\n::ng-deep .option-label {\n line-height: 28px !important;\n height: 28px !important;\n}\n::ng-deep .option-label span {\n font-size: 13px;\n}\n\n::ng-deep .variable-input {\n font-size: 13px;\n min-width: 450px;\n vertical-align: unset !important;\n width: unset;\n}\n\n.tag-link {\n position: absolute;\n bottom: 0px;\n right: 0px;\n height: 28px;\n width: 28px;\n border-radius: 2px 0px 0px 2px;\n background-color: var(--formInputBackground);\n color: var(--formInputColor);\n}\n\n.bitmask {\n vertical-align: bottom;\n margin-left: 7px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 82535: +/*!***********************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-widget-property/flex-widget-property.component.scss?ngResource ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + margin-top: 20px; +} +:host .var-ref { + display: block; +} +:host .var-ref flex-variable { + display: inline-block; +} +:host .var-ref flex-variable ::ng-deep .value { + margin-right: 10px; +} +:host .var-ref flex-variable ::ng-deep .variable-input { + min-width: 400px; +} +:host .var-ref span { + margin-left: 5px; + margin-right: 5px; + display: inline-block; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/flex-widget-property/flex-widget-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/flex-widget-property/flex-widget-property.component.scss"],"names":[],"mappings":"AACI;EACI,gBAAA;ACAR;ADEI;EACI,cAAA;ACAR;ADCQ;EACI,qBAAA;ACCZ;ADCY;EACI,kBAAA;ACChB;ADCY;EACI,gBAAA;ACChB;ADEQ;EACI,gBAAA;EACA,iBAAA;EACA,qBAAA;ACAZ","sourcesContent":[":host {\n .container {\n margin-top: 20px;\n }\n .var-ref {\n display: block;\n flex-variable {\n display: inline-block;\n\n ::ng-deep .value {\n margin-right: 10px;\n }\n ::ng-deep .variable-input {\n min-width: 400px;\n }\n }\n span {\n margin-left: 5px;\n margin-right: 5px;\n display: inline-block;\n }\n }\n}",":host .container {\n margin-top: 20px;\n}\n:host .var-ref {\n display: block;\n}\n:host .var-ref flex-variable {\n display: inline-block;\n}\n:host .var-ref flex-variable ::ng-deep .value {\n margin-right: 10px;\n}\n:host .var-ref flex-variable ::ng-deep .variable-input {\n min-width: 400px;\n}\n:host .var-ref span {\n margin-left: 5px;\n margin-right: 5px;\n display: inline-block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 39342: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/gauge-property.component.scss?ngResource ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 760px; + position: relative; +} +:host .toolbox { + float: right; + line-height: 44px; +} +:host .toolbox button { + /* margin-right: 8px; */ + margin-left: 10px; +} +:host ::ng-deep .input-text .mat-form-field-infix { + padding-top: 5px; + padding-bottom: 0px; +} +:host ::ng-deep .mat-dialog-container { + display: inline-table !important; +} +:host ::ng-deep .mat-tab-label { + height: 34px !important; +} +:host .mat-tab-container { + min-height: 300px; + height: 60vmin; + overflow-y: auto; + overflow-x: hidden; + padding-top: 15px; +} +:host .mat-tab-container > div { + display: block; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/gauge-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/gauge-property.component.scss"],"names":[],"mappings":"AACE;EACE,YAAA;EACA,kBAAA;ACAJ;ADEE;EACI,YAAA;EACA,iBAAA;ACAN;ADGE;EACI,uBAAA;EACA,iBAAA;ACDN;ADIE;EACI,gBAAA;EACA,mBAAA;ACFN;ADKE;EACI,gCAAA;ACHN;ADME;EACE,uBAAA;ACJJ;ADOE;EACE,iBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,iBAAA;ACLJ;ADQE;EACE,cAAA;ACNJ","sourcesContent":[":host {\n .container {\n width: 760px;\n position: relative;\n }\n .toolbox {\n float: right;\n line-height: 44px;\n }\n\n .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n\n ::ng-deep .input-text .mat-form-field-infix {\n padding-top: 5px;\n padding-bottom: 0px;\n }\n\n ::ng-deep .mat-dialog-container {\n display: inline-table !important;\n }\n\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n }\n\n .mat-tab-container {\n min-height:300px;\n height:60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n }\n\n .mat-tab-container > div {\n display: block;\n }\n}\n",":host .container {\n width: 760px;\n position: relative;\n}\n:host .toolbox {\n float: right;\n line-height: 44px;\n}\n:host .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}\n:host ::ng-deep .input-text .mat-form-field-infix {\n padding-top: 5px;\n padding-bottom: 0px;\n}\n:host ::ng-deep .mat-dialog-container {\n display: inline-table !important;\n}\n:host ::ng-deep .mat-tab-label {\n height: 34px !important;\n}\n:host .mat-tab-container {\n min-height: 300px;\n height: 60vmin;\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 15px;\n}\n:host .mat-tab-container > div {\n display: block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 60762: +/*!*****************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/permission-dialog/permission-dialog.component.scss?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 350px; +} +:host .container .label { + display: inline-block; +} +:host .container .label-show { + width: 45px; + text-align: center; +} +:host .container .label-enable { + width: 70px; +}`, "",{"version":3,"sources":["webpack://./src/app/gauges/gauge-property/permission-dialog/permission-dialog.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gauges/gauge-property/permission-dialog/permission-dialog.component.scss"],"names":[],"mappings":"AACI;EACI,YAAA;ACAR;ADEQ;EACI,qBAAA;ACAZ;ADGQ;EACI,WAAA;EACA,kBAAA;ACDZ;ADIQ;EACI,WAAA;ACFZ","sourcesContent":[":host {\n .container {\n width: 350px;\n\n .label {\n display: inline-block;\n }\n\n .label-show {\n width: 45px;\n text-align: center;\n }\n\n .label-enable {\n width: 70px;\n }\n }\n}",":host .container {\n width: 350px;\n}\n:host .container .label {\n display: inline-block;\n}\n:host .container .label-show {\n width: 45px;\n text-align: center;\n}\n:host .container .label-enable {\n width: 70px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 95426: +/*!***************************************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/daterangepicker.component.scss?ngResource ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/* +* variables +*/ +/* +* styles +*/ +.md-drppicker { + position: absolute; + font-family: Roboto, sans-serif; + color: inherit; + background-color: #fff; + border-radius: 4px; + width: 278px; + padding: 4px; + margin-top: -10px; + overflow: hidden; + z-index: 1000; + font-size: 14px; + background-color: #ffffff; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 8px 0 rgba(0, 0, 0, 0.12); + /* ranges */ + /* button */ +} +.md-drppicker.double { + width: auto; +} +.md-drppicker.inline { + position: relative; + display: inline-block; +} +.md-drppicker:before, .md-drppicker:after { + position: absolute; + display: inline-block; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ""; +} +.md-drppicker.openscenter:before { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; +} +.md-drppicker.openscenter:after { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; +} +.md-drppicker.single .ranges, .md-drppicker.single .calendar { + float: none; +} +.md-drppicker.shown { + transform: scale(1); + transition: all 0.1s ease-in-out; + transform-origin: 0 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + user-select: none; +} +.md-drppicker.shown.drops-up-left { + transform-origin: 100% 100%; +} +.md-drppicker.shown.drops-up-right { + transform-origin: 0 100%; +} +.md-drppicker.shown.drops-down-left { + transform-origin: 100% 0; +} +.md-drppicker.shown.drops-down-right { + transform-origin: 0 0; +} +.md-drppicker.shown.drops-down-center { + transform-origin: calc(NaN * 1%); +} +.md-drppicker.shown.drops-up-center { + transform-origin: 50%; +} +.md-drppicker.shown .calendar { + display: block; +} +.md-drppicker.hidden { + transition: all 0.1s ease; + transform: scale(0); + transform-origin: 0 0; + cursor: default; + -webkit-touch-callout: none; + -webkit-user-select: none; + user-select: none; +} +.md-drppicker.hidden.drops-up-left { + transform-origin: 100% 100%; +} +.md-drppicker.hidden.drops-up-right { + transform-origin: 0 100%; +} +.md-drppicker.hidden.drops-down-left { + transform-origin: 100% 0; +} +.md-drppicker.hidden.drops-down-right { + transform-origin: 0 0; +} +.md-drppicker.hidden.drops-down-center { + transform-origin: calc(NaN * 1%); +} +.md-drppicker.hidden.drops-up-center { + transform-origin: 50%; +} +.md-drppicker.hidden .calendar { + display: none; +} +.md-drppicker .calendar { + /* display: none; */ + max-width: 270px; + margin: 4px; +} +.md-drppicker .calendar.single .calendar-table { + border: none; +} +.md-drppicker .calendar th, .md-drppicker .calendar td { + padding: 0; + white-space: nowrap; + text-align: center; + min-width: 32px; +} +.md-drppicker .calendar th span, .md-drppicker .calendar td span { + pointer-events: none; +} +.md-drppicker .calendar-table { + border: 1px solid #fff; + padding: 4px; + border-radius: 4px; + background-color: #fff; +} +.md-drppicker table { + width: 100%; + margin: 0; +} +.md-drppicker th { + color: #988c8c; +} +.md-drppicker td, .md-drppicker th { + text-align: center; + width: 20px; + height: 20px; + border-radius: 4px; + border: 1px solid transparent; + white-space: nowrap; + cursor: pointer; + height: 2em; + width: 2em; +} +.md-drppicker td.available.prev, .md-drppicker th.available.prev { + display: block; + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K"); + background-repeat: no-repeat; + background-size: 0.5em; + background-position: center; + opacity: 0.8; + transition: background-color 0.2s ease; + border-radius: 2em; +} +.md-drppicker td.available.prev:hover, .md-drppicker th.available.prev:hover { + margin: 0; +} +.md-drppicker td.available.next, .md-drppicker th.available.next { + transform: rotate(180deg); + display: block; + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K"); + background-repeat: no-repeat; + background-size: 0.5em; + background-position: center; + opacity: 0.8; + transition: background-color 0.2s ease; + border-radius: 2em; +} +.md-drppicker td.available.next:hover, .md-drppicker th.available.next:hover { + margin: 0; + transform: rotate(180deg); +} +.md-drppicker td.available:hover, .md-drppicker th.available:hover { + background-color: #eee; + border-color: transparent; + color: inherit; + background-repeat: no-repeat; + background-size: 0.5em; + background-position: center; + margin: 0.25em 0; + opacity: 0.8; + /*transition: background-color .2s ease;*/ + border-radius: 2em; + transform: scale(1); + transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; +} +.md-drppicker td.week, .md-drppicker th.week { + font-size: 80%; + color: #ccc; +} +.md-drppicker td { + margin: 0.25em 0; + opacity: 0.8; + transition: background-color 0.2s ease; + border-radius: 2em; + transform: scale(1); + transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; +} +.md-drppicker td.off, .md-drppicker td.off.in-range, .md-drppicker td.off.start-date, .md-drppicker td.off.end-date { + background-color: #fff; + border-color: transparent; + color: #999; +} +.md-drppicker td.in-range { + background-color: #dde2e4; + border-color: transparent; + color: #000; + border-radius: 0; +} +.md-drppicker td.start-date { + border-radius: 2em 0 0 2em; +} +.md-drppicker td.end-date { + border-radius: 0 2em 2em 0; +} +.md-drppicker td.start-date.end-date { + border-radius: 4px; +} +.md-drppicker td.active { + transition: background 300ms ease-out; + background: rgba(0, 0, 0, 0.1); +} +.md-drppicker td.active, .md-drppicker td.active:hover { + background-color: #3f51b5; + border-color: transparent; + color: #fff; +} +.md-drppicker th.month { + width: auto; +} +.md-drppicker td.disabled, .md-drppicker option.disabled { + color: #999; + cursor: not-allowed; + text-decoration: line-through; +} +.md-drppicker .dropdowns { + background-repeat: no-repeat; + background-size: 10px; + background-position-y: center; + background-position-x: right; + width: 50px; + background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDI1NSAyNTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI1NSAyNTU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0iYXJyb3ctZHJvcC1kb3duIj4KCQk8cG9seWdvbiBwb2ludHM9IjAsNjMuNzUgMTI3LjUsMTkxLjI1IDI1NSw2My43NSAgICIgZmlsbD0iIzk4OGM4YyIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=); +} +.md-drppicker .dropdowns select { + display: inline-block; + background-color: rgba(255, 255, 255, 0.9); + width: 100%; + padding: 5px; + border: 1px solid #f2f2f2; + border-radius: 2px; + height: 3rem; +} +.md-drppicker .dropdowns select.monthselect, .md-drppicker .dropdowns select.yearselect { + font-size: 12px; + padding: 1px; + height: auto; + margin: 0; + cursor: default; +} +.md-drppicker .dropdowns select.hourselect, .md-drppicker .dropdowns select.minuteselect, .md-drppicker .dropdowns select.secondselect, .md-drppicker .dropdowns select.ampmselect { + width: 50px; + margin: 0 auto; + background: #eee; + border: 1px solid #eee; + padding: 2px; + outline: 0; + font-size: 12px; +} +.md-drppicker .dropdowns select.monthselect, .md-drppicker .dropdowns select.yearselect { + cursor: pointer; + opacity: 0; + position: absolute; + top: 0; + left: 0; + margin: 0; + padding: 0; +} +.md-drppicker th.month > div { + position: relative; + display: inline-block; +} +.md-drppicker .calendar-time { + text-align: center; + margin: 4px auto 0 auto; + line-height: 30px; + position: relative; +} +.md-drppicker .calendar-time .select { + display: inline; +} +.md-drppicker .calendar-time .select .select-item { + display: inline-block; + width: auto; + position: relative; + font-family: inherit; + background-color: transparent; + padding: 10px 10px 10px 0; + font-size: 18px; + border-radius: 0; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + /* Remove focus */ +} +.md-drppicker .calendar-time .select .select-item:after { + position: absolute; + top: 18px; + right: 10px; + /* Styling the down arrow */ + width: 0; + height: 0; + padding: 0; + content: ""; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-top: 6px solid rgba(0, 0, 0, 0.12); + pointer-events: none; +} +.md-drppicker .calendar-time .select .select-item:focus { + outline: none; +} +.md-drppicker .calendar-time .select .select-item .select-label { + color: rgba(0, 0, 0, 0.26); + font-size: 16px; + font-weight: normal; + position: absolute; + pointer-events: none; + left: 0; + top: 10px; + transition: 0.2s ease all; +} +.md-drppicker .calendar-time select.disabled { + color: #ccc; + cursor: not-allowed; +} +.md-drppicker .label-input { + border: 1px solid #ccc; + border-radius: 4px; + color: #555; + height: 30px; + line-height: 30px; + display: block; + vertical-align: middle; + margin: 0 auto 5px auto; + padding: 0 0 0 28px; + width: 100%; +} +.md-drppicker .label-input.active { + border: 1px solid #08c; + border-radius: 4px; +} +.md-drppicker .md-drppicker_input { + position: relative; + padding: 0 30px 0 0; +} +.md-drppicker .md-drppicker_input i, .md-drppicker .md-drppicker_input svg { + position: absolute; + left: 8px; + top: 8px; +} +.md-drppicker.rtl .label-input { + padding-right: 28px; + padding-left: 6px; +} +.md-drppicker.rtl .md-drppicker_input i, .md-drppicker.rtl .md-drppicker_input svg { + left: auto; + right: 8px; +} +.md-drppicker .show-ranges .drp-calendar.left { + border-left: 1px solid #ddd; +} +.md-drppicker .ranges { + float: none; + text-align: left; + margin: 0; +} +.md-drppicker .ranges ul { + list-style: none; + margin: 0 auto; + padding: 0; + width: 100%; +} +.md-drppicker .ranges ul li { + font-size: 12px; +} +.md-drppicker .ranges ul li button { + padding: 8px 12px; + width: 100%; + background: none; + border: none; + text-align: left; + cursor: pointer; +} +.md-drppicker .ranges ul li button.active { + background-color: #3f51b5; + color: #fff; +} +.md-drppicker .ranges ul li button[disabled] { + opacity: 0.3; +} +.md-drppicker .ranges ul li button:active { + background: transparent; +} +.md-drppicker .ranges ul li:hover { + background-color: #eee; +} +.md-drppicker .show-calendar .ranges { + margin-top: 8px; +} +.md-drppicker [hidden] { + display: none; +} +.md-drppicker .buttons { + text-align: right; + margin: 0 5px 5px 0; +} +.md-drppicker .btn { + position: relative; + overflow: hidden; + border-width: 0; + outline: none; + padding: 0px 6px; + cursor: pointer; + border-radius: 2px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); + background-color: #3f51b5; + color: #ecf0f1; + transition: background-color 0.4s; + height: auto; + text-transform: uppercase; + line-height: 36px; + border: none; +} +.md-drppicker .btn:hover, .md-drppicker .btn:focus { + background-color: #3f51b5; +} +.md-drppicker .btn > * { + position: relative; +} +.md-drppicker .btn span { + display: block; + padding: 12px 24px; +} +.md-drppicker .btn:before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + display: block; + width: 0; + padding-top: 0; + border-radius: 100%; + background-color: rgba(236, 240, 241, 0.3); + transform: translate(-50%, -50%); +} +.md-drppicker .btn:active:before { + width: 120%; + padding-top: 120%; + transition: width 0.2s ease-out, padding-top 0.2s ease-out; +} +.md-drppicker .btn:disabled { + opacity: 0.5; +} +.md-drppicker .btn.btn-default { + color: black; + background-color: gainsboro; +} +.md-drppicker .clear { + box-shadow: none; + background-color: #ffffff !important; +} +.md-drppicker .clear svg { + color: #eb3232; + fill: currentColor; +} + +@media (min-width: 564px) { + .md-drppicker { + width: auto; + } + .md-drppicker.single .calendar.left { + clear: none; + } + .md-drppicker.ltr { + direction: ltr; + text-align: left; + } + .md-drppicker.ltr .calendar.left { + clear: left; + /*margin-right: 1.5em;*/ + } + .md-drppicker.ltr .calendar.left .calendar-table { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .md-drppicker.ltr .calendar.right { + margin-left: 0; + } + .md-drppicker.ltr .calendar.right .calendar-table { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .md-drppicker.ltr .left .md-drppicker_input { + padding-right: 35px; + } + .md-drppicker.ltr .right .md-drppicker_input { + padding-right: 35px; + } + .md-drppicker.ltr .calendar.left .calendar-table { + padding-right: 12px; + } + .md-drppicker.ltr .ranges, .md-drppicker.ltr .calendar { + float: left; + } + .md-drppicker.rtl { + direction: rtl; + text-align: right; + } + .md-drppicker.rtl .calendar.left { + clear: right; + margin-left: 0; + } + .md-drppicker.rtl .calendar.left .calendar-table { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .md-drppicker.rtl .calendar.right { + margin-right: 0; + } + .md-drppicker.rtl .calendar.right .calendar-table { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .md-drppicker.rtl .left .md-drppicker_input { + padding-left: 12px; + } + .md-drppicker.rtl .calendar.left .calendar-table { + padding-left: 12px; + } + .md-drppicker.rtl .ranges, .md-drppicker.rtl .calendar { + text-align: right; + float: right; + } + .drp-animate { + transform: translate(0); + transition: transform 0.2s ease, opacity 0.2s ease; + } + .drp-animate.drp-picker-site-this { + transition-timing-function: linear; + } + .drp-animate.drp-animate-right { + transform: translateX(10%); + opacity: 0; + } + .drp-animate.drp-animate-left { + transform: translateX(-10%); + opacity: 0; + } +} +@media (min-width: 730px) { + .md-drppicker .ranges { + width: auto; + } + .md-drppicker.ltr .ranges { + float: left; + } + .md-drppicker.rtl .ranges { + float: right; + } + .md-drppicker .calendar.left { + clear: none !important; + } +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/daterangepicker/daterangepicker.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gui-helpers/daterangepicker/daterangepicker.component.scss"],"names":[],"mappings":"AAAA;;CAAA;AA+DA;;CAAA;AAGA;EACE,kBAAA;EACA,+BAAA;EACA,cAlEwC;EAmExC,sBAlEwC;EAmExC,kBAAA;EACA,YA9C4B;EA+C5B,YAAA;EACA,iBAAA;EACA,gBAAA;EACA,aAAA;EACA,eAAA;EACA,yBAAA;EACA,4EAAA;EAkaA,WAAA;EAqDA,WAAA;AChhBF;AD0DE;EACE,WAtDiC;ACFrC;AD0DE;EACE,kBAAA;EACA,qBAAA;ACxDJ;AD2DE;EACE,kBAAA;EACA,qBAAA;EAEA,uCAAA;EACA,WAAA;AC1DJ;ADgEI;EACE,OAAA;EACA,QAAA;EACA,QAAA;EACA,iBAAA;EACA,kBAAA;AC9DN;ADiEI;EACE,OAAA;EACA,QAAA;EACA,QAAA;EACA,iBAAA;EACA,kBAAA;AC/DN;ADoEI;EACE,WAAA;AClEN;ADsEE;EACE,mBAAA;EACA,gCAAA;EACA,qBAAA;EACA,2BAAA;EACE,yBAAA;EAGQ,iBAAA;ACpEd;ADqEI;EACE,2BAAA;ACnEN;ADqEI;EACE,wBAAA;ACnEN;ADqEI;EACE,wBAAA;ACnEN;ADqEI;EACE,qBAAA;ACnEN;ADqEI;EACE,gCAAA;ACnEN;ADqEI;EACE,qBAAA;ACnEN;ADqEI;EACE,cAAA;ACnEN;ADsEE;EACE,yBAAA;EACA,mBAAA;EACA,qBAAA;EACA,eAAA;EACA,2BAAA;EACE,yBAAA;EAGQ,iBAAA;ACpEd;ADqEI;EACE,2BAAA;ACnEN;ADqEI;EACE,wBAAA;ACnEN;ADqEI;EACE,wBAAA;ACnEN;ADqEI;EACE,qBAAA;ACnEN;ADqEI;EACE,gCAAA;ACnEN;ADqEI;EACE,qBAAA;ACnEN;ADsEI;EACE,aAAA;ACpEN;ADwEE;EACE,mBAAA;EACA,gBAAA;EACA,WAhKwC;AC0F5C;ADyEM;EACE,YAAA;ACvER;AD2EI;EACE,UAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;ACzEN;AD0EM;EACE,oBAAA;ACxER;AD6EE;EACE,sBAAA;EACA,YArLwC;EAsLxC,kBAjLwC;EAkLxC,sBAjNsC;ACsI1C;AD8EE;EACE,WAAA;EACA,SAAA;AC5EJ;AD8EE;EACE,cAAA;AC5EJ;AD8EE;EACE,kBAAA;EACA,WA5L+B;EA6L/B,YA7L+B;EA8L/B,kBAhMwC;EAiMxC,6BAAA;EACA,mBAAA;EACA,eAAA;EACA,WAAA;EACA,UAAA;AC5EJ;AD+EM;EACE,cAAA;EACA,2ZAAA;EACA,4BAAA;EACA,sBAAA;EACA,2BAAA;EACA,YAAA;EACA,sCAAA;EACA,kBAAA;AC7ER;AD8EQ;EACE,SAAA;AC5EV;AD+EM;EACE,yBAAA;EACA,cAAA;EACA,2ZAAA;EACA,4BAAA;EACA,sBAAA;EACA,2BAAA;EACA,YAAA;EACA,sCAAA;EACA,kBAAA;AC7ER;AD8EQ;EACE,SAAA;EACA,yBAAA;AC5EV;AD+EM;EACE,sBA5PkC;EA6PlC,yBAlQkC;EAmQlC,cAvQkC;EAwQlC,4BAAA;EACA,sBAAA;EACA,2BAAA;EACA,gBAAA;EACA,YAAA;EACA,yCAAA;EACA,kBAAA;EAEA,mBAAA;EACA,wDAAA;AC9ER;ADmFI;EACE,cAAA;EACA,WAAA;ACjFN;ADqFE;EACM,gBAAA;EACA,YAAA;EACA,sCAAA;EACA,kBAAA;EACA,mBAAA;EACA,wDAAA;ACnFR;ADqFM;EACE,sBAhRkC;EAiRlC,yBAlRkC;EAmRlC,WApRkC;ACiM1C;ADyFI;EACE,yBAjSoC;EAkSpC,yBAnSoC;EAoSpC,WArSoC;EAwSpC,gBAAA;ACzFN;AD4FI;EACE,0BAAA;AC1FN;AD6FI;EACE,0BAAA;AC3FN;AD8FI;EACE,kBA/RsC;ACmM5C;AD+FI;EACE,qCAAA;EACA,8BAAA;AC7FN;AD8FM;EACE,yBAtTkC;EAuTlC,yBAtTkC;EAuTlC,WAzTkC;AC6N1C;ADkGI;EACE,WAAA;AChGN;ADsGI;EACE,WAAA;EACA,mBAAA;EACA,6BAAA;ACpGN;ADwGE;EACE,4BAAA;EACA,qBAAA;EACA,6BAAA;EACA,4BAAA;EACA,WAAA;EACA,sgCAAA;ACtGJ;ADuGI;EACE,qBAAA;EACA,0CA7Sc;EA8Sd,WAAA;EACA,YA9SW;EA+SX,yBAjTU;EAkTV,kBA/SU;EAgTV,YA/SS;AC0Mf;ADsGM;EACE,eAAA;EACA,YAAA;EACA,YAAA;EACA,SAAA;EACA,eAAA;ACpGR;ADsGM;EAIE,WAAA;EACA,cAAA;EACA,gBAAA;EACA,sBAAA;EACA,YAAA;EACA,UAAA;EACA,eAAA;ACvGR;AD0GM;EAEE,eAAA;EACA,UAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;ACzGR;AD8GE;EACE,kBAAA;EACA,qBAAA;AC5GJ;AD+GE;EACE,kBAAA;EACA,uBAAA;EACA,iBAAA;EACA,kBAAA;AC7GJ;AD8GI;EACE,eAAA;AC5GN;AD6GM;EACE,qBAAA;EACA,WAAA;EACA,kBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yBAAA;EACA,eAAA;EACA,gBAAA;EACA,YAAA;EACA,4CAAA;EACA,iBAAA;AC3GR;AD4GQ;EACE,kBAAA;EACA,SAAA;EACA,WAAA;EACA,2BAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,kCAAA;EACA,mCAAA;EACA,yCAAA;EACA,oBAAA;AC1GV;AD4GQ;EACE,aAAA;AC1GV;AD4GQ;EACE,0BAAA;EACA,eAAA;EACA,mBAAA;EACA,kBAAA;EACA,oBAAA;EACA,OAAA;EACA,SAAA;EACA,yBAAA;AC1GV;ADgHE;EACE,WAAA;EACA,mBAAA;AC9GJ;ADiHE;EACE,sBAAA;EACA,kBA3ZwC;EA4ZxC,WAhawC;EAiaxC,YAnawC;EAoaxC,iBApawC;EAqaxC,cAAA;EACA,sBAAA;EACA,uBAAA;EACA,mBAAA;EACA,WAAA;AC/GJ;ADiHI;EACE,sBAAA;EACA,kBAvasC;ACwT5C;ADmHE;EACE,kBAAA;EACA,mBAAA;ACjHJ;ADmHI;EACE,kBAAA;EACA,SAAA;EACA,QAAA;ACjHN;ADqHI;EACE,mBAAA;EACA,iBAAA;ACnHN;ADqHI;EACE,UAAA;EACA,UAAA;ACnHN;ADwHI;EACE,2BAAA;ACtHN;AD0HE;EACE,WAAA;EACA,gBAAA;EACA,SAAA;ACxHJ;ADyHI;EACE,gBAAA;EACA,cAAA;EACA,UAAA;EACA,WAAA;ACvHN;ADwHM;EACE,eAAA;ACtHR;ADuHQ;EACE,iBAAA;EACA,WAAA;EACA,gBAAA;EACA,YAAA;EACA,gBAAA;EACA,eAAA;ACrHV;ADsHU;EACE,yBAAA;EACA,WAAA;ACpHZ;ADsHU;EACE,YAAA;ACpHZ;ADsHU;EACE,uBAAA;ACpHZ;ADwHM;EACE,sBAAA;ACtHR;AD4HI;EACE,eAAA;AC1HN;AD8HE;EACE,aAAA;AC5HJ;ADgIE;EACE,iBAAA;EACA,mBAAA;AC9HJ;ADgIE;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,aAAA;EACA,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,wCAAA;EACA,yBAAA;EACA,cAAA;EACA,iCAAA;EACA,YAAA;EACA,yBAAA;EACA,iBAAA;EACA,YAAA;AC9HJ;AD+HI;EACE,yBAAA;AC7HN;AD+HI;EACE,kBAAA;AC7HN;AD+HI;EACE,cAAA;EACA,kBAAA;AC7HN;AD+HI;EACE,WAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EAEA,cAAA;EACA,QAAA;EACA,cAAA;EACA,mBAAA;EACA,0CAAA;EAKA,gCAAA;AC9HN;ADiIM;EACE,WAAA;EACA,iBAAA;EACA,0DAAA;AC/HR;ADkII;EACE,YAAA;AChIN;ADkII;EACE,YAAA;EACA,2BAAA;AChIN;ADmIE;EACE,gBAAA;EACA,oCAAA;ACjIJ;ADkII;EACE,cAAA;EACA,kBAAA;AChIN;;ADqIA;EACE;IACE,WAAA;EClIF;EDqII;IACE,WAAA;ECnIN;EDuIE;IACE,cAAA;IACA,gBAAA;ECrIJ;EDuIM;IACE,WAAA;IACA,uBAAA;ECrIR;EDuIQ;IACE,kBAAA;IACA,0BAAA;IACA,6BAAA;ECrIV;EDyIM;IACE,cAAA;ECvIR;EDyIQ;IACE,iBAAA;IACA,yBAAA;IACA,4BAAA;ECvIV;ED4II;IACE,mBAAA;EC1IN;ED4II;IACE,mBAAA;EC1IN;ED6II;IACE,mBAAA;EC3IN;ED8II;IACE,WAAA;EC5IN;ED+IE;IACE,cAAA;IACA,iBAAA;EC7IJ;ED+IM;IACE,YAAA;IACA,cAAA;EC7IR;ED+IQ;IACE,iBAAA;IACA,yBAAA;IACA,4BAAA;EC7IV;EDiJM;IACE,eAAA;EC/IR;EDiJQ;IACE,kBAAA;IACA,0BAAA;IACA,6BAAA;EC/IV;EDoJI;IACE,kBAAA;EClJN;EDqJI;IACE,kBAAA;ECnJN;EDsJI;IACE,iBAAA;IACA,YAAA;ECpJN;EDwJA;IACE,uBAAA;IACA,kDAAA;ECtJF;EDyJE;IACE,kCAAA;ECvJJ;ED0JE;IACE,0BAAA;IACA,UAAA;ECxJJ;ED2JE;IACE,2BAAA;IACA,UAAA;ECzJJ;AACF;AD6JA;EAEI;IACE,WAAA;EC5JJ;ED+JI;IACE,WAAA;EC7JN;EDiKI;IACE,YAAA;EC/JN;EDmKE;IACE,sBAAA;ECjKJ;AACF","sourcesContent":["/*\n* variables\n*/\n$md-drppicker-color: inherit !default;\n$md-drppicker-bg-color: #fff !default;\n\n$md-drppicker-cell-color: $md-drppicker-color !default;\n$md-drppicker-cell-border-color: transparent !default;\n$md-drppicker-cell-bg-color: $md-drppicker-bg-color !default;\n\n$md-drppicker-cell-hover-color: $md-drppicker-color !default;\n$md-drppicker-cell-hover-border-color: $md-drppicker-cell-border-color !default;\n$md-drppicker-cell-hover-bg-color: #eee !default;\n\n$md-drppicker-in-range-color: #000 !default;\n$md-drppicker-in-range-border-color: transparent !default;\n$md-drppicker-in-range-bg-color: #dde2e4 !default;\n\n$md-drppicker-active-color: #fff !default;\n$md-drppicker-active-bg-color: #3f51b5 !default;\n$md-drppicker-active-border-color: transparent !default;\n\n$md-drppicker-unselected-color: #999 !default;\n$md-drppicker-unselected-border-color: transparent !default;\n$md-drppicker-unselected-bg-color: #fff !default;\n\n$md-drppicker-width: 278px !default;\n$md-drppicker-width-double: auto !default;\n$md-drppicker-border-color: #ccc !default;\n\n$md-drppicker-calendar-margin: 4px !default;\n$md-drppicker-calendar-bg-color: $md-drppicker-bg-color !default;\n\n$md-drppicker-calendar-border-size: 1px !default;\n$md-drppicker-calendar-border-color: $md-drppicker-bg-color !default;\n$md-drppicker-calendar-border-radius: 4px !default;\n\n$md-drppicker-cell-size: 20px !default;\n$md-drppicker-cell-width: $md-drppicker-cell-size !default;\n$md-drppicker-cell-height: $md-drppicker-cell-size !default;\n\n$md-drppicker-cell-border-radius: $md-drppicker-calendar-border-radius !default;\n$md-drppicker-cell-border-size: 1px !default;\n\n$md-drppicker-control-height: 30px !default;\n$md-drppicker-control-line-height: $md-drppicker-control-height !default;\n$md-drppicker-control-color: #555 !default;\n\n$md-drppicker-control-border-size: 1px !default;\n$md-drppicker-control-border-color: #ccc !default;\n$md-drppicker-control-border-radius: 4px !default;\n\n$md-drppicker-control-active-border-size: 1px !default;\n$md-drppicker-control-active-border-color: #08c !default;\n$md-drppicker-control-active-border-radius: $md-drppicker-control-border-radius !default;\n\n$md-drppicker-control-disabled-color: #ccc !default;\n// Select\n$select-border: 1px solid #f2f2f2 !default;\n$select-background: rgba(255, 255, 255, 0.90) !default;\n$select-padding: 5px !default;\n$select-radius: 2px !default;\n$input-height: 3rem !default;\n/*\n* styles\n*/\n.md-drppicker {\n position: absolute;\n font-family: Roboto, sans-serif;\n color: $md-drppicker-color;\n background-color: $md-drppicker-bg-color;\n border-radius: 4px;\n width: $md-drppicker-width;\n padding: 4px;\n margin-top: -10px;\n overflow: hidden;\n z-index: 1000;\n font-size: 14px;\n background-color: #ffffff;\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 8px 0 rgba(0, 0, 0, 0.12);\n &.double {\n width: $md-drppicker-width-double;\n }\n &.inline {\n position: relative;\n display: inline-block;\n }\n\n &:before, &:after {\n position: absolute;\n display: inline-block;\n\n border-bottom-color: rgba(0, 0, 0, 0.2);\n content: '';\n }\n\n\n\n &.openscenter {\n &:before {\n left: 0;\n right: 0;\n width: 0;\n margin-left: auto;\n margin-right: auto;\n }\n\n &:after {\n left: 0;\n right: 0;\n width: 0;\n margin-left: auto;\n margin-right: auto;\n }\n }\n\n &.single {\n .ranges, .calendar {\n float: none;\n }\n }\n\n &.shown {\n transform: scale(1);\n transition: all 0.1s ease-in-out;\n transform-origin: 0 0;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n &.drops-up-left {\n transform-origin: 100% 100%;\n }\n &.drops-up-right {\n transform-origin: 0 100%;\n }\n &.drops-down-left {\n transform-origin: 100% 0;\n }\n &.drops-down-right {\n transform-origin: 0 0;\n }\n &.drops-down-center {\n transform-origin: 50%% 0;\n }\n &.drops-up-center {\n transform-origin: 50%% 100%;\n }\n .calendar {\n display: block;\n }\n }\n &.hidden {\n transition: all 0.1s ease;\n transform: scale(0);\n transform-origin: 0 0;\n cursor: default;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n &.drops-up-left {\n transform-origin: 100% 100%;\n }\n &.drops-up-right {\n transform-origin: 0 100%;\n }\n &.drops-down-left {\n transform-origin: 100% 0;\n }\n &.drops-down-right {\n transform-origin: 0 0;\n }\n &.drops-down-center {\n transform-origin: 50%% 0;\n }\n &.drops-up-center {\n transform-origin: 50%% 100%;\n }\n \n .calendar {\n display: none;\n }\n }\n\n .calendar {\n /* display: none; */\n max-width: $md-drppicker-width - ($md-drppicker-calendar-margin * 2);\n margin: $md-drppicker-calendar-margin;\n\n &.single {\n .calendar-table {\n border: none;\n }\n }\n\n th, td {\n padding: 0;\n white-space: nowrap;\n text-align: center;\n min-width: 32px;\n span {\n pointer-events: none;\n }\n }\n }\n\n .calendar-table {\n border: $md-drppicker-calendar-border-size solid $md-drppicker-calendar-border-color;\n padding: $md-drppicker-calendar-margin;\n border-radius: $md-drppicker-calendar-border-radius;\n background-color: $md-drppicker-calendar-bg-color;\n }\n\n table {\n width: 100%;\n margin: 0;\n }\n th {\n color: #988c8c;\n }\n td, th {\n text-align: center;\n width: $md-drppicker-cell-width;\n height: $md-drppicker-cell-height;\n border-radius: $md-drppicker-cell-border-radius;\n border: $md-drppicker-cell-border-size solid $md-drppicker-cell-border-color;\n white-space: nowrap;\n cursor: pointer;\n height: 2em;\n width: 2em;\n\n &.available {\n &.prev {\n display: block;\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\");\n background-repeat: no-repeat;\n background-size: .5em;\n background-position: center;\n opacity: .8;\n transition: background-color .2s ease;\n border-radius: 2em;\n &:hover {\n margin: 0;\n }\n }\n &.next {\n transform: rotate(180deg);\n display: block;\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\");\n background-repeat: no-repeat;\n background-size: .5em;\n background-position: center;\n opacity: .8;\n transition: background-color .2s ease;\n border-radius: 2em;\n &:hover {\n margin: 0;\n transform: rotate(180deg);\n }\n }\n &:hover {\n background-color: $md-drppicker-cell-hover-bg-color;\n border-color: $md-drppicker-cell-hover-border-color;\n color: $md-drppicker-cell-hover-color;\n background-repeat: no-repeat;\n background-size: .5em;\n background-position: center;\n margin: .25em 0;\n opacity: .8;\n /*transition: background-color .2s ease;*/\n border-radius: 2em;\n\n transform: scale(1);\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\n\n }\n }\n\n &.week {\n font-size: 80%;\n color: #ccc;\n }\n }\n\n td {\n margin: .25em 0;\n opacity: .8;\n transition: background-color .2s ease;\n border-radius: 2em;\n transform: scale(1);\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\n &.off {\n &, &.in-range, &.start-date, &.end-date {\n background-color: $md-drppicker-unselected-bg-color;\n border-color: $md-drppicker-unselected-border-color;\n color: $md-drppicker-unselected-color;\n }\n }\n\n //\n // Date Range\n &.in-range {\n background-color: $md-drppicker-in-range-bg-color;\n border-color: $md-drppicker-in-range-border-color;\n color: $md-drppicker-in-range-color;\n\n // TODO: Should this be static or should it be parameterized?\n border-radius: 0;\n }\n\n &.start-date {\n border-radius: 2em 0 0 2em;\n }\n\n &.end-date {\n border-radius: 0 2em 2em 0;\n }\n\n &.start-date.end-date {\n border-radius: $md-drppicker-cell-border-radius;\n }\n\n &.active {\n transition: background 300ms ease-out;\n background: rgba(0, 0, 0, 0.1);\n &, &:hover {\n background-color: $md-drppicker-active-bg-color;\n border-color: $md-drppicker-active-border-color;\n color: $md-drppicker-active-color;\n }\n }\n }\n\n th {\n &.month {\n width: auto;\n }\n }\n\n // disabled controls\n td, option {\n &.disabled {\n color: #999;\n cursor: not-allowed;\n text-decoration: line-through;\n }\n }\n\n .dropdowns {\n background-repeat: no-repeat;\n background-size: 10px;\n background-position-y: center;\n background-position-x: right;\n width: 50px;\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDI1NSAyNTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI1NSAyNTU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0iYXJyb3ctZHJvcC1kb3duIj4KCQk8cG9seWdvbiBwb2ludHM9IjAsNjMuNzUgMTI3LjUsMTkxLjI1IDI1NSw2My43NSAgICIgZmlsbD0iIzk4OGM4YyIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=);\n select {\n display: inline-block;\n background-color: $select-background;\n width: 100%;\n padding: $select-padding;\n border: $select-border;\n border-radius: $select-radius;\n height: $input-height;\n &.monthselect, &.yearselect {\n font-size: 12px;\n padding: 1px;\n height: auto;\n margin: 0;\n cursor: default;\n }\n &.hourselect, \n &.minuteselect,\n &.secondselect,\n &.ampmselect {\n width: 50px;\n margin: 0 auto;\n background: #eee;\n border: 1px solid #eee;\n padding: 2px;\n outline: 0;\n font-size: 12px;\n }\n\n &.monthselect,\n &.yearselect {\n cursor: pointer;\n opacity: 0;\n position: absolute; \n top: 0; \n left: 0; \n margin: 0;\n padding: 0;\n }\n }\n }\n\n th.month > div {\n position: relative; \n display: inline-block;\n }\n\n .calendar-time {\n text-align: center;\n margin: 4px auto 0 auto;\n line-height: 30px;\n position: relative;\n .select {\n display: inline;\n .select-item {\n display: inline-block;\n width: auto;\n position: relative;\n font-family: inherit;\n background-color: transparent;\n padding: 10px 10px 10px 0;\n font-size: 18px;\n border-radius: 0;\n border: none;\n border-bottom: 1px solid rgba(0,0,0, 0.12);\n /* Remove focus */\n &:after {\n position: absolute;\n top: 18px;\n right: 10px;\n /* Styling the down arrow */\n width: 0;\n height: 0;\n padding: 0;\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid rgba(0, 0, 0, 0.12);\n pointer-events: none;\n }\n &:focus {\n outline: none;\n }\n .select-label {\n color: rgba(0,0,0, 0.26);\n font-size: 16px;\n font-weight: normal;\n position: absolute;\n pointer-events: none;\n left: 0;\n top: 10px;\n transition: 0.2s ease all;\n }\n }\n }\n }\n \n .calendar-time select.disabled {\n color: #ccc;\n cursor: not-allowed;\n }\n\n .label-input {\n border: $md-drppicker-control-border-size solid $md-drppicker-control-border-color;\n border-radius: $md-drppicker-control-border-radius;\n color: $md-drppicker-control-color;\n height: $md-drppicker-control-line-height;\n line-height: $md-drppicker-control-height;\n display: block;\n vertical-align: middle;\n margin: 0 auto 5px auto;\n padding: 0 0 0 28px;\n width: 100%;\n\n &.active {\n border: $md-drppicker-control-active-border-size solid $md-drppicker-control-active-border-color;\n border-radius: $md-drppicker-control-active-border-radius;\n }\n }\n\n .md-drppicker_input {\n position: relative;\n padding: 0 30px 0 0;\n\n i, svg {\n position: absolute;\n left: 8px;\n top: 8px;\n }\n }\n &.rtl {\n .label-input {\n padding-right: 28px;\n padding-left: 6px;\n }\n .md-drppicker_input i, .md-drppicker_input svg{\n left: auto;\n right: 8px;\n }\n }\n /* ranges */\n .show-ranges {\n .drp-calendar.left {\n border-left: 1px solid #ddd;\n }\n }\n\n .ranges {\n float: none;\n text-align: left;\n margin: 0;\n ul {\n list-style: none;\n margin: 0 auto;\n padding: 0;\n width: 100%;\n li {\n font-size: 12px;\n button {\n padding: 8px 12px;\n width: 100%;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n &.active {\n background-color: #3f51b5;\n color: #fff;\n }\n &[disabled] {\n opacity: 0.3;\n }\n &:active {\n background: transparent;\n }\n }\n }\n li:hover {\n background-color: #eee;\n }\n }\n }\n\n .show-calendar {\n .ranges {\n margin-top: 8px;\n }\n }\n \n [hidden] {\n display: none;\n }\n\n /* button */\n .buttons {\n text-align: right;\n margin: 0 5px 5px 0;\n }\n .btn {\n position: relative;\n overflow: hidden;\n border-width: 0;\n outline: none;\n padding: 0px 6px;\n cursor: pointer;\n border-radius: 2px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, .6);\n background-color: #3f51b5;\n color: #ecf0f1;\n transition: background-color .4s;\n height: auto;\n text-transform: uppercase;\n line-height: 36px;\n border: none;\n &:hover, &:focus {\n background-color: #3f51b5;\n }\n & > * {\n position: relative;\n }\n & span {\n display: block;\n padding: 12px 24px;\n }\n &:before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n\n display: block;\n width: 0;\n padding-top: 0;\n border-radius: 100%;\n background-color: rgba(236, 240, 241, .3);\n -webkit-transform: translate(-50%, -50%);\n -moz-transform: translate(-50%, -50%);\n -ms-transform: translate(-50%, -50%);\n -o-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n }\n &:active {\n &:before {\n width: 120%;\n padding-top: 120%;\n transition: width .2s ease-out, padding-top .2s ease-out;\n }\n }\n &:disabled {\n opacity:0.5;\n }\n &.btn-default {\n color: black;\n background-color: gainsboro;\n }\n }\n .clear {\n box-shadow: none;\n background-color: #ffffff !important;\n svg {\n color: #eb3232;\n fill: currentColor;\n }\n }\n}\n\n@media (min-width: 564px) {\n .md-drppicker {\n width: auto;\n\n &.single {\n .calendar.left {\n clear: none;\n }\n }\n\n &.ltr {\n direction: ltr;\n text-align: left;\n .calendar{\n &.left {\n clear: left;\n /*margin-right: 1.5em;*/\n\n .calendar-table {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n &.right {\n margin-left: 0;\n\n .calendar-table {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n }\n\n .left .md-drppicker_input {\n padding-right: 35px;\n }\n .right .md-drppicker_input {\n padding-right: 35px;\n }\n\n .calendar.left .calendar-table {\n padding-right: 12px;\n }\n\n .ranges, .calendar {\n float: left;\n }\n }\n &.rtl {\n direction: rtl;\n text-align: right;\n .calendar{\n &.left {\n clear: right;\n margin-left: 0;\n\n .calendar-table {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n &.right {\n margin-right: 0;\n\n .calendar-table {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n }\n\n .left .md-drppicker_input {\n padding-left: 12px;\n }\n\n .calendar.left .calendar-table {\n padding-left: 12px;\n }\n\n .ranges, .calendar {\n text-align: right;\n float: right;\n }\n }\n }\n .drp-animate {\n transform: translate(0);\n transition: transform .2s ease,\n opacity .2s ease;\n\n &.drp-picker-site-this {\n transition-timing-function: linear;\n }\n\n &.drp-animate-right {\n transform: translateX(10%);\n opacity: 0;\n }\n\n &.drp-animate-left {\n transform: translateX(-10%);\n opacity: 0;\n }\n }\n}\n\n@media (min-width: 730px) {\n .md-drppicker {\n .ranges {\n width: auto;\n }\n &.ltr {\n .ranges {\n float: left;\n }\n }\n &.rtl {\n .ranges {\n float: right;\n }\n }\n\n .calendar.left {\n clear: none !important;\n }\n }\n}\n\n","/*\n* variables\n*/\n/*\n* styles\n*/\n.md-drppicker {\n position: absolute;\n font-family: Roboto, sans-serif;\n color: inherit;\n background-color: #fff;\n border-radius: 4px;\n width: 278px;\n padding: 4px;\n margin-top: -10px;\n overflow: hidden;\n z-index: 1000;\n font-size: 14px;\n background-color: #ffffff;\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 8px 0 rgba(0, 0, 0, 0.12);\n /* ranges */\n /* button */\n}\n.md-drppicker.double {\n width: auto;\n}\n.md-drppicker.inline {\n position: relative;\n display: inline-block;\n}\n.md-drppicker:before, .md-drppicker:after {\n position: absolute;\n display: inline-block;\n border-bottom-color: rgba(0, 0, 0, 0.2);\n content: \"\";\n}\n.md-drppicker.openscenter:before {\n left: 0;\n right: 0;\n width: 0;\n margin-left: auto;\n margin-right: auto;\n}\n.md-drppicker.openscenter:after {\n left: 0;\n right: 0;\n width: 0;\n margin-left: auto;\n margin-right: auto;\n}\n.md-drppicker.single .ranges, .md-drppicker.single .calendar {\n float: none;\n}\n.md-drppicker.shown {\n transform: scale(1);\n transition: all 0.1s ease-in-out;\n transform-origin: 0 0;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.md-drppicker.shown.drops-up-left {\n transform-origin: 100% 100%;\n}\n.md-drppicker.shown.drops-up-right {\n transform-origin: 0 100%;\n}\n.md-drppicker.shown.drops-down-left {\n transform-origin: 100% 0;\n}\n.md-drppicker.shown.drops-down-right {\n transform-origin: 0 0;\n}\n.md-drppicker.shown.drops-down-center {\n transform-origin: calc(NaN * 1%);\n}\n.md-drppicker.shown.drops-up-center {\n transform-origin: 50%;\n}\n.md-drppicker.shown .calendar {\n display: block;\n}\n.md-drppicker.hidden {\n transition: all 0.1s ease;\n transform: scale(0);\n transform-origin: 0 0;\n cursor: default;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.md-drppicker.hidden.drops-up-left {\n transform-origin: 100% 100%;\n}\n.md-drppicker.hidden.drops-up-right {\n transform-origin: 0 100%;\n}\n.md-drppicker.hidden.drops-down-left {\n transform-origin: 100% 0;\n}\n.md-drppicker.hidden.drops-down-right {\n transform-origin: 0 0;\n}\n.md-drppicker.hidden.drops-down-center {\n transform-origin: calc(NaN * 1%);\n}\n.md-drppicker.hidden.drops-up-center {\n transform-origin: 50%;\n}\n.md-drppicker.hidden .calendar {\n display: none;\n}\n.md-drppicker .calendar {\n /* display: none; */\n max-width: 270px;\n margin: 4px;\n}\n.md-drppicker .calendar.single .calendar-table {\n border: none;\n}\n.md-drppicker .calendar th, .md-drppicker .calendar td {\n padding: 0;\n white-space: nowrap;\n text-align: center;\n min-width: 32px;\n}\n.md-drppicker .calendar th span, .md-drppicker .calendar td span {\n pointer-events: none;\n}\n.md-drppicker .calendar-table {\n border: 1px solid #fff;\n padding: 4px;\n border-radius: 4px;\n background-color: #fff;\n}\n.md-drppicker table {\n width: 100%;\n margin: 0;\n}\n.md-drppicker th {\n color: #988c8c;\n}\n.md-drppicker td, .md-drppicker th {\n text-align: center;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n border: 1px solid transparent;\n white-space: nowrap;\n cursor: pointer;\n height: 2em;\n width: 2em;\n}\n.md-drppicker td.available.prev, .md-drppicker th.available.prev {\n display: block;\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\");\n background-repeat: no-repeat;\n background-size: 0.5em;\n background-position: center;\n opacity: 0.8;\n transition: background-color 0.2s ease;\n border-radius: 2em;\n}\n.md-drppicker td.available.prev:hover, .md-drppicker th.available.prev:hover {\n margin: 0;\n}\n.md-drppicker td.available.next, .md-drppicker th.available.next {\n transform: rotate(180deg);\n display: block;\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\");\n background-repeat: no-repeat;\n background-size: 0.5em;\n background-position: center;\n opacity: 0.8;\n transition: background-color 0.2s ease;\n border-radius: 2em;\n}\n.md-drppicker td.available.next:hover, .md-drppicker th.available.next:hover {\n margin: 0;\n transform: rotate(180deg);\n}\n.md-drppicker td.available:hover, .md-drppicker th.available:hover {\n background-color: #eee;\n border-color: transparent;\n color: inherit;\n background-repeat: no-repeat;\n background-size: 0.5em;\n background-position: center;\n margin: 0.25em 0;\n opacity: 0.8;\n /*transition: background-color .2s ease;*/\n border-radius: 2em;\n transform: scale(1);\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\n}\n.md-drppicker td.week, .md-drppicker th.week {\n font-size: 80%;\n color: #ccc;\n}\n.md-drppicker td {\n margin: 0.25em 0;\n opacity: 0.8;\n transition: background-color 0.2s ease;\n border-radius: 2em;\n transform: scale(1);\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\n}\n.md-drppicker td.off, .md-drppicker td.off.in-range, .md-drppicker td.off.start-date, .md-drppicker td.off.end-date {\n background-color: #fff;\n border-color: transparent;\n color: #999;\n}\n.md-drppicker td.in-range {\n background-color: #dde2e4;\n border-color: transparent;\n color: #000;\n border-radius: 0;\n}\n.md-drppicker td.start-date {\n border-radius: 2em 0 0 2em;\n}\n.md-drppicker td.end-date {\n border-radius: 0 2em 2em 0;\n}\n.md-drppicker td.start-date.end-date {\n border-radius: 4px;\n}\n.md-drppicker td.active {\n transition: background 300ms ease-out;\n background: rgba(0, 0, 0, 0.1);\n}\n.md-drppicker td.active, .md-drppicker td.active:hover {\n background-color: #3f51b5;\n border-color: transparent;\n color: #fff;\n}\n.md-drppicker th.month {\n width: auto;\n}\n.md-drppicker td.disabled, .md-drppicker option.disabled {\n color: #999;\n cursor: not-allowed;\n text-decoration: line-through;\n}\n.md-drppicker .dropdowns {\n background-repeat: no-repeat;\n background-size: 10px;\n background-position-y: center;\n background-position-x: right;\n width: 50px;\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDI1NSAyNTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI1NSAyNTU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBpZD0iYXJyb3ctZHJvcC1kb3duIj4KCQk8cG9seWdvbiBwb2ludHM9IjAsNjMuNzUgMTI3LjUsMTkxLjI1IDI1NSw2My43NSAgICIgZmlsbD0iIzk4OGM4YyIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=);\n}\n.md-drppicker .dropdowns select {\n display: inline-block;\n background-color: rgba(255, 255, 255, 0.9);\n width: 100%;\n padding: 5px;\n border: 1px solid #f2f2f2;\n border-radius: 2px;\n height: 3rem;\n}\n.md-drppicker .dropdowns select.monthselect, .md-drppicker .dropdowns select.yearselect {\n font-size: 12px;\n padding: 1px;\n height: auto;\n margin: 0;\n cursor: default;\n}\n.md-drppicker .dropdowns select.hourselect, .md-drppicker .dropdowns select.minuteselect, .md-drppicker .dropdowns select.secondselect, .md-drppicker .dropdowns select.ampmselect {\n width: 50px;\n margin: 0 auto;\n background: #eee;\n border: 1px solid #eee;\n padding: 2px;\n outline: 0;\n font-size: 12px;\n}\n.md-drppicker .dropdowns select.monthselect, .md-drppicker .dropdowns select.yearselect {\n cursor: pointer;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0;\n padding: 0;\n}\n.md-drppicker th.month > div {\n position: relative;\n display: inline-block;\n}\n.md-drppicker .calendar-time {\n text-align: center;\n margin: 4px auto 0 auto;\n line-height: 30px;\n position: relative;\n}\n.md-drppicker .calendar-time .select {\n display: inline;\n}\n.md-drppicker .calendar-time .select .select-item {\n display: inline-block;\n width: auto;\n position: relative;\n font-family: inherit;\n background-color: transparent;\n padding: 10px 10px 10px 0;\n font-size: 18px;\n border-radius: 0;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n /* Remove focus */\n}\n.md-drppicker .calendar-time .select .select-item:after {\n position: absolute;\n top: 18px;\n right: 10px;\n /* Styling the down arrow */\n width: 0;\n height: 0;\n padding: 0;\n content: \"\";\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid rgba(0, 0, 0, 0.12);\n pointer-events: none;\n}\n.md-drppicker .calendar-time .select .select-item:focus {\n outline: none;\n}\n.md-drppicker .calendar-time .select .select-item .select-label {\n color: rgba(0, 0, 0, 0.26);\n font-size: 16px;\n font-weight: normal;\n position: absolute;\n pointer-events: none;\n left: 0;\n top: 10px;\n transition: 0.2s ease all;\n}\n.md-drppicker .calendar-time select.disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n.md-drppicker .label-input {\n border: 1px solid #ccc;\n border-radius: 4px;\n color: #555;\n height: 30px;\n line-height: 30px;\n display: block;\n vertical-align: middle;\n margin: 0 auto 5px auto;\n padding: 0 0 0 28px;\n width: 100%;\n}\n.md-drppicker .label-input.active {\n border: 1px solid #08c;\n border-radius: 4px;\n}\n.md-drppicker .md-drppicker_input {\n position: relative;\n padding: 0 30px 0 0;\n}\n.md-drppicker .md-drppicker_input i, .md-drppicker .md-drppicker_input svg {\n position: absolute;\n left: 8px;\n top: 8px;\n}\n.md-drppicker.rtl .label-input {\n padding-right: 28px;\n padding-left: 6px;\n}\n.md-drppicker.rtl .md-drppicker_input i, .md-drppicker.rtl .md-drppicker_input svg {\n left: auto;\n right: 8px;\n}\n.md-drppicker .show-ranges .drp-calendar.left {\n border-left: 1px solid #ddd;\n}\n.md-drppicker .ranges {\n float: none;\n text-align: left;\n margin: 0;\n}\n.md-drppicker .ranges ul {\n list-style: none;\n margin: 0 auto;\n padding: 0;\n width: 100%;\n}\n.md-drppicker .ranges ul li {\n font-size: 12px;\n}\n.md-drppicker .ranges ul li button {\n padding: 8px 12px;\n width: 100%;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n}\n.md-drppicker .ranges ul li button.active {\n background-color: #3f51b5;\n color: #fff;\n}\n.md-drppicker .ranges ul li button[disabled] {\n opacity: 0.3;\n}\n.md-drppicker .ranges ul li button:active {\n background: transparent;\n}\n.md-drppicker .ranges ul li:hover {\n background-color: #eee;\n}\n.md-drppicker .show-calendar .ranges {\n margin-top: 8px;\n}\n.md-drppicker [hidden] {\n display: none;\n}\n.md-drppicker .buttons {\n text-align: right;\n margin: 0 5px 5px 0;\n}\n.md-drppicker .btn {\n position: relative;\n overflow: hidden;\n border-width: 0;\n outline: none;\n padding: 0px 6px;\n cursor: pointer;\n border-radius: 2px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);\n background-color: #3f51b5;\n color: #ecf0f1;\n transition: background-color 0.4s;\n height: auto;\n text-transform: uppercase;\n line-height: 36px;\n border: none;\n}\n.md-drppicker .btn:hover, .md-drppicker .btn:focus {\n background-color: #3f51b5;\n}\n.md-drppicker .btn > * {\n position: relative;\n}\n.md-drppicker .btn span {\n display: block;\n padding: 12px 24px;\n}\n.md-drppicker .btn:before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n width: 0;\n padding-top: 0;\n border-radius: 100%;\n background-color: rgba(236, 240, 241, 0.3);\n -webkit-transform: translate(-50%, -50%);\n -moz-transform: translate(-50%, -50%);\n -ms-transform: translate(-50%, -50%);\n -o-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n.md-drppicker .btn:active:before {\n width: 120%;\n padding-top: 120%;\n transition: width 0.2s ease-out, padding-top 0.2s ease-out;\n}\n.md-drppicker .btn:disabled {\n opacity: 0.5;\n}\n.md-drppicker .btn.btn-default {\n color: black;\n background-color: gainsboro;\n}\n.md-drppicker .clear {\n box-shadow: none;\n background-color: #ffffff !important;\n}\n.md-drppicker .clear svg {\n color: #eb3232;\n fill: currentColor;\n}\n\n@media (min-width: 564px) {\n .md-drppicker {\n width: auto;\n }\n .md-drppicker.single .calendar.left {\n clear: none;\n }\n .md-drppicker.ltr {\n direction: ltr;\n text-align: left;\n }\n .md-drppicker.ltr .calendar.left {\n clear: left;\n /*margin-right: 1.5em;*/\n }\n .md-drppicker.ltr .calendar.left .calendar-table {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .md-drppicker.ltr .calendar.right {\n margin-left: 0;\n }\n .md-drppicker.ltr .calendar.right .calendar-table {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .md-drppicker.ltr .left .md-drppicker_input {\n padding-right: 35px;\n }\n .md-drppicker.ltr .right .md-drppicker_input {\n padding-right: 35px;\n }\n .md-drppicker.ltr .calendar.left .calendar-table {\n padding-right: 12px;\n }\n .md-drppicker.ltr .ranges, .md-drppicker.ltr .calendar {\n float: left;\n }\n .md-drppicker.rtl {\n direction: rtl;\n text-align: right;\n }\n .md-drppicker.rtl .calendar.left {\n clear: right;\n margin-left: 0;\n }\n .md-drppicker.rtl .calendar.left .calendar-table {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .md-drppicker.rtl .calendar.right {\n margin-right: 0;\n }\n .md-drppicker.rtl .calendar.right .calendar-table {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .md-drppicker.rtl .left .md-drppicker_input {\n padding-left: 12px;\n }\n .md-drppicker.rtl .calendar.left .calendar-table {\n padding-left: 12px;\n }\n .md-drppicker.rtl .ranges, .md-drppicker.rtl .calendar {\n text-align: right;\n float: right;\n }\n .drp-animate {\n transform: translate(0);\n transition: transform 0.2s ease, opacity 0.2s ease;\n }\n .drp-animate.drp-picker-site-this {\n transition-timing-function: linear;\n }\n .drp-animate.drp-animate-right {\n transform: translateX(10%);\n opacity: 0;\n }\n .drp-animate.drp-animate-left {\n transform: translateX(-10%);\n opacity: 0;\n }\n}\n@media (min-width: 730px) {\n .md-drppicker .ranges {\n width: auto;\n }\n .md-drppicker.ltr .ranges {\n float: left;\n }\n .md-drppicker.rtl .ranges {\n float: right;\n }\n .md-drppicker .calendar.left {\n clear: none !important;\n }\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 88365: +/*!*****************************************************************************************!*\ + !*** ./src/app/gui-helpers/edit-placeholder/edit-placeholder.component.scss?ngResource ***! + \*****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .my-form-field mat-icon { + font-size: 22px; + vertical-align: middle; +} +:host .my-form-field input { + width: 300px; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/edit-placeholder/edit-placeholder.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gui-helpers/edit-placeholder/edit-placeholder.component.scss"],"names":[],"mappings":"AAGQ;EACI,eAAA;EACA,sBAAA;ACFZ;ADIQ;EACI,YAAA;ACFZ","sourcesContent":[":host {\n\n .my-form-field {\n mat-icon {\n font-size: 22px;\n vertical-align: middle;\n }\n input {\n width: 300px;\n }\n }\n}",":host .my-form-field mat-icon {\n font-size: 22px;\n vertical-align: middle;\n}\n:host .my-form-field input {\n width: 300px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 83251: +/*!*******************************************************************************************!*\ + !*** ./src/app/gui-helpers/mat-select-search/mat-select-search.component.scss?ngResource ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.mat-select-search-hidden { + visibility: hidden; +} + +.mat-select-search-inner { + position: absolute; + top: 0; + width: calc(100% + 22px); + border-bottom: 1px solid #cccccc; + background-color: var(--workPanelBackground); + z-index: 100; +} +.mat-select-search-inner.mat-select-search-inner-multiple { + width: calc( + 100% + 55px + ); +} + +::ng-deep .mat-select-search-panel { + /* allow absolute positioning relative to outer options container */ + transform: none !important; + max-height: 350px; +} + +.mat-select-search-input { + padding: 16px; + padding-right: 36px; + box-sizing: border-box; + font-size: 13px; + border: none; + background-color: var(--workPanelBackground); + color: var(--formInputColor); + line-height: 28px; + height: 28px; +} + +.mat-select-search-no-entries-found { + padding: 16px; + color: var(--formInputColor); +} + +.mat-select-search-clear { + position: absolute; + right: 0; + top: 4px; + color: var(--formInputColor); +} + +::ng-deep .cdk-overlay-pane-select-search { + /* correct offsetY so that the selected option is at the position of the select box when opening */ + margin-top: 40px; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/mat-select-search/mat-select-search.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gui-helpers/mat-select-search/mat-select-search.component.scss"],"names":[],"mappings":"AAKA;EACI,kBAAA;ACJJ;;ADMA;EACI,kBAAA;EACA,MAAA;EACA,wBAAA;EACA,gCAAA;EACA,4CAAA;EACA,YAAA;ACHJ;ADII;EACI;;SAAA;ACAR;;ADOA;EACI,mEAAA;EACA,0BAAA;EACA,iBAAA;ACJJ;;ADOA;EACI,aAAA;EACA,mBAAA;EACA,sBAAA;EACA,eAAA;EACA,YAAA;EACA,4CAAA;EACA,4BAAA;EACA,iBAAA;EACA,YAAA;ACJJ;;ADMA;EACI,aAAA;EACA,4BAAA;ACHJ;;ADKA;EACI,kBAAA;EACA,QAAA;EACA,QAAA;EACA,4BAAA;ACFJ;;ADIA;EACI,kGAAA;EAEA,gBAAA;ACFJ","sourcesContent":["$mat-menu-side-padding: 16px !default;\n$scrollbar-width: 10px;\n$clear-button-width: 20px;\n$multiple-check-width: 33px;\n\n.mat-select-search-hidden {\n visibility: hidden;\n}\n.mat-select-search-inner {\n position: absolute;\n top: 0;\n width: calc(100% + #{2 * 16px - $scrollbar-width});\n border-bottom: 1px solid #cccccc;\n background-color: var(--workPanelBackground);\n z-index: 100;\n &.mat-select-search-inner-multiple {\n width: calc(\n 100% + #{2 * 16px - $scrollbar-width +\n $multiple-check-width}\n );\n }\n}\n\n::ng-deep .mat-select-search-panel {\n /* allow absolute positioning relative to outer options container */\n transform: none !important;\n max-height: 350px;\n}\n\n.mat-select-search-input {\n padding: 16px;\n padding-right: 16px + $clear-button-width;\n box-sizing: border-box;\n font-size: 13px;\n border: none;\n background-color: var(--workPanelBackground);\n color: var(--formInputColor);\n line-height: 28px;\n height: 28px;\n}\n.mat-select-search-no-entries-found {\n padding: 16px;\n color: var(--formInputColor);\n}\n.mat-select-search-clear {\n position: absolute;\n right: 0;\n top: 4px;\n color: var(--formInputColor);\n}\n::ng-deep .cdk-overlay-pane-select-search {\n /* correct offsetY so that the selected option is at the position of the select box when opening */\n // margin-top: -50px;\n margin-top: 40px;\n}\n",".mat-select-search-hidden {\n visibility: hidden;\n}\n\n.mat-select-search-inner {\n position: absolute;\n top: 0;\n width: calc(100% + 22px);\n border-bottom: 1px solid #cccccc;\n background-color: var(--workPanelBackground);\n z-index: 100;\n}\n.mat-select-search-inner.mat-select-search-inner-multiple {\n width: calc(\n 100% + 55px\n );\n}\n\n::ng-deep .mat-select-search-panel {\n /* allow absolute positioning relative to outer options container */\n transform: none !important;\n max-height: 350px;\n}\n\n.mat-select-search-input {\n padding: 16px;\n padding-right: 36px;\n box-sizing: border-box;\n font-size: 13px;\n border: none;\n background-color: var(--workPanelBackground);\n color: var(--formInputColor);\n line-height: 28px;\n height: 28px;\n}\n\n.mat-select-search-no-entries-found {\n padding: 16px;\n color: var(--formInputColor);\n}\n\n.mat-select-search-clear {\n position: absolute;\n right: 0;\n top: 4px;\n color: var(--formInputColor);\n}\n\n::ng-deep .cdk-overlay-pane-select-search {\n /* correct offsetY so that the selected option is at the position of the select box when opening */\n margin-top: 40px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 47982: +/*!***********************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-scheduler/ngx-scheduler.component.scss?ngResource ***! + \***********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.container { + min-height: 100px; +} +.container ::ng-deep .mat-tab-label { + height: 34px !important; + min-width: 120px !important; +} +.container input[type=time]::-webkit-calendar-picker-indicator { + filter: var(--inputTime); +} +.container input[type=date]::-webkit-calendar-picker-indicator { + filter: var(--inputTime); +} +.container .time { + font-size: 16px; + font-family: "Segoe UI Symbol", "Roboto-Regular", "Helvetica Neue", sans-serif; +} +.container .hour-time span { + width: 40px; +} +.container .hour-time input { + width: 40px; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/ngx-scheduler/ngx-scheduler.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gui-helpers/ngx-scheduler/ngx-scheduler.component.scss"],"names":[],"mappings":"AAAA;EACI,iBAAA;ACCJ;ADAI;EACI,uBAAA;EACA,2BAAA;ACER;ADCI;EACI,wBAAA;ACCR;ADEI;EACI,wBAAA;ACAR;ADGI;EACI,eAAA;EACA,8EAAA;ACDR;ADKQ;EACI,WAAA;ACHZ;ADKQ;EACI,WAAA;ACHZ","sourcesContent":[".container {\n min-height: 100px;\n ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 120px !important;\n }\n\n input[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: var(--inputTime);\n }\n\n input[type=\"date\"]::-webkit-calendar-picker-indicator {\n filter: var(--inputTime);\n }\n\n .time {\n font-size: 16px;\n font-family: \"Segoe UI Symbol\", \"Roboto-Regular\", \"Helvetica Neue\", sans-serif;\n }\n\n .hour-time {\n span {\n width: 40px;\n }\n input {\n width: 40px;\n }\n } \n}",".container {\n min-height: 100px;\n}\n.container ::ng-deep .mat-tab-label {\n height: 34px !important;\n min-width: 120px !important;\n}\n.container input[type=time]::-webkit-calendar-picker-indicator {\n filter: var(--inputTime);\n}\n.container input[type=date]::-webkit-calendar-picker-indicator {\n filter: var(--inputTime);\n}\n.container .time {\n font-size: 16px;\n font-family: \"Segoe UI Symbol\", \"Roboto-Regular\", \"Helvetica Neue\", sans-serif;\n}\n.container .hour-time span {\n width: 40px;\n}\n.container .hour-time input {\n width: 40px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 27150: +/*!***************************************************************************************************************!*\ + !*** ./src/app/gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component.scss?ngResource ***! + \***************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.webcam-player-dialog .dialog-modal-close { + top: 0px; + right: 0px; + height: 22px; + width: 100%; + background-color: transparent; + font-size: 12px; + cursor: move !important; +} +.webcam-player-dialog .dialog-modal-close i { + float: right; +} +.webcam-player-dialog app-webcam-player { + padding-top: 22px; +}`, "",{"version":3,"sources":["webpack://./src/app/gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component.scss"],"names":[],"mappings":"AAEI;EAEI,QAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EAEA,6BAAA;EACA,eAAA;EACA,uBAAA;ACHR;ADIQ;EACI,YAAA;ACFZ;ADKI;EACI,iBAAA;ACHR","sourcesContent":[".webcam-player-dialog {\n //position: relative;\n .dialog-modal-close {\n //position: absolute;\n top: 0px;\n right: 0px;\n height: 22px;\n width: 100%;\n //color: rgba(0, 0, 0, 0.7);\n background-color: transparent;\n font-size: 12px;\n cursor: move !important;\n i {\n float: right;\n }\n }\n app-webcam-player {\n padding-top: 22px;\n }\n}\n",".webcam-player-dialog .dialog-modal-close {\n top: 0px;\n right: 0px;\n height: 22px;\n width: 100%;\n background-color: transparent;\n font-size: 12px;\n cursor: move !important;\n}\n.webcam-player-dialog .dialog-modal-close i {\n float: right;\n}\n.webcam-player-dialog app-webcam-player {\n padding-top: 22px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 42095: +/*!*****************************************************!*\ + !*** ./src/app/home/home.component.scss?ngResource ***! + \*****************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .home-body { + display: table; + margin: 0 auto; +} +:host .banner { + display: flex; + position: absolute; + left: 0px; + top: 0px; + right: 0px; + z-index: 999999; + font-size: 16px; + padding-left: 25px; + height: 48px; + background-color: #B71C1C; + color: #FFFFFF; +} +:host .banner div { + display: flex; + align-items: center; + margin: auto; +} +:host .banner mat-icon { + margin-left: 10px; +} +:host .home-container { + position: absolute; + left: 0px; + top: 0px; + bottom: 0px; + right: 0px; + overflow: auto; +} +:host .home-container-nav { + position: absolute; + left: 0px; + top: 48px; + bottom: 0px; + right: 0px; + overflow: auto; +} +:host .home-info { + text-align: center; +} +:host .header { + display: flex; + z-index: 9999 !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important; + /* min-height: 46px !important; */ + /* max-height: 46px !important; */ + height: 46px !important; + padding-left: 4px; + padding-right: 10px; + background-color: rgb(255, 255, 255); + line-height: 46px; +} +:host .header .items { + flex: 1; + align-items: center; + margin-left: 30px; +} +:host .header-login { + float: right; + line-height: 46px; + border-left-width: 1px; + border-left-style: solid; + padding-left: 10px; +} +:host .header-login .info { + display: inline-block; + line-height: 46px; + vertical-align: middle; + max-width: 140px; +} +:host .header-login .primary { + display: block; + font-size: 14px; + font-weight: 600; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: -moz-fit-content; + max-width: fit-content; + line-height: 16px; +} +:host .header-login .secondary { + display: block; + font-size: 14px; + font-weight: 100; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: -moz-fit-content; + max-width: fit-content; + color: gray; + line-height: 16px; +} +:host .header-date-time { + border-left-width: 1px; + border-left-style: solid; + padding-left: 10px; + padding-right: 10px; + display: inline-block; +} +:host .header-language { + padding-left: 10px; + padding-right: 10px; + display: inline-block; +} +:host .header-button { + float: right; + line-height: 46px; + text-align: right; + margin-right: 10px; +} +:host .header-button mat-icon { + font-size: 28px; + width: 28px; + height: 28px; +} +:host .button-counter { + display: inline-block; + position: absolute; + bottom: 7px; + right: 1px; + width: 16px; + height: 16px; + border-radius: 50%; + text-align: center; + line-height: 16px; + font-size: 12px; + font-weight: bold; +} +:host .alarm-layout { + position: relative; + right: 45px; + display: inline-block; + width: 40px; +} +:host .info-layout { + position: relative; + right: 20px; + display: inline-block; + width: 40px; +} +:host .sidenav { + padding: 0px 0px 0px 0px; + background-color: rgb(44, 44, 44) !important; + color: rgb(255, 255, 255) !important; + /* max-width: 100px; */ + display: inline-block !important; + top: 0px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important; +} +:host .sidenav-container { + width: 100%; + height: 100% !important; + background-color: #FFFFFF; +} +:host ::ng-deep .mat-drawer-backdrop.mat-drawer-shown { + background-color: transparent; +} +:host ::ng-deep #myuserinfo { + padding: unset !important; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2), 0 2px 6px 0 rgba(0, 0, 0, 0.18); +} +:host #alarms-panel { + background: white; + height: 300px; + transition: bottom 300ms; + width: 100%; + position: fixed; + bottom: -300px; +} +:host #alarms-panel.is-active { + bottom: 0px; + transition: bottom 300ms; + z-index: 999; +} +:host #alarms-panel.is-full-active { + top: 46px; + height: 100%; + transition: top 300ms; + z-index: 999; +}`, "",{"version":3,"sources":["webpack://./src/app/home/home.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/home/home.component.scss"],"names":[],"mappings":"AACI;EACI,cAAA;EACA,cAAA;ACAR;ADEI;EACI,aAAA;EACA,kBAAA;EACA,SAAA;EACA,QAAA;EACA,UAAA;EACA,eAAA;EACA,eAAA;EACA,kBAAA;EACA,YAAA;EACA,yBAAA;EACA,cAAA;ACAR;ADCQ;EACI,aAAA;EACJ,mBAAA;EACA,YAAA;ACCR;ADCQ;EACI,iBAAA;ACCZ;ADGI;EACI,kBAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;ACDR;ADQI;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;ACNR;ADaI;EACI,kBAAA;ACXR;ADcI;EACI,aAAA;EACA,wBAAA;EACA,0HAAA;EACA,iCAAA;EACA,iCAAA;EACA,uBAAA;EACA,iBAAA;EACA,mBAAA;EACA,oCAAA;EACA,iBAAA;ACZR;ADcQ;EACI,OAAA;EACA,mBAAA;EACA,iBAAA;ACZZ;ADgBI;EACI,YAAA;EACA,iBAAA;EACA,sBAAA;EACA,wBAAA;EACA,kBAAA;ACdR;ADgBQ;EACI,qBAAA;EACA,iBAAA;EACA,sBAAA;EACA,gBAAA;ACdZ;ADgBQ;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,2BAAA;EAAA,sBAAA;EACA,iBAAA;ACdZ;ADgBQ;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;EACA,2BAAA;EAAA,sBAAA;EACA,WAAA;EACA,iBAAA;ACdZ;ADkBI;EACI,sBAAA;EACA,wBAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;AChBR;ADmBI;EACI,kBAAA;EACA,mBAAA;EACA,qBAAA;ACjBR;ADoBI;EACI,YAAA;EACA,iBAAA;EACA,iBAAA;EACA,kBAAA;AClBR;ADqBI;EACI,eAAA;EACA,WAAA;EACA,YAAA;ACnBR;ADqBI;EACI,qBAAA;EACA,kBAAA;EACA,WAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,iBAAA;ACnBR;ADsBI;EACI,kBAAA;EACA,WAAA;EACA,qBAAA;EACA,WAAA;ACpBR;ADuBI;EACI,kBAAA;EACA,WAAA;EACA,qBAAA;EACA,WAAA;ACrBR;ADwBI;EACI,wBAAA;EACA,4CAAA;EACA,oCAAA;EACA,sBAAA;EACA,gCAAA;EACA,QAAA;EACA,0HAAA;ACtBR;ADyBI;EACI,WAAA;EACA,uBAAA;EACA,yBAAA;ACvBR;AD0BI;EACI,6BAAA;ACxBR;AD2BI;EACI,yBAAA;EACA,2EAAA;ACzBR;AD4BI;EACI,iBAAA;EACA,aAAA;EACA,wBAAA;EACA,WAAA;EACA,eAAA;EACA,cAAA;AC1BR;AD6BI;EACI,WAAA;EACA,wBAAA;EACA,YAAA;AC3BR;AD8BI;EACI,SAAA;EACA,YAAA;EACA,qBAAA;EACA,YAAA;AC5BR","sourcesContent":[":host {\n .home-body {\n display: table;\n margin: 0 auto;\n }\n .banner {\n display: flex;\n position: absolute;\n left: 0px;\n top:0px;\n right: 0px;\n z-index: 999999;\n font-size: 16px;\n padding-left: 25px;\n height: 48px;\n background-color: #B71C1C;\n color:#FFFFFF;\n div {\n display: flex;\n align-items: center;\n margin: auto;\n }\n mat-icon {\n margin-left: 10px;\n }\n }\n\n .home-container {\n position: absolute;\n left: 0px;\n top:0px;\n bottom: 0px;\n right: 0px;\n overflow: auto;\n // -webkit-user-select: none;\n // -moz-user-select: none;\n // -ms-user-select: none;\n // -o-user-select: none;\n // user-select: none;\n }\n .home-container-nav {\n position: absolute;\n left: 0px;\n top:48px;\n bottom: 0px;\n right: 0px;\n overflow: auto;\n // -webkit-user-select: none;\n // -moz-user-select: none;\n // -ms-user-select: none;\n // -o-user-select: none;\n // user-select: none;\n }\n .home-info {\n text-align: center;\n }\n\n .header {\n display: flex;\n z-index: 9999 !important;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2) !important;\n /* min-height: 46px !important; */\n /* max-height: 46px !important; */\n height: 46px !important;\n padding-left: 4px;\n padding-right: 10px;\n background-color: rgba(255, 255, 255, 1);\n line-height: 46px;\n\n .items {\n flex: 1;\n align-items: center;\n margin-left: 30px;\n }\n }\n\n .header-login {\n float: right;\n line-height: 46px;\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n\n .info {\n display: inline-block;\n line-height: 46px;\n vertical-align: middle;\n max-width: 140px;\n }\n .primary {\n display: block;\n font-size: 14px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n line-height: 16px;\n }\n .secondary {\n display: block;\n font-size: 14px;\n font-weight: 100;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n color: gray;\n line-height: 16px;\n }\n }\n\n .header-date-time {\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n }\n\n .header-language {\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n }\n\n .header-button {\n float: right;\n line-height: 46px;\n text-align: right;\n margin-right: 10px;\n }\n\n .header-button mat-icon {\n font-size: 28px;\n width: 28px;\n height:28px;\n }\n .button-counter {\n display: inline-block;\n position: absolute;\n bottom: 7px;\n right: 1px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n text-align: center;\n line-height: 16px;\n font-size: 12px;\n font-weight: bold;\n }\n\n .alarm-layout {\n position: relative;\n right: 45px;\n display: inline-block;\n width: 40px;\n }\n\n .info-layout {\n position: relative;\n right: 20px;\n display: inline-block;\n width: 40px;\n }\n\n .sidenav {\n padding: 0px 0px 0px 0px;\n background-color: rgba(44, 44, 44, 1) !important;\n color: rgba(255, 255, 255, 1) !important;\n /* max-width: 100px; */\n display: inline-block !important;\n top:0px;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2) !important;\n }\n\n .sidenav-container {\n width: 100%;\n height: 100% !important;\n background-color:#FFFFFF;\n }\n\n ::ng-deep .mat-drawer-backdrop.mat-drawer-shown {\n background-color: transparent;\n }\n\n ::ng-deep #myuserinfo {\n padding: unset !important;\n box-shadow: 0 2px 6px 0 rgba(0,0,0,0.2),0 2px 6px 0 rgba(0,0,0,0.18);\n }\n\n #alarms-panel {\n background: white;\n height: 300px;\n transition: bottom 300ms;\n width: 100%;\n position: fixed;\n bottom: -300px;\n }\n\n #alarms-panel.is-active {\n bottom: 0px;\n transition: bottom 300ms;\n z-index: 999;\n }\n\n #alarms-panel.is-full-active {\n top: 46px;\n height: 100%;\n transition: top 300ms;\n z-index: 999;\n }\n}",":host .home-body {\n display: table;\n margin: 0 auto;\n}\n:host .banner {\n display: flex;\n position: absolute;\n left: 0px;\n top: 0px;\n right: 0px;\n z-index: 999999;\n font-size: 16px;\n padding-left: 25px;\n height: 48px;\n background-color: #B71C1C;\n color: #FFFFFF;\n}\n:host .banner div {\n display: flex;\n align-items: center;\n margin: auto;\n}\n:host .banner mat-icon {\n margin-left: 10px;\n}\n:host .home-container {\n position: absolute;\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n overflow: auto;\n}\n:host .home-container-nav {\n position: absolute;\n left: 0px;\n top: 48px;\n bottom: 0px;\n right: 0px;\n overflow: auto;\n}\n:host .home-info {\n text-align: center;\n}\n:host .header {\n display: flex;\n z-index: 9999 !important;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important;\n /* min-height: 46px !important; */\n /* max-height: 46px !important; */\n height: 46px !important;\n padding-left: 4px;\n padding-right: 10px;\n background-color: rgb(255, 255, 255);\n line-height: 46px;\n}\n:host .header .items {\n flex: 1;\n align-items: center;\n margin-left: 30px;\n}\n:host .header-login {\n float: right;\n line-height: 46px;\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n}\n:host .header-login .info {\n display: inline-block;\n line-height: 46px;\n vertical-align: middle;\n max-width: 140px;\n}\n:host .header-login .primary {\n display: block;\n font-size: 14px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n line-height: 16px;\n}\n:host .header-login .secondary {\n display: block;\n font-size: 14px;\n font-weight: 100;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: fit-content;\n color: gray;\n line-height: 16px;\n}\n:host .header-date-time {\n border-left-width: 1px;\n border-left-style: solid;\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n}\n:host .header-language {\n padding-left: 10px;\n padding-right: 10px;\n display: inline-block;\n}\n:host .header-button {\n float: right;\n line-height: 46px;\n text-align: right;\n margin-right: 10px;\n}\n:host .header-button mat-icon {\n font-size: 28px;\n width: 28px;\n height: 28px;\n}\n:host .button-counter {\n display: inline-block;\n position: absolute;\n bottom: 7px;\n right: 1px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n text-align: center;\n line-height: 16px;\n font-size: 12px;\n font-weight: bold;\n}\n:host .alarm-layout {\n position: relative;\n right: 45px;\n display: inline-block;\n width: 40px;\n}\n:host .info-layout {\n position: relative;\n right: 20px;\n display: inline-block;\n width: 40px;\n}\n:host .sidenav {\n padding: 0px 0px 0px 0px;\n background-color: rgb(44, 44, 44) !important;\n color: rgb(255, 255, 255) !important;\n /* max-width: 100px; */\n display: inline-block !important;\n top: 0px;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2) !important;\n}\n:host .sidenav-container {\n width: 100%;\n height: 100% !important;\n background-color: #FFFFFF;\n}\n:host ::ng-deep .mat-drawer-backdrop.mat-drawer-shown {\n background-color: transparent;\n}\n:host ::ng-deep #myuserinfo {\n padding: unset !important;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2), 0 2px 6px 0 rgba(0, 0, 0, 0.18);\n}\n:host #alarms-panel {\n background: white;\n height: 300px;\n transition: bottom 300ms;\n width: 100%;\n position: fixed;\n bottom: -300px;\n}\n:host #alarms-panel.is-active {\n bottom: 0px;\n transition: bottom 300ms;\n z-index: 999;\n}\n:host #alarms-panel.is-full-active {\n top: 46px;\n height: 100%;\n transition: top 300ms;\n z-index: 999;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 5453: +/*!***********************************************************************************************!*\ + !*** ./src/app/integrations/node-red/node-red-flows/node-red-flows.component.scss?ngResource ***! + \***********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 40px; + width: 100%; + text-align: center; + line-height: 40px; + border-bottom: 1px solid var(--headerBorder); +} +:host .header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} +:host .work-panel { + position: absolute; + top: 40px; + left: 0px; + right: 0px; + bottom: 0px; +}`, "",{"version":3,"sources":["webpack://./src/app/integrations/node-red/node-red-flows/node-red-flows.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/integrations/node-red/node-red-flows/node-red-flows.component.scss"],"names":[],"mappings":"AACI;EACI,yCAAA;EACA,yBAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,4CAAA;ACAR;ADGI;EACI,qBAAA;EACA,wBAAA;ACDR;ADII;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;ACFR","sourcesContent":[":host {\n .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 40px;\n width: 100%;\n text-align: center;\n line-height: 40px;\n border-bottom: 1px solid var(--headerBorder);\n }\n\n .header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n }\n\n .work-panel {\n position: absolute;\n top: 40px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n }\n}",":host .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 40px;\n width: 100%;\n text-align: center;\n line-height: 40px;\n border-bottom: 1px solid var(--headerBorder);\n}\n:host .header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n:host .work-panel {\n position: absolute;\n top: 40px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 27590: +/*!******************************************************************************************!*\ + !*** ./src/app/language/language-text-list/language-text-list.component.scss?ngResource ***! + \******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} +:host .header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} +:host .work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); +} +:host .container { + width: 100%; + height: 100%; +} +:host .mat-table { + width: 100%; + height: 100%; + table-layout: fixed; + overflow: auto; +} +:host .mat-column-select { + overflow: visible; + flex: 0 0 80px; +} +:host .mat-column-id { + flex: 1 1 200px; +} +:host .mat-column-group { + flex: 1 1 200px; +} +:host .mat-column-value { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-1, :host mat-cell.mat-column-lang-1 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-2, :host mat-cell.mat-column-lang-2 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-3, :host mat-cell.mat-column-lang-3 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-4, :host mat-cell.mat-column-lang-4 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-5, :host mat-cell.mat-column-lang-5 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-6, :host mat-cell.mat-column-lang-6 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-7, :host mat-cell.mat-column-lang-7 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-8, :host mat-cell.mat-column-lang-8 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-9, :host mat-cell.mat-column-lang-9 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-10, :host mat-cell.mat-column-lang-10 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-11, :host mat-cell.mat-column-lang-11 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-12, :host mat-cell.mat-column-lang-12 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-13, :host mat-cell.mat-column-lang-13 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-14, :host mat-cell.mat-column-lang-14 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-15, :host mat-cell.mat-column-lang-15 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-16, :host mat-cell.mat-column-lang-16 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-17, :host mat-cell.mat-column-lang-17 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-18, :host mat-cell.mat-column-lang-18 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-19, :host mat-cell.mat-column-lang-19 { + flex: 1 1 200px; +} +:host mat-header-cell.mat-column-lang-20, :host mat-cell.mat-column-lang-20 { + flex: 1 1 200px; +} +:host .mat-column-remove { + flex: 1 1 60px; + padding-right: 0px !important; +} +:host .mat-cell { + font-size: 13px; + overflow: visible; +} +:host .mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +:host .mat-header-cell { + font-size: 15px; + overflow: visible; +}`, "",{"version":3,"sources":["webpack://./src/app/language/language-text-list/language-text-list.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/language/language-text-list/language-text-list.component.scss"],"names":[],"mappings":"AACI;EACI,yCAAA;EACA,yBAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,4CAAA;ACAR;ADEQ;EACI,qBAAA;EACA,wBAAA;ACAZ;ADII;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,4CAAA;ACFR;ADKI;EACI,WAAA;EACA,YAAA;ACHR;ADMI;EACI,WAAA;EACA,YAAA;EACA,mBAAA;EACA,cAAA;ACJR;ADOI;EACI,iBAAA;EACA,cAAA;ACLR;ADQI;EACI,eAAA;ACNR;ADUI;EACI,eAAA;ACRR;ADWI;EACI,eAAA;ACTR;ADaQ;EACI,eAAA;ACXZ;ADUQ;EACI,eAAA;ACRZ;ADOQ;EACI,eAAA;ACLZ;ADIQ;EACI,eAAA;ACFZ;ADCQ;EACI,eAAA;ACCZ;ADFQ;EACI,eAAA;ACIZ;ADLQ;EACI,eAAA;ACOZ;ADRQ;EACI,eAAA;ACUZ;ADXQ;EACI,eAAA;ACaZ;ADdQ;EACI,eAAA;ACgBZ;ADjBQ;EACI,eAAA;ACmBZ;ADpBQ;EACI,eAAA;ACsBZ;ADvBQ;EACI,eAAA;ACyBZ;AD1BQ;EACI,eAAA;AC4BZ;AD7BQ;EACI,eAAA;AC+BZ;ADhCQ;EACI,eAAA;ACkCZ;ADnCQ;EACI,eAAA;ACqCZ;ADtCQ;EACI,eAAA;ACwCZ;ADzCQ;EACI,eAAA;AC2CZ;AD5CQ;EACI,eAAA;AC8CZ;AD1CI;EACI,cAAA;EACA,6BAAA;AC4CR;ADzCI;EACI,eAAA;EACA,iBAAA;AC2CR;ADxCI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;AC0CR;ADvCI;EACI,eAAA;EACA,iBAAA;ACyCR","sourcesContent":[":host {\n .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n\n mat-icon {\n display: inline-block;\n vertical-align: text-top;\n }\n }\n\n .work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n }\n\n .container {\n width: 100%;\n height: 100%;\n }\n\n .mat-table {\n width: 100%;\n height: 100%;\n table-layout: fixed;\n overflow: auto;\n }\n\n .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n }\n\n .mat-column-id {\n flex: 1 1 200px;\n }\n\n\n .mat-column-group {\n flex: 1 1 200px;\n }\n\n .mat-column-value {\n flex: 1 1 200px;\n }\n\n @for $i from 1 through 20 {\n mat-header-cell.mat-column-lang-#{$i}, mat-cell.mat-column-lang-#{$i} {\n flex: 1 1 200px;\n }\n }\n\n .mat-column-remove {\n flex: 1 1 60px;\n padding-right: 0px !important;\n }\n\n .mat-cell {\n font-size: 13px;\n overflow: visible;\n }\n\n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n }\n\n .mat-header-cell {\n font-size: 15px;\n overflow: visible;\n }\n\n}\n",":host .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n:host .header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n:host .work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n}\n:host .container {\n width: 100%;\n height: 100%;\n}\n:host .mat-table {\n width: 100%;\n height: 100%;\n table-layout: fixed;\n overflow: auto;\n}\n:host .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n}\n:host .mat-column-id {\n flex: 1 1 200px;\n}\n:host .mat-column-group {\n flex: 1 1 200px;\n}\n:host .mat-column-value {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-1, :host mat-cell.mat-column-lang-1 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-2, :host mat-cell.mat-column-lang-2 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-3, :host mat-cell.mat-column-lang-3 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-4, :host mat-cell.mat-column-lang-4 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-5, :host mat-cell.mat-column-lang-5 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-6, :host mat-cell.mat-column-lang-6 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-7, :host mat-cell.mat-column-lang-7 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-8, :host mat-cell.mat-column-lang-8 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-9, :host mat-cell.mat-column-lang-9 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-10, :host mat-cell.mat-column-lang-10 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-11, :host mat-cell.mat-column-lang-11 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-12, :host mat-cell.mat-column-lang-12 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-13, :host mat-cell.mat-column-lang-13 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-14, :host mat-cell.mat-column-lang-14 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-15, :host mat-cell.mat-column-lang-15 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-16, :host mat-cell.mat-column-lang-16 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-17, :host mat-cell.mat-column-lang-17 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-18, :host mat-cell.mat-column-lang-18 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-19, :host mat-cell.mat-column-lang-19 {\n flex: 1 1 200px;\n}\n:host mat-header-cell.mat-column-lang-20, :host mat-cell.mat-column-lang-20 {\n flex: 1 1 200px;\n}\n:host .mat-column-remove {\n flex: 1 1 60px;\n padding-right: 0px !important;\n}\n:host .mat-cell {\n font-size: 13px;\n overflow: visible;\n}\n:host .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n:host .mat-header-cell {\n font-size: 15px;\n overflow: visible;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 86218: +/*!**************************************************************************************************!*\ + !*** ./src/app/language/language-text-property/language-text-property.component.scss?ngResource ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container .mat-dialog-content { + width: 400px; + min-height: 220px; + max-height: 400px; + overflow: auto; + padding-bottom: 7px; +} +:host .container .mat-dialog-content .my-form-field { + display: block; +} +:host .container .mat-dialog-content .my-form-field input, +:host .container .mat-dialog-content .my-form-field span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/language/language-text-property/language-text-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/language/language-text-property/language-text-property.component.scss"],"names":[],"mappings":"AAEQ;EAEI,YAAA;EACA,iBAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;ACFZ;ADIY;EACI,cAAA;ACFhB;ADGgB;;EAEI,uBAAA;ACDpB","sourcesContent":[":host {\n .container {\n .mat-dialog-content\n {\n width: 400px;\n min-height: 220px;\n max-height: 400px;\n overflow: auto;\n padding-bottom: 7px;\n\n .my-form-field {\n display: block;\n input,\n span {\n width: calc(100% - 5px);\n }\n }\n }\n }\n}",":host .container .mat-dialog-content {\n width: 400px;\n min-height: 220px;\n max-height: 400px;\n overflow: auto;\n padding-bottom: 7px;\n}\n:host .container .mat-dialog-content .my-form-field {\n display: block;\n}\n:host .container .mat-dialog-content .my-form-field input,\n:host .container .mat-dialog-content .my-form-field span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 20457: +/*!**************************************************************************************************!*\ + !*** ./src/app/language/language-type-property/language-type-property.component.scss?ngResource ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container .toolbox { + float: right; + line-height: 44px; +} +:host .container .toolbox button { + /* margin-right: 8px; */ + margin-left: 10px; +} +:host .container .mat-dialog-content { + width: 380px; + min-height: 220px; + max-height: 400px; + overflow: auto; + padding-bottom: 7px; +} +:host .container .mat-dialog-content .language-item { + gap: 10px; +} +:host .container .mat-dialog-content .remove { + margin-left: 20px; +}`, "",{"version":3,"sources":["webpack://./src/app/language/language-type-property/language-type-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/language/language-type-property/language-type-property.component.scss"],"names":[],"mappings":"AAEQ;EACI,YAAA;EACA,iBAAA;ACDZ;ADEY;EACI,uBAAA;EACA,iBAAA;ACAhB;ADIQ;EAEI,YAAA;EACA,iBAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;ACHZ;ADKY;EACI,SAAA;ACHhB;ADMY;EACI,iBAAA;ACJhB","sourcesContent":[":host {\n .container {\n .toolbox {\n float: right;\n line-height: 44px;\n button {\n /* margin-right: 8px; */\n margin-left: 10px;\n }\n }\n\n .mat-dialog-content\n {\n width: 380px;\n min-height: 220px;\n max-height: 400px;\n overflow: auto;\n padding-bottom: 7px;\n\n .language-item {\n gap: 10px;\n }\n\n .remove {\n margin-left: 20px;\n }\n }\n }\n}",":host .container .toolbox {\n float: right;\n line-height: 44px;\n}\n:host .container .toolbox button {\n /* margin-right: 8px; */\n margin-left: 10px;\n}\n:host .container .mat-dialog-content {\n width: 380px;\n min-height: 220px;\n max-height: 400px;\n overflow: auto;\n padding-bottom: 7px;\n}\n:host .container .mat-dialog-content .language-item {\n gap: 10px;\n}\n:host .container .mat-dialog-content .remove {\n margin-left: 20px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 15684: +/*!******************************************************************************************!*\ + !*** ./src/app/maps/maps-location-import/maps-location-import.component.scss?ngResource ***! + \******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container ::ng-deep .location-input { + font-size: 13px; + min-width: 450px; + vertical-align: unset !important; + width: unset; +} + +::ng-deep .location-option-label { + line-height: 28px !important; + height: 28px !important; +} +::ng-deep .location-option-label span { + font-size: 13px; +}`, "",{"version":3,"sources":["webpack://./src/app/maps/maps-location-import/maps-location-import.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/maps/maps-location-import/maps-location-import.component.scss"],"names":[],"mappings":"AAIQ;EACI,eAAA;EACA,gBAAA;EACA,gCAAA;EACA,YAAA;ACHZ;;ADQA;EAEI,4BAAA;EACA,uBAAA;ACNJ;ADQI;EACI,eAAA;ACNR","sourcesContent":[":host {\n\n .container {\n\n ::ng-deep .location-input {\n font-size: 13px;\n min-width: 450px;\n vertical-align: unset !important;\n width: unset;\n }\n }\n}\n\n::ng-deep .location-option-label {\n\n line-height: 28px !important;\n height: 28px !important;\n\n span {\n font-size: 13px;\n }\n}\n",":host .container ::ng-deep .location-input {\n font-size: 13px;\n min-width: 450px;\n vertical-align: unset !important;\n width: unset;\n}\n\n::ng-deep .location-option-label {\n line-height: 28px !important;\n height: 28px !important;\n}\n::ng-deep .location-option-label span {\n font-size: 13px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 38829: +/*!**************************************************************************************!*\ + !*** ./src/app/maps/maps-location-list/maps-location-list.component.scss?ngResource ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} +:host .header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} +:host .work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); +} +:host .mat-column-select { + overflow: visible; + flex: 0 0 80px; +} +:host .mat-column-name { + flex: 1 1 200px; +} +:host .mat-column-view { + flex: 1 1 140px; +} +:host .mat-column-description { + flex: 1 1 140px; +} +:host .mat-column-remove { + flex: 0 0 60px; +} +:host .mat-cell { + font-size: 13px; +} +:host .mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +:host .mat-header-cell { + font-size: 15px; +}`, "",{"version":3,"sources":["webpack://./src/app/maps/maps-location-list/maps-location-list.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/maps/maps-location-list/maps-location-list.component.scss"],"names":[],"mappings":"AACI;EACI,yCAAA;EACA,yBAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,4CAAA;ACAR;ADEQ;EACI,qBAAA;EACA,wBAAA;ACAZ;ADII;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,4CAAA;ACFR;ADKI;EACI,iBAAA;EACA,cAAA;ACHR;ADMI;EACI,eAAA;ACJR;ADOI;EACI,eAAA;ACLR;ADQI;EACI,eAAA;ACNR;ADQI;EACI,cAAA;ACNR;ADSI;EACI,eAAA;ACPR;ADUI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;ACRR;ADWI;EACI,eAAA;ACTR","sourcesContent":[":host {\n .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n\n mat-icon {\n display: inline-block;\n vertical-align: text-top;\n }\n }\n\n .work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n }\n\n .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n }\n\n .mat-column-name {\n flex: 1 1 200px;\n }\n\n .mat-column-view {\n flex: 1 1 140px;\n }\n\n .mat-column-description {\n flex: 1 1 140px;\n }\n .mat-column-remove {\n flex: 0 0 60px;\n }\n\n .mat-cell {\n font-size: 13px;\n }\n\n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n }\n\n .mat-header-cell {\n font-size: 15px;\n }\n}",":host .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n:host .header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n:host .work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n}\n:host .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n}\n:host .mat-column-name {\n flex: 1 1 200px;\n}\n:host .mat-column-view {\n flex: 1 1 140px;\n}\n:host .mat-column-description {\n flex: 1 1 140px;\n}\n:host .mat-column-remove {\n flex: 0 0 60px;\n}\n:host .mat-cell {\n font-size: 13px;\n}\n:host .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n:host .mat-header-cell {\n font-size: 15px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 96780: +/*!**********************************************************************************************!*\ + !*** ./src/app/maps/maps-location-property/maps-location-property.component.scss?ngResource ***! + \**********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container .mat-dialog-content { + width: 400px; + min-height: 220px; + overflow: hidden; + padding-bottom: 7px; +} +:host .container .mat-dialog-content .item-block { + display: block; +} +:host .container .mat-dialog-content .item-block mat-select, +:host .container .mat-dialog-content .item-block input, +:host .container .mat-dialog-content .item-block span { + width: calc(100% - 5px); +} +:host .container .mat-dialog-content .form-input-dual div { + width: 40%; +} +:host .container .mat-dialog-content .my-form-field { + width: 100%; +} +:host .container .mat-dialog-content .my-form-field mat-select { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/maps/maps-location-property/maps-location-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/maps/maps-location-property/maps-location-property.component.scss"],"names":[],"mappings":"AAEQ;EAEI,YAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;ACFZ;ADIY;EACI,cAAA;ACFhB;ADIgB;;;EAGI,uBAAA;ACFpB;ADOgB;EACI,UAAA;ACLpB;ADSY;EACI,WAAA;ACPhB;ADQgB;EACI,uBAAA;ACNpB","sourcesContent":[":host {\n .container {\n .mat-dialog-content\n {\n width: 400px;\n min-height: 220px;\n overflow: hidden;\n padding-bottom: 7px;\n\n .item-block {\n display: block;\n\n mat-select,\n input,\n span {\n width: calc(100% - 5px);\n }\n }\n\n .form-input-dual {\n div {\n width: 40%;\n }\n }\n\n .my-form-field {\n width: 100%;\n mat-select {\n width: calc(100% - 5px);\n }\n }\n }\n }\n}",":host .container .mat-dialog-content {\n width: 400px;\n min-height: 220px;\n overflow: hidden;\n padding-bottom: 7px;\n}\n:host .container .mat-dialog-content .item-block {\n display: block;\n}\n:host .container .mat-dialog-content .item-block mat-select,\n:host .container .mat-dialog-content .item-block input,\n:host .container .mat-dialog-content .item-block span {\n width: calc(100% - 5px);\n}\n:host .container .mat-dialog-content .form-input-dual div {\n width: 40%;\n}\n:host .container .mat-dialog-content .my-form-field {\n width: 100%;\n}\n:host .container .mat-dialog-content .my-form-field mat-select {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 56285: +/*!****************************************************************************************************!*\ + !*** ./src/app/maps/maps-view/maps-fab-button-menu/maps-fab-button-menu.component.scss?ngResource ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .fab-container .fab-buttons { + position: relative; +} +:host .fab-container .fab { + position: absolute; + transition: transform 0.3s ease-in-out; + background-color: rgba(255, 255, 255, 0.7) !important; + color: #2B82C8 !important; +}`, "",{"version":3,"sources":["webpack://./src/app/maps/maps-view/maps-fab-button-menu/maps-fab-button-menu.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/maps/maps-view/maps-fab-button-menu/maps-fab-button-menu.component.scss"],"names":[],"mappings":"AAGQ;EACI,kBAAA;ACFZ;ADMQ;EACI,kBAAA;EACA,sCAAA;EACA,qDAAA;EACA,yBAAA;ACJZ","sourcesContent":[":host {\n .fab-container {\n\n .fab-buttons {\n position: relative;\n\n }\n\n .fab {\n position: absolute;\n transition: transform 0.3s ease-in-out;\n background-color: rgba(255, 255, 255, 0.7) !important;\n color: #2B82C8 !important;\n }\n }\n}",":host .fab-container .fab-buttons {\n position: relative;\n}\n:host .fab-container .fab {\n position: absolute;\n transition: transform 0.3s ease-in-out;\n background-color: rgba(255, 255, 255, 0.7) !important;\n color: #2B82C8 !important;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 80896: +/*!********************************************************************!*\ + !*** ./src/app/maps/maps-view/maps-view.component.scss?ngResource ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + width: 100%; +} +:host .container .tools_panel { + display: inline-flex; + width: 100%; + height: 37px; + background-color: var(--headerBackground); + color: var(--headerColor); +} +:host .container #map { + position: absolute; + left: 0px; + right: 0px; + bottom: 0px; +} +:host .container ::ng-deep .leaflet-popup-content-wrapper { + padding: unset; + border-radius: unset; + background-color: transparent; +} +:host .container ::ng-deep .leaflet-popup-content { + width: auto !important; + border-radius: unset; + margin: unset; + box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); +} +:host .container ::ng-deep .leaflet-popup-close-button { + font-size: 24px; +} +:host .container ::ng-deep .leaflet-popup-tip-container { + display: none !important; +} +:host .container .hidden-trigger { + position: absolute; + opacity: 0; + pointer-events: none; + z-index: -1; +}`, "",{"version":3,"sources":["webpack://./src/app/maps/maps-view/maps-view.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/maps/maps-view/maps-view.component.scss"],"names":[],"mappings":"AACI;EACI,WAAA;ACAR;ADEQ;EACI,oBAAA;EACA,WAAA;EAAa,YAAA;EACb,yCAAA;EACA,yBAAA;ACCZ;ADCQ;EAGI,kBAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;ACDZ;ADIQ;EACI,cAAA;EACA,oBAAA;EACA,6BAAA;ACFZ;ADKQ;EACI,sBAAA;EACA,oBAAA;EACA,aAAA;EACA,0CAAA;ACHZ;ADMQ;EACI,eAAA;ACJZ;ADOQ;EACI,wBAAA;ACLZ;ADQQ;EACI,kBAAA;EACA,UAAA;EACA,oBAAA;EACA,WAAA;ACNZ","sourcesContent":[":host {\n .container {\n width: 100%;\n\n .tools_panel {\n display: inline-flex;\n width: 100%; height: 37px;\n background-color: var(--headerBackground);\n color: var(--headerColor);\n }\n #map {\n // width: 100%;\n // height: 100%;\n position: absolute;\n left: 0px;\n right: 0px;\n bottom: 0px;\n }\n\n ::ng-deep .leaflet-popup-content-wrapper {\n padding: unset;\n border-radius: unset;\n background-color: transparent;\n }\n\n ::ng-deep .leaflet-popup-content {\n width: auto !important;\n border-radius: unset;\n margin: unset;\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n }\n\n ::ng-deep .leaflet-popup-close-button {\n font-size: 24px;\n }\n\n ::ng-deep .leaflet-popup-tip-container {\n display: none !important;\n }\n\n .hidden-trigger {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n z-index: -1;\n }\n }\n}",":host .container {\n width: 100%;\n}\n:host .container .tools_panel {\n display: inline-flex;\n width: 100%;\n height: 37px;\n background-color: var(--headerBackground);\n color: var(--headerColor);\n}\n:host .container #map {\n position: absolute;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n:host .container ::ng-deep .leaflet-popup-content-wrapper {\n padding: unset;\n border-radius: unset;\n background-color: transparent;\n}\n:host .container ::ng-deep .leaflet-popup-content {\n width: auto !important;\n border-radius: unset;\n margin: unset;\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n}\n:host .container ::ng-deep .leaflet-popup-close-button {\n font-size: 24px;\n}\n:host .container ::ng-deep .leaflet-popup-tip-container {\n display: none !important;\n}\n:host .container .hidden-trigger {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n z-index: -1;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 89645: +/*!*********************************************************************************************!*\ + !*** ./src/app/notifications/notification-list/notification-list.component.scss?ngResource ***! + \*********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + /* + .table { + height: 705px; + } */ +} +:host .header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} +:host .header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} +:host .work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; +} +:host .container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 0px; + left: 0px; + right: 0px; +} +:host .mat-table { + overflow: auto; + height: 100%; +} +:host .mat-row { + min-height: 40px; + height: 43px; +} +:host .mat-cell { + font-size: 13px; +} +:host .mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +:host .mat-header-cell { + font-size: 15px; +} +:host .mat-column-select { + overflow: visible; + flex: 0 0 80px; +} +:host .mat-column-name { + flex: 1 1 120px; +} +:host .mat-column-receiver { + flex: 1 1 460px; +} +:host .mat-column-delay { + flex: 0 0 60px; +} +:host .mat-column-interval { + flex: 0 0 80px; +} +:host .mat-column-type { + flex: 0 0 80px; +} +:host .mat-column-enabled { + flex: 0 0 100px; +} +:host .mat-column-subscriptions { + flex: 3 1 200px; +} +:host .mat-column-remove { + flex: 0 0 60px; +} +:host .selectidthClass { + flex: 0 0 50px; +} +:host .message-error { + display: inline-block; + color: red; +} +:host .my-header-filter ::ng-deep .mat-sort-header-button { + display: block; + text-align: left; + margin-top: 5px; +} +:host .my-header-filter ::ng-deep .mat-sort-header-arrow { + top: -12px; + right: 20px; +} +:host .my-header-filter-input { + display: block; + margin-top: 4px; + margin-bottom: 6px; + padding: 3px 1px 3px 2px; + border-radius: 2px; +}`, "",{"version":3,"sources":["webpack://./src/app/notifications/notification-list/notification-list.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/notifications/notification-list/notification-list.component.scss"],"names":[],"mappings":"AAAA;EAqCI;;;KAAA;AChCJ;ADJI;EACI,yCAAA;EACA,yBAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,4CAAA;ACMR;ADHI;EACI,qBAAA;EACA,wBAAA;ACKR;ADFI;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;ACIR;ADDI;EACI,aAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;ACGR;ADII;EACI,cAAA;EACA,YAAA;ACFR;ADKI;EACI,gBAAA;EACA,YAAA;ACHR;ADMI;EACI,eAAA;ACJR;ADOI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;ACLR;ADQI;EACI,eAAA;ACNR;ADSI;EACI,iBAAA;EACA,cAAA;ACPR;ADUI;EACI,eAAA;ACRR;ADWI;EACI,eAAA;ACTR;ADYI;EACI,cAAA;ACVR;ADaI;EACI,cAAA;ACXR;ADcI;EACI,cAAA;ACZR;ADeI;EACI,eAAA;ACbR;ADgBI;EACI,eAAA;ACdR;ADiBI;EACI,cAAA;ACfR;ADkBI;EACI,cAAA;AChBR;ADmBI;EACI,qBAAA;EACA,UAAA;ACjBR;ADoBI;EACI,cAAA;EACA,gBAAA;EACA,eAAA;AClBR;ADqBI;EACI,UAAA;EACA,WAAA;ACnBR;ADsBI;EACI,cAAA;EACA,eAAA;EACA,kBAAA;EACA,wBAAA;EACA,kBAAA;ACpBR","sourcesContent":[":host {\n .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n }\n\n .header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n }\n\n .work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left:0px;\n right:0px;\n }\n /*\n .table {\n height: 705px;\n } */\n\n .mat-table {\n overflow: auto;\n height: 100%;\n }\n\n .mat-row {\n min-height: 40px;\n height: 43px;\n }\n\n .mat-cell {\n font-size: 13px;\n }\n\n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n }\n\n .mat-header-cell {\n font-size: 15px;\n }\n\n .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n }\n\n .mat-column-name {\n flex: 1 1 120px;\n }\n\n .mat-column-receiver {\n flex: 1 1 460px;\n }\n\n .mat-column-delay {\n flex: 0 0 60px;\n }\n\n .mat-column-interval {\n flex: 0 0 80px;\n }\n\n .mat-column-type {\n flex: 0 0 80px;\n }\n\n .mat-column-enabled {\n flex: 0 0 100px;\n }\n\n .mat-column-subscriptions {\n flex: 3 1 200px;\n }\n\n .mat-column-remove {\n flex: 0 0 60px;\n }\n\n .selectidthClass{\n flex: 0 0 50px;\n }\n\n .message-error {\n display: inline-block;\n color:red;\n }\n\n .my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n }\n\n .my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n }\n\n .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n }\n}",":host {\n /*\n .table {\n height: 705px;\n } */\n}\n:host .header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n:host .header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n:host .work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n:host .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n}\n:host .mat-table {\n overflow: auto;\n height: 100%;\n}\n:host .mat-row {\n min-height: 40px;\n height: 43px;\n}\n:host .mat-cell {\n font-size: 13px;\n}\n:host .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n:host .mat-header-cell {\n font-size: 15px;\n}\n:host .mat-column-select {\n overflow: visible;\n flex: 0 0 80px;\n}\n:host .mat-column-name {\n flex: 1 1 120px;\n}\n:host .mat-column-receiver {\n flex: 1 1 460px;\n}\n:host .mat-column-delay {\n flex: 0 0 60px;\n}\n:host .mat-column-interval {\n flex: 0 0 80px;\n}\n:host .mat-column-type {\n flex: 0 0 80px;\n}\n:host .mat-column-enabled {\n flex: 0 0 100px;\n}\n:host .mat-column-subscriptions {\n flex: 3 1 200px;\n}\n:host .mat-column-remove {\n flex: 0 0 60px;\n}\n:host .selectidthClass {\n flex: 0 0 50px;\n}\n:host .message-error {\n display: inline-block;\n color: red;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-button {\n display: block;\n text-align: left;\n margin-top: 5px;\n}\n:host .my-header-filter ::ng-deep .mat-sort-header-arrow {\n top: -12px;\n right: 20px;\n}\n:host .my-header-filter-input {\n display: block;\n margin-top: 4px;\n margin-bottom: 6px;\n padding: 3px 1px 3px 2px;\n border-radius: 2px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 50524: +/*!*****************************************************************************************************!*\ + !*** ./src/app/notifications/notification-property/notification-property.component.scss?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container .mat-dialog-content { + width: 500px; + min-height: 220px; + overflow: hidden; + padding-bottom: 7px; +} +:host .container .mat-dialog-content .item-block { + display: block; +} +:host .container .mat-dialog-content .item-block mat-select, +:host .container .mat-dialog-content .item-block input, +:host .container .mat-dialog-content .item-block span { + width: calc(100% - 5px); +}`, "",{"version":3,"sources":["webpack://./src/app/notifications/notification-property/notification-property.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/notifications/notification-property/notification-property.component.scss"],"names":[],"mappings":"AAEQ;EAEI,YAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;ACFZ;ADGY;EACI,cAAA;ACDhB;ADGgB;;;EAGI,uBAAA;ACDpB","sourcesContent":[":host {\n .container {\n .mat-dialog-content\n {\n width: 500px;\n min-height: 220px;\n overflow: hidden;\n padding-bottom: 7px;\n .item-block {\n display: block;\n\n mat-select,\n input,\n span {\n width: calc(100% - 5px);\n }\n }\n }\n }\n}",":host .container .mat-dialog-content {\n width: 500px;\n min-height: 220px;\n overflow: hidden;\n padding-bottom: 7px;\n}\n:host .container .mat-dialog-content .item-block {\n display: block;\n}\n:host .container .mat-dialog-content .item-block mat-select,\n:host .container .mat-dialog-content .item-block input,\n:host .container .mat-dialog-content .item-block span {\n width: calc(100% - 5px);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 71101: +/*!*******************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-editor.component.scss?ngResource ***! + \*******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.left-panel { + float: left; + width: 380px; +} + +.report-row { + width: inherit; +} +.report-row input, .report-row mat-select { + width: -webkit-fill-available; +} + +.content-toolbox { + line-height: 20px; +} + +.content-toolbox span { + float: left; +} + +.content-toolbox button { + float: right; +} + +.content-panel { + display: block; + margin-top: 15px; + width: 100%; + /* position: relative; */ +} + +.content-list { + /* position: absolute; */ + /* top: 30px; */ + /* left: 0px; */ + /* right: 0px; */ +} + +.report-item { + font-size: 14px; + line-height: 24px; + padding: 7px 0px 5px 0px; + border-bottom: 1px solid var(--toolboxBorder); +} +.report-item mat-icon { + font-size: 18px; + line-height: 24px; + margin-left: 4px; +} + +.report-item-type { + display: inline-block; +} + +.report-head-menu { + float: right; + padding-top: 5px; + padding-right: 5px; + cursor: pointer; +} + +.report-item-edit { + cursor: pointer; + margin-right: 10px; + vertical-align: middle; +} + +.report-item-menu { + cursor: pointer; + float: right; + margin-right: 3px; + vertical-align: middle; +} + +.report-item-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.rigth-panel { + position: absolute; + top: 0px; + bottom: 10px; + left: 380px; + right: 20px; + margin-left: 40px; +} + +.valid-error { + float: left; + margin-top: 15px; +} + +::ng-deep .content-panel .mat-tab-label { + height: 34px !important; + min-width: 120px !important; + width: 140px; +} + +.menu-item-select mat-icon { + font-size: 18px; + margin-right: unset !important; +} +.menu-item-select span { + line-height: 20px; +} +.menu-item-select .unselect { + padding-left: 25px; +}`, "",{"version":3,"sources":["webpack://./src/app/reports/report-editor/report-editor.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/reports/report-editor/report-editor.component.scss"],"names":[],"mappings":"AAIA;EACI,WAAA;EACA,YALQ;ACEZ;;ADMA;EACI,cAAA;ACHJ;ADKI;EACI,6BAAA;ACHR;;ADOA;EACI,iBAAA;ACJJ;;ADOA;EACI,WAAA;ACJJ;;ADOA;EACI,YAAA;ACJJ;;ADOA;EACI,cAAA;EACA,gBAAA;EACA,WAAA;EACA,wBAAA;ACJJ;;ADOA;EACI,wBAAA;EACA,eAAA;EACA,eAAA;EACA,gBAAA;ACJJ;;ADQA;EACI,eAAA;EACA,iBAAA;EACA,wBAAA;EACA,6CAAA;ACLJ;ADOI;EACI,eAAA;EACA,iBAAA;EACA,gBAAA;ACLR;;ADUA;EACI,qBAAA;ACPJ;;ADWA;EACI,YAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;ACRJ;;ADWA;EACI,eAAA;EACA,kBAAA;EACA,sBAAA;ACRJ;;ADWA;EACI,eAAA;EACA,YAAA;EACA,iBAAA;EACA,sBAAA;ACRJ;;ADWA;EACI,gBAAA;EACA,uBAAA;EACA,mBAAA;ACRJ;;ADWA;EAEI,kBAAA;EACA,QAAA;EACA,YAAA;EACA,WA7FQ;EA8FR,WAAA;EACA,iBAAA;ACTJ;;ADYA;EACI,WAAA;EACA,gBAAA;ACTJ;;ADYA;EACI,uBAAA;EACA,2BAAA;EACA,YAAA;ACTJ;;ADcI;EACI,eAAA;EACA,8BAAA;ACXR;ADcI;EACI,iBAAA;ACZR;ADeI;EACI,kBAAA;ACbR","sourcesContent":["\n$panelLeft: 380px;\n$panelRight: 880px;\n\n.left-panel {\n float: left;\n width: $panelLeft;\n}\n\n.report-row {\n width: inherit;\n\n input, mat-select {\n width: -webkit-fill-available;\n }\n}\n\n.content-toolbox {\n line-height: 20px; \n}\n\n.content-toolbox span {\n float: left;\n}\n\n.content-toolbox button {\n float: right;\n}\n\n.content-panel {\n display: block; \n margin-top: 15px;\n width: 100%;\n /* position: relative; */\n}\n\n.content-list {\n /* position: absolute; */\n /* top: 30px; */\n /* left: 0px; */\n /* right: 0px; */\n\n}\n\n.report-item {\n font-size: 14px;\n line-height: 24px;\n padding: 7px 0px 5px 0px;\n border-bottom: 1px solid var(--toolboxBorder);\n \n mat-icon {\n font-size: 18px;\n line-height: 24px;\n margin-left: 4px;\n }\n\n}\n\n.report-item-type {\n display: inline-block;\n\n}\n\n.report-head-menu {\n float:right; \n padding-top: 5px; \n padding-right: 5px;\n cursor: pointer;\n}\n\n.report-item-edit {\n cursor: pointer;\n margin-right: 10px;\n vertical-align: middle;\n}\n\n.report-item-menu {\n cursor: pointer;\n float: right;\n margin-right: 3px;\n vertical-align: middle;\n}\n\n.report-item-label {\n overflow: hidden; \n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.rigth-panel {\n // float: right;\n position: absolute;\n top: 0px;\n bottom: 10px;\n left: $panelLeft;\n right: 20px;\n margin-left: 40px;\n}\n\n.valid-error {\n float: left;\n margin-top: 15px;\n}\n\n::ng-deep .content-panel .mat-tab-label {\n height: 34px !important;\n min-width: 120px !important;\n width: 140px;\n}\n\n.menu-item-select {\n\n mat-icon {\n font-size: 18px;\n margin-right: unset !important;\n }\n\n span {\n line-height: 20px;\n }\n\n .unselect {\n padding-left: 25px;\n }\n}",".left-panel {\n float: left;\n width: 380px;\n}\n\n.report-row {\n width: inherit;\n}\n.report-row input, .report-row mat-select {\n width: -webkit-fill-available;\n}\n\n.content-toolbox {\n line-height: 20px;\n}\n\n.content-toolbox span {\n float: left;\n}\n\n.content-toolbox button {\n float: right;\n}\n\n.content-panel {\n display: block;\n margin-top: 15px;\n width: 100%;\n /* position: relative; */\n}\n\n.content-list {\n /* position: absolute; */\n /* top: 30px; */\n /* left: 0px; */\n /* right: 0px; */\n}\n\n.report-item {\n font-size: 14px;\n line-height: 24px;\n padding: 7px 0px 5px 0px;\n border-bottom: 1px solid var(--toolboxBorder);\n}\n.report-item mat-icon {\n font-size: 18px;\n line-height: 24px;\n margin-left: 4px;\n}\n\n.report-item-type {\n display: inline-block;\n}\n\n.report-head-menu {\n float: right;\n padding-top: 5px;\n padding-right: 5px;\n cursor: pointer;\n}\n\n.report-item-edit {\n cursor: pointer;\n margin-right: 10px;\n vertical-align: middle;\n}\n\n.report-item-menu {\n cursor: pointer;\n float: right;\n margin-right: 3px;\n vertical-align: middle;\n}\n\n.report-item-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.rigth-panel {\n position: absolute;\n top: 0px;\n bottom: 10px;\n left: 380px;\n right: 20px;\n margin-left: 40px;\n}\n\n.valid-error {\n float: left;\n margin-top: 15px;\n}\n\n::ng-deep .content-panel .mat-tab-label {\n height: 34px !important;\n min-width: 120px !important;\n width: 140px;\n}\n\n.menu-item-select mat-icon {\n font-size: 18px;\n margin-right: unset !important;\n}\n.menu-item-select span {\n line-height: 20px;\n}\n.menu-item-select .unselect {\n padding-left: 25px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 72847: +/*!*******************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-alarms/report-item-alarms.component.scss?ngResource ***! + \*******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.alarms { + min-width: 600px; + margin-top: 20px; + margin-bottom: 10px; + display: block; +} + +.alarms-filter { + width: 100%; + margin-top: 5px; +} +.alarms-filter mat-selection-list { + overflow: auto; + height: 300px; +} +.alarms-filter mat-list-option ::ng-deep .mat-list-text { + display: block; +} +.alarms-filter .alarm-name { + width: 50%; + display: inline-block; +} +.alarms-filter .alarm-tag { + display: inline-block; + color: rgba(255, 255, 255, 0.6); +} +.alarms-filter .list-header { + display: block; +} +.alarms-filter .list-header span { + margin-bottom: 2px; +} +.alarms-filter .list-header mat-checkbox { + position: absolute; + right: 16px; + top: -5px; +} +.alarms-filter .alarm-list { + background: var(--formInputBackground); +} +.alarms-filter .alarm-item { + font-size: 14px; + height: 34px; +}`, "",{"version":3,"sources":["webpack://./src/app/reports/report-editor/report-item-alarms/report-item-alarms.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/reports/report-editor/report-item-alarms/report-item-alarms.component.scss"],"names":[],"mappings":"AACA;EACI,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,cAAA;ACAJ;;ADGA;EACI,WAAA;EACA,eAAA;ACAJ;ADEI;EACI,cAAA;EACA,aAAA;ACAR;ADGI;EACI,cAAA;ACDR;ADII;EACI,UAAA;EACA,qBAAA;ACFR;ADKI;EACI,qBAAA;EACA,+BAAA;ACHR;ADMI;EACI,cAAA;ACJR;ADKQ;EACI,kBAAA;ACHZ;ADMQ;EACI,kBAAA;EACA,WAAA;EACA,SAAA;ACJZ;ADQI;EACI,sCAAA;ACNR;ADSI;EACI,eAAA;EACA,YAAA;ACPR","sourcesContent":["\n.alarms {\n min-width: 600px;\n margin-top: 20px;\n margin-bottom: 10px;\n display: block;\n}\n\n.alarms-filter {\n width: 100%;\n margin-top: 5px;\n\n mat-selection-list {\n overflow: auto;\n height: 300px;\n }\n\n mat-list-option ::ng-deep .mat-list-text {\n display: block;\n }\n\n .alarm-name {\n width: 50%;\n display: inline-block;\n }\n\n .alarm-tag {\n display: inline-block;\n color: rgba(255, 255, 255, 0.6);\n }\n\n .list-header {\n display: block;\n span {\n margin-bottom: 2px;\n }\n\n mat-checkbox {\n position: absolute;\n right: 16px;\n top: -5px;\n }\n }\n\n .alarm-list {\n background: var(--formInputBackground);\n }\n\n .alarm-item {\n font-size: 14px;\n height: 34px;\n }\n}",".alarms {\n min-width: 600px;\n margin-top: 20px;\n margin-bottom: 10px;\n display: block;\n}\n\n.alarms-filter {\n width: 100%;\n margin-top: 5px;\n}\n.alarms-filter mat-selection-list {\n overflow: auto;\n height: 300px;\n}\n.alarms-filter mat-list-option ::ng-deep .mat-list-text {\n display: block;\n}\n.alarms-filter .alarm-name {\n width: 50%;\n display: inline-block;\n}\n.alarms-filter .alarm-tag {\n display: inline-block;\n color: rgba(255, 255, 255, 0.6);\n}\n.alarms-filter .list-header {\n display: block;\n}\n.alarms-filter .list-header span {\n margin-bottom: 2px;\n}\n.alarms-filter .list-header mat-checkbox {\n position: absolute;\n right: 16px;\n top: -5px;\n}\n.alarms-filter .alarm-list {\n background: var(--formInputBackground);\n}\n.alarms-filter .alarm-item {\n font-size: 14px;\n height: 34px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 67845: +/*!*****************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-chart/report-item-chart.component.scss?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.chart { + min-width: 400px; + margin-top: 20px; + min-height: 250px; + display: block; +}`, "",{"version":3,"sources":["webpack://./src/app/reports/report-editor/report-item-chart/report-item-chart.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/reports/report-editor/report-item-chart/report-item-chart.component.scss"],"names":[],"mappings":"AAAA;EACI,gBAAA;EACA,gBAAA;EACA,iBAAA;EACA,cAAA;ACCJ","sourcesContent":[".chart {\n min-width: 400px;\n margin-top: 20px;\n min-height: 250px;\n display: block;\n}",".chart {\n min-width: 400px;\n margin-top: 20px;\n min-height: 250px;\n display: block;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 44820: +/*!*****************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-table/report-item-table.component.scss?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.data-table { + min-width: 900px; + margin-top: 20px; + height: 500px; + display: block; +} + +.data-table-cell { + white-space: nowrap; + max-width: 120px; + min-height: 100px; + overflow: hidden; + position: relative; + border: 1px solid #7F7F7F; + font-size: 12px; + padding: 5px; + display: inline-block; + width: -webkit-fill-available; +} +.data-table-cell .menu { + font-size: 18px; + position: absolute; + bottom: 0px; + left: 5px; + cursor: pointer; +} +.data-table-cell .menu mat-icon { + font-size: 18px; +} +.data-table-cell .label { + width: inherit; +} + +.menu-item-select mat-icon { + font-size: 18px; + margin-right: unset !important; +} +.menu-item-select span { + line-height: 20px; +} +.menu-item-select .unselect { + padding-left: 25px; +}`, "",{"version":3,"sources":["webpack://./src/app/reports/report-editor/report-item-table/report-item-table.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/reports/report-editor/report-item-table/report-item-table.component.scss"],"names":[],"mappings":"AAAA;EACI,gBAAA;EACA,gBAAA;EACA,aAAA;EACA,cAAA;ACCJ;;ADEA;EACI,mBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;EACA,eAAA;EACA,YAAA;EACA,qBAAA;EACA,6BAAA;ACCJ;ADCI;EACI,eAAA;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,eAAA;ACCR;ADCQ;EACI,eAAA;ACCZ;ADGI;EACI,cAAA;ACDR;;ADOI;EACI,eAAA;EACA,8BAAA;ACJR;ADOI;EACI,iBAAA;ACLR;ADQI;EACI,kBAAA;ACNR","sourcesContent":[".data-table {\n min-width: 900px;\n margin-top: 20px;\n height: 500px;\n display: block;\n}\n\n.data-table-cell {\n white-space: nowrap;\n max-width: 120px;\n min-height: 100px;\n overflow: hidden;\n position: relative;\n border: 1px solid #7F7F7F;\n font-size: 12px;\n padding: 5px;\n display: inline-block;\n width: -webkit-fill-available;\n\n .menu {\n font-size: 18px;\n position: absolute;\n bottom: 0px;\n left: 5px;\n cursor: pointer;\n \n mat-icon {\n font-size: 18px;\n }\n }\n\n .label {\n width: inherit;\n }\n}\n\n.menu-item-select {\n\n mat-icon {\n font-size: 18px;\n margin-right: unset !important;\n }\n\n span {\n line-height: 20px;\n }\n\n .unselect {\n padding-left: 25px;\n }\n}",".data-table {\n min-width: 900px;\n margin-top: 20px;\n height: 500px;\n display: block;\n}\n\n.data-table-cell {\n white-space: nowrap;\n max-width: 120px;\n min-height: 100px;\n overflow: hidden;\n position: relative;\n border: 1px solid #7F7F7F;\n font-size: 12px;\n padding: 5px;\n display: inline-block;\n width: -webkit-fill-available;\n}\n.data-table-cell .menu {\n font-size: 18px;\n position: absolute;\n bottom: 0px;\n left: 5px;\n cursor: pointer;\n}\n.data-table-cell .menu mat-icon {\n font-size: 18px;\n}\n.data-table-cell .label {\n width: inherit;\n}\n\n.menu-item-select mat-icon {\n font-size: 18px;\n margin-right: unset !important;\n}\n.menu-item-select span {\n line-height: 20px;\n}\n.menu-item-select .unselect {\n padding-left: 25px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 76275: +/*!*********************************************************************************!*\ + !*** ./src/app/resources/kiosk-widgets/kiosk-widgets.component.scss?ngResource ***! + \*********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + max-width: 1020px; + width: 100%; + min-width: 700px; + margin: 0 auto; +} +:host .container .loading-spinner { + display: flex; + justify-content: center; + padding: 16px 0; +} +:host .container .header { + background-color: rgba(88, 88, 88, 0.3); +} +:host .container .content { + padding: 5px 5px 5px 5px; +} +:host .container .content .content-item { + display: inline-flex; + margin: 8px; + padding: 4px; + width: 120px; + height: 120px; + box-sizing: border-box; + position: relative; + justify-content: center; + border-radius: 4px; + border: 1px solid transparent; +} +:host .container .content .content-item.item-exists { + border-color: #1976d2; +} +:host .container .content .content-item .download-icon { + position: absolute; + bottom: 0px; + right: 4px; + cursor: pointer; + font-size: 15px; + display: flex; + align-items: center; + justify-content: center; + color: rgba(255, 255, 255, 0.7); +} +:host .container .content .content-item .download-icon:hover { + color: #000; +} +:host .container .content .content-item:hover { + background-color: rgba(182, 182, 182, 0.3); +} +:host .container .content .content-item img { + display: block; + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + object-fit: contain; + margin: 0 auto; + padding-bottom: 15px; +} +:host .container .widget-panel { + background-color: rgba(65, 65, 65, 0.3); +}`, "",{"version":3,"sources":["webpack://./src/app/resources/kiosk-widgets/kiosk-widgets.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/resources/kiosk-widgets/kiosk-widgets.component.scss"],"names":[],"mappings":"AACI;EACI,iBAAA;EACA,WAAA;EACA,gBAAA;EACA,cAAA;ACAR;ADEQ;EACI,aAAA;EACA,uBAAA;EACA,eAAA;ACAZ;ADGQ;EACI,uCAAA;ACDZ;ADGQ;EACI,wBAAA;ACDZ;ADEY;EACI,oBAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,aAAA;EACA,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,kBAAA;EACA,6BAAA;ACAhB;ADEgB;EACI,qBAAA;ACApB;ADGgB;EACI,kBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;ACDpB;ADIgB;EACI,WAAA;ACFpB;ADKY;EACI,0CAAA;ACHhB;ADKY;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,cAAA;EACA,oBAAA;ACHhB;ADMQ;EACI,uCAAA;ACJZ","sourcesContent":[":host {\n .container {\n max-width: 1020px;\n width: 100%;\n min-width: 700px;\n margin: 0 auto;\n\n .loading-spinner {\n display: flex;\n justify-content: center;\n padding: 16px 0;\n }\n\n .header {\n background-color: rgba(88, 88, 88, 0.3);\n }\n .content {\n padding: 5px 5px 5px 5px;\n .content-item {\n display: inline-flex;\n margin: 8px;\n padding: 4px;\n width: 120px;\n height: 120px;\n box-sizing: border-box;\n position: relative;\n justify-content: center;\n border-radius: 4px;\n border: 1px solid transparent;\n\n &.item-exists {\n border-color: #1976d2;\n }\n\n .download-icon {\n position: absolute;\n bottom: 0px;\n right: 4px;\n cursor: pointer;\n font-size: 15px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: rgba(255, 255, 255, 0.7);\n }\n\n .download-icon:hover {\n color: #000;\n }\n }\n .content-item:hover {\n background-color: rgba(182, 182, 182, 0.3);\n }\n .content-item img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n object-fit: contain;\n margin: 0 auto;\n padding-bottom: 15px;\n }\n }\n .widget-panel {\n background-color: rgba(65, 65, 65, 0.3);\n }\n }\n}",":host .container {\n max-width: 1020px;\n width: 100%;\n min-width: 700px;\n margin: 0 auto;\n}\n:host .container .loading-spinner {\n display: flex;\n justify-content: center;\n padding: 16px 0;\n}\n:host .container .header {\n background-color: rgba(88, 88, 88, 0.3);\n}\n:host .container .content {\n padding: 5px 5px 5px 5px;\n}\n:host .container .content .content-item {\n display: inline-flex;\n margin: 8px;\n padding: 4px;\n width: 120px;\n height: 120px;\n box-sizing: border-box;\n position: relative;\n justify-content: center;\n border-radius: 4px;\n border: 1px solid transparent;\n}\n:host .container .content .content-item.item-exists {\n border-color: #1976d2;\n}\n:host .container .content .content-item .download-icon {\n position: absolute;\n bottom: 0px;\n right: 4px;\n cursor: pointer;\n font-size: 15px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: rgba(255, 255, 255, 0.7);\n}\n:host .container .content .content-item .download-icon:hover {\n color: #000;\n}\n:host .container .content .content-item:hover {\n background-color: rgba(182, 182, 182, 0.3);\n}\n:host .container .content .content-item img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n object-fit: contain;\n margin: 0 auto;\n padding-bottom: 15px;\n}\n:host .container .widget-panel {\n background-color: rgba(65, 65, 65, 0.3);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 73702: +/*!*****************************************************************************!*\ + !*** ./src/app/resources/lib-widgets/lib-widgets.component.scss?ngResource ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .resource-widgets-panel { + background-color: var(--toolboxBackground); + color: var(--toolboxColor); + font-size: 11px; + margin: unset; +} +:host .resource-widgets-header { + max-height: 23px; + text-align: center; + vertical-align: middle; + padding-left: 8px; + padding-right: 8px; + border-top: 1px solid var(--toolboxBorder); + box-shadow: 0px 1px 3px 0px #000; + font-size: 11px; +} +:host .resource-widgets-header mat-panel-title { + display: contents; +} +:host .resource-images-header:enabled .resource-images-header::selection { + color: rgb(255, 255, 255); +} +:host .lib-widget-item { + display: inline-block; + padding: 3px 3px 3px 3px; + margin: 2px 2px 2px 2px; + position: relative; +} +:host .lib-widget-item img { + width: 85px; + height: 85px; + min-width: 50px; + cursor: pointer; +} +:host .lib-widget-item mat-icon { + position: absolute; + bottom: 4px; + right: 4px; + font-size: 16px; + cursor: pointer; + height: unset; + width: unset; +} +:host .selected { + background-color: #bdbdbd; +} +:host .lib-widget-item:hover { + background-color: rgba(182, 182, 182, 0.3); +}`, "",{"version":3,"sources":["webpack://./src/app/resources/lib-widgets/lib-widgets.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/resources/lib-widgets/lib-widgets.component.scss"],"names":[],"mappings":"AACI;EACI,0CAAA;EACA,0BAAA;EACA,eAAA;EACA,aAAA;ACAR;ADGI;EACI,gBAAA;EACA,kBAAA;EACA,sBAAA;EACA,iBAAA;EACA,kBAAA;EACA,0CAAA;EACA,gCAAA;EACA,eAAA;ACDR;ADGQ;EACI,iBAAA;ACDZ;ADKI;EACI,yBAAA;ACHR;ADMI;EACI,qBAAA;EACA,wBAAA;EACA,uBAAA;EACA,kBAAA;ACJR;ADMQ;EACI,WAAA;EACA,YAAA;EACA,eAAA;EACA,eAAA;ACJZ;ADOQ;EACI,kBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;EACA,eAAA;EACA,aAAA;EACA,YAAA;ACLZ;ADSI;EACI,yBAAA;ACPR;ADUI;EACI,0CAAA;ACRR","sourcesContent":[":host {\n .resource-widgets-panel {\n background-color: var(--toolboxBackground);\n color: var(--toolboxColor);\n font-size: 11px;\n margin: unset;\n }\n\n .resource-widgets-header {\n max-height: 23px;\n text-align: center;\n vertical-align: middle;\n padding-left: 8px;\n padding-right: 8px;\n border-top: 1px solid var(--toolboxBorder);\n box-shadow: 0px 1px 3px 0px #000;\n font-size: 11px;\n\n mat-panel-title {\n display: contents;\n }\n }\n\n .resource-images-header:enabled .resource-images-header::selection{\n color: rgba(255,255,255,1);\n }\n\n .lib-widget-item {\n display: inline-block;\n padding: 3px 3px 3px 3px;\n margin: 2px 2px 2px 2px;\n position: relative;\n\n img {\n width: 85px;\n height: 85px;\n min-width: 50px;\n cursor: pointer;\n }\n\n mat-icon {\n position: absolute;\n bottom: 4px;\n right: 4px;\n font-size: 16px;\n cursor: pointer;\n height: unset;\n width: unset;\n }\n }\n\n .selected {\n background-color: #bdbdbd;\n }\n\n .lib-widget-item:hover {\n background-color: rgba(182, 182, 182, 0.3);\n }\n}",":host .resource-widgets-panel {\n background-color: var(--toolboxBackground);\n color: var(--toolboxColor);\n font-size: 11px;\n margin: unset;\n}\n:host .resource-widgets-header {\n max-height: 23px;\n text-align: center;\n vertical-align: middle;\n padding-left: 8px;\n padding-right: 8px;\n border-top: 1px solid var(--toolboxBorder);\n box-shadow: 0px 1px 3px 0px #000;\n font-size: 11px;\n}\n:host .resource-widgets-header mat-panel-title {\n display: contents;\n}\n:host .resource-images-header:enabled .resource-images-header::selection {\n color: rgb(255, 255, 255);\n}\n:host .lib-widget-item {\n display: inline-block;\n padding: 3px 3px 3px 3px;\n margin: 2px 2px 2px 2px;\n position: relative;\n}\n:host .lib-widget-item img {\n width: 85px;\n height: 85px;\n min-width: 50px;\n cursor: pointer;\n}\n:host .lib-widget-item mat-icon {\n position: absolute;\n bottom: 4px;\n right: 4px;\n font-size: 16px;\n cursor: pointer;\n height: unset;\n width: unset;\n}\n:host .selected {\n background-color: #bdbdbd;\n}\n:host .lib-widget-item:hover {\n background-color: rgba(182, 182, 182, 0.3);\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 23217: +/*!*******************************************************************************!*\ + !*** ./src/app/scripts/script-editor/script-editor.component.scss?ngResource ***! + \*******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .container { + height: 100%; +} +:host .panel-header { + width: 100%; + display: block; +} +:host .panel-footer { + float: left; + height: 22px; + font-family: monospace; +} +:host .panel-function { + display: inline-block; + width: calc(100% - 90px); + margin-top: 10px; + font-family: monospace; +} +:host .panel-toolbar { + float: right; +} +:host .panel-code { + width: 100%; + --tab-height: 30px; +} +:host .system-function button { + width: 100%; + font-size: 12px !important; + font-weight: 100 !important; + margin-top: 2px; + margin-bottom: 2px; + background-color: #424242; + color: white; +} +:host .test-parameters { + display: block; + font-size: 12px; + padding: 5px 5px 5px 5px; +} +:host .test-console { + display: block; + font-size: 12px; + /* background-color: black; */ + /* color: white; */ + padding-left: 5px; + border-top: 1px solid #2D3335; +} +:host .test-parameters .header { + line-height: 24px; + width: 100%; +} +:host .test-parameters .content { + overflow: auto; +} +:host .content .my-form-field { + margin-top: 5px; +} +:host .content .content-input { + width: 220px; + background-color: #242b2e; +} +:host .content .content-button { + margin-left: 10px; + height: 27px; +} +:host .test-panel { + overflow: auto; + position: relative; +} +:host .test-panel .test-button { + position: absolute; + bottom: 5px; + right: 5px; +} +:host .test-console .header { + line-height: 20px; + width: 100%; +} +:host .small-icon-button { + width: 24px; + height: 24px; + line-height: 24px; +} +:host .small-icon-button .mat-icon { + width: 20px; + height: 20px; + line-height: 20px; +} +:host .small-icon-button .material-icons { + font-size: 16px; +} +:host .console-text { + display: block; + line-height: 14px; + white-space: nowrap; +} +:host ::ng-deep .mat-tab-label { + height: var(--tab-height) !important; + color: white; + padding-left: 10px !important; + padding-right: 10px !important; + min-width: 100px; +} +:host ::ng-deep .cm-system-function { + color: greenyellow; +} +@media screen and (max-height: 1500px) { + :host ::ng-deep .CodeMirror { + height: 600px; + } + :host .test-panel { + height: calc(299px - var(--tab-height) / 2); + } +} +@media screen and (max-height: 960px) { + :host ::ng-deep .CodeMirror { + height: 600px; + } + :host .test-panel { + height: calc(299px - var(--tab-height) / 2); + } +} +@media screen and (max-height: 920px) { + :host ::ng-deep .CodeMirror { + height: 540px; + } + :host .test-panel { + height: calc(269px - var(--tab-height) / 2); + } +} +@media screen and (max-height: 870px) { + :host ::ng-deep .CodeMirror { + height: 480px; + } + :host .test-panel { + height: calc(239px - var(--tab-height) / 2); + } +} +@media screen and (max-height: 820px) { + :host ::ng-deep .CodeMirror { + height: 400px; + } + :host .test-panel { + height: calc(199px - var(--tab-height) / 2); + } +} +@media screen and (max-height: 720px) { + :host ::ng-deep .CodeMirror { + height: 300px; + } + :host .test-panel { + height: calc(149px - var(--tab-height) / 2); + } +} +:host .side-panel { + background-color: #333a3c; + color: rgb(255, 255, 255); +} +:host .side-panel-header { + font-size: 15px; + margin-top: 5px; + line-height: 25px; + margin-bottom: 5px; +} +:host .side-toggle { + transform-origin: center center; + transition: all 0.3s ease-in-out; +} +:host .side-toggle-expand { + transform: rotate(0deg); +} +:host .side-toggle-collapse { + transform: rotate(180deg); +} +:host .function-text { + color: rgb(0, 110, 255); + line-height: 25px; +} +:host .mychips { + display: inline-block; + font-size: inherit; + height: 26px; + line-height: 24px; + border-radius: 13px; + background-color: var(--chipsBackground); + cursor: pointer; + font-family: monospace; + vertical-align: middle; + margin-left: 2px; + margin-right: 2px; +} +:host .mychips mat-icon { + margin: 3px 3px 4px 2px; + opacity: 0.5; + font-size: 20px; + text-align: center; +} +:host .mychips span { + padding-left: 3px; + padding-right: 13px; + vertical-align: top; +} + +.code-menu-sync-select mat-icon { + font-size: 18px; + margin-right: unset !important; +} +.code-menu-sync-select span { + line-height: 20px; + margin-right: 25px; +}`, "",{"version":3,"sources":["webpack://./src/app/scripts/script-editor/script-editor.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/scripts/script-editor/script-editor.component.scss"],"names":[],"mappings":"AAEI;EACI,YAAA;ACDR;ADII;EACI,WAAA;EACA,cAAA;ACFR;ADKI;EACI,WAAA;EACA,YAAA;EACA,sBAAA;ACHR;ADMI;EACI,qBAAA;EACA,wBAAA;EACA,gBAAA;EACA,sBAAA;ACJR;ADOI;EACI,YAAA;ACLR;ADQI;EACI,WAAA;EACA,kBAAA;ACNR;ADSI;EACI,WAAA;EACA,0BAAA;EACA,2BAAA;EACA,eAAA;EACA,kBAAA;EACA,yBAAA;EACA,YAAA;ACPR;ADUI;EACI,cAAA;EACA,eAAA;EACA,wBAAA;ACRR;ADWI;EACI,cAAA;EACA,eAAA;EACA,6BAAA;EACA,kBAAA;EACA,iBAAA;EACA,6BAAA;ACTR;ADYI;EACI,iBAAA;EACA,WAAA;ACVR;ADaI;EACI,cAAA;ACXR;ADcI;EACI,eAAA;ACZR;ADeI;EACI,YAAA;EACA,yBAAA;ACbR;ADgBI;EACI,iBAAA;EACA,YAAA;ACdR;ADiBI;EACI,cAAA;EACA,kBAAA;ACfR;ADkBI;EACI,kBAAA;EACA,WAAA;EACA,UAAA;AChBR;ADmBI;EACI,iBAAA;EACA,WAAA;ACjBR;ADwBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACtBR;ADyBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;ACvBR;AD0BI;EACI,eAAA;ACxBR;AD2BI;EACI,cAAA;EACA,iBAAA;EACA,mBAAA;ACzBR;AD4BI;EACI,oCAAA;EACA,YAAA;EACA,6BAAA;EACA,8BAAA;EACA,gBAAA;AC1BR;AD6BI;EACI,kBAAA;AC3BR;AD8BI;EACI;IACI,aAAA;EC5BV;ED8BM;IACI,2CAAA;EC5BV;AACF;AD+BI;EACI;IACI,aAAA;EC7BV;ED+BM;IACI,2CAAA;EC7BV;AACF;ADgCI;EACI;IACI,aAAA;EC9BV;EDgCM;IACI,2CAAA;EC9BV;AACF;ADiCI;EACI;IACI,aAAA;EC/BV;EDiCM;IACI,2CAAA;EC/BV;AACF;ADkCI;EACI;IACI,aAAA;EChCV;EDkCM;IACI,2CAAA;EChCV;AACF;ADmCI;EACI;IACI,aAAA;ECjCV;EDmCM;IACI,2CAAA;ECjCV;AACF;ADoCI;EACI,yBAAA;EACA,yBAAA;AClCR;ADqCI;EACI,eAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;ACnCR;ADsCI;EACI,+BAAA;EAIA,gCAAA;ACpCR;ADuCI;EACI,uBAAA;ACrCR;ADwCI;EACI,yBAAA;ACtCR;ADyCI;EACI,uBAAA;EACA,iBAAA;ACvCR;AD0CI;EACI,qBAAA;EACA,kBAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,wCAAA;EACA,eAAA;EACA,sBAAA;EACA,sBAAA;EACA,gBAAA;EACA,iBAAA;ACxCR;AD2CI;EACI,uBAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;ACzCR;AD4CI;EACI,iBAAA;EACA,mBAAA;EACA,mBAAA;AC1CR;;ADgDI;EACI,eAAA;EACA,8BAAA;AC7CR;ADgDI;EACI,iBAAA;EACA,kBAAA;AC9CR","sourcesContent":["\n:host {\n .container {\n height: 100%;\n }\n \n .panel-header {\n width: 100%;\n display: block;\n }\n \n .panel-footer {\n float: left;\n height: 22px;\n font-family: monospace;\n }\n \n .panel-function {\n display: inline-block;\n width: calc(100% - 90px);\n margin-top: 10px;\n font-family: monospace;\n }\n \n .panel-toolbar {\n float: right;\n }\n \n .panel-code {\n width: 100%;\n --tab-height: 30px;\n }\n \n .system-function button {\n width: 100%;\n font-size: 12px !important;\n font-weight: 100 !important;\n margin-top: 2px;\n margin-bottom: 2px;\n background-color: #424242;\n color: white;\n }\n \n .test-parameters {\n display: block;\n font-size: 12px;\n padding: 5px 5px 5px 5px;\n }\n \n .test-console {\n display: block;\n font-size: 12px;\n /* background-color: black; */\n /* color: white; */\n padding-left: 5px;\n border-top: 1px solid #2D3335;\n }\n \n .test-parameters .header {\n line-height: 24px;\n width: 100%;\n }\n \n .test-parameters .content {\n overflow: auto;\n }\n \n .content .my-form-field {\n margin-top: 5px;\n }\n \n .content .content-input {\n width: 220px;\n background-color: #242b2e;\n }\n \n .content .content-button {\n margin-left: 10px;\n height: 27px;\n }\n \n .test-panel {\n overflow: auto;\n position: relative;\n }\n \n .test-panel .test-button {\n position: absolute;\n bottom: 5px;\n right: 5px;\n }\n \n .test-console .header {\n line-height: 20px;\n width: 100%;\n }\n \n .test-console .content {\n }\n \n \n .small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n }\n \n .small-icon-button .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n }\n \n .small-icon-button .material-icons {\n font-size: 16px;\n }\n \n .console-text {\n display: block;\n line-height: 14px;\n white-space: nowrap;\n }\n \n ::ng-deep .mat-tab-label {\n height: var(--tab-height) !important;\n color: white;\n padding-left: 10px !important;\n padding-right: 10px !important;\n min-width: 100px;\n }\n \n ::ng-deep .cm-system-function {\n color: greenyellow;\n }\n \n @media screen and (max-height: 1500px) {\n ::ng-deep .CodeMirror{\n height: 600px;\n }\n .test-panel {\n height: calc(299px - var(--tab-height) / 2);\n }\n }\n \n @media screen and (max-height: 960px) {\n ::ng-deep .CodeMirror{\n height: 600px;\n }\n .test-panel {\n height: calc(299px - var(--tab-height) / 2);\n }\n }\n \n @media screen and (max-height: 920px) {\n ::ng-deep .CodeMirror{\n height: 540px;\n }\n .test-panel {\n height: calc(269px - var(--tab-height) / 2);\n }\n }\n \n @media screen and (max-height: 870px) {\n ::ng-deep .CodeMirror{\n height: 480px;\n }\n .test-panel {\n height: calc(239px - var(--tab-height) / 2);\n }\n }\n \n @media screen and (max-height: 820px) {\n ::ng-deep .CodeMirror{\n height: 400px;\n }\n .test-panel {\n height: calc(199px - var(--tab-height) / 2);\n }\n }\n \n @media screen and (max-height: 720px) {\n ::ng-deep .CodeMirror{\n height: 300px;\n }\n .test-panel {\n height: calc(149px - var(--tab-height) / 2);\n }\n }\n \n .side-panel {\n background-color: #333a3c;\n color: rgb(255, 255, 255);\n }\n \n .side-panel-header {\n font-size: 15px;\n margin-top: 5px;\n line-height: 25px;\n margin-bottom: 5px;\n }\n \n .side-toggle {\n transform-origin: center center;\n -webkit-transition: all 0.3s ease-in-out;\n -moz-transition: all 0.3s ease-in-out;\n -o-transition: all 0.3s ease-in-out;\n transition: all 0.3s ease-in-out;\n }\n \n .side-toggle-expand {\n transform: rotate(0deg);\n }\n \n .side-toggle-collapse {\n transform: rotate(180deg);\n }\n \n .function-text {\n color:rgb(0, 110, 255);\n line-height: 25px;\n }\n \n .mychips {\n display: inline-block;\n font-size: inherit;\n height: 26px;\n line-height: 24px;\n border-radius: 13px;\n background-color: var(--chipsBackground);\n cursor: pointer;\n font-family: monospace;\n vertical-align: middle;\n margin-left: 2px;\n margin-right: 2px;\n }\n \n .mychips mat-icon {\n margin: 3px 3px 4px 2px;\n opacity: 0.5;\n font-size: 20px;\n text-align: center;\n }\n \n .mychips span {\n padding-left: 3px;\n padding-right: 13px;\n vertical-align: top;\n }\n}\n\n.code-menu-sync-select {\n\n mat-icon {\n font-size: 18px;\n margin-right: unset !important;\n }\n\n span {\n line-height: 20px;\n margin-right: 25px;\n }\n}\n",":host .container {\n height: 100%;\n}\n:host .panel-header {\n width: 100%;\n display: block;\n}\n:host .panel-footer {\n float: left;\n height: 22px;\n font-family: monospace;\n}\n:host .panel-function {\n display: inline-block;\n width: calc(100% - 90px);\n margin-top: 10px;\n font-family: monospace;\n}\n:host .panel-toolbar {\n float: right;\n}\n:host .panel-code {\n width: 100%;\n --tab-height: 30px;\n}\n:host .system-function button {\n width: 100%;\n font-size: 12px !important;\n font-weight: 100 !important;\n margin-top: 2px;\n margin-bottom: 2px;\n background-color: #424242;\n color: white;\n}\n:host .test-parameters {\n display: block;\n font-size: 12px;\n padding: 5px 5px 5px 5px;\n}\n:host .test-console {\n display: block;\n font-size: 12px;\n /* background-color: black; */\n /* color: white; */\n padding-left: 5px;\n border-top: 1px solid #2D3335;\n}\n:host .test-parameters .header {\n line-height: 24px;\n width: 100%;\n}\n:host .test-parameters .content {\n overflow: auto;\n}\n:host .content .my-form-field {\n margin-top: 5px;\n}\n:host .content .content-input {\n width: 220px;\n background-color: #242b2e;\n}\n:host .content .content-button {\n margin-left: 10px;\n height: 27px;\n}\n:host .test-panel {\n overflow: auto;\n position: relative;\n}\n:host .test-panel .test-button {\n position: absolute;\n bottom: 5px;\n right: 5px;\n}\n:host .test-console .header {\n line-height: 20px;\n width: 100%;\n}\n:host .small-icon-button {\n width: 24px;\n height: 24px;\n line-height: 24px;\n}\n:host .small-icon-button .mat-icon {\n width: 20px;\n height: 20px;\n line-height: 20px;\n}\n:host .small-icon-button .material-icons {\n font-size: 16px;\n}\n:host .console-text {\n display: block;\n line-height: 14px;\n white-space: nowrap;\n}\n:host ::ng-deep .mat-tab-label {\n height: var(--tab-height) !important;\n color: white;\n padding-left: 10px !important;\n padding-right: 10px !important;\n min-width: 100px;\n}\n:host ::ng-deep .cm-system-function {\n color: greenyellow;\n}\n@media screen and (max-height: 1500px) {\n :host ::ng-deep .CodeMirror {\n height: 600px;\n }\n :host .test-panel {\n height: calc(299px - var(--tab-height) / 2);\n }\n}\n@media screen and (max-height: 960px) {\n :host ::ng-deep .CodeMirror {\n height: 600px;\n }\n :host .test-panel {\n height: calc(299px - var(--tab-height) / 2);\n }\n}\n@media screen and (max-height: 920px) {\n :host ::ng-deep .CodeMirror {\n height: 540px;\n }\n :host .test-panel {\n height: calc(269px - var(--tab-height) / 2);\n }\n}\n@media screen and (max-height: 870px) {\n :host ::ng-deep .CodeMirror {\n height: 480px;\n }\n :host .test-panel {\n height: calc(239px - var(--tab-height) / 2);\n }\n}\n@media screen and (max-height: 820px) {\n :host ::ng-deep .CodeMirror {\n height: 400px;\n }\n :host .test-panel {\n height: calc(199px - var(--tab-height) / 2);\n }\n}\n@media screen and (max-height: 720px) {\n :host ::ng-deep .CodeMirror {\n height: 300px;\n }\n :host .test-panel {\n height: calc(149px - var(--tab-height) / 2);\n }\n}\n:host .side-panel {\n background-color: #333a3c;\n color: rgb(255, 255, 255);\n}\n:host .side-panel-header {\n font-size: 15px;\n margin-top: 5px;\n line-height: 25px;\n margin-bottom: 5px;\n}\n:host .side-toggle {\n transform-origin: center center;\n -webkit-transition: all 0.3s ease-in-out;\n -moz-transition: all 0.3s ease-in-out;\n -o-transition: all 0.3s ease-in-out;\n transition: all 0.3s ease-in-out;\n}\n:host .side-toggle-expand {\n transform: rotate(0deg);\n}\n:host .side-toggle-collapse {\n transform: rotate(180deg);\n}\n:host .function-text {\n color: rgb(0, 110, 255);\n line-height: 25px;\n}\n:host .mychips {\n display: inline-block;\n font-size: inherit;\n height: 26px;\n line-height: 24px;\n border-radius: 13px;\n background-color: var(--chipsBackground);\n cursor: pointer;\n font-family: monospace;\n vertical-align: middle;\n margin-left: 2px;\n margin-right: 2px;\n}\n:host .mychips mat-icon {\n margin: 3px 3px 4px 2px;\n opacity: 0.5;\n font-size: 20px;\n text-align: center;\n}\n:host .mychips span {\n padding-left: 3px;\n padding-right: 13px;\n vertical-align: top;\n}\n\n.code-menu-sync-select mat-icon {\n font-size: 18px;\n margin-right: unset !important;\n}\n.code-menu-sync-select span {\n line-height: 20px;\n margin-right: 25px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 80855: +/*!***************************************************************************************!*\ + !*** ./src/app/scripts/script-scheduling/script-scheduling.component.scss?ngResource ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.container { + min-width: 510px; +} +.container .sel-type { + width: 400px; +} +.container .row-input { + width: 400px; +} +.container .schedulig-list { + max-height: 500px; + overflow: auto; +}`, "",{"version":3,"sources":["webpack://./src/app/scripts/script-scheduling/script-scheduling.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/scripts/script-scheduling/script-scheduling.component.scss"],"names":[],"mappings":"AACA;EAEI,gBAAA;ACDJ;ADEI;EACI,YAAA;ACAR;ADEI;EACI,YAAA;ACAR;ADGI;EACI,iBAAA;EACA,cAAA;ACDR","sourcesContent":["\n.container {\n\n min-width: 510px;\n .sel-type {\n width: 400px;\n }\n .row-input {\n width: 400px;\n }\n\n .schedulig-list {\n max-height: 500px;\n overflow: auto;\n }\n}",".container {\n min-width: 510px;\n}\n.container .sel-type {\n width: 400px;\n}\n.container .row-input {\n width: 400px;\n}\n.container .schedulig-list {\n max-height: 500px;\n overflow: auto;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 55338: +/*!***********************************************************!*\ + !*** ./src/app/sidenav/sidenav.component.scss?ngResource ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host .sidenav-submenu-btn { + position: relative; +} +:host .sidenav-submenu-item { + width: unset; + min-height: unset; + height: unset; +} +:host .sidenav-submenu-icon { + position: absolute; + right: 12px; + top: 50%; + transform: translateY(-50%); +} +:host .submenu-list { + padding: 0; + margin: 0; + list-style: none; +}`, "",{"version":3,"sources":["webpack://./src/app/sidenav/sidenav.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/sidenav/sidenav.component.scss"],"names":[],"mappings":"AACI;EACI,kBAAA;ACAR;ADGI;EACI,YAAA;EACA,iBAAA;EACA,aAAA;ACDR;ADII;EACI,kBAAA;EACA,WAAA;EACA,QAAA;EACA,2BAAA;ACFR;ADII;EACI,UAAA;EACA,SAAA;EACA,gBAAA;ACFR","sourcesContent":[":host {\n .sidenav-submenu-btn {\n position: relative;\n }\n\n .sidenav-submenu-item {\n width: unset;\n min-height: unset;\n height: unset;\n }\n\n .sidenav-submenu-icon {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n }\n .submenu-list {\n padding: 0;\n margin: 0;\n list-style: none;\n }\n}",":host .sidenav-submenu-btn {\n position: relative;\n}\n:host .sidenav-submenu-item {\n width: unset;\n min-height: unset;\n height: unset;\n}\n:host .sidenav-submenu-icon {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n}\n:host .submenu-list {\n padding: 0;\n margin: 0;\n list-style: none;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 3241: +/*!*************************************************************************!*\ + !*** ./src/app/users/users-roles/users-roles.component.scss?ngResource ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ 92487); +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 31386); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.header-panel { + background-color: var(--headerBackground); + color: var(--headerColor); + position: absolute; + top: 0px; + left: 0px; + height: 36px; + width: 100%; + text-align: center; + line-height: 36px; + border-bottom: 1px solid var(--headerBorder); +} +.header-panel mat-icon { + display: inline-block; + vertical-align: text-top; +} + +.work-panel { + position: absolute; + top: 37px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: var(--workPanelBackground); +} +.work-panel .container { + display: flex; + flex-direction: column; + min-width: 300px; + position: absolute; + bottom: 0px; + top: 0px; + left: 0px; + right: 0px; +} +.work-panel .mat-table { + overflow: auto; + /* min-width: 1560px; */ +} +.work-panel .mat-row { + min-height: 40px; + height: 43px; +} +.work-panel .mat-cell { + font-size: 13px; +} +.work-panel .mat-header-row { + top: 0; + position: sticky; + z-index: 1; +} +.work-panel .mat-header-cell { + font-size: 15px; +} +.work-panel .mat-column-select { + overflow: visible; + flex: 0 0 100px; +} +.work-panel .mat-column-index { + overflow: visible; + flex: 0 0 100px; +} +.work-panel .mat-column-name { + flex: 0 0 200px; +} +.work-panel .mat-column-description { + flex: 2 1 250px; +}`, "",{"version":3,"sources":["webpack://./src/app/users/users-roles/users-roles.component.scss","webpack://./../../../../../MR%20Electrical%20&%20Automation/Fuxa%20SCADA/Dev/FUXA/client/src/app/users/users-roles/users-roles.component.scss"],"names":[],"mappings":"AAAA;EACI,yCAAA;EACA,yBAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,4CAAA;ACCJ;ADCI;EACI,qBAAA;EACA,wBAAA;ACCR;;ADGA;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,4CAAA;ACAJ;ADEI;EACI,aAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;ACAR;ADGI;EACI,cAAA;EACA,uBAAA;ACDR;ADII;EACI,gBAAA;EACA,YAAA;ACFR;ADKI;EACI,eAAA;ACHR;ADMI;EACI,MAAA;EACA,gBAAA;EACA,UAAA;ACJR;ADQI;EACI,eAAA;ACNR;ADSI;EACI,iBAAA;EACA,eAAA;ACPR;ADUI;EACI,iBAAA;EACA,eAAA;ACRR;ADWI;EACI,eAAA;ACTR;ADYI;EACI,eAAA;ACVR","sourcesContent":[".header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n\n mat-icon {\n display: inline-block;\n vertical-align: text-top;\n }\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n\n .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left:0px;\n right:0px;\n }\n\n .mat-table {\n overflow: auto;\n /* min-width: 1560px; */\n }\n \n .mat-row {\n min-height: 40px;\n height: 43px;\n }\n \n .mat-cell {\n font-size: 13px;\n }\n \n .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n }\n \n \n .mat-header-cell {\n font-size: 15px;\n }\n \n .mat-column-select {\n overflow: visible;\n flex: 0 0 100px;\n }\n \n .mat-column-index {\n overflow: visible;\n flex: 0 0 100px;\n }\n \n .mat-column-name {\n flex: 0 0 200px;\n }\n \n .mat-column-description {\n flex: 2 1 250px;\n }\n}\n\n",".header-panel {\n background-color: var(--headerBackground);\n color: var(--headerColor);\n position: absolute;\n top: 0px;\n left: 0px;\n height: 36px;\n width: 100%;\n text-align: center;\n line-height: 36px;\n border-bottom: 1px solid var(--headerBorder);\n}\n.header-panel mat-icon {\n display: inline-block;\n vertical-align: text-top;\n}\n\n.work-panel {\n position: absolute;\n top: 37px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: var(--workPanelBackground);\n}\n.work-panel .container {\n display: flex;\n flex-direction: column;\n min-width: 300px;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n}\n.work-panel .mat-table {\n overflow: auto;\n /* min-width: 1560px; */\n}\n.work-panel .mat-row {\n min-height: 40px;\n height: 43px;\n}\n.work-panel .mat-cell {\n font-size: 13px;\n}\n.work-panel .mat-header-row {\n top: 0;\n position: sticky;\n z-index: 1;\n}\n.work-panel .mat-header-cell {\n font-size: 15px;\n}\n.work-panel .mat-column-select {\n overflow: visible;\n flex: 0 0 100px;\n}\n.work-panel .mat-column-index {\n overflow: visible;\n flex: 0 0 100px;\n}\n.work-panel .mat-column-name {\n flex: 0 0 200px;\n}\n.work-panel .mat-column-description {\n flex: 2 1 250px;\n}"],"sourceRoot":""}]); +// Exports +module.exports = ___CSS_LOADER_EXPORT___.toString(); + + +/***/ }), + +/***/ 46700: +/*!***************************************************!*\ + !*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***! + \***************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var map = { + "./af": 35528, + "./af.js": 35528, + "./ar": 1036, + "./ar-dz": 17579, + "./ar-dz.js": 17579, + "./ar-kw": 69588, + "./ar-kw.js": 69588, + "./ar-ly": 11650, + "./ar-ly.js": 11650, + "./ar-ma": 93258, + "./ar-ma.js": 93258, + "./ar-ps": 25467, + "./ar-ps.js": 25467, + "./ar-sa": 54085, + "./ar-sa.js": 54085, + "./ar-tn": 90287, + "./ar-tn.js": 90287, + "./ar.js": 1036, + "./az": 89757, + "./az.js": 89757, + "./be": 59620, + "./be.js": 59620, + "./bg": 31139, + "./bg.js": 31139, + "./bm": 4042, + "./bm.js": 4042, + "./bn": 19641, + "./bn-bd": 19126, + "./bn-bd.js": 19126, + "./bn.js": 19641, + "./bo": 494, + "./bo.js": 494, + "./br": 20934, + "./br.js": 20934, + "./bs": 26274, + "./bs.js": 26274, + "./ca": 45831, + "./ca.js": 45831, + "./cs": 92354, + "./cs.js": 92354, + "./cv": 79692, + "./cv.js": 79692, + "./cy": 58774, + "./cy.js": 58774, + "./da": 38955, + "./da.js": 38955, + "./de": 21557, + "./de-at": 24954, + "./de-at.js": 24954, + "./de-ch": 81881, + "./de-ch.js": 81881, + "./de.js": 21557, + "./dv": 16475, + "./dv.js": 16475, + "./el": 38877, + "./el.js": 38877, + "./en-au": 70454, + "./en-au.js": 70454, + "./en-ca": 67356, + "./en-ca.js": 67356, + "./en-gb": 10456, + "./en-gb.js": 10456, + "./en-ie": 28789, + "./en-ie.js": 28789, + "./en-il": 85471, + "./en-il.js": 85471, + "./en-in": 39664, + "./en-in.js": 39664, + "./en-nz": 97672, + "./en-nz.js": 97672, + "./en-sg": 80805, + "./en-sg.js": 80805, + "./eo": 87390, + "./eo.js": 87390, + "./es": 1564, + "./es-do": 51473, + "./es-do.js": 51473, + "./es-mx": 92089, + "./es-mx.js": 92089, + "./es-us": 84156, + "./es-us.js": 84156, + "./es.js": 1564, + "./et": 6513, + "./et.js": 6513, + "./eu": 7856, + "./eu.js": 7856, + "./fa": 2378, + "./fa.js": 2378, + "./fi": 22687, + "./fi.js": 22687, + "./fil": 80032, + "./fil.js": 80032, + "./fo": 46845, + "./fo.js": 46845, + "./fr": 8875, + "./fr-ca": 56425, + "./fr-ca.js": 56425, + "./fr-ch": 41746, + "./fr-ch.js": 41746, + "./fr.js": 8875, + "./fy": 67037, + "./fy.js": 67037, + "./ga": 11217, + "./ga.js": 11217, + "./gd": 37010, + "./gd.js": 37010, + "./gl": 51931, + "./gl.js": 51931, + "./gom-deva": 64488, + "./gom-deva.js": 64488, + "./gom-latn": 8032, + "./gom-latn.js": 8032, + "./gu": 34984, + "./gu.js": 34984, + "./he": 69090, + "./he.js": 69090, + "./hi": 42085, + "./hi.js": 42085, + "./hr": 38787, + "./hr.js": 38787, + "./hu": 2901, + "./hu.js": 2901, + "./hy-am": 59819, + "./hy-am.js": 59819, + "./id": 44074, + "./id.js": 44074, + "./is": 70715, + "./is.js": 70715, + "./it": 31746, + "./it-ch": 77040, + "./it-ch.js": 77040, + "./it.js": 31746, + "./ja": 3180, + "./ja.js": 3180, + "./jv": 34346, + "./jv.js": 34346, + "./ka": 65538, + "./ka.js": 65538, + "./kk": 79772, + "./kk.js": 79772, + "./km": 87905, + "./km.js": 87905, + "./kn": 79125, + "./kn.js": 79125, + "./ko": 69140, + "./ko.js": 69140, + "./ku": 2354, + "./ku-kmr": 44662, + "./ku-kmr.js": 44662, + "./ku.js": 2354, + "./ky": 63768, + "./ky.js": 63768, + "./lb": 14016, + "./lb.js": 14016, + "./lo": 83169, + "./lo.js": 83169, + "./lt": 62353, + "./lt.js": 62353, + "./lv": 83243, + "./lv.js": 83243, + "./me": 52338, + "./me.js": 52338, + "./mi": 35555, + "./mi.js": 35555, + "./mk": 85794, + "./mk.js": 85794, + "./ml": 53151, + "./ml.js": 53151, + "./mn": 46458, + "./mn.js": 46458, + "./mr": 69165, + "./mr.js": 69165, + "./ms": 8680, + "./ms-my": 87477, + "./ms-my.js": 87477, + "./ms.js": 8680, + "./mt": 79684, + "./mt.js": 79684, + "./my": 40285, + "./my.js": 40285, + "./nb": 45922, + "./nb.js": 45922, + "./ne": 29040, + "./ne.js": 29040, + "./nl": 5066, + "./nl-be": 74460, + "./nl-be.js": 74460, + "./nl.js": 5066, + "./nn": 53693, + "./nn.js": 53693, + "./oc-lnc": 88676, + "./oc-lnc.js": 88676, + "./pa-in": 92341, + "./pa-in.js": 92341, + "./pl": 57416, + "./pl.js": 57416, + "./pt": 84344, + "./pt-br": 30113, + "./pt-br.js": 30113, + "./pt.js": 84344, + "./ro": 72643, + "./ro.js": 72643, + "./ru": 61305, + "./ru.js": 61305, + "./sd": 96095, + "./sd.js": 96095, + "./se": 74486, + "./se.js": 74486, + "./si": 58742, + "./si.js": 58742, + "./sk": 96722, + "./sk.js": 96722, + "./sl": 3345, + "./sl.js": 3345, + "./sq": 52416, + "./sq.js": 52416, + "./sr": 39450, + "./sr-cyrl": 50501, + "./sr-cyrl.js": 50501, + "./sr.js": 39450, + "./ss": 32222, + "./ss.js": 32222, + "./sv": 9454, + "./sv.js": 9454, + "./sw": 19638, + "./sw.js": 19638, + "./ta": 96494, + "./ta.js": 96494, + "./te": 94435, + "./te.js": 94435, + "./tet": 25003, + "./tet.js": 25003, + "./tg": 13706, + "./tg.js": 13706, + "./th": 16025, + "./th.js": 16025, + "./tk": 59780, + "./tk.js": 59780, + "./tl-ph": 22068, + "./tl-ph.js": 22068, + "./tlh": 39167, + "./tlh.js": 39167, + "./tr": 32494, + "./tr.js": 32494, + "./tzl": 58707, + "./tzl.js": 58707, + "./tzm": 91296, + "./tzm-latn": 34532, + "./tzm-latn.js": 34532, + "./tzm.js": 91296, + "./ug-cn": 12086, + "./ug-cn.js": 12086, + "./uk": 85069, + "./uk.js": 85069, + "./ur": 29304, + "./ur.js": 29304, + "./uz": 95115, + "./uz-latn": 97609, + "./uz-latn.js": 97609, + "./uz.js": 95115, + "./vi": 34802, + "./vi.js": 34802, + "./x-pseudo": 65605, + "./x-pseudo.js": 65605, + "./yo": 88456, + "./yo.js": 88456, + "./zh-cn": 23272, + "./zh-cn.js": 23272, + "./zh-hk": 9402, + "./zh-hk.js": 9402, + "./zh-mo": 48101, + "./zh-mo.js": 48101, + "./zh-tw": 40262, + "./zh-tw.js": 40262 +}; + + +function webpackContext(req) { + var id = webpackContextResolve(req); + return __webpack_require__(id); +} +function webpackContextResolve(req) { + if(!__webpack_require__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = 46700; + +/***/ }), + +/***/ 68766: +/*!************************************************************************!*\ + !*** ./src/app/alarms/alarm-list/alarm-list.component.html?ngResource ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n warning_amber\n {{'alarms.list-title' | translate}}\n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n {{'alarms.list-name' | translate}} \n {{element.name}} \n \n \n \n {{'alarms.list-device' | translate}} \n {{getVariableLabel(element.property)}}\n \n \n \n {{'alarms.list-highhigh' | translate}} \n {{getSubProperty(element.highhigh)}} \n \n \n \n {{'alarms.list-high' | translate}} \n {{getSubProperty(element.high)}} \n \n \n \n {{'alarms.list-low' | translate}} \n {{getSubProperty(element.low)}} \n \n \n \n {{'alarms.list-info' | translate}} \n {{getSubProperty(element.info)}} \n \n \n \n {{'alarms.list-actions' | translate}} \n {{getSubActionsProperty(element.actions)}} \n \n\n \n \n \n \n \n \n \n\n \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 99064: +/*!********************************************************************************!*\ + !*** ./src/app/alarms/alarm-property/alarm-property.component.html?ngResource ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'alarm.property-title' | translate}}

    \n clear\n
    \n {{'msg.alarm-remove' | translate}} '{{data.alarm.name}}' ?\n
    \n
    = 0\">\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n {{option}}\n \n \n {{option}}\n \n \n \n
    \n
    \n
    \n {{'alarm.property-enabled' | translate}}\n \n
    \n
    \n {{'alarm.property-ackmode' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n
    \n {{'alarm.property-checkdelay' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'alarm.property-timedelay' | translate}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-text' | translate}}\n \n
    \n
    \n {{'alarm.property-group' | translate}}\n \n
    \n
    \n
    \n
    \n {{data.alarm.highhigh.text}}\n
    \n
    \n {{data.alarm.highhigh.group}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'alarm.property-enabled' | translate}}\n \n
    \n
    \n {{'alarm.property-ackmode' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n
    \n {{'alarm.property-checkdelay' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'alarm.property-timedelay' | translate}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-text' | translate}}\n \n
    \n
    \n {{'alarm.property-group' | translate}}\n \n
    \n
    \n
    \n
    \n {{data.alarm.high.text}}\n
    \n
    \n {{data.alarm.high.group}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'alarm.property-enabled' | translate}}\n \n
    \n
    \n {{'alarm.property-ackmode' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n
    \n {{'alarm.property-checkdelay' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'alarm.property-timedelay' | translate}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-text' | translate}}\n \n
    \n
    \n {{'alarm.property-group' | translate}}\n \n
    \n
    \n
    \n
    \n {{data.alarm.low.text}}\n
    \n
    \n {{data.alarm.low.group}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'alarm.property-enabled' | translate}}\n \n
    \n
    \n {{'alarm.property-ackmode' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n
    \n {{'alarm.property-checkdelay' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'alarm.property-timedelay' | translate}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-text' | translate}}\n \n
    \n
    \n {{'alarm.property-group' | translate}}\n \n
    \n
    \n
    \n
    \n {{data.alarm.info.text}}\n
    \n
    \n {{data.alarm.info.group}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'alarm.property-enabled' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'alarm.property-checkdelay' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'alarm.property-timedelay' | translate}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-action-type' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n {{'alarm.property-action-value' | translate}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-action-destination' | translate}}\n \n {{v.name}}\n \n
    \n
    \n
    \n
    \n {{'gauges.property-event-script' | translate}}\n \n {{script.name}}\n \n
    \n
    \n
    \n
    \n {{'alarm.property-action-toastMessage' | translate}}\n \n
    \n
    \n {{'alarm.property-action-toastType' | translate}}\n \n error\n warning\n success\n info\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-event-script-param-name' | translate}}\n \n
    \n
    \n
    \n {{'gauges.property-event-script-param-value' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'msg.alarmproperty-error-exist' | translate}}\n
    \n
    \n {{'msg.alarmproperty-missing-value' | translate}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 17755: +/*!************************************************************************!*\ + !*** ./src/app/alarms/alarm-view/alarm-view.component.html?ngResource ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'alarms.view-title' | translate}}\n
    \n
    \n {{'alarms.history-title' | translate}}\n
    \n
    \n
    \n \n \n {{'alarms.view-ontime' | translate}} \n {{element.ontime | date: 'yyyy.MM.dd HH:mm:ss'}} \n \n \n {{'alarms.view-text' | translate}} \n {{element.text}} \n \n \n {{'alarms.view-type' | translate}} \n {{element.type}}\n \n \n {{'alarms.view-group' | translate}} \n {{element.group}}\n \n \n {{'alarms.view-status' | translate}} \n {{element.status}} \n \n \n {{'alarms.view-offtime' | translate}} \n {{(element.offtime) ? (element.offtime | date: 'yyyy.MM.dd HH:mm:ss') : ''}} \n \n \n {{'alarms.view-acktime' | translate}} \n {{(element.acktime) ? (element.acktime | date: 'yyyy.MM.dd HH:mm:ss') : ''}} \n \n \n \n \n \n \n \n \n \n \n {{'alarms.view-userack' | translate}} \n {{element.userack}}\n \n \n \n
    \n \n \n \n \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    "; + +/***/ }), + +/***/ 33383: +/*!***********************************************!*\ + !*** ./src/app/app.component.html?ngResource ***! + \***********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n \n
    \n \n \n \n \n \n \n
    \n
    "; + +/***/ }), + +/***/ 60160: +/*!*****************************************************************!*\ + !*** ./src/app/cards-view/cards-view.component.html?ngResource ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n iframe {{ item.card.data }}\n
    \n \n \n \n
    \n
    \n
    \n
    \n {{'card.style-zoom' | translate}}\n \n \n \n \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 19006: +/*!**************************************************************************!*\ + !*** ./src/app/device/device-list/device-list.component.html?ngResource ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n
    \n {{'device.list-device' | translate}}\n \n \n {{ device.name }}\n \n \n
    \n
    \n {{'device.list-filter' | translate}}\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n {{'device.list-name' | translate}} \n {{getTagLabel(element)}} \n \n\n \n \n {{'device.list-address' | translate}} \n {{getAddress(element)}} \n \n\n \n \n {{'device.list-device' | translate}} \n {{deviceSelected.name}} \n \n\n \n \n {{'device.list-type' | translate}} \n {{element.type}} \n \n\n \n \n {{'device.list-min' | translate}} \n {{element.min}} \n \n\n \n \n {{'device.list-max' | translate}} \n {{element.max}} \n \n\n \n \n {{'device.list-value' | translate}} \n {{element.value}} \n \n\n \n \n {{'device.list-timestamp' | translate}} \n {{element.timestamp | date : 'dd-MM-yyyy HH:mm:ss' }} \n \n \n {{'device.list-description' | translate}} \n {{ element.description }}\n \n\n \n \n \n \n
    \n \n settings_backup_restore\n \n \n storage\n \n {{element.daq.interval}} s\n \n \n
    \n
    \n
    \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n {{'device.list-direction' | translate}} \n {{element.direction}} \n \n\n \n \n
    \n \n
    \n"; + +/***/ }), + +/***/ 16864: +/*!************************************************************************!*\ + !*** ./src/app/device/device-map/device-map.component.html?ngResource ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ server.name }}\n {{ server.property.address }}\n \n \n \n \n
    \n\n
    \n {{ flow.name }}\n {{ flow.property.address }}\n {{ getDevicePropertyToShow(flow) }}\n
    \n \n \n \n
    \n\n
    \n {{ device.name }}\n {{ device.property.address }}\n {{ getDevicePropertyToShow(device) }}\n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{'devices.list-name' | translate}} \n {{element.name}} \n \n \n \n {{'devices.list-type' | translate}} \n {{element.type}} \n \n \n \n {{'devices.list-polling' | translate}} \n {{element.polling}} \n \n \n \n {{'devices.list-address' | translate}} \n {{getDeviceAddress(element)}} \n \n \n \n {{'devices.list-status' | translate}} \n {{getDeviceStatusText(element)}} \n \n \n \n {{'devices.list-enabled' | translate}} \n {{element.enabled}} \n \n \n \n \n \n \n \n \n\n \n \n \n \n
    "; + +/***/ }), + +/***/ 32471: +/*!*************************************************************************************************************************!*\ + !*** ./src/app/device/device-map/device-webapi-property-dialog/device-webapi-property-dialog.component.html?ngResource ***! + \*************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.webapi-property-title' | translate}}

    \n clear\n
    \n
    \n
    \n {{'device.property-name' | translate}}\n \n
    \n
    \n
    \n {{'device.property-type' | translate}}\n \n
    \n
    \n {{'device.property-polling' | translate}}\n \n
    \n
    \n {{'device.property-enable' | translate}}\n \n
    \n
    \n
    \n {{'device.webapi-property-gettags' | translate}}\n \n
    \n
    \n {{'device.webapi-property-posttags' | translate}}\n \n
    \n
    \n {{message}}\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    "; + +/***/ }), + +/***/ 4880: +/*!**********************************************************************************!*\ + !*** ./src/app/device/device-property/device-property.component.html?ngResource ***! + \**********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'msg.device-remove' | translate}} '{{data.device.name}}' ?\n
    \n
    \n

    \n {{'device.property-client' | translate}}

    \n

    \n {{'device.property-server' | translate}}

    \n clear\n
    \n
    \n
    \n
    \n {{'device.property-name' | translate}}\n \n
    \n
    \n {{'device.property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.property-internal' | translate}}\n
    \n
    \n {{'device.property-polling' | translate}}\n \n 3000\">\n {{ polling.text }}\n \n \n
    \n
    \n {{'device.property-enable' | translate}}\n \n
    \n
    \n
    \n
    \n {{'device.property-address-opc' | translate}}\n \n
    \n
    \n \n \n \n {{'device.property-security' | translate}}\n {{'device.not-property-security' | translate}}\n \n \n
    \n \n
    \n
    \n \n {{sec.text}}\n \n
    \n
    \n {{'general.username' | translate}}\n \n
    \n
    \n {{'general.password' | translate}}\n \n {{showPassword ? 'visibility' : 'visibility_off'}}\n
    \n
    \n
    \n {{propertyError}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'device.property-interface-address' | translate}}\n \n
    \n
    \n {{'device.property-broadcast-address' | translate}}\n \n
    \n
    \n {{'device.property-adpu-timeout' | translate}}\n \n
    \n
    \n
    \n
    \n {{'device.property-address-s7' | translate}}\n \n
    \n
    \n {{'device.property-rack' | translate}}\n \n
    \n
    \n {{'device.property-slot' | translate}}\n \n
    \n
    \n
    \n
    \n {{'device.property-connection-options' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n
    \n {{'device.property-serialport' | translate}}\n \n
    \n
    \n {{'device.property-slave-id' | translate}}\n \n
    \n
    \n
    \n {{'device.property-baudrate' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n {{'device.property-databits' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n {{'device.property-stopbits' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n {{'device.property-parity' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n
    \n {{'device.property-tockenized' | translate}}\n \n
    \n
    \n {{'device.property-delay' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'device.property-connection-options' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n {{'device.property-socket-reuse' | translate}}\n \n \n \n {{ mode.value }}\n \n \n
    \n
    \n
    \n {{'device.property-address-port' | translate}}\n \n
    \n
    \n {{'device.property-slave-id' | translate}}\n \n
    \n
    \n
    \n {{'device.property-tockenized' | translate}}\n \n
    \n
    \n {{'device.property-delay' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n {{'device.property-method' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n {{'device.property-format' | translate}}\n \n \n {{ value }}\n \n \n
    \n
    \n {{'device.property-url' | translate}}\n \n
    \n
    \n \n \n \n {{'device.property-webapi-result' | translate}}\n {{'device.not-webapi-result' | translate}}\n \n \n
    \n \n
    \n
    \n
    \n {{result}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'device.property-mqtt-address' | translate}}\n \n
    \n
    \n \n \n \n {{'device.property-security' | translate}}\n {{'device.not-property-security' | translate}}\n \n \n
    \n \n
    \n \n
    \n
    \n {{'general.clientId' | translate}}\n \n
    \n
    \n {{'general.username' | translate}}\n \n
    \n
    \n {{'general.password' | translate}}\n \n {{showPassword ? 'visibility' : 'visibility_off'}}\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {{'device.property-certificate-section' | translate}}\n \n \n \n
    \n
    \n {{'device.property-certificate' | translate}}\n \n \n
    \n
    \n {{'device.property-certificate-key' | translate}}\n \n \n
    \n
    \n {{'device.property-certificate-ca' | translate}}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'device.property-address-port' | translate}}\n \n
    \n
    \n
    \n {{'device.property-routing' | translate}}\n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n {{'device.property-dsn' | translate}}\n \n
    \n
    \n {{'general.username' | translate}}\n \n
    \n
    \n {{'general.password' | translate}}\n \n {{showPassword ? 'visibility' : 'visibility_off'}}\n
    \n
    \n \n \n \n {{'device.property-odbc-result' | translate}}\n {{'device.not-odbc-result' | translate}}\n \n \n
    \n \n
    \n
    \n \n {{table}}\n \n
    \n {{propertyError}}\n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{'device.property-ads-target' | translate}}\n \n
    \n
    \n {{'device.property-ads-local' | translate}}\n \n
    \n
    \n {{'device.property-ads-router' | translate}}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'device.property-melsec-target' | translate}}\n \n
    \n
    \n
    \n {{'device.property-melsec-ascii' | translate}}\n \n
    \n
    \n {{'device.property-melsec-octalIO' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 75698: +/*!********************************************************************************************!*\ + !*** ./src/app/device/device-tag-selection/device-tag-selection.component.html?ngResource ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device-tag-dialog-title' | translate}}

    \n clear\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{'device.list-name' | translate}}\n \n \n {{element.name}} \n \n \n \n \n {{'device.list-address' | translate}}\n \n \n {{element.address}} \n \n \n \n \n {{'device.list-device' | translate}}\n \n \n {{element.device}} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 93562: +/*!*********************************************************!*\ + !*** ./src/app/device/device.component.html?ngResource ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'device.list-title' | translate}}\n
    \n
    \n \n \n
    \n
    \n\n\n\n\n \n \n \n \n \n \n \n \n\n\n\n\n"; + +/***/ }), + +/***/ 49294: +/*!**************************************************************************!*\ + !*** ./src/app/device/tag-options/tag-options.component.html?ngResource ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-options-title' | translate}}

    \n clear\n
    \n
    \n
    \n {{'device.tag-daq-enabled' | translate}}\n \n
    \n
    \n {{'device.tag-daq-changed' | translate}}\n \n
    \n
    \n {{'device.tag-daq-restored' | translate}}\n \n
    \n
    \n
    \n {{'device.tag-daq-interval' | translate}}\n \n
    \n
    \n {{'device.tag-format' | translate}}\n \n
    \n
    \n {{'device.tag-deadband' | translate}}\n \n
    \n
    \n
    \n {{'device.tag-scale' | translate}}\n \n \n {{ ev.value | translate }}\n \n \n
    \n \n \n
    \n {{'device.tag-convert-datetime-format' | translate}}\n \n
    \n
    \n \n
    \n {{'device.tag-convert-ticktime-format' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'device.tag-raw-low' | translate}}\n \n
    \n
    \n {{'device.tag-raw-high' | translate}}\n \n
    \n
    \n
    \n
    \n {{'device.tag-scaled-low' | translate}}\n \n
    \n
    \n {{'device.tag-scaled-high' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n {{'device.tag-scale-read-script' | translate}}\n \n \n {{script.name}}\n \n
    \n
    0\"\n class=\"my-form-field block mt5 ml15\">\n {{'device.tag-scale-read-script-params' | translate}}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{'device.tag-scale-write-script' | translate}}\n \n \n {{script.name}}\n \n
    \n
    0\"\n class=\"my-form-field block mt5 ml15\">\n {{'device.tag-scale-write-script-params' | translate}}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 13987: +/*!***********************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-adsclient/tag-property-edit-adsclient.component.html?ngResource ***! + \***********************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-address-offset' | translate}}\n \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 28537: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-bacnet/tag-property-edit-bacnet.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.browsetag-property-title' | translate}}

    \n clear\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 90828: +/*!*************************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-ethernetip/tag-property-edit-ethernetip.component.html?ngResource ***! + \*************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-address-sample' | translate}}\n \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 10833: +/*!*************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-gpio/tag-property-edit-gpio.component.html?ngResource ***! + \*************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-gpio' | translate}}\n \n
    \n
    \n
    \n {{'device.tag-property-direction' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-edge' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 80691: +/*!*********************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-internal/tag-property-edit-internal.component.html?ngResource ***! + \*********************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-initvalue' | translate}}\n \n
    \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 47284: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-melsec/tag-property-edit-melsec.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-address-sample' | translate}}\n \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 44261: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-modbus/tag-property-edit-modbus.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-register' | translate}}\n \n \n {{ type.key }}\n \n \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-address-offset' | translate}}\n \n
    \n
    \n {{'device.tag-property-divisor' | translate}}\n \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 76429: +/*!***************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-opcua/tag-property-edit-opcua.component.html?ngResource ***! + \***************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    \n \n {{'device.tag-property-title' | translate}}\n \n \n {{'device.browsetag-property-title' | translate}}\n \n

    \n clear\n
    \n \n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 88789: +/*!*********************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-s7/tag-property-edit-s7.component.html?ngResource ***! + \*********************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-address' | translate}}\n \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 84327: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-server/tag-property-edit-server.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n
    \n {{'device.tag-property-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-initvalue' | translate}}\n \n
    \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 30677: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-webapi/tag-property-edit-webapi.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.browsetag-property-title' | translate}}

    \n clear\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 96091: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/device/tag-property/tag-property-edit-webcam/tag-property-edit-webcam.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'device.tag-property-title' | translate}}

    \n clear\n
    \n
    \n {{'device.tag-property-device' | translate}}\n \n
    \n
    \n {{'device.tag-property-name' | translate}}\n \n \n {{formGroup.controls.tagName.errors?.name}}\n \n
    \n
    \n {{'device.tag-property-webcam-device-address' | translate}}\n \n
    \n
    \n
    \n {{'device.tag-property-webcam-options.width' | translate}}\n \n
    \n
    \n {{'device.tag-property-webcam-options.height' | translate}}\n \n
    \n
    \n
    \n
    \n {{'device.tag-property-webcam-options.quality' | translate}}\n \n
    \n
    \n {{'device.tag-property-webcam-options.frames' | translate}}\n \n
    \n
    \n
    \n
    \n {{'device.tag-property-webcam-options.outputType' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'device.tag-property-webcam-options.callbackReturn' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n
    \n {{'device.tag-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 14214: +/*!********************************************************************************!*\ + !*** ./src/app/device/topic-property/topic-property.component.html?ngResource ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n

    \n {{'device.browsetopics-property-title' | translate}}\n

    \n clear\n \n \n
    \n
    \n {{'device.discovery-topics' | translate}}\n \n
    \n \n
    \n \n
    \n \n
    \n {{discoveryError}}\n
    \n
    \n
    \n
    \n
    \n
    \n {{topic.key}}\n
    \n
    \n {{topic.value.content}}\n
    \n
    \n
    \n
    \n
    \n
    \n {{'device.topic-selected' | translate}}\n \n
    \n
    \n \n {{'device.topic-publish-add-item' | translate}}\n
    \n \n {{'device.topic-raw' | translate}}\n {{'device.topic-json' | translate}}\n \n \n
    \n
    \n
    \n {{'device.topic-subscription-name' | translate}}\n {{'device.topic-subscription-address' | translate}}\n \n \n {{'device.topic-select-all' | translate}}\n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{tcontent.value}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{'device.topic-publish-name' | translate}}\n \n
    \n
    \n {{'device.topic-publish-path' | translate}}\n \n
    \n \n {{'device.topic-raw' | translate}}\n {{'device.topic-json' | translate}}\n \n \n
    \n \n
    \n
    \n
    \n {{'device.topic-publish-key' | translate}}\n \n
    \n
    \n {{'device.topic-publish-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n
    \n \n
    \n
    \n {{'device.topic-publish-timestamp' | translate}}\n \n
    \n
    \n {{'device.topic-publish-value' | translate}}\n \n
    \n
    \n {{'device.topic-publish-static' | translate}}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{'device.topic-publish-content' | translate}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 92459: +/*!****************************************************************************!*\ + !*** ./src/app/editor/app-settings/app-settings.component.html?ngResource ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.app-settings-title' | translate}}

    \n clear\n
    \n \n \n
    \n
    \n {{'dlg.app-settings-language' | translate}}\n \n \n {{ language.text }}\n \n \n
    \n
    \n {{'dlg.app-settings-server-port' | translate}}\n \n
    \n
    \n
    \n {{'dlg.app-settings-auth-token' | translate}}\n error_outline\n \n \n {{ auth.text }}\n \n \n
    \n
    \n {{'dlg.app-settings-auth-only-editor' | translate}}\n \n
    \n
    \n
    \n {{'dlg.app-settings-client-broadcast' | translate}}\n \n {{'general.enabled' | translate}}\n {{'general.disabled' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-server-log-full' | translate}}\n \n {{'general.enabled' | translate}}\n {{'general.disabled' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-user-group-label' | translate}}\n \n {{'dlg.app-settings-user-group' | translate}}\n {{'dlg.app-settings-user-roles' | translate}}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'dlg.app-settings-smtp-host' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-smtp-port' | translate}}\n \n
    \n
    \n
    \n {{'dlg.app-settings-smtp-mailsender' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-smtp-user' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-smtp-password' | translate}}\n \n {{showPassword ? 'visibility' : 'visibility_off'}}\n
    \n
    \n
    \n {{'dlg.app-settings-smtp-testaddress' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{'dlg.app-settings-daqstore-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n
    \n
    \n {{'dlg.app-settings-daqstore-retention' | translate}}\n \n \n {{'store.retention-' + retation.value | translate}}\n \n \n
    \n
    \n
    \n {{'dlg.app-settings-daqstore-url' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-token' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-bucket' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-organization' | translate}}\n \n
    \n
    \n
    \n
    \n {{'dlg.app-settings-daqstore-url' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-database' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-username' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-password' | translate}}\n \n
    \n
    \n
    \n
    \n {{'dlg.app-settings-daqstore-url' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-database' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-username' | translate}}\n \n
    \n
    \n {{'dlg.app-settings-daqstore-password' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{'dlg.app-settings-daqstore-retention' | translate}}\n \n \n {{'store.retention-' + retation.value | translate}}\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 49501: +/*!**************************************************************************!*\ + !*** ./src/app/editor/card-config/card-config.component.html?ngResource ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'card.config-title' | translate}}

    \n clear\n
    \n
    \n {{'card.config-content-type' | translate}}\n \n \n {{ 'card.widget-' + type.value | translate }}\n \n \n
    \n
    \n
    \n
    \n {{'card.config-content-view' | translate}}\n \n \n {{ view }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'card.config-content-iframe' | translate}}\n \n
    \n
    \n
    \n\n
    \n {{'panel.property-scalemode' | translate}}\n \n \n {{'panel.property-scalemode-' + mode.value | translate }}\n \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 90221: +/*!****************************************************************************!*\ + !*** ./src/app/editor/chart-config/chart-config.component.html?ngResource ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'chart.config-title' | translate}}

    \n clear\n
    \n
    \n \n
    \n
    \n
    \n cancel\n \n {{chart.name}}\n \n more_vert\n \n \n \n \n \n
    \n
    \n
    \n \n \n \n {{'chart.config-line-name' | translate}}\n {{'chart.config-line-label' | translate}}\n {{'chart.config-devices' | translate}}\n {{'chart.config-line-yaxis' | translate}}\n {{'chart.config-line-interpolation' | translate}}\n {{'chart.config-line-color' | translate}}\n {{'chart.config-line-fill' | translate}}\n \n
    \n \n delete\n
    \n {{getDeviceTagName(line)}}\n
    \n
    \n {{line.label}}\n
    \n
    \n {{line.device}}\n
    \n
    \n {{line.yaxis}}\n
    \n
    \n {{getLineInterpolationName(line)}}\n
    \n
    \n  \n
    \n
    \n  \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 3221: +/*!*******************************************************************************************************!*\ + !*** ./src/app/editor/chart-config/chart-line-property/chart-line-property.component.html?ngResource ***! + \*******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'chart.config-lines' | translate}}

    \n clear\n
    \n
    \n {{'chart.config-line-name' | translate}}\n \n
    \n
    \n {{'chart.config-line-label' | translate}}\n \n
    \n
    \n
    \n {{'chart.config-line-yaxis' | translate}}\n \n \n {{ yaxis }}\n \n \n
    \n
    \n {{'chart.config-line-interpolation' | translate}}\n \n \n {{ interpo.text }}\n \n \n
    \n
    \n
    \n
    \n {{'chart.config-line-width' | translate}}\n \n
    \n
    \n {{'chart.config-line-gap' | translate}}\n \n
    \n
    \n
    \n
    \n {{'chart.config-line-color' | translate}}\n \n
    \n
    \n {{'chart.config-line-fill' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'chart.config-line-zone-min' | translate}}\n \n
    \n
    \n {{'chart.config-line-zone-max' | translate}}\n \n
    \n
    \n {{'chart.config-line-zone-stroke' | translate}}\n \n
    \n
    \n {{'chart.config-line-zone-fill' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 22376: +/*!********************************************************************************************!*\ + !*** ./src/app/editor/client-script-access/client-script-access.component.html?ngResource ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'client.script-access-title' | translate}}

    \n clear\n
    \n
    {{'client.script-access-info' | translate}}
    \n
    \n
    \n \n {{ fn.name }} {{ fn.tooltip | translate }}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 32525: +/*!**************************************************************************************!*\ + !*** ./src/app/editor/editor-views-list/editor-views-list.component.html?ngResource ***! + \**************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n
    \n \n wysiwyg\n \n \n grid_view\n \n \n map\n \n \n {{item.name}}\n \n \n more_vert\n \n \n \n \n \n \n \n \n \n
    "; + +/***/ }), + +/***/ 89958: +/*!*********************************************************!*\ + !*** ./src/app/editor/editor.component.html?ngResource ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n
    \n\n \n \n \n\n\n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n expand_less\n expand_more\n {{'editor.views' | translate}} \n \n add\n \n system_update_alt\n \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.general' | translate}} \n \n \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n expand_less\n expand_more\n {{'editor.controls' | translate}}\n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n pie_chart\n
    \n
    \n photo_size_select_actual\n \n
    \n
    \n web_asset\n
    \n
    \n ondemand_video\n
    \n
    \n schedule\n
    \n
    \n
    \n \n \n \n \n expand_less\n expand_more\n {{shGrp.name | translate}}\n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n expand_less\n expand_more\n {{ 'resources.lib-widgets' | translate }}\n \n widgets\n \n \n \n \n \n \n \n \n \n \n expand_more\n {{'editor.resources' | translate}}\n \n add\n \n \n \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.interactivity' | translate}} \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.transform' | translate}} \n \n \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-x' | translate}}\n \n
    \n
    \n {{'editor.transform-y' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-x1' | translate}}\n \n
    \n
    \n {{'editor.transform-y1' | translate}}\n \n
    \n
    \n
    \n
    \n {{'editor.transform-x2' | translate}}\n \n
    \n
    \n {{'editor.transform-y2' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-width' | translate}}\n \n
    \n
    \n {{'editor.transform-height' | translate}}\n \n
    \n
    \n
    \n
    \n {{'editor.transform-radiuscorner' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-width' | translate}}\n \n
    \n
    \n {{'editor.transform-height' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-width' | translate}}\n \n
    \n
    \n {{'editor.transform-height' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-circlecx' | translate}}\n \n
    \n
    \n {{'editor.transform-circlecy' | translate}}\n \n
    \n
    \n
    \n
    \n {{'editor.transform-circler' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-ellipsecx' | translate}}\n \n
    \n
    \n {{'editor.transform-ellipsecy' | translate}}\n \n
    \n
    \n
    \n
    \n {{'editor.transform-ellipserx' | translate}}\n \n
    \n
    \n {{'editor.transform-ellipsery' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-fontfamily' | translate}}\n \n
    \n
    \n
    \n {{'editor.transform-fontsize' | translate}}\n \n
    \n
    \n {{'editor.transform-textalign' | translate}}\n \n
    \n
    \n\n \n \n
    \n
    \n
    \n
    \n {{'editor.transform-width' | translate}}\n \n
    \n
    \n {{'editor.transform-height' | translate}}\n \n
    \n
    \n
    \n
    \n {{'editor.transform-url' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'editor.transform-angle' | translate}}\n \n
    \n
    \n {{'editor.transform-hide' | translate}}\n \n
    \n
    \n {{'editor.transform-lock' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.align' | translate}} \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.stroke' | translate}} \n \n \n
    \n
    \n
    \n
    \n {{'editor.stroke-width' | translate}}\n \n
    \n
    \n {{'editor.stroke-style' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{'editor.stroke-shadow' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.marker' | translate}} \n \n \n
    \n
    \n
    \n {{'editor.marker-start' | translate}}\n \n
    \n
    \n {{'editor.marker-middle' | translate}}\n \n
    \n
    \n {{'editor.marker-end' | translate}}\n \n
    \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.hyperlink' | translate}} \n \n \n
    \n
    \n {{'editor.hyperlink-url' | translate}}\n \n
    \n
    \n
    \n \n \n \n expand_less\n expand_more\n {{'editor.interactivity' | translate}} \n \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n \n
      \n
    • 1000%
    • \n
    • 400%
    • \n
    • 200%
    • \n
    • 100%
    • \n
    • 50%
    • \n
    • 25%
    • \n
    • {{'editor.tools-zoomlevel-fitcanvas' | translate}}
    • \n
    • {{'editor.tools-zoomlevel-fitsection' | translate}}
    • \n
    • {{'editor.tools-zoomlevel-fitcontent' | translate}}
    • \n
    • 100%
    • \n
    \n
    \n
    \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
      \n
    • \n
    • \n
    • \n
    • \n
    • \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    Copy the contents of this box into a text editor, then save the file with a .svg\n extension.

    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n\n\n
    \n Image Properties\n \n\n
    \n Canvas Dimensions\n\n \n\n \n\n \n
    \n\n
    \n Included Images\n \n \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n Editor Preferences\n\n \n\n \n\n
    \n Editor Background\n
    \n \n

    Note: Background will not be saved with image.

    \n
    \n\n
    \n Grid\n \n \n \n
    \n\n
    \n Units & Rulers\n \n \n
    \n\n
    \n\n
    \n
    \n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n\n \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 57715: +/*!****************************************************************************!*\ + !*** ./src/app/editor/graph-config/graph-config.component.html?ngResource ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'graph.config-title' | translate}}

    \n clear\n
    \n
    \n \n
    \n
    \n
    \n cancel\n \n {{graph.name}}\n \n more_vert\n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n {{'graph.property-xtype' | translate}}\n
    \n
    \n
    \n \n \n \n {{ ev.value }}\n \n \n
    \n
    \n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n
    \n
    \n {{'graph.property-sources' | translate}}\n \n
    \n
    \n \n \n delete\n
    \n {{getDeviceTagName(source)}}\n
    \n
    \n {{source.label}}\n
    \n
    \n {{source.device}}\n
    \n
    \n  \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 84833: +/*!***************************************************************************************************!*\ + !*** ./src/app/editor/graph-config/graph-source-edit/graph-source-edit.component.html?ngResource ***! + \***************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'hart.config-lines' | translate}}

    \n clear\n
    \n
    \n {{'chart.config-line-name' | translate}}\n \n
    \n
    \n {{'chart.config-line-label' | translate}}\n \n
    \n
    \n
    \n {{'chart.config-line-color' | translate}}\n \n
    \n
    \n {{'chart.config-line-fill' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 77185: +/*!**************************************************************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-header-item-property/layout-header-item-property.component.html?ngResource ***! + \**************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.headeritem-title' | translate}}

    \n clear\n
    \n
    \n {{'dlg.headeritem-icon' | translate}}\n \n \n {{iconsel.value}}\n \n \n \n
    \n \n
    \n
    \n \n {{ icon }}\n \n
    \n
    \n
    \n
    \n {{'dlg.layout-lbl-type' | translate}}\n \n \n {{ 'item.headertype-' + type | translate }}\n \n \n
    \n
    \n
    \n {{'dlg.layout-lbl-margin-left' | translate}}\n \n
    \n
    \n {{'dlg.layout-lbl-margin-right' | translate}}\n \n
    \n
    \n
    \n
    \n {{'dlg.layout-nav-bkcolor' | translate}}\n \n
    \n
    \n {{'dlg.layout-nav-fgcolor' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 82033: +/*!**********************************************************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-menu-item-property/layout-menu-item-property.component.html?ngResource ***! + \**********************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.menuitem-title' | translate}}

    \n clear\n
    \n
    \n {{'dlg.menuitem-icon' | translate}}\n \n \n {{iconsel.value}}\n \n \n {{'dlg.menuitem-image' | translate}}\n \n \n \n
    \n \n
    \n
    \n \n {{ icon }}\n \n
    \n
    \n
    \n {{'dlg.menuitem-text' | translate}}\n \n
    \n
    \n {{'dlg.menuitem-view' | translate}}\n \n \n {{ view.name }}\n \n [{{'dlg.menuitem-link' | translate}}]\n [{{'dlg.menuitem-alarms' | translate}}]\n \n \n
    \n
    \n {{'dlg.menuitem-address' | translate}}\n \n
    \n
    \n {{'dlg.useraccess-groups' | translate}}\n \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    \n {{'dlg.menuitem-text' | translate}}\n \n
    \n
    \n {{'dlg.menuitem-view' | translate}}\n \n \n {{ view.name }}\n \n [{{'dlg.menuitem-link' | translate}}]\n [{{'dlg.menuitem-alarms' | translate}}]\n \n
    \n
    \n {{'dlg.menuitem-address' | translate}}\n \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 72615: +/*!**********************************************************************************!*\ + !*** ./src/app/editor/layout-property/layout-property.component.html?ngResource ***! + \**********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.layout-title' | translate}}

    \n clear\n
    \n \n \n
    \n
    \n
    \n {{'dlg.layout-lbl-sview' | translate}}\n \n \n {{ view.name }}\n \n \n
    \n
    \n {{'dlg.layout-lbl-login-start' | translate}}\n \n {{'general.enabled' | translate}}\n {{'general.disabled' | translate}}\n \n
    \n
    \n {{'dlg.layout-lbl-login-overlay-color' | translate}}\n \n \n {{ 'item.overlaycolor-' + color.value | translate }}\n \n \n
    \n
    \n {{'dlg.layout-lbl-zoom' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'dlg.layout-input-dialog' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'dlg.layout-navigation-mode' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n {{'dlg.layout-connection-message' | translate}}\n \n {{'general.enabled' | translate}}\n {{'general.disabled' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{'dlg.layout-show-dev' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n {{'sidenav.title' | translate}}\n \n \n \n \n \n
    \n
    \n arrow_upward\n arrow_downward\n
    \n
    \n edit\n
    \n {{ getViewName(item) }}\n
    \n
    \n
    \n clear\n
    \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'dlg.layout-lbl-smode' | translate}}\n \n \n {{ mode.value }}\n \n \n
    \n
    \n {{'dlg.layout-lbl-type' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n
    \n {{'dlg.layout-nav-bkcolor' | translate}}\n \n
    \n
    \n {{'dlg.layout-nav-fgcolor' | translate}}\n \n
    \n
    \n
    \n {{'dlg.layout-lbl-logo' | translate}}\n \n \n \n {{ resource.name }}\n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n
    \n {{ currentDateTime | date: data.layout.header.dateTimeDisplay }}\n
    \n
    \n \n
    EN
    \n
    English
    \n
    \n
    \n \n
    \n \n \n username\n \n \n Full Name\n \n \n username\n Full Name\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n arrow_upward\n arrow_downward\n
    \n
    \n edit\n
    \n {{ 'item.headertype-' + item.type | translate }}\n
    \n
    \n
    \n \n
    \n
    \n clear\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'dlg.layout-lbl-login-info' | translate}}\n \n \n {{ 'item.logininfo-type-' + type | translate }}\n \n \n account_circle\n
    \n
    \n {{'dlg.layout-lbl-show-language' | translate}}\n \n \n {{ 'item.language-show-mode-' + type | translate }}\n \n \n language\n
    \n
    \n {{'dlg.layout-lbl-datetime' | translate}}\n \n
    \n
    \n {{'dlg.layout-lbl-alarms' | translate}}\n \n \n {{ mode.value }}\n \n \n notifications_none\n
    \n
    \n {{'dlg.layout-lbl-infos' | translate}}\n \n \n {{ mode.value }}\n \n \n error_outline\n
    \n
    \n
    \n {{'dlg.layout-lbl-font' | translate}}\n \n \n {{font}}\n \n \n
    \n
    \n {{'dlg.layout-lbl-font-size' | translate}}\n \n
    \n
    \n
    \n {{'dlg.layout-lbl-anchor' | translate}}\n \n \n {{ 'item.headeranchor-' + type | translate }}\n \n \n
    \n
    \n
    \n {{'dlg.layout-header-bkcolor' | translate}}\n \n
    \n
    \n {{'dlg.layout-header-fgcolor' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 37441: +/*!************************************************************!*\ + !*** ./src/app/editor/linkproperty.dialog.html?ngResource ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.linkproperty-title' | translate}}

    \n clear\n
    \n
    \n {{'dlg.linkproperty-url' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 95392: +/*!******************************************************************!*\ + !*** ./src/app/editor/plugins/plugins.component.html?ngResource ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.plugins-title' | translate}}

    \n clear\n
    \n
    {{'dlg.plugins-info' | translate}}
    \n \n \n {{'dlg.plugins-type' | translate}}\n {{'dlg.plugins-name' | translate}}\n {{'dlg.plugins-version' | translate}}\n {{'dlg.plugins-current' | translate}}\n {{'dlg.plugins-description' | translate}}\n \n \n \n \n {{plugin.type}}\n {{plugin.name}}\n {{plugin.version}}\n {{plugin.current}}\n {{ 'plugin.group-' + plugin.group | translate}}\n {{plugin.status}}\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 9433: +/*!**************************************************************!*\ + !*** ./src/app/editor/setup/setup.component.html?ngResource ***! + \**************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.setup-title' | translate}}

    \n clear\n
    \n
    \n
    \n
    \n {{'dlg.setup-gui' | translate}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'dlg.setup-diverse' | translate}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{'dlg.setup-logic' | translate}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'dlg.setup-system' | translate}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    "; + +/***/ }), + +/***/ 3505: +/*!****************************************************************************!*\ + !*** ./src/app/editor/svg-selector/svg-selector.component.html?ngResource ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'svg.selector.property-title' | translate}}\n
    \n
    \n
    \n \n search\n
    \n
    \n
    {{ svgElement.name }}
    \n
    {{ svgElement.id }}
    \n \n
    \n
    \n
    "; + +/***/ }), + +/***/ 84001: +/*!**********************************************************************************!*\ + !*** ./src/app/editor/tags-ids-config/tags-ids-config.component.html?ngResource ***! + \**********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'tags.ids-config-title' | translate}}

    \n clear\n
    \n
    \n \n \n - \n \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 22565: +/*!******************************************************************************!*\ + !*** ./src/app/editor/view-property/view-property.component.html?ngResource ***! + \******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.docproperty-title' | translate}}

    \n clear\n \n \n
    \n
    \n {{'dlg.docproperty-name' | translate}}\n \n
    \n
    \n {{'dlg.docproperty-type' | translate}}\n \n {{'editor.view-svg' | translate}}\n {{'editor.view-cards' | translate}}\n {{'editor.view-maps' | translate}}\n \n
    \n
    \n
    \n
    \n {{'dlg.docproperty-width' | translate}}\n \n
    \n
    \n {{'dlg.docproperty-height' | translate}}\n \n
    \n
    \n
    \n {{'dlg.docproperty-size' | translate}}\n \n \n {{ prop.text }}\n \n \n
    \n
    \n {{'dlg.docproperty-align' | translate}}\n \n \n {{'dlg.docproperty-align-' + align.value | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'dlg.docproperty-gridtype' | translate}}\n \n \n {{'dlg.docproperty-gridtype-' + type.value | translate}}\n \n \n
    \n
    \n {{'dlg.docproperty-margin' | translate}}\n \n
    \n
    \n
    \n {{'dlg.docproperty-background' | translate}}\n \n
    \n
    \n {{'dlg.docproperty-renderDelay' | translate}}\n \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 78387: +/*!*****************************************************************************!*\ + !*** ./src/app/framework/file-upload/file-upload.component.html?ngResource ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n upload\n \n {{ fileName }}\n clear\n
    "; + +/***/ }), + +/***/ 82367: +/*!*******************************************************************************************!*\ + !*** ./src/app/framework/ngx-touch-keyboard/ngx-touch-keyboard.component.html?ngResource ***! + \*******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n {{ current }}\n \n
    \n \n
    \n \n \n \n
    \n \n
    \n"; + +/***/ }), + +/***/ 85761: +/*!***************************************************************************************!*\ + !*** ./src/app/fuxa-view/fuxa-view-dialog/fuxa-view-dialog.component.html?ngResource ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n close\n \n \n \n
    "; + +/***/ }), + +/***/ 27224: +/*!***************************************************************!*\ + !*** ./src/app/fuxa-view/fuxa-view.component.html?ngResource ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n \n\n \n \n
    \n
    \n
    \n {{iframe.name}}\n \n close\n \n
    \n \n
    \n
    \n \n \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 23726: +/*!*****************************************************************************************!*\ + !*** ./src/app/gauges/controls/gauge-progress/gauge-progress.component.html?ngResource ***! + \*****************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 3665: +/*!*******************************************************************************************!*\ + !*** ./src/app/gauges/controls/gauge-semaphore/gauge-semaphore.component.html?ngResource ***! + \*******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 32749: +/*!**********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-bag/bag-property/bag-property.component.html?ngResource ***! + \**********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'editor.controls-bag-settings' | translate}}

    \n clear\n
    \n
    \n
    \n
    \n {{'gauges.property-name' | translate}}\n \n
    \n
    \n {{'gauges.property-permission' | translate}}\n
    \n lock\n \n lock_open\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'bag.property-ticks' | translate}}\n \n
    \n
    \n
    \n
    \n {{'bag.property-divisions' | translate}}\n \n \n
    \n
    \n {{'bag.property-subdivisions' | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'bag.property-divisions-length' | translate}}\n \n \n
    \n
    \n {{'bag.property-subdivisions-length' | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'bag.property-divisions-width' | translate}}\n \n \n
    \n
    \n {{'bag.property-subdivisions-width' | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'bag.property-divisions-color' | translate}}\n \n
    \n
    \n {{'bag.property-subdivisions-color' | translate}}\n \n
    \n
    \n
    \n
    \n {{'bag.property-divisionfont-size' | translate}}\n \n \n
    \n
    \n {{'bag.property-divisionfont-color' | translate}}\n \n
    \n
    \n
    \n
    \n {{'bag.property-divisions-labels' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{'bag.property-current-value' | translate}}\n \n \n
    \n
    \n {{'bag.property-min' | translate}}\n \n
    \n
    \n {{'bag.property-max' | translate}}\n \n
    \n
    \n {{'bag.property-bar-width' | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'bag.property-animation-speed' | translate}}\n \n \n
    \n
    \n {{'bag.property-angle' | translate}}\n \n \n
    \n
    \n {{'bag.property-radius' | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'bag.property-font-size' | translate}}\n \n \n
    \n
    \n {{'bag.property-textfield-position' | translate}}\n \n \n
    \n
    \n {{'bag.property-format-digits' | translate}}\n \n \n
    \n
    \n
    \n
    \n {{'bag.property-pointer-length' | translate}}\n \n \n
    \n
    \n {{'bag.property-pointer-stroke' | translate}}\n \n \n
    \n
    \n {{'bag.property-pointer-color' | translate}}\n \n
    \n
    \n
    \n
    \n {{'bag.property-color-start' | translate}}\n \n
    \n
    \n {{'bag.property-color-stop' | translate}}\n \n
    \n
    \n {{'bag.property-background' | translate}}\n \n
    \n
    \n
    \n
    \n {{'bag.property-font' | translate}}\n \n \n {{font}}\n \n \n
    \n \n
    \n
    \n
    \n
    \n {{'bag.property-zones' | translate}}\n \n
    \n
    \n
    \n
    \n {{'bag.property-min' | translate}}\n \n
    \n
    \n {{'bag.property-max' | translate}}\n \n
    \n
    \n {{'bag.property-color' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 52880: +/*!*****************************************************************************!*\ + !*** ./src/app/gauges/controls/html-bag/html-bag.component.html?ngResource ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 19698: +/*!***********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-button/html-button.component.html?ngResource ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 93898: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/chart-property/chart-property.component.html?ngResource ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'editor.controls-chart-settings' | translate}}\n
    \n
    \n \n \n
    \n {{'chart.property-data' | translate}}\n
    \n
    \n
    \n {{'chart.property-name' | translate}}\n \n
    \n
    \n {{'chart.property-chart' | translate}}\n \n \n \n {{'chart.property-newchart' | translate}}\n \n {{ chart.name }}\n \n \n
    \n
    \n
    \n {{'chart.property-chart-type' | translate}}\n \n \n {{'chart.viewtype-' + ev.value | translate }}\n \n \n
    \n
    \n \n \n
    \n {{'chart.property-date-last-range' | translate}}\n \n \n {{ ev.value | translate }}\n \n \n
    \n
    \n \n
    \n {{'chart.property-script' | translate}}\n \n \n {{script.name}}\n \n
    \n
    \n
    \n
    \n {{'chart.property-refresh-interval' | translate}}\n \n
    \n \n
    \n {{'chart.property-hide-toolbar' | translate}}\n \n
    \n
    \n {{'chart.property-thouch-zoom' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n {{'chart.property-realtime-max' | translate}}\n \n
    \n
    \n {{'chart.property-load-old-values' | translate}}\n \n
    \n
    \n
    \n {{'chart.property-general' | translate}}\n
    \n
    \n {{'chart.property-font' | translate}}\n \n \n {{font}}\n \n \n
    \n
    \n
    \n {{'chart.property-font.titlesize' | translate}}\n \n
    \n
    \n
    \n {{'chart.property-font.axissize' | translate}}\n \n
    \n
    \n
    \n {{'chart.property-date.format' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n {{'chart.property-time.format' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n {{'chart.property-legend.mode' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n {{'chart.property-yaxis' | translate}}\n
    \n
    \n
    \n {{'chart.property-axis-y1' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y1-min' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y1-max' | translate}}\n \n
    \n
    \n
    \n
    \n {{'chart.property-axis-y2' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y2-min' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y2-max' | translate}}\n \n
    \n
    \n
    \n
    \n {{'chart.property-axis-y3' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y3-min' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y3-max' | translate}}\n \n
    \n
    \n
    \n
    \n {{'chart.property-axis-y4' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y4-min' | translate}}\n \n
    \n
    \n {{'chart.property-axis-y4-max' | translate}}\n \n
    \n
    \n \n
    \n {{'chart.property-xaxis' | translate}}\n
    \n
    \n {{'chart.property-axis-x' | translate}}\n \n
    \n
    \n {{'chart.property-theme' | translate}}\n
    \n
    \n {{'chart.property-color.text' | translate}}\n \n
    \n
    \n
    \n {{'chart.property-color.background' | translate}}\n \n
    \n
    \n
    \n {{'chart.property-color.grid' | translate}}\n \n
    \n
    \n
    \n \n
     
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-event-type' | translate}}\n \n \n {{ 'shapes.event-' + evType | translate }}\n \n \n
    \n
    \n {{'gauges.property-event-action' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-event-script' | translate}}\n \n {{script.name}}\n \n
    \n
    \n
    \n {{'gauges.property-event-script-param-name' | translate}}\n \n
    \n
    \n {{'gauges.property-event-script-param-value' | translate}}\n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 47791: +/*!**********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/chart-uplot/chart-uplot.component.html?ngResource ***! + \**********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n {{ ev.value | translate }}\n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 20192: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-chart/html-chart.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 21918: +/*!******************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-bar/graph-bar.component.html?ngResource ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n
    \n
    \n \n
    "; + +/***/ }), + +/***/ 9195: +/*!******************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-pie/graph-pie.component.html?ngResource ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n
    "; + +/***/ }), + +/***/ 24188: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/graph-property/graph-property.component.html?ngResource ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{((graphType === graphBarType) ? 'editor.controls-graph-bar-settings' : 'editor.controls-graph-pie-settings') | translate}}\n
    \n
    \n
    \n {{'graph.property-data' | translate}}\n
    \n
    \n
    \n {{'graph.property-name' | translate}}\n \n
    \n
    \n {{'graph.property-graph' | translate}}\n \n \n {{'graph.property-newgraph' | translate}}\n \n {{ graph.name }}\n \n \n
    \n \n
    \n {{'graph.property-date-last-range' | translate}}\n \n \n {{ 'graph.rangetype-' + ev.key | translate }}\n \n \n
    \n
    \n {{'graph.property-date-group' | translate}}\n \n \n {{ 'graph.grouptype-' + ev.key | translate }}\n \n \n
    \n
    \n {{'graph.property-offline' | translate}}\n \n \n
    \n
    \n
    \n \n
    \n {{'graph.property-general' | translate}}\n
    \n
    \n \n
    \n {{'graph.property-graph-oriantation' | translate}}\n \n {{'graph.property-ori-vartical' | translate}}\n {{'graph.property-ori-horizontal' | translate}}\n \n
    \n
    \n
    \n {{'graph.property-title' | translate}}\n
    \n
    \n
    \n {{'graph.property-title-font' | translate}}\n \n
    \n
    \n {{'graph.property-title-show' | translate}}\n \n
    \n
    \n \n
    \n {{'graph.property-yaxis' | translate}}\n
    \n
    \n
    \n {{'graph.property-yaxis-min' | translate}}\n \n
    \n
    \n {{'graph.property-yaxis-max' | translate}}\n \n
    \n
    \n {{'graph.property-stepsize' | translate}}\n \n
    \n
    \n
    \n {{'graph.property-yaxis-fontsize' | translate}}\n \n
    \n
    \n {{'graph.property-decimals' | translate}}\n \n
    \n
    \n {{'graph.property-yaxis-show' | translate}}\n \n
    \n
    \n
    \n {{'graph.property-xaxis' | translate}}\n
    \n
    \n
    \n {{'graph.property-xaxis-fontsize' | translate}}\n \n
    \n
    \n {{'graph.property-xaxis-show' | translate}}\n \n
    \n
    \n
    \n
    \n {{'graph.property-legend' | translate}}\n
    \n
    \n
    \n {{'graph.property-legend-display' | translate}}\n \n {{'graph.property-legend-top' | translate}}\n {{'graph.property-legend-left' | translate}}\n {{'graph.property-legend-bottom' | translate}}\n {{'graph.property-legend-right' | translate}}\n \n
    \n
    \n {{'graph.property-legend-align' | translate}}\n \n {{'graph.property-legend-center' | translate}}\n {{'graph.property-legend-start' | translate}}\n {{'graph.property-legend-end' | translate}}\n \n
    \n
    \n {{'graph.property-legend-fontsize' | translate}}\n \n
    \n
    \n {{'graph.property-legend-show' | translate}}\n \n
    \n
    \n \n
    \n {{'graph.property-theme' | translate}}\n
    \n
    \n
    \n {{'graph.property-theme-type' | translate}}\n \n {{'graph.property-theme-owner' | translate}}\n {{'graph.property-theme-light' | translate}}\n {{'graph.property-theme-dark' | translate}}\n \n
    \n
    \n
    \n {{'graph.property-title-color' | translate}}\n \n
    \n
    \n {{'graph.property-yaxis-color' | translate}}\n \n
    \n
    \n {{'graph.property-xaxis-color' | translate}}\n \n
    \n
    \n {{'graph.property-grid-color' | translate}}\n \n
    \n
    \n
    \n {{'graph.property-legend-color' | translate}}\n \n
    \n
    \n {{'graph.property-datalabels-color' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'graph.property-layout' | translate}}\n
    \n
    \n
    \n {{'graph.property-border' | translate}}\n \n
    \n \n
    \n {{'graph.property-gridline' | translate}}\n \n
    \n
    \n
    \n {{'graph.property-tooltip' | translate}}\n \n
    \n
    \n \n
    \n {{'graph.property-datalabels' | translate}}\n
    \n
    \n
    \n {{'graph.property-datalabels-align' | translate}}\n \n {{'graph.property-legend-center' | translate}}\n {{'graph.property-legend-start' | translate}}\n {{'graph.property-legend-end' | translate}}\n \n
    \n
    \n {{'graph.property-datalabels-fontsize' | translate}}\n \n
    \n
    \n {{'graph.property-datalabels-show' | translate}}\n \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 63670: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-graph/html-graph.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 50425: +/*!***********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-iframe/html-iframe.component.html?ngResource ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 38331: +/*!*******************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-iframe/iframe-property/iframe-property.component.html?ngResource ***! + \*******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'editor.controls-iframe-settings' | translate}}\n
    \n
    \n
    \n {{'iframe.property-data' | translate}}\n
    \n
    \n
    \n {{'iframe.property-name' | translate}}\n \n
    \n
    \n {{'iframe.property-address' | translate}}\n \n
    \n \n \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 60706: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-image/html-image.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 93574: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-input/html-input.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 39706: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-input/input-property/input-property.component.html?ngResource ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{data.title}}

    \n clear\n \n \n
    \n
    \n {{'gauges.property-name' | translate}}\n \n
    \n
    \n {{'gauges.property-permission' | translate}}\n
    \n lock\n \n lock_open\n \n
    \n
    \n
    \n {{'gauges.property-text' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n {{'gauges.property-input-type' | translate}}\n \n \n {{ 'gauges.property-input-type-' + ev.value | translate }}\n \n \n
    \n \n
    \n {{'gauges.property-input-min' | translate}}\n \n
    \n
    \n {{'gauges.property-input-max' | translate}}\n \n
    \n
    \n \n
    \n {{'gauges.property-input-time-format' | translate}}\n \n \n {{ 'gauges.property-input-time-format-' + ev.value | translate }}\n \n \n
    \n
    \n \n
    \n {{'gauges.property-input-convertion' | translate}}\n \n \n {{ 'gauges.property-input-convertion-' + ev.value | translate }}\n \n \n
    \n
    \n
    \n
    \n {{'gauges.property-update-enabled' | translate}}\n \n
    \n \n \n
    \n {{'gauges.property-select-content-on-click' | translate}}\n \n
    \n
    \n {{'gauges.property-input-esc-action' | translate}}\n \n \n \n {{ 'gauges.property-action-esc-' + ev.value | translate }}\n \n \n
    \n
    \n {{'gauges.property-input-maxlength' | translate}}\n \n
    \n
    \n {{'gauges.property-input-readonly' | translate}}\n \n
    \n
    \n \n
    \n {{'gauges.property-input-startText' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 60097: +/*!*****************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/html-scheduler.component.html?ngResource ***! + \*****************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n Time Scheduler\n
    "; + +/***/ }), + +/***/ 90736: +/*!****************************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler-confirm-dialog/scheduler-confirm-dialog.component.html?ngResource ***! + \****************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{ data.icon || 'event' }}\n

    {{ data.title }}

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 97325: +/*!****************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler-property/scheduler-property.component.html?ngResource ***! + \****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'scheduler.property-settings-title' | translate}}\n
    \n
    \n \n \n \n
    \n {{'scheduler.property-data' | translate}}\n
    \n
    \n \n \n
    \n \n
    \n
    \n {{'scheduler.property-settings-layout' | translate}}\n
    \n \n
    \n {{'scheduler.property-settings-time-format' | translate}}\n \n 12-Hour (8:00am - 10:00pm)\n 24-Hour (08:00 - 22:00)\n \n
    \n\n \n
    \n
    \n {{'scheduler.property-settings-theme' | translate}}\n \n
    \n
    \n {{'scheduler.property-settings-background' | translate}}\n \n
    \n
    \n {{'scheduler.property-settings-border' | translate}}\n \n
    \n
    \n {{'scheduler.property-settings-primary-text' | translate}}\n \n
    \n
    \n {{'scheduler.property-settings-secondary-text' | translate}}\n \n
    \n
    \n
    \n\n \n
    \n {{'scheduler.property-settings-devices' | translate}}\n
    \n
    \n \n {{'scheduler.property-settings-add-device' | translate}}\n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n {{'scheduler.property-settings-device-name' | translate}}\n \n
    \n
    \n {{'gauges.property-permission' | translate}}\n
    \n lock\n \n lock_open\n \n
    \n
    \n \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n\n \n
    \n \n
    \n\n
    \n
    \n \n \n
    \n\n \n
    \n\n \n
    \n\n \n
    \n \n
    \n\n
    \n
    \n \n \n
    \n\n \n
    \n
    \n
    \n\n \n \n
    \n
    \n Device\n \n \n {{device.name}}\n \n \n
    \n\n
    \n Action\n \n \n {{key.value}}\n \n \n
    \n
    \n\n \n
    \n
    \n Value\n \n
    \n
    \n Function\n \n \n Add\n Remove\n \n
    \n
    \n
    \n \n
    \n\n \n
    \n \n
    \n\n \n \n
    \n Script\n \n {{script.name}}\n \n
    \n
    \n
    \n
    \n Parameter\n \n
    \n
    \n
    \n Value\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 70382: +/*!**********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-scheduler/scheduler/scheduler.component.html?ngResource ***! + \**********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n
    \n \n
    1\">\n
    \n
    \n {{getSelectedDeviceLabel()}}\n {{isDropdownOpen ? 'arrow_drop_up' : 'arrow_drop_down'}}\n
    \n
    \n \n
    \n {{device.label || device.name}}\n
    \n
    \n
    \n {{'scheduler.device-selector-overview' | translate}}\n
    \n
    \n
    \n
    \n\n
    \n {{deviceList[0]?.name || deviceList[0]?.label}}\n
    \n\n \n
    \n \n \n\n \n
    \n \n \n
    \n\n \n
    \n \n \n\n \n
    \n \n
    \n \n
    \n \n \n
    \n
    \n\n \n
    \n \n
    \n \n
    \n
    \n\n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n\n \n
    \n
    \n
    \n #\n {{ 'scheduler.col-start' | translate }}\n {{ 'scheduler.col-mode' | translate }}\n {{ 'scheduler.col-duration' | translate }}\n {{ 'scheduler.col-status' | translate }}\n \n
    \n
    \n\n
    \n
    \n \n
    \n {{getDeviceSchedules().indexOf(schedule) + 1}}\n \n \n {{calculateDuration(schedule)}}\n
    \n \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n {{day.charAt(0)}}\n \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n #\n {{ 'scheduler.col-start' | translate }}\n {{ 'scheduler.col-duration' | translate }}\n {{ 'scheduler.col-remaining' | translate }}\n {{ 'scheduler.col-status' | translate }}\n \n
    \n
    \n\n
    \n
    \n \n
    \n {{getDeviceSchedules().indexOf(schedule) + 1}}\n \n \n {{getRemainingTime(schedule.deviceName || selectedDevice, getDeviceSchedules().indexOf(schedule))}}\n\n
    \n \n
    \n\n
    \n \n
    \n
    \n\n \n
    \n \n {{day.charAt(0)}}\n \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    {{ 'scheduler.empty-device' | translate }}

    \n
    \n
    \n\n \n
    \n
    \n

    {{ 'scheduler.no-devices' | translate }}

    \n
    \n\n
    0 && getFilteredOverviewSchedules().length === 0\">\n

    {{ 'scheduler.no-schedules' | translate }}

    \n
    \n\n
    \n \n
    \n

    {{deviceGroup.deviceName}}

    \n\n \n
    0\">\n
    \n
    \n #\n {{ 'scheduler.col-start' | translate }}\n {{ 'scheduler.end' | translate }}\n {{ 'scheduler.col-duration' | translate }}\n {{ 'scheduler.col-status' | translate }}\n \n
    \n
    \n\n
    \n
    \n\n \n
    \n {{deviceGroup.allSchedules.indexOf(schedule) + 1}}\n \n \n {{calculateDuration(schedule)}}\n\n
    \n \n
    \n\n
    \n \n
    \n
    \n\n \n
    \n \n {{day.charAt(0)}}\n \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    0\">\n
    \n
    \n #\n {{ 'scheduler.col-start' | translate }}\n {{ 'scheduler.col-duration' | translate }}\n {{ 'scheduler.col-remaining' | translate }}\n {{ 'scheduler.col-status' | translate }}\n \n
    \n
    \n\n
    \n
    \n\n \n
    \n {{deviceGroup.allSchedules.indexOf(schedule) + 1}}\n \n \n {{getRemainingTime(schedule.deviceName, deviceGroup.allSchedules.indexOf(schedule))}}\n\n
    \n \n
    \n\n
    \n \n
    \n
    \n\n \n
    \n \n {{day.charAt(0)}}\n \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    {{ editingIndex >= 0 ? ('scheduler.edit-title' | translate) : ('scheduler.add-title' | translate) }}

    \n
    \n
    \n \n
    \n
    \n {{getFormSelectedDeviceLabel()}}\n {{isFormDropdownOpen ? 'arrow_drop_up' : 'arrow_drop_down'}}\n
    \n
    \n \n
    \n {{device.label || device.name}}\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n schedule\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{hour}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{minute}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ ('scheduler.time.' + period) | translate }}\n
    \n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n schedule\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{hour}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{minute}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ ('scheduler.time.' + period) | translate }}\n
    \n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n timer\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n {{hour}}h\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n {{minute.toString().padStart(2, '0')}}m\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n {{second.toString().padStart(2, '0')}}s\n
    \n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n \n
    \n schedule\n

    {{ 'scheduler.editor-placeholder.title' | translate }}

    \n {{ 'scheduler.editor-placeholder.hint' | translate }}\n
    \n\n \n \n
    \n
    \n
    \n {{confirmDialogData?.icon || 'event'}}\n

    {{confirmDialogData?.title}}

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 86115: +/*!***********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-select/html-select.component.html?ngResource ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 73904: +/*!*****************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-switch/html-switch-property/html-switch-property.component.html?ngResource ***! + \*****************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'editor.controls-html-switch-settings' | translate}}

    \n clear\n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'html-switch.property-off-background' | translate}}\n \n
    \n
    \n {{'html-switch.property-off-slider-color' | translate}}\n \n
    \n
    \n {{'html-switch.property-off-value' | translate}}\n \n
    \n
    \n {{'html-switch.property-on-background' | translate}}\n \n
    \n
    \n {{'html-switch.property-on-slider-color' | translate}}\n \n
    \n
    \n {{'html-switch.property-on-value' | translate}}\n \n
    \n
    \n
    \n
    \n {{'html-switch.property-off-text-color' | translate}}\n \n
    \n
    \n {{'html-switch.property-off-text' | translate}}\n \n
    \n
    \n {{'html-switch.property-on-text-color' | translate}}\n \n
    \n
    \n {{'html-switch.property-on-text' | translate}}\n \n
    \n
    \n
    \n
    \n {{'html-switch.property-radius' | translate}}\n \n
    \n
    \n {{'html-switch.property-font-size' | translate}}\n \n
    \n
    \n {{'html-switch.property-font' | translate}}\n \n \n {{font}}\n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n\t\t\n
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 75781: +/*!********************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/data-table/data-table.component.html?ngResource ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ selectedRangeLabel }}\n arrow_drop_down\n
    \n
    \n
    \n Last 1 hour\n
    \n
    \n Last 1 day\n
    \n
    \n Last 3 days\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ selectedRangeLabel }}\n arrow_drop_down\n
    \n
    \n
    \n Last 1 hour\n
    \n
    \n Last 1 day\n
    \n
    \n Last 3 days\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n {{ selectedPageSizeLabel }}\n arrow_drop_down\n
    \n
    \n
    \n {{ size }}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n \n \n {{ columnsStyle[column]?.label }}\n \n \n \n {{element[column]}}\n \n \n {{element[column]?.stringValue}}\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
    \n \n
    \n
    \n \n
    "; + +/***/ }), + +/***/ 33846: +/*!************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-alarms/table-alarms.component.html?ngResource ***! + \************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'table.alarms-title' | translate}}

    \n clear\n
    \n
    \n
    \n {{'table.alarm-columns' | translate}}\n \n {{'alarms.view-' + item | translate}}\n \n
    \n
    \n {{'table.alarm-filter' | translate}}\n
    \n {{'table.alarm-priority' | translate}}\n \n {{'alarm.property-' + item | translate}}\n \n
    \n
    \n
    \n {{'alarm.property-text' | translate}}\n \n
    \n
    \n {{'alarm.property-group' | translate}}\n \n
    \n
    \n
    \n {{'table.alarm-tags' | translate}}\n \n \n
    \n \n delete\n
    \n {{getDeviceTagName(tagId)}}\n
    \n
    \n {{getDeviceName(tagId)}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 79668: +/*!*********************************************************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-customizer/table-customizer-cell-edit/table-customizer-cell-edit.component.html?ngResource ***! + \*********************************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'table.column-dialog-title' | translate}}

    \n

    {{'table.row-dialog-title' | translate}}

    \n clear\n \n
    \n \n
    \n {{'table.cell-column-name' | translate}}\n \n
    \n\n \n
    \n {{'table.cell-column-type' | translate}}\n {{'table.cell-row-type' | translate}}\n \n \n {{'table.property-column-label' | translate}}\n \n {{'table.property-column-variable' | translate}}\n \n {{'table.property-column-device' | translate}}\n \n {{'table.property-column-odbc' | translate}}\n \n {{'table.property-column-timestamp' | translate}}\n \n
    \n\n \n
    \n {{'table.cell-ts-format' | translate}}\n \n
    \n\n \n
    \n \n
    \n {{'table.cell-odbc-ts-sources' | translate}}\n \n
    \n\n \n
    0; else noSources\">\n
    \n \n
    \n \n
    \n\n \n
    \n \n
    \n {{'table.cell-odbc-ts-source-name' | translate}}\n \n
    \n\n \n
    \n {{'table.cell-convert-utc-local' | translate}}\n \n \n
    \n
    \n
    \n
    \n\n \n \n
    \n {{'table.cell-no-ts-sources' | translate}}\n
    \n
    \n
    \n\n \n
    \n {{'table.cell-text' | translate}}\n \n
    \n\n \n
    \n {{'table.cell-value-format' | translate}}\n \n
    \n\n \n
    \n \n \n
    \n\n \n
    \n {{'table.cell-odbc-query' | translate}}\n
    \n \n \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 17622: +/*!********************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-customizer/table-customizer.component.html?ngResource ***! + \********************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'table.customize-title' | translate}}

    \n clear\n
    \n \n \n \n
    \n {{getColumnType(i)}} \n {{getColumnSetting(i)}} \n
    \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n
    \n {{getCellType(element[column])}} \n {{getCellSetting(element[column])}} \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 40069: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-property/table-property.component.html?ngResource ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'table.property-title' | translate}}\n
    \n
    \n \n \n
    \n {{'table.property-data' | translate}}\n
    \n
    \n
    \n {{'table.property-name' | translate}}\n \n
    \n
    \n {{'table.property-type' | translate}}\n \n {{'table.property-type-data' | translate}}\n {{'table.property-type-history' | translate}}\n {{'table.property-type-alarms' | translate}}\n {{'table.property-type-reports' | translate}}\n \n \n
    \n
    \n \n
    \n {{'table.property-date-last-range' | translate}}\n \n {{'table.rangetype-none' | translate}}\n {{'table.rangetype-last1h' | translate}}\n {{'table.rangetype-last1d' | translate}}\n {{'table.rangetype-last3d' | translate}}\n \n
    \n
    \n {{'table.property-type-with-realtime' | translate}}\n \n
    \n
    \n {{'table.property-refresh-interval' | translate}}\n \n ms\n
    \n
    \n
    \n
    \n {{'table.property-header' | translate}}\n
    \n
    \n
    \n {{'table.property-header-height' | translate}}\n \n
    \n
    \n {{'table.property-header-fontSize' | translate}}\n \n
    \n
    \n {{'table.property-header-background' | translate}}\n \n
    \n
    \n {{'table.property-header-color' | translate}}\n \n
    \n
    \n
    \n {{'table.property-row' | translate}}\n
    \n
    \n
    \n {{'table.property-row-height' | translate}}\n \n
    \n
    \n {{'table.property-row-fontSize' | translate}}\n \n
    \n
    \n {{'table.property-row-background' | translate}}\n \n
    \n
    \n {{'table.property-row-color' | translate}}\n \n
    \n
    \n {{'table.property-grid-color' | translate}}\n \n
    \n
    \n
    \n {{'table.property-toolbar' | translate}}\n
    \n
    \n
    \n {{'table.property-toolbar-background' | translate}}\n \n
    \n
    \n {{'table.property-toolbar-color' | translate}}\n \n
    \n
    \n {{'table.property-toolbar-button-color' | translate}}\n \n
    \n
    \n
    \n {{'table.property-selection' | translate}}\n
    \n
    \n
    \n {{'table.property-row-background' | translate}}\n \n
    \n
    \n {{'table.property-row-color' | translate}}\n \n
    \n
    \n
    \n {{'table.property-layout' | translate}}\n
    \n
    \n \n
    \n
    \n {{'table.property-header' | translate}}\n \n
    \n
    \n
    \n
    \n {{'table.property-filter' | translate}}\n \n
    \n
    \n
    \n {{'table.property-paginator' | translate}}\n \n
    \n
    \n
    \n {{'table.property-daterange' | translate}}\n \n
    \n
    \n
    \n
     
    \n
    \n \n \n
     
    \n
    \n
    \n {{'table.property-column-name' | translate}}\n \n
    \n
    \n {{'table.property-column-type' | translate}}\n \n
    \n
    \n
    \n {{'table.property-column-align' | translate}}\n \n {{'table.cell-align-left' | translate}}\n {{'table.cell-align-center' | translate}}\n {{'table.cell-align-right' | translate}}\n \n
    \n
    \n
    \n {{'table.property-column-width' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
     
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-event-type' | translate}}\n \n \n {{ 'shapes.event-' + evType | translate }}\n \n \n
    \n
    \n {{'gauges.property-event-action' | translate}}\n \n \n {{ type.value }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-event-script' | translate}}\n \n {{script.name}}\n \n
    \n
    \n
    \n {{'gauges.property-event-script-param-name' | translate}}\n \n
    \n
    \n {{'gauges.property-event-script-param-value' | translate}}\n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 86969: +/*!**************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-table/table-reports/table-reports.component.html?ngResource ***! + \**************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'table.reports-title' | translate}}

    \n clear\n
    \n
    \n
    \n {{'table.report-columns' | translate}}\n \n {{'table.report-view-' + item | translate}}\n \n
    \n
    \n
    \n {{'table.report-filter' | translate}}\n
    \n
    \n {{'table.report-filter-name' | translate}}\n \n
    \n
    \n {{'table.report-filter-count' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 43498: +/*!*********************************************************************************!*\ + !*** ./src/app/gauges/controls/html-video/html-video.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 27606: +/*!****************************************************************************************************!*\ + !*** ./src/app/gauges/controls/html-video/video-property/video-property.component.html?ngResource ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'video.property-title' | translate}}\n
    \n
    \n \n \n
    \n {{'video.property-data' | translate}}\n
    \n
    \n \n \n
    \n
    \n {{'video.property-address' | translate}}\n \n
    \n \n \n
    \n {{'video.property-image' | translate}}\n \n \n \n \n \n \n \n \n \n
    \n
    \n {{'video.property-controls' | translate}}\n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n {{'action-settings-readonly-tag' | translate}}\n \n
    \n
    \n
    \n {{'gui.range-number-min' | translate}}\n \n
    \n
    \n {{'gui.range-number-max' | translate}}\n \n
    \n
    \n {{'gauges.property-action-type' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 74337: +/*!***********************************************************************************************!*\ + !*** ./src/app/gauges/controls/panel/panel-property/panel-property.component.html?ngResource ***! + \***********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'editor.controls-panel-settings' | translate}}\n
    \n
    \n
    \n {{'panel.property-data' | translate}}\n
    \n
    \n
    \n {{'panel.property-name' | translate}}\n \n
    \n
    \n {{'panel.property-view-name' | translate}}\n \n
    \n \n \n
    \n {{'panel.property-scalemode' | translate}}\n \n \n {{'panel.property-scalemode-' + mode.value | translate }}\n \n \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 76448: +/*!***********************************************************************!*\ + !*** ./src/app/gauges/controls/panel/panel.component.html?ngResource ***! + \***********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 59472: +/*!********************************************************************************************!*\ + !*** ./src/app/gauges/controls/pipe/pipe-property/pipe-property.component.html?ngResource ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'pipe.property-title' | translate}}\n
    \n
    \n \n \n
    \n {{'pipe.property-data' | translate}}\n
    \n
    \n \n \n
    \n
    \n {{'pipe.property-style' | translate}}\n
    \n
    \n
    \n {{'pipe.property-border-width' | translate}}\n \n
    \n
    \n {{'pipe.property-border-color' | translate}}\n \n
    \n
    \n
    \n
    \n {{'pipe.property-pipe-width' | translate}}\n \n
    \n
    \n {{'pipe.property-pipe-color' | translate}}\n \n
    \n
    \n
    \n
    \n {{'pipe.property-content-width' | translate}}\n \n
    \n
    \n {{'pipe.property-content-color' | translate}}\n \n
    \n
    \n {{'pipe.property-content-space' | translate}}\n \n
    \n
    \n
    \n {{'pipe.property-style-animation' | translate}}\n
    \n \n
    \n \n \n
    \n
    \n {{'pipe.property-style-animation-count' | translate}}\n \n
    \n
    \n {{'pipe.property-style-animation-delay' | translate}}\n \n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n {{'action-settings-readonly-tag' | translate}}\n \n
    \n
    \n
    \n {{'gui.range-number-min' | translate}}\n \n
    \n
    \n {{'gui.range-number-max' | translate}}\n \n
    \n
    \n {{'gauges.property-action-type' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 29869: +/*!**************************************************************************************************!*\ + !*** ./src/app/gauges/controls/slider/slider-property/slider-property.component.html?ngResource ***! + \**************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'editor.controls-slider-settings' | translate}}

    \n clear\n
    \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{'slider.property-orientation' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n {{'slider.property-direction' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n
    \n {{'slider.property-font' | translate}}\n \n \n {{font}}\n \n \n
    \n
    \n
    \n
    \n {{'slider.property-slider-color' | translate}}\n \n
    \n
    \n {{'slider.property-slider-background' | translate}}\n \n
    \n
    \n {{'slider.property-slider-handle' | translate}}\n \n
    \n
    \n
    \n
    \n {{'slider.property-min' | translate}}\n \n
    \n
    \n {{'slider.property-max' | translate}}\n \n
    \n
    \n {{'slider.property-step' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n {{'slider.property-scala' | translate}}\n \n
    \n
    \n {{'slider.property-marker-color' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n {{'slider.property-font-size' | translate}}\n \n
    \n
    \n {{'slider.property-divisions-height' | translate}}\n \n
    \n
    \n {{'slider.property-divisions-width' | translate}}\n \n
    \n
    \n
    \n
    \n {{'slider.property-subdivisions' | translate}}\n \n
    \n
    \n {{'slider.property-subdivisions-height' | translate}}\n \n
    \n
    \n {{'slider.property-subdivisions-width' | translate}}\n \n
    \n
    \n
    \n
    \n {{'slider.property-tooltip' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n {{'slider.property-tooltip-color' | translate}}\n \n
    \n
    \n {{'slider.property-tooltip-background' | translate}}\n \n
    \n
    \n
    \n
    \n {{'slider.property-tooltip-font-size' | translate}}\n \n
    \n
    \n {{'slider.property-tooltip-decimals' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 98033: +/*!***********************************************************************!*\ + !*** ./src/app/gauges/controls/value/value.component.html?ngResource ***! + \***********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 93941: +/*!************************************************************************!*\ + !*** ./src/app/gauges/gauge-base/gauge-base.component.html?ngResource ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{'editor.interactivity-name' | translate}}\n \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 66275: +/*!*******************************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/action-properties-dialog/action-properties-dialog.component.html?ngResource ***! + \*******************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'action-settings-title' | translate}}

    \n clear\n
    \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 5994: +/*!*****************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-action/flex-action.component.html?ngResource ***! + \*****************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n
    \n
    \n \n
    \n
    \n {{'gauges.property-action-type' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{'gauges.property-input-color' | translate}}\n \n
    \n
    \n {{'gauges.property-input-stroke' | translate}}\n \n
    \n
    \n {{'gauges.property-interval-msec' | translate}}\n \n
    \n
    \n {{'gauges.property-input-color' | translate}}\n \n
    \n
    \n {{'gauges.property-input-stroke' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-action-minAngle' | translate}}\n \n
    \n
    \n {{'gauges.property-action-maxAngle' | translate}}\n \n
    \n
    \n
    \n
    \n {{'gauges.property-action-toX' | translate}}\n \n
    \n
    \n {{'gauges.property-action-toY' | translate}}\n \n
    \n
    \n {{'gauges.property-action-duration' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n"; + +/***/ }), + +/***/ 38284: +/*!*************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-auth/flex-auth.component.html?ngResource ***! + \*************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n {{'gauges.property-name' | translate}}\n \n
    \n
    \n {{'gauges.property-permission' | translate}}\n
    \n lock\n \n lock_open\n \n
    \n
    "; + +/***/ }), + +/***/ 50164: +/*!*************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-device-tag/flex-device-tag.component.html?ngResource ***! + \*************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n {{ 'gauges.property-tag-label' | translate }} {{ getDeviceName() }}\n \n \n \n \n {{tag.name}}\n \n \n \n \n
    "; + +/***/ }), + +/***/ 17412: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-event/flex-event.component.html?ngResource ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n
    \n
    \n
    \n {{'gauges.property-event-type' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n {{'gauges.property-event-action' | translate}}\n \n \n \n {{ type.value }}\n \n \n \n \n {{ type.value }}\n \n \n \n
    \n
    \n
    \n \n
    \n {{'gauges.property-event-destination-panel' | translate}}\n \n {{panel.name}}\n \n
    \n
    \n {{'gauges.property-event-destination' | translate}}\n \n {{v.name}}\n \n
    \n
    \n \n
    \n {{'gauges.property-event-destination' | translate}}\n \n {{v.name}}\n \n
    \n
    \n
    \n
    \n {{'general-x' | translate}}\n \n
    \n
    \n {{'general-y' | translate}}\n \n
    \n
    \n {{'gauges.property-event-single-card' | translate}}\n \n
    \n
    \n {{'gauges.property-event-destination-relative-from' | translate}}\n \n \n {{ 'shapes.event-relativefrom-' + rf.value | translate }}\n \n \n
    \n
    \n
    \n {{'gauges.property-event-destination-target-device' | translate}}\n \n \n {{ device.name }}\n \n
    \n
    \n
    \n {{'gauges.property-event-destination-hide-close' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n {{'gauges.property-event-input' | translate}}\n \n {{v.name}}\n \n
    \n
    \n
    \n
    \n {{'gauges.property-event-value' | translate}}\n \n
    \n
    \n {{'gauges.property-event-function' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n {{'gauges.property-event-address' | translate}}\n \n
    \n
    \n {{'gauges.property-event-newtab' | translate}}\n \n
    \n
    \n \n
    \n {{'gauges.property-event-width' | translate}}\n \n
    \n
    \n {{'gauges.property-event-height' | translate}}\n \n
    \n
    \n
    \n {{'gauges.property-event-scale' | translate}}\n \n
    \n
    \n
    \n {{'general-x' | translate}}\n \n
    \n
    \n {{'general-y' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n {{'gauges.property-event-script' | translate}}\n \n {{script.name}}\n \n
    \n
    \n
    \n
    \n {{'gauges.property-event-script-param-name' | translate}}\n \n
    \n
    \n
    \n {{'gauges.property-event-script-param-value' | translate}}\n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 54535: +/*!*************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-head/flex-head.component.html?ngResource ***! + \*************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n \n
    \n \n \n
    "; + +/***/ }), + +/***/ 52477: +/*!***************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-input/flex-input.component.html?ngResource ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'gauges.property-input-color' | translate}}\n \n
    \n
    \n {{'gauges.property-input-stroke' | translate}}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{'gauges.property-input-min' | translate}}\n \n
    \n
    \n {{'gauges.property-input-max' | translate}}\n \n
    \n
    \n \n
    \n
    \n {{'gauges.property-input-color' | translate}}\n \n
    \n \n \n
    \n
    \n
    \n
    \n {{'gauges.property-input-value' | translate}}\n \n
    \n
    -
    \n
    \n {{'gauges.property-input-label' | translate}}\n \n
    \n
    \n {{'gauges.property-input-color' | translate}}\n \n
    \n
    \n {{'gauges.property-input-stroke' | translate}}\n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n

    {{'gauges.property-input-range' | translate}}

    \n
    \n
    \n {{'gauges.property-input-min' | translate}}\n \n
    \n
    \n {{'gauges.property-input-max' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n"; + +/***/ }), + +/***/ 78588: +/*!*****************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variable-map/flex-variable-map.component.html?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    "; + +/***/ }), + +/***/ 15921: +/*!*********************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variable/flex-variable.component.html?ngResource ***! + \*********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{variableLabel | translate}}\n \n \n \n \n \n \n \n \n
    \n
    \n {{tagLabel | translate}}\n
    \n \n
    \n
    \n {{getDeviceName()}}\n \n \n \n \n {{tag.name}}\n \n \n \n
    \n
    \n {{'gauges.property-mask' | translate}}\n
    \n \n arrow_drop_down\n
    \n
    \n
    "; + +/***/ }), + +/***/ 4962: +/*!***************************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-variables-mapping/flex-variables-mapping.component.html?ngResource ***! + \***************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n\n
    \n \n \n \n
    \n
    "; + +/***/ }), + +/***/ 12590: +/*!***********************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/flex-widget-property/flex-widget-property.component.html?ngResource ***! + \***********************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n \n
    \n - \n
    \n \n \n
    \n
    \n
    "; + +/***/ }), + +/***/ 46035: +/*!********************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/gauge-property.component.html?ngResource ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{data.title}}

    \n clear\n\t\n\t\t\n
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{{'gauges.property-name' | translate}}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{{'gauges.property-permission' | translate}}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tlock\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tlock_open\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{{'gauges.property-text' | translate}}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{{'gauges.property-readonly' | translate}}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t\n
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n\t\t\t\t\t\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 22086: +/*!*****************************************************************************************************!*\ + !*** ./src/app/gauges/gauge-property/permission-dialog/permission-dialog.component.html?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.gauge-permission-title' | translate}}

    \n clear\n
    \n
    \n {{'dlg.gauge-permission-show' | translate}}\n {{'dlg.gauge-permission-enabled' | translate}}\n {{'dlg.gauge-permission-label' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 466: +/*!*******************************************************************************!*\ + !*** ./src/app/gauges/shapes/ape-shapes/ape-shapes.component.html?ngResource ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 61914: +/*!***************************************************************************!*\ + !*** ./src/app/gauges/shapes/proc-eng/proc-eng.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 55642: +/*!****************************************************************!*\ + !*** ./src/app/gauges/shapes/shapes.component.html?ngResource ***! + \****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 9050: +/*!***********************************************************************!*\ + !*** ./src/app/gui-helpers/bitmask/bitmask.component.html?ngResource ***! + \***********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.bitmask-title' | translate}}

    \n clear\n
    \n \n
    \n {{bits[0].label}}\n {{bits[1].label}}\n {{bits[2].label}}\n {{bits[3].label}}\n {{bits[4].label}}\n {{bits[5].label}}\n {{bits[6].label}}\n {{bits[7].label}}\n
    \n
    8\" style=\"display: inline-block;\">\n {{bits[8].label}}\n {{bits[9].label}}\n {{bits[10].label}}\n {{bits[11].label}}\n {{bits[12].label}}\n {{bits[13].label}}\n {{bits[14].label}}\n {{bits[15].label}}\n
    \n
    16\" style=\"display: inline-block;\">\n {{bits[16].label}}\n {{bits[17].label}}\n {{bits[18].label}}\n {{bits[19].label}}\n {{bits[20].label}}\n {{bits[21].label}}\n {{bits[22].label}}\n {{bits[23].label}}\n
    \n
    24\" style=\"display: inline-block;\">\n {{bits[24].label}}\n {{bits[25].label}}\n {{bits[26].label}}\n {{bits[27].label}}\n {{bits[28].label}}\n {{bits[29].label}}\n {{bits[30].label}}\n {{bits[31].label}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 81114: +/*!*************************************************************************************!*\ + !*** ./src/app/gui-helpers/confirm-dialog/confirm-dialog.component.html?ngResource ***! + \*************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n {{ msgToConfirm }}\n
    \n\n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 98190: +/*!*****************************************************************************************!*\ + !*** ./src/app/gui-helpers/daterange-dialog/daterange-dialog.component.html?ngResource ***! + \*****************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 46608: +/*!***************************************************************************************!*\ + !*** ./src/app/gui-helpers/daterangepicker/daterangepicker.component.html?ngResource ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
      \n
    • \n \n
    • \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{this.locale.monthNames[calendarVariables?.left?.calendar[1][1].month()]}}\n \n
    \n
    \n {{ calendarVariables?.left?.calendar[1][1].format(\" YYYY\")}}\n \n
    \n
    \n \n {{this.locale.monthNames[calendarVariables?.left?.calendar[1][1].month()]}} {{ calendarVariables?.left?.calendar[1][1].format(\" YYYY\")}}\n \n
    \n
    {{this.locale.weekLabel}}{{dayofweek}}
    \n {{calendarVariables.left.calendar[row][0].week()}}\n \n {{calendarVariables.left.calendar[row][0].isoWeek()}}\n \n {{calendarVariables.left.calendar[row][col].date()}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {{this.locale.monthNames[calendarVariables?.right?.calendar[1][1].month()]}}\n \n
    \n
    \n {{ calendarVariables?.right?.calendar[1][1].format(\" YYYY\")}}\n \n
    \n
    \n \n {{this.locale.monthNames[calendarVariables?.right?.calendar[1][1].month()]}} {{ calendarVariables?.right?.calendar[1][1].format(\" YYYY\")}}\n \n
    \n
    {{this.locale.weekLabel}}{{dayofweek}}
    \n {{calendarVariables.right.calendar[row][0].week()}}\n \n {{calendarVariables.right.calendar[row][0].isoWeek()}}\n \n {{calendarVariables.right.calendar[row][col].date()}}\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n"; + +/***/ }), + +/***/ 19419: +/*!***************************************************************************!*\ + !*** ./src/app/gui-helpers/edit-name/edit-name.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{data.title}}

    \n clear\n
    \n
    \n {{data.label || 'dlg.item-name' | translate }}\n \n
    \n
    \n {{error}}\n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 97851: +/*!*****************************************************************************************!*\ + !*** ./src/app/gui-helpers/edit-placeholder/edit-placeholder.component.html?ngResource ***! + \*****************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{ 'device.edit-placeholder-titel' | translate}}

    \n clear\n
    \n
    \n {{ 'dlg.item-name' | translate }}\n alternate_email\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 25745: +/*!*******************************************************************************************!*\ + !*** ./src/app/gui-helpers/mat-select-search/mat-select-search.component.html?ngResource ***! + \*******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "\n\n
    \n \n \n
    \n\n
    \n {{noEntriesFoundLabel}}\n
    "; + +/***/ }), + +/***/ 58651: +/*!***************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-gauge/ngx-gauge.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n
    "; + +/***/ }), + +/***/ 2081: +/*!*************************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-nouislider/ngx-nouislider.component.html?ngResource ***! + \*************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    "; + +/***/ }), + +/***/ 26435: +/*!***********************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-scheduler/ngx-scheduler.component.html?ngResource ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n \n {{'general.monday-short' | translate}}\n {{'general.tuesday-short' | translate}}\n {{'general.wednesday-short' | translate}}\n {{'general.thursday-short' | translate}}\n {{'general.friday-short' | translate}}\n {{'general.saturday-short' | translate}}\n {{'general.sunday-short' | translate}}\n \n
    \n
    \n {{'script.scheduling-hour' | translate}}\n \n
    \n : \n
    \n {{'script.scheduling-minute' | translate}}\n \n
    \n
    \n \n \n \n
    \n \n
    \n
    \n {{'script.scheduling-date' | translate}}\n \n
    \n
    \n {{'script.scheduling-time' | translate}}\n \n
    \n \n \n \n
    \n
    \n
    \n
    "; + +/***/ }), + +/***/ 87059: +/*!*****************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-switch/ngx-switch.component.html?ngResource ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "\n\n"; + +/***/ }), + +/***/ 51344: +/*!***************************************************************************!*\ + !*** ./src/app/gui-helpers/ngx-uplot/ngx-uplot.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    "; + +/***/ }), + +/***/ 98917: +/*!*********************************************************************************!*\ + !*** ./src/app/gui-helpers/range-number/range-number.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n {{'gui.range-number-min' | translate}}\n \n
    \n
    \n {{'gui.range-number-max' | translate}}\n \n
    \n
    \n
    \n
    \n {{'gui.range-number-boolean' | translate}}\n \n {{'gui.range-number-true' | translate}}\n {{'gui.range-number-false' | translate}}\n \n
    \n
    \n
    \n \n
    \n
    \n"; + +/***/ }), + +/***/ 86990: +/*!*******************************************************************************!*\ + !*** ./src/app/gui-helpers/sel-options/sel-options.component.html?ngResource ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "\n\t\n\t\t\n\n\n\t\n\t\t{{opt.label}}\n\t\n"; + +/***/ }), + +/***/ 69470: +/*!***************************************************************************!*\ + !*** ./src/app/gui-helpers/treetable/treetable.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t{{node.text}}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{{node.property}}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{{node.text}}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{{'device.tag-array-id' | translate}}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ key }}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{{'device.tag-array-value' |\n\t\t\t\t\t\t\ttranslate}}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ key }}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{{node.property}}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n
    "; + +/***/ }), + +/***/ 31611: +/*!***************************************************************************************************************!*\ + !*** ./src/app/gui-helpers/webcam-player/webcam-player-dialog/webcam-player-dialog.component.html?ngResource ***! + \***************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n close\n \n \n
    \n"; + +/***/ }), + +/***/ 95003: +/*!***********************************************************************************!*\ + !*** ./src/app/gui-helpers/webcam-player/webcam-player.component.html?ngResource ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n
    \n
    \n
    \n
    \n"; + +/***/ }), + +/***/ 46727: +/*!*********************************************************!*\ + !*** ./src/app/header/header.component.html?ngResource ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n\n"; + +/***/ }), + +/***/ 93173: +/*!****************************************************!*\ + !*** ./src/app/header/info.dialog.html?ngResource ***! + \****************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n
    \n
    {{'dlg.info-title' | translate}}
    \n
    \n
    \n
    \n {{'header.info-version' | translate}} {{data.version}}\n
    \n
    \n powered by frangoteam\n
    \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 85757: +/*!******************************************************************!*\ + !*** ./src/app/help/tutorial/tutorial.component.html?ngResource ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n
    \n
    \n {{'tutorial.title' | translate}}\n
    \n
    \n ×\n
    \n
    \n
    \n \n \n \n \n {{ 'tutorial.editor-keyboard-shortcuts' | translate }}\n \n \n\n \n \n
    \n
      \n
    • Ctrl + Left / Right: rotate selected item
    • \n
    • Ctrl + Shift + Left / Right: rotate the selected item in big step
    • \n
    • Shift + O / P: select the prev / next item
    • \n
    • Tab / Shift + Tab: select the prev / next item
    • \n
    • Ctrl + Up / Down: central zoom in / out
    • \n
    • Ctrl + Z / Y: undo / redo
    • \n
    • Shift + 'resize with mouse the selected item': lock width and height
    • \n
    • Shift + Up / Down / Left / Right: move the selected item
    • \n
    • Shift + SCROLLER: zoom by mouse position
    • \n
    • Ctrl + A: select all item
    • \n
    • Ctrl + G: group or ungroup selected item
    • \n
    • Ctrl + D: duplicate selected item
    • \n
    • Shift + 'Draw line': line gradient horizonal, vertical 45° diagonal
    • \n
    • Ctrl + X: cut selected item
    • \n
    • Ctrl + C / V: copy / paste selected item
    • \n
    \n
    \n
    \n\n \n \n
    \n
    \n
    "; + +/***/ }), + +/***/ 64715: +/*!*****************************************************!*\ + !*** ./src/app/home/home.component.html?ngResource ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n\t\n\t\n
    \n
    \n\t
    \n\t\t{{'msg.server-connection-failed' | translate}}\n\t\tblock\n\t
    \n
    \n\n\t\n\t\t\n\t\n\t\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n {{ currentDateTime | date: layoutHeader.dateTimeDisplay }}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    {{ language.currentLanguage.id }}
    \n\t\t\t\t\t
    {{ language.currentLanguage.name }}
    \n\t\t\t\t\t\n \n \n \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ user?.username }}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ user?.fullname }}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ user?.username }}\n\t\t\t\t\t\t\t\t{{ user?.fullname }}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t
    \n\n
    \n"; + +/***/ }), + +/***/ 21978: +/*!******************************************************!*\ + !*** ./src/app/home/userinfo.dialog.html?ngResource ***! + \******************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n\t
    \n\t\taccount_circle\n\t
    \n\t
    \n\t\t{{data.username}}\n\t
    \n\t
    \n\t\t{{data.fullname}}\n\t
    \n\t
    \n\t\t\n\t
    \n\t
    \n\t\tFUXA powered by frangoteam\n\t
    \n
    "; + +/***/ }), + +/***/ 97965: +/*!*********************************************************!*\ + !*** ./src/app/iframe/iframe.component.html?ngResource ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = ""; + +/***/ }), + +/***/ 83172: +/*!***********************************************************************************************!*\ + !*** ./src/app/integrations/node-red/node-red-flows/node-red-flows.component.html?ngResource ***! + \***********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n {{'dlg.setup-node-red-flows' | translate}}\n
    \n
    \n \n
    "; + +/***/ }), + +/***/ 2103: +/*!***************************************************!*\ + !*** ./src/app/lab/lab.component.html?ngResource ***! + \***************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n
    \n Loading...\n
    \n \n \n \n
    "; + +/***/ }), + +/***/ 8928: +/*!******************************************************************************************!*\ + !*** ./src/app/language/language-text-list/language-text-list.component.html?ngResource ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n language\n {{'texts.list-title' | translate}}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {{'texts.list-id' | translate}} \n {{element.name}} \n \n\n \n {{'texts.list-group' | translate}} \n {{element.group}} \n \n\n \n \n {{ defaultLanguage.id }} ({{ defaultLanguage.name }})\n {{ 'texts.list-value' | translate }}\n \n {{element.value}} \n \n\n \n \n {{ lang.id }} ({{ lang.name }})\n \n \n {{ element.translations[lang.id] || '-' }}\n \n \n\n \n \n \n \n \n \n\n \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 12787: +/*!**************************************************************************************************!*\ + !*** ./src/app/language/language-text-property/language-text-property.component.html?ngResource ***! + \**************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'text.settings-title' | translate}}

    \n clear\n
    \n
    \n {{'text.settings-id' | translate}}\n \n
    {{'msg.text-name-exist' | translate}}
    \n
    \n
    \n {{'text.settings-group' | translate}}\n \n
    \n
    \n \n {{ defaultLanguage.id }} ({{ defaultLanguage.name }})\n \n \n {{'text.settings-value' | translate}}\n \n \n
    \n
    \n {{ lang.id }} ({{ lang.name }})\n \n
    \n\n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 93934: +/*!**************************************************************************************************!*\ + !*** ./src/app/language/language-type-property/language-type-property.component.html?ngResource ***! + \**************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'language.settings-title' | translate}}

    \n
    \n \n
    \n
    \n
    \n
    \n *{{'language.settings-default-id' | translate}}\n \n
    \n
    \n *{{'language.settings-default-name' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n *{{'language.settings-id' | translate}}\n \n
    \n
    \n *{{'language.settings-name' | translate}}\n \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 82010: +/*!*******************************************************!*\ + !*** ./src/app/login/login.component.html?ngResource ***! + \*******************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n\t
    \n\t\t

    {{'dlg.login-title' | translate}}

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t{{'general.username' | translate}}\n\t\t\t\t\n\t\t\t\t{{'msg.login-username-required' | translate}}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{{'general.password' | translate}}\n\t\t\t\t\n\t\t\t\t{{showPassword ? 'visibility' : 'visibility_off'}}\n\t\t\t\t{{'msg.login-password-required' | translate}}\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t{{messageError}}\n\t\t
    \n\t\t
    \n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n
    \n"; + +/***/ }), + +/***/ 20130: +/*!***************************************************************!*\ + !*** ./src/app/logs-view/logs-view.component.html?ngResource ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n {{'logs.view-title' | translate}}\n
    \n
    \n \n \n \n {{'logs.view-ontime' | translate}}\n \n \n {{element.ontime | date: 'yyyy.MM.dd HH:mm:ss'}} \n \n \n \n {{'logs.view-type' | translate}}\n \n \n {{element.type}}\n \n \n \n {{'logs.view-source' | translate}}\n \n \n {{element.group}}\n \n \n \n {{'logs.view-text' | translate}}\n \n \n {{element.text}} \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n {{'logs.view-files' | translate}}\n \n {{file}}\n \n
    \n
    "; + +/***/ }), + +/***/ 29155: +/*!******************************************************************************************!*\ + !*** ./src/app/maps/maps-location-import/maps-location-import.component.html?ngResource ***! + \******************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'maps.location-property-title' | translate}}

    \n clear\n
    \n
    \n {{'maps.location-to-import' | translate}}\n \n \n \n {{ location.name }}\n \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 69969: +/*!**************************************************************************************!*\ + !*** ./src/app/maps/maps-location-list/maps-location-list.component.html?ngResource ***! + \**************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n location_on\n {{'maps.locations-list-title' | translate}}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n\n \n {{'maps.locations-list-name' | translate}} \n {{element.name}} \n \n \n {{'maps.locations-list-view' | translate}} \n {{getViewName(element.viewId)}} \n \n \n {{'maps.locations-list-description' | translate}} \n {{element.description}} \n \n\n \n \n \n \n \n \n\n \n \n \n
    \n
    \n\n"; + +/***/ }), + +/***/ 17272: +/*!**********************************************************************************************!*\ + !*** ./src/app/maps/maps-location-property/maps-location-property.component.html?ngResource ***! + \**********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'maps.location-property-title' | translate}}

    \n clear\n
    \n
    \n *{{'maps.location-property-name' | translate}}\n \n
    \n
    \n
    \n {{'maps.location-property-latitude' | translate}}\n \n
    \n
    \n {{'maps.location-property-longitude' | translate}}\n \n
    \n
    \n
    \n {{'maps.location-property-card' | translate}}\n \n \n \n {{ view.name }}\n \n \n
    \n
    \n {{'maps.location-property-view' | translate}}\n \n \n \n {{ view.name }}\n \n \n
    \n
    \n {{'maps.location-property-url' | translate}}\n \n
    \n
    \n {{'maps.location-property-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 76810: +/*!****************************************************************************************************!*\ + !*** ./src/app/maps/maps-view/maps-fab-button-menu/maps-fab-button-menu.component.html?ngResource ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 2112: +/*!********************************************************************!*\ + !*** ./src/app/maps/maps-view/maps-view.component.html?ngResource ***! + \********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n \n
    \n
    \n
    \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n"; + +/***/ }), + +/***/ 43169: +/*!*********************************************************************************************!*\ + !*** ./src/app/notifications/notification-list/notification-list.component.html?ngResource ***! + \*********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n notifications_none\n {{'notifications.list-title' | translate}}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n {{'notifications.list-name' | translate}} \n {{element.name}} \n \n \n \n {{'notifications.list-receiver' | translate}} \n {{element.receiver}} \n \n \n \n {{'notifications.list-delay' | translate}} \n {{element.delay}} \n \n \n \n {{'notifications.list-interval' | translate}} \n {{element.interval}} \n \n \n \n {{'notifications.list-type' | translate}} \n {{element.type}} \n \n \n \n {{'notifications.list-enabled' | translate}} \n {{element.enabled}} \n \n \n \n {{'notifications.list-subscriptions' | translate}} \n {{getSubProperty(element)}} \n \n\n \n \n \n \n \n \n \n\n \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 18018: +/*!*****************************************************************************************************!*\ + !*** ./src/app/notifications/notification-property/notification-property.component.html?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'notification.property-title' | translate}}

    \n clear\n
    \n
    \n *{{'notification.property-name' | translate}}\n \n
    \n
    \n *{{'notification.property-receiver' | translate}}\n \n
    \n
    \n
    \n *{{'notification.property-type' | translate}}\n \n \n {{ notificationsType[notificationAlarm] }} \n \n
    \n
    \n {{'notification.property-delay' | translate}}\n \n
    \n
    \n {{'notification.property-interval' | translate}}\n \n
    \n
    \n {{'notification.property-enabled' | translate}}\n \n
    \n
    \n
    \n {{'notification.property-priority' | translate}}\n \n {{'alarm.property-' + item | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 90409: +/*!*********************************************************************!*\ + !*** ./src/app/odbc-browser/odbc-browser.component.html?ngResource ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n
    \n

    {{'odbc.browser-title' | translate}}

    \n
    \n \n clear\n
    \n
    \n\n
    \n \n
    \n error\n {{error}}\n
    \n\n \n
    \n check_circle\n {{success}}\n
    \n\n \n
    \n
    \n

    SQL Syntax Reference

    \n \n
    \n
    \n
    \n
    \n

    {{item.name}}

    \n
    \n \n \n
    \n
    \n

    {{item.description}}

    \n
    {{item.syntax}}
    \n
    \n
    \n
    \n\n \n
    \n {{'odbc.select-device' | translate}}\n \n \n {{device.name}}\n \n \n
    \n\n \n \n \n \n \n storage\n {{'odbc.browser' | translate}}\n \n\n
    \n \n
    \n

    {{'odbc.select-table' | translate}}

    \n
    \n \n {{'odbc.loading-tables' | translate}}\n
    \n
    0\" class=\"table-selection-wrapper\">\n \n \n \n \n \n \n \n \n
    \n \n \n table_chart\n {{table}}\n \n \n \n
    \n
    \n
    \n {{'odbc.no-tables-found' | translate}}\n
    \n
    \n\n \n
    \n

    \n {{'odbc.select-columns' | translate}}\n {{'odbc.select-timestamp-column' | translate}}\n

    \n
    \n \n {{'odbc.loading-columns' | translate}}\n
    \n
    0\" class=\"column-selection-wrapper\">\n \n \n \n \n \n \n \n
    \n \n \n \n view_column\n {{column.name}}\n {{column.type}}\n
    \n
    \n
    \n {{'odbc.no-columns-found' | translate}}\n
    \n
    \n\n \n
    0 && !selectColumnMode\" class=\"section\">\n

    {{'odbc.generated-query' | translate}}

    \n
    \n {{generateQuery()}}\n \n \n
    \n
    \n
    \n
    \n\n \n \n \n table_chart\n {{'odbc.data-viewer' | translate}}\n \n\n
    \n
    \n {{'odbc.select-columns-first' | translate}}\n
    \n\n
    \n {{'odbc.loading-columns' | translate}}\n
    \n\n \n
    0\" class=\"section\">\n

    {{'odbc.select-columns' | translate}}

    \n
    \n \n \n \n \n \n \n \n
    \n \n \n view_column\n {{column.name}}\n {{column.type}}\n
    \n
    \n
    \n\n \n
    0\" class=\"section\">\n
    \n
    \n \n \n {{'odbc.show-rows' | translate}}\n \n {{limit}}\n {{'odbc.all-rows' | translate}}\n \n \n
    \n \n
    \n\n
    \n \n {{'odbc.loading-data' | translate}}\n
    \n\n
    0\" class=\"data-table-wrapper\">\n
    \n {{'odbc.rows-count' | translate}}: {{tableData.rowCount}}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    {{col}}
    {{row[col]}}
    \n
    \n
    \n\n
    \n {{'odbc.no-data' | translate}}\n
    \n
    \n
    \n
    \n\n \n \n \n build\n {{'odbc.query-builder' | translate}}\n \n\n
    \n \n
    \n

    {{'odbc.query-type' | translate}}

    \n
    \n \n \n \n \n
    \n
    \n\n \n
    \n

    {{'odbc.select-table' | translate}}

    \n \n {{'odbc.main-table' | translate}}\n \n {{'{none}' | translate}}\n {{table}}\n \n \n
    \n\n \n
    \n

    {{'odbc.select-columns' | translate}}

    \n
    \n
    \n \n {{'odbc.select-all' | translate}}\n \n \n DISTINCT\n \n
    \n
    \n
    \n \n {{col.name}} ({{col.type}})\n \n \n Aggregate\n \n None\n COUNT\n SUM\n AVG\n MIN\n MAX\n COUNT(DISTINCT)\n \n \n
    \n
    \n
    \n
    \n\n \n
    \n

    {{'odbc.joins' | translate}}

    \n
    \n
    \n \n {{'odbc.join-type' | translate}}\n \n INNER\n LEFT\n RIGHT\n FULL\n \n \n \n {{'odbc.table' | translate}}\n \n {{table}}\n \n \n \n {{'odbc.on-column' | translate}}\n \n \n \n {{'odbc.with-column' | translate}}\n \n \n \n
    \n
    \n \n
    \n\n \n
    \n

    {{'odbc.insert-values' | translate}}

    \n
    \n
    \n

    Row {{i + 1}}

    \n
    \n \n {{col.name}}\n \n \n
    \n \n
    \n
    \n \n
    \n\n \n
    \n

    {{'odbc.set-values' | translate}}

    \n
    \n
    \n \n {{'odbc.column' | translate}}\n \n {{col.name}}\n \n \n \n {{'odbc.value' | translate}}\n \n \n \n
    \n
    \n \n
    \n\n \n
    \n

    {{'odbc.where-conditions' | translate}}

    \n
    \n
    \n \n {{'odbc.column' | translate}}\n \n {{col.name}}\n \n \n \n {{'odbc.operator' | translate}}\n \n {{op}}\n \n \n \n {{'odbc.value' | translate}}\n \n \n \n
    \n
    \n \n
    \n\n \n
    \n

    {{'odbc.group-by' | translate}}

    \n
    \n
    \n \n {{col.name}} ({{col.type}})\n \n
    \n
    \n
    \n\n \n
    0\" class=\"section having-section\">\n

    HAVING

    \n
    \n
    \n \n {{'odbc.column' | translate}}\n \n {{col.name}}\n \n \n \n {{'odbc.operator' | translate}}\n \n {{op}}\n \n \n \n {{'odbc.value' | translate}}\n \n \n \n
    \n
    \n \n
    \n\n \n
    \n

    {{'odbc.order-by' | translate}}

    \n
    \n
    \n \n {{'odbc.column' | translate}}\n \n {{col.name}}\n \n \n \n {{'odbc.direction' | translate}}\n \n ASC\n DESC\n \n \n \n
    \n
    \n \n
    \n\n \n
    \n
    \n \n LIMIT\n \n \n \n OFFSET\n \n \n
    \n
    \n\n \n
    \n

    {{'odbc.generated-query' | translate}}

    \n
    \n {{getGeneratedQueryBuilderQuery()}}\n
    \n \n \n \n
    \n
    \n
    \n\n \n
    0\" class=\"section\">\n

    {{'odbc.query-results' | translate}}

    \n
    \n {{'odbc.rows-count' | translate}}: {{queryBuilderResults.rowCount}}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    {{col}}
    {{row[col]}}
    \n
    \n
    \n
    \n
    \n\n \n \n \n code\n {{'odbc.sql-editor' | translate}}\n \n\n
    \n
    \n

    {{'odbc.custom-query' | translate}}

    \n \n \n
    \n \n \n
    \n
    \n\n
    \n \n {{'odbc.executing-query' | translate}}\n
    \n\n
    \n error\n {{sqlExecutionError}}\n
    \n\n
    0\" class=\"results-section\">\n

    {{'odbc.query-results' | translate}}

    \n
    \n {{'odbc.rows-count' | translate}}: {{sqlExecutionResult.rowCount}}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    {{col}}
    {{row[col]}}
    \n
    \n
    \n\n
    \n {{'odbc.no-results' | translate}}\n
    \n
    \n
    \n\n \n \n \n add_box\n {{'odbc.create-table' | translate}}\n \n\n
    \n \n
    \n

    {{ isEditingTable ? 'ALTER TABLE Query' : 'CREATE TABLE Query' }}

    \n
    \n
    {{generatedQuery}}
    \n
    \n
    \n \n \n \n
    \n
    \n\n \n
    \n
    \n warning\n

    Delete Table

    \n

    Are you sure you want to delete the table {{ deleteConfirmation.tableName }}?

    \n

    This action cannot be undone.

    \n
    \n \n \n
    \n
    \n
    \n\n \n
    \n

    {{ isEditingTable ? 'Edit Table Structure' : 'Table Definition' }}

    \n \n \n {{'odbc.table-name' | translate}}\n \n \n\n
    \n

    {{'odbc.columns' | translate}}\n \n Current PK: {{originalPrimaryKeyColumn}}\n \n

    \n
    \n vpn_key\n link\n \n\n \n {{'odbc.column-name' | translate}}\n \n \n\n \n {{'odbc.data-type' | translate}}\n \n \n {{col.type}}\n \n \n \n {{dtype}}\n \n \n \n\n \n {{'odbc.nullable' | translate}}\n \n\n \n {{'odbc.auto-increment' | translate}}\n \n\n \n {{'odbc.auto-timestamp' | translate}}\n \n\n \n\n \n\n \n
    \n\n \n
    \n\n \n {{'odbc.primary-key' | translate}}\n \n {{'{none}' | translate}}\n {{col.name}}\n \n \n\n
    \n

    {{'odbc.foreign-key' | translate}}

    \n
    \n \n {{'odbc.column' | translate}}\n \n {{'{none}' | translate}}\n {{col.name}}\n \n \n\n \n References Table\n \n {{'{none}' | translate}}\n {{table}}\n \n \n\n \n References Column\n \n {{'{none}' | translate}}\n {{col}}\n \n \n\n \n\n \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n {{'odbc.creating-table' | translate}}\n
    \n
    \n
    \n\n
    \n\n \n
    \n info\n {{'odbc.select-device-first' | translate}}\n
    \n
    \n\n \n
    \n \n \n \n
    \n
    "; + +/***/ }), + +/***/ 81083: +/*!*******************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-editor.component.html?ngResource ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'report.property-title' | translate}}

    \n clear\n
    \n {{'msg.report-remove' | translate}} '{{report.name}}' ?\n
    \n
    = 0\" class=\"dialog-ld-content\" style=\"position: relative\">\n
    \n
    \n {{'report.property-name' | translate}}\n \n
    \n
    \n {{'report.property-receiver' | translate}}\n \n
    \n
    \n {{'report.property-scheduling-type' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n \n \n
    \n add_circle_outline\n \n \n \n \n \n \n
    \n
    \n edit\n
    \n {{'report.content-type-text' | translate}}\n {{'report.content-type-tagstable' | translate}}\n {{'report.content-type-alarmshistory' | translate}}\n {{'report.content-type-chart' | translate}}\n
    \n more_vert\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n {{'report.property-page-size' | translate}}\n \n A3\n A4\n A5\n \n
    \n
    \n {{'report.property-page-orientation' | translate}}\n \n {{'report.property-page-ori-landscape' | translate}}\n {{'report.property-page-ori-portrait' | translate}}\n \n
    \n
    \n
    \n {{'report.property-margin-left' | translate}}\n \n
    \n
    \n {{'report.property-margin-top' | translate}}\n \n
    \n
    \n {{'report.property-margin-right' | translate}}\n \n
    \n
    \n {{'report.property-margin-bottom' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{'msg.report-property-missing-value' | translate}}\n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 61713: +/*!*******************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-alarms/report-item-alarms.component.html?ngResource ***! + \*******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'report.item-alarms-title' | translate}}

    \n clear\n
    \n
    \n {{'report.item-daterange' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n {{'report.alarms-priority' | translate}}\n \n {{'alarm.property-' + item | translate}}\n \n
    \n
    \n {{'report.alarms-column' | translate}}\n \n {{'alarms.view-' + item | translate}}\n \n
    \n
    \n
    \n
    \n {{'report.alarms-filter' | translate}}\n \n \n
    \n \n \n
    {{alarm.name}}
    \n
    {{alarm.variableName}}
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 41658: +/*!*****************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-chart/report-item-chart.component.html?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'report.chart-title' | translate}}

    \n clear\n
    \n
    \n {{'report.item-daterange' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n
    \n {{'report.chart-name' | translate}}\n \n \n \n {{ chart.name }}\n \n \n
    \n
    \n {{'report.chart-width' | translate}}\n \n
    \n
    \n {{'report.chart-height' | translate}}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 17772: +/*!*****************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-table/report-item-table.component.html?ngResource ***! + \*****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'report.tags-table-title' | translate}}

    \n clear\n
    \n
    \n {{'report.item-daterange' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n {{'report.item-interval' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n {{'report.tags-table-column' | translate}}\n
    \n
    \n {{column.label || column.tag.label || column.tag.name}}\n
    \n
    0\" class=\"my-form-field mt10\">\n {{'report.item-function-type' | translate}}\n \n \n {{ ev.value }}\n \n \n
    \n
    \n more_vert\n
    \n \n \n \n \n 0\" class=\"menu-separator\">\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 54556: +/*!***************************************************************************************************!*\ + !*** ./src/app/reports/report-editor/report-item-text/report-item-text.component.html?ngResource ***! + \***************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'report.item-text-title' | translate}}

    \n clear\n
    \n
    \n {{'report.item-text-label' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 52372: +/*!***************************************************************************!*\ + !*** ./src/app/reports/report-list/report-list.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n content_paste\n {{'reports.list-title' | translate}}\n
    \n
    \n
    \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n
    \n \n \n \n {{'reports.list-name' | translate}} {{element.name}} {{'reports.list-receiver' | translate}} {{element.receiver}} {{'reports.list-scheduling' | translate}} {{getScheduling(element.scheduling)}} {{'reports.list-type' | translate}} {{element.type}} \n \n \n \n \n \n \n
    \n
    \n
    \n
    {{file}}
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n"; + +/***/ }), + +/***/ 56332: +/*!*********************************************************************************!*\ + !*** ./src/app/resources/kiosk-widgets/kiosk-widgets.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'widgets.kiosk-title' | translate}}

    \n clear\n
    \n \n \n \n \n {{group.name}}\n \n \n\n \n \n
    \n \n
    \n
    \n
    \n \n
    \n download\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 3897: +/*!***************************************************************************!*\ + !*** ./src/app/resources/lib-images/lib-images.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'resources.lib-images' | translate}}

    \n clear\n
    \n \n \n \n \n {{grpImages.name}}\n \n \n\n \n \n
    \n\n \n \n \n \n \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    "; + +/***/ }), + +/***/ 39433: +/*!*****************************************************************************!*\ + !*** ./src/app/resources/lib-widgets/lib-widgets.component.html?ngResource ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "\n \n \n \n {{grpWidgets.name}}\n \n \n\n \n \n \n
    \n \n \n more_vert\n \n \n \n \n
    \n
    \n
    \n
    \n"; + +/***/ }), + +/***/ 41578: +/*!*********************************************************************************************************!*\ + !*** ./src/app/scripts/script-editor/script-editor-param/script-editor-param.component.html?ngResource ***! + \*********************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'script.param-title' | translate}}

    \n clear\n
    \n
    \n {{'script.param-name' | translate}}\n \n
    \n
    \n {{'script.param-type' | translate}}\n \n \n {{ 'script.paramtype-' + type | translate }}\n \n \n
    \n
    \n {{error}}\n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 60778: +/*!*******************************************************************************!*\ + !*** ./src/app/scripts/script-editor/script-editor.component.html?ngResource ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'script.property-title' | translate}}

    \n clear\n
    \n {{msgRemoveScript}}\n
    \n
    = 0\">\n
    \n
    \n async \n function\n {{script.name}} (\n
    \n
    \n cancel\n {{param.name}}\n
    \n ,\n
    \n ) {\n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'script.property-test-params' | translate}}\n
    \n
    \n
    \n {{param.name}}\n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{'script.property-test-console' | translate}}\n \n
    \n >{{text}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n }\n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 56383: +/*!***************************************************************************!*\ + !*** ./src/app/scripts/script-list/script-list.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n code\n {{'scripts.list-title' | translate}}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n {{'scripts.list-name' | translate}} \n {{element.name}} \n \n \n \n {{'scripts.list-params' | translate}} \n {{getParameters(element)}} \n \n \n \n {{'scripts.list-scheduling' | translate}} \n {{getScheduling(element)}}\n \n\n \n \n {{'scripts.list-mode' | translate}} \n {{element.mode || 'SERVER'}} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n
    \n
    \n"; + +/***/ }), + +/***/ 51016: +/*!***************************************************************************!*\ + !*** ./src/app/scripts/script-mode/script-mode.component.html?ngResource ***! + \***************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    \n \n {{'script.create-title' | translate}}\n \n \n {{'script.mode-title' | translate}}\n \n

    \n clear\n
    \n
    \n {{'dlg.item-req-name' | translate}}\n \n \n {{formGroup.controls.name.errors?.message}}\n \n
    \n
    \n {{'script.mode-label' | translate}}\n \n \n {{ 'script.mode-' + mode.value | translate }}\n \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 44511: +/*!***************************************************************************************!*\ + !*** ./src/app/scripts/script-permission/script-permission.component.html?ngResource ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'script.permission-title' | translate}}

    \n \n clear\n \n
    \n
    \n {{'script.permission-enabled' | translate}}\n {{'script.permission-label' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 84367: +/*!***************************************************************************************!*\ + !*** ./src/app/scripts/script-scheduling/script-scheduling.component.html?ngResource ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'script.scheduling-title' | translate}}

    \n clear\n
    \n
    \n {{'script.scheduling-type' | translate}}\n \n \n {{ 'script.scheduling-' + mode | translate }}\n \n \n
    \n \n \n
    \n {{'script.delay' | translate}}\n \n
    \n
    \n \n
    \n \n {{'script.scheduling-add-item' | translate}}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n {{'script.interval' | translate}}\n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 51638: +/*!***********************************************************!*\ + !*** ./src/app/sidenav/sidenav.component.html?ngResource ***! + \***********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n \n {{'sidenav.title' | translate}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n"; + +/***/ }), + +/***/ 90897: +/*!*********************************************************!*\ + !*** ./src/app/tester/tester.component.html?ngResource ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n
    \n
    \n
    \n {{'tester.title' | translate}}\n
    \n
    \n ×\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{item.source}} - {{item.name}} :\n \n \n
    \n
    \n
    \n
    \n \n {{item}}\n \n
    \n
    \n
    "; + +/***/ }), + +/***/ 69316: +/*!*********************************************************************!*\ + !*** ./src/app/users/user-edit/user-edit.component.html?ngResource ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'dlg.userproperty-title' | translate}}

    \n clear\n
    \n
    \n {{'general.username' | translate}}\n \n
    \n
    \n {{'general.fullname' | translate}}\n \n
    \n
    \n {{'general.password' | translate}}\n \n {{showPassword ? 'visibility' : 'visibility_off'}}\n
    \n
    \n {{'dlg.userproperty-language' | translate}}\n \n {{ languages?.default?.name }}\n \n {{ language.name }}\n \n \n
    \n
    \n \n {{'dlg.userproperty-role' | translate}}\n \n \n {{'dlg.userproperty-groups' | translate}}\n \n \n
    \n
    \n {{'dlg.userproperty-start' | translate}}\n \n \n {{ view.name }}\n \n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 38815: +/*!*********************************************************************************!*\ + !*** ./src/app/users/users-role-edit/users-role-edit.component.html?ngResource ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n

    {{'user-role-edit-title' | translate}}

    \n clear\n
    \n
    \n {{'user-role-edit-name' | translate}}\n \n
    \n
    \n {{'user-role-edit-index' | translate}}\n \n
    \n
    \n {{'user-role-edit-description' | translate}}\n \n
    \n
    \n
    \n \n \n
    \n
    "; + +/***/ }), + +/***/ 42519: +/*!*************************************************************************!*\ + !*** ./src/app/users/users-roles/users-roles.component.html?ngResource ***! + \*************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n groups\n {{'roles.list-title' | translate}}\n
    \n
    \n\t
    \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t {{'roles.list-index' | translate}} \n\t\t\t\t {{element.index}} \n\t\t\t\n\n\t\t\t\n\t\t\t\t {{'roles.list-name' | translate}} \n\t\t\t\t {{element.name}} \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t {{'roles.list-description' | translate}} \n\t\t\t\t {{element.description}} \n\t\t\t\n\n\t\t\t\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\n\t
    \n
    \n\n"; + +/***/ }), + +/***/ 230: +/*!*******************************************************!*\ + !*** ./src/app/users/users.component.html?ngResource ***! + \*******************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n\t{{'users.list-title' | translate}}\n
    \n
    \n\t
    \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t {{'users.list-name' | translate}} \n\t\t\t\t {{element.username}} \n\t\t\t\n\n\t\t\t\n\t\t\t\t {{'users.list-fullname' | translate}} \n\t\t\t\t {{element.fullname}} \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t {{ (isRolePermission() ? 'users.list-roles' : 'users.list-groups') | translate}} \n\t\t\t\t {{permissionValueToLabel(element)}} \n\t\t\t\n\n\t\t\t\n\t\t\t\t {{'users.list-start' | translate}} \n\t\t\t\t {{getViewStartName(element.username)}} \n\t\t\t\n\n\t\t\t\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\n\t
    \n
    \n\n"; + +/***/ }), + +/***/ 77251: +/*!*****************************************************!*\ + !*** ./src/app/view/view.component.html?ngResource ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "
    \n \n
    \n"; + +/***/ }), + +/***/ 4147: +/*!**********************!*\ + !*** ./package.json ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"name":"fuxa","version":"1.2.8-2548","keywords":[],"author":"frangoteam ","description":"Web-based Process Visualization (SCADA/HMI/Dashboard) software","repository":{"type":"git","url":"https://github.com/frangoteam/FUXA.git"},"scripts":{"ng":"ng","start":"ng serve","start:lan":"ng serve --host 0.0.0.0 --disable-host-check","demo":"ng serve -c demo","client":"ng serve -c client","build":"ng build","lint":"ng lint","e2e":"ng e2e"},"dependencies":{"@angular/animations":"16.2.12","@angular/cdk":"16.2.13","@angular/common":"16.2.12","@angular/compiler":"16.2.12","@angular/core":"16.2.12","@angular/forms":"16.2.12","@angular/material":"16.2.13","@angular/material-moment-adapter":"16.2.13","@angular/platform-browser":"16.2.12","@angular/platform-browser-dynamic":"16.2.12","@angular/router":"16.2.12","@ctrl/ngx-codemirror":"^5.1.1","@ngx-translate/core":"^14.0.0","@ngx-translate/http-loader":"^7.0.0","angular-gridster2":"^16.0.0","angular2-draggable":"^16.0.0","bcryptjs":"^2.4.3","body-parser":"^1.20.3","chart.js":"^3.9.1","chartjs-plugin-datalabels":"^2.1.0","codemirror":"^5.65.12","fecha":"^4.2.3","file-saver":"2.0.5","leaflet":"^1.9.4","material-icons":"^1.13.2","moment":"^2.29.4","ng2-charts":"^4.1.1","ngx-color-picker":"^13.0.0","ngx-toastr":"^16.2.0","panzoom":"^9.4.3","pdfmake":"^0.2.7","rxjs":"^7.8.0","socket.io-client":"4.8.1","tslib":"^2.5.0","uplot":"1.6.24","xgplayer":"3.0.13","xgplayer-flv.js":"3.0.13","xgplayer-hls.js":"3.0.13","zone.js":"~0.13.3"},"devDependencies":{"@angular-devkit/build-angular":"16.2.12","@angular-eslint/builder":"15.2.1","@angular-eslint/eslint-plugin":"15.2.1","@angular-eslint/eslint-plugin-template":"15.2.1","@angular-eslint/schematics":"16.3.1","@angular-eslint/template-parser":"15.2.1","@angular/cli":"16.2.12","@angular/compiler-cli":"16.2.12","@angular/language-service":"16.2.12","@types/codemirror":"^5.60.7","@types/leaflet":"^1.9.16","@types/node":"^18.0.0","@typescript-eslint/eslint-plugin":"5.48.2","@typescript-eslint/parser":"5.48.2","eslint":"^8.33.0","eslint-plugin-import":"2.26.0","eslint-plugin-jsdoc":"39.5.0","eslint-plugin-prefer-arrow":"1.2.3","eslint-plugin-unused-imports":"^2.0.0","sass":"^1.36.0","ts-node":"~10.9.1","typescript":"~4.9.5"}}'); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ __webpack_require__.O(0, ["vendor"], () => (__webpack_exec__(14913))); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ } +]); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/client/dist/marker-icon.d577052aa271e13f.png b/client/dist/marker-icon.png similarity index 100% rename from client/dist/marker-icon.d577052aa271e13f.png rename to client/dist/marker-icon.png diff --git a/client/dist/material-icons-outlined.78a93b2079680a08.woff b/client/dist/material-icons-outlined.woff similarity index 100% rename from client/dist/material-icons-outlined.78a93b2079680a08.woff rename to client/dist/material-icons-outlined.woff diff --git a/client/dist/material-icons-outlined.f86cb7b0aa53f0fe.woff2 b/client/dist/material-icons-outlined.woff2 similarity index 100% rename from client/dist/material-icons-outlined.f86cb7b0aa53f0fe.woff2 rename to client/dist/material-icons-outlined.woff2 diff --git a/client/dist/material-icons-round.92dc7ca2f4c591e7.woff b/client/dist/material-icons-round.woff similarity index 100% rename from client/dist/material-icons-round.92dc7ca2f4c591e7.woff rename to client/dist/material-icons-round.woff diff --git a/client/dist/material-icons-round.b10ec9db5b7fbc74.woff2 b/client/dist/material-icons-round.woff2 similarity index 100% rename from client/dist/material-icons-round.b10ec9db5b7fbc74.woff2 rename to client/dist/material-icons-round.woff2 diff --git a/client/dist/material-icons-sharp.a71cb2bf66c604de.woff b/client/dist/material-icons-sharp.woff similarity index 100% rename from client/dist/material-icons-sharp.a71cb2bf66c604de.woff rename to client/dist/material-icons-sharp.woff diff --git a/client/dist/material-icons-sharp.3885863ee4746422.woff2 b/client/dist/material-icons-sharp.woff2 similarity index 100% rename from client/dist/material-icons-sharp.3885863ee4746422.woff2 rename to client/dist/material-icons-sharp.woff2 diff --git a/client/dist/material-icons-two-tone.588d63134de807a7.woff b/client/dist/material-icons-two-tone.woff similarity index 100% rename from client/dist/material-icons-two-tone.588d63134de807a7.woff rename to client/dist/material-icons-two-tone.woff diff --git a/client/dist/material-icons-two-tone.675bd578bd14533e.woff2 b/client/dist/material-icons-two-tone.woff2 similarity index 100% rename from client/dist/material-icons-two-tone.675bd578bd14533e.woff2 rename to client/dist/material-icons-two-tone.woff2 diff --git a/client/dist/material-icons.4ad034d2c499d9b6.woff b/client/dist/material-icons.woff similarity index 100% rename from client/dist/material-icons.4ad034d2c499d9b6.woff rename to client/dist/material-icons.woff diff --git a/client/dist/material-icons.59322316b3fd6063.woff2 b/client/dist/material-icons.woff2 similarity index 100% rename from client/dist/material-icons.59322316b3fd6063.woff2 rename to client/dist/material-icons.woff2 diff --git a/client/dist/polyfills.c8e7db9850a3ad8b.js b/client/dist/polyfills.c8e7db9850a3ad8b.js deleted file mode 100644 index a5b07e67e..000000000 --- a/client/dist/polyfills.c8e7db9850a3ad8b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkFUXA=self.webpackChunkFUXA||[]).push([[429],{5321:(ie,Ee,de)=>{de(8332),window.process={env:{DEBUG:void 0}}},8332:()=>{!function(e){const n=e.performance;function i(L){n&&n.mark&&n.mark(L)}function o(L,T){n&&n.measure&&n.measure(L,T)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(L){return c+L}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class L{static{this.__symbol__=a}static assertZonePatched(){if(e.Promise!==oe.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=L.current;for(;t.parent;)t=t.parent;return t}static get current(){return B.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,L,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){B={parent:B,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{B=B.parent}}runGuarded(t,r=null,k,C){B={parent:B,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{B=B.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===P))return;const C=t.state!=E;C&&t._transitionTo(E,A),t.runCount++;const $=re;re=t,B={parent:B,zone:this};try{t.type==P&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(A,E):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,E,x))),B=B.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(q,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,q,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(A,q),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new p(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new p(P,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new p(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");if(t.state===A||t.state===E){t._transitionTo(G,A,E);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,G),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,G),t.runCount=0,t}}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;CL.hasTask(t,r),onScheduleTask:(L,T,t,r)=>L.scheduleTask(t,r),onInvokeTask:(L,T,t,r,k,C)=>L.invokeTask(t,r,k,C),onCancelTask:(L,T,t,r)=>L.cancelTask(t,r)};class v{constructor(T,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=T,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:b,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=T,r.onScheduleTask||(this._scheduleTaskZS=b,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=b,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=b,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(T,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,T,t):new d(T,t)}intercept(T,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,T,t,r):t}invoke(T,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,T,t,r,k,C):t.apply(r,k)}handleError(T,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,T,t)}scheduleTask(T,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,T,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(T,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,T,t,r,k):t.callback.apply(r,k)}cancelTask(T,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,T,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(T,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,T,t)}catch(r){this.handleError(T,r)}}_updateTaskCount(T,t){const r=this._taskCounts,k=r[T],C=r[T]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:T})}}class p{constructor(T,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=T,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=T===Q&&k&&k.useG?p.invokeTask:function(){return p.invokeTask.call(e,l,this,arguments)}}static invokeTask(T,t,r){T||(T=this),ee++;try{return T.runCount++,T.zone.runTask(T,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,q)}_transitionTo(T,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${T}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=T,T==x&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const M=a("setTimeout"),Z=a("Promise"),N=a("then");let J,U=[],H=!1;function X(L){if(J||e[Z]&&(J=e[Z].resolve(0)),J){let T=J[N];T||(T=J.then),T.call(J,L)}else e[M](L,0)}function R(L){0===ee&&0===U.length&&X(_),L&&U.push(L)}function _(){if(!H){for(H=!0;U.length;){const L=U;U=[];for(let T=0;TB,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:X};let B={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ie=Object.getOwnPropertyDescriptor,Ee=Object.defineProperty,de=Object.getPrototypeOf,ge=Object.create,Ve=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ne=Zone.__symbol__(Oe),ce="true",ae="false",ke=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const j=Zone.__symbol__,Pe=typeof window<"u",Te=Pe?window:void 0,Y=Pe&&Te||"object"==typeof self&&self||global,ct="removeAttribute";function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,we=!("nw"in Y)&&typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process),Ae=!we&&!Ue&&!(!Pe||!Te.HTMLElement),Be=typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process)&&!Ue&&!(!Pe||!Te.HTMLElement),Re={},We=function(e){if(!(e=e||Y.event))return;let n=Re[e.type];n||(n=Re[e.type]=j("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;return Ae&&i===Te&&"error"===e.type?(c=o&&o.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let o=ie(e,n);if(!o&&i&&ie(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=j("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let b=Re[d];b||(b=Re[d]=j("ON_PROPERTY"+d)),o.set=function(v){let p=this;!p&&e===Y&&(p=Y),p&&("function"==typeof p[b]&&p.removeEventListener(d,We),y&&y.call(p,null),p[b]=v,"function"==typeof v&&p.addEventListener(d,We,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const p=v[b];if(p)return p;if(a){let M=a.call(this);if(M)return o.set.call(this,M),"function"==typeof v[ct]&&v.removeAttribute(n),M}return null},Ee(e,n,o),e[c]=!0}function qe(e,n,i){if(n)for(let o=0;ofunction(y,d){const b=i(y,d);return b.cbIdx>=0&&"function"==typeof d[b.cbIdx]?Me(b.name,d[b.cbIdx],b,c):a.apply(y,d)})}function ue(e,n){e[j("OriginalDelegate")]=n}let ze=!1,je=!1;function ft(){if(ze)return je;ze=!0;try{const e=Te.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(je=!0)}catch{}return je}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],b=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),p=y("then"),M="__creationTrace__";i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const Z=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[Z];"function"==typeof u&&u.call(this,l)}catch{}}function U(l){return l&&l.then}function H(l){return l}function J(l){return t.reject(l)}const X=y("state"),R=y("value"),_=y("finally"),K=y("parentPromiseValue"),x=y("parentPromiseState"),q="Promise.then",A=null,E=!0,G=!1,h=0;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const P=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},Q="Promise resolved with itself",oe=y("currentTaskTrace");function z(l,u,s){const f=P();if(l===s)throw new TypeError(Q);if(l[X]===A){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(w){return f(()=>{z(l,!1,w)})(),l}if(u!==G&&s instanceof t&&s.hasOwnProperty(X)&&s.hasOwnProperty(R)&&s[X]!==A)re(s),z(l,s[X],s[R]);else if(u!==G&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(w){f(()=>{z(l,!1,w)})()}else{l[X]=u;const w=l[R];if(l[R]=s,l[_]===_&&u===E&&(l[X]=l[x],l[R]=l[K]),u===G&&s instanceof Error){const m=n.currentTask&&n.currentTask.data&&n.currentTask.data[M];m&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{const D=l[R],S=!!s&&_===s[_];S&&(s[K]=D,s[x]=w);const O=u.run(m,void 0,S&&m!==J&&m!==H?[]:[D]);z(s,!0,O)}catch(D){z(s,!1,D)}},s)}const L=function(){},T=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),E,u)}static reject(u){return z(new this(null),G,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new T([],"All promises were rejected"));const s=[];let f=0;try{for(let m of u)f++,s.push(t.resolve(m))}catch{return Promise.reject(new T([],"All promises were rejected"))}if(0===f)return Promise.reject(new T([],"All promises were rejected"));let g=!1;const w=[];return new t((m,D)=>{for(let S=0;S{g||(g=!0,m(O))},O=>{w.push(O),f--,0===f&&(g=!0,D(new T(w,"All promises were rejected")))})})}static race(u){let s,f,g=new this((D,S)=>{s=D,f=S});function w(D){s(D)}function m(D){f(D)}for(let D of u)U(D)||(D=this.resolve(D)),D.then(w,m);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,w=new this((O,V)=>{f=O,g=V}),m=2,D=0;const S=[];for(let O of u){U(O)||(O=this.resolve(O));const V=D;try{O.then(F=>{S[V]=s?s.thenCallback(F):F,m--,0===m&&f(S)},F=>{s?(S[V]=s.errorCallback(F),m--,0===m&&f(S)):g(F)})}catch(F){g(F)}m++,D++}return m-=2,0===m&&f(S),w}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[X]=A,s[R]=[];try{const f=P();u&&u(f(I(s,E)),f(I(s,G)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){let f=this.constructor?.[Symbol.species];(!f||"function"!=typeof f)&&(f=this.constructor||t);const g=new f(L),w=n.current;return this[X]==A?this[R].push(w,g,u,s):ee(this,w,g,u,s),g}catch(u){return this.then(null,u)}finally(u){let s=this.constructor?.[Symbol.species];(!s||"function"!=typeof s)&&(s=t);const f=new s(L);f[_]=_;const g=n.current;return this[X]==A?this[R].push(g,f,u,u):ee(this,g,f,u,u),f}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[p]=f,l.prototype.then=function(g,w){return new t((D,S)=>{f.call(this,D,S)}).then(g,w)},l[k]=!0}return i.patchThen=C,r&&(C(r),le(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=j("OriginalDelegate"),o=j("Promise"),c=j("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const p=e[o];if(p)return n.call(p)}if(this===Error){const p=e[c];if(p)return n.call(p)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let ye=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ye=!1}const ht={useG:!0},te={},Ye={},$e=new RegExp("^"+ke+"(\\w+)(true|false)$"),Ke=j("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ae,o=(n?n(e):e)+ce,c=ke+i,a=ke+o;te[e]={},te[e][ae]=c,te[e][ce]=a}function dt(e,n,i,o){const c=o&&o.add||Se,a=o&&o.rm||Oe,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",b=j(c),v="."+c+":",p="prependListener",M="."+p+":",Z=function(R,_,K){if(R.isRemoved)return;const x=R.callback;let q;"object"==typeof x&&x.handleEvent&&(R.callback=E=>x.handleEvent(E),R.originalDelegate=x);try{R.invoke(R,_,[K])}catch(E){q=E}const A=R.options;return A&&"object"==typeof A&&A.once&&_[a].call(_,K.type,R.originalDelegate?R.originalDelegate:R.callback,A),q};function N(R,_,K){if(!(_=_||e.event))return;const x=R||_.target||e,q=x[te[_.type][K?ce:ae]];if(q){const A=[];if(1===q.length){const E=Z(q[0],x,_);E&&A.push(E)}else{const E=q.slice();for(let G=0;G{throw G})}}}const U=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function J(R,_){if(!R)return!1;let K=!0;_&&void 0!==_.useG&&(K=_.useG);const x=_&&_.vh;let q=!0;_&&void 0!==_.chkDup&&(q=_.chkDup);let A=!1;_&&void 0!==_.rt&&(A=_.rt);let E=R;for(;E&&!E.hasOwnProperty(c);)E=de(E);if(!E&&R[c]&&(E=R),!E||E[b])return!1;const G=_&&_.eventNameToString,h={},I=E[b]=E[c],P=E[j(a)]=E[a],Q=E[j(y)]=E[y],oe=E[j(d)]=E[d];let z;_&&_.prepend&&(z=E[j(_.prepend)]=E[_.prepend]);const t=K?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:U,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=K?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ce:ae]);const w=g&&s.target[g];if(w)for(let m=0;mfunction(c,a){c[Ke]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,b,v){return b&&b.prototype&&c.forEach(function(p){const M=`${i}.${o}::`+p,Z=b.prototype;try{if(Z.hasOwnProperty(p)){const N=e.ObjectGetOwnPropertyDescriptor(Z,p);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,M),e._redefineProperty(b.prototype,p,N)):Z[p]&&(Z[p]=e.wrapWithCurrentZone(Z[p],M))}else Z[p]&&(Z[p]=e.wrapWithCurrentZone(Z[p],M))}catch{}}),y.call(n,d,b,v)},e.attachOriginToPatched(n[o],y)}function et(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function tt(e,n,i,o){e&&qe(e,et(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=qe,i.patchMethod=le,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=Ee,i.ObjectGetOwnPropertyDescriptor=ie,i.ObjectCreate=ge,i.ArraySlice=Ve,i.patchClass=ve,i.wrapWithCurrentZone=Ie,i.filterProperties=et,i.attachOriginToPatched=ue,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:Ye,zoneSymbolEventNames:te,eventNames:o,isBrowser:Ae,isMix:Be,isNode:we,TRUE_STR:ce,FALSE_STR:ae,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ce=j("zoneTask");function pe(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const p=v.data;return p.args[0]=function(){return v.invoke.apply(this,arguments)},p.handleId=c.apply(e,p.args),v}function b(v){return a.call(e,v.data.handleId)}c=le(e,n+=o,v=>function(p,M){if("function"==typeof M[0]){const Z={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?M[1]||0:void 0,args:M},N=M[0];M[0]=function(){try{return N.apply(this,arguments)}finally{Z.isPeriodic||("number"==typeof Z.handleId?delete y[Z.handleId]:Z.handleId&&(Z.handleId[Ce]=null))}};const U=Me(n,M[0],Z,d,b);if(!U)return U;const H=U.data.handleId;return"number"==typeof H?y[H]=U:H&&(H[Ce]=U),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(U.ref=H.ref.bind(H),U.unref=H.unref.bind(H)),"number"==typeof H||H?H:U}return v.apply(e,M)}),a=le(e,i,v=>function(p,M){const Z=M[0];let N;"number"==typeof Z?N=y[Z]:(N=Z&&Z[Ce],N||(N=Z)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof Z?delete y[Z]:Z&&(Z[Ce]=null),N.zone.cancelTask(N)):v.apply(e,M)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("timers",e=>{const n="set",i="clear";pe(e,n,i,"Timeout"),pe(e,n,i,"Interval"),pe(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{pe(e,"request","cancel","AnimationFrame"),pe(e,"mozRequest","mozCancel","AnimationFrame"),pe(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;ofunction(b,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function gt(e,n){n.patchEventPrototype(e,n)})(e,i),function mt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let b=0;b{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(we&&!Be||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(Ae){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=Te.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];tt(c,He(c),i&&i.concat(a),de(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{!function pt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function b(v){const p=v.XMLHttpRequest;if(!p)return;const M=p.prototype;let N=M[Ze],U=M[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Ze],U=I[Ne]}}const H="readystatechange",J="scheduled";function X(h){const I=h.data,P=I.target;P[a]=!1,P[d]=!1;const Q=P[c];N||(N=P[Ze],U=P[Ne]),Q&&U.call(P,H,Q);const oe=P[c]=()=>{if(P.readyState===P.DONE)if(!I.aborted&&P[a]&&h.state===J){const B=P[n.__symbol__("loadfalse")];if(0!==P.status&&B&&B.length>0){const re=h.invoke;h.invoke=function(){const ee=P[n.__symbol__("loadfalse")];for(let W=0;Wfunction(h,I){return h[o]=0==I[2],h[y]=I[1],K.apply(h,I)}),q=j("fetchTaskAborting"),A=j("fetchTaskScheduling"),E=le(M,"send",()=>function(h,I){if(!0===n.current[A]||h[o])return E.apply(h,I);{const P={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,P,X,_);h&&!0===h[d]&&!P.aborted&&Q.state===J&&Q.invoke()}}),G=le(M,"abort",()=>function(h,I){const P=function Z(h){return h[i]}(h);if(P&&"string"==typeof P.type){if(null==P.cancelFn||P.data&&P.data.aborted)return;P.zone.cancelTask(P)}else if(!0===n.current[q])return G.apply(h,I)})}(e);const i=j("xhrTask"),o=j("xhrSync"),c=j("xhrListener"),a=j("xhrScheduled"),y=j("xhrURL"),d=j("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o{const b=function(){return d.apply(this,Le(arguments,i+"."+c))};return ue(b,d),b})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Qe(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const b=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(b)}})}}e.PromiseRejectionEvent&&(n[j("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[j("rejectionHandledHandler")]=i("rejectionhandled"))}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{!function yt(e,n){n.patchMethod(e,"queueMicrotask",i=>function(o,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}(e,i)})}},ie=>{ie(ie.s=5321)}]); \ No newline at end of file diff --git a/client/dist/polyfills.js b/client/dist/polyfills.js new file mode 100644 index 000000000..49d463408 --- /dev/null +++ b/client/dist/polyfills.js @@ -0,0 +1,32083 @@ +"use strict"; +(self["webpackChunkFUXA"] = self["webpackChunkFUXA"] || []).push([["polyfills"],{ + +/***/ 55321: +/*!**************************!*\ + !*** ./src/polyfills.ts ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zone.js */ 76657); +/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zone_js__WEBPACK_IMPORTED_MODULE_0__); +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ +/*************************************************************************************************** + * BROWSER POLYFILLS + */ +/*************************************************************************************************** + * Zone JS is required by Angular itself. + */ + // Included with Angular CLI. +/*************************************************************************************************** + * APPLICATION IMPORTS + */ +/** + * Date, currency, decimal and percent pipes. + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 + */ +// import 'intl'; // Run `npm install --save intl`. +/** + * Need to import at least one locale-data with intl. + */ +// import 'intl/locale-data/jsonp/en'; +window.process = { + env: { + DEBUG: undefined + } +}; + +/***/ }), + +/***/ 76657: +/*!***********************************************!*\ + !*** ./node_modules/zone.js/fesm2015/zone.js ***! + \***********************************************/ +/***/ (() => { + + + +/** + * @license Angular v + * (c) 2010-2022 Google LLC. https://angular.io/ + * License: MIT + */ +(function (global) { + const performance = global['performance']; + function mark(name) { + performance && performance['mark'] && performance['mark'](name); + } + function performanceMeasure(name, label) { + performance && performance['measure'] && performance['measure'](name, label); + } + mark('Zone'); + // Initialize before it's accessed below. + // __Zone_symbol_prefix global can be used to override the default zone + // symbol prefix with a custom one if needed. + const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__'; + function __symbol__(name) { + return symbolPrefix + name; + } + const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; + if (global['Zone']) { + // if global['Zone'] already exists (maybe zone.js was already loaded or + // some other lib also registered a global object named Zone), we may need + // to throw an error, but sometimes user may not want this error. + // For example, + // we have two web pages, page1 includes zone.js, page2 doesn't. + // and the 1st time user load page1 and page2, everything work fine, + // but when user load page2 again, error occurs because global['Zone'] already exists. + // so we add a flag to let user choose whether to throw this error or not. + // By default, if existing Zone is from zone.js, we will not throw the error. + if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') { + throw new Error('Zone already loaded.'); + } else { + return global['Zone']; + } + } + class Zone { + // tslint:disable-next-line:require-internal-with-underscore + static { + this.__symbol__ = __symbol__; + } + static assertZonePatched() { + if (global['Promise'] !== patches['ZoneAwarePromise']) { + throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + 'If you must load one, do so before loading zone.js.)'); + } + } + static get root() { + let zone = Zone.current; + while (zone.parent) { + zone = zone.parent; + } + return zone; + } + static get current() { + return _currentZoneFrame.zone; + } + static get currentTask() { + return _currentTask; + } + // tslint:disable-next-line:require-internal-with-underscore + static __load_patch(name, fn, ignoreDuplicate = false) { + if (patches.hasOwnProperty(name)) { + // `checkDuplicate` option is defined from global variable + // so it works for all modules. + // `ignoreDuplicate` can work for the specified module + if (!ignoreDuplicate && checkDuplicate) { + throw Error('Already loaded patch: ' + name); + } + } else if (!global['__Zone_disable_' + name]) { + const perfName = 'Zone:' + name; + mark(perfName); + patches[name] = fn(global, Zone, _api); + performanceMeasure(perfName, perfName); + } + } + get parent() { + return this._parent; + } + get name() { + return this._name; + } + constructor(parent, zoneSpec) { + this._parent = parent; + this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; + this._properties = zoneSpec && zoneSpec.properties || {}; + this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); + } + get(key) { + const zone = this.getZoneWith(key); + if (zone) return zone._properties[key]; + } + getZoneWith(key) { + let current = this; + while (current) { + if (current._properties.hasOwnProperty(key)) { + return current; + } + current = current._parent; + } + return null; + } + fork(zoneSpec) { + if (!zoneSpec) throw new Error('ZoneSpec required!'); + return this._zoneDelegate.fork(this, zoneSpec); + } + wrap(callback, source) { + if (typeof callback !== 'function') { + throw new Error('Expecting function got: ' + callback); + } + const _callback = this._zoneDelegate.intercept(this, callback, source); + const zone = this; + return function () { + return zone.runGuarded(_callback, this, arguments, source); + }; + } + run(callback, applyThis, applyArgs, source) { + _currentZoneFrame = { + parent: _currentZoneFrame, + zone: this + }; + try { + return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); + } finally { + _currentZoneFrame = _currentZoneFrame.parent; + } + } + runGuarded(callback, applyThis = null, applyArgs, source) { + _currentZoneFrame = { + parent: _currentZoneFrame, + zone: this + }; + try { + try { + return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); + } catch (error) { + if (this._zoneDelegate.handleError(this, error)) { + throw error; + } + } + } finally { + _currentZoneFrame = _currentZoneFrame.parent; + } + } + runTask(task, applyThis, applyArgs) { + if (task.zone != this) { + throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); + } + // https://github.com/angular/zone.js/issues/778, sometimes eventTask + // will run in notScheduled(canceled) state, we should not try to + // run such kind of task but just return + if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) { + return; + } + const reEntryGuard = task.state != running; + reEntryGuard && task._transitionTo(running, scheduled); + task.runCount++; + const previousTask = _currentTask; + _currentTask = task; + _currentZoneFrame = { + parent: _currentZoneFrame, + zone: this + }; + try { + if (task.type == macroTask && task.data && !task.data.isPeriodic) { + task.cancelFn = undefined; + } + try { + return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs); + } catch (error) { + if (this._zoneDelegate.handleError(this, error)) { + throw error; + } + } + } finally { + // if the task's state is notScheduled or unknown, then it has already been cancelled + // we should not reset the state to scheduled + if (task.state !== notScheduled && task.state !== unknown) { + if (task.type == eventTask || task.data && task.data.isPeriodic) { + reEntryGuard && task._transitionTo(scheduled, running); + } else { + task.runCount = 0; + this._updateTaskCount(task, -1); + reEntryGuard && task._transitionTo(notScheduled, running, notScheduled); + } + } + _currentZoneFrame = _currentZoneFrame.parent; + _currentTask = previousTask; + } + } + scheduleTask(task) { + if (task.zone && task.zone !== this) { + // check if the task was rescheduled, the newZone + // should not be the children of the original zone + let newZone = this; + while (newZone) { + if (newZone === task.zone) { + throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`); + } + newZone = newZone.parent; + } + } + task._transitionTo(scheduling, notScheduled); + const zoneDelegates = []; + task._zoneDelegates = zoneDelegates; + task._zone = this; + try { + task = this._zoneDelegate.scheduleTask(this, task); + } catch (err) { + // should set task's state to unknown when scheduleTask throw error + // because the err may from reschedule, so the fromState maybe notScheduled + task._transitionTo(unknown, scheduling, notScheduled); + // TODO: @JiaLiPassion, should we check the result from handleError? + this._zoneDelegate.handleError(this, err); + throw err; + } + if (task._zoneDelegates === zoneDelegates) { + // we have to check because internally the delegate can reschedule the task. + this._updateTaskCount(task, 1); + } + if (task.state == scheduling) { + task._transitionTo(scheduled, scheduling); + } + return task; + } + scheduleMicroTask(source, callback, data, customSchedule) { + return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); + } + scheduleMacroTask(source, callback, data, customSchedule, customCancel) { + return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); + } + scheduleEventTask(source, callback, data, customSchedule, customCancel) { + return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); + } + cancelTask(task) { + if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); + if (task.state !== scheduled && task.state !== running) { + return; + } + task._transitionTo(canceling, scheduled, running); + try { + this._zoneDelegate.cancelTask(this, task); + } catch (err) { + // if error occurs when cancelTask, transit the state to unknown + task._transitionTo(unknown, canceling); + this._zoneDelegate.handleError(this, err); + throw err; + } + this._updateTaskCount(task, -1); + task._transitionTo(notScheduled, canceling); + task.runCount = 0; + return task; + } + _updateTaskCount(task, count) { + const zoneDelegates = task._zoneDelegates; + if (count == -1) { + task._zoneDelegates = null; + } + for (let i = 0; i < zoneDelegates.length; i++) { + zoneDelegates[i]._updateTaskCount(task.type, count); + } + } + } + const DELEGATE_ZS = { + name: '', + onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState), + onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task), + onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs), + onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task) + }; + class _ZoneDelegate { + constructor(zone, parentDelegate, zoneSpec) { + this._taskCounts = { + 'microTask': 0, + 'macroTask': 0, + 'eventTask': 0 + }; + this.zone = zone; + this._parentDelegate = parentDelegate; + this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); + this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); + this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone); + this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); + this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); + this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone); + this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); + this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); + this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone); + this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); + this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); + this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone); + this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); + this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); + this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone); + this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); + this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); + this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone); + this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); + this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); + this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone); + this._hasTaskZS = null; + this._hasTaskDlgt = null; + this._hasTaskDlgtOwner = null; + this._hasTaskCurrZone = null; + const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; + const parentHasTask = parentDelegate && parentDelegate._hasTaskZS; + if (zoneSpecHasTask || parentHasTask) { + // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such + // a case all task related interceptors must go through this ZD. We can't short circuit it. + this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; + this._hasTaskDlgt = parentDelegate; + this._hasTaskDlgtOwner = this; + this._hasTaskCurrZone = zone; + if (!zoneSpec.onScheduleTask) { + this._scheduleTaskZS = DELEGATE_ZS; + this._scheduleTaskDlgt = parentDelegate; + this._scheduleTaskCurrZone = this.zone; + } + if (!zoneSpec.onInvokeTask) { + this._invokeTaskZS = DELEGATE_ZS; + this._invokeTaskDlgt = parentDelegate; + this._invokeTaskCurrZone = this.zone; + } + if (!zoneSpec.onCancelTask) { + this._cancelTaskZS = DELEGATE_ZS; + this._cancelTaskDlgt = parentDelegate; + this._cancelTaskCurrZone = this.zone; + } + } + } + fork(targetZone, zoneSpec) { + return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new Zone(targetZone, zoneSpec); + } + intercept(targetZone, callback, source) { + return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback; + } + invoke(targetZone, callback, applyThis, applyArgs, source) { + return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs); + } + handleError(targetZone, error) { + return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true; + } + scheduleTask(targetZone, task) { + let returnTask = task; + if (this._scheduleTaskZS) { + if (this._hasTaskZS) { + returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); + } + // clang-format off + returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); + // clang-format on + if (!returnTask) returnTask = task; + } else { + if (task.scheduleFn) { + task.scheduleFn(task); + } else if (task.type == microTask) { + scheduleMicroTask(task); + } else { + throw new Error('Task is missing scheduleFn.'); + } + } + return returnTask; + } + invokeTask(targetZone, task, applyThis, applyArgs) { + return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs); + } + cancelTask(targetZone, task) { + let value; + if (this._cancelTaskZS) { + value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); + } else { + if (!task.cancelFn) { + throw Error('Task is not cancelable'); + } + value = task.cancelFn(task); + } + return value; + } + hasTask(targetZone, isEmpty) { + // hasTask should not throw error so other ZoneDelegate + // can still trigger hasTask callback + try { + this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); + } catch (err) { + this.handleError(targetZone, err); + } + } + // tslint:disable-next-line:require-internal-with-underscore + _updateTaskCount(type, count) { + const counts = this._taskCounts; + const prev = counts[type]; + const next = counts[type] = prev + count; + if (next < 0) { + throw new Error('More tasks executed then were scheduled.'); + } + if (prev == 0 || next == 0) { + const isEmpty = { + microTask: counts['microTask'] > 0, + macroTask: counts['macroTask'] > 0, + eventTask: counts['eventTask'] > 0, + change: type + }; + this.hasTask(this.zone, isEmpty); + } + } + } + class ZoneTask { + constructor(type, source, callback, options, scheduleFn, cancelFn) { + // tslint:disable-next-line:require-internal-with-underscore + this._zone = null; + this.runCount = 0; + // tslint:disable-next-line:require-internal-with-underscore + this._zoneDelegates = null; + // tslint:disable-next-line:require-internal-with-underscore + this._state = 'notScheduled'; + this.type = type; + this.source = source; + this.data = options; + this.scheduleFn = scheduleFn; + this.cancelFn = cancelFn; + if (!callback) { + throw new Error('callback is not defined'); + } + this.callback = callback; + const self = this; + // TODO: @JiaLiPassion options should have interface + if (type === eventTask && options && options.useG) { + this.invoke = ZoneTask.invokeTask; + } else { + this.invoke = function () { + return ZoneTask.invokeTask.call(global, self, this, arguments); + }; + } + } + static invokeTask(task, target, args) { + if (!task) { + task = this; + } + _numberOfNestedTaskFrames++; + try { + task.runCount++; + return task.zone.runTask(task, target, args); + } finally { + if (_numberOfNestedTaskFrames == 1) { + drainMicroTaskQueue(); + } + _numberOfNestedTaskFrames--; + } + } + get zone() { + return this._zone; + } + get state() { + return this._state; + } + cancelScheduleRequest() { + this._transitionTo(notScheduled, scheduling); + } + // tslint:disable-next-line:require-internal-with-underscore + _transitionTo(toState, fromState1, fromState2) { + if (this._state === fromState1 || this._state === fromState2) { + this._state = toState; + if (toState == notScheduled) { + this._zoneDelegates = null; + } + } else { + throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \'' + fromState2 + '\'' : ''}, was '${this._state}'.`); + } + } + toString() { + if (this.data && typeof this.data.handleId !== 'undefined') { + return this.data.handleId.toString(); + } else { + return Object.prototype.toString.call(this); + } + } + // add toJSON method to prevent cyclic error when + // call JSON.stringify(zoneTask) + toJSON() { + return { + type: this.type, + state: this.state, + source: this.source, + zone: this.zone.name, + runCount: this.runCount + }; + } + } + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + /// MICROTASK QUEUE + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + const symbolSetTimeout = __symbol__('setTimeout'); + const symbolPromise = __symbol__('Promise'); + const symbolThen = __symbol__('then'); + let _microTaskQueue = []; + let _isDrainingMicrotaskQueue = false; + let nativeMicroTaskQueuePromise; + function nativeScheduleMicroTask(func) { + if (!nativeMicroTaskQueuePromise) { + if (global[symbolPromise]) { + nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); + } + } + if (nativeMicroTaskQueuePromise) { + let nativeThen = nativeMicroTaskQueuePromise[symbolThen]; + if (!nativeThen) { + // native Promise is not patchable, we need to use `then` directly + // issue 1078 + nativeThen = nativeMicroTaskQueuePromise['then']; + } + nativeThen.call(nativeMicroTaskQueuePromise, func); + } else { + global[symbolSetTimeout](func, 0); + } + } + function scheduleMicroTask(task) { + // if we are not running in any task, and there has not been anything scheduled + // we must bootstrap the initial task creation by manually scheduling the drain + if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { + // We are not running in Task, so we need to kickstart the microtask queue. + nativeScheduleMicroTask(drainMicroTaskQueue); + } + task && _microTaskQueue.push(task); + } + function drainMicroTaskQueue() { + if (!_isDrainingMicrotaskQueue) { + _isDrainingMicrotaskQueue = true; + while (_microTaskQueue.length) { + const queue = _microTaskQueue; + _microTaskQueue = []; + for (let i = 0; i < queue.length; i++) { + const task = queue[i]; + try { + task.zone.runTask(task, null, null); + } catch (error) { + _api.onUnhandledError(error); + } + } + } + _api.microtaskDrainDone(); + _isDrainingMicrotaskQueue = false; + } + } + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + /// BOOTSTRAP + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + const NO_ZONE = { + name: 'NO ZONE' + }; + const notScheduled = 'notScheduled', + scheduling = 'scheduling', + scheduled = 'scheduled', + running = 'running', + canceling = 'canceling', + unknown = 'unknown'; + const microTask = 'microTask', + macroTask = 'macroTask', + eventTask = 'eventTask'; + const patches = {}; + const _api = { + symbol: __symbol__, + currentZoneFrame: () => _currentZoneFrame, + onUnhandledError: noop, + microtaskDrainDone: noop, + scheduleMicroTask: scheduleMicroTask, + showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')], + patchEventTarget: () => [], + patchOnProperties: noop, + patchMethod: () => noop, + bindArguments: () => [], + patchThen: () => noop, + patchMacroTask: () => noop, + patchEventPrototype: () => noop, + isIEOrEdge: () => false, + getGlobalObjects: () => undefined, + ObjectDefineProperty: () => noop, + ObjectGetOwnPropertyDescriptor: () => undefined, + ObjectCreate: () => undefined, + ArraySlice: () => [], + patchClass: () => noop, + wrapWithCurrentZone: () => noop, + filterProperties: () => [], + attachOriginToPatched: () => noop, + _redefineProperty: () => noop, + patchCallbacks: () => noop, + nativeScheduleMicroTask: nativeScheduleMicroTask + }; + let _currentZoneFrame = { + parent: null, + zone: new Zone(null, null) + }; + let _currentTask = null; + let _numberOfNestedTaskFrames = 0; + function noop() {} + performanceMeasure('Zone', 'Zone'); + return global['Zone'] = Zone; +})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); + +/** + * Suppress closure compiler errors about unknown 'Zone' variable + * @fileoverview + * @suppress {undefinedVars,globalThis,missingRequire} + */ +/// +// issue #989, to reduce bundle size, use short name +/** Object.getOwnPropertyDescriptor */ +const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +/** Object.defineProperty */ +const ObjectDefineProperty = Object.defineProperty; +/** Object.getPrototypeOf */ +const ObjectGetPrototypeOf = Object.getPrototypeOf; +/** Object.create */ +const ObjectCreate = Object.create; +/** Array.prototype.slice */ +const ArraySlice = Array.prototype.slice; +/** addEventListener string const */ +const ADD_EVENT_LISTENER_STR = 'addEventListener'; +/** removeEventListener string const */ +const REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; +/** zoneSymbol addEventListener */ +const ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR); +/** zoneSymbol removeEventListener */ +const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR); +/** true string const */ +const TRUE_STR = 'true'; +/** false string const */ +const FALSE_STR = 'false'; +/** Zone symbol prefix string const. */ +const ZONE_SYMBOL_PREFIX = Zone.__symbol__(''); +function wrapWithCurrentZone(callback, source) { + return Zone.current.wrap(callback, source); +} +function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { + return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); +} +const zoneSymbol = Zone.__symbol__; +const isWindowExists = typeof window !== 'undefined'; +const internalWindow = isWindowExists ? window : undefined; +const _global = isWindowExists && internalWindow || typeof self === 'object' && self || global; +const REMOVE_ATTRIBUTE = 'removeAttribute'; +function bindArguments(args, source) { + for (let i = args.length - 1; i >= 0; i--) { + if (typeof args[i] === 'function') { + args[i] = wrapWithCurrentZone(args[i], source + '_' + i); + } + } + return args; +} +function patchPrototype(prototype, fnNames) { + const source = prototype.constructor['name']; + for (let i = 0; i < fnNames.length; i++) { + const name = fnNames[i]; + const delegate = prototype[name]; + if (delegate) { + const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name); + if (!isPropertyWritable(prototypeDesc)) { + continue; + } + prototype[name] = (delegate => { + const patched = function () { + return delegate.apply(this, bindArguments(arguments, source + '.' + name)); + }; + attachOriginToPatched(patched, delegate); + return patched; + })(delegate); + } + } +} +function isPropertyWritable(propertyDesc) { + if (!propertyDesc) { + return true; + } + if (propertyDesc.writable === false) { + return false; + } + return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); +} +const isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; +// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify +// this code. +const isNode = !('nw' in _global) && typeof _global.process !== 'undefined' && {}.toString.call(_global.process) === '[object process]'; +const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); +// we are in electron of nw, so we are both browser and nodejs +// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify +// this code. +const isMix = typeof _global.process !== 'undefined' && {}.toString.call(_global.process) === '[object process]' && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); +const zoneSymbolEventNames$1 = {}; +const wrapFn = function (event) { + // https://github.com/angular/zone.js/issues/911, in IE, sometimes + // event will be undefined, so we need to use window.event + event = event || _global.event; + if (!event) { + return; + } + let eventNameSymbol = zoneSymbolEventNames$1[event.type]; + if (!eventNameSymbol) { + eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type); + } + const target = this || event.target || _global; + const listener = target[eventNameSymbol]; + let result; + if (isBrowser && target === internalWindow && event.type === 'error') { + // window.onerror have different signature + // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror + // and onerror callback will prevent default when callback return true + const errorEvent = event; + result = listener && listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); + if (result === true) { + event.preventDefault(); + } + } else { + result = listener && listener.apply(this, arguments); + if (result != undefined && !result) { + event.preventDefault(); + } + } + return result; +}; +function patchProperty(obj, prop, prototype) { + let desc = ObjectGetOwnPropertyDescriptor(obj, prop); + if (!desc && prototype) { + // when patch window object, use prototype to check prop exist or not + const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); + if (prototypeDesc) { + desc = { + enumerable: true, + configurable: true + }; + } + } + // if the descriptor not exists or is not configurable + // just return + if (!desc || !desc.configurable) { + return; + } + const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); + if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { + return; + } + // A property descriptor cannot have getter/setter and be writable + // deleting the writable and value properties avoids this error: + // + // TypeError: property descriptors must not specify a value or be writable when a + // getter or setter has been specified + delete desc.writable; + delete desc.value; + const originalDescGet = desc.get; + const originalDescSet = desc.set; + // slice(2) cuz 'onclick' -> 'click', etc + const eventName = prop.slice(2); + let eventNameSymbol = zoneSymbolEventNames$1[eventName]; + if (!eventNameSymbol) { + eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName); + } + desc.set = function (newValue) { + // in some of windows's onproperty callback, this is undefined + // so we need to check it + let target = this; + if (!target && obj === _global) { + target = _global; + } + if (!target) { + return; + } + const previousValue = target[eventNameSymbol]; + if (typeof previousValue === 'function') { + target.removeEventListener(eventName, wrapFn); + } + // issue #978, when onload handler was added before loading zone.js + // we should remove it with originalDescSet + originalDescSet && originalDescSet.call(target, null); + target[eventNameSymbol] = newValue; + if (typeof newValue === 'function') { + target.addEventListener(eventName, wrapFn, false); + } + }; + // The getter would return undefined for unassigned properties but the default value of an + // unassigned property is null + desc.get = function () { + // in some of windows's onproperty callback, this is undefined + // so we need to check it + let target = this; + if (!target && obj === _global) { + target = _global; + } + if (!target) { + return null; + } + const listener = target[eventNameSymbol]; + if (listener) { + return listener; + } else if (originalDescGet) { + // result will be null when use inline event attribute, + // such as + // because the onclick function is internal raw uncompiled handler + // the onclick will be evaluated when first time event was triggered or + // the property is accessed, https://github.com/angular/zone.js/issues/525 + // so we should use original native get to retrieve the handler + let value = originalDescGet.call(this); + if (value) { + desc.set.call(this, value); + if (typeof target[REMOVE_ATTRIBUTE] === 'function') { + target.removeAttribute(prop); + } + return value; + } + } + return null; + }; + ObjectDefineProperty(obj, prop, desc); + obj[onPropPatchedSymbol] = true; +} +function patchOnProperties(obj, properties, prototype) { + if (properties) { + for (let i = 0; i < properties.length; i++) { + patchProperty(obj, 'on' + properties[i], prototype); + } + } else { + const onProperties = []; + for (const prop in obj) { + if (prop.slice(0, 2) == 'on') { + onProperties.push(prop); + } + } + for (let j = 0; j < onProperties.length; j++) { + patchProperty(obj, onProperties[j], prototype); + } + } +} +const originalInstanceKey = zoneSymbol('originalInstance'); +// wrap some native API on `window` +function patchClass(className) { + const OriginalClass = _global[className]; + if (!OriginalClass) return; + // keep original class in global + _global[zoneSymbol(className)] = OriginalClass; + _global[className] = function () { + const a = bindArguments(arguments, className); + switch (a.length) { + case 0: + this[originalInstanceKey] = new OriginalClass(); + break; + case 1: + this[originalInstanceKey] = new OriginalClass(a[0]); + break; + case 2: + this[originalInstanceKey] = new OriginalClass(a[0], a[1]); + break; + case 3: + this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); + break; + case 4: + this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); + break; + default: + throw new Error('Arg list too long.'); + } + }; + // attach original delegate to patched function + attachOriginToPatched(_global[className], OriginalClass); + const instance = new OriginalClass(function () {}); + let prop; + for (prop in instance) { + // https://bugs.webkit.org/show_bug.cgi?id=44721 + if (className === 'XMLHttpRequest' && prop === 'responseBlob') continue; + (function (prop) { + if (typeof instance[prop] === 'function') { + _global[className].prototype[prop] = function () { + return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); + }; + } else { + ObjectDefineProperty(_global[className].prototype, prop, { + set: function (fn) { + if (typeof fn === 'function') { + this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); + // keep callback in wrapped function so we can + // use it in Function.prototype.toString to return + // the native one. + attachOriginToPatched(this[originalInstanceKey][prop], fn); + } else { + this[originalInstanceKey][prop] = fn; + } + }, + get: function () { + return this[originalInstanceKey][prop]; + } + }); + } + })(prop); + } + for (prop in OriginalClass) { + if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { + _global[className][prop] = OriginalClass[prop]; + } + } +} +function patchMethod(target, name, patchFn) { + let proto = target; + while (proto && !proto.hasOwnProperty(name)) { + proto = ObjectGetPrototypeOf(proto); + } + if (!proto && target[name]) { + // somehow we did not find it, but we can see it. This happens on IE for Window properties. + proto = target; + } + const delegateName = zoneSymbol(name); + let delegate = null; + if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) { + delegate = proto[delegateName] = proto[name]; + // check whether proto[name] is writable + // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob + const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); + if (isPropertyWritable(desc)) { + const patchDelegate = patchFn(delegate, delegateName, name); + proto[name] = function () { + return patchDelegate(this, arguments); + }; + attachOriginToPatched(proto[name], delegate); + } + } + return delegate; +} +// TODO: @JiaLiPassion, support cancel task later if necessary +function patchMacroTask(obj, funcName, metaCreator) { + let setNative = null; + function scheduleTask(task) { + const data = task.data; + data.args[data.cbIdx] = function () { + task.invoke.apply(this, arguments); + }; + setNative.apply(data.target, data.args); + return task; + } + setNative = patchMethod(obj, funcName, delegate => function (self, args) { + const meta = metaCreator(self, args); + if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { + return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); + } else { + // cause an error by calling it directly. + return delegate.apply(self, args); + } + }); +} +function attachOriginToPatched(patched, original) { + patched[zoneSymbol('OriginalDelegate')] = original; +} +let isDetectedIEOrEdge = false; +let ieOrEdge = false; +function isIE() { + try { + const ua = internalWindow.navigator.userAgent; + if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { + return true; + } + } catch (error) {} + return false; +} +function isIEOrEdge() { + if (isDetectedIEOrEdge) { + return ieOrEdge; + } + isDetectedIEOrEdge = true; + try { + const ua = internalWindow.navigator.userAgent; + if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { + ieOrEdge = true; + } + } catch (error) {} + return ieOrEdge; +} +Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => { + const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + const ObjectDefineProperty = Object.defineProperty; + function readableObjectToString(obj) { + if (obj && obj.toString === Object.prototype.toString) { + const className = obj.constructor && obj.constructor.name; + return (className ? className : '') + ': ' + JSON.stringify(obj); + } + return obj ? obj.toString() : Object.prototype.toString.call(obj); + } + const __symbol__ = api.symbol; + const _uncaughtPromiseErrors = []; + const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true; + const symbolPromise = __symbol__('Promise'); + const symbolThen = __symbol__('then'); + const creationTrace = '__creationTrace__'; + api.onUnhandledError = e => { + if (api.showUncaughtError()) { + const rejection = e && e.rejection; + if (rejection) { + console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); + } else { + console.error(e); + } + } + }; + api.microtaskDrainDone = () => { + while (_uncaughtPromiseErrors.length) { + const uncaughtPromiseError = _uncaughtPromiseErrors.shift(); + try { + uncaughtPromiseError.zone.runGuarded(() => { + if (uncaughtPromiseError.throwOriginal) { + throw uncaughtPromiseError.rejection; + } + throw uncaughtPromiseError; + }); + } catch (error) { + handleUnhandledRejection(error); + } + } + }; + const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); + function handleUnhandledRejection(e) { + api.onUnhandledError(e); + try { + const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; + if (typeof handler === 'function') { + handler.call(this, e); + } + } catch (err) {} + } + function isThenable(value) { + return value && value.then; + } + function forwardResolution(value) { + return value; + } + function forwardRejection(rejection) { + return ZoneAwarePromise.reject(rejection); + } + const symbolState = __symbol__('state'); + const symbolValue = __symbol__('value'); + const symbolFinally = __symbol__('finally'); + const symbolParentPromiseValue = __symbol__('parentPromiseValue'); + const symbolParentPromiseState = __symbol__('parentPromiseState'); + const source = 'Promise.then'; + const UNRESOLVED = null; + const RESOLVED = true; + const REJECTED = false; + const REJECTED_NO_CATCH = 0; + function makeResolver(promise, state) { + return v => { + try { + resolvePromise(promise, state, v); + } catch (err) { + resolvePromise(promise, false, err); + } + // Do not return value or you will break the Promise spec. + }; + } + + const once = function () { + let wasCalled = false; + return function wrapper(wrappedFunction) { + return function () { + if (wasCalled) { + return; + } + wasCalled = true; + wrappedFunction.apply(null, arguments); + }; + }; + }; + const TYPE_ERROR = 'Promise resolved with itself'; + const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); + // Promise Resolution + function resolvePromise(promise, state, value) { + const onceWrapper = once(); + if (promise === value) { + throw new TypeError(TYPE_ERROR); + } + if (promise[symbolState] === UNRESOLVED) { + // should only get value.then once based on promise spec. + let then = null; + try { + if (typeof value === 'object' || typeof value === 'function') { + then = value && value.then; + } + } catch (err) { + onceWrapper(() => { + resolvePromise(promise, false, err); + })(); + return promise; + } + // if (value instanceof ZoneAwarePromise) { + if (state !== REJECTED && value instanceof ZoneAwarePromise && value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && value[symbolState] !== UNRESOLVED) { + clearRejectedNoCatch(value); + resolvePromise(promise, value[symbolState], value[symbolValue]); + } else if (state !== REJECTED && typeof then === 'function') { + try { + then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); + } catch (err) { + onceWrapper(() => { + resolvePromise(promise, false, err); + })(); + } + } else { + promise[symbolState] = state; + const queue = promise[symbolValue]; + promise[symbolValue] = value; + if (promise[symbolFinally] === symbolFinally) { + // the promise is generated by Promise.prototype.finally + if (state === RESOLVED) { + // the state is resolved, should ignore the value + // and use parent promise value + promise[symbolState] = promise[symbolParentPromiseState]; + promise[symbolValue] = promise[symbolParentPromiseValue]; + } + } + // record task information in value when error occurs, so we can + // do some additional work such as render longStackTrace + if (state === REJECTED && value instanceof Error) { + // check if longStackTraceZone is here + const trace = Zone.currentTask && Zone.currentTask.data && Zone.currentTask.data[creationTrace]; + if (trace) { + // only keep the long stack trace into error when in longStackTraceZone + ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { + configurable: true, + enumerable: false, + writable: true, + value: trace + }); + } + } + for (let i = 0; i < queue.length;) { + scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); + } + if (queue.length == 0 && state == REJECTED) { + promise[symbolState] = REJECTED_NO_CATCH; + let uncaughtPromiseError = value; + try { + // Here we throws a new Error to print more readable error log + // and if the value is not an error, zone.js builds an `Error` + // Object here to attach the stack information. + throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + (value && value.stack ? '\n' + value.stack : '')); + } catch (err) { + uncaughtPromiseError = err; + } + if (isDisableWrappingUncaughtPromiseRejection) { + // If disable wrapping uncaught promise reject + // use the value instead of wrapping it. + uncaughtPromiseError.throwOriginal = true; + } + uncaughtPromiseError.rejection = value; + uncaughtPromiseError.promise = promise; + uncaughtPromiseError.zone = Zone.current; + uncaughtPromiseError.task = Zone.currentTask; + _uncaughtPromiseErrors.push(uncaughtPromiseError); + api.scheduleMicroTask(); // to make sure that it is running + } + } + } + // Resolving an already resolved promise is a noop. + return promise; + } + const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); + function clearRejectedNoCatch(promise) { + if (promise[symbolState] === REJECTED_NO_CATCH) { + // if the promise is rejected no catch status + // and queue.length > 0, means there is a error handler + // here to handle the rejected promise, we should trigger + // windows.rejectionhandled eventHandler or nodejs rejectionHandled + // eventHandler + try { + const handler = Zone[REJECTION_HANDLED_HANDLER]; + if (handler && typeof handler === 'function') { + handler.call(this, { + rejection: promise[symbolValue], + promise: promise + }); + } + } catch (err) {} + promise[symbolState] = REJECTED; + for (let i = 0; i < _uncaughtPromiseErrors.length; i++) { + if (promise === _uncaughtPromiseErrors[i].promise) { + _uncaughtPromiseErrors.splice(i, 1); + } + } + } + } + function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { + clearRejectedNoCatch(promise); + const promiseState = promise[symbolState]; + const delegate = promiseState ? typeof onFulfilled === 'function' ? onFulfilled : forwardResolution : typeof onRejected === 'function' ? onRejected : forwardRejection; + zone.scheduleMicroTask(source, () => { + try { + const parentPromiseValue = promise[symbolValue]; + const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally]; + if (isFinallyPromise) { + // if the promise is generated from finally call, keep parent promise's state and value + chainPromise[symbolParentPromiseValue] = parentPromiseValue; + chainPromise[symbolParentPromiseState] = promiseState; + } + // should not pass value to finally callback + const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]); + resolvePromise(chainPromise, true, value); + } catch (error) { + // if error occurs, should always return this error + resolvePromise(chainPromise, false, error); + } + }, chainPromise); + } + const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; + const noop = function () {}; + const AggregateError = global.AggregateError; + class ZoneAwarePromise { + static toString() { + return ZONE_AWARE_PROMISE_TO_STRING; + } + static resolve(value) { + return resolvePromise(new this(null), RESOLVED, value); + } + static reject(error) { + return resolvePromise(new this(null), REJECTED, error); + } + static any(values) { + if (!values || typeof values[Symbol.iterator] !== 'function') { + return Promise.reject(new AggregateError([], 'All promises were rejected')); + } + const promises = []; + let count = 0; + try { + for (let v of values) { + count++; + promises.push(ZoneAwarePromise.resolve(v)); + } + } catch (err) { + return Promise.reject(new AggregateError([], 'All promises were rejected')); + } + if (count === 0) { + return Promise.reject(new AggregateError([], 'All promises were rejected')); + } + let finished = false; + const errors = []; + return new ZoneAwarePromise((resolve, reject) => { + for (let i = 0; i < promises.length; i++) { + promises[i].then(v => { + if (finished) { + return; + } + finished = true; + resolve(v); + }, err => { + errors.push(err); + count--; + if (count === 0) { + finished = true; + reject(new AggregateError(errors, 'All promises were rejected')); + } + }); + } + }); + } + static race(values) { + let resolve; + let reject; + let promise = new this((res, rej) => { + resolve = res; + reject = rej; + }); + function onResolve(value) { + resolve(value); + } + function onReject(error) { + reject(error); + } + for (let value of values) { + if (!isThenable(value)) { + value = this.resolve(value); + } + value.then(onResolve, onReject); + } + return promise; + } + static all(values) { + return ZoneAwarePromise.allWithCallback(values); + } + static allSettled(values) { + const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise; + return P.allWithCallback(values, { + thenCallback: value => ({ + status: 'fulfilled', + value + }), + errorCallback: err => ({ + status: 'rejected', + reason: err + }) + }); + } + static allWithCallback(values, callback) { + let resolve; + let reject; + let promise = new this((res, rej) => { + resolve = res; + reject = rej; + }); + // Start at 2 to prevent prematurely resolving if .then is called immediately. + let unresolvedCount = 2; + let valueIndex = 0; + const resolvedValues = []; + for (let value of values) { + if (!isThenable(value)) { + value = this.resolve(value); + } + const curValueIndex = valueIndex; + try { + value.then(value => { + resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value; + unresolvedCount--; + if (unresolvedCount === 0) { + resolve(resolvedValues); + } + }, err => { + if (!callback) { + reject(err); + } else { + resolvedValues[curValueIndex] = callback.errorCallback(err); + unresolvedCount--; + if (unresolvedCount === 0) { + resolve(resolvedValues); + } + } + }); + } catch (thenErr) { + reject(thenErr); + } + unresolvedCount++; + valueIndex++; + } + // Make the unresolvedCount zero-based again. + unresolvedCount -= 2; + if (unresolvedCount === 0) { + resolve(resolvedValues); + } + return promise; + } + constructor(executor) { + const promise = this; + if (!(promise instanceof ZoneAwarePromise)) { + throw new Error('Must be an instanceof Promise.'); + } + promise[symbolState] = UNRESOLVED; + promise[symbolValue] = []; // queue; + try { + const onceWrapper = once(); + executor && executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED))); + } catch (error) { + resolvePromise(promise, false, error); + } + } + get [Symbol.toStringTag]() { + return 'Promise'; + } + get [Symbol.species]() { + return ZoneAwarePromise; + } + then(onFulfilled, onRejected) { + // We must read `Symbol.species` safely because `this` may be anything. For instance, `this` + // may be an object without a prototype (created through `Object.create(null)`); thus + // `this.constructor` will be undefined. One of the use cases is SystemJS creating + // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty + // object and copies promise properties into that object (within the `getOrCreateLoad` + // function). The zone.js then checks if the resolved value has the `then` method and invokes + // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read + // properties of undefined (reading 'Symbol(Symbol.species)')`. + let C = this.constructor?.[Symbol.species]; + if (!C || typeof C !== 'function') { + C = this.constructor || ZoneAwarePromise; + } + const chainPromise = new C(noop); + const zone = Zone.current; + if (this[symbolState] == UNRESOLVED) { + this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); + } else { + scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); + } + return chainPromise; + } + catch(onRejected) { + return this.then(null, onRejected); + } + finally(onFinally) { + // See comment on the call to `then` about why thee `Symbol.species` is safely accessed. + let C = this.constructor?.[Symbol.species]; + if (!C || typeof C !== 'function') { + C = ZoneAwarePromise; + } + const chainPromise = new C(noop); + chainPromise[symbolFinally] = symbolFinally; + const zone = Zone.current; + if (this[symbolState] == UNRESOLVED) { + this[symbolValue].push(zone, chainPromise, onFinally, onFinally); + } else { + scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); + } + return chainPromise; + } + } + // Protect against aggressive optimizers dropping seemingly unused properties. + // E.g. Closure Compiler in advanced mode. + ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; + ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; + ZoneAwarePromise['race'] = ZoneAwarePromise.race; + ZoneAwarePromise['all'] = ZoneAwarePromise.all; + const NativePromise = global[symbolPromise] = global['Promise']; + global['Promise'] = ZoneAwarePromise; + const symbolThenPatched = __symbol__('thenPatched'); + function patchThen(Ctor) { + const proto = Ctor.prototype; + const prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); + if (prop && (prop.writable === false || !prop.configurable)) { + // check Ctor.prototype.then propertyDescriptor is writable or not + // in meteor env, writable is false, we should ignore such case + return; + } + const originalThen = proto.then; + // Keep a reference to the original method. + proto[symbolThen] = originalThen; + Ctor.prototype.then = function (onResolve, onReject) { + const wrapped = new ZoneAwarePromise((resolve, reject) => { + originalThen.call(this, resolve, reject); + }); + return wrapped.then(onResolve, onReject); + }; + Ctor[symbolThenPatched] = true; + } + api.patchThen = patchThen; + function zoneify(fn) { + return function (self, args) { + let resultPromise = fn.apply(self, args); + if (resultPromise instanceof ZoneAwarePromise) { + return resultPromise; + } + let ctor = resultPromise.constructor; + if (!ctor[symbolThenPatched]) { + patchThen(ctor); + } + return resultPromise; + }; + } + if (NativePromise) { + patchThen(NativePromise); + patchMethod(global, 'fetch', delegate => zoneify(delegate)); + } + // This is not part of public API, but it is useful for tests, so we expose it. + Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; + return ZoneAwarePromise; +}); + +// override Function.prototype.toString to make zone.js patched function +// look like native function +Zone.__load_patch('toString', global => { + // patch Func.prototype.toString to let them look like native + const originalFunctionToString = Function.prototype.toString; + const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); + const PROMISE_SYMBOL = zoneSymbol('Promise'); + const ERROR_SYMBOL = zoneSymbol('Error'); + const newFunctionToString = function toString() { + if (typeof this === 'function') { + const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; + if (originalDelegate) { + if (typeof originalDelegate === 'function') { + return originalFunctionToString.call(originalDelegate); + } else { + return Object.prototype.toString.call(originalDelegate); + } + } + if (this === Promise) { + const nativePromise = global[PROMISE_SYMBOL]; + if (nativePromise) { + return originalFunctionToString.call(nativePromise); + } + } + if (this === Error) { + const nativeError = global[ERROR_SYMBOL]; + if (nativeError) { + return originalFunctionToString.call(nativeError); + } + } + } + return originalFunctionToString.call(this); + }; + newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; + Function.prototype.toString = newFunctionToString; + // patch Object.prototype.toString to let them look like native + const originalObjectToString = Object.prototype.toString; + const PROMISE_OBJECT_TO_STRING = '[object Promise]'; + Object.prototype.toString = function () { + if (typeof Promise === 'function' && this instanceof Promise) { + return PROMISE_OBJECT_TO_STRING; + } + return originalObjectToString.call(this); + }; +}); + +/** + * @fileoverview + * @suppress {missingRequire} + */ +let passiveSupported = false; +if (typeof window !== 'undefined') { + try { + const options = Object.defineProperty({}, 'passive', { + get: function () { + passiveSupported = true; + } + }); + // Note: We pass the `options` object as the event handler too. This is not compatible with the + // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler + // without an actual handler. + window.addEventListener('test', options, options); + window.removeEventListener('test', options, options); + } catch (err) { + passiveSupported = false; + } +} +// an identifier to tell ZoneTask do not create a new invoke closure +const OPTIMIZED_ZONE_EVENT_TASK_DATA = { + useG: true +}; +const zoneSymbolEventNames = {}; +const globalSources = {}; +const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); +const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped'); +function prepareEventNames(eventName, eventNameToString) { + const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; + const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; + const symbol = ZONE_SYMBOL_PREFIX + falseEventName; + const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; + zoneSymbolEventNames[eventName] = {}; + zoneSymbolEventNames[eventName][FALSE_STR] = symbol; + zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; +} +function patchEventTarget(_global, api, apis, patchOptions) { + const ADD_EVENT_LISTENER = patchOptions && patchOptions.add || ADD_EVENT_LISTENER_STR; + const REMOVE_EVENT_LISTENER = patchOptions && patchOptions.rm || REMOVE_EVENT_LISTENER_STR; + const LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.listeners || 'eventListeners'; + const REMOVE_ALL_LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.rmAll || 'removeAllListeners'; + const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); + const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; + const PREPEND_EVENT_LISTENER = 'prependListener'; + const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; + const invokeTask = function (task, target, event) { + // for better performance, check isRemoved which is set + // by removeEventListener + if (task.isRemoved) { + return; + } + const delegate = task.callback; + if (typeof delegate === 'object' && delegate.handleEvent) { + // create the bind version of handleEvent when invoke + task.callback = event => delegate.handleEvent(event); + task.originalDelegate = delegate; + } + // invoke static task.invoke + // need to try/catch error here, otherwise, the error in one event listener + // will break the executions of the other event listeners. Also error will + // not remove the event listener when `once` options is true. + let error; + try { + task.invoke(task, target, [event]); + } catch (err) { + error = err; + } + const options = task.options; + if (options && typeof options === 'object' && options.once) { + // if options.once is true, after invoke once remove listener here + // only browser need to do this, nodejs eventEmitter will cal removeListener + // inside EventEmitter.once + const delegate = task.originalDelegate ? task.originalDelegate : task.callback; + target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options); + } + return error; + }; + function globalCallback(context, event, isCapture) { + // https://github.com/angular/zone.js/issues/911, in IE, sometimes + // event will be undefined, so we need to use window.event + event = event || _global.event; + if (!event) { + return; + } + // event.target is needed for Samsung TV and SourceBuffer + // || global is needed https://github.com/angular/zone.js/issues/190 + const target = context || event.target || _global; + const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]]; + if (tasks) { + const errors = []; + // invoke all tasks which attached to current target with given event.type and capture = false + // for performance concern, if task.length === 1, just invoke + if (tasks.length === 1) { + const err = invokeTask(tasks[0], target, event); + err && errors.push(err); + } else { + // https://github.com/angular/zone.js/issues/836 + // copy the tasks array before invoke, to avoid + // the callback will remove itself or other listener + const copyTasks = tasks.slice(); + for (let i = 0; i < copyTasks.length; i++) { + if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { + break; + } + const err = invokeTask(copyTasks[i], target, event); + err && errors.push(err); + } + } + // Since there is only one error, we don't need to schedule microTask + // to throw the error. + if (errors.length === 1) { + throw errors[0]; + } else { + for (let i = 0; i < errors.length; i++) { + const err = errors[i]; + api.nativeScheduleMicroTask(() => { + throw err; + }); + } + } + } + } + // global shared zoneAwareCallback to handle all event callback with capture = false + const globalZoneAwareCallback = function (event) { + return globalCallback(this, event, false); + }; + // global shared zoneAwareCallback to handle all event callback with capture = true + const globalZoneAwareCaptureCallback = function (event) { + return globalCallback(this, event, true); + }; + function patchEventTargetMethods(obj, patchOptions) { + if (!obj) { + return false; + } + let useGlobalCallback = true; + if (patchOptions && patchOptions.useG !== undefined) { + useGlobalCallback = patchOptions.useG; + } + const validateHandler = patchOptions && patchOptions.vh; + let checkDuplicate = true; + if (patchOptions && patchOptions.chkDup !== undefined) { + checkDuplicate = patchOptions.chkDup; + } + let returnTarget = false; + if (patchOptions && patchOptions.rt !== undefined) { + returnTarget = patchOptions.rt; + } + let proto = obj; + while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { + proto = ObjectGetPrototypeOf(proto); + } + if (!proto && obj[ADD_EVENT_LISTENER]) { + // somehow we did not find it, but we can see it. This happens on IE for Window properties. + proto = obj; + } + if (!proto) { + return false; + } + if (proto[zoneSymbolAddEventListener]) { + return false; + } + const eventNameToString = patchOptions && patchOptions.eventNameToString; + // a shared global taskData to pass data for scheduleEventTask + // so we do not need to create a new object just for pass some data + const taskData = {}; + const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; + const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = proto[REMOVE_EVENT_LISTENER]; + const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = proto[LISTENERS_EVENT_LISTENER]; + const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; + let nativePrependEventListener; + if (patchOptions && patchOptions.prepend) { + nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = proto[patchOptions.prepend]; + } + /** + * This util function will build an option object with passive option + * to handle all possible input from the user. + */ + function buildEventListenerOptions(options, passive) { + if (!passiveSupported && typeof options === 'object' && options) { + // doesn't support passive but user want to pass an object as options. + // this will not work on some old browser, so we just pass a boolean + // as useCapture parameter + return !!options.capture; + } + if (!passiveSupported || !passive) { + return options; + } + if (typeof options === 'boolean') { + return { + capture: options, + passive: true + }; + } + if (!options) { + return { + passive: true + }; + } + if (typeof options === 'object' && options.passive !== false) { + return { + ...options, + passive: true + }; + } + return options; + } + const customScheduleGlobal = function (task) { + // if there is already a task for the eventName + capture, + // just return, because we use the shared globalZoneAwareCallback here. + if (taskData.isExisting) { + return; + } + return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); + }; + const customCancelGlobal = function (task) { + // if task is not marked as isRemoved, this call is directly + // from Zone.prototype.cancelTask, we should remove the task + // from tasksList of target first + if (!task.isRemoved) { + const symbolEventNames = zoneSymbolEventNames[task.eventName]; + let symbolEventName; + if (symbolEventNames) { + symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; + } + const existingTasks = symbolEventName && task.target[symbolEventName]; + if (existingTasks) { + for (let i = 0; i < existingTasks.length; i++) { + const existingTask = existingTasks[i]; + if (existingTask === task) { + existingTasks.splice(i, 1); + // set isRemoved to data for faster invokeTask check + task.isRemoved = true; + if (existingTasks.length === 0) { + // all tasks for the eventName + capture have gone, + // remove globalZoneAwareCallback and remove the task cache from target + task.allRemoved = true; + task.target[symbolEventName] = null; + } + break; + } + } + } + } + // if all tasks for the eventName + capture have gone, + // we will really remove the global event callback, + // if not, return + if (!task.allRemoved) { + return; + } + return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); + }; + const customScheduleNonGlobal = function (task) { + return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); + }; + const customSchedulePrepend = function (task) { + return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); + }; + const customCancelNonGlobal = function (task) { + return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); + }; + const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; + const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; + const compareTaskCallbackVsDelegate = function (task, delegate) { + const typeOfDelegate = typeof delegate; + return typeOfDelegate === 'function' && task.callback === delegate || typeOfDelegate === 'object' && task.originalDelegate === delegate; + }; + const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate; + const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')]; + const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')]; + const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) { + return function () { + const target = this || _global; + let eventName = arguments[0]; + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + let delegate = arguments[1]; + if (!delegate) { + return nativeListener.apply(this, arguments); + } + if (isNode && eventName === 'uncaughtException') { + // don't patch uncaughtException of nodejs to prevent endless loop + return nativeListener.apply(this, arguments); + } + // don't create the bind delegate function for handleEvent + // case here to improve addEventListener performance + // we will create the bind delegate when invoke + let isHandleEvent = false; + if (typeof delegate !== 'function') { + if (!delegate.handleEvent) { + return nativeListener.apply(this, arguments); + } + isHandleEvent = true; + } + if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { + return; + } + const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1; + const options = buildEventListenerOptions(arguments[2], passive); + if (unpatchedEvents) { + // check unpatched list + for (let i = 0; i < unpatchedEvents.length; i++) { + if (eventName === unpatchedEvents[i]) { + if (passive) { + return nativeListener.call(target, eventName, delegate, options); + } else { + return nativeListener.apply(this, arguments); + } + } + } + } + const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; + const once = options && typeof options === 'object' ? options.once : false; + const zone = Zone.current; + let symbolEventNames = zoneSymbolEventNames[eventName]; + if (!symbolEventNames) { + prepareEventNames(eventName, eventNameToString); + symbolEventNames = zoneSymbolEventNames[eventName]; + } + const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; + let existingTasks = target[symbolEventName]; + let isExisting = false; + if (existingTasks) { + // already have task registered + isExisting = true; + if (checkDuplicate) { + for (let i = 0; i < existingTasks.length; i++) { + if (compare(existingTasks[i], delegate)) { + // same callback, same capture, same event name, just return + return; + } + } + } + } else { + existingTasks = target[symbolEventName] = []; + } + let source; + const constructorName = target.constructor['name']; + const targetSource = globalSources[constructorName]; + if (targetSource) { + source = targetSource[eventName]; + } + if (!source) { + source = constructorName + addSource + (eventNameToString ? eventNameToString(eventName) : eventName); + } + // do not create a new object as task.data to pass those things + // just use the global shared one + taskData.options = options; + if (once) { + // if addEventListener with once options, we don't pass it to + // native addEventListener, instead we keep the once setting + // and handle ourselves. + taskData.options.once = false; + } + taskData.target = target; + taskData.capture = capture; + taskData.eventName = eventName; + taskData.isExisting = isExisting; + const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; + // keep taskData into data to allow onScheduleEventTask to access the task information + if (data) { + data.taskData = taskData; + } + const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); + // should clear taskData.target to avoid memory leak + // issue, https://github.com/angular/angular/issues/20442 + taskData.target = null; + // need to clear up taskData because it is a global object + if (data) { + data.taskData = null; + } + // have to save those information to task in case + // application may call task.zone.cancelTask() directly + if (once) { + options.once = true; + } + if (!(!passiveSupported && typeof task.options === 'boolean')) { + // if not support passive, and we pass an option object + // to addEventListener, we should save the options to task + task.options = options; + } + task.target = target; + task.capture = capture; + task.eventName = eventName; + if (isHandleEvent) { + // save original delegate for compare to check duplicate + task.originalDelegate = delegate; + } + if (!prepend) { + existingTasks.push(task); + } else { + existingTasks.unshift(task); + } + if (returnTarget) { + return target; + } + }; + }; + proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); + if (nativePrependEventListener) { + proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); + } + proto[REMOVE_EVENT_LISTENER] = function () { + const target = this || _global; + let eventName = arguments[0]; + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + const options = arguments[2]; + const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; + const delegate = arguments[1]; + if (!delegate) { + return nativeRemoveEventListener.apply(this, arguments); + } + if (validateHandler && !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { + return; + } + const symbolEventNames = zoneSymbolEventNames[eventName]; + let symbolEventName; + if (symbolEventNames) { + symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; + } + const existingTasks = symbolEventName && target[symbolEventName]; + if (existingTasks) { + for (let i = 0; i < existingTasks.length; i++) { + const existingTask = existingTasks[i]; + if (compare(existingTask, delegate)) { + existingTasks.splice(i, 1); + // set isRemoved to data for faster invokeTask check + existingTask.isRemoved = true; + if (existingTasks.length === 0) { + // all tasks for the eventName + capture have gone, + // remove globalZoneAwareCallback and remove the task cache from target + existingTask.allRemoved = true; + target[symbolEventName] = null; + // in the target, we have an event listener which is added by on_property + // such as target.onclick = function() {}, so we need to clear this internal + // property too if all delegates all removed + if (typeof eventName === 'string') { + const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName; + target[onPropertySymbol] = null; + } + } + existingTask.zone.cancelTask(existingTask); + if (returnTarget) { + return target; + } + return; + } + } + } + // issue 930, didn't find the event name or callback + // from zone kept existingTasks, the callback maybe + // added outside of zone, we need to call native removeEventListener + // to try to remove it. + return nativeRemoveEventListener.apply(this, arguments); + }; + proto[LISTENERS_EVENT_LISTENER] = function () { + const target = this || _global; + let eventName = arguments[0]; + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + const listeners = []; + const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); + for (let i = 0; i < tasks.length; i++) { + const task = tasks[i]; + let delegate = task.originalDelegate ? task.originalDelegate : task.callback; + listeners.push(delegate); + } + return listeners; + }; + proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { + const target = this || _global; + let eventName = arguments[0]; + if (!eventName) { + const keys = Object.keys(target); + for (let i = 0; i < keys.length; i++) { + const prop = keys[i]; + const match = EVENT_NAME_SYMBOL_REGX.exec(prop); + let evtName = match && match[1]; + // in nodejs EventEmitter, removeListener event is + // used for monitoring the removeListener call, + // so just keep removeListener eventListener until + // all other eventListeners are removed + if (evtName && evtName !== 'removeListener') { + this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); + } + } + // remove removeListener listener finally + this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); + } else { + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + const symbolEventNames = zoneSymbolEventNames[eventName]; + if (symbolEventNames) { + const symbolEventName = symbolEventNames[FALSE_STR]; + const symbolCaptureEventName = symbolEventNames[TRUE_STR]; + const tasks = target[symbolEventName]; + const captureTasks = target[symbolCaptureEventName]; + if (tasks) { + const removeTasks = tasks.slice(); + for (let i = 0; i < removeTasks.length; i++) { + const task = removeTasks[i]; + let delegate = task.originalDelegate ? task.originalDelegate : task.callback; + this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); + } + } + if (captureTasks) { + const removeTasks = captureTasks.slice(); + for (let i = 0; i < removeTasks.length; i++) { + const task = removeTasks[i]; + let delegate = task.originalDelegate ? task.originalDelegate : task.callback; + this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); + } + } + } + } + if (returnTarget) { + return this; + } + }; + // for native toString patch + attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); + attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); + if (nativeRemoveAllListeners) { + attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); + } + if (nativeListeners) { + attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); + } + return true; + } + let results = []; + for (let i = 0; i < apis.length; i++) { + results[i] = patchEventTargetMethods(apis[i], patchOptions); + } + return results; +} +function findEventTasks(target, eventName) { + if (!eventName) { + const foundTasks = []; + for (let prop in target) { + const match = EVENT_NAME_SYMBOL_REGX.exec(prop); + let evtName = match && match[1]; + if (evtName && (!eventName || evtName === eventName)) { + const tasks = target[prop]; + if (tasks) { + for (let i = 0; i < tasks.length; i++) { + foundTasks.push(tasks[i]); + } + } + } + } + return foundTasks; + } + let symbolEventName = zoneSymbolEventNames[eventName]; + if (!symbolEventName) { + prepareEventNames(eventName); + symbolEventName = zoneSymbolEventNames[eventName]; + } + const captureFalseTasks = target[symbolEventName[FALSE_STR]]; + const captureTrueTasks = target[symbolEventName[TRUE_STR]]; + if (!captureFalseTasks) { + return captureTrueTasks ? captureTrueTasks.slice() : []; + } else { + return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) : captureFalseTasks.slice(); + } +} +function patchEventPrototype(global, api) { + const Event = global['Event']; + if (Event && Event.prototype) { + api.patchMethod(Event.prototype, 'stopImmediatePropagation', delegate => function (self, args) { + self[IMMEDIATE_PROPAGATION_SYMBOL] = true; + // we need to call the native stopImmediatePropagation + // in case in some hybrid application, some part of + // application will be controlled by zone, some are not + delegate && delegate.apply(self, args); + }); + } +} +function patchCallbacks(api, target, targetName, method, callbacks) { + const symbol = Zone.__symbol__(method); + if (target[symbol]) { + return; + } + const nativeDelegate = target[symbol] = target[method]; + target[method] = function (name, opts, options) { + if (opts && opts.prototype) { + callbacks.forEach(function (callback) { + const source = `${targetName}.${method}::` + callback; + const prototype = opts.prototype; + // Note: the `patchCallbacks` is used for patching the `document.registerElement` and + // `customElements.define`. We explicitly wrap the patching code into try-catch since + // callbacks may be already patched by other web components frameworks (e.g. LWC), and they + // make those properties non-writable. This means that patching callback will throw an error + // `cannot assign to read-only property`. See this code as an example: + // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186 + // We don't want to stop the application rendering if we couldn't patch some + // callback, e.g. `attributeChangedCallback`. + try { + if (prototype.hasOwnProperty(callback)) { + const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback); + if (descriptor && descriptor.value) { + descriptor.value = api.wrapWithCurrentZone(descriptor.value, source); + api._redefineProperty(opts.prototype, callback, descriptor); + } else if (prototype[callback]) { + prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); + } + } else if (prototype[callback]) { + prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); + } + } catch { + // Note: we leave the catch block empty since there's no way to handle the error related + // to non-writable property. + } + }); + } + return nativeDelegate.call(target, name, opts, options); + }; + api.attachOriginToPatched(target[method], nativeDelegate); +} + +/** + * @fileoverview + * @suppress {globalThis} + */ +function filterProperties(target, onProperties, ignoreProperties) { + if (!ignoreProperties || ignoreProperties.length === 0) { + return onProperties; + } + const tip = ignoreProperties.filter(ip => ip.target === target); + if (!tip || tip.length === 0) { + return onProperties; + } + const targetIgnoreProperties = tip[0].ignoreProperties; + return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1); +} +function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { + // check whether target is available, sometimes target will be undefined + // because different browser or some 3rd party plugin. + if (!target) { + return; + } + const filteredProperties = filterProperties(target, onProperties, ignoreProperties); + patchOnProperties(target, filteredProperties, prototype); +} +/** + * Get all event name properties which the event name startsWith `on` + * from the target object itself, inherited properties are not considered. + */ +function getOnEventNames(target) { + return Object.getOwnPropertyNames(target).filter(name => name.startsWith('on') && name.length > 2).map(name => name.substring(2)); +} +function propertyDescriptorPatch(api, _global) { + if (isNode && !isMix) { + return; + } + if (Zone[api.symbol('patchEvents')]) { + // events are already been patched by legacy patch. + return; + } + const ignoreProperties = _global['__Zone_ignore_on_properties']; + // for browsers that we can patch the descriptor: Chrome & Firefox + let patchTargets = []; + if (isBrowser) { + const internalWindow = window; + patchTargets = patchTargets.concat(['Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement', 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker']); + const ignoreErrorProperties = isIE() ? [{ + target: internalWindow, + ignoreProperties: ['error'] + }] : []; + // in IE/Edge, onProp not exist in window object, but in WindowPrototype + // so we need to pass WindowPrototype to check onProp exist or not + patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); + } + patchTargets = patchTargets.concat(['XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest', 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket']); + for (let i = 0; i < patchTargets.length; i++) { + const target = _global[patchTargets[i]]; + target && target.prototype && patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties); + } +} +Zone.__load_patch('util', (global, Zone, api) => { + // Collect native event names by looking at properties + // on the global namespace, e.g. 'onclick'. + const eventNames = getOnEventNames(global); + api.patchOnProperties = patchOnProperties; + api.patchMethod = patchMethod; + api.bindArguments = bindArguments; + api.patchMacroTask = patchMacroTask; + // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to + // define which events will not be patched by `Zone.js`. + // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep + // the name consistent with angular repo. + // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for + // backwards compatibility. + const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); + const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); + if (global[SYMBOL_UNPATCHED_EVENTS]) { + global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; + } + if (global[SYMBOL_BLACK_LISTED_EVENTS]) { + Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; + } + api.patchEventPrototype = patchEventPrototype; + api.patchEventTarget = patchEventTarget; + api.isIEOrEdge = isIEOrEdge; + api.ObjectDefineProperty = ObjectDefineProperty; + api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; + api.ObjectCreate = ObjectCreate; + api.ArraySlice = ArraySlice; + api.patchClass = patchClass; + api.wrapWithCurrentZone = wrapWithCurrentZone; + api.filterProperties = filterProperties; + api.attachOriginToPatched = attachOriginToPatched; + api._redefineProperty = Object.defineProperty; + api.patchCallbacks = patchCallbacks; + api.getGlobalObjects = () => ({ + globalSources, + zoneSymbolEventNames, + eventNames, + isBrowser, + isMix, + isNode, + TRUE_STR, + FALSE_STR, + ZONE_SYMBOL_PREFIX, + ADD_EVENT_LISTENER_STR, + REMOVE_EVENT_LISTENER_STR + }); +}); + +/** + * @fileoverview + * @suppress {missingRequire} + */ +function patchQueueMicrotask(global, api) { + api.patchMethod(global, 'queueMicrotask', delegate => { + return function (self, args) { + Zone.current.scheduleMicroTask('queueMicrotask', args[0]); + }; + }); +} + +/** + * @fileoverview + * @suppress {missingRequire} + */ +const taskSymbol = zoneSymbol('zoneTask'); +function patchTimer(window, setName, cancelName, nameSuffix) { + let setNative = null; + let clearNative = null; + setName += nameSuffix; + cancelName += nameSuffix; + const tasksByHandleId = {}; + function scheduleTask(task) { + const data = task.data; + data.args[0] = function () { + return task.invoke.apply(this, arguments); + }; + data.handleId = setNative.apply(window, data.args); + return task; + } + function clearTask(task) { + return clearNative.call(window, task.data.handleId); + } + setNative = patchMethod(window, setName, delegate => function (self, args) { + if (typeof args[0] === 'function') { + const options = { + isPeriodic: nameSuffix === 'Interval', + delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined, + args: args + }; + const callback = args[0]; + args[0] = function timer() { + try { + return callback.apply(this, arguments); + } finally { + // issue-934, task will be cancelled + // even it is a periodic task such as + // setInterval + // https://github.com/angular/angular/issues/40387 + // Cleanup tasksByHandleId should be handled before scheduleTask + // Since some zoneSpec may intercept and doesn't trigger + // scheduleFn(scheduleTask) provided here. + if (!options.isPeriodic) { + if (typeof options.handleId === 'number') { + // in non-nodejs env, we remove timerId + // from local cache + delete tasksByHandleId[options.handleId]; + } else if (options.handleId) { + // Node returns complex objects as handleIds + // we remove task reference from timer object + options.handleId[taskSymbol] = null; + } + } + } + }; + const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); + if (!task) { + return task; + } + // Node.js must additionally support the ref and unref functions. + const handle = task.data.handleId; + if (typeof handle === 'number') { + // for non nodejs env, we save handleId: task + // mapping in local cache for clearTimeout + tasksByHandleId[handle] = task; + } else if (handle) { + // for nodejs env, we save task + // reference in timerId Object for clearTimeout + handle[taskSymbol] = task; + } + // check whether handle is null, because some polyfill or browser + // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame + if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' && typeof handle.unref === 'function') { + task.ref = handle.ref.bind(handle); + task.unref = handle.unref.bind(handle); + } + if (typeof handle === 'number' || handle) { + return handle; + } + return task; + } else { + // cause an error by calling it directly. + return delegate.apply(window, args); + } + }); + clearNative = patchMethod(window, cancelName, delegate => function (self, args) { + const id = args[0]; + let task; + if (typeof id === 'number') { + // non nodejs env. + task = tasksByHandleId[id]; + } else { + // nodejs env. + task = id && id[taskSymbol]; + // other environments. + if (!task) { + task = id; + } + } + if (task && typeof task.type === 'string') { + if (task.state !== 'notScheduled' && (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) { + if (typeof id === 'number') { + delete tasksByHandleId[id]; + } else if (id) { + id[taskSymbol] = null; + } + // Do not cancel already canceled functions + task.zone.cancelTask(task); + } + } else { + // cause an error by calling it directly. + delegate.apply(window, args); + } + }); +} +function patchCustomElements(_global, api) { + const { + isBrowser, + isMix + } = api.getGlobalObjects(); + if (!isBrowser && !isMix || !_global['customElements'] || !('customElements' in _global)) { + return; + } + const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback']; + api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks); +} +function eventTargetPatch(_global, api) { + if (Zone[api.symbol('patchEventTarget')]) { + // EventTarget is already patched. + return; + } + const { + eventNames, + zoneSymbolEventNames, + TRUE_STR, + FALSE_STR, + ZONE_SYMBOL_PREFIX + } = api.getGlobalObjects(); + // predefine all __zone_symbol__ + eventName + true/false string + for (let i = 0; i < eventNames.length; i++) { + const eventName = eventNames[i]; + const falseEventName = eventName + FALSE_STR; + const trueEventName = eventName + TRUE_STR; + const symbol = ZONE_SYMBOL_PREFIX + falseEventName; + const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; + zoneSymbolEventNames[eventName] = {}; + zoneSymbolEventNames[eventName][FALSE_STR] = symbol; + zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; + } + const EVENT_TARGET = _global['EventTarget']; + if (!EVENT_TARGET || !EVENT_TARGET.prototype) { + return; + } + api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]); + return true; +} +function patchEvent(global, api) { + api.patchEventPrototype(global, api); +} + +/** + * @fileoverview + * @suppress {missingRequire} + */ +Zone.__load_patch('legacy', global => { + const legacyPatch = global[Zone.__symbol__('legacyPatch')]; + if (legacyPatch) { + legacyPatch(); + } +}); +Zone.__load_patch('timers', global => { + const set = 'set'; + const clear = 'clear'; + patchTimer(global, set, clear, 'Timeout'); + patchTimer(global, set, clear, 'Interval'); + patchTimer(global, set, clear, 'Immediate'); +}); +Zone.__load_patch('requestAnimationFrame', global => { + patchTimer(global, 'request', 'cancel', 'AnimationFrame'); + patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); + patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); +}); +Zone.__load_patch('blocking', (global, Zone) => { + const blockingMethods = ['alert', 'prompt', 'confirm']; + for (let i = 0; i < blockingMethods.length; i++) { + const name = blockingMethods[i]; + patchMethod(global, name, (delegate, symbol, name) => { + return function (s, args) { + return Zone.current.run(delegate, global, args, name); + }; + }); + } +}); +Zone.__load_patch('EventTarget', (global, Zone, api) => { + patchEvent(global, api); + eventTargetPatch(global, api); + // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener + const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { + api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]); + } +}); +Zone.__load_patch('MutationObserver', (global, Zone, api) => { + patchClass('MutationObserver'); + patchClass('WebKitMutationObserver'); +}); +Zone.__load_patch('IntersectionObserver', (global, Zone, api) => { + patchClass('IntersectionObserver'); +}); +Zone.__load_patch('FileReader', (global, Zone, api) => { + patchClass('FileReader'); +}); +Zone.__load_patch('on_property', (global, Zone, api) => { + propertyDescriptorPatch(api, global); +}); +Zone.__load_patch('customElements', (global, Zone, api) => { + patchCustomElements(global, api); +}); +Zone.__load_patch('XHR', (global, Zone) => { + // Treat XMLHttpRequest as a macrotask. + patchXHR(global); + const XHR_TASK = zoneSymbol('xhrTask'); + const XHR_SYNC = zoneSymbol('xhrSync'); + const XHR_LISTENER = zoneSymbol('xhrListener'); + const XHR_SCHEDULED = zoneSymbol('xhrScheduled'); + const XHR_URL = zoneSymbol('xhrURL'); + const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); + function patchXHR(window) { + const XMLHttpRequest = window['XMLHttpRequest']; + if (!XMLHttpRequest) { + // XMLHttpRequest is not available in service worker + return; + } + const XMLHttpRequestPrototype = XMLHttpRequest.prototype; + function findPendingTask(target) { + return target[XHR_TASK]; + } + let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; + let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; + if (!oriAddListener) { + const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget) { + const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype; + oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; + oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; + } + } + const READY_STATE_CHANGE = 'readystatechange'; + const SCHEDULED = 'scheduled'; + function scheduleTask(task) { + const data = task.data; + const target = data.target; + target[XHR_SCHEDULED] = false; + target[XHR_ERROR_BEFORE_SCHEDULED] = false; + // remove existing event listener + const listener = target[XHR_LISTENER]; + if (!oriAddListener) { + oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; + oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; + } + if (listener) { + oriRemoveListener.call(target, READY_STATE_CHANGE, listener); + } + const newListener = target[XHR_LISTENER] = () => { + if (target.readyState === target.DONE) { + // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with + // readyState=4 multiple times, so we need to check task state here + if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { + // check whether the xhr has registered onload listener + // if that is the case, the task should invoke after all + // onload listeners finish. + // Also if the request failed without response (status = 0), the load event handler + // will not be triggered, in that case, we should also invoke the placeholder callback + // to close the XMLHttpRequest::send macroTask. + // https://github.com/angular/angular/issues/38795 + const loadTasks = target[Zone.__symbol__('loadfalse')]; + if (target.status !== 0 && loadTasks && loadTasks.length > 0) { + const oriInvoke = task.invoke; + task.invoke = function () { + // need to load the tasks again, because in other + // load listener, they may remove themselves + const loadTasks = target[Zone.__symbol__('loadfalse')]; + for (let i = 0; i < loadTasks.length; i++) { + if (loadTasks[i] === task) { + loadTasks.splice(i, 1); + } + } + if (!data.aborted && task.state === SCHEDULED) { + oriInvoke.call(task); + } + }; + loadTasks.push(task); + } else { + task.invoke(); + } + } else if (!data.aborted && target[XHR_SCHEDULED] === false) { + // error occurs when xhr.send() + target[XHR_ERROR_BEFORE_SCHEDULED] = true; + } + } + }; + oriAddListener.call(target, READY_STATE_CHANGE, newListener); + const storedTask = target[XHR_TASK]; + if (!storedTask) { + target[XHR_TASK] = task; + } + sendNative.apply(target, data.args); + target[XHR_SCHEDULED] = true; + return task; + } + function placeholderCallback() {} + function clearTask(task) { + const data = task.data; + // Note - ideally, we would call data.target.removeEventListener here, but it's too late + // to prevent it from firing. So instead, we store info for the event listener. + data.aborted = true; + return abortNative.apply(data.target, data.args); + } + const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) { + self[XHR_SYNC] = args[2] == false; + self[XHR_URL] = args[1]; + return openNative.apply(self, args); + }); + const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; + const fetchTaskAborting = zoneSymbol('fetchTaskAborting'); + const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); + const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) { + if (Zone.current[fetchTaskScheduling] === true) { + // a fetch is scheduling, so we are using xhr to polyfill fetch + // and because we already schedule macroTask for fetch, we should + // not schedule a macroTask for xhr again + return sendNative.apply(self, args); + } + if (self[XHR_SYNC]) { + // if the XHR is sync there is no task to schedule, just execute the code. + return sendNative.apply(self, args); + } else { + const options = { + target: self, + url: self[XHR_URL], + isPeriodic: false, + args: args, + aborted: false + }; + const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); + if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && task.state === SCHEDULED) { + // xhr request throw error when send + // we should invoke task instead of leaving a scheduled + // pending macroTask + task.invoke(); + } + } + }); + const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) { + const task = findPendingTask(self); + if (task && typeof task.type == 'string') { + // If the XHR has already completed, do nothing. + // If the XHR has already been aborted, do nothing. + // Fix #569, call abort multiple times before done will cause + // macroTask task count be negative number + if (task.cancelFn == null || task.data && task.data.aborted) { + return; + } + task.zone.cancelTask(task); + } else if (Zone.current[fetchTaskAborting] === true) { + // the abort is called from fetch polyfill, we need to call native abort of XHR. + return abortNative.apply(self, args); + } + // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no + // task + // to cancel. Do nothing. + }); + } +}); + +Zone.__load_patch('geolocation', global => { + /// GEO_LOCATION + if (global['navigator'] && global['navigator'].geolocation) { + patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); + } +}); +Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => { + // handle unhandled promise rejection + function findPromiseRejectionHandler(evtName) { + return function (e) { + const eventTasks = findEventTasks(global, evtName); + eventTasks.forEach(eventTask => { + // windows has added unhandledrejection event listener + // trigger the event listener + const PromiseRejectionEvent = global['PromiseRejectionEvent']; + if (PromiseRejectionEvent) { + const evt = new PromiseRejectionEvent(evtName, { + promise: e.promise, + reason: e.rejection + }); + eventTask.invoke(evt); + } + }); + }; + } + if (global['PromiseRejectionEvent']) { + Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = findPromiseRejectionHandler('unhandledrejection'); + Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled'); + } +}); +Zone.__load_patch('queueMicrotask', (global, Zone, api) => { + patchQueueMicrotask(global, api); +}); + +/***/ }), + +/***/ 27178: +/*!**************************************************************!*\ + !*** ./node_modules/@angular/compiler/fesm2022/compiler.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AST: () => (/* binding */ AST), +/* harmony export */ ASTWithName: () => (/* binding */ ASTWithName), +/* harmony export */ ASTWithSource: () => (/* binding */ ASTWithSource), +/* harmony export */ AbsoluteSourceSpan: () => (/* binding */ AbsoluteSourceSpan), +/* harmony export */ ArrayType: () => (/* binding */ ArrayType), +/* harmony export */ AstMemoryEfficientTransformer: () => (/* binding */ AstMemoryEfficientTransformer), +/* harmony export */ AstTransformer: () => (/* binding */ AstTransformer), +/* harmony export */ Attribute: () => (/* binding */ Attribute), +/* harmony export */ Binary: () => (/* binding */ Binary), +/* harmony export */ BinaryOperator: () => (/* binding */ BinaryOperator), +/* harmony export */ BinaryOperatorExpr: () => (/* binding */ BinaryOperatorExpr), +/* harmony export */ BindingPipe: () => (/* binding */ BindingPipe), +/* harmony export */ Block: () => (/* binding */ Block), +/* harmony export */ BlockGroup: () => (/* binding */ BlockGroup), +/* harmony export */ BlockParameter: () => (/* binding */ BlockParameter), +/* harmony export */ BoundElementProperty: () => (/* binding */ BoundElementProperty), +/* harmony export */ BuiltinType: () => (/* binding */ BuiltinType), +/* harmony export */ BuiltinTypeName: () => (/* binding */ BuiltinTypeName), +/* harmony export */ CUSTOM_ELEMENTS_SCHEMA: () => (/* binding */ CUSTOM_ELEMENTS_SCHEMA), +/* harmony export */ Call: () => (/* binding */ Call), +/* harmony export */ Chain: () => (/* binding */ Chain), +/* harmony export */ ChangeDetectionStrategy: () => (/* binding */ ChangeDetectionStrategy), +/* harmony export */ CommaExpr: () => (/* binding */ CommaExpr), +/* harmony export */ Comment: () => (/* binding */ Comment), +/* harmony export */ CompilerConfig: () => (/* binding */ CompilerConfig), +/* harmony export */ Conditional: () => (/* binding */ Conditional), +/* harmony export */ ConditionalExpr: () => (/* binding */ ConditionalExpr), +/* harmony export */ ConstantPool: () => (/* binding */ ConstantPool), +/* harmony export */ CssSelector: () => (/* binding */ CssSelector), +/* harmony export */ DEFAULT_INTERPOLATION_CONFIG: () => (/* binding */ DEFAULT_INTERPOLATION_CONFIG), +/* harmony export */ DYNAMIC_TYPE: () => (/* binding */ DYNAMIC_TYPE), +/* harmony export */ DeclareFunctionStmt: () => (/* binding */ DeclareFunctionStmt), +/* harmony export */ DeclareVarStmt: () => (/* binding */ DeclareVarStmt), +/* harmony export */ DomElementSchemaRegistry: () => (/* binding */ DomElementSchemaRegistry), +/* harmony export */ DynamicImportExpr: () => (/* binding */ DynamicImportExpr), +/* harmony export */ EOF: () => (/* binding */ EOF), +/* harmony export */ Element: () => (/* binding */ Element), +/* harmony export */ ElementSchemaRegistry: () => (/* binding */ ElementSchemaRegistry), +/* harmony export */ EmitterVisitorContext: () => (/* binding */ EmitterVisitorContext), +/* harmony export */ EmptyExpr: () => (/* binding */ EmptyExpr$1), +/* harmony export */ Expansion: () => (/* binding */ Expansion), +/* harmony export */ ExpansionCase: () => (/* binding */ ExpansionCase), +/* harmony export */ Expression: () => (/* binding */ Expression), +/* harmony export */ ExpressionBinding: () => (/* binding */ ExpressionBinding), +/* harmony export */ ExpressionStatement: () => (/* binding */ ExpressionStatement), +/* harmony export */ ExpressionType: () => (/* binding */ ExpressionType), +/* harmony export */ ExternalExpr: () => (/* binding */ ExternalExpr), +/* harmony export */ ExternalReference: () => (/* binding */ ExternalReference), +/* harmony export */ FactoryTarget: () => (/* binding */ FactoryTarget$1), +/* harmony export */ FunctionExpr: () => (/* binding */ FunctionExpr), +/* harmony export */ HtmlParser: () => (/* binding */ HtmlParser), +/* harmony export */ HtmlTagDefinition: () => (/* binding */ HtmlTagDefinition), +/* harmony export */ I18NHtmlParser: () => (/* binding */ I18NHtmlParser), +/* harmony export */ IfStmt: () => (/* binding */ IfStmt), +/* harmony export */ ImplicitReceiver: () => (/* binding */ ImplicitReceiver), +/* harmony export */ InstantiateExpr: () => (/* binding */ InstantiateExpr), +/* harmony export */ Interpolation: () => (/* binding */ Interpolation$1), +/* harmony export */ InterpolationConfig: () => (/* binding */ InterpolationConfig), +/* harmony export */ InvokeFunctionExpr: () => (/* binding */ InvokeFunctionExpr), +/* harmony export */ JSDocComment: () => (/* binding */ JSDocComment), +/* harmony export */ JitEvaluator: () => (/* binding */ JitEvaluator), +/* harmony export */ KeyedRead: () => (/* binding */ KeyedRead), +/* harmony export */ KeyedWrite: () => (/* binding */ KeyedWrite), +/* harmony export */ LeadingComment: () => (/* binding */ LeadingComment), +/* harmony export */ Lexer: () => (/* binding */ Lexer), +/* harmony export */ LiteralArray: () => (/* binding */ LiteralArray), +/* harmony export */ LiteralArrayExpr: () => (/* binding */ LiteralArrayExpr), +/* harmony export */ LiteralExpr: () => (/* binding */ LiteralExpr), +/* harmony export */ LiteralMap: () => (/* binding */ LiteralMap), +/* harmony export */ LiteralMapExpr: () => (/* binding */ LiteralMapExpr), +/* harmony export */ LiteralPrimitive: () => (/* binding */ LiteralPrimitive), +/* harmony export */ LocalizedString: () => (/* binding */ LocalizedString), +/* harmony export */ MapType: () => (/* binding */ MapType), +/* harmony export */ MessageBundle: () => (/* binding */ MessageBundle), +/* harmony export */ NONE_TYPE: () => (/* binding */ NONE_TYPE), +/* harmony export */ NO_ERRORS_SCHEMA: () => (/* binding */ NO_ERRORS_SCHEMA), +/* harmony export */ NodeWithI18n: () => (/* binding */ NodeWithI18n), +/* harmony export */ NonNullAssert: () => (/* binding */ NonNullAssert), +/* harmony export */ NotExpr: () => (/* binding */ NotExpr), +/* harmony export */ ParseError: () => (/* binding */ ParseError), +/* harmony export */ ParseErrorLevel: () => (/* binding */ ParseErrorLevel), +/* harmony export */ ParseLocation: () => (/* binding */ ParseLocation), +/* harmony export */ ParseSourceFile: () => (/* binding */ ParseSourceFile), +/* harmony export */ ParseSourceSpan: () => (/* binding */ ParseSourceSpan), +/* harmony export */ ParseSpan: () => (/* binding */ ParseSpan), +/* harmony export */ ParseTreeResult: () => (/* binding */ ParseTreeResult), +/* harmony export */ ParsedEvent: () => (/* binding */ ParsedEvent), +/* harmony export */ ParsedProperty: () => (/* binding */ ParsedProperty), +/* harmony export */ ParsedPropertyType: () => (/* binding */ ParsedPropertyType), +/* harmony export */ ParsedVariable: () => (/* binding */ ParsedVariable), +/* harmony export */ Parser: () => (/* binding */ Parser$1), +/* harmony export */ ParserError: () => (/* binding */ ParserError), +/* harmony export */ PrefixNot: () => (/* binding */ PrefixNot), +/* harmony export */ PropertyRead: () => (/* binding */ PropertyRead), +/* harmony export */ PropertyWrite: () => (/* binding */ PropertyWrite), +/* harmony export */ R3BoundTarget: () => (/* binding */ R3BoundTarget), +/* harmony export */ R3Identifiers: () => (/* binding */ Identifiers), +/* harmony export */ R3NgModuleMetadataKind: () => (/* binding */ R3NgModuleMetadataKind), +/* harmony export */ R3SelectorScopeMode: () => (/* binding */ R3SelectorScopeMode), +/* harmony export */ R3TargetBinder: () => (/* binding */ R3TargetBinder), +/* harmony export */ R3TemplateDependencyKind: () => (/* binding */ R3TemplateDependencyKind), +/* harmony export */ ReadKeyExpr: () => (/* binding */ ReadKeyExpr), +/* harmony export */ ReadPropExpr: () => (/* binding */ ReadPropExpr), +/* harmony export */ ReadVarExpr: () => (/* binding */ ReadVarExpr), +/* harmony export */ RecursiveAstVisitor: () => (/* binding */ RecursiveAstVisitor), +/* harmony export */ RecursiveVisitor: () => (/* binding */ RecursiveVisitor), +/* harmony export */ ResourceLoader: () => (/* binding */ ResourceLoader), +/* harmony export */ ReturnStatement: () => (/* binding */ ReturnStatement), +/* harmony export */ STRING_TYPE: () => (/* binding */ STRING_TYPE), +/* harmony export */ SafeCall: () => (/* binding */ SafeCall), +/* harmony export */ SafeKeyedRead: () => (/* binding */ SafeKeyedRead), +/* harmony export */ SafePropertyRead: () => (/* binding */ SafePropertyRead), +/* harmony export */ SelectorContext: () => (/* binding */ SelectorContext), +/* harmony export */ SelectorListContext: () => (/* binding */ SelectorListContext), +/* harmony export */ SelectorMatcher: () => (/* binding */ SelectorMatcher), +/* harmony export */ Serializer: () => (/* binding */ Serializer), +/* harmony export */ SplitInterpolation: () => (/* binding */ SplitInterpolation), +/* harmony export */ Statement: () => (/* binding */ Statement), +/* harmony export */ StmtModifier: () => (/* binding */ StmtModifier), +/* harmony export */ TagContentType: () => (/* binding */ TagContentType), +/* harmony export */ TaggedTemplateExpr: () => (/* binding */ TaggedTemplateExpr), +/* harmony export */ TemplateBindingParseResult: () => (/* binding */ TemplateBindingParseResult), +/* harmony export */ TemplateLiteral: () => (/* binding */ TemplateLiteral), +/* harmony export */ TemplateLiteralElement: () => (/* binding */ TemplateLiteralElement), +/* harmony export */ Text: () => (/* binding */ Text), +/* harmony export */ ThisReceiver: () => (/* binding */ ThisReceiver), +/* harmony export */ TmplAstBoundAttribute: () => (/* binding */ BoundAttribute), +/* harmony export */ TmplAstBoundDeferredTrigger: () => (/* binding */ BoundDeferredTrigger), +/* harmony export */ TmplAstBoundEvent: () => (/* binding */ BoundEvent), +/* harmony export */ TmplAstBoundText: () => (/* binding */ BoundText), +/* harmony export */ TmplAstContent: () => (/* binding */ Content), +/* harmony export */ TmplAstDeferredBlock: () => (/* binding */ DeferredBlock), +/* harmony export */ TmplAstDeferredBlockError: () => (/* binding */ DeferredBlockError), +/* harmony export */ TmplAstDeferredBlockLoading: () => (/* binding */ DeferredBlockLoading), +/* harmony export */ TmplAstDeferredBlockPlaceholder: () => (/* binding */ DeferredBlockPlaceholder), +/* harmony export */ TmplAstDeferredTrigger: () => (/* binding */ DeferredTrigger), +/* harmony export */ TmplAstElement: () => (/* binding */ Element$1), +/* harmony export */ TmplAstHoverDeferredTrigger: () => (/* binding */ HoverDeferredTrigger), +/* harmony export */ TmplAstIcu: () => (/* binding */ Icu$1), +/* harmony export */ TmplAstIdleDeferredTrigger: () => (/* binding */ IdleDeferredTrigger), +/* harmony export */ TmplAstImmediateDeferredTrigger: () => (/* binding */ ImmediateDeferredTrigger), +/* harmony export */ TmplAstInteractionDeferredTrigger: () => (/* binding */ InteractionDeferredTrigger), +/* harmony export */ TmplAstRecursiveVisitor: () => (/* binding */ RecursiveVisitor$1), +/* harmony export */ TmplAstReference: () => (/* binding */ Reference), +/* harmony export */ TmplAstTemplate: () => (/* binding */ Template), +/* harmony export */ TmplAstText: () => (/* binding */ Text$3), +/* harmony export */ TmplAstTextAttribute: () => (/* binding */ TextAttribute), +/* harmony export */ TmplAstTimerDeferredTrigger: () => (/* binding */ TimerDeferredTrigger), +/* harmony export */ TmplAstVariable: () => (/* binding */ Variable), +/* harmony export */ TmplAstViewportDeferredTrigger: () => (/* binding */ ViewportDeferredTrigger), +/* harmony export */ Token: () => (/* binding */ Token), +/* harmony export */ TokenType: () => (/* binding */ TokenType), +/* harmony export */ TransplantedType: () => (/* binding */ TransplantedType), +/* harmony export */ TreeError: () => (/* binding */ TreeError), +/* harmony export */ Type: () => (/* binding */ Type), +/* harmony export */ TypeModifier: () => (/* binding */ TypeModifier), +/* harmony export */ TypeofExpr: () => (/* binding */ TypeofExpr), +/* harmony export */ Unary: () => (/* binding */ Unary), +/* harmony export */ UnaryOperator: () => (/* binding */ UnaryOperator), +/* harmony export */ UnaryOperatorExpr: () => (/* binding */ UnaryOperatorExpr), +/* harmony export */ VERSION: () => (/* binding */ VERSION), +/* harmony export */ VariableBinding: () => (/* binding */ VariableBinding), +/* harmony export */ Version: () => (/* binding */ Version), +/* harmony export */ ViewEncapsulation: () => (/* binding */ ViewEncapsulation), +/* harmony export */ WrappedNodeExpr: () => (/* binding */ WrappedNodeExpr), +/* harmony export */ WriteKeyExpr: () => (/* binding */ WriteKeyExpr), +/* harmony export */ WritePropExpr: () => (/* binding */ WritePropExpr), +/* harmony export */ WriteVarExpr: () => (/* binding */ WriteVarExpr), +/* harmony export */ Xliff: () => (/* binding */ Xliff), +/* harmony export */ Xliff2: () => (/* binding */ Xliff2), +/* harmony export */ Xmb: () => (/* binding */ Xmb), +/* harmony export */ XmlParser: () => (/* binding */ XmlParser), +/* harmony export */ Xtb: () => (/* binding */ Xtb), +/* harmony export */ _ParseAST: () => (/* binding */ _ParseAST), +/* harmony export */ compileClassMetadata: () => (/* binding */ compileClassMetadata), +/* harmony export */ compileComponentFromMetadata: () => (/* binding */ compileComponentFromMetadata), +/* harmony export */ compileDeclareClassMetadata: () => (/* binding */ compileDeclareClassMetadata), +/* harmony export */ compileDeclareComponentFromMetadata: () => (/* binding */ compileDeclareComponentFromMetadata), +/* harmony export */ compileDeclareDirectiveFromMetadata: () => (/* binding */ compileDeclareDirectiveFromMetadata), +/* harmony export */ compileDeclareFactoryFunction: () => (/* binding */ compileDeclareFactoryFunction), +/* harmony export */ compileDeclareInjectableFromMetadata: () => (/* binding */ compileDeclareInjectableFromMetadata), +/* harmony export */ compileDeclareInjectorFromMetadata: () => (/* binding */ compileDeclareInjectorFromMetadata), +/* harmony export */ compileDeclareNgModuleFromMetadata: () => (/* binding */ compileDeclareNgModuleFromMetadata), +/* harmony export */ compileDeclarePipeFromMetadata: () => (/* binding */ compileDeclarePipeFromMetadata), +/* harmony export */ compileDirectiveFromMetadata: () => (/* binding */ compileDirectiveFromMetadata), +/* harmony export */ compileFactoryFunction: () => (/* binding */ compileFactoryFunction), +/* harmony export */ compileInjectable: () => (/* binding */ compileInjectable), +/* harmony export */ compileInjector: () => (/* binding */ compileInjector), +/* harmony export */ compileNgModule: () => (/* binding */ compileNgModule), +/* harmony export */ compilePipeFromMetadata: () => (/* binding */ compilePipeFromMetadata), +/* harmony export */ computeMsgId: () => (/* binding */ computeMsgId), +/* harmony export */ core: () => (/* binding */ core), +/* harmony export */ createInjectableType: () => (/* binding */ createInjectableType), +/* harmony export */ createMayBeForwardRefExpression: () => (/* binding */ createMayBeForwardRefExpression), +/* harmony export */ devOnlyGuardedExpression: () => (/* binding */ devOnlyGuardedExpression), +/* harmony export */ emitDistinctChangesOnlyDefaultValue: () => (/* binding */ emitDistinctChangesOnlyDefaultValue), +/* harmony export */ getHtmlTagDefinition: () => (/* binding */ getHtmlTagDefinition), +/* harmony export */ getNsPrefix: () => (/* binding */ getNsPrefix), +/* harmony export */ getSafePropertyAccessString: () => (/* binding */ getSafePropertyAccessString), +/* harmony export */ identifierName: () => (/* binding */ identifierName), +/* harmony export */ isIdentifier: () => (/* binding */ isIdentifier), +/* harmony export */ isNgContainer: () => (/* binding */ isNgContainer), +/* harmony export */ isNgContent: () => (/* binding */ isNgContent), +/* harmony export */ isNgTemplate: () => (/* binding */ isNgTemplate), +/* harmony export */ jsDocComment: () => (/* binding */ jsDocComment), +/* harmony export */ leadingComment: () => (/* binding */ leadingComment), +/* harmony export */ literalMap: () => (/* binding */ literalMap), +/* harmony export */ makeBindingParser: () => (/* binding */ makeBindingParser), +/* harmony export */ mergeNsAndName: () => (/* binding */ mergeNsAndName), +/* harmony export */ outputAst: () => (/* binding */ output_ast), +/* harmony export */ parseHostBindings: () => (/* binding */ parseHostBindings), +/* harmony export */ parseTemplate: () => (/* binding */ parseTemplate), +/* harmony export */ preserveWhitespacesDefault: () => (/* binding */ preserveWhitespacesDefault), +/* harmony export */ publishFacade: () => (/* binding */ publishFacade), +/* harmony export */ r3JitTypeSourceSpan: () => (/* binding */ r3JitTypeSourceSpan), +/* harmony export */ sanitizeIdentifier: () => (/* binding */ sanitizeIdentifier), +/* harmony export */ splitNsName: () => (/* binding */ splitNsName), +/* harmony export */ verifyHostBindings: () => (/* binding */ verifyHostBindings), +/* harmony export */ visitAll: () => (/* binding */ visitAll) +/* harmony export */ }); +/** + * @license Angular v16.2.12 + * (c) 2010-2022 Google LLC. https://angular.io/ + * License: MIT + */ + +const _SELECTOR_REGEXP = new RegExp('(\\:not\\()|' + +// 1: ":not(" +'(([\\.\\#]?)[-\\w]+)|' + +// 2: "tag"; 3: "."/"#"; +// "-" should appear first in the regexp below as FF31 parses "[.-\w]" as a range +// 4: attribute; 5: attribute_string; 6: attribute_value +'(?:\\[([-.\\w*\\\\$]+)(?:=([\"\']?)([^\\]\"\']*)\\5)?\\])|' + +// "[name]", "[name=value]", +// "[name="value"]", +// "[name='value']" +'(\\))|' + +// 7: ")" +'(\\s*,\\s*)', +// 8: "," +'g'); +/** + * A css selector contains an element name, + * css classes and attribute/value pairs with the purpose + * of selecting subsets out of them. + */ +class CssSelector { + constructor() { + this.element = null; + this.classNames = []; + /** + * The selectors are encoded in pairs where: + * - even locations are attribute names + * - odd locations are attribute values. + * + * Example: + * Selector: `[key1=value1][key2]` would parse to: + * ``` + * ['key1', 'value1', 'key2', ''] + * ``` + */ + this.attrs = []; + this.notSelectors = []; + } + static parse(selector) { + const results = []; + const _addResult = (res, cssSel) => { + if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 && cssSel.attrs.length == 0) { + cssSel.element = '*'; + } + res.push(cssSel); + }; + let cssSelector = new CssSelector(); + let match; + let current = cssSelector; + let inNot = false; + _SELECTOR_REGEXP.lastIndex = 0; + while (match = _SELECTOR_REGEXP.exec(selector)) { + if (match[1 /* SelectorRegexp.NOT */]) { + if (inNot) { + throw new Error('Nesting :not in a selector is not allowed'); + } + inNot = true; + current = new CssSelector(); + cssSelector.notSelectors.push(current); + } + const tag = match[2 /* SelectorRegexp.TAG */]; + if (tag) { + const prefix = match[3 /* SelectorRegexp.PREFIX */]; + if (prefix === '#') { + // #hash + current.addAttribute('id', tag.slice(1)); + } else if (prefix === '.') { + // Class + current.addClassName(tag.slice(1)); + } else { + // Element + current.setElement(tag); + } + } + const attribute = match[4 /* SelectorRegexp.ATTRIBUTE */]; + if (attribute) { + current.addAttribute(current.unescapeAttribute(attribute), match[6 /* SelectorRegexp.ATTRIBUTE_VALUE */]); + } + + if (match[7 /* SelectorRegexp.NOT_END */]) { + inNot = false; + current = cssSelector; + } + if (match[8 /* SelectorRegexp.SEPARATOR */]) { + if (inNot) { + throw new Error('Multiple selectors in :not are not supported'); + } + _addResult(results, cssSelector); + cssSelector = current = new CssSelector(); + } + } + _addResult(results, cssSelector); + return results; + } + /** + * Unescape `\$` sequences from the CSS attribute selector. + * + * This is needed because `$` can have a special meaning in CSS selectors, + * but we might want to match an attribute that contains `$`. + * [MDN web link for more + * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors). + * @param attr the attribute to unescape. + * @returns the unescaped string. + */ + unescapeAttribute(attr) { + let result = ''; + let escaping = false; + for (let i = 0; i < attr.length; i++) { + const char = attr.charAt(i); + if (char === '\\') { + escaping = true; + continue; + } + if (char === '$' && !escaping) { + throw new Error(`Error in attribute selector "${attr}". ` + `Unescaped "$" is not supported. Please escape with "\\$".`); + } + escaping = false; + result += char; + } + return result; + } + /** + * Escape `$` sequences from the CSS attribute selector. + * + * This is needed because `$` can have a special meaning in CSS selectors, + * with this method we are escaping `$` with `\$'. + * [MDN web link for more + * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors). + * @param attr the attribute to escape. + * @returns the escaped string. + */ + escapeAttribute(attr) { + return attr.replace(/\\/g, '\\\\').replace(/\$/g, '\\$'); + } + isElementSelector() { + return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 && this.notSelectors.length === 0; + } + hasElementSelector() { + return !!this.element; + } + setElement(element = null) { + this.element = element; + } + getAttrs() { + const result = []; + if (this.classNames.length > 0) { + result.push('class', this.classNames.join(' ')); + } + return result.concat(this.attrs); + } + addAttribute(name, value = '') { + this.attrs.push(name, value && value.toLowerCase() || ''); + } + addClassName(name) { + this.classNames.push(name.toLowerCase()); + } + toString() { + let res = this.element || ''; + if (this.classNames) { + this.classNames.forEach(klass => res += `.${klass}`); + } + if (this.attrs) { + for (let i = 0; i < this.attrs.length; i += 2) { + const name = this.escapeAttribute(this.attrs[i]); + const value = this.attrs[i + 1]; + res += `[${name}${value ? '=' + value : ''}]`; + } + } + this.notSelectors.forEach(notSelector => res += `:not(${notSelector})`); + return res; + } +} +/** + * Reads a list of CssSelectors and allows to calculate which ones + * are contained in a given CssSelector. + */ +class SelectorMatcher { + constructor() { + this._elementMap = new Map(); + this._elementPartialMap = new Map(); + this._classMap = new Map(); + this._classPartialMap = new Map(); + this._attrValueMap = new Map(); + this._attrValuePartialMap = new Map(); + this._listContexts = []; + } + static createNotMatcher(notSelectors) { + const notMatcher = new SelectorMatcher(); + notMatcher.addSelectables(notSelectors, null); + return notMatcher; + } + addSelectables(cssSelectors, callbackCtxt) { + let listContext = null; + if (cssSelectors.length > 1) { + listContext = new SelectorListContext(cssSelectors); + this._listContexts.push(listContext); + } + for (let i = 0; i < cssSelectors.length; i++) { + this._addSelectable(cssSelectors[i], callbackCtxt, listContext); + } + } + /** + * Add an object that can be found later on by calling `match`. + * @param cssSelector A css selector + * @param callbackCtxt An opaque object that will be given to the callback of the `match` function + */ + _addSelectable(cssSelector, callbackCtxt, listContext) { + let matcher = this; + const element = cssSelector.element; + const classNames = cssSelector.classNames; + const attrs = cssSelector.attrs; + const selectable = new SelectorContext(cssSelector, callbackCtxt, listContext); + if (element) { + const isTerminal = attrs.length === 0 && classNames.length === 0; + if (isTerminal) { + this._addTerminal(matcher._elementMap, element, selectable); + } else { + matcher = this._addPartial(matcher._elementPartialMap, element); + } + } + if (classNames) { + for (let i = 0; i < classNames.length; i++) { + const isTerminal = attrs.length === 0 && i === classNames.length - 1; + const className = classNames[i]; + if (isTerminal) { + this._addTerminal(matcher._classMap, className, selectable); + } else { + matcher = this._addPartial(matcher._classPartialMap, className); + } + } + } + if (attrs) { + for (let i = 0; i < attrs.length; i += 2) { + const isTerminal = i === attrs.length - 2; + const name = attrs[i]; + const value = attrs[i + 1]; + if (isTerminal) { + const terminalMap = matcher._attrValueMap; + let terminalValuesMap = terminalMap.get(name); + if (!terminalValuesMap) { + terminalValuesMap = new Map(); + terminalMap.set(name, terminalValuesMap); + } + this._addTerminal(terminalValuesMap, value, selectable); + } else { + const partialMap = matcher._attrValuePartialMap; + let partialValuesMap = partialMap.get(name); + if (!partialValuesMap) { + partialValuesMap = new Map(); + partialMap.set(name, partialValuesMap); + } + matcher = this._addPartial(partialValuesMap, value); + } + } + } + } + _addTerminal(map, name, selectable) { + let terminalList = map.get(name); + if (!terminalList) { + terminalList = []; + map.set(name, terminalList); + } + terminalList.push(selectable); + } + _addPartial(map, name) { + let matcher = map.get(name); + if (!matcher) { + matcher = new SelectorMatcher(); + map.set(name, matcher); + } + return matcher; + } + /** + * Find the objects that have been added via `addSelectable` + * whose css selector is contained in the given css selector. + * @param cssSelector A css selector + * @param matchedCallback This callback will be called with the object handed into `addSelectable` + * @return boolean true if a match was found + */ + match(cssSelector, matchedCallback) { + let result = false; + const element = cssSelector.element; + const classNames = cssSelector.classNames; + const attrs = cssSelector.attrs; + for (let i = 0; i < this._listContexts.length; i++) { + this._listContexts[i].alreadyMatched = false; + } + result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result; + result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) || result; + if (classNames) { + for (let i = 0; i < classNames.length; i++) { + const className = classNames[i]; + result = this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result; + result = this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) || result; + } + } + if (attrs) { + for (let i = 0; i < attrs.length; i += 2) { + const name = attrs[i]; + const value = attrs[i + 1]; + const terminalValuesMap = this._attrValueMap.get(name); + if (value) { + result = this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result; + } + result = this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result; + const partialValuesMap = this._attrValuePartialMap.get(name); + if (value) { + result = this._matchPartial(partialValuesMap, '', cssSelector, matchedCallback) || result; + } + result = this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result; + } + } + return result; + } + /** @internal */ + _matchTerminal(map, name, cssSelector, matchedCallback) { + if (!map || typeof name !== 'string') { + return false; + } + let selectables = map.get(name) || []; + const starSelectables = map.get('*'); + if (starSelectables) { + selectables = selectables.concat(starSelectables); + } + if (selectables.length === 0) { + return false; + } + let selectable; + let result = false; + for (let i = 0; i < selectables.length; i++) { + selectable = selectables[i]; + result = selectable.finalize(cssSelector, matchedCallback) || result; + } + return result; + } + /** @internal */ + _matchPartial(map, name, cssSelector, matchedCallback) { + if (!map || typeof name !== 'string') { + return false; + } + const nestedSelector = map.get(name); + if (!nestedSelector) { + return false; + } + // TODO(perf): get rid of recursion and measure again + // TODO(perf): don't pass the whole selector into the recursion, + // but only the not processed parts + return nestedSelector.match(cssSelector, matchedCallback); + } +} +class SelectorListContext { + constructor(selectors) { + this.selectors = selectors; + this.alreadyMatched = false; + } +} +// Store context to pass back selector and context when a selector is matched +class SelectorContext { + constructor(selector, cbContext, listContext) { + this.selector = selector; + this.cbContext = cbContext; + this.listContext = listContext; + this.notSelectors = selector.notSelectors; + } + finalize(cssSelector, callback) { + let result = true; + if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) { + const notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors); + result = !notMatcher.match(cssSelector, null); + } + if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) { + if (this.listContext) { + this.listContext.alreadyMatched = true; + } + callback(this.selector, this.cbContext); + } + return result; + } +} + +// Attention: +// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not +// explicitly set. +const emitDistinctChangesOnlyDefaultValue = true; +var ViewEncapsulation; +(function (ViewEncapsulation) { + ViewEncapsulation[ViewEncapsulation["Emulated"] = 0] = "Emulated"; + // Historically the 1 value was for `Native` encapsulation which has been removed as of v11. + ViewEncapsulation[ViewEncapsulation["None"] = 2] = "None"; + ViewEncapsulation[ViewEncapsulation["ShadowDom"] = 3] = "ShadowDom"; +})(ViewEncapsulation || (ViewEncapsulation = {})); +var ChangeDetectionStrategy; +(function (ChangeDetectionStrategy) { + ChangeDetectionStrategy[ChangeDetectionStrategy["OnPush"] = 0] = "OnPush"; + ChangeDetectionStrategy[ChangeDetectionStrategy["Default"] = 1] = "Default"; +})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {})); +const CUSTOM_ELEMENTS_SCHEMA = { + name: 'custom-elements' +}; +const NO_ERRORS_SCHEMA = { + name: 'no-errors-schema' +}; +const Type$1 = Function; +var SecurityContext; +(function (SecurityContext) { + SecurityContext[SecurityContext["NONE"] = 0] = "NONE"; + SecurityContext[SecurityContext["HTML"] = 1] = "HTML"; + SecurityContext[SecurityContext["STYLE"] = 2] = "STYLE"; + SecurityContext[SecurityContext["SCRIPT"] = 3] = "SCRIPT"; + SecurityContext[SecurityContext["URL"] = 4] = "URL"; + SecurityContext[SecurityContext["RESOURCE_URL"] = 5] = "RESOURCE_URL"; +})(SecurityContext || (SecurityContext = {})); +var MissingTranslationStrategy; +(function (MissingTranslationStrategy) { + MissingTranslationStrategy[MissingTranslationStrategy["Error"] = 0] = "Error"; + MissingTranslationStrategy[MissingTranslationStrategy["Warning"] = 1] = "Warning"; + MissingTranslationStrategy[MissingTranslationStrategy["Ignore"] = 2] = "Ignore"; +})(MissingTranslationStrategy || (MissingTranslationStrategy = {})); +function parserSelectorToSimpleSelector(selector) { + const classes = selector.classNames && selector.classNames.length ? [8 /* SelectorFlags.CLASS */, ...selector.classNames] : []; + const elementName = selector.element && selector.element !== '*' ? selector.element : ''; + return [elementName, ...selector.attrs, ...classes]; +} +function parserSelectorToNegativeSelector(selector) { + const classes = selector.classNames && selector.classNames.length ? [8 /* SelectorFlags.CLASS */, ...selector.classNames] : []; + if (selector.element) { + return [1 /* SelectorFlags.NOT */ | 4 /* SelectorFlags.ELEMENT */, selector.element, ...selector.attrs, ...classes]; + } else if (selector.attrs.length) { + return [1 /* SelectorFlags.NOT */ | 2 /* SelectorFlags.ATTRIBUTE */, ...selector.attrs, ...classes]; + } else { + return selector.classNames && selector.classNames.length ? [1 /* SelectorFlags.NOT */ | 8 /* SelectorFlags.CLASS */, ...selector.classNames] : []; + } +} +function parserSelectorToR3Selector(selector) { + const positive = parserSelectorToSimpleSelector(selector); + const negative = selector.notSelectors && selector.notSelectors.length ? selector.notSelectors.map(notSelector => parserSelectorToNegativeSelector(notSelector)) : []; + return positive.concat(...negative); +} +function parseSelectorToR3Selector(selector) { + return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : []; +} +var core = /*#__PURE__*/Object.freeze({ + __proto__: null, + emitDistinctChangesOnlyDefaultValue: emitDistinctChangesOnlyDefaultValue, + get ViewEncapsulation() { + return ViewEncapsulation; + }, + get ChangeDetectionStrategy() { + return ChangeDetectionStrategy; + }, + CUSTOM_ELEMENTS_SCHEMA: CUSTOM_ELEMENTS_SCHEMA, + NO_ERRORS_SCHEMA: NO_ERRORS_SCHEMA, + Type: Type$1, + get SecurityContext() { + return SecurityContext; + }, + get MissingTranslationStrategy() { + return MissingTranslationStrategy; + }, + parseSelectorToR3Selector: parseSelectorToR3Selector +}); + +/** + * Represents a big integer using a buffer of its individual digits, with the least significant + * digit stored at the beginning of the array (little endian). + * + * For performance reasons, each instance is mutable. The addition operation can be done in-place + * to reduce memory pressure of allocation for the digits array. + */ +class BigInteger { + static zero() { + return new BigInteger([0]); + } + static one() { + return new BigInteger([1]); + } + /** + * Creates a big integer using its individual digits in little endian storage. + */ + constructor(digits) { + this.digits = digits; + } + /** + * Creates a clone of this instance. + */ + clone() { + return new BigInteger(this.digits.slice()); + } + /** + * Returns a new big integer with the sum of `this` and `other` as its value. This does not mutate + * `this` but instead returns a new instance, unlike `addToSelf`. + */ + add(other) { + const result = this.clone(); + result.addToSelf(other); + return result; + } + /** + * Adds `other` to the instance itself, thereby mutating its value. + */ + addToSelf(other) { + const maxNrOfDigits = Math.max(this.digits.length, other.digits.length); + let carry = 0; + for (let i = 0; i < maxNrOfDigits; i++) { + let digitSum = carry; + if (i < this.digits.length) { + digitSum += this.digits[i]; + } + if (i < other.digits.length) { + digitSum += other.digits[i]; + } + if (digitSum >= 10) { + this.digits[i] = digitSum - 10; + carry = 1; + } else { + this.digits[i] = digitSum; + carry = 0; + } + } + // Apply a remaining carry if needed. + if (carry > 0) { + this.digits[maxNrOfDigits] = 1; + } + } + /** + * Builds the decimal string representation of the big integer. As this is stored in + * little endian, the digits are concatenated in reverse order. + */ + toString() { + let res = ''; + for (let i = this.digits.length - 1; i >= 0; i--) { + res += this.digits[i]; + } + return res; + } +} +/** + * Represents a big integer which is optimized for multiplication operations, as its power-of-twos + * are memoized. See `multiplyBy()` for details on the multiplication algorithm. + */ +class BigIntForMultiplication { + constructor(value) { + this.powerOfTwos = [value]; + } + /** + * Returns the big integer itself. + */ + getValue() { + return this.powerOfTwos[0]; + } + /** + * Computes the value for `num * b`, where `num` is a JS number and `b` is a big integer. The + * value for `b` is represented by a storage model that is optimized for this computation. + * + * This operation is implemented in N(log2(num)) by continuous halving of the number, where the + * least-significant bit (LSB) is tested in each iteration. If the bit is set, the bit's index is + * used as exponent into the power-of-two multiplication of `b`. + * + * As an example, consider the multiplication num=42, b=1337. In binary 42 is 0b00101010 and the + * algorithm unrolls into the following iterations: + * + * Iteration | num | LSB | b * 2^iter | Add? | product + * -----------|------------|------|------------|------|-------- + * 0 | 0b00101010 | 0 | 1337 | No | 0 + * 1 | 0b00010101 | 1 | 2674 | Yes | 2674 + * 2 | 0b00001010 | 0 | 5348 | No | 2674 + * 3 | 0b00000101 | 1 | 10696 | Yes | 13370 + * 4 | 0b00000010 | 0 | 21392 | No | 13370 + * 5 | 0b00000001 | 1 | 42784 | Yes | 56154 + * 6 | 0b00000000 | 0 | 85568 | No | 56154 + * + * The computed product of 56154 is indeed the correct result. + * + * The `BigIntForMultiplication` representation for a big integer provides memoized access to the + * power-of-two values to reduce the workload in computing those values. + */ + multiplyBy(num) { + const product = BigInteger.zero(); + this.multiplyByAndAddTo(num, product); + return product; + } + /** + * See `multiplyBy()` for details. This function allows for the computed product to be added + * directly to the provided result big integer. + */ + multiplyByAndAddTo(num, result) { + for (let exponent = 0; num !== 0; num = num >>> 1, exponent++) { + if (num & 1) { + const value = this.getMultipliedByPowerOfTwo(exponent); + result.addToSelf(value); + } + } + } + /** + * Computes and memoizes the big integer value for `this.number * 2^exponent`. + */ + getMultipliedByPowerOfTwo(exponent) { + // Compute the powers up until the requested exponent, where each value is computed from its + // predecessor. This is simple as `this.number * 2^(exponent - 1)` only has to be doubled (i.e. + // added to itself) to reach `this.number * 2^exponent`. + for (let i = this.powerOfTwos.length; i <= exponent; i++) { + const previousPower = this.powerOfTwos[i - 1]; + this.powerOfTwos[i] = previousPower.add(previousPower); + } + return this.powerOfTwos[exponent]; + } +} +/** + * Represents an exponentiation operation for the provided base, of which exponents are computed and + * memoized. The results are represented by a `BigIntForMultiplication` which is tailored for + * multiplication operations by memoizing the power-of-twos. This effectively results in a matrix + * representation that is lazily computed upon request. + */ +class BigIntExponentiation { + constructor(base) { + this.base = base; + this.exponents = [new BigIntForMultiplication(BigInteger.one())]; + } + /** + * Compute the value for `this.base^exponent`, resulting in a big integer that is optimized for + * further multiplication operations. + */ + toThePowerOf(exponent) { + // Compute the results up until the requested exponent, where every value is computed from its + // predecessor. This is because `this.base^(exponent - 1)` only has to be multiplied by `base` + // to reach `this.base^exponent`. + for (let i = this.exponents.length; i <= exponent; i++) { + const value = this.exponents[i - 1].multiplyBy(this.base); + this.exponents[i] = new BigIntForMultiplication(value); + } + return this.exponents[exponent]; + } +} + +/** + * A lazily created TextEncoder instance for converting strings into UTF-8 bytes + */ +let textEncoder; +/** + * Return the message id or compute it using the XLIFF1 digest. + */ +function digest$1(message) { + return message.id || computeDigest(message); +} +/** + * Compute the message id using the XLIFF1 digest. + */ +function computeDigest(message) { + return sha1(serializeNodes(message.nodes).join('') + `[${message.meaning}]`); +} +/** + * Return the message id or compute it using the XLIFF2/XMB/$localize digest. + */ +function decimalDigest(message) { + return message.id || computeDecimalDigest(message); +} +/** + * Compute the message id using the XLIFF2/XMB/$localize digest. + */ +function computeDecimalDigest(message) { + const visitor = new _SerializerIgnoreIcuExpVisitor(); + const parts = message.nodes.map(a => a.visit(visitor, null)); + return computeMsgId(parts.join(''), message.meaning); +} +/** + * Serialize the i18n ast to something xml-like in order to generate an UID. + * + * The visitor is also used in the i18n parser tests + * + * @internal + */ +class _SerializerVisitor { + visitText(text, context) { + return text.value; + } + visitContainer(container, context) { + return `[${container.children.map(child => child.visit(this)).join(', ')}]`; + } + visitIcu(icu, context) { + const strCases = Object.keys(icu.cases).map(k => `${k} {${icu.cases[k].visit(this)}}`); + return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`; + } + visitTagPlaceholder(ph, context) { + return ph.isVoid ? `` : `${ph.children.map(child => child.visit(this)).join(', ')}`; + } + visitPlaceholder(ph, context) { + return ph.value ? `${ph.value}` : ``; + } + visitIcuPlaceholder(ph, context) { + return `${ph.value.visit(this)}`; + } +} +const serializerVisitor$1 = new _SerializerVisitor(); +function serializeNodes(nodes) { + return nodes.map(a => a.visit(serializerVisitor$1, null)); +} +/** + * Serialize the i18n ast to something xml-like in order to generate an UID. + * + * Ignore the ICU expressions so that message IDs stays identical if only the expression changes. + * + * @internal + */ +class _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor { + visitIcu(icu, context) { + let strCases = Object.keys(icu.cases).map(k => `${k} {${icu.cases[k].visit(this)}}`); + // Do not take the expression into account + return `{${icu.type}, ${strCases.join(', ')}}`; + } +} +/** + * Compute the SHA1 of the given string + * + * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf + * + * WARNING: this function has not been designed not tested with security in mind. + * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT. + */ +function sha1(str) { + textEncoder ??= new TextEncoder(); + const utf8 = [...textEncoder.encode(str)]; + const words32 = bytesToWords32(utf8, Endian.Big); + const len = utf8.length * 8; + const w = new Uint32Array(80); + let a = 0x67452301, + b = 0xefcdab89, + c = 0x98badcfe, + d = 0x10325476, + e = 0xc3d2e1f0; + words32[len >> 5] |= 0x80 << 24 - len % 32; + words32[(len + 64 >> 9 << 4) + 15] = len; + for (let i = 0; i < words32.length; i += 16) { + const h0 = a, + h1 = b, + h2 = c, + h3 = d, + h4 = e; + for (let j = 0; j < 80; j++) { + if (j < 16) { + w[j] = words32[i + j]; + } else { + w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1); + } + const fkVal = fk(j, b, c, d); + const f = fkVal[0]; + const k = fkVal[1]; + const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32); + e = d; + d = c; + c = rol32(b, 30); + b = a; + a = temp; + } + a = add32(a, h0); + b = add32(b, h1); + c = add32(c, h2); + d = add32(d, h3); + e = add32(e, h4); + } + // Convert the output parts to a 160-bit hexadecimal string + return toHexU32(a) + toHexU32(b) + toHexU32(c) + toHexU32(d) + toHexU32(e); +} +/** + * Convert and format a number as a string representing a 32-bit unsigned hexadecimal number. + * @param value The value to format as a string. + * @returns A hexadecimal string representing the value. + */ +function toHexU32(value) { + // unsigned right shift of zero ensures an unsigned 32-bit number + return (value >>> 0).toString(16).padStart(8, '0'); +} +function fk(index, b, c, d) { + if (index < 20) { + return [b & c | ~b & d, 0x5a827999]; + } + if (index < 40) { + return [b ^ c ^ d, 0x6ed9eba1]; + } + if (index < 60) { + return [b & c | b & d | c & d, 0x8f1bbcdc]; + } + return [b ^ c ^ d, 0xca62c1d6]; +} +/** + * Compute the fingerprint of the given string + * + * The output is 64 bit number encoded as a decimal string + * + * based on: + * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/GoogleJsMessageIdGenerator.java + */ +function fingerprint(str) { + textEncoder ??= new TextEncoder(); + const utf8 = textEncoder.encode(str); + const view = new DataView(utf8.buffer, utf8.byteOffset, utf8.byteLength); + let hi = hash32(view, utf8.length, 0); + let lo = hash32(view, utf8.length, 102072); + if (hi == 0 && (lo == 0 || lo == 1)) { + hi = hi ^ 0x130f9bef; + lo = lo ^ -0x6b5f56d8; + } + return [hi, lo]; +} +function computeMsgId(msg, meaning = '') { + let msgFingerprint = fingerprint(msg); + if (meaning) { + const meaningFingerprint = fingerprint(meaning); + msgFingerprint = add64(rol64(msgFingerprint, 1), meaningFingerprint); + } + const hi = msgFingerprint[0]; + const lo = msgFingerprint[1]; + return wordsToDecimalString(hi & 0x7fffffff, lo); +} +function hash32(view, length, c) { + let a = 0x9e3779b9, + b = 0x9e3779b9; + let index = 0; + const end = length - 12; + for (; index <= end; index += 12) { + a += view.getUint32(index, true); + b += view.getUint32(index + 4, true); + c += view.getUint32(index + 8, true); + const res = mix(a, b, c); + a = res[0], b = res[1], c = res[2]; + } + const remainder = length - index; + // the first byte of c is reserved for the length + c += length; + if (remainder >= 4) { + a += view.getUint32(index, true); + index += 4; + if (remainder >= 8) { + b += view.getUint32(index, true); + index += 4; + // Partial 32-bit word for c + if (remainder >= 9) { + c += view.getUint8(index++) << 8; + } + if (remainder >= 10) { + c += view.getUint8(index++) << 16; + } + if (remainder === 11) { + c += view.getUint8(index++) << 24; + } + } else { + // Partial 32-bit word for b + if (remainder >= 5) { + b += view.getUint8(index++); + } + if (remainder >= 6) { + b += view.getUint8(index++) << 8; + } + if (remainder === 7) { + b += view.getUint8(index++) << 16; + } + } + } else { + // Partial 32-bit word for a + if (remainder >= 1) { + a += view.getUint8(index++); + } + if (remainder >= 2) { + a += view.getUint8(index++) << 8; + } + if (remainder === 3) { + a += view.getUint8(index++) << 16; + } + } + return mix(a, b, c)[2]; +} +// clang-format off +function mix(a, b, c) { + a -= b; + a -= c; + a ^= c >>> 13; + b -= c; + b -= a; + b ^= a << 8; + c -= a; + c -= b; + c ^= b >>> 13; + a -= b; + a -= c; + a ^= c >>> 12; + b -= c; + b -= a; + b ^= a << 16; + c -= a; + c -= b; + c ^= b >>> 5; + a -= b; + a -= c; + a ^= c >>> 3; + b -= c; + b -= a; + b ^= a << 10; + c -= a; + c -= b; + c ^= b >>> 15; + return [a, b, c]; +} +// clang-format on +// Utils +var Endian; +(function (Endian) { + Endian[Endian["Little"] = 0] = "Little"; + Endian[Endian["Big"] = 1] = "Big"; +})(Endian || (Endian = {})); +function add32(a, b) { + return add32to64(a, b)[1]; +} +function add32to64(a, b) { + const low = (a & 0xffff) + (b & 0xffff); + const high = (a >>> 16) + (b >>> 16) + (low >>> 16); + return [high >>> 16, high << 16 | low & 0xffff]; +} +function add64(a, b) { + const ah = a[0], + al = a[1]; + const bh = b[0], + bl = b[1]; + const result = add32to64(al, bl); + const carry = result[0]; + const l = result[1]; + const h = add32(add32(ah, bh), carry); + return [h, l]; +} +// Rotate a 32b number left `count` position +function rol32(a, count) { + return a << count | a >>> 32 - count; +} +// Rotate a 64b number left `count` position +function rol64(num, count) { + const hi = num[0], + lo = num[1]; + const h = hi << count | lo >>> 32 - count; + const l = lo << count | hi >>> 32 - count; + return [h, l]; +} +function bytesToWords32(bytes, endian) { + const size = bytes.length + 3 >>> 2; + const words32 = []; + for (let i = 0; i < size; i++) { + words32[i] = wordAt(bytes, i * 4, endian); + } + return words32; +} +function byteAt(bytes, index) { + return index >= bytes.length ? 0 : bytes[index]; +} +function wordAt(bytes, index, endian) { + let word = 0; + if (endian === Endian.Big) { + for (let i = 0; i < 4; i++) { + word += byteAt(bytes, index + i) << 24 - 8 * i; + } + } else { + for (let i = 0; i < 4; i++) { + word += byteAt(bytes, index + i) << 8 * i; + } + } + return word; +} +/** + * Create a shared exponentiation pool for base-256 computations. This shared pool provides memoized + * power-of-256 results with memoized power-of-two computations for efficient multiplication. + * + * For our purposes, this can be safely stored as a global without memory concerns. The reason is + * that we encode two words, so only need the 0th (for the low word) and 4th (for the high word) + * exponent. + */ +const base256 = new BigIntExponentiation(256); +/** + * Represents two 32-bit words as a single decimal number. This requires a big integer storage + * model as JS numbers are not accurate enough to represent the 64-bit number. + * + * Based on https://www.danvk.org/hex2dec.html + */ +function wordsToDecimalString(hi, lo) { + // Encode the four bytes in lo in the lower digits of the decimal number. + // Note: the multiplication results in lo itself but represented by a big integer using its + // decimal digits. + const decimal = base256.toThePowerOf(0).multiplyBy(lo); + // Encode the four bytes in hi above the four lo bytes. lo is a maximum of (2^8)^4, which is why + // this multiplication factor is applied. + base256.toThePowerOf(4).multiplyByAndAddTo(hi, decimal); + return decimal.toString(); +} + +//// Types +var TypeModifier; +(function (TypeModifier) { + TypeModifier[TypeModifier["None"] = 0] = "None"; + TypeModifier[TypeModifier["Const"] = 1] = "Const"; +})(TypeModifier || (TypeModifier = {})); +class Type { + constructor(modifiers = TypeModifier.None) { + this.modifiers = modifiers; + } + hasModifier(modifier) { + return (this.modifiers & modifier) !== 0; + } +} +var BuiltinTypeName; +(function (BuiltinTypeName) { + BuiltinTypeName[BuiltinTypeName["Dynamic"] = 0] = "Dynamic"; + BuiltinTypeName[BuiltinTypeName["Bool"] = 1] = "Bool"; + BuiltinTypeName[BuiltinTypeName["String"] = 2] = "String"; + BuiltinTypeName[BuiltinTypeName["Int"] = 3] = "Int"; + BuiltinTypeName[BuiltinTypeName["Number"] = 4] = "Number"; + BuiltinTypeName[BuiltinTypeName["Function"] = 5] = "Function"; + BuiltinTypeName[BuiltinTypeName["Inferred"] = 6] = "Inferred"; + BuiltinTypeName[BuiltinTypeName["None"] = 7] = "None"; +})(BuiltinTypeName || (BuiltinTypeName = {})); +class BuiltinType extends Type { + constructor(name, modifiers) { + super(modifiers); + this.name = name; + } + visitType(visitor, context) { + return visitor.visitBuiltinType(this, context); + } +} +class ExpressionType extends Type { + constructor(value, modifiers, typeParams = null) { + super(modifiers); + this.value = value; + this.typeParams = typeParams; + } + visitType(visitor, context) { + return visitor.visitExpressionType(this, context); + } +} +class ArrayType extends Type { + constructor(of, modifiers) { + super(modifiers); + this.of = of; + } + visitType(visitor, context) { + return visitor.visitArrayType(this, context); + } +} +class MapType extends Type { + constructor(valueType, modifiers) { + super(modifiers); + this.valueType = valueType || null; + } + visitType(visitor, context) { + return visitor.visitMapType(this, context); + } +} +class TransplantedType extends Type { + constructor(type, modifiers) { + super(modifiers); + this.type = type; + } + visitType(visitor, context) { + return visitor.visitTransplantedType(this, context); + } +} +const DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic); +const INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred); +const BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool); +const INT_TYPE = new BuiltinType(BuiltinTypeName.Int); +const NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number); +const STRING_TYPE = new BuiltinType(BuiltinTypeName.String); +const FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function); +const NONE_TYPE = new BuiltinType(BuiltinTypeName.None); +///// Expressions +var UnaryOperator; +(function (UnaryOperator) { + UnaryOperator[UnaryOperator["Minus"] = 0] = "Minus"; + UnaryOperator[UnaryOperator["Plus"] = 1] = "Plus"; +})(UnaryOperator || (UnaryOperator = {})); +var BinaryOperator; +(function (BinaryOperator) { + BinaryOperator[BinaryOperator["Equals"] = 0] = "Equals"; + BinaryOperator[BinaryOperator["NotEquals"] = 1] = "NotEquals"; + BinaryOperator[BinaryOperator["Identical"] = 2] = "Identical"; + BinaryOperator[BinaryOperator["NotIdentical"] = 3] = "NotIdentical"; + BinaryOperator[BinaryOperator["Minus"] = 4] = "Minus"; + BinaryOperator[BinaryOperator["Plus"] = 5] = "Plus"; + BinaryOperator[BinaryOperator["Divide"] = 6] = "Divide"; + BinaryOperator[BinaryOperator["Multiply"] = 7] = "Multiply"; + BinaryOperator[BinaryOperator["Modulo"] = 8] = "Modulo"; + BinaryOperator[BinaryOperator["And"] = 9] = "And"; + BinaryOperator[BinaryOperator["Or"] = 10] = "Or"; + BinaryOperator[BinaryOperator["BitwiseAnd"] = 11] = "BitwiseAnd"; + BinaryOperator[BinaryOperator["Lower"] = 12] = "Lower"; + BinaryOperator[BinaryOperator["LowerEquals"] = 13] = "LowerEquals"; + BinaryOperator[BinaryOperator["Bigger"] = 14] = "Bigger"; + BinaryOperator[BinaryOperator["BiggerEquals"] = 15] = "BiggerEquals"; + BinaryOperator[BinaryOperator["NullishCoalesce"] = 16] = "NullishCoalesce"; +})(BinaryOperator || (BinaryOperator = {})); +function nullSafeIsEquivalent(base, other) { + if (base == null || other == null) { + return base == other; + } + return base.isEquivalent(other); +} +function areAllEquivalentPredicate(base, other, equivalentPredicate) { + const len = base.length; + if (len !== other.length) { + return false; + } + for (let i = 0; i < len; i++) { + if (!equivalentPredicate(base[i], other[i])) { + return false; + } + } + return true; +} +function areAllEquivalent(base, other) { + return areAllEquivalentPredicate(base, other, (baseElement, otherElement) => baseElement.isEquivalent(otherElement)); +} +class Expression { + constructor(type, sourceSpan) { + this.type = type || null; + this.sourceSpan = sourceSpan || null; + } + prop(name, sourceSpan) { + return new ReadPropExpr(this, name, null, sourceSpan); + } + key(index, type, sourceSpan) { + return new ReadKeyExpr(this, index, type, sourceSpan); + } + callFn(params, sourceSpan, pure) { + return new InvokeFunctionExpr(this, params, null, sourceSpan, pure); + } + instantiate(params, type, sourceSpan) { + return new InstantiateExpr(this, params, type, sourceSpan); + } + conditional(trueCase, falseCase = null, sourceSpan) { + return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan); + } + equals(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan); + } + notEquals(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan); + } + identical(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan); + } + notIdentical(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan); + } + minus(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan); + } + plus(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan); + } + divide(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan); + } + multiply(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan); + } + modulo(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan); + } + and(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan); + } + bitwiseAnd(rhs, sourceSpan, parens = true) { + return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens); + } + or(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan); + } + lower(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan); + } + lowerEquals(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan); + } + bigger(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan); + } + biggerEquals(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan); + } + isBlank(sourceSpan) { + // Note: We use equals by purpose here to compare to null and undefined in JS. + // We use the typed null to allow strictNullChecks to narrow types. + return this.equals(TYPED_NULL_EXPR, sourceSpan); + } + nullishCoalesce(rhs, sourceSpan) { + return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce, this, rhs, null, sourceSpan); + } + toStmt() { + return new ExpressionStatement(this, null); + } +} +class ReadVarExpr extends Expression { + constructor(name, type, sourceSpan) { + super(type, sourceSpan); + this.name = name; + } + isEquivalent(e) { + return e instanceof ReadVarExpr && this.name === e.name; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitReadVarExpr(this, context); + } + clone() { + return new ReadVarExpr(this.name, this.type, this.sourceSpan); + } + set(value) { + return new WriteVarExpr(this.name, value, null, this.sourceSpan); + } +} +class TypeofExpr extends Expression { + constructor(expr, type, sourceSpan) { + super(type, sourceSpan); + this.expr = expr; + } + visitExpression(visitor, context) { + return visitor.visitTypeofExpr(this, context); + } + isEquivalent(e) { + return e instanceof TypeofExpr && e.expr.isEquivalent(this.expr); + } + isConstant() { + return this.expr.isConstant(); + } + clone() { + return new TypeofExpr(this.expr.clone()); + } +} +class WrappedNodeExpr extends Expression { + constructor(node, type, sourceSpan) { + super(type, sourceSpan); + this.node = node; + } + isEquivalent(e) { + return e instanceof WrappedNodeExpr && this.node === e.node; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitWrappedNodeExpr(this, context); + } + clone() { + return new WrappedNodeExpr(this.node, this.type, this.sourceSpan); + } +} +class WriteVarExpr extends Expression { + constructor(name, value, type, sourceSpan) { + super(type || value.type, sourceSpan); + this.name = name; + this.value = value; + } + isEquivalent(e) { + return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitWriteVarExpr(this, context); + } + clone() { + return new WriteVarExpr(this.name, this.value.clone(), this.type, this.sourceSpan); + } + toDeclStmt(type, modifiers) { + return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan); + } + toConstDecl() { + return this.toDeclStmt(INFERRED_TYPE, StmtModifier.Final); + } +} +class WriteKeyExpr extends Expression { + constructor(receiver, index, value, type, sourceSpan) { + super(type || value.type, sourceSpan); + this.receiver = receiver; + this.index = index; + this.value = value; + } + isEquivalent(e) { + return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) && this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitWriteKeyExpr(this, context); + } + clone() { + return new WriteKeyExpr(this.receiver.clone(), this.index.clone(), this.value.clone(), this.type, this.sourceSpan); + } +} +class WritePropExpr extends Expression { + constructor(receiver, name, value, type, sourceSpan) { + super(type || value.type, sourceSpan); + this.receiver = receiver; + this.name = name; + this.value = value; + } + isEquivalent(e) { + return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) && this.name === e.name && this.value.isEquivalent(e.value); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitWritePropExpr(this, context); + } + clone() { + return new WritePropExpr(this.receiver.clone(), this.name, this.value.clone(), this.type, this.sourceSpan); + } +} +class InvokeFunctionExpr extends Expression { + constructor(fn, args, type, sourceSpan, pure = false) { + super(type, sourceSpan); + this.fn = fn; + this.args = args; + this.pure = pure; + } + // An alias for fn, which allows other logic to handle calls and property reads together. + get receiver() { + return this.fn; + } + isEquivalent(e) { + return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) && areAllEquivalent(this.args, e.args) && this.pure === e.pure; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitInvokeFunctionExpr(this, context); + } + clone() { + return new InvokeFunctionExpr(this.fn.clone(), this.args.map(arg => arg.clone()), this.type, this.sourceSpan, this.pure); + } +} +class TaggedTemplateExpr extends Expression { + constructor(tag, template, type, sourceSpan) { + super(type, sourceSpan); + this.tag = tag; + this.template = template; + } + isEquivalent(e) { + return e instanceof TaggedTemplateExpr && this.tag.isEquivalent(e.tag) && areAllEquivalentPredicate(this.template.elements, e.template.elements, (a, b) => a.text === b.text) && areAllEquivalent(this.template.expressions, e.template.expressions); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitTaggedTemplateExpr(this, context); + } + clone() { + return new TaggedTemplateExpr(this.tag.clone(), this.template.clone(), this.type, this.sourceSpan); + } +} +class InstantiateExpr extends Expression { + constructor(classExpr, args, type, sourceSpan) { + super(type, sourceSpan); + this.classExpr = classExpr; + this.args = args; + } + isEquivalent(e) { + return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) && areAllEquivalent(this.args, e.args); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitInstantiateExpr(this, context); + } + clone() { + return new InstantiateExpr(this.classExpr.clone(), this.args.map(arg => arg.clone()), this.type, this.sourceSpan); + } +} +class LiteralExpr extends Expression { + constructor(value, type, sourceSpan) { + super(type, sourceSpan); + this.value = value; + } + isEquivalent(e) { + return e instanceof LiteralExpr && this.value === e.value; + } + isConstant() { + return true; + } + visitExpression(visitor, context) { + return visitor.visitLiteralExpr(this, context); + } + clone() { + return new LiteralExpr(this.value, this.type, this.sourceSpan); + } +} +class TemplateLiteral { + constructor(elements, expressions) { + this.elements = elements; + this.expressions = expressions; + } + clone() { + return new TemplateLiteral(this.elements.map(el => el.clone()), this.expressions.map(expr => expr.clone())); + } +} +class TemplateLiteralElement { + constructor(text, sourceSpan, rawText) { + this.text = text; + this.sourceSpan = sourceSpan; + // If `rawText` is not provided, try to extract the raw string from its + // associated `sourceSpan`. If that is also not available, "fake" the raw + // string instead by escaping the following control sequences: + // - "\" would otherwise indicate that the next character is a control character. + // - "`" and "${" are template string control sequences that would otherwise prematurely + // indicate the end of the template literal element. + this.rawText = rawText ?? sourceSpan?.toString() ?? escapeForTemplateLiteral(escapeSlashes(text)); + } + clone() { + return new TemplateLiteralElement(this.text, this.sourceSpan, this.rawText); + } +} +class LiteralPiece { + constructor(text, sourceSpan) { + this.text = text; + this.sourceSpan = sourceSpan; + } +} +class PlaceholderPiece { + /** + * Create a new instance of a `PlaceholderPiece`. + * + * @param text the name of this placeholder (e.g. `PH_1`). + * @param sourceSpan the location of this placeholder in its localized message the source code. + * @param associatedMessage reference to another message that this placeholder is associated with. + * The `associatedMessage` is mainly used to provide a relationship to an ICU message that has + * been extracted out from the message containing the placeholder. + */ + constructor(text, sourceSpan, associatedMessage) { + this.text = text; + this.sourceSpan = sourceSpan; + this.associatedMessage = associatedMessage; + } +} +const MEANING_SEPARATOR$1 = '|'; +const ID_SEPARATOR$1 = '@@'; +const LEGACY_ID_INDICATOR = '␟'; +class LocalizedString extends Expression { + constructor(metaBlock, messageParts, placeHolderNames, expressions, sourceSpan) { + super(STRING_TYPE, sourceSpan); + this.metaBlock = metaBlock; + this.messageParts = messageParts; + this.placeHolderNames = placeHolderNames; + this.expressions = expressions; + } + isEquivalent(e) { + // return e instanceof LocalizedString && this.message === e.message; + return false; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitLocalizedString(this, context); + } + clone() { + return new LocalizedString(this.metaBlock, this.messageParts, this.placeHolderNames, this.expressions.map(expr => expr.clone()), this.sourceSpan); + } + /** + * Serialize the given `meta` and `messagePart` into "cooked" and "raw" strings that can be used + * in a `$localize` tagged string. The format of the metadata is the same as that parsed by + * `parseI18nMeta()`. + * + * @param meta The metadata to serialize + * @param messagePart The first part of the tagged string + */ + serializeI18nHead() { + let metaBlock = this.metaBlock.description || ''; + if (this.metaBlock.meaning) { + metaBlock = `${this.metaBlock.meaning}${MEANING_SEPARATOR$1}${metaBlock}`; + } + if (this.metaBlock.customId) { + metaBlock = `${metaBlock}${ID_SEPARATOR$1}${this.metaBlock.customId}`; + } + if (this.metaBlock.legacyIds) { + this.metaBlock.legacyIds.forEach(legacyId => { + metaBlock = `${metaBlock}${LEGACY_ID_INDICATOR}${legacyId}`; + }); + } + return createCookedRawString(metaBlock, this.messageParts[0].text, this.getMessagePartSourceSpan(0)); + } + getMessagePartSourceSpan(i) { + return this.messageParts[i]?.sourceSpan ?? this.sourceSpan; + } + getPlaceholderSourceSpan(i) { + return this.placeHolderNames[i]?.sourceSpan ?? this.expressions[i]?.sourceSpan ?? this.sourceSpan; + } + /** + * Serialize the given `placeholderName` and `messagePart` into "cooked" and "raw" strings that + * can be used in a `$localize` tagged string. + * + * The format is `:[@@]:`. + * + * The `associated-id` is the message id of the (usually an ICU) message to which this placeholder + * refers. + * + * @param partIndex The index of the message part to serialize. + */ + serializeI18nTemplatePart(partIndex) { + const placeholder = this.placeHolderNames[partIndex - 1]; + const messagePart = this.messageParts[partIndex]; + let metaBlock = placeholder.text; + if (placeholder.associatedMessage?.legacyIds.length === 0) { + metaBlock += `${ID_SEPARATOR$1}${computeMsgId(placeholder.associatedMessage.messageString, placeholder.associatedMessage.meaning)}`; + } + return createCookedRawString(metaBlock, messagePart.text, this.getMessagePartSourceSpan(partIndex)); + } +} +const escapeSlashes = str => str.replace(/\\/g, '\\\\'); +const escapeStartingColon = str => str.replace(/^:/, '\\:'); +const escapeColons = str => str.replace(/:/g, '\\:'); +const escapeForTemplateLiteral = str => str.replace(/`/g, '\\`').replace(/\${/g, '$\\{'); +/** + * Creates a `{cooked, raw}` object from the `metaBlock` and `messagePart`. + * + * The `raw` text must have various character sequences escaped: + * * "\" would otherwise indicate that the next character is a control character. + * * "`" and "${" are template string control sequences that would otherwise prematurely indicate + * the end of a message part. + * * ":" inside a metablock would prematurely indicate the end of the metablock. + * * ":" at the start of a messagePart with no metablock would erroneously indicate the start of a + * metablock. + * + * @param metaBlock Any metadata that should be prepended to the string + * @param messagePart The message part of the string + */ +function createCookedRawString(metaBlock, messagePart, range) { + if (metaBlock === '') { + return { + cooked: messagePart, + raw: escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))), + range + }; + } else { + return { + cooked: `:${metaBlock}:${messagePart}`, + raw: escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`), + range + }; + } +} +class ExternalExpr extends Expression { + constructor(value, type, typeParams = null, sourceSpan) { + super(type, sourceSpan); + this.value = value; + this.typeParams = typeParams; + } + isEquivalent(e) { + return e instanceof ExternalExpr && this.value.name === e.value.name && this.value.moduleName === e.value.moduleName && this.value.runtime === e.value.runtime; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitExternalExpr(this, context); + } + clone() { + return new ExternalExpr(this.value, this.type, this.typeParams, this.sourceSpan); + } +} +class ExternalReference { + constructor(moduleName, name, runtime) { + this.moduleName = moduleName; + this.name = name; + this.runtime = runtime; + } +} +class ConditionalExpr extends Expression { + constructor(condition, trueCase, falseCase = null, type, sourceSpan) { + super(type || trueCase.type, sourceSpan); + this.condition = condition; + this.falseCase = falseCase; + this.trueCase = trueCase; + } + isEquivalent(e) { + return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) && this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitConditionalExpr(this, context); + } + clone() { + return new ConditionalExpr(this.condition.clone(), this.trueCase.clone(), this.falseCase?.clone(), this.type, this.sourceSpan); + } +} +class DynamicImportExpr extends Expression { + constructor(url, sourceSpan) { + super(null, sourceSpan); + this.url = url; + } + isEquivalent(e) { + return e instanceof DynamicImportExpr && this.url === e.url; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitDynamicImportExpr(this, context); + } + clone() { + return new DynamicImportExpr(this.url, this.sourceSpan); + } +} +class NotExpr extends Expression { + constructor(condition, sourceSpan) { + super(BOOL_TYPE, sourceSpan); + this.condition = condition; + } + isEquivalent(e) { + return e instanceof NotExpr && this.condition.isEquivalent(e.condition); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitNotExpr(this, context); + } + clone() { + return new NotExpr(this.condition.clone(), this.sourceSpan); + } +} +class FnParam { + constructor(name, type = null) { + this.name = name; + this.type = type; + } + isEquivalent(param) { + return this.name === param.name; + } + clone() { + return new FnParam(this.name, this.type); + } +} +class FunctionExpr extends Expression { + constructor(params, statements, type, sourceSpan, name) { + super(type, sourceSpan); + this.params = params; + this.statements = statements; + this.name = name; + } + isEquivalent(e) { + return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) && areAllEquivalent(this.statements, e.statements); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitFunctionExpr(this, context); + } + toDeclStmt(name, modifiers) { + return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers, this.sourceSpan); + } + clone() { + // TODO: Should we deep clone statements? + return new FunctionExpr(this.params.map(p => p.clone()), this.statements, this.type, this.sourceSpan, this.name); + } +} +class UnaryOperatorExpr extends Expression { + constructor(operator, expr, type, sourceSpan, parens = true) { + super(type || NUMBER_TYPE, sourceSpan); + this.operator = operator; + this.expr = expr; + this.parens = parens; + } + isEquivalent(e) { + return e instanceof UnaryOperatorExpr && this.operator === e.operator && this.expr.isEquivalent(e.expr); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitUnaryOperatorExpr(this, context); + } + clone() { + return new UnaryOperatorExpr(this.operator, this.expr.clone(), this.type, this.sourceSpan, this.parens); + } +} +class BinaryOperatorExpr extends Expression { + constructor(operator, lhs, rhs, type, sourceSpan, parens = true) { + super(type || lhs.type, sourceSpan); + this.operator = operator; + this.rhs = rhs; + this.parens = parens; + this.lhs = lhs; + } + isEquivalent(e) { + return e instanceof BinaryOperatorExpr && this.operator === e.operator && this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitBinaryOperatorExpr(this, context); + } + clone() { + return new BinaryOperatorExpr(this.operator, this.lhs.clone(), this.rhs.clone(), this.type, this.sourceSpan, this.parens); + } +} +class ReadPropExpr extends Expression { + constructor(receiver, name, type, sourceSpan) { + super(type, sourceSpan); + this.receiver = receiver; + this.name = name; + } + // An alias for name, which allows other logic to handle property reads and keyed reads together. + get index() { + return this.name; + } + isEquivalent(e) { + return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) && this.name === e.name; + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitReadPropExpr(this, context); + } + set(value) { + return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan); + } + clone() { + return new ReadPropExpr(this.receiver.clone(), this.name, this.type, this.sourceSpan); + } +} +class ReadKeyExpr extends Expression { + constructor(receiver, index, type, sourceSpan) { + super(type, sourceSpan); + this.receiver = receiver; + this.index = index; + } + isEquivalent(e) { + return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) && this.index.isEquivalent(e.index); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitReadKeyExpr(this, context); + } + set(value) { + return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan); + } + clone() { + return new ReadKeyExpr(this.receiver.clone(), this.index.clone(), this.type, this.sourceSpan); + } +} +class LiteralArrayExpr extends Expression { + constructor(entries, type, sourceSpan) { + super(type, sourceSpan); + this.entries = entries; + } + isConstant() { + return this.entries.every(e => e.isConstant()); + } + isEquivalent(e) { + return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries); + } + visitExpression(visitor, context) { + return visitor.visitLiteralArrayExpr(this, context); + } + clone() { + return new LiteralArrayExpr(this.entries.map(e => e.clone()), this.type, this.sourceSpan); + } +} +class LiteralMapEntry { + constructor(key, value, quoted) { + this.key = key; + this.value = value; + this.quoted = quoted; + } + isEquivalent(e) { + return this.key === e.key && this.value.isEquivalent(e.value); + } + clone() { + return new LiteralMapEntry(this.key, this.value.clone(), this.quoted); + } +} +class LiteralMapExpr extends Expression { + constructor(entries, type, sourceSpan) { + super(type, sourceSpan); + this.entries = entries; + this.valueType = null; + if (type) { + this.valueType = type.valueType; + } + } + isEquivalent(e) { + return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries); + } + isConstant() { + return this.entries.every(e => e.value.isConstant()); + } + visitExpression(visitor, context) { + return visitor.visitLiteralMapExpr(this, context); + } + clone() { + const entriesClone = this.entries.map(entry => entry.clone()); + return new LiteralMapExpr(entriesClone, this.type, this.sourceSpan); + } +} +class CommaExpr extends Expression { + constructor(parts, sourceSpan) { + super(parts[parts.length - 1].type, sourceSpan); + this.parts = parts; + } + isEquivalent(e) { + return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts); + } + isConstant() { + return false; + } + visitExpression(visitor, context) { + return visitor.visitCommaExpr(this, context); + } + clone() { + return new CommaExpr(this.parts.map(p => p.clone())); + } +} +const NULL_EXPR = new LiteralExpr(null, null, null); +const TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null); +//// Statements +var StmtModifier; +(function (StmtModifier) { + StmtModifier[StmtModifier["None"] = 0] = "None"; + StmtModifier[StmtModifier["Final"] = 1] = "Final"; + StmtModifier[StmtModifier["Private"] = 2] = "Private"; + StmtModifier[StmtModifier["Exported"] = 4] = "Exported"; + StmtModifier[StmtModifier["Static"] = 8] = "Static"; +})(StmtModifier || (StmtModifier = {})); +class LeadingComment { + constructor(text, multiline, trailingNewline) { + this.text = text; + this.multiline = multiline; + this.trailingNewline = trailingNewline; + } + toString() { + return this.multiline ? ` ${this.text} ` : this.text; + } +} +class JSDocComment extends LeadingComment { + constructor(tags) { + super('', /* multiline */true, /* trailingNewline */true); + this.tags = tags; + } + toString() { + return serializeTags(this.tags); + } +} +class Statement { + constructor(modifiers = StmtModifier.None, sourceSpan = null, leadingComments) { + this.modifiers = modifiers; + this.sourceSpan = sourceSpan; + this.leadingComments = leadingComments; + } + hasModifier(modifier) { + return (this.modifiers & modifier) !== 0; + } + addLeadingComment(leadingComment) { + this.leadingComments = this.leadingComments ?? []; + this.leadingComments.push(leadingComment); + } +} +class DeclareVarStmt extends Statement { + constructor(name, value, type, modifiers, sourceSpan, leadingComments) { + super(modifiers, sourceSpan, leadingComments); + this.name = name; + this.value = value; + this.type = type || value && value.type || null; + } + isEquivalent(stmt) { + return stmt instanceof DeclareVarStmt && this.name === stmt.name && (this.value ? !!stmt.value && this.value.isEquivalent(stmt.value) : !stmt.value); + } + visitStatement(visitor, context) { + return visitor.visitDeclareVarStmt(this, context); + } +} +class DeclareFunctionStmt extends Statement { + constructor(name, params, statements, type, modifiers, sourceSpan, leadingComments) { + super(modifiers, sourceSpan, leadingComments); + this.name = name; + this.params = params; + this.statements = statements; + this.type = type || null; + } + isEquivalent(stmt) { + return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) && areAllEquivalent(this.statements, stmt.statements); + } + visitStatement(visitor, context) { + return visitor.visitDeclareFunctionStmt(this, context); + } +} +class ExpressionStatement extends Statement { + constructor(expr, sourceSpan, leadingComments) { + super(StmtModifier.None, sourceSpan, leadingComments); + this.expr = expr; + } + isEquivalent(stmt) { + return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr); + } + visitStatement(visitor, context) { + return visitor.visitExpressionStmt(this, context); + } +} +class ReturnStatement extends Statement { + constructor(value, sourceSpan = null, leadingComments) { + super(StmtModifier.None, sourceSpan, leadingComments); + this.value = value; + } + isEquivalent(stmt) { + return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value); + } + visitStatement(visitor, context) { + return visitor.visitReturnStmt(this, context); + } +} +class IfStmt extends Statement { + constructor(condition, trueCase, falseCase = [], sourceSpan, leadingComments) { + super(StmtModifier.None, sourceSpan, leadingComments); + this.condition = condition; + this.trueCase = trueCase; + this.falseCase = falseCase; + } + isEquivalent(stmt) { + return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) && areAllEquivalent(this.trueCase, stmt.trueCase) && areAllEquivalent(this.falseCase, stmt.falseCase); + } + visitStatement(visitor, context) { + return visitor.visitIfStmt(this, context); + } +} +class RecursiveAstVisitor$1 { + visitType(ast, context) { + return ast; + } + visitExpression(ast, context) { + if (ast.type) { + ast.type.visitType(this, context); + } + return ast; + } + visitBuiltinType(type, context) { + return this.visitType(type, context); + } + visitExpressionType(type, context) { + type.value.visitExpression(this, context); + if (type.typeParams !== null) { + type.typeParams.forEach(param => this.visitType(param, context)); + } + return this.visitType(type, context); + } + visitArrayType(type, context) { + return this.visitType(type, context); + } + visitMapType(type, context) { + return this.visitType(type, context); + } + visitTransplantedType(type, context) { + return type; + } + visitWrappedNodeExpr(ast, context) { + return ast; + } + visitTypeofExpr(ast, context) { + return this.visitExpression(ast, context); + } + visitReadVarExpr(ast, context) { + return this.visitExpression(ast, context); + } + visitWriteVarExpr(ast, context) { + ast.value.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitWriteKeyExpr(ast, context) { + ast.receiver.visitExpression(this, context); + ast.index.visitExpression(this, context); + ast.value.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitWritePropExpr(ast, context) { + ast.receiver.visitExpression(this, context); + ast.value.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitDynamicImportExpr(ast, context) { + return this.visitExpression(ast, context); + } + visitInvokeFunctionExpr(ast, context) { + ast.fn.visitExpression(this, context); + this.visitAllExpressions(ast.args, context); + return this.visitExpression(ast, context); + } + visitTaggedTemplateExpr(ast, context) { + ast.tag.visitExpression(this, context); + this.visitAllExpressions(ast.template.expressions, context); + return this.visitExpression(ast, context); + } + visitInstantiateExpr(ast, context) { + ast.classExpr.visitExpression(this, context); + this.visitAllExpressions(ast.args, context); + return this.visitExpression(ast, context); + } + visitLiteralExpr(ast, context) { + return this.visitExpression(ast, context); + } + visitLocalizedString(ast, context) { + return this.visitExpression(ast, context); + } + visitExternalExpr(ast, context) { + if (ast.typeParams) { + ast.typeParams.forEach(type => type.visitType(this, context)); + } + return this.visitExpression(ast, context); + } + visitConditionalExpr(ast, context) { + ast.condition.visitExpression(this, context); + ast.trueCase.visitExpression(this, context); + ast.falseCase.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitNotExpr(ast, context) { + ast.condition.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitFunctionExpr(ast, context) { + this.visitAllStatements(ast.statements, context); + return this.visitExpression(ast, context); + } + visitUnaryOperatorExpr(ast, context) { + ast.expr.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitBinaryOperatorExpr(ast, context) { + ast.lhs.visitExpression(this, context); + ast.rhs.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitReadPropExpr(ast, context) { + ast.receiver.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitReadKeyExpr(ast, context) { + ast.receiver.visitExpression(this, context); + ast.index.visitExpression(this, context); + return this.visitExpression(ast, context); + } + visitLiteralArrayExpr(ast, context) { + this.visitAllExpressions(ast.entries, context); + return this.visitExpression(ast, context); + } + visitLiteralMapExpr(ast, context) { + ast.entries.forEach(entry => entry.value.visitExpression(this, context)); + return this.visitExpression(ast, context); + } + visitCommaExpr(ast, context) { + this.visitAllExpressions(ast.parts, context); + return this.visitExpression(ast, context); + } + visitAllExpressions(exprs, context) { + exprs.forEach(expr => expr.visitExpression(this, context)); + } + visitDeclareVarStmt(stmt, context) { + if (stmt.value) { + stmt.value.visitExpression(this, context); + } + if (stmt.type) { + stmt.type.visitType(this, context); + } + return stmt; + } + visitDeclareFunctionStmt(stmt, context) { + this.visitAllStatements(stmt.statements, context); + if (stmt.type) { + stmt.type.visitType(this, context); + } + return stmt; + } + visitExpressionStmt(stmt, context) { + stmt.expr.visitExpression(this, context); + return stmt; + } + visitReturnStmt(stmt, context) { + stmt.value.visitExpression(this, context); + return stmt; + } + visitIfStmt(stmt, context) { + stmt.condition.visitExpression(this, context); + this.visitAllStatements(stmt.trueCase, context); + this.visitAllStatements(stmt.falseCase, context); + return stmt; + } + visitAllStatements(stmts, context) { + stmts.forEach(stmt => stmt.visitStatement(this, context)); + } +} +function leadingComment(text, multiline = false, trailingNewline = true) { + return new LeadingComment(text, multiline, trailingNewline); +} +function jsDocComment(tags = []) { + return new JSDocComment(tags); +} +function variable(name, type, sourceSpan) { + return new ReadVarExpr(name, type, sourceSpan); +} +function importExpr(id, typeParams = null, sourceSpan) { + return new ExternalExpr(id, null, typeParams, sourceSpan); +} +function importType(id, typeParams, typeModifiers) { + return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null; +} +function expressionType(expr, typeModifiers, typeParams) { + return new ExpressionType(expr, typeModifiers, typeParams); +} +function transplantedType(type, typeModifiers) { + return new TransplantedType(type, typeModifiers); +} +function typeofExpr(expr) { + return new TypeofExpr(expr); +} +function literalArr(values, type, sourceSpan) { + return new LiteralArrayExpr(values, type, sourceSpan); +} +function literalMap(values, type = null) { + return new LiteralMapExpr(values.map(e => new LiteralMapEntry(e.key, e.value, e.quoted)), type, null); +} +function unary(operator, expr, type, sourceSpan) { + return new UnaryOperatorExpr(operator, expr, type, sourceSpan); +} +function not(expr, sourceSpan) { + return new NotExpr(expr, sourceSpan); +} +function fn(params, body, type, sourceSpan, name) { + return new FunctionExpr(params, body, type, sourceSpan, name); +} +function ifStmt(condition, thenClause, elseClause, sourceSpan, leadingComments) { + return new IfStmt(condition, thenClause, elseClause, sourceSpan, leadingComments); +} +function taggedTemplate(tag, template, type, sourceSpan) { + return new TaggedTemplateExpr(tag, template, type, sourceSpan); +} +function literal(value, type, sourceSpan) { + return new LiteralExpr(value, type, sourceSpan); +} +function localizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan) { + return new LocalizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan); +} +function isNull(exp) { + return exp instanceof LiteralExpr && exp.value === null; +} +/* + * Serializes a `Tag` into a string. + * Returns a string like " @foo {bar} baz" (note the leading whitespace before `@foo`). + */ +function tagToString(tag) { + let out = ''; + if (tag.tagName) { + out += ` @${tag.tagName}`; + } + if (tag.text) { + if (tag.text.match(/\/\*|\*\//)) { + throw new Error('JSDoc text cannot contain "/*" and "*/"'); + } + out += ' ' + tag.text.replace(/@/g, '\\@'); + } + return out; +} +function serializeTags(tags) { + if (tags.length === 0) return ''; + if (tags.length === 1 && tags[0].tagName && !tags[0].text) { + // The JSDOC comment is a single simple tag: e.g `/** @tagname */`. + return `*${tagToString(tags[0])} `; + } + let out = '*\n'; + for (const tag of tags) { + out += ' *'; + // If the tagToString is multi-line, insert " * " prefixes on lines. + out += tagToString(tag).replace(/\n/g, '\n * '); + out += '\n'; + } + out += ' '; + return out; +} +var output_ast = /*#__PURE__*/Object.freeze({ + __proto__: null, + get TypeModifier() { + return TypeModifier; + }, + Type: Type, + get BuiltinTypeName() { + return BuiltinTypeName; + }, + BuiltinType: BuiltinType, + ExpressionType: ExpressionType, + ArrayType: ArrayType, + MapType: MapType, + TransplantedType: TransplantedType, + DYNAMIC_TYPE: DYNAMIC_TYPE, + INFERRED_TYPE: INFERRED_TYPE, + BOOL_TYPE: BOOL_TYPE, + INT_TYPE: INT_TYPE, + NUMBER_TYPE: NUMBER_TYPE, + STRING_TYPE: STRING_TYPE, + FUNCTION_TYPE: FUNCTION_TYPE, + NONE_TYPE: NONE_TYPE, + get UnaryOperator() { + return UnaryOperator; + }, + get BinaryOperator() { + return BinaryOperator; + }, + nullSafeIsEquivalent: nullSafeIsEquivalent, + areAllEquivalent: areAllEquivalent, + Expression: Expression, + ReadVarExpr: ReadVarExpr, + TypeofExpr: TypeofExpr, + WrappedNodeExpr: WrappedNodeExpr, + WriteVarExpr: WriteVarExpr, + WriteKeyExpr: WriteKeyExpr, + WritePropExpr: WritePropExpr, + InvokeFunctionExpr: InvokeFunctionExpr, + TaggedTemplateExpr: TaggedTemplateExpr, + InstantiateExpr: InstantiateExpr, + LiteralExpr: LiteralExpr, + TemplateLiteral: TemplateLiteral, + TemplateLiteralElement: TemplateLiteralElement, + LiteralPiece: LiteralPiece, + PlaceholderPiece: PlaceholderPiece, + LocalizedString: LocalizedString, + ExternalExpr: ExternalExpr, + ExternalReference: ExternalReference, + ConditionalExpr: ConditionalExpr, + DynamicImportExpr: DynamicImportExpr, + NotExpr: NotExpr, + FnParam: FnParam, + FunctionExpr: FunctionExpr, + UnaryOperatorExpr: UnaryOperatorExpr, + BinaryOperatorExpr: BinaryOperatorExpr, + ReadPropExpr: ReadPropExpr, + ReadKeyExpr: ReadKeyExpr, + LiteralArrayExpr: LiteralArrayExpr, + LiteralMapEntry: LiteralMapEntry, + LiteralMapExpr: LiteralMapExpr, + CommaExpr: CommaExpr, + NULL_EXPR: NULL_EXPR, + TYPED_NULL_EXPR: TYPED_NULL_EXPR, + get StmtModifier() { + return StmtModifier; + }, + LeadingComment: LeadingComment, + JSDocComment: JSDocComment, + Statement: Statement, + DeclareVarStmt: DeclareVarStmt, + DeclareFunctionStmt: DeclareFunctionStmt, + ExpressionStatement: ExpressionStatement, + ReturnStatement: ReturnStatement, + IfStmt: IfStmt, + RecursiveAstVisitor: RecursiveAstVisitor$1, + leadingComment: leadingComment, + jsDocComment: jsDocComment, + variable: variable, + importExpr: importExpr, + importType: importType, + expressionType: expressionType, + transplantedType: transplantedType, + typeofExpr: typeofExpr, + literalArr: literalArr, + literalMap: literalMap, + unary: unary, + not: not, + fn: fn, + ifStmt: ifStmt, + taggedTemplate: taggedTemplate, + literal: literal, + localizedString: localizedString, + isNull: isNull +}); +const CONSTANT_PREFIX = '_c'; +/** + * `ConstantPool` tries to reuse literal factories when two or more literals are identical. + * We determine whether literals are identical by creating a key out of their AST using the + * `KeyVisitor`. This constant is used to replace dynamic expressions which can't be safely + * converted into a key. E.g. given an expression `{foo: bar()}`, since we don't know what + * the result of `bar` will be, we create a key that looks like `{foo: }`. Note + * that we use a variable, rather than something like `null` in order to avoid collisions. + */ +const UNKNOWN_VALUE_KEY = variable(''); +/** + * Context to use when producing a key. + * + * This ensures we see the constant not the reference variable when producing + * a key. + */ +const KEY_CONTEXT = {}; +/** + * Generally all primitive values are excluded from the `ConstantPool`, but there is an exclusion + * for strings that reach a certain length threshold. This constant defines the length threshold for + * strings. + */ +const POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS = 50; +/** + * A node that is a place-holder that allows the node to be replaced when the actual + * node is known. + * + * This allows the constant pool to change an expression from a direct reference to + * a constant to a shared constant. It returns a fix-up node that is later allowed to + * change the referenced expression. + */ +class FixupExpression extends Expression { + constructor(resolved) { + super(resolved.type); + this.resolved = resolved; + this.shared = false; + this.original = resolved; + } + visitExpression(visitor, context) { + if (context === KEY_CONTEXT) { + // When producing a key we want to traverse the constant not the + // variable used to refer to it. + return this.original.visitExpression(visitor, context); + } else { + return this.resolved.visitExpression(visitor, context); + } + } + isEquivalent(e) { + return e instanceof FixupExpression && this.resolved.isEquivalent(e.resolved); + } + isConstant() { + return true; + } + clone() { + throw new Error(`Not supported.`); + } + fixup(expression) { + this.resolved = expression; + this.shared = true; + } +} +/** + * A constant pool allows a code emitter to share constant in an output context. + * + * The constant pool also supports sharing access to ivy definitions references. + */ +class ConstantPool { + constructor(isClosureCompilerEnabled = false) { + this.isClosureCompilerEnabled = isClosureCompilerEnabled; + this.statements = []; + this.literals = new Map(); + this.literalFactories = new Map(); + this.sharedConstants = new Map(); + this.nextNameIndex = 0; + } + getConstLiteral(literal, forceShared) { + if (literal instanceof LiteralExpr && !isLongStringLiteral(literal) || literal instanceof FixupExpression) { + // Do no put simple literals into the constant pool or try to produce a constant for a + // reference to a constant. + return literal; + } + const key = GenericKeyFn.INSTANCE.keyOf(literal); + let fixup = this.literals.get(key); + let newValue = false; + if (!fixup) { + fixup = new FixupExpression(literal); + this.literals.set(key, fixup); + newValue = true; + } + if (!newValue && !fixup.shared || newValue && forceShared) { + // Replace the expression with a variable + const name = this.freshName(); + let definition; + let usage; + if (this.isClosureCompilerEnabled && isLongStringLiteral(literal)) { + // For string literals, Closure will **always** inline the string at + // **all** usages, duplicating it each time. For large strings, this + // unnecessarily bloats bundle size. To work around this restriction, we + // wrap the string in a function, and call that function for each usage. + // This tricks Closure into using inline logic for functions instead of + // string literals. Function calls are only inlined if the body is small + // enough to be worth it. By doing this, very large strings will be + // shared across multiple usages, rather than duplicating the string at + // each usage site. + // + // const myStr = function() { return "very very very long string"; }; + // const usage1 = myStr(); + // const usage2 = myStr(); + definition = variable(name).set(new FunctionExpr([], + // Params. + [ + // Statements. + new ReturnStatement(literal)])); + usage = variable(name).callFn([]); + } else { + // Just declare and use the variable directly, without a function call + // indirection. This saves a few bytes and avoids an unnecessary call. + definition = variable(name).set(literal); + usage = variable(name); + } + this.statements.push(definition.toDeclStmt(INFERRED_TYPE, StmtModifier.Final)); + fixup.fixup(usage); + } + return fixup; + } + getSharedConstant(def, expr) { + const key = def.keyOf(expr); + if (!this.sharedConstants.has(key)) { + const id = this.freshName(); + this.sharedConstants.set(key, variable(id)); + this.statements.push(def.toSharedConstantDeclaration(id, expr)); + } + return this.sharedConstants.get(key); + } + getLiteralFactory(literal) { + // Create a pure function that builds an array of a mix of constant and variable expressions + if (literal instanceof LiteralArrayExpr) { + const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY); + const key = GenericKeyFn.INSTANCE.keyOf(literalArr(argumentsForKey)); + return this._getLiteralFactory(key, literal.entries, entries => literalArr(entries)); + } else { + const expressionForKey = literalMap(literal.entries.map(e => ({ + key: e.key, + value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY, + quoted: e.quoted + }))); + const key = GenericKeyFn.INSTANCE.keyOf(expressionForKey); + return this._getLiteralFactory(key, literal.entries.map(e => e.value), entries => literalMap(entries.map((value, index) => ({ + key: literal.entries[index].key, + value, + quoted: literal.entries[index].quoted + })))); + } + } + _getLiteralFactory(key, values, resultMap) { + let literalFactory = this.literalFactories.get(key); + const literalFactoryArguments = values.filter(e => !e.isConstant()); + if (!literalFactory) { + const resultExpressions = values.map((e, index) => e.isConstant() ? this.getConstLiteral(e, true) : variable(`a${index}`)); + const parameters = resultExpressions.filter(isVariable).map(e => new FnParam(e.name, DYNAMIC_TYPE)); + const pureFunctionDeclaration = fn(parameters, [new ReturnStatement(resultMap(resultExpressions))], INFERRED_TYPE); + const name = this.freshName(); + this.statements.push(variable(name).set(pureFunctionDeclaration).toDeclStmt(INFERRED_TYPE, StmtModifier.Final)); + literalFactory = variable(name); + this.literalFactories.set(key, literalFactory); + } + return { + literalFactory, + literalFactoryArguments + }; + } + /** + * Produce a unique name. + * + * The name might be unique among different prefixes if any of the prefixes end in + * a digit so the prefix should be a constant string (not based on user input) and + * must not end in a digit. + */ + uniqueName(prefix) { + return `${prefix}${this.nextNameIndex++}`; + } + freshName() { + return this.uniqueName(CONSTANT_PREFIX); + } +} +class GenericKeyFn { + static { + this.INSTANCE = new GenericKeyFn(); + } + keyOf(expr) { + if (expr instanceof LiteralExpr && typeof expr.value === 'string') { + return `"${expr.value}"`; + } else if (expr instanceof LiteralExpr) { + return String(expr.value); + } else if (expr instanceof LiteralArrayExpr) { + const entries = []; + for (const entry of expr.entries) { + entries.push(this.keyOf(entry)); + } + return `[${entries.join(',')}]`; + } else if (expr instanceof LiteralMapExpr) { + const entries = []; + for (const entry of expr.entries) { + let key = entry.key; + if (entry.quoted) { + key = `"${key}"`; + } + entries.push(key + ':' + this.keyOf(entry.value)); + } + return `{${entries.join(',')}}`; + } else if (expr instanceof ExternalExpr) { + return `import("${expr.value.moduleName}", ${expr.value.name})`; + } else if (expr instanceof ReadVarExpr) { + return `read(${expr.name})`; + } else if (expr instanceof TypeofExpr) { + return `typeof(${this.keyOf(expr.expr)})`; + } else { + throw new Error(`${this.constructor.name} does not handle expressions of type ${expr.constructor.name}`); + } + } +} +function isVariable(e) { + return e instanceof ReadVarExpr; +} +function isLongStringLiteral(expr) { + return expr instanceof LiteralExpr && typeof expr.value === 'string' && expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS; +} +const CORE = '@angular/core'; +class Identifiers { + /* Methods */ + static { + this.NEW_METHOD = 'factory'; + } + static { + this.TRANSFORM_METHOD = 'transform'; + } + static { + this.PATCH_DEPS = 'patchedDeps'; + } + static { + this.core = { + name: null, + moduleName: CORE + }; + } + /* Instructions */ + static { + this.namespaceHTML = { + name: 'ɵɵnamespaceHTML', + moduleName: CORE + }; + } + static { + this.namespaceMathML = { + name: 'ɵɵnamespaceMathML', + moduleName: CORE + }; + } + static { + this.namespaceSVG = { + name: 'ɵɵnamespaceSVG', + moduleName: CORE + }; + } + static { + this.element = { + name: 'ɵɵelement', + moduleName: CORE + }; + } + static { + this.elementStart = { + name: 'ɵɵelementStart', + moduleName: CORE + }; + } + static { + this.elementEnd = { + name: 'ɵɵelementEnd', + moduleName: CORE + }; + } + static { + this.advance = { + name: 'ɵɵadvance', + moduleName: CORE + }; + } + static { + this.syntheticHostProperty = { + name: 'ɵɵsyntheticHostProperty', + moduleName: CORE + }; + } + static { + this.syntheticHostListener = { + name: 'ɵɵsyntheticHostListener', + moduleName: CORE + }; + } + static { + this.attribute = { + name: 'ɵɵattribute', + moduleName: CORE + }; + } + static { + this.attributeInterpolate1 = { + name: 'ɵɵattributeInterpolate1', + moduleName: CORE + }; + } + static { + this.attributeInterpolate2 = { + name: 'ɵɵattributeInterpolate2', + moduleName: CORE + }; + } + static { + this.attributeInterpolate3 = { + name: 'ɵɵattributeInterpolate3', + moduleName: CORE + }; + } + static { + this.attributeInterpolate4 = { + name: 'ɵɵattributeInterpolate4', + moduleName: CORE + }; + } + static { + this.attributeInterpolate5 = { + name: 'ɵɵattributeInterpolate5', + moduleName: CORE + }; + } + static { + this.attributeInterpolate6 = { + name: 'ɵɵattributeInterpolate6', + moduleName: CORE + }; + } + static { + this.attributeInterpolate7 = { + name: 'ɵɵattributeInterpolate7', + moduleName: CORE + }; + } + static { + this.attributeInterpolate8 = { + name: 'ɵɵattributeInterpolate8', + moduleName: CORE + }; + } + static { + this.attributeInterpolateV = { + name: 'ɵɵattributeInterpolateV', + moduleName: CORE + }; + } + static { + this.classProp = { + name: 'ɵɵclassProp', + moduleName: CORE + }; + } + static { + this.elementContainerStart = { + name: 'ɵɵelementContainerStart', + moduleName: CORE + }; + } + static { + this.elementContainerEnd = { + name: 'ɵɵelementContainerEnd', + moduleName: CORE + }; + } + static { + this.elementContainer = { + name: 'ɵɵelementContainer', + moduleName: CORE + }; + } + static { + this.styleMap = { + name: 'ɵɵstyleMap', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate1 = { + name: 'ɵɵstyleMapInterpolate1', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate2 = { + name: 'ɵɵstyleMapInterpolate2', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate3 = { + name: 'ɵɵstyleMapInterpolate3', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate4 = { + name: 'ɵɵstyleMapInterpolate4', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate5 = { + name: 'ɵɵstyleMapInterpolate5', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate6 = { + name: 'ɵɵstyleMapInterpolate6', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate7 = { + name: 'ɵɵstyleMapInterpolate7', + moduleName: CORE + }; + } + static { + this.styleMapInterpolate8 = { + name: 'ɵɵstyleMapInterpolate8', + moduleName: CORE + }; + } + static { + this.styleMapInterpolateV = { + name: 'ɵɵstyleMapInterpolateV', + moduleName: CORE + }; + } + static { + this.classMap = { + name: 'ɵɵclassMap', + moduleName: CORE + }; + } + static { + this.classMapInterpolate1 = { + name: 'ɵɵclassMapInterpolate1', + moduleName: CORE + }; + } + static { + this.classMapInterpolate2 = { + name: 'ɵɵclassMapInterpolate2', + moduleName: CORE + }; + } + static { + this.classMapInterpolate3 = { + name: 'ɵɵclassMapInterpolate3', + moduleName: CORE + }; + } + static { + this.classMapInterpolate4 = { + name: 'ɵɵclassMapInterpolate4', + moduleName: CORE + }; + } + static { + this.classMapInterpolate5 = { + name: 'ɵɵclassMapInterpolate5', + moduleName: CORE + }; + } + static { + this.classMapInterpolate6 = { + name: 'ɵɵclassMapInterpolate6', + moduleName: CORE + }; + } + static { + this.classMapInterpolate7 = { + name: 'ɵɵclassMapInterpolate7', + moduleName: CORE + }; + } + static { + this.classMapInterpolate8 = { + name: 'ɵɵclassMapInterpolate8', + moduleName: CORE + }; + } + static { + this.classMapInterpolateV = { + name: 'ɵɵclassMapInterpolateV', + moduleName: CORE + }; + } + static { + this.styleProp = { + name: 'ɵɵstyleProp', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate1 = { + name: 'ɵɵstylePropInterpolate1', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate2 = { + name: 'ɵɵstylePropInterpolate2', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate3 = { + name: 'ɵɵstylePropInterpolate3', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate4 = { + name: 'ɵɵstylePropInterpolate4', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate5 = { + name: 'ɵɵstylePropInterpolate5', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate6 = { + name: 'ɵɵstylePropInterpolate6', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate7 = { + name: 'ɵɵstylePropInterpolate7', + moduleName: CORE + }; + } + static { + this.stylePropInterpolate8 = { + name: 'ɵɵstylePropInterpolate8', + moduleName: CORE + }; + } + static { + this.stylePropInterpolateV = { + name: 'ɵɵstylePropInterpolateV', + moduleName: CORE + }; + } + static { + this.nextContext = { + name: 'ɵɵnextContext', + moduleName: CORE + }; + } + static { + this.resetView = { + name: 'ɵɵresetView', + moduleName: CORE + }; + } + static { + this.templateCreate = { + name: 'ɵɵtemplate', + moduleName: CORE + }; + } + static { + this.defer = { + name: 'ɵɵdefer', + moduleName: CORE + }; + } + static { + this.text = { + name: 'ɵɵtext', + moduleName: CORE + }; + } + static { + this.enableBindings = { + name: 'ɵɵenableBindings', + moduleName: CORE + }; + } + static { + this.disableBindings = { + name: 'ɵɵdisableBindings', + moduleName: CORE + }; + } + static { + this.getCurrentView = { + name: 'ɵɵgetCurrentView', + moduleName: CORE + }; + } + static { + this.textInterpolate = { + name: 'ɵɵtextInterpolate', + moduleName: CORE + }; + } + static { + this.textInterpolate1 = { + name: 'ɵɵtextInterpolate1', + moduleName: CORE + }; + } + static { + this.textInterpolate2 = { + name: 'ɵɵtextInterpolate2', + moduleName: CORE + }; + } + static { + this.textInterpolate3 = { + name: 'ɵɵtextInterpolate3', + moduleName: CORE + }; + } + static { + this.textInterpolate4 = { + name: 'ɵɵtextInterpolate4', + moduleName: CORE + }; + } + static { + this.textInterpolate5 = { + name: 'ɵɵtextInterpolate5', + moduleName: CORE + }; + } + static { + this.textInterpolate6 = { + name: 'ɵɵtextInterpolate6', + moduleName: CORE + }; + } + static { + this.textInterpolate7 = { + name: 'ɵɵtextInterpolate7', + moduleName: CORE + }; + } + static { + this.textInterpolate8 = { + name: 'ɵɵtextInterpolate8', + moduleName: CORE + }; + } + static { + this.textInterpolateV = { + name: 'ɵɵtextInterpolateV', + moduleName: CORE + }; + } + static { + this.restoreView = { + name: 'ɵɵrestoreView', + moduleName: CORE + }; + } + static { + this.pureFunction0 = { + name: 'ɵɵpureFunction0', + moduleName: CORE + }; + } + static { + this.pureFunction1 = { + name: 'ɵɵpureFunction1', + moduleName: CORE + }; + } + static { + this.pureFunction2 = { + name: 'ɵɵpureFunction2', + moduleName: CORE + }; + } + static { + this.pureFunction3 = { + name: 'ɵɵpureFunction3', + moduleName: CORE + }; + } + static { + this.pureFunction4 = { + name: 'ɵɵpureFunction4', + moduleName: CORE + }; + } + static { + this.pureFunction5 = { + name: 'ɵɵpureFunction5', + moduleName: CORE + }; + } + static { + this.pureFunction6 = { + name: 'ɵɵpureFunction6', + moduleName: CORE + }; + } + static { + this.pureFunction7 = { + name: 'ɵɵpureFunction7', + moduleName: CORE + }; + } + static { + this.pureFunction8 = { + name: 'ɵɵpureFunction8', + moduleName: CORE + }; + } + static { + this.pureFunctionV = { + name: 'ɵɵpureFunctionV', + moduleName: CORE + }; + } + static { + this.pipeBind1 = { + name: 'ɵɵpipeBind1', + moduleName: CORE + }; + } + static { + this.pipeBind2 = { + name: 'ɵɵpipeBind2', + moduleName: CORE + }; + } + static { + this.pipeBind3 = { + name: 'ɵɵpipeBind3', + moduleName: CORE + }; + } + static { + this.pipeBind4 = { + name: 'ɵɵpipeBind4', + moduleName: CORE + }; + } + static { + this.pipeBindV = { + name: 'ɵɵpipeBindV', + moduleName: CORE + }; + } + static { + this.hostProperty = { + name: 'ɵɵhostProperty', + moduleName: CORE + }; + } + static { + this.property = { + name: 'ɵɵproperty', + moduleName: CORE + }; + } + static { + this.propertyInterpolate = { + name: 'ɵɵpropertyInterpolate', + moduleName: CORE + }; + } + static { + this.propertyInterpolate1 = { + name: 'ɵɵpropertyInterpolate1', + moduleName: CORE + }; + } + static { + this.propertyInterpolate2 = { + name: 'ɵɵpropertyInterpolate2', + moduleName: CORE + }; + } + static { + this.propertyInterpolate3 = { + name: 'ɵɵpropertyInterpolate3', + moduleName: CORE + }; + } + static { + this.propertyInterpolate4 = { + name: 'ɵɵpropertyInterpolate4', + moduleName: CORE + }; + } + static { + this.propertyInterpolate5 = { + name: 'ɵɵpropertyInterpolate5', + moduleName: CORE + }; + } + static { + this.propertyInterpolate6 = { + name: 'ɵɵpropertyInterpolate6', + moduleName: CORE + }; + } + static { + this.propertyInterpolate7 = { + name: 'ɵɵpropertyInterpolate7', + moduleName: CORE + }; + } + static { + this.propertyInterpolate8 = { + name: 'ɵɵpropertyInterpolate8', + moduleName: CORE + }; + } + static { + this.propertyInterpolateV = { + name: 'ɵɵpropertyInterpolateV', + moduleName: CORE + }; + } + static { + this.i18n = { + name: 'ɵɵi18n', + moduleName: CORE + }; + } + static { + this.i18nAttributes = { + name: 'ɵɵi18nAttributes', + moduleName: CORE + }; + } + static { + this.i18nExp = { + name: 'ɵɵi18nExp', + moduleName: CORE + }; + } + static { + this.i18nStart = { + name: 'ɵɵi18nStart', + moduleName: CORE + }; + } + static { + this.i18nEnd = { + name: 'ɵɵi18nEnd', + moduleName: CORE + }; + } + static { + this.i18nApply = { + name: 'ɵɵi18nApply', + moduleName: CORE + }; + } + static { + this.i18nPostprocess = { + name: 'ɵɵi18nPostprocess', + moduleName: CORE + }; + } + static { + this.pipe = { + name: 'ɵɵpipe', + moduleName: CORE + }; + } + static { + this.projection = { + name: 'ɵɵprojection', + moduleName: CORE + }; + } + static { + this.projectionDef = { + name: 'ɵɵprojectionDef', + moduleName: CORE + }; + } + static { + this.reference = { + name: 'ɵɵreference', + moduleName: CORE + }; + } + static { + this.inject = { + name: 'ɵɵinject', + moduleName: CORE + }; + } + static { + this.injectAttribute = { + name: 'ɵɵinjectAttribute', + moduleName: CORE + }; + } + static { + this.directiveInject = { + name: 'ɵɵdirectiveInject', + moduleName: CORE + }; + } + static { + this.invalidFactory = { + name: 'ɵɵinvalidFactory', + moduleName: CORE + }; + } + static { + this.invalidFactoryDep = { + name: 'ɵɵinvalidFactoryDep', + moduleName: CORE + }; + } + static { + this.templateRefExtractor = { + name: 'ɵɵtemplateRefExtractor', + moduleName: CORE + }; + } + static { + this.forwardRef = { + name: 'forwardRef', + moduleName: CORE + }; + } + static { + this.resolveForwardRef = { + name: 'resolveForwardRef', + moduleName: CORE + }; + } + static { + this.ɵɵdefineInjectable = { + name: 'ɵɵdefineInjectable', + moduleName: CORE + }; + } + static { + this.declareInjectable = { + name: 'ɵɵngDeclareInjectable', + moduleName: CORE + }; + } + static { + this.InjectableDeclaration = { + name: 'ɵɵInjectableDeclaration', + moduleName: CORE + }; + } + static { + this.resolveWindow = { + name: 'ɵɵresolveWindow', + moduleName: CORE + }; + } + static { + this.resolveDocument = { + name: 'ɵɵresolveDocument', + moduleName: CORE + }; + } + static { + this.resolveBody = { + name: 'ɵɵresolveBody', + moduleName: CORE + }; + } + static { + this.defineComponent = { + name: 'ɵɵdefineComponent', + moduleName: CORE + }; + } + static { + this.declareComponent = { + name: 'ɵɵngDeclareComponent', + moduleName: CORE + }; + } + static { + this.setComponentScope = { + name: 'ɵɵsetComponentScope', + moduleName: CORE + }; + } + static { + this.ChangeDetectionStrategy = { + name: 'ChangeDetectionStrategy', + moduleName: CORE + }; + } + static { + this.ViewEncapsulation = { + name: 'ViewEncapsulation', + moduleName: CORE + }; + } + static { + this.ComponentDeclaration = { + name: 'ɵɵComponentDeclaration', + moduleName: CORE + }; + } + static { + this.FactoryDeclaration = { + name: 'ɵɵFactoryDeclaration', + moduleName: CORE + }; + } + static { + this.declareFactory = { + name: 'ɵɵngDeclareFactory', + moduleName: CORE + }; + } + static { + this.FactoryTarget = { + name: 'ɵɵFactoryTarget', + moduleName: CORE + }; + } + static { + this.defineDirective = { + name: 'ɵɵdefineDirective', + moduleName: CORE + }; + } + static { + this.declareDirective = { + name: 'ɵɵngDeclareDirective', + moduleName: CORE + }; + } + static { + this.DirectiveDeclaration = { + name: 'ɵɵDirectiveDeclaration', + moduleName: CORE + }; + } + static { + this.InjectorDef = { + name: 'ɵɵInjectorDef', + moduleName: CORE + }; + } + static { + this.InjectorDeclaration = { + name: 'ɵɵInjectorDeclaration', + moduleName: CORE + }; + } + static { + this.defineInjector = { + name: 'ɵɵdefineInjector', + moduleName: CORE + }; + } + static { + this.declareInjector = { + name: 'ɵɵngDeclareInjector', + moduleName: CORE + }; + } + static { + this.NgModuleDeclaration = { + name: 'ɵɵNgModuleDeclaration', + moduleName: CORE + }; + } + static { + this.ModuleWithProviders = { + name: 'ModuleWithProviders', + moduleName: CORE + }; + } + static { + this.defineNgModule = { + name: 'ɵɵdefineNgModule', + moduleName: CORE + }; + } + static { + this.declareNgModule = { + name: 'ɵɵngDeclareNgModule', + moduleName: CORE + }; + } + static { + this.setNgModuleScope = { + name: 'ɵɵsetNgModuleScope', + moduleName: CORE + }; + } + static { + this.registerNgModuleType = { + name: 'ɵɵregisterNgModuleType', + moduleName: CORE + }; + } + static { + this.PipeDeclaration = { + name: 'ɵɵPipeDeclaration', + moduleName: CORE + }; + } + static { + this.definePipe = { + name: 'ɵɵdefinePipe', + moduleName: CORE + }; + } + static { + this.declarePipe = { + name: 'ɵɵngDeclarePipe', + moduleName: CORE + }; + } + static { + this.declareClassMetadata = { + name: 'ɵɵngDeclareClassMetadata', + moduleName: CORE + }; + } + static { + this.setClassMetadata = { + name: 'ɵsetClassMetadata', + moduleName: CORE + }; + } + static { + this.queryRefresh = { + name: 'ɵɵqueryRefresh', + moduleName: CORE + }; + } + static { + this.viewQuery = { + name: 'ɵɵviewQuery', + moduleName: CORE + }; + } + static { + this.loadQuery = { + name: 'ɵɵloadQuery', + moduleName: CORE + }; + } + static { + this.contentQuery = { + name: 'ɵɵcontentQuery', + moduleName: CORE + }; + } + static { + this.NgOnChangesFeature = { + name: 'ɵɵNgOnChangesFeature', + moduleName: CORE + }; + } + static { + this.InheritDefinitionFeature = { + name: 'ɵɵInheritDefinitionFeature', + moduleName: CORE + }; + } + static { + this.CopyDefinitionFeature = { + name: 'ɵɵCopyDefinitionFeature', + moduleName: CORE + }; + } + static { + this.StandaloneFeature = { + name: 'ɵɵStandaloneFeature', + moduleName: CORE + }; + } + static { + this.ProvidersFeature = { + name: 'ɵɵProvidersFeature', + moduleName: CORE + }; + } + static { + this.HostDirectivesFeature = { + name: 'ɵɵHostDirectivesFeature', + moduleName: CORE + }; + } + static { + this.InputTransformsFeatureFeature = { + name: 'ɵɵInputTransformsFeature', + moduleName: CORE + }; + } + static { + this.listener = { + name: 'ɵɵlistener', + moduleName: CORE + }; + } + static { + this.getInheritedFactory = { + name: 'ɵɵgetInheritedFactory', + moduleName: CORE + }; + } + // sanitization-related functions + static { + this.sanitizeHtml = { + name: 'ɵɵsanitizeHtml', + moduleName: CORE + }; + } + static { + this.sanitizeStyle = { + name: 'ɵɵsanitizeStyle', + moduleName: CORE + }; + } + static { + this.sanitizeResourceUrl = { + name: 'ɵɵsanitizeResourceUrl', + moduleName: CORE + }; + } + static { + this.sanitizeScript = { + name: 'ɵɵsanitizeScript', + moduleName: CORE + }; + } + static { + this.sanitizeUrl = { + name: 'ɵɵsanitizeUrl', + moduleName: CORE + }; + } + static { + this.sanitizeUrlOrResourceUrl = { + name: 'ɵɵsanitizeUrlOrResourceUrl', + moduleName: CORE + }; + } + static { + this.trustConstantHtml = { + name: 'ɵɵtrustConstantHtml', + moduleName: CORE + }; + } + static { + this.trustConstantResourceUrl = { + name: 'ɵɵtrustConstantResourceUrl', + moduleName: CORE + }; + } + static { + this.validateIframeAttribute = { + name: 'ɵɵvalidateIframeAttribute', + moduleName: CORE + }; + } +} +const DASH_CASE_REGEXP = /-+([a-z0-9])/g; +function dashCaseToCamelCase(input) { + return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase()); +} +function splitAtColon(input, defaultValues) { + return _splitAt(input, ':', defaultValues); +} +function splitAtPeriod(input, defaultValues) { + return _splitAt(input, '.', defaultValues); +} +function _splitAt(input, character, defaultValues) { + const characterIndex = input.indexOf(character); + if (characterIndex == -1) return defaultValues; + return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()]; +} +function noUndefined(val) { + return val === undefined ? null : val; +} +function error(msg) { + throw new Error(`Internal Error: ${msg}`); +} +// Escape characters that have a special meaning in Regular Expressions +function escapeRegExp(s) { + return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); +} +function utf8Encode(str) { + let encoded = []; + for (let index = 0; index < str.length; index++) { + let codePoint = str.charCodeAt(index); + // decode surrogate + // see https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + if (codePoint >= 0xd800 && codePoint <= 0xdbff && str.length > index + 1) { + const low = str.charCodeAt(index + 1); + if (low >= 0xdc00 && low <= 0xdfff) { + index++; + codePoint = (codePoint - 0xd800 << 10) + low - 0xdc00 + 0x10000; + } + } + if (codePoint <= 0x7f) { + encoded.push(codePoint); + } else if (codePoint <= 0x7ff) { + encoded.push(codePoint >> 6 & 0x1F | 0xc0, codePoint & 0x3f | 0x80); + } else if (codePoint <= 0xffff) { + encoded.push(codePoint >> 12 | 0xe0, codePoint >> 6 & 0x3f | 0x80, codePoint & 0x3f | 0x80); + } else if (codePoint <= 0x1fffff) { + encoded.push(codePoint >> 18 & 0x07 | 0xf0, codePoint >> 12 & 0x3f | 0x80, codePoint >> 6 & 0x3f | 0x80, codePoint & 0x3f | 0x80); + } + } + return encoded; +} +function stringify(token) { + if (typeof token === 'string') { + return token; + } + if (Array.isArray(token)) { + return '[' + token.map(stringify).join(', ') + ']'; + } + if (token == null) { + return '' + token; + } + if (token.overriddenName) { + return `${token.overriddenName}`; + } + if (token.name) { + return `${token.name}`; + } + if (!token.toString) { + return 'object'; + } + // WARNING: do not try to `JSON.stringify(token)` here + // see https://github.com/angular/angular/issues/23440 + const res = token.toString(); + if (res == null) { + return '' + res; + } + const newLineIndex = res.indexOf('\n'); + return newLineIndex === -1 ? res : res.substring(0, newLineIndex); +} +class Version { + constructor(full) { + this.full = full; + const splits = full.split('.'); + this.major = splits[0]; + this.minor = splits[1]; + this.patch = splits.slice(2).join('.'); + } +} +const _global = globalThis; +function newArray(size, value) { + const list = []; + for (let i = 0; i < size; i++) { + list.push(value); + } + return list; +} +/** + * Partitions a given array into 2 arrays, based on a boolean value returned by the condition + * function. + * + * @param arr Input array that should be partitioned + * @param conditionFn Condition function that is called for each item in a given array and returns a + * boolean value. + */ +function partitionArray(arr, conditionFn) { + const truthy = []; + const falsy = []; + for (const item of arr) { + (conditionFn(item) ? truthy : falsy).push(item); + } + return [truthy, falsy]; +} + +// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit +const VERSION$1 = 3; +const JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,'; +class SourceMapGenerator { + constructor(file = null) { + this.file = file; + this.sourcesContent = new Map(); + this.lines = []; + this.lastCol0 = 0; + this.hasMappings = false; + } + // The content is `null` when the content is expected to be loaded using the URL + addSource(url, content = null) { + if (!this.sourcesContent.has(url)) { + this.sourcesContent.set(url, content); + } + return this; + } + addLine() { + this.lines.push([]); + this.lastCol0 = 0; + return this; + } + addMapping(col0, sourceUrl, sourceLine0, sourceCol0) { + if (!this.currentLine) { + throw new Error(`A line must be added before mappings can be added`); + } + if (sourceUrl != null && !this.sourcesContent.has(sourceUrl)) { + throw new Error(`Unknown source file "${sourceUrl}"`); + } + if (col0 == null) { + throw new Error(`The column in the generated code must be provided`); + } + if (col0 < this.lastCol0) { + throw new Error(`Mapping should be added in output order`); + } + if (sourceUrl && (sourceLine0 == null || sourceCol0 == null)) { + throw new Error(`The source location must be provided when a source url is provided`); + } + this.hasMappings = true; + this.lastCol0 = col0; + this.currentLine.push({ + col0, + sourceUrl, + sourceLine0, + sourceCol0 + }); + return this; + } + /** + * @internal strip this from published d.ts files due to + * https://github.com/microsoft/TypeScript/issues/36216 + */ + get currentLine() { + return this.lines.slice(-1)[0]; + } + toJSON() { + if (!this.hasMappings) { + return null; + } + const sourcesIndex = new Map(); + const sources = []; + const sourcesContent = []; + Array.from(this.sourcesContent.keys()).forEach((url, i) => { + sourcesIndex.set(url, i); + sources.push(url); + sourcesContent.push(this.sourcesContent.get(url) || null); + }); + let mappings = ''; + let lastCol0 = 0; + let lastSourceIndex = 0; + let lastSourceLine0 = 0; + let lastSourceCol0 = 0; + this.lines.forEach(segments => { + lastCol0 = 0; + mappings += segments.map(segment => { + // zero-based starting column of the line in the generated code + let segAsStr = toBase64VLQ(segment.col0 - lastCol0); + lastCol0 = segment.col0; + if (segment.sourceUrl != null) { + // zero-based index into the ā€œsourcesā€ list + segAsStr += toBase64VLQ(sourcesIndex.get(segment.sourceUrl) - lastSourceIndex); + lastSourceIndex = sourcesIndex.get(segment.sourceUrl); + // the zero-based starting line in the original source + segAsStr += toBase64VLQ(segment.sourceLine0 - lastSourceLine0); + lastSourceLine0 = segment.sourceLine0; + // the zero-based starting column in the original source + segAsStr += toBase64VLQ(segment.sourceCol0 - lastSourceCol0); + lastSourceCol0 = segment.sourceCol0; + } + return segAsStr; + }).join(','); + mappings += ';'; + }); + mappings = mappings.slice(0, -1); + return { + 'file': this.file || '', + 'version': VERSION$1, + 'sourceRoot': '', + 'sources': sources, + 'sourcesContent': sourcesContent, + 'mappings': mappings + }; + } + toJsComment() { + return this.hasMappings ? '//' + JS_B64_PREFIX + toBase64String(JSON.stringify(this, null, 0)) : ''; + } +} +function toBase64String(value) { + let b64 = ''; + const encoded = utf8Encode(value); + for (let i = 0; i < encoded.length;) { + const i1 = encoded[i++]; + const i2 = i < encoded.length ? encoded[i++] : null; + const i3 = i < encoded.length ? encoded[i++] : null; + b64 += toBase64Digit(i1 >> 2); + b64 += toBase64Digit((i1 & 3) << 4 | (i2 === null ? 0 : i2 >> 4)); + b64 += i2 === null ? '=' : toBase64Digit((i2 & 15) << 2 | (i3 === null ? 0 : i3 >> 6)); + b64 += i2 === null || i3 === null ? '=' : toBase64Digit(i3 & 63); + } + return b64; +} +function toBase64VLQ(value) { + value = value < 0 ? (-value << 1) + 1 : value << 1; + let out = ''; + do { + let digit = value & 31; + value = value >> 5; + if (value > 0) { + digit = digit | 32; + } + out += toBase64Digit(digit); + } while (value > 0); + return out; +} +const B64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +function toBase64Digit(value) { + if (value < 0 || value >= 64) { + throw new Error(`Can only encode value in the range [0, 63]`); + } + return B64_DIGITS[value]; +} +const _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g; +const _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i; +const _INDENT_WITH = ' '; +class _EmittedLine { + constructor(indent) { + this.indent = indent; + this.partsLength = 0; + this.parts = []; + this.srcSpans = []; + } +} +class EmitterVisitorContext { + static createRoot() { + return new EmitterVisitorContext(0); + } + constructor(_indent) { + this._indent = _indent; + this._lines = [new _EmittedLine(_indent)]; + } + /** + * @internal strip this from published d.ts files due to + * https://github.com/microsoft/TypeScript/issues/36216 + */ + get _currentLine() { + return this._lines[this._lines.length - 1]; + } + println(from, lastPart = '') { + this.print(from || null, lastPart, true); + } + lineIsEmpty() { + return this._currentLine.parts.length === 0; + } + lineLength() { + return this._currentLine.indent * _INDENT_WITH.length + this._currentLine.partsLength; + } + print(from, part, newLine = false) { + if (part.length > 0) { + this._currentLine.parts.push(part); + this._currentLine.partsLength += part.length; + this._currentLine.srcSpans.push(from && from.sourceSpan || null); + } + if (newLine) { + this._lines.push(new _EmittedLine(this._indent)); + } + } + removeEmptyLastLine() { + if (this.lineIsEmpty()) { + this._lines.pop(); + } + } + incIndent() { + this._indent++; + if (this.lineIsEmpty()) { + this._currentLine.indent = this._indent; + } + } + decIndent() { + this._indent--; + if (this.lineIsEmpty()) { + this._currentLine.indent = this._indent; + } + } + toSource() { + return this.sourceLines.map(l => l.parts.length > 0 ? _createIndent(l.indent) + l.parts.join('') : '').join('\n'); + } + toSourceMapGenerator(genFilePath, startsAtLine = 0) { + const map = new SourceMapGenerator(genFilePath); + let firstOffsetMapped = false; + const mapFirstOffsetIfNeeded = () => { + if (!firstOffsetMapped) { + // Add a single space so that tools won't try to load the file from disk. + // Note: We are using virtual urls like `ng:///`, so we have to + // provide a content here. + map.addSource(genFilePath, ' ').addMapping(0, genFilePath, 0, 0); + firstOffsetMapped = true; + } + }; + for (let i = 0; i < startsAtLine; i++) { + map.addLine(); + mapFirstOffsetIfNeeded(); + } + this.sourceLines.forEach((line, lineIdx) => { + map.addLine(); + const spans = line.srcSpans; + const parts = line.parts; + let col0 = line.indent * _INDENT_WITH.length; + let spanIdx = 0; + // skip leading parts without source spans + while (spanIdx < spans.length && !spans[spanIdx]) { + col0 += parts[spanIdx].length; + spanIdx++; + } + if (spanIdx < spans.length && lineIdx === 0 && col0 === 0) { + firstOffsetMapped = true; + } else { + mapFirstOffsetIfNeeded(); + } + while (spanIdx < spans.length) { + const span = spans[spanIdx]; + const source = span.start.file; + const sourceLine = span.start.line; + const sourceCol = span.start.col; + map.addSource(source.url, source.content).addMapping(col0, source.url, sourceLine, sourceCol); + col0 += parts[spanIdx].length; + spanIdx++; + // assign parts without span or the same span to the previous segment + while (spanIdx < spans.length && (span === spans[spanIdx] || !spans[spanIdx])) { + col0 += parts[spanIdx].length; + spanIdx++; + } + } + }); + return map; + } + spanOf(line, column) { + const emittedLine = this._lines[line]; + if (emittedLine) { + let columnsLeft = column - _createIndent(emittedLine.indent).length; + for (let partIndex = 0; partIndex < emittedLine.parts.length; partIndex++) { + const part = emittedLine.parts[partIndex]; + if (part.length > columnsLeft) { + return emittedLine.srcSpans[partIndex]; + } + columnsLeft -= part.length; + } + } + return null; + } + /** + * @internal strip this from published d.ts files due to + * https://github.com/microsoft/TypeScript/issues/36216 + */ + get sourceLines() { + if (this._lines.length && this._lines[this._lines.length - 1].parts.length === 0) { + return this._lines.slice(0, -1); + } + return this._lines; + } +} +class AbstractEmitterVisitor { + constructor(_escapeDollarInStrings) { + this._escapeDollarInStrings = _escapeDollarInStrings; + } + printLeadingComments(stmt, ctx) { + if (stmt.leadingComments === undefined) { + return; + } + for (const comment of stmt.leadingComments) { + if (comment instanceof JSDocComment) { + ctx.print(stmt, `/*${comment.toString()}*/`, comment.trailingNewline); + } else { + if (comment.multiline) { + ctx.print(stmt, `/* ${comment.text} */`, comment.trailingNewline); + } else { + comment.text.split('\n').forEach(line => { + ctx.println(stmt, `// ${line}`); + }); + } + } + } + } + visitExpressionStmt(stmt, ctx) { + this.printLeadingComments(stmt, ctx); + stmt.expr.visitExpression(this, ctx); + ctx.println(stmt, ';'); + return null; + } + visitReturnStmt(stmt, ctx) { + this.printLeadingComments(stmt, ctx); + ctx.print(stmt, `return `); + stmt.value.visitExpression(this, ctx); + ctx.println(stmt, ';'); + return null; + } + visitIfStmt(stmt, ctx) { + this.printLeadingComments(stmt, ctx); + ctx.print(stmt, `if (`); + stmt.condition.visitExpression(this, ctx); + ctx.print(stmt, `) {`); + const hasElseCase = stmt.falseCase != null && stmt.falseCase.length > 0; + if (stmt.trueCase.length <= 1 && !hasElseCase) { + ctx.print(stmt, ` `); + this.visitAllStatements(stmt.trueCase, ctx); + ctx.removeEmptyLastLine(); + ctx.print(stmt, ` `); + } else { + ctx.println(); + ctx.incIndent(); + this.visitAllStatements(stmt.trueCase, ctx); + ctx.decIndent(); + if (hasElseCase) { + ctx.println(stmt, `} else {`); + ctx.incIndent(); + this.visitAllStatements(stmt.falseCase, ctx); + ctx.decIndent(); + } + } + ctx.println(stmt, `}`); + return null; + } + visitWriteVarExpr(expr, ctx) { + const lineWasEmpty = ctx.lineIsEmpty(); + if (!lineWasEmpty) { + ctx.print(expr, '('); + } + ctx.print(expr, `${expr.name} = `); + expr.value.visitExpression(this, ctx); + if (!lineWasEmpty) { + ctx.print(expr, ')'); + } + return null; + } + visitWriteKeyExpr(expr, ctx) { + const lineWasEmpty = ctx.lineIsEmpty(); + if (!lineWasEmpty) { + ctx.print(expr, '('); + } + expr.receiver.visitExpression(this, ctx); + ctx.print(expr, `[`); + expr.index.visitExpression(this, ctx); + ctx.print(expr, `] = `); + expr.value.visitExpression(this, ctx); + if (!lineWasEmpty) { + ctx.print(expr, ')'); + } + return null; + } + visitWritePropExpr(expr, ctx) { + const lineWasEmpty = ctx.lineIsEmpty(); + if (!lineWasEmpty) { + ctx.print(expr, '('); + } + expr.receiver.visitExpression(this, ctx); + ctx.print(expr, `.${expr.name} = `); + expr.value.visitExpression(this, ctx); + if (!lineWasEmpty) { + ctx.print(expr, ')'); + } + return null; + } + visitInvokeFunctionExpr(expr, ctx) { + expr.fn.visitExpression(this, ctx); + ctx.print(expr, `(`); + this.visitAllExpressions(expr.args, ctx, ','); + ctx.print(expr, `)`); + return null; + } + visitTaggedTemplateExpr(expr, ctx) { + expr.tag.visitExpression(this, ctx); + ctx.print(expr, '`' + expr.template.elements[0].rawText); + for (let i = 1; i < expr.template.elements.length; i++) { + ctx.print(expr, '${'); + expr.template.expressions[i - 1].visitExpression(this, ctx); + ctx.print(expr, `}${expr.template.elements[i].rawText}`); + } + ctx.print(expr, '`'); + return null; + } + visitWrappedNodeExpr(ast, ctx) { + throw new Error('Abstract emitter cannot visit WrappedNodeExpr.'); + } + visitTypeofExpr(expr, ctx) { + ctx.print(expr, 'typeof '); + expr.expr.visitExpression(this, ctx); + } + visitReadVarExpr(ast, ctx) { + ctx.print(ast, ast.name); + return null; + } + visitInstantiateExpr(ast, ctx) { + ctx.print(ast, `new `); + ast.classExpr.visitExpression(this, ctx); + ctx.print(ast, `(`); + this.visitAllExpressions(ast.args, ctx, ','); + ctx.print(ast, `)`); + return null; + } + visitLiteralExpr(ast, ctx) { + const value = ast.value; + if (typeof value === 'string') { + ctx.print(ast, escapeIdentifier(value, this._escapeDollarInStrings)); + } else { + ctx.print(ast, `${value}`); + } + return null; + } + visitLocalizedString(ast, ctx) { + const head = ast.serializeI18nHead(); + ctx.print(ast, '$localize `' + head.raw); + for (let i = 1; i < ast.messageParts.length; i++) { + ctx.print(ast, '${'); + ast.expressions[i - 1].visitExpression(this, ctx); + ctx.print(ast, `}${ast.serializeI18nTemplatePart(i).raw}`); + } + ctx.print(ast, '`'); + return null; + } + visitConditionalExpr(ast, ctx) { + ctx.print(ast, `(`); + ast.condition.visitExpression(this, ctx); + ctx.print(ast, '? '); + ast.trueCase.visitExpression(this, ctx); + ctx.print(ast, ': '); + ast.falseCase.visitExpression(this, ctx); + ctx.print(ast, `)`); + return null; + } + visitDynamicImportExpr(ast, ctx) { + ctx.print(ast, `import(${ast.url})`); + } + visitNotExpr(ast, ctx) { + ctx.print(ast, '!'); + ast.condition.visitExpression(this, ctx); + return null; + } + visitUnaryOperatorExpr(ast, ctx) { + let opStr; + switch (ast.operator) { + case UnaryOperator.Plus: + opStr = '+'; + break; + case UnaryOperator.Minus: + opStr = '-'; + break; + default: + throw new Error(`Unknown operator ${ast.operator}`); + } + if (ast.parens) ctx.print(ast, `(`); + ctx.print(ast, opStr); + ast.expr.visitExpression(this, ctx); + if (ast.parens) ctx.print(ast, `)`); + return null; + } + visitBinaryOperatorExpr(ast, ctx) { + let opStr; + switch (ast.operator) { + case BinaryOperator.Equals: + opStr = '=='; + break; + case BinaryOperator.Identical: + opStr = '==='; + break; + case BinaryOperator.NotEquals: + opStr = '!='; + break; + case BinaryOperator.NotIdentical: + opStr = '!=='; + break; + case BinaryOperator.And: + opStr = '&&'; + break; + case BinaryOperator.BitwiseAnd: + opStr = '&'; + break; + case BinaryOperator.Or: + opStr = '||'; + break; + case BinaryOperator.Plus: + opStr = '+'; + break; + case BinaryOperator.Minus: + opStr = '-'; + break; + case BinaryOperator.Divide: + opStr = '/'; + break; + case BinaryOperator.Multiply: + opStr = '*'; + break; + case BinaryOperator.Modulo: + opStr = '%'; + break; + case BinaryOperator.Lower: + opStr = '<'; + break; + case BinaryOperator.LowerEquals: + opStr = '<='; + break; + case BinaryOperator.Bigger: + opStr = '>'; + break; + case BinaryOperator.BiggerEquals: + opStr = '>='; + break; + case BinaryOperator.NullishCoalesce: + opStr = '??'; + break; + default: + throw new Error(`Unknown operator ${ast.operator}`); + } + if (ast.parens) ctx.print(ast, `(`); + ast.lhs.visitExpression(this, ctx); + ctx.print(ast, ` ${opStr} `); + ast.rhs.visitExpression(this, ctx); + if (ast.parens) ctx.print(ast, `)`); + return null; + } + visitReadPropExpr(ast, ctx) { + ast.receiver.visitExpression(this, ctx); + ctx.print(ast, `.`); + ctx.print(ast, ast.name); + return null; + } + visitReadKeyExpr(ast, ctx) { + ast.receiver.visitExpression(this, ctx); + ctx.print(ast, `[`); + ast.index.visitExpression(this, ctx); + ctx.print(ast, `]`); + return null; + } + visitLiteralArrayExpr(ast, ctx) { + ctx.print(ast, `[`); + this.visitAllExpressions(ast.entries, ctx, ','); + ctx.print(ast, `]`); + return null; + } + visitLiteralMapExpr(ast, ctx) { + ctx.print(ast, `{`); + this.visitAllObjects(entry => { + ctx.print(ast, `${escapeIdentifier(entry.key, this._escapeDollarInStrings, entry.quoted)}:`); + entry.value.visitExpression(this, ctx); + }, ast.entries, ctx, ','); + ctx.print(ast, `}`); + return null; + } + visitCommaExpr(ast, ctx) { + ctx.print(ast, '('); + this.visitAllExpressions(ast.parts, ctx, ','); + ctx.print(ast, ')'); + return null; + } + visitAllExpressions(expressions, ctx, separator) { + this.visitAllObjects(expr => expr.visitExpression(this, ctx), expressions, ctx, separator); + } + visitAllObjects(handler, expressions, ctx, separator) { + let incrementedIndent = false; + for (let i = 0; i < expressions.length; i++) { + if (i > 0) { + if (ctx.lineLength() > 80) { + ctx.print(null, separator, true); + if (!incrementedIndent) { + // continuation are marked with double indent. + ctx.incIndent(); + ctx.incIndent(); + incrementedIndent = true; + } + } else { + ctx.print(null, separator, false); + } + } + handler(expressions[i]); + } + if (incrementedIndent) { + // continuation are marked with double indent. + ctx.decIndent(); + ctx.decIndent(); + } + } + visitAllStatements(statements, ctx) { + statements.forEach(stmt => stmt.visitStatement(this, ctx)); + } +} +function escapeIdentifier(input, escapeDollar, alwaysQuote = true) { + if (input == null) { + return null; + } + const body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match) => { + if (match[0] == '$') { + return escapeDollar ? '\\$' : '$'; + } else if (match[0] == '\n') { + return '\\n'; + } else if (match[0] == '\r') { + return '\\r'; + } else { + return `\\${match[0]}`; + } + }); + const requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body); + return requiresQuotes ? `'${body}'` : body; +} +function _createIndent(count) { + let res = ''; + for (let i = 0; i < count; i++) { + res += _INDENT_WITH; + } + return res; +} +function typeWithParameters(type, numParams) { + if (numParams === 0) { + return expressionType(type); + } + const params = []; + for (let i = 0; i < numParams; i++) { + params.push(DYNAMIC_TYPE); + } + return expressionType(type, undefined, params); +} +const ANIMATE_SYMBOL_PREFIX = '@'; +function prepareSyntheticPropertyName(name) { + return `${ANIMATE_SYMBOL_PREFIX}${name}`; +} +function prepareSyntheticListenerName(name, phase) { + return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`; +} +function getSafePropertyAccessString(accessor, name) { + const escapedName = escapeIdentifier(name, false, false); + return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`; +} +function prepareSyntheticListenerFunctionName(name, phase) { + return `animation_${name}_${phase}`; +} +function jitOnlyGuardedExpression(expr) { + return guardedExpression('ngJitMode', expr); +} +function devOnlyGuardedExpression(expr) { + return guardedExpression('ngDevMode', expr); +} +function guardedExpression(guard, expr) { + const guardExpr = new ExternalExpr({ + name: guard, + moduleName: null + }); + const guardNotDefined = new BinaryOperatorExpr(BinaryOperator.Identical, new TypeofExpr(guardExpr), literal('undefined')); + const guardUndefinedOrTrue = new BinaryOperatorExpr(BinaryOperator.Or, guardNotDefined, guardExpr, /* type */undefined, /* sourceSpan */undefined, true); + return new BinaryOperatorExpr(BinaryOperator.And, guardUndefinedOrTrue, expr); +} +function wrapReference(value) { + const wrapped = new WrappedNodeExpr(value); + return { + value: wrapped, + type: wrapped + }; +} +function refsToArray(refs, shouldForwardDeclare) { + const values = literalArr(refs.map(ref => ref.value)); + return shouldForwardDeclare ? fn([], [new ReturnStatement(values)]) : values; +} +function createMayBeForwardRefExpression(expression, forwardRef) { + return { + expression, + forwardRef + }; +} +/** + * Convert a `MaybeForwardRefExpression` to an `Expression`, possibly wrapping its expression in a + * `forwardRef()` call. + * + * If `MaybeForwardRefExpression.forwardRef` is `ForwardRefHandling.Unwrapped` then the expression + * was originally wrapped in a `forwardRef()` call to prevent the value from being eagerly evaluated + * in the code. + * + * See `packages/compiler-cli/src/ngtsc/annotations/src/injectable.ts` and + * `packages/compiler/src/jit_compiler_facade.ts` for more information. + */ +function convertFromMaybeForwardRefExpression({ + expression, + forwardRef +}) { + switch (forwardRef) { + case 0 /* ForwardRefHandling.None */: + case 1 /* ForwardRefHandling.Wrapped */: + return expression; + case 2 /* ForwardRefHandling.Unwrapped */: + return generateForwardRef(expression); + } +} +/** + * Generate an expression that has the given `expr` wrapped in the following form: + * + * ``` + * forwardRef(() => expr) + * ``` + */ +function generateForwardRef(expr) { + return importExpr(Identifiers.forwardRef).callFn([fn([], [new ReturnStatement(expr)])]); +} +var R3FactoryDelegateType; +(function (R3FactoryDelegateType) { + R3FactoryDelegateType[R3FactoryDelegateType["Class"] = 0] = "Class"; + R3FactoryDelegateType[R3FactoryDelegateType["Function"] = 1] = "Function"; +})(R3FactoryDelegateType || (R3FactoryDelegateType = {})); +var FactoryTarget$1; +(function (FactoryTarget) { + FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive"; + FactoryTarget[FactoryTarget["Component"] = 1] = "Component"; + FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable"; + FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe"; + FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule"; +})(FactoryTarget$1 || (FactoryTarget$1 = {})); +/** + * Construct a factory function expression for the given `R3FactoryMetadata`. + */ +function compileFactoryFunction(meta) { + const t = variable('t'); + let baseFactoryVar = null; + // The type to instantiate via constructor invocation. If there is no delegated factory, meaning + // this type is always created by constructor invocation, then this is the type-to-create + // parameter provided by the user (t) if specified, or the current type if not. If there is a + // delegated factory (which is used to create the current type) then this is only the type-to- + // create parameter (t). + const typeForCtor = !isDelegatedFactoryMetadata(meta) ? new BinaryOperatorExpr(BinaryOperator.Or, t, meta.type.value) : t; + let ctorExpr = null; + if (meta.deps !== null) { + // There is a constructor (either explicitly or implicitly defined). + if (meta.deps !== 'invalid') { + ctorExpr = new InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.target)); + } + } else { + // There is no constructor, use the base class' factory to construct typeForCtor. + baseFactoryVar = variable(`ɵ${meta.name}_BaseFactory`); + ctorExpr = baseFactoryVar.callFn([typeForCtor]); + } + const body = []; + let retExpr = null; + function makeConditionalFactory(nonCtorExpr) { + const r = variable('r'); + body.push(r.set(NULL_EXPR).toDeclStmt()); + const ctorStmt = ctorExpr !== null ? r.set(ctorExpr).toStmt() : importExpr(Identifiers.invalidFactory).callFn([]).toStmt(); + body.push(ifStmt(t, [ctorStmt], [r.set(nonCtorExpr).toStmt()])); + return r; + } + if (isDelegatedFactoryMetadata(meta)) { + // This type is created with a delegated factory. If a type parameter is not specified, call + // the factory instead. + const delegateArgs = injectDependencies(meta.delegateDeps, meta.target); + // Either call `new delegate(...)` or `delegate(...)` depending on meta.delegateType. + const factoryExpr = new (meta.delegateType === R3FactoryDelegateType.Class ? InstantiateExpr : InvokeFunctionExpr)(meta.delegate, delegateArgs); + retExpr = makeConditionalFactory(factoryExpr); + } else if (isExpressionFactoryMetadata(meta)) { + // TODO(alxhub): decide whether to lower the value here or in the caller + retExpr = makeConditionalFactory(meta.expression); + } else { + retExpr = ctorExpr; + } + if (retExpr === null) { + // The expression cannot be formed so render an `ɵɵinvalidFactory()` call. + body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt()); + } else if (baseFactoryVar !== null) { + // This factory uses a base factory, so call `ɵɵgetInheritedFactory()` to compute it. + const getInheritedFactoryCall = importExpr(Identifiers.getInheritedFactory).callFn([meta.type.value]); + // Memoize the base factoryFn: `baseFactory || (baseFactory = ɵɵgetInheritedFactory(...))` + const baseFactory = new BinaryOperatorExpr(BinaryOperator.Or, baseFactoryVar, baseFactoryVar.set(getInheritedFactoryCall)); + body.push(new ReturnStatement(baseFactory.callFn([typeForCtor]))); + } else { + // This is straightforward factory, just return it. + body.push(new ReturnStatement(retExpr)); + } + let factoryFn = fn([new FnParam('t', DYNAMIC_TYPE)], body, INFERRED_TYPE, undefined, `${meta.name}_Factory`); + if (baseFactoryVar !== null) { + // There is a base factory variable so wrap its declaration along with the factory function into + // an IIFE. + factoryFn = fn([], [new DeclareVarStmt(baseFactoryVar.name), new ReturnStatement(factoryFn)]).callFn([], /* sourceSpan */undefined, /* pure */true); + } + return { + expression: factoryFn, + statements: [], + type: createFactoryType(meta) + }; +} +function createFactoryType(meta) { + const ctorDepsType = meta.deps !== null && meta.deps !== 'invalid' ? createCtorDepsType(meta.deps) : NONE_TYPE; + return expressionType(importExpr(Identifiers.FactoryDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount), ctorDepsType])); +} +function injectDependencies(deps, target) { + return deps.map((dep, index) => compileInjectDependency(dep, target, index)); +} +function compileInjectDependency(dep, target, index) { + // Interpret the dependency according to its resolved type. + if (dep.token === null) { + return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]); + } else if (dep.attributeNameType === null) { + // Build up the injection flags according to the metadata. + const flags = 0 /* InjectFlags.Default */ | (dep.self ? 2 /* InjectFlags.Self */ : 0) | (dep.skipSelf ? 4 /* InjectFlags.SkipSelf */ : 0) | (dep.host ? 1 /* InjectFlags.Host */ : 0) | (dep.optional ? 8 /* InjectFlags.Optional */ : 0) | (target === FactoryTarget$1.Pipe ? 16 /* InjectFlags.ForPipe */ : 0); + // If this dependency is optional or otherwise has non-default flags, then additional + // parameters describing how to inject the dependency must be passed to the inject function + // that's being used. + let flagsParam = flags !== 0 /* InjectFlags.Default */ || dep.optional ? literal(flags) : null; + // Build up the arguments to the injectFn call. + const injectArgs = [dep.token]; + if (flagsParam) { + injectArgs.push(flagsParam); + } + const injectFn = getInjectFn(target); + return importExpr(injectFn).callFn(injectArgs); + } else { + // The `dep.attributeTypeName` value is defined, which indicates that this is an `@Attribute()` + // type dependency. For the generated JS we still want to use the `dep.token` value in case the + // name given for the attribute is not a string literal. For example given `@Attribute(foo())`, + // we want to generate `ɵɵinjectAttribute(foo())`. + // + // The `dep.attributeTypeName` is only actually used (in `createCtorDepType()`) to generate + // typings. + return importExpr(Identifiers.injectAttribute).callFn([dep.token]); + } +} +function createCtorDepsType(deps) { + let hasTypes = false; + const attributeTypes = deps.map(dep => { + const type = createCtorDepType(dep); + if (type !== null) { + hasTypes = true; + return type; + } else { + return literal(null); + } + }); + if (hasTypes) { + return expressionType(literalArr(attributeTypes)); + } else { + return NONE_TYPE; + } +} +function createCtorDepType(dep) { + const entries = []; + if (dep.attributeNameType !== null) { + entries.push({ + key: 'attribute', + value: dep.attributeNameType, + quoted: false + }); + } + if (dep.optional) { + entries.push({ + key: 'optional', + value: literal(true), + quoted: false + }); + } + if (dep.host) { + entries.push({ + key: 'host', + value: literal(true), + quoted: false + }); + } + if (dep.self) { + entries.push({ + key: 'self', + value: literal(true), + quoted: false + }); + } + if (dep.skipSelf) { + entries.push({ + key: 'skipSelf', + value: literal(true), + quoted: false + }); + } + return entries.length > 0 ? literalMap(entries) : null; +} +function isDelegatedFactoryMetadata(meta) { + return meta.delegateType !== undefined; +} +function isExpressionFactoryMetadata(meta) { + return meta.expression !== undefined; +} +function getInjectFn(target) { + switch (target) { + case FactoryTarget$1.Component: + case FactoryTarget$1.Directive: + case FactoryTarget$1.Pipe: + return Identifiers.directiveInject; + case FactoryTarget$1.NgModule: + case FactoryTarget$1.Injectable: + default: + return Identifiers.inject; + } +} + +/** + * This is an R3 `Node`-like wrapper for a raw `html.Comment` node. We do not currently + * require the implementation of a visitor for Comments as they are only collected at + * the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']` + * is true. + */ +class Comment$1 { + constructor(value, sourceSpan) { + this.value = value; + this.sourceSpan = sourceSpan; + } + visit(_visitor) { + throw new Error('visit() not implemented for Comment'); + } +} +class Text$3 { + constructor(value, sourceSpan) { + this.value = value; + this.sourceSpan = sourceSpan; + } + visit(visitor) { + return visitor.visitText(this); + } +} +class BoundText { + constructor(value, sourceSpan, i18n) { + this.value = value; + this.sourceSpan = sourceSpan; + this.i18n = i18n; + } + visit(visitor) { + return visitor.visitBoundText(this); + } +} +/** + * Represents a text attribute in the template. + * + * `valueSpan` may not be present in cases where there is no value `
    `. + * `keySpan` may also not be present for synthetic attributes from ICU expansions. + */ +class TextAttribute { + constructor(name, value, sourceSpan, keySpan, valueSpan, i18n) { + this.name = name; + this.value = value; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + this.i18n = i18n; + } + visit(visitor) { + return visitor.visitTextAttribute(this); + } +} +class BoundAttribute { + constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan, i18n) { + this.name = name; + this.type = type; + this.securityContext = securityContext; + this.value = value; + this.unit = unit; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + this.i18n = i18n; + } + static fromBoundElementProperty(prop, i18n) { + if (prop.keySpan === undefined) { + throw new Error(`Unexpected state: keySpan must be defined for bound attributes but was not for ${prop.name}: ${prop.sourceSpan}`); + } + return new BoundAttribute(prop.name, prop.type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan, prop.keySpan, prop.valueSpan, i18n); + } + visit(visitor) { + return visitor.visitBoundAttribute(this); + } +} +class BoundEvent { + constructor(name, type, handler, target, phase, sourceSpan, handlerSpan, keySpan) { + this.name = name; + this.type = type; + this.handler = handler; + this.target = target; + this.phase = phase; + this.sourceSpan = sourceSpan; + this.handlerSpan = handlerSpan; + this.keySpan = keySpan; + } + static fromParsedEvent(event) { + const target = event.type === 0 /* ParsedEventType.Regular */ ? event.targetOrPhase : null; + const phase = event.type === 1 /* ParsedEventType.Animation */ ? event.targetOrPhase : null; + if (event.keySpan === undefined) { + throw new Error(`Unexpected state: keySpan must be defined for bound event but was not for ${event.name}: ${event.sourceSpan}`); + } + return new BoundEvent(event.name, event.type, event.handler, target, phase, event.sourceSpan, event.handlerSpan, event.keySpan); + } + visit(visitor) { + return visitor.visitBoundEvent(this); + } +} +class Element$1 { + constructor(name, attributes, inputs, outputs, children, references, sourceSpan, startSourceSpan, endSourceSpan, i18n) { + this.name = name; + this.attributes = attributes; + this.inputs = inputs; + this.outputs = outputs; + this.children = children; + this.references = references; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + this.i18n = i18n; + } + visit(visitor) { + return visitor.visitElement(this); + } +} +class DeferredTrigger { + constructor(sourceSpan) { + this.sourceSpan = sourceSpan; + } + visit(visitor) { + return visitor.visitDeferredTrigger(this); + } +} +class BoundDeferredTrigger extends DeferredTrigger { + constructor(value, sourceSpan) { + super(sourceSpan); + this.value = value; + } +} +class IdleDeferredTrigger extends DeferredTrigger {} +class ImmediateDeferredTrigger extends DeferredTrigger {} +class HoverDeferredTrigger extends DeferredTrigger {} +class TimerDeferredTrigger extends DeferredTrigger { + constructor(delay, sourceSpan) { + super(sourceSpan); + this.delay = delay; + } +} +class InteractionDeferredTrigger extends DeferredTrigger { + constructor(reference, sourceSpan) { + super(sourceSpan); + this.reference = reference; + } +} +class ViewportDeferredTrigger extends DeferredTrigger { + constructor(reference, sourceSpan) { + super(sourceSpan); + this.reference = reference; + } +} +class DeferredBlockPlaceholder { + constructor(children, minimumTime, sourceSpan, startSourceSpan, endSourceSpan) { + this.children = children; + this.minimumTime = minimumTime; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor) { + return visitor.visitDeferredBlockPlaceholder(this); + } +} +class DeferredBlockLoading { + constructor(children, afterTime, minimumTime, sourceSpan, startSourceSpan, endSourceSpan) { + this.children = children; + this.afterTime = afterTime; + this.minimumTime = minimumTime; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor) { + return visitor.visitDeferredBlockLoading(this); + } +} +class DeferredBlockError { + constructor(children, sourceSpan, startSourceSpan, endSourceSpan) { + this.children = children; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor) { + return visitor.visitDeferredBlockError(this); + } +} +class DeferredBlock { + constructor(children, triggers, prefetchTriggers, placeholder, loading, error, sourceSpan, startSourceSpan, endSourceSpan) { + this.children = children; + this.triggers = triggers; + this.prefetchTriggers = prefetchTriggers; + this.placeholder = placeholder; + this.loading = loading; + this.error = error; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor) { + return visitor.visitDeferredBlock(this); + } +} +class Template { + constructor( + // tagName is the name of the container element, if applicable. + // `null` is a special case for when there is a structural directive on an `ng-template` so + // the renderer can differentiate between the synthetic template and the one written in the + // file. + tagName, attributes, inputs, outputs, templateAttrs, children, references, variables, sourceSpan, startSourceSpan, endSourceSpan, i18n) { + this.tagName = tagName; + this.attributes = attributes; + this.inputs = inputs; + this.outputs = outputs; + this.templateAttrs = templateAttrs; + this.children = children; + this.references = references; + this.variables = variables; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + this.i18n = i18n; + } + visit(visitor) { + return visitor.visitTemplate(this); + } +} +class Content { + constructor(selector, attributes, sourceSpan, i18n) { + this.selector = selector; + this.attributes = attributes; + this.sourceSpan = sourceSpan; + this.i18n = i18n; + this.name = 'ng-content'; + } + visit(visitor) { + return visitor.visitContent(this); + } +} +class Variable { + constructor(name, value, sourceSpan, keySpan, valueSpan) { + this.name = name; + this.value = value; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + } + visit(visitor) { + return visitor.visitVariable(this); + } +} +class Reference { + constructor(name, value, sourceSpan, keySpan, valueSpan) { + this.name = name; + this.value = value; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + } + visit(visitor) { + return visitor.visitReference(this); + } +} +class Icu$1 { + constructor(vars, placeholders, sourceSpan, i18n) { + this.vars = vars; + this.placeholders = placeholders; + this.sourceSpan = sourceSpan; + this.i18n = i18n; + } + visit(visitor) { + return visitor.visitIcu(this); + } +} +class RecursiveVisitor$1 { + visitElement(element) { + visitAll$1(this, element.attributes); + visitAll$1(this, element.inputs); + visitAll$1(this, element.outputs); + visitAll$1(this, element.children); + visitAll$1(this, element.references); + } + visitTemplate(template) { + visitAll$1(this, template.attributes); + visitAll$1(this, template.inputs); + visitAll$1(this, template.outputs); + visitAll$1(this, template.children); + visitAll$1(this, template.references); + visitAll$1(this, template.variables); + } + visitDeferredBlock(deferred) { + visitAll$1(this, deferred.triggers); + visitAll$1(this, deferred.prefetchTriggers); + visitAll$1(this, deferred.children); + deferred.placeholder?.visit(this); + deferred.loading?.visit(this); + deferred.error?.visit(this); + } + visitDeferredBlockPlaceholder(block) { + visitAll$1(this, block.children); + } + visitDeferredBlockError(block) { + visitAll$1(this, block.children); + } + visitDeferredBlockLoading(block) { + visitAll$1(this, block.children); + } + visitContent(content) {} + visitVariable(variable) {} + visitReference(reference) {} + visitTextAttribute(attribute) {} + visitBoundAttribute(attribute) {} + visitBoundEvent(attribute) {} + visitText(text) {} + visitBoundText(text) {} + visitIcu(icu) {} + visitDeferredTrigger(trigger) {} +} +function visitAll$1(visitor, nodes) { + const result = []; + if (visitor.visit) { + for (const node of nodes) { + visitor.visit(node) || node.visit(visitor); + } + } else { + for (const node of nodes) { + const newNode = node.visit(visitor); + if (newNode) { + result.push(newNode); + } + } + } + return result; +} +class Message { + /** + * @param nodes message AST + * @param placeholders maps placeholder names to static content and their source spans + * @param placeholderToMessage maps placeholder names to messages (used for nested ICU messages) + * @param meaning + * @param description + * @param customId + */ + constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) { + this.nodes = nodes; + this.placeholders = placeholders; + this.placeholderToMessage = placeholderToMessage; + this.meaning = meaning; + this.description = description; + this.customId = customId; + /** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */ + this.legacyIds = []; + this.id = this.customId; + this.messageString = serializeMessage(this.nodes); + if (nodes.length) { + this.sources = [{ + filePath: nodes[0].sourceSpan.start.file.url, + startLine: nodes[0].sourceSpan.start.line + 1, + startCol: nodes[0].sourceSpan.start.col + 1, + endLine: nodes[nodes.length - 1].sourceSpan.end.line + 1, + endCol: nodes[0].sourceSpan.start.col + 1 + }]; + } else { + this.sources = []; + } + } +} +class Text$2 { + constructor(value, sourceSpan) { + this.value = value; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitText(this, context); + } +} +// TODO(vicb): do we really need this node (vs an array) ? +class Container { + constructor(children, sourceSpan) { + this.children = children; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitContainer(this, context); + } +} +class Icu { + constructor(expression, type, cases, sourceSpan, expressionPlaceholder) { + this.expression = expression; + this.type = type; + this.cases = cases; + this.sourceSpan = sourceSpan; + this.expressionPlaceholder = expressionPlaceholder; + } + visit(visitor, context) { + return visitor.visitIcu(this, context); + } +} +class TagPlaceholder { + constructor(tag, attrs, startName, closeName, children, isVoid, + // TODO sourceSpan should cover all (we need a startSourceSpan and endSourceSpan) + sourceSpan, startSourceSpan, endSourceSpan) { + this.tag = tag; + this.attrs = attrs; + this.startName = startName; + this.closeName = closeName; + this.children = children; + this.isVoid = isVoid; + this.sourceSpan = sourceSpan; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor, context) { + return visitor.visitTagPlaceholder(this, context); + } +} +class Placeholder { + constructor(value, name, sourceSpan) { + this.value = value; + this.name = name; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitPlaceholder(this, context); + } +} +class IcuPlaceholder { + constructor(value, name, sourceSpan) { + this.value = value; + this.name = name; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitIcuPlaceholder(this, context); + } +} +// Clone the AST +class CloneVisitor { + visitText(text, context) { + return new Text$2(text.value, text.sourceSpan); + } + visitContainer(container, context) { + const children = container.children.map(n => n.visit(this, context)); + return new Container(children, container.sourceSpan); + } + visitIcu(icu, context) { + const cases = {}; + Object.keys(icu.cases).forEach(key => cases[key] = icu.cases[key].visit(this, context)); + const msg = new Icu(icu.expression, icu.type, cases, icu.sourceSpan, icu.expressionPlaceholder); + return msg; + } + visitTagPlaceholder(ph, context) { + const children = ph.children.map(n => n.visit(this, context)); + return new TagPlaceholder(ph.tag, ph.attrs, ph.startName, ph.closeName, children, ph.isVoid, ph.sourceSpan, ph.startSourceSpan, ph.endSourceSpan); + } + visitPlaceholder(ph, context) { + return new Placeholder(ph.value, ph.name, ph.sourceSpan); + } + visitIcuPlaceholder(ph, context) { + return new IcuPlaceholder(ph.value, ph.name, ph.sourceSpan); + } +} +// Visit all the nodes recursively +class RecurseVisitor { + visitText(text, context) {} + visitContainer(container, context) { + container.children.forEach(child => child.visit(this)); + } + visitIcu(icu, context) { + Object.keys(icu.cases).forEach(k => { + icu.cases[k].visit(this); + }); + } + visitTagPlaceholder(ph, context) { + ph.children.forEach(child => child.visit(this)); + } + visitPlaceholder(ph, context) {} + visitIcuPlaceholder(ph, context) {} +} +/** + * Serialize the message to the Localize backtick string format that would appear in compiled code. + */ +function serializeMessage(messageNodes) { + const visitor = new LocalizeMessageStringVisitor(); + const str = messageNodes.map(n => n.visit(visitor)).join(''); + return str; +} +class LocalizeMessageStringVisitor { + visitText(text) { + return text.value; + } + visitContainer(container) { + return container.children.map(child => child.visit(this)).join(''); + } + visitIcu(icu) { + const strCases = Object.keys(icu.cases).map(k => `${k} {${icu.cases[k].visit(this)}}`); + return `{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(' ')}}`; + } + visitTagPlaceholder(ph) { + const children = ph.children.map(child => child.visit(this)).join(''); + return `{$${ph.startName}}${children}{$${ph.closeName}}`; + } + visitPlaceholder(ph) { + return `{$${ph.name}}`; + } + visitIcuPlaceholder(ph) { + return `{$${ph.name}}`; + } +} +class Serializer { + // Creates a name mapper, see `PlaceholderMapper` + // Returning `null` means that no name mapping is used. + createNameMapper(message) { + return null; + } +} +/** + * A simple mapper that take a function to transform an internal name to a public name + */ +class SimplePlaceholderMapper extends RecurseVisitor { + // create a mapping from the message + constructor(message, mapName) { + super(); + this.mapName = mapName; + this.internalToPublic = {}; + this.publicToNextId = {}; + this.publicToInternal = {}; + message.nodes.forEach(node => node.visit(this)); + } + toPublicName(internalName) { + return this.internalToPublic.hasOwnProperty(internalName) ? this.internalToPublic[internalName] : null; + } + toInternalName(publicName) { + return this.publicToInternal.hasOwnProperty(publicName) ? this.publicToInternal[publicName] : null; + } + visitText(text, context) { + return null; + } + visitTagPlaceholder(ph, context) { + this.visitPlaceholderName(ph.startName); + super.visitTagPlaceholder(ph, context); + this.visitPlaceholderName(ph.closeName); + } + visitPlaceholder(ph, context) { + this.visitPlaceholderName(ph.name); + } + visitIcuPlaceholder(ph, context) { + this.visitPlaceholderName(ph.name); + } + // XMB placeholders could only contains A-Z, 0-9 and _ + visitPlaceholderName(internalName) { + if (!internalName || this.internalToPublic.hasOwnProperty(internalName)) { + return; + } + let publicName = this.mapName(internalName); + if (this.publicToInternal.hasOwnProperty(publicName)) { + // Create a new XMB when it has already been used + const nextId = this.publicToNextId[publicName]; + this.publicToNextId[publicName] = nextId + 1; + publicName = `${publicName}_${nextId}`; + } else { + this.publicToNextId[publicName] = 1; + } + this.internalToPublic[internalName] = publicName; + this.publicToInternal[publicName] = internalName; + } +} +class _Visitor$2 { + visitTag(tag) { + const strAttrs = this._serializeAttributes(tag.attrs); + if (tag.children.length == 0) { + return `<${tag.name}${strAttrs}/>`; + } + const strChildren = tag.children.map(node => node.visit(this)); + return `<${tag.name}${strAttrs}>${strChildren.join('')}`; + } + visitText(text) { + return text.value; + } + visitDeclaration(decl) { + return ``; + } + _serializeAttributes(attrs) { + const strAttrs = Object.keys(attrs).map(name => `${name}="${attrs[name]}"`).join(' '); + return strAttrs.length > 0 ? ' ' + strAttrs : ''; + } + visitDoctype(doctype) { + return ``; + } +} +const _visitor = new _Visitor$2(); +function serialize(nodes) { + return nodes.map(node => node.visit(_visitor)).join(''); +} +class Declaration { + constructor(unescapedAttrs) { + this.attrs = {}; + Object.keys(unescapedAttrs).forEach(k => { + this.attrs[k] = escapeXml(unescapedAttrs[k]); + }); + } + visit(visitor) { + return visitor.visitDeclaration(this); + } +} +class Doctype { + constructor(rootTag, dtd) { + this.rootTag = rootTag; + this.dtd = dtd; + } + visit(visitor) { + return visitor.visitDoctype(this); + } +} +class Tag { + constructor(name, unescapedAttrs = {}, children = []) { + this.name = name; + this.children = children; + this.attrs = {}; + Object.keys(unescapedAttrs).forEach(k => { + this.attrs[k] = escapeXml(unescapedAttrs[k]); + }); + } + visit(visitor) { + return visitor.visitTag(this); + } +} +class Text$1 { + constructor(unescapedValue) { + this.value = escapeXml(unescapedValue); + } + visit(visitor) { + return visitor.visitText(this); + } +} +class CR extends Text$1 { + constructor(ws = 0) { + super(`\n${new Array(ws + 1).join(' ')}`); + } +} +const _ESCAPED_CHARS = [[/&/g, '&'], [/"/g, '"'], [/'/g, '''], [//g, '>']]; +// Escape `_ESCAPED_CHARS` characters in the given text with encoded entities +function escapeXml(text) { + return _ESCAPED_CHARS.reduce((text, entry) => text.replace(entry[0], entry[1]), text); +} +const _MESSAGES_TAG = 'messagebundle'; +const _MESSAGE_TAG = 'msg'; +const _PLACEHOLDER_TAG$3 = 'ph'; +const _EXAMPLE_TAG = 'ex'; +const _SOURCE_TAG$2 = 'source'; +const _DOCTYPE = ` + + + + + + + + + + + + + + + + + +`; +class Xmb extends Serializer { + write(messages, locale) { + const exampleVisitor = new ExampleVisitor(); + const visitor = new _Visitor$1(); + let rootNode = new Tag(_MESSAGES_TAG); + messages.forEach(message => { + const attrs = { + id: message.id + }; + if (message.description) { + attrs['desc'] = message.description; + } + if (message.meaning) { + attrs['meaning'] = message.meaning; + } + let sourceTags = []; + message.sources.forEach(source => { + sourceTags.push(new Tag(_SOURCE_TAG$2, {}, [new Text$1(`${source.filePath}:${source.startLine}${source.endLine !== source.startLine ? ',' + source.endLine : ''}`)])); + }); + rootNode.children.push(new CR(2), new Tag(_MESSAGE_TAG, attrs, [...sourceTags, ...visitor.serialize(message.nodes)])); + }); + rootNode.children.push(new CR()); + return serialize([new Declaration({ + version: '1.0', + encoding: 'UTF-8' + }), new CR(), new Doctype(_MESSAGES_TAG, _DOCTYPE), new CR(), exampleVisitor.addDefaultExamples(rootNode), new CR()]); + } + load(content, url) { + throw new Error('Unsupported'); + } + digest(message) { + return digest(message); + } + createNameMapper(message) { + return new SimplePlaceholderMapper(message, toPublicName); + } +} +class _Visitor$1 { + visitText(text, context) { + return [new Text$1(text.value)]; + } + visitContainer(container, context) { + const nodes = []; + container.children.forEach(node => nodes.push(...node.visit(this))); + return nodes; + } + visitIcu(icu, context) { + const nodes = [new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)]; + Object.keys(icu.cases).forEach(c => { + nodes.push(new Text$1(`${c} {`), ...icu.cases[c].visit(this), new Text$1(`} `)); + }); + nodes.push(new Text$1(`}`)); + return nodes; + } + visitTagPlaceholder(ph, context) { + const startTagAsText = new Text$1(`<${ph.tag}>`); + const startEx = new Tag(_EXAMPLE_TAG, {}, [startTagAsText]); + // TC requires PH to have a non empty EX, and uses the text node to show the "original" value. + const startTagPh = new Tag(_PLACEHOLDER_TAG$3, { + name: ph.startName + }, [startEx, startTagAsText]); + if (ph.isVoid) { + // void tags have no children nor closing tags + return [startTagPh]; + } + const closeTagAsText = new Text$1(``); + const closeEx = new Tag(_EXAMPLE_TAG, {}, [closeTagAsText]); + // TC requires PH to have a non empty EX, and uses the text node to show the "original" value. + const closeTagPh = new Tag(_PLACEHOLDER_TAG$3, { + name: ph.closeName + }, [closeEx, closeTagAsText]); + return [startTagPh, ...this.serialize(ph.children), closeTagPh]; + } + visitPlaceholder(ph, context) { + const interpolationAsText = new Text$1(`{{${ph.value}}}`); + // Example tag needs to be not-empty for TC. + const exTag = new Tag(_EXAMPLE_TAG, {}, [interpolationAsText]); + return [ + // TC requires PH to have a non empty EX, and uses the text node to show the "original" value. + new Tag(_PLACEHOLDER_TAG$3, { + name: ph.name + }, [exTag, interpolationAsText])]; + } + visitIcuPlaceholder(ph, context) { + const icuExpression = ph.value.expression; + const icuType = ph.value.type; + const icuCases = Object.keys(ph.value.cases).map(value => value + ' {...}').join(' '); + const icuAsText = new Text$1(`{${icuExpression}, ${icuType}, ${icuCases}}`); + const exTag = new Tag(_EXAMPLE_TAG, {}, [icuAsText]); + return [ + // TC requires PH to have a non empty EX, and uses the text node to show the "original" value. + new Tag(_PLACEHOLDER_TAG$3, { + name: ph.name + }, [exTag, icuAsText])]; + } + serialize(nodes) { + return [].concat(...nodes.map(node => node.visit(this))); + } +} +function digest(message) { + return decimalDigest(message); +} +// TC requires at least one non-empty example on placeholders +class ExampleVisitor { + addDefaultExamples(node) { + node.visit(this); + return node; + } + visitTag(tag) { + if (tag.name === _PLACEHOLDER_TAG$3) { + if (!tag.children || tag.children.length == 0) { + const exText = new Text$1(tag.attrs['name'] || '...'); + tag.children = [new Tag(_EXAMPLE_TAG, {}, [exText])]; + } + } else if (tag.children) { + tag.children.forEach(node => node.visit(this)); + } + } + visitText(text) {} + visitDeclaration(decl) {} + visitDoctype(doctype) {} +} +// XMB/XTB placeholders can only contain A-Z, 0-9 and _ +function toPublicName(internalName) { + return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_'); +} + +/* Closure variables holding messages must be named `MSG_[A-Z0-9]+` */ +const CLOSURE_TRANSLATION_VAR_PREFIX = 'MSG_'; +/** + * Prefix for non-`goog.getMsg` i18n-related vars. + * Note: the prefix uses lowercase characters intentionally due to a Closure behavior that + * considers variables like `I18N_0` as constants and throws an error when their value changes. + */ +const TRANSLATION_VAR_PREFIX = 'i18n_'; +/** Name of the i18n attributes **/ +const I18N_ATTR = 'i18n'; +const I18N_ATTR_PREFIX = 'i18n-'; +/** Prefix of var expressions used in ICUs */ +const I18N_ICU_VAR_PREFIX = 'VAR_'; +/** Prefix of ICU expressions for post processing */ +const I18N_ICU_MAPPING_PREFIX = 'I18N_EXP_'; +/** Placeholder wrapper for i18n expressions **/ +const I18N_PLACEHOLDER_SYMBOL = '�'; +function isI18nAttribute(name) { + return name === I18N_ATTR || name.startsWith(I18N_ATTR_PREFIX); +} +function isI18nRootNode(meta) { + return meta instanceof Message; +} +function isSingleI18nIcu(meta) { + return isI18nRootNode(meta) && meta.nodes.length === 1 && meta.nodes[0] instanceof Icu; +} +function hasI18nMeta(node) { + return !!node.i18n; +} +function hasI18nAttrs(element) { + return element.attrs.some(attr => isI18nAttribute(attr.name)); +} +function icuFromI18nMessage(message) { + return message.nodes[0]; +} +function wrapI18nPlaceholder(content, contextId = 0) { + const blockId = contextId > 0 ? `:${contextId}` : ''; + return `${I18N_PLACEHOLDER_SYMBOL}${content}${blockId}${I18N_PLACEHOLDER_SYMBOL}`; +} +function assembleI18nBoundString(strings, bindingStartIndex = 0, contextId = 0) { + if (!strings.length) return ''; + let acc = ''; + const lastIdx = strings.length - 1; + for (let i = 0; i < lastIdx; i++) { + acc += `${strings[i]}${wrapI18nPlaceholder(bindingStartIndex + i, contextId)}`; + } + acc += strings[lastIdx]; + return acc; +} +function getSeqNumberGenerator(startsAt = 0) { + let current = startsAt; + return () => current++; +} +function placeholdersToParams(placeholders) { + const params = {}; + placeholders.forEach((values, key) => { + params[key] = literal(values.length > 1 ? `[${values.join('|')}]` : values[0]); + }); + return params; +} +function updatePlaceholderMap(map, name, ...values) { + const current = map.get(name) || []; + current.push(...values); + map.set(name, current); +} +function assembleBoundTextPlaceholders(meta, bindingStartIndex = 0, contextId = 0) { + const startIdx = bindingStartIndex; + const placeholders = new Map(); + const node = meta instanceof Message ? meta.nodes.find(node => node instanceof Container) : meta; + if (node) { + node.children.filter(child => child instanceof Placeholder).forEach((child, idx) => { + const content = wrapI18nPlaceholder(startIdx + idx, contextId); + updatePlaceholderMap(placeholders, child.name, content); + }); + } + return placeholders; +} +/** + * Format the placeholder names in a map of placeholders to expressions. + * + * The placeholder names are converted from "internal" format (e.g. `START_TAG_DIV_1`) to "external" + * format (e.g. `startTagDiv_1`). + * + * @param params A map of placeholder names to expressions. + * @param useCamelCase whether to camelCase the placeholder name when formatting. + * @returns A new map of formatted placeholder names to expressions. + */ +function formatI18nPlaceholderNamesInMap(params = {}, useCamelCase) { + const _params = {}; + if (params && Object.keys(params).length) { + Object.keys(params).forEach(key => _params[formatI18nPlaceholderName(key, useCamelCase)] = params[key]); + } + return _params; +} +/** + * Converts internal placeholder names to public-facing format + * (for example to use in goog.getMsg call). + * Example: `START_TAG_DIV_1` is converted to `startTagDiv_1`. + * + * @param name The placeholder name that should be formatted + * @returns Formatted placeholder name + */ +function formatI18nPlaceholderName(name, useCamelCase = true) { + const publicName = toPublicName(name); + if (!useCamelCase) { + return publicName; + } + const chunks = publicName.split('_'); + if (chunks.length === 1) { + // if no "_" found - just lowercase the value + return name.toLowerCase(); + } + let postfix; + // eject last element if it's a number + if (/^\d+$/.test(chunks[chunks.length - 1])) { + postfix = chunks.pop(); + } + let raw = chunks.shift().toLowerCase(); + if (chunks.length) { + raw += chunks.map(c => c.charAt(0).toUpperCase() + c.slice(1).toLowerCase()).join(''); + } + return postfix ? `${raw}_${postfix}` : raw; +} +/** + * Generates a prefix for translation const name. + * + * @param extra Additional local prefix that should be injected into translation var name + * @returns Complete translation const prefix + */ +function getTranslationConstPrefix(extra) { + return `${CLOSURE_TRANSLATION_VAR_PREFIX}${extra}`.toUpperCase(); +} +/** + * Generate AST to declare a variable. E.g. `var I18N_1;`. + * @param variable the name of the variable to declare. + */ +function declareI18nVariable(variable) { + return new DeclareVarStmt(variable.name, undefined, INFERRED_TYPE, undefined, variable.sourceSpan); +} + +/** + * Checks whether an object key contains potentially unsafe chars, thus the key should be wrapped in + * quotes. Note: we do not wrap all keys into quotes, as it may have impact on minification and may + * bot work in some cases when object keys are mangled by minifier. + * + * TODO(FW-1136): this is a temporary solution, we need to come up with a better way of working with + * inputs that contain potentially unsafe chars. + */ +const UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/; +/** Name of the temporary to use during data binding */ +const TEMPORARY_NAME = '_t'; +/** Name of the context parameter passed into a template function */ +const CONTEXT_NAME = 'ctx'; +/** Name of the RenderFlag passed into a template function */ +const RENDER_FLAGS = 'rf'; +/** The prefix reference variables */ +const REFERENCE_PREFIX = '_r'; +/** The name of the implicit context reference */ +const IMPLICIT_REFERENCE = '$implicit'; +/** Non bindable attribute name **/ +const NON_BINDABLE_ATTR = 'ngNonBindable'; +/** Name for the variable keeping track of the context returned by `ɵɵrestoreView`. */ +const RESTORED_VIEW_CONTEXT_NAME = 'restoredCtx'; +/** + * Maximum length of a single instruction chain. Because our output AST uses recursion, we're + * limited in how many expressions we can nest before we reach the call stack limit. This + * length is set very conservatively in order to reduce the chance of problems. + */ +const MAX_CHAIN_LENGTH = 500; +/** Instructions that support chaining. */ +const CHAINABLE_INSTRUCTIONS = new Set([Identifiers.element, Identifiers.elementStart, Identifiers.elementEnd, Identifiers.elementContainer, Identifiers.elementContainerStart, Identifiers.elementContainerEnd, Identifiers.i18nExp, Identifiers.listener, Identifiers.classProp, Identifiers.syntheticHostListener, Identifiers.hostProperty, Identifiers.syntheticHostProperty, Identifiers.property, Identifiers.propertyInterpolate1, Identifiers.propertyInterpolate2, Identifiers.propertyInterpolate3, Identifiers.propertyInterpolate4, Identifiers.propertyInterpolate5, Identifiers.propertyInterpolate6, Identifiers.propertyInterpolate7, Identifiers.propertyInterpolate8, Identifiers.propertyInterpolateV, Identifiers.attribute, Identifiers.attributeInterpolate1, Identifiers.attributeInterpolate2, Identifiers.attributeInterpolate3, Identifiers.attributeInterpolate4, Identifiers.attributeInterpolate5, Identifiers.attributeInterpolate6, Identifiers.attributeInterpolate7, Identifiers.attributeInterpolate8, Identifiers.attributeInterpolateV, Identifiers.styleProp, Identifiers.stylePropInterpolate1, Identifiers.stylePropInterpolate2, Identifiers.stylePropInterpolate3, Identifiers.stylePropInterpolate4, Identifiers.stylePropInterpolate5, Identifiers.stylePropInterpolate6, Identifiers.stylePropInterpolate7, Identifiers.stylePropInterpolate8, Identifiers.stylePropInterpolateV, Identifiers.textInterpolate, Identifiers.textInterpolate1, Identifiers.textInterpolate2, Identifiers.textInterpolate3, Identifiers.textInterpolate4, Identifiers.textInterpolate5, Identifiers.textInterpolate6, Identifiers.textInterpolate7, Identifiers.textInterpolate8, Identifiers.textInterpolateV]); +/** Generates a call to a single instruction. */ +function invokeInstruction(span, reference, params) { + return importExpr(reference, null, span).callFn(params, span); +} +/** + * Creates an allocator for a temporary variable. + * + * A variable declaration is added to the statements the first time the allocator is invoked. + */ +function temporaryAllocator(statements, name) { + let temp = null; + return () => { + if (!temp) { + statements.push(new DeclareVarStmt(TEMPORARY_NAME, undefined, DYNAMIC_TYPE)); + temp = variable(name); + } + return temp; + }; +} +function invalid(arg) { + throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`); +} +function asLiteral(value) { + if (Array.isArray(value)) { + return literalArr(value.map(asLiteral)); + } + return literal(value, INFERRED_TYPE); +} +function conditionallyCreateDirectiveBindingLiteral(map, keepDeclared) { + const keys = Object.getOwnPropertyNames(map); + if (keys.length === 0) { + return null; + } + return literalMap(keys.map(key => { + const value = map[key]; + let declaredName; + let publicName; + let minifiedName; + let expressionValue; + if (typeof value === 'string') { + // canonical syntax: `dirProp: publicProp` + declaredName = key; + minifiedName = key; + publicName = value; + expressionValue = asLiteral(publicName); + } else { + minifiedName = key; + declaredName = value.classPropertyName; + publicName = value.bindingPropertyName; + if (keepDeclared && (publicName !== declaredName || value.transformFunction != null)) { + const expressionKeys = [asLiteral(publicName), asLiteral(declaredName)]; + if (value.transformFunction != null) { + expressionKeys.push(value.transformFunction); + } + expressionValue = literalArr(expressionKeys); + } else { + expressionValue = asLiteral(publicName); + } + } + return { + key: minifiedName, + // put quotes around keys that contain potentially unsafe characters + quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName), + value: expressionValue + }; + })); +} +/** + * Remove trailing null nodes as they are implied. + */ +function trimTrailingNulls(parameters) { + while (isNull(parameters[parameters.length - 1])) { + parameters.pop(); + } + return parameters; +} +function getQueryPredicate(query, constantPool) { + if (Array.isArray(query.predicate)) { + let predicate = []; + query.predicate.forEach(selector => { + // Each item in predicates array may contain strings with comma-separated refs + // (for ex. 'ref, ref1, ..., refN'), thus we extract individual refs and store them + // as separate array entities + const selectors = selector.split(',').map(token => literal(token.trim())); + predicate.push(...selectors); + }); + return constantPool.getConstLiteral(literalArr(predicate), true); + } else { + // The original predicate may have been wrapped in a `forwardRef()` call. + switch (query.predicate.forwardRef) { + case 0 /* ForwardRefHandling.None */: + case 2 /* ForwardRefHandling.Unwrapped */: + return query.predicate.expression; + case 1 /* ForwardRefHandling.Wrapped */: + return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression]); + } + } +} +/** + * A representation for an object literal used during codegen of definition objects. The generic + * type `T` allows to reference a documented type of the generated structure, such that the + * property names that are set can be resolved to their documented declaration. + */ +class DefinitionMap { + constructor() { + this.values = []; + } + set(key, value) { + if (value) { + this.values.push({ + key: key, + value, + quoted: false + }); + } + } + toLiteralMap() { + return literalMap(this.values); + } +} +/** + * Extract a map of properties to values for a given element or template node, which can be used + * by the directive matching machinery. + * + * @param elOrTpl the element or template in question + * @return an object set up for directive matching. For attributes on the element/template, this + * object maps a property name to its (static) value. For any bindings, this map simply maps the + * property name to an empty string. + */ +function getAttrsForDirectiveMatching(elOrTpl) { + const attributesMap = {}; + if (elOrTpl instanceof Template && elOrTpl.tagName !== 'ng-template') { + elOrTpl.templateAttrs.forEach(a => attributesMap[a.name] = ''); + } else { + elOrTpl.attributes.forEach(a => { + if (!isI18nAttribute(a.name)) { + attributesMap[a.name] = a.value; + } + }); + elOrTpl.inputs.forEach(i => { + if (i.type === 0 /* BindingType.Property */) { + attributesMap[i.name] = ''; + } + }); + elOrTpl.outputs.forEach(o => { + attributesMap[o.name] = ''; + }); + } + return attributesMap; +} +/** + * Gets the number of arguments expected to be passed to a generated instruction in the case of + * interpolation instructions. + * @param interpolation An interpolation ast + */ +function getInterpolationArgsLength(interpolation) { + const { + expressions, + strings + } = interpolation; + if (expressions.length === 1 && strings.length === 2 && strings[0] === '' && strings[1] === '') { + // If the interpolation has one interpolated value, but the prefix and suffix are both empty + // strings, we only pass one argument, to a special instruction like `propertyInterpolate` or + // `textInterpolate`. + return 1; + } else { + return expressions.length + strings.length; + } +} +/** + * Generates the final instruction call statements based on the passed in configuration. + * Will try to chain instructions as much as possible, if chaining is supported. + */ +function getInstructionStatements(instructions) { + const statements = []; + let pendingExpression = null; + let pendingExpressionType = null; + let chainLength = 0; + for (const current of instructions) { + const resolvedParams = (typeof current.paramsOrFn === 'function' ? current.paramsOrFn() : current.paramsOrFn) ?? []; + const params = Array.isArray(resolvedParams) ? resolvedParams : [resolvedParams]; + // If the current instruction is the same as the previous one + // and it can be chained, add another call to the chain. + if (chainLength < MAX_CHAIN_LENGTH && pendingExpressionType === current.reference && CHAINABLE_INSTRUCTIONS.has(pendingExpressionType)) { + // We'll always have a pending expression when there's a pending expression type. + pendingExpression = pendingExpression.callFn(params, pendingExpression.sourceSpan); + chainLength++; + } else { + if (pendingExpression !== null) { + statements.push(pendingExpression.toStmt()); + } + pendingExpression = invokeInstruction(current.span, current.reference, params); + pendingExpressionType = current.reference; + chainLength = 0; + } + } + // Since the current instruction adds the previous one to the statements, + // we may be left with the final one at the end that is still pending. + if (pendingExpression !== null) { + statements.push(pendingExpression.toStmt()); + } + return statements; +} +function compileInjectable(meta, resolveForwardRefs) { + let result = null; + const factoryMeta = { + name: meta.name, + type: meta.type, + typeArgumentCount: meta.typeArgumentCount, + deps: [], + target: FactoryTarget$1.Injectable + }; + if (meta.useClass !== undefined) { + // meta.useClass has two modes of operation. Either deps are specified, in which case `new` is + // used to instantiate the class with dependencies injected, or deps are not specified and + // the factory of the class is used to instantiate it. + // + // A special case exists for useClass: Type where Type is the injectable type itself and no + // deps are specified, in which case 'useClass' is effectively ignored. + const useClassOnSelf = meta.useClass.expression.isEquivalent(meta.type.value); + let deps = undefined; + if (meta.deps !== undefined) { + deps = meta.deps; + } + if (deps !== undefined) { + // factory: () => new meta.useClass(...deps) + result = compileFactoryFunction({ + ...factoryMeta, + delegate: meta.useClass.expression, + delegateDeps: deps, + delegateType: R3FactoryDelegateType.Class + }); + } else if (useClassOnSelf) { + result = compileFactoryFunction(factoryMeta); + } else { + result = { + statements: [], + expression: delegateToFactory(meta.type.value, meta.useClass.expression, resolveForwardRefs) + }; + } + } else if (meta.useFactory !== undefined) { + if (meta.deps !== undefined) { + result = compileFactoryFunction({ + ...factoryMeta, + delegate: meta.useFactory, + delegateDeps: meta.deps || [], + delegateType: R3FactoryDelegateType.Function + }); + } else { + result = { + statements: [], + expression: fn([], [new ReturnStatement(meta.useFactory.callFn([]))]) + }; + } + } else if (meta.useValue !== undefined) { + // Note: it's safe to use `meta.useValue` instead of the `USE_VALUE in meta` check used for + // client code because meta.useValue is an Expression which will be defined even if the actual + // value is undefined. + result = compileFactoryFunction({ + ...factoryMeta, + expression: meta.useValue.expression + }); + } else if (meta.useExisting !== undefined) { + // useExisting is an `inject` call on the existing token. + result = compileFactoryFunction({ + ...factoryMeta, + expression: importExpr(Identifiers.inject).callFn([meta.useExisting.expression]) + }); + } else { + result = { + statements: [], + expression: delegateToFactory(meta.type.value, meta.type.value, resolveForwardRefs) + }; + } + const token = meta.type.value; + const injectableProps = new DefinitionMap(); + injectableProps.set('token', token); + injectableProps.set('factory', result.expression); + // Only generate providedIn property if it has a non-null value + if (meta.providedIn.expression.value !== null) { + injectableProps.set('providedIn', convertFromMaybeForwardRefExpression(meta.providedIn)); + } + const expression = importExpr(Identifiers.ɵɵdefineInjectable).callFn([injectableProps.toLiteralMap()], undefined, true); + return { + expression, + type: createInjectableType(meta), + statements: result.statements + }; +} +function createInjectableType(meta) { + return new ExpressionType(importExpr(Identifiers.InjectableDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount)])); +} +function delegateToFactory(type, useType, unwrapForwardRefs) { + if (type.node === useType.node) { + // The types are the same, so we can simply delegate directly to the type's factory. + // ``` + // factory: type.ɵfac + // ``` + return useType.prop('ɵfac'); + } + if (!unwrapForwardRefs) { + // The type is not wrapped in a `forwardRef()`, so we create a simple factory function that + // accepts a sub-type as an argument. + // ``` + // factory: function(t) { return useType.ɵfac(t); } + // ``` + return createFactoryFunction(useType); + } + // The useType is actually wrapped in a `forwardRef()` so we need to resolve that before + // calling its factory. + // ``` + // factory: function(t) { return core.resolveForwardRef(type).ɵfac(t); } + // ``` + const unwrappedType = importExpr(Identifiers.resolveForwardRef).callFn([useType]); + return createFactoryFunction(unwrappedType); +} +function createFactoryFunction(type) { + return fn([new FnParam('t', DYNAMIC_TYPE)], [new ReturnStatement(type.prop('ɵfac').callFn([variable('t')]))]); +} +const UNUSABLE_INTERPOLATION_REGEXPS = [/^\s*$/, /[<>]/, /^[{}]$/, /&(#|[a-z])/i, /^\/\// // comment +]; + +function assertInterpolationSymbols(identifier, value) { + if (value != null && !(Array.isArray(value) && value.length == 2)) { + throw new Error(`Expected '${identifier}' to be an array, [start, end].`); + } else if (value != null) { + const start = value[0]; + const end = value[1]; + // Check for unusable interpolation symbols + UNUSABLE_INTERPOLATION_REGEXPS.forEach(regexp => { + if (regexp.test(start) || regexp.test(end)) { + throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`); + } + }); + } +} +class InterpolationConfig { + static fromArray(markers) { + if (!markers) { + return DEFAULT_INTERPOLATION_CONFIG; + } + assertInterpolationSymbols('interpolation', markers); + return new InterpolationConfig(markers[0], markers[1]); + } + constructor(start, end) { + this.start = start; + this.end = end; + } +} +const DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig('{{', '}}'); +const $EOF = 0; +const $BSPACE = 8; +const $TAB = 9; +const $LF = 10; +const $VTAB = 11; +const $FF = 12; +const $CR = 13; +const $SPACE = 32; +const $BANG = 33; +const $DQ = 34; +const $HASH = 35; +const $$ = 36; +const $PERCENT = 37; +const $AMPERSAND = 38; +const $SQ = 39; +const $LPAREN = 40; +const $RPAREN = 41; +const $STAR = 42; +const $PLUS = 43; +const $COMMA = 44; +const $MINUS = 45; +const $PERIOD = 46; +const $SLASH = 47; +const $COLON = 58; +const $SEMICOLON = 59; +const $LT = 60; +const $EQ = 61; +const $GT = 62; +const $QUESTION = 63; +const $0 = 48; +const $7 = 55; +const $9 = 57; +const $A = 65; +const $E = 69; +const $F = 70; +const $X = 88; +const $Z = 90; +const $LBRACKET = 91; +const $BACKSLASH = 92; +const $RBRACKET = 93; +const $CARET = 94; +const $_ = 95; +const $a = 97; +const $b = 98; +const $e = 101; +const $f = 102; +const $n = 110; +const $r = 114; +const $t = 116; +const $u = 117; +const $v = 118; +const $x = 120; +const $z = 122; +const $LBRACE = 123; +const $BAR = 124; +const $RBRACE = 125; +const $NBSP = 160; +const $PIPE = 124; +const $TILDA = 126; +const $AT = 64; +const $BT = 96; +function isWhitespace(code) { + return code >= $TAB && code <= $SPACE || code == $NBSP; +} +function isDigit(code) { + return $0 <= code && code <= $9; +} +function isAsciiLetter(code) { + return code >= $a && code <= $z || code >= $A && code <= $Z; +} +function isAsciiHexDigit(code) { + return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code); +} +function isNewLine(code) { + return code === $LF || code === $CR; +} +function isOctalDigit(code) { + return $0 <= code && code <= $7; +} +function isQuote(code) { + return code === $SQ || code === $DQ || code === $BT; +} +class ParseLocation { + constructor(file, offset, line, col) { + this.file = file; + this.offset = offset; + this.line = line; + this.col = col; + } + toString() { + return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url; + } + moveBy(delta) { + const source = this.file.content; + const len = source.length; + let offset = this.offset; + let line = this.line; + let col = this.col; + while (offset > 0 && delta < 0) { + offset--; + delta++; + const ch = source.charCodeAt(offset); + if (ch == $LF) { + line--; + const priorLine = source.substring(0, offset - 1).lastIndexOf(String.fromCharCode($LF)); + col = priorLine > 0 ? offset - priorLine : offset; + } else { + col--; + } + } + while (offset < len && delta > 0) { + const ch = source.charCodeAt(offset); + offset++; + delta--; + if (ch == $LF) { + line++; + col = 0; + } else { + col++; + } + } + return new ParseLocation(this.file, offset, line, col); + } + // Return the source around the location + // Up to `maxChars` or `maxLines` on each side of the location + getContext(maxChars, maxLines) { + const content = this.file.content; + let startOffset = this.offset; + if (startOffset != null) { + if (startOffset > content.length - 1) { + startOffset = content.length - 1; + } + let endOffset = startOffset; + let ctxChars = 0; + let ctxLines = 0; + while (ctxChars < maxChars && startOffset > 0) { + startOffset--; + ctxChars++; + if (content[startOffset] == '\n') { + if (++ctxLines == maxLines) { + break; + } + } + } + ctxChars = 0; + ctxLines = 0; + while (ctxChars < maxChars && endOffset < content.length - 1) { + endOffset++; + ctxChars++; + if (content[endOffset] == '\n') { + if (++ctxLines == maxLines) { + break; + } + } + } + return { + before: content.substring(startOffset, this.offset), + after: content.substring(this.offset, endOffset + 1) + }; + } + return null; + } +} +class ParseSourceFile { + constructor(content, url) { + this.content = content; + this.url = url; + } +} +class ParseSourceSpan { + /** + * Create an object that holds information about spans of tokens/nodes captured during + * lexing/parsing of text. + * + * @param start + * The location of the start of the span (having skipped leading trivia). + * Skipping leading trivia makes source-spans more "user friendly", since things like HTML + * elements will appear to begin at the start of the opening tag, rather than at the start of any + * leading trivia, which could include newlines. + * + * @param end + * The location of the end of the span. + * + * @param fullStart + * The start of the token without skipping the leading trivia. + * This is used by tooling that splits tokens further, such as extracting Angular interpolations + * from text tokens. Such tooling creates new source-spans relative to the original token's + * source-span. If leading trivia characters have been skipped then the new source-spans may be + * incorrectly offset. + * + * @param details + * Additional information (such as identifier names) that should be associated with the span. + */ + constructor(start, end, fullStart = start, details = null) { + this.start = start; + this.end = end; + this.fullStart = fullStart; + this.details = details; + } + toString() { + return this.start.file.content.substring(this.start.offset, this.end.offset); + } +} +var ParseErrorLevel; +(function (ParseErrorLevel) { + ParseErrorLevel[ParseErrorLevel["WARNING"] = 0] = "WARNING"; + ParseErrorLevel[ParseErrorLevel["ERROR"] = 1] = "ERROR"; +})(ParseErrorLevel || (ParseErrorLevel = {})); +class ParseError { + constructor(span, msg, level = ParseErrorLevel.ERROR) { + this.span = span; + this.msg = msg; + this.level = level; + } + contextualMessage() { + const ctx = this.span.start.getContext(100, 3); + return ctx ? `${this.msg} ("${ctx.before}[${ParseErrorLevel[this.level]} ->]${ctx.after}")` : this.msg; + } + toString() { + const details = this.span.details ? `, ${this.span.details}` : ''; + return `${this.contextualMessage()}: ${this.span.start}${details}`; + } +} +/** + * Generates Source Span object for a given R3 Type for JIT mode. + * + * @param kind Component or Directive. + * @param typeName name of the Component or Directive. + * @param sourceUrl reference to Component or Directive source. + * @returns instance of ParseSourceSpan that represent a given Component or Directive. + */ +function r3JitTypeSourceSpan(kind, typeName, sourceUrl) { + const sourceFileName = `in ${kind} ${typeName} in ${sourceUrl}`; + const sourceFile = new ParseSourceFile('', sourceFileName); + return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1)); +} +let _anonymousTypeIndex = 0; +function identifierName(compileIdentifier) { + if (!compileIdentifier || !compileIdentifier.reference) { + return null; + } + const ref = compileIdentifier.reference; + if (ref['__anonymousType']) { + return ref['__anonymousType']; + } + if (ref['__forward_ref__']) { + // We do not want to try to stringify a `forwardRef()` function because that would cause the + // inner function to be evaluated too early, defeating the whole point of the `forwardRef`. + return '__forward_ref__'; + } + let identifier = stringify(ref); + if (identifier.indexOf('(') >= 0) { + // case: anonymous functions! + identifier = `anonymous_${_anonymousTypeIndex++}`; + ref['__anonymousType'] = identifier; + } else { + identifier = sanitizeIdentifier(identifier); + } + return identifier; +} +function sanitizeIdentifier(name) { + return name.replace(/\W/g, '_'); +} + +/** + * In TypeScript, tagged template functions expect a "template object", which is an array of + * "cooked" strings plus a `raw` property that contains an array of "raw" strings. This is + * typically constructed with a function called `__makeTemplateObject(cooked, raw)`, but it may not + * be available in all environments. + * + * This is a JavaScript polyfill that uses __makeTemplateObject when it's available, but otherwise + * creates an inline helper with the same functionality. + * + * In the inline function, if `Object.defineProperty` is available we use that to attach the `raw` + * array. + */ +const makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})'; +class AbstractJsEmitterVisitor extends AbstractEmitterVisitor { + constructor() { + super(false); + } + visitWrappedNodeExpr(ast, ctx) { + throw new Error('Cannot emit a WrappedNodeExpr in Javascript.'); + } + visitDeclareVarStmt(stmt, ctx) { + ctx.print(stmt, `var ${stmt.name}`); + if (stmt.value) { + ctx.print(stmt, ' = '); + stmt.value.visitExpression(this, ctx); + } + ctx.println(stmt, `;`); + return null; + } + visitTaggedTemplateExpr(ast, ctx) { + // The following convoluted piece of code is effectively the downlevelled equivalent of + // ``` + // tag`...` + // ``` + // which is effectively like: + // ``` + // tag(__makeTemplateObject(cooked, raw), expression1, expression2, ...); + // ``` + const elements = ast.template.elements; + ast.tag.visitExpression(this, ctx); + ctx.print(ast, `(${makeTemplateObjectPolyfill}(`); + ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.text, false)).join(', ')}], `); + ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.rawText, false)).join(', ')}])`); + ast.template.expressions.forEach(expression => { + ctx.print(ast, ', '); + expression.visitExpression(this, ctx); + }); + ctx.print(ast, ')'); + return null; + } + visitFunctionExpr(ast, ctx) { + ctx.print(ast, `function${ast.name ? ' ' + ast.name : ''}(`); + this._visitParams(ast.params, ctx); + ctx.println(ast, `) {`); + ctx.incIndent(); + this.visitAllStatements(ast.statements, ctx); + ctx.decIndent(); + ctx.print(ast, `}`); + return null; + } + visitDeclareFunctionStmt(stmt, ctx) { + ctx.print(stmt, `function ${stmt.name}(`); + this._visitParams(stmt.params, ctx); + ctx.println(stmt, `) {`); + ctx.incIndent(); + this.visitAllStatements(stmt.statements, ctx); + ctx.decIndent(); + ctx.println(stmt, `}`); + return null; + } + visitLocalizedString(ast, ctx) { + // The following convoluted piece of code is effectively the downlevelled equivalent of + // ``` + // $localize `...` + // ``` + // which is effectively like: + // ``` + // $localize(__makeTemplateObject(cooked, raw), expression1, expression2, ...); + // ``` + ctx.print(ast, `$localize(${makeTemplateObjectPolyfill}(`); + const parts = [ast.serializeI18nHead()]; + for (let i = 1; i < ast.messageParts.length; i++) { + parts.push(ast.serializeI18nTemplatePart(i)); + } + ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.cooked, false)).join(', ')}], `); + ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.raw, false)).join(', ')}])`); + ast.expressions.forEach(expression => { + ctx.print(ast, ', '); + expression.visitExpression(this, ctx); + }); + ctx.print(ast, ')'); + return null; + } + _visitParams(params, ctx) { + this.visitAllObjects(param => ctx.print(null, param.name), params, ctx, ','); + } +} + +/** + * @fileoverview + * A module to facilitate use of a Trusted Types policy within the JIT + * compiler. It lazily constructs the Trusted Types policy, providing helper + * utilities for promoting strings to Trusted Types. When Trusted Types are not + * available, strings are used as a fallback. + * @security All use of this module is security-sensitive and should go through + * security review. + */ +/** + * The Trusted Types policy, or null if Trusted Types are not + * enabled/supported, or undefined if the policy has not been created yet. + */ +let policy; +/** + * Returns the Trusted Types policy, or null if Trusted Types are not + * enabled/supported. The first call to this function will create the policy. + */ +function getPolicy() { + if (policy === undefined) { + policy = null; + if (_global.trustedTypes) { + try { + policy = _global.trustedTypes.createPolicy('angular#unsafe-jit', { + createScript: s => s + }); + } catch { + // trustedTypes.createPolicy throws if called with a name that is + // already registered, even in report-only mode. Until the API changes, + // catch the error not to break the applications functionally. In such + // cases, the code will fall back to using strings. + } + } + } + return policy; +} +/** + * Unsafely promote a string to a TrustedScript, falling back to strings when + * Trusted Types are not available. + * @security In particular, it must be assured that the provided string will + * never cause an XSS vulnerability if used in a context that will be + * interpreted and executed as a script by a browser, e.g. when calling eval. + */ +function trustedScriptFromString(script) { + return getPolicy()?.createScript(script) || script; +} +/** + * Unsafely call the Function constructor with the given string arguments. + * @security This is a security-sensitive function; any use of this function + * must go through security review. In particular, it must be assured that it + * is only called from the JIT compiler, as use in other code can lead to XSS + * vulnerabilities. + */ +function newTrustedFunctionForJIT(...args) { + if (!_global.trustedTypes) { + // In environments that don't support Trusted Types, fall back to the most + // straightforward implementation: + return new Function(...args); + } + // Chrome currently does not support passing TrustedScript to the Function + // constructor. The following implements the workaround proposed on the page + // below, where the Chromium bug is also referenced: + // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor + const fnArgs = args.slice(0, -1).join(','); + const fnBody = args[args.length - 1]; + const body = `(function anonymous(${fnArgs} +) { ${fnBody} +})`; + // Using eval directly confuses the compiler and prevents this module from + // being stripped out of JS binaries even if not used. The global['eval'] + // indirection fixes that. + const fn = _global['eval'](trustedScriptFromString(body)); + if (fn.bind === undefined) { + // Workaround for a browser bug that only exists in Chrome 83, where passing + // a TrustedScript to eval just returns the TrustedScript back without + // evaluating it. In that case, fall back to the most straightforward + // implementation: + return new Function(...args); + } + // To completely mimic the behavior of calling "new Function", two more + // things need to happen: + // 1. Stringifying the resulting function should return its source code + fn.toString = () => body; + // 2. When calling the resulting function, `this` should refer to `global` + return fn.bind(_global); + // When Trusted Types support in Function constructors is widely available, + // the implementation of this function can be simplified to: + // return new Function(...args.map(a => trustedScriptFromString(a))); +} + +/** + * A helper class to manage the evaluation of JIT generated code. + */ +class JitEvaluator { + /** + * + * @param sourceUrl The URL of the generated code. + * @param statements An array of Angular statement AST nodes to be evaluated. + * @param refResolver Resolves `o.ExternalReference`s into values. + * @param createSourceMaps If true then create a source-map for the generated code and include it + * inline as a source-map comment. + * @returns A map of all the variables in the generated code. + */ + evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) { + const converter = new JitEmitterVisitor(refResolver); + const ctx = EmitterVisitorContext.createRoot(); + // Ensure generated code is in strict mode + if (statements.length > 0 && !isUseStrictStatement(statements[0])) { + statements = [literal('use strict').toStmt(), ...statements]; + } + converter.visitAllStatements(statements, ctx); + converter.createReturnStmt(ctx); + return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps); + } + /** + * Evaluate a piece of JIT generated code. + * @param sourceUrl The URL of this generated code. + * @param ctx A context object that contains an AST of the code to be evaluated. + * @param vars A map containing the names and values of variables that the evaluated code might + * reference. + * @param createSourceMap If true then create a source-map for the generated code and include it + * inline as a source-map comment. + * @returns The result of evaluating the code. + */ + evaluateCode(sourceUrl, ctx, vars, createSourceMap) { + let fnBody = `"use strict";${ctx.toSource()}\n//# sourceURL=${sourceUrl}`; + const fnArgNames = []; + const fnArgValues = []; + for (const argName in vars) { + fnArgValues.push(vars[argName]); + fnArgNames.push(argName); + } + if (createSourceMap) { + // using `new Function(...)` generates a header, 1 line of no arguments, 2 lines otherwise + // E.g. ``` + // function anonymous(a,b,c + // /**/) { ... }``` + // We don't want to hard code this fact, so we auto detect it via an empty function first. + const emptyFn = newTrustedFunctionForJIT(...fnArgNames.concat('return null;')).toString(); + const headerLines = emptyFn.slice(0, emptyFn.indexOf('return null;')).split('\n').length - 1; + fnBody += `\n${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`; + } + const fn = newTrustedFunctionForJIT(...fnArgNames.concat(fnBody)); + return this.executeFunction(fn, fnArgValues); + } + /** + * Execute a JIT generated function by calling it. + * + * This method can be overridden in tests to capture the functions that are generated + * by this `JitEvaluator` class. + * + * @param fn A function to execute. + * @param args The arguments to pass to the function being executed. + * @returns The return value of the executed function. + */ + executeFunction(fn, args) { + return fn(...args); + } +} +/** + * An Angular AST visitor that converts AST nodes into executable JavaScript code. + */ +class JitEmitterVisitor extends AbstractJsEmitterVisitor { + constructor(refResolver) { + super(); + this.refResolver = refResolver; + this._evalArgNames = []; + this._evalArgValues = []; + this._evalExportedVars = []; + } + createReturnStmt(ctx) { + const stmt = new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map(resultVar => new LiteralMapEntry(resultVar, variable(resultVar), false)))); + stmt.visitStatement(this, ctx); + } + getArgs() { + const result = {}; + for (let i = 0; i < this._evalArgNames.length; i++) { + result[this._evalArgNames[i]] = this._evalArgValues[i]; + } + return result; + } + visitExternalExpr(ast, ctx) { + this._emitReferenceToExternal(ast, this.refResolver.resolveExternalReference(ast.value), ctx); + return null; + } + visitWrappedNodeExpr(ast, ctx) { + this._emitReferenceToExternal(ast, ast.node, ctx); + return null; + } + visitDeclareVarStmt(stmt, ctx) { + if (stmt.hasModifier(StmtModifier.Exported)) { + this._evalExportedVars.push(stmt.name); + } + return super.visitDeclareVarStmt(stmt, ctx); + } + visitDeclareFunctionStmt(stmt, ctx) { + if (stmt.hasModifier(StmtModifier.Exported)) { + this._evalExportedVars.push(stmt.name); + } + return super.visitDeclareFunctionStmt(stmt, ctx); + } + _emitReferenceToExternal(ast, value, ctx) { + let id = this._evalArgValues.indexOf(value); + if (id === -1) { + id = this._evalArgValues.length; + this._evalArgValues.push(value); + const name = identifierName({ + reference: value + }) || 'val'; + this._evalArgNames.push(`jit_${name}_${id}`); + } + ctx.print(ast, this._evalArgNames[id]); + } +} +function isUseStrictStatement(statement) { + return statement.isEquivalent(literal('use strict').toStmt()); +} +function compileInjector(meta) { + const definitionMap = new DefinitionMap(); + if (meta.providers !== null) { + definitionMap.set('providers', meta.providers); + } + if (meta.imports.length > 0) { + definitionMap.set('imports', literalArr(meta.imports)); + } + const expression = importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()], undefined, true); + const type = createInjectorType(meta); + return { + expression, + type, + statements: [] + }; +} +function createInjectorType(meta) { + return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)])); +} + +/** + * Implementation of `CompileReflector` which resolves references to @angular/core + * symbols at runtime, according to a consumer-provided mapping. + * + * Only supports `resolveExternalReference`, all other methods throw. + */ +class R3JitReflector { + constructor(context) { + this.context = context; + } + resolveExternalReference(ref) { + // This reflector only handles @angular/core imports. + if (ref.moduleName !== '@angular/core') { + throw new Error(`Cannot resolve external reference to ${ref.moduleName}, only references to @angular/core are supported.`); + } + if (!this.context.hasOwnProperty(ref.name)) { + throw new Error(`No value provided for @angular/core symbol '${ref.name}'.`); + } + return this.context[ref.name]; + } +} + +/** + * How the selector scope of an NgModule (its declarations, imports, and exports) should be emitted + * as a part of the NgModule definition. + */ +var R3SelectorScopeMode; +(function (R3SelectorScopeMode) { + /** + * Emit the declarations inline into the module definition. + * + * This option is useful in certain contexts where it's known that JIT support is required. The + * tradeoff here is that this emit style prevents directives and pipes from being tree-shaken if + * they are unused, but the NgModule is used. + */ + R3SelectorScopeMode[R3SelectorScopeMode["Inline"] = 0] = "Inline"; + /** + * Emit the declarations using a side effectful function call, `ɵɵsetNgModuleScope`, that is + * guarded with the `ngJitMode` flag. + * + * This form of emit supports JIT and can be optimized away if the `ngJitMode` flag is set to + * false, which allows unused directives and pipes to be tree-shaken. + */ + R3SelectorScopeMode[R3SelectorScopeMode["SideEffect"] = 1] = "SideEffect"; + /** + * Don't generate selector scopes at all. + * + * This is useful for contexts where JIT support is known to be unnecessary. + */ + R3SelectorScopeMode[R3SelectorScopeMode["Omit"] = 2] = "Omit"; +})(R3SelectorScopeMode || (R3SelectorScopeMode = {})); +/** + * The type of the NgModule meta data. + * - Global: Used for full and partial compilation modes which mainly includes R3References. + * - Local: Used for the local compilation mode which mainly includes the raw expressions as appears + * in the NgModule decorator. + */ +var R3NgModuleMetadataKind; +(function (R3NgModuleMetadataKind) { + R3NgModuleMetadataKind[R3NgModuleMetadataKind["Global"] = 0] = "Global"; + R3NgModuleMetadataKind[R3NgModuleMetadataKind["Local"] = 1] = "Local"; +})(R3NgModuleMetadataKind || (R3NgModuleMetadataKind = {})); +/** + * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`. + */ +function compileNgModule(meta) { + const statements = []; + const definitionMap = new DefinitionMap(); + definitionMap.set('type', meta.type.value); + // Assign bootstrap definition + if (meta.kind === R3NgModuleMetadataKind.Global) { + if (meta.bootstrap.length > 0) { + definitionMap.set('bootstrap', refsToArray(meta.bootstrap, meta.containsForwardDecls)); + } + } else { + if (meta.bootstrapExpression) { + definitionMap.set('bootstrap', meta.bootstrapExpression); + } + } + if (meta.selectorScopeMode === R3SelectorScopeMode.Inline) { + // If requested to emit scope information inline, pass the `declarations`, `imports` and + // `exports` to the `ɵɵdefineNgModule()` call directly. + if (meta.declarations.length > 0) { + definitionMap.set('declarations', refsToArray(meta.declarations, meta.containsForwardDecls)); + } + if (meta.imports.length > 0) { + definitionMap.set('imports', refsToArray(meta.imports, meta.containsForwardDecls)); + } + if (meta.exports.length > 0) { + definitionMap.set('exports', refsToArray(meta.exports, meta.containsForwardDecls)); + } + } else if (meta.selectorScopeMode === R3SelectorScopeMode.SideEffect) { + // In this mode, scope information is not passed into `ɵɵdefineNgModule` as it + // would prevent tree-shaking of the declarations, imports and exports references. Instead, it's + // patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the + // `ngJitMode` flag. + const setNgModuleScopeCall = generateSetNgModuleScopeCall(meta); + if (setNgModuleScopeCall !== null) { + statements.push(setNgModuleScopeCall); + } + } else { + // Selector scope emit was not requested, so skip it. + } + if (meta.schemas !== null && meta.schemas.length > 0) { + definitionMap.set('schemas', literalArr(meta.schemas.map(ref => ref.value))); + } + if (meta.id !== null) { + definitionMap.set('id', meta.id); + // Generate a side-effectful call to register this NgModule by its id, as per the semantics of + // NgModule ids. + statements.push(importExpr(Identifiers.registerNgModuleType).callFn([meta.type.value, meta.id]).toStmt()); + } + const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true); + const type = createNgModuleType(meta); + return { + expression, + type, + statements + }; +} +/** + * This function is used in JIT mode to generate the call to `ɵɵdefineNgModule()` from a call to + * `ɵɵngDeclareNgModule()`. + */ +function compileNgModuleDeclarationExpression(meta) { + const definitionMap = new DefinitionMap(); + definitionMap.set('type', new WrappedNodeExpr(meta.type)); + if (meta.bootstrap !== undefined) { + definitionMap.set('bootstrap', new WrappedNodeExpr(meta.bootstrap)); + } + if (meta.declarations !== undefined) { + definitionMap.set('declarations', new WrappedNodeExpr(meta.declarations)); + } + if (meta.imports !== undefined) { + definitionMap.set('imports', new WrappedNodeExpr(meta.imports)); + } + if (meta.exports !== undefined) { + definitionMap.set('exports', new WrappedNodeExpr(meta.exports)); + } + if (meta.schemas !== undefined) { + definitionMap.set('schemas', new WrappedNodeExpr(meta.schemas)); + } + if (meta.id !== undefined) { + definitionMap.set('id', new WrappedNodeExpr(meta.id)); + } + return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]); +} +function createNgModuleType(meta) { + if (meta.kind === R3NgModuleMetadataKind.Local) { + return new ExpressionType(meta.type.value); + } + const { + type: moduleType, + declarations, + exports, + imports, + includeImportTypes, + publicDeclarationTypes + } = meta; + return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [new ExpressionType(moduleType.type), publicDeclarationTypes === null ? tupleTypeOf(declarations) : tupleOfTypes(publicDeclarationTypes), includeImportTypes ? tupleTypeOf(imports) : NONE_TYPE, tupleTypeOf(exports)])); +} +/** + * Generates a function call to `ɵɵsetNgModuleScope` with all necessary information so that the + * transitive module scope can be computed during runtime in JIT mode. This call is marked pure + * such that the references to declarations, imports and exports may be elided causing these + * symbols to become tree-shakeable. + */ +function generateSetNgModuleScopeCall(meta) { + const scopeMap = new DefinitionMap(); + if (meta.kind === R3NgModuleMetadataKind.Global) { + if (meta.declarations.length > 0) { + scopeMap.set('declarations', refsToArray(meta.declarations, meta.containsForwardDecls)); + } + } else { + if (meta.declarationsExpression) { + scopeMap.set('declarations', meta.declarationsExpression); + } + } + if (meta.kind === R3NgModuleMetadataKind.Global) { + if (meta.imports.length > 0) { + scopeMap.set('imports', refsToArray(meta.imports, meta.containsForwardDecls)); + } + } else { + if (meta.importsExpression) { + scopeMap.set('imports', meta.importsExpression); + } + } + if (meta.kind === R3NgModuleMetadataKind.Global) { + if (meta.exports.length > 0) { + scopeMap.set('exports', refsToArray(meta.exports, meta.containsForwardDecls)); + } + } else { + if (meta.exportsExpression) { + scopeMap.set('exports', meta.exportsExpression); + } + } + if (Object.keys(scopeMap.values).length === 0) { + return null; + } + // setNgModuleScope(...) + const fnCall = new InvokeFunctionExpr( /* fn */importExpr(Identifiers.setNgModuleScope), /* args */[meta.type.value, scopeMap.toLiteralMap()]); + // (ngJitMode guard) && setNgModuleScope(...) + const guardedCall = jitOnlyGuardedExpression(fnCall); + // function() { (ngJitMode guard) && setNgModuleScope(...); } + const iife = new FunctionExpr( /* params */[], /* statements */[guardedCall.toStmt()]); + // (function() { (ngJitMode guard) && setNgModuleScope(...); })() + const iifeCall = new InvokeFunctionExpr( /* fn */iife, /* args */[]); + return iifeCall.toStmt(); +} +function tupleTypeOf(exp) { + const types = exp.map(ref => typeofExpr(ref.type)); + return exp.length > 0 ? expressionType(literalArr(types)) : NONE_TYPE; +} +function tupleOfTypes(types) { + const typeofTypes = types.map(type => typeofExpr(type)); + return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE; +} +function compilePipeFromMetadata(metadata) { + const definitionMapValues = []; + // e.g. `name: 'myPipe'` + definitionMapValues.push({ + key: 'name', + value: literal(metadata.pipeName), + quoted: false + }); + // e.g. `type: MyPipe` + definitionMapValues.push({ + key: 'type', + value: metadata.type.value, + quoted: false + }); + // e.g. `pure: true` + definitionMapValues.push({ + key: 'pure', + value: literal(metadata.pure), + quoted: false + }); + if (metadata.isStandalone) { + definitionMapValues.push({ + key: 'standalone', + value: literal(true), + quoted: false + }); + } + const expression = importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)], undefined, true); + const type = createPipeType(metadata); + return { + expression, + type, + statements: [] + }; +} +function createPipeType(metadata) { + return new ExpressionType(importExpr(Identifiers.PipeDeclaration, [typeWithParameters(metadata.type.type, metadata.typeArgumentCount), new ExpressionType(new LiteralExpr(metadata.pipeName)), new ExpressionType(new LiteralExpr(metadata.isStandalone))])); +} +var R3TemplateDependencyKind; +(function (R3TemplateDependencyKind) { + R3TemplateDependencyKind[R3TemplateDependencyKind["Directive"] = 0] = "Directive"; + R3TemplateDependencyKind[R3TemplateDependencyKind["Pipe"] = 1] = "Pipe"; + R3TemplateDependencyKind[R3TemplateDependencyKind["NgModule"] = 2] = "NgModule"; +})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {})); +class ParserError { + constructor(message, input, errLocation, ctxLocation) { + this.input = input; + this.errLocation = errLocation; + this.ctxLocation = ctxLocation; + this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`; + } +} +class ParseSpan { + constructor(start, end) { + this.start = start; + this.end = end; + } + toAbsolute(absoluteOffset) { + return new AbsoluteSourceSpan(absoluteOffset + this.start, absoluteOffset + this.end); + } +} +class AST { + constructor(span, + /** + * Absolute location of the expression AST in a source code file. + */ + sourceSpan) { + this.span = span; + this.sourceSpan = sourceSpan; + } + toString() { + return 'AST'; + } +} +class ASTWithName extends AST { + constructor(span, sourceSpan, nameSpan) { + super(span, sourceSpan); + this.nameSpan = nameSpan; + } +} +class EmptyExpr$1 extends AST { + visit(visitor, context = null) { + // do nothing + } +} +class ImplicitReceiver extends AST { + visit(visitor, context = null) { + return visitor.visitImplicitReceiver(this, context); + } +} +/** + * Receiver when something is accessed through `this` (e.g. `this.foo`). Note that this class + * inherits from `ImplicitReceiver`, because accessing something through `this` is treated the + * same as accessing it implicitly inside of an Angular template (e.g. `[attr.title]="this.title"` + * is the same as `[attr.title]="title"`.). Inheriting allows for the `this` accesses to be treated + * the same as implicit ones, except for a couple of exceptions like `$event` and `$any`. + * TODO: we should find a way for this class not to extend from `ImplicitReceiver` in the future. + */ +class ThisReceiver extends ImplicitReceiver { + visit(visitor, context = null) { + return visitor.visitThisReceiver?.(this, context); + } +} +/** + * Multiple expressions separated by a semicolon. + */ +class Chain extends AST { + constructor(span, sourceSpan, expressions) { + super(span, sourceSpan); + this.expressions = expressions; + } + visit(visitor, context = null) { + return visitor.visitChain(this, context); + } +} +class Conditional extends AST { + constructor(span, sourceSpan, condition, trueExp, falseExp) { + super(span, sourceSpan); + this.condition = condition; + this.trueExp = trueExp; + this.falseExp = falseExp; + } + visit(visitor, context = null) { + return visitor.visitConditional(this, context); + } +} +class PropertyRead extends ASTWithName { + constructor(span, sourceSpan, nameSpan, receiver, name) { + super(span, sourceSpan, nameSpan); + this.receiver = receiver; + this.name = name; + } + visit(visitor, context = null) { + return visitor.visitPropertyRead(this, context); + } +} +class PropertyWrite extends ASTWithName { + constructor(span, sourceSpan, nameSpan, receiver, name, value) { + super(span, sourceSpan, nameSpan); + this.receiver = receiver; + this.name = name; + this.value = value; + } + visit(visitor, context = null) { + return visitor.visitPropertyWrite(this, context); + } +} +class SafePropertyRead extends ASTWithName { + constructor(span, sourceSpan, nameSpan, receiver, name) { + super(span, sourceSpan, nameSpan); + this.receiver = receiver; + this.name = name; + } + visit(visitor, context = null) { + return visitor.visitSafePropertyRead(this, context); + } +} +class KeyedRead extends AST { + constructor(span, sourceSpan, receiver, key) { + super(span, sourceSpan); + this.receiver = receiver; + this.key = key; + } + visit(visitor, context = null) { + return visitor.visitKeyedRead(this, context); + } +} +class SafeKeyedRead extends AST { + constructor(span, sourceSpan, receiver, key) { + super(span, sourceSpan); + this.receiver = receiver; + this.key = key; + } + visit(visitor, context = null) { + return visitor.visitSafeKeyedRead(this, context); + } +} +class KeyedWrite extends AST { + constructor(span, sourceSpan, receiver, key, value) { + super(span, sourceSpan); + this.receiver = receiver; + this.key = key; + this.value = value; + } + visit(visitor, context = null) { + return visitor.visitKeyedWrite(this, context); + } +} +class BindingPipe extends ASTWithName { + constructor(span, sourceSpan, exp, name, args, nameSpan) { + super(span, sourceSpan, nameSpan); + this.exp = exp; + this.name = name; + this.args = args; + } + visit(visitor, context = null) { + return visitor.visitPipe(this, context); + } +} +class LiteralPrimitive extends AST { + constructor(span, sourceSpan, value) { + super(span, sourceSpan); + this.value = value; + } + visit(visitor, context = null) { + return visitor.visitLiteralPrimitive(this, context); + } +} +class LiteralArray extends AST { + constructor(span, sourceSpan, expressions) { + super(span, sourceSpan); + this.expressions = expressions; + } + visit(visitor, context = null) { + return visitor.visitLiteralArray(this, context); + } +} +class LiteralMap extends AST { + constructor(span, sourceSpan, keys, values) { + super(span, sourceSpan); + this.keys = keys; + this.values = values; + } + visit(visitor, context = null) { + return visitor.visitLiteralMap(this, context); + } +} +class Interpolation$1 extends AST { + constructor(span, sourceSpan, strings, expressions) { + super(span, sourceSpan); + this.strings = strings; + this.expressions = expressions; + } + visit(visitor, context = null) { + return visitor.visitInterpolation(this, context); + } +} +class Binary extends AST { + constructor(span, sourceSpan, operation, left, right) { + super(span, sourceSpan); + this.operation = operation; + this.left = left; + this.right = right; + } + visit(visitor, context = null) { + return visitor.visitBinary(this, context); + } +} +/** + * For backwards compatibility reasons, `Unary` inherits from `Binary` and mimics the binary AST + * node that was originally used. This inheritance relation can be deleted in some future major, + * after consumers have been given a chance to fully support Unary. + */ +class Unary extends Binary { + /** + * Creates a unary minus expression "-x", represented as `Binary` using "0 - x". + */ + static createMinus(span, sourceSpan, expr) { + return new Unary(span, sourceSpan, '-', expr, '-', new LiteralPrimitive(span, sourceSpan, 0), expr); + } + /** + * Creates a unary plus expression "+x", represented as `Binary` using "x - 0". + */ + static createPlus(span, sourceSpan, expr) { + return new Unary(span, sourceSpan, '+', expr, '-', expr, new LiteralPrimitive(span, sourceSpan, 0)); + } + /** + * During the deprecation period this constructor is private, to avoid consumers from creating + * a `Unary` with the fallback properties for `Binary`. + */ + constructor(span, sourceSpan, operator, expr, binaryOp, binaryLeft, binaryRight) { + super(span, sourceSpan, binaryOp, binaryLeft, binaryRight); + this.operator = operator; + this.expr = expr; + // Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not + // depend on these fields when operating on `Unary`. + this.left = null; + this.right = null; + this.operation = null; + } + visit(visitor, context = null) { + if (visitor.visitUnary !== undefined) { + return visitor.visitUnary(this, context); + } + return visitor.visitBinary(this, context); + } +} +class PrefixNot extends AST { + constructor(span, sourceSpan, expression) { + super(span, sourceSpan); + this.expression = expression; + } + visit(visitor, context = null) { + return visitor.visitPrefixNot(this, context); + } +} +class NonNullAssert extends AST { + constructor(span, sourceSpan, expression) { + super(span, sourceSpan); + this.expression = expression; + } + visit(visitor, context = null) { + return visitor.visitNonNullAssert(this, context); + } +} +class Call extends AST { + constructor(span, sourceSpan, receiver, args, argumentSpan) { + super(span, sourceSpan); + this.receiver = receiver; + this.args = args; + this.argumentSpan = argumentSpan; + } + visit(visitor, context = null) { + return visitor.visitCall(this, context); + } +} +class SafeCall extends AST { + constructor(span, sourceSpan, receiver, args, argumentSpan) { + super(span, sourceSpan); + this.receiver = receiver; + this.args = args; + this.argumentSpan = argumentSpan; + } + visit(visitor, context = null) { + return visitor.visitSafeCall(this, context); + } +} +/** + * Records the absolute position of a text span in a source file, where `start` and `end` are the + * starting and ending byte offsets, respectively, of the text span in a source file. + */ +class AbsoluteSourceSpan { + constructor(start, end) { + this.start = start; + this.end = end; + } +} +class ASTWithSource extends AST { + constructor(ast, source, location, absoluteOffset, errors) { + super(new ParseSpan(0, source === null ? 0 : source.length), new AbsoluteSourceSpan(absoluteOffset, source === null ? absoluteOffset : absoluteOffset + source.length)); + this.ast = ast; + this.source = source; + this.location = location; + this.errors = errors; + } + visit(visitor, context = null) { + if (visitor.visitASTWithSource) { + return visitor.visitASTWithSource(this, context); + } + return this.ast.visit(visitor, context); + } + toString() { + return `${this.source} in ${this.location}`; + } +} +class VariableBinding { + /** + * @param sourceSpan entire span of the binding. + * @param key name of the LHS along with its span. + * @param value optional value for the RHS along with its span. + */ + constructor(sourceSpan, key, value) { + this.sourceSpan = sourceSpan; + this.key = key; + this.value = value; + } +} +class ExpressionBinding { + /** + * @param sourceSpan entire span of the binding. + * @param key binding name, like ngForOf, ngForTrackBy, ngIf, along with its + * span. Note that the length of the span may not be the same as + * `key.source.length`. For example, + * 1. key.source = ngFor, key.span is for "ngFor" + * 2. key.source = ngForOf, key.span is for "of" + * 3. key.source = ngForTrackBy, key.span is for "trackBy" + * @param value optional expression for the RHS. + */ + constructor(sourceSpan, key, value) { + this.sourceSpan = sourceSpan; + this.key = key; + this.value = value; + } +} +class RecursiveAstVisitor { + visit(ast, context) { + // The default implementation just visits every node. + // Classes that extend RecursiveAstVisitor should override this function + // to selectively visit the specified node. + ast.visit(this, context); + } + visitUnary(ast, context) { + this.visit(ast.expr, context); + } + visitBinary(ast, context) { + this.visit(ast.left, context); + this.visit(ast.right, context); + } + visitChain(ast, context) { + this.visitAll(ast.expressions, context); + } + visitConditional(ast, context) { + this.visit(ast.condition, context); + this.visit(ast.trueExp, context); + this.visit(ast.falseExp, context); + } + visitPipe(ast, context) { + this.visit(ast.exp, context); + this.visitAll(ast.args, context); + } + visitImplicitReceiver(ast, context) {} + visitThisReceiver(ast, context) {} + visitInterpolation(ast, context) { + this.visitAll(ast.expressions, context); + } + visitKeyedRead(ast, context) { + this.visit(ast.receiver, context); + this.visit(ast.key, context); + } + visitKeyedWrite(ast, context) { + this.visit(ast.receiver, context); + this.visit(ast.key, context); + this.visit(ast.value, context); + } + visitLiteralArray(ast, context) { + this.visitAll(ast.expressions, context); + } + visitLiteralMap(ast, context) { + this.visitAll(ast.values, context); + } + visitLiteralPrimitive(ast, context) {} + visitPrefixNot(ast, context) { + this.visit(ast.expression, context); + } + visitNonNullAssert(ast, context) { + this.visit(ast.expression, context); + } + visitPropertyRead(ast, context) { + this.visit(ast.receiver, context); + } + visitPropertyWrite(ast, context) { + this.visit(ast.receiver, context); + this.visit(ast.value, context); + } + visitSafePropertyRead(ast, context) { + this.visit(ast.receiver, context); + } + visitSafeKeyedRead(ast, context) { + this.visit(ast.receiver, context); + this.visit(ast.key, context); + } + visitCall(ast, context) { + this.visit(ast.receiver, context); + this.visitAll(ast.args, context); + } + visitSafeCall(ast, context) { + this.visit(ast.receiver, context); + this.visitAll(ast.args, context); + } + // This is not part of the AstVisitor interface, just a helper method + visitAll(asts, context) { + for (const ast of asts) { + this.visit(ast, context); + } + } +} +class AstTransformer { + visitImplicitReceiver(ast, context) { + return ast; + } + visitThisReceiver(ast, context) { + return ast; + } + visitInterpolation(ast, context) { + return new Interpolation$1(ast.span, ast.sourceSpan, ast.strings, this.visitAll(ast.expressions)); + } + visitLiteralPrimitive(ast, context) { + return new LiteralPrimitive(ast.span, ast.sourceSpan, ast.value); + } + visitPropertyRead(ast, context) { + return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name); + } + visitPropertyWrite(ast, context) { + return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name, ast.value.visit(this)); + } + visitSafePropertyRead(ast, context) { + return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name); + } + visitLiteralArray(ast, context) { + return new LiteralArray(ast.span, ast.sourceSpan, this.visitAll(ast.expressions)); + } + visitLiteralMap(ast, context) { + return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, this.visitAll(ast.values)); + } + visitUnary(ast, context) { + switch (ast.operator) { + case '+': + return Unary.createPlus(ast.span, ast.sourceSpan, ast.expr.visit(this)); + case '-': + return Unary.createMinus(ast.span, ast.sourceSpan, ast.expr.visit(this)); + default: + throw new Error(`Unknown unary operator ${ast.operator}`); + } + } + visitBinary(ast, context) { + return new Binary(ast.span, ast.sourceSpan, ast.operation, ast.left.visit(this), ast.right.visit(this)); + } + visitPrefixNot(ast, context) { + return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this)); + } + visitNonNullAssert(ast, context) { + return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this)); + } + visitConditional(ast, context) { + return new Conditional(ast.span, ast.sourceSpan, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this)); + } + visitPipe(ast, context) { + return new BindingPipe(ast.span, ast.sourceSpan, ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.nameSpan); + } + visitKeyedRead(ast, context) { + return new KeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this)); + } + visitKeyedWrite(ast, context) { + return new KeyedWrite(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this), ast.value.visit(this)); + } + visitCall(ast, context) { + return new Call(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan); + } + visitSafeCall(ast, context) { + return new SafeCall(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan); + } + visitAll(asts) { + const res = []; + for (let i = 0; i < asts.length; ++i) { + res[i] = asts[i].visit(this); + } + return res; + } + visitChain(ast, context) { + return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions)); + } + visitSafeKeyedRead(ast, context) { + return new SafeKeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this)); + } +} +// A transformer that only creates new nodes if the transformer makes a change or +// a change is made a child node. +class AstMemoryEfficientTransformer { + visitImplicitReceiver(ast, context) { + return ast; + } + visitThisReceiver(ast, context) { + return ast; + } + visitInterpolation(ast, context) { + const expressions = this.visitAll(ast.expressions); + if (expressions !== ast.expressions) return new Interpolation$1(ast.span, ast.sourceSpan, ast.strings, expressions); + return ast; + } + visitLiteralPrimitive(ast, context) { + return ast; + } + visitPropertyRead(ast, context) { + const receiver = ast.receiver.visit(this); + if (receiver !== ast.receiver) { + return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name); + } + return ast; + } + visitPropertyWrite(ast, context) { + const receiver = ast.receiver.visit(this); + const value = ast.value.visit(this); + if (receiver !== ast.receiver || value !== ast.value) { + return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name, value); + } + return ast; + } + visitSafePropertyRead(ast, context) { + const receiver = ast.receiver.visit(this); + if (receiver !== ast.receiver) { + return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name); + } + return ast; + } + visitLiteralArray(ast, context) { + const expressions = this.visitAll(ast.expressions); + if (expressions !== ast.expressions) { + return new LiteralArray(ast.span, ast.sourceSpan, expressions); + } + return ast; + } + visitLiteralMap(ast, context) { + const values = this.visitAll(ast.values); + if (values !== ast.values) { + return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, values); + } + return ast; + } + visitUnary(ast, context) { + const expr = ast.expr.visit(this); + if (expr !== ast.expr) { + switch (ast.operator) { + case '+': + return Unary.createPlus(ast.span, ast.sourceSpan, expr); + case '-': + return Unary.createMinus(ast.span, ast.sourceSpan, expr); + default: + throw new Error(`Unknown unary operator ${ast.operator}`); + } + } + return ast; + } + visitBinary(ast, context) { + const left = ast.left.visit(this); + const right = ast.right.visit(this); + if (left !== ast.left || right !== ast.right) { + return new Binary(ast.span, ast.sourceSpan, ast.operation, left, right); + } + return ast; + } + visitPrefixNot(ast, context) { + const expression = ast.expression.visit(this); + if (expression !== ast.expression) { + return new PrefixNot(ast.span, ast.sourceSpan, expression); + } + return ast; + } + visitNonNullAssert(ast, context) { + const expression = ast.expression.visit(this); + if (expression !== ast.expression) { + return new NonNullAssert(ast.span, ast.sourceSpan, expression); + } + return ast; + } + visitConditional(ast, context) { + const condition = ast.condition.visit(this); + const trueExp = ast.trueExp.visit(this); + const falseExp = ast.falseExp.visit(this); + if (condition !== ast.condition || trueExp !== ast.trueExp || falseExp !== ast.falseExp) { + return new Conditional(ast.span, ast.sourceSpan, condition, trueExp, falseExp); + } + return ast; + } + visitPipe(ast, context) { + const exp = ast.exp.visit(this); + const args = this.visitAll(ast.args); + if (exp !== ast.exp || args !== ast.args) { + return new BindingPipe(ast.span, ast.sourceSpan, exp, ast.name, args, ast.nameSpan); + } + return ast; + } + visitKeyedRead(ast, context) { + const obj = ast.receiver.visit(this); + const key = ast.key.visit(this); + if (obj !== ast.receiver || key !== ast.key) { + return new KeyedRead(ast.span, ast.sourceSpan, obj, key); + } + return ast; + } + visitKeyedWrite(ast, context) { + const obj = ast.receiver.visit(this); + const key = ast.key.visit(this); + const value = ast.value.visit(this); + if (obj !== ast.receiver || key !== ast.key || value !== ast.value) { + return new KeyedWrite(ast.span, ast.sourceSpan, obj, key, value); + } + return ast; + } + visitAll(asts) { + const res = []; + let modified = false; + for (let i = 0; i < asts.length; ++i) { + const original = asts[i]; + const value = original.visit(this); + res[i] = value; + modified = modified || value !== original; + } + return modified ? res : asts; + } + visitChain(ast, context) { + const expressions = this.visitAll(ast.expressions); + if (expressions !== ast.expressions) { + return new Chain(ast.span, ast.sourceSpan, expressions); + } + return ast; + } + visitCall(ast, context) { + const receiver = ast.receiver.visit(this); + const args = this.visitAll(ast.args); + if (receiver !== ast.receiver || args !== ast.args) { + return new Call(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan); + } + return ast; + } + visitSafeCall(ast, context) { + const receiver = ast.receiver.visit(this); + const args = this.visitAll(ast.args); + if (receiver !== ast.receiver || args !== ast.args) { + return new SafeCall(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan); + } + return ast; + } + visitSafeKeyedRead(ast, context) { + const obj = ast.receiver.visit(this); + const key = ast.key.visit(this); + if (obj !== ast.receiver || key !== ast.key) { + return new SafeKeyedRead(ast.span, ast.sourceSpan, obj, key); + } + return ast; + } +} +// Bindings +class ParsedProperty { + constructor(name, expression, type, sourceSpan, keySpan, valueSpan) { + this.name = name; + this.expression = expression; + this.type = type; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + this.isLiteral = this.type === ParsedPropertyType.LITERAL_ATTR; + this.isAnimation = this.type === ParsedPropertyType.ANIMATION; + } +} +var ParsedPropertyType; +(function (ParsedPropertyType) { + ParsedPropertyType[ParsedPropertyType["DEFAULT"] = 0] = "DEFAULT"; + ParsedPropertyType[ParsedPropertyType["LITERAL_ATTR"] = 1] = "LITERAL_ATTR"; + ParsedPropertyType[ParsedPropertyType["ANIMATION"] = 2] = "ANIMATION"; +})(ParsedPropertyType || (ParsedPropertyType = {})); +class ParsedEvent { + // Regular events have a target + // Animation events have a phase + constructor(name, targetOrPhase, type, handler, sourceSpan, handlerSpan, keySpan) { + this.name = name; + this.targetOrPhase = targetOrPhase; + this.type = type; + this.handler = handler; + this.sourceSpan = sourceSpan; + this.handlerSpan = handlerSpan; + this.keySpan = keySpan; + } +} +/** + * ParsedVariable represents a variable declaration in a microsyntax expression. + */ +class ParsedVariable { + constructor(name, value, sourceSpan, keySpan, valueSpan) { + this.name = name; + this.value = value; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + } +} +class BoundElementProperty { + constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan) { + this.name = name; + this.type = type; + this.securityContext = securityContext; + this.value = value; + this.unit = unit; + this.sourceSpan = sourceSpan; + this.keySpan = keySpan; + this.valueSpan = valueSpan; + } +} +class EventHandlerVars { + static { + this.event = variable('$event'); + } +} +/** + * Converts the given expression AST into an executable output AST, assuming the expression is + * used in an action binding (e.g. an event handler). + */ +function convertActionBinding(localResolver, implicitReceiver, action, bindingId, baseSourceSpan, implicitReceiverAccesses, globals) { + if (!localResolver) { + localResolver = new DefaultLocalResolver(globals); + } + const actionWithoutBuiltins = convertPropertyBindingBuiltins({ + createLiteralArrayConverter: argCount => { + // Note: no caching for literal arrays in actions. + return args => literalArr(args); + }, + createLiteralMapConverter: keys => { + // Note: no caching for literal maps in actions. + return values => { + const entries = keys.map((k, i) => ({ + key: k.key, + value: values[i], + quoted: k.quoted + })); + return literalMap(entries); + }; + }, + createPipeConverter: name => { + throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`); + } + }, action); + const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */false, baseSourceSpan, implicitReceiverAccesses); + const actionStmts = []; + flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts); + prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts); + if (visitor.usesImplicitReceiver) { + localResolver.notifyImplicitReceiverUse(); + } + const lastIndex = actionStmts.length - 1; + if (lastIndex >= 0) { + const lastStatement = actionStmts[lastIndex]; + // Ensure that the value of the last expression statement is returned + if (lastStatement instanceof ExpressionStatement) { + actionStmts[lastIndex] = new ReturnStatement(lastStatement.expr); + } + } + return actionStmts; +} +function convertPropertyBindingBuiltins(converterFactory, ast) { + return convertBuiltins(converterFactory, ast); +} +class ConvertPropertyBindingResult { + constructor(stmts, currValExpr) { + this.stmts = stmts; + this.currValExpr = currValExpr; + } +} +/** + * Converts the given expression AST into an executable output AST, assuming the expression + * is used in property binding. The expression has to be preprocessed via + * `convertPropertyBindingBuiltins`. + */ +function convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId) { + if (!localResolver) { + localResolver = new DefaultLocalResolver(); + } + const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */false); + const outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression); + const stmts = getStatementsFromVisitor(visitor, bindingId); + if (visitor.usesImplicitReceiver) { + localResolver.notifyImplicitReceiverUse(); + } + return new ConvertPropertyBindingResult(stmts, outputExpr); +} +/** + * Given some expression, such as a binding or interpolation expression, and a context expression to + * look values up on, visit each facet of the given expression resolving values from the context + * expression such that a list of arguments can be derived from the found values that can be used as + * arguments to an external update instruction. + * + * @param localResolver The resolver to use to look up expressions by name appropriately + * @param contextVariableExpression The expression representing the context variable used to create + * the final argument expressions + * @param expressionWithArgumentsToExtract The expression to visit to figure out what values need to + * be resolved and what arguments list to build. + * @param bindingId A name prefix used to create temporary variable names if they're needed for the + * arguments generated + * @returns An array of expressions that can be passed as arguments to instruction expressions like + * `o.importExpr(R3.propertyInterpolate).callFn(result)` + */ +function convertUpdateArguments(localResolver, contextVariableExpression, expressionWithArgumentsToExtract, bindingId) { + const visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId, /* supportsInterpolation */true); + const outputExpr = visitor.visitInterpolation(expressionWithArgumentsToExtract, _Mode.Expression); + if (visitor.usesImplicitReceiver) { + localResolver.notifyImplicitReceiverUse(); + } + const stmts = getStatementsFromVisitor(visitor, bindingId); + const args = outputExpr.args; + return { + stmts, + args + }; +} +function getStatementsFromVisitor(visitor, bindingId) { + const stmts = []; + for (let i = 0; i < visitor.temporaryCount; i++) { + stmts.push(temporaryDeclaration(bindingId, i)); + } + return stmts; +} +function convertBuiltins(converterFactory, ast) { + const visitor = new _BuiltinAstConverter(converterFactory); + return ast.visit(visitor); +} +function temporaryName(bindingId, temporaryNumber) { + return `tmp_${bindingId}_${temporaryNumber}`; +} +function temporaryDeclaration(bindingId, temporaryNumber) { + return new DeclareVarStmt(temporaryName(bindingId, temporaryNumber)); +} +function prependTemporaryDecls(temporaryCount, bindingId, statements) { + for (let i = temporaryCount - 1; i >= 0; i--) { + statements.unshift(temporaryDeclaration(bindingId, i)); + } +} +var _Mode; +(function (_Mode) { + _Mode[_Mode["Statement"] = 0] = "Statement"; + _Mode[_Mode["Expression"] = 1] = "Expression"; +})(_Mode || (_Mode = {})); +function ensureStatementMode(mode, ast) { + if (mode !== _Mode.Statement) { + throw new Error(`Expected a statement, but saw ${ast}`); + } +} +function ensureExpressionMode(mode, ast) { + if (mode !== _Mode.Expression) { + throw new Error(`Expected an expression, but saw ${ast}`); + } +} +function convertToStatementIfNeeded(mode, expr) { + if (mode === _Mode.Statement) { + return expr.toStmt(); + } else { + return expr; + } +} +class _BuiltinAstConverter extends AstTransformer { + constructor(_converterFactory) { + super(); + this._converterFactory = _converterFactory; + } + visitPipe(ast, context) { + const args = [ast.exp, ...ast.args].map(ast => ast.visit(this, context)); + return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createPipeConverter(ast.name, args.length)); + } + visitLiteralArray(ast, context) { + const args = ast.expressions.map(ast => ast.visit(this, context)); + return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralArrayConverter(ast.expressions.length)); + } + visitLiteralMap(ast, context) { + const args = ast.values.map(ast => ast.visit(this, context)); + return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralMapConverter(ast.keys)); + } +} +class _AstToIrVisitor { + constructor(_localResolver, _implicitReceiver, bindingId, supportsInterpolation, baseSourceSpan, implicitReceiverAccesses) { + this._localResolver = _localResolver; + this._implicitReceiver = _implicitReceiver; + this.bindingId = bindingId; + this.supportsInterpolation = supportsInterpolation; + this.baseSourceSpan = baseSourceSpan; + this.implicitReceiverAccesses = implicitReceiverAccesses; + this._nodeMap = new Map(); + this._resultMap = new Map(); + this._currentTemporary = 0; + this.temporaryCount = 0; + this.usesImplicitReceiver = false; + } + visitUnary(ast, mode) { + let op; + switch (ast.operator) { + case '+': + op = UnaryOperator.Plus; + break; + case '-': + op = UnaryOperator.Minus; + break; + default: + throw new Error(`Unsupported operator ${ast.operator}`); + } + return convertToStatementIfNeeded(mode, new UnaryOperatorExpr(op, this._visit(ast.expr, _Mode.Expression), undefined, this.convertSourceSpan(ast.span))); + } + visitBinary(ast, mode) { + let op; + switch (ast.operation) { + case '+': + op = BinaryOperator.Plus; + break; + case '-': + op = BinaryOperator.Minus; + break; + case '*': + op = BinaryOperator.Multiply; + break; + case '/': + op = BinaryOperator.Divide; + break; + case '%': + op = BinaryOperator.Modulo; + break; + case '&&': + op = BinaryOperator.And; + break; + case '||': + op = BinaryOperator.Or; + break; + case '==': + op = BinaryOperator.Equals; + break; + case '!=': + op = BinaryOperator.NotEquals; + break; + case '===': + op = BinaryOperator.Identical; + break; + case '!==': + op = BinaryOperator.NotIdentical; + break; + case '<': + op = BinaryOperator.Lower; + break; + case '>': + op = BinaryOperator.Bigger; + break; + case '<=': + op = BinaryOperator.LowerEquals; + break; + case '>=': + op = BinaryOperator.BiggerEquals; + break; + case '??': + return this.convertNullishCoalesce(ast, mode); + default: + throw new Error(`Unsupported operation ${ast.operation}`); + } + return convertToStatementIfNeeded(mode, new BinaryOperatorExpr(op, this._visit(ast.left, _Mode.Expression), this._visit(ast.right, _Mode.Expression), undefined, this.convertSourceSpan(ast.span))); + } + visitChain(ast, mode) { + ensureStatementMode(mode, ast); + return this.visitAll(ast.expressions, mode); + } + visitConditional(ast, mode) { + const value = this._visit(ast.condition, _Mode.Expression); + return convertToStatementIfNeeded(mode, value.conditional(this._visit(ast.trueExp, _Mode.Expression), this._visit(ast.falseExp, _Mode.Expression), this.convertSourceSpan(ast.span))); + } + visitPipe(ast, mode) { + throw new Error(`Illegal state: Pipes should have been converted into functions. Pipe: ${ast.name}`); + } + visitImplicitReceiver(ast, mode) { + ensureExpressionMode(mode, ast); + this.usesImplicitReceiver = true; + return this._implicitReceiver; + } + visitThisReceiver(ast, mode) { + return this.visitImplicitReceiver(ast, mode); + } + visitInterpolation(ast, mode) { + if (!this.supportsInterpolation) { + throw new Error('Unexpected interpolation'); + } + ensureExpressionMode(mode, ast); + let args = []; + for (let i = 0; i < ast.strings.length - 1; i++) { + args.push(literal(ast.strings[i])); + args.push(this._visit(ast.expressions[i], _Mode.Expression)); + } + args.push(literal(ast.strings[ast.strings.length - 1])); + // If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the + // args returned to just the value, because we're going to pass it to a special instruction. + const strings = ast.strings; + if (strings.length === 2 && strings[0] === '' && strings[1] === '') { + // Single argument interpolate instructions. + args = [args[1]]; + } else if (ast.expressions.length >= 9) { + // 9 or more arguments must be passed to the `interpolateV`-style instructions, which accept + // an array of arguments + args = [literalArr(args)]; + } + return new InterpolationExpression(args); + } + visitKeyedRead(ast, mode) { + const leftMostSafe = this.leftMostSafeNode(ast); + if (leftMostSafe) { + return this.convertSafeAccess(ast, leftMostSafe, mode); + } else { + return convertToStatementIfNeeded(mode, this._visit(ast.receiver, _Mode.Expression).key(this._visit(ast.key, _Mode.Expression))); + } + } + visitKeyedWrite(ast, mode) { + const obj = this._visit(ast.receiver, _Mode.Expression); + const key = this._visit(ast.key, _Mode.Expression); + const value = this._visit(ast.value, _Mode.Expression); + if (obj === this._implicitReceiver) { + this._localResolver.maybeRestoreView(); + } + return convertToStatementIfNeeded(mode, obj.key(key).set(value)); + } + visitLiteralArray(ast, mode) { + throw new Error(`Illegal State: literal arrays should have been converted into functions`); + } + visitLiteralMap(ast, mode) { + throw new Error(`Illegal State: literal maps should have been converted into functions`); + } + visitLiteralPrimitive(ast, mode) { + // For literal values of null, undefined, true, or false allow type interference + // to infer the type. + const type = ast.value === null || ast.value === undefined || ast.value === true || ast.value === true ? INFERRED_TYPE : undefined; + return convertToStatementIfNeeded(mode, literal(ast.value, type, this.convertSourceSpan(ast.span))); + } + _getLocal(name, receiver) { + if (this._localResolver.globals?.has(name) && receiver instanceof ThisReceiver) { + return null; + } + return this._localResolver.getLocal(name); + } + visitPrefixNot(ast, mode) { + return convertToStatementIfNeeded(mode, not(this._visit(ast.expression, _Mode.Expression))); + } + visitNonNullAssert(ast, mode) { + return convertToStatementIfNeeded(mode, this._visit(ast.expression, _Mode.Expression)); + } + visitPropertyRead(ast, mode) { + const leftMostSafe = this.leftMostSafeNode(ast); + if (leftMostSafe) { + return this.convertSafeAccess(ast, leftMostSafe, mode); + } else { + let result = null; + const prevUsesImplicitReceiver = this.usesImplicitReceiver; + const receiver = this._visit(ast.receiver, _Mode.Expression); + if (receiver === this._implicitReceiver) { + result = this._getLocal(ast.name, ast.receiver); + if (result) { + // Restore the previous "usesImplicitReceiver" state since the implicit + // receiver has been replaced with a resolved local expression. + this.usesImplicitReceiver = prevUsesImplicitReceiver; + this.addImplicitReceiverAccess(ast.name); + } + } + if (result == null) { + result = receiver.prop(ast.name, this.convertSourceSpan(ast.span)); + } + return convertToStatementIfNeeded(mode, result); + } + } + visitPropertyWrite(ast, mode) { + const receiver = this._visit(ast.receiver, _Mode.Expression); + const prevUsesImplicitReceiver = this.usesImplicitReceiver; + let varExpr = null; + if (receiver === this._implicitReceiver) { + const localExpr = this._getLocal(ast.name, ast.receiver); + if (localExpr) { + if (localExpr instanceof ReadPropExpr) { + // If the local variable is a property read expression, it's a reference + // to a 'context.property' value and will be used as the target of the + // write expression. + varExpr = localExpr; + // Restore the previous "usesImplicitReceiver" state since the implicit + // receiver has been replaced with a resolved local expression. + this.usesImplicitReceiver = prevUsesImplicitReceiver; + this.addImplicitReceiverAccess(ast.name); + } else { + // Otherwise it's an error. + const receiver = ast.name; + const value = ast.value instanceof PropertyRead ? ast.value.name : undefined; + throw new Error(`Cannot assign value "${value}" to template variable "${receiver}". Template variables are read-only.`); + } + } + } + // If no local expression could be produced, use the original receiver's + // property as the target. + if (varExpr === null) { + varExpr = receiver.prop(ast.name, this.convertSourceSpan(ast.span)); + } + return convertToStatementIfNeeded(mode, varExpr.set(this._visit(ast.value, _Mode.Expression))); + } + visitSafePropertyRead(ast, mode) { + return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode); + } + visitSafeKeyedRead(ast, mode) { + return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode); + } + visitAll(asts, mode) { + return asts.map(ast => this._visit(ast, mode)); + } + visitCall(ast, mode) { + const leftMostSafe = this.leftMostSafeNode(ast); + if (leftMostSafe) { + return this.convertSafeAccess(ast, leftMostSafe, mode); + } + const convertedArgs = this.visitAll(ast.args, _Mode.Expression); + if (ast instanceof BuiltinFunctionCall) { + return convertToStatementIfNeeded(mode, ast.converter(convertedArgs)); + } + const receiver = ast.receiver; + if (receiver instanceof PropertyRead && receiver.receiver instanceof ImplicitReceiver && !(receiver.receiver instanceof ThisReceiver) && receiver.name === '$any') { + if (convertedArgs.length !== 1) { + throw new Error(`Invalid call to $any, expected 1 argument but received ${convertedArgs.length || 'none'}`); + } + return convertToStatementIfNeeded(mode, convertedArgs[0]); + } + const call = this._visit(receiver, _Mode.Expression).callFn(convertedArgs, this.convertSourceSpan(ast.span)); + return convertToStatementIfNeeded(mode, call); + } + visitSafeCall(ast, mode) { + return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode); + } + _visit(ast, mode) { + const result = this._resultMap.get(ast); + if (result) return result; + return (this._nodeMap.get(ast) || ast).visit(this, mode); + } + convertSafeAccess(ast, leftMostSafe, mode) { + // If the expression contains a safe access node on the left it needs to be converted to + // an expression that guards the access to the member by checking the receiver for blank. As + // execution proceeds from left to right, the left most part of the expression must be guarded + // first but, because member access is left associative, the right side of the expression is at + // the top of the AST. The desired result requires lifting a copy of the left part of the + // expression up to test it for blank before generating the unguarded version. + // Consider, for example the following expression: a?.b.c?.d.e + // This results in the ast: + // . + // / \ + // ?. e + // / \ + // . d + // / \ + // ?. c + // / \ + // a b + // The following tree should be generated: + // + // /---- ? ----\ + // / | \ + // a /--- ? ---\ null + // / | \ + // . . null + // / \ / \ + // . c . e + // / \ / \ + // a b . d + // / \ + // . c + // / \ + // a b + // + // Notice that the first guard condition is the left hand of the left most safe access node + // which comes in as leftMostSafe to this routine. + let guardedExpression = this._visit(leftMostSafe.receiver, _Mode.Expression); + let temporary = undefined; + if (this.needsTemporaryInSafeAccess(leftMostSafe.receiver)) { + // If the expression has method calls or pipes then we need to save the result into a + // temporary variable to avoid calling stateful or impure code more than once. + temporary = this.allocateTemporary(); + // Preserve the result in the temporary variable + guardedExpression = temporary.set(guardedExpression); + // Ensure all further references to the guarded expression refer to the temporary instead. + this._resultMap.set(leftMostSafe.receiver, temporary); + } + const condition = guardedExpression.isBlank(); + // Convert the ast to an unguarded access to the receiver's member. The map will substitute + // leftMostNode with its unguarded version in the call to `this.visit()`. + if (leftMostSafe instanceof SafeCall) { + this._nodeMap.set(leftMostSafe, new Call(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.args, leftMostSafe.argumentSpan)); + } else if (leftMostSafe instanceof SafeKeyedRead) { + this._nodeMap.set(leftMostSafe, new KeyedRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.key)); + } else { + this._nodeMap.set(leftMostSafe, new PropertyRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.nameSpan, leftMostSafe.receiver, leftMostSafe.name)); + } + // Recursively convert the node now without the guarded member access. + const access = this._visit(ast, _Mode.Expression); + // Remove the mapping. This is not strictly required as the converter only traverses each node + // once but is safer if the conversion is changed to traverse the nodes more than once. + this._nodeMap.delete(leftMostSafe); + // If we allocated a temporary, release it. + if (temporary) { + this.releaseTemporary(temporary); + } + // Produce the conditional + return convertToStatementIfNeeded(mode, condition.conditional(NULL_EXPR, access)); + } + convertNullishCoalesce(ast, mode) { + const left = this._visit(ast.left, _Mode.Expression); + const right = this._visit(ast.right, _Mode.Expression); + const temporary = this.allocateTemporary(); + this.releaseTemporary(temporary); + // Generate the following expression. It is identical to how TS + // transpiles binary expressions with a nullish coalescing operator. + // let temp; + // (temp = a) !== null && temp !== undefined ? temp : b; + return convertToStatementIfNeeded(mode, temporary.set(left).notIdentical(NULL_EXPR).and(temporary.notIdentical(literal(undefined))).conditional(temporary, right)); + } + // Given an expression of the form a?.b.c?.d.e then the left most safe node is + // the (a?.b). The . and ?. are left associative thus can be rewritten as: + // ((((a?.c).b).c)?.d).e. This returns the most deeply nested safe read or + // safe method call as this needs to be transformed initially to: + // a == null ? null : a.c.b.c?.d.e + // then to: + // a == null ? null : a.b.c == null ? null : a.b.c.d.e + leftMostSafeNode(ast) { + const visit = (visitor, ast) => { + return (this._nodeMap.get(ast) || ast).visit(visitor); + }; + return ast.visit({ + visitUnary(ast) { + return null; + }, + visitBinary(ast) { + return null; + }, + visitChain(ast) { + return null; + }, + visitConditional(ast) { + return null; + }, + visitCall(ast) { + return visit(this, ast.receiver); + }, + visitSafeCall(ast) { + return visit(this, ast.receiver) || ast; + }, + visitImplicitReceiver(ast) { + return null; + }, + visitThisReceiver(ast) { + return null; + }, + visitInterpolation(ast) { + return null; + }, + visitKeyedRead(ast) { + return visit(this, ast.receiver); + }, + visitKeyedWrite(ast) { + return null; + }, + visitLiteralArray(ast) { + return null; + }, + visitLiteralMap(ast) { + return null; + }, + visitLiteralPrimitive(ast) { + return null; + }, + visitPipe(ast) { + return null; + }, + visitPrefixNot(ast) { + return null; + }, + visitNonNullAssert(ast) { + return visit(this, ast.expression); + }, + visitPropertyRead(ast) { + return visit(this, ast.receiver); + }, + visitPropertyWrite(ast) { + return null; + }, + visitSafePropertyRead(ast) { + return visit(this, ast.receiver) || ast; + }, + visitSafeKeyedRead(ast) { + return visit(this, ast.receiver) || ast; + } + }); + } + // Returns true of the AST includes a method or a pipe indicating that, if the + // expression is used as the target of a safe property or method access then + // the expression should be stored into a temporary variable. + needsTemporaryInSafeAccess(ast) { + const visit = (visitor, ast) => { + return ast && (this._nodeMap.get(ast) || ast).visit(visitor); + }; + const visitSome = (visitor, ast) => { + return ast.some(ast => visit(visitor, ast)); + }; + return ast.visit({ + visitUnary(ast) { + return visit(this, ast.expr); + }, + visitBinary(ast) { + return visit(this, ast.left) || visit(this, ast.right); + }, + visitChain(ast) { + return false; + }, + visitConditional(ast) { + return visit(this, ast.condition) || visit(this, ast.trueExp) || visit(this, ast.falseExp); + }, + visitCall(ast) { + return true; + }, + visitSafeCall(ast) { + return true; + }, + visitImplicitReceiver(ast) { + return false; + }, + visitThisReceiver(ast) { + return false; + }, + visitInterpolation(ast) { + return visitSome(this, ast.expressions); + }, + visitKeyedRead(ast) { + return false; + }, + visitKeyedWrite(ast) { + return false; + }, + visitLiteralArray(ast) { + return true; + }, + visitLiteralMap(ast) { + return true; + }, + visitLiteralPrimitive(ast) { + return false; + }, + visitPipe(ast) { + return true; + }, + visitPrefixNot(ast) { + return visit(this, ast.expression); + }, + visitNonNullAssert(ast) { + return visit(this, ast.expression); + }, + visitPropertyRead(ast) { + return false; + }, + visitPropertyWrite(ast) { + return false; + }, + visitSafePropertyRead(ast) { + return false; + }, + visitSafeKeyedRead(ast) { + return false; + } + }); + } + allocateTemporary() { + const tempNumber = this._currentTemporary++; + this.temporaryCount = Math.max(this._currentTemporary, this.temporaryCount); + return new ReadVarExpr(temporaryName(this.bindingId, tempNumber)); + } + releaseTemporary(temporary) { + this._currentTemporary--; + if (temporary.name != temporaryName(this.bindingId, this._currentTemporary)) { + throw new Error(`Temporary ${temporary.name} released out of order`); + } + } + /** + * Creates an absolute `ParseSourceSpan` from the relative `ParseSpan`. + * + * `ParseSpan` objects are relative to the start of the expression. + * This method converts these to full `ParseSourceSpan` objects that + * show where the span is within the overall source file. + * + * @param span the relative span to convert. + * @returns a `ParseSourceSpan` for the given span or null if no + * `baseSourceSpan` was provided to this class. + */ + convertSourceSpan(span) { + if (this.baseSourceSpan) { + const start = this.baseSourceSpan.start.moveBy(span.start); + const end = this.baseSourceSpan.start.moveBy(span.end); + const fullStart = this.baseSourceSpan.fullStart.moveBy(span.start); + return new ParseSourceSpan(start, end, fullStart); + } else { + return null; + } + } + /** Adds the name of an AST to the list of implicit receiver accesses. */ + addImplicitReceiverAccess(name) { + if (this.implicitReceiverAccesses) { + this.implicitReceiverAccesses.add(name); + } + } +} +function flattenStatements(arg, output) { + if (Array.isArray(arg)) { + arg.forEach(entry => flattenStatements(entry, output)); + } else { + output.push(arg); + } +} +function unsupported() { + throw new Error('Unsupported operation'); +} +class InterpolationExpression extends Expression { + constructor(args) { + super(null, null); + this.args = args; + this.isConstant = unsupported; + this.isEquivalent = unsupported; + this.visitExpression = unsupported; + this.clone = unsupported; + } +} +class DefaultLocalResolver { + constructor(globals) { + this.globals = globals; + } + notifyImplicitReceiverUse() {} + maybeRestoreView() {} + getLocal(name) { + if (name === EventHandlerVars.event.name) { + return EventHandlerVars.event; + } + return null; + } +} +class BuiltinFunctionCall extends Call { + constructor(span, sourceSpan, args, converter) { + super(span, sourceSpan, new EmptyExpr$1(span, sourceSpan), args, null); + this.converter = converter; + } +} + +// ================================================================================================= +// ================================================================================================= +// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P =========== +// ================================================================================================= +// ================================================================================================= +// +// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW! +// Reach out to mprobst for details. +// +// ================================================================================================= +/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */ +let _SECURITY_SCHEMA; +function SECURITY_SCHEMA() { + if (!_SECURITY_SCHEMA) { + _SECURITY_SCHEMA = {}; + // Case is insignificant below, all element and attribute names are lower-cased for lookup. + registerContext(SecurityContext.HTML, ['iframe|srcdoc', '*|innerHTML', '*|outerHTML']); + registerContext(SecurityContext.STYLE, ['*|style']); + // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them. + registerContext(SecurityContext.URL, ['*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href', 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action', 'img|src', 'input|src', 'ins|cite', 'q|cite', 'source|src', 'track|src', 'video|poster', 'video|src']); + registerContext(SecurityContext.RESOURCE_URL, ['applet|code', 'applet|codebase', 'base|href', 'embed|src', 'frame|src', 'head|profile', 'html|manifest', 'iframe|src', 'link|href', 'media|src', 'object|codebase', 'object|data', 'script|src']); + } + return _SECURITY_SCHEMA; +} +function registerContext(ctx, specs) { + for (const spec of specs) _SECURITY_SCHEMA[spec.toLowerCase()] = ctx; +} +/** + * The set of security-sensitive attributes of an `